ES2737843B2 - Metodo y aparato para procesar una senal de video - Google Patents

Metodo y aparato para procesar una senal de video Download PDF

Info

Publication number
ES2737843B2
ES2737843B2 ES201931076A ES201931076A ES2737843B2 ES 2737843 B2 ES2737843 B2 ES 2737843B2 ES 201931076 A ES201931076 A ES 201931076A ES 201931076 A ES201931076 A ES 201931076A ES 2737843 B2 ES2737843 B2 ES 2737843B2
Authority
ES
Spain
Prior art keywords
block
prediction
current block
image
current
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
ES201931076A
Other languages
English (en)
Other versions
ES2737843A2 (es
ES2737843R1 (es
Inventor
Bae Keun Lee
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.)
KT Corp
Original Assignee
KT Corp
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 KT Corp filed Critical KT Corp
Publication of ES2737843A2 publication Critical patent/ES2737843A2/es
Publication of ES2737843R1 publication Critical patent/ES2737843R1/es
Application granted granted Critical
Publication of ES2737843B2 publication Critical patent/ES2737843B2/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

DESCRIPCIÓN
Método y aparato para procesar una señal de vídeo
Campo técnico
La presente invención se refiere a un método y un aparato para procesar señales de vídeo.
Técnica anterior
Recientemente, la demanda de imágenes de alta resolución y alta calidad como imágenes de alta definición (HD) e imágenes de ultra alta definición (UHD) ha aumentado en varios campos de aplicación. Sin embargo, los datos de imagen de mayor resolución y calidad tienen cantidades cada vez mayores de datos en comparación con los datos de imagen convencionales. Por lo tanto, cuando se transmiten datos de imágenes utilizando un medio como las redes de banda ancha convencionales e inalámbricas, o cuando se almacenan datos de imágenes utilizando un medio de almacenamiento convencional, aumentan los costes de transmisión y almacenamiento. Para resolver estos problemas que ocurren con un aumento en la resolución y la calidad de los datos de imagen, se pueden utilizar técnicas de codificación/decodificación de imagen de alta eficiencia.
La tecnología de compresión de imágenes incluye varias técnicas, entre ellas: una técnica de interpredicción de predicción de 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 intrapredicción de predicción de un valor de píxel incluido en una imagen actual mediante el uso de información de píxeles en la imagen actual; una técnica de codificación por entropía de asignar un código corto a un valor con una frecuencia de aparición alta y asignar un código largo a un valor con una frecuencia de aparición baja; etc. Los datos de imagen se pueden comprimir de manera efectiva usando dicha tecnología de compresión de imagen y se pueden transmitir o almacenar.
Mientras tanto, con la demanda de imágenes de alta resolución, la demanda de contenido de imágenes estereográficas, que es un nuevo servicio de imágenes, también ha aumentado. Se está debatiendo una técnica de compresión de vídeo para proporcionar efectivamente contenido de imágenes estereográficas con alta resolución y resolución ultra alta.
Divulgación
Problema técnico
Un objeto de la presente invención pretende proporcionar un método y un aparato para realizar eficazmente la interpredicción para un bloque objetivo de codificación/decodificación en la codificación/decodificación de una señal de video.
Un objeto de la presente invención está destinado a proporcionar un método y un aparato para determinar de manera variable/adaptativa una ponderación para cada imagen de referencia en la codificación/decodificación de una señal de video, y realizar una predicción bidireccional basada en una operación de suma ponderada de una pluralidad de bloques de predicción.
El objetivo de la presente invención es proporcionar un método y un aparato para codificar/decodificar eficientemente un parámetro de predicción ponderado para determinar las ponderaciones que se aplicarán a ambas imágenes de referencia al codificar/decodificar una señal de video.
Los objetivos técnicos a alcanzar por la presente invención no están limitados a los problemas técnicos mencionados anteriormente. Y otros problemas técnicos que no se mencionan se entenderán de manera evidente para los expertos en la materia a partir de la siguiente descripción.
Solución técnica
Un método y un aparato para decodificar una señal de video de acuerdo con la presente invención pueden obtener un parámetro de predicción ponderado de un bloque actual, determinar las ponderaciones que se aplican a un primer bloque de predicción generado en base a una primera imagen de referencia y un segundo bloque de predicción generado en base a una segunda imagen de referencia basada en el parámetro de predicción ponderado y obtiene un bloque de predicción final del bloque actual basado en una suma ponderada del primer bloque de predicción y el segundo bloque de predicción.
Un método y un aparato para codificar una señal de video de acuerdo con la presente invención pueden determinar las ponderaciones que se aplican a un primer bloque de predicción generado en base a una primera imagen de referencia y un segundo bloque de predicción generado en base a una segunda imagen de referencia basada en un parámetro de predicción ponderado de un bloque actual, y generar un bloque de predicción final del bloque actual basado en una suma ponderada del primer bloque de predicción y del segundo bloque de predicción.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, el parámetro de predicción ponderado puede determinarse uno de un parámetro de predicción ponderado candidato, especificado por información de índice entre una pluralidad de parámetros de predicción ponderados candidatos.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, la información de índice se puede binarizar con una binarización unaria truncada.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, una longitud de bits de la información de índice puede determinarse en función de si los órdenes temporales de la primera imagen de referencia y la segunda imagen de referencia son iguales.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, una longitud de bits de la información de índice puede determinarse en función de si al menos una de la distancia entre la primera imagen de referencia y la imagen actual que incluye el bloque actual y una distancia entre la segunda imagen de referencia y la imagen actual son iguales.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, el parámetro de predicción ponderado puede determinarse como uno de los parámetros de predicción candidatos incluidos en un conjunto de parámetros de predicción ponderados del bloque actual.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, el conjunto de parámetros de predicción ponderados puede determinarse en base a al menos una distancia entre la primera imagen de referencia y la imagen actual, incluyendo el bloque actual, o una distancia entre la segunda imagen de referencia y la imagen actual.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, el conjunto de parámetros de predicción ponderados puede determinarse en función de si las direcciones temporales de la primera imagen de referencia y la segunda imagen de referencia son iguales.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, el parámetro de predicción ponderado del bloque actual puede derivarse de un bloque vecino adyacente al bloque actual.
En el método y el aparato para codificar/decodificar una señal de video de acuerdo con la presente invención, el parámetro de predicción ponderado del bloque actual puede determinarse basándose en una diferencia de orden temporal entre una imagen actual y la primera imagen de referencia y una diferencia de orden temporal entre la imagen actual y la segunda imagen de referencia.
Las características resumidas de manera breve anteriormente para la presente invención son solo aspectos ilustrativos de la descripción detallada de la invención que sigue, pero no limitan el alcance de la invención.
Efectos ventajosos
De acuerdo con la presente invención, se puede realizar una interpredicción eficiente para un bloque objetivo de codificación/decodificación.
De acuerdo con la presente invención, una ponderación puede determinarse de forma variable/adaptativa para cada imagen de referencia cuando se realiza una predicción bidireccional.
Según la presente invención, un parámetro de predicción ponderado para determinar las ponderaciones aplicadas a ambas imágenes de referencia puede codificarse/decodificarse de manera eficiente.
Los efectos obtenibles por la presente invención no están limitados a los efectos mencionados anteriormente, y los expertos en la técnica pueden entender claramente otros efectos no mencionados a partir de la siguiente descripción.
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 un diagrama que ilustra un ejemplo de partición jerárquica de un bloque de codificación basado en una estructura de árbol de acuerdo con una realización de la presente invención.
La figura 4 es un diagrama que ilustra un tipo de partición en el que se permite la partición basada en árbol binario de acuerdo con una realización de la presente invención.
La figura 5 es un diagrama que ilustra un ejemplo en el que solo se permite una partición basada en árbol binario de un tipo predeterminado de acuerdo con una realización de la presente invención.
La figura 6 es un diagrama para explicar un ejemplo en el que la información relacionada con el número permitido de partición de árbol binario se codifica/decodifica, de acuerdo con una realización a la que se aplica la presente invención.
La figura 7 es un diagrama que ilustra un modo de partición aplicable a un bloque de codificación de acuerdo con una realización de la presente invención.
La figura 8 es un diagrama de flujo que ilustra procesos de obtención de una muestra residual de acuerdo con una realización a la que se aplica la presente invención.
La figura 9 es un diagrama de flujo que ilustra un método de interpredicción de acuerdo con una realización a la que se aplica la presente invención.
La figura 10 es un diagrama que ilustra los procesos de derivar información de movimiento de un bloque actual cuando se aplica un modo de fusión al bloque actual.
La figura 11 es un diagrama que ilustra procesos de derivación de información de movimiento de un bloque actual cuando se aplica un modo AMVP al bloque actual.
La figura 12 es un diagrama de un método de predicción ponderada bidireccional, de acuerdo con una realización de la presente invención.
La figura 13 es un diagrama para explicar un principio de predicción ponderada bidireccional.
La figura 14 es un diagrama que ilustra un orden de exploración entre bloques vecinos.
Modo de la invención
Se pueden realizar una variedad de modificaciones a la presente invención y existen diversas realizaciones de la presente invención, cuyos ejemplos se proporcionarán ahora con referencia a los dibujos y se describirán con detalle. Sin embargo, la presente invención no se limita a esto, y las realizaciones ejemplares pueden interpretarse como que incluyen todas las modificaciones, equivalentes o sustitutos en un concepto técnico y un alcance técnico de la presente invención. Los números de referencia similares se refieren al elemento similar descrito en los dibujos.
Los términos utilizados en la especificación, 'primero', 'segundo', etc. se pueden usar para describir varios componentes, pero los componentes no deben interpretarse como limitados a los términos. Los términos solo se utilizan para diferenciar un componente de otros componentes. Por ejemplo, el "primer" componente puede denominarse el "segundo" componente sin apartarse del alcance de la presente invención, y el "segundo" componente también puede denominarse de manera similar al "primer" componente. El término 'y/o' incluye una combinación de una pluralidad de elementos o cualquiera de una pluralidad de términos.
Se entenderá que cuando se hace referencia simplemente a un elemento como 'conectado a' o 'acoplado a' otro elemento sin estar 'directamente conectado a' o 'directamente acoplado a' otro elemento en la presente descripción, puede estar 'directamente' conectado a 'o' directamente acoplado a’ otro elemento o estar conectado o acoplado a otro elemento, teniendo el otro elemento que interviene entre ellos. Por el contrario, cuando se hace referencia a un elemento como "directamente conectado” o "directamente acoplado" a otra característica o elemento, no hay elementos intermedios presentes.
Los términos utilizados en la presente memoria descriptiva se usan simplemente para describir realizaciones particulares, y no pretenden limitar la presente invención. Una expresión usada en singular abarca la expresión del plural, a menos que tenga un significado claramente diferente en el contexto. En la presente memoria descriptiva, debe entenderse que términos tales como "incluyendo", "teniendo", etc. pretenden indicar la existencia de las características, números, etapas, acciones, elementos, partes o combinaciones de los mismos que se describen en la especificación, y no pretenden excluir la posibilidad de que una o más características, números, etapas, acciones, elementos, partes o combinaciones de los mismos puedan existir o agregarse.
A continuación, se describirán detalladamente las realizaciones de la presente invención en el presente documento con referencia a los dibujos adjuntos. De aquí en adelante, los mismos elementos constituyentes en los dibujos se denotan 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 vídeo de acuerdo con una realización de la presente invención.
Con referencia a la figura 1, el dispositivo 100 para codificar un vídeo puede incluir: un módulo de partición de imágenes 110, módulos de predicción 120 y 125, un módulo de transformación 130, un módulo de cuantificación 135, un módulo de reordenamiento 160, un módulo de codificación de entropía 165, un módulo de cuantificación inversa 140, un módulo de transformación inversa 145, un módulo de filtro 150 y una memoria 155.
Las partes mostradas en la figura 1 se muestran de forma independiente para representar funciones características diferentes entre sí en el dispositivo para codificar un vídeo. Por lo tanto, no significa que cada parte constitucional se constituya en una unidad constitucional de hardware o software separado. En otras palabras, cada parte constitucional incluye cada una de las partes constitucionales enumeradas por conveniencia. Por lo tanto, al menos dos partes constitucionales de cada parte constitucional pueden combinarse para formar una parte constitucional o una parte constitucional puede dividirse en una pluralidad de partes constitucionales para realizar cada función. La realización en la que se combina cada parte constitucional y la realización en la que se divide una parte constitucional 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, pero pueden ser constituyentes selectivos que mejoran solo el rendimiento de los mismos. La presente invención puede implementarse incluyendo solo las partes constitucionales indispensables para implementar la esencia de la presente invención, excepto los constituyentes utilizados para mejorar el rendimiento. La estructura que incluye solo los constituyentes indispensables, excepto los constituyentes selectivos utilizados para mejorar solo el rendimiento, también se incluye en el alcance de la presente invención.
El módulo de partición de imágenes 110 puede dividir una imagen de entrada en una o más unidades de procesamiento. Aquí, 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 de partición de imágenes 110 puede dividir 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, función de coste).
Por ejemplo, una imagen puede dividirse en varias unidades de codificación. Se puede usar una estructura de árbol recursiva, como una estructura de árbol cuádruple, para dividir una imagen en unidades de codificación. Una unidad de codificación que se divide en otras unidades de codificación con una imagen o una unidad de codificación más grande como raíz puede particionarse con nodos secundarios correspondientes al número de unidades de codificación particionadas. Una unidad de codificación que ya no está particionada por una limitación predeterminada sirve como un nodo de hoja. Es decir, cuando se supone que solo es posible una partición cuadrada para una unidad de codificación, una unidad de codificación se puede dividir como máximo en otras cuatro unidades de codificación.
De aquí en adelante, 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 descodificación.
Una unidad de predicción puede ser una de las particiones divididas en una forma cuadrada o rectangular que tiene el mismo tamaño en una sola unidad de codificación, o una unidad de predicción puede ser una de las particiones particionadas para tener una forma/tamaño diferente en una sola unidad de codificación.
Cuando se genera una unidad de predicción sujeta a intrapredicción basada en una unidad de codificación y la unidad de codificación no es la unidad de codificación más pequeña, se puede realizar la intrapredicción sin dividir la unidad de codificación en múltiples unidades de predicción NxN.
Los módulos de predicción 120 y 125 pueden incluir un módulo de interpredicción 120 que realiza la interpredicción y un módulo de intrapredicción 125 que realiza la intrapredicción. Se puede determinar si realizar la interpredicción o la intrapredicción para la unidad de predicción, y se puede determinar información detallada (por ejemplo, un modo de intrapredicción, un vector de movimiento, una imagen de referencia, etc.) de acuerdo con cada método de predicción. Aquí, la unidad de procesamiento sujeta a predicción puede ser diferente de la unidad de procesamiento para la cual se determina el método de predicción y el contenido detallado. Por ejemplo, el método de predicción, el modo de predicción, etc. pueden determinarse por la unidad de predicción, y la unidad de transformación puede realizar la predicción. Se puede ingresar un valor residual (bloque residual) entre el bloque de predicción generado y un bloque original al módulo de transformación 130. Además, la información del modo de predicción, la información del vector de movimiento, etc. utilizada para la predicción puede codificarse con el valor residual mediante el módulo de codificación de entropía 165 y puede transmitirse a un dispositivo para decodificar un vídeo. Cuando se usa un modo de codificación particular, es posible transmitir a un dispositivo para decodificar vídeo codificando el bloque original tal como es sin generar el bloque de predicción a través de los módulos de predicción 120 y 125.
El módulo de interpredicción 120 puede predecir la unidad de predicción basándose en la información de al menos una de una imagen anterior o una imagen subsiguiente 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 de interpredicción 120 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 imágenes de referencia puede recibir información de imágenes de referencia de la memoria 155 y puede generar información de píxeles de un píxel entero o menos que el píxel entero de la imagen de referencia. En el caso de píxeles de luminancia, se puede usar un filtro de interpolación basado en DCT de 8 toques con diferentes coeficientes de filtro para generar información de píxeles de un píxel entero o menos de un píxel entero en unidades de 1/4 de píxel. En el caso de señales de croma, se puede usar un filtro de interpolación basado en DCT de 4 toques que tiene un coeficiente de filtro diferente para generar información de píxeles de un píxel entero o menos de un píxel entero en unidades de 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 métodos para calcular un vector de movimiento, se pueden utilizar varios métodos, como un algoritmo de coincidencia de bloques basado en búsqueda completa (FBMA), una búsqueda en tres etapas (TSS), un nuevo algoritmo de búsqueda en tres etapas (NTS), etc. El vector de movimiento puede tener un valor de vector de movimiento en unidades de 1/2 píxel o 1/4 de píxel basado en un píxel interpolado. El módulo de predicción de movimiento puede predecir una unidad de predicción actual cambiando el método de predicción de movimiento. Como métodos de predicción de movimiento, se pueden usar varios métodos, como el método de omisión, el método de combinación, el método AMVP (predicción avanzada de vectores de movimiento), el método de copia intrabloque, etc.
El módulo de intrapredicción 125 puede generar una unidad de predicción basada en información de píxeles de referencia adyacente a un bloque actual que es información de píxeles en la imagen actual. Cuando el bloque vecino de la unidad de predicción actual es un bloque sometido a interpredicción y, por lo tanto, un píxel de referencia es un píxel sometido a interpredicción, el píxel de referencia incluido en el bloque sometido a interpredicción puede ser reemplazado por información de píxeles de referencia de un bloque vecino sujeto a intrapredicción. Es decir, cuando un píxel de referencia no está disponible, se puede usar al menos un píxel de referencia de píxeles de referencia disponibles en lugar de información de píxeles de referencia no disponible.
Los modos de predicción en la intrapredicción pueden incluir un modo de predicción direccional que utiliza información de píxeles de referencia que depende de la dirección de la predicción y un modo de predicción no direccional que no utiliza información direccional para realizar la predicción. Un modo para predecir la información de luminancia puede ser diferente de un modo para predecir la información de croma, y para predecir la información de croma, se puede utilizar la información de modo de intrapredicción utilizada para predecir la información de luminancia o información de señal de luminancia predicha.
Al realizar la intrapredicción, cuando el tamaño de la unidad de predicción es el mismo que el tamaño de la unidad de transformación, la intrapredicción se puede realizar en la unidad de predicción en función de los píxeles situados a la izquierda, arriba a la izquierda y arriba de la predicción unidad. Sin embargo, al realizar la intrapredicción, cuando el tamaño de la unidad de predicción es diferente del tamaño de la unidad de transformación, la intrapredicción puede realizarse utilizando un píxel de referencia basado en la unidad de transformación. Además, la intrapredicción utilizando partición NxN puede usarse solo para la unidad de codificación más pequeña.
En el método de intrapredicción, se puede generar un bloque de predicción después de aplicar un filtro AIS (filtrado intra adaptativo) a un píxel de referencia en función de los modos de predicción. El tipo de filtro AIS aplicado al píxel de referencia puede variar. Para realizar el método de intrapredicción, se puede predecir un modo de intrapredicción de la unidad de predicción actual a partir del modo de intrapredicción de la unidad de predicción adyacente a la unidad de predicción actual. En la predicción del modo de predicción de la unidad de predicción actual mediante el uso de información de modo predicha desde la unidad de predicción vecina, cuando el modo de intrapredicción de la unidad de predicción actual es el mismo que el modo de intrapredicción de la unidad de predicción vecina, la información indica que los modos de predicción de la unidad de predicción actual y la unidad de predicción vecina son iguales entre sí pueden transmitirse usando información de bandera 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, se puede realizar la codificación de entropía para codificar la información del 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 sometida a predicción y el bloque original de la unidad de predicción puede generarse basándose en las unidades de predicción generadas por los módulos de predicción 120 y 125. El bloque residual generado puede introducirse en el módulo de transformación 130.
El módulo de transformación 130 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 de predicción 120 y 125 mediante el uso de un método de transformación, como la transformada discreta de coseno (DCT), la transformada de seno discreta (DST), y KLT. La aplicación de DCT, DST o KLT para transformar el bloque residual puede determinarse en función de la información del modo de intrapredicción de la unidad de predicción utilizada para generar el bloque residual.
El módulo de cuantización 135 puede cuantizar los valores transformados en un dominio de frecuencia por el módulo de transformación 130. Los coeficientes de cuantificación pueden variar según el bloque o la importancia de una imagen. Los valores calculados por el módulo de cuantificación 135 pueden proporcionarse al módulo de cuantificación inversa 140 y al módulo de reordenamiento 160.
El módulo de reordenamiento 160 puede reorganizar los coeficientes de los valores residuales cuantificados.
El módulo de reordenamiento 160 puede cambiar un coeficiente en forma de un bloque bidimensional en un coeficiente en forma de un vector unidimensional a través de un método de escaneado de coeficientes. Por ejemplo, el módulo de reordenamiento 160 puede escanear desde un coeficiente CC a un coeficiente en un dominio de alta frecuencia usando un método de escaneo en zigzag para cambiar los coeficientes para que estén en la forma de vectores unidimensionales. Dependiendo del tamaño de la unidad de transformación y del modo de intrapredicción, el escaneo en dirección vertical donde los coeficientes en forma de bloques bidimensionales se escanean en la dirección de columna o el escaneo en dirección horizontal donde los coeficientes en forma de bloques bidimensionales se escanean en la dirección de la fila puede usarse en lugar del escaneo en zigzag. Es decir, el método de escaneado entre escaneado en zigzag, escaneado en dirección vertical y escaneado en dirección horizontal se puede determinar según el tamaño de la unidad de transformación y el modo de intrapredicción.
El módulo de codificación de entropía 165 puede realizar la codificación de entropía basándose en los valores calculados por el módulo de reordenamiento 160. La codificación de entropía puede utilizar varios métodos de codificación, por ejemplo, la codificación exponencial de Golomb, la codificación de longitud variable adaptada al contexto (CAVLC) y la codificación aritmética binaria adaptada al contexto (CABAC).
El módulo de codificación de entropía 165 puede codificar una variedad de información, tal como información de coeficiente de valor residual e información de tipo de bloque de la unidad de codificación, información de modo de predicción, información de unidad de partición, información de unidad de predicción, información de unidad de transformación, información de vector de movimiento, información de cuadro de referencia, información de interpolación de bloque, información de filtrado, etc. del módulo de reordenamiento 160 y los módulos de predicción 120 y 125.
El módulo de codificación de entropía 165 puede codificar mediante entropía los coeficientes de la entrada de la unidad de codificación del módulo de reordenamiento 160.
El módulo de cuantización inversa 140 puede cuantizar inversamente los valores cuantificados por el módulo de cuantificación 135 y el módulo de transformación inversa 145 puede transformar inversamente los valores transformados por el módulo de transformación 130. El valor residual generado por el módulo de cuantización inversa 140 y el módulo de transformación inversa 145 puede combinarse con la unidad de predicción predicha por un módulo de estimación de movimiento, un módulo de compensación de movimiento y el módulo de intrapredicción de los módulos de predicción 120 y 125, de manera que se puede generar un bloque reconstruido.
El módulo de filtro 150 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 del bloque que se produce debido a los límites entre los bloques en la imagen reconstruida. Para determinar si se debe realizar el desbloqueo, los píxeles incluidos en varias filas o columnas en el bloque pueden ser una base para determinar si aplicar el filtro de desbloqueo al bloque actual. Cuando el filtro de desbloqueo se aplica al bloque, se puede aplicar un filtro fuerte o un filtro débil dependiendo de la fuerza de filtrado de desbloqueo requerida. Además, al aplicar el filtro de desbloqueo, el filtrado en dirección horizontal y el filtrado en dirección vertical pueden procesarse en paralelo.
El módulo de corrección de desplazamiento puede corregir el desplazamiento con la imagen original en unidades de un píxel en la imagen sujeta a desbloqueo. Para realizar la corrección de desplazamiento en una imagen en particular, es posible usar un método para aplicar el desplazamiento en consideración a la información de borde de cada píxel o un método de partición de píxeles de una imagen en el número predeterminado de regiones, determinando una región para estar sujeta a realizar un desplazamiento, y aplicar el desplazamiento a la región determinada.
El filtrado de bucle adaptativo (ALF) se puede realizar según el valor obtenido al comparar la imagen reconstruida filtrada y la imagen original. Los píxeles incluidos en la imagen se pueden dividir en grupos predeterminados, se puede determinar un filtro que se aplicará a cada uno de los grupos y se puede realizar un filtrado individual para cada grupo. La información sobre si aplicar ALF y una señal de luz puede ser transmitida por unidades de codificación (CU). La forma y el coeficiente de filtro de un filtro para ALF pueden variar dependiendo de cada bloque. Además, el filtro para ALF en la misma forma (forma fija) puede aplicarse independientemente de las características del bloque de destino de la aplicación.
La memoria 155 puede almacenar el bloque reconstruido o la imagen calculada a través del módulo de filtro 150. El bloque o imagen reconstruidos almacenados pueden proporcionarse a los módulos de predicción 120 y 125 para realizar la interpredicción.
La figura 2 es un diagrama de bloques de un dispositivo para decodificar un vídeo de acuerdo con una realización de la presente invención.
Con referencia a la figura 2, el dispositivo 200 para decodificar un vídeo puede incluir: un módulo de decodificación de entropía 210, un módulo de reorganización 215, un módulo de cuantificación inversa 220, un módulo de transformación inversa 225, módulos de predicción 230 y 235, un módulo de filtro 240 y una memoria 245.
Cuando se ingresa un flujo de bits de vídeo desde el dispositivo para codificar un vídeo, el flujo de bits de entrada se puede decodificar de acuerdo con un proceso inverso del dispositivo para codificar un vídeo.
El módulo de decodificación de entropía 210 puede realizar la decodificación de entropía de acuerdo con un proceso inverso de codificación de entropía por el módulo de codificación de entropía del dispositivo para codificar un vídeo. Por ejemplo, según los métodos realizados por el dispositivo para codificar un vídeo, se pueden aplicar varios métodos, como la codificación exponencial de Golomb, la codificación de longitud variable adaptada al contexto (CAVLC) y la codificación aritmética binaria adaptada al contexto (CABAC).
El módulo de decodificación de entropía 210 puede decodificar información sobre la intrapredicción e interpredicción realizada por el dispositivo para codificar un vídeo.
El módulo de reordenamiento 215 puede realizar un reordenamiento en la entropía del flujo de bits descodificado por el módulo de descodificación de entropía 210 en base al método de reordenamiento utilizado en el dispositivo para codificar un vídeo. El módulo de reorganización puede reconstruir y reorganizar los coeficientes en forma de vectores unidimensionales al coeficiente en forma de bloques bidimensionales. El módulo de reordenamiento 215 puede recibir información relacionada con el escaneo de coeficientes realizado en el dispositivo para codificar un vídeo y puede realizar un reordenamiento a través de un método de escaneo inverso de los coeficientes en función del orden de escaneo realizado en el dispositivo para codificar un vídeo.
El módulo de cuantización inversa 220 puede realizar una cuantificación inversa basada en un parámetro de cuantificación recibido del dispositivo para codificar un vídeo y los coeficientes reorganizados del bloque.
El módulo de transformación inversa 225 puede realizar la transformación inversa, es decir, DCT inversa, DST inversa y KLT inversa, que es el proceso inverso de la transformación, es decir, DCT, DST y KLT, realizada por el módulo de transformación en el resultado de cuantificación por el dispositivo para codificar un vídeo. La transformación inversa se puede realizar en función de una unidad de transferencia determinada por el dispositivo para codificar un vídeo. El módulo de transformación inversa 225 del dispositivo para decodificar un vídeo puede realizar esquemas de transformación selectivamente (por ejemplo, DCT, DST y KLT) dependiendo de múltiples datos, como el método de predicción, el tamaño del bloque actual, la dirección de predicción, etc.
Los módulos de predicción 230 y 235 pueden generar un bloque de predicción basado en información sobre la generación de bloque de predicción recibida desde el módulo de descodificación de entropía 210 y la información de imagen o bloque previamente decodificado recibida desde la memoria 245.
Como se describió anteriormente, al igual que la operación del dispositivo para codificar un vídeo, al realizar la intrapredicción, cuando el tamaño de la unidad de predicción es el mismo que el tamaño de la unidad de transformación, la intrapredicción se puede realizar en la unidad de predicción en función de píxeles posicionados a la izquierda, arriba a la izquierda y arriba de la unidad de predicción. Al realizar la intrapredicción, cuando el tamaño de la unidad de predicción es diferente del tamaño de la unidad de transformación, la intrapredicción se puede realizar utilizando un píxel de referencia basado en la unidad de transformación. Además, la intrapredicción utilizando partición NxN puede usarse solo para la unidad de codificación más pequeña.
Los módulos de predicción 230 y 235 pueden incluir un módulo de determinación de unidad de predicción, un módulo de interpredicción y un módulo de intrapredicción. El módulo de determinación de la unidad de predicción puede recibir una variedad de información, como la información de la unidad de predicción, la información del modo de predicción de un método de intrapredicción, la información sobre la predicción de movimiento de un método de interpredicción, etc. del módulo de descodificación de entropía 210, puede dividir una corriente codificar la unidad en unidades de predicción, y puede determinar si la interpredicción o intrapredicción se realiza en la unidad de predicción. Al utilizar la información requerida en la interpredicción de la unidad de predicción actual recibida del dispositivo para codificar un vídeo, el módulo 230 de interpredicción puede realizar la interpredicción en la unidad de predicción actual basándose en la información de al menos una de una imagen anterior o una imagen posterior de la imagen actual incluyendo la unidad de predicción actual. Alternativamente, la interpredicción se puede realizar en base a la información de algunas regiones reconstruidas previamente en la imagen actual, incluida la unidad de predicción actual.
Para realizar la interpredicción, se puede determinar para la unidad de codificación cuál de un modo de salto, un modo de combinación, un modo AMVP y un modo de copia entre bloques se utiliza como método de predicción de movimiento de la unidad de predicción incluida en la unidad de codificación.
El módulo de intrapredicción 235 puede generar un bloque de predicción basado en la información de píxeles en la imagen actual. Cuando la unidad de predicción es una unidad de predicción sujeta a intrapredicción, la intrapredicción se puede realizar basándose en la información del modo de intrapredicción de la unidad de predicción recibida del dispositivo para codificar un vídeo. El módulo de intrapredicción 235 puede incluir un filtro de filtrado intra adaptativo (AIS), un módulo de interpolación de píxeles de referencia y un filtro de CC. El filtro AIS realiza el filtrado en el píxel de referencia del bloque actual, y la aplicación del filtro se puede determinar según el modo de predicción de la unidad de predicción actual. El filtrado AIS se puede realizar en el píxel de referencia del bloque actual utilizando el modo de predicción de la unidad de predicción y la información del filtro AIS recibida del dispositivo para codificar un vídeo. Cuando el modo de predicción del bloque actual es un modo donde no se realiza el filtrado AIS, es posible que no se aplique el filtro AIS.
Cuando el modo de predicción de la unidad de predicción es un modo de predicción donde la intrapredicción se realiza en función del valor de píxel obtenido al interpolar 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 el píxel de referencia de un píxel entero o menos que un píxel entero. Cuando el modo de predicción de la unidad de predicción actual es un modo de predicción donde se genera un bloque de predicción sin interpolación del píxel de referencia, el píxel de referencia no se puede interpolar. El filtro de CC puede generar un bloque de predicción a través del filtrado cuando el modo de predicción del bloque actual es un modo de CC.
El bloque o la imagen reconstruidos pueden proporcionarse al módulo de filtro 240. El módulo de filtro 240 puede incluir el filtro de desbloqueo, el módulo de corrección de desplazamiento y el ALF.
La información sobre si el filtro de desbloqueo se aplica o no al bloque o imagen correspondiente y la información sobre cuál de los filtros fuertes y débiles se aplica cuando se aplica el filtro de desbloqueo puede recibirse del dispositivo para codificar un vídeo. El filtro de desbloqueo del dispositivo para decodificar un vídeo puede recibir información sobre el filtro de desbloqueo del dispositivo para codificar un vídeo, y puede realizar un filtrado de desbloqueo en el bloque correspondiente.
El módulo de corrección de desplazamiento puede realizar la corrección de desplazamiento en la imagen reconstruida en función del tipo de corrección de desplazamiento y la información del valor de desplazamiento aplicada a una imagen al realizar la codificación.
El ALF se puede aplicar a la unidad de codificación en función de la información sobre si se debe aplicar el ALF, la información del coeficiente de ALF, etc., recibida del dispositivo para codificar un vídeo. La información ALF puede proporcionarse como incluida en un conjunto de parámetros particular.
La memoria 245 puede almacenar la imagen o bloque reconstruido para usar como imagen o bloque de referencia, y puede proporcionar la imagen reconstruida a un módulo de salida.
Como se describió anteriormente, en la realización de la presente invención, por conveniencia de explicación, la unidad de codificación se usa como un término que representa una unidad para la codificación, pero la unidad de codificación puede servir como una unidad que realiza la decodificación, así como la codificación.
Además, un bloque actual puede representar un bloque objetivo para ser codificado/decodificado. Y, el bloque actual puede representar un bloque de árbol de codificación (o una unidad de árbol de codificación), un bloque de codificación (o una unidad de codificación), un bloque de transformación (o una unidad de transformación), un bloque de predicción (o una unidad de predicción), o similares, dependiendo de un paso de codificación/decodificación.
Una imagen puede codificarse/decodificarse dividiéndose en bloques de base que tienen una forma cuadrada o una forma no cuadrada. En este momento, se puede hacer referencia al bloque base como una unidad de árbol de codificación. La unidad de árbol de codificación se puede definir como una unidad de codificación del tamaño más grande permitido dentro de una secuencia o un segmento. La información sobre si la unidad de árbol de codificación tiene una forma cuadrada o si tiene una forma no cuadrada o la información sobre el tamaño de la unidad del árbol de codificación se puede señalar a través de un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen o una cabecera de segmento. La unidad del árbol de codificación se puede dividir en particiones de menor tamaño. En este momento, si se supone que la profundidad de una partición generada al dividir la unidad de árbol de codificación es 1, la profundidad de una partición generada al dividir la partición que tiene la profundidad 1 se puede definir como 2. Es decir, una partición generada al dividir una partición que tiene una profundidad k en la unidad de árbol de codificación puede definirse como que tiene una profundidad k+1.
Una partición de tamaño arbitrario generada al dividir una unidad de árbol de codificación puede definirse como una unidad de codificación. La unidad de codificación puede dividirse recursivamente o dividirse en unidades de base para realizar predicción, cuantificación, transformación o filtrado en bucle, y similares. Por ejemplo, una partición de tamaño arbitrario generada al dividir la unidad de codificación se puede definir como una unidad de codificación, o se puede definir como una unidad de transformación o una unidad de predicción, que es una unidad base para realizar la predicción, cuantificación, transformación o filtrado en bucle y similares.
La partición de una unidad de árbol de codificación o una unidad de codificación se puede realizar en base a al menos una de una línea vertical y una línea horizontal. Además, el número de líneas verticales o líneas horizontales que dividen la unidad de árbol de codificación o la unidad de codificación puede ser al menos una o más. Por ejemplo, la unidad del árbol de codificación o la unidad de codificación se puede dividir en dos particiones usando una línea vertical o una línea horizontal, o la unidad del árbol de codificación o la unidad de codificación se puede dividir en tres particiones usando dos líneas verticales o dos líneas horizontales. Alternativamente, la unidad del árbol de codificación o la unidad de codificación se pueden dividir en cuatro particiones que tienen una longitud y una anchura de 1/2 utilizando una línea vertical y una línea horizontal.
Cuando una unidad de árbol de codificación o una unidad de codificación se divide en una pluralidad de particiones utilizando al menos una línea vertical o al menos una línea horizontal, las particiones pueden tener un tamaño uniforme o un tamaño diferente. Alternativamente, cualquier partición puede tener un tamaño diferente de las particiones restantes.
En las realizaciones descritas a continuación, se supone que una unidad de árbol de codificación o una unidad de codificación se divide en una estructura de árbol cuádruple o una estructura de árbol binario. Sin embargo, también es posible dividir una unidad de árbol de codificación o una unidad de codificación utilizando un número mayor de líneas verticales o un número mayor de líneas horizontales.
La figura 3 es un diagrama que ilustra un ejemplo de partición jerárquica de un bloque de codificación basado en una estructura de árbol de acuerdo con una realización de la presente invención.
Una señal de video de entrada se decodifica en unidades de bloque predeterminadas. Tal unidad predeterminada para decodificar la señal de entrada de video es un bloque de codificación. El bloque de codificación puede ser una unidad que realiza predicción, transformación y cuantificación intra/inter. Además, un modo de predicción (por ejemplo, modo de intrapredicción o modo de interpredicción) se determina en unidades de un bloque de codificación, y los bloques de predicción incluidos en el bloque de codificación pueden compartir el modo de predicción determinado. El bloque de codificación puede ser un bloque cuadrado o no cuadrado que tenga un tamaño arbitrario en un rango de 8x8 a 64x64, o puede ser un bloque cuadrado o no cuadrado que tenga un tamaño de 128x128, 256x256 o más.
Específicamente, el bloque de codificación se puede dividir jerárquicamente en función de al menos uno de un árbol cuádruple y un árbol binario. Aquí, la partición basada en árbol cuádruple puede significar que un bloque de codificación 2Nx2N se divide en cuatro bloques de codificación NxN, y la partición basada en árbol binario puede significar que un bloque de codificación se divide en dos bloques de codificación. Incluso si se realiza la partición basada en árbol binario, puede existir un bloque de codificación de forma cuadrada en la profundidad inferior.
La partición basada en árboles binarios se puede realizar de manera simétrica o asimétrica. El bloque de codificación dividido en función del árbol binario puede ser un bloque cuadrado o un bloque no cuadrado, tal como una forma rectangular. Por ejemplo, un tipo de partición en el que se permite la partición basada en árbol binario puede comprender al menos uno de un tipo simétrico de 2NxN (unidad de codificación no cuadrada direccional horizontal) o Nx2N (unidad de codificación no cuadrada de dirección vertical), tipo asimétrico de nLx2N, nRx2N, 2NxnU o 2NxnD.
La partición basada en árbol binario se puede permitir de forma limitada a una partición de tipo simétrico o asimétrico. En este caso, la construcción de la unidad del árbol de codificación con bloques cuadrados puede corresponder a la partición CU de árbol cuádruple, y la construcción de la unidad del árbol de codificación con bloques simétricos no cuadrados puede corresponder a la división de árbol binario. La construcción de la unidad de árbol de codificación con bloques cuadrados y bloques no cuadrados simétricos puede corresponder a la partición CU de árbol cuádruple y binario.
La partición basada en árbol binario se puede realizar en un bloque de codificación donde ya no se realiza la partición basada en árbol cuádruple. La partición basada en árbol cuádruple ya no se puede realizar en el bloque de codificación particionado en base al árbol binario.
Además, la partición de una profundidad inferior se puede determinar según el tipo de partición de una profundidad superior. Por ejemplo, si se permite la partición basada en árbol binario en dos o más profundidades, solo se puede permitir el mismo tipo que la partición de árbol binario de la profundidad superior en la profundidad inferior. Por ejemplo, si la partición basada en árbol binario en la profundidad superior se realiza con el tipo 2NxN, la partición basada en árbol binario en la profundidad inferior también se realiza con el tipo 2NxN. Alternativamente, si la partición basada en árbol binario en la profundidad superior se realiza con el tipo Nx2N, la partición basada en árbol binario en la profundidad inferior también se realiza con el tipo Nx2N.
Por el contrario, también es posible permitir, en una profundidad más baja, solo un tipo diferente de un tipo de partición de árbol binario de una profundidad superior.
Puede ser posible limitar solo un tipo específico de partición basada en árbol binario para ser usada para secuencia, segmento, unidad de árbol de codificación o unidad de codificación. Como ejemplo, solo se puede permitir el tipo 2NxN o el tipo Nx2N de partición basada en árbol binario para la unidad de árbol de codificación. Un tipo de partición disponible puede estar predefinida en un codificador o un decodificador. O la información sobre el tipo de partición disponible o sobre el tipo de partición no disponible puede codificarse y luego enviarse a través de un flujo de bits.
La figura 5 es un diagrama que ilustra un ejemplo en el que solo se permite un tipo específico de partición basada en árbol binario. La figura 5A muestra un ejemplo en el que solo se permite el tipo Nx2N de partición basada en árbol binario, y la figura 5B muestra un ejemplo en el que solo se permite el tipo 2NxN de partición basada en árbol binario. Para implementar la partición adaptativa basada en el árbol cuádruple o árbol binario, se puede usar la información que indica la partición basada en árbol cuádruple, la información sobre el tamaño/profundidad del bloque de codificación que la partición basada en árbol cuádruple permite, la información que indica la partición basada en árbol binario, la información sobre el tamaño/profundidad del bloque de codificación que permite la partición basada en árbol binario, la información sobre el tamaño/profundidad del bloque de codificación en la que no se permite la partición basada en árbol binario, la información sobre si la partición basada en árbol binario se realiza en una dirección vertical o una dirección horizontal, etc.
Además, se puede obtener información sobre el número de veces que se permite una partición de árbol binario, una profundidad a la que se permite la partición de árbol binario, o el número de las profundidades a las que se permite la partición de árbol binario para una unidad de árbol de codificación o una unidad de codificación específica. La información puede codificarse en unidades de una unidad de árbol de codificación o una unidad de codificación, y puede transmitirse a un decodificador a través de un flujo de bits.
Por ejemplo, una sintaxis 'max_binary_depth_idx_minus1' que indica una profundidad máxima a la que se permite la partición del árbol binario puede codificarse/decodificarse a través de un flujo de bits. En este caso, max_binary_depth_idx_minus1 1 puede indicar la profundidad máxima a la que se permite la partición del árbol binario.
Con referencia al ejemplo mostrado en la figura 6, en la figura 6, la división del árbol binario se ha realizado para una unidad de codificación que tiene una profundidad de 2 y una unidad de codificación que tiene una profundidad de 3. En consecuencia, al menos uno de los datos que indica el número de veces que se ha realizado la partición del árbol binario en la unidad del árbol de codificación (es decir, 2 veces), la información que indica la profundidad máxima a la que se ha permitido la partición del árbol binario en la unidad del árbol de codificación (es decir, la profundidad 3), o el número de profundidades en las que se realizó la partición del árbol binario en la unidad del árbol de codificación (es decir, 2 (profundidad 2 y profundidad 3)) puede codificarse/decodificarse a través de un flujo de bits.
Como otro ejemplo, al menos uno de los datos sobre el número de veces que se permite la partición del árbol binario, la profundidad a la que se permite la partición del árbol binario, o el número de las profundidades a las que se permite la partición del árbol binario se puede obtener para cada secuencia o cada sector. Por ejemplo, la información se puede codificar en unidades de una secuencia, una imagen o una unidad de división y transmitir a través de un flujo de bits. En consecuencia, al menos uno de los números de la partición del árbol binario en un primer segmento, la profundidad máxima en la que se permite la partición del árbol binario en el primer segmento, o el número de profundidades en que la partición del árbol binario se realiza en el primer segmento puede ser la diferencia de un segundo segmento. Por ejemplo, en el primer segmento, la partición de árbol binario puede permitirse solo para una profundidad, mientras que, en el segundo segmento, la partición de árbol binario puede permitirse para dos profundidades.
Como otro ejemplo, la cantidad de veces que se permite la partición del árbol binario, la profundidad a la que se permite la partición del árbol binario, o la cantidad de profundidades a las que se permite la partición del árbol binario se puede configurar de manera diferente según un identificador de nivel de tiempo (TemporalID) de un segmento o una imagen. Aquí, el identificador de nivel temporal (TemporalID) se usa para identificar cada una de una pluralidad de capas de video que tienen una escalabilidad de al menos una de vista, espacial, temporal o de calidad.
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 dividirse en múltiples segundos bloques de codificación basados en el árbol cuádruple. Por ejemplo, los segundos bloques de codificación 310 a 340 pueden ser bloques cuadrados que tienen la mitad del ancho y la mitad de la altura del primer bloque de codificación, y la profundidad de partición del segundo bloque de codificación se puede aumentar a k 1.
El segundo bloque de codificación 310 con la profundidad de partición de k 1 puede dividirse en múltiples terceros bloques de codificación con la profundidad de partición de k 2. La partición del segundo bloque de codificación 310 se puede realizar utilizando selectivamente uno del árbol cuádruple y el árbol binario dependiendo de un método de partición. Aquí, el método de partición se puede determinar en función de al menos una de las informaciones que indican la partición basada en árbol cuádruple y la información que indica la partición basada en árboles binarios.
Cuando el segundo bloque de codificación 310 se divide en función del árbol cuádruple, el segundo bloque de codificación 310 puede dividirse en cuatro terceros bloques de codificación 310a que tienen la mitad del ancho y la mitad de la altura del segundo bloque de codificación, y la profundidad de partición de la tercera codificación el bloque 310a se puede aumentar a k 2. Por el contrario, cuando el segundo bloque de codificación 310 se divide en función del árbol binario, el segundo bloque de codificación 310 puede dividirse en dos terceros bloques de codificación. Aquí, cada uno de los dos terceros bloques de codificación puede ser un bloque no cuadrado que tiene una anchura media y la mitad de la altura del segundo bloque de codificación, y la profundidad de la partición se puede aumentar a k 2. El segundo bloque de codificación se puede determinar como un bloque no cuadrado de una dirección horizontal o vertical que depende de una dirección de partición, y la dirección de partición se puede determinar según la información sobre si la partición basada en árbol binario se realiza en una dirección vertical o una dirección horizontal.
Mientras tanto, el segundo bloque de codificación 310 puede determinarse como un bloque de codificación de hoja que ya no está particionado en función del árbol cuádruple o del árbol binario. En este caso, el bloque de codificación de hoja se puede utilizar como un bloque de predicción o un bloque de transformación.
Al igual que la partición del segundo bloque de codificación 310, el tercer bloque de codificación 310a puede determinarse como un bloque de codificación de hoja, o puede dividirse adicionalmente en base al árbol cuádruple o al árbol binario.
Mientras tanto, el tercer bloque de codificación 310b particionado en base al árbol binario puede dividirse adicionalmente en los bloques de codificación 310b-2 de una dirección vertical o los bloques de codificación 310b-3 de una dirección horizontal en base al árbol binario, y la profundidad de partición de los bloques de codificación relevantes se pueden aumentar a k 3. Alternativamente, el tercer bloque de codificación 310b puede determinarse como un bloque de codificación de hoja 310b-1 que ya no está particionado en base al árbol binario. En este caso, el bloque de codificación 310b-1 puede usarse como un bloque de predicción o un bloque de transformación. Sin embargo, el proceso de partición anterior se puede realizar de forma limitada en función de al menos una de las informaciones sobre el tamaño/profundidad del bloque de codificación que permite la partición basada en árbol cuádruple, la información sobre el tamaño/profundidad del bloque de codificación que permite la partición basada en ese árbol binario, y la información sobre el tamaño/profundidad del bloque de codificación que no permite la partición basada en árbol binario.
Un número de un candidato que representa un tamaño de un bloque de codificación puede estar limitado a un número predeterminado, o un tamaño de un bloque de codificación en una unidad predeterminada puede tener un valor fijo. Como ejemplo, el tamaño del bloque de codificación en una secuencia o en una imagen puede limitarse a tener 256x256, 128x128 o 32x32. La información que indica el tamaño del bloque de codificación en la secuencia o en la imagen se puede señalar a través de un encabezado de secuencia o un encabezado de imagen.
Como resultado de la partición basada en un árbol cuádruple y un árbol binario, una unidad de codificación puede representarse como una forma cuadrada o rectangular de un tamaño arbitrario.
Un bloque de codificación se codifica utilizando al menos uno del modo de salto, intrapredicción, interpredicción o método de salto. Una vez que se determina un bloque de codificación, se puede determinar un bloque de predicción a través de la partición predictiva del bloque de codificación. La partición predictiva del bloque de codificación se puede realizar mediante un modo de partición (Part_mode) que indica un tipo de partición del bloque de codificación. Un tamaño o una forma del bloque de predicción se puede determinar de acuerdo con el modo de partición del bloque de codificación. Por ejemplo, un tamaño de un bloque de predicción determinado de acuerdo con el modo de partición puede ser igual o menor que un tamaño de un bloque de codificación.
La figura 7 es un diagrama que ilustra un modo de partición que puede aplicarse a un bloque de codificación cuando el bloque de codificación está codificado mediante interpredicción.
Cuando un bloque de codificación se codifica por interpredicción, se puede aplicar uno de los 8 modos de partición al bloque de codificación, como en el ejemplo mostrado en la figura 4.
Cuando un bloque de codificación se codifica por intrapredicción, se puede aplicar un modo de partición PART_2Nx2N o un modo de partición PART_NxN al bloque de codificación.
PART_NxN puede aplicarse cuando un bloque de codificación tiene un tamaño mínimo. Aquí, el tamaño mínimo del bloque de codificación se puede predefinir en un codificador y un decodificador. O bien, la información sobre el tamaño mínimo del bloque de codificación puede ser señalizada a través de un flujo de bits. Por ejemplo, el tamaño mínimo del bloque de codificación se puede señalar a través de un encabezado de segmento, de modo que el tamaño mínimo del bloque de codificación se puede definir por segmento.
En general, un bloque de predicción puede tener un tamaño de 64^64 a 4x4. Sin embargo, cuando un bloque de codificación está codificado mediante interpredicción, se puede restringir que el bloque de predicción no tenga un tamaño de 4x4 para reducir el ancho de banda de la memoria cuando se realiza la compensación de movimiento.
La figura 8 es un diagrama de flujo que ilustra procesos de obtención de una muestra residual de acuerdo con una realización a la que se aplica la presente invención.
Primero, se puede obtener un coeficiente residual de un bloque actual S810. Un decodificador puede obtener un coeficiente residual a través de un método de escaneado de coeficientes. Por ejemplo, el decodificador puede realizar un escaneado coeficientes utilizando un escaneado de zig-zag, un escaneado vertical o un escaneadohorizontal, y puede obtener coeficientes residuales en forma de un bloque bidimensional.
Se puede realizar una cuantificación inversa sobre el coeficiente residual del bloque actual S820.
Una transformación inversa se realiza de forma selectiva en función de si se debe omitir la transformación inversa en el coeficiente residual descuantificado del bloque actual S830. Específicamente, el decodificador puede determinar si se debe omitir la transformación inversa en al menos una de la dirección horizontal o vertical del bloque actual. Cuando se determina la aplicación de la transformación inversa en al menos una de las direcciones horizontal o vertical del bloque actual, se puede obtener una muestra residual del bloque actual transformando inversamente el coeficiente residual descuantificado del bloque actual. Aquí, la transformación inversa se puede realizar utilizando al menos uno de DCT, DST y KLT.
Cuando la transformada inversa se omite tanto en la dirección horizontal como en la vertical del bloque actual, la transformada inversa no se realiza en la dirección horizontal y vertical del bloque actual. En este caso, la muestra residual del bloque actual puede obtenerse escalando el coeficiente residual descuantificado con un valor predeterminado.
Saltar la transformada inversa en la dirección horizontal significa que la transformada inversa no se realiza en la dirección horizontal, pero la transformada inversa se realiza en la dirección vertical. En este momento, la escala se puede realizar en la dirección horizontal.
Saltar la transformada inversa en la dirección vertical significa que la transformada inversa no se realiza en la dirección vertical, sino que la transformada inversa se realiza en la dirección horizontal. En este momento, la escala se puede realizar en la dirección vertical.
Se puede determinar si se puede usar o no una técnica de salto de transformación inversa para el bloque actual, dependiendo del tipo de partición del bloque actual. Por ejemplo, si el bloque actual se genera a través de una partición basada en un árbol binario, el esquema de salto de transformación inversa puede estar restringido para el bloque actual. Por consiguiente, cuando el bloque actual se genera a través de la partición basada en árbol binario, la muestra residual del bloque actual se puede obtener mediante la transformación inversa del bloque actual. Además, cuando el bloque actual se genera a través de la partición basada en árbol binario, la codificación/decodificación de la información que indica si la transformación inversa se omite (por ejemplo, transform_skip_flag) puede omitirse.
Alternativamente, cuando el bloque actual se genera a través de la partición basada en árbol binario, es posible limitar el esquema de salto de transformación inversa a al menos una de la dirección horizontal o vertical. Aquí, la dirección en la que se limita el esquema de salto de transformación inverso se puede determinar en función de la información decodificada del flujo de bits, o se puede determinar de forma adaptativa en función de al menos uno de un tamaño del bloque actual, una forma del bloque actual, o un modo de intrapredicción del bloque actual.
Por ejemplo, cuando el bloque actual es un bloque no cuadrado que tiene una anchura mayor que una altura, el esquema de salto de transformación inverso puede permitirse solo en la dirección vertical y restringirse en la dirección horizontal. Es decir, cuando el bloque actual es 2NxN, la transformación inversa se realiza en la dirección horizontal del bloque actual, y la transformación inversa se puede realizar selectivamente en la dirección vertical.
Por otra parte, cuando el bloque actual es un bloque no cuadrado que tiene una altura mayor que una anchura, el esquema de salto de transformación inverso se puede permitir solo en la dirección horizontal y restringirse en la dirección vertical. Es decir, cuando el bloque actual es Nx2N, la transformación inversa se realiza en la dirección vertical del bloque actual, y la transformación inversa se puede realizar selectivamente en la dirección horizontal.
En contraste con el ejemplo anterior, cuando el bloque actual es un bloque no cuadrado que tiene una anchura mayor que una altura, el esquema de salto de transformación inversa puede permitirse solo en la dirección horizontal, y cuando el bloque actual es un bloque no cuadrado que tiene una altura mayor que una anchura, el esquema de salto de transformación inversa puede permitirse solo en la dirección vertical.
La información que indica si se debe omitir o no la transformada inversa con respecto a la dirección horizontal o la información que indica si se debe omitir la transformación inversa con respecto a la dirección vertical se puede señalar a través de un flujo de bits. Por ejemplo, la información que indica si se debe omitir o no la transformación inversa en la dirección horizontal es un indicador de 1 bit, 'hor_transform_skip_flag', y la información que indica si se debe omitir la transformación inversa en la dirección vertical es un indicador de 1 bit 'ver_transform_skip_flag'. El codificador puede codificar al menos uno de 'hor_transform_skip_flag' o 'ver_transform_skip_flag' de acuerdo con la forma del bloque actual. Además, el decodificador puede determinar si se omite o no la transformación inversa en la dirección horizontal o en la dirección vertical utilizando al menos uno de "hor_transform_skip_flag" o "ver_transform_skip_flag".
Puede configurarse para omitir la transformación inversa para cualquier dirección del bloque actual en función del tipo de partición del bloque actual. Por ejemplo, si el bloque actual se genera a través de una partición basada en un árbol binario, se puede omitir la transformación inversa en la dirección horizontal o vertical. Es decir, si el bloque actual se genera mediante una partición basada en árbol binario, se puede determinar que la transformación inversa para el bloque actual se omite en al menos una dirección horizontal o vertical sin información de codificación/decodificación (por ejemplo, transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) que indica si se omite o no la transformación inversa del bloque actual.
La figura 9 es un diagrama de flujo que ilustra un método de interpredicción de acuerdo con una realización a la que se aplica la presente invención.
Haciendo referencia a la figura 9, se determina la información de movimiento de un bloque actual S910. La información de movimiento del bloque actual puede incluir al menos uno de un vector de movimiento relacionado con el bloque actual, un índice de imagen de referencia del bloque actual, o una dirección de interpredicción del bloque actual.
La información de movimiento del bloque actual puede obtenerse basándose en al menos uno de la información señalizada a través de un flujo de bits o información de movimiento de un bloque vecino adyacente al bloque actual.
La figura 10 es un diagrama que ilustra los procesos de derivar información de movimiento de un bloque actual cuando se aplica un modo de fusión al bloque actual.
Si el modo de fusión se aplica al bloque actual, un candidato de fusión espacial se puede derivar de un bloque vecino espacial del bloque actual S1010. El bloque vecino espacial puede comprender al menos uno de los bloques adyacentes a una izquierda, una parte superior o una esquina (por ejemplo, al menos uno de una esquina superior izquierda, una esquina superior derecha o una esquina inferior izquierda) del bloque actual.
La información de movimiento del candidato de fusión espacial se puede configurar para que sea la misma que la información de movimiento del bloque vecino espacial.
Un candidato de fusión temporal puede derivarse de un bloque vecino temporal del bloque actual S1020. El bloque vecino temporal puede significar un bloque incluido en una imagen colocada. La imagen colocada tiene un recuento de orden de imagen (POC) diferente de la imagen actual, incluido el bloque actual. La imagen colocada puede determinarse como una imagen que tiene un índice predefinido en una lista de imágenes de referencia o puede determinarse mediante un índice señalizado desde un flujo de bits. Se puede determinar que el bloque vecino temporal es un bloque que comprende coordenadas en un bloque colocado que tiene la misma posición que el bloque actual en la imagen colocada, o un bloque adyacente al bloque colocado. Por ejemplo, al menos uno de un bloque que incluye las coordenadas del centro del bloque colocado o un bloque adyacente al límite inferior izquierdo del bloque colocado puede determinarse como el bloque vecino temporal.
La información de movimiento del candidato de fusión temporal puede determinarse basándose en la información de movimiento del bloque vecino temporal. Por ejemplo, un vector de movimiento del candidato de fusión temporal puede determinarse basándose en un vector de movimiento del bloque vecino temporal. Además, una dirección de interpredicción del candidato de fusión temporal se puede configurar para que sea la misma que una dirección de interpredicción del bloque vecino temporal. Sin embargo, un índice de imagen de referencia del candidato de fusión temporal puede tener un valor fijo. Por ejemplo, el índice de imagen de referencia del candidato de fusión temporal se puede establecer en '0'.
A partir de entonces, se puede generar una lista de candidatos de fusión que incluya el candidato de fusión espacial y el candidato de fusión temporal S1030. Si el número de candidatos de fusión incluidos en la lista de candidatos de fusión es menor que un número máximo de candidatos de fusión, se puede incluir un candidato de fusión combinado que combine dos o más candidatos de fusión en la lista de candidatos de fusión.
Cuando se genera la lista de candidatos de fusión, al menos uno de los candidatos de fusión incluidos en la lista de candidatos de fusión puede especificarse basándose en un índice de candidato de fusión S1040.
La información de movimiento del bloque actual se puede configurar para que sea igual a la información de movimiento del candidato de fusión especificado por el índice de candidato de fusión S1050. Por ejemplo, cuando se selecciona el candidato de fusión espacial mediante el índice de candidato de fusión, la información de movimiento del bloque actual se puede configurar para que sea la misma que la información de movimiento del bloque vecino espacial. Alternativamente, cuando el candidato de fusión temporal se selecciona mediante el índice de candidato de fusión, la información de movimiento del bloque actual se puede configurar para que sea la misma que la información de movimiento del bloque vecino temporal.
La figura 11 es un diagrama que ilustra procesos de derivación de información de movimiento de un bloque actual cuando se aplica un modo AMVP al bloque actual.
Cuando el modo AMVP se aplica al bloque actual, al menos una de las direcciones de interpredicción del bloque actual o un índice de imagen de referencia puede decodificarse a partir de un flujo de bits S1110. Es decir, cuando se aplica el modo AMVP, al menos una de las direcciones de interpredicción o el índice de imagen de referencia del bloque actual se puede determinar en función de la información codificada a través del flujo de bits.
Un candidato de vector de movimiento espacial puede determinarse basándose en un vector de movimiento de un bloque adyacente espacial del bloque actual S1120. El candidato de vector de movimiento espacial puede incluir al menos uno de un primer candidato de vector de movimiento espacial derivado de un bloque vecino superior del bloque actual y un segundo candidato de vector de movimiento espacial derivado de un bloque vecino izquierdo del bloque actual. Aquí, el bloque vecino superior puede incluir al menos uno de los bloques adyacentes a una esquina superior o superior derecha del bloque actual, y el bloque vecino izquierdo del bloque actual puede incluir al menos uno de los bloques adyacentes a una esquina izquierda o una izquierda inferior del bloque actual. Un bloque adyacente a una esquina superior izquierda del bloque actual puede tratarse como el bloque vecino superior o como el bloque vecino izquierdo.
Cuando las imágenes de referencia entre el bloque actual y el bloque vecino espacial son diferentes entre sí, también es posible obtener el vector de movimiento espacial escalando el vector de movimiento del bloque vecino espacial.
Un vector de movimiento temporal candidato puede determinarse basándose en un vector de movimiento de un bloque vecino temporal del bloque actual S1130. Cuando las imágenes de referencia entre el bloque actual y el bloque vecino temporal son diferentes entre sí, también es posible obtener el vector de movimiento temporal escalando el vector de movimiento del bloque vecino temporal.
Se puede generar una lista de candidatos de vectores de movimiento que incluya el candidato de vectores de movimiento espacial y el candidato de vectores de movimiento temporal S1140.
Cuando se genera la lista de candidatos de vectores de movimiento, al menos uno de los candidatos de vectores de movimiento incluidos en la lista de candidatos de vectores de movimiento puede especificarse basándose en la información que especifica al menos uno de la lista de candidatos de vectores de movimiento S1150.
El vector de movimiento candidato especificado por la información puede establecerse como un valor de predicción de vector de movimiento del bloque actual, y se puede agregar un valor de diferencia de vector de movimiento al valor de predicción de vector de movimiento para obtener un vector de movimiento del bloque actual S1160. En este momento, el valor de diferencia del vector de movimiento se puede analizar a través del flujo de bits.
Cuando se obtiene la información de movimiento del bloque actual, la compensación de movimiento para el bloque actual se puede realizar basándose en la información de movimiento obtenida S920. Más específicamente, la compensación de movimiento para el bloque actual puede realizarse en función de la dirección de interpredicción, el índice de imagen de referencia y el vector de movimiento del bloque actual.
La dirección de interpredicción puede indicar N direcciones. Aquí, N es un número natural y puede ser 1, 2 o 3 o más. Si la dirección de interpredicción indica N direcciones, significa que la interpredicción del bloque actual se realiza en base a N imágenes de referencia o N bloques de referencia. Por ejemplo, cuando la dirección de interpredicción del bloque actual indica una dirección única, la interpredicción del bloque actual se puede realizar basándose en una imagen de referencia. Por otra parte, cuando la interpredicción del bloque actual indica una dirección doble, la interpredicción del bloque actual se puede realizar utilizando dos imágenes de referencia o dos bloques de referencia.
También es posible determinar si se permite una predicción multidireccional para el bloque actual en función de al menos uno de un tamaño o una forma del bloque actual. Por ejemplo, cuando una unidad de codificación tiene una forma cuadrada, se permite la predicción multidireccional para su codificación/decodificación. Por otro lado, cuando la unidad de codificación tiene una forma no cuadrada, solo se permite la predicción unidireccional para su codificación/decodificación. Al contrario de los casos anteriores, también es posible establecer que se permita la predicción multidireccional para codificar/decodificar la unidad de codificación cuando tiene la forma no cuadrada, y solo se permite la predicción unidireccional para la codificación/decodificación de la unidad de codificación cuando tiene la forma cuadrada. Alternativamente, también es posible establecer que la predicción multidireccional no está permitida para codificar/decodificar una unidad de predicción, cuando la unidad de predicción tiene la forma no cuadrada de 4x8 u 8x4 o similar.
El índice de la imagen de referencia puede especificar una imagen de referencia que se utilizará para la interpredicción del bloque actual. Específicamente, el índice de imagen de referencia puede especificar cualquiera de las imágenes de referencia incluidas en la lista de imágenes de referencia. Por ejemplo, cuando la dirección de interpredicción del bloque actual es bidireccional, la imagen de referencia (imagen de referencia L0) incluida en la lista de imágenes de referencia L0 se especifica mediante un índice de imagen de referencia L0, y la imagen de referencia (imagen de referencia L1) incluida en la lista de imágenes de referencia L1 se especifica mediante un índice de imágenes de referencia L1.
Alternativamente, una imagen de referencia puede incluirse en dos o más listas de imágenes de referencia. En consecuencia, incluso si el índice de imagen de referencia de la imagen de referencia incluida en la lista de imágenes de referencia L0 y el índice de imagen de referencia de la imagen de referencia incluida en la lista de imágenes de referencia L1 son diferentes, los órdenes temporales (recuento de orden de imagen, POC) de ambas imágenes de referencia pueden ser las mismas.
El vector de movimiento se puede usar para especificar una posición de un bloque de referencia, en la imagen de referencia, correspondiente a un bloque de predicción del bloque actual. La interpredicción del bloque actual se puede realizar en función del bloque de referencia, especificado por el vector de movimiento, en la imagen de referencia. Por ejemplo, un píxel entero incluido en el bloque de referencia o un píxel no entero generado mediante la interpolación de píxeles enteros se puede generar como una muestra de predicción del bloque actual. También es posible que los bloques de referencia especificados por diferentes vectores de movimiento se incluyan en la misma imagen de referencia. Por ejemplo, cuando la imagen de referencia seleccionada de la lista de imágenes de referencia L0 y la imagen de referencia seleccionada de la lista de imágenes de referencia L1 son iguales, el bloque de referencia especificado por un vector de movimiento L0 y el bloque de referencia especificado por un vector de movimiento L1 pueden incluirse en la misma imagen de referencia.
Como se describió anteriormente, cuando la dirección de interpredicción del bloque actual indica dos o más direcciones, la compensación de movimiento para el bloque actual se puede realizar en base a dos o más imágenes de referencia o dos o más bloques de referencia.
Por ejemplo, cuando el bloque actual se codifica con predicción bidireccional, el bloque de predicción del bloque actual se puede obtener basándose en dos bloques de referencia obtenidos de dos imágenes de referencia. Además, cuando el bloque actual está codificado con predicción bidireccional, un bloque residual que indica la diferencia entre un bloque original y el bloque de predicción obtenido en base a los dos bloques de referencia puede codificarse/decodificarse.
Cuando se usan dos o más imágenes de referencia, la compensación de movimiento para el bloque actual puede realizarse aplicando las mismas o diferentes ponderaciones a las respectivas imágenes de referencia. En lo sucesivo, un método para realizar una predicción ponderada en el bloque actual se describirá en detalle en las siguientes realizaciones cuando la dirección de interpredicciónmedia indique dos o más direcciones. Para mayor comodidad de la explicación, se supone que la dirección de interpredicción del bloque actual es bidireccional. Sin embargo, incluso cuando la dirección de interpredicción del bloque actual indica tres o más, la siguiente realización se puede aplicar con la aplicación. Además, la compensación de movimiento para el bloque actual que utiliza dos imágenes de predicción se denominará método de predicción bidireccional o método de codificación/decodificación de predicción bidireccional.
Cuando se aplica la predicción bidireccional al bloque actual, las imágenes de referencia utilizadas para la predicción bidireccional del bloque actual pueden incluir una imagen cuyo orden temporal (recuento de orden de imágenes, POC) sea anterior a la imagen actual, una imagen cuyo el orden temporal es posterior a la imagen actual, o la imagen actual. Por ejemplo, una de las dos imágenes de referencia puede ser una imagen cuyo orden temporal es anterior a la imagen actual, y la otra imagen puede ser una imagen cuyo orden temporal es posterior a la imagen actual. Alternativamente, una de las dos imágenes de referencia puede ser la imagen actual, y la otra imagen puede ser una imagen cuyo orden temporal es anterior al bloque actual o cuyo orden temporal es posterior a la imagen actual. Alternativamente, ambas imágenes de referencia pueden tener órdenes temporales anteriores a la imagen actual, o pueden tener órdenes temporales posteriores a la imagen actual. Alternativamente, ambas imágenes de referencia pueden ser la imagen actual.
Se pueden generar dos bloques de predicción a partir de cada una de las dos listas de imágenes de referencia. Por ejemplo, un bloque de predicción basado en la imagen de referencia L0 puede generarse basándose en el vector de movimiento L0, y un bloque de predicción basado en la imagen de referencia L1 puede generarse basándose en el vector de movimiento L1. También es posible que el bloque de predicción generado por el vector de movimiento L0 y el bloque de predicción generado por el vector de movimiento L1 se puedan generar en base a la misma imagen de referencia.
Se puede obtener un bloque de predicción del bloque actual en base a un valor promedio de los bloques de predicción generados en base a ambas imágenes de referencia. Por ejemplo, la Ecuación 1 muestra un ejemplo de cómo obtener el bloque de predicción del bloque actual en base al valor promedio de una pluralidad de bloques de predicción.
[Ecuación 1]
P ( x ) = V 2 * P Q( x ) \ f 2 * P x(x')
En la Ecuación 1, P(x) indica una muestra de predicción final del bloque actual o una muestra de predicción predicha bidireccionalmente, y PN(x) indica un valor de muestra de un bloque de predicción LN generado en base a una imagen de referencia LN. Por ejemplo, P0(x) puede significar una muestra de predicción del bloque de predicción generada en base a la imagen de referencia L0, y Pi(x) puede significar una muestra de predicción del bloque de predicción generada en base a la imagen de referencia L1. Es decir, según la Ecuación 1, el bloque de predicción final del bloque actual se puede obtener en base a la suma ponderada de la pluralidad de los bloques de predicción generados en base a la pluralidad de las imágenes de referencia. En este momento, se puede asignar una ponderación de un valor fijo predefinido en el codificador/decodificador a cada bloque de predicción.
Según una realización de la presente invención, el bloque de predicción final del bloque actual se obtiene basándose en la suma ponderada de una pluralidad de bloques de predicción, y la ponderación asignada a cada bloque de predicción puede determinarse de forma variable/adaptativa. Por ejemplo, cuando ambas imágenes de referencia o ambos bloques de predicción tienen un brillo diferente, es más efectivo realizar una predicción bidireccional para el bloque actual aplicando ponderaciones diferentes a cada uno de los bloques de predicción que realizar la predicción bidireccional para el bloque actual mediante el promedio de los bloques de predicción. De aquí en adelante, para conveniencia de la explicación, el método de predicción bidireccional, cuando la predicción asignada a cada uno de los bloques de predicción se determina de forma variable/adaptativa, se denominará "predicción ponderada bidireccional”.
También es posible determinar si se permite o no una predicción ponderada bidireccional para el bloque actual en función de al menos uno de un tamaño o una forma del bloque actual. Por ejemplo, si la unidad de codificación tiene una forma cuadrada, se le permite codificar/decodificar usando la predicción ponderada bidireccional, mientras que, si la unidad de codificación tiene una forma no cuadrada, no se permite codificar/decodificar la misma usando la predicción ponderada bidireccional. Al contrario de los casos anteriores, también es posible establecer que se permita codificar/decodificar el bloque de codificación utilizando la predicción ponderada bidireccional cuando tiene la forma no cuadrada, y no se permite codificar/decodificar el bloque de codificación que utiliza la predicción ponderada bidireccional cuando tiene la forma cuadrada. Alternativamente, también es posible establecer que la predicción ponderada bidireccional no está permitida para codificar/decodificar la unidad de predicción cuando la unidad de predicción es una partición no cuadrada que tiene un tamaño de 4x8 u 8x4 o similar.
La figura 12 es un diagrama de un método de predicción ponderada bidireccional, de acuerdo con una realización de la presente invención.
Para realizar la predicción ponderada bidireccional se puede determinar un parámetro de predicción ponderado para el bloque actual S1210. El parámetro de predicción ponderado se puede usar para determinar la ponderación que se aplicará a ambas imágenes de referencia. Por ejemplo, como se muestra en la figura 13, se puede aplicar una ponderación de 1-w a un bloque de predicción generado en base a una imagen de referencia L0, y se puede aplicar una ponderación de w a un bloque de predicción generado en base a una imagen de referencia L1. En función de los parámetros de predicción ponderados, la ponderación que se aplicará a cada bloque de predicción se determina S1220, y se realiza una operación de suma ponderada de una pluralidad de bloques de predicción en función de la ponderación determinada para generar un bloque de predicción final del bloque actual S1230. Por ejemplo, el bloque de predicción final del bloque actual se puede generar en base a la siguiente Ecuación 2.
[Ecuación 2]
Jp ( ^ ) = ( l - w ) * jp 0( x ) w :!cjp 1( x )
En la ecuación 2, w representa el parámetro de predicción ponderado.
Como se muestra en la Ecuación 2, el bloque de predicción final P(x) del bloque actual puede obtenerse asignando la ponderación de 1-w al bloque de predicción P0 y asignando la ponderación de w al bloque de predicción Pi.
También es posible asignar la ponderación de w al bloque de predicción P0 y asignar la ponderación de 1-w al bloque de predicción P^ a diferencia del que se muestra en la Ecuación 2.
El parámetro de predicción ponderado puede determinarse en función de la diferencia de brillo entre las imágenes de referencia, o puede determinarse en función de la distancia entre la imagen actual y las imágenes de referencia (es decir, la diferencia de POC). Alternativamente, también es posible determinar el parámetro de predicción ponderado según el tamaño o la forma del bloque actual.
El parámetro de predicción ponderado puede determinarse en unidades de un bloque (por ejemplo, una unidad de árbol de codificación, una unidad de codificación, una unidad de predicción o una unidad de transformación), o puede determinarse en unidades de un segmento o una imagen.
En este momento, el parámetro de predicción ponderado se puede determinar en función de los parámetros de predicción ponderados candidatos predefinidos. Como ejemplo, se puede determinar que el parámetro de predicción ponderado es uno de los valores predefinidos como -1/4, 1/4, 3/8, 1/2, 5/8, 3/4 o 5/4.
Alternativamente, después de determinar un conjunto de parámetros de predicción ponderados para el bloque actual, también es posible determinar el parámetro de predicción ponderado de al menos uno de los parámetros de predicción ponderados candidatos incluidos en el conjunto de parámetros de predicción ponderados determinado. El conjunto de parámetros de predicción ponderado puede determinarse en unidades de un bloque (por ejemplo, una unidad de árbol de codificación, una unidad de codificación, una unidad de predicción o una unidad de transformación), o puede determinarse en unidades de un segmento o una imagen.
Por ejemplo, si se selecciona uno de los conjuntos de parámetros de predicción ponderados w0 y w1, al menos uno de los parámetros de predicción ponderados candidatos incluidos en el conjunto de parámetros de predicción ponderados seleccionado puede determinarse como el parámetro de predicción ponderado para el bloque actual. Por ejemplo, se asume como 'w0 = {-1/4, 1/4, 3/8, 1/2, 5/8, 3/4, 5/4}' y 'w1 = {-3/8, 4, 3/8, 1/2, 5/8, 3/4}'. Cuando se selecciona el conjunto de parámetros de predicción ponderados w0, el parámetro de predicción ponderado w del bloque actual se puede determinar como uno de los parámetros de predicción ponderados candidatos -1/4, 1/4, 3/8, 1/2, 5/8, 3/4 y 5/4 incluidos en la w0.
El conjunto de parámetros de predicción ponderados disponible para el bloque actual puede determinarse de acuerdo con un orden temporal o una dirección temporal de la imagen de referencia utilizada para la predicción bidireccional. El orden temporal puede indicar un orden de codificación/decodificación entre imágenes, o puede indicar un orden de salida (por ejemplo, POC) de las imágenes. Además, la dirección temporal puede indicar si el orden temporal de la imagen de referencia es anterior o posterior a la imagen actual.
Como ejemplo, dependiendo de si dos imágenes de referencia utilizadas para la predicción bidireccional tienen el mismo orden temporal, se puede determinar el conjunto de parámetros de predicción ponderados disponible para la imagen actual. Por ejemplo, dependiendo de si la imagen de referencia L0 y la imagen de referencia L1 son la misma imagen (es decir, el orden temporal de las imágenes es la misma) o si la imagen de referencia L0 y la imagen de referencia L1 son diferentes entre sí (que es decir, los órdenes temporales de las imágenes son diferentes), el parámetro de predicción ponderado disponible para el bloque actual se puede determinar de forma variable.
Diferentes conjuntos de parámetros de predicción ponderados pueden significar que al menos uno de un valor absoluto, un signo o un número de parámetros de predicción ponderados incluidos en cada conjunto de parámetros de predicción ponderados son diferentes. Por ejemplo, cuando las direcciones temporales de la imagen de referencia L0 y la imagen de referencia L1 son las mismas, el conjunto de parámetros de predicción ponderados w0 = {-1/4, 1/4, 3/8, 1/2, 5/8, 5/4} se puede usar, y cuando las direcciones temporales de la imagen de referencia L0 y la imagen de referencia L1 son diferentes, los parámetros de predicción ponderados configurados w1 = {-3/8, -1/4, 1/4, 3/8, 1/2,/8, 3/4} pueden ser utilizados.
Como ejemplo, dependiendo de si las direcciones temporales de las dos imágenes de referencia utilizadas en la predicción bidireccional son o no iguales, se puede determinar el conjunto de parámetros de predicción ponderados disponible para la imagen actual. Por ejemplo, el conjunto de parámetros de predicción ponderados disponible para el bloque actual puede determinarse de manera diferente cuando las direcciones temporales de las dos imágenes de referencia son iguales y cuando las direcciones temporales de las dos imágenes de referencia son diferentes. Específicamente, el parámetro de predicción ponderado del bloque actual se puede determinar de manera diferente según si tanto la imagen de referencia L0 como la imagen de referencia L1 son anteriores a la imagen actual, tanto si la imagen de referencia L0 como la imagen de referencia L1 son o no posterior a la imagen actual, o si las direcciones temporales de la imagen de referencia L0 y la imagen de referencia L1 son diferentes o no.
El número de parámetros de predicción ponderados candidatos disponibles o el número de conjuntos de parámetros de predicción ponderados disponibles se pueden establecer de manera diferente para cada bloque, cada segmento o cada imagen. Por ejemplo, el número de parámetros de predicción ponderados candidatos disponibles o el número de conjuntos de parámetros de predicción ponderados disponibles se pueden señalar en unidades de una porción. Por consiguiente, el número de parámetros de predicción ponderados candidatos disponibles o el número de conjuntos de parámetros de predicción ponderados disponibles pueden ser diferentes para cada segmento.
El parámetro de predicción ponderado puede derivarse de un bloque vecino adyacente al bloque actual. Aquí, el bloque vecino adyacente al bloque actual puede incluir al menos uno de un bloque vecino espacial o un bloque vecino temporal del bloque actual.
Como ejemplo, el parámetro de predicción ponderado del bloque actual se puede establecer en un valor mínimo o un valor máximo entre los parámetros de predicción ponderados de bloques vecinos adyacentes al bloque actual, o se puede establecer en un valor promedio de los parámetros de predicción ponderados de bloques vecinos.
Como ejemplo, el parámetro de predicción ponderado del bloque actual puede derivarse de un bloque vecino ubicado en una posición predeterminada entre los bloques vecinos adyacentes al bloque actual. Aquí, la posición predeterminada se puede determinar de forma variable o fija. Específicamente, la posición del bloque vecino está determinada por un tamaño del bloque actual (por ejemplo, una unidad de codificación, una unidad de predicción o una unidad de transformación), una posición del bloque actual en la unidad del árbol de codificación, una forma del bloque actual (por ejemplo, un tipo de partición del bloque actual), o un índice de partición del bloque actual. Alternativamente, la posición del bloque vecino puede predefinirse en el codificador/decodificador y determinarse de manera fija.
Como ejemplo, el parámetro de predicción ponderado del bloque actual puede derivarse de un bloque vecino al que se aplica la predicción ponderada bidireccional entre bloques vecinos adyacentes al bloque actual. Específicamente, el parámetro de predicción ponderado del bloque actual puede derivarse de un parámetro de predicción ponderado de un primer bloque vecino detectado al que se aplica la predicción ponderada bidireccional cuando los bloques vecinos adyacentes al bloque actual se escanean en un orden predeterminado. La figura 14 es un diagrama que ilustra un orden de escaneado entre bloques vecinos. En la figura 14, el escaneo se realiza en el orden de un bloque vecino izquierdo, un bloque vecino superior, un bloque vecino superior derecho, un bloque vecino inferior izquierdo y un bloque vecino superior izquierdo, pero la presente invención no se limita al ejemplo ilustrado. Cuando el escaneado se realiza siguiendo el orden predefinido, el parámetro de predicción ponderado del primer bloque vecino detectado en el que se puede usar la predicción ponderada bidireccional como parámetro de predicción ponderado del bloque actual.
Alternativamente, cuando el escaneado se realiza siguiendo el orden predefinido, también es posible establecer el parámetro de predicción ponderado del primer bloque vecino detectado al que se aplica la predicción bidireccional ponderada como el valor de predicción del parámetro de predicción ponderado del bloque actual. En este caso, el parámetro de predicción ponderado del bloque actual puede obtenerse utilizando el valor de predicción del parámetro de predicción ponderado y el valor residual del parámetro de predicción ponderado.
Como ejemplo, también es posible derivar el parámetro de predicción ponderado del bloque actual de un bloque vecino espacial o temporal combinado con información de movimiento del bloque actual, o de un bloque vecino espacial o temporal utilizado para derivar un valor de predicción de vector de movimiento del bloque actual.
También es posible señalar información para determinar el parámetro de predicción ponderado a través de un flujo de bits. Por ejemplo, el parámetro de predicción ponderado del bloque actual puede determinarse basándose en al menos una de las informaciones que indica un valor del parámetro de predicción ponderado, la información de índice que especifica uno de los parámetros de predicción ponderados candidatos, o la información de índice de conjunto que especifica uno de los conjuntos de parámetros de predicción ponderados.
Al binarizar y codificar los parámetros de predicción ponderados, la palabra de código binaria más pequeña se puede asignar a un parámetro de predicción ponderado que tenga la mayor frecuencia de uso estadísticamente. Por ejemplo, la binarización unaria truncada se puede realizar en el parámetro de predicción ponderado como se muestra en la Tabla 1 a continuación. La tabla 1 es un ejemplo en el caso de que cMax sea 6.
[Tabla 1]
Figure imgf000047_0001
Figure imgf000048_0001
El método de binarización unaria truncado que se muestra en la Tabla 1 es básicamente el mismo que un método de binarización unaria, excepto que una conversión se realiza después de recibir el valor máximo (cMax) de la entrada por adelantado. La Tabla 2 muestra la binarización unaria truncada con cMax de 13.
[Tabla 2]
Figure imgf000048_0002
Durante la binarización del parámetro de predicción ponderado, también es posible utilizar diferentes palabras en clave binarias dependiendo de si las direcciones temporales de las imágenes de referencia utilizadas para la predicción bidireccional son o no iguales. Por ejemplo, la Tabla 3 ilustra palabras de código binarias según si las direcciones temporales de la imagen de referencia L0 y la imagen de referencia L1 son las mismas o no.
[Tabla 3]
Figure imgf000049_0001
También es posible determinar el parámetro de predicción de ponderación del bloque actual de acuerdo con una diferencia de orden temporal entre la imagen actual y la imagen de referencia. Aquí, la diferencia de orden temporal puede indicar la diferencia de orden de codificación/decodificación entre imágenes o la diferencia de orden de salida entre imágenes (por ejemplo, un valor de diferencia POC). Por ejemplo, el parámetro de predicción ponderado de la imagen actual se puede determinar en función de al menos uno de los valores de diferencia de POC entre la imagen actual y la imagen de referencia L0 (en lo sucesivo, la primera distancia de referencia) y el valor de diferencia de POC entre la imagen actual y la imagen de referencia L1 (en lo sucesivo denominada segunda distancia de referencia).
Específicamente, el parámetro de predicción ponderado del bloque actual puede determinarse basándose en una relación entre la primera distancia de referencia y la segunda distancia de referencia. Cuando la primera distancia de referencia es w y la segunda distancia de referencia es h, w/(w h) puede usarse como el parámetro de predicción ponderado del bloque actual. Por ejemplo, cuando la primera distancia de referencia y la segunda distancia de referencia son las mismas, el parámetro de predicción ponderado del bloque actual se puede determinar como 1/2. Además, cuando la primera distancia de referencia es 1 y la segunda distancia de referencia es 3, el parámetro de predicción ponderado del bloque actual se puede determinar como 1/4.
Alternativamente, cuando la primera distancia de referencia es w y la segunda distancia de referencia es h, también es posible utilizar un parámetro de predicción ponderado candidato que tenga un valor más similar a w/(w h) entre los parámetros de predicción ponderados candidato como el parámetro de predicción ponderado del bloque actual.
Alternativamente, también es posible binarizar el parámetro de predicción ponderado del bloque actual considerando la primera distancia de referencia y la segunda distancia de referencia. La Tabla 4 muestra palabras en clave binarias basadas en la primera distancia de referencia y la segunda distancia de referencia.
[Tabla 4]
Figure imgf000050_0001
Figure imgf000051_0001
En el ejemplo que se muestra en la Tabla 4, cuando la primera distancia de referencia y la segunda distancia de referencia son iguales, la probabilidad de que el parámetro de predicción ponderado se establezca en 1/2 es alta. Como resultado, la palabra de código más pequeña se puede asignar a 1/2 cuando la primera distancia de referencia y la segunda distancia de referencia son las mismas.
Cuando la primera distancia de referencia y la segunda distancia de referencia son diferentes, la palabra de código binaria más pequeña se puede asignar al parámetro de predicción ponderado que es estadísticamente el más utilizado. Por ejemplo, cuando la primera distancia de referencia es mayor que la segunda distancia de referencia, la probabilidad de que se asigne una ponderación mayor a la imagen de referencia L1 es alta. Por consiguiente, la palabra en clave binaria más pequeña se puede asignar al parámetro de predicción ponderado mayor que 1/2. Por otro lado, cuando la primera distancia de referencia es más pequeña que la segunda distancia de referencia, la probabilidad de que se asigne una ponderación mayor a la imagen de referencia L0 es alta. Por consiguiente, la palabra en clave binaria más pequeña se puede asignar al parámetro de predicción ponderado menor que 1/2.
En contraste con el ejemplo que se muestra en la Tabla 4, también es posible asignar la palabra de código binaria más pequeña al parámetro de predicción ponderado menor que 1/2 cuando la primera distancia de referencia es mayor que la segunda distancia de referencia, y asignar la palabra de código binaria más pequeña al parámetro de predicción ponderado mayor que 1/2 cuando la primera distancia de referencia es menor que la segunda distancia de referencia.
Aunque las realizaciones descritas anteriormente se han descrito sobre la base de una serie de etapas o diagramas de flujo, no limitan el orden de las series de tiempo de la invención, y pueden realizarse simultáneamente o en diferentes órdenes según sea necesario. Además, cada uno de los componentes (por ejemplo, unidades, módulos, etc.) que constituyen el diagrama de bloques en las realizaciones descritas anteriormente puede implementarse mediante un dispositivo de hardware o software, y una pluralidad de componentes. O se puede combinar e implementar una pluralidad de componentes mediante un solo dispositivo de hardware o software. Las realizaciones descritas anteriormente pueden implementarse en forma de instrucciones de programa que pueden ejecutarse a través de diversos componentes del ordenador y grabarse en un medio de grabación legible por ordenador. El medio de grabación legible por ordenador puede incluir uno o una combinación de comandos de programa, archivos de datos, estructuras de datos y similares. Los ejemplos de medios legibles por ordenador incluyen medios magnéticos como discos duros, disquetes y cintas magnéticas, medios de grabación ópticos como CD-ROM y DVD, medios magnetoópticos como discos flexibles, medios y dispositivos de hardware específicamente configurados para almacenar y ejecute las instrucciones del programa, como ROM, RAM, memoria flash, etc. El dispositivo de hardware puede configurarse para funcionar como uno o más módulos de software para realizar el proceso de acuerdo con la presente invención, y viceversa.
Aplicabilidad industrial
La presente invención puede aplicarse a dispositivos electrónicos que pueden codificar/decodificar un vídeo.

Claims (5)

REIVINDICACIONES
1. Un método para decodificar un video, comprendiendo el método: obtener un primer vector de movimiento y un segundo vector de movimiento de un bloque actual;
obtener un primer bloque de predicción basado en el primer vector de movimiento y una primera imagen de referencia, y un segundo bloque de predicción basado en el segundo vector de movimiento y una segunda imagen de referencia;
obtener un valor de un parámetro de predicción ponderado del bloque actual; determinar, basándose en el valor del parámetro de predicción ponderado, ponderaciones que se aplican al primer bloque de predicción y el segundo bloque de predicción;
obtener, en base a una suma ponderada del primer bloque de predicción y el segundo bloque de predicción, un tercer bloque de predicción del bloque actual; y
reconstruir el bloque actual basándose en el tercer bloque de predicción; donde:
el valor del parámetro de predicción ponderado se obtiene basándose en información de índice señalizada mediante un flujo de datos,
la información de índice especifica uno de los valores del parámetro de predicción ponderado candidatos; y
una máxima longitud de bits de la información de índice se determina basándose en si ambas direcciones temporales de la primera imagen de referencia y la segunda imagen de referencia son anteriores o posteriores a una imagen actual.
2. El método según la reivindicación 1, en el que la información de índice está binarizada con una binarización unaria truncada.
3. Un método para codificar un video, comprendiendo el método:
obtener un primer vector de movimiento y un segundo vector de movimiento de un bloque actual;
obtener un primer bloque de predicción basado en el primer vector de movimiento y una primera imagen de referencia, y un segundo bloque de predicción basado en el segundo vector de movimiento y una segunda imagen de referencia;
determinar, en base a un valor de un parámetro de predicción ponderado del bloque actual, ponderaciones que se aplican al primer bloque de predicción y un segundo bloque de predicción ;
generar, en base a una suma ponderada del primer bloque de predicción y el segundo bloque de predicción, un tercer bloque de predicción del bloque actual;
reconstruir el bloque actual basándose en el tercer bloque de predicción; y codificar información de índice especificando el valor del parámetro de predicción ponderado entre una pluralidad de valores de parámetros de predicción ponderados candidatos,
donde una longitud máxima de bits de la información de índice se determina basándose en si ambas direcciones temporales de la primera imagen de referencia y la segunda imagen de referencia son anteriores o posteriores a una imagen actual.
4. El método de la reivindicación 3, en el que la información de índice está binarizada con una binarización unaria truncada.
5. Un medio legible por ordenador no-transitorio para almacenar datos asociados con una señal de video, que comprende:
un flujo de datos almacenados en el medio legible por ordenador no-transitorio, donde el flujo de datos está codificado por un método de codificación que comprende:
obtener un primer vector de movimiento y un segundo vector de movimiento de un bloque actual;
obtener un primer bloque de predicción basado en el primer vector de movimiento y una primera imagen de referencia, y un segundo bloque de predicción basado en el segundo vector de movimiento y una segunda imagen de referencia;
determinar, en base a un valor de un parámetro de predicción ponderado del bloque actual, ponderaciones que se aplican al primer bloque de predicción y un segundo bloque de predicción ;
generar, en base a una suma ponderada del primer bloque de predicción y el segundo bloque de predicción, un tercer bloque de predicción del bloque actual;
reconstruir el bloque actual basándose en el tercer bloque de predicción; y
codificar información de índice especificando el valor del parámetro de predicción ponderado entre una pluralidad de valores de parámetros de predicción ponderados candidatos,
donde una longitud máxima de bits de la información de índice se determina basándose en si ambas direcciones temporales de la primera imagen de referencia y la segunda imagen de referencia son anteriores o posteriores a una imagen actual.
ES201931076A 2016-07-05 2017-06-30 Metodo y aparato para procesar una senal de video Active ES2737843B2 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160085013 2016-07-05
KR20160085011 2016-07-05

Publications (3)

Publication Number Publication Date
ES2737843A2 ES2737843A2 (es) 2020-01-16
ES2737843R1 ES2737843R1 (es) 2020-05-08
ES2737843B2 true ES2737843B2 (es) 2021-07-15

Family

ID=60912967

Family Applications (3)

Application Number Title Priority Date Filing Date
ES201931076A Active ES2737843B2 (es) 2016-07-05 2017-06-30 Metodo y aparato para procesar una senal de video
ES201990002A Active ES2699749B2 (es) 2016-07-05 2017-06-30 Método y aparato para procesar una señal de vídeo
ES202030910A Active ES2786077B2 (es) 2016-07-05 2017-06-30 Metodo y aparato para procesar una senal de video

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES201990002A Active ES2699749B2 (es) 2016-07-05 2017-06-30 Método y aparato para procesar una señal de vídeo
ES202030910A Active ES2786077B2 (es) 2016-07-05 2017-06-30 Metodo y aparato para procesar una senal de video

Country Status (6)

Country Link
US (3) US11190770B2 (es)
EP (1) EP3484158A4 (es)
KR (1) KR102383105B1 (es)
CN (2) CN114513657B (es)
ES (3) ES2737843B2 (es)
WO (1) WO2018008904A2 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113473122B (zh) * 2016-07-05 2024-08-20 株式会社Kt 对视频进行解码或编码的方法和计算机可读介质
WO2018034373A1 (ko) * 2016-08-19 2018-02-22 엘지전자(주) 영상 처리 방법 및 이를 위한 장치
CN117221575A (zh) * 2016-10-04 2023-12-12 英迪股份有限公司 图像解码方法、图像编码方法以及发送比特流的方法
CN109997363B (zh) * 2016-11-28 2023-12-05 英迪股份有限公司 图像编码/解码方法和装置以及存储有比特流的记录介质
CN117440151A (zh) * 2017-07-06 2024-01-23 Lx 半导体科技有限公司 图像解码方法、图像编码方法、发送方法和数字存储介质
CN118042153A (zh) 2018-01-25 2024-05-14 三星电子株式会社 使用基于子块的运动补偿进行视频信号处理的方法和装置
KR20190133629A (ko) * 2018-05-23 2019-12-03 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN112204982B (zh) * 2018-06-29 2024-09-17 株式会社Kt 用于处理视频信号的方法和设备
US11483567B2 (en) 2018-09-22 2022-10-25 Lg Electronics Inc. Method and apparatus for processing video signals on basis of inter prediction
KR20230174762A (ko) 2018-11-16 2023-12-28 삼성전자주식회사 양방향 예측을 이용한 영상의 부호화 및 복호화 방법, 및 영상의 부호화 및 복호화 장치
US10855992B2 (en) * 2018-12-20 2020-12-01 Alibaba Group Holding Limited On block level bi-prediction with weighted averaging
US11134246B2 (en) * 2019-01-02 2021-09-28 Shumaker & Sieffert, P.A. Weighted prediction for video coding
CN117376552A (zh) 2019-09-16 2024-01-09 Lg电子株式会社 解码设备、编码设备和发送设备
CN114731409A (zh) * 2019-09-20 2022-07-08 韩国电子通信研究院 图像编码/解码方法和装置、以及存储比特流的记录介质
US11336913B2 (en) 2019-11-22 2022-05-17 Apple Inc. Reference picture re-sampling
US20210392337A1 (en) 2020-06-10 2021-12-16 Kt Corporation Method and apparatus for encoding/decoding a video signal based on weighted prediction, and a recording medium storing a bitstream
KR20230146480A (ko) * 2022-04-12 2023-10-19 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2023200242A1 (ko) * 2022-04-12 2023-10-19 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2024109650A1 (en) * 2022-11-21 2024-05-30 Zhejiang Dahua Technology Co., Ltd. Systems and methods for image processing

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2565645C (en) 2004-05-04 2012-08-07 Qualcomm Incorporated Method and apparatus to construct bi-directional predicted frames for temporal scalability
CN101379829B (zh) 2006-02-02 2016-05-18 汤姆逊许可公司 用于运动补偿预测的自适应加权选择的方法和设备
WO2008004940A1 (en) * 2006-07-07 2008-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Video data management
CN101491107B (zh) 2006-07-07 2012-07-18 艾利森电话股份有限公司 一种对图像元素组进行解码的方法及其相关的编码器、解码器
KR101408698B1 (ko) * 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치
US8995526B2 (en) * 2009-07-09 2015-03-31 Qualcomm Incorporated Different weights for uni-directional prediction and bi-directional prediction in video coding
CN105049865B (zh) * 2009-10-01 2018-01-05 Sk电信有限公司 视频解码装置
KR20110043407A (ko) * 2009-10-21 2011-04-27 에스케이 텔레콤주식회사 영상 부호화/복호화 장치 및 방법
US8885711B2 (en) * 2009-12-17 2014-11-11 Sk Telecom Co., Ltd. Image encoding/decoding method and device
KR101813189B1 (ko) * 2010-04-16 2018-01-31 에스케이 텔레콤주식회사 영상 부호화/복호화 장치 및 방법
US20140003521A1 (en) * 2011-03-11 2014-01-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding images and method and apparatus for decoding
CN107483930B (zh) * 2011-10-17 2020-03-06 株式会社Kt 利用解码装置解码视频信号的方法
CN107835420B (zh) * 2011-10-18 2021-05-14 株式会社Kt 视频信号解码方法
KR101418096B1 (ko) 2012-01-20 2014-07-16 에스케이 텔레콤주식회사 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
US9143781B2 (en) 2012-04-03 2015-09-22 Qualcomm Incorporated Weighted prediction parameter coding
US9307264B2 (en) * 2012-06-22 2016-04-05 Sharp Kabushiki Kaisha Arithmetic decoding device, arithmetic coding device, image decoding apparatus, and image coding apparatus
US10257520B2 (en) * 2012-06-26 2019-04-09 Velos Media, Llc Modified coding for transform skipping
US9906786B2 (en) * 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
KR20140089486A (ko) 2013-01-04 2014-07-15 삼성전자주식회사 스케일러블 비디오의 부호화 및 복호화를 위한 움직임 보상 방법 및 장치
US9491460B2 (en) 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
US9930363B2 (en) * 2013-04-12 2018-03-27 Nokia Technologies Oy Harmonized inter-view and view synthesis prediction for 3D video coding
JPWO2015053115A1 (ja) * 2013-10-11 2017-03-09 ソニー株式会社 復号装置および復号方法、並びに、符号化装置および符号化方法
KR101618766B1 (ko) * 2015-01-13 2016-05-11 삼성전자주식회사 영상 복호화 방법 및 장치
CN114363636B (zh) 2016-07-05 2024-06-04 株式会社Kt 用于处理视频信号的方法和装置

Also Published As

Publication number Publication date
US20190158835A1 (en) 2019-05-23
CN114513657A (zh) 2022-05-17
KR102383105B1 (ko) 2022-04-06
ES2737843A2 (es) 2020-01-16
CN109479149B (zh) 2022-04-15
ES2786077A2 (es) 2020-10-08
US20210377534A1 (en) 2021-12-02
CN114513657B (zh) 2024-06-04
ES2737843R1 (es) 2020-05-08
US20240015292A1 (en) 2024-01-11
EP3484158A4 (en) 2019-12-25
WO2018008904A3 (ko) 2018-08-09
ES2699749A2 (es) 2019-02-12
ES2786077B2 (es) 2023-01-09
ES2699749B2 (es) 2020-07-06
US11805255B2 (en) 2023-10-31
KR20180005119A (ko) 2018-01-15
US11190770B2 (en) 2021-11-30
ES2786077R1 (es) 2021-08-05
EP3484158A2 (en) 2019-05-15
ES2699749R1 (es) 2019-06-21
WO2018008904A2 (ko) 2018-01-11
CN109479149A (zh) 2019-03-15

Similar Documents

Publication Publication Date Title
ES2737843B2 (es) Metodo y aparato para procesar una senal de video
ES2737874B2 (es) Metodo y aparato para procesar senal de video
ES2908214T3 (es) Filtración adaptativa de muestras de referencia para intra predicción usando líneas de píxeles distantes
ES2830053B2 (es) Metodo y aparato para procesar senal de video
ES2739668B1 (es) Metodo y aparato para procesar senales de video
ES2800551B2 (es) Método y aparato para tratar una señal de vídeo
ES2703607B2 (es) Método y aparato para procesar señales de vídeo
ES2710234B1 (es) Procedimiento y dispositivo para procesar señales de vídeo
ES2800509B1 (es) Metodo y aparato para procesar senales de video
ES2719132B1 (es) Procedimiento y dispositivo para procesar señales de vídeo
ES2711474A2 (es) Metodo y aparato para procesar una senal de video
ES2703458A2 (es) Metodo y aparato para procesar senales de video
ES2711209A2 (es) Metodo y aparato para procesamiento de una senal de video
ES2711230A2 (es) Metodo y aparato para procesar una senal de video
ES2711223A2 (es) Metodo y aparato para procesar senales de video
ES2711473A2 (es) Metodo y aparato para procesar una senal de video

Legal Events

Date Code Title Description
BA2A Patent application published

Ref document number: 2737843

Country of ref document: ES

Kind code of ref document: A2

Effective date: 20200116

EC2A Search report published

Ref document number: 2737843

Country of ref document: ES

Kind code of ref document: R1

Effective date: 20200430

FG2A Definitive protection

Ref document number: 2737843

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20210715