ES2711180T3 - Procedimiento y aparato para un filtrado en bucle mejorado - Google Patents

Procedimiento y aparato para un filtrado en bucle mejorado Download PDF

Info

Publication number
ES2711180T3
ES2711180T3 ES15151258T ES15151258T ES2711180T3 ES 2711180 T3 ES2711180 T3 ES 2711180T3 ES 15151258 T ES15151258 T ES 15151258T ES 15151258 T ES15151258 T ES 15151258T ES 2711180 T3 ES2711180 T3 ES 2711180T3
Authority
ES
Spain
Prior art keywords
sao
parameters
alf
ods
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES15151258T
Other languages
English (en)
Inventor
Chih-Ming Fu
Ching-Yeh Chen
Chia-Yang Tsai
Yu-Wen Huang
Shaw-Min Lei
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HFI Innovation Inc
Original Assignee
HFI Innovation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HFI Innovation Inc filed Critical HFI Innovation Inc
Application granted granted Critical
Publication of ES2711180T3 publication Critical patent/ES2711180T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

Un procedimiento para decodificar video con un procesamiento de desplazamiento adaptativo de muestras, también denominado SAO en lo sucesivo, de un video reconstruido, comprendiendo el procedimiento: recuperar unos datos de video reconstruido a partir de un flujo de bits de video; recibir uno o más parámetros de SAO procedentes de unos datos de bloques de codificación individuales en el flujo de bits de video; y aplicar el procesamiento de SAO a los bloques de codificación de los datos de video reconstruido; caracterizado porque dicho uno o más parámetros de SAO son compartidos entre al menos dos componentes de color diferentes, y/o uno o más parámetros de SAO de un primer componente de color son derivados a partir de uno o más parámetros de SAO de un segundo componente de color.

Description

