DESCRIPCIÓN
Procedimiento y dispositivo para procesar señales de vídeo
Campo técnico
La presente invención se refiere a un procedimiento y un dispositivo para procesar una señal de video.
Antecedentes de la técnica
Recientemente, la demanda de imágenes de alta resolución y de alta calidad, tales como las imágenes de alta definición (HD) y las imágenes de ultra alta definición (UHD) ha aumentado en diversos campos de aplicación. Sin embargo, los datos de imagen de mayor resolución y calidad tienen cantidades de datos cada vez mayores en comparación con los datos de imágenes convencionales. Por lo tanto, cuando se transmiten datos de imágenes usando un medio tal como las redes de banda ancha cableadas e inalámbricas convencionales, o cuando se almacenan datos de imágenes usando un medio de almacenamiento convencional, los costes de transmisión y almacenamiento aumentan. Con el fin de resolver estos problemas que se producen con un aumento en la resolución y la calidad de los datos de imagen, pueden utilizarse técnicas de codificación/decodificación de imágenes de alta eficacia.
La tecnología de compresión de imágenes incluye diversas técnicas, que incluyen: una técnica de predicción inter para predecir un valor de píxel incluido en una imagen actual a partir de una imagen anterior o posterior de la imagen actual; una técnica de predicción intra para predecir un valor de píxel incluido en una imagen actual usando la información de píxel en la imagen actual; una técnica de codificación de entropía para asignar un código corto a un valor con una alta frecuencia de aparición y asignar un código largo a un valor con una baja frecuencia de aparición; etc. Los datos de imágenes se pueden comprimir eficazmente usando dicha tecnología de compresión de imágenes, y pueden transmitirse o almacenarse.
Mientras tanto, con las demandas de imágenes de alta resolución, las demandas de contenido de imagen estereográfica, que es un nuevo servicio de imágenes, también han aumentado. Se está discutiendo una técnica de compresión de video para proporcionar de
manera eficaz el contenido de imágenes estereográficas con alta resolución y ultra alta resolución.
Divulgación
Problema técnico
Un objetivo de la presente invención tiene la intención de proporcionar un procedimiento y un dispositivo para codificar/decodificar una señal de video, particionando el procedimiento y el dispositivo de manera jerárquica un bloque de codificación.
Un objetivo de la presente invención tiene la intención de proporcionar un procedimiento y un dispositivo para codificar/decodificar una señal de video, realizando el procedimiento y el dispositivo la predicción intra de un bloque de objetivo de codificación/decodificación.
Un objetivo de la presente invención tiene la intención de proporcionar un procedimiento y un dispositivo para codificar/decodificar una señal de video, corregir el procedimiento y el dispositivo una muestra de predicción de un bloque objetivo de codificación/decodificación.
Solución técnica
De acuerdo con la presente invención, se proporciona un procedimiento y un dispositivo para decodificar una señal de video, incluyendo el procedimiento: determinar un modo de predicción intra de un bloque actual; obtener una muestra de referencia para la predicción intra del bloque actual; y realizar la predicción intra del bloque actual basándose en el modo de predicción intra y en la muestra de referencia.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, el bloque actual puede ser un bloque de codificación en una forma no cuadrada particionada basado en al menos uno de entre un árbol cuadrado y un árbol binario.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, la determinación del modo de predicción intra puede incluir: generar una lista de candidatos que tenga múltiples candidatos; y determinar el modo de predicción intra del bloque actual basándose en la lista de candidatos y en una información de índice, la
información de índice especificando un índice de candidato incluido en la lista de candidatos.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, un número máximo de candidatos que pueden incluirse en la lista de candidatos pueden ser más de tres.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, el modo de predicción intra determinado puede ser uno de los modos de predicción intra extendidos, y los modos de predicción intra extendidos pueden incluir un modo plano, un modo DC y más de 33 modos de predicción direccionales.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida usando la información diferencial de las muestras vecinas del bloque actual.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida basándose en al menos uno de entre el peso y el desplazamiento predeterminados.
De acuerdo con la presente invención, se proporciona un procedimiento y un dispositivo para codificar una señal de video, incluyendo el procedimiento: determinar un modo de predicción intra de un bloque actual; obtener una muestra de referencia para la predicción intra del bloque actual; y realizar la predicción intra del bloque actual basándose en el modo de predicción intra y en la muestra de referencia.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, el bloque actual puede ser un bloque de codificación en una forma no cuadrada particionado basado en al menos uno de entre un árbol cuadrado y un árbol binario.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, la determinación del modo de predicción intra puede incluir: generar una
lista de candidatos que tenga múltiples candidatos; y determinar el modo de predicción intra del bloque actual basándose en la lista de candidatos y en un índice.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, un número máximo de candidatos que pueden incluirse en la lista de candidatos pueden ser más de tres.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, el modo de predicción intra determinado puede ser uno de los modos de predicción intra extendidos, y los modos de predicción intra extendidos incluyen un modo plano, un modo DC y más de 33 modos de predicción direccionales.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida usando la información diferencial de las muestras vecinas del bloque actual.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida basándose en al menos uno de entre el peso y el desplazamiento predeterminados.
Efectos ventajosos
De acuerdo con la presente invención, es posible mejorar la eficacia de la codificación a través de un particionamiento jerárquico/adaptativo de un bloque de codificación.
De acuerdo con la presente invención, es posible determinar eficazmente un modo de predicción intra de un bloque objetivo de codificación/decodificación, y mejorar la precisión de la predicción intra.
Descripción de los dibujos
La figura 1 es un diagrama de bloques que ilustra un dispositivo para codificar un video de
acuerdo con una realización de la presente invención.
La figura 2 es un diagrama de bloques que ilustra un dispositivo para decodificar un video de acuerdo con una realización de la presente invención.
La figura 3 es una vista que ilustra un ejemplo de particionamiento jerárquico de un bloque de codificación basándose en una estructura de árbol de acuerdo con una realización de la presente invención.
La figura 4 es una vista que ilustra tipos de modos de predicción intra predefinidos para un dispositivo para codificar/decodificar un video de acuerdo con una realización de la presente invención.
La figura 5 es un diagrama de flujo que ilustra brevemente un procedimiento de predicción intra de acuerdo con una realización de la presente invención.
La figura 6 es una vista que ilustra un procedimiento para corregir una muestra de predicción de un bloque actual basándose en la información diferencial de las muestras vecinas de acuerdo con una realización de la presente invención.
Las figuras 7 y 8 son vistas que ilustran un procedimiento para corregir una muestra de predicción basándose en un filtro de corrección predeterminada de acuerdo con una realización de la presente invención.
La figura 9 es una vista que ilustra un procedimiento para corregir una muestra de predicción usando el peso y el desplazamiento de acuerdo con una realización de la presente invención.
Las figuras 10 a 15 son vistas que ilustran un procedimiento de composición de una plantilla para determinar el peso w de acuerdo con una realización de la presente invención.
Mejor modo
De acuerdo con la presente invención, se proporciona un procedimiento y un dispositivo para decodificar una señal de video, incluyendo el procedimiento: determinar un modo de predicción intra de un bloque actual; obtener una muestra de referencia para la predicción
intra del bloque actual; y realizar la predicción intra del bloque actual basándose en el modo de predicción intra y en la muestra de referencia.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, el bloque actual puede ser un bloque de codificación en una forma no cuadrada particionada basado en al menos uno de entre un árbol cuadrado y un árbol binario.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, la determinación del modo de predicción intra puede incluir: generar una lista de candidatos que tenga múltiples candidatos; y determinar el modo de predicción intra del bloque actual basándose en la lista de candidatos y en un índice.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, un número máximo de candidatos que pueden incluirse en la lista de candidatos pueden ser más de tres.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, el modo de predicción intra determinado puede ser uno de los modos de predicción intra extendidos, y los modos de predicción intra extendidos pueden incluir un modo plano, un modo DC y más de 33 modos de predicción direccionales.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida usando la información diferencial de las muestras vecinas del bloque actual.
En el procedimiento y el dispositivo para decodificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida basándose en al menos uno de entre el peso y el desplazamiento predeterminados.
De acuerdo con la presente invención, se proporciona un procedimiento y un dispositivo para codificar una señal de video, incluyendo el procedimiento: determinar un modo de
predicción intra de un bloque actual; obtener una muestra de referencia para la predicción intra del bloque actual; y realizar la predicción intra del bloque actual basándose en el modo de predicción intra y en la muestra de referencia.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, el bloque actual puede ser un bloque de codificación en una forma no cuadrada particionado basado en al menos uno de entre un árbol cuadrado y un árbol binario.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, la determinación del modo de predicción intra puede incluir: generar una lista de candidatos que tenga múltiples candidatos; y determinar el modo de predicción intra del bloque actual basándose en la lista de candidatos y en un índice.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, un número máximo de candidatos que pueden incluirse en la lista de candidatos pueden ser más de tres.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, el modo de predicción intra determinado puede ser uno de los modos de predicción intra extendidos, y los modos de predicción intra extendidos incluyen un modo plano, un modo DC y más de 33 modos de predicción direccionales.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida usando la información diferencial de las muestras vecinas del bloque actual.
En el procedimiento y el dispositivo para codificar una señal de video de acuerdo con la presente invención, la realización de la predicción intra puede incluir: obtener una muestra de predicción del bloque actual basándose en el modo de predicción intra y en la muestra de referencia; y corregir la muestra de predicción obtenida basándose en al menos uno de entre el peso y el desplazamiento predeterminados.
Modo de la invención
Pueden realizarse varias modificaciones en la presente invención y existen diversas realizaciones de la presente invención, cuyos ejemplos se proporcionarán ahora haciendo referencia a los dibujos y se describirán en detalle. Los números de referencia similares se refieren al elemento similar en los dibujos descritos.
Los términos usados en la memoria descriptiva, "primero”, "segundo”, etc. pueden usarse para describir diversos componentes, pero los componentes no deben interpretarse como limitados a los términos. Los términos solo se usan para diferenciar un componente de otros componentes. Por ejemplo, el "primer” componente puede llamarse el "segundo” componente sin alejarse del alcance de la presente invención, y el "segundo” componente también puede llamarse de manera similar el "primer” componente. El término "y/o” incluye una combinación de una pluralidad de artículos o uno cualquiera de una pluralidad de términos.
Se entenderá que cuando se hace referencia simplemente a un (primer) elemento como que está ‘conectado a’ o ‘acoplado a’ otro (segundo) elemento sin estar ‘directamente conectado a’ o ‘directamente acoplado a’ este otro (segundo) elemento en la presente descripción, el (primer) elemento puede estar ‘directamente’ conectado a’ o ‘acoplado directamente a’ un (tercer) elemento intermedio interpuesto entre los dos elementos referidos anteriormente (primero y segundo). Por el contrario, debería entenderse que cuando se hace referencia a un elemento como que está "directamente acoplado a” o "directamente conectado a” otro elemento, no hay elementos intermedios presentes.
En la presente memoria descriptiva, debe entenderse que las expresiones tales como "que incluye”, "que tiene”, etc. están destinadas a indicar la existencia de las características, números, etapas, acciones, elementos, partes o combinaciones de los mismos desvelados en la memoria descriptiva, y no están destinados a excluir la posibilidad de que existan o puedan añadirse una o más características, números, etapas, acciones, elementos, partes o combinaciones de los mismos.
En lo sucesivo en el presente documento, las realizaciones preferidas de la presente invención se describirán en detalle haciendo referencia a los dibujos adjuntos. En lo sucesivo en el presente documento, los mismos elementos constituyentes en los dibujos se indican con los mismos números de referencia, y se omitirá una descripción repetida de los mismos elementos.
La figura 1 es un diagrama de bloques que ilustra un dispositivo para codificar un video de acuerdo con una realización de la presente invención.
Haciendo referencia a la figura 1, el dispositivo 100 para codificar un video puede incluir: un módulo 110 de particionamiento de imágenes, unos módulos 120 y 125 de predicción, un módulo 130 de transformación, un módulo 135 de cuantificación, un módulo 160 de reordenamiento, un módulo 165 de codificación de entropía, un módulo 140 de cuantificación inversa, un módulo 145 de transformación inversa, un módulo 150 de filtro, y una memoria 155.
Las partes constitutivas mostradas en la figura 1 se muestran de manera independiente para representar funciones características diferentes entre sí en el dispositivo para codificar un video. Por lo tanto, no significa que cada parte constitutiva esté constituida en una unidad constitutiva de hardware o software separada. En otras palabras, cada parte constitutiva incluye cada una de las partes constitutivas enumeradas por conveniencia. Por lo tanto, al menos dos partes constitutivas de cada parte constitutiva pueden combinarse para formar una parte constitutiva o una parte constitutiva puede particionarse en una pluralidad de partes constitutivas para realizar cada función. La realización donde cada parte constitutiva se combina y la realización donde se divide una parte constitutiva también se incluyen en el alcance de la presente invención, si no se apartan de la esencia de la presente invención.
Además, algunos de los constituyentes pueden no ser constituyentes indispensables que realizan funciones esenciales de la presente invención, sino que son constituyentes selectivos que mejoran solo el rendimiento de la misma. La presente invención puede implementarse incluyendo solo las partes constitutivas indispensables para implementar la esencia de la presente invención, excepto los constituyentes usados para mejorar el rendimiento. La estructura que incluye solo los constituyentes indispensables excepto los constituyentes selectivos usados para mejorar solo el rendimiento también se incluye en el alcance de la presente invención.
El módulo 110 de particionamiento de imágenes puede particionar una imagen de entrada en una o más unidades de procesamiento. En este caso, la unidad de procesamiento puede ser una unidad de predicción (PU), una unidad de transformación (TU), o una unidad de codificación (CU). El módulo 110 de particionamiento de imágenes puede particionar una imagen en combinaciones de múltiples unidades de codificación, unidades de predicción, y
unidades de transformación, y puede codificar una imagen seleccionando una combinación de unidades de codificación, unidades de predicción, y unidades de transformación con un criterio predeterminado (por ejemplo, la función de coste).
Por ejemplo, una imagen puede particionarse en múltiples unidades de codificación. Una estructura de árbol recursiva, tal como una estructura de árbol cuadrado, puede usarse para particionar una imagen en unidades de codificación. Una unidad de codificación que está particionada en otras unidades de codificación con una imagen o una unidad de codificación más grande como una raíz puede particionarse con nodos secundarios correspondientes al número de unidades de codificación particionadas. Una unidad de codificación que no se particiona por una limitación predeterminada sirve como un nodo de hoja. Es decir, cuando se supone que solo es posible el particionamiento cuadrado para una unidad de codificación, una unidad de codificación puede particionarse en cuatro otras unidades de codificación como mucho.
En lo sucesivo en el presente documento, en la realización de la presente invención, la unidad de codificación puede significar una unidad que realiza la codificación, o una unidad que realiza la decodificación.
Una sola unidad de codificación puede particionarse en al menos una unidad de predicción que tiene forma cuadrada o forma rectangular. Las unidades de predicción resultantes de la partición de una sola unidad de codificación pueden tener el mismo tamaño , o puede que una unidad de predicción resultante de la partición (particionada) de una sola unidad de codificación tenga una forma y/o un tamaño diferente de otra unidad de predicción particionada en la misma unidad de codificación.
Cuando una unidad de predicción se somete a una predicción intra se genera basándose en una unidad de codificación y la unidad de codificación no es la más pequeña unidad de codificación, la predicción intra puede realizarse sin particionar la predicción en múltiples unidades de predicción NxN.
Los módulos 120 y 125 de predicción pueden incluir un módulo 120 de predicción inter que realiza una predicción inter y un módulo 125 de predicción intra que realiza una predicción intra. Si puede determinarse realizar una predicción inter o una predicción intra para la predicción, puede determinarse la información detallada (por ej., un modo de predicción intra, un vector de movimiento, una imagen de referencia, etc.) de acuerdo con cada
procedimiento de predicción. En este caso, la unidad de procesamiento sometida a predicción puede ser diferente de la unidad de procesamiento para la que se determina el procedimiento de predicción y el contenido detallado. Por ejemplo, el procedimiento de predicción, el modo de predicción, etc. pueden determinarse por unidad de predicción, y la predicción puede realizarse por la unidad de transformación. Puede introducirse un valor residual (bloque residual) entre el bloque de predicción generado y un bloque original al módulo 130 de transformación. Además, la información de modo de predicción usada para la predicción, la información de vector de movimiento, etc. puede codificarse con el valor residual por el módulo 165 de codificación de entropía y puede transmitirse a un dispositivo para decodificar un video. Cuando se usa un modo de codificación específico, el bloque original puede estar codificado de manera intacta y transmitirse a un módulo de decodificación sin generar el bloque de predicción a través del módulo 120 y 125 de predicción.
El módulo 120 de predicción inter puede predecir la unidad de predicción basándose en la información de al menos una de entre una imagen anterior o una imagen posterior de la imagen actual, o puede predecir la unidad de predicción basándose en la información de algunas regiones codificadas en la imagen actual, en algunos casos. El módulo 120 de predicción inter puede incluir un módulo de interpolación de imágenes de referencia, un módulo de predicción de movimiento, y un módulo de compensación de movimiento.
El módulo de interpolación de imagen de referencia puede recibir información de imagen de referencia de la memoria 155 y puede generar información de un píxel entero o menos de la imagen de referencia. En el caso de píxeles luma, puede usarse un filtro de interpolación basado en DCT de 8 tomas que tiene diferentes coeficientes de filtro para generar la información de píxel de un píxel entero o menos en unidades de un 1/4 de píxel. En el caso de señales croma, puede usarse un filtro de interpolación basado en DCT de 4 tomas que tiene diferente coeficiente de filtro para generar la información de píxel de un píxel entero o menos en unidades de un 1/8 de píxel.
El módulo de predicción de movimiento puede realizar la predicción de movimiento basándose en la imagen de referencia interpolada por el módulo de interpolación de imagen de referencia. Como procedimientos para calcular un vector de movimiento pueden usarse diversos procedimientos, tales como un algoritmo de comparación de bloques basado en búsqueda completa (FBMA), un algoritmo de búsqueda de tres etapas (TSS), un algoritmo de búsqueda de tres etapas nuevo (NTS), etc. El vector de movimiento puede tener un valor
de vector de movimiento en unidades de 1/2 de píxel o un 1/4 de píxel basándose en un píxel interpolado. El módulo de predicción de movimiento puede predecir una unidad de predicción actual cambiando el procedimiento de predicción de movimiento. Como procedimientos de predicción de movimiento pueden usarse diversos procedimientos, tales como un procedimiento de omisión, un procedimiento de mezcla, un procedimiento de AMVP (predicción de vector de movimiento avanzado), un procedimiento de copia de bloque intra, etc.
El módulo 125 de predicción intra puede generar una unidad de predicción basándose en la información de píxel de referencia junto a un bloque actual que es la información de píxel en la imagen actual. Cuando el bloque vecino de la unidad de predicción actual es un bloque sometido a predicción inter y, por lo tanto, un píxel de referencia es un píxel sometido a predicción inter, el píxel de referencia incluido en el bloque sometido a la predicción inter puede usarse en lugar de la información de píxel de referencia de un bloque vecino sometido a la predicción intra. Es decir, cuando un píxel de referencia no está disponible, puede usarse al menos un píxel de referencia de los píxeles de referencia disponibles en lugar de la información de píxel de referencia no disponible.
Los modos de predicción en la predicción intra pueden incluir un modo de predicción direccional usando la información de píxel de referencia en función de una dirección de predicción y un modo de predicción no direccional no usando la información direccional en la realización de la predicción. Un modo para predecir la información luma puede ser diferente de un modo para predecir la información croma, y con el fin de predecir la información croma, puede usarse la información de modo de predicción intra usada para predecir la información de luma o la información de señal luma predicha.
Al realizar la predicción intra, cuando el tamaño de la unidad de predicción es el mismo que el tamaño de la unidad de transformación, la predicción intra puede realizarse en la unidad de predicción basándose en los píxeles localizados a la izquierda, en la parte superior izquierda, y en la parte superior de la unidad de predicción. Sin embargo, al realizar la predicción intra, cuando el tamaño de unidad de predicción es diferente del tamaño de la unidad de transformación, la predicción intra puede realizarse usando un píxel de referencia basándose en la unidad de transformación. Además, puede usarse la predicción intra usando el particionamiento NxN solo para la unidad de codificación más pequeña.
En el procedimiento de predicción intra, puede generarse un bloque de predicción después
de aplicar un filtro AIS (suavizado intra adaptativo) a un píxel de referencia en función de los modos de predicción. El tipo del filtro AIS aplicado al píxel de referencia puede variar. Con el fin de realizar el procedimiento de predicción intra, puede predecirse un modo de predicción intra de la unidad de predicción actual a partir del modo de predicción intra de la unidad de predicción vecina a la unidad de predicción actual. En la predicción del modo de predicción de la unidad de predicción actual usando la información de modo predicha a partir de la unidad de predicción vecina, cuando el modo de predicción intra de la unidad de predicción actual es el mismo que el modo de predicción intra de la unidad de predicción vecina, la información que indica que los modos de predicción de la unidad de predicción actual y de la unidad de predicción vecina son iguales entre sí puede transmitirse usando la información de indicación predeterminada. Cuando el modo de predicción de la unidad de predicción actual es diferente del modo de predicción de la unidad de predicción vecina, puede realizarse la codificación de entropía para codificar la información de modo de predicción del bloque actual.
Además, un bloque residual que incluye información sobre un valor residual que es diferente entre la unidad de predicción y el bloque original puede generarse basándose en las unidades de predicción generadas por los módulos 120 y 125 de predicción. El bloque residual generado puede introducirse en el módulo 130 de transformación.
El módulo 130 de transformación puede transformar el bloque residual que incluye la información sobre el valor residual entre el bloque original y la unidad de predicción generada por los módulos 120 y 125 de predicción usando un procedimiento de transformación, tal como la transformada de coseno discreta (DCT), la transformada de seno discreta (DST) y la KLT. Aunque aplicar DCT, DST o KLT con el fin de transformar el bloque residual puede determinarse basándose en la información de modo de predicción intra de la unidad de predicción usada para generar el bloque residual.
El módulo 135 de cuantificación puede cuantificar los valores transmitidos a un dominio de frecuencia por el módulo 130 de transformación. Los coeficientes de cuantificación pueden variar en función del bloque o la importancia de una imagen. Los valores calculados por el módulo 135 de cuantificación pueden proporcionarse al módulo 140 de cuantificación inversa y al módulo 160 de reordenamiento.
El módulo 160 de reordenamiento puede reordenar los coeficientes de los valores residuales cuantificados.
El módulo 160 de reordenamiento puede cambiar un coeficiente en forma de un bloque bidimensional en un coeficiente en la forma de un vector unidimensional a través del procedimiento de exploración de coeficientes. Por ejemplo, el módulo 160 de reordenamiento puede explorar desde un coeficiente de DC a un coeficiente en un dominio de alta frecuencia usando un procedimiento de exploración en zigzag con el fin de cambiar los coeficientes para estar en la forma de vectores unidimensionales. En función del tamaño de la unidad de transformación y del modo de predicción intra, puede usarse en lugar de la exploración en zigzag, la exploración en dirección vertical donde los coeficientes en la forma de bloques bidimensionales se exploran en la dirección de la columna o, la exploración en dirección horizontal donde los coeficientes en la forma de bloques bidimensionales se exploran en la dirección de la fila. Es decir, puede determinarse qué procedimiento de exploración se usa entre la exploración en zigzag, la exploración en dirección vertical y la exploración en dirección horizontal en función del tamaño de la unidad de transformación y del modo de predicción intra.
El módulo 165 de codificación de entropía puede realizar la codificación de entropía basándose en los valores calculados por el módulo 160 de reordenamiento. La codificación de entropía puede usar diversos procedimientos de codificación, por ejemplo, codificación Golomb exponencial, codificación de longitud variable adaptable al contexto (CAVLC), y codificación aritmética binaria adaptable al contexto (CABAC).
El módulo 165 de codificación de entropía puede codificar diversa información, tal como la información de coeficiente de valor residual y la información de tipo de bloque de la unidad de codificación, la información de modo de predicción, la información de unidad de partición, la información de unidad de predicción, la información de unidad de transformación, la información de vector de movimiento, la información de trama de referencia, la información de interpolación de bloque, la información de filtrado, etc. del módulo 160 de reordenamiento y los módulos 120 y 125 de predicción.
El módulo 165 de codificación de entropía puede codificar la entropía de los coeficientes de la entrada de la unidad de codificación desde el módulo 160 de reordenamiento.
El módulo 140 de cuantificación inversa puede cuantificar inversamente los valores cuantificados por el módulo 135 de cuantificación y el módulo 145 de transformación inversa puede transformar inversamente los valores transformados por el módulo 130 de
transformación. El valor residual generado por el módulo 140 de cuantificación inversa y el módulo 145 de transformación inversa puede combinarse con la unidad de predicción predicha por un módulo de estimación de movimiento, una unidad de compensación de movimiento, y el módulo de predicción intra de los módulos 120 y 125 de predicción de tal manera que puede generarse un bloque reconstruido.
El módulo 150 de filtro puede incluir al menos uno de entre un filtro de desbloqueo, una unidad de corrección de desplazamiento, y un filtro de bucle adaptativo (ALF).
El filtro de desbloqueo puede eliminar la distorsión de bloque que se produce debido a los límites entre los bloques en la imagen reconstruida. Con el fin de determinar si debe realizarse el desbloqueo, puede determinarse si aplicar el filtro de desbloqueo al bloque actual basándose en los píxeles incluidos en varias filas o columnas en el bloque. Cuando se aplica el filtro de desbloqueo al bloque, puede aplicarse un filtro fuerte o un filtro débil en función de la fuerza de filtrado de desbloqueo necesaria. Además, al aplicar el filtro de desbloqueo, pueden procesarse en paralelo el filtrado en dirección horizontal y el filtrado en dirección vertical.
El módulo de corrección de desplazamiento puede corregir el desplazamiento de la imagen original con respecto a la imagen sometida al desbloqueo en unidades de un píxel. Con el fin de realizar la corrección de desplazamiento en una imagen específica, es posible usar un procedimiento de aplicar un desplazamiento en consideración de la información de borde de cada píxel o un procedimiento de particionamiento de píxeles de una imagen en el número predeterminado de regiones, determinando una región para someterse a realizar el desplazamiento y aplicar el desplazamiento a la región determinada.
El filtrado de bucle adaptativo (ALF) puede realizarse basándose en el valor obtenido comparando la imagen reconstruida filtrada y la imagen original. Los píxeles incluidos en la imagen pueden particionarse en grupos predeterminados, puede determinarse un filtro a aplicar a cada uno de los grupos, y el filtrado puede realizarse individualmente para cada grupo. La información sobre si aplicar ALF y una señal luma puede transmitirse por las unidades de codificación (CU). La forma y el coeficiente de filtro de un filtro para ALF pueden variar en función de cada bloque. Además, el filtro para ALF en la misma forma (forma fija) puede aplicarse independientemente de las características del bloque objetivo de aplicación.
La memoria 155 puede almacenar el bloque o imagen reconstruida calculada a través del módulo 150 de filtro. El bloque o imagen reconstruida almacenada puede proporcionarse a los módulos 120 y 125 de predicción al realizar la predicción inter.
La figura 2 es un diagrama de bloques que ilustra un dispositivo para decodificar un video de acuerdo con una realización de la presente invención.
Haciendo referencia a la figura 2, el dispositivo 200 para decodificar un video puede incluir: un módulo 210 de decodificación de entropía, un módulo 215 de reordenamiento, un módulo 220 de cuantificación inversa, un módulo 225 de transformación inversa, unos módulos 230 y 235 de predicción, un módulo 240 de filtro y una memoria 245.
Cuando un flujo de bits de video se introduce desde el dispositivo para codificar un vídeo, el flujo de bits de entrada puede decodificarse de acuerdo con un procedimiento inverso del dispositivo para codificar un vídeo.
El módulo 210 de decodificación de entropía puede realizar la decodificación de entropía de acuerdo con un procedimiento inverso de codificación de entropía mediante el módulo de codificación de entropía del dispositivo para codificar un vídeo. Por ejemplo, correspondiente a los procedimientos realizados por el dispositivo para codificar un vídeo, pueden aplicarse diversos procedimientos, tales como la codificación Golomb exponencial, la codificación de longitud variable adaptable al contexto (CAVLC), y la codificación aritmética binaria adaptable al contexto (CABAC).
El módulo 210 de decodificación de entropía puede decodificar la información sobre la predicción intra y la predicción inter realizada por el dispositivo para codificar un video.
El módulo 215 de reordenamiento puede realizar el reordenamiento de la entropía de flujo de bits decodificada por el módulo 210 de decodificación de entropía basándose en el procedimiento de reordenamiento usado en el dispositivo para codificar un video. El módulo de reordenamiento puede reconstruir y reorganizar los coeficientes en la forma de vectores unidimensionales para el coeficiente en la forma de dos bloques bidimensionales. El módulo 215 de reordenamiento puede realizar el reordenamiento al recibir la información relacionada con la exploración de coeficiente realizada en el dispositivo para codificar un video y explorar inversamente los coeficientes basándose en el orden de exploración realizado en el dispositivo para codificar un video.
El módulo 220 de cuantificación inversa puede realizar la cuantificación inversa basándose en un parámetro de cuantificación recibido desde el dispositivo para codificar un video y los coeficientes reordenados del bloque.
El módulo 225 de transformación inversa puede realizar la transformación inversa, es decir, la DCT inversa, la DST inversa, y la KLT inversa, que es la inversa de la transformación, es decir, la DCT, la DST, y la KLT, realizadas por el módulo de transformación sobre el resultado de cuantificación por el dispositivo para codificar un video. La transformación inversa puede realizarse basándose en la unidad de transferencia determinada por el dispositivo para codificar un video. El módulo 225 de transformación inversa del dispositivo para decodificar un vídeo puede realizar selectivamente técnicas de transformación (por ejemplo, DCT, DST, y KLT) en función de múltiples piezas de información, tales como el procedimiento de predicción, el tamaño del bloque actual, la dirección de predicción, etc.
Los módulos 230 y 235 de predicción pueden generar un bloque de predicción basándose en la información sobre la generación de bloque de predicción recibida del módulo 210 de decodificación de entropía y la información de bloque o imagen anteriormente decodificada recibida desde la memoria 245.
Como se ha descrito anteriormente, como la operación del dispositivo para codificar un vídeo, en la realización de predicción intra, cuando el tamaño de la unidad de predicción es el mismo que el tamaño de la unidad de transformación, la predicción intra puede realizarse en la unidad de predicción basándose en los píxeles localizados a la izquierda, en la parte superior izquierda, y en la parte superior de la unidad de predicción. Al realizar la predicción intra, cuando el tamaño de la unidad de predicción es diferente del tamaño de la unidad de transformación, la predicción intra puede realizarse usando un píxel de referencia basándose en la unidad de transformación. Además, puede usarse la predicción intra usando el particionamiento NxN solo para la unidad de codificación más pequeña.
Los módulos 230 y 235 de predicción pueden incluir un módulo de determinación de unidad de predicción, un módulo de predicción inter, y un módulo de predicción intra. El módulo de determinación de unidad de predicción puede recibir diversa información, tal como la información de unidad de predicción, la información de modo de predicción de un procedimiento de predicción intra, la información sobre la predicción de movimiento de un procedimiento de predicción inter, etc. desde el módulo 210 de decodificación de entropía,
puede distinguir una predicción unidad en una unidad de codificación actual, y puede determinar si se realiza la predicción inter o la predicción intra en la unidad de predicción. Usando la información necesaria en la predicción inter de la unidad de predicción actual recibida desde el dispositivo para codificar un vídeo, el módulo 230 de predicción inter puede realizar la predicción inter en la unidad de predicción actual basándose en la información de al menos una de entre una imagen anterior o una imagen posterior de la imagen actual que incluye la unidad de predicción actual. Como alternativa, la predicción inter puede realizarse basándose en la información de algunas regiones pre-reconstruidas en la imagen actual que incluye la unidad de predicción actual.
Con el fin de realizar la predicción inter, puede determinarse cuál de entre un modo de omisión, un modo de mezcla, un modo de AMVP, y un modo de copia de bloque inter se usa como el procedimiento de predicción de movimiento de la unidad de predicción incluido en la unidad de codificación basándose en la unidad de codificación.
El módulo de predicción intra 235 puede generar un bloque de predicción basándose en la información de píxel en la imagen actual. Cuando la unidad de predicción es una unidad de predicción sometida a la predicción intra, la predicción intra puede realizarse basándose en la información del modo de predicción intra de la unidad de predicción recibida del dispositivo para codificar un video. El módulo de predicción intra 235 puede incluir un filtro suavizado intra adaptativo (AIS), un módulo de interpolación de píxel de referencia, y un filtro DC. El filtro AIS realiza el filtrado en el píxel de referencia del bloque actual, y la posibilidad de aplicar el filtro puede determinarse en función del modo de predicción de la unidad de predicción actual. El filtrado AIS puede realizarse en el píxel de referencia del bloque actual usando el modo de predicción de la unidad de predicción recibida del dispositivo para codificar un video y la información del filtro AIS. Cuando el modo de predicción del bloque actual es un modo donde no se realiza el filtrado AIS, no puede aplicarse el filtro AIS.
Cuando el modo de predicción de la unidad de predicción es un modo de predicción en el que la predicción intra se realiza basándose en el valor de píxel obtenido interpolando el píxel de referencia, el módulo de interpolación de píxel de referencia puede interpolar el píxel de referencia para generar un píxel de un píxel entero o menos. Cuando el modo de predicción de la unidad de predicción actual es un modo de predicción en el que se genera un bloque de predicción sin interpolar el píxel de referencia, el píxel de referencia no puede interpolarse. El filtro DC puede generar un bloque de predicción a través del filtrado cuando
el modo de predicción del bloque actual es un modo DC.
El bloque o imagen reconstruida puede proporcionarse al módulo 240 de filtro. El módulo 240 de filtro puede incluir el filtro de desbloqueo, el módulo de corrección de desplazamiento, y el ALF.
La información sobre si se aplica o no el filtro de desbloqueo al bloque o imagen correspondiente, y la información sobre la que se aplica el filtro fuerte y el filtro débil cuando se aplica el filtro de desbloqueo puede recibirse desde el dispositivo para codificar un video. El filtro de desbloqueo del dispositivo para decodificar un video puede recibir información sobre el filtro de desbloqueo desde el dispositivo para codificar un video, y puede realizar un filtrado de desbloqueo en el bloque correspondiente.
El módulo de corrección de desplazamiento puede realizar una corrección de desplazamiento en la imagen reconstruida basándose en el tipo de corrección de desplazamiento aplicada a una imagen al realizar la codificación y en la información de valor de desplazamiento.
El ALF puede aplicarse a la unidad de codificación basándose en la información sobre si aplicar el ALF, la información de coeficiente de ALF, etc. recibidos del dispositivo para codificar un video. La información de ALF puede proporcionarse como que está incluida en un conjunto de parámetros específico.
La memoria 245 puede almacenar la imagen o el bloque reconstruido para su uso como una imagen o un bloque de referencia, y puede proporcionar la imagen reconstruida a un módulo de salida.
Como se ha descrito anteriormente, en la realización de la presente invención, por conveniencia de la explicación, la unidad de codificación se usa como un término que representa una unidad de codificación, pero la unidad de codificación puede servir como una unidad que realiza decodificación así como codificación.
La figura 3 es una vista que ilustra un ejemplo para particionar jerárquicamente un bloque de codificación basándose en una estructura de árbol de acuerdo con una realización de la presente invención.
Una señal de vídeo de entrada se decodifica en unidades de bloque predeterminadas, y una unidad predeterminada para decodificar la señal de vídeo de entrada es un bloque de codificación. El bloque de codificación puede ser una unidad sobre la que se realiza la predicción intra/inter, la transformación, y la cuantificación. El bloque de codificación puede ser un bloque cuadrado o no cuadrado que tiene un tamaño arbitrario en un intervalo de 8x8 a 64x64, o puede ser un bloque cuadrado o no cuadrado que tiene un tamaño de 128x128, 256x256 o más.
En concreto, el bloque de codificación puede particionarse jerárquicamente basado en al menos uno de entre un árbol cuadrado y un árbol binario. En este caso, el particionamiento basado en el árbol cuadrado puede significar que un bloque de codificación de 2Nx2N se particiona en cuatro bloques de codificación de NxN, y el particionamiento basado en el árbol binario puede significar que un bloque de codificación se particiona en dos bloques de codificación. El particionamiento basado en el árbol binario puede realizarse simétrica o asimétricamente. El bloque de codificación particionado basándose en el árbol binario puede ser un bloque cuadrado o un bloque no cuadrado, tal como una forma rectangular. El particionamiento basado en el árbol binario puede realizarse en un bloque de codificación donde ya no se realiza el particionamiento basado en el árbol cuadrado. El particionamiento basado en el árbol cuadrado ya no puede realizarse en el bloque de codificación particionado basándose en el árbol binario.
Con el fin de realizar un particionamiento adaptativo basándose en el árbol cuadrado o en el árbol binario, puede usarse la información que indica el particionamiento basado en el árbol cuadrado, la información sobre el tamaño/profundidad del bloque de codificación que el particionamiento basado en el árbol binario se permite, la información que indica el particionamiento basado en el árbol binario, la información sobre el tamaño/profundidad del bloque de codificación que el particionamiento basado en el árbol binario se permite, la información sobre el tamaño/profundidad del bloque de codificación que el particionamiento basado en el árbol binario no se permite, la información sobre si se realiza el particionamiento basado en el árbol binario en una dirección vertical o en una dirección horizontal, etc.
Como se muestra en la figura 3, el primer bloque de codificación 300 con la profundidad de partición (profundidad de división) de k puede particionarse en múltiples segundos bloques de codificación basados en el árbol cuadrado. Por ejemplo, los segundos bloques 310 a 340 de codificación puede ser bloques cuadrados que tienen la mitad de anchura y la mitad de
altura del primer bloque de codificación, y la profundidad de partición del segundo bloque de codificación puede aumentarse para k 1.
El segundo bloque 310 de codificación con la profundidad de partición de k 1 puede particionarse en múltiples terceros bloques de codificación con la profundidad de partición de k 2. El particionamiento del segundo bloque 310 de codificación puede realizarse usando selectivamente uno de entre el árbol cuadrado y el árbol binario en función de un modo de partición. En este caso, el particionamiento puede determinarse basándose en al menos una de entre la información que indica el particionamiento basado en un árbol cuadrado y la información que indica el particionamiento basado en un árbol binario.
Cuando el segundo bloque 310 de codificación se particiona basándose en el árbol cuadrado, el segundo bloque 310 de codificación puede particionarse en cuatro terceros bloques 310a de codificación que tienen la mitad de anchura y la mitad de altura del segundo bloque de codificación, y la profundidad de partición del tercer bloque 310a de codificación puede aumentarse en k 2. En contraste, cuando el segundo bloque 310 de codificación se particiona basándose en el árbol binario, el segundo bloque 310 de codificación puede particionarse en dos terceros bloques de codificación. En este caso, cada uno de los dos terceros bloques de codificación puede ser un bloque no cuadrado que tiene una de la mitad de anchura y la mitad de altura del segundo bloque de codificación, y la profundidad de partición puede aumentarse en k 2. El segundo bloque de codificación puede determinarse como un bloque no cuadrado de una dirección horizontal o una dirección vertical en función de una dirección de partición, y la dirección de partición puede determinarse basándose en la información sobre si el particionamiento basado en el árbol binario se realiza en una dirección vertical o en una dirección horizontal.
Mientras tanto, el segundo bloque 310 de codificación puede determinarse como un bloque de codificación de hoja que ya no se particiona basándose en el árbol cuadrado o en el árbol binario. En este caso, el bloque de codificación de hoja puede usarse como un bloque de predicción o un bloque de transformación.
Como el particionamiento del segundo bloque 310 de codificación, el tercer bloque 310a de codificación puede determinarse como un bloque de codificación de hoja, o puede particionarse adicionalmente basándose en el árbol cuadrado o en el árbol binario.
Mientras tanto, el tercer bloque 310b de codificación particionado basándose en el árbol
binario puede particionarse además en los bloques 310b-2 de codificación de una dirección vertical o en los bloques 310b-3 de codificación de una dirección horizontal basándose en el árbol binario, y la profundidad de partición de los bloques de codificación relevantes puede aumentarse en k 3. Como alternativa, el tercer bloque 310b de codificación puede determinarse como un bloque 310b-1 de codificación de hoja que ya no se particiona basándose en el árbol binario. En este caso, el bloque 310b-1 de codificación puede usarse como un bloque de predicción o un bloque de transformación. Sin embargo, el procedimiento de particionamiento anterior puede realizarse de manera limitada basándose en al menos una de entre la información sobre el tamaño/profundidad del bloque de codificación que el particionamiento basado en el árbol cuadrado se permite, la información sobre el tamaño/profundidad del bloque de codificación que el particionamiento basado en el árbol binario se permite, y la información sobre el tamaño/profundidad del bloque de codificación el particionamiento basado en el árbol binario no se permite.
La figura 4 es una vista que ilustra los tipos de modos de predicción intra predefinidos para un dispositivo para codificar/decodificar un video de acuerdo con una realización de la presente invención.
El dispositivo para codificar/decodificar un vídeo puede realizar la predicción intra usando uno de los modos de predicción intra predefinidos. Los modos de predicción intra predefinidos para la predicción intra pueden incluir modos de predicción no direccionales (por ejemplo, un modo plano, un modo DC) y 33 modos de predicción direccionales.
Como alternativa, con el fin de mejorar la precisión de la predicción intra, puede usarse un gran número de modos de predicción direccionales que los 33 modos de predicción direccionales. Es decir, M modos de predicción direccionales extendidos pueden definirse subdividiendo los ángulos de los modos de predicción direccionales (M > 33), y puede obtenerse un modo de predicción direccional que tiene un ángulo predeterminado usando al menos uno de los 33 modos de predicción direccionales predefinidos.
La figura 4 muestra un ejemplo de los modos de predicción intra extendidos, y los modos de predicción intra extendidos pueden incluir dos modos de predicción no direccionales y 65 modos de predicción direccionales extendidos. Los mismos números de modos de predicción intra extendidos pueden usarse para un componente luma y un componente croma, o un número diferente de modos de predicción intra pueden usarse para cada componente. Por ejemplo, pueden usarse 67 modos de predicción intra extendidos para el
componente luma, y pueden usarse 35 modos de predicción intra para el componente croma.
Como alternativa, en función del formato croma, pueden usarse un número diferente de modos de predicción intra en la realización de la predicción intra. Por ejemplo, en el caso del formato 4:2:0, pueden usarse 67 modos de predicción intra para que el componente luma realice la predicción intra y pueden usarse 35 modos de predicción intra para el componente croma. En el caso del formato 4:4:4, pueden usarse 67 modos de predicción intra tanto para el componente luma como para el componente croma para realizar la predicción intra.
Como alternativa, en función del tamaño y/o la forma del bloque, puede usarse un número diferente de modos de predicción intra para realizar la predicción intra. Es decir, en función del tamaño y/o la forma de la PU o CU, pueden usarse 35 modos de predicción intra o 67 modos de predicción intra para realizar la predicción intra. Por ejemplo, cuando la CU o PU tiene el tamaño de menos de 64x64 o se particiona de manera asimétrica, pueden usarse 35 de modos de predicción intra para realizar la predicción intra. Cuando el tamaño de la CU o PU es igual o superior a 64x64, pueden usarse 67 modos de predicción intra para realizar la predicción intra. Pueden permitirse 65 modos de predicción intra direccionales para Intra_2Nx2N, y solo pueden permitirse 35 modos de predicción intra direccionales para Intra_NxN.
La figura 5 es un diagrama de flujo que ilustra brevemente un procedimiento de predicción intra de acuerdo con una realización de la presente invención.
Haciendo referencia a la figura 5, puede determinarse un modo de predicción intra del bloque actual en la etapa S500.
En concreto, el modo de predicción intra del bloque actual puede obtenerse basándose en una lista de candidatos y en un índice. En este caso, la lista de candidatos contiene múltiples candidatos, y los múltiples candidatos pueden determinarse basándose en un modo de predicción intra del bloque vecino adyacente al bloque actual. El bloque vecino puede incluir al menos uno de los bloques localizados en la parte superior, inferior, izquierda, derecha y esquina del bloque actual. El índice puede especificar uno de los múltiples candidatos de la lista de candidatos. El candidato especificado por el índice puede establecerse en el modo de predicción intra del bloque actual.
Un modo de predicción intra usado para la predicción intra en el bloque vecino puede establecerse como un candidato. Además, un modo de predicción intra que tiene una direccionalidad similar a la del modo de predicción intra del bloque vecino puede establecerse como candidato. En este caso, el modo de predicción intra que tiene direccionalidad similar puede determinarse añadiendo o sustrayendo un valor constante predeterminado a o del modo de predicción intra del bloque vecino. El valor constante predeterminado puede ser un número entero, tal como uno, dos o más.
La lista de candidatos puede incluir un modo predeterminado. El modo predeterminado puede incluir al menos uno de entre un modo plano, un modo DC, un modo vertical, y un modo horizontal. El modo predeterminado puede añadirse de manera adaptativa teniendo en cuenta el número máximo de candidatos que puede incluirse en la lista de candidatos del bloque actual.
El número máximo de candidatos que puede incluirse en la lista de candidatos puede ser de tres, cuatro, cinco, seis, o más. El número máximo de candidatos que puede incluirse en la lista de candidatos puede ser un valor fijo preestablecido en el dispositivo para codificar/decodificar un video, o puede determinarse de manera diferente basándose en una característica del bloque actual. La característica puede significar la localización/tamaño/forma del bloque, el número/tipo de modos de predicción intra que el bloque puede usar, etc. Como alternativa, la información que indica el número máximo de candidatos que puede incluirse en la lista de candidatos puede indicarse por separado, y el número máximo de candidatos que puede incluirse en la lista de candidatos puede determinarse de manera diferente usando la información. La información que indica el número máximo de candidatos puede indicarse en al menos uno de entre un nivel de secuencia, un nivel de imagen, un nivel de segmento y un nivel de bloque.
Cuando los modos de predicción intra extendidos y los 35 modos de predicción intra predefinidos se usan selectivamente, los modos de predicción intra de los bloques vecinos pueden transformarse en índices correspondientes a los modos de predicción intra extendidos, o en los índices correspondientes a los 35 de modos de predicción intra, con lo que pueden obtenerse los candidatos. Para transformar un índice, puede usarse una tabla predefinida, o puede usarse una operación de escalado basándose en un valor predeterminado. En este caso, la tabla predefinida puede definir una relación de mapeo entre diferentes grupos de modos de predicción intra (por ejemplo, los modos de predicción intra extendidos y los 35 modos de predicción intra).
Por ejemplo, cuando el bloque vecino izquierdo usa los 35 modos de predicción intra y el modo de predicción intra del bloque vecino izquierdo es 10 (un modo horizontal), puede transformarse en un índice de 16 correspondiente a un modo horizontal en los modos de predicción intra extendidos.
Como alternativa, cuando el bloque vecino superior usa los modos de predicción intra extendidos y el modo de predicción intra, el bloque vecino superior tiene un índice de 50 (un modo vertical), que puede transformarse en un índice de 26 correspondiente a un modo vertical en los 35 modos de predicción intra.
Basándose en el procedimiento descrito anteriormente para determinar el modo de predicción intra, el modo de predicción intra puede obtenerse de manera independiente para cada uno del componente luma y el componente croma, o el modo de predicción intra del componente croma puede obtenerse en función del modo de predicción intra del componente luma.
En concreto, el modo de predicción intra del componente croma puede determinarse basándose en el modo de predicción intra del componente luma como se muestra en la siguiente Tabla 1.
[Tabla 1]
En la Tabla 1, intra_chroma_pred_mode significa la información indicada para especificar el modo de predicción intra del componente croma, e IntraPredModeY indica el modo de predicción intra del componente luma.
Haciendo referencia a la figura 5, puede obtenerse una muestra de referencia para la predicción intra del bloque actual en la etapa S510.
En concreto, puede obtenerse una muestra de referencia para la predicción intra basándose una muestra vecina del bloque actual. La muestra vecina puede ser una muestra reconstruida del bloque vecino, y la muestra reconstruida puede ser una muestra reconstruida antes de que se aplique un filtro en bucle o se aplique una muestra reconstruida después de aplicar el filtro en bucle.
Una muestra vecina reconstruida antes de que el bloque actual pueda usarse como la muestra de referencia, y una muestra vecina filtrada basándose en un filtro intra predeterminado puede usarse como la muestra de referencia. El filtro intra puede incluir al menos uno del primer filtro intra aplicado a múltiples muestras vecinas localizadas en la misma línea horizontal y el segundo filtro intra aplicado a múltiples muestras vecinas localizadas en la misma línea vertical. En función de las posiciones de las muestras vecinas, uno del primer filtro intra y el segundo filtro intra puede aplicarse selectivamente, o puede aplicarse ambos filtros intra.
El filtrado puede realizarse de forma adaptable basándose en al menos uno de los modos de predicción intra del bloque actual y en el tamaño del bloque de transformación del bloque actual. Por ejemplo, cuando el modo de predicción intra del bloque actual es el modo DC, es posible que no se realice el filtrado del modo vertical o el modo horizontal. Cuando el tamaño del bloque de transformación es NxM, es posible que no se realice el filtrado. En este caso, N y M pueden ser los mismos valores o valores diferentes, o pueden ser valores de 4, 8, 16 o más. Como alternativa, el filtrado puede realizarse selectivamente basándose en el resultado de una comparación de un umbral predefinido y la diferencia entre el modo de predicción intra del bloque actual y el modo vertical (o el modo horizontal). Por ejemplo, cuando la diferencia entre el modo de predicción intra del bloque actual y el modo vertical es mayor que un umbral, puede realizarse el filtrado. El umbral puede definirse para cada tamaño del bloque de transformación como se muestra en la Tabla 2.
[Tabla 2]
El filtro intra puede determinarse como uno de los múltiples candidatos de filtro intra predefinidos en el dispositivo para codificar/decodificar un video. Con este fin, puede indicarse un índice que especifica un filtro intra del bloque actual entre los múltiples candidatos de filtro intra. Como alternativa, el filtro intra puede determinarse basándose en al menos uno de entre el tamaño/forma del bloque actual, el tamaño/forma del bloque de transformación, la información sobre la intensidad del filtro y las variaciones de las muestras vecinas.
Haciendo referencia a la figura 5, la predicción intra puede realizarse usando el modo de predicción intra del bloque actual y la muestra de referencia en la etapa S520.
Es decir, la muestra de predicción del bloque actual puede obtenerse usando el modo de predicción intra determinado en la etapa S500 y la muestra de referencia obtenida en la etapa S510. Sin embargo, en el caso de la predicción intra, puede usarse una muestra límite del bloque vecino, y por lo tanto puede disminuirse la calidad de la imagen de predicción. Por lo tanto, puede realizarse un procedimiento de corrección en la muestra de predicción generada a través del procedimiento de predicción descrito anteriormente, y que se describirá en detalle haciendo referencia a las figuras 6 a 15. Sin embargo, el procedimiento de corrección no se limita a aplicarse solo a la muestra de predicción intra, y puede aplicarse a una muestra de predicción inter o a la muestra reconstruida.
La figura 6 es una vista que ilustra un procedimiento para corregir una muestra de predicción de un bloque actual basándose en la información diferencial de las muestras vecinas de acuerdo con una realización de la presente invención.
La muestra de predicción del bloque actual puede corregirse basándose en la información diferencial de múltiples muestras vecinas para el bloque actual. La corrección puede realizarse en todas las muestras de predicción en el bloque actual, o puede realizarse en las muestras de predicción en algunas regiones predeterminadas. Algunas regiones pueden ser una fila/columna o varias filas/columnas, o pueden ser regiones preestablecidas para su
corrección en el dispositivo para codificar/descodificar un video, o pueden determinarse de manera diferente basándose en al menos uno de entre el tamaño/forma del bloque actual y el modo de predicción intra.
Las muestras vecinas pueden pertenecer a los bloques vecinos colocados en la parte superior, la izquierda y la esquina superior izquierda del bloque actual. El número de muestras vecinas usadas para la corrección puede ser dos, tres, cuatro o más. Las posiciones de las muestras vecinas pueden determinarse de manera diferente en función de la posición de la muestra de predicción que es el objetivo de corrección en el bloque actual. Como alternativa, algunas de las muestras vecinas pueden tener posiciones fijas independientemente de la posición de la muestra de predicción que es el objetivo de corrección, y las muestras vecinas restantes pueden tener diferentes posiciones determinadas en función de la posición de la muestra de predicción que es el objetivo de corrección.
La información diferencial de las muestras vecinas puede significar una muestra diferencial entre las muestras vecinas, o puede significar un valor obtenido escalando la muestra diferencial por un valor constante predeterminado (por ejemplo, uno, dos, tres, etc.). En este caso, el valor constante predeterminado puede determinarse considerando la posición de la muestra de predicción que es el objetivo de corrección, la posición de la columna o fila que incluye la muestra de predicción que es el objetivo de corrección, la posición de la muestra de predicción dentro de la columna o fila, etc.
Por ejemplo, cuando el modo de predicción intra del bloque actual es el modo vertical, pueden usarse las muestras diferenciales entre la muestra vecina superior izquierda p(-1, -1) y las muestras vecinas p(-1, y) adyacentes al límite izquierdo del bloque actual para obtener la muestra de predicción final como se muestra en la Fórmula 1. (y = 0... N-1)
[Fórmula 1]
En las Fórmulas 1-6, el operador ">>” denota el desplazamiento bit a bit a la derecha.
Por ejemplo, cuando el modo de predicción intra del bloque actual es el modo horizontal, pueden usarse las muestras diferenciales entre la muestra vecina superior izquierda p(-1, -1) y las muestras vecinas p(x, -1) adyacentes al límite superior del bloque actual para obtener la muestra de predicción final como se muestra en la Fórmula 2. (x = 0... N-1)
[Fórmula 2]
P'(x,0) = p(x,0) ( p(x,-1) - p(-1,-1) ) >> 1
Por ejemplo, cuando el modo de predicción intra del bloque actual es el modo vertical, pueden usarse las muestras diferenciales entre la muestra vecina superior izquierda p(-1, -1) y las muestras vecinas p(-1, y) adyacentes al límite izquierdo del bloque actual para obtener la muestra de predicción final. En este caso, la muestra diferencial puede añadirse a la muestra de predicción, o la muestra diferencial puede escalarse mediante un valor constante predeterminado, y a continuación añadirse a la muestra de predicción. El valor constante predeterminado usado en la escala puede determinarse de manera diferente en función de la columna y/o la fila. Por ejemplo, la muestra de predicción puede corregirse como se muestra en la Fórmula 3 y en la Fórmula 4. (y = 0... N-1)
[Fórmula 3]
P'(0,y) = P(0,y) ( p(-1,y) -p(-1,-1) ) >> 1
[Fórmula 4]
P'(1,y) = P(1,y) ( p(-1,y) - p(-1,-1) ) >> 2
Por ejemplo, cuando el modo de predicción intra del bloque actual es el modo horizontal, pueden usarse las muestras diferenciales entre la muestra vecina superior izquierda p(-1, -1) y las muestras vecinas p(x, -1) adyacentes al límite superior del bloque actual para obtener la muestra de predicción final, como se describe en el caso del modo vertical. Por ejemplo, la muestra de predicción puede corregirse como se muestra en la Fórmula 5 y en la Fórmula 6. (x = 0.... N-1)
[Fórmula 5]
P'(x,0) = p(x,0) ( p(x,-1) -p(-1,-1) ) >> 1
[Fórmula 6]
P'(x,1) = p(x,1) ( p(x,-1) -p(-1,-1) ) >> 2
Las figuras 7 y 8 son vistas que ilustran un procedimiento para corregir una muestra de predicción basándose en un filtro de corrección predeterminada de acuerdo con una realización de la presente invención.
La muestra de predicción puede corregirse basándose en la muestra vecina de la muestra de predicción que es el objetivo de corrección y en un filtro de corrección predeterminada. En este caso, la muestra vecina puede especificarse mediante una línea angular del modo de predicción direccional del bloque actual, o puede ser al menos una muestra colocada en la misma línea angular que la muestra de predicción que es el objetivo de corrección. Además, la muestra vecina puede ser una muestra de predicción en el bloque actual, o puede ser una muestra reconstruida en un bloque vecino reconstruido antes del bloque actual.
Al menos uno del número de derivaciones, la fuerza, y un coeficiente de filtro del filtro de corrección puede determinarse basándose en al menos uno de entre la posición de la muestra de predicción que es el objetivo de corrección, el hecho de si la muestra de predicción que es el objetivo de corrección está posicionada o no en el límite del bloque actual, el modo de predicción intra del bloque actual, el ángulo del modo de predicción direccional, el modo de predicción (el modo inter o intra) del bloque vecino, y el tamaño/forma del bloque actual.
Haciendo referencia a la figura 7, cuando el modo de predicción direccional tiene un índice de 2 o 34, al menos una muestra de predicción/reconstruida colocada en la parte inferior izquierda de la muestra de predicción que es el objetivo de corrección y el filtro de corrección predeterminado pueden usarse para obtener la muestra de predicción final. En este caso, la muestra de predicción/reconstruida en la parte inferior izquierda puede pertenecer a una línea anterior de una línea que incluye la muestra de predicción que es el objetivo de corrección, para el mismo bloque que la muestra actual, o para el bloque vecino adyacente al bloque actual.
El filtrado para la muestra de predicción puede realizarse únicamente en la línea localizada en el límite del bloque, o puede realizarse en múltiples líneas. Puede usarse el filtro de corrección donde al menos uno del número de derivaciones de filtro y un coeficiente de filtro es diferente para cada una de las líneas. Por ejemplo, puede usarse un filtro (1/2, 1/2) para
la primera línea izquierda más cercana al límite del bloque, puede usarse un filtro (12/16, 4/16) para la segunda línea, puede usarse un filtro (14/16, 2/16) para la tercera línea, y puede usarse un filtro (15/16, 1/16) para la cuarta línea.
Como alternativa, cuando el modo de predicción direccional tiene un índice de 3 a 6 o de 30 a 33, el filtrado puede realizarse en el límite del bloque como se muestra en la figura 8, y puede usarse un filtro de corrección de 3 tomas para corregir la muestra de predicción. El filtrado puede realizarse usando la muestra inferior izquierda de la muestra de predicción que es el objetivo de corrección, la muestra inferior de la muestra inferior izquierda y un filtro de corrección de 3 tomas que toma como entrada la muestra de predicción que es el objetivo de corrección. La posición de la muestra vecina usada por el filtro de corrección puede determinarse de manera diferente basándose en el modo de predicción direccional. El coeficiente de filtro del filtro de corrección puede determinarse de manera diferente en función del modo de predicción direccional.
Pueden aplicarse diferentes filtros de corrección en función de si el bloque vecino se codifica en el modo inter o en el modo intra. Cuando el bloque vecino se codifica en el modo intra, puede usarse un procedimiento de filtrado en el que se da más peso a la muestra de predicción, en comparación con cuando el bloque vecino se codifica en el modo inter. Por ejemplo, en el caso de que el modo de predicción intra sea 34, cuando el bloque vecino se codifica en el modo inter, puede usarse un filtro (1/2, 1/2), y cuando el bloque vecino se codifica en el modo intra, puede usarse un filtro (4/16, 12/16).
El número de líneas a filtrar en el bloque actual puede variar en función del tamaño/forma del bloque actual (por ejemplo, el bloque de codificación y el bloque de predicción). Por ejemplo, cuando el tamaño del bloque actual es igual o inferior a 32x32, el filtrado puede realizarse solo en una línea en el límite del bloque; de lo contrario, el filtrado puede realizarse en varias líneas, incluida la línea en el límite del bloque.
Las figuras 7 y 8 se basan en el caso donde se usan los 35 modos de predicción intra en la figura. 4, pero pueden aplicarse igualmente/similarmente al caso donde se usen los modos de predicción intra extendidos.
La figura 9 es una vista que ilustra un procedimiento para corregir una muestra de predicción usando el peso y el desplazamiento de acuerdo con una realización de la presente invención.
Cuando brillo cambia entre la trama anterior y la trama actual ocurre, a pesar de que el bloque actual es similar a un bloque adjunto de la trama anterior, que la imagen de predicción no puede codificarse en predicción intra o en predicción inter, o la calidad de la imagen de predicción codificada en predicción intra o en predicción inter puede ser relativamente baja. En este caso, el peso y el desplazamiento para la compensación de brillo pueden aplicarse a la muestra de predicción de tal manera que la calidad de la imagen de predicción puede mejorarse.
Haciendo referencia a la figura 9, al menos uno del peso w y el desplazamiento f pueden determinarse en la etapa S900.
Al menos uno del peso w y desplazamiento f puede indicarse en al menos uno de un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, y una cabecera de segmento. Como alternativa, al menos uno de entre el peso w y el desplazamiento f puede indicarse en unidades de bloque predeterminadas compartiendo los mismos, y múltiples bloques (por ejemplo, la CU, la PU, y la TU) que pertenecen a una unidad de bloque predeterminada que pueden compartir uno de entre el peso w y/o el desplazamiento f indicados.
Al menos uno de entre el peso w y el desplazamiento f puede indicarse independientemente del modo de predicción del bloque actual, y puede indicarse selectivamente considerando el modo de predicción. Por ejemplo, cuando el modo de predicción del bloque actual es el modo inter, puede indicarse el peso w y/o el desplazamiento f; de lo contrario, no pueden indicarse. En este caso, el modo inter puede incluir al menos uno de entre el modo de omisión, el modo de mezcla, el modo AMVP y el modo de referencia de imagen actual. El modo de referencia de imagen actual puede significar un modo de predicción que usa una región pre-reconstruida en la imagen actual que incluye el bloque actual. Puede usarse un vector de movimiento para el modo de referencia de imagen actual para especificar la región pre-reconstruida. Un indicador o índice que indica si el bloque actual está codificado en el modo de referencia de imagen actual puede indicarse, o puede obtenerse a través de un índice de imagen de referencia del bloque actual. La imagen actual para el modo de referencia de imagen actual puede existir en una posición fija (por ejemplo, la posición con refIdx = 0 o la última posición) en la lista de imágenes de referencia del bloque actual. Como alternativa, la imagen actual puede estar colocada de manera diferente en la lista de imágenes de referencia, y para este fin, puede indicarse un índice de imagen de referencia
separado que indica la posición de la imagen actual.
El peso puede obtenerse usando el cambio de brillo entre la primera plantilla, que tiene una determinada forma de plantilla y que es adyacente al bloque actual, y la segunda plantilla que es adyacente al bloque que va antes del actual. La segunda plantilla puede incluir una muestra no disponible. En este caso, una muestra disponible puede copiarse a la posición de la muestra no disponible, o la muestra disponible puede obtenerse por interpolación entre múltiples muestras disponibles. En este caso, la muestra disponible puede incluirse en la segunda plantilla o en el bloque vecino. Al menos uno de entre el coeficiente, la forma y el número de tomas del filtro usado en la interpolación puede determinarse de manera diferente basándose en el tamaño y/o la forma de la plantilla. Un procedimiento de composición de una plantilla se describirá en detalle haciendo referencia a las figuras 10 a 15.
Por ejemplo, cuando la muestra vecina del bloque actual se designa por yi (i oscilando de 0 a N-1) y la muestra vecina del bloque adjunto se designa por xi (i oscilando de 0 a N-1), el peso w y el desplazamiento f pueden obtenerse de la siguiente manera.
Usando una plantilla de forma específica, adyacente al bloque actual, pueden obtenerse el peso w y el desplazamiento f obteniendo el valor mínimo de E(w, f) en la Fórmula 7.
[Fórmula 7]
La fórmula 7 para obtener el valor mínimo puede cambiarse a la Fórmula 8.
La fórmula 9 para obtener el peso w y la fórmula 10 para obtener el desplazamiento f puede obtenerse a partir de la fórmula 8.
[Fórmula 9]
[Fórmula 10]
Haciendo referencia a la figura 9, al menos uno de entre el peso y el desplazamiento determinados en la etapa S900 puede usarse para corregir la muestra de predicción.
Por ejemplo, cuando se produce un cambio de brillo en todas las tramas, el peso w y el desplazamiento f se aplican a la muestra de predicción p generada a través de la predicción intra de tal manera que puede obtenerse una muestra de predicción corregida p’ como se muestra en la Fórmula 11.
[Fórmula 11]
p’ = w X p f
En este caso, el peso w y el desplazamiento f pueden aplicarse a la muestra de predicción generada a través de la predicción inter, o pueden aplicarse a la muestra reconstruida.
Las figuras 10 a 15 son vistas que ilustran un procedimiento de composición de una plantilla para determinar el peso w de acuerdo con una realización de la presente invención.
Haciendo referencia a la izquierda de la figura 10, una plantilla puede estar compuesta de todas las muestras vecinas adyacentes al bloque actual, o una plantilla puede estar compuesta de algunas muestras submuestreadas a partir de las muestras vecinas adyacentes al bloque actual. El medio de la figura 10 muestra un ejemplo de 1/2 submuestreo, y una plantilla puede estar compuesta solo de muestras en gris. En lugar de 1/2 submuestreo, la plantilla puede componerse usando 1/4 de submuestreo o 1/8 submuestreo. Como se muestra a la derecha de la figura 10, una plantilla puede estar compuesta por todas las muestras vecinas adyacentes al bloque actual, excepto por la muestra colocada en la parte superior izquierda. No se muestra en la figura 10, considerando la posición del bloque actual en la imagen o un bloque de árbol de codificación (la unidad de codificación más grande), puede usarse una plantilla compuesta solo por las muestras colocadas a la izquierda o una plantilla compuesta solo por las muestras colocadas en la parte superior.
Haciendo referencia a la figura 11, la plantilla puede componerse aumentando el número de muestras vecinas. Es decir, la plantilla en la figura 11 puede estar compuesta de las primeras muestras vecinas adyacentes al límite del bloque actual y de las segundas
muestras vecinas adyacentes a las primeras muestras vecinas.
Como se muestra en la izquierda de la figura. 11, una plantilla puede estar compuesta de todas las muestras vecinas que pertenecen a dos líneas adyacentes al límite del bloque actual, o como se muestra en el medio de la figura 11, una plantilla puede estar compuesta por un submuestreo de la plantilla en la izquierda. Como se muestra a la derecha de la figura 11, una plantilla puede componerse excluyendo cuatro muestras que pertenecen a la parte superior izquierda. No mostrado en la figura 11, considerando la posición del bloque actual en la imagen o un bloque de árbol de codificación (la unidad de codificación más grande), puede usarse una plantilla compuesta únicamente por las muestras colocadas a la izquierda o una plantilla compuesta únicamente por las muestras colocadas en la parte superior.
Como alternativa, pueden componerse diferentes plantillas en función del tamaño y/o la forma del bloque actual (si el bloque actual tiene una forma cuadrada, si el bloque actual se particiona simétricamente). Por ejemplo, como se muestra en la figura 12, una tasa de submuestreo de la plantilla puede aplicarse de manera diferente en función del tamaño del bloque actual. Por ejemplo, como se muestra a la izquierda de la figura 12, cuando el tamaño del bloque es igual a o menor que 64x64, puede componerse 1/2 de plantilla de submuestra. Como se muestra a la derecha de la figura 12, cuando el tamaño del bloque es igual a o mayor que 128x128, 1/4 de plantilla de submuestra.
Haciendo referencia a la figura 13, la plantilla puede componerse aumentando el número de muestras vecinas adyacentes al bloque actual en función del tamaño del mismo.
Pueden usarse múltiples candidatos de plantilla que pueden determinarse en una secuencia o una rebanada, y puede usarse selectivamente uno de los múltiples candidatos de plantilla. Los múltiples candidatos de plantilla pueden ser plantillas de diferentes formas y/o tamaños. La información sobre la forma y/o el tamaño de la plantilla puede indicarse en una cabecera de secuencia o cabecera de segmento. En el dispositivo para codificar/decodificar un video, puede asignarse un índice a cada candidato de plantilla. Con el fin de identificar los candidatos de plantilla a usar en la secuencia, imagen o segmento actual entre los múltiples candidatos de plantilla, puede codificarse la sintaxis type_weight_pred_template_idx. El dispositivo para decodificar un video puede usar los candidatos de plantilla de manera selectiva basándose en la sintaxis type_weight_pred_template_idx.
Por ejemplo, como se muestra en la figura 14, la plantilla del medio de la figura 10 puede asignarse a 0, la plantilla de la derecha de la figura 10 puede asignarse a 1, la plantilla del centro de la figura 11 puede asignarse a 2, y la plantilla de la derecha de la figura 11 puede asignarse a 3. La plantilla usada en la secuencia puede indicarse.
Al realizar la predicción ponderada usando un bloque no cuadrado, la plantilla puede componerse aplicando diferentes tasas de submuestreo para lados largos y cortos de tal manera que el número total de plantillas es 2AN. Por ejemplo, como se muestra en la figura 15, la plantilla se puede componer realizando 1/2 de submuestreo en el lado corto y 1/4 de submuestreo en el lado largo
Aplicabilidad industrial
La presente invención puede usarse para codificar/decodificar una señal de vídeo.