ES2626823T3 - Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen - Google Patents

Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen Download PDF

Info

Publication number
ES2626823T3
ES2626823T3 ES12784571.7T ES12784571T ES2626823T3 ES 2626823 T3 ES2626823 T3 ES 2626823T3 ES 12784571 T ES12784571 T ES 12784571T ES 2626823 T3 ES2626823 T3 ES 2626823T3
Authority
ES
Spain
Prior art keywords
filtering
type
component
sample
sao
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
ES12784571.7T
Other languages
English (en)
Inventor
Guillaume Laroche
Christophe Gisquet
Edouard Francois
Patrice Onno
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of ES2626823T3 publication Critical patent/ES2626823T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • 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/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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Image Processing (AREA)

Abstract

Procedimiento de codificación de, por lo menos, una parte de una imagen que comprende una serie de muestras, comprendiendo cada muestra un componente de luma y un primer y un segundo componentes de croma, comprendiendo la imagen codificada, por lo menos, un parámetro de filtrado, comprendiendo el procedimiento codificar (902-908) el primer componente de croma y el segundo componente de croma de, por lo menos, una muestra de la imagen para proporcionar, por lo menos, una muestra codificada; descodificar (911-915), por lo menos, una muestra codificada; calcular, por lo menos, un parámetro de filtrado en función de la diferencia entre, por lo menos, un mencionado componente de, por lo menos, una muestra de la imagen y, por lo menos, un componente correspondiente de, por lo menos, la muestra descodificada correspondiente, siendo calculado el o cada mencionado parámetro de filtrado para ser utilizado en un filtro de bucle (1107) de un descodificador como un parámetro de filtrado para realizar un filtrado (1004) de bucle de desplazamiento adaptativo de muestras sobre dicho, por lo menos, un correspondiente componente de una muestra descodificada; en el que la descodificación (911-915) comprende asimismo utilizar el o cada mencionado parámetro de filtrado para llevar a cabo un filtrado (1004) de bucle de desplazamiento adaptativo de muestras en un filtro de bucle (915); caracterizado por que cuando el filtrado de bucle de desplazamiento adaptativo de muestras es de un primer tipo, se calcula, por lo menos, un parámetro de filtrado diferente de un desplazamiento para ser utilizado como un parámetro de filtrado común para llevar a cabo el filtrado (1004) de bucle de desplazamiento adaptativo de muestras del primer tipo en el primer y el segundo componentes de croma de una muestra descodificada, siendo el primer tipo de filtrado de bucle de desplazamiento adaptativo de muestras uno del filtrado de tipo borde y el filtrado de tipo banda, y cuando el filtrado de bucle de desplazamiento adaptativo de muestras es de un segundo tipo, diferente del primer tipo, se calculan parámetros de filtrado diferentes para ser utilizados como parámetros de filtrado especializados para llevar a cabo un filtrado de desplazamiento adaptativo de muestras del segundo tipo en el primer y el segundo componentes de croma respectivamente, siendo el segundo tipo de filtrado de bucle de desplazamiento adaptativo de muestras el otro del filtrado de tipo borde y el filtrado de tipo banda.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Procedimiento y dispositivo para optimizar la codificacion/descodificacion de desplazamientos de compensacion para un conjunto de muestras reconstruidas de una imagen
La presente invencion se refiere a un procedimiento y un dispositivo para optimizar la codificacion y/o la descodificacion de desplazamientos de compensacion para un conjunto de muestras reconstruidas de una imagen, con el fin de mejorar la eficiencia de la codificacion de un codificador-descodificador de video y/o la complejidad de la descodificacion. La invencion se refiere ademas a un procedimiento y un dispositivo para codificar o descodificar una secuencia de imagenes digitales.
La invencion se puede aplicar en el sector tecnico del procesamiento de senales digitales, y en particular en el sector tecnico de la compresion de video utilizando compensacion del movimiento para reducir las redundancias espaciales y temporales en flujos de video.
Muchos formatos de compresion de video, tales como por ejemplo H.263, H.264, MPEG-1, MPEG-2, MPEG-4 y SVC utilizan la transformada de coseno discreta (DCT, discrete cosine transform) basada en bloques y la compensacion del movimiento para eliminar redundancias espaciales y temporales. Estos son denominados a menudo formatos de video predictivos. Cada cuadro o imagen de la senal de video es dividida en segmentos que son codificados y pueden ser descodificados independientemente. Un segmento es habitualmente una parte rectangular del cuadro, o mas generalmente, una parte de un cuadro o un cuadro completo. Ademas, cada segmento puede ser dividido en macrobloques (MBs), y cada macrobloque se divide ademas en bloques, habitualmente bloques de 64x64, 32x32, 16x16 u 8x8 plxeles.
En la codificacion de video de alta eficiencia (HEVC, High Efficiency Video Coding) se pueden utilizar bloques desde 64x64 hasta 4x4. La division se organiza de acuerdo con una estructura de arbol cuadruple basada en la unidad maxima de codificacion (LCU, largest coding unit). Una LCU corresponde, por ejemplo, a un bloque cuadrado de 64x64. Si una LCU tiene que ser dividida, un indicador de division indica que la LCU se divide en 4 bloques de 32x32. Del mismo modo, si alguno de estos 4 bloques tiene que ser dividido, el indicador de division se pone a verdadero, y el bloque de 32x32 se divide en 4 bloques de 16x16, etc. Cuando un indicador de division se pone a falso, el bloque actual es una unidad de codificacion CU. Una CU tiene un tamano igual a 64x64, 32x32, 16x16 o 8x8 plxeles.
Existen dos familias de modos de codificacion para la codificacion de bloques de una imagen: modos de codificacion basados en prediccion espacial, denominada prediccion INTRA, y modos de codificacion basados en prediccion temporal (INTER, Merge, Skip). En los modos de prediccion tanto espacial como temporal, se calcula un residuo restando la prediccion respecto del bloque original.
Un bloque INTRA se predice generalmente mediante un proceso de prediccion INTRA a partir de los plxeles codificados en su llmite causal. En la prediccion INTRA, se codifica una direccion de prediccion.
La prediccion temporal consiste en encontrar un cuadro de referencia, ya sea un cuadro de referencia anterior o uno futuro de la secuencia de video, una parte de imagen o un area de referencia que sea la mas proxima al bloque a codificar. Esta etapa se conoce habitualmente como estimacion del movimiento. A continuacion, se predice el bloque a codificar utilizando el area de referencia en una etapa denominada habitualmente compensacion del movimiento - se codifica la diferencia entre el bloque a codificar y la parte de referencia, junto con un elemento de information del movimiento relativo al vector de movimiento, que indica el area de referencia a utilizar para la compensacion del movimiento. En la prediccion temporal, se codifica, por lo menos, un vector de movimiento.
Para reducir adicionalmente el coste de codificar la informacion del movimiento, en lugar de codificar directamente un vector de movimiento, suponiendo que el movimiento es homogeneo, el vector de movimiento se puede codificar en terminos de la diferencia entre el vector de movimiento y un predictor del vector de movimiento, compuesto habitualmente de uno o varios vectores de movimiento de los bloques que rodean el bloque a codificar.
En H.264, por ejemplo, los vectores de movimiento se codifican con respecto a un predictor medio calculado a partir de los vectores de movimiento situados en la proximidad causal del bloque a codificar, por ejemplo a partir de los tres bloques situados encima y a la izquierda del bloque a codificar. Solamente la diferencia, denominada vector de movimiento residual, entre el predictor medio y el vector de movimiento del bloque actual, se codifica en el flujo de bits para reducir el coste de la codificacion.
La codificacion utilizando vectores de movimiento residuales ahorra algo de tasa de bits, pero requiere que el descodificador realice el mismo calculo del predictor del vector de movimiento para descodificar el valor del vector de movimiento de un bloque a descodificar.
Ambos procesos de codificacion y descodificacion pueden implicar un proceso de descodificacion de una imagen codificada. Este proceso se lleva a cabo habitualmente en el lado del codificador, con el objetivo de una estimacion
5
10
15
20
25
30
35
40
45
50
55
60
65
del movimiento futuro que permite a un codificador y al correspondiente descodificador tener los mismos cuadros de referenda.
Para reconstruir el cuadro codificado, el residuo se somete a cuantificacion inversa y a la transformada inversa para proporcionar el residuo "descodificado" en el dominio de plxeles. A continuacion, la primera reconstruccion se filtra mediante una o varias clases de procesos de filtrado posterior. Estos filtros posteriores se aplican sobre el cuadro reconstruido, en el lado del codificador y el del descodificador, para que se utilice el mismo cuadro de referencia en ambos lados. El objetivo de este filtrado posterior es eliminar artefactos de compresion y mejorar la calidad de la imagen. Por ejemplo, H.264/AVC utiliza un filtro anti-efecto bloque. Este filtro puede eliminar los artefactos de efecto bloque debidos a la cuantificacion DCT de los residuos y a la compensation del movimiento de los bloques. En el estandar HEVC actual, se utilizan 3 tipos de filtros de bucle: filtro anti-efecto bloque, desplazamiento adaptativo de muestras (SAO, sample adaptive offset) y filtro de bucle adaptativo (ALF, adaptive loop filter).
La figura 1 es un diagrama de flujo que muestra las etapas de un proceso de filtrado de bucle de una implementation conocida de HEVC. En una etapa inicial -101-, el codificador o el descodificador genera la reconstruccion del cuadro completo. A continuacion, en la etapa -102- se aplica un filtro anti-efecto bloque sobre esta primera reconstruccion, para regenerar una reconstruccion sin bloques -103-. El objetivo del filtro anti-efecto bloque es eliminar artefactos de bloque generados mediante la cuantificacion de residuos y la compensacion del movimiento de bloques o la prediction de bloques Intra. Estos artefactos son visualmente importantes a tasas de bit bajas. El filtro anti-efecto bloque actua para suavizar los llmites de los bloques en funcion de las caracterlsticas de dos bloques contiguos. Se tiene en cuenta el modo de codification de cada bloque, los parametros de cuantificacion utilizados para la codificacion de los residuos y las diferencias de los plxeles contiguos en el llmite. Se aplica el mismo criterio/clasificacion para todos los cuadros y no se transmiten datos adicionales. El filtro anti-efecto bloque mejora la calidad visual del cuadro actual eliminando artefactos de efecto bloque, y mejora asimismo la estimation del movimiento y la compensacion del movimiento para los cuadros subsiguientes. De hecho, se eliminan las altas frecuencias de los artefactos de bloque, y por lo tanto no es necesario compensar estas frecuencias con la textura residual de los cuadros siguientes.
Despues del filtro anti-efecto bloque, la reconstruccion sin bloques es filtrada mediante un filtro de bucle de desplazamiento adaptativo de muestras (SAO) en la etapa -104-. El cuadro resultante -105- se filtra a continuacion con un filtro de bucle adaptativo (ALF) en la etapa -106-, para generar el cuadro reconstruido -107- que sera visualizado y utilizado como cuadro de referencia para los siguientes cuadros Inter.
El objetivo del filtro de bucle SAO y del ALF es mejorar la reconstruccion de los cuadros enviando datos adicionales, a diferencia del filtro anti-efecto bloque en que no se transmite ninguna information.
El principio del filtro de bucle SAO es clasificar cada pixel en una clase y sumar el mismo valor de desplazamiento al valor de pixel respectivo de cada pixel de la clase. Por lo tanto, se transmite un desplazamiento para cada clase. El filtrado de bucle SAO proporciona dos clases de clasificacion para un area del cuadro: desplazamiento de borde y desplazamiento de banda. La clasificacion de desplazamiento de borde implica determinar una clase para cada pixel comparando su valor de pixel correspondiente con los valores de pixel de dos plxeles contiguos. Ademas, los dos plxeles contiguos dependen de un parametro que indica la direction de los 2 plxeles contiguos. Estas direcciones son de 0 grados (direccion horizontal), de 45 grados (direccion diagonal), de 90 grados (direccion vertical) y de 135 grados (segunda direccion diagonal). La direccion que se tiene que utilizar se proporciona mediante un parametro SAO denominado sao_type_idx en las actuales especificaciones HEVC. Habitualmente, su valor varla de cero a cinco, tal como se muestra en la tabla 1 del Apendice. El sao_type_idx se utiliza asimismo para indicar si se tiene o no que llevar a cabo filtrado SAO y el tipo de filtrado SAO.
A titulo ilustrativo, el desplazamiento que se tiene que anadir a un valor de pixel (o muestra) C se puede determinar, para una direccion determinada, segun las reglas indicadas en la tabla 2 del Apendice, en la que Cni y Cn2 indican el valor de los dos plxeles contiguos o muestras (en funcion de la direccion determinada). Por consiguiente, cuando el valor C es menor que los dos valores Cni y Cn2, el desplazamiento que se tiene que anadir a C es +Oi, cuando el valor es menor que Cn1 o Cn2 e igual al otro valor (Cn1 o Cn2), el desplazamiento que se tiene que utilizar es +O2, cuando es mayor que Cn1 o Cn2 e igual que el otro valor (Cn1 o Cn2), el desplazamiento se tiene que utilizar es -O3, y cuando es mayor que Cn1 y Cn2, el desplazamiento que se tiene que utilizar es -O4. Cuando no se cumple ninguna de estas condiciones, no se anade ningun valor de desplazamiento al valor de pixel actual C.
Se debe observar que, en funcion del modo de desplazamiento de borde, solamente el valor absoluto de cada desplazamiento se codifica en el flujo de bits, determinandose el signo a aplicar en funcion de la categorla a la que pertenece el pixel actual. Por lo tanto, de acuerdo con la tabla 2 del Apendice, se asocia un desplazamiento positivo con las categorlas 1 y 2 mientras que se asocia un desplazamiento negativo con las categorlas 3 y 4.
El segundo tipo de clasificacion es una clasificacion de desplazamiento de banda, que depende del valor de pixel. Una clase en un desplazamiento de banda SAO corresponde a un intervalo de valores de pixel. Por lo tanto, se anade el mismo desplazamiento a todos los plxeles que tienen un valor de pixel comprendido en un intervalo determinado de valores de pixel.
5
10
15
20
25
30
35
40
45
50
55
60
65
Para que sea mas adaptativo al contenido del cuadro, el filtrado SAO se aplica sobre varias areas del cuadro, lo que divide el cuadro actual en varias zonas espaciales. Actualmente, las areas del cuadro corresponden a un numero finito de la unidad maxima de codificacion en HEVC. Por consiguiente, un area del cuadro puede o no ser filtrada mediante SAO, de tal modo que solamente algunas areas del cuadro se filtran. Ademas, cuando SAO esta activado, solamente se utiliza una clasificacion SAO: desplazamiento de borde o desplazamiento de banda, en funcion de los parametros relacionados, transmitidos para cada clasificacion. Finalmente, para cada nodo hoja SAO, se transmite la clasificacion SAO as! como sus parametros y los desplazamientos de todas las clases.
La imagen de datos de video a codificar se puede proporcionar como un conjunto de matrices bidimensionales (conocidas asimismo como canales de color) de valores de muestra, de las que cada entrada representa la intensidad de un componente de color, tal como una medida de la intensidad de la luma y la intensidad de la croma desde un color neutro de la escala de grises hacia azul o rojo (YUV), o como una medida de la intensidad del componente de luz roja, verde o azul (RGB). Un modelo yUv define un espacio de color en terminos de un componente de luma (Y) y dos componentes de croma(UV). Generalmente, Y se refiere al componente de luma y U y V son los componentes de croma (color).
Habitualmente, el filtrado SAO se aplica independientemente sobre el componente de luma y ambos componentes de croma U y B.
Una implementacion conocida del desplazamiento de banda SAO divide el intervalo de valores de pixel en 32 intervalos predefinidos del mismo tamano, tal como se representa en la figura 2. El valor mlnimo del intervalo de valores de pixel es siempre cero, y el valor maximo depende de la profundidad de bits de los valores de pixel segun la siguiente relacion Max = 2Profundldaddebits -1.
La division de todo el intervalo de valores de pixel en 32 intervalos permite la utilization de cinco bits para clasificar cada pixel, permitiendo una clasificacion rapida. Por consiguiente, solamente se comprueban 5 bits para clasificar un pixel en una de las 32 clases o intervalos del intervalo completo. Esto se realiza generalmente comprobando los cinco bits mas significativos de los valores codificados en 8 bits.
Por ejemplo, cuando la profundidad de bits es de 8 bits, el valor maximo posible de un pixel es de 255. Por lo tanto, el intervalo de valores de pixel esta entre 0 y 255. Para esta profundidad de bits de 8 bits, cada clase incluye un intervalo de 8 valores de pixel.
El objetivo del filtrado de banda SAO es el filtrado de pixeles pertenecientes a un grupo de cuatro intervalos o clases consecutivas que esta determinado por la primera clase o banda. Esta se transmite en el flujo de bits, de tal modo que el descodificador puede determinar los cuatro intervalos o clases consecutivas de pixeles a filtrar. El parametro que representa esta position es denominado sao_band_position en las actuales especificaciones HEVC.
A titulo ilustrativo, en la figura 2 se representa como un area gris un grupo de cuatro intervalos o clases consecutivas -201- a -204- de pixeles a filtrar. Tal como se ha descrito anteriormente, este grupo se puede identificar mediante su posicion (por ejemplo, sao_band_position). Segun el ejemplo facilitado, una clase o intervalo -201- se refiere a pixeles que tienen valores comprendidos entre 64 y 71. Analogamente, las clases o intervalos -202- a -204- se refieren a pixeles que tienen valores comprendidos entre 72 y 79, 80 y 87, 88 y 96, respectivamente.
La figura 3 es un diagrama de flujo que muestra las etapas de un procedimiento para seleccionar desplazamientos en un codificador para el area del cuadro actual -303- (normalmente, un bloque LCU correspondiente a un componente de la imagen procesada). El area del cuadro contiene N pixeles. En una etapa inicial -301-, las variables Sumj y SumNbPiXj se ajustan a un valor cero para cada uno de los cuatro intervalos. j indica el numero de clase o intervalo actual. Sumj indica la suma de la diferencia entre el valor de los pixeles en el intervalo j y el valor de sus correspondientes pixeles originales. SumNbPixj indica el numero de pixeles en el intervalo j.
En la etapa -302-, la variable de computo i se ajusta al valor cero. A continuation, el siguiente pixel Pi del area del cuadro -303- se obtiene en la etapa -304-, y el numero de clase J correspondiente al pixel actual Pi se obtiene en la etapa -305-. A continuacion, se realiza una prueba en la etapa -306- para determinar si el numero de clase J del pixel actual Pi corresponde o no al valor "N.A.", tal como se ha descrito anteriormente haciendo referencia a la tabla 2 del Apendice. Si el numero de clase J del pixel actual Pi corresponde al valor "N.A.", el valor de la variable de computo i se aumenta en una unidad para clasificar los pixeles subsiguientes en el area del cuadro -303-. De lo contrario, si el numero de clase J del pixel actual Pi no corresponde al valor "A/.A.", la variable SumNbPixj
P"rx
correspondiente al pixel actual Pi se aumenta en una unidad y la diferencia entre Pi y su valor original1 / se anade a Sumj en la etapa -307-.
En la siguiente etapa, la variable de computo i se aumenta en una unidad para aplicar la clasificacion a los otros pixeles del area del cuadro -303-. En la etapa -309-, se determina si se han clasificado o no todos los pixeles N del area del cuadro -303- (es decir, si i >= N), en caso afirmativo, se calcula un Offsetj (desplazamiento) para cada clase
5
10
15
20
25
30
35
40
45
50
55
60
en la etapa -310- con el fin de producir una tabla de desplazamientos -311- que presenta un desplazamiento para cada clase j, como resultado final del algoritmo de selection de desplazamientos. Este desplazamiento se calcula como el promedio de la diferencia entre los valores de pixel de los pfxeles de clase j y sus respectivos valores de pixel originales. El Offsetj para la claseyviene dado porla siguiente ecuacion:
Sum,
Offset, =----------------------
SumNbPiXj
El desplazamiento calculado Offsetj se puede considerar un desplazamiento optimo en terminos de distorsion. En lo que sigue, este es denominado Ooptj. A partir de este desplazamiento, es posible determinar un valor de desplazamiento mejorado O_RDj en funcion de un criterio de tasa-distorsion.
La figura 4 es un diagrama de flujo que muestra las etapas de un procedimiento para determinar un desplazamiento mejorado segun un criterio de tasa-distorsion. En una etapa inicial -401-, el valor de tasa-distorsion Jj del numero de clase o intervalo actual j se inicializa a un valor posible maximo predeterminado (MAX_VALUE).
A continuation, se lanza un bucle en la etapa -402- para hacer que el desplazamiento Oj varfe desde Ooptj hasta cero. Si el valor Ooptj es negativo, la variable Oj se aumenta en una unidad hasta llegar a cero, y si el valor Ooptj es positivo, la variable Oj se disminuye en una unidad hasta llegar a cero.
En la etapa -403-, se calcula el coste de tasa-distorsion relacionado con la variable Oj, denominado J(Oj), por ejemplo segun la formula siguiente:
imagen1
A es el parametro de Lagrange y R(Oj) es una funcion que proporciona el numero de bits necesarios para la palabra de codigo asociada a Oj. La parte de la formula correspondiente a SumNbPiXj x 0j x 0j - Sumj x 0j x 2 se refiere a la mejora en terminos de distorsion proporcionada por el desplazamiento Oj.
En la etapa -404-, los valores J(Oj) y Jj son comparados entre si. Si el valor J(O) es menor que el valor Jj, entonces Jj se ajusta al valor de J(Oj) y O_RDj se ajusta al valor de Oj.
En la etapa -405-, se determina si se han procesado o no todos los posibles valores del desplazamiento Oj (es decir, si Oj = 0). Si el desplazamiento Oj es igual a cero, el bucle finaliza y se ha identificado un valor de desplazamiento mejorado (O_RDj) para la clase j. De lo contrario, el bucle continua con el siguiente valor Oj.
Se debe observar que el algoritmo descrito haciendo referencia a la figura 3 puede ser utilizado para determinar una position de una primera clase o intervalo (sao_band_position) en funcion del tipo de clasificacion de desplazamiento de banda. A este respecto, el fndice j representa un valor del intervalo [0, 32] (en lugar de [1,4]). En otras palabras, el valor 4 es sustituido por el valor 32 en los modulos -301-, -310- y -311- de la figura 3.
Mas especfficamente, se puede calcular la diferencia Sumj entre el valor del pixel actual y su valor original Porg, para cada una de las 32 clases representadas en la figura 2, es decir para cada intervalo j (perteneciendo j al intervalo [0, 32]).
A continuacion, se puede calcular un desplazamiento mejorado O_RDj en terminos de la tasa-distorsion para las 32 clases, segun un algoritmo similar al descrito haciendo referencia a la figura 4.
A continuacion se puede determinar la posicion de la primera clase o intervalo.
La figura 5 es un diagrama de flujo que muestra las etapas de un procedimiento para la determination de una posicion de banda SAO para el desplazamiento de banda SAO de HEVC. Dado que estas etapas se llevan a cabo despues de las descritas haciendo referencia a la figura 4, el valor de tasa-distorsion indicado como Jj se ha calculado ya para cada clase j.
En una etapa inicial -501-, el valor J de tasa-distorsion se inicializa a un valor posible maximo predeterminado (MAX_VALUE). A continuacion, se lanza un bucle en la etapa -502- para hacer que el fndice i varfe de cero a 27, correspondiente a las 28 posibles posiciones de la primera clase del grupo de cuatro clases consecutivas.
En la etapa -503-, la variable Jj correspondiente al valor de tasa-distorsion de la banda actual, es decir la banda que comprende cuatro clases consecutivas desde la clase que tiene el fndice i, se inicializa a cero. A continuacion, se lanza un bucle en la etapa -504- para hacer que el fndice j varfe de i a i+3, lo que corresponde a las 4 clases de la banda actual.
5
10
15
20
25
30
35
40
45
50
55
60
65
Despues, en la etapa -505-, el valor de la variable Jj se incrementa mediante el valor de la tasa-distorsion de la clase que tiene el indice j (Jj). Esta etapa se repite para las cuatro clases de la banda actual, es decir hasta que el indice j llega a i+3 (etapa -506-). En la etapa -507-, se realiza una prueba para determinar si el valor de tasa-distorsion Jj de la banda actual es o no menor que el valor de tasa-distorsion J. Si el valor de la tasa-distorsion Jj de la banda actual es menor que el valor de tasa-distorsion J, el valor de la tasa-distorsion se ajusta al valor de la tasa-distorsion Jj de la banda actual, y el valor de posicion de la banda denominado sao_band_position se ajusta al valor del indice i.
Estas etapas se repiten para las 28 posibles posiciones de la primera clase del grupo de cuatro clases consecutivas (etapa -508-) para determinar la posicion de la banda a utilizar.
La figura 6 es un diagrama de flujo que muestra las etapas de un procedimiento para el filtrado de un area del cuadro, habitualmente un bloque LCU correspondiente a un componente de una imagen procesada, de acuerdo con un filtro de bucle SAO.
Dicho algoritmo se implementa generalmente en el descodificador para descodificar cuadros, y en el codificador para generar cuadros de referencia que se utilizan para estimacion y compensation del movimiento de los cuadros siguientes.
En una etapa inicial -601-, se obtienen parametros de filtrado SAO, por ejemplo a partir de un flujo de bits recibido. Para un area del cuadro determinada, estos parametros comprenden habitualmente cuatro desplazamientos que pueden ser almacenados en la tabla -603- y un parametro del sao_type_idx. Dependiendo de este ultimo, dichos parametros pueden comprender ademas una posicion de banda SAO. A titulo ilustrativo, si un parametro obtenido del tipo sao_type_idx es igual a cinco, se puede obtener (-602-) el correspondiente parametro del tipo sao_band_position. Se pueden obtener otros parametros como los que permiten determinar el valor de un parametro SAO de un area del cuadro determinada, en funcion del valor del correspondiente parametro de un area del cuadro anterior. Se debe tener en cuenta que un valor determinado de un parametro SAO dado, tal como el valor cero para el parametro sao_type_idx, puede indicar que no se tiene que aplicar un filtrado SAO.
En la etapa -604-, la variable de computo i se ajusta al valor cero. A continuation, el primer pixel Pi del area del cuadro -605-, que comprende N pixeles, es obtenido en la etapa -606- y clasificado en la etapa -607- de acuerdo con la clasificacion de desplazamiento de borde o la clasificacion de desplazamiento de banda, tal como se ha descrito anteriormente.
En la etapa -608- se realiza una prueba para determinar si el pixel Pi pertenece o no a la clase de pixeles a filtrar. Si el pixel Pi pertenece a la clase de pixeles a filtrar, se identifica su numero de clase j relacionado y se obtiene su valor de desplazamiento relacionado Offsetj en la etapa -610-, a partir de la tabla de desplazamientos -603-. A continuacion, en la etapa -611-, se anade el Offsetj al valor de pixel Pi para producir un nuevo valor de pixel denominado Pi (-612-). En la etapa -613-, el pixel Pi sustituye el pixel Pi en el area procesada -616- del cuadro. De lo contrario, si el pixel Pi no pertenece a la clase de pixeles a filtrar, el pixel Pi -609- permanece sin cambios en el area del cuadro, en la etapa -613-.
A continuacion, despues de haber procesado el pixel Pi, la variable de computo i se aumenta en una unidad en la etapa -614-, para aplicar el filtro de manera similar al siguiente pixel del area del cuadro actual -605-.
En la etapa -615- se determina si han sido o no procesados todos los N pixeles del area del cuadro actual -605- (i > N). En caso afirmativo, el area procesada -616- del cuadro se reconstruye y se puede anadir al cuadro reconstruido SAO, tal como se ha descrito anteriormente haciendo referencia a la figura 1 (referencia -105-).
Hay information adicional sobre propuestas para filtrado SAO en HEVC en el documento de Chinh-Ming-Fu y otros: "Sample adaptive offset for HEVC" ("desplazamiento adaptativo de muestras para HEVC"), MULTIMEDIA SIGNAL PROCESSING (MMSP), 2011, IEEE 13TH INTERNATIONAL WORKSHOP ON, IEEE, 17 de octubre de 2011 (17/10/2011), paginas 1 a 5, XP032027547.
Un inconveniente del proceso conocido para la seleccion y transmision de compensaciones es que es necesario transmitir un gran numero de parametros del codificador al descodificador y almacenarlos en una memoria tampon SAO. Ademas, el proceso llevado a cabo por el descodificador para descodificar y procesar estos parametros es complejo.
La presente invencion ha sido concebida para solucionar uno o varios de los problemas mencionados.
El documento EP 2 237 557 A1 da a conocer la determination de datos de filtrado a partir de, por lo menos, una senal de prediction, una senal de error de prediction y una senal de video reconstruido, en base a condicionantes estadisticos entre, por lo menos, dos senales. A continuacion se configura el filtro, y las senales se filtran en consecuencia.
5
10
15
20
25
30
35
40
45
50
55
60
65
El documento EP 2 728 865 A2, que es un documento que forma parte de la tecnica actual en virtud del artlculo 54(3) EPC, da a conocer la realizacion de una prediccion y la recuperacion de parametros de desplazamiento de, por lo menos, un componente de color entre un componente de luma y componentes de croma del bloque actual, haciendo referencia a los parametros de desplazamiento de cada uno de los otros bloques entre los parametros de desplazamiento. En un ejemplo de prediccion, un bloque luma en la misma posicion que un bloque croma actual se anade a una lista de candidatos del bloque croma actual, y de ese modo se puede predecir un parametro de desplazamiento del bloque croma actual haciendo referencia a un parametro de desplazamiento del bloque luma. En otro ejemplo, se codifican parametros de desplazamiento en base a relaciones predeterminadas, expresadas en terminos de una ecuacion de prediccion de desplazamiento de croma, entre los parametros de desplazamiento del componente de luma y los componentes de croma. El componente U y el componente V pueden compartir parametros de correlacion utilizados en la ecuacion de prediccion.
El documento WO 2012/142966 A1, otro documento que forma parte de la tecnica actual en virtud del artlculo 54(3) EPC, da a conocer que los desplazamientos para los componentes de croma y de luma se pueden compartir cuando se selecciona un desplazamiento de tipo borde (EO).
El documento WO 2012/155553 A1, otro documento que forma parte de la tecnica actual en virtud del artlculo 54(3) EPC, da a conocer que los componentes de croma Cb y Cr pueden compartir los mismos parametros SAO (SAOP) y, por lo tanto, solo es necesario transmitir un conjunto de SAOP a compartir por Cb y Cr.
Segun un primer aspecto de la presente invencion, se da a conocer un procedimiento de codificacion tal como se define mediante las reivindicaciones adjuntas 1 a 3.
Teniendo en cuenta las interdependencias entre componentes, la invencion hace posible mejorar la eficiencia de codificacion de SAO, reducir la memoria tampon necesaria para almacenar parametros SAO y reducir la complejidad de la clasificacion.
Segun un segundo aspecto de la presente invencion, se da a conocer un procedimiento de descodificacion, tal como se define mediante las reivindicaciones adjuntas 3 a 6.
Segun un tercer aspecto de la presente invencion, se da a conocer un dispositivo de codificacion, tal como se define mediante las reivindicaciones 9 a 11.
Segun un cuarto aspecto de la presente invencion, se da a conocer un dispositivo de descodificacion, tal como se define mediante las reivindicaciones 12 a 14.
Por lo menos, partes de los procedimientos segun la invencion se pueden implementar mediante ordenador. Por consiguiente, la presente invencion puede adoptar la forma de una realizacion Integramente de hardware, una realizacion Integramente de software (incluyendo software inalterable, software residente, microcodigo, etc.) o una realizacion que combine aspectos de software y hardware, que en general se pueden denominar todas ellas conjuntamente en la presente memoria como un "circuito", "modulo" o "sistema". Ademas, la presente invencion puede adoptar la forma de un producto de programa informatico incorporado en cualquier medio de expresion tangible que tenga un codigo de programa utilizable por ordenador incorporado en el medio.
Dado que la presente invencion se puede implementar en software, la presente invencion se puede realizar como codigo legible por ordenador para suministrarla a un aparato programable en cualquier medio portador adecuado. Un medio portador tangible puede comprender un medio de almacenamiento tal como un disco flexible, un CD-ROM, una unidad de disco duro, un dispositivo de cinta magnetica o un dispositivo de memoria de estado solido, y similares. Un medio portador transitorio puede incluir una senal, tal como una senal electrica, una senal electronica, una senal optica, una senal acustica, una senal magnetica o una senal electromagnetica, por ejemplo una senal de microondas o de RF.
Por lo tanto, segun un quinto aspecto de la presente invencion, se da a conocer un producto de programa informatico para un aparato programable, siendo el producto de programa informatico tal como se define mediante la reivindicacion 7.
De manera similar, segun un sexto aspecto de la presente invencion, se da a conocer un medio de almacenamiento legible por ordenador, tal como se define mediante la reivindicacion 8.
A continuacion se describiran realizaciones de la invencion, solamente a modo de ejemplo, y haciendo referencia a los siguientes dibujos, en los cuales:
la figura 1 es un diagrama de flujo que muestra las etapas de un proceso de filtrado de bucle de la tecnica anterior;
la figura 2 muestra graficamente una clasificacion de desplazamiento de banda adaptativo de muestras de un proceso HEVC de la tecnica anterior;
5
10
15
20
25
30
35
40
45
50
55
60
65
la figura 3 es un diagrama de flujo que muestra las etapas de un proceso para determinar desplazamientos de compensation para un desplazamiento de banda SAO de HEVC;
la figura 4 es un diagrama de flujo que muestra un proceso para seleccionar un desplazamiento SAO desde un punto de vista de tasa-distorsion;
la figura 5 es un diagrama de flujo que muestra las etapas de un procedimiento para la determination de una position de banda SAO para el desplazamiento de banda SAO de HEVC.
la figura 6 es un diagrama de flujo que muestra las etapas de un procedimiento para el filtrado de un area del cuadro, segun un filtro de bucle SAO;
la figura 7 es un diagrama de bloques que muestra esquematicamente un sistema de comunicacion de datos en el que se pueden implementar una o varias realizaciones de la invention;
la figura 8 es un diagrama de bloques que muestra componentes de un dispositivo de procesamiento en el que se pueden implementar una o varias realizaciones de la invencion;
la figura 9 es un diagrama de flujo que muestra las etapas de un procedimiento de codification acorde con realizaciones de la invencion;
la figura 10 es un diagrama de flujo que muestra las etapas de un proceso de filtrado de bucle, de acuerdo con una o varias realizaciones de la invencion;
la figura 11 es un diagrama de flujo que muestra las etapas de un procedimiento de descodificacion, segun realizaciones de la invencion;
la figura 12 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener parametros SAO a partir de un flujo de bits, de acuerdo con un modo de un conjunto de parametros adaptativos;
la figura 13 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener parametros SAO a partir de un flujo de bits, de acuerdo con un modo LCU;
la figura 14 es un diagrama de flujo que muestra las etapas de un procedimiento para leer parametros SAO en un flujo de bits;
las figuras 15 y 16 son diagramas de flujo que muestran etapas de un procedimiento para determinar parametros a utilizar en un filtro de bucle para el procesamiento de un area del cuadro actual;
la figura 17 muestra un ejemplo segun el cual los valores de los desplazamientos asociados con un componente corresponden a los valores especulares de los desplazamientos asociados con un segundo componente;
la figura 18 muestra como se pueden obtener valores de desplazamientos asociados con un segundo componente, a partir de valores de desplazamientos asociados con un primer componente, cuando se aplica un filtro de bucle SAO utilizando una clasificacion de desplazamiento de banda;
la figura 19 muestra como se puede obtener un valor de un parametro sao_band_position asociado con un segundo componente Z, a partir del valor del parametro sao_band_position asociado con un primer componente X, cuando se aplica un filtro de bucle SAO utilizando una clasificacion de desplazamiento de banda;
la figura 20 es un diagrama de flujo que muestra las etapas de un procedimiento para determinar un desplazamiento optimo a utilizar por dos o tres componentes, de acuerdo con un criterio de tasa-distorsion;
la figura 21 es un diagrama de flujo que muestra las etapas de un procedimiento para determinar una posicion de banda SAO compartida entre dos componentes;
la figura 22 es un diagrama de flujo que muestra las etapas de un procedimiento para descodificar un flujo de bits; y
la figura 23 muestra la utilization de clasificacion SAO de un componente X para filtrar de manera similar otro componente Z.
La figura 7 muestra un sistema de comunicacion de datos en el que se pueden implementar una o varias realizaciones de la invencion. El sistema de comunicacion de datos comprende un dispositivo de transmision, en este caso un servidor -701-, que puede funcionar para transmitir paquetes de datos de un flujo de datos a un dispositivo receptor, en este caso el terminal cliente -702-, por medio de una red de comunicacion de datos -700-. La
5
10
15
20
25
30
35
40
45
50
55
60
65
red de comunicacion de datos -700- puede ser una red de area extensa (WAN, Wide area Network) o una red de area local (LAN, Local Area Network). Una red de este tipo puede ser, por ejemplo, una red inalambrica (Wifi / 802.11a o b, o g), una red Ethernet, una red de internet o una red mixta compuesta de varias redes diferentes. En una realizacion particular de la invencion, el sistema de comunicacion de datos puede ser un sistema de difusion de television digital en el que el servidor -701- envla el mismo contenido de datos a multiples clientes.
El flujo de datos -704- proporcionado por el servidor -701- puede estar compuesto de datos multimedia que representan datos de video y de audio. En algunas realizaciones de la invencion, los flujos de datos de audio y de video pueden ser capturados por el servidor -701- utilizando un microfono y una camara, respectivamente. En algunas realizaciones, los flujos de datos pueden ser almacenados en el servidor -701- o recibidos por el servidor -701- desde otro proveedor de datos, o generados en el servidor -701-. El servidor -701- esta dotado de un codificador para codificar flujos de video y de audio, en particular para proporcionar un flujo de bits comprimido para transmision, que es una representacion mas compacta de los datos presentados como entrada al codificador.
Para obtener una mejor relacion de la calidad de los datos transmitidos frente a la cantidad de datos transmitidos, la compresion de los datos de video puede ser, por ejemplo, acorde con el formato HEVC o con el formato H.264/AVC.
El cliente -702- recibe el flujo de bits transmitido y descodifica el flujo de bits reconstruido para reproducir imagenes de video en un dispositivo de visualizacion, y datos de audio mediante un altavoz.
Aunque en el ejemplo de la figura 7 se considera un escenario de transmision continua, se apreciara que en algunas realizaciones de la invencion la comunicacion de datos entre el codificador y el descodificador se puede llevar a cabo utilizando, por ejemplo, un dispositivo de almacenamiento multimedia, tal como un disco optico.
En una o varias realizaciones de la invencion, una imagen de video es transmitida con datos que representan desplazamientos de compensation para su aplicacion a plxeles reconstruidos de la imagen con el fin de proporcionar plxeles filtrados en la imagen final.
La figura 8 muestra esquematicamente un dispositivo de procesamiento -800- configurado para implementar, por lo menos, una realizacion de la presente invencion. El dispositivo de procesamiento -800- puede ser un dispositivo, tal como un microordenador, una estacion de trabajo o un dispositivo portatil ligero. El dispositivo -800- comprende un bus de comunicacion -813- conectado a:
- una unidad central de procesamiento -811-, tal como un microprocesador, denominada CPU;
- una memoria de solo lectura -807-, denominada ROM, para almacenar programas informaticos para la implementation de la invencion;
- una memoria de acceso aleatorio -812-, denominada RAM, para almacenar el codigo ejecutable del procedimiento de las realizaciones de la invencion, as! como los registros adaptados para registrar variables y parametros necesarios para implementar el procedimiento de codification de una secuencia de imagenes digitales y/o el procedimiento de descodificacion de un flujo de bits, segun las realizaciones de la invencion; y
- una interfaz de comunicacion -802- conectada a una red de comunicacion -803- sobre la que son transmitidos o recibidos datos a procesar.
Opcionalmente, el aparato -800- puede incluir asimismo los siguientes componentes:
- un medio de almacenamiento de datos -804-, tal como un disco duro, para almacenar programas informaticos para la implementacion de procedimientos de una o varias realizaciones de la invencion, y datos utilizados o producidos durante la implementacion de una o varias realizaciones de la invencion;
- una unidad de disco -805- para un disco -806-, estando adaptada la unidad de disco para leer datos del disco -806- o escribir datos en dicho disco;
- una pantalla -809- para visualizar datos y/o servir como interfaz grafica con el usuario, por medio de un teclado -810- o cualquier otro medio de serialization.
El aparato -800- puede estar conectado a varios perifericos, tales como por ejemplo una camara digital -820- o un microfono -808-, estando cada uno conectado a una tarjeta de entrada/salida (no mostrada) para suministrar datos multimedia al aparato -800-.
El bus de comunicacion proporciona comunicacion e interoperabilidad entre los diversos elementos incluidos en el aparato -800- o conectados al mismo. La representacion del bus no es limitativa, y en particular la unidad central de proceso puede funcionar para comunicar instrucciones a cualquier elemento del aparato -800-, directamente o por medio de otro elemento del aparato -800-.
5
10
15
20
25
30
35
40
45
50
55
60
65
El disco -806- puede ser sustituido por cualquier medio de informacion, tal como por ejemplo un disco compacto (CD-ROM), regrabable o no, un disco ZIP o una tarjeta de memoria y, en terminos generales, por un medio de almacenamiento de informacion que pueda ser leldo por un microordenador o por un microprocesador, integrado o no en el aparato, posiblemente extralble y adaptado para almacenar uno o varios programas cuya ejecucion permite implementar el procedimiento de codificar una secuencia de imagenes digitales y/o el procedimiento de descodificar un flujo de bits, segun la invencion.
El codigo ejecutable puede estar almacenado bien en la memoria de solo lectura -807-, el disco duro -804- o en un medio digital extralble, tal como por ejemplo un disco -806- como el descrito anteriormente. Segun una variante, el codigo ejecutable de los programas puede ser recibido por medio de la red de comunicacion -803-, por medio de la interfaz -802-, para ser almacenado en uno de los medios de almacenamiento del aparato -800- antes de ser ejecutado, tal como el disco duro -804-.
La unidad central de procesamiento -811- esta adaptada para controlar y dirigir la ejecucion de las instrucciones o partes del codigo de software del programa o programas segun la invencion, instrucciones que estan almacenadas en uno de los medios de almacenamiento mencionados anteriormente. Al encendido, el programa o programas que estan almacenados en una memoria no volatil, por ejemplo en el disco duro -804- o en la memoria de solo lectura -807-, son transferidos a la memoria de acceso aleatorio -812-, que contiene a continuacion el codigo ejecutable del programa o programas, as! como registros para almacenar las variables y parametros necesarios para implementar la invencion.
En esta realizacion, el aparato es un aparato programable que utiliza software para implementar la invencion. Sin embargo, alternativamente, la presente invencion se puede implementar en hardware (por ejemplo, en forma de un circuito integrado de aplicacion especlfica o ASIC).
La figura 9 muestra un diagrama de bloques de un codificador -900- segun, por lo menos, una realizacion de la invencion. El codificador esta representado por modulos conectados, estando adaptado cada modulo para implementar, por ejemplo en forma de instrucciones de programacion a ejecutar mediante la CPU -811- del dispositivo -800-, por lo menos, la correspondiente etapa de un procedimiento que implementa, por lo menos, una realizacion de codificacion de una imagen de una secuencia de imagenes, segun una o varias realizaciones de la invencion.
Una secuencia original de imagenes digitales i0 a in -901- es recibida como entrada por el codificador -900-. Cada imagen digital esta representada por un conjunto de muestras, conocidas como plxeles.
Un flujo de bits -910- es emitido por el codificador -900- despues de la implementacion del proceso de codificacion. El flujo de bits -910- comprende una serie de unidades de codificacion o segmentos, comprendiendo cada segmento la cabecera del segmento para transmitir valores de codificacion de parametros de codificacion utilizados para codificar el segmento, y el cuerpo del segmento que comprende datos de video codificados.
Las imagenes digitales de entrada i0 a in -901- son divididas en bloques de plxeles mediante el modulo -902-. Los bloques corresponden a partes de la imagen y pueden ser de tamanos variables (por ejemplo 4x4, 8x8, 16x16, 32x32, 64x64 plxeles). Se selecciona un modo de codificacion para cada bloque de entrada. Estan dispuestas dos familias de modos de codificacion: modos de codificacion basados en codificacion de prediccion espacial (prediccion Intra) y modos de codificacion basados en prediccion temporal (codificacion Inter, Merge, SKIP). Se prueban los posibles modos de codificacion.
El modulo -903- implementa un proceso de prediccion Intra, en el que el bloque determinado para ser codificado se predice mediante un predictor calculado a partir de plxeles de las proximidades de dicho bloque a codificar. Si se selecciona codificacion Intra, se codifica una indicacion del predictor Intra seleccionado y la diferencia entre el bloque determinado y su predictor, para proporcionar un residuo.
Se implementa la prediccion temporal mediante el modulo -904- de estimacion del movimiento y el modulo -905- de compensation del movimiento. En primer lugar, se selecciona una imagen de referencia de entre un conjunto de imagenes de referencia -916-, y mediante el modulo -904- de estimacion del movimiento se selecciona una parte de la imagen de referencia, denominada asimismo parte de imagen o area de referencia, que es el area mas proxima al bloque determinado para ser codificado. A continuacion, el modulo -905- de compensacion del movimiento predice el bloque a codificar utilizando el area seleccionada. La diferencia entre el area de referencia seleccionada y el bloque determinado, denominada asimismo bloque residual, se calcula mediante el modulo -905- de compensacion del movimiento. El area de referencia seleccionada se indica mediante un vector de movimiento.
Por lo tanto, en ambos casos (prediccion espacial y temporal), se calcula un residuo restando la prediccion del bloque original.
5
10
15
20
25
30
35
40
45
50
55
60
65
En la prediccion INTRA implementada mediante el modulo -903-, se codifica una direccion de prediccion. En la prediction temporal, se codifica, por lo menos, un vector de movimiento.
Si se selecciona la prediccion Inter, se codifica information relativa al vector de movimiento y al bloque residual. Para reducir adicionalmente la tasa de bits, suponiendo que el movimiento es homogeneo, el vector de movimiento se codifica mediante la diferencia con respecto a un predictor del vector de movimiento. Se obtienen predictores de vector de movimiento de un conjunto de predictores de informacion de movimiento, a partir del campo de vectores de movimiento -918- mediante un modulo -917- de prediccion y codification de vectores de movimiento.
El codificador -900- comprende ademas un modulo de selection -906- para la selection del modo de codificacion aplicando un criterio de coste de codificacion, tal como un criterio de tasa-distorsion. Para reducir adicionalmente las redundancias se aplica una transformada (tal como DCT) mediante el modulo de transformada -907- al bloque residual, los datos de la transformada obtenidos son cuantificados a continuation mediante el modulo de cuantificacion -908- y son sometidos a codificacion entropica mediante el modulo de codificacion entropica -909-. Finalmente, el bloque residual codificado, del bloque actual que esta siendo codificado, es introducido en el flujo de bits -910-.
El codificador -900- lleva a cabo asimismo la descodificacion de la imagen codificada, para producir una imagen de referencia de la estimation del movimiento de las imagenes subsiguientes. Esto permite que el codificador y el descodificador que reciben el flujo de bits tengan los mismos cuadros de referencia. El modulo -911- de cuantificacion inversa lleva a cabo una cuantificacion inversa de los datos cuantificados, seguida por una transformada inversa mediante el modulo -912- de transformada inversa. El modulo -913- de prediccion intra inversa utiliza la informacion de prediccion para determinar que predictor utilizar para un bloque determinado, y el modulo -914- de compensation del movimiento inversa suma en realidad el residuo obtenido por el modulo -912- al area de referencia obtenida a partir del conjunto de imagenes de referencia -916-.
A continuacion se aplica a un filtrado posterior mediante el modulo -915- para filtrar el cuadro de plxeles reconstruido. En las realizaciones de la invention se utiliza un filtro de bucle SAO en el que los desplazamientos de compensacion se suman a los valores de pixel de los plxeles reconstruidos de la imagen reconstruida.
La figura 10 es un diagrama de flujo que muestra las etapas de un proceso de filtrado de bucle, segun, por lo menos, una realization de la invencion. En una etapa inicial -1001-, el codificador genera la reconstruction del cuadro completo. A continuacion, en la etapa -1002- se aplica un filtro anti-efecto bloque sobre esta primera reconstruccion, para regenerar una reconstruccion sin bloques -1003-. El objetivo del filtro anti-efecto bloque es eliminar artefactos de bloque generados mediante la cuantificacion de residuos y la compensacion del movimiento de bloques o la prediccion Intra de bloques. Estos artefactos son visualmente importantes a tasas de bit bajas. El filtro anti-efecto bloque actua para suavizar los llmites de los bloques en funcion de las caracterlsticas de dos bloques contiguos. Se tiene en cuenta el modo de codificacion de cada bloque, los parametros de cuantificacion utilizados para la codificacion de los residuos y las diferencias de los plxeles contiguos en el limite. Se aplica el mismo criterio/clasificacion a todos los cuadros y no se transmiten datos adicionales. El filtro anti-efecto bloque mejora la calidad visual del cuadro actual eliminando artefactos de efecto bloque, y mejora asimismo la estimacion del movimiento y la compensacion del movimiento para los cuadros subsiguientes. De hecho, se eliminan las altas frecuencias de los artefactos de bloque, y por lo tanto no es necesario compensar estas frecuencias con el residuo de textura de los cuadros siguientes.
Despues del filtro anti-efecto bloque, la reconstruccion sin bloques es filtrada por un filtro de bucle de desplazamiento adaptativo de muestras (SAO) en la etapa -1004-, en base a una clasificacion de pixeles. El cuadro resultante -1005- se puede filtrar a continuacion con un filtro de bucle adaptativo (ALF) en la etapa -1006-, para generar el cuadro reconstruido -1007- que sera visualizado y utilizado como cuadro de referencia para los siguientes cuadros Inter.
En la etapa -1004-, cada pixel del area del cuadro es clasificado en una clase de la clasificacion determinada, segun su valor de pixel. La clase corresponde a un intervalo determinado de valores de pixel. Se suma el mismo valor de desplazamiento de compensacion al valor de pixel de todos los plxeles que tienen un valor de pixel dentro del intervalo determinado de valores de pixel.
La codificacion y/o la descodificacion de los parametros SAO a intercambiar entre un servidor y un cliente, y/o almacenados local o remotamente, para descodificar plxeles para el filtrado de desplazamiento adaptativo de muestras, sera explicada con mas detalle a continuacion haciendo referencia a cualquiera de las figuras 12 a 23.
La figura 11 muestra un diagrama de bloques de un descodificador -1100- que puede ser utilizado para recibir datos de un codificador segun una realizacion de la invencion. El descodificador esta representado mediante modulos conectados, estando cada modulo adaptado para implementar, por ejemplo en forma de instrucciones de programacion a ejecutar por la CPU -811- del dispositivo -800-, la correspondiente etapa de un procedimiento implementado por el descodificador -1100-.
5
10
15
20
25
30
35
40
45
50
55
60
65
El descodificador -1100- recibe un flujo de bits -1101- que comprende unidades de codificacion, cada una de las cuales se compone de una cabecera que contiene informacion sobre los parametros de codificacion y un cuerpo que contiene los datos de video codificados. Tal como se ha explicado con respecto a la figura 9, el video codificado es codificado por entropla, y los Indices de los predictores del vector de movimiento se codifican, para un bloque determinado, sobre un numero predeterminado de bits. Los datos de video codificados recibidos, son descodificados por entropla mediante el modulo -1102-. A continuation, los datos de residuo son descuantificados mediante el modulo -1103- y a continuacion se aplica una transformada inversa mediante el modulo -1104- para obtener valores de pixel.
Los datos de modo que indican el modo de codificacion son asimismo descodificados entropicamente, y en base al modo, se lleva a cabo una descodificacion de tipo INTRA o una descodificacion de tipo INTER sobre los bloques codificados de datos de imagen.
En el caso del modo INTRA, se determina un predictor INTRA mediante un modulo de prediction inversa intra -1105- en base al modo de prediccion intra especificado en el flujo de bits.
Si el modo es INTER, la informacion de prediccion del movimiento es extraida del flujo de bits para encontrar el area de referencia utilizada por el codificador. La informacion de prediccion del movimiento se compone del indice del cuadro de referencia y del residuo del vector de movimiento. El predictor del vector de movimiento se suma al residuo del vector de movimiento para obtener el vector de movimiento mediante el modulo -1110- de descodificacion del vector de movimiento.
El modulo -1110- de descodificacion del vector de movimiento aplica una descodificacion de vectores de movimiento a cada bloque actual codificado mediante prediccion de movimiento. Una vez se ha obtenido un indice del predictor del vector de movimiento para el bloque actual, el valor real del vector de movimiento asociado con el bloque actual puede ser descodificado y utilizado para aplicar la compensation del movimiento inversa mediante el modulo -1106-. La parte de la imagen de referencia indicada mediante el vector de movimiento descodificado es extraida de una imagen de referencia -1108- para aplicar la compensacion del movimiento inversa -1106-. Los datos de campo -1111- del vector de movimiento son actualizados con el vector de movimiento descodificado para su utilization para la prediccion inversa de los subsiguientes vectores de movimiento descodificados.
Finalmente, se obtiene un bloque descodificado. Se aplica un filtrado posterior mediante el modulo -1107- de filtrado posterior, de manera similar al modulo -915- de filtrado posterior aplicado en el codificador que se ha descrito haciendo referencia a la figura 9. Finalmente, el descodificador -1000- proporciona una senal de video descodificada -1109-.
La figura 12 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener parametros SAO a partir de un flujo de bits, de acuerdo con un modo de conjunto de parametros adaptativos (APS). Por consiguiente, la figura 12 muestra como se almacenan los parametros sAo en un flujo de bits cuando se utiliza el modo de conjunto de parametros adaptativos para asociar un solo conjunto de parametros SAO por cada area del cuadro. De acuerdo con este modo, un conjunto de parametros SAO es valido para un area del cuadro rectangular cuyo tamano es un multiplo del tamano de la unidad maxima de codificacion (LCU). Con el fin de reducir la cantidad de bits para almacenar la totalidad de los parametros SAO de un cuadro para este modo determinado, se utiliza una tecnica de codificacion por longitud de serie asi como un indicador de prediccion a partir del area del cuadro anterior.
Segun el modo APS implementado en las actuales especificaciones de HEVC, hay indicadores que indican si esta o no activado el filtrado de bucle SAO para los componentes de una imagen determinada. Esto significa que, por ejemplo, cuando se considera una imagen codificada segun el esquema YUV, los parametros SAO para el componente U o el componente de V pueden estar activados o desactivados.
Dichos indicadores son leidos en una etapa inicial -1201-. A continuacion, en la etapa -1202-, se obtiene el tamano del area del cuadro a la que se tiene que aplicar un conjunto de parametros SAO. Tal como se ha descrito anteriormente, el area del cuadro en la que se tiene que aplicar el filtrado de bucle SAO cuando se utiliza el modo APS corresponde a un area que es igual al tamano de la LCU o que corresponde a un tamano multiplo del tamano de la LCU.
A continuacion se lanza un bucle en la etapa -1203- para tratar sucesivamente cada componente de color de la secuencia, denominado X. Este bucle permite leer el indicador de "unicidad" para cada componente, lo cual se lleva a cabo en la etapa -1204-. A continuacion, se lleva a cabo una prueba en la etapa -1205- para determinar si el indicador de "unicidad" es o no verdadero. Si el indicador de "unicidad" leido es verdadero, existe solamente un unico conjunto de parametros SAO, en relation con el actual componente X procesado, para toda la imagen. En ese caso, los parametros SAO son leidos en el flujo de bits en la etapa -1206-. Dicha etapa se describe en detalle haciendo referencia a la figura 14. De lo contrario, si el indicador de "unicidad" leido no es verdadero, existe mas de un parametro SAO para toda la imagen en relacion con el actual componente X procesado. En este caso, los parametros SAO son leidos en las etapas siguientes, tal como se describe haciendo referencia a las etapas -1208- a -1218-.
5
10
15
20
25
30
35
40
45
50
55
60
65
A continuation, se lleva a cabo una prueba en la etapa -1207- para determinar si el actual componente X procesado es o no el ultimo componente a procesar. Si el actual componente X procesado es el ultimo componente a procesar, el algoritmo se ramifica a la etapa -1203- y se repiten las etapas anteriores para el componente o componentes restantes.
Se debe observar que si el indicador de "unicidad" es verdadero para un componente, las etapas -1208- a -1218- no se llevan a cabo para dicho componente.
A partir de la etapa -1208-, se determinan parametros SAO para cada area del cuadro y para cada componente cuando existe mas de un conjunto de parametros SAO por componente.
En la etapa -1208- se lanza un bucle para tratar sucesivamente cada area del cuadro de la imagen determinada a procesar, de acuerdo con el tamano del area del cuadro determinado en la etapa -1202-. En el ejemplo dado de la figura 12, las areas del cuadro son procesadas en orden de exploration por trama, de manera que el proceso se inicia con la primera fila de las areas del cuadro de la imagen y continua hasta la ultima fila de la imagen. Las areas del cuadro se procesan desde el lado izquierdo al lado derecho de la imagen.
A continuacion, se lanza otro bucle en la etapa -1209- para tratar sucesivamente cada componente denominado X. En este caso se debe senalar que si el indicador de "activation" del componente actual, leldo en la etapa -1201-, es falso, las etapas siguientes se ignoran en la etapa -1209- para el componente en cuestion, y se selecciona el siguiente componente a procesar. En la etapa -1210- se lee un "indicador de repetir fila". A continuacion, en la etapa -1211- se realiza una prueba para determinar si el indicador es o no verdadero. Si es verdadero, los parametros SAO de la fila anterior de un area del cuadro se utilizan para la fila actual del area del cuadro. Esto permite ahorrar muchos bits en la representation de parametros SAO en el flujo de bits, al limitarse a senalizar que la fila actual utiliza los mismos parametros que la fila anterior.
De lo contrario, si el "indicador de repetir fila" leldo es falso, el area del cuadro actual es codificada en el flujo de bits y el algoritmo se ramifica a la etapa -1213-, en la que se realiza una prueba para determinar si se utiliza o no una tecnica predictiva (utilizando codification por longitud de serie o el valor de los parametros SAO del area del cuadro anterior) para codificar y representar los parametros SAO asociados con un area del cuadro anterior en la fila actual. En este caso, en la etapa -1214- los parametros SAO del area del cuadro actual se deducen, en la fila actual, de un area del cuadro anterior. Mas especlficamente, se utilizan dos elementos de sintaxis: sao_run_diff y sao_merge_up_flag, que indican respectivamente si los parametros SAO se codifican segun un procedimiento de longitud de series o se deducen de los parametros SAO del area del cuadro anterior. De lo contrario, si la respuesta es negativa en la etapa -1213-, los parametros SAO para esta area determinada del cuadro se codifican expllcitamente en el flujo de bits. Por consiguiente, estos parametros SAO son leldos del flujo de bits, en la etapa -1215-. Esta etapa es similar a la -1206- y se describe con mas detalle haciendo referencia a la figura 14.
Despues de la etapa -1212-, cuando se determinan los parametros SAO para una fila completa, se lleva a cabo una prueba en la etapa -1216- para determinar si el componente actual es o no el ultimo componente a procesar. Si no es el ultimo componente a procesar, el algoritmo se ramifica a la etapa -1209- para procesar el siguiente o siguientes componentes. Analogamente, cuando se determinan los parametros SAO para el area del cuadro actual, ya sea llevando a cabo la etapa -1214- o la etapa -1215-, el algoritmo se ramifica a la etapa -1216- para determinar si el componente actual es o no el ultimo componente a procesar. De nuevo, si no es el ultimo componente a procesar, el algoritmo se ramifica a la etapa -1209- para procesar el siguiente o siguientes componentes.
De lo contrario, si se han procesado todos los componentes, se lleva a cabo una prueba en la etapa -1217- para determinar si ha sido o no procesada la ultima area del cuadro. Si no ha sido procesada la ultima area del cuadro, el proceso se ramifica a la etapa -1208- y se repiten las etapas anteriores. De lo contrario, el proceso finaliza.
En esta fase, un conjunto de parametros SAO, con los diferentes parametros presentados haciendo referencia a la figura 14, esta asociado con cada area del cuadro y para cada componente.
La figura 13 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener parametros SAO a partir de un flujo de bits de acuerdo con un modo LCU. Por lo tanto, la figura 13 muestra una alternativa al modo APS para codificar parametros SAO. Mas especlficamente, la figura 13 muestra como se pueden almacenar parametros SAO en un flujo de bits cuando se utiliza la representacion del modo de unidad maxima de codificacion (LCU) para asociar un solo conjunto de parametros SAO por cada LCU. Para evitar codificar un conjunto de parametros SAO por cada LCU, lo cual es costoso, se utiliza un esquema predictivo. En el ejemplo facilitado, este modo predictivo consiste en comprobar si la LCU situada a la izquierda de la LCU actual utiliza los mismos parametros SAO. En caso negativo, se realiza una segunda prueba con la LCU situada sobre la LCU actual. Esta tecnica predictiva permite una reduction de la cantidad de datos para representar parametros SAO para el modo LCU. Esta basada en la utilization de indicadores especializados, denominados indicadores Merge (de fusion).
5
10
15
20
25
30
35
40
45
50
55
60
65
En la etapa -1301- se lanza un bucle para tratar sucesivamente cada componente denominado X. A tltuio ilustrativo, las imagenes siguen estando codificadas segun el esquema YUV. A continuacion, en la etapa -1303-, un indicador denominado sao_merge_left_flag_X (en el que X significa Y, U o V) se lee del flujo de bits -1302- para ser procesado y descodificado. Si su valor es verdadero, los parametros SAO de la LCU situada a la izquierda de la LCU actual son seleccionados en la etapa -1304- para ser utilizados para procesar la LCU actual. Mas especlficamente, esto permite la determinacion, en la etapa -1308-, del tipo de filtro de bucle SAO a aplicar en la LCU actual.
De lo contrario, si el indicador leldo denominado sao_merge_left flag_X es falso, se lee del flujo de bits -1302- y se descodifica un indicador denominado sao_merge_up_flag_X (en el que X significa Y, U o V). Si su valor es verdadero, en la etapa -1306- se seleccionan los parametros SAO de la LCU situada sobre la LCU actual para ser utilizados para procesar la LCU actual. De nuevo, esto permite la determinacion, en la etapa -1308-, del tipo de filtro de bucle SAO a aplicar en la LCU actual.
De lo contrario, si el indicador leldo denominado sao_merge_up_flag_X es falso, los parametros SAO a utilizar para el procesamiento de la LCU actual son leldos y descodificados desde el flujo de bits -1302- en la etapa -1307-, describiendose esta ultima haciendo referencia a la figura 14.
En esta fase, se obtienen los parametros SAO para procesar la LCU actual y en la etapa -1308- se determina el tipo de filtro de bucle SAO a aplicar a la LCU actual.
A continuacion, en la etapa -1309-, se realiza una prueba para determinar si han sido o no procesados todos los componentes Y, U y V para la LCU actual. Si no todos los componentes han sido procesados, se selecciona el siguiente componente, el algoritmo se ramifica a la etapa -1301- y se repiten las etapas anteriores.
A continuacion, se puede procesar la siguiente LCU de manera similar.
La figura 14 es un diagrama de flujo que muestra las etapas de un procedimiento para leer parametros SAO en un flujo de bits. Por consiguiente, la figura 14 muestra la manera en la que los parametros SAO se almacenan en un flujo de bits codificado.
En una etapa inicial -1402-, un indicador denominado sao_type_idx_X (donde X significa Y, U o V) es leldo del flujo de bits -1401- y descodificado. La palabra de codigo que representa este elemento de sintaxis puede utilizar un codigo de longitud fija o cualquier procedimiento de codificacion aritmetica.
Tal como se ha descrito anteriormente haciendo referencia a la tabla 1 del Apendice, este elemento de sintaxis hace posible determinar el tipo de filtro de bucle SAO a aplicar al area del cuadro para procesar el componente X. De acuerdo con el ejemplo facilitado, el indicador sao_type_idx_X (o genericamente, sao_type_idx), puede adoptar uno de cinco valores que dependen del filtro de bucle sAo a aplicar. Tal como se indica en la tabla 1 del Apendice, 0 no corresponde a ningun filtro de bucle SAO, 1 a 4 corresponden a las 4 categorlas de filtro de bucle SAO de desplazamiento de borde, tal como se ha descrito haciendo referencia a la tabla 2 del Apendice, y el valor 5 corresponde al filtro de bucle SAO de desplazamiento de banda.
En la etapa -1402-, despues de haber leldo y descodificado el indicador sao_type_idx_X, se realiza una prueba para determinar si el valor de este Indice es o no estrictamente positivo. Si el valor de este Indice es igual a cero, lo que significa que no se debe aplicar ningun filtro de bucle SAO al area del cuadro actual, la determinacion de los parametros SAO finaliza en la etapa -1407-. De lo contrario, si el valor del indicador sao_type_idx_X es estrictamente positivo, existen parametros SAO en el flujo de bits -1401- para el area del cuadro actual.
A continuacion, en la etapa -1403- se realiza una prueba para determinar si el tipo de filtro de bucle SAO a aplicar es o no del tipo de desplazamiento de banda (sao_type_idx_X == 5). Si el filtro de bucle SAO a aplicar es del tipo de desplazamiento de banda, la posicion de la banda SAO se lee en la etapa -1404- en el flujo de bits -1401- y se descodifica.
Despues de haber leldo la posicion de la banda SAO en la etapa -1404-, se lanza un bucle en la etapa -1405- para leer y descodificar cuatro Offsetj del flujo de bits -1401- (j varla de 1 a 4) en la etapa -1406-. Estos cuatro desplazamientos corresponden a los cuatro desplazamientos relacionados con los cuatro intervalos del desplazamiento de banda SAO que se han descrito haciendo referencia a la figura 2.
Analogamente, si el valor del indicador sao_type_idx_X es positivo y diferente de 5, se lanza un bucle en la etapa -1405- para leer y descodificar cuatro Offsetj del flujo de bits -1401- (j varla de 1 a 4). Estos cuatro desplazamientos corresponden a los cuatro desplazamientos de los cuatro tipos de desplazamiento de borde SAO que se han descrito haciendo referencia a la tabla 2 del Apendice.
Cuando se han leldo y descodificado los cuatro desplazamientos en la etapa -1406-, la lectura de los parametros SAO finaliza en la etapa -1407-.
5
10
15
20
25
30
35
40
45
50
55
60
65
Segun un primer grupo de ejemplos y una realizacion de la presente invencion descrita a continuacion, algunos o todos los parametros SAO son compartidos entre componentes. A este respecto, se definen procesos para obtener parametros SAO de un componente para otro. Dichas dependencias entre componentes pueden ser definidas para las dos clases de clasificaciones SAO (desplazamientos de borde y de banda).
Tal como se ha descrito anteriormente haciendo referencia a la figura 13, en la actual implementacion de HEVC para el modo LCU se utilizan dos indicadores denominados sao_merge_left_flag_Xy sao_merge_up_flag_X, con el fin de obtener parametros SAO en funcion de parametros SAO procesados anteriormente. El indicador denominado sao_merge_left_flag_X sirve para especificar que los parametros SAO que se tienen que utilizar para procesar el componente X de la LCU actual son los utilizados para procesar el mismo componente de la LCU situada a la izquierda de la LCU actual. Analogamente, el indicador denominado sao_merge_up_flag_X sirve para especificar que los parametros SAO que se tienen que utilizar para procesar el componente X de la LCU actual son los utilizados para procesar el mismo componente de la LCU situada sobre la LCU actual.
Segun un primer ejemplo concreto, estos indicadores son comunes para dos o tres componentes de la LCU actual. En otras palabras, los indicadores de los tipos sao_merge_left_flag y sao_merge_up_flag ya no se utilizan para especificar que los parametros SAO que se tienen que utilizar para procesar un componente de la LCU actual son los utilizados para procesar el mismo componente de otra LCU, sino para especificar que los parametros SAO que se tienen que utilizar para procesar dos o tres componentes de la LCU actual son los utilizados para procesar los mismos dos o tres componentes de otra LCU. A tltulo ilustrativo, se puede considerar que los indicadores denominados sao_merge_left flag_UVy sao_merge_up_flag_UV especifican que los parametros SAO a utilizar para procesar los componentes U y V de la LCU actual son los utilizados para procesar los componentes U y V de la LCU situada a la izquierda o encima de la LCU actual, respectivamente.
Segun un segundo ejemplo concreto, los indicadores se utilizan para especificar que los parametros SAO a utilizar para procesar dos o tres componentes de la LCU actual son los utilizados para procesar un componente de otra LCU. Como consecuencia, un indicador asociado con un componente de la lCu actual puede indicar cual de la LCU izquierda o superior tiene que ser utilizada como referencia y, en dicha LCU, cual de los componentes tiene que ser utilizado para obtener parametros SAO. Por lo tanto, los indicadores pueden ser los siguientes: sao_merge_left_flag_Y, sao_merge_left_flag_U, sao_merge_left_flag_V, sao_merge_up_flag_Y,
sao_merge_up_flag_U y sao_merge_up_flag_V. A tltulo ilustrativo, los parametros SAO de un componente de la LCU actual que se refieren al indicador sao_merge_left_flag_V son los parametros SAO asociados con el componente V de la LCU situada a la izquierda de la LCU actual.
En este segundo ejemplo, los parametros SAO asociados con cada componente de una LCU son preferentemente iguales (para cada componente de esta LCU) cuando se refieren a los de otra LCU. A tltulo ilustrativo, los parametros SAO de todos los componentes de la LCU actual en la que un componente se refiere al indicador sao_merge_left_flag_V son los parametros SAO asociados con el componente V de la LCU situada a la izquierda de la LCU actual. Por consiguiente, los parametros SAO del componente de luma (Y) de la izquierda se pueden utilizar para filtrar el componente de croma (U) de la LCU actual.
La figura 15 es un diagrama de flujo que muestra las etapas de un procedimiento para determinar los parametros a utilizar en un filtro de bucle para procesar un area del cuadro actual. El ejemplo dado en la figura 15 se puede ver como una combinacion del primer y el segundo ejemplos concretos descritos anteriormente.
En la etapa -1502-, el indicador denominado sao_merge_left flag_Y se obtiene del flujo de bits -1501- y se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero). Si el indicador denominado sao_merge_left_flag_Y es verdadero, se determina en la etapa -1503- que los parametros SAO a utilizar para filtrar los componentes Y, U y V de la LCU actual son iguales a los determinados anteriormente para filtrar el componente Y en la LCU situada a la izquierda de la LCU actual.
Por consiguiente, los valores de los indicadores sao_type_idx_U y sao_type_idx_V para la LCU actual, que definen el tipo de filtro de bucle a aplicar en los componentes U y V de la lCu actual, se consideran iguales a los del indicador sao_type_idx_Y de la LCU situada a la izquierda de la LCU actual. Analogamente, los otros parametros SAO utilizados para filtrar los componentes U y V de la LCU actual, por ejemplo valores de desplazamiento y, si es necesario, posiciones de banda (sao_band_position_U y sao_band_position_V), se obtienen a partir de los del componente Y de la LCU situada a la izquierda de la LCU actual.
Por otra parte, si el indicador denominado sao_merge_left flag_Y es falso, el indicador denominado sao_merge_up_flag_Y se obtiene del flujo de bits -1501- y se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero) en la etapa -1504-. Si el indicador denominado sao_merge_up_flag_Y es verdadero, se determina en la etapa -1505- que los parametros SAO a utilizar para filtrar los componentes Y, U y V de la LCU actual son iguales a los determinados anteriormente para filtrar el componente Y en la LCU situada encima de la LCU actual.
5
10
15
20
25
30
35
40
45
50
55
60
65
Por consiguiente, los valores de los indicadores sao_type_idx_U y sao_type_idx_V para la LCU actual, que definen el tipo de filtro de bucle a aplicar en los componentes U y V de la lCu actual, se consideran iguales a los del indicador sao_type_idx_Y de la LCU situada encima de la LCU actual. Analogamente, los otros parametros SAO utilizados para filtrar los componentes U y V de la LCU actual, por ejemplo valores de desplazamiento y, si es necesario, posiciones de banda (sao_band_position_U y sao_band_position_V) se obtienen de los del componente
Y de la LCU situada encima de la LCU actual.
De lo contrario, si el indicador denominado sao_merge_up_flag_Y es falso, los parametros SAO para el componente
Y de la LCU actual se extraen del flujo de bits -1501- en la etapa -1511-, tal como se ha descrito anteriormente haciendo referencia a la figura 14. En ese caso, el valor de los indicadores sao_type_idx_Y, sao_banc_position_Y(si se requiere) y los cuatro offsetj_Y se extraen del flujo de bits -1501-.
A continuacion, si el indicador denominado sao_merge_up_flag_Y es falso, en la etapa -1506- el indicador denominado sao_merge_left_flag_UV se obtiene del flujo de bits -1501- y se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero). Si el indicador denominado sao_merge_left_ flag_UV es verdadero, se determina en la etapa -1507- que los parametros SAO que se tienen que utilizar para filtrar los componentes U y V de la LCU actual son iguales a los determinados anteriormente para filtrar los componentes U y V, respectivamente, en la LCU situada a la izquierda de la LCU actual.
De lo contrario, si el indicador denominado sao_merge_left flag_UV es falso, el indicador denominado sao_merge_up_flag_UV se obtiene del flujo de bits -1501- y se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero) en la etapa -1508-. Si el indicador denominado sao_merge_up_flag_UV es verdadero, se determina en la etapa -1509- que los parametros SAO a utilizar para filtrar los componentes U y V de la LCU actual son iguales a los determinados anteriormente para filtrar los componentes U y V, respectivamente, en la LCU situada encima de la LCU actual.
De lo contrario, si el indicador denominado sao_merge_up_flag_UV es falso, los parametros SAO para los componentes U y V de la LCU actual se extraen del flujo de bits -1501- en la etapa -1510-, tal como se ha descrito anteriormente haciendo referencia a la figura 14. En ese caso, el valor de los indicadores sao_type_idx_U, sao_type_idx_V, sao_band_position_U (si es necesario), sao_band_position_V (si es necesario), los cuatro offsetj_U y los cuatro offsetj_V se extraen del flujo de bits -1501-. En esta fase (referencia -1512-), estan disponibles todos los parametros SAO para todos los componentes de la LCU actual.
A continuacion, en la etapa -1513- se aplica el filtro de bucle SAO en todos los componentes de la LCU actual y el proceso de descodificacion avanza a la siguiente etapa de descodificacion -1314-.
Tambien segun un tercer ejemplo concreto, se pueden utilizar los indicadores comunes a todos los componentes de la LCU actual, por ejemplo los indicadores sao_merge_left flag_YUV y sao_merge_up_flag_YUV. En este caso, si ambos indicadores son falsos, se pueden utilizar indicadores dirigidos a cada componente, denominados en general sao_merge_left flag_X y sao_merge_up_flag_X (en los que X significa Y, U o V).
La figura 16 es un diagrama de flujo que muestra las etapas de otro procedimiento para determinar los parametros a utilizar en un filtro de bucle para procesar un area del cuadro actual. El ejemplo proporcionado en la figura 16 esta dirigido mas especlficamente al tercer ejemplo concreto descrito anteriormente.
En la etapa -1602-, se obtiene del flujo de bits -1601- el indicador denominado sao_merge_left flag_YUVy se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero). Si el indicador denominado sao_merge_left_ flag_yUV es verdadero, se determina en la etapa -1603- que los parametros SAO que se tienen que utilizar para filtrar los componentes Y, U y V de la LCU actual son iguales a los determinados anteriormente para filtrar los componentes U y V, respectivamente, en la LCU situada a la izquierda de la LCU actual.
Por consiguiente, los valores de los indicadores sao_type_idx_Y, sao_type_idx_U y sao_type_idx_V para la LCU actual, que definen el tipo de filtro de bucle a aplicar en los componentes Y, U y V de la LCU actual, se consideran iguales a los de los indicadores correspondientes de la LCU situada a la izquierda de la LCU actual. Analogamente, los otros parametros SAO utilizados para filtrar los componentes Y, U y V de la LCU actual se obtienen a partir de los del componente correspondiente de la LCU situada a la izquierda de la LCU actual.
De lo contrario, si el indicador denominado sao_merge_left flag_YUV es falso, el indicador denominado sao_merge_up_flag_YUV se obtiene del flujo de bits -1601- y se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero) en la etapa -1604-. Si el indicador denominado sao_merge_up_flag_YUV es verdadero, se determina en la etapa -1605- que los parametros SAO a utilizar para filtrar los componentes Y, U y V de la LCU actual son iguales a los determinados anteriormente para filtrar los componentes Y, U y V, respectivamente, en la LCU situada encima de la LCU actual.
5
10
15
20
25
30
35
40
45
50
55
60
65
De lo contrario, si el indicador denominado sao_merge_up_flag_YUV es falso, se descodifican los indicadores asociados con cada componente de la LCU actual para determinar si los parametros SAO tienen o no que ser obtenidos como una funcion de parametros SAO procesados anteriores.
A este respecto, en la etapa -1606- se lanza un bucle para procesar secuencialmente cada componente de la LCU actual. Para cada componente X (siendo X igual a Y, U o V), el indicador denominado sao_merge_left_flag_X se extrae del flujo de bits -1601- y en la etapa -1607- se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero). Si el indicador denominado sao_merge_left_flag_X es verdadero, se determina en la etapa -1608- que los parametros SAO a utilizar para filtrar el componente X de la LCU actual son iguales a los determinados anteriormente para filtrar el mismo componente en la LCU situada a la izquierda de la LCU actual.
De lo contrario, si el indicador denominado sao_merge_left flag_X es falso, el indicador denominado sao_merge_up_flag_X se obtiene del flujo de bits -1601- y se realiza una prueba para determinar si el valor de este indicador es o no igual a uno (es decir, si es verdadero) en la etapa -1609-. Si el indicador denominado sao_merge_up_flag_X es verdadero, se determina en la etapa -1610- que los parametros SAO a utilizar para filtrar el componente X de la LCU actual son iguales a los determinados anteriormente para filtrar el mismo componente en la LCU situada encima de la LCU actual.
De lo contrario, si el indicador denominado sao_merge_up_flag_X es falso, los parametros SAO para el componente X para la LCU actual se extraen del flujo de bits -1601- en la etapa -1611-.
A continuacion, despues de haber obtenido los parametros SAO para el componente X de la LCU actual, en la etapa -1612- se realiza una prueba para determinar si el componente X es o no el componente V. Si el componente X no es el componente V, el proceso se ramifica a la etapa -1606- para procesar el siguiente componente. De lo contrario, si el componente X es el componente V, en la etapa -1613- se descodifican los parametros SAO y estan disponibles para todos los componentes de la LCU actual.
A continuacion, en la etapa -1614- los componentes de la LCU actual se filtran en un filtro de bucle SAO utilizando los parametros SAO obtenidos, y en la etapa -1615- el descodificador avanza a la siguiente etapa de descodificacion.
Se debe observar que los procedimientos descritos haciendo referencia a las figuras 15 y 16 se basan en la sintaxis LCU de la descrita haciendo referencia a la figura 13. Sin embargo, los procedimientos para determinar los parametros a utilizar en un filtro de bucle se pueden basar asimismo en la sintaxis SAO para APS descrita haciendo referencia a la figura 12. En este caso concreto, los parametros compartidos entre componentes son los parametro SAO, as! como los indicadores denominados unicidad y repetir fila, y los elementos de sintaxis denominados sao_run_diff y sao_merge_up_flag.
Tal como se ha descrito anteriormente, en particular haciendo referencia a la tabla 1 del Apendice, el elemento de sintaxis o indicador denominado sao_type_idx especifica que el componente actual de la LCU actual no es procesado cuando su valor es igual a cero. De lo contrario, este especifica el tipo de SAO. Si el valor del indicador sao_type_idx es igual a 1, 2, 3 o 4, se utiliza la clasificacion de desplazamiento de borde para filtrar la LCU actual, y si el valor del indicador sao_type_idx es igual a 5, se utiliza el desplazamiento de banda de SAO para filtrar la LCU actual.
Segun los ejemplos descritos anteriormente, los indicadores denominados sao_type_idx pueden ser compartidos entre dos o tres componentes.
En una realization concreta, los componentes pueden compartir solamente algunos valores del indicador denominado sao_type_idx. En otras palabras, un segundo componente comparte el valor del indicador denominado sao_type_idx de un primer componente solamente si este valor pertenece a un conjunto predeterminado de valores. Por lo tanto, segun esta realizacion, el valor del indicador denominado sao_type_idx es compartido condicionalmente.
A tltulo ilustrativo, se puede suponer que el valor del indicador denominado sao_type_idx asociado con el componente Y esta compartido, para una LCU determinada, con el componente U. Sin embargo, se puede hacer que si este valor indica una clasificacion SAO de tipo desplazamiento de borde (es decir, sao_type_idx = 1, 2, 3 o 4), la direction del desplazamiento de borde se obtenga sin embargo de una parte del flujo de bits asociada con el componente U en lugar de utilizar la direccion de la clasificacion de desplazamiento de borde proporcionada por el componente Y. Si el valor del indicador denominado sao_type_idx, asociado con el componente Y, no es igual a un desplazamiento de borde (sao_type_idx = 0 o 5), no se obtiene ninguna information de la direccion del flujo de bits. En otras palabras, si el tipo de SAO para el componente Y es cero o cinco, este parametro SAO (relacionado con el tipo) sera utilizado por los componentes U y V. Sin embargo, si el tipo de SAO es del tipo de desplazamiento de borde (es decir, un valor de uno a cuatro) para el componente Y, se utilizaran tipos de SAO especializados para los componentes U y V.
5
10
15
20
25
30
35
40
45
50
55
60
Tal como se ha descrito anteriormente, los parametros SAO (asociados con el filtro de bucle SAO que utiliza una clasificacion de pixeles del tipo de desplazamiento de borde) comprenden cuatro desplazamientos que estan relacionados con las cuatro clases, de las cinco posibles. La primera clase (clase "0") no corresponde a ningun filtrado SAO. Se debe recordar que la direction de la clasificacion de desplazamiento de borde se senaliza en el tipo de SAO.
Segun los ejemplos descritos mas adelante, estos cuatro desplazamientos pueden ser compartidos entre dos o tres componentes cuando se selecciona un filtro de desplazamiento de borde para la LCU actual, independientemente de la direccion de clasificacion de desplazamiento de borde.
Segun un primer ejemplo concreto, se utilizan los mismos desplazamientos para dos o tres componentes. Por consiguiente, solamente es necesario obtener cuatro desplazamientos de un flujo de bits, en lugar de ocho o doce si dos o tres componentes comparten respectivamente los mismos cuatro desplazamientos, para el filtrado de pixeles con tres componentes.
Naturalmente, dichos desplazamientos comunes tienen que ser calculados en el lado del codificador para permitir el procesamiento de dos o tres componentes con los mismos desplazamientos. Tal como se describe a continuation, esta election de la codification es la misma que la utilizada para el filtrado de desplazamiento de banda.
En otro ejemplo concreto, los desplazamientos Ozj asociados con el componente Z se obtienen a partir de desplazamientos Oxj de otro componente X, de acuerdo con un factor de ponderacion fij, como sigue:
Ozj = fij Oxj
El factor de ponderacion fij puede ser el mismo independientemente de cual sea el valor de j (fi = fij), o no. El valor de fi o los valores de fij pueden ser predeterminados y constantes, o pueden ser transmitidos en cabeceras concretas, tales como la cabecera de secuencia o una cabecera de segmento, o incluso transmitir LCU a LCU (o, mas generalmente, area del cuadro a area del cuadro).
Cuando los valores varian de una LCU a otra, se pueden calcular dinamicamente en los lados del codificador y del descodificador.
Los valores de los factores de ponderacion pueden ser calculados segun la formula siguiente:
Pi =
Y,i=0max(\c? -c?nl\,\c
~cL\)
Zf=Qmax(\cx - c{
x
ini I
\rx - rx ri Ltn2
I)
cz pz pz
en que i es el valor del componente Z del pixel / de clase j, y en que ml y m2 son los valores del componente Z de los pixeles contiguos al pixel i de clase j tal como se ha descrito anteriormente, en particular haciendo referencia a la tabla 2 del Apendice.
Por consiguiente, el valor del factor de ponderacion fij es la relation entre la diferencia media (maxima) del componente Z de los pixeles clasificados y sus pixeles contiguos, y la diferencia media (maxima) del componente X de los pixeles clasificados y sus pixeles contiguos. Se pueden utilizar otras relaciones o formulas para calcular los valores del factor de ponderacion fij (o de fi).
En otro ejemplo concreto mas, el valor de los desplazamientos codificados en un flujo de bits puede depender de los valores del factor de ponderacion fij (o fi), como quiera que se determinen. En dicho ejemplo, si el valor del factor de ponderacion fi o fij es menor que uno, en el flujo de bits se codifica el valor del desplazamiento Ozj en lugar del valor del desplazamiento Oxj.
Por supuesto, en la formula Ozj = fij Oxj, Ozj < Oxj si fij < 1. Como consecuencia, el valor del desplazamiento Ozj requiere menos bits para ser codificado en el flujo de bits que el valor de Oxj. Dado que el descodificador conoce o puede determinar los valores del factor de ponderacion fij, puede descodificar el valor de Ozj a partir del flujo de bits y determinar el valor de Oxj segun la formula siguiente:
imagen2
Tambien en un ejemplo concreto, los valores absolutos de los desplazamientos Ozj asociados con un segundo componente Z son iguales a los valores absolutos de los desplazamientos Ox(5-j) asociados con un primer componente X. Se debe observar en este caso que, segun este ejemplo concreto, solamente se utiliza el valor
5
10
15
20
25
30
35
40
45
50
55
60
65
absoluto dado que el signo del desplazamiento para la clase de desplazamiento de borde esta predeterminado para reducir artefactos.
La figura 17 muestra dicho ejemplo concreto, segun el cual los valores de los desplazamientos asociados con un componente corresponden a los valores especulares de los desplazamientos asociados con un segundo componente. Tal como se muestra, los desplazamientos para las 4 clases de componente Z se obtienen de los desplazamientos del componente X, considerando el orden inverso de los desplazamientos. Se debe recordar que los signos aplicados a los desplazamientos se deducen de la clasificacion.
En otro ejemplo concreto mas, los valores especulares de los desplazamientos asociados con un primer componente utilizados como desplazamientos asociados con un segundo componente se pueden ponderar con factores de ponderacion fij. Segun este ejemplo concreto, los valores absolutos de los desplazamientos Ozj asociados con un segundo componente Z son iguales a los valores absolutos ponderados de los desplazamientos Ox(5-j) asociados con un primer componente X, de acuerdo con la formula siguiente:
Ozj = jSy Ox(5-j)
Tal como se ha descrito anteriormente, el filtro de desplazamiento de banda SAO requiere dos tipos de parametros. El primer tipo esta dirigido a una posicion (sao_band_position) y el segundo tipo esta dirigido a los cuatro desplazamientos relacionados con las cuatro clases de la banda que se define a partir de la posicion determinada. Segun los ejemplos descritos anteriormente, los dos tipos de parametros asociados con componentes de un area del cuadro se pueden obtener independientemente de los correspondientes parametros asociados con los componentes de otra area del cuadro ya procesada. Sin embargo, los ejemplos que se refieren a la posicion (sao_band_position) y los que se refieren a los desplazamientos se pueden combinar facilmente. Ademas, tal como se ha descrito anteriormente haciendo referencia a los ejemplos de desplazamiento de borde, estos ejemplos o combinaciones de ejemplos que se refieren a posiciones y desplazamientos para el filtrado de desplazamiento de banda se aplican en funcion de los valores de indicadores Merge (de fusion) o de la sintaxis SAO para APS que se ha descrito anteriormente.
Se debe observar que dado que los parametros SAO asociados con un componente pueden ser utilizados para procesar dos o tres componentes, la siguiente descripcion se centra en la utilizacion de parametros SAO asociados con un componente para procesar dos componentes, a tltulo ilustrativo.
La figura 18 muestra como se pueden obtener valores de desplazamientos asociados con un segundo componente Z, a partir de valores de desplazamientos asociados con un primer componente X cuando se aplica un filtro de bucle SAO utilizando una clasificacion de desplazamiento de banda.
La referencia -1801- muestra la utilizacion de parametros SAO, en particular de desplazamientos asociados con componentes para aplicar un filtro de bucle SAO utilizando una clasificacion de desplazamiento de banda, segun las actuales especificaciones de HEVC. Los desplazamientos asociados con cada componente estan codificados en el flujo de bits utilizado para transmitir las imagenes codificadas. A tltulo ilustrativo, el flujo de bits comprende los desplazamientos Ox1 a Ox4, denominados genericamente Oxj, asociados con un primer componente X y los desplazamientos Oz1 a Oz4, denominados genericamente Ozj, asociados con un primer componente Z. Tal como se muestra mediante la referencia -1801-, los desplazamientos Oxj corresponden a una primera banda que comprende cuatro clases consecutivas denominadas -BO X- y los desplazamientos Ozj corresponden a una segunda banda, que comprende tambien cuatro clases consecutivas, denominadas -BO Z-.
La referencia -1802- muestra un primer ejemplo concreto en el que los desplazamientos Ozj son iguales a los desplazamientos Oxj. Por lo tanto, los desplazamientos Ozj no estan codificados en el flujo de bits. Estos se pueden recuperar utilizando los correspondientes indicadores Merge (de fusion) que se han descrito anteriormente haciendo referencia al filtrado de desplazamiento de borde. Analogamente, se puede utilizar un factor de ponderacion fi o fij, de tal modo que los desplazamientos Ozj se pueden determinar en funcion de los desplazamientos Oxj (Ozj = fij Oxj). De nuevo, el valor o valores de los factores de ponderacion fi o fij pueden ser predeterminados o representados a diferentes niveles en el flujo de bits (a nivel de secuencia, a nivel de cuadro, a nivel de segmento o a nivel de LCU). En este contexto, el valor o valores del factor de ponderacion fi o fij puede ser negativo (en caso de desplazamiento de borde, el signo de los desplazamientos se determina en funcion de la clase). En particular, el factor de ponderacion puede ser igual a menos uno (fi = -1).
En otro ejemplo concreto mas, el valor o valores de los factores de ponderacion fi o fij se puede determinar dinamicamente. A tltulo ilustrativo, el valor o valores de los factores de ponderacion fi o fij se puede determinar en funcion de la posicion de la banda (sao_band_position). Por ejemplo, si la clase j de la banda Z y la clase j de la banda X no estan en los mismos subintervalos desde el punto de vista del centro del intervalo, (representado en llnea gruesa en la figura 18) fi = -1, de lo contrario fi = 1. Se considera en este caso que todo el intervalo esta dividido en dos subintervalos, siendo el primero el intervalo de los valores de pixel desde 0 hasta 127, y siendo el segundo el intervalo de los valores de pixel desde 128 hasta 256 (cuando se utiliza una profundidad de 8 bits para el valor de pixel).
5
10
15
20
25
30
35
40
45
50
55
60
Segun otro ejemplo, los valores del factor de ponderacion j3j se determinan en funcion de la relation entre la distancia de la clase actual del componente Z (o el conjunto de clases para el valor del factor de ponderacion /S) hasta el centro del intervalo, y la distancia entre la clase actual del componente X (o el conjunto de clases para el valor del factor de ponderacion /S) y el centro del intervalo, lo que se puede expresar como sigue:
sao_band_position_Zj - 16 ^ sao_band_position_Xj — 16
en que sao_band_position_Zj - 16 es la distancia entre el componente Z actual y el centro del intervalo, y sao_band_position_Xj-16 es la distancia entre el componente X actual y el centro del intervalo. En otro ejemplo, se podrfa considerar la relacion inversa. En relacion con el desplazamiento de borde, se pueden utilizar otras relaciones y formulas para determinar el valor o valores del factor de ponderacion /S o Sj. Ademas, tal como se ha descrito anteriormente, se pueden introducir desplazamientos Oxj o desplazamientos Ozj en el flujo de bits en funcion del valor o valores de los factores de ponderacion /S o fSj (como quiera que se determinen) con el fin de reducir el numero de bits necesarios para codificar desplazamientos Oxj o desplazamientos Ozj.
La referencia -1803- muestra como los valores especulares de los desplazamientos asociados con un primer componente pueden ser utilizados como valores de desplazamientos asociados con un segundo componente para el filtrado de desplazamiento de banda. Tal como se ha descrito anteriormente haciendo referencia al filtrado de desplazamiento de borde, las relaciones entre los desplazamientos Ozj y Oxj se pueden expresar mediante la formula siguiente:
Ozj = Ox(5-j)
De nuevo, este ejemplo concreto se puede combinar con la utilization de un factor de ponderacion, segun la formula Ozj = fSj Ox(5-j). En particular, fij es igual a -1.
Una derivation especffica de los desplazamientos para el filtrado de desplazamiento de banda es el aumento o la disminucion del tamano de las clases que permite la modification de la clasificacion del desplazamiento de banda de los pfxeles. La referencia -1604- muestra un ejemplo de dicha adaptation de la clasificacion. Segun el ejemplo mostrado, el numero de pfxeles por clase esta dividido por dos para el componente Z en comparacion con la clasificacion de banda para el componente X. Por lo tanto, la clasificacion de pfxeles para el componente Z, segun el filtrado de desplazamiento de banda, requiere la comprobacion de seis bits. En otras palabras, es necesario comprobar los seis bits mas significativos para clasificar un pixel. Por lo tanto, se puede considerar que el intervalo completo de valores de pixel esta dividido en 64 intervalos para el componente Z.
Esta relacion puede ser fija para la implementation o puede ser senalizada a nivel de secuencia, cuadro, segmento o LCU. Esto se puede determinar dinamicamente teniendo en cuenta la relacion entre el tamano del intervalo de pfxeles para el componente X y el tamano del intervalo de los pfxeles para el componente Z a nivel de LCU (o de secuencia, cuadro o segmento). Por consiguiente, el tamano de las clases para el componente Z se puede determinar como sigue:
imagen3
en todos los casos i = 0 a N, en que Pzi son los pfxeles del componente Z y Pxi son los pfxeles del componente X. Para simplificar la clasificacion de bandas, el numero de valores de pixel por clase es igual a una potencia de dos (permitiendo la comprobacion de bits para los bits mas significativos)
Este ejemplo concreto puede ser combinado con todos los demas ejemplos particulares descritos para la obtencion de desplazamientos del desplazamiento de banda, tal como se muestra mediante la referencia -1805-, en la que este ejemplo se combina con la utilizacion de desplazamientos de un valor especular asociados con el componente X.
En otro ejemplo concreto que es aplicable al filtrado SAO tanto de borde como de banda, los desplazamientos para un componente se pueden obtener a partir de dos o tres componentes.
Todos los ejemplos descritos aplicables al filtrado SAO tanto de borde como de banda, que se refieren a la utilizacion de desplazamientos de un componente para determinar (u obtener) los desplazamientos de uno o dos componentes diferentes, presentan ventajas, en particular en relacion con el tamano de la memoria tampon requerida cuando dicha obtencion se utiliza sistematicamente (para todas las LCU), dado que no es necesario almacenar los desplazamientos del segundo componente y/o del tercer componente.
5
10
15
20
25
30
35
40
45
50
55
60
En otro ejemplo concreto (para filtrado SAO tanto de borde como de banda), se puede utilizar la obtencion de desplazamientos entre componentes para predecir los desplazamientos de un segundo componente, en funcion de los desplazamientos de un primer componente. (La descripcion se dedica a compartir desplazamientos entre componentes). En este ejemplo, se han codificado en el flujo de bits los residuos de los desplazamientos del componente Z en lugar de codificar directamente el valor de los desplazamientos del componente Z. En el lado del descodificador, los desplazamientos del componente Z se obtienen sumando los desplazamientos residuales a los desplazamientos del componente X.
En otro ejemplo concreto aplicable al filtrado de desplazamientos SAO tanto de borde como de banda, la obtencion de los desplazamientos entre componentes se puede utilizar como un contexto para la codification aritmetica por contexto de los desplazamientos asociados con un segundo componente, en funcion de los desplazamientos asociados con un primer componente.
En otro ejemplo concreto mas, aplicable al filtrado SAO tanto de borde como de banda, la obtencion de desplazamientos entre dos componentes puede ser senalizada en el flujo de bits y puede competir con el modo convencional mediante el cual los desplazamientos estan codificados en el flujo de bits para todos los componentes.
Tal como se ha descrito anteriormente, una position de banda (sao_band_position) es la position de la primera clase de una banda en los intervalos completos de los valores de pixel. Considerando una comprobacion estandar de cinco bits, el valor del parametro sao_band_position pertenece al intervalo [0; 32]. De acuerdo con las realizaciones de la invention, este parametro puede ser compartido entre dos o tres componentes. A tftulo ilustrativo, la descripcion se centra en la obtencion de este parametro en relation con un componente Z a partir de su valor asociado con un componente X.
La figura 19 muestra como se puede obtener un valor de un parametro sao_band_position asociado con un segundo componente Z, a partir del valor del parametro sao_band_position asociado con el primer componente X cuando se aplica un filtro de bucle SAO utilizando una clasificacion de desplazamiento de banda.
La referencia -1901- muestra un ejemplo de dos valores de sao_band_position que son transmitidos en el flujo de bits segun las actuales especificaciones de HEVC.
En un ejemplo concreto mostrado mediante la referencia -1902-, se utiliza un valor de sao_band_position comun tanto para el componente Z como para el componente X.
En ejemplos concretos, se compara la posicion central de una banda con el centro de todo el intervalo de pfxeles. El valor resultante es igual a sao_band_position - 14 (correspondiendo 14 al centro del intervalo (16) menos el centro de la banda (-2)).
Por consiguiente, en un ejemplo concreto mostrado mediante la referencia -1903-, la sao_band_position_Z asociada con el componente Z se define como que es simetrica a sao_band_position_X asociada con el componente X con respecto al centro de todo el intervalo de pfxeles. Por lo tanto, se considera que (sao_band_position_Z - 14) es igual a -(sao_band_position_X - 14). Dado que sao_band_position_X es igual a seis en este ejemplo, sao_band_position_Z es por lo tanto igual a veintidos (-(6-14)+14= 22).
Tambien en un ejemplo concreto mostrado mediante la referencia -1904-, se utiliza un factor de ponderacion /S para determinar el valor de sao_band_position_Z asociado con el componente Z en funcion del valor de sao_band_position_X asociado con el componente X y de la posicion del centro de todo el intervalo de pfxeles. Esto se basa, igual que en el ejemplo anterior, en la posicion relativa entre el centro de todo el intervalo de pfxeles y el valor de sao_band_position de cada componente X, y Z. Segun este ejemplo, la relacion a utilizar puede ser la siguiente
sao_band_position_Z -14 = (3 (sao_band_position_X -14)
es decir
sao_band_position_Z = (3 (sao_band_position_X -14) +14
En el ejemplo facilitado en la figura 19, S = -1/2. En este caso, sao_band_position_X es igual a 6, y por consiguiente sao_band_position_Z es igual a dieciocho (-1/2(6-14)+14=18).
El valor del factor de ponderacion S puede estar predeterminado para la implementation o ser transmitido a cualquier nivel (de secuencia, cuadro, segmento o LCU).
5
10
15
20
25
30
35
40
45
50
Tambien en otro ejemplo concreto aplicable al filtrado SAO tanto de borde como de banda, la obtencion del parametro sao_band_position entre dos componentes puede ser senalizada en el flujo de bits y puede competir con el modo convencional en el que el valor del parametro sao_band_position esta codificado en el flujo de bits para todos los componentes.
La seleccion de la codificacion de parametros SAO cuando se comparten parametros SAO entre dos o tres componentes de color, se refiere preferentemente a la eficiencia de la codificacion. En otras palabras, al seleccionar parametros SAO compartidos se tiene en cuenta ventajosamente la eficiencia de la codificacion de estos parametros y los valores asociados. Se debe recordar en este caso que la seleccion del mejor desplazamiento en terminos del coste de la tasa-distorsion es la misma para el filtrado de desplazamiento tanto de borde como de banda.
Las selecciones de codificacion de desplazamientos cuando estos desplazamientos son compartidos entre dos componentes Z y X, cualquiera que sea tipo de SAO (borde o banda) utilizado, se describen a continuation antes de la seleccion del centro de la banda.
Tal como se ha descrito haciendo referencia a la figura 3 que muestra el proceso de codificacion para determinar un desplazamiento optimo en terminos de distorsion para un componente, los valores de SumXj y SumNbPixXj relacionados con el componente X y los valores de SumZj y SumNbPixZj relacionados con el componente Z son conocidos para todas las clases j. SumXj y SumZj son las sumas de las diferencias entre los valores de pixel en la clase j y sus valores originales para los componentes X y Z, respectivamente. SumNbPixXj y SumNbPixZj son el numero de pfxeles en la clase j para los componentes X y Z, respectivamente. Se supone que los valores de estos cuatro parametros han sido calculados ya para todas las clases.
En el ejemplo concreto segun el cual el objetivo es conseguir que Ozj = Oxj, el desplazamiento optimo Ooptj se puede determinar mediante la formula siguiente:
Ooptj = Ozj = Oxj = (SumXj + SumZj) I (SumNbPixXj + SumNbPixZj)
A continuacion, tal como se ha descrito anteriormente para procesar independientemente cada componente, el codificador determina el mejor desplazamiento Oxj en terminos del criterio de tasa-distorsion.
Esto comprende, en el ejemplo concreto segun el cual Ozj = Oxj, minimizar el coste de tasa-distorsion como sigue:
J(Oxj, Ozj) = SumNbPixXj x (Oxj x Oxj) - SumXj x Oxj x 2 +
SumNbPixZ(j) x (Oxj x Oxj) - SumZ(j) x Oxj x 2 + A R(Oxj)
lo que se puede simplificar segun la expresion siguiente:
J(Oxj, Ozj) = (SumNbPixXj + SumNbPixZj) x (Oj x Oj) - (SumXj +
SumZj) x Oj x 2 + A R(Oj)
En el ejemplo concreto segun el cual los valores especulares estan dirigidos a determinar desplazamientos (Ozj = - Ox(5-j)) en el caso de desplazamiento de borde, el desplazamiento optimo se puede definir mediante la formula siguiente:
Ooptj = Oz(5-j) = Oxj = (SumXj - SumZ(5-j)) / (SumNbPixXj + SumNbPixZ(5-j))
A continuacion, el codificador determina el mejor desplazamiento Oxj en terminos del criterio de tasa-distorsion: Esto comprende, de acuerdo con el ejemplo concreto segun el cual Oz(5-j) = -Oxj, minimizar el coste de de tasa- distorsion como sigue:
J(Oxj, Ozj) = SumNbPixXj x (Oxj x Oxj) - SumXj x Oxj x 2 +
SumNbPixZ(5-j) x (Oz(5-j) x Oz(5-j)) - SumZ(5-j) x Oz(5-j) x 2 + A R(Oxj)
o
5
10
15
20
25
30
35
40
45
50
J(Oxj, Ozj) - SumNbPixXj x (Oxj x Oxj) - SumXj x Oxj x 2 +
SumNbPixZ(5-j) x (Oxj x Oxj) + SumZ(5-j) x Oxj x 2 + A R(Oxj)
En el ejemplo concreto segun el cual Ozj = -Oxj, el desplazamiento optimo Ooptj se determina mediante la formula siguiente:
Ooptj = (SumXj - SumZj) / (SumNbPixXj + SumNbPixZj)
A continuation, el codificador determina el mejor desplazamiento Oxj en terminos del criterio de tasa-distorsion: Esto comprende, de acuerdo con el ejemplo concreto segun el cual Ozj = -Oxj, minimizar el coste de tasa-distorsion tal como sigue:
J(Oxj, Ozj) = SumNbPixXj x (Oxj x Oxj) - SumXj x Oxj x 2 +
SumNbPixZQ) x (Ox(j) x Ox(j)) + SumZQ) x Ox(j) x 2 + A R(Oxj),
que se puede simplificar mediante la expresion siguiente:
J(Oxj, Ozj) = (SumNbPixXj + SumNbPixZj) x (Oxj x Oxj) - (SumXj - SumZj) x Oxj x 2 + A R(Oxj)
En el ejemplo concreto segun el cual Ozj = fij Oxj, el codificador determina independientemente un valor OoptXj optimo para el componente X y un valor OoptZj optimo para el componente Z. A continuacion, el codificador determina el mejor desplazamiento Oxj en terminos del criterio de tasa-distorsion: Esto comprende, de acuerdo con el ejemplo concreto Ozj = fij Oxj, minimizar el coste de tasa-distorsion tal como se ha descrito haciendo referencia a la figura 4.
La figura 20 es un diagrama de flujo que muestra las etapas de un procedimiento para determinar un desplazamiento optimo a utilizar por dos o tres componentes, de acuerdo con un criterio de tasa-distorsion. El proceso mostrado en la figura 20 esta basado en el que se ha descrito haciendo referencia a la figura 4. Las etapas -2001-, -2004-, -2005- y -2006- son similares a las etapas -401-, -404-, -405- y -406-, respectivamente.
La etapa -2002- se diferencia de la etapa -402- en que el bucle lanzado en la etapa -2002- hace que el desplazamiento Oxj varfe de sign(OoptXj) x max(f x OoptXj, OoptZj) a cero, en que f es igual a 1/ fij si fij <1, y a fij en caso contrario.
En el ejemplo generalizado en el que Ozj = fij Oxj, el criterio de tasa-distorsion se calcula segun la formula siguiente:
J(Oxj, Ozj) = SumNbPixXj x (Oxj x Oxj) - SumXj x Oxj x 2 +
SumNbPixZ(j) x (fij x Oxj x fij x Oxj) - SumZ(j) x fij x Oxj x 2 + A R(Oxj)
esto se puede escribir asimismo como sigue:
J(Oxj, Ozj) = (SumNbPixXj + SumNbPixZ(j) x(fij) x (fij) ) x (Oxj x Oxj)
- (SumXj + SumZ(j) x fij) x Oxj x 2 + A R(Oxj)
En la etapa -2003-, se considera a tftulo ilustrativo el caso particular en el que fij = -1.
La selection de un valor de sao_band_position compartido entre dos componentes X y Z puede ser determinado segun la siguiente relation:
sao_band_position_Z = fi (sao_band_position_X-14) +14
La figura 21 es un diagrama de flujo que muestra las etapas de un procedimiento para determinar una posicion de banda SAO compartida entre dos componentes. Se basa en el proceso descrito haciendo referencia a la figura 5. El proceso mostrado en la figura 21 esta dirigido a determinar el valor de sao_band_position_Z asociado con el componente Z a partir del valor de sao_band_position_X asociado con el componente X.
5
10
15
20
25
30
35
40
45
50
55
60
65
La diferencia principal entre el proceso mostrado en la figura 21 y el mostrado en la figura 5 se refiere al modulo -2105-, en el que se suman los valores de tasa-distorsion de las clases asociadas con el componente Z y de las clases asociadas con el componente X, segun la formula siguiente:
J’i = J’i + JZj +JXjx
en la que JZj es el valor de tasa-distorsion para la clase j del componente Z y JXjx es el valor de tasa-distorsion para la clase j del componente X. Ademas, para seleccionar conjuntamente el sao_band_position_Z con el sao_band_position_X, el fndice jx se obtiene segun la formula siguiente:
sao_band_position_Z = f$ (sao_band_position_X -14) + 14
Por consiguiente, jx es igual a p (j - 14) +14.
De acuerdo con un segundo grupo de ejemplos descritos a continuation que evitan la clasificacion de componentes con el fin de reducir la complejidad de la descodificacion, los pfxeles en una clase SAO son determinados en funcion de un unico componente. Las posiciones de los pfxeles se utilizan a continuacion para determinar el componente o componentes que se tienen que filtrar. Por consiguiente, si un componente de pixel debe ser filtrado, segun este componente, se filtra otro componente o los otros dos componentes de este pixel.
La figura 22 es un diagrama de flujo que muestra las etapas de un procedimiento para descodificar un flujo de bits, segun un ejemplo concreto. El proceso mostrado en esta figura esta basado en el mostrado en la figura 6. Esta dirigido a utilizar la clasificacion del componente X para filtrar el componente Z.
Una etapa inicial -2201- comprende determinar parametros SAO segun el proceso descrito haciendo referencia a las figuras 12, 13 y 14. Sin embargo, segun el algoritmo mostrado en la figura 22, en la etapa -2202- se determina solamente el valor del parametro sao_type_idx y, si es igual a cinco, el valor del parametro sao_band_position para el componente X a partir del flujo de bits (no representado). Por supuesto, cuando estos parametros estan relacionados con la clasificacion, no precisan clasificar el componente Z que esta filtrado segun la clasificacion del componente X.
A continuacion, en la etapa -2203- se obtienen del flujo de bits los cuatro desplazamientos asociados con el componente X. De manera similar, en la etapa -2204- se obtienen del flujo de bits los cuatro desplazamientos asociados con el componente Z. Se debe observar que estos desplazamientos pueden ser determinados en funcion de otros desplazamientos asociados con otros componentes y/o con otra LCU, tal como se ha descrito anteriormente.
En la etapa -2205-, la variable de computo i se ajusta al valor cero. A continuacion, en la etapa -2207- se obtiene el primer pixel PXi del area del cuadro del componente X (referencia -2206-), que comprende N pfxeles. De manera similar, en la etapa -2209- se obtiene el primer pixel Pzi del area del cuadro del componente Z (referencia -2208-). A tftulo ilustrativo, se admite en este caso que el area del cuadro del componente Z contiene asimismo N pfxeles (los componentes Xy Z tienen la misma cantidad de pfxeles por area del cuadro).
A continuacion, en la etapa -2210-, el componente X del primer pixel Pxi se clasifica segun la clasificacion de desplazamiento de borde o la clasificacion de desplazamiento de banda gracias al valor del parametro sao_type_idx_X (y, si es necesario, al valor del parametro sao_band_position_X), tal como se ha descrito anteriormente haciendo referencia a la tabla 2 del Apendice y a la figura 2, respectivamente.
En la etapa -2211-, se realiza una prueba para determinar si es necesario o no filtrar el componente X del pixel Pxi (es decir, si Pxi pertenece a una clase SAO). Si Pxi pertenece a una clase SAO, se identifica el numero de clase j relacionado y se obtiene el correspondiente valor de desplazamiento en la etapa -2212- a partir de la tabla de desplazamientos asociada con el componente X. A continuacion, en la etapa -2213-, el componente X del pixel Pxi es filtrado anadiendo a su valor el desplazamiento obtenido. El componente X filtrado del pixel Pxi es denominado P'xi (referencia -2214-). Simultanea o secuencialmente, el valor de desplazamiento asociado con el componente Z y el correspondiente numero de clase j se obtienen la etapa -2215- a partir de la tabla de desplazamientos asociada con el componente Z. A continuacion, en la etapa -2216-, el componente Z del pixel Pzi es filtrado anadiendo a su valor el desplazamiento obtenido. El componente Z filtrado del pixel Pzi es denominado P'zi (referencia -2217-).
A continuacion, en la etapa -2218-, los componentes filtrados P'xi y P'zj se ponen en el componente X y el componente Z del area del cuadro filtrada, denominados -2219- y -2220-, respectivamente. En la etapa -2218-, los pfxeles filtrados P'xi y P'zj sustituyen respectivamente los pfxeles Pxi y Pzj de los cuadros procesados denominados -2219- y -2220-.
Si Pxi no pertenece una clase SAO, los componentes Pxi y Pzj en el componente X y el componente Z de las areas del cuadro filtradas permanecen sin cambios en las etapas -2221-, -2222- y -2218-.
5
10
15
20
25
30
35
40
45
50
55
60
65
A continuacion, en la etapa -2223-, la variable de computo i se aumenta en una unidad para aplicar el proceso de filtrado de manera similar a los pixeles siguientes del area del cuadro actual.
En la etapa -2224- se determina si han sido o no procesados todos los N pixeles del area del cuadro actual (i > N). En caso afirmativo, los componentes filtrados X y Z del area del cuadro se reconstruyen y se pueden anadir al cuadro reconstruido SAO.
La figura 22 muestra la utilizacion de la clasificacion SAO de un componente X para filtrar de manera similar otro componente Z cuando ambos componentes tienen el mismo numero de pixeles para el area del cuadro actual.
Sin embargo, los componentes de un area del cuadro no siempre tienen el mismo numero de pixeles. Dependiendo del numero relativo de pixeles para el componente X, denominado Nx, en relacion con el numero de pixeles para el componente Z, denominado Nz, se pueden considerar dos casos. Dado que la diferencia entre los numeros de pixeles de dos componentes diferentes en un area del cuadro es habitualmente un multiplo de dos, generalmente no es necesario tener en cuenta relaciones no enteras entre numeros de componentes de pixeles.
Considerando el caso segun el cual el numero de pixeles del componente Z es mayor que el numero de pixeles del componente X (Nx < Nz), el algoritmo descrito haciendo referencia a la figura 22 se puede adaptar facilmente considerando que Pzi es un grupo de Nz/Nx pixeles. Por consiguiente, cuando se anade un desplazamiento OffsetZi a un grupo de pixeles Pzi, este desplazamiento se aplica todos los pixeles del grupo de pixeles Pzi. Ademas, en un ejemplo concreto, se puede considerar que el desplazamiento OffsetZi es un grupo de desplazamientos del mismo tamano que el grupo de pixeles Pzi.
Considerando el caso segun el cual el numero de pixeles del componente X es mayor que el numero de pixeles del componente Z (Nx > Nz), se pueden considerar varios ejemplos. En este caso, las etapas -2216- y -2218- descritas haciendo referencia a la figura 22 tienen que tener en cuenta la relacion entre el numero de pixeles del componente X y el numero de pixeles del componente Z. En la figura 22, Pzi se cambia por Pz(i/Nx).
En un primer ejemplo concreto, en desplazamiento OffsetZi se anade al grupo Pz(i/Nx) solamente si Pxi ha sido filtrado, por lo menos, una vez.
Segun otro ejemplo concreto, la etapa -2218- de la figura 22 tiene en cuenta el numero de veces que Pxi ha sido filtrado. Si es mayor que 2xNx/Nz, entonces OffsetZi se anade a Pz(i/Nx).
Tambien segun un ejemplo concreto, la etapa -2218- recibe Nx/Nz veces Pz(i/Nx) o P'z(i/Nx), y calcula el promedio para producir el valor de pixel establecido en el area del cuadro filtrada para el componente Z (-2220-).
La figura 23 muestra la utilizacion de la clasificacion SAO de un componente X para filtrar de manera similar otro componente Z.
A titulo ilustrativo, los pixeles en gris del bloque -2301- representan pixeles filtrados para un filtro de bucle SAO del tipo i de la clase j actual para el componente X, segun la actual implementacion de HEVC. Analogamente, los pixeles negros del bloque -2302- representan pixeles filtrados para un filtro de bucle SAO del tipo i de la clase j actual para el componente Z, segun las especificaciones de HEVC actuales.
Por lo tanto, tal como se muestra en la figura 23, los pixeles en gris en el componente X y los pixeles en negro en el componente Z no siempre estan en la misma posicion considerando las actuales especificaciones de HEVC.
Tambien a titulo ilustrativo, los pixeles en gris del bloque del -2303- representan pixeles filtrados para un filtro de bucle SAO del tipo i de la clase j actual para el componente X, segun la actual implementacion de HEVC. Sin embargo, los pixeles en negro del bloque -2304- representan pixeles filtrados para un filtro de bucle SAO para el componente Z, segun la clasificacion del componente X (bloque -2303-). Por consiguiente, los pixeles en gris y los pixeles en negro estan situados en las mismas posiciones. Esto tiene como resultado la utilizacion de solamente una clasificacion para ambos componentes.
Cabe senalar que los ejemplos del primer y el segundo grupos de ejemplos descritos anteriormente se pueden combinar para optimizar la eficiencia de la codificacion y la complejidad de la descodificacion.
Aunque la presente invention ha sido descrita en lo que antecede haciendo referencia a realizaciones especificas, la presente invencion no se limita a las realizaciones especificas, y para un experto en la materia resultaran evidentes modificaciones que caen dentro del alcance de la presente invencion.
Por ejemplo, aunque las realizaciones anteriores se han descrito en relacion con pixeles de una imagen y sus correspondientes valores de pixel, se apreciara que, dentro del contexto de la invencion, se puede considerar un
grupo de plxeies junto con el correspondiente valor de pixel del grupo. De este modo, una muestra puede corresponder a uno o varios plxeles de una imagen.
En las reivindicaciones, la expresion "comprende" no excluye otros elementos o etapas, y el artlculo indefinido "un" o 5 "una" no excluye una pluralidad. El mero hecho de que se hayan expuesto caracterlsticas diferentes en reivindicaciones dependientes diferentes entre si no indica que no se pueda utilizar ventajosamente una combinacion de estas caracterlsticas.
10
Apendice
Tabla 1
sao type idx
Tipo de SAO Significado del tipo de SAO
0
ninguno No se aplica ningun filtrado SAO en el area del cuadro
1
borde 1D 0 grados
2
borde 1D 90 grados
3
borde 1D 135 grados
4
borde 1D 45 grados
5
banda Desplazamiento de banda con posicion de banda
Tabla 2
Categorla (J)
Condiciones Desplazamiento
1
C<Cni y C<Cn2 + O1
2
(C<Cni y C==Cn2) o (C<Cn2 y C==Cni) + O2
3
(C>Cni y C==Cn2) o (C>Cn2 y C==Cni) -O3
4
C>Cni y C>Cn2 -O4
N.D.
Ninguno de los anteriores
N.D.

Claims (13)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Procedimiento de codificacion de, por lo menos, una parte de una imagen que comprende una serie de muestras, comprendiendo cada muestra un componente de luma y un primer y un segundo componentes de croma, comprendiendo la imagen codificada, por lo menos, un parametro de filtrado, comprendiendo el procedimiento
    codificar (902-908) el primer componente de croma y el segundo componente de croma de, por lo menos, una muestra de la imagen para proporcionar, por lo menos, una muestra codificada;
    descodificar (911-915), por lo menos, una muestra codificada;
    calcular, por lo menos, un parametro de filtrado en funcion de la diferencia entre, por lo menos, un mencionado componente de, por lo menos, una muestra de la imagen y, por lo menos, un componente correspondiente de, por lo menos, la muestra descodificada correspondiente, siendo calculado el o cada mencionado parametro de filtrado para ser utilizado en un filtro de bucle (1107) de un descodificador como un parametro de filtrado para realizar un filtrado (1004) de bucle de desplazamiento adaptativo de muestras sobre dicho, por lo menos, un correspondiente componente de una muestra descodificada;
    en el que la descodificacion (911-915) comprende asimismo utilizar el o cada mencionado parametro de filtrado para llevar a cabo un filtrado (1004) de bucle de desplazamiento adaptativo de muestras en un filtro de bucle (915);
    caracterizado por que cuando el filtrado de bucle de desplazamiento adaptativo de muestras es de un primer tipo, se calcula, por lo menos, un parametro de filtrado diferente de un desplazamiento para ser utilizado como un parametro de filtrado comun para llevar a cabo el filtrado (1004) de bucle de desplazamiento adaptativo de muestras del primer tipo en el primer y el segundo componentes de croma de una muestra descodificada, siendo el primer tipo de filtrado de bucle de desplazamiento adaptativo de muestras uno del filtrado de tipo borde y el filtrado de tipo banda, y cuando el filtrado de bucle de desplazamiento adaptativo de muestras es de un segundo tipo, diferente del primer tipo, se calculan parametros de filtrado diferentes para ser utilizados como parametros de filtrado especializados para llevar a cabo un filtrado de desplazamiento adaptativo de muestras del segundo tipo en el primer y el segundo componentes de croma respectivamente, siendo el segundo tipo de filtrado de bucle de desplazamiento adaptativo de muestras el otro del filtrado de tipo borde y el filtrado de tipo banda.
  2. 2. Procedimiento, segun la reivindicacion 1, en el que el primer y el segundo componentes de croma son componentes de croma U y B, respectivamente.
  3. 3. Procedimiento, segun la reivindicacion 1 o 2, en el que dicho parametro o parametros de filtrado comunes son o incluyen un parametro de filtrado comun para indicar una clasificacion para el filtrado del primer tipo, y dichos parametros de filtrado especializados son o incluyen parametros de filtrado especializados para indicar una clasificacion para filtrar el primer y el segundo componentes de croma, respectivamente.
  4. 4. Procedimiento de descodificacion de, por lo menos, una parte de una imagen codificada que comprende una serie de muestras, comprendiendo cada muestra un componente de luma y un primer y un segundo componentes de croma, comprendiendo la imagen codificada, por lo menos, un parametro de filtrado, comprendiendo el procedimiento
    descodificar (1103-1106) el primer componente de croma y el segundo componente de croma de, por lo menos, una muestra codificada, para proporcionar un primer componente de croma y un segundo componente de croma de, por lo menos, una muestra reconstruida;
    descodificar, por lo menos, un parametro de filtrado;
    realizar un filtrado (1004) de desplazamiento adaptativo de muestras sobre, por lo menos, una muestra reconstruida en un filtro de bucle (1107);
    caracterizado por que cuando el filtrado de bucle de desplazamiento adaptativo de muestras es de un primer tipo, por lo menos, un parametro de filtrado descodificado diferente a un desplazamiento se utiliza como un parametro de filtrado comun para llevar a cabo el filtrado del primer tipo tanto en el primer componente de croma como en el segundo componente de croma de, por lo menos, una muestra reconstruida, siendo el primer tipo de filtrado de bucle de desplazamiento adaptativo de muestras uno del filtrado de tipo borde y el filtrado de tipo banda, y cuando el filtrado de bucle de desplazamiento adaptativo de muestras es de un segundo tipo, diferente al primer tipo, se utilizan parametros de filtrado descodificados diferentes como parametros de filtrado especializados para realizar un filtrado del segundo tipo en el primer y el segundo componentes de croma respectivamente, siendo el segundo tipo de filtrado de bucle de desplazamiento adaptativo de muestras el otro del filtrado de tipo borde y el filtrado de tipo banda.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
  5. 5. Procedimiento, segun la reivindicacion 4, en el que el primer y el segundo componentes de croma son componentes de croma U y B, respectivamente.
  6. 6. Procedimiento, segun la reivindicacion 4 o 5, en el que el parametro o parametros de filtrado comunes son o incluyen un parametro de filtrado comun para indicar una clasificacion para el filtrado del primer tipo, y los parametros de filtrado especializados son o incluyen parametros de filtrado especializados para indicar una clasificacion para filtrar el primer y el segundo componentes de croma, respectivamente.
  7. 7. Producto de programa informatico para un aparato programable, comprendiendo el producto de programa informatico una secuencia de instrucciones para implementar cada etapa del procedimiento segun cualquiera de las reivindicaciones 1 a 6 cuando esta cargado en un aparato programable y es ejecutado por el mismo.
  8. 8. Medio de almacenamiento legible por ordenador, que almacena instrucciones de un programa informatico para implementar cada etapa de un procedimiento segun cualquiera de las reivindicaciones 1 a 6.
  9. 9. Dispositivo de codificacion para codificar una parte de una imagen que comprende una serie de muestras, comprendiendo cada muestra un componente de luma y un primer y un segundo componentes de croma, comprendiendo la imagen codificada, por lo menos, un parametro de filtrado, comprendiendo el dispositivo de codificacion:
    medios para codificar (902-908) el primer componente de croma y el segundo componente de croma de, por lo menos, una muestra de la imagen para proporcionar, por lo menos, una muestra codificada;
    medios para descodificar (911-915), por lo menos, una muestra codificada;
    medios para calcular, por lo menos, un parametro de filtrado en funcion de la diferencia entre, por lo menos, el mencionado componente de, por lo menos, una muestra de la imagen y, por lo menos, un componente correspondiente de, por lo menos, una muestra descodificada correspondiente, siendo calculado el o cada mencionado parametro de filtrado para ser utilizado en un filtro de bucle (1107) de un descodificador como un parametro de filtrado para la realizacion de un filtrado (1004) de bucle de desplazamiento adaptativo de muestras en dicho, por lo menos, un correspondiente componente de una muestra descodificada;
    en el que los medios de descodificacion (911-915) comprenden asimismo un filtro de bucle (915) y pueden funcionar para utilizar el o cada mencionado parametro de filtrado con el fin de realizar un filtrado (1004) de bucle de desplazamiento adaptativo de muestras en dicho filtro de bucle (915);
    caracterizado por que los medios de calculo pueden funcionar, cuando el filtrado de bucle de desplazamiento adaptativo de muestras es de un primer tipo, para calcular, por lo menos, un parametro de filtrado diferente a un desplazamiento para ser utilizado como un parametro de filtrado comun para el filtrado del primer tipo, siendo el primer tipo de filtrado de bucle de desplazamiento adaptativo de muestras uno del filtrado del tipo borde y el filtrado de tipo banda, y puede funcionar ademas, cuando el filtrado de bucle del desplazamiento adaptativo de muestras es de un segundo tipo diferente al primer tipo, para calcular parametros de filtrado diferentes para ser utilizados como parametros de filtrado especializados para filtrar el primer y el segundo componentes de croma respectivamente, siendo el segundo tipo de filtrado de bucle de desplazamiento adaptativo de muestras el otro del filtrado de tipo borde y el filtrado de tipo banda.
  10. 10. Dispositivo, segun la reivindicacion 9, en el que el primer y el segundo componentes de croma son componentes de croma U y B, respectivamente.
  11. 11. Dispositivo, segun la reivindicacion 9 o 10, en el que dicho parametro o parametros de filtrado comunes son o incluyen un parametro de filtrado comun para indicar una clasificacion para el filtrado del primer tipo, y dichos parametros de filtrado especializados son o incluyen parametros de filtrado especializados para indicar una clasificacion para filtrar el primer y el segundo componentes de croma, respectivamente.
  12. 12. Dispositivo de descodificacion para descodificar, por lo menos, una parte de una imagen codificada que comprende una serie de muestras, comprendiendo cada muestra un componente de luma y un primer y un segundo componentes de croma, comprendiendo la imagen codificada, por lo menos, un parametro de filtrado, comprendiendo el dispositivo de descodificacion
    medios para descodificar (1103-1106) el primer componente de croma y el segundo componente de croma de, por lo menos, una muestra codificada, con el fin de proporcionar un primer componente de croma y un segundo componente de croma de, por lo menos, una muestra reconstruida;
    medios para descodificar, por lo menos, un parametro de filtrado;
    medios de filtrado para realizar un filtrado de bucle de desplazamiento adaptativo de muestras (1107) en, por lo menos, una muestra reconstruida en un filtro de bucle (1004);
    caracterizado por que los medios de filtrado pueden funcionar, cuando el filtrado de bucle del desplazamiento 5 adaptativo de muestras es de un primer tipo, para utilizar, por lo menos, un parametro de filtrado descodificado diferente a un desplazamiento como un parametro de filtrado comun para llevar a cabo el filtrado del primer tipo tanto en el primer componente de croma como en el segundo componente de croma de, por lo menos, una muestra reconstruida, siendo el primer tipo de filtrado de bucle de desplazamiento adaptativo de muestras uno del filtrado de tipo borde y del filtrado de tipo banda, y pueden funcionar ademas, cuando el filtrado de bucle del desplazamiento 10 adaptativo de muestras es de un segundo tipo, diferente al primer tipo, para utilizar parametros de filtrado descodificados diferentes como parametros de filtrado especializados para realizar el filtrado del segundo tipo en el primer y el segundo componentes de croma respectivamente, siendo el segundo tipo de filtrado de bucle de desplazamiento adaptativo de muestras el otro del filtrado de tipo borde y el filtrado de tipo banda.
    15 13. Dispositivo, segun la reivindicacion 12, en el que el primer y el segundo componentes de croma son
    componentes de croma U y B, respectivamente.
  13. 14. Dispositivo, segun la reivindicacion 12 o 13, en el que dicho parametro o parametros de filtrado comunes son o incluyen un parametro de filtrado comun para indicar una clasificacion para el filtrado del primer tipo, y dichos 20 parametros de filtrado especializados son o incluyen parametros de filtrado especializados para indicar una clasificacion para filtrar el primer y el segundo componentes de croma, respectivamente.
ES12784571.7T 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen Active ES2626823T3 (es)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GBGB1119206.9A GB201119206D0 (en) 2011-11-07 2011-11-07 Method and device for providing compensation offsets for a set of reconstructed samples of an image
GB201119206 2011-11-07
GB1203285.0A GB2499983A (en) 2011-11-07 2012-02-24 Providing compensation offsets for a set of reconstructed samples of an image
GB201203285 2012-02-24
GB201205304 2012-03-26
GB1205304.7A GB2496220A (en) 2011-11-07 2012-03-26 Optimising Encoding/Decoding/Computation of Filtering Parameters (e.g. Compensation Offsets) for a Set of Reconstructed Samples of an Image
PCT/EP2012/072071 WO2013068428A2 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image

Publications (1)

Publication Number Publication Date
ES2626823T3 true ES2626823T3 (es) 2017-07-26

Family

ID=45421397

Family Applications (7)

Application Number Title Priority Date Filing Date
ES12783599.9T Active ES2628070T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para proporcionar desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES17161216T Active ES2772837T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES19218280T Active ES2906724T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES12784571.7T Active ES2626823T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES19218277T Active ES2906155T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES19218279T Active ES2905473T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES18173012T Active ES2771249T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para proporcionar desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES12783599.9T Active ES2628070T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para proporcionar desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES17161216T Active ES2772837T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES19218280T Active ES2906724T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen

Family Applications After (3)

Application Number Title Priority Date Filing Date
ES19218277T Active ES2906155T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES19218279T Active ES2905473T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
ES18173012T Active ES2771249T3 (es) 2011-11-07 2012-11-07 Procedimiento y dispositivo para proporcionar desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen

Country Status (14)

Country Link
US (12) US9106931B2 (es)
EP (11) EP3396957B1 (es)
JP (10) JP6184416B2 (es)
KR (12) KR102029614B1 (es)
CN (15) CN107197270B (es)
BR (10) BR122019026456B1 (es)
DK (2) DK2777255T3 (es)
ES (7) ES2628070T3 (es)
GB (5) GB201119206D0 (es)
HU (5) HUE057826T2 (es)
IN (2) IN2014CN04154A (es)
PL (5) PL3396957T3 (es)
RU (13) RU2641230C1 (es)
WO (3) WO2013068428A2 (es)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101529992B1 (ko) 2010-04-05 2015-06-18 삼성전자주식회사 픽셀 그룹별 픽셀값 보상을 위한 비디오 부호화 방법과 그 장치, 및 픽셀 그룹별 픽셀값 보상을 위한 비디오 복호화 방법과 그 장치
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US9277194B2 (en) 2011-11-08 2016-03-01 Texas Instruments Incorporated Method and apparatus for image and video coding using hierarchical sample adaptive band offset
US9253482B2 (en) * 2011-11-08 2016-02-02 Texas Insturments Incorporated Method and apparatus for sample adaptive offset without sign coding
JP5893754B2 (ja) * 2011-12-22 2016-03-23 サムスン エレクトロニクス カンパニー リミテッド 最大符号化単位別ピクセル分類によるオフセット調整を利用するビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
US9161035B2 (en) * 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
GB2509707B (en) 2013-01-04 2016-03-16 Canon Kk A method, device, computer program, and information storage means for encoding or decoding a video sequence
KR102166335B1 (ko) * 2013-04-19 2020-10-15 삼성전자주식회사 Sao 파라미터를 시그널링하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9826240B2 (en) * 2013-07-05 2017-11-21 Texas Instruments Incorporated High throughput VLSI architecture for HEVC SAO encoding
JP6174966B2 (ja) * 2013-10-17 2017-08-02 キヤノン株式会社 画像符号化装置、画像符号化方法、及びプログラム
CN105684409B (zh) 2013-10-25 2019-08-13 微软技术许可有限责任公司 在视频和图像编码和解码中使用散列值来表示各块
US10264290B2 (en) 2013-10-25 2019-04-16 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding
TWI496456B (zh) * 2013-11-19 2015-08-11 Ind Tech Res Inst 畫面間成本計算方法及畫面間成本計算裝置
CN103647975B (zh) * 2013-12-02 2017-01-11 国家广播电影电视总局广播科学研究院 基于直方图分析的改进样本自适应偏移滤波方法
CN110072106B (zh) * 2013-12-13 2022-06-07 北京三星通信技术研究有限公司 视频编解码中像素处理的方法和装置
US9628822B2 (en) 2014-01-30 2017-04-18 Qualcomm Incorporated Low complexity sample adaptive offset encoding
CN105393537B (zh) 2014-03-04 2019-08-27 微软技术许可有限责任公司 用于基于散列的块匹配的散列表构建和可用性检查
CN105556971B (zh) 2014-03-04 2019-07-30 微软技术许可有限责任公司 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
JP6338408B2 (ja) * 2014-03-14 2018-06-06 三菱電機株式会社 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
KR102298599B1 (ko) 2014-04-29 2021-09-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 샘플 적응 오프셋 필터링에 대한 인코더측 결정
CN105323588B (zh) * 2014-06-16 2019-06-21 敦泰电子股份有限公司 一种动态适应压缩参数的影像压缩系统
US10681372B2 (en) 2014-06-23 2020-06-09 Microsoft Technology Licensing, Llc Encoder decisions based on results of hash-based block matching
KR102276854B1 (ko) * 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
RU2679981C2 (ru) 2014-09-30 2019-02-14 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Основанные на хешах решения кодера для кодирования видео
GB2533905A (en) * 2014-10-06 2016-07-13 Canon Kk Method and apparatus for video coding and decoding
WO2016127271A1 (en) * 2015-02-13 2016-08-18 Xiaoou Tang An apparatus and a method for reducing compression artifacts of a lossy-compressed image
JP6454229B2 (ja) * 2015-06-10 2019-01-16 日本電信電話株式会社 画像符号化装置、画像復号装置、画像符号化プログラム及び画像復号プログラム
US20170006283A1 (en) * 2015-06-30 2017-01-05 Microsoft Technology Licensing, Llc Computationally efficient sample adaptive offset filtering during video encoding
KR102423880B1 (ko) 2015-10-06 2022-07-21 삼성전자주식회사 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법
KR20180064423A (ko) * 2015-11-04 2018-06-14 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
US10728546B2 (en) 2016-02-05 2020-07-28 Apple Inc. Sample adaptive offset systems and methods
EP3220643A1 (en) * 2016-03-14 2017-09-20 Thomson Licensing Method and device for encoding at least one image unit, and method and device for decoding a stream representative of at least one image unit
CN105959731B (zh) * 2016-04-28 2019-02-05 西安交通大学 一种数字电视的统计复用编码方法
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
EP3306922A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for encoding a picture using rate-distortion based block splitting
US10432972B2 (en) * 2016-10-19 2019-10-01 Google Llc Guided offset correction for loop restoration in video coding
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
EP3550842A4 (en) * 2016-12-30 2020-06-10 Huawei Technologies Co., Ltd. IMAGE FILTERING METHOD, APPARATUS AND DEVICE
JP7001346B2 (ja) 2017-01-30 2022-01-19 ダイキン工業株式会社 冷凍装置
CN110679149B (zh) * 2017-03-22 2023-04-04 汉阳大学校产学协力团 基于自适应像素分类基准的环路滤波方法
CN107360431B (zh) * 2017-06-30 2019-08-02 武汉斗鱼网络科技有限公司 一种帧类型的判断方法及装置
CN107707915B (zh) * 2017-09-30 2019-11-12 上海兆芯集成电路有限公司 采样点自适应偏移滤波的控制方法及其影像处理系统
JP6939892B2 (ja) 2017-10-25 2021-09-22 株式会社ソシオネクスト 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
JP7147788B2 (ja) 2018-01-05 2022-10-05 株式会社ソシオネクスト 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
GB2574423A (en) * 2018-06-05 2019-12-11 Canon Kk Video coding and decoding
JP6990627B2 (ja) 2018-06-29 2022-01-12 ダイキン工業株式会社 屋外空気調和装置
KR102312337B1 (ko) * 2018-10-19 2021-10-14 삼성전자주식회사 Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법
CN112997500B (zh) * 2018-11-09 2023-04-18 北京字节跳动网络技术有限公司 对基于区域的自适应环路滤波器的改进
GB2580173B (en) 2018-12-21 2022-07-27 Canon Kk A filter
CN109862374A (zh) * 2019-01-07 2019-06-07 北京大学 一种自适应环路滤波方法及装置
CN109859126B (zh) * 2019-01-17 2021-02-02 浙江大华技术股份有限公司 一种视频降噪方法、装置、电子设备及存储介质
CN117956149A (zh) 2019-03-08 2024-04-30 佳能株式会社 自适应环路滤波器
CN110677649B (zh) * 2019-10-16 2021-09-28 腾讯科技(深圳)有限公司 基于机器学习的去伪影方法、去伪影模型训练方法及装置
WO2021093801A1 (en) * 2019-11-14 2021-05-20 Beijing Bytedance Network Technology Co., Ltd. Coding of low bit-depth visual media data
US20230024020A1 (en) * 2019-12-09 2023-01-26 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive loop filtering
JP2023507259A (ja) * 2019-12-17 2023-02-22 アリババ グループ ホウルディング リミテッド ラップアラウンド動き補償を実行する方法
US11375221B2 (en) * 2020-02-12 2022-06-28 Tencent America LLC Method and apparatus for cross-component filtering
KR20220160038A (ko) 2020-03-26 2022-12-05 알리바바 그룹 홀딩 리미티드 비디오 코딩 데이터를 시그널링하기 위한 방법들
CN111698511B (zh) * 2020-06-07 2022-09-16 咪咕文化科技有限公司 图像滤波方法、装置、设备及可读存储介质
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US11750816B2 (en) * 2020-12-03 2023-09-05 Alibaba Group Holding Limited Methods and systems for cross-component sample adaptive offset
TWI764492B (zh) * 2020-12-31 2022-05-11 鴻海精密工業股份有限公司 缺陷檢測分類方法、裝置、電子設備及存儲介質
CN112862924B (zh) * 2020-12-31 2022-11-25 哈尔滨工业大学(威海) 多模态成像中图像重建方法、装置和多模态成像技术系统
CN113099230B (zh) * 2021-02-22 2022-09-06 浙江大华技术股份有限公司 编码方法、装置、电子设备及计算机可读存储介质
CN112819017B (zh) * 2021-03-09 2022-08-16 遵义师范学院 基于直方图的高精度色偏图像识别方法
CN113068037B (zh) * 2021-03-17 2022-12-06 上海哔哩哔哩科技有限公司 用于样点自适应补偿的方法及装置、设备和介质
CN112752104B (zh) * 2021-04-06 2021-06-08 浙江华创视讯科技有限公司 图像补偿方法、装置、存储介质及电子设备
CN117795957A (zh) * 2021-08-19 2024-03-29 北京达佳互联信息技术有限公司 跨分量样点自适应偏移中的编解码增强

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0223557A3 (en) 1985-11-15 1989-04-05 Data General Corporation Display control in a data processing system
KR0148130B1 (ko) 1992-05-18 1998-09-15 강진구 블럭킹아티팩트를 억제시키는 부호화/복호화 방법 및 그 장치
US5502489A (en) 1994-01-03 1996-03-26 Daewoo Electronics Co., Ltd. Method for the motion adaptive spatial filtering of video signals in an image coding apparatus
US6519369B1 (en) * 1999-02-12 2003-02-11 Sony Corporation Method and apparatus for filter tap expansion
FI117533B (fi) 2000-01-20 2006-11-15 Nokia Corp Menetelmä digitaalisten videokuvien suodattamiseksi
JP4156188B2 (ja) * 2000-10-20 2008-09-24 パイオニア株式会社 情報出力装置及び情報出力方法、情報記録装置及び情報記録方法、情報出力記録システム及び情報出力記録方法並びに情報記録媒体
US7450641B2 (en) 2001-09-14 2008-11-11 Sharp Laboratories Of America, Inc. Adaptive filtering based upon boundary strength
CN100493205C (zh) * 2003-08-19 2009-05-27 松下电器产业株式会社 动态图像编码方法及动态图像解码方法
EP1510973A3 (en) * 2003-08-29 2006-08-16 Samsung Electronics Co., Ltd. Method and apparatus for image-based photorealistic 3D face modeling
US7369709B2 (en) 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
CN1285214C (zh) * 2004-01-14 2006-11-15 华中科技大学 一种环路滤波方法和环路滤波器
US7397854B2 (en) * 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7876833B2 (en) 2005-04-11 2011-01-25 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive up-scaling for spatially scalable coding
JP2008536450A (ja) * 2005-04-13 2008-09-04 トムソン ライセンシング ビデオ復号化のための方法および装置
US7511769B2 (en) * 2005-04-19 2009-03-31 Texas Instruments Incorporated Interframe noise reduction for video
EP1891548B1 (en) 2005-06-01 2017-04-26 Koninklijke Philips N.V. Method and electronic device for determining a characteristic of a content item
RU2409008C2 (ru) 2005-06-23 2011-01-10 Конинклейке Филипс Электроникс Н.В. Комбинированная передача изображения и соответствующих данных о глубине
KR100678958B1 (ko) * 2005-07-29 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
CN100438629C (zh) * 2005-09-19 2008-11-26 华为技术有限公司 图像编码处理中的环路滤波方法
KR100647402B1 (ko) * 2005-11-01 2006-11-23 매그나칩 반도체 유한회사 이미지 센서의 화질개선장치 및 그 방법
US7956930B2 (en) * 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
RU2406259C2 (ru) 2006-03-27 2010-12-10 Квэлкомм Инкорпорейтед Способы и системы для кодирования уточняющих коэффициентов при сжатии видеоданных
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US9001899B2 (en) 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US20080080618A1 (en) 2006-09-28 2008-04-03 Kazuya Takagi Video decoding apparatus and method of the same
JP5801032B2 (ja) * 2006-11-08 2015-10-28 トムソン ライセンシングThomson Licensing インループのアーチファクト除去フィルタリングのための方法および装置
CN100578618C (zh) * 2006-12-04 2010-01-06 华为技术有限公司 一种解码方法及装置
US9445128B2 (en) * 2006-12-08 2016-09-13 Freescale Semiconductor, Inc. System and method of determining deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers
WO2008075247A1 (en) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Image compression and decompression
US8174621B2 (en) * 2008-01-12 2012-05-08 Huaya Microelectronics Digital video decoder architecture
US8234193B2 (en) * 2008-03-03 2012-07-31 Wildfire Interactive, Inc. Method and system for providing online promotions through a social network-based platform
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
JP2009290552A (ja) * 2008-05-29 2009-12-10 Fujifilm Corp 動画圧縮装置および動画圧縮プログラム
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
JP5161702B2 (ja) * 2008-08-25 2013-03-13 キヤノン株式会社 撮像装置、撮像システム、及び焦点検出方法
US9571856B2 (en) * 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
CN101742290B (zh) * 2008-11-12 2013-03-27 北京中星微电子有限公司 视频编、解码降噪方法和视频编、解码降噪装置
WO2010092740A1 (ja) * 2009-02-10 2010-08-19 パナソニック株式会社 画像処理装置、画像処理方法、プログラムおよび集積回路
CN101511024A (zh) * 2009-04-01 2009-08-19 北京航空航天大学 实时电子稳像中基于运动状态识别的运动补偿方法
EP2237557A1 (en) * 2009-04-03 2010-10-06 Panasonic Corporation Coding for filter coefficients
US20100329362A1 (en) 2009-06-30 2010-12-30 Samsung Electronics Co., Ltd. Video encoding and decoding apparatus and method using adaptive in-loop filter
JP5818800B2 (ja) * 2009-10-05 2015-11-18 トムソン ライセンシングThomson Licensing 符号化方法及び復号化方法
CN102792690B (zh) * 2010-03-09 2016-06-15 汤姆森特许公司 基于分类环路滤波器的方法和装置
KR101529992B1 (ko) * 2010-04-05 2015-06-18 삼성전자주식회사 픽셀 그룹별 픽셀값 보상을 위한 비디오 부호화 방법과 그 장치, 및 픽셀 그룹별 픽셀값 보상을 위한 비디오 복호화 방법과 그 장치
US8428372B2 (en) * 2010-04-09 2013-04-23 The Boeing Company Method, apparatus and computer program product for compressing data
CN101860753B (zh) * 2010-04-30 2012-10-03 北京航空航天大学 一种基于分形的视频压缩与解压缩方法
US8660174B2 (en) * 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9247265B2 (en) * 2010-09-01 2016-01-26 Qualcomm Incorporated Multi-input adaptive filter based on combination of sum-modified Laplacian filter indexing and quadtree partitioning
CN106878729B (zh) * 2010-10-05 2019-09-24 寰发股份有限公司 基于分区基础的自适应环路滤波方法和装置
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
US20130294705A1 (en) * 2010-11-10 2013-11-07 Sony Corporation Image processing device, and image processing method
US9161041B2 (en) 2011-01-09 2015-10-13 Mediatek Inc. Apparatus and method of efficient sample adaptive offset
JP5524423B2 (ja) * 2011-01-09 2014-06-18 メディアテック インコーポレイテッド 効率的なサンプル適応オフセットの装置及び方法
US20120183078A1 (en) 2011-01-14 2012-07-19 Samsung Electronics Co., Ltd. Filter adaptation with directional features for video/image coding
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
GB2488830B (en) 2011-03-10 2015-07-29 Canon Kk Method and device for encoding image data and method and device for decoding image data
CN107396129B (zh) 2011-03-30 2020-05-05 Lg 电子株式会社 环路滤波方法及其设备
CA2823902C (en) 2011-04-21 2018-03-27 Mediatek Inc. Method and apparatus for improved in-loop filtering
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
CN103535035B (zh) 2011-05-16 2017-03-15 寰发股份有限公司 用于亮度和色度分量的样本自适应偏移的方法和装置
ES2853673T3 (es) 2011-06-14 2021-09-17 Lg Electronics Inc Método para codificar y descodificar la información de imágenes
WO2012175195A1 (en) 2011-06-20 2012-12-27 Panasonic Corporation Simplified pipeline for filtering
DK3361725T3 (da) * 2011-06-23 2020-04-27 Huawei Tech Co Ltd Offset dekoderanordning, offset koderanordning, billedfilteranordning og datastruktur
CN107105305B (zh) 2011-06-24 2020-04-03 Lg 电子株式会社 图像信息编码和解码方法
WO2013002554A2 (ko) * 2011-06-28 2013-01-03 삼성전자 주식회사 픽셀 분류에 따른 오프셋 조정을 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
US9344743B2 (en) 2011-08-24 2016-05-17 Texas Instruments Incorporated Flexible region based sample adaptive offset (SAO) and adaptive loop filter (ALF)
US10070152B2 (en) * 2011-08-24 2018-09-04 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
WO2013042884A1 (ko) 2011-09-19 2013-03-28 엘지전자 주식회사 영상 부호화/복호화 방법 및 그 장치
KR20130034566A (ko) * 2011-09-28 2013-04-05 한국전자통신연구원 제한된 오프셋 보상 및 루프 필터를 기반으로 하는 영상 부호화 및 복호화 방법 및 그 장치
WO2013046990A1 (ja) * 2011-09-29 2013-04-04 シャープ株式会社 オフセット復号装置、オフセット符号化装置、画像フィルタ装置、および、データ構造
US20130083844A1 (en) 2011-09-30 2013-04-04 In Suk Chong Coefficient coding for sample adaptive offset and adaptive loop filter
US9357235B2 (en) 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
WO2013060250A1 (en) * 2011-10-24 2013-05-02 Mediatek Inc. Method and apparatus for non-cross-tile loop filtering
JP2013093792A (ja) * 2011-10-27 2013-05-16 Sony Corp 画像処理装置および方法
TWI577191B (zh) 2011-11-03 2017-04-01 太陽專利信託 以脈衝碼調變模式編碼之區塊的濾波技術
US10051289B2 (en) 2011-11-04 2018-08-14 Qualcomm Incorporated Adaptive center band offset filter for video coding
JP2013138395A (ja) 2011-11-04 2013-07-11 Sharp Corp 画像フィルタ装置、画像復号装置、画像符号化装置、および、データ構造
GB201119206D0 (en) * 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US20130136173A1 (en) 2011-11-15 2013-05-30 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
JP5893754B2 (ja) * 2011-12-22 2016-03-23 サムスン エレクトロニクス カンパニー リミテッド 最大符号化単位別ピクセル分類によるオフセット調整を利用するビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
US9161035B2 (en) 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
US9380302B2 (en) * 2012-02-27 2016-06-28 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
KR101636269B1 (ko) * 2012-07-04 2016-07-05 인텔 코포레이션 3차원 비디오 코딩을 위한 뷰 간 필터 파라미터 재사용
CN104641640B (zh) * 2012-07-16 2018-04-20 三星电子株式会社 用于用信号传输sao参数的视频编码方法和视频编码设备以及视频解码方法和视频解码设备

Also Published As

Publication number Publication date
BR122019026456B1 (pt) 2022-05-24
JP2021040333A (ja) 2021-03-11
BR122019028115B1 (pt) 2023-02-07
PL3396957T3 (pl) 2020-05-18
BR122019028116B1 (pt) 2022-05-17
PL3657792T3 (pl) 2022-05-16
EP2777253B1 (en) 2017-04-12
EP3648461A1 (en) 2020-05-06
EP2777255A2 (en) 2014-09-17
KR101972366B1 (ko) 2019-04-25
US20190281322A1 (en) 2019-09-12
JP2018137752A (ja) 2018-08-30
EP3657791A1 (en) 2020-05-27
BR112014010885B1 (pt) 2022-05-17
KR101530244B1 (ko) 2015-06-22
US10462493B2 (en) 2019-10-29
ES2906724T3 (es) 2022-04-20
KR20140095112A (ko) 2014-07-31
KR20180125040A (ko) 2018-11-21
US9106931B2 (en) 2015-08-11
CN107707914A (zh) 2018-02-16
RU2014123386A (ru) 2015-12-20
CN111405278B (zh) 2022-05-24
CN107295337B (zh) 2020-03-31
CN107295337A (zh) 2017-10-24
US10575020B2 (en) 2020-02-25
JP6598957B2 (ja) 2019-10-30
KR20140090648A (ko) 2014-07-17
KR20180125616A (ko) 2018-11-23
WO2013068433A2 (en) 2013-05-16
CN107465918B (zh) 2020-08-11
JP2019110587A (ja) 2019-07-04
US20140369429A1 (en) 2014-12-18
EP3247117A1 (en) 2017-11-22
US20150334423A1 (en) 2015-11-19
EP2777253A2 (en) 2014-09-17
BR122019026459B1 (pt) 2022-11-22
JP6184416B2 (ja) 2017-08-23
KR101530832B1 (ko) 2015-06-22
HUE047964T2 (hu) 2020-05-28
CN103975588A (zh) 2014-08-06
GB201205304D0 (en) 2012-05-09
CN107197270B (zh) 2020-03-17
CN103975587A (zh) 2014-08-06
RU2020108456A (ru) 2021-08-27
ES2772837T3 (es) 2020-07-08
JP6748749B2 (ja) 2020-09-02
CN107465919B (zh) 2020-05-01
US20150326860A1 (en) 2015-11-12
US20170280165A1 (en) 2017-09-28
IN2014CN04153A (es) 2015-07-10
US20210306675A1 (en) 2021-09-30
PL3657791T3 (pl) 2022-06-20
EP3270592B1 (en) 2018-11-07
DK2777253T3 (en) 2017-05-22
HUE057829T2 (hu) 2022-06-28
JP2017225144A (ja) 2017-12-21
US20180367815A1 (en) 2018-12-20
DK2777255T3 (en) 2017-05-15
PL3657790T3 (pl) 2022-06-20
EP3247117B1 (en) 2020-01-08
EP3657792B1 (en) 2021-12-22
CN107566840B (zh) 2020-05-01
RU2014123360A (ru) 2015-12-20
KR102130480B1 (ko) 2020-07-06
ES2905473T3 (es) 2022-04-08
US20150334393A1 (en) 2015-11-19
RU2586862C2 (ru) 2016-06-10
WO2013068427A2 (en) 2013-05-16
JP2020022183A (ja) 2020-02-06
BR122019026461B1 (pt) 2023-01-31
EP2777255B1 (en) 2017-03-29
CN107197256B (zh) 2021-09-21
ES2771249T3 (es) 2020-07-06
JP2017098979A (ja) 2017-06-01
CN107197271B (zh) 2020-04-21
BR122019026460B1 (pt) 2022-11-22
KR20180125041A (ko) 2018-11-21
JP2019036982A (ja) 2019-03-07
CN107347156A (zh) 2017-11-14
CN107197256A (zh) 2017-09-22
GB2499983A (en) 2013-09-11
CN107197271A (zh) 2017-09-22
BR112014010885A2 (pt) 2017-04-18
WO2013068428A3 (en) 2013-07-18
US20140301480A1 (en) 2014-10-09
RU2708351C1 (ru) 2019-12-05
EP2777254A2 (en) 2014-09-17
US20170359598A1 (en) 2017-12-14
CN107347156B (zh) 2020-04-21
CN107483935A (zh) 2017-12-15
BR112014010882B1 (pt) 2022-05-17
JP2014533028A (ja) 2014-12-08
CN107396105A (zh) 2017-11-24
CN107707914B (zh) 2021-03-19
US10771819B2 (en) 2020-09-08
US9118931B2 (en) 2015-08-25
WO2013068427A3 (en) 2013-07-04
GB201206591D0 (en) 2012-05-30
EP3657792A1 (en) 2020-05-27
JP6419269B2 (ja) 2018-11-07
RU2636666C1 (ru) 2017-11-27
JP6797993B2 (ja) 2020-12-09
CN103975587B (zh) 2017-05-10
CN111405278A (zh) 2020-07-10
EP3270592A1 (en) 2018-01-17
JP6067024B2 (ja) 2017-01-25
CN107566840A (zh) 2018-01-09
JP6324481B2 (ja) 2018-05-16
RU2019137625A3 (es) 2021-05-24
JP7077385B2 (ja) 2022-05-30
RU2586863C2 (ru) 2016-06-10
HUE057828T2 (hu) 2022-06-28
HUE048923T2 (hu) 2020-09-28
EP3657791B1 (en) 2021-12-22
GB2496220A (en) 2013-05-08
KR102029614B1 (ko) 2019-10-07
KR20140090698A (ko) 2014-07-17
EP3396957B1 (en) 2019-12-25
EP3657790A1 (en) 2020-05-27
EP3657790B1 (en) 2021-12-22
CN107197270A (zh) 2017-09-22
CN107483935B (zh) 2020-08-11
CN107396105B (zh) 2020-03-31
WO2013068428A2 (en) 2013-05-16
JP2014534762A (ja) 2014-12-18
IN2014CN04154A (es) 2015-07-10
KR20140093247A (ko) 2014-07-25
CN103975588B (zh) 2017-06-06
US9794596B2 (en) 2017-10-17
US11601687B2 (en) 2023-03-07
GB201119206D0 (en) 2011-12-21
GB201200918D0 (en) 2012-02-29
RU2716535C1 (ru) 2020-03-12
EP3229471A1 (en) 2017-10-11
CN103975590A (zh) 2014-08-06
JP6490264B2 (ja) 2019-03-27
RU2702054C1 (ru) 2019-10-03
EP2777254B1 (en) 2017-09-06
GB201203285D0 (en) 2012-04-11
EP3396957A1 (en) 2018-10-31
KR20180125042A (ko) 2018-11-21
RU2641230C1 (ru) 2018-01-16
GB2496213B (en) 2014-12-03
KR20200022537A (ko) 2020-03-03
KR20180125052A (ko) 2018-11-21
KR102068432B1 (ko) 2020-01-20
US9848208B2 (en) 2017-12-19
CN103975590B (zh) 2017-09-26
GB2496213A (en) 2013-05-08
RU2707926C1 (ru) 2019-12-02
RU2684478C1 (ru) 2019-04-09
GB2496222A (en) 2013-05-08
KR102030304B1 (ko) 2019-10-08
US10743033B2 (en) 2020-08-11
ES2906155T3 (es) 2022-04-13
KR20190114049A (ko) 2019-10-08
US20190373291A1 (en) 2019-12-05
WO2013068433A3 (en) 2013-11-21
US20140301489A1 (en) 2014-10-09
BR122019028117B1 (pt) 2022-11-22
CN107465919A (zh) 2017-12-12
KR20180125051A (ko) 2018-11-21
US11076173B2 (en) 2021-07-27
RU2019137625A (ru) 2021-05-24
RU2701130C1 (ru) 2019-09-24
US10085042B2 (en) 2018-09-25
JP6490276B2 (ja) 2019-03-27
BR112014010882A2 (pt) 2017-05-02
PL3247117T3 (pl) 2020-06-01
KR102068431B1 (ko) 2020-01-20
CN107465918A (zh) 2017-12-12
KR101920105B1 (ko) 2018-11-19
BR122019028118B1 (pt) 2022-05-17
KR101920529B1 (ko) 2018-11-20
KR102083280B1 (ko) 2020-03-02
HUE057826T2 (hu) 2022-06-28
RU2676410C1 (ru) 2018-12-28
ES2628070T3 (es) 2017-08-01
US9774886B2 (en) 2017-09-26
JP2018139426A (ja) 2018-09-06

Similar Documents

Publication Publication Date Title
ES2626823T3 (es) Procedimiento y dispositivo para optimizar la codificación/descodificación de desplazamientos de compensación para un conjunto de muestras reconstruidas de una imagen
JP7223045B2 (ja) マルチコンポーネント画像またはビデオ符号化のコンセプト
WO2020211807A1 (en) Matrix derivation in intra coding mode
US20230396780A1 (en) Illumination compensation method, encoder, and decoder
CN116723321A (zh) 编码方法和装置、解码方法和装置以及存储介质
CN117221570A (zh) 编码方法和编码装置、解码方法和解码装置以及存储介质