DESCRIPCION
Procedimiento y aparato para un filtrado en bucle mejorado
La presente invencion reivindica prioridad de la solicitud de patente provisional de EE.UU., numero de serie 61/477.689, presentada el 21 de abril de 2011, titulada "Improved Sample Adaptive Offset", la solicitud de patente provisional de EE.UU., numero de serie 61/547.281, presentada el 14 de octubre de 2011, titulada "Low Latency Loop Filtering", la solicitud de patente provisional de EE.UU., numero de serie 61/595.900, presentada el 17 de febrero de 2012, titulada "Improved Sample Adaptive Offset", la solicitud de patente provisional de EE.UU., numero de serie 61/595.914, presentada el 7 de febrero de 2012, titulada "Improved LCU-based Encoding Algorithm of ALF", la solicitud de patente provisional de EE.UU., numero de serie 61/597.995, presentada el 13 de febrero de 2012, titulada "Improved ALF and SAO ", y la solicitud de patente provisional de EE.UU., numero de serie 61/600.028, presentada el 17 de febrero de 2012, titulada "LCU-based Syntax for SAO and ALF".
CAMPO TECNICO
La presente invencion se refiere a un sistema de codificacion de video. En particular, la presente invencion se refiere a un procedimiento y a un aparato para un procesamiento en bucle, tal como SAO y ALF, mejorado. Mas particularmente, la presente invencion se refiere a procedimientos para decodificacion y codificacion de video. Dichos procedimientos son conocidos de C-M FU ET AL: "Sample Adaptive Offset with LCU-Independent Decoding", 20110310, no. JCTVC-E049, 10 de marzo de 2011.
ANTECEDENTES
La estimacion de movimiento es una tecnica efectiva de codificacion entre fotogramas para explotar la redundancia temporal en secuencias de video. La codificacion entre fotogramas compensada por movimiento se ha utilizado ampliamente en diversos estandares internacionales de codificacion de video. La estimacion de movimiento adoptada en diversos estandares de codificacion es a menudo una tecnica basada en bloques, en el que se determina informacion de movimiento, tal como un modo de codificacion y un vector de movimiento, para cada macrobloque o configuracion de bloques similar. Ademas, la intra-codificacion tambien se aplica de forma adaptativa, procesandose la imagen sin referenciar a ninguna otra imagen. Los residuos inter-pronosticados o intrapronosticados generalmente son procesados adicionalmente por transformacion, cuantificacion y codificacion de entropfa para generar un flujo de bits de video comprimido. Durante el proceso de codificacion, se introducen artefactos de codificacion, en particular.
En la figura 1B se muestra un decodificador correspondiente para el codificador de la figura 1A. El flujo de bits de video es decodificado por el decodificador de video 142 para recuperar residuos transformados y cuantificados, informacion de SAO/ALF y otra informacion del sistema. En el lado del decodificador, solo se realiza compensacion de movimiento (MC, motion compensation) 113 en lugar de ME/MC. El proceso de decodificacion es similar al bucle de reconstruccion en el lado del codificador. Los residuos transformados y cuantificados recuperados, la informacion de SAO/ALF y otra informacion del sistema se utilizan para reconstruir los datos de video. El video reconstruido es procesado ademas por Filtro de Desbloqueo (DF) 130, Desplazamiento Adaptativo de muestras (SAO) 131 y Filtro en bucle Adaptativo (ALF) 132 para producir el video decodificado mejorado final.
HEVC ha adoptado ALF como un filtro en bucle sin desbloqueo para mejorar el rendimiento de la codificacion. En el modelo de prueba de HEVC version 5.0, se describe un algoritmo de codificacion ALF basado en imagenes. Sin embargo, el proceso de cuantificacion incluye un esquema de codificacion basado en LCU o un proceso de canalizacion (pipeline process) basado en LCU. Para aliviar los artefactos de codificacion, se ha aplicado un procesamiento adicional al video reconstruido para mejorar la calidad de imagen en los sistemas de codificacion mas nuevos. El procesamiento adicional es configurado a menudo en una operacion en bucle para que el codificador y el decodificador puedan derivar las mismas imagenes de referencia para conseguir un mejor rendimiento del sistema.
La figura 1A ilustra un sistema de inter/intra codificacion de video adaptativa de ejemplo que incorpora un procesamiento en bucle. Para la inter-prediccion, la estimacion de movimiento (ME)/compensacion de movimiento (MC) 112 se utiliza para proporcionar unos datos de prediccion basados en datos de video de otra imagen o imagenes. El conmutador 114 selecciona datos de intra-prediccion 110 o de inter-prediccion y los datos de prediccion seleccionados son suministrados al agregador 116 para producir errores de prediccion, tambien denominados residuos. Luego, el error de prediccion es procesado por transformacion (T) 118 seguido de cuantificacion (Q) 120. Los residuos transformados y cuantificados son codificados por un codificador de entropfa 122 para formar un flujo de bits de video correspondiente a los datos de video comprimidos. El flujo de bits asociado con los coeficientes de transformacion es empaquetado entonces con informacion complementaria tal como de movimiento, modo y otra informacion asociada con el area de imagen. La informacion complementaria tambien puede ser sometida a codificacion de entropfa para reducir el ancho de banda requerido. En consecuencia, los datos asociados con la informacion complementaria son proporcionados al codificador de entropfa 122 segun se muestra en la figura 1A. Cuando se utiliza un modo de prediccion, tambien se debe reconstruir una imagen o imagenes de referencia en el extremo del codificador. En consecuencia, los residuos transformados y cuantificados son procesados por cuantificacion inversa (IQ) 124 y transformacion inversa (IT) 126 para recuperar los residuos. Luego, se vuelven a agregar los residuos a los datos de prediccion 136 en reconstruccion (REC) 128 para reconstruir los datos de video. Los datos de video reconstruido pueden ser almacenados en el bufer de imagenes de referencia 134 y usados para la prediccion de otros fotogramas.
Segun se muestra en la figura 1A, los datos de video entrantes se someten a una serie de procesamientos en el sistema de codificacion. Los datos de video reconstruidos por la REC 128 pueden sufrir diversas deficiencias debido a una serie de procesamientos. Por consiguiente, se aplica un procesamiento en bucle a los datos de video reconstruido antes de que los datos de video reconstruido se almacenen en el bufer de imagenes de referencia 134 con el fin de mejorar la calidad del video. En el estandar de Codificacion de Video de Alta Eficiencia (HEVC) que esta en evolucion, se han desarrollado el Filtro de Desbloqueo (DF) 130, el Desplazamiento Adaptativo de muestras (SAO) 131 y el Filtro en bucle Adaptativo (ALF) 132 para mejorar la calidad de imagen. La informacion del filtro en bucle puede tener que incorporarse en el flujo de bits para que un decodificador pueda recuperar de forma adecuada la informacion requerida. Por lo tanto, la informacion de filtro en bucle de SAO y ALF es proporcionada al codificador de entropfa 122 para su incorporacion al flujo de bits. En la figura 1A, se aplica primero el DF 130 al video reconstruido; luego se aplica el SAO 131 al video procesado por DF; y se aplica el ALF 132 al video procesado por el SAO. Sin embargo, el orden de procesamiento entre DF, SAO y ALF puede ser reorganizado, utilizado normalmente para implementaciones de codificador y decodificador de video debido a un uso mas eficiente de la memoria, menos ancho de banda de memoria o costes de hardware menores. Por lo tanto, el ALF basado en LCU es un enfoque preferido. Sin embargo, es deseable mejorar aun mas el rendimiento del procesamiento del ALF. El SAO es otro procesamiento en bucle adoptado por el HEVC para mejorar la calidad de imagen. El SAO consta de dos procedimientos. Uno de ellos es el desplazamiento de banda (BO, Band Offset), y el otro es el desplazamiento de borde (EO, Edge Offset). El BO se utiliza para clasificar los pfxeles en multiples bandas segun las intensidades de los pfxeles y se aplica a los pfxeles un desplazamiento en cada banda. El EO se utiliza para clasificar los pfxeles en categonas segun relaciones con los vecinos y se aplica un desplazamiento a los pfxeles en cada categona. En el HM-5.0, una region puede seleccionar 7 tipos diferentes de SAO: 2 grupos BO (grupo externo y grupo interno), 4 patrones direccionales de EO (0°, 90°, 135° y 45°) y ningun procesamiento (OFF). Ademas, una imagen puede dividirse ademas en multiples regiones usando un procedimiento de division de arbol cuaternario (quad-tree) o dividirse en regiones de unidades de codificacion mas grandes (LCU), y teniendo cada region su propio tipo de SAO y valores de desplazamiento. Es deseable mejorar aun mas el rendimiento del procesamiento de SAO mejorando la senalizacion de los parametros de SAO.
El artfculo "H.264/MPEG-4 Part 10 White Paper", XP 002281494, divulga que los 4 modos de prediccion para croma son muy similares a los modos de prediccion 16x16 de luma, excepto que el orden de los numeros de modo es diferente: Modo DC, modo horizontal, modo vertical y modo plano.
El documento US 2005/0053294 A1 divulga que se obtiene un vector de movimiento de croma nominal combinando y escalando los vectores de movimiento de luma de manera apropiada.
RESUMEN
Se describen procedimientos para la decodificacion y codificacion de video de acuerdo con la presente invencion en las reivindicaciones independientes 1 y 5, respectivamente. Las respectivas reivindicaciones dependientes definen formas de realizacion preferidas de los mismos, respectivamente.
En la reivindicacion 9 se define un flujo de bits de video de acuerdo con la invencion.
BREVE DESCRIPCION DE LOS DIBUJOS
La figura 1A ilustra un sistema de inter/intra codificacion de video adaptativa de ejemplo con un procesamiento en bucle DF, SAO y ALF.
La figura 1B ilustra un sistema de inter/intra codificacion de video adaptativa de ejemplo con un procesamiento en bucle DF, SAO y ALF.
La figura 2 ilustra un ejemplo de comparticion de parametros de filtro en bucle entre un bloque actual y bloques vecinos.
La figura 3 ilustra un ejemplo de clasificacion mejorada de desplazamiento de bordes basada en ocho pfxeles vecinos en una ventana de 3x3 en torno al pixel actual.
La figura 4 ilustra un diseno de sintaxis de ejemplo para que un seq_parameter_set_rbsp() habilite un control adaptativo de procesamiento de SAO a traves de un Ifmite de segmento.
La figura 5 ilustra un diseno de sintaxis de ejemplo para que un aps_rbsp() habilite una senalizacion de parametros de SAO adaptativa para incorporar parametros de SAO en un APS o para intercalar con datos de bloque en un segmento.
La figura 6 ilustra un diseno de sintaxis de ejemplo para que un aps_sao_param() permita que bloques de codificacion en un segmento con aps_id que referencia al APS compartan parametros de SAO en el APS.
La figura 7 ilustra un diseno de sintaxis de ejemplo para que un sao_unit_vlc() incorpore informacion de SAO para bloques de codificacion.
La figura 8 ilustra un diseno de sintaxis de ejemplo para que un sao_offset_vlc() incorpore valores de desplazamiento de SAO para bloques de codificacion.
La figura 9 ilustra un diseno de sintaxis de ejemplo para que un slice_header() habilite un intercalado adaptativo de parametros de SAO con datos de bloque.
La figura 10 ilustra un diseno de sintaxis de ejemplo para que unos slice_data() habiliten un intercalado adaptativo de parametros de SAO con datos de bloque.
La figura 11 ilustra un diseno de sintaxis de ejemplo para que un sao_unit_cabac() habilite un intercalado adaptativo de parametros de SAO con datos de bloque.
La figura 12 ilustra un diseno de sintaxis de ejemplo para que un sao_offset_cabac() habilite un intercalado adaptativo de parametros de SAO con datos de bloque.
La figura 13 ilustra un diseno de sintaxis de ejemplo para que un seq_parameter_set_rbsp() habilite una senalizacion adaptativa de parametros de ALF.
La figura 14 ilustra un diseno de sintaxis de ejemplo para que una slice_header() habilite una senalizacion adaptativa de parametros de ALF.
La figura 15 ilustra un diseno de sintaxis de ejemplo para que un alf_param() habilite una senalizacion adaptativa de parametros de ALF.
La figura 16 ilustra un diseno de sintaxis de ejemplo para que una alf_unit() habilite una senalizacion adaptativa de parametros de ALF.
La figura 17 ilustra un diseno de sintaxis de ejemplo para que una alf_info() habilite una senalizacion adaptativa de parametros de ALF.
DESCRIPCION DETALLADA
En un filtrado en bucle basado en bloques, los parametros del filtro en bucle para cada bloque tienen que ser suministrados al lado del decodificador para una correcta operacion del filtrado en bucle en el lado del decodificador. Ejemplos de filtro en bucle pueden incluir desplazamiento adaptativo de muestras (SAO) o filtro en bucle adaptativo (Alf ). El filtro en bucle tambien se denomina, en esta divulgacion, procesamiento de filtro en bucle o procesamiento en bucle. Los parametros en bucle tambien se denominan informacion en bucle en esta divulgacion. Cuando el tamano de bloque es pequeno, tal como una unidad de codificacion (CU) o una unidad de codificacion mas grande (LCU), la tasa de bits correspondiente a los parametros del filtro en bucle pasa a ser relativamente alta. Por lo tanto, es deseable reducir la tasa de bits asociada con los parametros del filtro en bucle. Una forma de realizacion de acuerdo con la presente invencion usa un indicador de fusion para indicar el caso en el que un bloque actual comparte los parametros de filtro en bucle con un bloque vecino o con bloques vecinos. Ademas, el bloque puede incluir multiples LCU para disminuir la tasa de bits correspondiente a los parametros del filtro en bucle. El indicador de fusion tambien se puede determinar implfcitamente. Por ejemplo, si los bloques izquierdo y superior tienen los mismos parametros del filtro en bucle, el bloque actual compartira los parametros del filtro en bucle con sus vecinos izquierdo y superior sin la necesidad de transmitir explfcitamente el indicador de fusion. La informacion del filtro en bucle se puede incorporar al flujo de bits de video comprimido.
El parametro de filtro en bucle que se comparte para un bloque actual puede seleccionar uno de los bloques vecinos, tal como el bloque izquierdo, superior, derecho, superior izquierdo, inferior, inferior izquierdo, etc. La sintaxis de fusion se utiliza para indicar que dos bloques se fusionan y comparten los mismos parametros del filtro en bucle.
La figura 2 ilustra un ejemplo de comparticion de parametros de filtro en bucle con un bloque vecino. A continuacion se describe un proceso de ejemplo para determinar si un bloque C actual debena compartir parametros del filtro en bucle con un bloque vecino. Si la informacion de SAO del bloque A no es igual a la del bloque B, X1 se establece igual a uno. De lo contrario, X1 se establece igual a cero. Si la informacion de SAO del bloque D no es igual a la del bloque B, X2 se establece igual a uno. De lo contrario, X2 se establece igual a cero. Si la informacion de SAO del bloque D no es igual a la del bloque A, X3 se establece igual a uno. De lo contrario, X3 se establece igual a cero. La variable X se puede calcular de acuerdo con X = X3*4 X2*2 X1*1. La variable X se puede usar para seleccionar un bloque vecino para fusionarlo con el bloque actual.
En un proceso de fusion de ejemplo, cuando X es igual a 7, se incorpora un indicador de fusion para indicar si el bloque C usa o no usa nuevos parametros del filtro en bucle. Cuando el indicador de fusion tiene un valor igual a uno, el bloque C utiliza nuevos parametros del filtro en bucle y, de lo contrario, el bloque C comparte los parametros del filtro en bucle con el bloque A o B. Cuando X es igual a 5, se incorpora un indicador de fusion para indicar si el bloque C usa o no usa nuevos parametros del filtro en bucle. Cuando el indicador de fusion tiene un valor igual a uno, el bloque C utiliza nuevos parametros del filtro en bucle y, de lo contrario, el bloque C comparte los parametros del filtro en bucle con el bloque A. Cuando X es igual a 3, se incorpora un indicador de fusion para indicar si el bloque C usa o no usa nuevos parametros del filtro en bucle. Cuando el indicador de fusion tiene un valor igual a uno, el bloque C utiliza nuevos parametros del filtro en bucle y, de lo contrario, el bloque C comparte los parametros del filtro en bucle con el bloque B. Cada bloque puede ser una unidad de codificacion, varias unidades de codificacion, una unidad de codificacion mas grande, varias unidades de codificacion mas grandes, u otra estructura de bloques. El bloque tambien puede corresponder a diferentes tamanos. El bloque tambien se denomina bloque de codificacion en esta divulgacion.
En un enfoque convencional, el procesamiento de SAO solo se aplica al componente de luma. Una forma de realizacion de acuerdo con la presente invencion tambien aplica selectivamente el procesamiento de SAO a los componentes de croma si el procesamiento de SAO se aplica al componente de luma. Cuando el procesamiento de SAO se aplica al componente de luma, se puede usar un indicador de croma de SAO para indicar si el procesamiento de SAO se aplica a los componentes de croma. La informacion de SAO para un componente de croma puede ser derivada a partir de la informacion de SAO para el componente de luma u otro(s) componente(s) de croma. Cuando un componente de croma comparte la informacion de SAO con el componente de luma u otro(s) componente(s) de croma, se puede usar un indicador de comparticion de informacion de SAO para indicar el caso. La informacion de SAO puede incluir valores de desplazamiento, tipo de SAO (tambien denominado categona o clase en esta divulgacion) y decision activar/desactivar (ON/OFF). En una forma de realizacion, los valores de desplazamiento son predefinidos de manera que se puede usar un mdice para seleccionar uno de los valores de desplazamiento. La informacion de SAO puede ser incorporada en una carga util de datos en el flujo de bits tal como un PPS, un APS o una cabecera de segmento a compartir por multiples bloques.
La informacion asociada con los parametros de SAO puede codificarse en base a parametros de SAO de un bloque procesado anteriormente utilizando un procedimiento predictivo. La codificacion del valor de desplazamiento puede depender del aumento interno de la profundidad de bits, informacion de modo inter/intra, informacion de movimiento, tamano de transformacion, tamano de etapa de cuantificacion, informacion de desbloqueo, residual, tamano de imagen y tamano de region. Por ejemplo, si el aumento interno de la profundidad de bits es mayor que uno, se puede aumentar en un bit la codificacion del valor de desplazamiento. En otro ejemplo de codificacion de informacion de SAO, los parametros de SAO pueden cambiar su precision de codificacion de acuerdo con los parametros de cuantificacion. Con el fin de reducir la tasa de bits asociada con los parametros de SAO, se puede codificar la informacion para los valores de desplazamiento de un modo de tiempo retardado. Ademas, la informacion de SAO de un segmento actual puede compartirse con otros segmentos o regiones. En consecuencia, se puede incorporar la informacion de desplazamiento al conjunto de parametros de imagen (PPS). Los bloques de codificacion de un segmento o region actual pueden compartir la misma informacion de SAO.
En un enfoque convencional, el procesamiento de SAO se aplica a menudo despues del procesamiento de DF. Una forma de realizacion de acuerdo con la presente invencion puede aplicarse selectivamente entre el procesamiento de DF y el procesamiento de SAO a un bloque. Alternativamente, tanto el procesamiento de DF como el procesamiento de SAO pueden aplicarse a los mismos datos de video reconstruido y las salidas de ambos procesamientos son combinadas linealmente.
Segun una forma de realizacion de la presente invencion, el procedimiento de clasificacion de pfxeles para el SAO se puede combinar con otros procedimientos de clasificacion de pfxeles tales como direccion de borde, intensidad de pfxeles, variacion de pfxeles, varianza de pfxeles, suma de pfxeles de Laplace, resultado de un filtrado de paso alto, resultado de un filtrado de paso bajo, valor absoluto del resultado del filtrado de paso alto, y valor medio de pfxeles vecinos. Por ejemplo, una categona de desplazamiento de banda (BO) o desplazamiento de borde (EO) puede ser dividida aun mas por el EO. En otro ejemplo, una categona de EO puede ser dividida aun mas por el BO o suma de Laplace.
En la clasificacion de EO convencional, se utilizan dos pfxeles vecinos en una ventana de 3x3 para clasificar un pixel actual en diferentes categonas o clases. Una forma de realizacion de acuerdo con la presente invencion puede usar un procedimiento de clasificacion mejorado basado en todos los p^xeles vecinos en la ventana de 3x3. Los pfxeles vecinos (P1 - P8) en torno al p^xel actual C se muestran en lafigura 3. Como un ejemplo, el mdice de clase, ClassIdx se puede definir como:
Figure imgf000006_0003
en la que f(C,Pn) es una funcion de comparacion e Index2ClassTable una funcion de mapeo para mapear los resultados de la comparacion con el mdice de clase. La funcion de comparacion f(x,y) se define de la siguiente manera:
Figure imgf000006_0001
en la que th es un umbral.
Una funcion de comparacion alternativa f(x, y) puede definirse de la siguiente manera:
Figure imgf000006_0002
en la que th es un umbral y s es un factor de escala.
El procedimiento de clasificacion de EO mejorado puede ser aplicado al procedimiento de clasificacion de pfxeles combinado de SAO y otros procedimientos de clasificacion de pfxeles. Por ejemplo, una categona de desplazamiento de borde (EO) segun la clasificacion de EO mejorada mencionada anteriormente puede ser dividida aun mas por el EO o el BO.
En un enfoque convencional, la unidad utilizada para la codificacion ALF basada en LCU es siempre una LCU. La mejora en la distorsion debida a ALF esta relacionada con el tamano de la LCU. Una LCU mas pequena generalmente permite que el diseno ALF se adapte mas a las caractensticas locales. Sin embargo, la cantidad de informacion asociada con los parametros de ALF es relativamente constante e independiente del tamano de la LCU. Por lo tanto, un tamano de LCU mas pequeno resultara en una mayor tasa de bits asociada con la informacion correspondiente a los parametros de ALF. Por consiguiente, puede reducirse sustancialmente la tasa de bits neta disponible para codificar datos de video y puede degradarse el rendimiento del sistema. Con el fin de superar este problema, una forma de realizacion de acuerdo con la presente invencion agrupa varias LCU en una unidad, denominada unidad de filtro o bloque de codificacion en esta divulgacion. En consecuencia, se aplica el mismo ALF a todas las LCU en una unidad de filtro y los parametros de ALF son compartidos entre todas las LCU en una unidad de filtro para reducir la tasa de bits necesaria para incorporar los parametros de ALF. El conjunto de parametros de ALF puede incluir uno o mas elementos seleccionados de un conjunto que consiste en coeficientes de filtro, forma del filtro, tamano del filtro, control de ON/OFF e informacion de region. Se puede usar un bufer para almacenar el conjunto de parametros de ALF/SAO para que la informacion pueda ser compartida por otra unidad de filtro, segmento o imagen. La unidad de filtro puede ser tan grande como una imagen o varias LCU. Por ejemplo, una unidad de filtro puede consistir en MxN LCU, en el que M y N son numeros enteros mayores que cero. Los lfmites de una unidad de filtro pueden estar alineados o no con los lfmites de la LCU. Cuando se utiliza una unidad de filtro, los parametros de ALF pueden ser disenados en funcion de las estadfsticas asociadas con la unidad de filtro. Los parametros de ALF disenados pueden aplicarse a todos los pfxeles en la unidad de filtro. El codificador puede determinar el valor de M y N e incorporar la informacion del tamano del filtro en una RBSP (Carga util de secuencias de bytes sin procesar) de capas de secuencias o RBSP de capas de imagenes. Por lo tanto, se puede reducir la informacion complementaria correspondiente a ALF compartiendo los parametros en bucle entre multiples LCU. Los candidatos a filtro para una unidad de filtro se pueden derivar en base a las unidades de filtro subyacentes, o los candidatos a filtro pueden compartir al menos una parte de los candidatos a filtro utilizados por las unidades de filtro procesadas anteriormente en el segmento actual. Sin embargo, para la primera unidad de filtro en un segmento, no hay una unidad de filtro procesada anteriormente en el segmento para que la unidad de filtro actual la comparta. Por lo tanto, deben usarse candidatos a filtro predeterminados u otros medios para procesar la primera unidad de filtro y puede degradarse el rendimiento. En un enfoque convencional, los parametros de ALF son derivados a partir de una unidad de filtro (una LCU o una imagen) sin ninguna informacion de otras unidades de filtro. Una forma de realizacion de acuerdo con la presente invencion permite usar la informacion de un fotograma anterior o unidades de filtro procesadas anteriormente para derivar algunos candidatos a filtro para una unidad de filtro actual. Por ejemplo, se pueden usar las estadfsticas de unidades de filtro con el modo ALF-OFF en el fotograma anterior para derivar parametros para un filtro y se puede usar el filtro como un candidato a filtro para la unidad de filtro actual. El filtro derivado a partir de las unidades de filtro ALF-ON en el fotograma anterior puede ser utilizado como otro candidato a filtro. Ademas, una imagen se puede dividir en varias particiones y se pueden derivar los respectivos filtros para las unidades de filtro ALF-ON y a LF-OFF en cada particion. Uno de estos filtros se puede utilizar como un candidato a filtro para las unidades de filtro actuales. Las estadfsticas de las unidades procesadas anteriormente en un segmento actual se pueden acumular para derivar candidatos a filtro en funcion de las estadfsticas acumuladas.
De acuerdo con el procesamiento de ALF convencional, el procesamiento de componentes de croma puede ser independiente del procesamiento del componente de luma o siempre se realiza despues del procesamiento del componente de luma. Una forma de realizacion de acuerdo con la presente invencion combina ambos procedimientos de forma adaptativa. Se usa una sintaxis para indicar si el componente de croma es filtrado o no, y se usa otra sintaxis para indicar si los componentes de croma comparten el filtro con el componente de luma o utilizan su propia version incorporada en el flujo de bits. Por lo tanto, los coeficientes de filtro para los componentes de croma se pueden derivar a partir del filtro luma o decodificar a partir del flujo de bits. Ademas, con el fin de reducir la informacion complementaria asociada con los parametros de ALF, la huella de filtro para los componentes de croma puede ser un subconjunto de los filtros para el componente de luma.
Cuando se comparten parametros de ALF anteriores, los parametros en unidades de filtro anteriores del segmento actual pueden ser reutilizados por las unidades de filtro posteriores. Para el procesamiento de SAO, los parametros en regiones o LCU anteriores del segmento actual pueden ser reutilizados por las siguientes regiones o LCU. Por conveniencia, la unidad de filtro tambien se puede referir a una region o una LCU. Lo mas atras que puede estar la posibilidad de reutilizacion de los parametros de ALF anteriores, puede ser definido por un usuario o puede depender del tamano de imagen. Cuando la informacion de ALF/SAO es compartida, la informacion de ALF/SAO se puede derivar o copiar de una region codificada anteriormente, una imagen codificada anteriormente, o informacion de ALF/SAO predefinida. La informacion de ALF puede incluir uno o mas elementos del conjunto que consiste en coeficientes de filtro, forma de filtro, tamano de filtro, control ON/OFF e informacion de region.
Cada unidad de filtro puede utilizar un mdice para seleccionar parametros de ALF/SAO anteriores almacenados en un bufer. El mdice se puede codificar por entropfa de forma adaptativa para reducir la tasa de bits. Por ejemplo, se puede asignar una palabra de codigo mas corta a un conjunto de parametros de ALF/SAO seleccionados con mayor frecuencia. En otro ejemplo, se puede usar una tecnica de codificacion predictiva en la que se determinan uno o mas modos mas probables. Si el mdice actual es igual a uno de los modos mas probables, se puede usar una palabra de codigo muy corta para codificar el mdice. De lo contrario, se requeriran mas bits para identificar cual de los indices restantes es el mismo que el mdice actual. La tecnica es similar a la tecnica de codificacion de modo mas probable utilizada en la codificacion modo intra. La sintaxis correspondiente para el mdice puede ser incorporada a un conjunto de parametros de adaptacion (APS), conjunto de parametros de imagen (PPS), cabecera de segmento, o datos de segmento. La informacion asociada con ALF se puede incorporar al conjunto de parametros de adaptacion (APS), cabecera de segmento, datos de segmento, o se puede cambiar de forma adaptativa en funcion de un indicador incorporado en el conjunto de parametros de secuencia (SPS), conjunto de parametros de imagen (PPS), conjunto de parametros de adaptacion (APS), o una cabecera de segmento de acuerdo con una forma de realizacion de la presente invencion.
En otro ejemplo para habilitar la senalizacion adaptativa de parametros de ALF, se puede usar un indicador de intercalacion de parametros de ALF o un indicador de intercalacion de parametros de SAO para indicar si los parametros de ALF para cada unidad de filtro (segun se ha mencionado anteriormente, la unidad de filtro puede referirse a una region de una LCU) son intercalados con datos de unidad de filtro en el segmento. El indicador de intercalacion de parametros ALF o el indicador de intercalacion de parametros de SAO pueden ser incorporados en el conjunto de parametros de imagen (PPS), conjunto de parametros de adaptacion (APS) o una cabecera de segmento. Ademas, el indicador para indicar el intercalado puede ser incorporado en multiples RBSP simultaneamente, tal como un APS y una cabecera de segmento. Cuando el indicador para indicar el intercalado existe en multiples RBSP, el indicador debe tener el mismo valor en los multiples RBSP. Por consiguiente, la forma de realizacion de la presente invencion tambien proporciona la capacidad de redundancia para proteger el indicador de intercalacion.
Para el SAO, se puede usar un indicador, sao_max_region_size_minus_one, para indicar el numero maximo de LCU en una region de procesamiento de SAO. El numero maximo de LCU para una region de procesamiento de SAO es sao_max_region_size_minus_one 1. El indicador, sao_max_region_size_minus_one puede ser incorporado al conjunto de parametros de imagen (PPS), conjunto de parametros de secuencia (SPS), conjunto de parametros de adaptacion (APS), cabecera de segmento o mas de uno de los anteriores. Las LCU en la misma region de procesamiento de SAO pueden compartir los mismos parametros de SAO. Por ejemplo, si el sao_max_region_size_minus_one es cero, el numero maximo de LCU en una region de procesamiento de SAO es igual a uno. Si se utiliza un diseno de sintaxis basado en LCU y una codificacion "run", el valor "run" indica el numero de LCU que comparten los mismos parametros de SAO. Para algunas aplicaciones, se puede usar un tamano de LCU pequeno, tal como 16x16. En este caso, la tasa de bits asociada con la codificacion run-length de LCU consecutivas en una region que comparte los parametros de SAO puede ser relativamente alta. Por lo tanto, el valor "run" se usa para indicar el numero de regiones que comparten los mismos parametros de SAO.
La codificacion run-length tambien se puede aplicar a los parametros de ALF. Una unidad de filtro puede consistir en una LCU y el procesamiento de filtro basado en unidades pasa a ser un procesamiento basado en LCU en este caso. Unidades de filtro consecutivas pueden compartir los mismos parametros de ALF. Para reducir la tasa de bits para indicar el uso compartido de parametros de ALF, se utiliza la codificacion run-length para indicar el numero de unidades de filtro consecutivas que comparten los parametros de ALF con la unidad de filtro actual.
Para el caso de segmento de granularidad fina, el bloque de granularidad puede ser menor que una LCU. En este caso, una LCU puede incluir mas de un segmento de datos, es decir, una LCU puede contener mas de un conjunto de parametros de ALF/SAO. Una forma de realizacion de acuerdo con la presente invencion obligara a que todos los parametros del filtro en bucle en una LCU sean los mismos.
Un diseno en bucle basado en imagen debe esperar hasta que este disponible la imagen completa. Esto puede provocar un retraso en el procesamiento. Sin embargo, puede que no sea un problema para las imagenes que no son de referencia. Una forma de realizacion de acuerdo con la presente invencion puede simplemente omitir la etapa de filtrado real despues de que se hayan derivado los parametros del filtro. En cambio, en un enfoque basado en imagen, el procesamiento en bucle se puede aplicar a imagenes que no son de referencia sin provocar una latencia de codificacion extra o un acceso adicional a la memoria de imagenes.
El procesamiento de filtro en bucle en el lado del codificador implica dos etapas separadas. En la primera etapa, se recopilan las estadfsticas de la LCU o imagen subyacente. Entonces, se derivan parametros de filtro en bucle segun las estadfsticas recopiladas. En la segunda etapa, se aplica el procesamiento de filtro en bucle a los pfxeles en la LCU o la imagen en base a los parametros de filtro en bucle derivados. Dado que cada procesamiento en bucle, tal como el procesamiento de ALF, se realiza en etapas separadas, puede provocar un acceso a datos considerable. Una forma de realizacion de acuerdo con la presente invencion combina una de las etapas de procesamiento de filtro en bucle con otro procesamiento de filtro en bucle para reducir el acceso a datos asociados. Por ejemplo, la primera etapa del procesamiento de ALF/SAO es recopilar estadfsticas, que se puede realizar junto con otra herramienta de codificacion basada en LCU, tal como un proceso de desbloqueo. En consecuencia, las estadfsticas para el procesamiento de ALF/SAO se pueden recopilar durante el proceso de desbloqueo. En consecuencia, los parametros de ALF/SAO se pueden derivar sin ningun acceso adicional a la memoria de imagenes. La segunda etapa del procesamiento de ALF/SAO incluye aplicar el filtrado a los datos de pfxeles, que se puede realizar durante el proceso posterior de estimacion de movimiento. Por lo tanto, se puede realizar el proceso ALF/SAO en el lado del codificador sin ningun acceso a memoria por separado, lo que se denomina codificacion de cero etapas en esta divulgacion. En el lado del decodificador, no es necesario recopilar estadfsticas para el diseno del filtro ALF/SAO. Sin embargo, el decodificador aun puede aprovechar la decodificacion de cero etapas realizando el procesamiento de filtro ALF/SAO durante la compensacion de movimiento.
Para algunas aplicaciones de latencia baja, se prefiere el procesamiento de filtro basado en unidades. Para la codificacion de filtro basada en unidades, se espera que la decision de control ON/OFF de una unidad de filtro finalice una vez que los resultados de la codificacion de la unidad de filtro esten disponibles. Ademas, se prefiere que los datos comprimidos asociados con la unidad de filtro sean intercalados con parametros del filtro en bucle en un segmento. Para aplicaciones de latencia baja, el control ON/OFF a nivel de segmento puede provocar una latencia de codificacion alta. Por consiguiente, una forma de realizacion de la presente invencion siempre establece explfcitamente el indicador de control ON/OFF a nivel de segmento para indicar ON (activacion) cuando los parametros del filtro en bucle son codificados e intercalados con datos de la unidad de filtro (tambien denominados datos de bloque en esta divulgacion) en un segmento. Alternativamente, una forma de realizacion de la presente invencion puede deshabilitar condicionalmente el indicador de control ON/OFF a nivel de segmento. Si los parametros del filtro en bucle son codificados e intercalados en un segmento, no se envfa el indicador de control ON/OFF a nivel de segmento. De lo contrario, se envfa el indicador de control ON/OFF a nivel de segmento.
En un enfoque convencional, el numero de desplazamientos en cada region para el BO y el EO es diferente. Una forma de realizacion de acuerdo con la presente invencion unifica el numero de desplazamientos en cada region para el BO y el EO. En consecuencia, se cambia el numero de grupos de BO a ocho, y cada grupo de BO tiene cuatro desplazamientos para cada region. Reducir el numero de desplazamientos para cada grupo puede reducir la tasa de bits asociada. La tasa de bits asociada con los desplazamientos tambien se puede reducir de acuerdo con una forma de realizacion de la presente invencion. Por ejemplo, se puede restringir el rango de desplazamientos a un rango mas pequeno. Esto sera util para regiones pequenas en las que se espera que los desplazamientos sean mas pequenos. El bufer necesario para la prediccion de desplazamientos basada en bloques vecinos puede ser reducido de acuerdo con una forma de realizacion de la presente invencion. Por ejemplo, la prediccion de desplazamientos puede evitar el uso del desplazamiento para la LCU por encima de la LCU actual. Las operaciones de filtrado en bucle incluyen filtro de desbloqueo, SAO, y ALF. El procesamiento de SAO de croma puede mejorarse de acuerdo con una forma de realizacion de la presente invencion habilitando condicionalmente el procesamiento de SAO de croma dependiendo de si el procesamiento de SAO de luma esta habilitado. En otra forma de realizacion de acuerdo con la presente invencion, pueden compartirse los desplazamientos para los componentes de croma y de luma cuando se selecciona el EO.
En el presente documento se ilustran diversos disenos de sintaxis como ejemplos de formas de realizacion segun la presente invencion. La figura 4 ilustra una estructura de sintaxis de conjunto de parametros de secuencia de acuerdo con la presente invencion, en la que se incorpora un loop_filter_across_slice_flag. Si el loop_filter_across_slice_flag es igual a uno, las operaciones de filtrado en bucle se pueden realizar a traves del lfmite del segmento. Si el loop_filter_across_slice_flag es igual a cero, las operaciones de filtrado en bucle son independientes del segmento y las operaciones no cruzaran los lfmites del segmento. Por consiguiente, puede reducirse el bufer necesario para la prediccion de parametros de filtro en bucle en base a bloques vecinos de acuerdo con una forma de realizacion de la presente invencion.
La figura 5 ilustra un ejemplo de incorporacion de un indicador de intercalacion de parametros de SAO en un APS. En la figura 5, aps_id identifica el conjunto de parametros de adaptacion (APS) que es referenciado por bloques de codificacion en un segmento con el correspondiente aps_id en la cabecera del segmento. Cuando el indicador de intercalacion de parametros de SAO, es decir, aps_sao_interleaving_flag es igual a uno, los parametros de SAO son intercalados con datos de la unidad de filtro para los segmentos que referencian al APS segun indica el aps_id. Cuando el aps_sao_interleaving_flag es igual a cero, los parametros de SAO son incorporados en el APS para los segmentos que referencian al APS. Otros indicadores, es decir, aps_sample_adaptive_offset_flag son incorporados en el APS para controlar el filtro ON/OFF. Si el aps_sample_adaptive_offset_flag es igual a uno, el SAO esta ON (activado) para los segmentos que referencian al APS segun lo indicado por el aps_id. Por otro lado, si el aps_sample_adaptive_offset_flag es igual a cero, el SAO esta OFF (desactivado) para los segmentos que referencian al APS segun lo indicado por el aps_id.
La figura 6 ilustra un diseno de sintaxis de ejemplo, aps_sao_paramo(), para parametros de SAO en el APS de acuerdo con una forma de realizacion de la presente invencion. La estructura de sintaxis incluye la informacion de SAO necesaria para el procesamiento de sAo . Por ejemplo, la estructura de sintaxis puede incluir un indicador o indicadores, tales como sao_cb_enable_flag y sao_cr_enable_flag en la figura 6 para determinar si el procesamiento de SAO se aplica a los respectivos componentes de croma de la imagen actual. La estructura de sintaxis tambien puede incluir informacion sobre el tamano de imagen en terminos de tamano de unidad de codificacion mas grande, tal como sao_num_lcu_in_width_minus1 y sao_num_lcu_in_height_minus1 en la figura 6. La estructura de sintaxis tambien puede incluir informacion sobre si todas las unidades de codificacion en un segmento son procesadas utilizando los mismos parametros de SAO o parametros de SAO individuales para cada unidad de codificacion mas grande o unidad de filtro, segun lo indicado por sao_one_luma_unit_flag, sao_one_cb_unit_flag y sao_one_cr_unit_flag respectivamente en la figura 6. Si alguno de los indicadores anteriores tiene un valor igual a uno, los valores de desplazamiento de SAO seran incorporados en los respectivos sao_offset_vlc() para comparticion por parte de los bloques de codificacion del segmento. La estructura de sintaxis tambien puede incluir una indicacion, tal como sao_repeat_row_flag[ cldx ], con respecto a si los parametros de SAO de los bloques de codificacion en la fila de bloque de codificacion actual, tal como una fila de LCU, son los mismos que los del bloque de codificacion superior para el respectivo mdice de componente de color, cldx.
En la estructura de sintaxis de ejemplo anterior, aps_sao_param(), tambien se incorpora la estructura de bloque SAO, sao_unit_vlc(), junto con el respectivo indicador de repeticion-fila. La figura 7 ilustra una estructura de sintaxis de ejemplo, sao_unit_vlc(), que incluye informacion asociada con la informacion de comparticion de parametros de SAO entre bloques de codificacion, tal como sao_run_diff y sao_merge_up_flag. El numero de veces que se repiten los parametros de SAO correspondientes a un bloque de codificacion para bloques de codificacion subsiguientes en la misma fila es representado por saoRun[ cldx ][ rx ][ ry ]. El mdice de matriz cldx especifica el componente de color; cldx tiene un valor igual a 0, 1 o 2 correspondiente a luma, Cb o Cr respectivamente. Los indices de matriz srx y ry especifican la ubicacion del bloque de codificacion subyacente en relacion con el bloque de codificacion superior izquierdo de la imagen. El elemento de sintaxis, sao_run_diff especifica el saoRun[ ][ ][ ] del bloque de codificacion actual si la fila actual es la primera fila; de lo contrario, especifica la diferencia entre el run del bloque de codificacion actual y el run del bloque de codificacion superior. Cuando saoRun[ ][ ][ ] es mayor que o igual a cero, los elementos de sintaxis en sao_offset_vlc() se derivan a partir de los correspondientes elementos de sintaxis del bloque de codificacion izquierdo. La longitud del elemento de sintaxis sao_run_diff es igual a Ceil(Log2(sao_num_lcu_in_width_minus 1 - rx 2)) bits. Cuando el indicador sao_merge_up_flag es igual a uno, los elementos de sintaxis en sao_offset_vlc() se derivan a partir de los correspondientes elementos de sintaxis del bloque de codificacion superior. Cuando el indicador sao_merge_up_flag es igual a cero, los elementos de sintaxis en sao_offset_vlc() no se derivan a partir de los correspondientes elementos de sintaxis del bloque de codificacion superior. Cuando sao_merge_up_flag no esta presente, se infiere que es igual a cero.
La figura 8 ilustra una estructura de sintaxis de ejemplo para sao_offset_vlc() de acuerdo con una forma de realizacion de la presente invencion. El elemento de sintaxis sao_type_idx[ cldx ][ rx ][ ry ] indica el tipo de SAO que puede ser BO (Band Offset = desplazamiento de banda) o EO (Edge Offset = desplazamiento de borde). Cuando sao_type_idx[ cldx ][ rx ][ ry ] tiene un valor igual a 0, indica que el SAO esta OFF (desactivado); un valor igual a uno hasta cuatro, indica que se usa una de las cuatro categonas del EO correspondientes a 0°, 90°, 135° y 45°; y un valor igual a cinco, indica que se usa el BO. En el ejemplo anterior, los tipos BO y EO tienen cuatro valores de desplazamiento de SAO.
La figura 9 ilustra una estructura de sintaxis de ejemplo para una cabecera de segmento para permitir que los parametros de SAO sean incorporados en una cabecera de segmento de forma adaptativa de acuerdo con una forma de realizacion de la presente invencion. Cuando SAO esta habilitado, entre otras condiciones, segun lo indicado por el indicador, sample_adaptive_offset_enabled_flag, se incorporan dos indicadores adicionales, es decir, slice_sao_interleaving_flag y slice_sample_adaptive_offset_flag en la cabecera de segmento. Si slice_sao_interleaving_flag es igual a uno, los parametros de SAO son intercalados con datos de la unidad de filtro en los datos del segmento. Si slice_sao_interleaving_flag es igual a cero, los parametros de SAO usan informacion incorporada en el APS referenciado por el aps_id. El indicador para denotar el intercalado se puede incorporar en multiples RBSP simultaneamente, tales como APS y cabecera de segmento. Cuando existe el indicador para indicar el intercalado en diversos RBSP, el indicador debe tener el mismo valor en los multiples RBSP. En consecuencia, cuando hay un APS activo, el valor del slice_sao_interleaving_flag en la cabecera del segmento sera el mismo que el del aps_sao_interleaving_flag en el APS. Si slice_sample_adaptive_offset_flag es igual a uno, el SAO esta activado (ON) para el segmento actual. Si slice_sample_adaptive_offset_flag es igual a cero, el SAO esta desactivado (OFF) para el segmento actual. De manera similar, cuando hay un APS activo, el valor del slice_sample_adaptive_offset_flag sera el mismo que el del aps_sample_adaptive_offset_flag. Por consiguiente, la forma de realizacion de la presente invencion tambien proporciona la capacidad de redundancia para proteger el indicador de intercalacion.
La figura 10 ilustra una estructura de sintaxis de ejemplo, slice_data(), para que los datos del segmento admitan la senalizacion de parametros de SAO adaptativa de acuerdo con una forma de realizacion de la presente invencion. Segun se muestra en la figura 10, cuando slice_sao_interleaving_flag tiene un valor igual a uno, los datos de una unidad de SAO individual (es decir, sao_unit_cabac()) son incorporados si el respectivo indicador de habilitacion de SAO esta activado (ON).
La figura 11 ilustra una estructura de sintaxis de ejemplo, sao_unit_cabac(), para datos de unidad de SAO de acuerdo con una forma de realizacion de la presente invencion. Los indicadores de fusion, sao_merge_left_flag y sao_merge_up_flag se utilizan para indicar si el bloque de codificacion actual comparte desplazamientos SAO con la unidad de codificacion izquierda o superior respectivamente. Cuando la unidad de codificacion actual no comparte parametros de SAO con su bloque vecino izquierdo o superior, se incorporan los desplazamientos SAO, sao_offset_cabac(), para el bloque de codificacion actual.
La figura 12 ilustra una estructura de sintaxis de ejemplo para sao_offset_cabac() de acuerdo con una forma de realizacion de la presente invencion. El elemento de sintaxis sao_type_idx[ cldx ][ rx ][ ry ] indica el tipo de SAO que puede ser BO (Band Offset = desplazamiento de banda) o EO (Edge Offset = desplazamiento de borde). Cuando sao_type_idx[ cldx ][ rx ][ ry ] tiene un valor igual a 0, indica que el SAO esta OFF (desactivado); un valor igual a uno hasta cuatro, indica que se usa uno de los cuatro OE correspondientes a 0°, 90°, 135° y 45°; y un valor igual a cinco, indica que se usa BO. En el ejemplo anterior, tanto el tipo BO como el tipo Eo tienen cuatro valores de desplazamiento de SAO. Cuando el sao_type_idx[ cldx ][ rx ][ ry ] no esta presente, se puede inferir el sao_type_idx[ cldx ][ rx ][ ry ]. Por ejemplo, si sao_merge_up_flag es igual a uno, el sao_type_idx[ cldx ][ rx ][ ry ] se establece igual al sao_type_idx[ cldx ][ rx ][ry-1]. De lo contrario, se establece el sao_type_idx[ cldx ][ rx ][ ry ] para que sea igual al sao_type_idx[ cldx ][rx-1][ ry ].
La figura 13 ilustra un ejemplo de diseno de sintaxis seq_parameter_set_rbsp(), para que el SPS admita un indicador para incorporar informacion de ALF de manera adaptativa. Segun se muestra en la figura 13, el indicador, adaptive_loop_filter_enabled_flag se usa para indicar si se permite la incorporacion adaptativa de parametros de ALF. Cuando la incorporacion adaptativa de parametros de ALF es permitida segun lo indicado por el adaptive_loop_filter_enabled_flag, se usa otro indicador, alf_coef_in_slice_flag, para indicar donde son incorporados los parametros de ALF. Cuando alf_coef_in_slice_flag es igual a uno, la sintaxis alf_param() para parametros de ALF es incorporada en la cabecera del segmento. Cuando alf_coef_in_slice_flag es igual a cero, la sintaxis alf_param() para parametros de ALF sera incorporada en el APS. En la sintaxis a nivel de segmento, si alf_coef_in_slice_flag es igual a uno, los parametros de ALF pueden ser incorporados en una cabecera de segmento. Ademas, los parametros de control ON/OFF de la unidad de control de ALF no seran incorporados a nivel de segmento.
La figura 14 ilustra un diseno de cabecera de segmento de ejemplo que permite que los parametros de ALF sean incorporados en la cabecera del segmento de forma adaptativa segun los indicadores adaptive_loop_filter_enabled_flag y alf_coef_in_slice_flag mencionados en la figura 13. Cuando ALF esta habilitado segun lo indicado por adaptive_loop_filter_enabled_flag, se usa otro indicador, slice_adaptive_loop_filter_flag para indicar si se aplica el ALF a nivel de segmento. Si se aplica el ALF a nivel de segmento y alf_coef_in_slice_flag indica que los parametros de ALF son incorporados en la cabecera de segmento, la sintaxis alf_param() es incorporada en la cabecera del segmento. Por otro lado, si se aplica el ALF a nivel de segmento y alf_coef_in_slice_flag indica que los parametros de ALF no son incorporados en la cabecera del segmento, la sintaxis alf_cu_control_param() se incorporara en la cabecera del segmento.
La figura 15 ilustra un diseno de sintaxis de ejemplo para parametros de ALF de acuerdo con una forma de realizacion de la presente invencion. La estructura de sintaxis contiene la informacion de ALF necesaria para el procesamiento de ALF. Por ejemplo, la estructura de sintaxis puede incluir un indicador o indicadores, tales como alf_cb_enable_flag y alf_cr_enable_flag en la figura 15 para determinar si el procesamiento de ALF es aplicado a componentes de croma respectivos de la imagen actual. La estructura de sintaxis tambien puede incluir informacion sobre el tamano de la imagen en terminos del tamano de la unidad de codificacion mas grande, tal como alf_num_lcu_in_width_minus1 y alf_num_lcu_in_height_minus1 en la figura 15. La estructura de sintaxis tambien puede incluir informacion sobre si todas las unidades de codificacion en un segmento son procesadas utilizando los mismos parametros de ALF o parametros de ALF individuales para cada unidad de codificacion mas grande o unidad de filtro, segun lo indicado por alf_one_luma_unit_flag, alf_one_cb_unit_flag y alf_one_cr_unit_flag respectivamente en la figura 15. La estructura de sintaxis tambien puede incluir una indicacion, tal como alf_repeat_row_flag[ cldx ], con respecto a si los parametros de ALF de los bloques de codificacion en la fila del bloque de codificacion actual son los mismos que los del bloque de codificacion superior para el respectivo mdice de componente de color, cldx.
La figura 16 ilustra una estructura de sintaxis de ejemplo, alf_unit(), para bloques de codificacion ALF de acuerdo con una forma de realizacion de la presente invencion. La sintaxis alf_unit() incluye informacion asociada con informacion de comparticion de parametros de ALF entre bloques de codificacion, tal como alf_run_diff y alf_merge_up_flag. El numero de veces que los parametros de ALF correspondientes a un bloque de codificacion son repetidos para bloques de codificacion posteriores en la misma fila es representado por alfRun[ cldx ][ rx ][ ry ]. El mdice de matriz cldx especifica el componente de color; cldx tiene un valor igual a 0, 1 o 2 que corresponde a luma, Cb o Cr respectivamente. Los indices de matriz srx y ry especifican la ubicacion del bloque de codificacion subyacente en relacion con el bloque de codificacion superior izquierdo de la imagen. El elemento de sintaxis, alf_run_diff especifica el alfRun[ ][ ][ ] del bloque de codificacion actual si la fila actual es la primera fila; de lo contrario, especifica la diferencia entre el run del bloque de codificacion actual y el run del bloque de codificacion superior. Cuando alfRun[ ][ ][ ] es mayor que o igual a cero, los elementos de sintaxis en alf_info() se derivan a partir de los correspondientes elementos de sintaxis del bloque de codificacion izquierdo. La longitud del elemento de sintaxis alf_run_diff es igual a Ceil(Log2(alf_num_lcu_in_width_minus1 - rx 2)) bits. Cuando el indicador, alf_merge_up_flag es igual a uno, los elementos de sintaxis en alf_info() se derivan a partir de los correspondientes elementos de sintaxis del bloque de codificacion superior. Cuando el indicador, alf_merge_up_flag es igual a cero, los elementos de sintaxis en alf_info() no se derivan a partir de los correspondientes elementos de sintaxis del bloque de codificacion superior. Cuando alf_merge_up_flag no esta presente, se infiere que es igual a cero.
La figura 17 ilustra una estructura de sintaxis de ejemplo para informacion de ALF, alf_info() de acuerdo con una forma de realizacion de la presente invencion. La sintaxis alf_info() incluye informacion asociada con el filtro ALF. El diseno de sintaxis de ejemplo admite el uso de un bufer ALF, de modo que se puede usar un mdice para seleccionar uno de entre multiples filtros ALF almacenados en el bufer ALF. Por ejemplo, cuando alf_new_filter_set_flag es igual a uno, indica que el bloque de codificacion actual utiliza un nuevo conjunto de filtros. De lo contrario, el bloque de codificacion actual utiliza el conjunto de filtros almacenados con el mdice del bufer igual a alf_stored_filter_set_idx[ cldx ]. Cuando alf_new_filter_set_flag no esta presente, se infiere que es igual a uno. Cuando alf_new_filter_set_flag es igual a uno, se incrementa NumALFFiltersInStoredBuffer[ cldx ] en uno, en el que NumALFFiltersInStoredBuffer[ cldx ] es el numero de filtros en el conjunto de filtros. La sintaxis alf_stored_filter_set_idx[ cldx ] especifica el mdice de bufer de los filtros almacenados para el componente de color cldx. La longitud del elemento de sintaxis alf_stored_filter_set_idx[ cldx ] es igual a Floor(Log2(Min(1, NumALFFiltersInStoredBuffer[cldx] - 1))) 1 bits. El elemento de sintaxis alf_no_filters_minus1 se usa para derivar el numero de conjuntos de filtros para el bloque de codificacion actual, en el que alf_no_filters_minus1 tiene un valor igual a entre 0 y 2. El elemento de sintaxis alf_start_second_filter especifica el mdice de modo adaptativo de bloques (BA, block adaptive) de muestras de luma para las que se aplica el segundo filtro. Cuando el elemento de sintaxis alf_filter_pattern_flag[ cldx ][ ry ][ rx ][ i ] es igual a uno, se incrementa en uno el mdice de filtro para el i-esimo mdice de modo BA. Cuando el elemento de sintaxis alf_filter_pattern_flag[ cldx ][ ry ][ rx ][ i ] es igual a cero, el mdice de filtro para el i-esimo mdice de modo BA es el mismo que el (i-1)-esimo mdice de modo BA. Cuando el elemento de sintaxis alf_pred_flag[ ][ ][ ][ ] es igual a uno, los coeficientes de filtro para el bloque de codificacion actual son codificados de manera predictiva; de lo contrario los coeficientes de filtro son codificados directamente. El elemento de sintaxis alf_min_kstart_minus1 1 especifica el orden k mmimo del k-esimo orden exponencial del codigo de Golomb para los coeficientes de filtro de luma para el filtro en bucle adaptativo. El elemento de sintaxis alf_golomb_index_flag[ i ] especifica la diferencia en el orden del k-esimo orden exponencial de codigos de Golomb entre el i-esimo grupo y el (i+1)-esimo grupo de los coeficientes de filtro de luma. Existen multiples grupos de los coeficientes de filtro de luma en los que cada grupo puede tener un orden k diferente. Cuando el elemento de sintaxis alf_nb_pred_luma_flag[ cldx ][ ry ][ rx ][ i ] es igual a uno, los coeficientes de filtro del i-esimo filtro para el bloque de codificacion actual son codificados de forma predictiva en base a coeficientes de filtro espacialmente vecinos; de lo contrario, los coeficientes de filtro no son codificados utilizando coeficientes de filtro espacialmente vecinos. El elemento de sintaxis alf_filt_coeff[ cldx ][ ry ][ rx ][ i ] especifica el j-esimo coeficiente de filtro del i-esimo filtro usado en el proceso de filtrado en bucle adaptativo para el bloque de codificacion actual.
Una forma de realizacion de sistemas de codificacion de video que incorporan un procesamiento de SAO y/o ALF mejorado de acuerdo con la presente invencion segun se ha descrito anteriormente puede ser implementada en una diversidad de hardware, codigos de software o una combinacion de ambos. Por ejemplo, una forma de realizacion de la presente invencion puede ser un circuito integrado en un chip de compresion de video o codigos de programa integrados en un software de compresion de video para realizar el procesamiento descrito en el presente documento. Una forma de realizacion de la presente invencion tambien puede ser codigos de programa a ejecutar en un Procesador de Senal Digital (DSP) para realizar el procesamiento descrito en el presente documento. La invencion tambien puede implicar una serie de funciones a realizar por un procesador informatico, un procesador de senal digital, un microprocesador o una matriz de puerta programable de campo (FPGA). Estos procesadores pueden estar configurados para realizar tareas particulares de acuerdo con la invencion, ejecutando un codigo de software legible informaticamente o un codigo de firmware que define los procedimientos particulares incorporados en la invencion. El codigo de software o los codigos de firmware pueden desarrollarse en diferentes lenguajes de programacion y diferentes formatos o estilos. El codigo de software tambien se puede compilar para diferentes plataformas de destino. Sin embargo, diferentes formatos de codigo, estilos y lenguajes de codigos de software y otros medios de configuracion de codigo para realizar las tareas de acuerdo con la invencion no se apartaran del espmtu y alcance de la invencion.
La invencion puede ser realizada en otras formas espedficas. Los ejemplos descritos deben considerarse solo como ilustrativos y no restrictivos en todos los aspectos. Por lo tanto, el alcance de la invencion es indicado por las reivindicaciones adjuntas en lugar de por la descripcion anterior. Todos los cambios que se encuentren dentro del significado y rango de equivalencia de las reivindicaciones deben incluirse dentro de su alcance.
En aras de la exhaustividad, la presente invencion se describe en base a las siguientes clausulas:
1. Un procedimiento para decodificar video con un procesamiento en bucle de un video reconstruido, comprendiendo el procedimiento:
recuperar unos datos de video reconstruido a partir de un flujo de bits de video;
recibir un indicador procedente del flujo de bits de video;
de acuerdo con el indicador, recibir informacion asociada con parametros de un filtro en bucle procedente de una carga util de datos en el flujo de bits de video a compartir por dos o mas bloques de codificacion o procedente de datos de bloques de codificacion individuales en el flujo de bits de video; y
aplicar el procesamiento en bucle a los bloques de codificacion del video reconstruido.
2. El procedimiento de la clausula 1, en el que el procesamiento en bucle corresponde a un filtro en bucle adaptativo (ALF) o a un desplazamiento adaptativo de muestras (SAO).
3. El procedimiento de la clausula 1, en el que el bloque de codificacion corresponde a una unidad de codificacion (CU), multiples unidades de codificacion, una unidad de codificacion mas grande (LCU) o multiples LCU.
4. El procedimiento de la clausula 1, en el que la carga util de datos en el flujo de bits de video esta en un nivel de imagen, un conjunto de parametros de adaptacion (APS) o una cabecera de segmento.
5. El procedimiento de la clausula 1, en el que el indicador es un indicador de intercalacion, en el que el indicador de intercalacion se refiere a si la informacion asociada con los parametros del filtro en bucle es incorporada en la carga util de datos en el flujo de bits de video o intercalada con datos de bloques de codificacion individuales en el flujo de datos de video.
6. El procedimiento de la reivindicacion 5, en el que existen dos indicadores de intercalacion en al menos dos cargas utiles de datos que corresponden a al menos dos miembros diferentes seleccionados de un grupo que consiste en un nivel de imagen, un conjunto de parametros de adaptacion (APS) o una cabecera de segmento.
7. El procedimiento de la clausula 6, en el que los dos indicadores de intercalacion tienen un mismo valor.
8. El procedimiento de la clausula 6, en el que los dos indicadores de intercalacion existen en el APS y la cabecera de segmento; en el que los dos indicadores de intercalacion tienen un valor que indica que la informacion asociada con los parametros del filtro en bucle es incorporada en el APS; y cada segmento incluye un identificador de APS que referencia al APS para permitir que los bloques de codificacion en el segmento utilicen la informacion asociada con los parametros del filtro en bucle incorporada en el APS.
9. El procedimiento de la clausula 1, en el que el indicador esta en un nivel de secuencia y en el que la informacion asociada con los parametros del filtro en bucle es incorporada en el conjunto de parametros de adaptacion (APS), o una cabecera de segmento de acuerdo con el indicador.
10. El procedimiento de la clausula 9, en el que el procesamiento en bucle corresponde a un filtro en bucle adaptativo (ALF); la cabecera de segmento comprende informacion asociada con los parametros de ALF si el ALF esta habilitado y el indicador indica que la informacion asociada con los parametros de ALF esta en la cabecera del segmento; y la cabecera del segmento comprende un parametro de control de unidad de codificacion si el ALF esta habilitado y el indicador indica que la informacion asociada con los parametros de ALF esta en el APS.
11. Un procedimiento para codificar video con un procesamiento en bucle de un video reconstruido, comprendiendo el procedimiento:
recibir datos de video reconstruido;
determinar parametros de un filtro en bucle asociados con el procesamiento en bucle, en el que el procesamiento en bucle es aplicado a bloques de codificacion del video reconstruido; e
incorporar informacion asociada con los parametros del filtro en bucle, o bien en una carga util de datos en un flujo de bits de video a compartir por dos o mas bloques de codificacion, o bien intercalada con datos de bloques de codificacion individuales en el flujo de bits de video de acuerdo con un indicador.
12. El procedimiento de la clausula 11, en el que el procesamiento en bucle corresponde a un filtro en bucle adaptativo (ALF) o a un desplazamiento adaptativo de muestras (SAO).
13. El procedimiento de la clausula 11, en el que el bloque de codificacion corresponde a una unidad de codificacion (CU), multiples unidades de codificacion, una unidad de codificacion mas grande (LCU) o multiples LCU.
14. El procedimiento de la clausula 11, en el que la carga util de datos en el flujo de bits de video esta en un nivel de imagen, un conjunto de parametros de adaptacion (APS) o una cabecera de segmento.
15. El procedimiento de la clausula 11, en el que existen dos indicadores en al menos dos cargas utiles de datos que corresponden a al menos dos miembros diferentes seleccionados de un grupo que consiste en un nivel de imagen, un conjunto de parametros de adaptacion (APS) o una cabecera de segmento.
16. El procedimiento de la clausula 15, en el que los dos indicadores tienen un mismo valor.
17. El procedimiento de la clausula 15, en el que los dos indicadores existen en el APS y la cabecera de segmento; en el que los dos indicadores tienen un valor que indica que la informacion asociada con los parametros del filtro en bucle es incorporada en el APS; y cada segmento incluye un identificador de APS que referencia al APS para permitir que los bloques de codificacion en el segmento utilicen la informacion asociada con los parametros del filtro en bucle incorporados en el APS.
18. El procedimiento de la clausula 11, en el que el indicador esta en un nivel de secuencia y en el que la informacion asociada con los parametros del filtro en bucle es incorporada en el conjunto de parametros de adaptacion (APS), o una cabecera de segmento de acuerdo con el indicador.
19. El procedimiento de la clausula 18, en el que el procesamiento en bucle corresponde a un filtro en bucle adaptativo (ALF); la cabecera del segmento incluye informacion asociada con los parametros de ALF si el ALF esta habilitado y el indicador indica que la informacion asociada con los parametros de ALF esta en la cabecera del segmento; y la cabecera del segmento incluye un parametro de control de unidad de codificacion si el ALF esta habilitado y el indicador indica que la informacion asociada con los parametros de ALF esta en el APS.
20. Un aparato para decodificar video con un procesamiento en bucle de un video reconstruido, que comprende: medios para recuperar unos datos de video reconstruido a partir de un flujo de bits de video;
medios para recibir un indicador procedente del flujo de bits de video;
medios para recibir informacion asociada con parametros de un filtro en bucle procedente de o bien una carga util de datos en el flujo de bits de video a compartir por dos o mas bloques de codificacion, o bien procedente de datos de bloques de codificacion individuales en el flujo de bits de video de acuerdo con el indicador; y
medios para aplicar el procesamiento en bucle a los bloques de codificacion del video reconstruido.
21. Un aparato para codificar video con un procesamiento en bucle de un video reconstruido, que comprende: medios para recibir datos de video reconstruido;
medios para determinar parametros de un filtro en bucle asociados con el procesamiento en bucle, en el que el procesamiento en bucle es aplicado a bloques de codificacion del video reconstruido; y
medios para incorporar informacion asociada con los parametros del filtro en bucle, o bien en una carga util de datos en un flujo de bits de video a compartir por dos o mas bloques de codificacion, o bien intercalada con datos de bloques de codificacion individuales en el flujo de bits de video de acuerdo con un indicador.
22. Un procedimiento para decodificar video con un procesamiento de desplazamiento adaptativo de muestras (SAO) de un video reconstruido, comprendiendo el procedimiento:
recuperar unos datos de video reconstruido a partir de un flujo de bits de video;
recibir informacion asociada con parametros de SAO procedente de unos datos de bloques de codificacion individuales en el flujo de bits de video; y
aplicar el procesamiento de SAO a los bloques de codificacion del video reconstruido;
en el que la informacion asociada con los parametros de SAO esta intercalada con datos de bloques de codificacion individuales en el flujo de bits de video.
23. El procedimiento de la clausula 22, en el que el bloque de codificacion corresponde a una unidad de codificacion (CU), multiples unidades de codificacion, una unidad de codificacion mas grande (LCU) o multiples LCU.
24. Un procedimiento para codificar video con un procesamiento de desplazamiento adaptativo de muestras (SAO) de un video reconstruido, comprendiendo el procedimiento:
recibir datos de video reconstruido;
determinar unos parametros de SAO asociados con el procesamiento de SAO, en el que el procesamiento de SAO es aplicado a bloques de codificacion del video reconstruido; e
incorporar informacion asociada con los parametros de SAO intercalandola con datos de bloques de codificacion individuales en un flujo de bits de video.
25. El procedimiento de la clausula 24, en el que el bloque de codificacion corresponde a una unidad de codificacion (CU), multiples unidades de codificacion, una unidad de codificacion mas grande (LCU) o multiples LCU.

