ES2711230A2 - 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
ES2711230A2
ES2711230A2 ES201990024A ES201990024A ES2711230A2 ES 2711230 A2 ES2711230 A2 ES 2711230A2 ES 201990024 A ES201990024 A ES 201990024A ES 201990024 A ES201990024 A ES 201990024A ES 2711230 A2 ES2711230 A2 ES 2711230A2
Authority
ES
Spain
Prior art keywords
block
current block
binary tree
partitioning
coding
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.)
Pending
Application number
ES201990024A
Other languages
English (en)
Other versions
ES2711230R1 (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 ES2711230A2 publication Critical patent/ES2711230A2/es
Publication of ES2711230R1 publication Critical patent/ES2711230R1/es
Pending legal-status Critical Current

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/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/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/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/172Methods 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 picture, frame or field
    • 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/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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

Landscapes

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

Abstract

Método y aparato para procesar una señal de video. Un método para decodificar un vídeo de acuerdo con la presente invención puede comprender: determinar si dividir un bloque actual con particionamiento de árbol cuádruple, determinar si dividir el bloque actual con particionamiento de árbol binario cuando el bloque actual no está dividido con el particionamiento de árbol cuádruple, determinar un tipo de partición de árbol binario para el bloque actual cuando se determina dividir el bloque actual con el particionamiento de árbol binario, y dividir el bloque actual en dos particiones de acuerdo con el tipo de partición de árbol binario determinado.

Description

DESCRIPCION
METODO Y APARATO PARA PROCESAR UNA SENAL DE VIDEO
Campo tecnico
La presente invention se refiere a un metodo y a un aparato para procesar senales de video.
Antecedentes de la tecnica
En la actualidad, han aumentado las peticiones de imagenes de alta resolution y alta calidad a medida que han aumentado las imagenes de alta definition (HD) y de ultra alta definition (UHD) en diversos campos de aplicacion. Sin embargo, los datos de resolucion y calidad de imagen superiores tienen cantidades cada vez mayores de datos en comparacion con los datos de imagen convencionales. Por lo tanto, cuando se transmiten datos de imagen usando un medio tal como redes de banda ancha inalambricas y alambricas convencionales, o cuando se almacenan datos de imagen usando un medio de almacenamiento convencional, aumenta el coste de transmision y almacenamiento. Para resolver estos problemas que tienen lugar con un aumento en la resolucion y calidad de datos de imagen, pueden utilizarse tecnicas de codificacion/decodificacion de imagen de alta eficacia.
La tecnologla de compresion de imagen incluye diversas tecnicas, que incluyen: una tecnica de inter-prediccion para la prediction de un valor de pixel incluido en una instantanea actual de una instantanea anterior o posterior de la instantanea actual; una tecnica de intra prediccion de prediccion de un valor de pixel incluido en una instantanea actual usando information de pixel en la instantanea actual; una tecnica de codification por entropla de asignacion de un codigo corto a un valor con una alta frecuencia de aparicion y asignacion de un codigo largo a un valor con una baja frecuencia de aparicion; etc. Los datos de imagen pueden comprimirse de manera eficaz usando tal tecnologla de compresion de imagen, y pueden transmitirse o almacenarse.
Mientras tanto, con las peticiones de imagenes de alta resolucion, tambien han aumentado las peticiones de contenido de imagen estereografico, que es un nuevo servicio de imagen. Se esta analizando una tecnica de compresion de video para proporcionar de manera eficaz contenido de imagen estereografico con alta resolucion y ultra alta resolution.
Divulgacion
Problema tecnico
Un objeto de la presente invention es proporcionar un metodo y un aparato para dividir de manera eficaz un bloque objetivo de codificacion/decodificacion al codificar/decodificar una senal de video.
Un objeto de la presente invencion es proporcionar un metodo y un aparato para dividir un bloque objetivo de codificacion/decodificacion en dos bloques de un tipo simetrico o un tipo asimetrico al codificar/decodificar una senal de video.
Los objetos tecnicos a conseguirse por la presente invencion no estan limitados a los problemas tecnicos anteriormente mencionados. Y, otros problemas tecnicos que no se mencionan se entenderan de manera evidente por los expertos en la materia a partir de la siguiente descripcion.
Solucion tecnica
Un metodo y un aparato para decodificar una senal de video de acuerdo con la presente invencion pueden determinar si dividir un bloque actual con particionamiento de arbol cuadruple, determinar si dividir el bloque actual con particionamiento de arbol binario cuando el bloque actual no esta dividido con el particionamiento de arbol cuadruple, determinar un tipo de partition de arbol binario para el bloque actual cuando se determina dividir el bloque actual con el particionamiento de arbol binario, y dividir el bloque actual en dos particiones de acuerdo con el tipo de particion de arbol binario determinado.
Un metodo y un aparato para codificar una senal de video de acuerdo con la presente invencion pueden determinar si dividir un bloque actual con particionamiento de arbol cuadruple, determinar si dividir el bloque actual con particionamiento de arbol binario cuando el bloque actual no esta dividido con el particionamiento de arbol cuadruple, determinar un tipo de particion de arbol binario para el bloque actual cuando se determina dividir el bloque actual con el particionamiento de arbol binario, y dividir el bloque actual en dos particiones de acuerdo con el tipo de particion de arbol binario determinado.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invention, el tipo de partition de arbol binario puede comprender un tipo de partition asimetrica en el que dos particiones generadas dividiendo el bloque actual son asimetricas.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, si el bloque actual se divide en particiones asimetricas, el particionamiento de arbol cuadruple o el particionamiento de arbol binario pueden no estar permitidos para cada una de las particiones generadas como resultado de una division del bloque actual.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, puede determinarse el tipo de particion de arbol binario basandose en al menos una de entre una information en una direction de particionamiento del bloque actual y una informacion con respecto a tamanos de las dos particiones actuales.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, determinar el tipo de particion de arbol binario puede comprender determinar si el bloque actual se divide en una forma simetrica, y determinar un tipo de particion asimetrica del bloque actual cuando se determina que el bloque actual no esta dividido en la forma simetrica.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, el tipo de particion de arbol binario puede determinarse basandose en informacion de Indice senalizada mediante un flujo de bits.
Las caracterlsticas brevemente resumidas anteriormente para la presente invencion son unicamente aspectos ilustrativos de la description detallada de la invencion que sigue, pero no limitan el alcance de la invencion.
Efectos ventajosos
De acuerdo con la presente invencion, puede mejorarse la eficacia de codificacion/decodificacion dividiendo de manera eficaz un bloque objetivo de codificacion/decodificacion.
De acuerdo con la presente invencion, puede mejorarse la eficacia de codificacion/decodificacion dividiendo un bloque objetivo de codificacion/decodificacion en un tipo simetrico o un tipo asimetrico.
Los efectos obtenibles por la presente invention no estan limitados a los efectos anteriormente mencionados, y otros efectos no mencionados pueden entenderse de manera evidente por los expertos en la materia a partir de la description a continuation.
Descripcion de los dibujos
La Figura 1 es un diagrama de bloques que ilustra un dispositivo para codificar un video de acuerdo con una realization de la presente invencion.
La Figura 2 es un diagrama de bloques que ilustra un dispositivo para decodificar un video de acuerdo con una realizacion de la presente invencion.
La Figura 3 es un diagrama que ilustra un ejemplo de particionamiento jerarquico de un bloque de codificacion basandose en una estructura de arbol de acuerdo con una realizacion de la presente invencion.
La Figura 4 es un diagrama que ilustra un tipo de partition en la que se permite particionamiento basado en arbol binario de acuerdo con una realizacion de la presente invencion.
La Figura 5 es un diagrama que ilustra un ejemplo en el que unicamente se permite una particion basada en arbol binario de un tipo predeterminado de acuerdo con una realizacion de la presente invencion.
La Figura 6 es un diagrama para explicar un ejemplo en el que se codifica/decodifica information relacionada con el numero permisible de particionamiento de arbol binario, de acuerdo con una realizacion a la que se aplica la presente invencion.
La Figura 7 ilustra un tipo de particion de un bloque de codification basado en particionamiento de arbol binario asimetrico.
La Figura 8 muestra un ejemplo en el que se divide un bloque de codificacion en una pluralidad de bloques de codificacion usando QTBT y particionamiento de arbol binario asimetrico.
La Figura 9 es un diagrama que ilustra tipos de partition que pueden aplicarse a un bloque de codification.
La Figura 10 es un diagrama que ilustra un modo de particion que puede aplicarse a un bloque de codificacion cuando el bloque de codificacion se codifica por inter prediction.
La Figura 11 es un diagrama de flujo que ilustra procesos de particionamiento de un bloque de codificacion de acuerdo con una realization de la presente invention.
La Figura 12 es un diagrama de flujo que ilustra procesos de obtencion de una muestra residual de acuerdo con una realizacion a la que se aplica la presente invencion.
Modo para la invencion
Puede realizarse una diversidad de modificaciones a la presente invencion y existen diversas realizaciones de la presente invencion, ejemplos de la cual se proporcionaran ahora con referencia a los dibujos y se describiran en detalle. Sin embargo, la presente invencion no esta limitada a lo mismo, y las realizaciones ejemplares pueden interpretarse como que incluyen todas las modificaciones, equivalentes, o sustitutos en un concepto tecnico y un alcance tecnico de la presente invencion. Los numeros de referencia similares hacen referencia al elemento similar descrito en los dibujos.
Los terminos usados en la memoria descriptiva, 'primero', 'segundo', etc., pueden usarse para describir diversos componentes, pero los componentes no han de interpretarse como que estan limitados a los terminos. Los terminos se usan unicamente para diferenciar un componente de otros componentes. Por ejemplo, el ‘primer’ componente puede nombrarse el ‘segundo’ componente sin alejarse del alcance de la presente invencion, y el ‘segundo’ componente puede nombrarse tambien de manera similar el ‘primer’ componente. El termino ‘y/o’ incluye una combination de una pluralidad de elementos o uno cualquiera de una pluralidad de terminos.
Se entendera que cuando un elemento se denomina de manera sencilla como que esta ‘conectado a’ o ‘acoplado a’ otro elemento sin estar ‘directamente conectado a’ o ‘directamente acoplado a’ otro elemento en la presente description, puede estar ‘directamente conectado a’ o ‘directamente acoplado a’ otro elemento o estar conectado a o acoplado a otro elemento, que tiene el otro elemento intermedio entre los mismos. En contraste, deberla entenderse que cuando un elemento se denomina como que esta "directamente acoplado" o "directamente conectado" a otro elemento, no hay elementos intermedios presentes.
Los terminos usados en la presente memoria descriptiva se usan simplemente para describir realizaciones particulares, y no se pretende que limiten la presente invention. Una expresion usada en singular abarca la expresion del plural, a menos que tenga un significado claramente diferente en el contexto. En la presente memoria descriptiva, se ha de entender que los terminos tales como “que incluye”, “que tiene”, etc., se pretenden para indicar la existencia de las caracterlsticas, numeros, etapas, acciones, elementos, partes, o combinaciones de los mismos desveladas en la memoria descriptiva, y no se pretende que excluyan la posibilidad de que puedan existir o puedan anadirse una o mas otras caracterlsticas, numeros, etapas, acciones, elementos, partes, o combinaciones de los mismos.
En lo sucesivo, se describiran en detalle realizaciones preferidas de la presente invencion con referencia a los dibujos adjuntos. En lo sucesivo, los mismos elementos constituyentes en los dibujos se indican por los mismos numeros de referencia, y se omitira una description repetida de los mismos elementos.
La Figura 1 es un diagrama de bloques que ilustra un dispositivo para codificar un video de acuerdo con una realizacion de la presente invencion.
Haciendo referencia a la Figura 1, el dispositivo 100 para codificar un video puede incluir: un modulo 110 de particionamiento de instantanea, modulos de prediction 120 y 125, un modulo de transformada 130, un modulo de cuantificacion 135, un modulo de reorganization 160, un modulo de codification por entropla 165, un modulo de cuantificacion inversa 140, un modulo de transformada inversa 145, un modulo de filtro 150, y una memoria 155.
Las partes constitucionales mostradas en la Figura 1 se muestran de manera independiente para representar funciones caracterlsticas diferentes entre si en el dispositivo para codificar un video. Por lo tanto, no significa que cada parte constitucional este constituida en una unidad constitucional de hardware o software separada. 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 funcion. La realization donde se combina cada parte constitutional y la realization donde se divide una parte constitucional tambien estan incluidas en el alcance de la presente invention, si no se aleja de la esencia de la presente invention.
Tambien, algunos de los constituyentes pueden no ser constituyentes indispensables que realizan funciones esenciales de la presente invention sino ser constituyentes selectivos que mejoran unicamente el rendimiento de la misma. La presente invention puede implementarse incluyendo unicamente las partes constitucionales indispensables para implementar la esencia de la presente invention excepto los constituyentes usados al mejorar el rendimiento. La estructura que incluye unicamente los constituyentes indispensables excepto los constituyentes selectivos usados al mejorar unicamente el rendimiento tambien esta incluida en el alcance de la presente invention.
El modulo de particionamiento 110 de instantanea puede particionar una instantanea de entrada en una o mas unidades de procesamiento. En este punto, la unidad de procesamiento puede ser una unidad de prediction (PU), una unidad de transformada (TU), o una unidad de codification (CU). El modulo de particionamiento de instantanea 110 puede particionar una instantanea en combinaciones de multiples unidades de codification, unidades de prediction, y unidades de transformada, y puede codificar una instantanea seleccionando una combination de unidades de codification, unidades de prediction, y unidades de transformada con un criterio predeterminado (por ejemplo, funcion de coste).
Por ejemplo, una instantanea puede particionarse en multiples unidades de codification. Una estructura de arbol recursivo, tal como una estructura de arbol cuadruple, puede usarse para particionar una instantanea en unidades de codification. Una unidad de codification que se particiona en otras unidades de codification con una instantanea o una unidad de codification mas grande como una ralz puede particionarse con nodos hijo que corresponden al numero de unidades de codification particionadas. Una unidad de codification que ya no se particiona mas en una limitation predeterminada sirve como un nodo de hoja. Es decir, cuando se supone que unicamente es posible particionamiento cuadrado para una unidad de codification, una unidad de codification puede particionarse en cuatro otras unidades de codification como maximo.
En lo sucesivo, en la realization de la presente invention, la unidad de codification puede significar una unidad que realiza codification o una unidad que realiza decodificacion.
Una unidad de prediction puede ser una de las particiones particionadas en un cuadrado o una forma rectangular que tiene el mismo tamano en una unica unidad de codification, o una unidad de prediction puede ser una de las particiones particionadas para que tengan una forma / tamano diferente en una unica unidad de codification.
Cuando se genera una unidad de prediction sometida a intra prediction basandose en una unidad de codification y la unidad de codification no es la unidad de codification mas pequena, puede realizarse intra prediction sin particionar la unidad de codification en multiples unidades de prediction NxN.
Los modulos de prediction 120 y 125 pueden incluir un modulo de inter prediction 120 que realiza inter prediction y un modulo de intra prediction 125 que realiza intra prediction. Puede determinarse si realizar inter prediction o intra prediction para la unidad de prediction, y puede determinarse information detallada (por ejemplo, un modo de intra prediction, un vector de movimiento, una instantanea de referencia, etc.) de acuerdo con cada metodo de prediction. En este punto, la unidad de procesamiento sometida a prediction puede ser diferente de la unidad de procesamiento para la que se determina el metodo de prediction y contenido detallado. Por ejemplo, puede determinarse el metodo de prediction, el modo de prediction, etc., por la unidad de prediccion, y puede realizarse prediccion por la unidad de transformada. Un valor residual (bloque residual) entre el bloque de prediction generado y un bloque original puede introducirse al modulo de transformada 130. Tambien, la information de modo de prediction, la information de vector de movimiento, etc., usadas para prediction pueden codificarse con el valor residual por el modulo de codification 165 por entropla y pueden transmitirse a un dispositivo para decodificar un video. Cuando se usa un modo de codification particular, es posible transmitir un dispositivo para decodificacion de video codificando el bloque original como esta sin generar el bloque de prediction a traves de los modulos de prediction 120 y 125.
El modulo de inter prediction 120 puede predecir la unidad de prediction basandose en information de al menos una de una instantanea anterior o una instantanea posterior de la instantanea actual, o puede predecir la unidad de prediction basandose en information de algunas regiones codificadas en la instantanea actual, en algunos casos. El modulo de inter prediction 120 puede incluir un modulo de interpolation de instantanea de referencia, un modulo de prediction de movimiento, y un modulo de compensation de movimiento.
El modulo de interpolation de instantanea de referencia puede recibir information de instantanea de referencia desde la memoria 155 y puede generar information de pixel de un pixel entero o menor que el pixel entero desde la instantanea de referencia. En el caso de pixeles de luminancia, puede usarse un filtro de interpolation basado en DCT de 8 derivaciones, que tiene diferentes coeficientes de filtro para generar information de pixel de un pixel entero o menor que un pixel entero en unidades de 1/4 de pixel. En el caso de senales de crominancia, puede usarse un filtro de interpolation basado en DCT de 4 derivaciones que tiene diferente coeficiente para generar information de pixel de un pixel entero o menor que un pixel entero en unidades de 1/8 de pixel.
El modulo de prediction de movimiento puede realizar prediction de movimiento basandose en la instantanea de referencia interpolada por el modulo de interpolacion de instantanea de referencia. Como metodos para calcular un vector de movimiento, pueden usarse diversos metodos, tales como un algoritmo de adaptation de bloque basado en busqueda completa (FBMA), una busqueda de tres etapas (TSS), un algoritmo de busqueda de tres etapas (NTS), etc. El vector de movimiento puede tener un valor de vector de movimiento en unidades de 1/2 de pixel o de 1/4 de pixel basandose en un pixel de interpolation. El modulo de prediction de movimiento puede predecir una unidad de prediction actual cambiando el metodo de prediction de movimiento. Como metodos de prediction de movimiento, pueden usarse diversos metodos, tales como un metodo de salto, un metodo de union, un metodo de AMVP (Prediction de Vector de Movimiento Avanzada), un metodo de copia de intra bloque, etc.
El modulo de intra prediction 125 puede generar una unidad de prediction basandose en information del pixel de referencia que es vecino a un bloque actual que es information de pixel en la instantanea actual. Cuando el bloque vecino de la unidad de prediction actual es un bloque sometido a inter prediction y por lo tanto un pixel de referencia es un pixel sometido a inter prediction, el pixel de referencia incluido en el bloque sometido a inter prediction puede sustituirse por information de pixel de referencia de un bloque vecino sometido a intra prediction. Es decir, cuando un pixel de referencia no esta disponible, puede usarse al menos un pixel de referencia de pixeles de referencia disponibles en lugar de information del pixel de referencia no disponible.
Los modos de prediction en intra prediction pueden incluir un modo de prediction direccional que usa information de pixel de referencia dependiendo de una direction de prediction y un modo de prediction no direccional que no usa information direccional al realizar la prediction. Un modo para predecir information de luminancia puede ser diferente de un modo para predecir information de crominancia, y para predecir la information de crominancia, puede utilizarse information de modo de intra prediction para predecir information de luminancia o information de senal de luminancia prevista.
Al realizar intra prediction, cuando el tamano de la unidad de prediction es el mismo que el tamano de la unidad de transformada, puede realizarse intra prediction en la unidad de prediction basandose en plxeles situados a la izquierda, la parte superior izquierda y la parte superior de la unidad de prediction. Sin embargo, al realizar intra prediction, cuando el tamano de la unidad de prediction es diferente del tamano de la unidad de transformada, puede realizarse intra prediction usando un pixel de referencia basandose en la unidad de transformada. Tambien, puede usarse intra prediction usando particionamiento NxN para unicamente la unidad de codification mas pequena.
En el metodo de intra prediction, puede generarse un bloque de prediction despues de aplicar un filtro de AIS (Suavizado Intra Adaptativo) a un pixel de referencia dependiendo de los modos de prediction. El tipo del filtro de AIS aplicado al pixel de referencia puede variar. Para realizar el metodo de intra prediction, puede predecirse un modo de intra prediccion de la unidad de prediccion actual desde el modo de intra prediccion de la unidad de prediccion vecina a la unidad de prediccion actual. En la prediccion del modo de prediccion de la unidad de prediccion actual usando informacion de modo prevista desde la unidad de prediction vecina, cuando el modo de intra prediction de la unidad de prediccion actual es el mismo que el modo de intra prediccion de la unidad de prediccion vecina, puede transmitirse la information que indica que los modos de prediction de la unidad de prediction actual y la unidad de prediction vecina son iguales entre si usando information de bandera predeterminada. Cuando el modo de prediction de la unidad de prediccion actual es diferente del modo de prediccion de la unidad de prediccion vecina, puede realizarse codification por entropla para codificar information de modo de prediccion del bloque actual.
Tambien, puede generarse un bloque residual que incluye information sobre un valor residual que es uno diferente entre la unidad de prediction sometida a prediction y el bloque original de la unidad de prediccion basandose en unidades de prediccion generadas por los modulos de prediction 120 y 125. El bloque residual generado puede introducirse al modulo de transformada 130.
El modulo de transformada 130 puede transformar el bloque residual que incluye la informacion en el valor residual entre el bloque original y la unidad de prediccion generados por los modulos de prediction 120 y 125 usando un metodo de transformada, tal como transformada de coseno discreta (DCT), transformada de seno discreta (DST) y KLT. Si aplicar DCT, DST, o KLT para transformar el bloque residual puede determinarse basandose en information de modo de intra prediction de la unidad de prediction usada para generar el bloque residual.
El modulo de cuantificacion 135 puede cuantificar valores transformados a un dominio de frecuencia por el modulo de transformada 130. Los coeficientes de cuantificacion pueden variar dependiendo del bloque o importancia de una instantanea. Los valores calculados por el modulo de cuantificacion 135 pueden proporcionarse al modulo de cuantificacion inversa 140 y al modulo de reorganization 160.
El modulo de reorganization 160 puede reorganizar coeficientes de valores residuales cuantificados.
El modulo de reorganization 160 puede cambiar un coeficiente en forma de un bloque bidimensional en un coeficiente en forma de un vector unidimensional a traves de un metodo de exploration de coeficiente. Por ejemplo, el modulo de reorganization 160 puede explorar desde un coeficiente de CC a un coeficiente en el dominio de alta frecuencia un metodo de exploration en zigzag para cambiar los coeficientes para que esten en forma de vectores unidimensionales. Dependiendo del tamano de la unidad de transformada y el modo de intra prediction, puede usarse exploration de direction vertical donde se exploran los coeficientes en forma de bloques bidimensionales en la direction de columna o exploration de direction horizontal donde se exploran los coeficientes en forma de bloques bidimensionales en la direction de fila en lugar de exploracion en zigzag. Es decir, que metodo de exploracion se usa entre exploracion en zigzag, exploration de direction vertical y exploration de direction horizontal puede determinarse dependiendo del tamano de la unidad de transformada y el modo de intra prediccion.
El modulo de codification 165 por entropla puede realizar codification por entropla basandose en los valores calculados por el modulo de reorganization 160. La codification por entropla puede usar diversos metodos de codification, por ejemplo, codification de Golomb exponencial, codification de longitud variable adaptativa segun contexto (CAVLC), y codification binaria aritmetica adaptativa segun contexto (CABAC).
El modulo de codification por entropla 165 puede codificar una diversidad de information, tal como information de coeficiente de valor residual e information de tipo de bloque de la unidad de codification, information de modo de prediction, information de unidad de partition, information de unidad de prediction, information de unidad de transformada, information de vector de movimiento, information de fotograma de referencia, information de interpolation de bloque, information de filtration, etc., desde el modulo de reorganization 160 y los modulos de prediction 120 y 125.
El modulo de codification por entropla 165 puede codificar por entropla los coeficientes de la unidad de codification introducidos desde el modulo de reorganization 160.
El modulo de cuantificacion inversa 140 puede cuantificar a la inversa los valores cuantificados por el modulo de cuantificacion 135 y el modulo de transformada inversa 145 puede transformar a la inversa los valores transformados por el modulo de transformada 130. El valor residual generado por el modulo de cuantificacion inversa 140 y el modulo de transformada inversa 145 puede combinarse con la unidad de prediction prevista por un modulo de estimacion de movimiento, un modulo de compensacion de movimiento, y el modulo de intra prediction de los modulos de prediction 120 y 125 de manera que puede generarse un bloque reconstruido.
El modulo de filtro 150 puede incluir al menos uno de un filtro de desbloqueo, una unidad de correction de desplazamiento, y un filtro de bucle adaptativo (ALF).
El filtro de desbloqueo puede eliminar distorsion de bloque que tiene lugar debido a los llmites entre los bloques en la instantanea reconstruida. Para determinar si realizar desbloqueo, los plxeles incluidos en diversas filas o columnas en el bloque pueden ser una base de determination de si aplicar el filtro de desbloqueo al bloque actual. Cuando el filtro de desbloqueo se aplica al bloque, puede aplicarse un filtro intenso o un filtro debil dependiendo de la intensidad de filtration de desbloqueo requerida. Tambien, al aplicar el filtro de desbloqueo, puede procesarse en paralelo la filtration de direction horizontal y la filtration de direction vertical.
El modulo de correction de desplazamiento puede corregir el desplazamiento con la instantanea original en unidades de un pixel en la instantanea sometida a desbloqueo. Para realizar la correction de desplazamiento en una instantanea particular, es posible usar un metodo de aplicacion de desplazamiento en consideration de information de borde de cada pixel o un metodo de particionamiento de plxeles de una instantanea en el numero predeterminado de regiones, determinar un region a someterse para realizar el desplazamiento, y aplicar el desplazamiento a la region determinada.
Puede realizarse filtracion de bucle adaptativa (ALF) basandose en el valor obtenido comparando la instantanea reconstruida filtrada y la instantanea original. Los plxeles incluidos en la instantanea pueden dividirse en grupos predeterminados, puede determinarse un filtro a aplicarse a cada uno de los grupos, y puede realizarse de manera individual filtracion para cada grupo. La information sobre si aplicar ALF y una senal de luminancia puede transmitirse por unidades de codification (CU). La forma y coeficiente de filtro de un filtro para ALF puede variar dependiendo de cada bloque. Tambien, el filtro para ALF en la misma forma (forma fijada) puede aplicarse independientemente de las caracterlsticas del bloque objetivo de aplicacion.
La memoria 155 puede almacenar el bloque o instantanea reconstruidos calculados a traves del modulo de filtro 150. El bloque o instantanea reconstruidos almacenados pueden proporcionarse a los modulos de prediction 120 y 125 al realizar inter prediction.
La Figura 2 es un diagrama de bloques que ilustra un dispositivo para decodificar un video de acuerdo con una realization de la presente invention.
Haciendo referencia a la Figura 2, el dispositivo 200 para decodificar un video puede incluir: un modulo de decodificacion por entropla 210, un modulo de reorganization 215, un modulo de cuantificacion inversa 220, un modulo de transformada inversa 225, modulos de prediccion 230 y 235, un modulo de filtro 240, y una memoria 245.
Cuando se introduce un flujo de bits de video desde el dispositivo para codificar un video, el flujo de bits introducido puede decodificarse de acuerdo con un proceso inverso del dispositivo para codificar un video.
El modulo de decodificacion por entropla 210 puede realizar decodificacion por entropla de acuerdo con un proceso inverso de codificacion por entropla por el modulo de codificacion por entropla del dispositivo para codificar un video. Por ejemplo, correspondiendo a los metodos realizados por el dispositivo para codificar un video, pueden aplicarse diversos metodos, tales como codificacion de Golomb exponencial, codificacion de longitud variable adaptativa segun contexto (CAVLC), y codificacion binaria aritmetica adaptativa segun contexto (CABAC).
El modulo de decodificacion por entropla 210 puede decodificar informacion sobre intra prediction e inter prediction realizada por el dispositivo para codificar un video.
El modulo de reorganization 215 puede realizar reorganization en el flujo de bits decodificado por entropla por el modulo de decodificacion por entropla 210 basandose en el metodo de reorganization usado en el dispositivo para codificar un video. El modulo de reorganization puede reconstruir y reorganizar los coeficientes en forma de vectores unidimensionales al coeficiente en forma de bloques bidimensionales. El modulo de reorganization 215 puede recibir information relacionada con exploration de coeficiente realizada en el dispositivo para codificar un video y puede realizar reorganization mediante un metodo de exploration a la inversa de los coeficientes basandose en el orden de exploration realizado en el dispositivo para codificar un video.
El modulo de cuantificacion inversa 220 puede realizar cuantificacion inversa basandose en un parametro de cuantificacion recibido desde el dispositivo para codificar un video y los coeficientes reorganizados del bloque.
El modulo de transformada inversa 225 puede realizar la transformada inversa, es decir, DCT inversa, DST inversa, y KLT inversa, que es el proceso inverso de la transformada, es decir, DCT, DST, y KLT, realizado por el modulo de transformada en el resultado de cuantificacion por el dispositivo para codificar un video. La transformada inversa puede realizarse basandose en una unidad de transferencia determinada por el dispositivo para codificar un video. El modulo de transformada inversa 225 del dispositivo para decodificar un video puede realizar de manera selectiva esquemas de transformada (por ejemplo, DCT, DST, y KLT) dependiendo de multiples piezas de information, tal como el metodo de prediction, el tamano del bloque actual, la direction de prediction, etc.
Los modulos de prediccion 230 y 235 pueden generar un bloque de prediccion basandose en information sobre la generation de bloque de prediction recibida desde el modulo de decodificacion por entropla 210 y la information de bloque o instantanea previamente decodificada recibida desde la memoria 245.
Como se ha descrito anteriormente, como la operation del dispositivo para codificar un video, al realizar intra prediction, cuando el tamano de la unidad de prediction es el mismo que el tamano de la unidad de transformada, puede realizarse intra prediction en la unidad de prediction basandose en los plxeles situados a la izquierda, la parte superior izquierda, y la parte superior de la unidad de prediction. Al realizar intra prediction, cuando el tamano de la unidad de prediction es diferente del tamano de la unidad de transformada, puede realizarse intra prediction usando un pixel de referenda basandose en la unidad de transformada. Tambien, puede usarse intra prediction usando particionamiento NxN para unicamente la unidad de codification mas pequena.
Los modulos de prediction 230 y 235 pueden incluir un modulo de determination de unidad de prediction, un modulo de inter prediction, y un modulo de intra prediction. El modulo de determination de unidad de prediction puede recibir una diversidad de informacion, tal como informacion de unidad de prediccion, informacion de modo de prediccion de un metodo de intra prediccion, informacion sobre prediccion de movimiento de un metodo de inter prediction, etc., desde el modulo de decodificacion por entropla 210, puede dividir una unidad de codification actual en unidades de prediction, y puede determinar si se realiza inter prediccion o intra prediccion en la unidad de prediccion. Usando information requerida en inter prediction de la unidad de prediction actual recibida desde el dispositivo para codificar un video, el modulo de inter prediction 230 puede realizar inter prediction en la unidad de prediction actual basandose en information de al menos una de una instantanea anterior o una instantanea posterior de la instantanea actual que incluye la unidad de prediction actual. Como alternativa, puede realizarse inter prediction basandose en information de algunas regiones previamente reconstruidas en la instantanea actual que incluye la unidad de prediccion actual.
Para realizar inter prediction, puede determinarse para la unidad de codification cual de un modo de salto, un modo de union, un modo de AMVP, y un modo de copia de inter bloque se usa como el metodo de prediction de movimiento de la unidad de prediction incluido en la unidad de codificacion.
El modulo de intra prediction 235 puede generar un bloque de prediction basandose en information de pixel en la instantanea actual. Cuando la unidad de prediction es una unidad de prediction sometida a intra prediction, puede realizarse intra prediction basandose en information de modo de intra prediction de la unidad de prediction recibida desde el dispositivo para codificar un video. El modulo de intra prediction 235 puede incluir un filtro de suavizado intra adaptativo (AIS), un modulo de interpolation de pixel de referencia, y un filtro de CC. El filtro de AIS realiza filtration en el pixel de referencia del bloque actual, y si aplicar el filtro puede determinarse dependiendo del modo de prediccion de la unidad de prediccion actual. Puede realizarse filtracion de AIS en el pixel de referencia del bloque actual usando el modo de prediction de la unidad de prediction y la information de filtro de AIS recibida desde el dispositivo para codificar un video. Cuando el modo de prediction del bloque actual es un modo donde no se realiza filtracion de AIS, no puede aplicarse el filtro de AIS.
Cuando el modo de prediction de la unidad de prediction es un modo de prediction en el que se realiza intra prediccion basandose en el valor de pixel obtenido interpolando el pixel de referencia, el modulo de interpolation de pixel de referencia puede interpolar el pixel de referencia para generar el pixel de referencia de un pixel entero o menor que un pixel entero. Cuando el modo de prediccion de la unidad de prediccion actual es un modo de prediccion en el que se genera un bloque de prediccion sin interpolacion del pixel de referencia, no puede interpolarse el pixel de referencia. El filtro de CC puede generar un bloque de prediccion a traves de filtracion cuando el modo de prediccion del bloque actual es un modo de CC.
El bloque o instantanea reconstruidos pueden proporcionarse al modulo 240 de filtro. El modulo de filtro 240 puede incluir el filtro de desbloqueo, el modulo de correction de desplazamiento, y el ALF.
La information sobre si se aplica o no el filtro de desbloqueo al correspondiente bloque o instantanea y la informacion sobre cual de un filtro intenso y un filtro debil se aplica cuando se aplica el filtro de desbloqueo puede recibirse desde el dispositivo para codificar un video. El filtro de desbloqueo del dispositivo para decodificar un video puede recibir informacion sobre el filtro de desbloqueo desde el dispositivo para codificar un video, y puede realizar filtracion de desbloqueo en el correspondiente bloque.
El modulo de correccion de desplazamiento puede realizar correccion de desplazamiento en la instantanea reconstruida basandose en el tipo de correccion de desplazamiento e informacion de valor de desplazamiento aplicados a una instantanea al realizar codificacion.
El ALF puede aplicarse a la unidad de codification basandose en informacion sobre si aplicar el ALF, informacion de coeficiente de ALF, etc., recibida desde el dispositivo para codificar un video. La informacion de ALF puede proporcionarse como que se incluye en un conjunto de parametros particular.
La memoria 245 puede almacenar la instantanea o bloque reconstruidos para su uso como una instantanea o bloque de referencia, y puede proporcionar la instantanea reconstruida a un modulo de salida.
Como se ha descrito anteriormente, en la realization de la presente invention, por conveniencia de explication, la unidad de codification se usa como un termino para representar una unidad para codificacion, pero la unidad de codificacion puede servir como una unidad para realizar decodificacion asl como codificacion.
Ademas, un bloque actual puede representar un bloque objetivo a codificarse/decodificarse. Y, el bloque actual puede representar un bloque de arbol de codificacion (o una unidad de arbol de codificacion), un bloque de codificacion (o una unidad de codificacion), un bloque de transformada (o una unidad de transformada), un bloque de prediccion (o una unidad de prediccion), o similares dependiendo de una etapa de codificacion/decodificacion.
Una instantanea puede codificarse/decodificarse dividiendo en bloques de base que tienen una forma cuadrada o una forma no cuadrada. En este momento, el bloque de base puede denominarse como una unidad de arbol de codificacion. La unidad de arbol de codificacion puede definirse como una unidad de codificacion del tamano mas grande permitido en una secuencia o un corte. La information con respecto a si la unidad de arbol de codificacion tiene una forma cuadrada o tiene una forma no cuadrada o la informacion con respecto a un tamano de la unidad de arbol de codificacion puede senalizarse a traves de un conjunto de parametros de secuencia, un conjunto de parametros de instantanea, o un encabezamiento de corte. La unidad de arbol de codificacion puede dividirse en particiones de tamano mas pequeno. En este momento, si se supone que una profundidad de una partition generada dividiendo la unidad de arbol de codificacion es 1, una profundidad de una particion generada dividiendo la particion que tiene la profundidad 1 puede definirse como 2. Es decir, una particion generada dividiendo una particion que tiene una profundidad k en la unidad de arbol de codificacion puede definirse como que tiene una profundidad k+1.
Una particion de tamano arbitrario generada dividiendo una unidad de arbol de codificacion puede definirse como una unidad de codificacion. La unidad de codificacion puede dividirse de manera recursiva o dividirse en unidades de base para realizar prediction, cuantificacion, transformada, o filtration en bucle, y similares. Por ejemplo, una particion de tamano arbitrario generada dividiendo la unidad de codificacion puede definirse como una unidad de codificacion, o puede definirse como una unidad de transformada o una unidad de prediccion, que es una unidad de base para realizar prediccion, cuantificacion, transformada o filtracion en bucle y similares.
El particionamiento de una unidad de arbol de codificacion o una unidad de codificacion puede realizarse basandose en al menos una de una lmea vertical y una lmea horizontal. Ademas, el numero de lmeas verticales o lmeas horizontales que particionan la unidad de arbol de codificacion o la unidad de codificacion puede ser al menos uno o mayor. Por ejemplo, la unidad de arbol de codificacion o la unidad de codificacion pueden dividirse en dos particiones usando una lmea vertical o una lmea horizontal, o la unidad de arbol de codificacion o la unidad de codificacion pueden dividirse en tres particiones usando dos lmeas verticales o dos lmeas horizontales. Como alternativa, la unidad de arbol de codificacion o la unidad de codificacion pueden particionarse en cuatro particiones que tienen una longitud y una anchura de 1/2 usando una lmea vertical y una lmea horizontal.
Cuando se divide una unidad de arbol de codificacion o una unidad de codificacion en una pluralidad de particiones usando al menos una lmea vertical o al menos una lmea horizontal, las particiones pueden tener un tamano uniforme o un tamano diferente. Como alternativa, una partition cualquiera puede tener un tamano diferente de las particiones restantes.
En las realizaciones descritas a continuation, se supone que una unidad de arbol de codificacion o una unidad de codificacion se divide en una estructura de arbol cuadruple o una estructura de arbol binario. Sin embargo, tambien es posible dividir una unidad de arbol de codificacion o una unidad de codificacion usando un numero mayor de lmeas verticales o un numero mayor de lmeas horizontales.
La Figura 3 es un diagrama que ilustra un ejemplo de particionamiento jerarquico de un bloque de codificacion basandose en una estructura de arbol de acuerdo con una realizacion de la presente invencion.
Una senal de video de entrada se decodifica en unidades de bloque predeterminadas. Una unidad por defecto de este tipo para decodificar la senal de video de entrada es un bloque de codificacion. El bloque de codificacion puede ser una unidad para realizar intra/inter prediction, transformada y cuantificacion. Ademas, se determina un modo de prediction (por ejemplo, modo de intra prediccion o modo de inter prediccion) en unidades de un bloque de codificacion, y los bloques de prediccion incluidos en el bloque de codificacion pueden compartir el modo de prediccion determinado. El bloque de codificacion puede ser un bloque cuadrado o no cuadrado que tiene un tamano arbitrario en un intervalo de 8x8 a 64x64, o puede ser un bloque cuadrado o no cuadrado que tiene un tamano de 128x128, 256x256 o mayor.
Especlficamente, el bloque de codificacion puede particionarse jerarquicamente basandose en al menos uno de un arbol cuadruple y un arbol binario. En este punto, particionamiento basado en arbol cuadruple puede significar que un bloque de codificacion 2Nx2N se particiona en cuatro bloques de codificacion NxN, y el particionamiento basado en arbol binario puede significar que un bloque de codificacion se particiona en dos bloques de codificacion. Incluso si se realiza el particionamiento basado en arbol binario, puede existir un bloque de codificacion con forma cuadrada en la profundidad inferior.
El particionamiento basado en arbol binario puede realizarse de manera simetrica o asimetrica. Ademas, el bloque de codificacion particionado basandose en el arbol binario puede ser un bloque cuadrado o un bloque no cuadrado, tal como una forma rectangular. Por ejemplo, un tipo de partition en la que esta permitido el particionamiento basado en arbol binario puede comprender al menos uno de un tipo simetrico de 2NxN (unidad de codificacion no cuadrada de direction horizontal) o Nx2N (unidad de codificacion no cuadrada de direccion vertical), tipo asimetrico de nLx2N, nRx2N, 2NxnU, o 2NxnD.
El particionamiento basado en arbol binario puede estar permitido de manera limitada a una de una particion de tipo simetrico o tipo asimetrico. En este caso, construir la unidad de arbol de codificacion con bloques cuadrados puede corresponder a particionamiento de CU de arbol cuadruple, y construir la unidad de arbol de codificacion con bloques no cuadrados simetricos puede corresponder a particionamiento de arbol binario. Construir la unidad de arbol de codificacion con bloques cuadrados y bloques no cuadrados simetricos puede corresponder a particionamiento de CU de arbol cuadruple y binario.
El particionamiento basado en arbol binario puede realizarse en un bloque de codificacion donde ya no se realiza particionamiento basado en arbol cuadruple. El particionamiento basado en arbol cuadruple ya no puede realizarse en el bloque de codificacion particionado basandose en el arbol binario.
Adicionalmente, puede determinarse particionamiento de una profundidad inferior dependiendo de un tipo de particion de una profundidad superior. Por ejemplo, si se permite particionamiento basado en arbol binario en dos o mas profundidades, unicamente puede permitirse el mismo tipo que el particionamiento de arbol binario de la profundidad superior en la profundidad inferior. Por ejemplo, si se realiza el particionamiento basado en arbol binario en la profundidad superior con tipo 2NxN, tambien se realiza el particionamiento basado en arbol binario en la profundidad inferior con tipo 2NxN. Como alternativa, si se realiza el particionamiento basado en arbol binario en la profundidad superior con tipo Nx2N, el particionamiento basado en arbol binario en la profundidad inferior tambien se realiza con tipo Nx2N.
Por el contrario, tambien es posible permitir, en una profundidad inferior, unicamente un tipo diferente de un tipo de particionamiento de arbol binario de una profundidad superior.
Puede ser posible limitar unicamente a usarse un tipo especlfico de particionamiento basado en arbol binario para secuencia, corte, unidad de arbol de codificacion, o unidad de codificacion. Como un ejemplo, unicamente puede permitirse tipo 2NxN o tipo Nx2N de particionamiento basado en arbol binario para la unidad de arbol de codificacion. Puede predefinirse un tipo de partition disponible en un codificador o un decodificador. O puede codificarse information sobre tipo de particion disponible o sobre tipo de particion no disponible y a continuation senalizarse a traves de un flujo de bits.
La Figura 5 es un diagrama que ilustra un ejemplo en el que unicamente esta permitido un tipo especlfico de particionamiento basado en arbol binario. La Figura 5A muestra un ejemplo en el que unicamente esta permitido el tipo Nx2N de particionamiento basado en arbol binario, y la Figura 5B muestra un ejemplo en el que unicamente esta permitido el tipo 2NxN de particionamiento basado en arbol binario. Para implementar particionamiento adaptativo basandose en el arbol cuadruple o arbol binario, puede usarse informacion que indica particionamiento basado en arbol cuadruple, informacion sobre el tamano/profundidad del bloque de codificacion que esta permitido particionamiento basado en arbol cuadruple, informacion que indica particionamiento basado en arbol binario, informacion sobre el tamano/profundidad del bloque de codificacion que esta permitido particionamiento basado en arbol binario, informacion sobre el tamano/profundidad del bloque de codificacion que no esta permitido particionamiento basado en arbol binario, informacion sobre si se realiza particionamiento basado en arbol binario en una direction vertical, una direction horizontal, o similares. Por ejemplo, quad_split_flag indica si el bloque de codificacion se divide en cuatro bloques de codificacion, y binary_split_flag indica si el bloque de codificacion se divide en dos bloques de codificacion. Cuando el bloque de codificacion se divide en dos bloques de codificacion, puede senalizarse is_hor_split_flag que indica si una direccion de particionamiento del bloque de codificacion es una direccion vertical o una direccion horizontal.
Ademas, puede obtenerse informacion sobre el numero de veces que esta permitido un particionamiento de arbol binario, una profundidad a la que esta permitida el particionamiento de arbol binario, o el numero de las profundidades a las estan permitidas el particionamiento de arbol binario para una unidad de arbol de codificacion o una unidad de codificacion especlfica. La information puede codificarse en unidades de una unidad de arbol de codificacion o una unidad de codificacion, y puede transmitirse a un decodificador a traves de un flujo de bits.
Por ejemplo, una sintaxis 'max_binary_depth_idx_minus1' que indica una profundidad maxima a la que esta permitido particionamiento de arbol binario puede codificarse / decodificarse a traves de un flujo de bits. En este caso, max_binary_depth_idx_minus1 1 puede indicar la profundidad maxima a la que esta permitido el particionamiento de arbol binario.
Haciendo referencia al ejemplo mostrado en la Figura 6, en la Figura 6, el particionamiento de arbol binario se ha realizado para una unidad de codificacion que tiene una profundidad de 2 y una unidad de codificacion que tiene una profundidad de 3. Por consiguiente, al menos una de informacion que indica el numero de veces que se ha realizado el particionamiento de arbol binario en la unidad de arbol de codificacion (es decir, 2 veces), informacion que indica la profundidad maxima que se ha permitido el particionamiento de arbol binario en la unidad de arbol de codificacion (es decir, profundidad 3), o el numero de profundidades en las que se ha realizado el particionamiento de arbol binario en la unidad de arbol de codificacion (es decir, 2 (profundidad 2 y profundidad 3)) puede codificarse / decodificarse a traves de un flujo de bits.
Como otro ejemplo, al menos una de informacion sobre el numero de veces que esta permitido el particionamiento de arbol binario, la profundidad a la que esta permitida el particionamiento de arbol binario, o el numero de las profundidades a las que esta permitido el particionamiento de arbol binario puede obtenerse para cada secuencia o cada corte. Por ejemplo, la informacion puede codificarse en unidades de una secuencia, una instantanea, o una unidad de corte y transmitirse a traves de un flujo de bits. Por consiguiente, al menos uno del numero del particionamiento de arbol binario en un primer corte, la profundidad maxima en la que esta permitido el particionamiento de arbol binario en el primer corte, o el numero de profundidades en las que se realiza el particionamiento de arbol binario en el primer corte puede diferir de un segundo corte. Por ejemplo, en el primer corte, puede permitirse particionamiento de arbol binario para unicamente una profundidad, mientras que en el segundo corte, puede permitirse particionamiento de arbol binario para dos profundidades.
Como otro ejemplo, el numero de veces que esta permitido el particionamiento de arbol binario, la profundidad a la que esta permitida el particionamiento de arbol binario, o el numero de profundidades a las que esta permitido el particionamiento de arbol binario puede establecerse de manera diferente de acuerdo con un identificador de nivel temporal (TemporalID) de un corte o una instantanea. En este punto, 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 calidad.
Como se muestra en la Figura 3, el primer bloque de codificacion 300 con la profundidad de partition (profundidad de division) de k puede particionarse en multiples segundos bloques de codificacion basados en el arbol cuadruple. Por ejemplo, los segundos bloques de codificacion 310 a 340 pueden ser bloques cuadrados que tienen la mitad de anchura y la mitad de altura del primer bloque de codificacion, y la profundidad de particion del segundo bloque de codificacion puede aumentarse a k+1.
El segundo bloque de codificacion 310 con la profundidad de particion de k+1 puede particionarse en multiples terceros bloques de codificacion con la profundidad de particion de k+2. El particionamiento del segundo bloque de codificacion 310 puede realizarse usando de manera selectiva uno del arbol cuadruple y el arbol binario dependiendo de un metodo de particionamiento. En este punto, el metodo de particionamiento puede determinarse basandose en al menos una de la information que indica particionamiento basado en arbol cuadruple y la informacion que indica particionamiento basado en arbol binario.
Cuando se particiona el segundo bloque de codificacion 310 basandose en el arbol cuadruple, el segundo bloque de codificacion 310 puede particionarse en cuatro terceros bloques de codificacion 310a que tienen la mitad de anchura y la mitad de altura del segundo bloque de codificacion, y la profundidad de particion del tercer bloque de codificacion 310a puede aumentarse a k+2. En contraste, cuando el segundo bloque de codificacion 310 se particiona basandose en el arbol binario, el segundo bloque de codificacion 310 puede particionarse en dos terceros bloques de codificacion. En este punto, cada uno de los dos terceros bloques de codificacion puede ser un bloque no cuadrado que tiene una de la mitad de anchura y la mitad de altura del segundo bloque de codificacion, y la profundidad de particion puede aumentarse a k+2. El segundo bloque de codificacion puede determinarse como un bloque no cuadrado de una direction horizontal o una direccion vertical dependiendo de una direccion de particionamiento, y la direccion de particionamiento puede determinarse basandose en la information sobre si se realiza particionamiento basado en arbol binario en una direccion vertical o una direccion horizontal.
Mientras tanto, el segundo bloque de codificacion 310 puede determinarse como un bloque de codificacion de hoja que ya no se particiona basandose en el arbol cuadruple o el arbol binario. En este caso, el bloque de codificacion de hoja puede usarse como un bloque de prediccion o un bloque de transformada.
Como el particionamiento del segundo bloque de codificacion 310, el tercer bloque de codificacion 310a puede determinarse como un bloque de codificacion de hoja, o puede particionarse adicionalmente basandose en el arbol cuadruple o el arbol binario.
Mientras tanto, el tercer bloque de codificacion 310b particionado basandose en el arbol binario puede particionarse adicionalmente en bloques de codificacion 310b-2 de una direccion vertical o bloques de codificacion 310b-3 de una direccion horizontal basandose en el arbol binario, y la profundidad de partition de los bloques de codificacion pertinentes puede aumentarse a k+3. Como alternativa, el tercer bloque de codificacion 310b puede determinarse como un bloque de codificacion 310b-1 de hoja que ya no se particiona basandose en el arbol binario. En este caso, el bloque de codificacion 310b-1 puede usarse como un bloque de prediction o un bloque de transformada. Sin embargo, el proceso de particionamiento anterior puede realizarse de manera limitada basandose en al menos uno de la informacion sobre el tamano/profundidad del bloque de codificacion que esta permitido particionamiento basado en arbol cuadruple, la informacion sobre el tamano/profundidad del bloque de codificacion que esta permitido particionamiento basado en arbol binario, y la informacion sobre el tamano/profundidad del bloque de codificacion que no esta permitido particionamiento basado en arbol binario.
Un numero de un candidato que representa un tamano de un bloque de codificacion puede limitarse a un numero predeterminado, o un tamano de un bloque de codificacion en una unidad predeterminada puede tener un valor fijo. Como un ejemplo, el tamano del bloque de codificacion en una secuencia o en una instantanea puede limitarse para que tenga 256x256, 128x128, o 32x32. La informacion que indica el tamano del bloque de codificacion en la secuencia o en la instantanea puede senalizarse a traves de un encabezamiento de secuencia o un encabezamiento de instantanea.
Como resultado del particionamiento basandose en un arbol cuadruple y un arbol binario, una unidad de codificacion puede representarse como forma cuadrada o rectangular de un tamano arbitrario.
Como resultado de una division basandose en el arbol cuadruple y el arbol binario, un bloque de codificacion que no se particiona adicionalmente puede usarse como un bloque de prediction o un bloque de transformada. Es decir, en un metodo de particionamiento de QTBT basandose en un arbol cuadruple y arbol binario, un bloque de codificacion puede hacerse un bloque de prediccion y un bloque de prediccion puede hacerse un bloque de transformada. Por ejemplo, cuando se usa el metodo de particionamiento de QTBT, una imagen de prediccion puede generarse en una unidad de un bloque de codificacion, y una senal residual, que es una diferencia entre una imagen original y la imagen de prediccion, se transforma en una unidad de un bloque de codificacion. En este punto, generar la imagen de prediccion en una unidad de un bloque de codificacion puede significar que se determina la information de movimiento para un bloque de codificacion o se determina un modo de intra prediccion para un bloque de codificacion.
En el metodo de particionamiento de QTBT, puede establecerse que unicamente esta permitido particionamiento simetrico en BT. Sin embargo, si unicamente esta permitido particionamiento binario simetrico, incluso aunque un objeto y un fondo se dividan en un llmite de bloque, puede reducirse la eficacia de codificacion. Por consiguiente, en la presente invencion, se propone un metodo de particionamiento de un bloque de codificacion de manera asimetrica para aumentar la eficacia de codificacion.
El particionamiento de arbol binario asimetrico representa dividir un bloque de codificacion en dos bloques de codificacion mas pequenos. Como resultado del particionamiento de arbol binario asimetrico, el bloque de codificacion puede dividirse en dos bloques de codificacion de una forma asimetrica. Por conveniencia de explication, en las siguientes realizaciones, dividir un bloque de codificacion en dos particiones de una forma simetrica se denominara como una partition de arbol binario (o particionamiento de arbol binario), y dividir un bloque de codificacion en dos particiones de una forma asimetrica se denominara como una particion de arbol binario asimetrico (o particionamiento de arbol binario asimetrico).
La Figura 7 ilustra un tipo de particion de un bloque de codificacion basado en particionamiento de arbol binario asimetrico. Un bloque de codificacion de 2Nx2N puede dividirse en dos bloques de codificacion cuya relation de anchura es n:(1-n) o dos bloques de codificacion cuya relacion de altura es n:(1-n). Donde n puede representar un numero real mayor que 0 y menor que 1.
Se ilustra en la Figura 7 que dos bloques de codificacion cuya relacion de anchura es 1:3 o 3:1 o cuya relacion de altura es 1:3 o 3:1 se generan aplicando el particionamiento de arbol binario asimetrico a un bloque de codificacion.
Especlficamente, como un bloque de codificacion de tamano WxH se particiona en una direction vertical, puede generarse una partition izquierda cuya anchura es 1/4W y una partition derecha cuya anchura es 3/4W. Como se ha descrito anteriormente, un tipo de particion en la que la anchura de la particion izquierda es menor que la anchura de la particion derecha puede denominarse como particion binaria nLx2N.
Como un bloque de codificacion de tamano WxH se particiona en una direccion vertical, puede generarse una particion izquierda cuya anchura es 3/4W y una particion derecha cuya anchura es 1/4W. Como se ha descrito anteriormente, un tipo de particion en la que la anchura de la particion derecha es menor que la anchura de la particion izquierda puede denominarse como particion binaria de nRx2N.
Como un bloque de codificacion de tamano WxH se particiona en una direccion horizontal, puede generarse una particion superior cuya anchura es 1/4H y una particion inferior cuya anchura es 3/4H. Como se ha descrito anteriormente, un tipo de particion en el que la altura de la particion superior es menor que la altura de la particion inferior puede denominarse como particion binaria de 2NxnU.
Como un bloque de codificacion de tamano WxH se particiona en una direccion horizontal, puede generarse una particion superior cuya anchura es 3/4H y una particion inferior cuya anchura es 1/4H. Como se ha descrito anteriormente, un tipo de particion en la que la altura de la particion inferior es menor que la altura de la particion superior puede denominarse como particion binaria de 2NxnD.
En la Figura 7, se ilustra que una relacion de anchura o una relacion de altura entre dos bloques de codificacion es 1:3 o 3:1. Sin embargo, la relacion de anchura o la relacion de altura entre dos bloques de codificacion generados por particionamiento de arbol binario asimetrico no esta limitado a lo mismo. El bloque de codificacion puede particionarse en dos bloques de codificacion que tienen diferente relacion de anchura o diferente relacion de altura de aquellas mostradas en la Figura 7.
Cuando se usa el particionamiento de arbol binario asimetrico, puede determinarse un tipo de partition binaria asimetrica de un bloque de codification basandose en information senalizada mediante un flujo de bits. Por ejemplo, puede determinarse un tipo de particion de un bloque de codificacion basandose en informacion que indica una direction de particionamiento del bloque de codificacion e informacion que indica si una primera particion, generada dividiendo el bloque de codificacion, tiene un tamano menor que una segunda particion.
La informacion que indica la direccion de particionamiento del bloque de codificacion puede ser una bandera de 1 bit que indica si el bloque de codificacion se particiona en una direccion vertical o en una direccion horizontal. Por ejemplo, hor_binary_flag puede indicar si el bloque de codificacion se particiona en una direccion horizontal. Si un valor de hor_binary_flag es 1, puede indicar que el bloque de codificacion se particiona en la direccion horizontal y si el valor de hor_binary_flag es 0, puede indicar que el bloque de codificacion se particiona en la direccion vertical. Como alternativa, puede usarse ver_binary_flag que indica si el bloque de codificacion se particiona o no en la direccion vertical.
La informacion que indica si la primera particion tiene un tamano menor que la segunda particion puede ser una bandera de 1 bit. Por ejemplo, is_left_above_small_part_flag puede indicar si un tamano de una particion izquierda o superior generada dividiendo el bloque de codificacion es menor que una particion derecha o inferior. Si un valor de is_left_above_small_part_flag es 1, significa que el tamano de la particion izquierda o superior es menor que la particion derecha o inferior. Si el valor de is_left_above_small_part_flag es 0, significa que el tamano de la particion izquierda o superior es mayor que la particion derecha o inferior. Como alternativa, puede usarse is_right_bottom_small_part_flag que indica si el tamano de la particion derecha o inferior es menor que la particion izquierda o superior.
Como alternativa, pueden determinarse tamanos de una primera particion y una segunda particion usando informacion que indica una relation de anchura, una relation de altura o una relacion de area entre la primera particion y la segunda particion.
Cuando un valor de hor_binary_flag es 0 y un valor de is_left_above_small_part_flag es 1, puede representar particion binaria de nLx2N, y cuando un valor de hor_binary_flag es 0 y un valor de is_left_above_small_part_flag es 0, puede representar particion binaria nRx2N. Ademas, cuando un valor de hor_binary_flag es 1 y un valor de is_left_above_small_part_flag es 1, puede representar partition binaria 2NxnU, y cuando un valor de hor_binary_flag es 1 y un valor de is_left_above_small_part_flag es 0, puede representar particion binaria 2NxnD.
Como otro ejemplo, el tipo de particion binaria asimetrica del bloque de codification puede determinarse por information de Indice que indica un tipo de particion del bloque de codificacion. En este punto, la informacion de Indice es informacion a senalizarse a traves de un flujo de bits, y puede codificarse con una longitud fija (es decir, un numero fijo de bits) o puede codificarse con una longitud variable. Por ejemplo, la Tabla 1 a continuation muestra el Indice de particion para cada particion binaria asimetrica.
[Tabla 1]
Figure imgf000028_0001
El particionamiento de arbol binario asimetrico puede usarse dependiendo del metodo de particionamiento de QTBT. Por ejemplo, si ya no se aplica mas el particionamiento de arbol cuadruple o el particionamiento de arbol binario al bloque de codificacion, puede determinarse si aplicar o no particionamiento de arbol binario asimetrico al bloque de codificacion. En este punto, si aplicar o no el particionamiento de arbol binario asimetrico al bloque de codificacion puede determinarse por informacion senalizada a traves del flujo de bits. Por ejemplo, la informacion puede ser una bandera de 1 bit 'asymmetric_binary_tree_flag', y basandose en la bandera, puede determinarse si el particionamiento de arbol binario asimetrico se aplica al bloque de codificacion.
Como alternativa, cuando se determina que el bloque de codificacion se particiona en dos bloques, puede determinarse si el tipo de particion es particionamiento de arbol binario o particionamiento de arbol binario asimetrico. En este punto, si el tipo de particion del bloque de codificacion es el particionamiento de arbol binario o el particionamiento de arbol binario asimetrico puede determinarse por informacion senalizada a traves del flujo de bits. Por ejemplo, la informacion puede ser una bandera de 1 bit 'is_asymmetric_split_flag', y basandose en la bandera, puede determinarse si el bloque de codificacion se particiona en una forma simetrica o una forma asimetrica.
Como otro ejemplo, los Indices asignados a particiones binarias de tipo simetrico y a particiones binarias de tipo asimetrico pueden ser diferentes, y puede determinarse basandose en information de Indice si el bloque de codification se particiona en un tipo simetrico o un tipo asimetrico. Por ejemplo, la Tabla 2 muestra un ejemplo en el que se asignan diferentes Indices a particiones de tipo binario simetricas y particiones de tipo binario asimetricas.
[Tabla 2]
Figure imgf000029_0001
Un bloque de arbol de codificacion o un bloque de codificacion pueden dividirse en una pluralidad de bloques de codificacion por particionamiento de arbol cuadruple, particionamiento de arbol binario o particionamiento de arbol binario asimetrico. Por ejemplo, la Figura 8 muestra un ejemplo en el que un bloque de codificacion se divide en una pluralidad de bloques de codificacion usando QTBT y particionamiento de arbol binario asimetrico. Haciendo referencia a la Figura 8, puede observarse que el particionamiento de arbol binario asimetrico se realiza en profundidad 2 que particiona en el primer dibujo, profundidad 3 que particiona en el segundo dibujo, y profundidad 3 que particiona en el tercer dibujo, respectivamente.
Puede restringirse que un bloque de codificacion dividido por particionamiento de arbol binario asimetrico ya no se divida mas. Por ejemplo, la informacion relacionada con un arbol cuadruple, arbol binario, o arbol binario asimetrico puede no codificarse/decodificarse para un bloque de codificacion que se genera por el particionamiento de arbol binario asimetrico. Es decir, para un bloque de codificacion generado a traves del particionamiento de arbol binario asimetrico, puede omitirse una bandera que indica si se aplica particionamiento de arbol cuadruple, una bandera que indica si se aplica particionamiento de arbol binario, una bandera que indica si se aplica particionamiento de arbol binario asimetrico, una bandera que indica una direction del particionamiento de arbol binario o el particionamiento de arbol binario asimetrico, o information de Indice que indica una partition binaria asimetrica, o similares.
Como otro ejemplo, puede determinarse si permitir o no el particionamiento de arbol binario dependiendo de si el QTBT esta permitido o no. Por ejemplo, en una instantanea o corte en los que no se usa el metodo de particionamiento basado en QTBT, puede no restringirse que se use el particionamiento de arbol binario asimetrico.
La information que indica si esta permitido particionamiento de arbol binario asimetrico puede codificarse y senalizarse en una unidad de un bloque, un corte o una instantanea. En este punto, la information que indica si esta permitido el particionamiento de arbol binario asimetrico puede ser una bandera de 1 bit. Por ejemplo, si un valor de is_used_asymmetric_QTBT_enabled_flag es 0, puede indicar que no se usa el particionamiento de arbol binario asimetrico. Tambien es posible que is_used_asymmetric_QTBT_enabled_Flag se establezca a 0 sin senalizacion de la misma cuando no se usa el particionamiento de arbol binario en una instantanea o un corte.
Tambien es posible determinar un tipo de partition permitido en un bloque de codification basandose en un tamano, una forma, una profundidad de partition, o un tipo de partition del bloque de codification. Por ejemplo, al menos uno de tipos de partition, formas de partition o un numero de particiones permitidas en un bloque de codification generadas por el particionamiento de arbol cuadruple y en un bloque de codification generado por el particionamiento de arbol binario puede ser diferentes unos de los otros.
Por ejemplo, si un bloque de codification se genera por el particionamiento de arbol cuadruple, todo del particionamiento de arbol cuadruple, el particionamiento de arbol binario, y el particionamiento de arbol binario asimetrico puede estar permitido para el bloque de codification. Es decir, si se genera un bloque de codification basandose en particionamiento de arbol cuadruple, todos los tipos de partition mostrados en la Figura 9 pueden aplicarse al bloque de codification. Por ejemplo, una partition 2Nx2N puede representar un caso donde un bloque de codification no se divide adicionalmente, NxN puede representar un caso donde un bloque de codification se particiona en un arbol cuadruple, y Nx2N y 2NxN pueden representar un caso donde un bloque de codification se particiona en un arbol binario. Ademas, nLx2N, nRx2N, 2NxnU, y 2NxnD pueden representar casos donde un bloque de codification se particiona en un arbol binario asimetrico.
Por otra parte, cuando se genera un bloque de codificacion por el particionamiento de arbol binario, puede no permitirse que se use el particionamiento de arbol binario asimetrico para el bloque de codificacion. Es decir, cuando se genera el bloque de codificacion basandose en el particionamiento de arbol binario, puede restringirse que no se aplique el tipo de partition asimetrica (nLx2N, nRx2N, 2NxnU, 2NxnD) entre los tipos de particion mostrados en la Figura 9 al bloque de codificacion.
Cuando se usa QTBT, puede usarse un bloque de codificacion que no se divide adicionalmente como un bloque de prediction. Es decir, el bloque de codificacion puede codificarse usando al menos uno de un modo de salto, un metodo de intra prediccion, una inter prediccion, o un salto.
Como otro ejemplo, si se determina un bloque de codificacion, un bloque de prediccion que tiene el mismo tamano que el bloque de codificacion o menor tamano que el bloque de codificacion puede determinarse a traves de particionamiento predictivo del bloque de codificacion. El particionamiento predictivo de un bloque de codificacion puede realizarse por un modo de particion (Part_mode) que indica un tipo de particion del bloque de codificacion. Un tamano o una forma de un bloque de prediccion puede determinarse de acuerdo con el modo de particion del bloque de codificacion. El tipo de particion del bloque de codificacion puede determinarse a traves de information que especifica uno cualquiera de candidatos de particion. En este momento, los candidatos de particion disponibles para bloque de codificacion pueden incluir un tipo de particion asimetrica (por ejemplo, nLx2N, nRx2N, 2NxnU, 2NxnD) dependiendo de un tamano, una forma o un modo de codificacion del bloque de codificacion. Por ejemplo, pueden determinarse candidatos de particion disponibles para un bloque de codificacion de acuerdo con un modo de codificacion de un bloque actual. Por ejemplo, la Figura 10 es un diagrama que ilustra un modo de particion que puede aplicarse a un bloque de codificacion cuando el bloque de codificacion se codifica por inter prediccion.
Si un bloque de codificacion se codifica por una inter prediccion, puede aplicarse uno de 8 modos de particion ilustrados en la Figura 10 al bloque de codificacion.
Por otra parte, cuando se codifica un bloque de codificacion por intra prediccion, puede aplicarse un modo de particion de PART_2Nx2N o PART_NxN al bloque de codificacion.
Puede aplicarse PART_NxN cuando un bloque de codificacion tiene un tamano mlnimo. En este punto, el tamano mlnimo del bloque de codificacion puede predefinirse en el codificador y el decodificador. Como alternativa, puede senalizarse information con respecto al tamano mmimo del bloque de codification mediante el flujo de bits. Por ejemplo, el tamano mmimo del bloque de codificacion se senaliza a traves de un encabezamiento de corte, de modo que el tamano mmimo del bloque de codificacion puede definirse por corte.
En otro ejemplo, pueden determinarse candidatos de partition disponibles para un bloque de codificacion de manera diferente dependiendo de al menos uno de un tamano o forma del bloque de codificacion. Por ejemplo, el numero o tipo de candidatos de particion disponibles para un bloque de codificacion puede determinarse de manera diferente de acuerdo con al menos uno de un tamano o forma del bloque de codificacion.
Como alternativa, un tipo o numero de candidatos de particion asimetricos entre candidatos de particion disponibles para un bloque de codificacion puede limitarse dependiendo de un tamano o forma del bloque de codificacion. Por ejemplo, el numero o tipo de candidatos de particion asimetricos disponibles para un bloque de codificacion puede determinarse de manera diferente de acuerdo con al menos uno de un tamano o forma del bloque de codificacion.
En general, un bloque de prediction puede tener un tamano de 64x64 a 4x4. Sin embargo, cuando un bloque de codificacion se codifica por inter prediccion, es posible evitar que el bloque de prediccion tenga tamano de 4x4 para reducir el ancho de banda de memoria cuando se realiza compensation de movimiento.
La Figura 11 es un diagrama de flujo que ilustra procesos de particionamiento de un bloque de codificacion de acuerdo con una realizacion de la presente invencion.
En primer lugar, puede determinarse si se realiza particionamiento de arbol cuadruple en un bloque actual S1110. Si se determina que ha de realizarse particionamiento de arbol cuadruple en el bloque actual, el bloque actual puede dividirse en cuatro bloques de codificacion S1120.
Por otra parte, si se determina que no esta permitido el particionamiento de arbol cuadruple para el bloque actual, puede determinarse si se realiza particionamiento de arbol binario o particionamiento de arbol binario asimetrico en el bloque actual S1130.
Si se determina que se realiza el particionamiento de arbol binario o el particionamiento de arbol binario asimetrico para el bloque actual, puede determinarse S1140 un tipo de partition binaria del bloque actual. En este momento, el tipo de partition de arbol binario del bloque actual puede determinarse basandose en al menos una de information que indica informacion de particion del bloque actual, informacion que indica un tamano de particion dividida, o informacion de Indice que especifica un tipo de particion.
El bloque actual puede dividirse en dos bloques simetricos o asimetricos de acuerdo con el tipo de particion binaria determinada S1150.
Es posible determinar de manera secuencial si se realiza o no particionamiento de arbol binario para el bloque actual y si se realiza o no particionamiento de arbol binario para el bloque actual. Por ejemplo, puede determinarse si realizar o no particionamiento de arbol binario asimetrico unicamente cuando se determina que el particionamiento de arbol binario no esta permitido para el bloque actual.
La Figura 12 es un diagrama de flujo que ilustra procesos de obtencion de una muestra residual de acuerdo con una realizacion a la que se aplica la presente invencion.
En primer lugar, puede obtenerse S1210 un coeficiente residual de un bloque actual. Un decodificador puede obtener un coeficiente residual a traves de un metodo de exploration de coeficiente. Por ejemplo, el decodificador puede realizar una exploracion de coeficiente usando una exploracion diagonal, una exploracion en zigzag, una exploracion arriba-derecha, una exploracion vertical, o una exploracion horizontal, y pueden obtener coeficientes residuales en una forma de un bloque bidimensional.
Puede realizarse una cuantificacion inversa en el coeficiente residual del bloque actual S1220.
Es posible determinar si omitir una transformada inversa en el coeficiente residual descuantificado del bloque actual S1230. Especlficamente, el decodificador puede determinar si omitir la transformada inversa en al menos una de una direction horizontal o una direccion vertical del bloque actual. Cuando se determina aplicar la transformada inversa en al menos una de la direccion horizontal o la direccion vertical del bloque actual, puede obtenerse una muestra residual del bloque actual por transformation inversa del coeficiente residual descuantificado del bloque actual S1240. En este punto, la transformada inversa puede realizarse usando al menos una de DCT, DST, y KLT.
Cuando se omite la transformada inversa tanto en la direction horizontal como la direction vertical del bloque actual, no se realiza transformada inversa en la direccion horizontal y la direccion vertical del bloque actual. En este caso, puede obtenerse la muestra residual del bloque actual escalando el coeficiente residual descuantificado con un valor predeterminado S1250.
Omitir la transformada inversa en la direccion horizontal significa que no se realiza la transformada inversa en la direccion horizontal sino que la transformada inversa se realiza en la direccion vertical. En este momento, puede realizarse escalamiento en la direccion horizontal.
Omitir la transformada inversa en la direccion vertical significa que no se realiza la transformada inversa en la direccion vertical sino que se realiza la transformada inversa en la direccion horizontal. En este momento, puede realizarse escalamiento en la direccion vertical.
Puede determinarse si puede usarse o no una tecnica de salto de transformada inversa para el bloque actual dependiendo de un tipo de partition del bloque actual. Por ejemplo, si se genera el bloque actual a traves de un particionamiento basado en arbol binario, el esquema de salto de transformada inversa puede restringirse para el bloque actual. Por consiguiente, cuando se genera el bloque actual a traves del particionamiento basado en arbol binario, puede obtenerse la muestra residual del bloque actual por transformation inversa el bloque actual. Ademas, cuando se genera el bloque actual a traves de particionamiento basado en arbol binario, puede omitirse la codificacion/decodificacion de information que indica si se salta o no la transformada inversa (por ejemplo, transform_skip_flag).
Como alternativa, cuando se genera el bloque actual a traves de particionamiento basado en arbol binario, es posible limitar el esquema de salto de transformada inversa a al menos una de la direccion horizontal o la direccion vertical. En este punto, la direccion en la que se limita el esquema de salto de transformada inversa puede determinarse basandose en informacion decodificada del flujo de bits, o puede determinarse de manera adaptativa basandose en al menos uno de un tamano del bloque actual, una forma del bloque actual, o un modo de intra prediction 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 transformada inversa puede permitirse unicamente en la direction vertical y restringirse en la direction horizontal. Es decir, cuando el bloque actual es 2NxN, la transformada inversa se realiza en la direccion horizontal del bloque actual, y la transformada inversa puede realizarse de manera selectiva en la direccion 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 transformada inversa puede permitirse unicamente en la direccion horizontal y restringirse en la direccion vertical. Es decir, cuando el bloque actual es Nx2N, se realiza la transformada inversa en la direccion vertical del bloque actual, y puede realizarse de manera selectiva la transformada inversa en la direccion horizontal.
En contraste al ejemplo anterior, cuando el bloque actual es un bloque no cuadrado que tiene una anchura mayor que una altura, el esquema de salto de transformada inversa puede permitirse unicamente en la direccion horizontal, y cuando el bloque actual es un bloque no cuadrado que tiene una altura mayor que una anchura, el esquema de salto de transformada inversa puede permitirse unicamente en la direccion vertical.
La information que indica si omitir o no la transformada inversa con respecto a la direccion horizontal o la informacion que indica si omitir la transformation inversa con respecto a la direccion vertical puede senalizarse a traves de un flujo de bits. Por ejemplo, la informacion que indica si omitir o no la transformada inversa en la direccion horizontal es una bandera de 1 bit, 'hor_transform_skip_flag', y la informacion que indica si omitir la transformada inversa en la direccion vertical es una bandera de 1 bit, 'ver_transform_skip_flag'. El codificador puede codificar al menos una de 'hor_transform_skip_flag' o 'ver_transform_skip_flag' de acuerdo con la forma del bloque actual. Ademas, el decodificador puede determinar si se omite o no la transformada inversa en la direccion horizontal o en la direccion vertical usando al menos una de "hor_transform_skip_flag" o "ver_transform_skip_flag".
Puede establecerse omitir la transformada inversa para una direccion cualquiera del bloque actual dependiendo de un tipo de partition del bloque actual. Por ejemplo, si el bloque actual se genera a traves de un particionamiento basado en arbol binario, puede omitirse la transformada inversa en la direccion horizontal o direccion vertical. Es decir, si el bloque actual se genera por particionamiento basado en arbol binario, puede determinarse que se omite la transformada inversa para el bloque actual en al menos una de una direccion horizontal o una direccion vertical sin codificar/decodificar informacion (por ejemplo, transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) que indica si se omite o no la transformada inversa del bloque actual.
Aunque las realizaciones anteriormente descritas se han descrito basandose en una serie de etapas o diagramas de flujo, no limitan el orden de series temporales de la invention, y pueden realizarse simultaneamente o en diferentes ordenes segun sea necesario. Ademas, cada uno de los componentes (por ejemplo, unidades, modulos, etc.) que constituye el diagrama de bloques en las realizaciones anteriormente descritas puede implementarse por un dispositivo de hardware o software, y una pluralidad de componentes. O una pluralidad de componentes puede combinarse e implementarse mediante un unico dispositivo de hardware o software. Las realizaciones anteriormente descritas pueden implementarse en forma de instrucciones de programa que pueden ejecutarse a traves de diversos componentes informaticos y grabarse en un medio de grabacion legible por ordenador. El medio de grabacion legible por ordenador puede incluir uno de o una combination de comandos de programa, ficheros de datos, estructuras de datos y similares. Los ejemplos de medios legibles por ordenador incluyen medios magneticos tales como discos duros, discos flexibles y cinta magnetica, medios de grabacion opticos tales como CD-ROM y DVD, medios magneto-opticos tales como discos flexibles opticos, medios, y dispositivos de hardware especlficamente configurados para almacenar y ejecutar instrucciones de programa tales como ROM, RAM, memoria flash y similares. El dispositivo de hardware puede configurarse para operar como uno o mas modulos de software para realizar el proceso de acuerdo con la presente invencion y viceversa.
Aplicabilidad industrial
La presente invencion puede aplicarse a dispositivos electronicos que pueden codificar/decodificar un video.

Claims (13)

REIVINDICACIONES
1. Un metodo para decodificar un video, caracterizado por que comprende:
determinar si dividir un bloque actual con particionamiento de arbol cuadruple; determinar si dividir el bloque actual con particionamiento de arbol binario cuando el bloque actual no esta dividido con el particionamiento de arbol cuadruple;
determinar un tipo de partition de arbol binario para el bloque actual cuando se determina dividir el bloque actual con el particionamiento de arbol binario; y
dividir el bloque actual en dos particiones de acuerdo con el tipo de particion de arbol binario determinado.
2. El metodo de la reivindicacion 1, donde el tipo de particion de arbol binario comprende un tipo de particion asimetrica en el que dos particiones generadas dividiendo el bloque actual son asimetricas.
3. El metodo de la reivindicacion 2, donde si el bloque actual se divide en particiones asimetricas, el particionamiento de arbol cuadruple o el particionamiento de arbol binario no esta permitido para cada una de las particiones generadas como resultado de una division del bloque actual.
4. El metodo de la reivindicacion 1, donde el tipo de particion de arbol binario se determina basandose en al menos una de entre information en una direction de particionamiento del bloque actual e informacion con respecto a tamanos de las dos particiones actuales.
5. El metodo de la reivindicacion 1, donde determinar el tipo de particion de arbol binario comprende:
determinar si el bloque actual se divide en una forma simetrica; y
determinar un tipo de particion asimetrica del bloque actual cuando se determina que el bloque actual no esta dividido en la forma simetrica.
6. El metodo de la reivindicacion 1, donde el tipo de particion de arbol binario se determina basandose en informacion de Indice senalizada mediante un flujo de bits.
7. Un metodo para codificar un video, caracterizado por que comprende:
determinar si dividir un bloque actual con particionamiento de arbol cuadruple; determinar si dividir el bloque actual con particionamiento de arbol binario cuando el bloque actual no esta dividido con el particionamiento de arbol cuadruple; determinar un tipo de partition de arbol binario para el bloque actual cuando se determina dividir el bloque actual con el particionamiento de arbol binario; y
dividir el bloque actual en dos particiones de acuerdo con el tipo de particion de arbol binario determinado.
8. El metodo de la reivindicacion 7, donde el tipo de particion de arbol binario comprende un tipo de particion asimetrica en el que dos particiones generadas dividiendo el bloque actual son asimetricas.
9. El metodo de la reivindicacion 8, donde si el bloque actual se divide en particiones asimetricas, el particionamiento de arbol cuadruple o el particionamiento de arbol binario no esta permitido para cada una de las particiones generadas como resultado de una division del bloque actual.
10. El metodo de la reivindicacion 7, donde se codifica al menos una de information sobre una direction de particionamiento del bloque actual e informacion con respecto a tamanos de las dos particiones actuales basandose en el tipo de particion de arbol binario determinado.
11. El metodo de la reivindicacion 7, donde determinar el tipo de particion de arbol binario comprende:
determinar si el bloque actual se divide en una forma simetrica; y
determinar un tipo de particion asimetrica del bloque actual cuando se determina que el bloque actual no esta dividido en la forma simetrica.
12. El metodo de la reivindicacion 7, donde el metodo comprende adicionalmente codificar informacion de Indice que especifica el tipo de particion de arbol binario.
13. Un aparato para decodificar un video, caracterizado por que comprende:
una unidad de particionamiento de instantanea para determinar si dividir un bloque actual con particionamiento de arbol cuadruple, para determinar si dividir el bloque actual con particionamiento de arbol binario cuando el bloque actual no esta dividido con el particionamiento de arbol cuadruple, para determinar un tipo de particion de arbol binario para el bloque actual cuando se determina dividir el bloque actual con el particionamiento de arbol binario, y dividir el bloque actual en dos particiones de acuerdo con el tipo de particion de arbol binario determinado.
ES201990024A 2016-09-20 2017-09-20 Metodo y aparato para procesar una senal de video Pending ES2711230R1 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20160120081 2016-09-20
KR20160120080 2016-09-20
PCT/KR2017/010354 WO2018056702A1 (ko) 2016-09-20 2017-09-20 비디오 신호 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
ES2711230A2 true ES2711230A2 (es) 2019-04-30
ES2711230R1 ES2711230R1 (es) 2021-04-07

Family

ID=61689598

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201990024A Pending ES2711230R1 (es) 2016-09-20 2017-09-20 Metodo y aparato para procesar una senal de video

Country Status (6)

Country Link
US (4) US10869065B2 (es)
EP (2) EP3518548B1 (es)
KR (1) KR102471209B1 (es)
CN (7) CN109716775B (es)
ES (1) ES2711230R1 (es)
WO (1) WO2018056702A1 (es)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102471208B1 (ko) * 2016-09-20 2022-11-25 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR102559063B1 (ko) * 2017-02-24 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2019203610A1 (ko) * 2018-04-19 2019-10-24 엘지전자 주식회사 영상의 처리 방법 및 이를 위한 장치
WO2019234613A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partition tree with partition into 3 sub-blocks by horizontal and vertical splits
US11973944B2 (en) 2018-06-27 2024-04-30 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored for block division at picture boundary
BR112021003946A2 (pt) 2018-09-03 2021-05-18 Huawei Technologies Co., Ltd. codificador de vídeo, decodificador de vídeo e métodos correspondentes
US11272198B2 (en) 2019-01-30 2022-03-08 Tencent America LLC Method and apparatus for improved sub-block partitioning intra sub-partitions coding mode
KR20230013158A (ko) * 2019-06-19 2023-01-26 엘지전자 주식회사 크로마 블록의 크기를 제한하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
MX2022002247A (es) 2019-09-02 2022-03-22 Beijing Bytedance Network Tech Co Ltd Particion de region de video basada en formato de color.
WO2022206995A1 (en) * 2021-04-02 2022-10-06 Beijing Bytedance Network Technology Co., Ltd. Constraints on partitioning of video blocks

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101415121B (zh) * 2007-10-15 2010-09-29 华为技术有限公司 一种自适应的帧预测的方法及装置
KR20100095992A (ko) 2009-02-23 2010-09-01 한국과학기술원 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
KR101484280B1 (ko) 2009-12-08 2015-01-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
CN106454373B (zh) 2010-04-13 2019-10-01 Ge视频压缩有限责任公司 解码器、重建数组的方法、编码器及编码方法
ES2926171T3 (es) * 2010-09-27 2022-10-24 Lg Electronics Inc Método para partición de bloque y dispositivo de decodificación
US8494290B2 (en) * 2011-05-05 2013-07-23 Mitsubishi Electric Research Laboratories, Inc. Method for coding pictures using hierarchical transform units
US8750634B2 (en) * 2011-05-05 2014-06-10 Mitsubishi Electric Research Laboratories, Inc. Method for coding pictures using hierarchical transform units
CN104883569B (zh) * 2011-07-01 2018-05-18 三星电子株式会社 用于使用分层数据单元进行编码和解码的方法和设备
JP2013118424A (ja) * 2011-11-04 2013-06-13 Sharp Corp 画像復号装置、画像符号化装置、および符号化データのデータ構造
US9237358B2 (en) * 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US20140029670A1 (en) * 2012-07-27 2014-01-30 Motorola Mobility Llc Devices and methods for processing of partition mode in high efficiency video coding
KR20140092423A (ko) * 2012-12-20 2014-07-24 주식회사 팬택 계층적 영상 부/복호화 모드 결정 방법 및 이러한 방법을 사용하는 장치
KR101519557B1 (ko) 2013-12-27 2015-05-13 연세대학교 산학협력단 고속 화면 내 예측 부호화 방법 및 그 장치
JP2015192381A (ja) 2014-03-28 2015-11-02 ソニー株式会社 画像処理装置及び画像処理方法
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US10382795B2 (en) 2014-12-10 2019-08-13 Mediatek Singapore Pte. Ltd. Method of video coding using binary tree block partitioning
KR101644969B1 (ko) 2015-01-21 2016-08-03 한국과학기술원 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
CN115134607A (zh) * 2015-06-11 2022-09-30 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
MX2018014493A (es) * 2016-05-25 2019-08-12 Arris Entpr Llc Particionamiento binario, ternario, cuaternario para jvet.
WO2017205704A1 (en) 2016-05-25 2017-11-30 Arris Enterprises Llc General block partitioning method
EP3349454A1 (en) 2017-01-11 2018-07-18 Thomson Licensing Method and device for coding a block of video data, method and device for decoding a block of video data

Also Published As

Publication number Publication date
EP3518548B1 (en) 2021-12-15
CN116866617A (zh) 2023-10-10
US20190268623A1 (en) 2019-08-29
US11350136B2 (en) 2022-05-31
US20210067810A1 (en) 2021-03-04
KR20180031615A (ko) 2018-03-28
EP3518548A1 (en) 2019-07-31
WO2018056702A1 (ko) 2018-03-29
EP3518548A4 (en) 2020-03-25
US10869065B2 (en) 2020-12-15
EP3975573A1 (en) 2022-03-30
KR102471209B1 (ko) 2022-11-25
US11350137B2 (en) 2022-05-31
CN116866619A (zh) 2023-10-10
US11356710B2 (en) 2022-06-07
CN116866620A (zh) 2023-10-10
CN109716775A (zh) 2019-05-03
US20210076077A1 (en) 2021-03-11
ES2711230R1 (es) 2021-04-07
US20210076078A1 (en) 2021-03-11
CN116866616A (zh) 2023-10-10
CN116866618A (zh) 2023-10-10
CN116962726A (zh) 2023-10-27
CN109716775B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
ES2786077B2 (es) Metodo y aparato para procesar una senal de video
ES2908214T3 (es) Filtración adaptativa de muestras de referencia para intra predicción usando líneas de píxeles distantes
ES2737874B2 (es) Metodo y aparato para procesar senal de video
US11812016B2 (en) Method and apparatus for processing video signal
US11968364B2 (en) Method and apparatus for processing video signal
ES2692864B1 (es) Metodo y aparato para procesar senales de video
ES2710234B1 (es) Procedimiento y dispositivo para procesar señales de vídeo
ES2711230A2 (es) Metodo y aparato para procesar una senal de video
ES2711474A2 (es) Metodo y aparato para procesar una senal de video
ES2703607A2 (es) Método y aparato para procesar señales de vídeo
ES2737845B2 (es) Metodo y aparato para procesar senal de video
ES2699723A2 (es) Metodo y aparato para tratar una senal de video
ES2711209A2 (es) Metodo y aparato para procesamiento de una senal de video
ES2710807A2 (es) Metodo y aparato para procesar senales de video
ES2711189A2 (es) Metodo y aparato para procesar senales de video
ES2703458A2 (es) Metodo y aparato para procesar senales de video
US20210195189A1 (en) Method and apparatus for processing video signal
ES2711223A2 (es) Metodo y aparato para procesar senales de video
ES2711473A2 (es) Metodo y aparato para procesar una senal de video
KR20190133628A (ko) 비디오 신호 처리 방법 및 장치

Legal Events

Date Code Title Description
BA2A Patent application published

Ref document number: 2711230

Country of ref document: ES

Kind code of ref document: A2

Effective date: 20190430

EC2A Search report published

Ref document number: 2711230

Country of ref document: ES

Kind code of ref document: R1

Effective date: 20210329

FC2A Grant refused

Effective date: 20221205