ES3030107T3 - Two-part signaling of adaptive loop filters in video coding - Google Patents
Two-part signaling of adaptive loop filters in video coding Download PDFInfo
- Publication number
- ES3030107T3 ES3030107T3 ES20866732T ES20866732T ES3030107T3 ES 3030107 T3 ES3030107 T3 ES 3030107T3 ES 20866732 T ES20866732 T ES 20866732T ES 20866732 T ES20866732 T ES 20866732T ES 3030107 T3 ES3030107 T3 ES 3030107T3
- Authority
- ES
- Spain
- Prior art keywords
- syntax element
- filter
- alf
- luma
- aps
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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 slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Se describen métodos, sistemas y dispositivos para señalizar el uso del filtrado de bucle adaptativo en la codificación de imágenes y vídeo. Un ejemplo de método de procesamiento de vídeo incluye determinar, para una conversión entre una región actual de un vídeo y una representación del flujo de bits del vídeo, si se utiliza un filtro de bucle adaptativo de luminancia durante la conversión y si se incluyen coeficientes del filtro de bucle adaptativo de luminancia en la representación del flujo de bits. Un solo elemento de sintaxis en la representación del flujo de bits indica el uso del filtro de bucle adaptativo de luminancia y la señalización de sus coeficientes, y, basándose en esta determinación, se realiza la conversión. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Señalización de dos partes de filtros de bucle adaptativos en codificación de vídeo
Campo técnico
Este documento de patente se refiere a codificación y descodificación de vídeo.
Antecedentes
A pesar de los avances en la compresión de vídeo, el vídeo digital aún representa el mayor uso de ancho de banda en Internet y otras redes de comunicación digital. A medida que aumenta el número de dispositivos de usuario conectados capaces de recibir y visualizar vídeo, se espera que la demanda de ancho de banda para el uso de vídeo digital continúe creciendo.
Sumario
Dispositivos, sistemas y métodos relacionados con codificación de vídeo digital, y específicamente, con codificación y descodificación de vídeo e imagen en los que se usa filtrado de bucle adaptativo se divulgan de acuerdo con las reivindicaciones adjuntas.
Breve descripción de los dibujos
La figura 1 es un ejemplo de diagrama de bloques de codificador.
La figura 2 muestra ejemplos de formas de filtro de GALF (izquierda: diamante de 5*5, medio: diamante de 7*7, derecha: diamante de 9*9).
La figura 3 es un gráfico de flujo de una implementación de decisión de codificador para GALF.
La figura 4 muestra ejemplos de cálculo laplaciano submuestreado para CE2.6.2. Arriba a la izquierda (a) posiciones submuestreadas para gradiente vertical, arriba a la derecha (b) posiciones submuestreadas para gradiente horizontal, abajo a la izquierda (c) posiciones submuestreadas para gradiente diagonal y abajo a la derecha (d) posiciones submuestreadas para gradiente diagonal.
La figura 5 muestra un ejemplo de subdivisión de cortes de exploración de trama de una imagen, donde la imagen se divide en 12 piezas y 3 cortes de exploración de trama.
La figura 6 muestra una imagen con las CTU de luma de 18 por 12 que se subdividen en 24 piezas y 9 cortes rectangulares.
La figura 7 muestra un ejemplo de una imagen que se subdivide en 4 piezas, 11 ladrillos y 4 cortes rectangulares. La figura 8 muestra una imagen con 28 subimágenes.
La figura 9 es un diagrama de bloques de un sistema de vídeo.
La figura 10 es un diagrama de bloques de un ejemplo de un aparato de procesamiento de vídeo.
Las figuras 11-17 son diagramas de flujo de métodos de ejemplo de procesamiento de vídeo.
Descripción detallada
Las realizaciones de la tecnología divulgadas se pueden aplicar a normas de codificación de vídeo existentes (por ejemplo, HEVC, H.265) y normas futuras para mejorar el rendimiento de compresión. Los encabezados de sección se usan en el presente documento para mejorar la legibilidad de la descripción y no limitan de ninguna manera la descripción o las realizaciones (y/o implementaciones) únicamente a las secciones respectivas.
1. Sumario
Este documento está relacionado con tecnologías de codificación de vídeo. Específicamente, está relacionado con filtro de bucle adaptativo en codificación o descodificación de vídeo. Se puede aplicar a la norma de codificación de vídeo existente como HEVC, o la norma (codificación de vídeo versátil) a finalizar. También puede ser aplicable a futuras normas de codificación de vídeo o códec de vídeo.
2. Análisis inicial
Las normas de codificación de vídeo han evolucionado principalmente a través del desarrollo de las bien conocidas normas ITU-T e ISO/IEC. La ITU-T produjo H.261 y H.263, ISO/IEC produjo MPEG-1 y MPEG-4 Visual, y las dos organizaciones produjeron conjuntamente las normas H.262/MPEG-2 vídeo y H.264/MPEG-4 codificación de vídeo avanzada (AVC) y H.265/HEVC. Desde H.262, las normas de codificación de vídeo se basan en la estructura de codificación de vídeo híbrida en donde se usa predicción temporal más codificación de transformada. Para explorar las futuras tecnologías de codificación de vídeo más allá de HEVC, el Equipo Mixto de Exploración de Vídeo (JVET) fue fundado por VCEG y MPEG conjuntamente en 2015. Desde entonces, JVET ha adoptado muchos métodos nuevos y los ha puesto en el software de referencia denominado Modelo de Exploración Mixta (JEM). En abril de 2018, se creó el Equipo Mixto de Expertos en Vídeo (JVET) entre VCEG (Q6/16) e ISO/IEC JTC1 SC29/WG11 (MPEG) para trabajar en la norma de VVC que tiene como objetivo una reducción de tasa de bits del 50 % en comparación con HEVC.
La última versión del borrador de VVC, es decir, Codificación de Vídeo Versátil (Borrador 6) se podría encontrar en: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v14.zip
El último software de referencia de VVC, denominado VTM, se podría encontrar en: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1
2.1. Espacio de color y submuestreo de croma
El espacio de color, también conocido como el modelo de color (o sistema de color), es un modelo matemático abstracto que simplemente describe el intervalo de colores como tuplas de números, típicamente como 3 o 4 valores o componentes de color (por ejemplo, RGB). Básicamente hablando, el espacio de color es una elaboración del sistema de coordenadas y subespacio.
Para compresión de vídeo, los espacios de color usados con más frecuencia son YCbCr y RGB.
YCbCr, Y'CbCr o Y Pb/Cb Pr/Cr, también escritos como YCBCR o Y'CBCR, es una familia de espacios de color usados como parte de la canalización de imagen de color en sistemas de vídeo y fotografía digital. Y' es el componente de luma y CB y CR son los componentes de croma de diferencia de azul y de diferencia de rojo. Y' (con prima) se distingue de Y, que es luminancia, lo que significa que la intensidad de luz se codifica de forma no lineal basándose en primarias de RGB con corrección de gamma.
El submuestreo de croma es la práctica de codificar imágenes implementando menos resolución para información de croma que para información de luma, aprovechando la menor agudeza del sistema visual humano para diferencias de color que para luminancia.
2.1.1.4:4:4
Cada uno de los tres componentes Y'CbCr tiene la misma tasa de muestreo, por lo que no hay submuestreo de croma. Este esquema se usa en ocasiones en escáneres de película de gama alta y postproducción cinematográfica.
2.1.2. 4:2:2
Los dos componentes de croma se muestrean a la mitad de la tasa de muestreo de luma: la resolución de croma horizontal se reduce a la mitad. Esto reduce el ancho de banda de una señal de vídeo sin comprimir en un tercio con poca o ninguna diferencia visual
2.1.3. 4:2:0
En 4:2:0, el muestreo horizontal se duplica en comparación con 4:1:1, pero como
los canales Cb y Cr únicamente se muestrean en cada línea alternativa en este esquema, la resolución vertical se reduce a la mitad. La tasa de datos es, por lo tanto, la misma. Cb y Cr se submuestrean cada uno en un factor de 2 tanto horizontal como vertical mente. Hay tres variantes de esquemas 4:2:0, que tienen diferentes ubicaciones horizontales y verticales.
• En MPEG-2, Cb y Cr están coubicados horizontalmente. Cb y Cr están ubicados entre píxeles en la dirección vertical (ubicados intersticialmente).
• En JPEG/JFIF, H.261 y MPEG-1, Cb y Cr se ubican intersticialmente, a mitad de camino entre muestras de luma alternas.
• En 4:2:0 DV, Cb y Cr están coubicados en la dirección horizontal. En la dirección vertical, están coubicados en líneas alternas.
2.2. Flujo de codificación de un códec de vídeo típico
La figura 1 muestra un ejemplo de diagrama de bloques de codificador de VVC, que contiene tres bloques de filtrado en bucle: filtro de desbloqueo (DF), desplazamiento adaptativo de muestra (SAO) y ALF. A diferencia de DF, que usa filtros predefinidos, SAO y ALF utilizan las muestras originales de la imagen actual para reducir los errores cuadráticos medios entre las muestras originales y las muestras reconstruidas añadiendo un desplazamiento y aplicando un filtro de respuesta de impulso finito (FIR), respectivamente, con información secundaria codificada que señaliza los desplazamientos y coeficientes de filtro. ALF se ubica en la última etapa de procesamiento de cada imagen y se puede considerar como una herramienta que intenta capturar y fijar artefactos creados por las etapas anteriores.
2.3. Filtro de bucle adaptativo basado en transformación de geometría en JEM
En el JEM, se aplica un filtro de bucle adaptativo basado en transformación de geometría (GALF) con adaptación de filtro basada en bloques. Para el componente de luma, se selecciona uno entre 25 filtros para cada bloque de 2*2, basándose en la dirección y actividad de los gradientes locales.
2.3.1. Forma de filtro
En el JEM, se pueden seleccionar hasta tres formas de filtro de diamante (como se muestra en la figura 2) para el componente de luma. Se señaliza un índice en el nivel de imagen para indicar la forma de filtro usada para el componente de luma.
La figura 2 muestra ejemplos de formas de filtro de GALF (izquierda: diamante de 5*5, medio: diamante de 7*7, derecha: diamante de 9*9).
Para componentes de croma en una imagen, siempre se usa la forma de diamante de 5*5.
2.3.1.1. Clasificación de bloques
Cada bloque de 2 * 2 se categoriza en una de 25 clases. El índice de clasificación C se deriva basándose en su direccionalidad D y un valor cuantificado de actividad Á, de la siguiente manera:
Para calcular D y Á , los gradientes de la dirección horizontal, vertical y dos diagonales se calculan en primer lugar usando el laplaciano 1-D:
k-i-2 i-j- 2
Los índices i y j se refieren a las coordenadas de la muestra superior izquierda en el bloque de 2 * 2 y R(i, j) indica una muestra reconstruida en la coordenada (i, j).
Entonces, D valores máximo y mínimo de los gradientes de las direcciones horizontal y vertical se establecen como:
y los valores máximo y mínimo del gradiente de dos direcciones diagonales se establecen como:
Para derivar el valor de la direccionalidad D, estos valores se comparan entre sí y con dos umbrales ti y ti.
Etapa 1. Si tanto son ciertos, D se establece a 0.
Etapa 2. Si<¡> , continuar desde la etapa 3; de lo contrario, continuar desde la etapa 4.
Etapa 3. Si D se establece a 2; de lo contrario D se establece a 1.
Etapa 4. Si ¡ j se establece a 4; de lo contrario D se establece a 3.
El valor de actividad A se calcula como:
A se cuantifica además al intervalo de 0 a 4, inclusive, y el valor cuantificado se indica como Á.
Para ambos componentes de croma en una imagen, no se aplica ningún método de clasificación, es decir, se aplica un único conjunto de coeficientes de ALF para cada componente de croma.
2.3.1.2. Transformaciones geométricas de coeficientes de filtro
Antes de filtrar cada bloque de 2 * 2, se aplican transformaciones geométricas tales como rotación o volteo diagonal y vertical a los coeficientes de filtro f(k, l) dependiendo de los valores de gradiente calculados para ese bloque. Esto es equivalente a aplicar estas transformaciones a las muestras en la región de soporte de filtro. La idea es hacer que diferentes bloques a los que se aplica ALF sean más similares alineando su direccionalidad.
Se introducen tres transformaciones geométricas, que incluyen volteo diagonal, vertical y rotación:
donde K es el tamaño del filtro y 0 • k, l • K- 1 son coordenadas de coeficientes, de modo que la ubicación (0,0) está en la esquina superior izquierda y la ubicación (K -1 , K -1 ) está en la esquina inferior derecha. Las transformaciones se aplican a los coeficientes de filtro f(k, I) dependiendo de los valores de gradiente calculados para ese bloque. La relación entre la transformación y los cuatro gradientes de las cuatro direcciones se resumen en la Tabla 1.
Tabla 1: Mapeo del gradiente calculado para un bloque y las transformaciones
2.3.1.3. Señalización de parámetros de filtro
En el JEM, se señalizan parámetros de filtro de GALF para la primera CTU, es decir, después de la cabecera de corte y antes de los parámetros de SAO de la primera CTU. Se podrían señalizar hasta 25 conjuntos de coeficientes de filtro de luma. Para reducir la sobrecarga de bits, se pueden fusionar coeficientes de filtro de diferente clasificación. También, los coeficientes de GALF de imágenes de referencia se almacenan y se permite que se reutilicen como coeficientes de GALF de una imagen actual. La imagen actual puede elegir usar coeficientes de GALF almacenados para las imágenes de referencia, y omitir la señalización de coeficientes de GALF. En este caso, únicamente se señaliza un índice a una de las imágenes de referencia, y los coeficientes de GALF almacenados de la imagen de referencia indicada se heredan para la imagen actual.
Para soportar la predicción temporal de GALF, se mantiene una lista de candidatos de conjuntos de filtros de GALF. Al comienzo de la descodificación de una nueva secuencia, la lista de candidatos está vacía. Después de descodificar una imagen, el correspondiente conjunto de filtros se puede añadir a la lista de candidatos. Una vez que el tamaño de la lista de candidatos alcanza el valor máximo permitido (es decir, 6 en el JEM actual), un nuevo conjunto de filtros sobrescribe el conjunto más antiguo en orden de descodificación, y, es decir, se aplica la regla de primero en entrar, primero en salir (FlFO) para actualizar la lista de candidatos. Para evitar duplicaciones, solo se podría añadir un conjunto a la lista cuando la imagen correspondiente no usa predicción temporal de GALF. Para soportar escalabilidad temporal, hay múltiples listas de candidatos de conjuntos de filtros, y cada lista de candidatos está asociada con una capa temporal. Más específicamente, cada matriz asignada por índice de capa temporal (Templdx) puede componer conjuntos de filtros de imágenes previamente descodificadas con Templdx igual a menor. Por ejemplo, la matriz késima se asigna para asociarse con Templdx igual a k, y únicamente contiene conjuntos de filtros de imágenes con Templdx menor o igual que k. Después de codificar una cierta imagen, los conjuntos de filtros asociados con la imagen se usarán para actualizar aquellas matrices asociadas con Templdx igual o mayor.
La predicción temporal de coeficientes de GALF se usa para fotogramas intercodificados para minimizar la sobrecarga de señalización. Para intra tramas, la predicción temporal no está disponible, y se asigna un conjunto de 16 filtros fijos a cada clase. Para indicar el uso del filtro fijo, se señaliza una bandera para cada clase y, si se requiere, el índice del filtro fijo elegido. Incluso cuando se selecciona el filtro fijo para una clase dada, los coeficientes del filtro adaptativo f(k, l) aún se pueden enviar para esta clase, en cuyo caso los coeficientes del filtro que se aplicarán a la imagen reconstruida son la suma de ambos conjuntos de coeficientes.
El proceso de filtrado del componente de luma se puede controlar a nivel de CU. Se señaliza una bandera para indicar si se aplica GALF al componente de luma de una CU. Para el componente de croma, si se aplica o no GALf se indica únicamente a nivel de imagen.
2.3.1.4. Proceso de filtrado
En el lado del descodificador, cuando se habilita GALF para un bloque, cada muestra R(i, j) dentro del bloque se filtra, lo que da como resultado un valor de muestra R '(i,j) como se muestra a continuación, donde L indica la longitud de filtro, fm,nrepresenta el coeficiente de filtro, y f(k, l) indica los coeficientes de filtro descodificados.
R’( i . j ) = t kt L/X L i L/2n ^ o x<r>(<í>+ k j1) ( io j
2.3.1.5. Proceso de determinación de parámetros de filtro de lado de codificación
El proceso de decisión de codificador general para GALF se ilustra en la figura 3. Para muestras de luma de cada CU, el codificador toma una decisión sobre si se aplica o no la GALF y se incluye la bandera de señalización apropiada en la cabecera de corte. Para muestras de croma, la decisión de aplicar el filtro se hace basándose en el nivel de imagen en lugar del nivel de CU. Además, el GALF de croma para una imagen se comprueba únicamente cuando se habilita el GALF de luma para la imagen.
2.4. Filtro de bucle adaptativo basado en transformación de geometría en VVC
El diseño actual de GALF en VVC tiene los siguientes cambios principales en comparación con el de JEM:
1) Se retira la forma de filtro adaptativo. Únicamente se permite una forma de filtro de 7x7 para el componente de luma y una forma de filtro de 5x5 para el componente de croma.
2) Se retira tanto la predicción temporal de parámetros de ALF como la predicción a partir de filtros fijos.
3) Para cada CTU, se señaliza una bandera de bit si ALF está habilitado o deshabilitado.
4) El cálculo del índice de clase se realiza en el nivel 4x4 en lugar de 2x2. Además, como se propone en el documento JVET-L0147, se utiliza el método de cálculo laplaciano submuestreado para la clasificación de ALF. Más específicamente, no hay necesidad de calcular los gradientes horizontal/vertical/diagonal de 45/135 grados para cada muestra dentro de un bloque. En su lugar, se utiliza submuestreo 1:2.
La figura 4 muestra ejemplos de cálculo laplaciano submuestreado para CE2.6.2. Arriba a la izquierda (a) posiciones submuestreadas para gradiente vertical, arriba a la derecha (b) posiciones submuestreadas para gradiente horizontal, abajo a la izquierda (c) posiciones submuestreadas para gradiente diagonal y abajo a la derecha (d) posiciones submuestreadas para gradiente diagonal.
2.5. Señalización de parámetros de filtro de bucle adaptativo en conjunto de parámetros de adaptación
En la última versión del borrador de VVC, los parámetros de ALF se pueden señalizar en el conjunto de parámetros de adaptación (APS) y se pueden seleccionar por cada CTU de manera adaptativa.
La señalización detallada de ALF (en JVET-O2001-vE) es de la siguiente manera.
7.3.2.5 Sintaxis de conjunto de parámetros de adaptación
continuación
____________________________________________
.3.2.14 Sintaxis de datos de filtro de bucle adaptativo
____________________________________________________________________ 7.4.3.5 Semántica de conjunto de parámetros de adaptación
Cada RBSP de APS debe estar disponible para el proceso de descodificación antes de que se haga referencia, incluido en al menos una unidad de acceso con TemporalId menor o igual que el TemporalId de la unidad de NAL de corte codificada a la que hace referencia o proporciona a través de medios externos.
Sea aspLayerId nuh_layer_id de una unidad de NAL de APS. Si la capa con nuh_layer_id igual a aspLayerId es una capa independiente (es decir, vps_independent_layer_flag[ GeneralLayerIdx[ aspLayerId ] ] es igual a 1), la unidad de nA l de APS que contiene la RBSP de APS debe tener nuh_layer_id igual al nuh_layer_id de una unidad de NAL de corte codificada a la que hace referencia. De lo contrario, la unidad de NAL de APS que contiene la RBSP de APS debe tener nuh_layer_id igual al nuh_layer_id de una unidad de NAL de corte codificada a la que hace referencia, o igual al nuh_layer_id de una capa dependiente directa de la capa que contiene una unidad de NAL de corte codificada a la que hace referencia. Todas las unidades de NAL de APS con un valor particular de adapt_parameter_set_id y un valor particular de aps_params_type dentro de una unidad de acceso deberán tener el mismo contenido. adapt_parameter_set_id proporciona un identificador para la APS para referencia por otros elementos de sintaxis. Cuando aps_params_type es igual a ALF_APS o SCALING_APS, el valor de adaption_parameter_set_id debe estar en el intervalo de 0 a 7, inclusive.
Cuando aps_params_type es igual a LMCS_APS, el valor de adaption_parameter_set_id debe estar en el intervalo de 0 a 3, inclusive.
aps_params_type especifica el tipo de parámetros de APS transportados en la APS como se especifica en la Tabla 7 2. Cuando aps_params_type es igual a 1 (LMCS_APS), el valor de adaption_parameter_set_id debe estar en el intervalo de 0 a 3, inclusive.
Tabla 7-2 - Códigos de tipo de parámetros de APS y tipos de parámetros de APS
aps_extension_flag igual a 0 especifica que no hay presentes elementos de sintaxis aps_extension_data_flag en la estructura de sintaxis de RBSP de APS. aps_extension_flag igual a 1 especifica que hay elementos de sintaxis aps_extension_data_flag presentes en la estructura de sintaxis de RBSP de APS.
aps_extension_data_flag puede tener cualquier valor. Su presencia y valor no afectan a la conformidad del descodificador con los perfiles especificados en esta versión de esta memoria descriptiva. Los descodificadores que se ajustan a esta versión de esta especificación deberán ignorar todos los elementos de sintaxis aps_extension_data_flag.
7.4.3.14 Semántica de datos de filtro de bucle adaptativo
alf_luma_filter_signal_flag igual a 1 especifica que se señaliza un conjunto de filtros de luma. alf_luma_filter_signal_flag igual a 0 especifica que no se señaliza un conjunto de filtros de luma. alf_chroma_filter_signal_flag igual a 1 especifica que se señaliza un filtro de croma. alf_chroma_filter_signal_flag igual a 0 especifica que no se señaliza un filtro de croma. Cuando ChromaArrayType es igual a 0, alf_chroma_filter_signal_flag deb ser igual a 0.
La variable NumAlfFilters que especifica el número de diferentes filtros de bucle adaptativo se establece igual a 25. alf_luma_clip_flag igual a 0 especifica que se aplica filtrado de bucle adaptativo lineal en el componente de luma. alf_luma_clip_flag igual a 1 especifica que se puede aplicar filtrado de bucle adaptativo no lineal en componente de luma.
alf_luma_num_filters_signalled_minus1 más 1 especifica el número de clases de filtro de bucle adaptativo para las que se pueden señalizar coeficientes de luma. El valor de alf_luma_num_filters_signalled_minus1 debe estar en el intervalo de 0 a NumAlfFilters -1 , inclusive.
alf_luma_coeff_delta_idx[ filtIdx ] especifica los índices de los deltas de coeficiente de luma de filtro de bucle adaptativo señalizados para la clase de filtro indicada por filtIdx que varía de 0 a NumAlfFilters - 1. Cuando alf_luma_coeff_delta_idx[ filtIdx ] no está presente, se infiere que es igual a 0. La longitud de alf_luma_coeff_delta_idx[ filtIdx ] es
Techo( Log2( alf_luma_num_filters_signalled_minus1 1 ) ) bits.
alf_luma_coeff_signalled_flag igual a 1 indica que se señaliza alf_luma_coeff_flag[ sfIdx ]. alf_luma_coeff_signalled_flag igual a 0 indica que alf_luma_coeff_flag[ sfIdx ] no se señaliza. alf_luma_coeff_flag[ sfIdx ] igual a 1 especifica que se señalizan los coeficientes del filtro de luma indicados por sfIdx. alf_luma_coeff_flag[ sfIdx ] igual a 0 especifica que todos los coeficientes de filtro del filtro de luma indicados por sfIdx se establecen iguales a 0. Cuando no está presente, alf_luma_coeff_flag[ sfIdx ] se establece igual a 1. alf_luma_coeff_abs[ sfIdx ][ j ] especifica el valor absoluto del j-ésimo coeficiente del filtro de luma señalizado indicado por sfIdx. Cuando alf_luma_coeff_abs[ sfIdx ][ j ] no está presente, se infiere que es igual a 0.
El orden k de la binarización de exp-Golomb uek(v) se establece igual a 3.
alf_luma_coeff_sign[ sfIdx ][ j ] especifica el signo del j-ésimo coeficiente de luma del filtro indicado por sfIdx de la siguiente manera:
- Si alf_luma_coeff_sign[ sfIdx ][ j ] es igual a 0, el coeficiente de filtro de luma correspondiente tiene un valor positivo. - De lo contrario (alf_luma_coeff_sign[ sfIdx ][ j ] es igual a 1), el coeficiente de filtro de luma correspondiente tiene un valor negativo.
Cuando alf_luma_coeff_sign[ sfIdx ][ j ] no está presente, se infiere que es igual a 0.
La variable filtCoeff[ sfIdx ][ j ] con sfIdx = 0..alf_luma_num_filters_signalled_minus1, j = 0..11 se inicializa de la siguiente manera:
filtCoeff[ sfIdx ][ j ] = alf_lumacoeff_abs[ sfIdx ][ j ] * (7-47) ( 1 - 2 * alf_luma_coeff_sign[ sfIdx ][ j ] )
Los coeficientes de filtro de luma AlfCoeff<L>[adaptation_parameter_set_id] con elementos AlfCoeff<L>[adaptation_parameter_set_id][ filtIdx ][ j ], con filtIdx = 0..NumAlfFilters -1 y j = 0..11 se derivan de la siguiente manera:
AlfCoeff<L>[ adaptation_parameter_set_id ][ filtIdx ][ j ] = filtCoeff[ alf_luma_coeff_delta_idx [ filtIdx ] ][ j ](7-48) Los coeficientes de filtro fijos AlfFixFiltCoeff[ i ][ j ] con i = 0..64, j = 0..11 y el mapeo de clase a filtro AlfClassToFiltMap[ m ][ n ] con m = 0..15 y n = 0..24 se derivan de la siguiente manera:
Es un requisito de conformidad de flujo de bits que los valores de AlfCoeff<L>[ adaptation_parameter_set_id ][ filtIdx ][ j ] con filtIdx = 0..NumAlfFilters -1, j = 0..11 deberán estar en el intervalo de -2<7>a 2<7>-1 , inclusive.
alf_luma_clip_idx[ sfIdx ][ j ] especifica el índice de recorte del valor de recorte a usar antes de multiplicar por el j-ésimo coeficiente del filtro de luma señalizado indicado por sfIdx. Es un requisito de conformidad de flujo de bits que los valores de alf_luma_clip_idx[ sfIdx ][ j ] con sfIdx = 0..alf_luma_num_filters_signalled_minus1 y j = 0..11 deberán estar en el intervalo de 0 a 3, inclusive.
Los valores de recorte de filtro de luma AlfClip<L>[adaptation_parameter_set_id] con elementos AlfClip<L>[adaptation_parameter_set_id][ filtIdx][ j ], con filtIdx = 0..NumAlfFilters - 1 y j = 0..11 se derivan como se especifica en la Tabla 7-4 dependiendo de bitDepth establecido igual a BitDepthi<S>y clipIdx establecido igual a alf_luma_clip_idx[ alf_luma_coeff_delta_idx[ filtIdx ] ][ j ].
alf_chroma_num_alt_filters_minus1 más 1 especifica el número de filtros alternativos para componentes de croma.
alf_chroma_clip_flag[ altIdx ] igual a 0 especifica que se aplica filtrado de bucle adaptativo lineal en componentes de croma cuando se usa el filtro de croma con índice altIdx;
alf_chroma_clip_flag[ altIdx ] igual a 1 especifica que se aplica filtrado de bucle adaptativo no lineal en componentes de croma cuando se usa el filtro de croma con índice altIdx. Cuando no está presente, se infiere que alf_chroma_clip_flag[ altIdx ] es igual a 0.
alf_chroma_coeff_abs[ altIdx ][ j ] especifica el valor absoluto del j-ésimo coeficiente de filtro de croma para el filtro de croma alternativo con índice altIdx. Cuando alf_chroma coeff_abs[ altIdx ][ j ] no está presente, se infiere que es igual a 0. Es un requisito de conformidad de flujo de bits que los valores de alf_chroma coeff_abs[ altIdx ][ j ] deberán estar el intervalo de 0 a 2<7>-1 , inclusive.
El orden k de la binarización de exp-Golomb uek(v) se establece igual a 3.
alf_chroma_coeff_sign[ altIdx ][ j ] especifica el signo del j-ésimo coeficiente de filtro de croma para el filtro de croma alternativo con índice altIdx de la siguiente manera:
- Si alf_chroma_coeff_sign[ altIdx ][ j ] es igual a 0, el coeficiente de filtro de croma correspondiente tiene un valor positivo.
- De lo contrario (alf_chroma_coeff_sign[ altIdx ][ j ] es igual a 1), el coeficiente de filtro de croma correspondiente tiene un valor negativo.
Cuando alf_chroma_coeff_sign[ altIdx ][ j ] no está presente, se infiere que es igual a 0.
Los coeficientes de filtro de croma AlfCoeffo[adaptation_parameter_set_id][ altIdx] con elementos AlfCoeffc[ adaptation_parameter_set_id ][ altIdx ][ j ], con
altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5 se derivan de la siguiente manera:
AlfCoeffc[ adaptation_parameter_set_id ][ altIdx ][ j ] = alf_chroma coeff_abs[ altIdx ][ j ] * (7-51)
( 1 - 2 * alf_chroma coeff_sign[ altIdx ][ j ] )
Es un requisito de conformidad de flujo de bits que los valores de
AlfCoeffc[ adaptation_parameter_set_id ][ altIdx ][ j ] con
altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5 deben estar en el intervalo de -27 -1 a 27 -1 , inclusive.
alf_chroma_clip_idx[ altIdx ][ j ] especifica el índice de recorte del valor de recorte a usar antes de multiplicar por el jésimo coeficiente del filtro de croma alternativo con índice altIdx. Es un requisito de conformidad de flujo de bits que los valores de alf_chroma_clip_idx[ altIdx ][ j ] con altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5 deben estar en el intervalo de 0 a 3, inclusive. Los valores de recorte de filtro de croma AlfClipo[ adaptation_parameter_set_id ][ altIdx ] con elementos AlfClipo[ adaptation_parameter_set_id ][ altIdx ][ j ], con
altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5 se derivan como se especifica en la Tabla 7-4 dependiendo de bitDepth establecido igual a BitDepthc y clipIdx establecido igual a
alf_chroma_clip_idx[ altIdx ][ j ].
Tabla 7-4 - h y clipIdx
2.6. Señalización de parámetros de ALF para una CTU
En el VTM6, los parámetros de filtro de ALF se señalizan en el Conjunto de Parámetros de Adaptación (APS). En un APS, se podrían señalizar hasta 25 conjuntos de coeficientes de filtro de luma e índices de valor de recorte, y hasta 8 conjuntos de coeficientes de filtro de croma e índices de valor de recorte. Para reducir la sobrecarga de bits, se pueden fusionar coeficientes de filtro de diferente clasificación para componente de luma. En la cabecera de corte, se señalizan los índices de los APS usados para el corte actual.
Los índices de valor de recorte, que se descodifican a partir del APS, permiten determinar valores de recorte usando una tabla de luma de valores de recorte y una tabla de croma de valores de recorte. Estos valores de recorte dependen de la profundidad de bits interna. Más precisamente, la tabla de luma de valores de recorte y la tabla de croma de valores de recorte se obtienen mediante las siguientes fórmulas:
AlfClipc=jredondear(2(B“8)+8“ ) paran E [l. , A]J (3-12)
con B igual a la profundidad de bits interna y N igual a 4, que es el número de valores de recorte permitidos en VTM6.0.
En la cabecera de corte, se pueden señalizar hasta 7 índices de APS para especificar los conjuntos de filtros de luma que se usan para el corte actual. El proceso de filtrado se puede controlar además a nivel de c Tb . Siempre se señaliza una bandera para indicar si se aplica ALF a un CTB de luma. Un CTB de luma puede elegir un conjunto de filtros entre 16 conjuntos de filtros fijos y los conjuntos de filtros de los APS. Se señaliza un índice de conjunto de filtros para un CTB de luma para indicar qué conjunto de filtros se aplica. Los 16 conjuntos de filtros fijos están predefinidos y codificados de forma permanente tanto en el codificador como en el descodificador.
Para el componente de croma, se señaliza un índice de APS en la cabecera de corte para indicar los conjuntos de filtros de croma que se usan para el corte actual. En el nivel de CTB, se señaliza un índice de filtro para cada CTB de croma si hay más de un conjunto de filtros de croma en la APS.
Más específicamente, se aplican los siguientes:
Las banderas de control de activación/desactivación de corte se codifican en primer lugar para indicar si al menos una CTU en el corte aplica ALF. Cuando es verdadero, para cada CTU, se comprueba y señaliza lo siguiente en orden:
Relacionado con la parte de luma:
1. Si se aplica ALF al CTB de luma. En caso afirmativo, pasar a la etapa 2. De lo contrario, no se necesita señalización adicional.
2. Comprobar el número de APS de ALF usado para el corte actual, indicarlo por numALFAPS.
3. Si numALFAPS es igual a 0, se señaliza índice de filtro fijo (por ejemplo, alf_luma_fixed_filter_idx). De lo contrario, se aplica lo siguiente:
- señalizar una bandera para indicar si se predice a partir del primer APS de ALF o no.
- Si no, pasar a la etapa 4. De lo contrario, se detiene la señalización de parámetros de ALF para el CTB de luma.
4. Si numALFAPS es mayor de 1, señalizar una bandera para indicar si se predice a partir de APS de ALF o no.
- Si no, señalizar el índice de filtros fijos;
- En caso afirmativo y numALFAPS es mayor de 2, señalizar el índice de APS de ALF menos 1 con unario truncado.
Relacionado con la parte de croma:
1. Si se aplica ALF al CTB de Cb/Cr. En caso afirmativo, pasar a la etapa 2. De lo contrario, no se necesita señalización adicional.
2. Señalizar el índice de un filtro asociado con el i-ésimo APS de ALF en donde el índice de APS se señaliza en la cabecera de corte.
7.3.8.2 Sintaxis de unidad de árbol de codificación
______ _________________________________________________________________________________
continuación
_______________________________________________________________________________________
2.7. Subdivisión de imágenes, subimágenes, cortes, piezas, ladrillos y subimágenes de CTU: Una región rectangular de uno o más cortes dentro una imagen.
corte: Un número entero de ladrillos de una imagen que están contenidos exclusivamente en una única unidad de NAL.
NOTA - Un corte consiste en un número de piezas completas o únicamente en una secuencia consecutiva de ladrillos completos de una pieza.
pieza: Una región rectangular de CTU dentro de una columna de piezas particular y una fila de piezas particular en una imagen.
ladrillo: Una región rectangular de filas de CTU dentro de una pieza particular en una imagen.
NOTA - Una pieza se puede subdividir en múltiples ladrillos, consistiendo cada uno de los cuales en una o más filas de CTU dentro de la pieza. Una pieza que no está subdividida en múltiples ladrillos también se denomina ladrillo. Sin embargo, un ladrillo que es un subconjunto verdadero de una pieza no se denomina pieza.
exploración de ladrillos: Una ordenación secuencial específica de las CTU que subdividen una imagen en la que las CTU se ordenan consecutivamente en la exploración de trama de CTU en un ladrillo, los ladrillos dentro de una pieza se ordenan consecutivamente en una exploración de trama de los ladrillos de la pieza, y las piezas en una imagen se ordenan consecutivamente en una exploración de trama de las piezas de la imagen.
Una imagen se divide en una o más filas de piezas y una o más columnas de piezas. Una pieza es una secuencia de CTU que cubre una región rectangular de una imagen.
Una pieza se divide en uno o más ladrillos, consistiendo cada uno de los cuales en un número de filas de CTU dentro de la pieza.
Una pieza que no está subdividida en múltiples ladrillos también se denomina ladrillo. Sin embargo, un ladrillo que es un subconjunto verdadero de una pieza no se denomina pieza.
Un corte contiene un número de piezas de una imagen o un número de ladrillos de una pieza.
Una subimagen contiene uno o más cortes que cubren colectivamente una región rectangular de una imagen.
Se soportan dos modos de cortes, en concreto, el modo de corte de exploración por filas y el modo de corte rectangular. En el modo de corte de exploración por filas, un corte contiene una secuencia de piezas en una exploración de trama de piezas de una imagen. En el modo de corte rectangular, un corte contiene un número de ladrillos de una imagen que forman colectivamente una región rectangular de la imagen. Los ladrillos dentro de un corte rectangular están en el orden de exploración de trama de ladrillo del corte.
La figura 5 muestra un ejemplo de subdivisión de cortes de exploración de trama de una imagen, donde la imagen se divide en 12 piezas y 3 cortes de exploración de trama.
La figura 6 muestra un ejemplo de subdivisión de cortes rectangulares de una imagen, donde la imagen se divide en 24 piezas (6 columnas de piezas y 4 filas de piezas) y 9 cortes rectangulares.
La figura 7 muestra un ejemplo de una imagen subdividida en piezas, ladrillos y cortes rectangulares, donde la imagen se divide en 4 piezas (2 columnas de piezas y 2 filas de piezas), 11 ladrillos (la pieza superior izquierda contiene 1 ladrillo, la pieza superior derecha contiene 5 ladrillos, la pieza inferior izquierda contiene 2 ladrillos y la pieza inferior derecha contiene 3 ladrillos) y 4 cortes rectangulares.
La figura 8 muestra un ejemplo de subdivisión de subimágenes de una imagen, donde una imagen se subdivide en 28 subimágenes de dimensiones variables.
Cuando una imagen se codifica usando tres planos de color separados (separate_colour_plane_flag es igual a 1), un corte contiene únicamente CTU de un componente de color que se identifican por el valor correspondiente de colour_plane_id, y cada matriz de componente de color de una imagen consiste en cortes que tienen el mismo valor de colour_plane_id. Los cortes codificados con diferentes valores de colour_plane_id dentro de una imagen se pueden intercalar entre sí bajo la restricción de que para cada valor de colour_plane_id, las unidades de NAL de corte codificadas con ese valor de colour_plane_id deberán estar en el orden de dirección de CTU creciente en orden de exploración de ladrillo para la primera CTU de cada unidad de NAL de corte codificada.
NOTA 1 - Cuando separate_colour_plane_flag es igual a 0, cada CTU de una imagen está contenida en exactamente un corte. Cuando separate _colour_plane_flag es igual a 1, cada CTU de un componente de color está contenida en exactamente un corte (es decir, la información para cada CTU de una imagen está presente en exactamente tres cortes y estos tres cortes tienen diferentes valores de colour_plane_id).
2.8. RPR
AVC y HEVC no tienen la capacidad de cambiar la resolución sin tener que introducir una imagen de IDR o de punto de acceso intra aleatorio (IRAP); tal capacidad se puede denominar cambio de resolución adaptativa (ARC). Hay casos de uso o situaciones de aplicación que se beneficiarían de una característica de ARC, tal como adaptación de tasa en video telefonía y conferencia. ARC también se conoce como conversión de resolución dinámica.
ARC también se puede considerar como un caso especial de remuestreo de imágenes de referencia (RPR) tal como el anexo P de H.263.
En VVC, el ARC, también conocido como RPR (Remuestreo de Imagen de Referencia) se incorpora en JVET-O2001-v14. Con RPR en JVET-O2001-v14, TMVP se deshabilita si la imagen coubicada tiene una resolución diferente a la imagen actual. Además, BDOF y DMVR se deshabilitan cuando la imagen de referencia tiene una resolución diferente a la imagen actual. En SPS, se define la resolución de imagen máxima. Y para cada imagen en PPS, se define su resolución (incluyendo anchura y altura de imagen en muestras de luma). Cuando la resolución de imagen es diferente, se habilita el RPR.
2.9. Ventana de conformidad en VVC
La ventana de conformidad en VVC define un rectángulo. Las muestras dentro de la ventana de conformidad pertenecen a la imagen de interés. Las muestras fuera de la ventana de conformidad se pueden descartar cuando se emiten.
Cuando se aplica la ventana de conformidad, la relación de escalado en RPR se deriva basándose en ventanas de conformidad.
7.3.2.4 Sintaxis de RBSP de conjunto de parámetros de imagen
_ ___________________________
pic_width_in_luma_samples especifica la anchura de cada imagen descodificada que hace referencia al PPS en unidades de muestras de luma. pic_width_in_luma_samples no debe ser igual a 0, debe ser un múltiplo entero de Máx( 8, MinCbSizeY ), y debe ser menor o igual que
pic_width_max_in_luma_samples.
Cuando subpics_present_flag es igual a 1, el valor de pic_width_in_luma_samples debe ser igual a pic_width_max_in_luma_samples.
pic_height_in_luma_samples especifica la altura de cada imagen descodificada que hace referencia al PPS en unidades de muestras de luma. pic_height_in_luma_samples no debe ser igual a 0 y debe ser un múltiplo entero de Máx( 8, MinCbSizeY ), y debe ser menor o igual que pic_height_max_in_luma_samples.
Cuando subpics_present_flag es igual a 1, el valor de pic_height_in_luma_samples debe ser igual a pic_height_max_in_luma_samples.
Sean refPicWidthInLumaSamples y refPicHeightInLumaSamples pic_width_in_luma_samples y pic_height_in_luma_samples, respectivamente, de una imagen de referencia de una imagen actual que hace referencia a este PPS. Es un requisito de conformidad de flujo de bits que se satisfagan todas las siguientes condiciones:
- pic_width_in_luma_samples * 2 debe ser mayor o igual que refPicWidthInLumaSamples.
- pic_height_in_luma_samples * 2 debe ser mayor o igual que refPicHeightInLumaSamples.
- pic_width_in_luma_samples debe ser menor o igual que refPicWidthInLumaSamples * 8.
- pic_height_in_luma_samples debe ser menor o igual que refPicHeightInLumaSamples * 8.
conformance_window_flag igual a 1 indica que los parámetros de desplazamiento de ventana de recorte de conformidad siguen a continuación en el SPS. conformance_window_flag igual a 0 indica que los parámetros de desplazamiento de ventana de recorte de conformidad no están presentes.
conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, y
conf_win_bottom_offset especifica las muestras de las imágenes en el CVS que se emiten desde el proceso de descodificación, en términos de una región rectangular especificada en coordenadas de imagen para salida. Cuando conformance_window_flag es igual a 0, los valores de conf_win_left_offset,
conf_win_right_offset, conf_win_top_offset, y conf_win_bottom_offset se infiere que son iguales a 0.
La ventana de recorte de conformidad contiene las muestras de luma con coordenadas de imagen horizontal de SubWidthC * conf_win _left_offset a pic_width_in_luma_samples - ( SubWidthC * conf_win_right_offset 1 ) y coordenadas de imagen vertical de SubHeightC * conf_win_top_offset a pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset 1 ), inclusive.
El valor de SubWidthC * ( conf_win_left_offset conf_win_right_offset ) debe ser menor de pic_width_in_luma_samples, y el valor de SubHeightC * ( conf_win_top_offset conf_win_bottom_offset ) debe ser menor de pic_height_in_luma_samples.
Las variables PicOutputWidthL y PicOutputHeightL se derivan de la siguiente manera:
PicOutputWidthL = pic_width_in_luma_samples - (7-43)
SubWidthC * ( conf_win_right_offset conf_win_left_offset ) PicOutputHeightL = pic_height_in_pic_size_units - (7-44) SubHeightC * ( conf_win_bottom_offset conf_win_top_offset )
Cuando ChromaArrayType no es igual a 0, las correspondientes muestras especificadas de las dos matrices de croma son las muestras que tienen coordenadas de imagen ( x / SubWidthC, y / SubHeightC ), donde ( x, y ) son las coordenadas de imagen de las muestras de luma especificadas.
NOTA - Los parámetros de desplazamiento de ventana de recorte de conformidad únicamente se aplican en la salida.
Todos los procesos de descodificación internos se aplican al tamaño de imagen sin recortar.
Sean ppsA y ppsB cualesquiera dos PPS que hacen referencia al mismo SPS. Es un requisito de conformidad de flujo de bits que, cuando ppsA y ppsB tienen los mismos valores de pic_width_in_luma_samples y pic_height_in_luma_samples, respectivamente, ppsA y ppsB deben tener los mismos valores de conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset, respectivamente.
3. Problemas técnicos resueltos por las soluciones técnicas descritas en el presente documento
Los datos de ALF en APS tienen el siguiente problema:
1. Tiene dos banderas para controlar si se señalizan o no parámetros de ALF de luma, por ejemplo, alf_luma_filter_signal_flag y alf_luma_coeff_signalled_flag, que es redundante.
2. Señaliza una bandera para cada clase en el ALF para indicar si todos los coeficientes de ALF en esa clase son cero. Esto puede ser innecesario debido a que rara vez se seleccionan todos los coeficientes de ALF cero. Mientras tanto, incluso con tal bandera, se pueden señalizar todavía todos los coeficientes de ALF cero.
3. Se requieren múltiples comprobaciones de condición y etapas para derivar los predictores de filtro para el componente de color de luma. Puede conllevar una complejidad innecesaria.
4. En VVC, la subdivisión de una imagen podría ser corte/pieza/ladrillo en donde el bloque es una unidad más pequeña en comparación con corte/pieza. No se permite predecir ladrillos diferentes entre sí. En un codificador real, la señalización de activación/desactivación de ALF en el nivel de pieza/ladrillo puede proporcionar un beneficio adicional para rendimiento de codificación.
4. Técnicas de ejemplo
El listado a continuación debe considerarse como ejemplos para explicar conceptos generales. Estos elementos no deben interpretarse de manera restringida.
En este documento, la resolución (o dimensiones, o anchura/altura, o tamaño) de una imagen se puede referir a la resolución (o dimensiones, o anchura/altura, o tamaño) de la imagen codificada/descodificada, o se puede referir a la resolución (o dimensiones, o anchura/altura, o tamaño) de la ventana de conformidad en la imagen codificada/descodificada.
1. Se propone que únicamente se puede señalizar un elemento de sintaxis para indicar si hay coeficientes de ALF de luma a señalizar.
a. En un ejemplo, se puede omitir la señalización de alf_luma_coeff_signalled_flag.
b. Como alternativa, además, si señalizar que los coeficientes del filtro de luma indicados por sfIdx (por ejemplo, alf_luma_coeff_flag[sfIdx]) pueden depender puramente de si es necesario señalizar al menos un filtro (por ejemplo, alf_luma_filter_signal_flag).
c. En un ejemplo, la señalización de alf_luma_coeff_flag puede empezar desde el último (es decir, el índice de filtro más grande permitido) al primero.
d. Como alternativa, se mantiene un contador para registrar cuántos filtros se han codificado o cuántos alf_luma_coeff_flags son iguales a verdadero.
i. Si el contador es igual a 0 antes de codificar la información del último filtro, no se señaliza alf_luma_coeff_flag para el último filtro (por ejemplo, con el índice de filtro más grande permitido o índice igual a 0, dependiendo del orden de codificación), y se deriva para ser cierto.
e. Como alternativa, además, cuando la sintaxis indica que hay coeficiente de ALF de luma a señalizar, un flujo de bits de conformidad debe satisfacer que al menos un coeficiente de un filtro de luma es distinto de cero. f. Como alternativa, además, cuando la sintaxis indica que hay coeficiente de ALF de luma a señalizar, un flujo de bits de conformidad debe satisfacer que se señaliza al menos un filtro de luma (por ejemplo, al menos un alf_luma_coeff_flag[sfIdx] es verdadero).
2. Se propone que cuando una clase en ALF tiene todos los coeficientes de ALF cero, todos los coeficientes de ALF cero se pueden señalizar todavía.
a. En un ejemplo, se puede señalizar valor cero (por ejemplo, cero alf_luma_coeff_abs) para cada par de posiciones que comparten los mismos coeficientes de ALF. Por ejemplo, se pueden señalizar 12 ceros para el filtro de ALF de 7*7 diamantes.
b. En un ejemplo, no más de N (N es un número entero no negativo) clases en ALF pueden tener todos cero coeficientes de ALF. Por ejemplo, N = 1.
3. Se propone que cuando los coeficientes de ALF de luma/croma señalizados en un APS son todos cero para todas las clases, tales coeficientes de ALF de luma/croma se pueden no usar por las siguientes imágenes/cortes/piezas/ladrillos/CTU.
a. Como alternativa, además, no se permite señalizar el filtro de ALF cero (por ejemplo, todos los coeficientes son ceros) en el APS.
b. Como alternativa, además, es un requisito de conformidad de flujo de bits que los coeficientes de ALF de luma/croma señalizados en un APS contengan al menos un coeficiente distinto de cero. Por ejemplo, cuando los coeficientes de ALF de luma/croma contienen únicamente coeficientes cero, se debe indicar (por ejemplo, mediante alf_luma_filter_signal_flag o alf_chroma_filter_signal_flag) que no hay coeficientes de ALF de luma/croma en el APS.
4. Las banderas de control de activación/desactivación para indicar que al menos una CTU/CTB se codifica con el método de filtrado en bucle (por ejemplo, SAO/ALF) habilitado se elimina del nivel de corte (por ejemplo, slice_alf_enabled_flag/ slice_sao_luma_flag/slice_sao_chroma_flag) a un nivel de unidad de vídeo, y la unidad de vídeo es más pequeña que un corte (por ejemplo, nivel de ladrillo/placa).
a. En un ejemplo, para cada ladrillo/pieza, se puede codificar una bandera para indicar si el método de filtrado en bucle se aplica a al menos una muestra en el ladrillo/pieza.
b. En un ejemplo, las banderas de control de activación/desactivación de nivel de corte para indicar que al menos una CTU/CTB se codifica con el método de filtrado en bucle aplicado (por ejemplo, slice_alf_enabled_flag) se sustituyen por banderas señalizadas en nivel de ladrillo/pieza.
c. En un ejemplo, las banderas de control de activación/desactivación de nivel de corte para indicar que al menos una CTU/CTB se codifica con el método de filtrado en bucle aplicado (por ejemplo, slice_alf_enabled_flag) se mantienen sin cambios, y cuando esta bandera es verdadera, las banderas de control de activación/desactivación en el nivel de ladrillo/pieza se pueden señalizar adicionalmente.
5. La señalización de filtros ALF se puede simplificar para que tenga dos partes, por ejemplo, 1a parte para indicar si se predice o selecciona a partir de filtro fijo o APS de ALF; y 2a parte es el índice de los filtros fijos/APS de ALF.
a. En un ejemplo, se puede señalizar una bandera para indicar si los filtros se predicen a partir de filtros fijos o no.
i. Como alternativa, se puede señalizar una bandera para indicar si se predicen filtros a partir de APS de ALF o no.
ii. Como alternativa, se puede señalizar/analizar una bandera para indicar si el filtro determinado se selecciona de entre filtros de ALF fijos o no.
iii. Como alternativa, se puede señalizar/analizar una bandera para indicar si el filtro determinado se selecciona de APS de ALF o no.
iv. Como alternativa, además, una bandera de este tipo se puede señalizare/analizar bajo la condición de que el número de APS de ALF usado para el componente de color (por ejemplo, luma) es mayor de 0 (o distinto de 0).
a) En un ejemplo, cuando el número del APS de ALF usado para el componente de color (por ejemplo, luma) es igual a 0, tal bandera no se señaliza/analiza, y siempre se puede inferir que se usa un filtro de ALF fijo.
v. En un ejemplo, la bandera se puede codificar por contexto o codificar por derivación.
a) En un ejemplo, se puede utilizar únicamente un contexto.
b) Como alternativa, se puede utilizar más de un contexto.
a. Como alternativa, además, el modelado de contexto puede depender de la información del CTB vecino.
b. Como alternativa, además, el modelado de contexto puede depender de la información de CTB actual, tal como ubicación de CTB actual.
c. Como alternativa, además, el modelado de contexto puede depender de la información descodificada, tal como el tipo de corte/imagen.
b. Como alternativa, además, dependiendo de la bandera, el índice a filtro fijo o APS de ALF se puede señalizar o analizar.
i. En un ejemplo, si señalizar el índice de APS de ALF puede depender además del número de APS de ALF permitidos para corte/pieza/ladrillo actual.
a) Como alternativa, además, cuando el número de APS de ALF permitidos para el corte/pieza/ladrillo actual es mayor de 1, se puede señalizar el índice. De lo contrario, cuando el número de APS de ALF permitidas para corte/pieza/ladrillo actual es igual a 1, el índice se puede no señalizar, y se usa el único APS de ALF.
ii. En un ejemplo, se puede señalizar la indicación del índice de APS de ALF.
a) En un ejemplo, se puede señalizar con el método unario truncado. Como alternativa, además, con valor máximo establecido al número de APS de ALF permitidos para corte/pieza/ladrillo actual menos K (por ejemplo, K = 0 o 1).
b) En un ejemplo, se puede señalizar con el método binario truncado. Como alternativa, además, con valor máximo establecido al número de APS de ALF permitidos para corte/pieza/ladrillo actual menos K (por ejemplo, K = 0 o 1).
iii. En un ejemplo, el índice se puede codificar por contexto.
a) En un ejemplo, los primeros K binarios de la cadena de binarios binarizada del índice se pueden codificar por contexto y los binarios restantes se pueden codificar por derivación (por ejemplo, K = 1 o basándose en el número de APS de ALF).
b) En un ejemplo, todos los binarios están codificados por derivación.
6. El control de activación/desactivación de métodos de filtrado (por ejemplo, SAO, filtro bilateral, ALF) se puede señalizar/derivar en un nivel de región en donde el tamaño de región se puede determinar al menos de acuerdo con la resolución de imagen y la resolución de imagen máxima.
a. Como alternativa, además, el tamaño de la región se fija para una imagen, pero podría ser diferente para diferentes imágenes con diferentes resoluciones.
b. En un ejemplo, supóngase que la anchura y altura máximas de imagen en la muestra de luma se indican por maxW y maxH, respectivamente; la anchura y altura de la imagen actual en la muestra de luma se indican por currW y currH, respectivamente. La anchura y altura de CTU/CTB se indican por ctbW y ctbH, respectivamente. El tamaño de región, indicado por regW * regH, se puede definir como:
i. Como alternativa, además, las banderas de control de activación/desactivación y/o información secundaria (por ejemplo, predicha a partir de qué filtro fijo y/o predicha a partir de qué APS de ALF) se pueden señalizar/analizar en el nivel de región.
ii. En un ejemplo, regW se puede establecer a (ctbW* currW/maxW).
iii. En un ejemplo, regH se puede establecer a (ctbH* currH/maxH).
iv. En un ejemplo, regW y/o regH pueden depender además de la estructura de subdivisión del CTB actual.
a) Como alternativa, además, puede depender además del primer tipo de subdivisión (por ejemplo, no dividido (codificado como un CTB completo); División de árbol cuádruple; división de árbol binario; división de árbol ternario)
a. Como alternativa, además, el tamaño de región no debe ser menor de las sub-CU que se dividen directamente del CTB.
b) En un ejemplo, regW se puede establecer a ctbW * máx(R<W>, currW/máxW)
c) En un ejemplo, regH se puede establecer a ctbH * máx(R<H>, currH/máxH)
d) En el ejemplo anterior, R<W>y/o R<h>se pueden establecer a 1 para el caso no dividido.
e) En el ejemplo anterior, R<w>y/o R<h>se pueden establecer a A para el caso de división de árbol cuádruple.
c. Los métodos anteriores se pueden habilitar cuando RPR está habilitado para una secuencia.
7. Un flujo de bits de conformidad debe satisfacer que cuando se habilita codificación sin pérdidas (por ejemplo, transquant_bypass_enabled_flag) para una secuencia/imagen, el tipo de unidad de NAL no debe ser igual a APS_NUT (es decir, conjunto de parámetros de adaptación).
a. Un flujo de bits de conformidad debe satisfacer que cuando se habilita codificación sin pérdidas (por ejemplo, transquant_bypass_enabled_flag) para una secuencia/imagen, aps_params_type no debe ser igual a ALF_APS.
b. Un flujo de bits de conformidad debe satisfacer que cuando se habilita codificación sin pérdidas (por ejemplo, transquant_bypass_enabled_flag) para una secuencia/imagen, aps_params_type no debe ser igual a LMCS_APS.
c. Un flujo de bits de conformidad debe satisfacer que cuando se habilita codificación sin pérdidas (por ejemplo, transquant_bypass_enabled_flag) para una secuencia/imagen, aps_params_type no debe ser igual a SCALING_APS.
d. Un flujo de bits de conformidad debe satisfacer que cuando se habilita la codificación sin pérdidas (por ejemplo, transquant_bypass_enabled_flag) para una secuencia/imagen, las banderas de control de activación/desactivación para algunas herramientas (por ejemplo, ALF/LMCS/JCCR indicadas por slice_alf_enabled_flag/ alf_ctb_flag, slice_lmcs_enabled_flag, slice_joint_cbcr_sign_flag) en nivel de secuencia/imagen/corte/pieza/ladrillo/CTB/subimagen y/o bandera de presentación de lista de escalado (por ejemplo, slice_scaling_list_present_flag) debe ser igual a 0.
i. Como alternativa, la señalización de banderas de control de activación/desactivación para esas herramientas y/o bandera de presentación de lista de escalado puede estar bajo la condición de que la codificación sin pérdidas esté deshabilitada para la imagen.
8. Si y/o cómo aplicar los métodos anteriores se puede basar en una o más condiciones enumeradas a continuación:
a. Contenidos de vídeo (por ejemplo, contenidos de pantalla o contenidos naturales)
b. Un mensaje señalizado en la DPS/SPS/VPS/PPS/APS/cabecera de imagen/cabecera de corte/cabecera de grupo de piezas/unidad de codificación más grande (LCU)/unidad de codificación (CU)/fila de LCU/grupo de LCU/TU/bloque de PU/unidad de codificación de vídeo
c. Posición de CU/PU/TU/bloque/unidad de codificación de vídeo
d. Información descodificada de bloque actual y/o sus bloques vecinos
i. Dimensión de bloque/forma de bloque del bloque actual y/o sus bloques vecinos
e. Indicación del formato de color (tal como 4:2:0, 4:4:4, RGB o YUV)
f. Estructura de árbol de codificación (tal como árbol dual o árbol único)
g. Tipo de grupo de corte/pieza y/o tipo de imagen
h. Componente de color (por ejemplo, se puede aplicar únicamente en componente de luma y/o componente de croma)
i. ID de capa temporal
j. Perfiles/niveles/estratos de una norma
5. Ejemplos de la tecnología actual Las partes eliminadas están encerradas entre corchetes en negrita doble (por ejemplo, [[a]] indica que se ha eliminado "a") y las partes recién añadidas están encerradas entre llaves en negrita doble (por ejemplo, {{a}} indica que se ha añadido "a"). La realización está en la parte superior de JVET-O2001-vE.
5.1. Ejemplo n.° 1
Esta parte proporciona algunos ejemplos sobre cómo señalizar parámetros de ALF en APS de ALF.
7.3.2.15 Sintaxis de datos de filtro de bucle adaptativo
_____________________________________________________________________________
continuación
____________________________________________________________________________________ Como alternativa, se puede aplicar lo siguiente:
______ ______________________________________________________________________________ continuación
____________________________________________________________________________________
7.4.3.14 Semántica de datos de filtro de bucle adaptativo
a lf_l u ma_f i Ite r_s i g n a l_f l a g igual a 1 especifica que se señaliza un conjunto de filtros de luma. alf_luma_filter_signal_flag igual a 0 especifica que no se señaliza un conjunto de filtros de luma. alf_chroma_filter_signal_flag igual a 1 especifica que se señaliza un filtro de croma. alf_chroma_filter_signal_flag igual a 0 especifica que no se señaliza un filtro de croma. Cuando ChromaArrayType es igual a 0, alf_chroma_filter_signal_flag deb ser igual a 0.
La variable NumAlfFilters que especifica el número de diferentes filtros de bucle adaptativo se establece igual a 25. alf_luma_clip_flag igual a 0 especifica que se aplica filtrado de bucle adaptativo lineal en el componente de luma. alf_luma_clip_flag igual a 1 especifica que se puede aplicar filtrado de bucle adaptativo no lineal en componente de luma.
alf_luma_num_filters_signalled_minus1 más 1 especifica el número de clases de filtro de bucle adaptativo para las que se pueden señalizar coeficientes de luma. El valor de alf_luma_num_filters_signalled_minus1 debe estar en el intervalo de 0 a NumAlfFilters -1 , inclusive.
alf_luma_coeff_delta_idx[ filtIdx ] especifica los índices de los deltas de coeficiente de luma de filtro de bucle adaptativo señalizados para la clase de filtro indicada por filtIdx que varía de 0 a NumAlfFilters - 1. Cuando alf_luma_coeff_delta_idx[ filtIdx ] no está presente, se infiere que es igual a 0. La longitud de alf_luma_coeff_delta_idx[ filtIdx ] es techo( Log2( alf_luma_num_filters_signalled_minus1 1 ) ) bits.
[[ alf_luma_coeff_signalled_flag igual a 1 indica que se señaliza alf_luma_coeff_flag[ sfIdx ]. alf_luma_coeff_signalled_flag igual a 0 indica que alf_luma_coeff_flag[ sfIdx ] no se señaliza. alf_luma_coeff_flag[ sfIdx ] igual a 1 especifica que se señalizan los coeficientes del filtro de luma indicados por sfIdx. alf_luma_coeff_flag[ sfIdx ] igual a 0 especifica que todos los coeficientes de filtro del filtro de luma indicados por sfIdx se establecen iguales a 0. Cuando no está presente,
alf_luma_coeff_flag[ sfIdx ] se establece igual a 1. ]]
alf_luma_coeff_abs[ sfIdx ][ j ] especifica el valor absoluto del j-ésimo coeficiente del filtro de luma señalizado indicado por sfIdx. Cuando alf_luma_coeff_abs[ sfIdx ][ j ] no está presente, se infiere que es igual a 0.
El orden k de la binarización de exp-Golomb uek(v) se establece igual a 3.
alf_luma_coeff_sign[ sfIdx ][ j ] especifica el signo del j-ésimo coeficiente de luma del filtro indicado por sfIdx de la siguiente manera:
- Si alf_luma_coeff_sign[ sfIdx ][ j ] es igual a 0, el coeficiente de filtro de luma correspondiente tiene un valor positivo. - De lo contrario (alf_luma_coeff_sign[ sfIdx ][ j ] es igual a 1), el coeficiente de filtro de luma correspondiente tiene un valor negativo.
Cuando alf_luma_coeff_sign[ sfIdx ][ j ] no está presente, se infiere que es igual a 0.
La variable filtCoeff[ sfIdx ][ j ] con sfIdx = 0..alf_luma_num_filters_signalled_minus1, j = 0..11 se inicializa de la siguiente manera:
filtCoeff[ sfIdx ][ j ] = alf_luma_coeff_abs[ sfIdx ][ j ] * (7-47) ( 1 - 2 * alf_luma_coeff_sign[ sfIdx ][ j ] )
Los coeficientes de filtro de luma AlfCoeff<L>[adaptation_parameter_set_id] con elementos AlfCoeff<L>[adaptation_parameter_set_id][ filtIdx ][ j ], con filtIdx = 0..NumAlfFilters -1 y j = 0..11 se derivan de la siguiente manera:
AlfCoeff<L>[ adaptation_parameter_set_id ][ filtIdx ][ j ] = filtCoeff[ alf_luma_coeff_delta_idx [ filtIdx ] ][ j ](7-48) 5.2. Realización n.° 2
Esta realización, que se reivindica, proporciona un ejemplo sobre cómo señalizar parámetros de ALF para CTB de luma.
_____________________________________________________________________________________
[[ alf_ctb_use_first_aps_flag igual a 1 especifica que se usa la información de filtro en APS con adaptive_parameter_set_id igual a slice_alf_aps_id_luma[ 0 ].
alf_ctb_use_first_aps_flag igual a 0 especifica que el CTB de luma no usa la información de filtro en APS con adaptive_parameter_set_id igual a slice_alf_aps_id_luma[ 0 ]. Cuando alf_ctb_use_first_aps_flag no está presente, se infiere que es igual a 0. ]]
alf_use_aps_flag igual a 0 especifica que uno de los conjuntos de filtros fijos se aplica al CTB de luma. alf_use_aps_flag igual a 1 especifica que se aplica un filtro establecido desde un APS al CTB de luma. Cuando alf_use_aps_flag no está presente, se infiere que es igual a 0.
alf_luma_prev_filter_idx[[_minus1 plus 1]] especifica el filtro anterior que se aplica al CTB de luma. El valor de alf_luma_prev_filter_idx[[_minus1]] debe estar en un intervalo de 0 a slice_num_alf_aps_ids_luma -{{1}}[[2]], inclusive. Cuando alf_luma_prev_filter_idx[[_minus1]] no está presente, se infiere que es igual a 0.
La variable AlfCtbFiltSetIdxY[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] que especifica el índice de conjunto de filtros para el CTB de luma en la ubicación ( xCtb, yCtb ) se deriva de la siguiente manera:
- [[ Si alf_ctb_use_first_aps _flag es igual a 1,
- AlfCtbFiltSetIdxY[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] se establece igual a 16.
- De lo contrario,]] si alf_use_aps_flag es igual a 0,
- AlfCtbFiltSetIdxY[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] se establece igual a alf_luma_fixed_filteridx. - De lo contrario, AlfCtbFiltSetIdxY[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] se establece igual a {{16 alf_luma_prev_filter_idx}} [[ 17 alf_luma_prev_filter_idx_minus1]].
alf_luma_fixed_filter_idx especifica el filtro fijo que se aplica al CTB de luma. El valor de alf_luma_fixed_filter_idx debe estar en un intervalo de 0 a 15, inclusive.
Tabla 9-77 - Elementos de sintaxis binarizaciones asociadas
La figura 9 es un diagrama de bloques que muestra un sistema de procesamiento de vídeo 900 de ejemplo en el que se pueden implementar diversas técnicas divulgadas en el presente documento. Diversas implementaciones pueden incluir algunos o todos los componentes del sistema 900. El sistema 900 puede incluir la entrada 902 para recibir contenido de vídeo. El contenido de vídeo se puede recibir en un formato sin procesar o sin comprimir, por ejemplo, valores de píxel de múltiples componentes de 8 o 10 bits, o puede estar en un formato comprimido o codificado. La entrada 902 puede representar una interfaz de red, una interfaz de bus periférico o una interfaz de almacenamiento. Ejemplos de interfaz de red incluyen interfaces cableadas tales como Ethernet, red óptica pasiva (PON), etc. e interfaces inalámbricas tales como Wi-Fi o interfaces celulares.
El sistema 900 puede incluir un componente de codificación 904 que puede implementar los diversos métodos de codificación descritos en el presente documento. El componente de codificación 904 puede reducir la tasa de bits promedio de vídeo desde la entrada 902 a la salida del componente de codificación 904 para producir una representación codificada del vídeo. Por lo tanto, las técnicas de codificación a veces se denominan técnicas de compresión de vídeo o transcodificación de vídeo. La salida del componente de codificación 904 se puede almacenar o transmitir a través de una comunicación conectada, como se representa por el componente 906. La representación de flujo de bits almacenada o comunicada (o codificada) del vídeo recibido en la entrada 902 se puede usar por el componente 908 para generar valores de píxel o vídeo visualizable que se envía a una interfaz de visualización 910. El proceso de generación de vídeo visible por el usuario a partir de la representación de flujo de bits se denomina en ocasiones descompresión de vídeo. Además, aunque ciertas operaciones de procesamiento de vídeo se denominan como operaciones o herramientas de "codificación", se apreciará que las herramientas u operaciones de codificación se usan en un codificador y las correspondientes herramientas u operaciones de descodificación que invierten los resultados de la codificación se realizarán por un descodificador.
Ejemplos de una interfaz de bus periférico o una interfaz de visualización pueden incluir bus serie universal (USB) o interfaz multimedia de alta definición (HDMI) o Displayport, y así sucesivamente. Los ejemplos de interfaces de almacenamiento incluyen interfaz SATA (conexión de tecnología avanzada en serie), PCI, IDE y similares. Las técnicas descritas en el presente documento se pueden incorporar en diversos dispositivos electrónicos tales como teléfonos móviles, ordenadores portátiles, teléfonos inteligentes u otros dispositivos que son capaces de realizar procesamiento de datos digitales y/o visualización de vídeo.
La figura 10 es un diagrama de bloques de un aparato de procesamiento de vídeo 1000. El aparato 1000 se puede usar para implementar uno o más de los métodos descritos en el presente documento. El aparato 1000 se puede incorporar en un teléfono inteligente, tableta, ordenador, receptor de Internet de las Cosas (IoT), y así sucesivamente. El aparato 1000 puede incluir uno o más procesadores 1002, una o más memorias 1004 y hardware de procesamiento de vídeo 1006. El procesador o procesadores 1002 se pueden configurar para implementar uno o más métodos descritos en el presente documento. La memoria (memorias) 1004 se puede usar para almacenar datos y código usado para implementar los métodos y técnicas descritos en el presente documento. El hardware de procesamiento de vídeo 1006 se puede usar para implementar, en circuitería de hardware, algunas técnicas descritas en el presente documento. En algunas implementaciones, el hardware 1606 puede ser parcial o completamente una parte del procesador 1002, por ejemplo, un procesador de gráficos.
La figura 11 es un diagrama de flujo de un método de ejemplo de procesamiento de vídeo. El método 1100 incluye, en la operación 1110, determinar, para una conversión entre una región actual de un vídeo y una representación de flujo de bits del vídeo, si se usa un filtro de bucle adaptativo de luma durante la conversión y si se incluyen coeficientes de filtro de bucle adaptativo de luma en la representación de flujo de bits, de manera que un único elemento de sintaxis en la representación de flujo de bits es indicativo del uso del filtro de bucle adaptativo de luma y la señalización de los coeficientes de filtro de bucle adaptativo de luma.
El método 1100 incluye, en la operación 1120, realizar, basándose en la determinación, la conversión.
La figura 12 es un diagrama de flujo de un método de ejemplo de procesamiento de vídeo. El método 1200 incluye, en la operación 1210, realizar una conversión entre una región actual de un vídeo y una representación de flujo de bits del vídeo, de modo que se usa un filtro de bucle adaptativo durante la conversión, y la representación de flujo de bits se ajusta a una regla de sintaxis que especifica que los coeficientes del filtro de bucle adaptativo señalizados en la representación de flujo de bits incluyen coeficientes de filtro de bucle adaptativo de valor cero.
La figura 13 es un diagrama de flujo de un método de ejemplo de procesamiento de vídeo. El método 1300 incluye, en la operación 1310, determinar, para una conversión entre una región actual de un vídeo y una representación de flujo de bits del vídeo, que los coeficientes de filtro de bucle adaptativo de valor cero de una región anterior del vídeo señalizado en la representación de flujo de bits no se usan en la conversión.
El método 1300 incluye, en la operación 1320, realizar, basándose en la determinación, la conversión.
La figura 14 es un diagrama de flujo de un método de ejemplo de procesamiento de vídeo. El método 1400 incluye, en la operación 1410, realizar una conversión entre una región actual de un vídeo y una representación de flujo de bits del vídeo, de tal manera que la representación de flujo de bits se ajusta a una regla de sintaxis que especifica una bandera que indica si se usa filtrado en bucle para la conversión se incluye en la representación de flujo de bits en un nivel de unidad de vídeo que comprende la región actual que es más pequeña que un nivel de corte del vídeo.
La figura 15 es un diagrama de flujo de un método de ejemplo de procesamiento de vídeo. El método 1500 incluye, en la operación 1510, realizar una conversión entre una región actual de un vídeo y una representación de flujo de bits del vídeo, de modo que la conversión comprende usar un filtro de bucle adaptativo, y la representación de flujo de bits está configurada para indicar el filtro de bucle adaptativo usando una señalización de dos partes que incluye una primera parte indicativa de una técnica de determinación del filtro de bucle adaptativo, y una segunda parte indicativa de un índice usado por la técnica.
La figura 16 es un diagrama de flujo de un método de ejemplo de procesamiento de vídeo. El método 1600 incluye, en la operación 1610, determinar, basándose en una propiedad de un vídeo, un tamaño de una región actual del vídeo que comparte un ajuste de filtrado de bucle común para una conversión entre la región actual y una representación de flujo de bits del vídeo.
El método 1600 incluye, en la operación 1620, realizar, basándose en la determinación, la conversión.
La figura 17 es un diagrama de flujo de un método de ejemplo de procesamiento de vídeo. El método 1700 incluye, en la operación 1710, realizar una conversión sin pérdidas entre una región actual del vídeo y una representación de flujo de bits del vídeo, de modo que la representación de flujo de bits se ajusta a una regla de sintaxis que restringe un valor de un campo de sintaxis asociado con la región actual en la representación de flujo de bits debido a que la conversión no tiene pérdidas.
Las soluciones divulgadas y otras, ejemplos, realizaciones, módulos y las operaciones funcionales descritas en este documento se pueden implementar en circuitería electrónica digital, o en software informático, firmware o las realizaciones divulgadas y otras se pueden implementar como uno o más productos de programa informático, es decir, uno o más módulos de instrucciones de programa informático codificadas en un medio legible por ordenador para su ejecución por, o para controlar la operación de, un aparato de procesamiento de datos. El medio legible por ordenador puede ser un dispositivo de almacenamiento legible por máquina, un sustrato de almacenamiento legible por máquina, un dispositivo de memoria, una composición de materia que efectúa una señal propagada legible por máquina o una combinación de uno o más de ellos. La expresión "aparato de procesamiento de datos" abarca todos los aparatos, dispositivos y máquinas para procesar datos, incluyendo a modo de ejemplo un procesador programable, un ordenador o múltiples procesadores u ordenadores. El aparato puede incluir, además de hardware, código que crea un entorno de ejecución para el programa informático en cuestión, por ejemplo, código que constituye firmware de procesador, una pila de protocolos, un sistema de gestión de bases de datos, un sistema operativo o una combinación de uno o más de ellos. Una señal propagada es una señal generada artificialmente, por ejemplo, una señal eléctrica, óptica o electromagnética generada por máquina, que se genera para codificar información para su transmisión a un aparato receptor adecuado.
Un programa informático (también conocido como programa, software, aplicación de software, script o código) se puede escribir en cualquier forma de lenguaje de programación, incluyendo lenguajes compilados o interpretados, y se puede implementar en cualquier forma, incluyendo como un programa independiente o como un módulo, componente, subrutina u otra unidad adecuada para su uso en un entorno informático. Un programa informático no corresponde necesariamente a un archivo en un sistema de archivos. Un programa se puede almacenar en una porción de un archivo que contiene otros programas o datos (por ejemplo, uno o más scripts almacenados en un documento de lenguaje de marcado), en un único archivo dedicado al programa en cuestión o en múltiples archivos coordinados (por ejemplo, archivos que almacenan uno o más módulos, subprogramas o porciones de código). Un programa informático se puede desplegar para ejecutarse en un ordenador o en múltiples ordenadores que están ubicados en un sitio o distribuidos a través de múltiples sitios e interconectados por una red de comunicación.
Los procesos y flujos lógicos descritos en este documento se pueden realizar por uno o más procesadores programables que ejecutan uno o más programas informáticos para realizar funciones operando sobre datos de entrada y generando la salida. Los procesos y flujos lógicos también se pueden realizar y los aparatos se pueden implementar como circuitería lógica de propósito especial, por ejemplo, una FPGA (matriz de puertas programables en campo) o un ASIC (circuito integrado específico de la aplicación).
Los procesadores adecuados para la ejecución de un programa informático incluyen, a modo de ejemplo, microprocesadores de propósito tanto general como especial, y uno o más procesadores de cualquier tipo de ordenador digital. Generalmente, un procesador recibirá instrucciones y datos desde una memoria de solo lectura o una memoria de acceso aleatorio o ambas. Los elementos esenciales de un ordenador son un procesador para realizar instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. En general, un ordenador también incluirá, o estará acoplado operativamente para recibir datos de o transferir datos a, o ambos, uno o más dispositivos de almacenamiento masivo para almacenar datos, por ejemplo, discos magnéticos, magneto-ópticos u ópticos. Sin embargo, no es necesario que un ordenador tenga tales dispositivos. Los medios legibles por ordenador adecuados para almacenar instrucciones y datos de programas informáticos incluyen todas las formas de memoria no volátil, medios y dispositivos de memoria, incluyendo a modo de ejemplo dispositivos de memoria semiconductores, por ejemplo, EPROM, EEPROM y dispositivos de memoria flash; discos magnéticos, por ejemplo, discos duros internos o discos extraíbles; discos magneto-ópticos; y discos CD ROM y DVD-ROM. El procesador y la memoria pueden ser complementados por, o incorporarse en, circuitería lógica de propósito especial.
Claims (13)
1. Un método de procesamiento de datos de vídeo, que comprende:
realizar una conversión entre un bloque actual de una región actual de un vídeo y un flujo de bits del vídeo, en donde la conversión comprende usar un filtro de bucle adaptativo para el bloque actual, y en donde el flujo de bits está configurado para indicar el filtro de bucle adaptativo usando múltiples elementos de sintaxis que incluyen:
un primer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el primer elemento de sintaxis alf_use_aps_flag, e indicando el primer elemento de sintaxis si se aplica un conjunto de filtros fijo o un conjunto de filtros de un conjunto de parámetros de adaptación (APS) al bloque actual,
un segundo elemento de sintaxis de los múltiples elementos de sintaxis, siendo el segundo elemento de sintaxis alf_luma_prev_filter_idx, y el segundo elemento de sintaxis indicativo de un índice del conjunto de filtros del APS, y especifica el filtro anterior que se aplica al bloque de árbol de codificación CTB, de luma, y
un tercer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el tercer elemento de sintaxis alf_luma_fixed_filter_idx, y el tercer elemento de sintaxis indicativo de un índice del conjunto de filtros fijos, en donde el flujo de bits comprende un cuarto elemento de sintaxis en una cabecera de corte, siendo el cuarto elemento de sintaxis slice_num_alf_aps_ids_luma, e indicando el cuarto elemento de sintaxis un número de APS de filtro de bucle adaptativo usados para la región actual,
en donde el primer elemento de sintaxis se incluye en el flujo de bits cuando un valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno y el primer elemento de sintaxis se incluye en el flujo de bits cuando el valor del cuarto elemento de sintaxis en la cabecera de corte es igual a uno,
en donde el segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se incluye en el flujo de bits cuando un valor del primer elemento de sintaxis es igual a uno y el valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno, y
en donde el tercer elemento de sintaxis se incluye en el flujo de bits cuando el valor del primer elemento de sintaxis es igual a cero.
2. El método de la reivindicación 1, en donde que el primer elemento de sintaxis sea cero indica que el conjunto de filtros fijo se aplica al bloque actual.
3. El método de la reivindicación 1, en donde que el primer elemento de sintaxis sea uno indica que el conjunto de filtros desde el APS se aplica al bloque actual.
4. El método de la reivindicación 1, en donde el flujo de bits excluye la primera parte de elemento de sintaxis en respuesta a que el valor del cuarto elemento de sintaxis en la cabecera de corte es igual a cero, y en donde el primer elemento de sintaxis se infiere para indicar que el conjunto de filtros fijos se aplica al bloque actual.
5. El método de la reivindicación 1, en donde el segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se excluye del flujo de bits en respuesta al valor del cuarto elemento de sintaxis en la cabecera de corte que es igual a 1.
6. El método de cualquiera de las reivindicaciones 1-5, en donde la región actual es un corte.
7. El método de cualquiera de las reivindicaciones 1-6, en donde el segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se codifica con un método binario truncado;
en donde un valor máximo del segundo elemento de sintaxis indicativo del índice del conjunto de filtros desde el APS se establece a un número de APS de ALF permitidos para la región actual menos K, y en donde K = 1; y en donde todos los binarios de una cadena de binarios binarizados del segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se codifican por derivación.
8. El método de cualquiera de las reivindicaciones 1-7, en donde la conversión incluye codificar el vídeo en el flujo de bits.
9. El método de cualquiera de las reivindicaciones 1-7, en donde la conversión incluye descodificar el vídeo del flujo de bits.
10. Un aparato para procesar datos de vídeo que comprende un procesador y una memoria no transitoria con instrucciones en la misma, en donde las instrucciones, tras su ejecución por el procesador, hacen que el procesador:
realice una conversión entre un bloque actual de una región actual de un vídeo y un flujo de bits del vídeo, en donde la conversión comprende usar un filtro de bucle adaptativo para el bloque actual, y en donde el flujo de bits está configurado para indicar el filtro de bucle adaptativo usando múltiples elementos de sintaxis que incluyen: un primer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el primer elemento de sintaxis alf_use_aps_flag, e indicando el primer elemento de sintaxis si se aplica un conjunto de filtros fijo o un conjunto de filtros de un conjunto de parámetros de adaptación (APS) al bloque actual, y
un segundo elemento de sintaxis de los múltiples elementos de sintaxis, siendo el segundo elemento de sintaxis alf_luma_prev_filter_idx, y el segundo elemento de sintaxis indicativo de un índice del conjunto de filtros del APS, y especifica el filtro anterior que se aplica al bloque de árbol de codificación, CTB, de luma, y
un tercer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el tercer elemento de sintaxis alf_luma_fixed_filter_idx, y el tercer elemento de sintaxis indicativo de un índice del conjunto de filtros fijos, en donde el flujo de bits comprende un cuarto elemento de sintaxis en una cabecera de corte, siendo el cuarto elemento de sintaxis slice_num_alf_aps_ids_luma, e indicando el cuarto elemento de sintaxis un número de APS de filtro de bucle adaptativo usados para la región actual;
en donde el primer elemento de sintaxis se incluye en el flujo de bits cuando un valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno y el primer elemento de sintaxis se incluye en el flujo de bits cuando el valor del cuarto elemento de sintaxis en la cabecera de corte es igual a uno,
en donde el segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se incluye en el flujo de bits cuando un valor del primer elemento de sintaxis es igual a uno y un valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno, y
en donde el tercer elemento de sintaxis se incluye en el flujo de bits cuando el valor del primer elemento de sintaxis es igual a cero.
11. Un medio de almacenamiento legible por ordenador no transitorio que almacena instrucciones que hacen que un procesador:
realice una conversión entre un bloque actual de una región actual de un vídeo y un flujo de bits del vídeo, en donde la conversión comprende usar un filtro de bucle adaptativo para el bloque actual, y en donde el flujo de bits está configurado para indicar el filtro de bucle adaptativo usando múltiples elementos de sintaxis que incluyen:
un primer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el primer elemento de sintaxis alf_use_aps_flag, e indicando el primer elemento de sintaxis si se aplica un conjunto de filtros fijo o un conjunto de filtros de un conjunto de parámetros de adaptación (APS) al bloque actual, y
un segundo elemento de sintaxis de los múltiples elementos de sintaxis, siendo el segundo elemento de sintaxis alf_luma_prev_filter_idx, y el segundo elemento de sintaxis indicativo de un índice del conjunto de filtros del APS, y especifica el filtro anterior que se aplica al bloque de árbol de codificación CTB, de luma, y
un tercer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el tercer elemento de sintaxis alf_luma_fixed_filter_idx, y el tercer elemento de sintaxis indicativo de un índice del conjunto de filtros fijos, en donde el flujo de bits comprende un cuarto elemento de sintaxis en una cabecera de corte, siendo el cuarto elemento de sintaxis slice_num_alf_aps_ids_luma, e indicando el cuarto elemento de sintaxis un número de APS de filtro de bucle adaptativo usados para la región actual; y
en donde el primer elemento de sintaxis se incluye en el flujo de bits cuando un valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno y el primer elemento de sintaxis se incluye en el flujo de bits cuando el valor del cuarto elemento de sintaxis en la cabecera de corte es igual a uno,
en donde el segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se incluye en el flujo de bits cuando un valor del primer elemento de sintaxis es igual a uno y el valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno, y
en donde el tercer elemento de sintaxis se incluye en el flujo de bits cuando el valor del primer elemento de sintaxis es igual a cero.
12. Un medio de grabación legible por ordenador no transitorio que almacena un flujo de bits de un vídeo que se genera mediante un método realizado por un aparato de procesamiento de vídeo, en donde el método comprende:
generar el flujo de bits para un bloque actual de una región actual del vídeo, en donde la generación comprende usar un filtro de bucle adaptativo para el bloque actual, y en donde el flujo de bits está configurado para indicar el filtro de bucle adaptativo usando múltiples elementos de sintaxis que incluyen:
un primer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el primer elemento de sintaxis alf_use_aps_flag, e indicando el primer elemento de sintaxis si se aplica un conjunto de filtros fijo o un conjunto de filtros de un conjunto de parámetros de adaptación (APS) al bloque actual, y
un segundo elemento de sintaxis de los múltiples elementos de sintaxis, siendo el segundo elemento de sintaxis alf_luma_prev_filter_idx, y el segundo elemento de sintaxis indicativo de un índice del conjunto de filtros del APS, y especifica el filtro anterior que se aplica al bloque de árbol de codificación CTB, de luma, y
un tercer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el tercer elemento de sintaxis alf_luma_fixed_filter_idx, y el tercer elemento de sintaxis indicativo de un índice del conjunto de filtros fijos, en donde el flujo de bits comprende un cuarto elemento de sintaxis en una cabecera de corte, siendo el cuarto elemento de sintaxis slice_num_alf_aps_ids_luma, e indicando el cuarto elemento de sintaxis un número de APS de filtro de bucle adaptativo usados para la región actual; y
en donde el primer elemento de sintaxis se incluye en el flujo de bits cuando un valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno y el primer elemento de sintaxis se incluye en el flujo de bits cuando el valor del cuarto elemento de sintaxis en la cabecera de corte es igual a uno,
en donde el segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se incluye en el flujo de bits cuando un valor del primer elemento de sintaxis es igual a uno y el valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno, y
en donde el tercer elemento de sintaxis se incluye en el flujo de bits cuando el valor del primer elemento de sintaxis es igual a cero.
13. Un método para almacenar el flujo de bits de un vídeo, que comprende:
generar el flujo de bits para un bloque actual de una región actual del vídeo; y
almacenar el flujo de bits en un medio de grabación legible por ordenador no transitorio,
en donde la generación comprende usar un filtro de bucle adaptativo para el bloque actual, y en donde el flujo de bits está configurado para indicar el filtro de bucle adaptativo usando múltiples elementos de sintaxis que incluyen: un primer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el primer elemento de sintaxis alf_use_aps_flag, e indicando el primer elemento de sintaxis si se aplica un conjunto de filtros fijo o un conjunto de filtros de un conjunto de parámetros de adaptación (APS) al bloque actual,
un segundo elemento de sintaxis de los múltiples elementos de sintaxis, siendo el segundo elemento de sintaxis alf_luma_prev_filter_idx, y el segundo elemento de sintaxis indicativo de un índice del conjunto de filtros del APS, y especifica el filtro anterior que se aplica al bloque de árbol de codificación CTB, de luma, y
un tercer elemento de sintaxis de los múltiples elementos de sintaxis, siendo el tercer elemento de sintaxis alf_luma_fixed_filter_idx, y el tercer elemento de sintaxis indicativo de un índice del conjunto de filtros fijos, en donde el flujo de bits comprende un cuarto elemento de sintaxis en una cabecera de corte, siendo el cuarto elemento de sintaxis slice_num_alf_aps_ids_luma, e indicando el cuarto elemento de sintaxis un número de APS de filtro de bucle adaptativo usados para la región actual;
en donde el primer elemento de sintaxis se incluye en el flujo de bits cuando un valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno y el primer elemento de sintaxis se incluye en el flujo de bits cuando el valor del cuarto elemento de sintaxis en la cabecera de corte es igual a uno,
en donde el segundo elemento de sintaxis indicativo del índice del conjunto de filtros del APS se incluye en el flujo de bits cuando un valor del primer elemento de sintaxis es igual a uno y el valor del cuarto elemento de sintaxis en la cabecera de corte es mayor de uno, y
en donde el tercer elemento de sintaxis se incluye en el flujo de bits cuando el valor del primer elemento de sintaxis es igual a cero.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2019106420 | 2019-09-18 | ||
| PCT/CN2020/116086 WO2021052453A1 (en) | 2019-09-18 | 2020-09-18 | Two-part signaling of adaptive loop filters in video coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3030107T3 true ES3030107T3 (en) | 2025-06-26 |
Family
ID=74883900
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20866732T Active ES3030107T3 (en) | 2019-09-18 | 2020-09-18 | Two-part signaling of adaptive loop filters in video coding |
Country Status (9)
| Country | Link |
|---|---|
| US (3) | US11601686B2 (es) |
| EP (1) | EP4014485B1 (es) |
| JP (2) | JP7323711B2 (es) |
| KR (1) | KR102707780B1 (es) |
| CN (3) | CN114424529B (es) |
| BR (1) | BR112022005046A2 (es) |
| ES (1) | ES3030107T3 (es) |
| PL (1) | PL4014485T3 (es) |
| WO (2) | WO2021052452A1 (es) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102696461B1 (ko) * | 2019-03-11 | 2024-08-21 | 텐센트 아메리카 엘엘씨 | 비디오 비트스트림에서의 적응적 픽처 크기의 시그널링 |
| WO2021052452A1 (en) | 2019-09-18 | 2021-03-25 | Beijing Bytedance Network Technology Co., Ltd. | Signaling usage of adaptive loop filter in video coding |
| KR102790212B1 (ko) | 2019-09-24 | 2025-04-04 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Sei 메시지들에 대한 시간 식별자 제약들 |
| CN117337568A (zh) * | 2021-03-26 | 2024-01-02 | 抖音视界有限公司 | 用于视频处理的方法、设备和介质 |
| CN117256139A (zh) | 2021-04-12 | 2023-12-19 | 抖音视界有限公司 | 视频编解码中的导向滤波器 |
| US12603998B2 (en) | 2021-07-07 | 2026-04-14 | Lemon Inc. | Configurable neural network model depth in neural network-based video coding |
| US20230051066A1 (en) * | 2021-07-27 | 2023-02-16 | Lemon Inc. | Partitioning Information In Neural Network-Based Video Coding |
| TW202539237A (zh) * | 2024-01-16 | 2025-10-01 | 聯發科技股份有限公司 | 在影片編解碼中具有與跨組件色度模型和固定濾波器相關的附加模式和抽頭的適應性環路濾波器的方法與裝置 |
| WO2025218810A1 (en) * | 2024-04-19 | 2025-10-23 | Douyin Vision Co., Ltd. | Using pre-defined filter for classification of adaptive loop filter in video coding |
| WO2026007114A1 (zh) * | 2024-07-05 | 2026-01-08 | Oppo广东移动通信有限公司 | 编解码方法、编解码器以及存储介质 |
| WO2026016999A1 (en) * | 2024-07-15 | 2026-01-22 | Douyin Vision Co., Ltd. | Parameter and control information reusing for loop-filters in video coding |
| WO2026017116A1 (en) * | 2024-07-18 | 2026-01-22 | Mediatek Inc. | Adaptive loop filter syntax design for filter sets selection of cascade filtering |
Family Cites Families (64)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9001899B2 (en) * | 2006-09-15 | 2015-04-07 | Freescale Semiconductor, Inc. | Video information processing system with selective chroma deblock filtering |
| JP5436695B2 (ja) * | 2010-01-14 | 2014-03-05 | ドルビー ラボラトリーズ ライセンシング コーポレイション | ビデオ適応フィルタリングのための方法、システム、ビデオエンコーダ、ビデオデコーダ、コンピュータ装置、集積回路(ic)装置、及びコンピュータ読取可能な記録媒体 |
| US9094658B2 (en) * | 2010-05-10 | 2015-07-28 | Mediatek Inc. | Method and apparatus of adaptive loop filtering |
| US20120039383A1 (en) * | 2010-08-12 | 2012-02-16 | Mediatek Inc. | Coding unit synchronous adaptive loop filter flags |
| US9819966B2 (en) * | 2010-09-01 | 2017-11-14 | Qualcomm Incorporated | Filter description signaling for multi-filter adaptive filtering |
| CN103535035B (zh) * | 2011-05-16 | 2017-03-15 | 寰发股份有限公司 | 用于亮度和色度分量的样本自适应偏移的方法和装置 |
| US9807403B2 (en) * | 2011-10-21 | 2017-10-31 | Qualcomm Incorporated | Adaptive loop filtering for chroma components |
| US9247258B2 (en) | 2011-10-26 | 2016-01-26 | Qualcomm Incorporated | Unified design for picture partitioning schemes |
| US9077998B2 (en) | 2011-11-04 | 2015-07-07 | Qualcomm Incorporated | Padding of segments in coded slice NAL units |
| US20130113880A1 (en) * | 2011-11-08 | 2013-05-09 | Jie Zhao | High Efficiency Video Coding (HEVC) Adaptive Loop Filter |
| CN103796015A (zh) * | 2012-10-31 | 2014-05-14 | 朱洪波 | 系数数目自适应的量化参数差分编码 |
| US10321130B2 (en) | 2013-01-07 | 2019-06-11 | Vid Scale, Inc. | Enhanced deblocking filters for video coding |
| US20140192862A1 (en) * | 2013-01-07 | 2014-07-10 | Research In Motion Limited | Methods and systems for prediction filtering in video coding |
| US9467707B2 (en) | 2013-03-05 | 2016-10-11 | Qualcomm Incorporated | Parallel processing for video coding |
| US9578328B2 (en) | 2013-07-15 | 2017-02-21 | Qualcomm Incorporated | Cross-layer parallel processing and offset delay parameters for video coding |
| HK1218820A1 (zh) | 2013-09-27 | 2017-03-10 | 高通股份有限公司 | 用於深度幀內預測模式的殘餘譯碼 |
| US9807406B2 (en) | 2014-03-17 | 2017-10-31 | Qualcomm Incorporated | Picture flushing and decoded picture buffer parameter inference for multi-layer bitstreams |
| US9591325B2 (en) | 2015-01-27 | 2017-03-07 | Microsoft Technology Licensing, Llc | Special case handling for merged chroma blocks in intra block copy prediction mode |
| US10057574B2 (en) | 2015-02-11 | 2018-08-21 | Qualcomm Incorporated | Coding tree unit (CTU) level adaptive loop filter (ALF) |
| US10448015B2 (en) * | 2015-06-16 | 2019-10-15 | Lg Electronics Inc. | Method and device for performing adaptive filtering according to block boundary |
| CN107750459B (zh) * | 2015-06-18 | 2020-09-15 | Lg电子株式会社 | 图像编码系统中的基于图像特性的自适应滤波方法和装置 |
| WO2017045101A1 (en) | 2015-09-14 | 2017-03-23 | Mediatek Singapore Pte. Ltd. | Advanced deblocking filter in video coding |
| WO2017075804A1 (en) | 2015-11-06 | 2017-05-11 | Microsoft Technology Licensing, Llc | Flexible reference picture management for video encoding and decoding |
| US11405611B2 (en) | 2016-02-15 | 2022-08-02 | Qualcomm Incorporated | Predicting filter coefficients from fixed filters for video coding |
| JP6983862B2 (ja) | 2016-07-08 | 2021-12-17 | ヴィド スケール インコーポレイテッド | ジオメトリ投影を使用する360度ビデオ符号化 |
| US11095922B2 (en) | 2016-08-02 | 2021-08-17 | Qualcomm Incorporated | Geometry transformation-based adaptive loop filtering |
| US20180184127A1 (en) | 2016-12-22 | 2018-06-28 | Qualcomm Incorporated | Determining neighboring samples for bilateral filtering in video coding |
| US10506230B2 (en) | 2017-01-04 | 2019-12-10 | Qualcomm Incorporated | Modified adaptive loop filter temporal prediction for temporal scalability support |
| US10440396B2 (en) * | 2017-03-28 | 2019-10-08 | Qualcomm Incorporated | Filter information sharing among color components |
| SG11201909450WA (en) | 2017-04-11 | 2019-11-28 | Vid Scale Inc | 360-degree video coding using face continuities |
| US10778974B2 (en) | 2017-07-05 | 2020-09-15 | Qualcomm Incorporated | Adaptive loop filter with enhanced classification methods |
| US10728573B2 (en) | 2017-09-08 | 2020-07-28 | Qualcomm Incorporated | Motion compensated boundary pixel padding |
| WO2019060443A1 (en) | 2017-09-20 | 2019-03-28 | Vid Scale, Inc. | HANDLING FACIAL DISCONTINUITIES IN 360-DEGREE VIDEO CODING |
| US10965941B2 (en) | 2017-10-09 | 2021-03-30 | Qualcomm Incorporated | Position-dependent prediction combinations in video coding |
| CN111316649B (zh) | 2017-11-01 | 2024-06-11 | Vid拓展公司 | 重叠块运动补偿 |
| JP7390300B2 (ja) | 2017-11-01 | 2023-12-01 | ヴィド スケール インコーポレイテッド | ビデオコーディングにおける適応ループフィルタを簡略化する方法 |
| CN107801024B (zh) | 2017-11-09 | 2019-07-12 | 北京大学深圳研究生院 | 一种用于帧内预测的边界滤波方法 |
| US10721469B2 (en) | 2017-11-28 | 2020-07-21 | Qualcomm Incorporated | Line buffer reduction for adaptive loop filtering in video coding |
| CN118509596A (zh) | 2017-12-19 | 2024-08-16 | Vid拓展公司 | 用于360度视频译码的面不连续性滤波 |
| WO2019131651A1 (en) | 2017-12-29 | 2019-07-04 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks at a boundary of a picture for video coding |
| US10972729B2 (en) | 2018-01-20 | 2021-04-06 | Qualcomm Incorporated | Deblocking filter selection and application in video coding |
| US20190238845A1 (en) * | 2018-01-26 | 2019-08-01 | Qualcomm Incorporated | Adaptive loop filtering on deblocking filter results in video coding |
| CN110337811A (zh) | 2018-02-14 | 2019-10-15 | 北京大学 | 运动补偿的方法、装置和计算机系统 |
| US11470359B2 (en) | 2018-03-30 | 2022-10-11 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks at a boundary of a picture for video coding |
| US20190306502A1 (en) | 2018-04-02 | 2019-10-03 | Qualcomm Incorporated | System and method for improved adaptive loop filtering |
| US10708592B2 (en) | 2018-04-02 | 2020-07-07 | Qualcomm Incorporated | Deblocking filter for video coding and processing |
| CN112703743B (zh) | 2018-09-14 | 2022-05-24 | 华为技术有限公司 | 视频译码中的条带和分块 |
| CN116939198A (zh) | 2018-10-23 | 2023-10-24 | 北京字节跳动网络技术有限公司 | 并置的局部照明补偿和修改的帧间预测编解码 |
| JP7556861B2 (ja) | 2019-01-09 | 2024-09-26 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ビデオエンコーダ、ビデオデコーダ、および対応する方法 |
| WO2020143824A1 (en) | 2019-01-13 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between lut and shared merge list |
| BR112021016895A2 (pt) | 2019-02-27 | 2021-11-03 | Huawei Tech Co Ltd | Codificador, decodificador e métodos correspondentes |
| KR20210130735A (ko) | 2019-03-02 | 2021-11-01 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 인-루프 필터링에 대한 제한들 |
| GB2582029A (en) * | 2019-03-08 | 2020-09-09 | Canon Kk | An adaptive loop filter |
| WO2020182620A1 (en) * | 2019-03-08 | 2020-09-17 | Canon Kabushiki Kaisha | An adaptive loop filter |
| JP7485689B2 (ja) | 2019-03-11 | 2024-05-16 | 華為技術有限公司 | エンコーダ、デコーダ及び対応する方法 |
| CN113574889B (zh) | 2019-03-14 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 环路整形信息的信令和语法 |
| WO2020192644A1 (en) | 2019-03-24 | 2020-10-01 | Beijing Bytedance Network Technology Co., Ltd. | Nonlinear adaptive loop filtering in video processing |
| WO2020211769A1 (en) | 2019-04-15 | 2020-10-22 | Beijing Bytedance Network Technology Co., Ltd. | Clipping parameter derivation in adaptive loop filter |
| CN113767632B (zh) | 2019-04-16 | 2023-08-25 | 北京字节跳动网络技术有限公司 | 用于视频编解码的自适应环路滤波 |
| US11368684B2 (en) * | 2019-04-23 | 2022-06-21 | Qualcomm Incorporated | Adaptation parameter sets (APS) for adaptive loop filter (ALF) parameters |
| CN118631990A (zh) * | 2019-06-17 | 2024-09-10 | 韩国电子通信研究院 | 自适应环内滤波方法和设备 |
| KR102889120B1 (ko) * | 2019-07-08 | 2025-11-19 | 엘지전자 주식회사 | 적응적 루프 필터를 적용하는 비디오 또는 영상 코딩 |
| US11451834B2 (en) | 2019-09-16 | 2022-09-20 | Tencent America LLC | Method and apparatus for cross-component filtering |
| WO2021052452A1 (en) | 2019-09-18 | 2021-03-25 | Beijing Bytedance Network Technology Co., Ltd. | Signaling usage of adaptive loop filter in video coding |
-
2020
- 2020-09-18 WO PCT/CN2020/116084 patent/WO2021052452A1/en not_active Ceased
- 2020-09-18 JP JP2022517344A patent/JP7323711B2/ja active Active
- 2020-09-18 BR BR112022005046A patent/BR112022005046A2/pt active IP Right Grant
- 2020-09-18 EP EP20866732.9A patent/EP4014485B1/en active Active
- 2020-09-18 KR KR1020227006935A patent/KR102707780B1/ko active Active
- 2020-09-18 CN CN202080065895.0A patent/CN114424529B/zh active Active
- 2020-09-18 ES ES20866732T patent/ES3030107T3/es active Active
- 2020-09-18 CN CN202311511214.0A patent/CN117294847A/zh active Pending
- 2020-09-18 CN CN202080065752.XA patent/CN114424540B/zh active Active
- 2020-09-18 PL PL20866732.9T patent/PL4014485T3/pl unknown
- 2020-09-18 WO PCT/CN2020/116086 patent/WO2021052453A1/en not_active Ceased
-
2022
- 2022-03-16 US US17/696,583 patent/US11601686B2/en active Active
- 2022-03-16 US US17/696,560 patent/US11683531B2/en active Active
-
2023
- 2023-06-20 US US18/337,980 patent/US20230336788A1/en active Pending
- 2023-07-27 JP JP2023122345A patent/JP7659014B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN114424540A (zh) | 2022-04-29 |
| CN114424529A (zh) | 2022-04-29 |
| WO2021052452A1 (en) | 2021-03-25 |
| US20220210478A1 (en) | 2022-06-30 |
| EP4014485B1 (en) | 2025-05-07 |
| KR20220058899A (ko) | 2022-05-10 |
| US20220217340A1 (en) | 2022-07-07 |
| JP2022548296A (ja) | 2022-11-17 |
| US20230336788A1 (en) | 2023-10-19 |
| EP4014485A1 (en) | 2022-06-22 |
| JP7323711B2 (ja) | 2023-08-08 |
| CN114424540B (zh) | 2023-12-29 |
| JP7659014B2 (ja) | 2025-04-08 |
| BR112022005046A2 (pt) | 2022-07-05 |
| JP2023153166A (ja) | 2023-10-17 |
| EP4014485C0 (en) | 2025-05-07 |
| KR102707780B1 (ko) | 2024-09-20 |
| EP4014485A4 (en) | 2022-10-26 |
| US11601686B2 (en) | 2023-03-07 |
| US11683531B2 (en) | 2023-06-20 |
| CN114424529B (zh) | 2025-09-19 |
| CN117294847A (zh) | 2023-12-26 |
| PL4014485T3 (pl) | 2025-08-25 |
| WO2021052453A1 (en) | 2021-03-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3030107T3 (en) | Two-part signaling of adaptive loop filters in video coding | |
| ES3014205T3 (en) | Signaling of syntax elements for joint coding of chrominance residuals | |
| ES2977659T3 (es) | Método y aparato de codificación | |
| US20240276020A1 (en) | Unified Neural Network In-Loop Filter Signaling | |
| WO2021083258A1 (en) | Cross-component adaptive loop filter using luma differences | |
| WO2021088835A1 (en) | Cross-component adaptive loop filter | |
| ES3007437T3 (en) | Block size dependent use of video coding mode | |
| CN114846804A (zh) | 视频信号处理方法及其设备 | |
| CN115211130B (zh) | 基于条带和片图片分割的信令通知的处理视频数据的方法 | |
| CN113853798B (zh) | 根据色度格式信令通知语法元素 | |
| CN115299063A (zh) | 变换跳过残差编解码 | |
| CN115299050B (zh) | 处理视频数据的方法、装置及计算机可读存储介质 | |
| KR102760668B1 (ko) | 인 루프 필터링과 비디오 타일들 간의 상호작용 |