Claims (9)

REIVINDICACIONES
1. Un procedimiento para decodificar video con un procesamiento de desplazamiento adaptativo de muestras, tambien denominado SAO en lo sucesivo, de un video reconstruido, comprendiendo el procedimiento:
recuperar unos datos de video reconstruido a partir de un flujo de bits de video;
recibir uno o mas parametros de SAO procedentes de unos datos de bloques de codificacion individuales en el flujo de bits de video; y
aplicar el procesamiento de SAO a los bloques de codificacion de los datos de video reconstruido;
caracterizado porque dicho uno o mas parametros de SAO son compartidos entre al menos dos componentes de color diferentes, y/o uno o mas parametros de SAO de un primer componente de color son derivados a partir de uno o mas parametros de SAO de un segundo componente de color.
2. El procedimiento de la reivindicacion 1, en el que dicho uno o mas parametros de SAO comprenden un indicador de fusion, un indicador de fusion izquierda, un indicador de fusion superior, un tipo de SAO, un desplazamiento de SAO, o una combinacion de los mismos.
3. El procedimiento de la reivindicacion 2, en el que el tipo de SAO comprende una combinacion de habilitacion del procesamiento de SAO, deshabilitacion del procesamiento de SAO, desplazamiento de banda y desplazamiento de borde.
4. El procedimiento de la reivindicacion 1, en el que los componentes de color comprenden componente de color de luma, componente de color de croma Cb, y componente de color de croma Cr.
5. Un procedimiento para codificar video con un procesamiento de desplazamiento adaptativo de muestras, tambien denominado SAO en lo sucesivo, de un video reconstruido, comprendiendo el procedimiento:
recibir unos datos de video reconstruido; y
determinar uno o mas parametros de SAO para el procesamiento de SAO, en el que el procesamiento de SAO es aplicado a bloques de codificacion de los datos de video reconstruido;
caracterizado por incorporar uno o mas parametros de SAO en un flujo de bits de video, en el que dicho uno o mas parametros de SAO son compartidos entre al menos dos componentes de color diferentes, y/o uno o mas parametros de SAO de un primer componente de color son derivados a partir de uno o mas parametros de SAO de un segundo componente de color.
6. El procedimiento de la reivindicacion 5, en el que dicho uno o mas parametros de SAO comprenden un indicador de fusion, un indicador de fusion izquierda, un indicador de fusion superior, un tipo de SAO, un desplazamiento de SAO, o una combinacion de los mismos.
7. El procedimiento de la reivindicacion 5, en el que el tipo de SAO comprende uno o una combinacion de habilitacion del procesamiento de SAO, deshabilitacion del procesamiento de SAO, desplazamiento de banda, y desplazamiento de borde.
8. El procedimiento de la reivindicacion 5, en el que los componentes de color comprenden componente de color de luma, componente de color de croma Cb, componente de color de croma Cr.
9. Flujo de bits de video que tiene codificada en el mismo
informacion codificada de datos de video reconstruido, y
uno o mas elementos de sintaxis asociados con uno o mas parametros de SAO para un procesamiento de SAO, caracterizado porque dicho uno o mas parametros de SAO son compartidos entre al menos dos componentes de color diferentes, y/o uno o mas parametros de SAO de un primer componente de color son derivados a partir de uno o mas parametros de SAO de un segundo componente de color.
ES15151258T 2011-04-21 2012-04-20 Procedimiento y aparato para un filtrado en bucle mejorado Active ES2711180T3 (es)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201161477689P 2011-04-21 2011-04-21
US201161547281P 2011-10-14 2011-10-14
US201261595900P 2012-02-07 2012-02-07
US201261595914P 2012-02-07 2012-02-07
US201261597995P 2012-02-13 2012-02-13
US201261600028P 2012-02-17 2012-02-17

