ES3003283T3 - Deblocking filter selection in video or image coding - Google Patents

Deblocking filter selection in video or image coding Download PDF

Info

Publication number
ES3003283T3
ES3003283T3 ES20859777T ES20859777T ES3003283T3 ES 3003283 T3 ES3003283 T3 ES 3003283T3 ES 20859777 T ES20859777 T ES 20859777T ES 20859777 T ES20859777 T ES 20859777T ES 3003283 T3 ES3003283 T3 ES 3003283T3
Authority
ES
Spain
Prior art keywords
block
abs
equal
value
calculating
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
ES20859777T
Other languages
English (en)
Inventor
Kenneth Andersson
Jack Enhorn
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES3003283T3 publication Critical patent/ES3003283T3/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/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
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

La decisión de filtro largo en VVC se modifica añadiendo al menos una comprobación de gradiente que incluye al menos la muestra p6 o q6. Esto hace posible evitar el uso de filtros largos cuando hay alguna estructura natural en la muestra p6 o q6. En una realización específica se añaden al menos dos comprobaciones de gradiente que incluyen tanto q6 como p6. En otra realización, el umbral dpq se modifica de beta >> 2 a beta >> 4. Esta realización de cambio de umbral se puede utilizar junto con o en lugar de la realización en la que se añade una comprobación de gradiente que incluye p6 y/o q6 a la decisión de filtro largo. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Desbloqueo de selección de filtro en codificación de vídeo o imagen
Campo técnico
Esta descripción se refiere a la codificación y decodificación de video y/o imagen.
Antecedentes
Una secuencia de video consta de una serie de imágenes donde cada imagen consta de uno o más componentes. Cada componente puede describirse como una matriz rectangular bidimensional de valores de muestra. Es común que una imagen en una secuencia de video conste de tres componentes; un componente de luma Y donde los valores de muestra son valores de luma y dos componentes de croma Cb y Cr, donde los valores de muestra son valores de croma. Otros ejemplos incluyen Y' Cb Cr, Yuv e ICTCP. En ICTCP, I es el componente de "luma de intensidad". En el resto de este documento nos referiremos a cualquier componente de luma Y', Y o I como Y o simplemente luma. Es común que las dimensiones de los componentes de croma sean más pequeñas que las de los componentes de luma por un factor de dos en cada dimensión. Por ejemplo, el tamaño del componente de luma de una imagen HD sería 1920x1080 y los componentes de croma tendrían cada uno la dimensión de 960x540. Los componentes a veces se denominan componentes de color.
Un "bloque" es una matriz bidimensional de muestras. En la codificación de vídeo, cada componente se divide en uno o más bloques y el flujo de bits de vídeo codificado es una serie de bloques. Es común en la codificación de video que una imagen se divida en unidades que cubren un área específica de la imagen. Cada unidad consta de todos los bloques de todos los componentes que componen esa área específica y cada bloque pertenece completamente a una unidad. El macrobloque en H.264 y la unidad de codificación (CU) en HEVC son ejemplos de unidades.
En HEVC, cada imagen se divide en unidades de árbol de codificación (CTU). Una CTU consta de un bloque de NxN de muestras de luma y dos bloques de croma correspondientes de MxM. Una CTU en HEVC es como macrobloques en H.264 y estándares anteriores, pero a diferencia de los macrobloques, el tamaño de la CTU es configurable. Sin embargo, lo más frecuente es que el tamaño de la CTU en HEVC se establezca en muestras de luma de 64x64. Cada CTU puede dividirse en árbol cuádruple de manera recursiva. La raíz del árbol cuádruple se asocia entonces con la CTU. El árbol cuádruple se divide hasta que se alcanza una hoja, lo que se denomina unidad de codificación (CU). Una CU en HEVC siempre consta de un bloque de luma con igual altura y anchura. La forma en que se divide cada CTU se transmite en el flujo de bits. La CU es además el nodo raíz de otros dos árboles, el árbol de predicción que tiene unidades de predicción (PU) como nodos y el árbol de transformación que tiene unidades de transformación (TU) como nodos. Algunos procesos de decodificación en HEVC se realizan en el nivel de CU, algunos se realizan en el nivel de PU y algunos en el nivel de TU. Los límites entre las PU y los límites entre las TU se filtran mediante un filtro de desbloqueo para reducir las discontinuidades entre las TU y las PU. En HEVC existen dos tipos de predicción para una PU: la intrapredicción, que solo utiliza la predicción de muestras previamente decodificadas de la imagen actual para la predicción, y la interpredicción, que utiliza la predicción de al menos una imagen previamente decodificada.
En HEVC, el desbloqueo se aplica primero en los límites verticales y luego en los límites horizontales. Los límites son límites de TU o límites de PU. Para permitir el desbloqueo paralelo amigable, el desbloqueo se realiza en una cuadrícula de muestras de 8x8.
Se establece un parámetro de intensidad del filtro de desbloqueo (bs) para cada límite. Si el valor de bs es mayor que 0, entonces puede aplicarse el desbloqueo. Cuanto mayor sea la intensidad del límite, más fuerte se aplica el filtrado. Primero se comprueba si alguno de los bloques en un límite de PU entre los bloques es un bloque intrapredicho (bs se establece en = 2), o si ambos bloques utilizan interpredicción pero utilizan diferentes fotogramas de referencia o tienen vectores de movimiento significativamente diferentes, entonces (bs se establece en =1). También se comprueba si un límite de TU entre los bloques tiene coeficientes de transformación distintos de cero en al menos uno de los bloques (indicador de bloque de código CBF igual a 1), entonces (bs se establece en =1). Esta primera comprobación establece una intensidad del límite (bs) que es mayor que 0 para indicar que debe aplicarse el desbloqueo. Cuanto mayor es la intensidad del límite, más fuerte se aplica el filtrado. Para reducir/evitar la eliminación de estructuras naturales al desbloquear, se aplica entonces para luma una comprobación de que no haya ninguna estructura natural en los lados respectivos del límite. En HEVC, los cálculos de gradiente se utilizan en los lados respectivos del límite utilizando la siguiente desigualdad: abs(p0 - 2*p1+p2) abs(q0-2*q1+q2) < beta, donde beta (también denotado "p") es un parámetro basado en el parámetro de cuantificación para el bloque y p0, p1, a p2 son muestras en un lado del límite de bloque y q0, q1, a q2 son muestras en el otro lado del límite de bloque. La condición se comprueba en dos posiciones a lo largo del límite, y si se cumplen ambas condiciones, entonces las muestras de luma se desbloquean para esa parte de 4 muestras del límite. Los límites de croma siempre pueden filtrarse si alguno de los bloques vecinos está intracodificado.
En el borrador actual de la especificación para VVC (borrador de VVC 6 JVET-O2001-v14) una unidad de árbol de codificación (CTU) es similar a la CTU en HEVC con la diferencia de que la CTU en H.266 tiene un tamaño de 128x128 muestras de luma. En VVC, la CTU puede dividirse de manera más flexible, de manera que las CU resultantes pueden constar de un bloque de luma rectangular. En VVC, no hay un árbol de predicción o un árbol de transformación como en HEVC. Sin embargo, una CU en VVC puede dividirse en múltiples TU o en múltiples subbloques de predicción.
En el borrador actual de la especificación para VVC (borrador de VVC 6 JVET-O2001-v14), el desbloqueo se aplica en una cuadrícula de 4x4 para las CU primero en los límites verticales (CU/TU implícita/límites del subbloque de predicción) y luego en los límites horizontales (CU/TU implícita/subbloques de predicción). Los límites de los subbloques de predicción dentro de una CU se filtran en una cuadrícula de 8x8. El desbloqueo se basa en el desbloqueo de HEVC pero también tiene filtros de desbloqueo más largos si el tamaño ortogonal al límite de bloque es igual o mayor que 32 en al menos un lado para luma y el otro lado es mayor que 4, modificando como máximo 7 muestras (leyendo como máximo 8 muestras), si el tamaño ortogonal al límite de bloque es menor que 32 para un lado para luma modifica como máximo 3 muestras y lee como máximo 4 muestras en ese lado, y si es igual o mayor que 8 a ambos lados de un límite en muestras de croma para croma modifica como máximo 3 muestras de croma y lee como máximo 4 muestras de croma; de lo contrario, modifica como máximo una muestra y lee como máximo dos muestras en el lado respectivo del límite.
La especificación de VVC (JVET-O2001-v14) tiene filtros largos y decisiones especificadas en la sección 8.8.3 Proceso de filtro de desbloqueo.
Las decisiones de desbloqueo se calculan para la línea 0 y la línea 4 para segmentos de para líneas.
La Figura 3 muestra un límite entre el primer bloque 302 (denotado el "bloque P") y un segundo bloque 304 (denotado el "bloque Q") para 4 líneas, línea 0 a línea 3, y para ocho muestras, muestras 0 a 7, para cada línea y bloque.
Lo siguiente es un extracto de la especificación de VVC (JVET-O2001-v14). Este extracto está dirigido a la decisión de filtro largo.
-- Comienzo del extracto --
8.8.3.6.1 Proceso de decisión para bordes de bloque de luma
Se aplican los siguientes pasos ordenados:
1. Las variables dp0, dp3, dq0 y dq3 se obtienen de la siguiente manera:
dpO = Abs(p2,o - 2 * pi,0 po,o) (8-1077)
dp3 = Abs( p2,3 - 2 * pi,3 po,3) (8-1078)
dqO = Abs( q2,o - 2 * qi,0 qo,o) (8-1079)
dq3 = Abs( q2,3 - 2 * qi,3 qo,3) (8-1080)
2. Cuando maxFilterLengthP y maxFilterLengthQ son iguales o mayores que 3, las variables sp0, sq0, spq0, sp3, sq3 y spq3 se obtienen de la siguiente manera:
spO = Abs( p3,o “ Po,o) (8-1081)
sqO = Abs( q0,o - q3,o) (8-1082)
spqO = Abs( p0j0 - qo,o) (8-1083)
sp3 = Abs( p3,3 - po,3) (8-1084)
sq3 = Abs( q0,3 - q3,3) (8-1085)
spq3 = Abs( p0,3 - qo,3) (8-1086)
3. Las variables sidePisLargeBlk y sideQisLargeBlk se establecen igual a 0.
4. Cuando maxFilterLengthP es mayor que 3, sidePisLargeBlk se establece igual a 1:
5. Cuando maxFilterLengthQ es mayor que 3, sideQisLargeBlk se establece igual a 1:
6. Cuando edgeType es igual a EDGE_HOR y (yCb yBl) % CtbSizeY es igual a 0, sidePisLargeBlk se establece igual a 0.
7. Las variables dSamO y dSam3 se inicializan a 0.
8. Cuando sidePisLargeBlk o sideQisLargeBlk es mayor que 0, se aplica lo siguiente:
a. Se obtienen las variables dp0L, dp3L y se modifica maxFilterLengthP de la siguiente manera:
- Si sidePisLargeBlk es igual a 1, se aplica lo siguiente:
De lo contrario, se aplica lo siguiente:
b. Las variables dq0L y dq3L se obtienen de la siguiente manera:
- Si sideQisLargeBlk es igual a 1, se aplica lo siguiente:
De lo contrario, se aplica lo siguiente:
c. Las variables dpq0L, dpq3L y dL se obtienen de la siguiente manera:
d. Cuando dL es menor que p, se aplican los siguientes pasos ordenados:
i . La variable dpq se establece igual a 2 * dpq0L.
ii. La variable sp se establece igual a sp0, la variable sq se establece igual a sq0 y la variable spq se establece igual a spq0.
iii. Las variables p<0>p3 q<0>y q3 se inicializan primero a 0 y luego se modifican según sidePisLargeBlk y sideQisLargeBlk de la siguiente manera:
- Cuando sidePisLargeBlk es igual a 1, se aplica lo siguiente:
Cuando sideQisLargeBlk es igual a 1, se aplica lo siguiente:
( 8 - 1101 )
Qo QrnaxF ilterLe ngthQ,0 ( 8 - 1102 )
iv. Para la ubicación de la muestra (xCb xBl , yCb yBl ), se invoca el proceso de decisión para una muestra de luma como se especifica en la cláusula 8.8.3.6.5 con los valores de muestra p<0>, p<3>, q<0>, q<3>, las variables dpq, sp, sq, spq, sidePisLargeBlk, sideQisLargeBlk y tC como entradas, y la salida se asigna a la decisión dSam0.
v. La variable dpq se establece igual a 2 * dpq3L.
vi. La variable sp se establece igual a sp3, la variable sq se establece igual a sq3 y la variable spq se establece igual a spq3.
vii. Las variables p<0>, p3, q<0>y q3 primero se inicializan a 0 y luego se modifican según sidePisLargeBlk y sideQisLargeBlk de la siguiente manera:
- Cuando sidePisLargeBlk es igual a 1, se aplica lo siguiente:
P3 = P3,3(8-1103)
Po — PmaxFillerLengthP.3(8-1104)- Cuando sideQisLargeBlk es igual a 1, se aplica lo siguiente:
q3 = q3,3(8-1105)
qo — qmaxFilterLengtliQ,3(8-1106)viii. Cuando edgeType es igual a EDGE_VER para la ubicación de la muestra (xCb xBl , yCb yBl 3) o cuando edgeType es igual a EDGE_HOR para la ubicación de la muestra (xCb xBl 3, yCb yBl), el proceso de decisión para una muestra de luma como se especifica en la cláusula 8.8.3.6. 5 se invoca con los valores de muestra p<0>, p3, q<0>, q3, las variables dpq, sp, sq, spq , sidePisLargeBlk , sideQisLargeBlk , p y tC como entradas, y la salida se asigna a la decisión dSam3.
9. Las variables dE , dEp y dEq se obtienen de la siguiente manera:
- Si dSam0 y dSam3 son ambas iguales a 1, la variable dE se establece igual a 3, dEp se establece igual a 1 y dEq se establece igual a 1.
- De lo contrario, se aplican los siguientes pasos ordenados:
a. Las variables dpq0, dpq3, dp, dq y d se obtienen de la siguiente manera:
dpqO = dpO dqO (8-1107) dpq3 = dp3 dq3 (8-1108) dp = dpO dp3 (8-1109) dq = dqO dq3 (8-1110) d = dpqO dpq3 (8-1111)
b. Las variables dE, dEp , dEq , sidePisLargeBlk y sideQisLargeBlk se establecen igual a 0.
c. Cuando d es menor que p y tanto maxFilterLengthP como maxFilterLengthQ son mayores que 2, se aplican los siguientes pasos ordenados:
i. La variable dpq se establece igual a 2 * dpq0.
ii. La variable sp se establece igual a sp0, la variable sq se establece igual a sq0 y la variable spq se establece igual a spq0.
iii. Para la ubicación de la muestra (xCb xBl , yCb yBl), el proceso de decisión para una muestra de luma como se especifica en la cláusula 8.8.3.6.5 se invoca con las variables p<0>, p3, q<0>, q3 establecidas todas igual a 0, las variables dpq, sp, sq, spq , sidePisLargeBlk , sideQisLargeBlk , p y tC como entradas, y la salida se asigna a la decisión dSam0. iv. La variable dpq se establece igual a 2 * dpq3.
v. La variable sp se establece igual a sp3, la variable sq se establece igual a sq3 y la variable spq se establece igual a spq3.
vi. Cuando edgeType es igual a EDGE VER para la ubicación de la muestra (xCb xBl , yCb yBl 3) o cuando edgeType es igual a EDGE HOR para la ubicación de la muestra (xCb xBl 3, yCb yBl), el proceso de decisión para una muestra como se especifica en la cláusula 8.8.3.6.5 se invoca con las variables p<0>, p3, q<0>, q3 establecidas todas igual a 0, las variables dpq , sp , sq, spq , sidePisLargeBlk , sideQisLargeBlk , p y tC como entradas, y la salida se asigna a la decisión dSam3.
d. Cuando d es menor que p, se aplican los siguientes pasos ordenados:
i. La variable dE se establece igual a 1.
ii. Cuando dSam0 es igual a 1 y dSam3 es igual a 1, la variable dE se establece igual a 2.
iii. Cuando maxFilterLengthP es mayor que 1, y maxFilterLengthQ es mayor que 1, y dp es menor que (p (p >> 1)) >> 3, la variable dEp se establece igual a 1.
iv. Cuando maxFilterLengthP es mayor que 1, y maxFilterLengthQ es mayor que 1, y dq es menor que (p (p >> 1)) >> 3, la variable dEq se establece igual a 1.
Tabla 8-18 — Obtención de las variables de umbral p' y tC' a partir de la entrada Q
8.8.3.6.2 Proceso de filtrado para bordes de bloque de luma
Dependiendo del valor de edgeType, se aplica lo siguiente:
- Si edgeType es igual a EDGE_VER, se aplican los siguientes pasos ordenados:
3. Cuando dE es igual a 3, para cada ubicación de muestra (xCb xBl , yCb yBl k), k = 0..3, se aplican los siguientes pasos ordenados:
a. El proceso de filtrado para una muestra de luma que utiliza filtros largos como se especifica en la cláusula 8.8.3.6.7 se invoca con los valores de muestra p¡,k , qj,k con i = 0..maxFilterLengthP y j = 0.. maxFilterLengthQ, las ubicaciones (xPi, yPi) establecidas igual a (xCb xBl - i - 1, yCb yBl k) con i = 0..maxFilterLengthP - 1 y (xQj, yQj) establecidas igual a (xCb xBl j, yCb yBl k) con j = 0..maxFilterLengthQ - 1, las variables maxFilterLengthP , maxFilterLengthQ y te como entradas y los valores de las muestras filtradas<p>¡' y qj como salidas.
b. Los valores de las muestras filtradas p¡' con i = 0..maxFilterLengthP - 1 reemplazan las muestras correspondientes dentro de la matriz de muestras recPicture de la siguiente manera:
recPicture[ xCb xBl - i - 1 ][ yCb yBl k ] = p¡' (8-1116)
c. Los valores de las muestras filtradas q¡' con j = 0..maxFilterLengthQ - 1 reemplazan las muestras correspondientes dentro de la matriz de muestras recPicture de la siguiente manera:
recPicture[ xCb xBl j ][ yCb yBl k ] = q¡' (8-1117)
- De lo contrario (edgeType es igual a EDGE_HOR), se aplican los siguientes pasos ordenados:
3. Cuando dE es igual a 3, para cada ubicación de muestra (xCb xBl k, yCb yBl), k = 0..3, se aplican los siguientes pasos ordenados:
a. El proceso de filtrado para una muestra de luma que utiliza filtros largos como se especifica en la cláusula 8.8.3.6.7 se invoca con los valores de muestra p¡,k , qj,k con i = 0..maxFilterLengthP y j = 0..maxF¡lterLengthQ, las ubicaciones (xP¡, yP¡) establecidas igual a (xCb xBl k, yCb yBl - i - 1) con i = 0..maxF¡lterLengthP — 1 y (xQj , yQj) establecidas igual a (xCb xBl k, yCb yBl j) con j = 0..maxFilterLengthQ - 1, las variables maxFilterLengthP , maxFilterLengthQ y la variable tC como entradas, y los valores de las muestras filtradas p¡' y qj' como salidas.
b. Los valores de las muestras filtradas p¡' con i = 0..maxFilterLengthP - 1 reemplazan las muestras correspondientes dentro de la matriz de muestras recPicture de la siguiente manera:
recPicture| xCb xBl k || vCb yBl - i - 1 | = p¡' (8-1122)
c. Los valores de las muestras filtradas qj' con j= 0..maxFilterLengthQ - 1 reemplazan las muestras correspondientes dentro de la matriz de muestras recPicture de la siguiente manera:
recPicture| xCb xBl k |[ vCb yBl+j| = q¡' (8-1123)
8.8.3.6.5 Proceso de decisión para una muestra de luma
Las entradas a este proceso son:
- los valores de muestra po, p3, qo y q3,
- las variables dpq , sp , sq, spq , sidePisLargeBlk, sideQisLargeBlk , p y tC . La salida de este proceso es la variable dSam que contiene una decisión.
Las variables sp y sq se modifican de la siguiente manera:
- Cuando sidePisLargeBlk es igual a 1, se aplica lo siguiente:
sp = ( sp Abs( p<3>- po) 1 ) » 1 (8-1158)- Cuando sideQisLargeBlk es igual a 1, se aplica lo siguiente:
sq = ( sq Abs( q3 - q0) 1) » 1 (8-1159)La variable sThr se obtiene de la siguiente manera:
- Si sidePisLargeBIk es igual a 1 o sideQisLargeBIk es igual a 1, se aplica lo siguiente:
sThr = 3 * p » 5 (8-1160)- De lo contrario, se aplica lo siguiente:
sThr = () » 3 (8-1161)
La variable dSam se especifica de la siguiente manera:
- Si todas las siguientes condiciones son verdaderas, dSam se establece igual a 1:
- dpq es menor que (p >> 2),
- sp sq es menor que sThr,
- spq es menor que (5 * te 1) >> 1.
- De lo contrario, dSam se establece igual a 0.
8.8.3.6.6 Proceso de filtrado para una muestra de luma utilizando filtros cortos
Las entradas a este proceso son:
- los valores de muestra pi y qi con i = 0..3,
- las ubicaciones de pi y qi, (xPi, yP¡) y (xQi , yQ¡) con i = 0..2,
- una variable dE,
- las variables dEp y dEq que contienen decisiones para filtrar las muestras p1 y q1, respectivamente,
- una variable te.
Las salidas de este proceso son:
- el número de muestras filtradas nDp y nDq ,
- los valores de las muestras filtradas p¡' y qj' con i = 0..nDp - 1, j = 0..nDq - 1.
Dependiendo del valor de dE, se aplica lo siguiente:
- Si la variable dE es igual a 2, nDp y nDq se establecen ambas iguales a 3 y se aplica el siguiente filtrado fuerte:
qo’ = Clip3( qo _ 3 * tc, qo 3 * te, ( pi 2 * po 2 * qo 2 * qi q2 4 ) » 3 ) (8-1165) qi' = Clip3( qi - 2 * le, qi 2 * tc, ( po qo qi qj 2 ) » 2 ) (8-1166) q2'= Clip3( q2 - 1 * tc, q2 1 * tc, ( po qo qi 3 * q2 2 * q3 4 ) » 3 ) (8-1167)
- De lo contrario, nDp y nDq se establecen ambas iguales a 0 y se aplica el siguiente filtrado débil:
- Se aplica lo siguiente:
A = ( 9 * ( qo - po) ~ 3 * ( qi - p i) 8 ) » 4 (8-1168)- Cuando Abs(A) es menor que tc*10, se aplican los siguientes pasos ordenados:
- Los valores de las muestras filtradas p<0>' y q<0>' se especifican de la siguiente manera:
A = Clip3( -te, te, A )(8 -1169 )po' = CliplY( po A )(8 -1170 )q0' = CliplY(q o -A )(8 -1171 )
- Cuando dEp es igual a 1, el valor de la muestra filtrada p<1>' se especifica de la siguiente manera:
Ap = Clip3( - ( te » 1 ), te » 1, ( ( ( pj pa 1 ) » 1 ) - pi A ) » 1 ) (8-1172)
P i '= C1íP 1y( pi A p ) (8 -1173 )
- Cuando dEq es igual a 1, el valor de la muestra filtrada q<1>' se especifica de la siguiente manera:
Aq = Clip3( - ( te » 1 ), te » 1, ( ( ( q2 qo 1 ) » 1 ) —qi - A) » 1) (8-1174) qi’= Cliply( qi Aq ) (8-1175)
- nDp se establece igual a dEp 1 y nDq se establece igual a dEq 1.
Cuando nDp es mayor que 0 y una o más de las siguientes condiciones son verdaderas, nDp se establece igual a 0: - cu_transquant_bypass_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra p<0>es igual a 1.
- pred_mode_plt_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra p<0>es igual a 1.
Cuando nDq es mayor que 0 y una o más de las siguientes condiciones son verdaderas, nDq se establece igual a 0: - cu_transquant_bypass_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra p<0>es igual a 1.
- pred_mode_plt_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra q<0>es igual a 1.
8.8.3.6.7 Proceso de filtrado para una muestra de luma utilizando filtros largos
Las entradas a este proceso son:
- las variables maxFilterLengthP y maxFilterLengthQ ,
- los valores de muestra pi y qj con i = 0..maxFilterLengthP y j = 0..maxFilterLengthQ,
- las ubicaciones de pi y qj, (xP¡, yP¡) y (xQj, yQj) con i = 0..maxFilterLengthP - 1 y j = 0..maxFilterLengthQ - 1, - una variable tc.
Las salidas de este proceso son:
- los valores de las muestras filtradas pi' y qj' con i = 0..maxFilterLengthP - 1, j = 0..maxFilterLenghtQ - 1.
La variable refMiddle se obtiene de la siguiente manera:
- Si maxFilterLengthP es igual a maxFilterLengthQ y maxFilterLengthP es igual a 5, se aplica lo siguiente:
refMiddle = ( pj 2* ( p> pi po qo qi q2 ) q, q, 8) » 4 (8-1176)- De lo contrario, si maxFilterLengthP es igual a maxFilterLengthQ y maxFilterLengthP no es igual a 5, se aplica lo siguiente:
- De lo contrario, si una de las siguientes condiciones es verdadera,
- maxFilterLengthQ es igual a 7 y maxFilterLengthP es igual a 5,
- maxFilterLengthQ es igual a 5 y maxFilterLengthP es igual a 7, se aplica lo siguiente:
- De lo contrario, si una de las siguientes condiciones es verdadera,
- maxFilterLengthQ es igual a 5 y maxFilterLengthP es igual a 3,
- maxFilterLengthQ es igual a 3 y maxFilterLengthP es igual a 5, se aplica lo siguiente:
rcfMiddlc — ( pi p<2>+ pi po qo qi<<|2>+ qs 4) » 3 (8-1179)- De lo contrario, si maxFilterLengthQ es igual a 7 y maxFilterLengthP es igual a 3, se aplica lo siguiente:
rcfMiddlc = ( 2 * ( p> pi po qo) po pi qi qj q? qj qs qt, 8 ) » 4 (8-1180)- De lo contrario, se aplica lo siguiente:
refMiddle = ( p& ps p^ pj p: pi 2*( q> qi q» p<») q« qi 8 ) » 4 (8-1181)
Las variables refP y refQ se obtienen de la siguiente manera:
r c fP = ( PmaxFilterLengtP PniaxFilterLengihP-1 4" 1 ) 1(8-1182)
r e fQ = ( qniaxFilterLenglQ qmaxFillerLeiiglhQ-l I ) > > 1(8-1183)Las variables fi y tCPDi se definen de la siguiente manera:
- Si max<FilterLengthP es igual a 7, se aplica lo siguiente:
fo..6= { 59.50.41.32,23, 14,5 }(8-1184)(CPD0..6={6, 5, 4, 3, 2, 1, l }(8-1185)De lo contrario, si maxFilterLengthP es igual a 5, se aplica lo siguiente:
- De lo contrario, se aplica lo siguiente:
Las variables gj y tCQDj se definen de la siguiente manera:
- Si maxFilterLengthQ es igual a 7, se aplica lo siguiente:
go.,6= { 59, 50, 41,32, 23, 14, 5 } (8-1190) 1cOD06={ 6,5,4, 3,2, 1, 1 > (8-1191)
- De lo contrario, si maxFilterLengthQ es igual a 5, se aplica lo siguiente:
go<,4>= { 58, 45, 32, 19,6 } (8-1192) tcQDo i = { 6, 5, 4, 3,2 } (8-1193)- De lo contrario, se aplica lo siguiente
go { 53, 32,11 }(8-1194) tcQDo .<2>= { 6, 4, 2 } (8-1195)
Los valores de las muestras filtradas p¡' y qj' con i = 0..maxFilterLengthP - 1 y j = 0..maxFilterLenghtQ - 1 se obtienen de la siguiente manera:
p¡' = Clip3( pi - ( tc*tcPD¡) » 1, p¡ ( tc*tcPD¡) » 1, ( rcfMiddle*fi refP*( 64 - f ,) 32) » 6 ) (8-1196)
qi'=Clip3( qj -( tc*lcQDj) » 1. q¡ ( tc*tcQD¡) » 1, (refMiddle*gj+refQ*(64 - gj)32)»6)(8-1197)
Cuando una o más de las siguientes condiciones son verdaderas, el valor de la muestra filtrada, pi’, se sustituye por el valor de la muestra de entrada p¡ correspondiente con i = 0..maxFilterLengthP - 1:
- cu_transquant_bypass_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra pi es igual a 1.
- pred_mode_plt_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra<p>¡ es igual a 1.
Cuando una o más de las siguientes condiciones son verdaderas, el valor de la muestra filtrada, qi’, se sustituye por el valor de la muestra de entrada qj correspondiente con j = 0..maxFilterLengthQ - 1:
- cu_transquant_bypass_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra qi es igual a 1.
- pred_mode_plt_flag de la unidad de codificación que incluye el bloque de codificación que contiene la muestra qi es igual a 1.
-- Fin del extracto -
La técnica anterior US 2019/238890 Al describe un método de filtrado de desbloqueo que comprende decidir si aplicar o no un filtro y, una vez que se toma la decisión de aplicar el filtro, el método comprende decidir qué filtro seleccionar. Los filtros utilizados son los filtros largos.
Compendio
Existen ciertos desafíos. Por ejemplo, la decisión de filtro largo para el filtrado de 7 muestras en uno o dos lados no tiene en cuenta ni la muestra p6 para el bloque P ni la q6 para el bloque Q, y esto puede permitir el filtrado largo a pesar del hecho de que dicho filtrado largo reducirá la calidad de la imagen (por ejemplo, destruirá una textura natural) al modificar p6 y/o q6.
A continuación se muestran ejemplos de valores de muestra a lo largo de un límite entre el bloque P (p0 a p7) y el bloque Q (q0 a q7), donde p0 y q0 son adyacentes al límite, que las decisiones de filtro largo actuales ignoran por completo y, por lo tanto, pueden aplicar un desbloqueo que elimina la textura natural:
Muestras: p7 p6 p5 p4 p3 p2 p1 p0 q0 q1 q2 q3 q4 q5 q6 q7
No puede detectarse un pico en la muestra p6 o q6 donde p6 y q6 son mayores o menores que las muestras vecinas como se muestra en el ejemplo 1.
Ejemplo 1100 10 1010 101010 | 10101010 10100 10
No puede detectarse un pico en la muestra p5 o q5 donde p4, p5, p6, q4, q5 y q6 son mayores o menores que las muestras vecinas como se muestra en el ejemplo 2.
Ejemplo 21020 3020 1010 1010 10 | 10101010 2030 2010
Para superar este problema, esta descripción propone realizaciones donde la decisión de filtro largo en VVC se modifica añadiendo al menos una comprobación de gradiente que incluye al menos la muestra p6 o q6. Esto hace posible evitar el uso de filtros largos cuando hay alguna estructura natural en la muestra p6 o q6. En una realización específica, se añaden al menos dos comprobaciones de gradiente que incluyen tanto q6 como p6. En otra realización, el umbral de dpq se modifica de beta >> 2 a beta >> 4. Esta realización de cambio de umbral puede utilizarse junto con o en lugar de la realización en la que se añade una comprobación de gradiente que incluye p6 y/o q6 a la decisión de filtro largo. Una ventaja de las realizaciones propuestas es que aumentan la calidad de la imagen mostrada al usuario (por ejemplo, evita eliminar líneas estrechas o difuminar líneas estrechas).
Según el primer aspecto, se proporciona un método para desbloquear el filtrado de límites de bloque verticales y/u horizontales. El método es realizado por un codificador de imagen o vídeo o un decodificador de imagen o vídeo. El método comprende obtener (s402) un primer conjunto de valores de muestra que comprende un primer bloque de valores de muestra y un segundo bloque de valores de muestra, en donde el primer bloque de valores de muestra comprende un conjunto de valores de muestra B1_i,k para i =0-7 y k=0-3, y el segundo bloque de valores de muestra comprende un conjunto de valores de muestra B2_i,k para i =0-7 y k=0-3. comprende decidir (s404) si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra. Decidir si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra comprende: calcular (s502) un primer valor de gradiente, maxGradB1_6,0, como maxGradB1_6,0 = Abs(B1_7,0 - B1_6,0 - B1_5,0 B1_4,0), calcular (s504) un primer valor de pq , pq1_0, utilizando maxGradB1_6,0, en donde calcular pq1_0 comprende calcular un valor sp, calcular un valor sq y calcular sp sq, en donde pq1_0 = (sp sq), en donde sp = (Abs(B1_0,0 - B1_3,0) Abs(B1_3,0 — B1_7,0) maxGradB1_6,0 1) >> 1. El segundo bloque tiene una longitud máxima de filtro, maxFilterLengthQ y:
si maxFilterLengthQ es igual a 7, entonces sq = (Abs(B2_0,0 - B2_3,0) Abs(B2_3,0 - B2_7,0) maxGradB2_6,0 1) >> 1, donde maxGradB2_6, 0 es un tercer valor de gradiente, si maxFilterLengthQ es igual a 5, entonces sq = (Abs(B2_0,0 - B2_3,0) Abs(B2_3,0 - B2_5,0) 1) >> 1, y
si maxFilterLengthQ no es igual a 7 y no es igual a 5, entonces sq = Abs(B2_0,0 - B2_3,0).
Decidir si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra comprende además: comparar (s508) pq1_0 con un umbral, en donde el umbral es igual a 3*p >> 5, y p se selecciona de un conjunto de valores de beta predeterminados en base a un valor de parámetro de cuantificación, Q; calcular un segundo valor de gradiente, maxGradB1_6,3, utilizando el valor de muestra B1_6,3; calcular un segundo valor de pq, pq1_3, utilizando maxGradB1_6,3, y comparar (s508) pq1_3 con el umbral. En respuesta a la decisión (s404) de utilizar el filtro largo, aplicar (s406) el filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra.
Según el segundo aspecto, se proporciona un programa informático que comprende instrucciones que, cuando son ejecutadas por circuitos de procesamiento, hacen que los circuitos de procesamiento realicen el método según el primer aspecto. Según el tercer aspecto, se proporciona un soporte que contiene el programa informático según el segundo aspecto, en donde el soporte es uno de entre una señal electrónica, una señal óptica, una señal de radio y un medio de almacenamiento legible por ordenador.
Según el cuarto aspecto, se proporciona un aparato para desbloquear el filtrado de límites de bloque verticales y/u horizontales, estando adaptado el aparato para realizar el método según el primer aspecto.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques esquemático de un codificador de vídeo según una realización.
La Figura 2 es un diagrama de bloques esquemático de un decodificador de vídeo según una realización.
La Figura 3 ilustra un límite entre un primer bloque (denominado bloque P) y un segundo bloque (denominado bloque Q).
La Figura 4 es un diagrama de flujo que ilustra un proceso según una realización.
La Figura 5 es un diagrama de flujo que ilustra un proceso según una realización.
La Figura 6 es un diagrama de bloques de un aparato según una realización.
La Figura 7 un diagrama de bloques funcional de un aparato según una realización.
Descripción detallada
Las realizaciones descritas en la presente memoria pueden utilizarse en un codificador de vídeo o decodificador de vídeo para desbloquear límites de bloque verticales y/u horizontales. También se aplica a un codificador de imágenes o un decodificador de imágenes para desbloquear límites de bloque verticales y/u horizontales.
La Figura 1 es un diagrama de bloques esquemático de un codificador de vídeo 140 para codificar un bloque de píxeles en una imagen de vídeo (también denominada fotograma) de una secuencia de vídeo según algunas realizaciones.
Un bloque actual de píxeles se predice realizando una estimación de movimiento utilizando el estimador de movimiento 150 a partir de un bloque de píxeles ya proporcionado en el mismo fotograma o en un fotograma anterior. El resultado de la estimación de movimiento es un vector de movimiento o desplazamiento asociado con el bloque de referencia, en el caso de interpredicción. El vector de movimiento puede ser utilizado por el compensador de movimiento 150 para emitir una interpredicción del bloque de píxeles.
El intrapredictor 149 calcula una intrapredicción del bloque actual de píxeles. Las salidas del estimador/compensador de movimiento 150 y el intrapredictor 149 se introducen en el selector 151 que selecciona la intrapredicción o la interpredicción para el bloque actual de píxeles. La salida del selector 151 se introduce en una calculadora de errores en forma de sumador 141 que también recibe los valores de píxel del bloque actual de píxeles. El sumador 141 calcula y emite un error residual como la diferencia en los valores de píxel entre el bloque de píxeles y su predicción.
El error se transforma en el transformador 142, tal como mediante una transformada discreta del coseno, y es cuantificado por el cuantificador 143 seguido de la codificación en el codificador 144, tal como mediante un codificador de entropía. En la intercodificación, también el vector de movimiento estimado se lleva al codificador 144 para generar la representación codificada del bloque actual de píxeles.
El error residual transformado y cuantificado para el bloque actual de píxeles también se proporciona a un cuantificador inverso 145 y a un transformador inverso 146 para recuperar el error residual original. Este error es añadido por el sumador 147 a la salida de predicción de bloque del compensador de movimiento 150 o el intrapredictor 149 para crear un bloque de referencia de píxeles que puede utilizarse en la predicción y la codificación de un siguiente bloque de píxeles. Este nuevo bloque de referencia es procesado primero por un filtro de desbloqueo 100 según los ejemplos/realizaciones discutidos a continuación para realizar el filtrado de desbloqueo para reducir/combatir los artefactos de bloqueo. El nuevo bloque de referencia procesado se almacena entonces temporalmente en la memoria intermedia de fotogramas 148, donde está disponible para el intrapredictor 149 y el estimador/compensador de movimiento 150.
La Figura 2 es un diagrama de bloques esquemático correspondiente de un decodificador de vídeo 260 que incluye un filtro de desbloqueo 100 según algunas realizaciones. El decodificador 260 incluye un decodificador 261, tal como un decodificador de entropía, para decodificar una representación codificada de un bloque de píxeles para obtener un conjunto de errores residuales cuantificados y transformados. Estos errores residuales son decuantificados por el cuantificador inverso 262 y transformados inversamente por el transformador inverso 263 para proporcionar un conjunto de errores residuales.
Estos errores residuales son añadidos por el sumador 264 a los valores de píxel de un bloque de píxeles de referencia. El bloque de referencia es determinado por un estimador/compensador de movimiento 267 o un intrapredictor 266, dependiendo de si se realiza inter o intrapredicción. De este modo, el selector 268 se interconecta con el sumador 264 y con el estimador/compensador de movimiento 267 y con el intrapredictor 266. El bloque de píxeles decodificado resultante emitido desde el sumador 264 se introduce en el filtro de desbloqueo 100 según algunas realizaciones de los conceptos inventivos para proporcionar un filtrado de desbloqueo de los artefactos de bloqueo. El bloque de píxeles filtrado se emite desde el decodificador 260 y además puede proporcionarse temporalmente a la memoria intermedia de fotogramas 265 para ser utilizado como bloque de píxeles de referencia para un bloque de píxeles posterior a ser decodificado. De este modo, la memoria intermedia de fotogramas 265 se conecta al estimador/compensador de movimiento 267 para hacer que los bloques de píxeles almacenados estén disponibles para el estimador/compensador de movimiento 267.
La salida del sumador 264 también puede introducirse en el intrapredictor 266 para ser utilizada como un bloque de píxeles de referencia sin filtrar.
En las realizaciones de la Figura 1 y la Figura 2, el filtro de desbloqueo 100 puede realizar un filtrado de desbloqueo como el llamado filtrado en bucle. En realizaciones alternativas en el decodificador 260, el filtro de desbloqueo 100 puede disponerse para realizar el llamado filtrado de postprocesamiento. En tal caso, el filtro de desbloqueo 100 opera en los fotogramas de salida fuera del bucle formado por el sumador 264, la memoria intermedia de fotogramas 265, el intra predictor 266, el estimador/compensador de movimiento 267 y el selector 268. En dichas realizaciones, normalmente no se realiza ningún filtrado de desbloqueo en el codificador. Las operaciones del filtro de desbloqueo 100 se analizarán con mayor detalle a continuación.
Cuando se determina que el número máximo de muestras que pueden modificarse en al menos un lado del límite de bloque es 7 muestras y se determina que la intensidad del límite es mayor que 0 para una línea de muestras, una decisión de filtro largo se basa en la determinación de un valor de gradiente (denominado "magGradp6") (por ejemplo, la magnitud de un gradiente) utilizando el valor de muestra p6 en el bloque P si maxFilterLengthP es igual a 7 y se basa en la determinación de un valor de gradiente (denominado "magGradq6") utilizando el valor de muestra q6 en el bloque Q si maxFilterLengthQ es igual a 7.
En una realización, calcular magGradp6 comprende calcular magGradp6 utilizando p6 y utilizando al menos uno de p3, p4, p5 y p7, y calcular magGradq6 comprende calcular magGradq6 utilizando q6 y utilizando al menos uno de q3, q4, q5 y q7.
Alternativa 1
El valor magGradp6 se añade a otros cálculos de gradiente que incluyen al menos las muestras p0, p3 y p7. Por ejemplo, un valor sp se calcula como:
sp = (Abs(p0 - p3) Abs(p3 - p7) magGradp6 1) >> 1
El valor magGradq6 se añade a otros cálculos de gradiente que incluyen al menos las muestras q0, q3 y q7. Por ejemplo, un valor sq se calcula como:
sq = (Abs(q0 - q3) Abs(q3 - q7) magGradq6 1) >> 1.
Puede entonces calcularse un valor spq donde spq = sp sq.
dp = (Abs(p0 - 2*p1 p2) Abs(p3 - 2*p4 p5) 1) >> 1.
dq = (Abs(q0 - 2*q1 q2) Abs(q3 - 2*q4 q5) 1) >> 1.
Alternativa 2
El valor magGradp6 reemplaza la magnitud calculada para el caso de maxFilterLengthP igual a 5 de la siguiente manera:
Si maxFilterLengthP == 7, entonces
dp = (Abs(p0 - 2*p1 p2) magGradp6 1) >> 1, de lo contrario
dq = (Abs(q0 - 2*q1 q2) Abs(q3 - 2*q4 q5) 1) >> 1.
El valor magGradq6 reemplaza la magnitud calculada para el caso de maxFilterLengthQ igual a 5 de la siguiente manera:
Si maxFilterLengthQ == 7, entonces
dq = (Abs(q0 - 2*q 1 q2) magGradq6 1) >> 1, de lo contrario
dq = (Abs(q0 - 2*q 1 q2) Abs(q3 - 2*q4 q5) 1) >> 1.
Un valor, dpq, se calcula entonces como dpq = dq+dp .
Para la alternativa 1 o la alternativa 2 anteriores, en una realización se decide utilizar un filtro largo si todas las siguientes tres condiciones son VERDADERAS:
(1) spq < umbral1,
(2) 2*dpq < umbral2, y
(Abs(p0 — q0) < umbral3.
Si una o más de las condiciones anteriores no es verdadera, entonces no se aplica el filtro largo y maxFilterLengthP y maxFilterLengthQ son iguales a 3 o menos.
En una realización, umbral1 = sThr (por ejemplo, (3 *beta)>>5).
En una realización, umbral2 = beta >> 2, donde beta depende de un valor de parámetro de cuantificación, Q, como se muestra anteriormente en la tabla 8-18.
En una realización, umbral3 = (5*tC+1) >> 1, donde tC depende de un valor de parámetro de cuantificación, Q, como se muestra anteriormente en la tabla 8-18.
Para la alternativa 1 o la alternativa 2 anteriores, en una realización magGradp6 se determina como: Abs(p6 - p7), y magGradq6 se determina como: Abs (q7-q6).
En otra realización, magGradp6 es igual a Abs(p4 - p5 - p6 p7) y magGradq6 es igual a Abs(q7 - q5 - q6 q4). Un beneficio de esta realización en comparación con la realización con gradiente determinado a partir de la diferencia entre dos muestras es que este enfoque para determinar la magnitud del gradiente no aumenta de forma sensible a una rampa, una pendiente con valores crecientes o decrecientes de p0 a p7 o de q0 a q7.
En otra realización, magGradp6 es igual a Abs(p4 - 2*p5 p6) y magGradq6 es igual a Abs(q6 - 2*q5 q4). Un beneficio de esta realización en comparación con la realización con gradiente determinado a partir de la diferencia entre dos muestras es que este enfoque para determinar la magnitud del gradiente no aumenta de forma sensible a una rampa, una pendiente con valores crecientes o decrecientes de p0 a p7 o de q0 a q7.
Para la alternativa 1, las ecuaciones 8-1081,8-1082, 8-1084 y 8-1085 de la Sección 8.8.3.6.1 de la presente memoria pueden modificarse de la siguiente manera:
spO = maxFilterLengthP=7 ? Abs( p3,0 - p0,0 ) magGradpóO: Abs( p3,0 - p0,0 ) (8-1081), sqO = maxFilterLengthQ==7 ? Abs( q0,0 - q3,0 ) magGradqóO: Abs( q0,0 - q3,0 ) (8-1082), sp3 = maxFilterLengthP=7 ? Abs( p3,3 - p0,3 ) magGradp6_3: Abs( p3,3 - p0,3 ) (8-1084), sq3 = maxFilterLengthQ==7 ? Abs( q0,3 - q3,3 ) magGradq6_3: Abs( q0,3 - q3,3 ) (8-1085),
donde
magGradpóO = Abs( p7,0 - pó,0 ) or
Abs( p7,0 - p6,0 - p5,0 p4,0) o
Abs( pó,0 -2*p5,0 p4,0);
magGradpó_3 = Abs( p7,3 - pó,3 ) or
Abs( p7,3 - pó,3 - p5,3 p4,3) o
Abs( pó,3 -2*p5,3 p4,3);
magGradqó_0 = Abs( q6,0 - q7,0 ) or
Abs( q4,0 - q6,0 - q5,0 q7,0) o
Abs( q4,0 -2*q5,0 q6,0); and
magGradqó_3 = Abs( qó,3 - q7,3 ) or
Abs( q4,3 - qó,3 - q5,3 q7,3) o
Abs( q4,3 -2*q5,3 q6,3).
Para la alternativa 2, las ecuaciones 8-1087, 8-1088, 8-1092 y 8-1093 de la Sección 8.8.3.6.1 de la presente memoria pueden modificarse de la siguiente manera:
dpOL = ( dp() (niaxFilterLengthP ==7 ? magGradpó O: Abs( p5,0 - 2 * p4.0 p3.0 )) 1 ) » 1 (8-1087), dp3L = ( dp3 (maxFilteiLEngthP == 7 ? magGradp6_3: Abs( p5,3 - 2 * p4,3 p3,3 )) 1 ) » 1 (8 1088), dqOL = ( dqO (maxFilterLEngthQ == 7 ? magGradqó O: Abs( q5,0 - 2 * q4,0 q3,0 )) 1 ) » L (8-1092), dq3L = ( dq3 (maxFilterLengthQ == 7 ? magGradqó_3: Abs( q5,3 - 2 * q4.3 q3,3 ))+ 1 ) » 1 (8-1093),
donde
magGradpóO = Abs( p7,0 - p6,0 - p5,0 p4,0) o
Abs( p6f0 -2*p5,0 p4,0);
magGradp6_3 = Abs( p7,3 - p6,3 - p5,3 p4,3) o
Abs( pó}3 -2*p5,3 p4,3);
magGradq6_0 = Abs( q4,0 - q6,0 - q5,0 q7,0) o
Abs( q4,0 -2*q5,0 q6,0); and
magGradqó_3 = Abs( q4,3 - q6,3 - q5,3 q7,3) o
Abs( q4,3 -2*q5,3 qó,3)
En otra realización, el umbral de dpq (también conocido como "umbral2 " se modifica de modo que el umbral2 sea igual a beta >> 4, en lugar de ser igual a beta >> 2. En esta realización, la Sección 8.8.3.6.5 se modifica de la siguiente manera:
Las variables sThr1 y sThr2 se obtienen de la siguiente manera:
- Si sidePisLargeBlk es igual a 1 o sideQisLargeBlk es igual a 1, se aplica lo siguiente:
sThrl = 3 * (3 » 5 (8-1160)
sThr2 = P » 4 (8-1160b)
- De lo contrario, se aplica lo siguiente:
La variable dSam es especifica de la siguiente manera:
- Si todas las siguientes condiciones son verdaderas, dSam es igual a 1:
- dpq es menor que sThr2,
- sp sq es menor que sThrl ,
- spq es menor que (5 * tC 1 ) >> 1.
De lo contrario, dSam es igual a 0.
En otra realización, la modificación del umbral de dqp también se aplica a la decisión de filtro fuerte/débil. En esta realización, la Sección 8.8.3.6.5 se modifica de la siguiente manera:
Las variables sThrl y sThr2 se obtienen de la siguiente manera:
- Si sidePisLargeBlk es igual a 1 o sideQisLargeBlk es igual a 1, se aplica lo siguiente:
sThrl = 3 * p » 5 (8-1160)
sThr2 = p » 4 (8-1160b)
- De lo contrario, se aplica lo siguiente:
sThrl = (3 » 3 (8-1161)
La variable dSam se especifica de la siguiente manera:
- Si todas las siguientes condiciones son verdaderas, dSam se establece igual a 1:
- dpq es menor que sThr2,
- sp sq es menor que sThrl ,
- spq es menor que (5 * tC 1) >> 1.
De lo contrario, dSam se establece igual a 0.
La Figura 4 es un diagrama de flujo que ilustra un proceso 400 según algunas realizaciones. El proceso 400 puede comenzar en el paso s402.
El paso s402 comprende obtener un primer conjunto de valores de muestra. En una realización, el primer conjunto de valores de muestra comprende un primer bloque de valores de muestra (por ejemplo, el bloque 302) (en lo sucesivo denominado bloque P) y un segundo bloque de valores de muestra (por ejemplo, el bloque 304) (en lo sucesivo denominado bloque Q). En una realización, como se muestra en la Figura 3, el bloque P comprende un conjunto de valores de muestra pi,k para i =0 a 7 y k=0 a 3, y el bloque q comprende un conjunto de valores de muestra qi,k para i =0 a 7 y k=0 a 3.
El paso s404 comprende seleccionar un filtro a utilizar para filtrar al menos un subconjunto del primer conjunto de valores de muestra (por ejemplo, valores de muestra pi,k para i = 0 a 7 y k=0 a 3 y/o valores de muestra qi,k para i=0 a 7 y k=0 a 3). Por ejemplo, el paso s404 puede comprender decidir si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra o decidir si debe aplicarse o no el uso de un filtrado fuerte (véase, por ejemplo, la especificación VVC en 8.8.3.6.6).
El paso s406 comprende aplicar el filtro seleccionado.
La Figura 5 es un diagrama de flujo que ilustra un proceso 500 según una realización para realizar el paso s404. El proceso 500 puede comenzar en el paso s501. El paso s501 comprende inicializar tres variables: k, dSam_0 y dSam_3, donde todas estas variables se inicializan a 0.
Después del paso s501, el proceso 500 puede incluir realizar los pasos s502 y s504 o, en su lugar, realizar el paso s506. Los pasos s502 y s504 se realizan con la suposición de que maxFilterLengthP = 7.
El paso s502 comprende calcular un primer valor de gradiente, maxGradp6_k, utilizando el valor de muestra p6,k. Por ejemplo, calcular maxGradp6_k incluye: calcular Abs(p7,k - p6,k) o calcular Abs(p7,k - p6,k - p5,k p4,k) o calcular Abs(p6,k - 2 * p5,k p4,k).
El paso s504 comprende calcular tres valores de pq (pq 1, pq2 y pq3), en donde al menos pq 1 se calcula utilizando maxGradp6_k.
Por ejemplo, en una realización calcular pq 1 comprende calcular un valor sp sq, en donde calcular sp comprende calcular sp = (Abs(p0,k - p3,k) Abs(p3,k - p7,k) magGradp6_k 1 ) >> 1. Calcular sq puede comprender calcular: (Abs(q0,k - q3,k) Abs(q3,k - q7,k) magGradq6_k 1) >> 1, donde magGradq6_k es igual a: Abs(q7,k - q6,k) o Abs(q7,k - q6,k - q5,k q4,k) o Abs(q6,k - 2 * q5,k q4,k).
En otra realización, calcular pq 1 comprende calcular 2*(dp dq), en donde calcular dp comprende calcular dp = (Abs(p0,k - 2 * p1 ,k p2,k) magGradp6_k 1) >> 1. Calcular dq puede comprender calcular: (Abs(q0,k - 2 * q1 ,k q2,k) magGradq6_k 1) >> 1.
El paso s506 comprende calcular los tres valores de pq (pq 1, pq2 y pq3) sin utilizar maxGradp6_k (es decir, sin utilizar el valor de muestra p6,k ). En una realización, pq 1 = sp sq; pq2= dpq; y pq3 = Abs(p0,k - q0,k)
El paso s508 comprende: i) comparar pq 1 con un primer umbral (t), ii) comparar pq2 con un segundo umbral (t2), y iii) comparar pq3 con un tercer umbral (t3).
Si pq1 es menor que t1, y pq2 es menor que t2, y pq3 es menor que t3, entonces el proceso 500 continúa en el paso s510; de lo contrario, continúa en el paso s509 (es decir, se selecciona un primer filtro (por ejemplo, se aplica un filtrado corto)).
El paso s510 comprende comprobar si k es igual a 3. Si k no es igual a 3, entonces el proceso 500 continúa en el paso s512; de lo contrario, continúa en el paso s516. En el paso s512, k se establece igual a 3 y dSam_0 se establece en 1. Después del paso s512, el proceso vuelve al paso s502 o s506. El paso s516 comprende comprobar si dSam_0 es igual a 1. Si no lo es, el proceso 500 pasa al paso s509; de lo contrario, el proceso 500 pasa al paso s518 (es decir, se selecciona un segundo filtro (por ejemplo, se aplica el filtrado largo)).
En una realización en donde se realiza el paso s506 en lugar de los pasos s502 y s504, pq1 es igual a 2*(dp dq), donde
dp = (Abs(p0 - 2*p1 p2) Abs(p5- 2*p4 p3) 1) >> 1, y
dq = (Abs(q0 - 2*q 1 q2) Abs(q5- 2*q4 q3) 1) >> 1. En dicha realización, el primer umbral (t1) puede ser igual a beta >> 4.
La Figura 6 es un diagrama de bloques de un aparato 600, según algunas realizaciones, para implementar el codificador de vídeo 140 o el decodificador de vídeo 260. Como se muestra en la Figura 6, el aparato 600 puede comprender: circuitos de procesamiento (PC) 602, que pueden incluir uno o más procesadores (P) 655 (por ejemplo, un microprocesador de propósito general y/o uno o más de otros procesadores, tal como un circuito integrado de aplicación específica (ASIC), matrices de puertas programables por campo (FPGA) y similares), cuyos procesadores pueden estar ubicados conjuntamente en una única carcasa o en un único centro de datos o pueden estar distribuidos geográficamente (es decir, el aparato 600 puede ser un aparato informático distribuido); una interfaz de red 648 que comprende un transmisor (Tx) 645 y un receptor (Rx) 647 para permitir que el aparato 600 transmita datos y reciba datos de otros nodos conectados a una red 110 (por ejemplo, una red de protocolo de internet (IP)) a la que la interfaz de red 648 está conectada (directa o indirectamente) (por ejemplo, la interfaz de red 648 puede conectarse de forma inalámbrica a la red 110, en cuyo caso la interfaz de red 648 está conectada a una disposición de antena); y una unidad de almacenamiento local (también conocida como "sistema de almacenamiento de datos") 608, que puede incluir uno o más dispositivos de almacenamiento no volátiles y/o uno o más dispositivos de almacenamiento volátiles. En realizaciones donde el PC 602 incluye un procesador programable, puede proporcionarse un producto de programa informático (CPP) 641. El CPP 641 incluye un medio legible por ordenador (CRM) 642 que almacena un programa informático (CP) 643 que comprende instrucciones legibles por ordenador (CRI) 644. El c Rm 642 puede ser un medio no transitorio legible por ordenador, tal como medios magnéticos (por ejemplo, un disco duro), medios ópticos, dispositivos de memoria (por ejemplo, memoria de acceso aleatorio, memoria flash) y similares. En algunas realizaciones, las CRI 644 del programa informático 643 están configuradas de manera que cuando son ejecutadas por el PC 602, las CRI hacen que el aparato 600 realice los pasos descritos en la presente memoria (por ejemplo, los pasos descritos en la presente memoria con referencia a los diagramas de flujo). En otras realizaciones, el aparato 600 puede configurarse para realizar los pasos descritos en la presente memoria sin necesidad de código. Es decir, por ejemplo, el PC 602 puede constar simplemente de uno o más ASIC. Por lo tanto, las características de las realizaciones descritas en la presente memoria pueden implementarse en hardware y/o software.
La Figura 7 es un diagrama de bloques funcional del aparato 600 según algunas otras realizaciones. El aparato 600 incluye un módulo de obtención 702 y un módulo de selección de filtro 704. El módulo de obtención 702 está adaptado para obtener un primer conjunto de valores de muestra que comprende un primer bloque de valores de muestra (en lo sucesivo denominado bloque P) y un segundo bloque de valores de muestra (en lo sucesivo denominado bloque Q), en donde el bloque P comprende un conjunto de valores de muestra pi,k para i = 0-7 y k=0-3, y el bloque Q comprende un conjunto de valores de muestra qi, k para i =0-7 y k=0-3.
En una realización, el módulo de selección de filtro está adaptado para decidir si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra, en donde el módulo de selección de filtro está configurado para decidir si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra realizando un proceso que incluye: calcular un primer valor de gradiente, maxGradp60, utilizando el valor de muestra p6,0; calcular un primer valor de pq, pq1_0, utilizando maxGradp6_0; y comparar pq1_0 con un umbral.
En otra realización, el módulo de selección de filtro está adaptado para seleccionar un filtro, en donde el módulo de selección de filtro 704 está configurado para seleccionar un realizando un proceso que incluye: calcular un primer valor de pq, pq1, utilizando al menos un primer valor igual a Abs(p2,0 - 2 * p1,0 p0,0) y un segundo valor igual a Abs(q2,0 - 2 * q1,0 q0,0); y comparar pq1 con un umbral, en donde el umbral es igual a p >> 4, y p se selecciona de un conjunto de valores de beta predeterminados en base a un valor de parámetro de cuantificación, Q.
Aunque en la presente memoria se describen varias realizaciones, debe entenderse que se han presentado a modo de ejemplo solamente y no de limitación. Por lo tanto, la amplitud y el alcance de esta descripción no deben estar limitados por ninguna de las realizaciones ejemplares descritas anteriormente. Además, cualquier combinación de los elementos descritos anteriormente en todas sus posibles variaciones está abarcada por la descripción a menos que se indique en la presente memoria o a menos que se contradiga claramente por el contexto.
Además, aunque los procesos descritos anteriormente e ilustrados en los dibujos se muestran como una secuencia de pasos, esto se ha hecho únicamente con fines ilustrativos. Por consiguiente, se contempla que pueden añadirse algunos pasos, pueden omitirse algunos pasos, puede reorganizarse el orden de los pasos y pueden realizarse algunos pasos en paralelo.

Claims (12)

REIVINDICACIONES
1. Un método (400) para el filtrado de desbloqueo de límites de bloque verticales y/u horizontales, siendo realizado el método por un codificador de imagen o vídeo o un decodificador de imagen o vídeo, comprendiendo el método: obtener (s402) un primer conjunto de valores de muestra que comprende un primer bloque de valores de muestra y un segundo bloque de valores de muestra, en donde el primer bloque de valores de muestra comprende un conjunto de valores de muestra B1_i,k para i =0-7 y k = 0-3, y el segundo bloque de valores de muestra comprende un conjunto de valores de muestra B2_j,k para j=0-7 y k=0-3, en donde cuando se desbloquea un límite vertical, los valores de i y j identifican una columna de un bloque y el valor de k identifica una fila del bloque, y cuando se desbloquea un límite horizontal, el valor de k identifica una columna del bloque y los valores de i y j identifican una fila del bloque y en donde B1_0,0 se refiere a la muestra en el primer bloque que está más cerca de una muestra B2_0,0 en el segundo bloque; y
decidir (s404) si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra, en donde decidir si utilizar o no un filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra comprende:
calcular (s502) un primer valor de gradiente, maxGradB1_6,0, tal como maxGradB1_6,0 = Abs(B1_7,0 - B1_6,0 -B1_5,0 B1_4,0);
calcular (s504) un primer valor de pq, pq1_0, utilizando maxGradB1-6,0, en donde calcular pq1_0 comprende calcular un valor sp, calcular un valor sq y calcular sp sq, en donde pq1_0 = (sp sq), en donde sp = (Abs(B1_0,0 - B1_3,0) Abs(B1_3,0 - B1_7,0) maxGradB1_6,0 1) >> 1, en donde el segundo bloque tiene una longitud máxima de filtro, maxFilterLengthQ y:
si maxFilterLengthQ es igual a 7, entonces sq = (Abs(B2_0,0 - B2_3,0) Abs(B2_3,0 - B2_7,0) maxGradB2_6,0 1) >>1, donde maxGradB2_6,0 es un tercer valor de gradiente,
si maxFilterLengthQ es igual a 5, entonces sq = (Abs(B2_0,0 - B2_3,0) Abs(B2_3,0 - B2_5,0) 1) >> 1, y si maxFilterLengthQ no es igual a 7 y no es igual a 5, entonces sq = Abs(B2_0,0 - B2_3,0);
comparar (s508) pq1_0 con un umbral, en donde el umbral es igual a 3*p >> 5, y p se selecciona de un conjunto de valores de beta predeterminados en base a un valor de parámetro de cuantificación, Q;
calcular un segundo valor de gradiente, maxGradB1_6,3, utilizando el valor de muestra B1_6,3;
calcular un segundo valor de pq, pq1_3, utilizando maxGradB1_6,3; y
comparar (s508) pq1_3 con el umbral, y
en respuesta a la decisión (s404) de utilizar el filtro largo, aplicar (s406) el filtro largo para filtrar al menos un subconjunto del primer conjunto de valores de muestra.
2. El método de la reivindicación 1, en donde maxGradB2_6,0 es igual a Abs(B2_7,0 - B2_6,0 - B2_5,0 B2_4,0).
3. El método de cualquiera de las reivindicaciones 1-2, en donde calcular pq1_3 comprende calcular un valor sp3, calcular un valor sq3 y calcular sp3 sq3, en donde pq1_3 = (sp3 sq3), y en donde sp3 = (Abs(B1_0,3 - B1_3,3) Abs(B1_3,3 - B1_7,3) maxGradB1_6,3 1) >> 1.
4. El método de la reivindicación 3, en donde maxGradB1_6,3 es igual a Abs (B1_7,3 - B1_6,3 - B1_5,3 B1_4,3).
5. El método de cualquiera de las reivindicaciones 1-4, en donde
el paso de calcular pq1_0 utilizando maxGradB1_6,0 se realiza como resultado de determinar que una longitud máxima de filtro para el primer bloque, maxFilterLengthP, es igual a 7.
6. El método de cualquiera de las reivindicaciones 1-5, en donde
el paso de calcular pq1_3 utilizando maxGradB1_6,3 se realiza como resultado de determinar que una longitud máxima de filtro para el primer bloque, maxFilterLengthP , es igual a 7.
7. El método de cualquiera de las reivindicaciones 1-6, en donde
cuando se desbloquea un límite vertical, el valor de i identifica una columna de un bloque y el valor de k identifica una fila del bloque, y
cuando se desbloquea un límite horizontal, el valor de k identifica una columna del bloque y el valor de i identifica una fila del bloque.
8. El método de cualquiera de las reivindicaciones 1-7, en donde las muestras a filtrar por el filtro largo cuando maxFilterLengthP es igual a 7 son B1_0,0 a B1_6,0, B1_0,1 a B1_6,1, B1_0,2 a B1_6,2 y B1_0,3 a B1_6,3.
9. El método de cualquiera de las reivindicaciones 1-8, en donde las muestras a filtrar por el filtro largo cuando maxFilterLengthQ es igual a 7 son B2_0,0 a B2_6,0, B2_0,1 a B2_6,1, B2_0,2 a B2_6,2 y B2_0,3 a B2_6,3.
10. Un programa informático (643) que comprende instrucciones (644) que, cuando son ejecutadas por un circuito de procesamiento (602), hacen que el circuito de procesamiento (602) realice el método de cualquiera de las reivindicaciones 1 a 9.
11. Un soporte que contiene el programa informático de la reivindicación 10, en donde el soporte es uno de una señal electrónica, una señal óptica, una señal de radio y un medio de almacenamiento legible por ordenador (642).
12. Un aparato (600) para desbloquear el filtrado de límites de bloque verticales y/u horizontales, estando adaptado el aparato para realizar el método según cualquiera de las reivindicaciones 1-9.
ES20859777T 2019-09-06 2020-09-04 Deblocking filter selection in video or image coding Active ES3003283T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962897004P 2019-09-06 2019-09-06
PCT/SE2020/050835 WO2021045671A1 (en) 2019-09-06 2020-09-04 Deblocking filter selection in video or image coding

Publications (1)

Publication Number Publication Date
ES3003283T3 true ES3003283T3 (en) 2025-03-10

Family

ID=74852070

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20859777T Active ES3003283T3 (en) 2019-09-06 2020-09-04 Deblocking filter selection in video or image coding

Country Status (14)

Country Link
US (4) US11533481B2 (es)
EP (1) EP4026324B1 (es)
JP (1) JP7387878B2 (es)
KR (1) KR102886919B1 (es)
CN (1) CN114342380B (es)
AU (1) AU2020341422B2 (es)
BR (1) BR112022004056A2 (es)
CA (1) CA3150263A1 (es)
CO (1) CO2022003876A2 (es)
ES (1) ES3003283T3 (es)
MX (1) MX2022002790A (es)
PH (1) PH12022550517A1 (es)
WO (1) WO2021045671A1 (es)
ZA (1) ZA202202419B (es)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1507415A3 (en) * 2003-07-16 2005-05-04 Samsung Electronics Co., Ltd. Video encoding/decoding apparatus and method for color image
US20070223591A1 (en) * 2006-03-22 2007-09-27 Metta Technology, Inc. Frame Deblocking in Video Processing Systems
JP4834446B2 (ja) * 2006-04-11 2011-12-14 株式会社東芝 画像処理装置
DK2664149T3 (en) * 2011-01-14 2017-02-27 ERICSSON TELEFON AB L M (publ) UNBLOCK FILTERING
AR092786A1 (es) * 2012-01-09 2015-05-06 Jang Min Metodos para eliminar artefactos de bloque
US9906790B2 (en) * 2014-03-14 2018-02-27 Qualcomm Incorporated Deblock filtering using pixel distance
US10645408B2 (en) * 2017-09-17 2020-05-05 Google Llc Dual deblocking filter thresholds
CN114979633B (zh) * 2017-10-09 2023-10-27 佳能株式会社 用于对样本块进行滤波的方法、装置和存储介质
PL3732886T3 (pl) * 2017-12-29 2025-01-13 Telefonaktiebolaget Lm Ericsson (Publ) Sposoby zapewniające kodowanie i/lub dekodowanie wideo z wykorzystaniem wartości referencyjnych oraz powiązane urządzenia
WO2019137749A1 (en) * 2018-01-10 2019-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Determining filter length for deblocking during encoding and/or decoding of video
US10972729B2 (en) * 2018-01-20 2021-04-06 Qualcomm Incorporated Deblocking filter selection and application in video coding
US11153607B2 (en) * 2018-01-29 2021-10-19 Mediatek Inc. Length-adaptive deblocking filtering in video coding
CN112822498B (zh) * 2018-03-28 2022-10-11 华为技术有限公司 图像处理设备和执行有效去块效应的方法
CN116405700A (zh) * 2018-03-30 2023-07-07 夏普株式会社 用于将解块滤波器应用于重构视频数据的方法和设备
EP3878185A4 (en) * 2018-11-08 2021-12-29 Telefonaktiebolaget Lm Ericsson (Publ) Asymmetric deblocking in a video encoder and/or video decoder
CN113632467B (zh) * 2018-11-14 2024-10-25 夏普株式会社 用于将解块滤波器应用于重构视频数据的系统和方法
WO2020171760A1 (en) * 2019-02-19 2020-08-27 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking on 4x4 grid using long filters
CN120568044A (zh) 2019-03-07 2025-08-29 数字洞察力有限公司 图像编码/解码方法和传输比特流的方法

Also Published As

Publication number Publication date
US12003716B2 (en) 2024-06-04
US20240364875A1 (en) 2024-10-31
JP7387878B2 (ja) 2023-11-28
MX2022002790A (es) 2022-04-06
AU2020341422B2 (en) 2024-02-29
US20230199180A1 (en) 2023-06-22
US11533481B2 (en) 2022-12-20
CO2022003876A2 (es) 2022-05-31
US12375661B2 (en) 2025-07-29
EP4026324B1 (en) 2024-11-06
KR102886919B1 (ko) 2025-11-14
WO2021045671A1 (en) 2021-03-11
BR112022004056A2 (pt) 2022-05-24
CN114342380B (zh) 2024-09-13
ZA202202419B (en) 2024-07-31
EP4026324C0 (en) 2024-11-06
KR20220046689A (ko) 2022-04-14
EP4026324A1 (en) 2022-07-13
AU2020341422A1 (en) 2022-03-31
PH12022550517A1 (en) 2023-03-20
CA3150263A1 (en) 2021-03-11
EP4026324A4 (en) 2023-02-22
US20220191488A1 (en) 2022-06-16
CN114342380A (zh) 2022-04-12
US20250373794A1 (en) 2025-12-04
JP2022547459A (ja) 2022-11-14

Similar Documents

Publication Publication Date Title
JP7695324B2 (ja) 復元されたビデオデータにデブロッキングフィルタを適用するためのシステム及び方法
US11831926B2 (en) Deblocking of transform sub-block boundaries
US20250184543A1 (en) Deblocking between block boundaries and sub-block boundaries in a video encoder and/or video decoder
US20250159153A1 (en) Deblocking in a video encoder and/or video decoder
ES3003283T3 (en) Deblocking filter selection in video or image coding
US12425660B2 (en) Combining deblock filtering and another filtering for video encoding and/or decoding
US20220141457A1 (en) Deblocking using sub-pel motion vector threshold
EP4128761A1 (en) Video processing