ES2711209A2 - Metodo y aparato para procesamiento de una senal de video - Google Patents

Metodo y aparato para procesamiento de una senal de video Download PDF

Info

Publication number
ES2711209A2
ES2711209A2 ES201990016A ES201990016A ES2711209A2 ES 2711209 A2 ES2711209 A2 ES 2711209A2 ES 201990016 A ES201990016 A ES 201990016A ES 201990016 A ES201990016 A ES 201990016A ES 2711209 A2 ES2711209 A2 ES 2711209A2
Authority
ES
Spain
Prior art keywords
block
current block
unit
coding
transformation
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
ES201990016A
Other languages
English (en)
Other versions
ES2711209A8 (es
ES2711209R1 (es
Inventor
Keun Lee Bae
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 ES2711209A2 publication Critical patent/ES2711209A2/es
Publication of ES2711209A8 publication Critical patent/ES2711209A8/es
Publication of ES2711209R1 publication Critical patent/ES2711209R1/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/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/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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • 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/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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Picture Signal Circuits (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Método y aparato para procesamiento de una señal de video. Un método para decodificar un vídeo de acuerdo con la presente invención puede comprender: decodificar información que indica si existe un coeficiente de transformación no-cero en un bloque actual, cuando la información indica que existe el coeficiente de transformación no-cero en el bloque actual, determinar un orden de escaneado del bloque actual, y decodificar un coeficiente de transformación incluido en el bloque actual de acuerdo con el orden de escaneado determinado.

Description

DESCRIPCION
Campo tecnico
La presente invencion se refiere a un metodo y un aparato para procesamiento de una senal de video.
Estado de la tecnica
Recientemente, se han incrementado las demandas de imagenes en alta resolucion y alta calidad tales como imagenes en alta definicion (HD) e imagenes en ultra-alta definicion (UHD) en diversos campos de aplicacion. Sin embargo, los datos de imagenes en alta resolucion y calidad han incrementado la cantidad de datos en comparacion con los datos de imagenes convencional. Por lo tanto, cuando se transmiten datos de imagenes mediante el uso de un medio tal como unas redes de banda ancha por cable e inalambricas, o cuando se almacenan datos de imagenes mediante el uso de un medio de almacenamiento convencional, se incrementan los costes de transmision y almacenamiento. Para resolver estos problemas que tienen lugar con el incremento de la resolucion y calidad de los datos de imagenes, pueden utilizarse tecnicas de codificacion/decodificacion de imagenes de alta eficiencia.
Las tecnologfas de compresion de imagenes incluyen diversas tecnicas, que incluyen: una tecnica de prediccion inter de prediccion de un valor de pfxeles incluidos en una imagen actual a partir de una imagen previa o posterior de la imagen actual; una tecnica de prediccion intra de prediccion de un valor de pfxeles incluidos en una imagen actual mediante el uso de informacion de pfxeles en la imagen actual; una tecnica de codificacion entropica de asignacion de un corto codigo 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 imagenes pueden comprimirse efectivamente mediante el uso de dicha tecnologfa de compresion de imagenes, y pueden transmitirse o almacenarse.
Por su parte, junto con las demandas de imagenes en alta resolucion, tambien se han incrementado las demandas de contenidos de imagenes estereograficas, que es un nuevo servicio de imagenes. Se esta analizando una tecnica de compresion de video para proporcionar de modo efectivo contenido de imagenes estereograficas con alta resolucion y ultra alta resolucion.
Divulgacion
Problema tecnico
Un objeto de la presente invencion es proporcionar un metodo y aparato para de modo eficiente codificar/decodificar un coeficiente de transformacion de una codificacion/decodificacion de un bloque objetivo en la codificacion/decodificacion de una senal de video.
Un objeto de la presente invencion es proporcionar un metodo y un aparato para codificar/decodificar jerarquicamente un indicador codificado del coeficiente de transformacion en la codificacion/decodificacion de una senal de video.
Un objeto de la presente invencion es proporcionar un metodo y aparato para determinar adaptativamente un orden de escaneado o unidades base a la que se realiza un escaneado en la codificacion/ decodificacion de una senal de video.
Los objetos tecnicos a conseguir mediante la presente invencion no estan limitados a los problemas tecnicos anteriormente mencionados. Y, otros problemas tecnicos que no se mencionan seran evidentemente comprendidos por los expertos en la materia a partir de la descripcion que sigue.
Solucion tecnica
Un metodo y aparato para decodificacion de una senal de video de acuerdo con la presente invencion puede decodificar informacion que indica si existe un coeficiente de transformacion no-cero en un bloque actual, determinar un orden de escaneado del bloque actual cuando la informacion indica que existe el coeficiente de transformacion no-cero en el bloque actual, y decodificar un coeficiente de transformacion incluido en el bloque actual de acuerdo con el orden de escaneado determinado.
Un metodo y un aparato para codificar una senal de video de acuerdo con la presente invencion puede codificar informacion que indica si existe un coeficiente de transformacion no-cero en un bloque actual de acuerdo con si existe el coeficiente de transformacion no-cero en el bloque actual, determinar un orden de escaneado del bloque actual cuando existe el coeficiente de transformacion no-cero en el bloque actual y disponer un coeficiente de transformacion incluido en el bloque actual de acuerdo con el orden de escaneado determinado.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, la informacion puede codificarse/decodificarse en una unidad de sub-bloque dentro del bloque actual.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, puede determinarse adaptativamente un tamano o una forma del sub-bloque de acuerdo con un tamano o una forma del bloque actual.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, la informacion puede codificarse/decodificarse en una unidad predeterminada, y la unidad predeterminada puede determinarse basandose en un numero de muestras.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, si el bloque actual comprende mas muestras que el numero de muestras correspondientes a la unidad predeterminada, el bloque actual puede dividirse en una pluralidad de regiones de acuerdo con la unidad predeterminada, y la informacion puede senalizarse para cada una de la pluralidad de regiones.
En el metodo y el aparato para codificar/decodificar una senal de video de acuerdo con la presente invencion, puede determinarse uno de entre una pluralidad de candidatos al orden de escaneado como el orden de escaneado del bloque actual, y un tipo o un numero de la pluralidad de candidatos al orden de escaneado pueden ser diferentes de acuerdo con un tamano o una forma 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 orden de escaneado del bloque actual para que sea el mismo que un orden de escaneado del bloque superior que incluye el bloque actual, y una pluralidad de bloques incluidos en el bloque superior puede tener un mismo orden de escaneado.
Las caracterfsticas brevemente resumidas anteriormente para la presente invencion son solamente aspectos ilustrativos de la descripcion detallada de la invencion que sigue, pero no limitan el alcance de la invencion.
Efectos ventajosos
De acuerdo con la presente invencion, puede codificarse/ decodificarse eficientemente un coeficiente de transformacion para un bloque objetivo de codificacion/decodificacion.
De acuerdo con la presente invencion, puede codificarse/ decodificarse jerarquicamente un indicador codificado del coeficiente de transformacion.
De acuerdo con la presente invencion, pueden determ inarse adaptativamente un orden de escaneado o una unidad base a la que se realiza el escaneado.
Los efectos que pueden obtenerse por la presente invencion no estan limitados a los efectos anteriormente mencionados, y otros efectos no mencionados pueden entenderse claramente por los expertos en la materia a partir de la descripcion que sigue.
Descripcion de los dibujos
La FIG. 1 es un diagrama de bloques que ilustra un dispositivo para codificacion de un video de acuerdo con una realizacion de la presente invencion.
La FIG. 2 es un diagrama de bloques que ilustra un dispositivo para decodificacion de un video de acuerdo con una realizacion de la presente invencion.
La FIG. 3 es un diagrama que ilustra un ejemplo de particionado de forma jerarquica de un bloque de codificacion basandose en una estructura en arbol de acuerdo con una realizacion de la presente invencion.
La FIG. 4 es un diagrama que ilustra un tipo de particion en el que se permite un particionado basado en arbol binario de acuerdo con una realizacion de la presente invencion.
La FIG. 5 es un diagrama que ilustra un ejemplo en el que solo se permite una particion basada en arbol binario de un tipo predeterminado de acuerdo con una realizacion de la presente invencion.
La FIG. 6 es un diagrama para explicar un ejemplo en el que se codifica/decodifica la informacion relacionada con el numero permitido de particionados en arbol binario, de acuerdo con una realizacion a la que se aplica la presente invencion.
La FIG. 7 es un diagrama que ilustra un modo de particion aplicable a un bloque de codificacion de acuerdo con una realizacion de la presente invencion.
La FIG. 8 es un diagrama de flujo que ilustra procesos para obtener una muestra residual de acuerdo con una realizacion de la presente invencion.
La FIG. 9 es un diagrama que ilustra un mapa del nivel del coeficiente de transformacion.
La FIG. 10 es un diagrama para explicar un aspecto en el que un indicador codificado del coeficiente de transformacion se decodifica basandose en una unidad predeterminada.
La FIG. 11 es un diagrama que muestra un procedimiento de decodificacion de coeficientes de transformacion de acuerdo con cada orden de escaneado.
La FIG. 12 ilustra un orden de escaneado entre sub-bloques de acuerdo con un orden de escaneado de un bloque actual.
La FIG. 13 es un diagrama que muestra un orden de escaneado de un bloque base del coeficiente de transformacion de acuerdo con una forma de un bloque actual.
Modo para la invencion
Puede realizarse una variedad de modificaciones a la presente invencion y hay diversas realizaciones de la presente invencion, cuyos ejemplos se proporcionaran ahora con referencia a los dibujos y se describiran en detalle. Sin embargo, la presente invencion no esta limitada a los mismos, y las realizaciones de ejemplo pueden construirse incluyendo todas las modificaciones, equivalentes, o sustitutos en un concepto tecnico y un alcance tecnico de la presente invencion. Los numeros de referencia similares se refieren a los elementos similares en la descripcion de los dibujos.
Los terminos usados en la especificacion, “primero”, “segundo”, etc. pueden usarse para describir diversos componentes, pero los componentes no han de construirse limitandose a los terminos. Los terminos solo se usan para diferenciar un componente de otros componentes. Por ejemplo, el “primer” componente puede denominarse el “segundo” componente sin apartarse del alcance de la presente invencion, y el “segundo” componente puede denominarse de modo similar el “primer” componente. La expresion “y/o” incluye una combinacion de una pluralidad de artfculos o uno cualquiera de una pluralidad de terminos.
Se entendera que cuando se hace referencia a un elemento simplemente como estando “conectado a” o “acoplado a” otro elemento sin estar “directamente conectado a” o “directamente acoplado a” otro elemento en la presente descripcion, puede estar “directamente conectado a” o “directamente acoplado a” otro elemento o conectarse a o acoplarse a otro elemento, teniendo el otro elemento intermedio entre ellos. Por el contrario, deberfa entenderse que cuando se hace referencia a un elemento como estando “directamente acoplado” o “directamente conectado” a otro elemento, no hay elementos intermedios presentes.
Los terminos usados en la presente especificacion se usan meramente para describir realizaciones particulares, y no se pretende que limiten la presente invencion. Una expresion usada en singular engloba la expresion en plural, a menos que tenga un significado claramente diferente en el contexto. En la presente especificacion, se ha de entender que terminos tales como “incluyendo”, “teniendo”, etc. se pretende que indiquen la existencia de caracterfsticas, numeros, etapas, acciones, elementos, partes o combinaciones de los mismos divulgados en la especificacion, y no se pretende que excluyan la posibilidad de que puedan existir o puedan anadirse uno o mas de otras caracterfsticas, numeros, etapas, acciones, elementos, partes o combinaciones de los mismos.
De aquf en adelante en el presente documento, se describiran en detalle realizaciones preferidas de la presente invencion con referencia a los dibujos adjuntos. De aquf en adelante en el presente documento, los mismos elementos constituyentes de los dibujos se indican por los mismos numeros de referencia, y se omitira una descripcion repetida de los mismos elementos.
La FIG. 1 es un diagrama de bloques que ilustra un dispositivo para codificacion de un video de acuerdo con una realizacion de la presente invencion.
Con referencia a la FIG. 1, el dispositivo 100 para codificacion de un video puede incluir: un modulo de particionado de la imagen 110, modulos de prediccion 120 y 125, un modulo de transformacion 130, un modulo de cuantificacion 135, un modulo de redisposicion 160, un modulo de codificacion entropica 165, un modulo de cuantificacion inversa 140, un modulo de transformacion inversa 145, un modulo de filtro 150, y una memoria 155.
Las partes constituyentes mostradas en la FIG. 1 se muestran independientemente de modo que representen funciones caracterfsticas diferentes entre si en un dispositivo para codificacion de un video. Por ello, esto no significa de cada parte constituyente este constituida en una unidad constituyente de hardware o software separada. En otras palabras, cada parte constituyente incluyen cada una de las partes constituyentes segun convenga.
Por ello, pueden combinarse al menos dos partes constituyentes de cada parte constituyente para formar una parte constituyente o una parte constituyente puede dividirse en una pluralidad de partes constituyentes para realizar cada funcion. La realizacion en la que cada parte constituyente se combina y la realizacion en la que una parte constituyente se divide estan tambien incluidas en el alcance de la presente invencion, si no se aparta de la esencia de la presente invencion.
Tambien, algunos de los constituyentes pueden no ser constituyentes indispensables que realicen funciones esenciales de la presente invencion sino ser constituyentes selectivos que mejoran solo el rendimiento de la misma. La presente invencion puede implementarse mediante la inclusion solamente de las partes constituyentes indispensables para implementar la esencia de la presente invencion excepto los constituyentes usados en la mejora del rendimiento. La estructura que incluye solo los constituyentes indispensables excepto los constituyentes selectivos usados solamente en la mejora del rendimiento tambien se incluyen en el alcance de la presente invencion.
El modulo de particionado de imagen 110 puede particionar una imagen de entrada en una o mas unidades de procesamiento. En este caso, la unidad de procesamiento puede ser una unidad de prediccion (PU), una unidad de transformacion (TU), o una unidad de codificacion (CU). El modulo de particionado de imagen 110 puede particionar una imagen en combinaciones de multiples unidades de codificacion, unidades de prediccion y unidades de transformacion, y puede codificar una imagen mediante la seleccion de una combinacion de unidades de codificacion, unidades de prediccion y unidades de transformacion con un criterio predeterminado (por ejemplo, funcion de costes).
Por ejemplo, una imagen puede particionarse en multiples unidades de codificacion. Puede usarse una estructura recursiva en arbol, tal como una estructura en arbol cuadruple, para particionado de una imagen en unidades de codificacion. Una unidad de codificacion que se ha particionado en otras unidades de codificacion siendo una imagen o una unidad de codificacion mas grande como una rafz puede particionarse con nodos hijos correspondientes al numero de unidades de codificacion particionadas. Una unidad de codificacion que ya no se particiona mas por una limitacion predeterminada sirve como un nodo hoja. Esto es, cuando se supone que solo es posible particionar cuadrados para una unidad de codificacion, una unidad de codificacion puede particionarse en otras cuatro unidades de codificacion como mucho.
De aqu en adelante en el presente documento, en la realizacion de la presente invencion, la unidad de codificacion puede significar una unidad que realiza codificacion, o una unidad que realiza decodificacion.
Una unidad de prediccion puede ser una de entre particiones particionadas en un cuadrado o una forma rectangular que tenga el mismo tamano que una unidad de codificacion simple, o una unidad de prediccion puede ser una de las unidades de particion particionadas de modo que tengan una forma/tamano diferente de una unidad de codificacion simple.
Cuando se genera una unidad de prediccion sometida a prediccion intra basandose en una unidad de codificacion y la unidad de codificacion no es la unidad de codificacion mas pequena, la prediccion intra puede realizarse sin particionado de la unidad de codificacion en multiples unidades de prediccion NxN.
Los modulos de prediccion 120 y 125 pueden incluir un modulo de prediccion inter 120 que realiza la prediccion inter y un modulo de prediccion intra 125 que realiza la prediccion intra. Puede determinarse si realizar una prediccion inter o una prediccion intra para la unidad de prediccion, y puede determinarse una informacion detallada (por ejemplo, un modo de prediccion intra, un vector de movimiento, una imagen de referencia, etc.) de acuerdo con cada metodo de prediccion. En este caso, la unidad de procesamiento sometida a prediccion puede ser diferente de la unidad de procesamiento para la que se determina el metodo de prediccion y el contenido detallado. Por ejemplo, el metodo de prediccion, el modo de prediccion, etc. pueden determinarse por la unidad de prediccion, y la prediccion puede realizarse por la unidad de transformacion. Un valor residual (bloque residual) entre el bloque de prediccion generado y un bloque original puede introducirse al modulo de transformacion 130. Tambien, la informacion del modo de prediccion, la informacion del vector de movimiento, etc. usadas para prediccion pueden codificarse con el valor residual mediante el modulo de codificacion entropica 165 y pueden transmitirse al dispositivo para decodificacion de un vfdeo. Cuando se usa un modo de codificacion particular, es posible transmitirlo a un dispositivo para decodificacion de vfdeo mediante la codificacion del bloque original tal como esta sin generar el bloque de prediccion a traves de los modulos de prediccion 120 y 125.
El modulo de prediccion inter 120 puede predecir la unidad de prediccion basandose en informacion de al menos uno de entre una imagen previa o una imagen posterior de la imagen actual, o puede predecir la unidad de prediccion basandose en informacion de algunas regiones codificadas en la imagen actual, en algunos casos. El modulo de prediccion inter 120 puede incluir un modulo de interpolacion de la imagen de referencia, un modulo de prediccion de movimiento, y un modulo de compensacion de movimiento.
El modulo de interpolacion de imagen de referencia puede recibir informacion de una imagen de referencia desde la memoria 155 y puede generar informacion de pfxeles de un pixel entero o menos que un pixel entero a partir de la imagen de referencia. En el caso de pfxeles de luma, puede usarse un filtro de interpolacion basado en DCT de 8-tap que tenga diferentes coeficientes de filtro para generar informacion de pixel tiene que ser un pixel entero o menor que un pixel entero en una unidad de 1/4 de pixel. En el caso de senales de croma, puede usarse un filtro de interpolacion basado en DCT de 4-tap que tenga un coeficiente de filtro diferente para generar la informacion de pixel de un pixel entero o menos que un pixel entero en una unidad de 1/8 de pixel.
El modulo de prediccion de movimiento puede realizar una prediccion del movimiento basandose en la imagen de referencia interpolada por el modulo de interpolacion de la imagen de referencia. Como metodos para calcular un vector de movimiento, pueden usarse diversos metodos, tales como un algoritmo de coincidencia de bloques basado en busqueda completa (FBMA), una busqueda en tres etapas (TSS), un nuevo algoritmo de busqueda en tres etapas (NTS), etc. El vector de movimiento puede tener un valor de vector de movimiento en una unidad de 1/2 de pixel o 1/4 de pixel basandose en un pixel interpolado. El modulo de prediccion de movimiento puede predecir una unidad de prediccion actual mediante el cambio del metodo de prediccion de movimiento. Como metodos de prediccion del movimiento, pueden usarse diversos metodos, tales como un metodo de salto, un metodo de mezcla, un metodo de AMVP (prediccion avanzada del vector de movimiento), un metodo de copia de bloques intra, etc.
El modulo de prediccion intra 125 puede generar una unidad de prediccion basandose en la informacion de pfxeles de referencia contiguos a un bloque actual que es informacion de pfxeles en la imagen actual. Cuando el bloque vecino de la unidad de prediccion actual es un bloque sometido a prediccion inter y por ello un pixel de referencia es un pixel sometido a prediccion inter, el pixel de referencia incluido en el bloque sometido a la prediccion inter puede sustituirse con informacion del pixel de referencia de un bloque vecino sometido a prediccion intra. Esto es, cuando no esta disponible un pixel de referencia, puede usarse al menos un pixel de referencia de pfxeles de referencia disponibles en lugar de informacion de pixel de referencia no disponible.
Los modos de prediccion en prediccion intra incluyen un modo de prediccion direccional que usa informacion del pixel de referencia dependiendo de una direccion de prediccion y un modo de prediccion no direccional que no usa la informacion direccional en la realizacion de la prediccion. Un modo para la prediccion de informacion de luma puede ser diferente de un modo para la prediccion de informacion de croma, y para predecir la informacion de croma, puede usarse la informacion del modo de prediccion intra usado para predecir la informacion de luma o la informacion de la senal de luma predicha.
En la realizacion de la prediccion intra, cuando el tamano de la unidad de prediccion es el mismo que el tamano de la unidad de transformacion, la prediccion intra puede realizarse sobre la unidad de prediccion basandose en pfxeles posicionados a la izquierda, a la izquierda arriba, y en la parte superior de la unidad de prediccion. Sin embargo, en la realizacion de la prediccion intra, cuando el tamano de la unidad de prediccion es diferente del tamano de la unidad de transformacion, la prediccion intra puede realizarse usando un pixel de referencia basado en la unidad de transformacion. Tambien, el uso de prediccion intra de particionado NxN puede usarse solamente para la unidad de codificacion mas pequena.
En el metodo de prediccion intra, puede generarse un bloque de prediccion despues de aplicar un filtro AIS (suavizado adaptativo intra) a un pixel de referencia dependiendo de los modos de prediccion. El tipo del filtro AIS aplicado al pixel de referencia puede variar. Para realizar el metodo de prediccion intra, puede predecirse un modo de prediccion intra de la unidad de prediccion actual a partir del modo de prediccion intra de la unidad de prediccion contigua a la unidad de prediccion actual. En la prediccion del modo de prediccion de la unidad de prediccion actual mediante el uso de informacion predicha a partir de la unidad de prediccion contigua, cuando el modo de prediccion intra de la unidad de prediccion actual es el mismo que el modo de prediccion intra de la unidad de prediccion contigua, puede transmitirse una informacion indicando que los modos de prediccion de la unidad de prediccion actual y de la unidad de prediccion contigua son iguales entre si usando una informacion de marcador predeterminada. Cuando el modo de prediccion de la unidad de prediccion actual es diferente del modo de prediccion de la unidad de prediccion contigua, puede realizarse una codificacion entropica para codificar la informacion del modo de prediccion del bloque actual.
Tambien, un bloque residual que incluye informacion sobre un valor residual que es uno diferente entre la unidad de prediccion sometida a prediccion y el bloque original de la unidad de prediccion, puede generarse basandose en unidades de prediccion generadas por los modulos de prediccion 120 y 125. El bloque residual generado puede introducirse al modulo de transformacion 130.
El modulo de transformacion 130 puede transformar el bloque residual que incluye la informacion sobre el valor residual entre el bloque original y la unidad de prediccion generada por los modulos de prediccion 120 y 125 mediante el uso de un metodo de transformacion, tal como una transformacion de coseno discreta (DCT), transformacion de seno discreta (DST) y KLT. Puede determinarse si aplicar DCT, DST o KLT para transformar el bloque residual basandose en la informacion del modo de prediccion intra de la unidad de prediccion usada para generar el bloque residual.
El modulo de cuantificacion 135 puede cuantificar valores transformados a un dominio de la frecuencia mediante el modulo de transformacion 130. Los coeficientes de cuantificacion pueden variar dependiendo del bloque o importancia de una imagen. Los valores calculados por el modulo de cuantificacion 135 pueden proporcionarse al modulo de cuantificacion inversa 140 y al modulo de redisposicion 160.
El modulo de redisposicion 160 puede redisponer los coeficientes de los valores residuales cuantificados.
El modulo de redisposicion 160 puede cambiar un coeficiente en la forma de un bloque bidimensional en un coeficiente en la forma de un vector monodimensional a traves de un metodo de escaneado de coeficientes. Por ejemplo, el modulo de redisposicion 160 puede escanear a partir de un coeficiente de DC a un coeficiente en el dominio de la alta frecuencia usando un metodo de escaneado en zigzag de modo que cambie los coeficientes para estar en la forma de vectores monodimensionales. Dependiendo del tamano de la unidad de transformacion y del modo de prediccion intra, pueden usarse el escaneado en la direccion vertical en la que los coeficientes en la forma de bloques bidimensionales se escanean en la direccion de columnas o el escaneado en la direccion horizontal en donde los coeficientes en la forma de bloques bidimensionales se escanean en que la direccion de filas en lugar de un escaneado en zigzag. Esto es, puede determinarse el metodo de escaneado que se usa entre el escaneado en zigzag, escaneado en direccion vertical y escaneado en direccion horizontal dependiendo del tamano de la unidad de transformacion y del modo de prediccion intra.
El modulo de codificacion entropica 165 puede realizar una codificacion entropica basandose en los valores calculados por el modulo de redisposicion 160. La codificacion entropica puede usar diversos metodos de codificacion, por ejemplo, codificacion Golomb exponencial, codificacion de longitud variable adaptativa al contexto (CAVLC), y codificacion aritmetica binaria adaptativa al contexto (CABAC).
El modulo de codificacion entropica 165 puede codificar una variedad de informacion, tal como informacion del coeficiente del valor residual e informacion del tipo de bloque de la unidad de codificacion, informacion del modo de prediccion, informacion de la unidad de particion, informacion de la unidad de prediccion, informacion de la unidad de transformacion, informacion del vector de movimiento, informacion del cuadro de referencia, informacion de interpolacion de bloque, informacion de filtrado, etc. a partir del modulo de redisposicion 160 y de los modulos de prediccion 120 y 125.
El modulo de codificacion entropica 165 puede codificar entropicamente los coeficientes de la unidad de codificacion introducidos desde el modulo de redisposicion 160.
El modulo de cuantificacion inversa 140 puede cuantificar inversamente los valores cuantificados por el modulo de cuantificacion 135 y el modulo de transformacion inversa 145 puede transformar inversamente los valores transformados por el modulo de transformacion 130. El valor residual generado por el modulo de cuantificacion inversa 140 y por el modulo de transformacion inversa 145 pueden combinarse con la unidad de prediccion predicha mediante el modulo de estimacion de movimiento, un modulo de compensacion de movimiento, y el modulo de prediccion intra de los modulos de prediccion 120 y 125 de modo que pueda generarse un bloque reconstruido.
El modulo de filtro 150 puede incluir al menos uno de entre un filtro de desbloqueo, una unidad de correccion de desviacion, y un filtro en bucle adaptativo (ALF).
El filtro de desbloqueo puede eliminar la distorsion de bloque que ocurre debido a los lfmites entre los bloques en la imagen reconstruida. Para determinar si realizar desbloqueo, los pfxeles incluidos en diversas filas o columnas en el bloque pueden ser una base para determinar si aplicar el filtro de desbloqueo al bloque actual. Cuando se aplica un filtro de desbloqueo al bloque, puede aplicarse un filtro fuerte o un filtro debil dependiendo de la intensidad de filtro de desbloqueo requerida. Tambien, en la aplicacion del filtro de desbloqueo, puede procesarse en paralelo un filtrado en direccion horizontal y un filtrado en direccion vertical.
El modulo de correccion de la desviacion puede corregir la desviacion con la imagen original en una unidad de un pixel en la imagen sometida a desbloqueo. Para realizar la correccion de desviacion sobre una imagen particular, es posible usar un metodo de aplicacion de la desviacion en consideracion a la informacion de borde de cada pixel o un metodo de particion de pfxeles de una imagen en el numero predeterminado de regiones, determinando una region a ser sometida a la realizacion de la desviacion, y aplicando la desviacion a la region determinada.
El filtrado en bucle adaptativo (ALF) puede realizarse basandose el valor obtenido mediante la comparacion de la imagen reconstruida filtrada y la imagen original. Los pfxeles incluidos en la imagen pueden dividirse en grupos predeterminados, puede determinarse un filtro a ser aplicado a cada uno de los grupos, y el filtrado puede realizarse individualmente para cada grupo. La informacion de si aplicar ALF y una senal de luma pueden transmitirse por unidades de codificacion (CU). La forma y el coeficiente de filtro de un filtro para ALF pueden variar dependiendo de cada bloque. Tambien, puede aplicarse el filtro para ALF en la misma forma (forma fija) independientemente de las caracterfsticas del bloque objetivo de aplicacion.
La memoria 155 puede almacenar el bloque o imagen reconstruida calculada a traves del modulo de filtro 150. El bloque o imagen reconstruida almacenada puede proporcionarse a los modulos de prediccion 120 y 125 en la realizacion de la prediccion inter.
La FIG. 2 es un diagrama de bloques que ilustra un dispositivo para decodificacion de un video de acuerdo con una realizacion de la presente invencion.
Con referencia a la FIG. 2, el dispositivo 200 para decodificacion de un video puede incluir: un modulo de decodificacion entropica 210, un modulo de redisposicion 215, un modulo de cuantificacion inversa 220, un modulo de transformacion 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 codificacion de video, el flujo de bits de entrada puede decodificarse de acuerdo con un proceso inverso del dispositivo para codificacion de video.
El modulo de decodificacion entropica 210 puede realizar la decodificacion entropica de acuerdo con un proceso inverso a la codificacion entropica mediante el modulo de codificacion entropica del dispositivo para codificacion de video. Por ejemplo, en correspondencia con los metodos realizados por el dispositivo para codificacion de video, pueden aplicarse varios metodos, tal como codificacion Golomb exponencial, codificacion de longitud variable adaptativa al contexto (CAVLC) y codificacion aritmetica binaria adaptativa al contexto (CABAC).
El modulo de decodificacion entropica 210 puede decodificar la informacion sobre prediccion intra y prediccion inter realizada por el dispositivo para codificacion de video.
El modulo de redisposicion 215 puede realizar la redisposicion del flujo de bits del decodificador entropico por el modulo de decodificacion entropica 210 basandose en el metodo de redisposicion usado en el dispositivo para codificacion de video. El modulo de redisposicion puede reconstruir y redisponer los coeficientes en la forma de vectores monodimensionales para el coeficiente en la forma de bloques bidimensionales. El modulo de redisposicion 215 puede recibir informacion relativa al escaneado de coeficientes realizado por el dispositivo para codificacion de video y puede realizar la redisposicion a traves de un metodo de escaneado inverso de los coeficientes basandose en el orden de escaneado realizado en el dispositivo para codificacion de video.
El modulo de cuantificacion inversa 220 puede realizar la cuantificacion inversa basandose en un parametro de cuantificacion recibido desde el dispositivo de codificacion de vfdeo y los coeficientes redispuestos del bloque.
El modulo de transformacion inversa 225 puede realizar la transformacion inversa, es decir, DCT inversa, DST inversa y KLT inversa, que es el proceso inverso de las transformaciones, es decir, DCT, DST y KLT, realizadas por el modulo de transformacion sobre el resultado de la cuantificacion por el dispositivo para codificacion de vfdeo. La transformacion inversa puede realizarse basandose en una unidad de transferencia determinada por el dispositivo para codificacion de vfdeo. El modulo de transformacion inversa 225 del dispositivo para decodificacion de vfdeo puede realizar selectivamente esquemas de transformacion (por ejemplo, DCT, DST y KLT) dependiendo de multiples piezas de informacion, tales como el metodo de prediccion, el tamano del bloque actual, la direccion de prediccion, etc.
Los modulos de prediccion 230 y 235 pueden generar un bloque de prediccion basandose en la informacion sobre la generacion del bloque de prediccion recibida desde el modulo de decodificacion entropica 210 y la informacion del bloque o imagen previamente decodificado recibida desde la memoria 245.
Como se ha descrito anteriormente, como en la operacion del dispositivo para codificacion de vfdeo, en la realizacion de la prediccion intra, cuando el tamano de la unidad de prediccion es el mismo que el tamano de la unidad de transformacion, puede realizarse prediccion intra sobre la unidad de prediccion basandose en los pfxeles posicionados en la izquierda, la izquierda arriba, y la parte superior de la unidad de prediccion. En la realizacion de la prediccion intra, cuando el tamano de la unidad de prediccion es diferente del tamano de la unidad de transformacion, la prediccion intra puede realizarse usando un pfxel de referencia basado en la unidad de transformacion. Tambien, puede usarse la prediccion intra usando particionado de NxN solo para la unidad de codificacion mas pequena.
Los modulos de prediccion 230 y 235 pueden incluir un modulo de determinacion de la unidad de prediccion, un modulo de prediccion inter y un modulo de prediccion intra. El modulo de determinacion de la unidad de prediccion puede recibir una diversidad de informacion, tal como informacion de la unidad de prediccion, informacion del modo de prediccion de un metodo de prediccion intra, informacion sobre prediccion de movimiento de un metodo de prediccion inter, etc. desde el modulo de decodificacion entropica 210, puede dividir una unidad de codificacion actual en unidades de prediccion, y puede determinar si se realiza una prediccion inter o prediccion intra sobre la unidad de prediccion. Mediante el uso de la informacion requerida en la prediccion inter de la unidad de prediccion actual recibida desde el dispositivo para codificacion de video, el modulo de prediccion inter 230 puede realizar la prediccion inter sobre la unidad de prediccion actual basandose en la informacion de al menos uno de entre una imagen previa o una imagen posterior de la imagen actual que incluye la unidad de prediccion actual. Alternativamente, la prediccion inter puede realizarse basandose en la informacion de algunas regiones pre-reconstruidas en la imagen actual incluyendo la unidad de prediccion actual.
Para realizar prediccion inter, puede determinarse por la unidad de codificacion cual de entre un modo de salto, un modo de mezcla, un modo AMVP y un modo de copia de bloque inter se usa como el metodo de prediccion de movimiento de la unidad de prediccion incluida en la unidad de codificacion.
El modulo de prediccion intra 235 puede generar un bloque de prediccion basandose en informacion de pixel en la imagen actual. Cuando la unidad de prediccion es una unidad de prediccion sometida a prediccion intra, la prediccion intra puede realizarse basandose en informacion del modo de prediccion intra de la unidad de prediccion recibida desde el dispositivo para codificacion de video. El modulo de prediccion intra 235 puede incluir un filtro de suavizado intra adaptativo (AIS), un modulo de interpolacion de pixel de referencia, y un filtro de DC. El filtro AIS realiza filtrado sobre el pixel de referencia del bloque actual y puede determinarse si se aplica el filtro dependiendo del modo de prediccion de la unidad de prediccion actual. El filtrado AIS puede realizarse sobre el pixel de referencia del bloque actual mediante el uso del modo de prediccion de la unidad de prediccion y la informacion del filtro AIS recibida desde el dispositivo para codificacion de video. Cuando el modo de prediccion del bloque actual es un modo en el que no se realiza el filtrado AIS, no puede aplicarse el filtro AIS.
Cuando el modo de prediccion de la unidad de prediccion es un modo de prediccion en el que se realiza la prediccion intra basandose en el valor de pixel obtenido mediante la interpolacion del pixel de la referencia, el modulo de interpolacion del pixel de referenda puede interpolar el pixel de referenda para generar el pixel de referencia de un pixel entero o menos 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 DC puede generar un bloque de prediccion a traves del filtrado cuando el modo de prediccion del bloque actual es un modo DC.
El bloque o imagen reconstruidos puede proporcionarse al modulo de filtro 240. El modulo de filtro 240 puede incluir el filtro de desbloqueo, el modulo de correccion de desviacion y el ALF.
La informacion de si se aplica o no el filtro de desbloqueo al bloque o imagen correspondiente y la informacion de cual de entre un filtro fuerte y un filtro debil se aplican cuando se aplica el filtro de desbloqueo, puede recibirse desde el dispositivo para codificacion de video. El filtro de desbloqueo del dispositivo para decodificacion de video puede recibir informacion sobre el filtro de desbloqueo desde el dispositivo para codificacion de video, y puede realizar el filtrado de desbloqueo sobre el bloque correspondiente.
El modulo de correccion de desviacion puede realizar la correccion de la desviacion sobre la imagen reconstruida basandose en el tipo de correccion de desviacion y la informacion del valor de desviacion aplicada a la imagen en la realizacion de la codificacion.
El ALF puede aplicarse a la unidad de codificacion basandose en la informacion de si aplicar el ALF, informacion del coeficiente de ALF, etc. recibida desde el dispositivo para codificacion de video. La informacion de ALF puede proporcionarse estando incluida en un conjunto de parametros particular.
La memoria 245 puede almacenar la imagen o bloque reconstruido para su uso como una imagen o bloque de referencia, y puede proporcionar la imagen reconstruida a un modulo de salida.
Como se ha descrito anteriormente, en la realizacion de la presente invencion, por conveniencia de explicacion, la unidad de codificacion se usa como un termino que representa una unidad para codificacion, pero la unidad de codificacion puede servir como una unidad para realizar la decodificacion asf como la codificacion.
Ademas, un bloque actual puede representar un bloque objetivo a ser codificado/decodificado. 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 transformacion (o una unidad de transformacion), un bloque de prediccion (o una unidad de prediccion), o similares dependiendo de una etapa de codificacion/ decodificacion.
Una imagen puede codificarse/decodificarse mediante su division en bloques base que tienen una forma cuadrada o una forma no cuadrada. En este momento, el bloque base puede denominarse como una unidad de arbol de codificacion. La unidad de arbol de codificacion puede definirse como una unidad de codificacion del mayor tamano permitido dentro de una secuencia o una fraccion. La informacion con relacion a si la unidad del arbol de codificacion tiene una forma cuadrada o tiene una forma no cuadrada o informacion con relacion al tamano de la unidad del arbol de codificacion puede senalizarse a traves de un conjunto de parametros de la secuencia, un conjunto de parametros de la imagen, o una cabecera de la fraccion. La unidad del arbol de codificacion puede dividirse en particiones de tamano mas pequeno. En este momento, si se supone que una profundidad de una particion generada mediante la division de la unidad del arbol de codificacion es 1, una profundidad de una particion generada mediante la division de la particion que tiene una profundidad 1 puede definirse como 2. Esto es, una particion generada mediante la division de una particion que tenga 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 mediante la division de una unidad de arbol de codificacion puede definirse como una unidad de codificacion. La unidad de codificacion puede dividirse recursivamente o dividirse en unidades base para la realizacion de prediccion, cuantificacion, transformacion, o filtrado en bucle, y similares. Por ejemplo, una particion de tamano arbitrario generada mediante la division de la unidad de codificacion puede definirse como una unidad de codificacion, o puede definirse como una unidad de transformacion o una unidad de prediccion, que es una unidad base para la realizacion de prediccion, cuantificacion, transformacion o filtrado en bucle y similares.
La particion de una unidad de arbol de codificacion o una unidad de codificacion puede realizarse basandose en al menos una de entre una lfnea vertical y una lfnea horizontal. Ademas, el numero de lineas verticales o lineas horizontales que particionan la unidad del arbol de codificacion o la unidad de codificacion puede ser al menos uno o mas. Por ejemplo, la unidad de arbol de codificacion o la unidad de codificacion pueden dividirse en dos particiones usando una lfnea vertical o una lfnea horizontal, o la unidad de arbol de codificacion o la unidad de codificacion pueden dividirse en tres particiones usando dos lineas verticales o dos lineas horizontales. Alternativamente, la unidad de arbol de codificacion o la unidad de codificacion pueden particionarse en cuatro particiones que tengan una longitud y ancho de 1/2 usando una lfnea vertical y una lfnea horizontal.
Cuando una unidad de arbol de codificacion o una unidad de codificacion se divide en una pluralidad de particiones usando al menos una lfnea vertical o al menos una lfnea horizontal, las particiones pueden tener un tamano uniforme o un tamano diferente. Alternativamente, una particion cualquiera puede tener un tamano diferente del resto de las particiones.
En las realizaciones descritas a continuacion, se supone que una unidad de arbol de codificacion o una unidad de codificacion se divide en una estructura en arbol cuadruple o una estructura en arbol binario. Sin embargo, es posible tambien dividir una unidad de arbol de codificacion o una unidad de codificacion usando un numero mayor de lineas verticales o un numero mayor de lineas horizontales.
La FIG. 3 es un diagrama que ilustra un ejemplo de particionado de forma jerarquica de un bloque de codificacion basandose en una estructura en arbol de acuerdo con una realizacion de la presente invencion.
Se decodifica una senal de video de entrada en unidades de bloque predeterminadas. Dicha unidad por omision para la decodificacion de la senal de video de entrada es un bloque de codificacion. El bloque de codificacion puede ser una unidad que realiza prediccion intra/inter, transformacion y cuantificacion. Ademas, se determina un modo de prediccion (por ejemplo, un modo de prediccion intra o un modo de prediccion inter) en una unidad 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 tenga un tamano arbitrario en el intervalo de 8x8 a 64x64, o puede ser un bloque cuadrado o no cuadrado que tenga un tamano de 128x128, 256x256 o mas. Especfficamente, el bloque de codificacion puede particionarse jerarquicamente basandose en al menos uno de entre un arbol cuadruple y un arbol binario. En este caso, el particionado basado en arbol cuadruple significa que un bloque de codificacion 2Nx2N se particiona en cuatro bloques de codificacion NxN, y el particionado basado en arbol binario puede significar que un bloque de codificacion se particiona en dos bloques de codificacion. Incluso si se realiza particionado basado en arbol binario, puede existir un bloque de codificacion de forma cuadrada en la profundidad mas baja.
El particionado basado en arbol binario puede realizarse simetricamente o asimetricamente. El bloque de codificacion particionado basado en el arbol binario puede ser un bloque cuadrado o un bloque no cuadrado, tal como una forma rectangular. Por ejemplo, un tipo de particion en la que se permite el particionado basado en arbol binario puede comprender al menos una de entre un tipo simetrico de 2NxN (unidad de codificacion no cuadrada de direccion horizontal) o Nx2N (unidad de codificacion no cuadrada de direccion vertical), tipo simetrico de nLx2N, nRx2N, 2NxnU, o 2NxnD.
El particionado basado en arbol binario puede permitirse de modo limitado a una particion de entre un tipo simetrico o uno simetrico. En este caso, la construccion de la unidad del arbol de codificacion con bloques cuadrados puede corresponder a un particionado de CU en arbol cuadruple, y la construccion de la unidad del arbol de codificacion con bloques no cuadrados simetricos puede corresponder a un particionado en arbol binario. La construccion de la unidad de arbol de codificacion con bloques cuadrados y bloques no cuadrados simetricos puede corresponder a particionado de CU en arbol cuadruple y binario.
El particionado basado en arbol binario puede realizarse sobre un bloque de codificacion en donde el particionado basado en arbol cuadruple ya no se realiza. El particionado basado en arbol cuadruple ya no puede realizarse sobre el bloque de codificacion particionado basandose en el arbol binario.
Adicionalmente, el particionado de una profundidad inferior puede determinarse dependiendo de un tipo de particion de una profundidad superior. Por ejemplo, si se permite un particionado basado en arbol binario en dos o mas profundidades, solo puede permitirse el mismo tipo que el particionado en arbol binario de la profundidad superior en la profundidad inferior. Por ejemplo, si el particionado basado en arbol binario en la profundidad superior se realiza con el tipo 2NxN, el particionado basado en arbol binario en la profundidad inferior se realiza tambien con el tipo 2NxN. Alternativamente, si el particionado basado en arbol binario en la profundidad superior se realiza con el tipo Nx2N, el particionado basado en arbol binario en la profundidad inferior tambien se realiza con el tipo Nx2N.
Por el contrario, es posible tambien permitir, en una profundidad inferior, solo un tipo diferente de un tipo de particionado en arbol binario de una profundidad superior.
Puede ser posible limitar solo un tipo especffico de arbol binario basandose en el particionado a ser usado para secuencia, fraccion, unidad del arbol de codificacion o unidad de codificacion. Como un ejemplo, puede permitirse solamente un tipo 2NxN o un tipo Nx2N de particionado basado en el arbol binario para la unidad del arbol de codificacion. Un tipo de particion disponible puede predefinirse en un codificador o un decodificador. O la informacion sobre el tipo de particion disponible o sobre el tipo de particion no disponible pueden codificarse y senalizarse a continuacion a traves de un flujo de bits.
La FIG. 5 es un diagrama que ilustra un ejemplo en el que solo se permite un tipo especffico de particionado basado en arbol binario. La FIG. 5A muestra un ejemplo en el que solo se permite un tipo Nx2N de particionado basado en arbol binario, y la FIG. 5B muestra un ejemplo en el que solo se permite un tipo 2NxN de particionado basado en arbol binario. Para implementar el particionado adaptativo basandose en arbol cuadruple o en arbol binario, puede usarse informacion indicando particionado basado en arbol cuadruple, informacion sobre el tamano/profundidad del bloque de codificacion que se permite en el particionado basado en arbol cuadruple, informacion indicando particionado basado en arbol binario, informacion sobre el tamano/profundidad del bloque de codificacion que se permiten en el particionado basado en arbol binario, informacion sobre el tamano/ profundidad del bloque de codificacion que no se permite en el particionado basado en arbol binario, informacion sobre si el particionado basado en arbol binario se realiza en una direccion vertical o una direccion horizontal, etc.
Ademas, informacion sobre el numero de veces que se permite un particionado en arbol binario, una profundidad en la que se permite el particionado en arbol binario, o el numero de profundidades en las que se permite el particionado en arbol binario pueden obtenerse a partir de una unidad del arbol de codificacion o una unidad de codificacion especffica. La informacion puede codificarse en una unidad 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 se permite el particionado en 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 se permite el particionado en arbol binario.
Con referencia al ejemplo mostrado en la FIG. 6, en la FIG. 6 el particionado en 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. En consecuencia, al menos una de entre la informacion que indica el numero de veces que se ha realizado el particionado en arbol binario en la unidad del arbol de codificacion (es decir, 2 veces), informacion indicando la profundidad maxima que se ha permitido en el particionado en arbol binario en la unidad del arbol de codificacion (es decir, profundidad 3), o el numero de profundidades en las que el particionado en arbol binario se ha realizado en la unidad del 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 entre informacion sobre el numero de veces que se permite el particionado en arbol primario, la profundidad a la que se permite el particionado en arbol primario o el numero de profundidades a las que se permite el particionado en arbol primario puede obtenerse para cada secuencia o cada fraccion. Por ejemplo, la informacion puede codificarse en una unidad de una secuencia, una imagen, o una unidad de fraccion y transmitirse a traves de un flujo de bits. En consecuencia, al menos uno de entre el numero de particiones del arbol binario en una primera fraccion, la maxima profundidad en la que el particionado en arbol binario se permite en la primera fraccion, o el numero de profundidades en las que el particionado en arbol primario se realiza en la primera fraccion pueden ser diferentes de una segunda fraccion. Por ejemplo, en la primera fraccion, el particionado en arbol primario puede permitirse solo para una profundidad, mientras que la segunda fraccion, el particionado en arbol binario puede permitirse para dos profundidades.
Como otro ejemplo, el numero de veces que se permite el particionado en arbol primario, la profundidad a la que se permite el particionado en arbol primario o el numero de profundidades a las que se permite el particionado en arbol primario puede fijarse de modo diferente de acuerdo con un identificador de nivel de tiempo (TemporalID) de una fraccion o una imagen. En este caso, 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 vista, espacial, temporal o de calidad.
Como se muestra en la FIG. 3, el primer bloque de codificacion 300 con la profundidad de particion (profundidad de division) igual a k puede particionarse en multiples segundos bloques de codificacion basandose en el arbol cuadruple. Por ejemplo, los segundos bloques de codificacion 310 a 340 pueden ser bloques cuadrados que tengan la mitad de ancho y la mitad de altura del primer bloque de codificacion, y la profundidad de particion del segundo bloque de codificacion puede incrementarse 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 una profundidad de particion de k+2. El particionado del segundo bloque de codificacion 310 puede realizarse mediante el uso en forma selectiva de uno de entre el arbol cuadruple y el arbol binario dependiendo de un metodo de particion. En este caso, el metodo de particion puede determinarse basandose en al menos una de entre la informacion que indica el particionado basado en el arbol cuadruple y la informacion que indica el particionado basado en el 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 del ancho y la mitad de la altura del segundo bloque de codificacion, y la profundidad de particion del tercer bloque de codificacion 310a puede incrementarse a k+2. Por el contrario, 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 caso, cada uno de los dos terceros bloques de codificacion puede ser un bloque no cuadrado que tenga una de entre la mitad del ancho y la mitad de la altura del segundo bloque de codificacion, y la profundidad de particion puede incrementarse a k+2. El segundo bloque de codificacion puede determinarse como un bloque no cuadrado de una direccion horizontal o una direccion vertical dependiendo de una direccion de particionado, y la direccion de particionado puede determinarse basandose en la informacion de si se realiza particionado basado en arbol binario en una direccion vertical o en una direccion horizontal.
Por su parte, el segundo bloque de codificacion 310 puede determinarse como un bloque de codificacion de hoja que no ya no se particiona mas basandose en el arbol cuadruple o en el arbol binario. En este caso, el bloque de codificacion de hoja puede usarse como un bloque de prediccion o un bloque de transformacion.
Como el particionado 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 en el arbol binario.
Por su parte, el tercer bloque de codificacion 310b particionado basandose en el arbol primario 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 particion de los bloques de codificacion relevantes puede incrementarse a k+3. Alternativamente, el tercer bloque de codificacion 310b puede determinarse como un bloque de codificacion de hoja 310b-1 que ya no se particiona mas basandose en el arbol binario. En este caso, el bloque de codificacion 310b-1 puede usarse como un bloque de prediccion o un bloque de transformacion. Sin embargo, el proceso de particionado anterior puede realizarse de modo limitado basandose en al menos una de entre la informacion del tamano/profundidad del bloque de codificacion que tiene permitido el particionado basado en arbol cuadruple, la informacion sobre el tamano/profundidad del bloque de codificacion que tiene permitido el particionado basado en arbol binario, y la informacion sobre el tamano/profundidad del bloque de codificacion que no tiene permitido el particionado 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 ejemplo, el tamano del bloque de codificacion en una secuencia o en una imagen puede limitarse a tener 256x256, 128x128 o 32x32. La informacion que indica el tamano del bloque de codificacion en la secuencia o en la imagen puede senalizarse a traves de una cabecera de secuencia o una cabecera de imagen.
Como resultado del particionado basado en un arbol cuadruple y un arbol binario, una unidad de codificacion puede representarse como una forma cuadrada o rectangular de un tamano arbitrario.
Un bloque de codificacion se codifica usando al menos uno de entre un modo de salto, prediction intra, prediction inter, o un metodo de salto. Una vez se determina el bloque de codificacion, puede determinarse un bloque de prediccion a traves del particionado predictivo del bloque de codificacion. El particionado predictivo del bloque de codificacion puede realizarse mediante un modo de partition (Part_mode) que indica un tipo de partition del bloque de codificacion. Puede determinarse un tamano o una forma del bloque de prediccion de acuerdo con el modo de particion del bloque de codificacion. Por ejemplo, un tamano de un bloque de prediccion determinado de acuerdo con el modo de particion puede ser igual a o mas pequeno que un tamano de un bloque de codificacion.
La FIG. 7 es un diagrama que ilustra un modo de particion que puede aplicarse a un bloque de codificacion cuando el bloque de codificacion se codifica mediante prediccion inter.
Cuando un bloque de codificacion se codifica mediante prediccion inter, puede aplicarse uno de los 8 modos de particion al bloque de codificacion, como en el ejemplo mostrado en la FIG. 4.
Cuando se codifica un bloque de codificacion mediante prediccion intra, puede aplicarse un modo de particion PART_2Nx2N o un modo de particion PART_NxN al bloque de codificacion.
PART_NxN puede aplicarse cuando un bloque de codificacion tiene un tamano mfnimo. En este caso, el tamano mfnimo del bloque de codificacion puede definirse en un codificador y un decodificador. O, la informacion con relation al tamano mfnimo del bloque de codificacion puede senalizarse a traves de un flujo de bits. Por ejemplo, el tamano mfnimo del bloque de codificacion puede senalizarse a traves de una cabecera de la fraccion, de modo que el tamano mmimo del bloque de codificacion puede definirse por fraccion.
En general, un bloque de prediccion puede tener un tamano desde 64x64 a 4x4. Sin embargo, cuando un bloque de codificacion se codifica mediante prediccion inter, puede restringirse que el bloque de prediccion no tenga un tamano 4x4 para reducir el ancho de banda de memoria cuando se realiza la compensacion de movimiento.
El codificador puede realizar una transformacion o cuantificacion sobre una muestra residual (o senal residual) en una unidad de un bloque predeterminado, y generar de ese modo un coeficiente residual. En este caso, la unidad de bloque predeterminada puede significar una unidad sobre la que se realiza la transformacion o la cuantificacion. Un tamano de la unidad de bloque predeterminada puede ser el mismo para los componentes de color o puede ser diferente para cada componente de color. Por ejemplo, un coeficiente residual para un componente de luminancia (Luma) y un componente de crominancia (Cb, Cr) pueden generarse en una unidad de bloque diferente.
La unidad de bloque sobre la que se realiza la transformacion o la cuantificacion puede denominarse como un bloque de transformacion, y el bloque de transformacion puede tener una forma cuadrada o una forma no cuadrada. Por ejemplo, el bloque de transformacion puede tener una forma cuadrada tal como 4x4, 8x8, 16x16, 32x32 o 64x64, o puede tener una forma no cuadrada, tal como 4x8, 8x4, 8x16, 16x8, 16x32, 32x16, 32x64, 64x32, 4x16, 4x32 o 8x32, etc.
El decodificador puede decodificar el coeficiente residual a partir del flujo de bits recibido desde el codificador y decodificar una muestra residual (o senal residual) mediante la realizacion de al menos uno de entre una cuantificacion inversa y una transformacion inversa sobre la senal residual decodificada. Los procesos de decodificacion de un coeficiente residual y la generacion de la senal residual mediante la realizacion de al menos una de entre la cuantificacion inversa y la transformacion inversa sobre la senal residual decodificada pueden definirse como “decodificacion de coeficiente residual”.
Se describiran en detalle en el presente documento a continuacion, procesos de decodificacion del coeficiente residual.
La FIG. 8 es un diagrama de flujo que ilustra procesos de extraccion de una muestra residual de acuerdo con una realizacion de la presente invencion.
El decodificador puede decodificar informacion que indique si existe un coeficiente de transformacion no-cero en un bloque actual a partir de un flujo de bits S810 y puede determinar si decodificar el coeficiente residual del bloque actual basandose en la informacion S820.
La informacion puede incluir un indicador codificado del coeficiente de transformacion (coded_block_flag, CBF) que indica si existe o no el coeficiente de transformacion en el bloque actual. El indicador codificado del coeficiente de transformacion puede indicar si existe el coeficiente de transformacion no-cero en un bloque de una unidad predeterminada. Por ejemplo, cuando el indicador codificado del coeficiente de transformacion es 0, puede indicar que no hay coeficiente de transformacion no-cero en el bloque de la unidad predeterminada, y cuando el indicador codificado del coeficiente de transformacion es 1, puede indicar que existe al menos un coeficiente de transformacion no-cero en el bloque de la unidad predeterminada. El indicador codificado del coeficiente de transformacion puede codificarse y senalizarse para cada uno de entre el componente de luminancia y el componente de crominancia.
El indicador codificado del coeficiente de transformacion puede comprender al menos uno de entre un indicador (por ejemplo, “rgt_root_cbf”) senalizado en una unidad de un bloque (por ejemplo, un bloque de transformacion, un bloque de codificacion o un bloque de arbol de codificacion) o un indicador (por ejemplo “coded_sub_block_flag”) senalizado en una unidad de un sub-bloque de un tamano predeterminado.
Por ejemplo, el rqt_root_cbf puede indicar si el bloque actual incluye un coeficiente de transformacion no-cero. El decodificador puede determinar si debe decodificar el coeficiente residual de acuerdo con un valor del rqt_root_cbf. Por ejemplo, cuando el rqt_root_cbf es 0, puede no realizarse la decodificacion del coeficiente de transformacion para el bloque actual (por ejemplo, el bloque de transformacion actual) y los valores de las muestras residuales en el bloque actual pueden fijarse todas a cero. Por otro lado, cuando el rqt_root_cbf es 1, puede realizarse la decodificacion del coeficiente de transformacion del bloque actual.
El coded_sub_block_flag puede indicar si se incluye o no un coeficiente de transformacion no-cero en el sub-bloque del tamano predeterminado. Por ejemplo, el coded_sub_block_flag puede codificarse y senalizarse en una unidad de un sub-bloque de 4x4. Si el coded_sub_block_flag es 0, puede significar que no hay coeficiente de transformacion no-cero en el sub-bloque del tamano predeterminado, y si el coded_sub_block_flag es 1, puede significar que al menos existe un coeficiente de transformacion no-cero en el sub-bloque del tamano predeterminado.
El rqt_root_cbf y el coded_sub_block_flag pueden codificarse y senalizarse jerarquicamente. Por ejemplo, cuando el rqt_root_cbf es 0, puede omitirse la codificacion del coded_sub_block_flag. Por otro lado, cuando el rqt_root_cbf es 1 y un tamano del bloque actual es mayor que el sub-bloque, puede codificarse y senalizarse el coded_sub_block_flag en una unidad de un sub-bloque del tamano predeterminado en el bloque actual.
Es posible tambien codificar y senalizar jerarquicamente indicadores codificados del coeficiente de transformacion entre un bloque de transformacion y un bloque de codificacion. Por ejemplo, despues de la codificacion/decodificacion de un primer indicador codificado del coeficiente de transformacion que indica que hay al menos un bloque de transformacion que incluye un coeficiente de transformacion no-cero entre una pluralidad de bloques de transformacion, y a continuacion puede determinarse basandose en un valor del primer marcador codificado del coeficiente de transformacion, si codificar/decodificar un segundo marcador codificado del coeficiente de transformacion para cada bloque de transformacion. En este caso, al menos uno de entre un tamano o una forma de un bloque superior que incluye la pluralidad de bloques de transformacion puede tener un valor predefinido o puede determinarse a traves de la informacion a ser decodificada a traves del flujo de bits. Alternativamente, al menos uno de entre el tamano o la forma del bloque superior pueden determinarse basandose en un tipo de particion del bloque del arbol de codificacion. Por ejemplo, puede definirse un bloque de codificacion no cuadrado o un bloque de codificacion cuadrado que incluye una pluralidad de bloques de transformacion no cuadrados como el bloque superior para la pluralidad de bloques de transformacion no cuadrados. El indicador codificado del coeficiente de transformacion puede codificarse jerarquicamente a lo largo de dos o mas capas.
Como se ha descrito anteriormente, un metodo para codificar jerarquicamente un indicador codificado del coeficiente de transformacion puede denominarse como un metodo de deduccion de un marcador del bloque codificado jerarquico (HCBF).
Cuando se incluye al menos un coeficiente de transformacion no-cero en el bloque actual, el coeficiente de transformacion puede decodificarse usando un indicador de nivel del coeficiente de transformacion que indique si el coeficiente de transformacion es o no 0. El indicador de nivel del coeficiente de transformacion es un marcador de 1 bit (por ejemplo, “significant_flag”) que indica si cada coeficiente de transformacion en el bloque actual es o no 0. Por ejemplo, si el significant_flag es 1, indica que el coeficiente de transformacion no es 0, y si el significant_flag es 0, indica que el coeficiente de transformacion es 0.
Puede denominarse como una capa de nivel del coeficiente de transformacion (Mapa significativo) que representa si cada coeficiente de transformacion del bloque actual es o no 0. El codificador puede codificar el indicador codificado del coeficiente de transformacion y el indicador de nivel del coeficiente de transformacion para cada coeficiente de transformacion de acuerdo con el mapa de nivel del coeficiente de transformacion, y codificar un valor absoluto y un signo del coeficiente de transformacion no-cero. El decodificador puede decodificar el mapa de nivel del coeficiente de transformacion de acuerdo con el indicador codificado del coeficiente de transformacion y el indicador de nivel del coeficiente de transformacion, y decodificar el valor absoluto y el signo del coeficiente de transformacion nocero.
La FIG. 9 es un diagrama que ilustra un mapa de nivel del coeficiente de transformacion. Los valores mostrados en la FIG. 9 indican valores del indicador de nivel del coeficiente de transformacion, y coded_sub_block_flag indica si existe o no un coeficiente de transformacion no-cero para un subbloque de 4x4.
Un sub-bloque de un tamano predeterminado en el que se codifica/ decodifica la informacion de si existe un coeficiente de transformacion no-cero puede denominarse como un bloque base del coeficiente de transformacion. Por ejemplo, en la FIG. 9, un bloque de 4x4 en el que se codifica coded_sub_block_flag puede definirse como el bloque base del coeficiente de transformacion.
En este punto, al menos uno de entre una forma o un tamano del bloque base del coeficiente de transformacion puede determinarse diferenciadamente de acuerdo con al menos uno de entre una forma o un tamano de un bloque de codificacion o un bloque de transformacion. Por ejemplo, si el bloque actual tiene una forma cuadrada, el bloque base del coeficiente de transformacion del bloque actual puede tener tambien una forma cuadrada, y si el bloque actual tiene una forma no cuadrada, el bloque base del coeficiente de transformacion del bloque actual puede tener tambien una forma no cuadrada. Por ejemplo, cuando el bloque actual tiene una forma no cuadrada de Nx2N o Nx4N, el bloque base del coeficiente de transformacion del bloque actual puede ser de 2x8, y si el bloque actual es no cuadrado de 2NxN o 4NxN, el bloque base del coeficiente de transformacion del bloque actual puede ser de 8x2.
Como resultado del particionado en arbol cuadruple y el particionado en arbol binario, un bloque del arbol de codificacion o un bloque de codificacion puede incluir un bloque de transformacion tal como 2x8, 8x2, 4x16 o 16x4. Como se ha descrito anteriormente, cuando se usa adicionalmente el particionado en arbol binario ademas del particionado cuadruple, pueden incluirse un numero mayor o formas mas diversas de los bloques de transformacion en la unidad del arbol de codificacion que en el caso de usar solamente el particionado cuadruple. La senalizacion del indicador codificado del coeficiente de transformacion para cada bloque de transformacion puede reducir la eficiencia de la codificacion debido a que se incrementa el numero de bloques de transformacion o se diversifica la forma de los mismos.
Asf, en una realizacion de la presente invencion, en lugar de codificar el indicador codificado del coeficiente de transformacion en una unidad de un bloque de transformacion, el indicador codificado del coeficiente de transformacion puede codificarse/decodificarse en una unidad predeterminada. O es posible tambien determinar si codificar/decodificar el indicador codificado del coeficiente de transformacion para el bloque actual mediante la comparacion del tamano del bloque actual con la unidad predeterminada. En este caso, la unidad predeterminada puede definirse como un tamano de un bloque, una forma de un bloque, o el numero de muestras.
El codificador puede codificar y senalizar informacion (por ejemplo, un indicador de unidad codificado del coeficiente de transformacion) para determinar la unidad predeterminada. La informacion puede indicar el tamano, la forma, o el numero de muestras del bloque. Adicionalmente, la informacion puede codificarse y senalizarse en al menos una de entre un nivel de secuencia de video, un conjunto de parametros de imagen, una cabecera de fraccion, o un nivel del bloque.
Si la unidad predeterminada se relaciona con el tamano del bloque o con el numero de muestras, y si el bloque actual es mas pequeno que la unidad predeterminada, puede determinarse si el bloque actual incluye o no un coeficiente de transformacion no-cero basandose en el indicador codificado para la unidad predeterminada. Por otro lado, cuando el bloque actual es igual a o mayor que la unidad predeterminada, puede codificarse y senalizarse el indicador codificado del coeficiente de transformacion para el bloque actual.
La FIG. 10 es un diagrama para explicar un aspecto en el que un indicador codificado del coeficiente de transformacion se decodifica basandose en una unidad predeterminada.
Cuando la unidad predeterminada indica 256 muestras, el indicador codificado del coeficiente de transformacion puede codificarse y senalizarse basandose en un bloque que incluye 256 o mas muestras. En consecuencia, en el ejemplo mostrado en la FIG. 10, el indicador codificado del coeficiente de transformacion que especifica si existe un coeficiente de transformacion nocero puede decodificarse para un bloque de 16x16 o de 8x32.
El indicador codificado del coeficiente de transformacion puede codificarse y senalizarse tambien para un bloque que incluye mas de 256 muestras. Por ello, en el ejemplo mostrado en la FIG. 10, el indicador codificado del coeficiente de transformacion que indica si existe un coeficiente de transformacion no-cero puede decodificarse para un bloque de 16x32 o de 32x32.
Cuando la unidad predeterminada indica 1024 muestras, el indicador codificado del coeficiente de transformacion puede codificarse y senalizarse basandose en un bloque que incluye 1024 o mas muestras. En consecuencia, en el ejemplo mostrado en la FIG. 10, un indicador codificado del coeficiente de transformacion simple puede decodificarse para un bloque superior que incluye cuatro bloques cuadrados de tamano 16x16. Y un indicador codificado del coeficiente de transformacion simple puede decodificarse para un bloque superior que incluye dos bloques no cuadrados de 8x32 y bloques no cuadrados de 16x32.
El indicador codificado del coeficiente de transformacion puede codificarse y senalizarse por separado para bloques que incluyen mas de 1024 muestras. En consecuencia, en el ejemplo mostrado en la FIG. 10, el indicador codificado del coeficiente de transformacion puede decodificarse para un bloque de 32x32.
La unidad predeterminada puede indicar una unidad maxima en la que se codifica y senaliza el indicador codificado del coeficiente de transformacion. Esto es, un tamano maximo o una forma del bloque al que ha de codificarse el indicador codificado del coeficiente de transformacion pueden definirse basandose en la unidad predeterminada. En este caso, puede compararse el numero de muestras indicado por el indicador unidad codificado del coeficiente de transformacion y el numero de muestras incluidas en el bloque de transformacion para determinar la unidad en la que se senaliza el coeficiente de transformacion.
Por ejemplo, cuando el numero de muestras indicado por el indicador unidad codificado del coeficiente de transformacion es mayor que el numero de muestras incluidas en el bloque de transformacion, el indicador codificado del coeficiente de transformacion puede codificarse y senalizarse para el bloque de transformacion. Por otro lado, cuando numero de muestras indicadas por el indicador unidad codificado del coeficiente de transformacion es mas pequeno que el numero de muestras incluidas en el bloque de transformacion, el bloque de transformacion puede dividirse en una pluralidad de regiones de acuerdo con la unidad predeterminada, y a continuacion el indicador codificado del coeficiente de transformacion puede codificarse y senalizarse para cada region.
Si el coeficiente residual no-cero se incluye en el bloque actual, puede determinarse S830 un orden de escaneado para el bloque actual, y puede decodificarse un valor absoluto o un signo de cada coeficiente de transformacion de acuerdo con el orden de escaneado determinado S840.
El decodificador puede seleccionar el orden de escaneado del bloque actual de entre una pluralidad de candidatos al orden de escaneado. En este caso, la pluralidad de candidatos al orden de escaneado puede incluir al menos uno de entre una escaneado diagonal, un escaneado horizontal y un escaneado vertical. Por ejemplo, la FIG. 11 es un diagrama que muestra un procedimiento de decodificacion del coeficiente de transformacion de acuerdo con cada orden de escaneado.
El orden de escaneado del bloque actual puede determinarse basandose en al menos uno de entre un tamano, una forma, un modo de codificacion o un modo de prediccion intra del bloque actual (por ejemplo, un bloque de transformacion o un bloque de codificacion). En este caso, el tamano del bloque actual puede representarse mediante al menos uno de entre un ancho, una altura, o un area del bloque.
Por ejemplo, el orden de escaneado del bloque actual puede determinarse mediante la comparacion del tamano del bloque actual con un valor de umbral predefinido. En este caso, el valor de umbral predefinido puede expresarse por un valor maximo o un valor mfnimo.
Por ejemplo, un bloque de transformacion o un bloque de codificacion de 4x4 u 8x8 codificado en moda intra puede usar un escaneado vertical, una direccion vertical o un escaneado diagonal dependiendo de un modo de prediccion intra. Especfficamente, el escaneado vertical se usa cuando el modo de prediccion intra es una direccion horizontal. El escaneado horizontal se usa cuando el modo de prediccion intra es una direccion vertical, y el escaneado diagonal se usa cuando el modo de prediccion intra es otro distinto de la direccion horizontal y la vertical. Por otro lado, el escaneado diagonal puede usarse para un bloque de transformacion o un bloque de codificacion codificado en modo inter o para un bloque de transformacion o un bloque de codificacion codificado en un modo intra pero que tiene un tamano igual a o mayor que 16x16.
Alternativamente, puede fijarse de modo diferente al menos uno de entre el numero o tipos de candidatos al orden de escaneado disponibles para el bloque actual basandose en al menos uno de entre un tamano, una forma, un modo de codificacion, o un modo de prediccion intra del bloque actual. Esto es, de acuerdo con las condiciones anteriormente enumeradas, es posible impedir que el bloque actual use al menos uno de entre el escaneado diagonal, el escaneado horizontal y el escaneado vertical.
Por ejemplo, si el bloque actual tiene una forma no cuadrada, el orden de escaneado disponible para el bloque actual puede determinarse de acuerdo con una relacion entre un ancho y una altura. Por ejemplo, si el bloque actual es un bloque de codificacion o un bloque de transformacion que tiene una forma cuya altura es mayor que un ancho (por ejemplo, Nx2N o Nx4N), puede seleccionarse al menos uno de entre el escaneado diagonal o el escaneado horizontal. Por otro lado, si el bloque actual es un bloque de codificacion o un bloque de transformacion que tiene una forma cuyo ancho es mayor que una altura (por ejemplo, 2NxN o 4NxN), puede seleccionarse al menos uno de entre el escaneado diagonal y el escaneado vertical.
El bloque actual puede dividirse en sub-bloques predeterminados, y puede realizarse el escaneado del coeficiente de transformacion en una unidad de un sub-bloque. Por ejemplo, el escaneado del coeficiente de transformacion puede realizarse sobre una unidad de bloque base del coeficiente de transformacion que incluye un numero predeterminado de pfxeles.
Incluso si el bloque actual tiene una forma no cuadrada, el bloque actual puede dividirse en sub-bloques y puede realizarse el escaneado basandose en los sub-bloques. En este punto, el tamano del sub-bloque puede tener un valor fijo y puede tener un valor variable basandose en al menos uno de entre el tamano o la forma del bloque actual (por ejemplo, un bloque de codificacion o un bloque de transformacion).
Por ejemplo, como se ha descrito anteriormente con referencia al bloque base del coeficiente de transformacion, el sub-bloque puede incluir un numero fijo de pfxeles (por ejemplo, 16). El tamano del sub-bloque puede determinarse a 4x4, 2x8, 8x2 o similares de acuerdo con la forma del bloque de codificacion o del bloque de transformacion.
Un tipo de particion del sub-bloque puede ser el mismo que el bloque de codificacion o el bloque de transformacion. Alternativamente, el tipo de particion del sub-bloque puede determinarse independientemente del tipo de particion del bloque de codificacion. El sub-bloque puede tener una forma cuadrada o una forma no cuadrada dependiendo del tipo de particion.
El orden de escaneado de cada sub-bloque puede determinarse de acuerdo con el orden de escaneado del bloque actual. Por ejemplo, la FIG. 12 ilustra un orden de escaneado entre sub-bloques de acuerdo con un orden de escaneado de un bloque actual.
En el ejemplo mostrado en la FIG. 12, cuando el orden de escaneado del bloque actual es un escaneado diagonal, al menos uno de entre el orden de escaneado entre sub-bloques o el orden de escaneado dentro del sub-bloque puede seguir el escaneado diagonal. Por otro lado, si el orden de escaneado del bloque actual es un escaneado horizontal, al menos uno de entre el orden de escaneado entre sub-bloques o el orden de escaneado de los coeficientes de transformacion en un sub-bloque puede seguir el escaneado horizontal. Alternativamente, cuando el orden de escaneado del bloque actual es un escaneado vertical, al menos uno de entre el orden de escaneado entre subbloques o el orden de escaneado dentro de un sub-bloque puede seguir el escaneado vertical.
Alternativamente, el orden de escaneado de cada sub-bloque puede fijarse adaptativamente de acuerdo con una forma o un tamano del bloque de codificacion o del bloque actual. Esto es, el orden de escaneado de los bloques base del coeficiente de transformacion puede fijarse de modo diferente dependiendo del tamano o de la forma del bloque actual.
La FIG. 13 es un diagrama que muestra un orden de escaneado de un bloque base del coeficiente de transformacion de acuerdo con una forma de un bloque actual. En la FIG. 13, los numeros marcados en cada sub-bloque indican el orden para el escaneado.
Si el bloque actual es un bloque de codificacion o un bloque de transformacion cuya altura es mayor que un ancho, puede usarse un escaneado diagonal para escanear secuencialmente los bloques base del coeficiente de transformacion como en el ejemplo mostrado en la FIG. 13.
Por otro lado, si el bloque actual es un bloque de codificacion o un bloque de transformacion que tiene una forma cuyo ancho es mayor que una altura, puede usarse un escaneado horizontal para escanear secuencialmente bloques base del coeficiente de transformacion como en el ejemplo mostrado en la FIG. 13.
Esto es, de acuerdo con la forma del bloque actual, el orden de escaneado de los bloques base del coeficiente de transformacion puede fijarse para que sea diferente.
La relacion entre la forma del bloque actual y el orden de escaneado de los bloques base del coeficiente de transformacion, que se define en la FIG. 13, es meramente una realizacion de la presente invencion y la presente invencion no esta limitada a la misma. Por ejemplo, cuando el bloque actual es un bloque de codificacion o un bloque de transformacion cuya altura es mayor que el ancho definido en la FIG. 13, es posible tambien escanear secuencialmente los bloques base del coeficiente de transformacion usando un escaneado vertical.
De acuerdo con una realizacion de la presente invencion, el escaneado puede realizarse en una unidad de un grupo de bloques (o en una unidad de un bloque) o un orden de escaneado puede determinarse en una unidad del grupo de bloques. En este caso, el grupo de bloques puede representar una unidad de bloque en la que se realiza el escaneado, o puede representar un grupo de bloques de transformacion que comparten el mismo tipo de escaneado. El grupo de bloques puede incluir al menos un bloque de transformacion. Alternativamente, una pluralidad de bloques de transformacion no cuadrados que constituyen un bloque cuadrado puede definirse como el grupo de bloques.
Por ejemplo, cuando se determina un tamano o un intervalo del grupo de bloques, el grupo de bloques puede dividirse en unidades de escaneado para escanear el grupo de bloques. En este caso, una unidad de escaneado puede tener el mismo tamano o la misma forma que un bloque de transformacion incluido en el grupo de bloques. Alternativamente, al menos uno de entre el tamano o la forma de la unidad de escaneado puede ser diferente del bloque de transformacion incluido en el grupo de bloques. Por ejemplo, una unidad de escaneado se limita a una forma cuadrada, mientras que el grupo de bloques puede incluir un bloque de transformacion no cuadrado.
Por ejemplo, si se determina el tamano o el intervalo del grupo de bloques, puede determinarse el orden de escaneado para el grupo de bloques y puede aplicarse el orden de escaneado determinado a todos los bloques de transformacion en el grupo de bloques.
El grupo de bloques puede tener una forma cuadrada o una forma no cuadrada. Tambien, el grupo de bloques puede incluir al menos un bloque de transformacion no cuadrado o al menos un bloque de transformacion cuadrado.
Un tamano del grupo de bloques puede tener un valor fijo o un valor variablemente determinado. Por ejemplo, el tamano del grupo de bloques puede ser de tamano fijo, tal como 64x64, 32x32, o 16x16, o puede determinarse basandose en informacion acerca del tamano del grupo de bloques transmitida a traves del flujo de bits.
Si se obtiene el coeficiente residual del bloque actual, puede realizarse una cuantificacion inversa sobre el coeficiente residual del bloque actual S850.
Es posible determinar si saltarse una transformacion inversa del coeficiente residual descuantificado del bloque actual S860. Especfficamente, el decodificador puede determinar si saltarse la transformacion inversa sobre al menos una de entre una direccion horizontal o una direccion vertical del bloque actual. Cuando se determina aplicar la transformacion inversa sobre al menos una de entre la direccion horizontal o la direccion vertical del bloque actual, puede obtenerse una muestra residual del bloque actual mediante transformacion inversa del coeficiente residual descuantificado del bloque actual S870. En este caso, la transformacion inversa puede realizarse usando al menos uno de entre DCT, DST y KLT.
Cuando la transformacion inversa se salta tanto en la direccion horizontal como en la direccion vertical del bloque actual, no se realiza la transformacion inversa en la direccion horizontal y en la direccion vertical del bloque actual. En este caso, la muestra residual del bloque actual puede obtenerse mediante escalado del coeficiente residual descuantificado con un valor predeterminado S880.
Saltarse la transformacion inversa sobre la direccion horizontal significa que la transformacion inversa no se realiza sobre la direccion horizontal pero la transformacion inversa se realiza sobre la direccion vertical. En este punto, el escalado puede realizarse en la direccion horizontal.
Saltarse la transformacion inversa sobre la direccion vertical significa que la transformacion inversa no se realiza sobre la direccion vertical pero la transformacion inversa se realiza sobre la direccion horizontal. En este punto, el escalado puede realizarse en la direccion vertical.
Puede determinarse si puede usarse o no una tecnica de saltarse una transformacion inversa para el bloque actual dependiendo de un tipo de particion del bloque actual. Por ejemplo, si se genera el bloque actual a traves de un particionado basado en arbol binario, el esquema de salto de la transformacion inversa puede restringirse para el bloque actual. En consecuencia, cuando se genera el bloque actual a traves del particionado basado en arbol binario, puede obtenerse una muestra residual del bloque actual mediante transformacion inversa del bloque actual. Ademas, cuando se genera el bloque actual a traves de particionado basado en arbol binario, puede omitirse la informacion de codificacion/decodificacion que indica si se salta o no la transformacion inversa (por ejemplo, transform_skip_flag).
Alternativamente, cuando se genera al bloque actual a traves de un particionado basado en arbol binario, es posible limitar el esquema de salto de la transformacion inversa a al menos una de entre la direccion horizontal o la direccion vertical. En este caso, la direccion en la que se limita el esquema de salto de la transformacion inversa puede determinarse basandose en informacion decodificada del flujo de bits, o puede determinarse adaptativamente basandose en al menos uno de entre un tamano del bloque actual, una forma del bloque actual, o un modo de prediccion intra del bloque actual.
Por ejemplo, cuando el bloque actual es un bloque no cuadrado que tiene un ancho mayor que una altura, el esquema de salto de la transformacion inversa puede permitirse solamente en la direccion vertical y restringirse en la direccion horizontal. Esto es, cuando el bloque actual es 2NxN, la transformacion inversa se realiza en la direccion horizontal del bloque actual, y la transformacion inversa puede realizarse selectivamente en la direccion vertical.
Por otro lado, cuando el bloque actual es un bloque no cuadrado que tiene una altura mayor que un ancho, el esquema de salto de la transformacion inversa puede permitirse solamente en la direccion horizontal y restringirse en la direccion vertical. Esto es, cuando el bloque actual es Nx2N, la transformacion inversa se realiza en la direccion vertical del bloque actual, y la transformacion inversa puede realizarse selectivamente en la direccion horizontal.
A diferencia del ejemplo anterior, cuando el bloque actual es un bloque no cuadrado que tiene un ancho mayor que una altura, el esquema de salto de la transformacion inversa puede permitirse solamente en la direccion horizontal, y cuando el bloque actual es un bloque no cuadrado que tiene una altura mayor que un ancho, el esquema de salto de la transformacion inversa puede permitirse solamente en la direccion vertical.
La informacion que indica si saltarse o no la transformacion inversa con respecto a la direccion horizontal o la informacion que indica si saltarse la transformacion inversa con respecto a la direccion vertical puede senalizarse a traves de un flujo de bits. Por ejemplo, la informacion que indica si saltarse o no una transformacion inversa en la direccion horizontal es un marcador de 1 bit, “hor_transform_skip_flag”, y la informacion que indica si saltarse una transformacion inversa en la direccion vertical es un marcador de 1 bit, “ver_transform_skip_flag”. El codificador puede codificar al menos una de entre “hor_transform_skip_flag” o “ver_transform_skip_flag” de acuerdo con la forma del bloque actual. Ademas, el decodificador puede determinar si se salta o no la transformacion inversa en la direccion horizontal o en la direccion vertical mediante el uso de al menos uno de entre “hor_transform_skip_flag” o “ver_transform_skip_flag”.
Puede establecerse saltarse la transformacion inversa para una direccion cualquiera del bloque actual dependiendo del tipo de particion del bloque actual. Por ejemplo, si el bloque actual se genera a traves de un particionado basado en arbol binario, puede saltarse la transformacion inversa en la direccion horizontal o en la direccion vertical. Esto es, si el bloque actual se genera mediante particionado basado en arbol binario, puede determinarse que la transformacion inversa para el bloque actual se salta sobre al menos una de entre una direccion horizontal o una direccion vertical sin informacion de codificacion/decodificacion (por ejemplo, transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) que indica si se salta o no la transformacion inversa del bloque actual.
Aunque las realizaciones descritas anteriormente se han descrito sobre la base de una serie de etapas o diagramas de flujo, estas no limitan el orden en el tiempo de la serie de la invencion, y pueden realizarse simultaneamente o en diferentes ordenes segun sea necesario. Ademas, cada uno de los componentes (por ejemplo, unidades, modulos, etc.) que constituyen el diagrama de bloques en las realizaciones descritas anteriormente puede implementarse mediante un dispositivo de hardware o software, y una pluralidad de componentes. O pueden combinarse una pluralidad de componentes e implementarse mediante un unico dispositivo de hardware o software. Las realizaciones anteriormente descritas pueden implementarse en la forma de instrucciones de programa que pueden ejecutarse a traves de varios componentes de ordenador y grabarse en un medio de grabacion legible por ordenador. El medio de grabacion legible por ordenador puede incluir uno o una combinacion de comandos de programa, archivos de datos, estructuras de datos y similares. Ejemplos de medios legibles por ordenador incluyen medios magneticos tales como discos duros, discos flexibles y cinta magnetica, medios de grabacion optica tales como CD-ROM y DVD, medios magneto-opticos tales como discos opticos flexibles, medios y dispositivos de hardware especfficamente configurados para almacenar y ejecutar instrucciones de programa tales como ROM, RAM, memoria Flash y similares. El dispositivo de hardware puede configurarse para funcionar como uno o mas modulos de software para la realizacion del proceso de acuerdo con la presente invencion, y viceversa.
Aplicabilidad industrial
La presente invencion puede aplicarse a dispositivos electronicos que tengan la capacidad de codificar/decodificar un video.

Claims (15)

REIVINDICACIONES
1. Un metodo para decodificar un video, comprendiendo el metodo:
decodificar informacion que indica si existe un coeficiente de transformacion no-cero en un bloque actual;
cuando la informacion indica que existe el coeficiente de transformacion no-cero en el bloque actual, determinar un orden de escaneado del bloque actual; y
decodificar un coeficiente de transformacion incluido en el bloque actual de acuerdo con el orden de escaneado determ inado.
2. El metodo segun la reivindicacion 1, en el que la informacion se senaliza en una unidad de un sub-bloque dentro del bloque actual.
3. El metodo segun la reivindicacion 2, en el que se determina adaptativamente un tamano o una forma del sub-bloque de acuerdo con un tamano o una forma del bloque actual.
4. El metodo segun la reivindicacion 1, en el que la informacion se senaliza en una unidad predeterminada y la unidad predeterminada se determina basandose en un numero de muestras.
5. El metodo segun la reivindicacion 4, en el que si el bloque actual comprende mas muestras que el numero de muestras correspondiente a la unidad predeterminada, el bloque actual se divide en una pluralidad de regiones de acuerdo con la unidad predeterminada y la informacion se senaliza para cada una de la pluralidad de regiones.
6. El metodo segun la reivindicacion 1, en el que se determina uno de una pluralidad de candidatos al orden de escaneado como el orden de escaneado del bloque actual, y
en el que un tipo o un numero de la pluralidad de candidatos al orden de escaneado es diferente de acuerdo con un tamano o una forma del bloque actual.
7. El metodo segun la reivindicacion 1, en el que el orden de escaneado del bloque actual se determina para que sea el mismo que el orden de escaneado de un bloque superior que incluye el bloque actual y una pluralidad de bloques incluidos en el bloque superior tiene un mismo orden de escaneado.
8. Un metodo para codificar un video, comprendiendo el metodo:
codificar informacion que indica si existe un coeficiente de transformacion no-cero en un bloque actual de acuerdo con si existe el coeficiente de transformacion no-cero en el bloque actual;
cuando existe el coeficiente de transformacion no-cero en el bloque actual, determinar un orden de escaneado del bloque actual; y
disponer un coeficiente de transformacion incluido en el bloque actual de acuerdo con el orden de escaneado determinado.
9. El metodo segun la reivindicacion 8, en el que la informacion se codifica en una unidad de un sub-bloque dentro del bloque actual.
10. El metodo segun la reivindicacion 8, en el que se determina adaptativamente un tamano o una forma del sub-bloque de acuerdo con un tamano o una forma del bloque actual.
11. El metodo segun la reivindicacion 8, en el que la informacion se senaliza en una unidad predeterminada y la unidad predeterminada se determina basandose en un numero de muestras.
12. El metodo segun la reivindicacion 11, en el que si el bloque actual comprende mas muestras que el numero de muestras correspondiente a la unidad predeterminada, el bloque actual se divide en una pluralidad de regiones de acuerdo con la unidad predeterminada y la informacion se senaliza para cada una de la pluralidad de regiones.
13. El metodo segun la reivindicacion 8, en el que se determina uno de una pluralidad de candidatos al orden de escaneado como el orden de escaneado del bloque actual, y
en el que un tipo o un numero de la pluralidad de candidatos al orden de escaneado es diferente de acuerdo con un tamano o una forma del bloque actual.
14. El metodo segun la reivindicacion 8, en el que el orden de escaneado del bloque actual se determina para que sea el mismo que el orden de escaneado de un bloque superior que incluye el bloque actual y una pluralidad de bloques incluidos en el bloque superior tiene un mismo orden de escaneado.
15. Un aparato para decodificar un video, comprendiendo el aparato:
una unidad de decodificacion entropica para decodificar informacion que indica si existe un coeficiente de transformacion no-cero en un bloque actual, para determinar un orden de escaneado del bloque actual cuando la informacion indica que existe el coeficiente de transformacion no-cero en el bloque actual y para decodificar un coeficiente de transformacion incluido en el bloque actual de acuerdo con el orden de escaneado determinado.
ES201990016A 2016-08-31 2017-08-31 Metodo y aparato para procesamiento de una senal de video Pending ES2711209R1 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20160112005 2016-08-31
KR20160112006 2016-08-31
KR20160112126 2016-08-31
PCT/KR2017/009524 WO2018044087A1 (ko) 2016-08-31 2017-08-31 비디오 신호 처리 방법 및 장치

Publications (3)

Publication Number Publication Date
ES2711209A2 true ES2711209A2 (es) 2019-04-30
ES2711209A8 ES2711209A8 (es) 2020-07-01
ES2711209R1 ES2711209R1 (es) 2020-07-07

Family

ID=61301052

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201990016A Pending ES2711209R1 (es) 2016-08-31 2017-08-31 Metodo y aparato para procesamiento de una senal de video

Country Status (6)

Country Link
US (3) US11159812B2 (es)
EP (2) EP4236321A3 (es)
KR (1) KR102424418B1 (es)
CN (5) CN117412035A (es)
ES (1) ES2711209R1 (es)
WO (1) WO2018044087A1 (es)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3484159A4 (en) * 2016-07-05 2019-12-04 KT Corporation METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
CN117412035A (zh) * 2016-08-31 2024-01-16 株式会社Kt 用于处理视频信号的方法和设备
KR102471208B1 (ko) * 2016-09-20 2022-11-25 주식회사 케이티 비디오 신호 처리 방법 및 장치
BR122021018343B1 (pt) * 2017-04-13 2022-10-25 Lg Electronics Inc Método para reconstruir uma imagem incluindo um bloco não quadrado, método para codificar uma imagem e mídia de armazenamento digital legível por computador
KR20190088020A (ko) * 2018-01-17 2019-07-25 인텔렉추얼디스커버리 주식회사 다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치
US11516462B2 (en) * 2018-03-27 2022-11-29 Kt Corporation Method and apparatus for processing video signal
JP7219775B2 (ja) * 2018-03-29 2023-02-08 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. 変換係数ブロック・コーディング
JP2022016726A (ja) * 2018-11-16 2022-01-25 ソニーグループ株式会社 画像処理装置および方法
WO2020169103A1 (en) 2019-02-24 2020-08-27 Beijing Bytedance Network Technology Co., Ltd. Independent coding of palette mode usage indication
US11032543B2 (en) * 2019-03-22 2021-06-08 Tencent America LLC Method and apparatus for video coding
EP3987806A4 (en) 2019-07-20 2022-08-31 Beijing Bytedance Network Technology Co., Ltd. CONDITIONAL CODING OF PALETTE MODE USE INDICATION
CN114145013B (zh) 2019-07-23 2023-11-14 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
CN114208188A (zh) 2019-07-29 2022-03-18 北京字节跳动网络技术有限公司 调色板模式编解码的扫描顺序改进
CN114365492B (zh) * 2019-08-24 2023-12-15 北京字节跳动网络技术有限公司 残差系数编解码
JP7319468B2 (ja) * 2019-11-21 2023-08-01 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド ビデオ復号化方法、電子装置、非一時的コンピュータ可読記憶媒体、及びプログラム
CN114513663A (zh) * 2020-11-17 2022-05-17 腾讯科技(深圳)有限公司 视频解码方法、装置及电子设备

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266247B2 (en) * 2002-09-30 2007-09-04 Samsung Electronics Co., Ltd. Image coding method and apparatus using spatial predictive coding of chrominance and image decoding method and apparatus
US9635368B2 (en) * 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
KR101479129B1 (ko) 2009-10-01 2015-01-06 에스케이텔레콤 주식회사 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
HUE033566T2 (hu) 2009-10-01 2017-12-28 Sk Telecom Co Ltd Berendezés kép dekódolására hasított réteg felhasználásával
HUE047479T2 (hu) 2009-10-01 2020-04-28 Sk Telecom Co Ltd Eljárás és készülék képek változtatható méretû makroblokkok használatával történõ kódolására/dekódolására
CN104661026B (zh) 2009-10-21 2018-03-27 Sk电信有限公司 图像编码和解码装置和方法
MY162148A (en) 2010-04-23 2017-05-24 M&K Holdings Inc Apparatus for encoding an image
KR101341993B1 (ko) * 2010-10-06 2013-12-16 에스케이텔레콤 주식회사 고정밀 필터를 이용한 영상 부호화/복호화 방법 및 장치
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US20120163472A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Efficiently coding scanning order information for a video block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US9049444B2 (en) * 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US11102494B2 (en) * 2011-03-03 2021-08-24 Electronics And Telecommunication Research Institute Method for scanning transform coefficient and device therefor
WO2012118358A2 (ko) 2011-03-03 2012-09-07 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
CN103828376B (zh) 2011-06-29 2018-04-03 谷歌技术控股有限责任公司 用于在帧内编译期间使用扫描编译图案的方法和系统
US9826238B2 (en) 2011-06-30 2017-11-21 Qualcomm Incorporated Signaling syntax elements for transform coefficients for sub-sets of a leaf-level coding unit
WO2013023518A1 (en) 2011-08-17 2013-02-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction using non-square blocks
US9787982B2 (en) * 2011-09-12 2017-10-10 Qualcomm Incorporated Non-square transform units and prediction units in video coding
WO2013058542A1 (ko) 2011-10-17 2013-04-25 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
RU2719375C2 (ru) 2011-10-18 2020-04-17 Кт Корпорейшен Способ декодирования видеосигнала
GB2554311B (en) * 2011-10-19 2018-12-26 Kt Corp Decoding image based on transform skip modes for luma and chroma components
HUE050655T2 (hu) 2011-10-24 2020-12-28 Innotive Ltd Képdekódolási eljárás
KR102005468B1 (ko) 2011-10-24 2019-10-01 (주)대가람 복원 블록을 생성하는 방법 및 장치
US9253481B2 (en) 2012-01-13 2016-02-02 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
WO2013107027A1 (en) * 2012-01-19 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of cbf coding in hevc
US9621921B2 (en) 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
KR20150048804A (ko) * 2012-11-08 2015-05-07 캐논 가부시끼가이샤 코딩 유닛의 변환 유닛들을 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템
CN107113425A (zh) * 2014-11-06 2017-08-29 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
KR20170128389A (ko) * 2015-03-13 2017-11-22 엘지전자 주식회사 비디오 신호의 처리 방법 및 이를 위한 장치
JP2018530211A (ja) * 2015-09-08 2018-10-11 サムスン エレクトロニクス カンパニー リミテッド エントロピー符号化及び復号化のための装置及び方法
WO2017057953A1 (ko) * 2015-09-30 2017-04-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
CN113810700B (zh) * 2016-04-29 2024-07-02 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
CN117412043A (zh) * 2016-07-13 2024-01-16 韩国电子通信研究院 图像编码/解码方法和装置
CN117412035A (zh) * 2016-08-31 2024-01-16 株式会社Kt 用于处理视频信号的方法和设备

Also Published As

Publication number Publication date
CN117412035A (zh) 2024-01-16
CN109661819B (zh) 2023-11-07
US11700389B2 (en) 2023-07-11
EP4236321A3 (en) 2023-09-13
US12096018B2 (en) 2024-09-17
EP3509301A4 (en) 2020-04-22
EP3509301C0 (en) 2023-08-09
US20220014770A1 (en) 2022-01-13
EP4236321A2 (en) 2023-08-30
WO2018044087A1 (ko) 2018-03-08
US20190215524A1 (en) 2019-07-11
CN117425005A (zh) 2024-01-19
CN109661819A (zh) 2019-04-19
ES2711209A8 (es) 2020-07-01
CN117412037A (zh) 2024-01-16
EP3509301A1 (en) 2019-07-10
US20230291923A1 (en) 2023-09-14
ES2711209R1 (es) 2020-07-07
CN117412036A (zh) 2024-01-16
EP3509301B1 (en) 2023-08-09
US11159812B2 (en) 2021-10-26
KR20180025283A (ko) 2018-03-08
KR102424418B1 (ko) 2022-07-22

Similar Documents

Publication Publication Date Title
ES2917099B1 (es) Método y aparato para procesar señales de video
ES2711209A2 (es) Metodo y aparato para procesamiento de una senal de video
KR102559421B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
ES2737874B2 (es) Metodo y aparato para procesar senal de video
ES2817100B1 (es) Metodo y aparato para procesar senales de video
ES2844525B1 (es) Metodo para decodificar un video
ES2786077B2 (es) Metodo y aparato para procesar una senal de video
ES2711474A2 (es) Metodo y aparato para procesar una senal de video
ES2737845B2 (es) Metodo y aparato para procesar senal de video
ES2967280T3 (es) Método para partición de bloque y dispositivo de decodificación
ES2703458A2 (es) Metodo y aparato para procesar senales de video
ES2711230A2 (es) Metodo y aparato para procesar una senal de video

Legal Events

Date Code Title Description
BA2A Patent application published

Ref document number: 2711209

Country of ref document: ES

Kind code of ref document: A2

Effective date: 20190430

EC2A Search report published

Ref document number: 2711209

Country of ref document: ES

Kind code of ref document: R1

Effective date: 20200630

FC2A Grant refused

Effective date: 20230505