Publications (1)

Publication Number Publication Date
ES2711180T3 true ES2711180T3 (es) 2019-04-30

Family

ID=47041059

Family Applications (2)

Application Number Title Priority Date Filing Date
ES17169267T Active ES2715782T3 (es) 2011-04-21 2012-04-20 Procedimiento y aparato para un filtrado en bucle mejorado
ES15151258T Active ES2711180T3 (es) 2011-04-21 2012-04-20 Procedimiento y aparato para un filtrado en bucle mejorado

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES17169267T Active ES2715782T3 (es) 2011-04-21 2012-04-20 Procedimiento y aparato para un filtrado en bucle mejorado

Country Status (12)

Country Link
US (1) US9872015B2 (es)
EP (3) EP2882190B1 (es)
JP (1) JP5763210B2 (es)
CN (3) CN107071485B (es)
CA (1) CA2823902C (es)
DK (2) DK2882190T3 (es)
ES (2) ES2715782T3 (es)
HU (2) HUE043181T2 (es)
PL (2) PL2882190T3 (es)
PT (1) PT2882190T (es)
SI (1) SI3220641T1 (es)
WO (1) WO2012142966A1 (es)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9008170B2 (en) * 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
CN106028050B (zh) * 2011-05-16 2019-04-26 寰发股份有限公司 用于亮度和色度分量的样本自适应偏移的方法和装置
US9654785B2 (en) 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
KR101785770B1 (ko) 2011-06-23 2017-10-16 후아웨이 테크놀러지 컴퍼니 리미티드 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
CN107105305B (zh) 2011-06-24 2020-04-03 Lg 电子株式会社 图像信息编码和解码方法
JPWO2013001794A1 (ja) * 2011-06-27 2015-02-23 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、及び画像符号化装置
EP2849444A3 (en) 2011-06-28 2015-06-24 Samsung Electronics Co., Ltd Video encoding method using merge information to code offset parameters and apparatus therefor, video decoding method and apparatus therefor
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
US20130022108A1 (en) * 2011-06-30 2013-01-24 General Instrument Corporation Quantization parameter derivation from qp predictor
US20130016769A1 (en) 2011-07-17 2013-01-17 Qualcomm Incorporated Signaling picture size in video coding
US10070152B2 (en) 2011-08-24 2018-09-04 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
US9344743B2 (en) * 2011-08-24 2016-05-17 Texas Instruments Incorporated Flexible region based sample adaptive offset (SAO) and adaptive loop filter (ALF)
US9621890B2 (en) * 2011-10-20 2017-04-11 Thomson Licensing Method and device for encoding a video frame, method and device for decoding a video frame and storage medium
US9247258B2 (en) * 2011-10-26 2016-01-26 Qualcomm Incorporated Unified design for picture partitioning schemes
US20130114683A1 (en) * 2011-11-07 2013-05-09 Sharp Laboratories Of America, Inc. Video decoder with enhanced sample adaptive offset
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US20130113880A1 (en) * 2011-11-08 2013-05-09 Jie Zhao High Efficiency Video Coding (HEVC) Adaptive Loop Filter
EP2947880A1 (en) * 2011-12-22 2015-11-25 Samsung Electronics Co., Ltd Video encoding method using offset adjustment according to classification of pixels by maximum encoding units and apparatus thereof, and video decoding method and apparatus thereof
JP2014197723A (ja) * 2012-01-06 2014-10-16 ソニー株式会社 画像処理装置および方法
RU2616598C1 (ru) * 2012-01-19 2017-04-18 Мицубиси Электрик Корпорейшн Устройство декодирования изображений, устройство кодирования изображений, способ декодирования изображений и способ кодирования изображений
US9161035B2 (en) * 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
US9380302B2 (en) 2012-02-27 2016-06-28 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
US9445088B2 (en) * 2012-04-09 2016-09-13 Qualcomm Incorporated LCU-based adaptive loop filtering for video coding
US10129540B2 (en) * 2012-04-10 2018-11-13 Texas Instruments Incorporated Reduced complexity coefficient transmission for adaptive loop filtering (ALF) in video coding
BR112013033830A2 (pt) * 2012-05-25 2017-02-14 Panasonic Corp método de codificação de imagem, método de decodificação de imagem, aparelho de codificação de imagem, aparelho de decodificação de imagem e aparelho de codificação e decodificação de imagem
BR122019022458B1 (pt) * 2012-06-11 2021-10-05 Samsung Electronics Co., Ltd Método decodificador de vídeo
TWI595776B (zh) * 2012-06-27 2017-08-11 Sony Corp Image processing device and method
WO2014097596A1 (ja) * 2012-12-19 2014-06-26 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
US9912942B2 (en) * 2012-12-28 2018-03-06 Qualcomm Incorporated High-frequency-pass sample adaptive offset in video coding
GB2509706B (en) * 2013-01-04 2016-03-16 Canon Kk A method, device, computer program, and information storage means for encoding or decoding a scalable video sequence
GB2509563A (en) * 2013-01-04 2014-07-09 Canon Kk Encoding or decoding a scalable video sequence using inferred SAO parameters
US9609336B2 (en) * 2013-04-16 2017-03-28 Fastvdo Llc Adaptive coding, transmission and efficient display of multimedia (acted)
US10708588B2 (en) 2013-06-19 2020-07-07 Apple Inc. Sample adaptive offset control
US9300967B2 (en) 2013-06-19 2016-03-29 Apple Inc. Sample adaptive offset control
US9510001B2 (en) 2013-07-09 2016-11-29 Electronics And Telecommunications Research Institute Video decoding method and apparatus using the same
US10412419B2 (en) * 2013-07-12 2019-09-10 Qualcomm Incorporated Adaptive filtering in video coding
WO2015070739A1 (en) * 2013-11-15 2015-05-21 Mediatek Inc. Method of block-based adaptive loop filtering
CN110213578B (zh) * 2013-12-13 2021-10-01 北京三星通信技术研究有限公司 视频编解码中像素处理的方法和装置
US10038919B2 (en) 2014-05-29 2018-07-31 Apple Inc. In loop chroma deblocking filter
US10142647B2 (en) * 2014-11-13 2018-11-27 Google Llc Alternating block constrained decision mode coding
US10057574B2 (en) * 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
JP2018522445A (ja) * 2015-05-12 2018-08-09 サムスン エレクトロニクス カンパニー リミテッド サンプル値補償のための映像符号化方法及びその装置、並びにサンプル値補償のための映像復号方法及びその装置
JP6094838B2 (ja) * 2015-08-31 2017-03-15 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
JP6634936B2 (ja) * 2016-04-05 2020-01-22 富士通株式会社 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、画像復号プログラムおよび画像伝送システム
CN110063057B (zh) * 2016-09-20 2021-09-07 联发科技股份有限公司 用于视频编解码的采样自适应偏移处理的方法和装置
CN113518221B (zh) * 2016-10-14 2024-03-01 联发科技股份有限公司 视频编码或解码方法及相应装置
KR102477784B1 (ko) * 2017-01-12 2022-12-15 소니그룹주식회사 화상 처리 장치 및 화상 처리 방법
JP6341304B2 (ja) * 2017-02-14 2018-06-13 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
WO2018170801A1 (zh) 2017-03-22 2018-09-27 华为技术有限公司 图像滤波方法及装置
EP3410723A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing A method and a device for picture encoding and decoding
EP3410711A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing A method and a device for picture encoding and decoding
US11228757B2 (en) 2017-05-31 2022-01-18 Interdigital Vc Holdings, Inc. Method and a device for picture encoding and decoding
EP3632113B1 (en) * 2017-05-31 2024-02-28 InterDigital Madison Patent Holdings, SAS A method and a device for picture encoding and decoding
EP3725083A1 (en) 2017-12-14 2020-10-21 InterDigital VC Holdings, Inc. Method and apparatus for encoding a picture block
WO2019147403A1 (en) 2018-01-29 2019-08-01 Interdigital Vc Holdings, Inc. Encoding and decoding with refinement of the reconstructed picture
WO2019191218A1 (en) 2018-03-30 2019-10-03 Interdigital Vc Holdings, Inc. Chroma quantization parameter adjustment in video encoding and decoding
GB2573797A (en) * 2018-05-17 2019-11-20 Canon Kk A filter
US11451773B2 (en) * 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
JP2021532622A (ja) * 2018-07-11 2021-11-25 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 複数の領域を有するループ内フィルタ
US11140418B2 (en) * 2018-07-17 2021-10-05 Qualcomm Incorporated Block-based adaptive loop filter design and signaling
US11051017B2 (en) 2018-12-20 2021-06-29 Qualcomm Incorporated Adaptive loop filter (ALF) index signaling
KR20210118400A (ko) 2019-02-01 2021-09-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩을 위한 루마 종속적 크로마 잔차 스케일링의 구성
CN113475079A (zh) 2019-02-01 2021-10-01 北京字节跳动网络技术有限公司 环路整形和帧内块复制之间的相互作用
MX2021010337A (es) 2019-02-27 2021-09-28 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
WO2020192614A1 (en) * 2019-03-23 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Restrictions on adaptive-loop filtering parameter sets
AU2020248837B2 (en) 2019-03-24 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Nonlinear adaptive loop filtering in video processing
US20220217405A1 (en) * 2019-04-03 2022-07-07 Lg Electronics Inc. Video or image coding for modifying reconstructed picture
CN113767623B (zh) * 2019-04-16 2024-04-02 北京字节跳动网络技术有限公司 用于视频编解码的自适应环路滤波
US11368684B2 (en) * 2019-04-23 2022-06-21 Qualcomm Incorporated Adaptation parameter sets (APS) for adaptive loop filter (ALF) parameters
US20220256201A1 (en) * 2019-05-03 2022-08-11 Mediatek Inc. Methods and Apparatuses of Syntax Signaling and Referencing Constraint in Video Coding System
KR20210135337A (ko) * 2019-05-14 2021-11-12 엘지전자 주식회사 적응적 루프 필터 기반 비디오 또는 영상 코딩
WO2020228833A1 (en) * 2019-05-16 2020-11-19 Beijing Bytedance Network Technology Co., Ltd. Adaptive resolution change in video coding
US11019334B2 (en) * 2019-05-17 2021-05-25 Qualcomm Incorporated Multiple adaptive loop filter sets for video coding
MX2021014754A (es) * 2019-06-17 2022-01-18 Electronics & Telecommunications Res Inst Metodo y aparato de filtrado en bucle adaptativo.
WO2020260668A1 (en) * 2019-06-28 2020-12-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video decoder, video encoder, methods for encoding and decoding video signals and computer program adjusting one or more denoising operations
WO2020215102A2 (en) * 2019-08-16 2020-10-22 Futurewei Technologies, Inc. Alf aps constraints in video coding
JP7377953B2 (ja) * 2019-08-19 2023-11-10 フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ アクセスユニットデリミタおよび適応パラメータセットの使用
JP7368602B2 (ja) 2019-08-29 2023-10-24 エルジー エレクトロニクス インコーポレイティド 映像コーディング装置及び方法
CN114586351B (zh) * 2019-08-29 2024-04-16 Lg电子株式会社 基于自适应环路滤波的图像编译装置和方法
US11140388B2 (en) * 2019-09-06 2021-10-05 Tencent America LLC Method and apparatus for non-linear loop filtering
CN117615155A (zh) * 2019-09-19 2024-02-27 北京字节跳动网络技术有限公司 视频编解码中的参考样点位置推导
US11375219B2 (en) * 2019-09-24 2022-06-28 Tencent America LLC Coding method and system with improved dynamic internal bit depth
WO2021196234A1 (zh) * 2020-04-03 2021-10-07 北京大学 一种视频编码、解码方法、设备及存储介质
CN115606183A (zh) 2020-04-07 2023-01-13 抖音视界有限公司(Cn) 参考图片环绕的剪裁操作
JP2023521588A (ja) 2020-04-09 2023-05-25 北京字節跳動網絡技術有限公司 映像コーディングにおけるデブロッキング信号通知
CN115486064A (zh) 2020-04-10 2022-12-16 抖音视界有限公司 标头语法元素和自适应参数集的使用
WO2021209061A1 (en) 2020-04-17 2021-10-21 Beijing Bytedance Network Technology Co., Ltd. Presence of adaptation parameter set units
KR20230002447A (ko) 2020-04-26 2023-01-05 바이트댄스 아이엔씨 비디오 코딩 신택스 요소의 조건적 시그널링
CN115834912A (zh) * 2020-06-03 2023-03-21 北京达佳互联信息技术有限公司 对视频进行编码的方法和装置
CN114007067B (zh) * 2020-07-28 2023-05-23 北京达佳互联信息技术有限公司 对视频信号进行解码的方法、设备和介质
EP3984222A4 (en) * 2020-08-13 2022-10-26 Beijing Dajia Internet Information Technology Co., Ltd. ENHANCED CHROMINANCE CODING IN INTER-COMPONENT ADAPTIVE SAMPLE SHIFT
CN116433783A (zh) * 2021-12-31 2023-07-14 中兴通讯股份有限公司 用于视频处理的方法及装置、存储介质及电子装置
WO2024041658A1 (en) * 2022-08-26 2024-02-29 Douyin Vision Co., Ltd. On sao and ccsao
WO2024088003A1 (en) * 2022-10-24 2024-05-02 Mediatek Inc. Method and apparatus of position-aware reconstruction in in-loop filtering

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100936034B1 (ko) 2003-08-11 2010-01-11 삼성전자주식회사 블록 단위로 부호화된 디지털 영상의 블로킹 현상을제거하는 방법 및 그 영상재생장치
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
KR101261526B1 (ko) * 2006-07-04 2013-05-06 삼성전자주식회사 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
US20090154567A1 (en) * 2007-12-13 2009-06-18 Shaw-Min Lei In-loop fidelity enhancement for video compression
US20100272191A1 (en) * 2008-01-14 2010-10-28 Camilo Chang Dorea Methods and apparatus for de-artifact filtering using multi-lattice sparsity-based filtering
KR101441903B1 (ko) 2008-10-16 2014-09-24 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
EP2192786A1 (en) * 2008-11-27 2010-06-02 Panasonic Corporation Frequency domain filters for video coding
CN101790089A (zh) * 2009-01-23 2010-07-28 矽统科技股份有限公司 去方块滤波方法及影像处理装置
CN105872541B (zh) * 2009-06-19 2019-05-14 三菱电机株式会社 图像编码装置、图像编码方法及图像解码装置
KR20110001990A (ko) * 2009-06-30 2011-01-06 삼성전자주식회사 영상 데이터의 인 루프 필터링 장치 및 방법과 이를 이용한 영상 부호화/복호화 장치
JP5233897B2 (ja) * 2009-07-31 2013-07-10 ソニー株式会社 画像処理装置および方法
KR101624649B1 (ko) * 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US8660174B2 (en) 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
US9055305B2 (en) 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
CN106454357A (zh) 2011-01-09 2017-02-22 寰发股份有限公司 已处理视频数据的样本自适应补偿的方法和装置
US9210442B2 (en) * 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US9066104B2 (en) * 2011-01-14 2015-06-23 Google Inc. Spatial block merge mode

Also Published As

Publication number Publication date
WO2012142966A1 (en) 2012-10-26
EP2700230A4 (en) 2014-08-06
EP3220641B1 (en) 2019-01-02
EP3220641A2 (en) 2017-09-20
PL3220641T3 (pl) 2019-07-31
US9872015B2 (en) 2018-01-16
PL2882190T3 (pl) 2019-04-30
DK3220641T3 (en) 2019-03-25
PT2882190T (pt) 2019-02-25
DK2882190T3 (en) 2019-02-18
ES2715782T3 (es) 2019-06-06
JP5763210B2 (ja) 2015-08-12
US20130259118A1 (en) 2013-10-03
EP2882190B1 (en) 2018-11-14
EP2882190A1 (en) 2015-06-10
CN107071485B (zh) 2020-10-02
CN105120271B (zh) 2018-05-15
CN105120271A (zh) 2015-12-02
EP3220641A3 (en) 2017-11-01
CA2823902A1 (en) 2012-10-26
HUE042699T2 (hu) 2019-07-29
CN103370936A (zh) 2013-10-23
JP2014506061A (ja) 2014-03-06
HUE043181T2 (hu) 2019-08-28
CN107071485A (zh) 2017-08-18
CA2823902C (en) 2018-03-27
SI3220641T1 (sl) 2019-05-31
EP2700230A1 (en) 2014-02-26

Similar Documents

Publication Publication Date Title
ES2711180T3 (es) Procedimiento y aparato para un filtrado en bucle mejorado
ES2641443T3 (es) Método y aparato para filtración de bucle a través de límites de corte o pieza
ES2945694T3 (es) Un aparato de codificación para señalizar un modo de intrapredicción direccional de ampliación dentro de un conjunto de modos de intrapredicción direccional
ES2937793T3 (es) Codificación de imagen con bajo retardo
ES2954591T3 (es) Aparato de decodificación de vídeo y aparato de codificación de vídeo
KR101567467B1 (ko) 루프내 필터 버퍼의 감소를 위한 방법 및 장치
ES2828734T3 (es) Procedimiento y aparatos para decodificación de imágenes
ES2952358T3 (es) Aparato para decodificar un fotograma en movimiento
ES2898947T3 (es) Método para decodificar información de imagen, aparato de decodificación, método para codificar información de imagen, aparato de codificación y medio de almacenamiento
ES2805055T3 (es) Aparato de decodificación de imágenes
ES2856823T3 (es) Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes
ES2744316T3 (es) Métodos y aparato para señalización de predicción intra para grandes bloques para codificadores y decodificadores de vídeo
US8913656B2 (en) Method and apparatus for in-loop filtering
ES2807908T3 (es) Procedimiento y dispositivo para determinar el valor de un parámetro de cuantificación
KR20190087512A (ko) 미리 결정된 방향성 인트라 예측 모드들의 세트를 확장하기 위한 인트라 예측 장치
ES2489816A2 (es) Método para gestionar una lista de imágenes de referencia, y aparato que lo usa
KR102371266B1 (ko) 미리 결정된 방향성 인트라 예측 모드들의 세트로부터 방향성 인트라 예측 모드를 제거하기 위한 인트라 예측 장치
WO2014019531A1 (en) Method and apparatus for video processing incorporating deblocking and sample adaptive offset
ES2953120T3 (es) Método de decodificación de imágenes, decodificador y medio de almacenamiento