ES2640666T3 - Dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado - Google Patents

Dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado Download PDF

Info

Publication number
ES2640666T3
ES2640666T3 ES15173607.1T ES15173607T ES2640666T3 ES 2640666 T3 ES2640666 T3 ES 2640666T3 ES 15173607 T ES15173607 T ES 15173607T ES 2640666 T3 ES2640666 T3 ES 2640666T3
Authority
ES
Spain
Prior art keywords
unit
interpolation
coding
filter
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.)
Active
Application number
ES15173607.1T
Other languages
English (en)
Inventor
Alexander Alshin
Elena Alshina
Jianle Chen
Nikolay Shlyakhov
Yoon-Mi Hong
Woo-Jin Han
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of ES2640666T3 publication Critical patent/ES2640666T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • G06F17/175Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
    • 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/182Methods 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 pixel
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)

Abstract

Un aparato de compensación de movimiento, comprendiendo el aparato: una unidad de filtrado de interpolación de luma que está configurada para determinar, en una imagen de referencia de luma, un bloque de referencia de luma para la predicción de un bloque actual, mediante el uso de un vector de movimiento de luma del bloque actual, y generar una muestra de luma de una ubicación de 1/2 píxel, una ubicación de 1/4 de píxel y una ubicación de 3/4 de píxel en el bloque de referencia de luma mediante la aplicación de un filtro de interpolación de 8 tomas a unas muestras de luma de una ubicación de píxel de valor entero de la imagen de referencia de luma; y una unidad de filtrado de interpolación de croma que está configurada para determinar, en una imagen de referencia de croma, un bloque de referencia de croma para la predicción del bloque actual, mediante el uso de un vector de movimiento de croma del bloque actual, y generar una muestra de croma de una ubicación de 1/2 píxel en el bloque de referencia de croma mediante la aplicación de un filtro de interpolación a unas muestras de croma de una ubicación de píxel de valor entero de la imagen de referencia de croma, en el que el filtro de interpolación de 8 tomas comprende ocho coeficientes de filtro para generar la muestra de luma de la ubicación de 2/4 de píxel, que son { -1, 4, -11, 40, 40, -11, 4, -1 }, en el que el vector de movimiento de luma indica una ubicación de sub-píxel de una unidad de 1/4 de píxel en la imagen de referencia de luma, en el que los coeficientes de filtro del filtro de interpolación de 8 tomas para generar la muestra de luma de la ubicación de 1/4 de píxel son los mismos, pero dispuestos en orden inverso, que los coeficientes de filtro del filtro de interpolación de 8 tomas para generar la muestra de luma de la ubicación de 3/4 de píxel.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Dispositivo de interpolacion de imagenes mediante el uso de un filtro de interpolacion de alisado Campo tecnico
La presente invencion se refiere a un aparato de compensacion de movimiento.
Antecedentes de la tecnica
En los procedimientos de codificacion y de descodificacion de imagen tfpicos, con el fin de codificar una imagen, una imagen se divide en macro bloques. Despues de eso, se realiza una codificacion por prediccion sobre cada macro bloque mediante el uso de inter prediccion o intra prediccion.
La inter prediccion se refiere a un procedimiento para comprimir una imagen mediante la eliminacion de redundancia temporal entre imagenes y su ejemplo representativo es la codificacion de estimacion de movimiento. En la codificacion de estimacion de movimiento, cada bloque de una imagen actual se predice mediante el uso de al menos una imagen de referencia. Un bloque de referencia que es muy similar a un bloque actual se halla dentro de un intervalo de busqueda previamente determinado mediante el uso de una funcion de evaluacion previamente determinada.
Se predice un bloque actual sobre la base de un bloque de referencia, y se codifica un bloque residual que se obtiene al restar del bloque actual un bloque de prediccion generado como un resultado de prediccion. En este caso, con el fin de realizar de forma mas precisa la prediccion, se realiza una interpolacion en un intervalo de busqueda de la imagen de referencia, se generan pfxeles de unidad de sub-pel mas pequenos que los pfxeles de unidad de pel de valor entero, y se realiza una inter prediccion sobre los pfxeles de unidad de sub-pel generados.
MCCANN (ZETACAST / SAMSUNG) K ET AL: “ Video coding technology proposal by Samsung (and BBC)’’, 1. JVC- VC MEETING; 15-4-2010 - 23-4-2010; DRESDE; (JOINTCOLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16); URL:
HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, n.° JCTVC- A124, 1 de junio de 2010 (01 -06-2010), XP030007573, ISSN: 0000-0049 describe una compensacion de movimiento usando filtrado de interpolacion en la seccion [2.3.4 DCT-based interpolation filter (DIF)].
Divulgacion de la invencion
Problema tecnico
La presente invencion proporciona un aparato de compensacion de movimiento usando un filtro de interpolacion con el fin de generar un pixel de unidad de sub-pel mediante la interpolacion de pfxeles de unidad de pel de valor entero.
Solucion tecnica
De acuerdo con un aspecto de la presente invencion, se proporciona un aparato de acuerdo con las reivindicaciones en el presente documento.
Efectos ventajosos
Cuando se codifica y descodifica un video, debido a que se genera una imagen de alta calidad mediante la interpolacion de una trama de referencia y se realizan una estimacion y una compensacion de movimiento sobre la base de la imagen de alta calidad, se puede aumentar la precision de la inter prediccion. Asimismo, debido a que se usa un filtro de interpolacion de alisado para reducir los componentes de alta frecuencia en un resultado de interpolacion y, por lo tanto, se obtiene un resultado de interpolacion mas uniforme, se pueden eliminar componentes de alta frecuencia y se pueden mejorar la eficiencia de la codificacion de imagen y de la descodificacion de imagen.
Breve descripcion de los dibujos
La figura 1 es un diagrama de bloques de un aparato de interpolacion de imagen;
la figura 2 es un diagrama para describir una relacion entre una unidad de pel de valor entero y una unidad de
sub-pel;
la figura 3 es un diagrama que ilustra pfxeles de unidad de pel de valor entero adyacentes a los que se hara referencia con el fin de determinar un valor de pixel de unidad de sub-pel;
las figuras 4A a 4C son unos diagramas que ilustran ejemplos de pfxeles de unidad de pel de valor entero a los
que se hara referencia para determinar un valor de pixel de unidad de sub-pel;
la figura 5 es una grafica de un parametro de alisado de un filtro de interpolacion de alisado;
la figura 6 es una grafica de una funcion de curva que se puede usar por un filtro de interpolacion de alisado;
la figura 7 es un diagrama de flujo de un procedimiento de interpolacion de imagen;
las figuras 8A a 8C son unas tablas que muestran unos coeficientes de filtro de 12 tomas determinados sobre la base de un parametro de alisado y una ubicacion de interpolacion;
las figuras 9A a 9C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolacion de 6
5
10
15
20
25
30
35
40
45
50
55
60
tomas determinados sobre la base de un parametro de alisado y una ubicacion de interpolacion; la figura 10 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolacion de 6 tomas determinados para pfxeles de croma sobre la base de un parametro de alisado y una ubicacion de interpolacion; la figura 11 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolacion de alisado determinados de forma diferente sobre la base de una componente de color y una ubicacion de interpolacion de imagen;
las figuras 12A a 12C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolacion de alisado sobre la base de una ubicacion de interpolacion de imagen y un factor de puesta a escala, incluyen aquellos de acuerdo con realizaciones de la presente invencion;
la figura 13A es un diagrama de bloques de un aparato de codificacion de video que usa un filtro de interpolacion de alisado;
la figura 13B es un diagrama de bloques de un aparato de descodificacion de video que usa un filtro de interpolacion de alisado;
la figura 14A es un diagrama de flujo de un procedimiento de codificacion de imagen que usa un filtro de interpolacion de alisado.
La figura 14B es un diagrama de flujo de un procedimiento de descodificacion de imagen que usa un filtro de interpolacion de alisado.
La figura 15 es un diagrama para describir un concepto de unas unidades de codificacion;
la figura 16 es un diagrama de bloques de un codificador de imagen sobre la base de unas unidades de
codificacion;
la figura 17 es un diagrama de bloques de un descodificador de imagen sobre la base de unas unidades de codificacion;
la figura 18 es un diagrama que ilustra unas unidades de codificacion mas profunda de acuerdo con unas profundidades, y unas divisiones;
la figura 19 es un diagrama para describir una relacion entre una unidad de codificacion y unas unidades de transformacion;
La figura 20 es un diagrama para describir una informacion de codificacion de unas unidades de codificacion que se corresponden con una profundidad codificada;
la figura 21 es un diagrama de unidades de codificacion mas profunda de acuerdo con unas profundidades; las figuras 22 a 24 son unos diagramas para describir una relacion entre unas unidades de codificacion, unas unidades de prediccion y unas unidades de transformacion;
la figura 25 es un diagrama para describir una relacion entre una unidad de codificacion, una unidad de prediccion y una unidad de transformacion, de acuerdo con una informacion de modo de codificacion de la Tabla 1;
la figura 26 es un diagrama de flujo de un procedimiento de codificacion de video que usa un filtro de interpolacion sobre la base de unas unidades de codificacion que tienen una estructura de arbol; y la figura 27 es un diagrama de flujo de un procedimiento de descodificacion de video que usa un filtro de interpolacion de alisado sobre la base de unas unidades de codificacion que tienen una estructura de arbol.
Mejor modo para llevar a cabo la invencion
De acuerdo con un aspecto de la presente invencion, se proporciona un aparato de acuerdo con las reivindicaciones en el presente documento. Un ejemplo de un procedimiento de interpolacion de una imagen en consideracion de alisado, el procedimiento incluye seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion para generar al menos un valor de pixel de unidad de sub-pel ubicado entre pfxeles de unidad de pel de valor entero; y generar el al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de los pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado.
El filtro de interpolacion puede incluir unos coeficientes de filtro para transformar los pfxeles de unidad de pel de valor entero sobre la base de una pluralidad de funciones de base y transformar de forma inversa una pluralidad de coeficientes generados como un resultado de la transformacion.
El filtro de interpolacion puede incluir unos coeficientes de filtro que tienen la uniformidad determinada sobre la base de una distancia entre la ubicacion de interpolacion y los pfxeles de unidad de pel de valor entero. Los filtros de interpolacion pueden incluir unos coeficientes de filtro que tienen la uniformidad determinada sobre la base de una distancia entre la ubicacion de interpolacion y los pfxeles de unidad de pel de valor entero adyacentes a la ubicacion de interpolacion.
Con el fin de interpolar los pfxeles de unidad de pel de valor entero en un dominio espacial, el filtro de interpolacion puede incluir unos coeficientes de filtro que se obtienen mediante la combinacion de un filtro para realizar transformacion y una transformacion inversa usando la pluralidad de funciones de base, y una funcion de ventana, la funcion de ventana puede ser simetrica con respecto a la ubicacion de interpolacion.
Con el fin de interpolar los pfxeles de unidad de pel de valor entero en un dominio espacial, el filtro de interpolacion puede incluir unos coeficientes de filtro que se obtienen mediante la combinacion de un filtro para realizar transformacion y una transformacion inversa usando la pluralidad de funciones de base, y un parametro de alisado, y
5
10
15
20
25
30
35
40
45
50
55
el parametro de alisado puede controlar al menos uno de una velocidad de alisado y un intervalo de alisado.
El filtro de interpolacion puede incluir unos coeficientes de filtro sobre la base de una funcion de curva. El filtro de interpolacion puede incluir unos coeficientes de filtro para maximizar una respuesta de baja frecuencia del filtro de interpolacion sobre la base de una funcion polinomica.
La seleccion del filtro de interpolacion puede incluir seleccionar un filtro de interpolacion que incluye unos coeficientes de filtro puestos a escala a numeros enteros, de entre los filtros de interpolacion, y la generacion del al menos un valor de pixel de unidad de sub-pel puede incluir normalizar el al menos un valor de pixel de unidad de sub-pel generado mediante el uso del filtro de interpolacion seleccionado, sobre la base de un factor de puesta a escala.
La seleccion de filtro de interpolacion puede incluir seleccionar de forma diferente un filtro de interpolacion sobre la base de caractensticas de pixel de entre los filtros de interpolacion, y la generacion del al menos un valor de pixel de unidad de sub-pel puede incluir generar el al menos un valor de pixel de unidad de sub-pel mediante el uso del filtro de interpolacion seleccionado de forma diferente, sobre la base de las caractensticas de pixel.
En un ejemplo de un aparato para interpolar una imagen en consideracion de alisado, el aparato incluye un selector de filtro para seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre filtro de interpolacion para generar al menos un valor de pixel de unidad de sub-pel ubicado entre pfxeles de unidad de pel de valor entero; y un interpolador para generar el al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de los pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado.
En un ejemplo de un procedimiento de interpolacion de una imagen en consideracion de una componente de color, el procedimiento incluye seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y una componente de color de un pixel actual de entre los filtros de interpolacion para generar al menos un valor de pixel de unidad de filtro en pel ubicado entre pfxeles de unidad de pel de valor entero; y generar el al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de los pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado.
La seleccion de filtro de interpolacion puede incluir, con el fin de interpolar un pixel de croma, seleccionar un filtro de interpolacion que tiene un alisamiento mas fuerte que la de un filtro de interpolacion a un pixel de luma, de entre los filtros de interpolacion.
El filtro de interpolacion que tiene un alisamiento mas fuerte que la del filtro de interpolacion para un pixel de luma puede ser uno de un filtro que incluye unos coeficientes de filtro para alisar los pfxeles de unidad de pel de valor entero, transformar los pfxeles de unidad de pel de valor entero alisados mediante el uso de una pluralidad de funciones de base, y transformar de forma inversa una pluralidad de coeficientes generados como un resultado de la transformacion; un filtro que se obtiene mediante la combinacion de coeficientes de filtro para realizar transformacion y una transformacion inversa mediante el uso de la pluralidad de funciones de base, y coeficientes de funcion de ventana para realizar un filtrado de paso bajo; un filtro que incluye unos coeficientes de filtro para alisar muy fuertemente pfxeles de unidad de pel de valor entero de lfmite de sobre la base de una condicion de lfmite de una funcion de curva; y un filtro que incluye unos coeficientes de filtro para maximizar una respuesta de baja frecuencia de un filtro de interpolacion sobre la base de una funcion polinomica.
En un ejemplo de un aparato para interpolar una imagen en consideracion de una componente de color, el aparato incluye un selector de filtro para seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y una componente de color de un pixel actual de entre filtro de interpolacion para generar al menos un valor de pixel de unidad de sub-pel ubicado entre pfxeles de unidad de valor entero; y un interpolador para generar el al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de los pfxeles de unidad de valor entero mediante el uso del filtro de interpolacion seleccionado.
En un ejemplo de un codificador de video usando un filtro de interpolacion de imagen, el codificador de video incluye un codificador para seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion almacenados en el codificador de video, con respeto a cada bloque de una imagen de entrada, realizar una codificacion por prediccion para generar al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado y realizar transformacion y cuantificacion sobre un resultado de prediccion de la codificacion por prediccion; una unidad de salida para enviar una secuencia de bits generada para realizar una codificacion por entropfa sobre coeficientes de transformacion cuantificada en la informacion de codificacion, y un almacenamiento para almacenar unos coeficientes de filtro de los filtros de interpolacion.
En un ejemplo de un descodificador de video que usa un filtro de interpolacion de imagen, el descodificador de video incluye un receptor y extractor para recibir una secuencia de bits codificada de un video y extraer informacion de codificacion y datos codificados de una imagen de video mediante la realizacion de una descodificacion de entropfa y al analizar en la secuencia de bits; un descodificador para realizar una cuantificacion inversa y una transformacion
5
10
15
20
25
30
35
40
45
50
inversa sobre coeficientes de transformacion cuantificados de los datos codificados de un bloque actual de la imagen, seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion almacenados en el descodificador de video, realizar una descodificacion por prediccion para generar al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado, y reconstruir la imagen; y un almacenamiento para almacenar unos coeficientes de filtro de los filtros de interpolacion.
En algunas disposiciones, se proporciona un medio de registro legible por ordenador que tiene almacenado en el un programa informatico para ejecutar el procedimiento anterior.
Modo para la invencion
En la siguiente descripcion, una 'imagen' se puede referir de forma exhaustiva a una imagen en movimiento tal como un video, asf como una imagen fija.
La interpolacion de imagen que considera alisado, de acuerdo con un ejemplo, se describe con referencia a las figuras 1 a 12C. Asimismo, la codificacion y descodificacion de video que usa un filtro de interpolacion de alisado, de acuerdo con un ejemplo, se describen con referencia a las figuras 13A a 27. En concreto, la codificacion y descodificacion de video que usa un filtro de interpolacion de alisado sobre la base de unas unidades de codificacion que tienen una estructura de arbol, de acuerdo con un ejemplo, se describen con referencia a las figuras 15 a 27.
La interpolacion de imagen que considera alisado y un filtro de interpolacion alisado, se describiran a continuacion en detalle con referencia a las figuras 1 a 12C.
La figura 1 es un diagrama de bloques de un aparato de interpolacion de imagen 10 de acuerdo con un ejemplo.
El aparato de interpolacion de imagen 10 que considera alisado incluye un selector de filtro 12 y un interpolador 14. Las operaciones del selector de filtro 12 y el interpolar 14 del aparato de interpolacion de imagen 10 se pueden controlar de forma cooperativa mediante un procesador de codificacion de video, una unidad central de procesamiento (CPU, central processing unit) y un procesador de graficos.
El aparato de interpolacion de imagen 10 puede recibir una imagen de entrada y puede generar valores de pixel de unidad de sub-pel mediante la interpolacion de pfxeles de unidad de pel de valor entero. La imagen de entrada puede ser una secuencia de imagen, una imagen, una trama, o bloques de un video.
El selector de filtro 12 puede seleccionar de forma diferente un filtro de interpolacion para generar al menos un valor de pixel de unidad de sub-pel ubicado entre unas unidades de pel de valor entero, sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento.
El interpolador 14 puede interpolar pfxeles de unidad de pel de valor entero adyacentes a la ubicacion de interpolacion de unidad de sub-pel al alisar el filtro de interpolacion seleccionado por el selector de filtro 12, generando de ese modo valores de pixel de unidad de sub-pel. El filtrado de interpolacion de pfxeles de unidad dependen de valor entero para generar valores de pixel de unidad de sub-pel puede incluir un filtrado de interpolacion de valores de pixel de referencia de unidad de pel de valor entero incluyendo pfxeles de unidad de valor entero adyacentes a la ubicacion de interpolacion de unidad de sub-pel en una region soportada por el filtro de interpolacion.
Un filtro de interpolacion puede incluir unos coeficientes de filtro para transformar pfxeles de referencia de unidad de valor entero sobre la base de una pluralidad de funciones de base, y para transformar de forma inversa una pluralidad de coeficientes generados como un resultado de transformacion.
El filtro de interpolacion puede ser un filtro unidimensional o un filtro bidimensional. Si el filtro de interpolacion seleccionado es un filtro unidimensional, el interpolador 14 puede realizar de forma secuencial un filtrado mediante el uso de unos filtros de interpolacion unidimensionales en dos o mas direcciones, generando de ese modo un valor de pixel de unidad de sub-pel actual.
Un filtro de interpolacion de alisado puede tener un alisamiento determinado sobre la base de una distancia entre una ubicacion de interpolacion y pfxeles de unidad de pel de valor entero.
Un filtro de interpolacion puede incluir diferentes coeficientes de filtro sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento. En lo sucesivo, un filtro de interpolacion determinado en consideracion de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento se denomina como un filtro de interpolacion de alisado.
Un filtro de interpolacion de alisado puede tener un alisamiento determinado sobre la base de una distancia entre una ubicacion de interpolacion y pfxeles de unidad de pel de valor entero adyacentes a la ubicacion de interpolacion.
Asimismo, el filtro de interpolacion de alisado puede incluir unos coeficientes de filtro para pfxeles de referencia de
5
10
15
20
25
30
35
40
45
50
unidad de pel de valor entero mas fuertemente alisado lejos de la ubicacion de interpolacion.
Con el fin de interpolar pfxeles de unidad de pel de valor entero en un dominio espacial, el filtro de interpolacion de alisado se puede obtener mediante la combinacion de coeficientes de filtro para realizar transformacion y una transformacion inversa mediante el uso de una pluralidad de funciones de base, y coeficientes de funcion de ventana para realizar un filtrado de paso bajo.
Una funcion de ventana puede ser simetrica con respecto a una ubicacion de interpolacion. El filtro de interpolacion de alisado que se obtiene mediante la combinacion de coeficientes de filtro para realizar transformacion y una transformacion inversa y coeficiente de funcion de ventana para realizar un filtrado de paso bajo pueden incluir fuentes de filtro para proporcionar un gran peso a un pixel de referencia de unidad de pel de valor entero cerca de interpolacion y proporcionar un pequeno peso a un pixel de referencia de unidad de pel de valor entero lejos de la ubicacion de interpolacion.
El filtro de interpolacion de alisado puede incluir unos coeficientes de filtro para alisar pfxeles de referencia de unidad de pel de valor entero, transformar los pfxeles de referencia de unidad de pel de valor entero alisados mediante el uso de una pluralidad de sesiones de base, y transformar de forma inversa una pluralidad de coeficientes generados como un resultado de transformacion.
El filtro de interpolacion de alisado es un filtro de interpolacion en un dominio espacial, y puede incluir unos coeficientes de filtro que se obtienen mediante la combinacion de un filtro de interpolacion para realizar transformacion y una transformacion inversa, y un parametro de alisado. El parametro de alisado puede controlar al menos uno de una velocidad de alisado y un intervalo de alisado.
El filtro de interpolacion de alisado puede incluir unos coeficientes de filtro sobre la base de una funcion de curva. Es decir, una funcion de base de transformacion y una transformacion inversa para determinar unos coeficientes de filtro de interpolacion puede ser una funcion de curva. Con el fin de obtener un resultado de interpolacion mas liso, el filtro de interpolacion de alisado puede incluir unos coeficientes de filtro determinados mediante el uso de una funcion de curva.
De acuerdo con un ejemplo, un filtro de interpolacion de alisado sobre la base de una funcion de curva puede incluir unos coeficientes de filtro para alisar muy fuertemente pfxeles de referencia de unidad de pel de valor entero de lfmite sobre la base de una condicion de lfmite de la funcion de curva.
De acuerdo con otro ejemplo, si una funcion de base de transformacion y una transformacion inversa es una funcion polinomica, un filtro de interpolacion de alisado puede incluir unos coeficientes de filtro para maximizar una respuesta de baja frecuencia de un filtro de interpolacion sobre la base de la funcion polinomica.
Un filtro de interpolacion de alisado de acuerdo con un ejemplo puede incluir diferentes coeficientes de filtro sobre la base de una longitud de filtro asf como una ubicacion de interpolacion de unidad de sub-pel y un alisamiento.
Asimismo, el filtro de interpolacion de alisado puede incluir diferentes coeficientes de filtro sobre la base de un factor de puesta a escala de un resultado de interpolacion asf como una ubicacion de interpolacion de unidad de sub-pel, un alisamiento, y una longitud de filtro. El selector de filtro 12 puede seleccionar un filtro de interpolacion de alisado que incluye unos coeficientes de filtro puestos a escala a numeros enteros. El interpolador 14 normaliza valores de pixel generados mediante el uso del filtro de interpolacion de alisado seleccionado mediante el selector de filtro 12.
Asimismo, el selector de filtro 12 puede seleccionar de forma diferente un filtro de interpolacion sobre la base de caractensticas de pixel. El interpolador puede generar valores de pixel de unidad de sub-pel mediante el uso del filtro de interpolacion seleccionado de forma diferente sobre la base de caractensticas de pixel.
El filtro de interpolacion seleccionable por el selector de filtro 12 puede incluir un filtro de interpolacion de alisado y un filtro de interpolacion general que no considera alisado. Por lo tanto, sobre la base de caractensticas de imagen, el selector de filtro 12 puede seleccionar un filtro de interpolacion general que no considera alisado en absoluto.
Por ejemplo, el aparato de interpolacion de imagen 10 puede realizar una interpolacion de imagen mediante el uso de diferentes filtros de interpolacion de acuerdo con unas componentes de color.
De acuerdo con otro ejemplo, el selector de filtro 12 puede seleccionar de forma diferente un filtro de interpolacion sobre la base de la ubicacion de interpolacion de unidad de sub-pel y una componente de color de un pixel actual. De acuerdo con otro ejemplo, el interpolador 14 puede interpolar pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado, generando de ese modo al menos un valor de pixel de unidad de sub- pel.
Por ejemplo, el selector de filtro 12 puede determinar de forma diferente un filtro de interpolacion para una componente de luma y un filtro de interpolacion para una componente de croma.
Con el fin de interpolar un pixel de croma, el selector de filtro 12 puede seleccionar un filtro de interpolacion de alisado que tiene un alisamiento mas fuerte que la de un filtro de interpolacion para un pixel de luma.
5
10
15
20
25
30
35
40
45
50
55
Por ejemplo, con el fin interpolar un pixel de croma, un filtro de interpolacion incluye unos coeficientes de filtro determinados sobre la base de una funcion de curva o un filtro de interpolacion que incluye unos coeficientes de filtro determinados sobre la base de una funcion polinomica se puede seleccionar. Los coeficientes de filtro determinados sobre la base de una funcion de curva alisan muy fuertemente los pfxeles de unidad de pel de valor entero de lfmite sobre la base de una condicion de lfmite de la funcion de curva. El filtro de interpolacion determinado sobre la base de una funcion polinomica puede incluir unos coeficientes de filtro para maximizar una respuesta de baja frecuencia.
Asimismo, con el fin interpolar un pixel de croma, un filtro de interpolacion que incluye unos coeficientes de filtro determinados sobre la base de un parametro de alisado que tiene un alisamiento mas fuerte que la de un filtro de interpolacion para un pixel de luma, un filtro de interpolacion que incluye unos coeficientes de filtro combinados con una funcion de ventana para eliminar componentes de alta frecuencia y un filtro de interpolacion para un pixel de luma se puede seleccionar.
Con el fin de obtener un resultado de interpolacion liso de una componente de croma, una interpolacion de alisado que se obtiene mediante la combinacion de coeficientes de filtro para realizar transformacion y una transformacion inversa sobre la base de una pluralidad de funciones de base, y coeficientes de funcion de ventana para realizar un filtrado de paso bajo se puede seleccionar.
Se usa interpolacion de imagen para transformar en una imagen de alta calidad, para transformar una imagen entrelazada en una imagen progresiva, o para muestrear de forma ascendente una imagen de baja calidad en una imagen de alta calidad. Asimismo, cuando un aparato de codificacion de video codifica una imagen, un estimador de movimiento y un condensador pueden realizar una inter prediccion mediante el uso de una trama de referencia interpolada. La prediccion de inter prediccion puede aumentar mediante la interpolacion de una trama de referencia para generar una imagen de alta calidad, y realizar estimacion compensacion de movimiento sobre la base de la imagen de alta calidad. De forma similar, cuando un aparato de descodificacion de imagen descodifica una imagen, un compensador de movimiento puede realizar compensacion de movimiento mediante el uso de una trama de referencia interpolada, aumentando de ese modo la precision de la inter prediccion.
Asimismo, el filtro de interpolacion de alisado usado por el aparato de interpolacion de imagen 10 puede obtener un resultado de interpolacion liso o reducir los componentes de alta frecuencia en un resultado de interpolacion usando un filtro de interpolacion. Debido a que las componentes de alta frecuencia reducen la eficiencia de compresion de imagen, la eficiencia de codificacion y de descodificacion de imagen tambien se puede mejorar mediante la realizacion de una interpolacion de imagen ajustable por alisamiento.
La figura 2 es un diagrama para describir una relacion entre una unidad de pel de valor entero y una unidad de sub- pel.
Haciendo referencia a la figura 2, el aparato de interpolacion de imagen 10 genera valores de pixel de ubicaciones 'X' mediante la interpolacion de valores de pixel de unidad de pel de valor entero de ubicaciones 'O' de un bloque previamente determinado 20 en un dominio espacial. Los valores de pixel de las ubicaciones 'X' son valores de pixel de unidad de sub-pel de ubicaciones de interpolacion determinadas por ax y ay. A pesar de que la figura 2 ilustra que el bloque previamente determinado 20 es un bloque 4*4, se entendera facilmente por un experto en la tecnica que el tamano de bloque no esta limitado a 4*4 y puede ser mayor o menor que 4*4.
En el procesamiento de video, se usa un procedimiento de movimiento para realizar compensacion de movimiento y prediccion en una imagen actual. Sobre la base de la codificacion por prediccion, se hace referencia a una imagen previamente descodificada para predecir una imagen actual, y un vector de movimiento indica un punto previamente determinado de una imagen de referencia. Por lo tanto, un vector de movimiento indica un pixel de unidad de pel de valor entero de una imagen de referencia.
No obstante, un pixel que se hara referencia por una imagen actual se puede ubicar entre pfxeles de unidad de pel de valor entero de una imagen de referencia. Tal ubicacion se denomina como una ubicacion de unidad de sub-pel. Debido a que un pixel no existe en una ubicacion de unidad de sub-pel, simplemente se predice un valor de pixel de unidad de sub-pel mediante el uso de valores de pixel de unidad de pel de valor entero. Dicho de otra forma, se estima un valor de pixel de unidad de sub-pel mediante la interpolacion de pfxeles de unidad de pel de valor entero.
A continuacion se describira un procedimiento de interpolacion de pfxeles de unidad de pel de valor entero en detalle con referencia a las figuras 3 y 4A a 4C.
La figura 3 es un diagrama que ilustra pfxeles de unidad de pel de valor entero adyacentes a los que se hara referencia para determinar un valor de pixel de unidad de sub-pel.
Haciendo referencia a la figura 3, el aparato de interpolacion de imagen 10 genera un valor de pixel de unidad de sub-pel 35 de una ubicacion de interpolacion mediante la interpolacion de valores de pixel de unidad de sub-pel de valor entero 31 y 33 en un dominio espacial. La ubicacion de interpolacion se determina por a.
Las figuras 4A a 4C son unos diagramas que ilustran ejemplos de pixel de unidad de pel de valor entero a los que se hara referencia para determinar un valor de pixel de unidad de sub-pel.
5
10
15
20
25
30
35
40
45
50
Haciendo referencia a la figura 4A, con el fin de generar el valor de pixel de unidad de sub-pel 35 mediante la interpolacion de los valores de pixel de unidad de pel de valor entero 31 y 33, se usa una pluralidad de valores de unidad de pel de valor entero adyacentes 37 y 39 incluyendo los valores de pixel de unidad de pel de valor entero 31 y 33. Dicho de otra forma, los 0-esimo y 1° pfxeles se pueden interpolar mediante la realizacion de un filtrado de interpolacion unidimensional en valores de pixel 2M de un valor de pixel -(M - 1)-esimo a un valor de pixel M-esimo.
Asimismo, a pesar de que la figura 4A ilustra que los valores de pixel en una direccion horizontal se interpolan, el filtrado de interpolacion unidimensional se puede realizar mediante el uso de valores de pixel en una direccion vertical o diagonal.
Haciendo referencia a la figura 4B, un valor de pixel P (a) de una ubicacion de interpolacion a se puede generar mediante la interpolacion de pfxeles Po 41 y Pi 43 que son adyacentes entre sf en una direccion vertical. Cuando las figuras 4A y 4B se comparan, sus procedimientos de filtrado de interpolacion son similares y la unica diferencia entre ellos es que los valores de pixel 47 y 49 alineados en una direccion vertical se interpolan en la figura 4B mientras los valores de pixel 37 y 39 alineados en una direccion vertical se interpolan en la figura 4A.
Haciendo referencia a la figura 4C, de forma similar, un valor de pixel 44 de la ubicacion de interpolacion a se genera mediante la interpolacion de los valores de pixel adyacentes 40 y 42. La unica diferencia de la figura 4A es que los valores de pixel 46 y 48 alineados en una direccion se usan en lugar de los valores de pixel 37 y 39 alineados en una direccion horizontal.
Ademas de las direcciones mostradas en las figuras 4A a 4C, se puede realizar un filtrado de interpolacion unidimensional en varias direcciones.
El filtrado de interpolacion se puede realizar para interpolar pfxeles de unidad de pel de valor entero para generar un valor de pixel de unidad de sub-pel. El filtrado de interpolacion se puede representar mediante la siguiente ecuacion.
P(«) =f(«) xp= 2VnfrrTPm
Un valor de pixel p (x) se genera mediante la realizacion de una interpolacion sobre la base de un producto escalar de un vector p de 2M pfxeles de referencia de unidad de pel de valor entero {pm} = {p-M + 1, p-M + 2, ... , po, p1, ... , pM } y un vector f (x) de coeficientes de filtro {fm } = {f-M +1, f-M + 2, ... , fo, fi, ... , fM }. El coeficiente de filtro F (a) vana sobre la base de la ubicacion de interpolacion ay un valor de pixel p (a) que se obtiene mediante la realizacion de una interpolacion se determina sobre la base del coeficiente de filtro f (a), un filtro de interpolacion seleccionado, es decir, el coeficiente de filtro determinado f(x), influye ampliamente sobre el desempeno de filtrado de interpolacion.
La interpolacion de imagen que usa transformacion y una transformacion inversa sobre la base de unas funciones de base, y un procedimiento para determinar un filtro de interpolacion se describira a continuacion en detalle.
Un filtro de interpolacion que usa transformacion y una transformacion inversa transforma inicialmente valores de pixel mediante el uso de una pluralidad de funciones de base que tienen diferentes componentes de frecuencia. La transformacion puede incluir todo tipo de transformacion de valores de pixel en un dominio espacial en coeficientes en un dominio de transformacion, y puede ser Transformacion de Coseno Discreta (DCT, discrete cosine transformation). Los valores de pixel de unidad de valor entero se transforman mediante el uso de una pluralidad de funciones de base. Un valor de pixel puede ser un valor de pixel de luma o un valor de pixel de croma. Las funciones de base no estan limitadas a funciones de base particulares y pueden incluir todas las funciones de base para transformar valores de pixel en un dominio espacial en valores de pixel en un dominio de transformacion. Por ejemplo, la funcion de base puede ser una funcion de coseno o de seno para realizar una DCT y DCT inversa (IDCT, inverse DCT). Como alternativa, varias funciones de base tal como una funcion de curva y una funcion polinomica se pueden usar. Asimismo, la DCT puede ser DCT modificada (MDCT, modified DCT) o MDCt sin ventanas.
El filtro de interpolacion que usa transformacion y una transformacion inversa desplaza las fases de las funciones de base usadas para realizar transformacion y transforma de forma inversa valores de una pluralidad de coeficientes generados mediante el uso de las funciones de base desfasada, es decir, los valores en un dominio de transformacion. Como un resultado de transformacion inversa, los valores de pixel en un dominio espacial se envfan y los valores enviados pueden ser valores de pixel de una ubicacion de interpolacion.
<Coeficientes de filtro usando una transformacion ortogonal y una transformacion inversa sobre la base de unas funciones de base ortogonal>
Se describira a continuacion en detalle un caso en el que el interpolador 14 realiza un filtrado de interpolacion usando una transformacion y una transformacion inversa sobre la base de unas funciones de base ortogonal. En concreto, la DCT se describe como un ejemplo de la transformacion.
Por ejemplo, haciendo referencia a la figura 4A, con el fin de generar el valor de pixel de unidad de sub-pel 35 mediante la interpolacion de los dos valores de pixel de unidad de pel de valor entero 31 y 33, mediante el uso de una pluralidad de valores de pfxeles de unidad de valor entero adyacentes 37 y 39 incluyendo los valores de pixel de
5
10
15
20
25
30
35
40
unidad depende del numero entero 31 y 33, 0-esimo y 1° pfxeles se pueden interpolar mediante la realization de una DCT unidimensional en 2M valores de pixel de un valor de pixel -(M - 1) a valor de pixel M-esimo, y mediante la realizacion de una IDCT unidimensional sobre la base de unas funciones de base desfasada.
El interpolador 14 realiza inicialmente una DCT unidimensional en valores de pixel de unidad de pel de valor entero. La DCT unidimensional se puede realizar tal como se representa en la ecuacion 1.
[Ecuacion 1]
imagen1
p (l) representa los valores de pixel 37 y 39 de un valor de pixel -(M - 1) a un valor de pixel M-esimo, y Ck representa una pluralidad de coeficientes en un dominio de frecuencia, que se genera mediante la realizacion de una DCT unidimensional en los valores de pixel 37 y 39. En este caso, k es un numero entero positivo que satisface la condition anterior de la ecuacion 1.
Despues de que se realice una DCT unidimensional sobre los valores de pixel 37 y 39 mediante el uso de la ecuacion 1, el interpolador 14 realiza transformation inversa sobre los coeficientes tal como se representa la ecuacion 2.
[Ecuacion 2]
imagen2
2M—1
S ckcos(
k = l
(2a
1 + 2M)kn x 4 M }
a representa una ubicacion de interpolation entre dos valores de pixel tal como se ilustra en las figuras 13A - 13B, y puede tener varios valores fraccionarios tal como 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, etc. El valor fraccionario no esta limitado a un valor particular, y a puede ser un valor real en lugar de un valor fraccionario. P (a) representa el valor de pixel de unidad de sub-pel 35 de la ubicacion de interpolacion a, que se genera como un resultado de IDCT unidimensional.
Cuando la ecuacion 2 se compara con la ecuacion 1, la fase de una funcion de coseno que es una funcion de base usada para realizar una IDCT se determina sobre la base de un numero fraccionario a en lugar de un numero entero I, esa forma es diferente de la fase de una funcion de base usada para realizar una DCT unidimensional. Dicho de otra forma, la fase de cada funcion de base usada para realizar transformacion inversa, es decir, una funcion de coseno, se desfasa sobre la base de 2a. Si el interpolador 14 realiza IDCT sobre la base de las funciones de coseno desfasado de acuerdo con la ecuacion 2, el valor de pixel de unidad de sub-pel 35 de la ubicacion de interpolacion a, es decir, p (a), se genera.
La DCT de acuerdo con la ecuacion 1 se genera por una ecuacion de matriz representada en la ecuacion 3. [Ecuacion 3]
C = D x REF
En el presente caso, C es una matriz 2M * 1 de los coeficientes 2M que se han descrito en lo que antecede en relation con la ecuacion 1, y REF es una matriz 2M * 1 de los valores de pixel de unidad de pel de valor entero, es decir, los valores de pixel P-(m-1), ... Pm, tal como se ha descrito en lo que antecede en relacion con la ecuacion 1. El numero de valores de pixel de unidad de pel de valor entero usados para realizar una interpolacion, es decir, 2M, se refiere al numero de tomas de un filtro de interpolacion unidimensional. D es una matriz cuadrada para realizar una DCT unidimensional y se puede definir tal como se representa en la Ecuacion 4.
[Ecuacion 4]
imagen3
k y l son numeros enteros que satisfacen las condiciones anteriores, y Dkl se refiere a un fila k y una columna l de la matriz cuadrada D para realizar una DCT en la ecuacion 3. M es igual que en la ecuacion 3.
5
10
15
20
25
30
35
IDCT usando una pluralidad de funciones de base desfasada de acuerdo con la ecuacion 2 se expresa por una ecuacion de matriz representada en la ecuacion 5.
[Ecuacion 5]
P (a) = W (a) x C
En el presente caso, P (a) es igual que en la ecuacion 2, y W (a) es una matriz 1 x 2M para realizar una IDCT unidimensional mediante el uso de una pluralidad de funciones de base desfasada y se pueden definir tal como se representa la ecuacion 6.
[Ecuacion 6]
imagen4
k es un numero entero que satisface la condition anterior, y Wk (a) se refiere a una columna K de la matriz W (a) que se ha descrito en lo que antecede en relation con la ecuacion 5. Un filtro F (a) para realizar una DCT unidimensional e IDCT unidimensional usando una pluralidad de funciones de base desfasada de acuerdo con las ecuaciones 3 y 5 se puede definir tal como se representa en la ecuacion 7.
[Ecuacion 7]
P(n ) = F(n ) X REF,
2M— 1
k = 0
0<k<2M—l,
k y l son numeros enteros que satisfacen las condiciones anteriores, Fi (a) se refiere a una columna l de F (a) y W (a) y D son iguales que los de la ecuacion 3.
Con el fin de generar valores de pfxel de unidad de sub-pel mas fuertemente alisados, el interpolador 14 puede cambiar un filtro de interpolation usado para realizar transformation y una transformation inversa sobre la base de una funcion de base.
Un caso en el que se usa una funcion de ventana, un caso en el que se usa una pluralidad de parametros de alisado, un caso en el que se usa una funcion de curva como una funcion de base, y un caso en el que se usa una funcion polinomica como una funcion de base para determinar varios filtros de interpolacion de alisado se describiran a continuation de forma secuencial en detalle.
<Filtro de interpolacion de alisado usando una funcion de ventana>
Se describira a continuacion en detalle un procedimiento para alisar unos coeficientes de filtro de interpolacion mediante el uso de una funcion de ventana.
Una funcion de ventana puede incluir una funcion de ventana de Hamming, una funcion de ventana de coseno, una funcion de ventana exponencial, una funcion de ventana de Hamming, una funcion de ventana de Blackman, y una funcion de ventana de triangulo. A pesar de que se describiran a continuacion casos en los que los filtros de interpolacion sobre la base de transformacion y una transformacion inversa se alisan mediante el uso de ciertas funciones de ventana para conveniencia de explication, se entendera facilmente por un experto en la tecnica que, ademas de las funciones de ventana descritas, tambien se pueden usar otras funciones de ventana que tienen respuestas de frecuencias similares.
Los coeficientes de ventana sobre la base de una funcion de ventana de Hamming satisfacen la ecuacion 24.
5
10
15
20
25
30
35
w(n) = 0,54-0,46 cos(—),0 < n< N
N '
En varias funciones de ventana incluyendo la funcion de ventana de Hamming, una entrada n es simetrica con referencia a N / 2 y una respuesta de frecuencia es similar a la de un filtro de paso bajo. De entre entradas de una funcion de ventana, solo una entrada cubierta por una ventana formada mediante la funcion de ventana se puede enviar. Un tamano de ventana N se puede establecer como un numero entero positivo mayor que la longitud de un filtro de interpolation original. Por ejemplo, con el fin de filtrar una funcion de ventana un filtro de interpolation para generar un pfxel de unidad de sub-pel tal como 1/2 o 1/4 pfxel, la ubicacion central de la funcion de ventana se puede mover por 1/2 o 1/4 pfxel, es decir, debido a que la ubicacion central de la funcion de ventana se mueve a una ubicacion de interpolacion, la funcion de ventana puede ser simetrica con respecto a la ubicacion de interpolacion.
Por ejemplo, las ecuaciones 9 y 10 muestran, de forma respectiva, unos coeficientes de ventana de las funciones de ventana de Hamming para los filtros de interpolacion de unidad de 1/2 de pel y de unidad de 1/4 de pel, de forma respectiva.
[Ecuacion 9]
imagen5
[Ecuacion 10]
w1/4{n) = 0,54 -0,46 coa^( ^.1 + n)
La ecuacion 11 muestra de forma secuencial coeficientes de ventana de una funcion de ventana de Hamming, una funcion de ventana de coseno, y una funcion de ventana exponencial como funciones de ventana para filtros de interpolacion, que se generalizan sobre la base de una ubicacion de interpolacion de unidad de sub-pel a.
[Ecuacion 11]
w0 (11) = 0,54 — 0,46co.s(-^(4^—a + n)).
wa (re) = C05(,T N ),
wa = exp—/ 3(a —n)2
Mediante la combination de los coeficientes de ventana de acuerdo con la ecuacion 11 con un filtro de interpolacion original fk (a), los coeficientes de filtro de interpolacion de alisado se pueden determinar de acuerdo con la ecuacion 12.
[Ecuacion 12]
fk=fk(<*)wa (k),
k=—M+ 1, M
Debido a que se determina un filtro de interpolacion de alisado mediante el uso de una funcion de ventana, se puede ajustar una ponderacion de un coeficiente de filtro de interpolacion sobre la base de la distancia entre un pfxel de referencia de unidad de pel de valor entero y una ubicacion de interpolacion. Por ejemplo, se puede determinar un filtro de interpolacion de alisado de tal forma que, mediante una funcion de ventana, de entre los coeficientes de filtro de un filtro de interpolacion, un coeficiente de filtro para un pfxel de referencia de unidad de pel de valor entero ubicado lejos de una ubicacion de interpolacion cambia demasiado un coeficiente de filtro de un pfxel de referencia de unidad de pel de valor entero ubicado cerca de la ubicacion de interpolacion no cambia demasiado.
5
10
15
20
25
30
35
40
Asimismo, si se determina un filtro de interpolation de alisado al usa una funcion de ventana, se puede realizar un filtrado de interpolacion despues de que se alisen los pixeles de referencia de unidad de pel de valor entero. Los pixeles de referencia de unidad de pel de valor entero introducidos Ref = { p-M + 1, p-M + 2, ... , p0, p1, ... , pm } pueden incluir ruido o se pueden danar debido a un error tal como un error de cuantificacion. En ese sentido, si se alisan los pixeles de referencia de unidad de pel de valor entero antes de que se realice un filtrado de interpolacion, el aparato de interpolacion de imagen 10 puede mejorar un efecto de interpolacion.
<Filtro de interpolacion de alisado usando dos parametros>
Un filtro de interpolacion de alisado puede determinar el alisamiento de coeficientes de filtro sobre la base de dos parametros. Los coeficientes de filtro de interpolacion de alisado de unidad de sub-pel que se obtienen mediante la combination de una matriz de alisado S y coeficientes de filtro de interpolacion sobre la base de transformation y una transformacion inversa satisfacen la ecuacion 13.
[Ecuacion 13]
imagen6
La ecuacion 14 muestra un ejemplo de la matriz de alisado S.
[Ecuacion 14]
imagen7
(si< = 1 ®4i+l = °i}$
= 2o-i;3M±1 = 0-i};
{su = i —=
i=—M+l —M+l<i< M i = M
La matriz de alisado S de acuerdo con la ecuacion 14 es una matriz de 3 diagonales. Dicho de otra forma, de entre las componentes de la matriz de alisado S, las componentes diferentes a las componentes sobre una lmea central y dos lmeas diagonales correspondientes entre si y adyacentes a la lmea central son todos 0.
En la matriz de alisado S, un alisamiento 01 se puede determinar sin importar la distancia (i - a) con respecto a los pixeles de unidad de pel de valor entero que se van a interpolar. En este caso, el alisado sobre la base de la matriz de alisado S se puede denominar como alisado uniforme.
Asimismo, la matriz de alisado S, el alisamiento Oi puede variar sobre la base de un mdice l de una ubicacion de pixel de unidad de pel de valor entero. En este caso, el alisado sobre la base de la matriz de alisado S se puede denominar como alisado no uniforme. Por ejemplo, el alisado Oi puede satisfacer la ecuacion 15.
[Ecuacion 15]
imagen8
Un mdice positivo l puede aumentar un efecto de alisado si la distancia entre una ubicacion de interpolacion y un pixel de referencia de unidad de pel de valor entero es grande. Por consiguiente, el mdice positivo l puede controlar la velocidad de alisado sobre la base de la distancia entre una ubicacion de interpolacion y un pixel de referencia de unidad de pel de valor entero. Un parametro de alisado p puede controlar el intervalo de alisado alrededor de una ubicacion de interpolacion.
Si el parametro de alisado p es menor que 0, la matriz de alisado S de acuerdo con la ecuacion 13 se puede cambiar a un filtro de acentuacion. Por consiguiente, si la matriz de alisado S que es menor que 0 se combina con un filtro de interpolacion usando una transformacion y una transformacion inversa, se puede generar un filtro para amplificar componentes de alta frecuencia.
Con el fin de realizar prediction de unidad de sub-pel, el aparato de interpolacion de imagen 10 puede usar datos de coeficiente de filtro de interpolacion de alisado previamente almacenados en la memoria.
La figura 5 es una grafica 50 de un factor de alisado sobre la base de un parametro de alisado p de un filtro de interpolacion de alisado.
Las primeras y segundas curvas 52 y 54 muestran un factor de alisado para alisar un filtro de interpolacion sobre la
5
10
15
20
25
30
35
40
base de una transformacion discreta. Si m es grande, es decir, si la distancia desde los pixeles de unidad de pel de valor entero que se van a interpolar aumenta, el factor de alisado esta cerca de 0.
En el presente caso, en comparacion con la segunda curva 54 en un caso en el que el parametro de alisado p es grande, la primera curva 52 en un caso en el que el parametro de alisado p es pequeno tiene un ancho relativamente grande del factor de alisado. Dicho de otra forma, si el parametro de alisado es p del filtro de interpolacion de alisado es grande, se pueden filtrar principalmente componentes de baja frecuencia y, por lo tanto, se pueden generar valores de pixel de unidad de sub-pel relativamente alisados fuertemente. Si el parametro de alisado p del filtro de interpolacion de alisado es relativamente pequeno, las componentes de frecuencia relativamente alta pueden permanecer e interpolarse y, por lo tanto, se pueden generar valores de pixel de unidad de sub-pel.
Con el fin de determinar unos coeficientes de filtro de un tipo de interpolacion de alisado, el aparato de interpolacion de imagen 10 puede usar una funcion de curva o una funcion polinomica, una funcion de base asi como una funcion de base ortogonal.
<Filtro de interpolacion de alisado sobre la base de funcion de curva>
El aparato de interpolacion de imagen 10 puede determinar unos coeficientes de filtro de un filtro de interpolacion de alisado sobre la base de una funcion de curva.
Asimismo, con el fin de analizar un resultado de interpolacion, el aparato de interpolacion de imagen 10 puede usar una funcion de curva que tiene una condicion de Kmite. En mas detalle, por ejemplo, si la interpolacion de curva polinomica que tiene una variable p se usa para formar un filtro de interpolacion usando M pixeles de unidad de valor entero pm (M es un numero entero igual a o mayor que 2), con el fin de permitir que la variable p tenga un alisamiento maximo en un intervalo de 3 < p < M +1 y para permitir que un valor de copa, es decir, un valor de resultado de interpolacion se pueda alisar infinitamente en un pixel (-M + 2)-esimo y un pixel (M - 1)-esimo, se pueden establecer condiciones adicionales de (p-1). Estas condiciones adicionales se denominan como condiciones de limite no de nudo o condiciones de limite de de Boor.
Un resultado de interpolacion que usa coeficientes de filtro de interpolacion sobre la base de una funcion de curva se puede representar como una suma ponderada calculada mediante el uso de la ecuacion 16.
[Ecuacion 16]
M
S(X) = S PrJm(X)
-M+1
Los pixeles de entrada pm son pixeles de referencia de unidad de pel de valor entero, y un grupo { pm} de pixeles de entrada en el que el intervalo de M es [-M + 1, M] (es decir, -M + l < m < M) ingresa. Una funcion de curva S (x) se corresponde con los valores de pixel generados como un resultado de interpolacion. fm(x) es un interpolante de curva cardinal y se corresponde con coeficientes de filtro sobre la base de una funcion de curva cardinal. fm(x) pueden ser valores de funcion de curva cardinal que tienen la misma condicion de limite y tienen valores solo en ubicaciones de pixel de referencia de unidad de pel de valor entero (es decir, -M + l < m < M, m es un numero entero).
El coeficiente de filtro fm (x) se puede determinar mediante el uso de la ecuacion 17.
[Ecuacion 17]
/m(*) =^"+1+fc(l -*) + s-M+1+k+1z
+ ^((l — z)3 + 2 — 1 )/6 + (z'{ ~z)/^7
z=x-\- M— 1 — k
Cuando k es un numero entero en un intervalo de 0 < k < 2M - 2 con el coeficiente de filtro de curva fm (x) se puede determinar en cada numero entero m en un intervalo de [-M + I + k, -M + k + 2], es decir, desde (-M + I + k) a
<Jk
(-M + k + 2). En la ecuacion 17, se puede determinar un coeficiente Um sobre la base de la ecuacion 18.
imagen9
Para interpolation de unidad de sub-pel, un filtro de respuesta de impulso finito (FIR, finite impulse filter) que incluye unos coeficientes de filtro de curva fm (a) de acuerdo con una ubicacion de interpolacion a se puede calcular y 5 almacenar previamente, y un valor de pixel de unidad de sub-pel en una ubicacion de interpolacion a entre un 0- esimo pixel y un primer pixel se puede generar mediante la realization de un filtrado de interpolacion usando el filtro FIR incluyendo los coeficientes de filtro de curva fm (a) sobre el pixel de referenda de unidad de pel de valor entero
pm.
La figura 6 es una grafica de una funcion de curva 60 que se puede usar mediante un filtro de interpolacion de 10 alisado.
Haciendo referencia a la figura 6, sobre la base de una funcion de curva que tiene una variable p de 3, se ilustran tres curvas interpolantes de curva f-2(x) 61, f-i (x) 62, y f0(x) 63 para 2M - 6, es decir, un filtro de interpolacion de 6 tomas. Por ejemplo, los coeficientes de filtro de interpolacion para generar valores de pixel de unidad de sub-pel que satisfacen a = 1 / 4 se pueden determinar como f-2 (1 / 4) 64, f-i (1 / 4) 65, y f0 (1 / 4) 66 sobre las curvas interpolantes 15 de curva f-2 (x) 61, f-1 (x) 62, y f0 (x) 63.
<Filtro de interpolacion de alisado sobre la base de funcion polinomica>
El aparato de interpolacion de imagen 10 puede determinar unos coeficientes de filtro de un filtro de interpolacion alisado sobre la base de una funcion polinomica.
Una funcion de interpolacion polinomica que incluye unos coeficientes de filtro de interpolacion {fk} sobre la base de 20 una funcion polinomica se puede representar sobre la base de una funcion polinomica como una funcion de base mediante el uso de la ecuacion 19. El numero entero k se define dentro de un intervalo de -M + l < k < M.
[Ecuacion 19]
M
V £('• K“- e”
-M+l
Asimismo, con el fin de alisar un resultado de interpolacion, el aparato de interpolacion de imagen 10 puede 25 determinar unos coeficientes de filtro optimizados a una banda de baja frecuencia de entre los coeficientes de filtro de interpolacion {fk} sobre la base de una funcion polinomica. Por ejemplo, si una frecuencia w es 0, los coeficientes de filtro {fk} determinados cuando un valor de funcion de una funcion de interpolacion polinomica y unos valores de funcion de derivadas de la funcion de interpolacion polinomica son iguales, se pueden determinar como coeficientes de filtro de interpolacion optimizados a una banda de baja frecuencia. En ese sentido, tal como se 30 representa en la ecuacion 20, como una funcion para el numero entero k, se pueden obtener 2M funciones lineales para 2M coeficientes de filtro {fk} (2M es una incognita).
[Ecuacion 20]
M
E /t(Q )* '“=«’”
— M+l
Las soluciones de las funciones lineales de la ecuacion 20 se pueden calcular mediante el uso de una funcion 35 polinomica de Newton. La ecuacion 21 representa 2M coeficientes de filtro {fk} calculadas como soluciones de las funciones lineales de la ecuacion 20.
5
10
15
20
25
30
35
40
—M+ l.m- Am~a )
Un filtro de interpolacion incluyendo los coeficientes de filtro {fk} determinados sobre la base de la funcion polinomica de Newton de las ecuaciones 20 y 21 tiene una respuesta maxima a una banda de baja frecuencia, un resultado de interpolacion mas fuertemente alisado se puede obtener mediante el uso de valores de pixel usando este filtro de interpolacion. Por consiguiente, un filtro de interpolacion que incluye unos coeficientes de filtro determinados sobre la base de una funcion polinomica como una funcion de base se puede seleccionar como un filtro de interpolacion de alisado.
En ese sentido, el aparato de interpolacion de imagen 10 puede generar pixeles de interpolacion mas fuertemente alisados al seleccionar un filtro de interpolacion alisado que incluye unos coeficientes de filtro de interpolacion sobre la base de una funcion polinomica. En particular, debido a que los pixeles de croma tienen componentes de alta frecuencia fuertes, con el fin de generar valores de pixel de unidad de sub-pel de pixeles de unidad de pel de valor entero de luma, se puede usar un filtro de interpolacion de alisado que incluye unos coeficientes de filtro de interpolacion sobre la base de una funcion polinomica.
<Coeficientes de filtro de interpolacion para interpolacion puesta a escala>
Varios procedimientos de generacion de filtro de interpolacion de alisado de acuerdo con las realizaciones de la presente invencion se basan en una expresion aritmetica para generar un numero de punto flotante en lugar de un numero entero, y los valores absolutos de los coeficientes de filtro por lo general no son mayores que 1. En concreto, un resultado de calculo de un numero real en lugar de un numero entero se puede generar mediante una ubicacion de interpolacion de unidad de sub-pel a.
La eficiencia del calculo sobre la base de un numero entero es mayor que la del calculo sobre la base de punto flotante. En ese sentido, el aparato de interpolacion de imagen 10 puede mejorar la eficiencia de calculo del filtrado de interpolacion al poner a escala coeficientes de filtro de numeros enteros mediante el uso de un factor de puesta a escala. Asimismo, debido a que aumenta una profundidad de bits de valores de pixel, tambien puede mejorar la precision de filtrado de interpolacion.
El aparato de interpolacion de imagen 10 puede multiplicar unos coeficientes de filtro fm (a) por un valor previamente determinado, y puede realizar una interpolacion de imagen mediante el uso de coeficientes de filtro grandes Fm (a). Por ejemplo, los coeficientes de filtro Fm (a) se pueden poner a escala desde los coeficientes de filtro fm (a) tal como se representa en la ecuacion 22.
[Ecuacion 22]
imagen10
imagen11
Para eficiencia de calculo, el factor de puesta a escala puede ser en la forma de 2n. n puede ser 0 o un numero entero positivo. Un resultado de filtrado de interpolacion usando coeficientes de filtro puestos a escala por 2n puede tener una profundidad de bits puesta a escala por n bits en comparacion con un resultado que se obtiene mediante el uso de coeficientes de filtro originales.
El filtrado de interpolacion de calculo de valor entero usando los coeficientes de filtro puestos a escala Fm (a) puede satisfacer la ecuacion 23. Dicho de otra forma, despues de que se realice un filtrado de interpolacion mediante el uso de los coeficientes de filtro puestos a escala Fm (a), la profundidad de bits de puesta a escala tiene que reconstruirse a una profundidad de bits original.
[Ecuacion 23]
M
p(a) =( ^ Fm (a ) • pm + desplazamiento ) > n
-M+ 1
En este caso, un desplazamiento puede ser 2n -1.
Dicho de otra forma, debido a que un resultado de filtrado puesto a escala usando un filtro de interpolacion de alisado puesto a escala de ese modo tiene que reducirse mediante un factor de puesta a escala, es decir, 2n, para
reconstruirse a bits originales, una profundidad de bits del resultado de filtrado puesto a escala se puede reducir en n bits.
Si se realiza un filtrado de interpolacion de dos pasos mediante la realizacion de un filtrado de interpolacion unidimensional en una direccion horizontal y mediante la realizacion de un filtrado de interpolacion unidimensional en 5 una direccion vertical, se puede hacer una reduccion por un total de 2n bits. Por consiguiente, si se pone a escala un filtro de interpolacion unidimensional por n1 bits y un segundo bit de interpolacion unidimensional se pone a escala por 2n bits, despues de que se realice el filtrado de interpolacion de dos pasos mediante el uso del primer y el segundo filtros de interpolacion unidimensionales, se puede hacer una reduccion por una suma de n1 y n2, es decir, 2n bits. El primer filtro de interpolacion unidimensional puede ser un filtro de interpolacion que no esta puesto a 10 escala.
Debido a que una suma de los coeficientes de filtro de alisado fm (a) es 1, [Ecuacion 24]
imagen12
-M-l
Una condicion para normalizar los coeficientes de filtro de alisado puestos a escala Fin (a) del filtro de interpolacion 15 puesto a escala necesita satisfacer la ecuacion 25.
[Ecuacion 25]
imagen13
z
-M-hI
imagen14
z"
No obstante, la condicion de normalizacion de acuerdo con la ecuacion 25 puede causar un error de redondeo. El aparato de interpolacion de imagen 10 puede redondear los coeficientes de filtro puestos a escala Fm (a) sobre la 20 base de la condicion de normalizacion de acuerdo con la ecuacion 19. Para normalizacion, algunos de los coeficientes de filtro puestos a escala Fm (a) se pueden ajustar dentro de un intervalo previamente determinado de valores originales. Por ejemplo, algunos de los coeficientes de filtro puestos a escala Fm (a) se pueden ajustar dentro de un intervalo de ± 1 con el fin de corregir un error de redondeo.
Varios filtros de interpolacion de alisado y coeficientes de filtro se han descrito en lo que antecede. En concreto, 25 como una funcion para determinar unos coeficientes de filtro de un filtro de interpolacion de alisado, se puede usar una funcion de ventana, una funcion de curva, una funcion polinomica, etc. Para un filtro de interpolacion de alisado, una respuesta de frecuencia de una funcion puede variar sobre la base de una frecuencia pero una ganancia de filtro de la respuesta de frecuencia de la funcion puede estar cerca de 1. Por consiguiente, el aparato de interpolacion de imagen 10 puede determinar unos coeficientes de filtro mediante el uso de una funcion que tiene una ganancia de 30 filtro de la cual una respuesta de frecuencia esta mas cerca de uno incluso cuando una frecuencia vana, y puede seleccionar un filtro de interpolacion de alisado que incluye los coeficientes de filtro.
La figura 7 es un diagrama de flujo de un procedimiento de interpolacion de imagen de acuerdo con un ejemplo.
En la operacion 71, un filtro de interpolacion se selecciona de forma diferente sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion para generar al menos un 35 valor de pixel de unidad de sub-pel ubicado entre pfxeles de unidad de pel de valor entero de una imagen. Un alisamiento del filtro de interpolacion se puede determinar sobre la base de una distancia entre una ubicacion de interpolacion y unas unidades de pel de valor entero.
Un filtro de interpolacion de acuerdo con un ejemplo puede ser un filtro que incluye unos coeficientes de filtro para realizar transformacion y una transformacion de inversa sobre la base de una pluralidad de funciones de base. Un 40 filtro de interpolacion de alisado de acuerdo con un ejemplo puede incluir al menos una de un filtro de interpolacion combinado con una funcion de ventana, un filtro de interpolacion sobre la base de una pluralidad de parametros de alisado, un filtro de interpolacion sobre la base de un parametro de alisado, un filtro de interpolacion de curva, y un filtro de interpolacion de funcion polinomica.
Con el fin de realizar un filtrado mediante el uso de un filtro de interpolacion de alisado, los coeficientes de filtro se 45 pueden determinar para alisar mas fuertemente pfxeles de referencia de unidad de pel de valor entero lejos de una ubicacion de interpolacion.
En la operacion 73, al menos un valor de pixel de unidad de sub-pel se genera mediante la interpolacion de valores de pixel de los pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado en
5
10
15
20
25
30
35
40
45
50
De entre los filtros de interpolacion, si se selecciona un filtro de interpolacion que incluye unos coeficientes de filtro puestos a escala a numeros enteros, los valores de pixel generados mediante el uso del filtro de interpolacion se pueden normalizar sobre la base de un factor de puesta a escala.
De acuerdo con un ejemplo, un filtro de interpolacion se puede seleccionar de forma diferente sobre la base de caractensticas de pfxeles que se van a interpolar, y los valores de pixel de unidad de sub-pel se puede generar mediante el uso del filtro de interpolacion seleccionado.
Varios ejemplos de coeficientes de filtro, de un filtro de interpolacion determinado en consideracion de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento se describiran a continuacion con referencia a las figuras 8A a 12C.
Las figuras 8A a 8C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolacion de 12 tomas determinados sobre la base de un parametro de alisado y una ubicacion de interpolacion, de acuerdo con unos ejemplos de la presente invencion.
Haciendo referencia a las figuras 8A a 8C, de entre los filtros de interpolacion que se han descrito en lo que antecede sobre la base de transformacion ortogonal, con el fin de realizar una transformacion ortogonal y una transformacion inversa despues de alisar los pfxeles de referencia de unidad de pel de valor entero tal como se ha descrito en lo que antecede en relacion con la figura 5, los coeficientes de filtro de un filtro de interpolacion de alisado que se obtiene mediante la combinacion de una matriz de alisado y un filtro de interpolacion sobre la base de una transformacion ortogonal se muestran.
Las figuras 8A a 8C muestran varios filtros de interpolacion incluyendo diferentes coeficientes de filtro a medida que un parametro de alisado p vana como 0, 0,002, 0,004, 0,006, 0,008, 0,010, 0,012, 0,014, 0,016, 0,018, y 0,020, y una ubicacion de interpolacion a vanan como 1/8, 1/4, 3/8, 1/2, 5/8, 3/4, y 7/8.
Por ejemplo, en la tabla de la figura 8A, si un parametro de alisado p es 0,002 y la ubicacion de interpolacion a es 1/8, un filtro que incluye unos coeficientes de filtro {fm }, por ejemplo, {f-11, f-10, f.g, f.s, f-7, f-6, f-5, f-4, f-3, f-2, f-1, f0, f-i, f2, f3, f4, f5, f6, f7, f8, fg, f10, fn, f12}, determinados como {-1, 4 -7, 12, -24, 246, 37, -16, 9, -5, 3, -1 } se puede seleccionar como un filtro de interpolacion.
Las figuras 9A a 9C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolacion de 6 tomas determinados sobre la base de un parametro de alisado y una ubicacion de interpolacion, de acuerdo con unos ejemplos de la presente invencion.
A pesar de que los coeficientes de filtro de las figuras 8A a 8C son 12 coeficientes de filtro de un filtro de interpolacion de 12 tomas de entre los filtros de interpolacion de alisado que se obtienen mediante la combinacion de una matriz de alisado y un filtro de interpolacion de transformacion ortogonal, las figuras 9A a 9C muestran seis coeficientes de filtro de un filtro de interpolacion de 6 tomas. En las figuras 8A a 8C, y 9A a 9C, se pueden mostrar varios filtros de interpolacion de alisado que incluyen diferentes coeficientes de filtro sobre la base de los parametros de alisado p y la ubicacion de interpolacion a.
Los coeficientes de filtro mostrados en las figuras 8A a 8C, y 9A a 9C son coeficientes puestos a escala en un factor de puesta a escala de 256 (= 28) sobre la base de un filtrado de interpolacion de puesta a escala y entonces redondeados.
En las figuras 8A a 8C, y 9A a 9C, cuando la ubicacion de interpolacion a es constante y aumenta el parametro de alisado p, un coeficiente de filtro fm puede ser relativamente pequeno.
Asimismo, cuando el parametro de alisado p es constante y la ubicacion de interpolacion a esta lejos de 1 / 2, si m del coeficiente de filtro fm esta lejos de M = 0 hacia M = -m + 1 o m = M, el coeficiente de filtro de fm puede ser relativamente pequeno en comparacion con f0. El coeficiente de filtro fm cerca de m = 0 puede ser relativamente grande.
Por consiguiente, cuando aumenta el parametro de alisado p, si la ubicacion de interpolacion a esta lejos de 1 / 2, es decir, cerca de un pixel de unidad de valor entero, se puede seleccionar un filtro de interpolacion mas acentuado, es decir, un filtro de interpolacion menos alisado.
Debido a que un filtro de interpolacion de acuerdo con un ejemplo es un filtro simetrico de reflector de espejo, un coeficiente de filtro fm(a) de una ubicacion de interpolacion (1-a) se puede determinar mediante el uso del coeficiente de filtro. fm (a) de la ubicacion de interpolacion a. Por ejemplo, en la figura 9A, de entre los coeficientes de filtro {fm} que tienen el parametro de alisado p = 0,002, los coeficientes de filtro {fm (3/8)} de la ubicacion de interpolacion a = 3/4 y coeficientes de filtro {fm(5/8)} de la ubicacion de interpolacion a = 1-3/8 = 5/8 se comparan tal como se muestra a continuacion.
{fm (3 / 8)} = { 11, -42, 196, 117, -35, 10},
5
10
15
20
25
30
35
40
45
50
55
{fm(5/8)} = { 10, -35, 117, 196, -42, 11 }
Es dedr, se muestra que los coeficientes de filtro {fm (3 / 8 }} cuando m = -2, -1, 0 son iguales que los coeficientes de filtro {fm (5 / 8)} cuando m = 3, 2, 1, y los coeficientes de filtro {fm (3 / 8)} cuando m = 3, 2, 1 son igual que los coeficientes de filtro {fra(5 / 8)} cuando m = -2, -1, 0. Por consiguiente, en las tablas de las figuras 10 a 12C, a pesar de que solo los coeficientes de filtro de interpolacion fm (a) en un caso en el que la ubicacion de interpolacion es menor que o igual a 1/2 se muestran, se entendera facilmente por un experto en la tecnica que los coeficientes de filtro de interpolacion fm (a) en un caso en el que la ubicacion de interpolacion es mayor que 1 / 2 tambien se pueden determinar.
La figura 10 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolacion de 6 tomas determinados para pfxeles de croma sobre la base de un parametro de alisado y una ubicacion de interpolacion, de acuerdo con un ejemplo de la presente invencion.
El aparato de interpolacion de imagen 10 puede seleccionar de forma diferente un filtro de interpolacion sobre la base de caractensticas de imagen. Por ejemplo, si un filtro de interpolacion de alisado que se obtiene mediante la combinacion de una matriz de alisado y un filtro de interpolacion de transformacion ortogonal se determina, un parametro de alisado puede variar sobre la base de caractensticas de imagen.
Por ejemplo, debido a que los pfxeles de croma se muestrean de forma descendente sobre la base de un formato de color de 4:2:0, los pfxeles de croma tienen menos componentes de baja frecuencia en comparacion con pfxeles de luma. En este caso, haciendo referencia a la figura 10, sin importar un filtro de interpolacion para pfxeles de luma, solo se puede seleccionar de forma adicional un filtro de interpolacion para pfxeles de croma. Varios coeficientes de filtro de unos filtros de interpolacion seleccionados de forma diferente sobre la base de una componente de color se describiran a continuacion con referencia a la figura 11.
La figura 11 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolacion de alisado determinados de forma diferente sobre la base de una componente de color y una ubicacion de interpolacion de imagen, de acuerdo con un ejemplo de la presente invencion.
Haciendo referencia a la figura 11, varios filtros de interpolacion de alisado que incluyen diferentes coeficientes de filtro como un numero de tomas de filtro 2M, una ubicacion de interpolacion a, y una componente de color L (luminancia) / C (croma) vanan. Los coeficientes de filtro de la figura 11 son coeficientes puestos a escala en un factor de puesta a escala de 256 (= 28) y redondeados. Tal como se ha descrito en lo que antecede, sobre la base de caractensticas reflectoras de espejo de coeficientes de filtro de interpolacion, solo se muestra un caso en el que la ubicacion de interpolacion a es menor que o igual a 1/2.
De forma similar a las figuras 8A a 10, un resultado de comparar unos coeficientes de filtro para una componente de croma y coeficientes de filtro para una componente de luma similar a un resultado de comprar unos coeficientes de filtro en un caso en el que un parametro de alisado p es grande y coeficientes de filtro en un caso en el que el parametro de alisado p es pequeno.
Las figuras 12A a 12C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolacion de alisado sobre la base de una ubicacion de interpolacion de imagen y un factor de puesta a escala, incluyendo aquellos de acuerdo con realizaciones de la presente invencion.
Las figuras 12A a 12C muestran varios ejemplos modificados de coeficientes de filtro de unos filtros de interpolacion de alisado, que se ponen a escala, se redondean, y se normalizan a medida que un factor de puesta a escala de 2n vana como 512, 256, 128 y 64, y el numero de tomas de filtro de un filtro de interpolacion y una ubicacion de interpolacion a vanan.
En concreto, en la figura 12C, los coeficientes de filtro de interpolacion para interpolar unidades de 1/8 de pixel pueden ser utiles para realizar compensacion de movimiento sobre pfxeles de croma. No obstante, debido a que la calidad de imagen de pfxeles de croma, que es reconocida de forma visual por las personas, es menos cntica en comparacion con pfxeles de luma, debido a una toma de filtro relativamente corta, por ejemplo, 4 tomas, y una profundidad de bits baja, tambien se puede usar un filtro de interpolacion de alisado que tiene un factor de puesta a escala de 25.
Los coeficientes de filtro mostrados en las figuras 8A a 12C simplemente son partes de varios ejemplos, y se entendera facilmente por un experto en la tecnica que los coeficientes de filtro de unos filtros de interpolacion considerando alisado, de acuerdo con unos ejemplos, se pueden modificar sobre la base de varios factores incluyendo una ubicacion de interpolacion, un parametro de alisado, una funcion de ventana, una funcion de curva, una funcion polinomica, un factor de puesta a escala, y redondeo.
La codificacion y descodificacion de video usando un filtro de interpolacion de alisado, de acuerdo con unos ejemplos de la presente invencion, se describen a continuacion con referencia a las figuras 13A a 27. La codificacion y descodificacion de video sobre la base de unas unidades de codificacion que tienen una estructura de arbol, de acuerdo con unos ejemplos de la presente invencion, se describen a continuacion con referencia a las figuras 15 a
5
10
15
20
25
30
35
40
45
50
25. Los procedimientos de codificacion y de descodificacion de v^deo usando un filtro de interpolacion de alisado, de acuerdo con unos ejemplos de la presente invencion, se describen a continuacion con referencia a las figuras 26 y 27.
Cuando se realizan varias operaciones en los datos de imagen, los datos de imagen se pueden dividir en grupos de datos y la misma operacion se puede realizar en datos del mismo grupo de datos. En la siguiente descripcion, un grupo de datos formado de acuerdo con una norma previamente determinada se denomina como una 'unidad de datos', y se realiza una operacion en cada 'unidad de datos' mediante el uso de datos incluidos en la unidad de datos.
<Codificacion y descodificacion de video usando un filtro de interpolacion de alisado>
La figura 13A es un diagrama de bloques de un aparato de codificacion de video 100 usando un filtro de interpolacion de alisado, de acuerdo con un ejemplo de la presente invencion.
Las operaciones de un codificador 120 y una unidad de salida 130 del aparato de codificacion de video 100 se pueden controlar de forma operativa mediante un procesador de codificacion de video, una CPU, y un procesador de graficos.
Con el fin de codificar una imagen actual de un video de entrada, el aparato de codificacion de video 100 divide la imagen actual en unidades de datos que tienen un tamano previamente determinado y codifica cada unidad de datos.
Por ejemplo, la imagen actual incluye pfxeles en un dominio espacial. Con el fin de codificar pfxeles espacialmente adyacentes de la imagen actual al mismo tiempo, la imagen actual se puede dividir en grupos de pixel que tienen un tamano previamente determinado de tal forma que los pfxeles adyacentes dentro de un intervalo previamente determinado forman un grupo. Al realizar una serie de operaciones de codificacion sobre pfxeles de los grupos de pixel divididos, la imagen actual se puede codificar.
Debido a que los datos iniciales de una imagen que se va a codificar son valores de pixel en el dominio espacial, cada grupo de pixel se puede usar como una unidad de datos que se va a codificar. Asimismo, cuando los coeficientes de transformacion en un dominio de transformacion se generan mediante la realizacion de una transformacion para la codificacion de video en valores de pixel del grupo de pixel en el dominio espacial, los coeficientes de transformacion se incluyen en grupos de coeficiente que tienen el mismo tamano que los grupos de pixel en el dominio espacial. Por consiguiente, un grupo de coeficiente de los coeficientes de transformacion en el dominio de transformacion tambien se puede usar como una unidad de datos para codificar una imagen.
Por consiguiente, en el dominio espacial y el dominio de transformacion, un grupo de datos que tiene un tamano previamente determinado se puede usar como una unidad de datos que se va a codificar. En este caso, el tamano de una unidad de datos se puede definir como el numero de piezas de datos incluido en la unidad de datos. Por ejemplo, el numero de pfxeles en el dominio espacial o el numero de coeficientes de transformacion en el dominio de transformacion puede representar el tamano de una unidad de datos.
Un procedimiento de codificacion o caractensticas de codificacion de una unidad de datos actual se puede determinar con respecto a cada grupo de datos de entre una unidad de datos, un una secuencia de imagen de un video que se va a codificar actualmente.
El aparato de codificacion de video 100 puede codificar la imagen actual mediante la realizacion de una codificacion por prediccion incluyendo inter prediccion e intra prediccion, transformacion, cuantificacion, y codificacion por entropfa sobre cada unidad de datos.
Sobre la base de inter prediccion, con el fin de estimar un valor de pixel actual con referencia a un valor de pixel de una imagen temporalmente previa o subsiguiente, los datos residuales entre un valor de pixel de un valor de referencia de una imagen de referencia y un valor de pixel de una imagen actual, y datos de referencia indicando lo referido al valor de pixel se pueden determinar.
Con el fin de realizar de forma mas precisa inter prediccion, el aparato de codificacion de video 100 puede determinar los datos residuales y los datos de referencia mediante el uso de un valor de pixel de unidad de sub-pel. Con el fin de realizar una inter prediccion de unidad de sub-pel, el aparato de codificacion de video 100 puede determinar un valor de pixel de unidad de sub-pel ubicado entre los pfxeles de unidad de pel de valor entero mediante la interpolacion de los pfxeles de unidad de pel de valor entero adyacentes.
Asimismo, el valor de pixel de unidad de sub-pel se puede generar mediante la realizacion de una interpolacion filtrando dos o mas pfxeles de referencia de unidad de pel de numero entre entero incluyendo los pfxeles de unidad de pel de valor entero adyacentes. Los pfxeles de referencia para realizar un filtrado de interpolacion pueden ser pfxeles de una imagen de referencia.
Con el fin de realizar de forma eficiente interpolacion de imagen, el aparato de codificacion de video 100 puede
5
10
15
20
25
30
35
40
45
50
55
determinar de forma selectiva unos coeficientes de filtro de interpolacion. El codificador 120 puede incluir el aparato de interpolacion de imagen 100 ilustrado en la figura 1. Dicho de otra forma, con el fin de realizar inter prediccion de unidad de sub-pel, el codificador 120 puede generar un valor de pixel de unidad de sub-pel mediante el uso de un filtro de interpolacion que incluye unos coeficientes de filtro determinados por el aparato de interpolacion de imagen 100 sobre la base de transformacion y una transformacion inversa.
Con el fin de realizar de forma eficiente un filtrado de interpolacion, el aparato de codificacion de video 100 puede almacenar previamente coeficientes de filtro de interpolacion en la memoria. De acuerdo con una ubicacion de interpolacion, un alisamiento, el numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, y una funcion de base de filtrado de interpolacion sobre la base de transformacion se pueden almacenar en la memoria del aparato de codificacion de video 100.
Por ejemplo, al menos uno de (i) los coeficientes de filtro de unidad de 1/4 de pel de 8 tomas {-1, 4, -10, 57, 19, -7, 3, -1 } que tienen un factor de puesta a escala de 26, (ii) coeficientes de filtro de unidad de pel de 8 tomas {-1, 4, -11, 40, 40, -11, 4, -1 } que tienen un factor de puesta a escala de 26, (iii) coeficientes de filtro de unidad de 1/8 de pel de 4 tomas {-3, 60, 8, -4 } que tienen un factor de puesta a escala de 26, (iv) coeficientes de filtro de unidad de 1/4 de pel de 4 tomas {-4, 54, 16, -2 } que tienen un factor de puesta a escala de 26, (v) coeficientes de filtro de unidad de 3/8 de pel de 4 tomas {-5, 46, 27, -4 } que tienen un factor de puesta a escala de 26, y (vi) coeficientes de filtro de unidad de *s-pel de 4 tomas {-4, 36, 36, -4 } que tienen un factor de puesta a escala de 26 se pueden almacenar en la memoria y se pueden usar para realizar un filtrado de interpolacion de alisado.
Ademas de los coeficientes de filtro que se han mencionado en lo que antecede, los coeficientes de filtro de interpolacion de alisado modificables sobre la base de varias funciones de base y funciones de ventana tal como se muestra en las figuras 8A a 12C se pueden usar para realizar un filtrado de interpolacion.
Si el filtrado de interpolacion se realiza mediante el uso de los coeficientes de filtro almacenados en la memoria, se puede mejorar una velocidad de calculo de la inter prediccion.
De entre una pluralidad de filtros de interpolacion, el codificador 120 puede seleccionar y usar un filtro de interpolacion de alisado deseado para realizar una inter prediccion sobre la base de una ubicacion de interpolacion de unidad de sub-pel ay un alisamiento. Ademas, un filtro de interpolacion de alisado apropiado para un pixel actual se puede determinar sobre la base del numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, etc.
El codificador 120 puede determinar un filtro de interpolacion sobre la base de caractensticas de imagen. Por ejemplo, el codificador 120 puede determinar diferentes filtros de interpolacion sobre la base de las componentes de color de pfxeles. Por ejemplo, un filtro de interpolacion para pfxeles de luma y un filtro de interpolacion para pfxeles de croma se pueden seleccionar de forma separada y, por lo tanto, los valores de pixel de unidad de sub-pel se pueden generar de forma individual mediante la realizacion de un filtrado de interpolacion.
Un video se puede codificar mediante la realizacion de una inter prediccion sobre la base de una interpolacion de unidad de sub-pel, intra prediccion, transformacion y cuantificacion.
La unidad de salida 130 puede codificar y enviar informacion de codificacion y puede enviar datos de imagen codificados. Como la informacion de codificacion, la informacion acerca del filtro de interpolacion seleccionado se puede codificar adicionalmente. Dicho de otra forma, la informacion acerca de un filtro de interpolacion usado para realizar una codificacion por prediccion de unidad de sub-pel se puede codificar. Por ejemplo, un descodificador tiene que saber de un filtro de interpolacion usado para codificar una imagen con el fin de descodificar la imagen mediante el uso del mismo filtro de interpolacion usado en el procedimiento de codificacion. Para esto, la informacion que indica el filtro de interpolacion usado se puede codificar junto con la imagen. No obstante, si se selecciona un filtro sobre la base de un resultado de codificacion previo, es decir, contexto, la informacion acerca del filtro seleccionado puede no codificarse adicionalmente.
La unidad de salida 130 puede realizar una codificacion por entropfa en informacion de codificacion y datos de imagen codificados y puede enviar una secuencia de bits.
La figura 13B es un diagrama de bloques de un aparato de codificacion de video 200 usando un filtro de interpolacion de alisado, de acuerdo con un ejemplo de la presente invencion.
El aparato de descodificacion de video 200 incluye un receptor y extractor 220 y un descodificador 230. Las operaciones del receptor y extractor 220 y el descodificador 230 del aparato de descodificacion de video 200 se pueden controlar de forma cooperativa mediante un procesador de descodificacion de video, un procesador de graficos y una CPU.
Con el fin de reconstruir una imagen de una secuencia de bits, el aparato de descodificacion de video 200 puede descodificar datos de imagen codificados de la secuencia de bits mediante la realizacion de operaciones incluyendo descodificacion por entropfa, cuantificacion inversa, transformacion inversa, inter prediccion / compensacion, e intra prediccion / compensacion.
5
10
15
20
25
30
35
40
45
50
55
El receptor y extractor 220 recibe y analiza una secuencia de bits de un video codificado. El receptor y extractor 220 puede extraer datos codificados de cada unidad de datos de una imagen actual, e informacion de codificacion incluyendo la informacion acerca de un procedimiento de codificacion que se va a usar para descodificar los datos codificados, desde la secuencia de bits analizada.
Si la informacion de codificacion incluye la informacion de filtro de interpolacion, el descodificador 230 puede leer informacion acerca de un filtro de interpolacion usado para realizar una intra prediccion de unidad de sub-pel desde la informacion de filtro de interpolacion, y puede realizar compensacion de movimiento mediante el uso del filtro de interpolacion usado en un procedimiento de codificacion.
El descodificador 230 puede descodificar datos de imagen codificados mediante la realizacion de varias operaciones de descodificacion tal como descodificacion por entropfa, cuantificacion inversa, transformacion inversa, inter prediccion / compensacion, e intra prediccion / compensacion en una imagen codificada de acuerdo con varios procedimientos de descodificacion determinados sobre la base de informacion acerca de un modo de codificacion.
Con el fin de realizar compensacion de movimiento, una region de referencia de una imagen de referencia que es temporalmente previa o subsiguiente a una imagen actual se puede determinar mediante el uso de datos de referencia, y un valor de pixel de la region de referencia y datos residuales se pueden combinar para reconstruir un valor de pixel actual.
Si los datos residuales y los datos de referencia se determinan sobre la base de pfxeles interpolados en una unidad de sub-pel en un procedimiento de codificacion, el descodificador 230 tambien puede realizar compensacion de movimiento sobre la base de pfxeles interpolados en una unidad de sub-pel. Con el fin de realizar compensacion en movimiento de unidad de sub-pel, el descodificador 230 puede generar un valor de pixel de unidad de sub-pel mediante la interpolacion de pfxeles de unidad de pel de valor entero adyacentes de la imagen de referencia. El valor de pixel de unidad de sub-pel se puede generar mediante la realizacion de un filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad de pel de valor entero incluyendo los pfxeles de unidad de valor entero adyacentes.
Con el fin de realizar de forma eficiente interpolacion de imagen, el aparato de descodificacion de video 200 puede determinar de forma selectiva unos coeficientes de filtro de interpolacion. El descodificador 230 puede incluir el aparato de interpolacion de imagen 100 ilustrado en la figura 1. Dicho de otra forma, con el fin de realizar compensacion de movimiento de unidad de sub-pel, el descodificador 230 puede generar un valor de pixel de unidad de sub-pel mediante el uso de un filtro de interpolacion sobre la base de transformacion.
Con el fin de realizar de forma eficiente un filtrado de interpolacion, el aparato de descodificacion de video 200 puede almacenar previamente coeficientes de filtro de interpolacion seleccionadles de forma variable en la memoria de acuerdo con una ubicacion de interpolacion, un alisamiento, el numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, y una funcion de base de filtrado de interpolacion sobre la base de transformacion.
Tal como se ha descrito en lo que antecede, por ejemplo, al menos uno de (i) coeficientes de filtro de unidad de 1/4 de pel de 8 tomas {-1, 4, -10, 57, 19, -7, 3, -1 } que tienen un factor de puesta a escala de 26, (ii) coeficientes de filtro de unidad de 1/2 de pel de 8 tomas {-1, 4, -11,40, 40, -11,4, -1 } que tienen un factor de puesta a escala de 26, (iii) coeficientes de filtro de unidad de 1/8 de pel de 4 tomas (-3, 60, 8, -11) que tienen un factor de puesta a escala de 26, (iv) coeficientes de filtro de unidad de 1/4 de pel de 4 tomas {-4, 54, 16, -2} que tienen un factor de puesta a escala de 26, (v) coeficientes de filtro de unidad de 3 / 8 de pel de 4 tomas {-5, 46, 27, -4 } que tienen un factor de puesta a escala de 26, y (vi) coeficientes de filtro de unidad de 1 / 2 de pel de 4 tomas (-4, 36, 36, -4 } que tienen un factor de puesta a escala de 26 se pueden almacenar en memoria y se pueden usar para realizar un filtrado de interpolacion de alisado. Ademas de los coeficientes de filtro que se han mencionado en lo que antecede, los coeficientes de filtro de interpolacion de alisado modificables de acuerdo con varias funciones de base y funciones de ventana tal como se muestra en las figuras 8A a 12C se pueden usar para realizar un filtrado de interpolacion de alisado.
De entre una pluralidad de filtros de interpolacion, el descodificador 230 puede seleccionar y usar un filtro de interpolacion apropiado para que un pixel actual realice compensacion de movimiento de unidad de sub-pel, de acuerdo con una ubicacion de interpolacion de unidad de sub-pel a, el numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, etc.
Asimismo, el descodificador 230 puede determinar un filtro de interpolacion de alisado sobre la base de caractensticas de imagen. Por ejemplo, diferentes filtros de interpolacion se pueden determinar de acuerdo con unas componentes de color de pfxeles, filtrado de interpolacion para pfxeles de luma de filtrado de interpolacion para pfxeles de croma se pueden realizar de forma separada y, por lo tanto, los valores de pixel de unidades de sub-pel interpolados se puede generar de forma individual.
Por consiguiente, el descodificador 230 puede reconstruir datos en un dominio espacial mediante la realizacion de una cuantificacion inversa/transformacion inversa, y puede reconstruir valores de pixel y una imagen actual mediante la realizacion de una intra prediccion y compensacion de movimiento sobre la base de una interpolacion de unidad de sub-pel asf como interpolacion de unidad de pel de valor entero. Si se reconstruyen imagenes, se puede
5
10
15
20
25
30
35
40
45
50
descodificar un v^deo.
La figura 14A es un diagrama de flujo de un procedimiento de codificacion de imagen usando un filtro de interpolacion de alisado, de acuerdo con un ejemplo de la presente invencion.
En la operacion 1410, con el fin de codificar una imagen actual de un video de entrada, se realiza la codificacion por prediccion usando una interpolacion de unidad de sub-pel. Un filtro de interpolacion se selecciona de forma diferente sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion para generar un valor de pixel de unidad de sub-pel. El alisamiento del filtro de interpolacion se puede determinar sobre la base de la distancia entre una ubicacion de interpolacion y unas unidades de pel de valor entero.
El valor de unidad de sub-pel se puede generar mediante la realizacion de un filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad de pel de valor entero de una imagen de referencia. Los datos residuales y los datos de referencia se determinan mediante el uso del valor de pixel de unidad de sub-pel generado, realizando de ese modo codificacion por prediccion.
Con el fin de realizar de forma eficiente interpolacion de imagen, se pueden determinar de forma selectiva unos coeficientes de filtro de interpolacion. De entre los coeficientes de filtro de interpolacion previamente almacenados en la memoria, un filtro de interpolacion deseado se puede seleccionar sobre la base de una ubicacion de interpolacion de unidad de sub-pel, un alisamiento, el numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una funcion de base de filtrado de interpolacion sobre la base de transformacion, y una componente de color, y la interpolacion se puede realizar para generar el valor de pixel de unidad de sub-pel.
En la operacion 1420, la transformacion y la cuantificacion se realizan en un resultado de inter prediccion sobre la base de una interpolacion de unidad de sub-pel, e intra prediccion.
En la operacion 1430, una secuencia de bits se puede enviar mediante la realizacion de una codificacion por entropfa sobre una informacion de codificacion y datos de imagen codificados en la forma de coeficientes de transformacion cuantificados. La informacion de codificacion puede incluir informacion acerca de un filtro de interpolacion usado para realizar una codificacion por prediccion de unidad de sub-pel.
La figura 14B es un diagrama de flujo de un procedimiento de descodificacion de imagen usando un filtro de interpolacion de alisado, de acuerdo con un ejemplo de la presente invencion.
En la operacion 1450, una secuencia de bits de un video codificado se recibe, se descodifica por entropfa, y se analiza para extraer unos coeficientes de transformacion cuantificados e informacion de codificacion de una imagen actual de la secuencia de bits.
Si la informacion de codificacion incluye informacion acerca de un filtro de interpolacion, el tipo de un filtro de interpolacion requerido se puede leer de la informacion.
En la operacion 1460, de acuerdo con varios procedimientos de descodificacion determinados sobre la base de un modo de codificacion lefdo de la informacion de codificacion, la cuantificacion inversa y la transformacion inversa se realizan en los coeficientes de transformacion cuantificados, y se agregan datos residuales, reconstruyendose de ese modo datos en un dominio espacial.
En la operacion 1470, los datos de imagen codificados se pueden descodificar mediante la realizacion de varias operaciones de descodificacion tal como compensacion de movimiento e intra prediccion sobre la base del modo de codificacion.
En concreto, si los datos residuales codificados y los datos de referencia se extraen sobre la base de pfxeles interpolados en una unidad de sub-pel, la compensacion de movimiento se puede realizar sobre la base de los pfxeles interpolados en una unidad de sub-pel. De entre los filtros de interpolacion para generar un valor de pixel de unidad de sub-pel, un filtro de interpolacion se selecciona de forma diferente sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento.
Con el fin de realizar de forma eficiente interpolacion de imagen, los coeficientes de filtro de interpolacion se pueden determinar de forma selectiva. De entre los coeficientes de filtro de interpolacion almacenados previamente en memoria, se puede seleccionar un filtro de interpolacion deseado de acuerdo con una ubicacion de interpolacion de unidad de sub-pel, un alisamiento, el numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una funcion de base de filtrado de interpolacion sobre la base de transformacion, y una componente de color, e interpolacion se pueden realizar para generar el valor de pixel de unidad de sub-pel. Debido a que se realiza compensacion de movimiento en pfxeles interpolados mediante el uso de los coeficientes de filtro de interpolacion previamente almacenados en la memoria, puede aumentar una velocidad de calculo.
Se determina una imagen de referencia y una region de referencia mediante el uso de los datos de referencia, y el valor de pixel de unidad de sub-pel se puede generar mediante la realizacion de un filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad de pel de valor entero de la imagen de referencia. Se puede realizar
5
10
15
20
25
30
35
40
45
50
55
compensacion de movimiento mediante la combinacion del valor de p^xel de unidad de sub-pel generado y los datos residuales y, por lo tanto, se puede realizar descodificacion por prediccion.
En la operacion 1480, se reconstruye una imagen actual mediante el uso de valores de pixel que se obtienen mediante la realizacion de una descodificacion por prediccion y, por lo tanto, se descodifica un video.
<Codificacion y descodificacion de video usando una interpolacion de alisado sobre la base de unas unidades de codificacion que tienen una estructura de arbol>
Los aparatos de codificacion y de descodificacion de video que usan un filtro de interpolacion de alisado sobre la base de unas unidades de codificacion que tienen una estructura de arbol, y procedimientos de codificacion y de descodificacion de video que se corresponden con los aparatos de codificacion y de descodificacion de video, de acuerdo con unos ejemplos de la presente invencion, se describiran a continuacion en detalle con referencia a las figuras 13A a 27.
El aparato de codificacion de video 100 puede codificar un video sobre la base de unas unidades de codificacion y unas unidades de transformacion que tienen una estructura de arbol.
Una imagen actual de un video se puede dividir sobre la base de una unidad de codificacion maxima para la imagen actual. Si la imagen actual es mas grande que la unidad de codificacion maxima, los datos de imagen de la imagen actual se pueden dividir en al menos una unidad de codificacion maxima. La unidad de codificacion maxima puede ser una unidad de datos que tiene un tamano de 32 * 32, 64 * 64, 128 * 128, 256 * 256, etc., en la que una forma de la unidad de datos es un cuadrado que tiene un ancho y una longitud en cuadrados de 2. El codificador 120 puede codificar datos de imagen de cada una de al menos una unidad de codificacion maxima.
Una unidad de codificacion de acuerdo con un ejemplo de la presente invencion se puede caracterizar por un tamano y un tamano maximo y una profundidad. La profundidad en otro numero de veces que la unidad de codificacion se divide espacialmente de la unidad de codificacion maxima, y a medida que la profundidad se agudiza, las unidades de codificacion mas profunda de acuerdo con las profundidades se pueden dividir de la unidad de codificacion maxima a una unidad de codificacion minima. Una profundidad de la unidad de codificacion maxima es una profundidad superior y una profundidad de la unidad de codificacion minima es una profundidad interior. Debido a que un tamano de una unidad de codificacion que se corresponde con cada profundidad disminuye a medida que se agudiza la profundidad de la unidad de codificacion maxima, una unidad de codificacion que se corresponde con una profundidad superior puede incluir una pluralidad de unidades de codificacion que se corresponden con unas profundidades inferiores.
Tal como se ha descrito en lo que antecede, los datos de imagen de la imagen actual se dividen en las unidades de codificacion maxima de acuerdo con un tamano maximo de la unidad de codificacion, y cada una de las unidades de codificacion maxima puede incluir unidades de codificacion mas profunda que estan divididas de acuerdo con unas profundidades. Debido a que la unidad de codificacion maxima de acuerdo con un ejemplo de la presente invencion esta dividida de acuerdo con unas profundidades, los datos de imagen de un dominio espacial incluido en la unidad de codificacion maxima se pueden clasificar de forma jerarquica de acuerdo con unas profundidades.
Una profundidad maxima y un tamano maximo de una unidad de codificacion, que limitan el numero total de veces que se divide de forma jerarquica una altura y un ancho de la unidad de codificacion maxima, se pueden predeterminar.
El codificador 120 codifica al menos una region dividida que se obtiene mediante la division de una region de la unidad de codificacion maxima de acuerdo con unas profundidades, y determina una profundidad para enviar datos de imagen finalmente codificados de acuerdo con al menos una region dividida. Dicho de otra forma, el codificador 120 determina una profundidad codificada mediante la codificacion de los datos de imagen en las unidades de codificacion mas profunda de acuerdo con unas profundidades, de acuerdo con la unidad de codificacion maxima de la imagen actual, y al seleccionar una profundidad que tiene el menor error de codificacion.
El codificador 120 puede enviar los datos de imagen codificados de la unidad de codificacion que se corresponde con la profundidad codificada determinada. Asimismo, el codificador 120 puede transmitir una informacion acerca de la profundidad codificada o determinada a la unidad de salida 130 para que la informacion acerca de la profundidad codificada se pueda codificar como informacion de codificacion.
Los datos de imagen de la unidad de codificacion maxima se codifican sobre la base de las unidades de codificacion mas profunda que se corresponden con al menos una profundidad igual a o por debajo de la profundidad maxima, y resulta descodificar los datos de imagen que se comparan sobre la base de cada una de las unidades de codificacion mas profunda. Una profundidad que tiene el menor error de codificacion se puede seleccionar despues de comparar errores de codificacion de las unidades de codificacion mas profunda. Al menos una profundidad codificada se puede seleccionar para cada unidad de codificacion maxima.
El tamano de la unidad de codificacion maxima se divide a medida que una unidad de codificacion se divide de forma jerarquica de acuerdo con unas profundidades, y a medida que aumenta el numero de unidades de
5
10
15
20
25
30
35
40
45
50
55
codificacion. Asimismo, incluso si las unidades de codificacion corresponden a la misma profundidad en una unidad de codificacion maxima, se determina si se divide cada una de las unidades de codificacion que se corresponden con la misma profundidad a una profundidad inferior al medir un error de codificacion de los datos de imagen de cada unidad de codificacion, de forma separada. Por consiguiente, incluso cuando se incluyen datos de imagen en una unidad de codificacion maxima, los datos de imagen se dividen en regiones de acuerdo con las profundidades y los errores de codificacion pueden inferir de acuerdo con regiones en una unidad de codificacion maxima y, por lo tanto, las profundidades codificadas pueden inferir de acuerdo con regiones en los datos de imagen. Por lo tanto, una o mas profundidades se pueden determinar en una unidad de codificacion maxima, y los datos de imagen de la unidad de codificacion maxima se pueden dividir de acuerdo con unidades de codificacion de al menos una profundidad codificada.
Por consiguiente, el codificador 120 puede determinar unidades de codificacion que tienen una estructura de arbol incluida en la unidad de codificacion maxima. Las 'unidades de codificacion que tienen una estructura de arbol' de acuerdo con un ejemplo de la presente invencion incluyen unidades de codificacion que se corresponden con una profundidad determinada para hacer la profundidad codificada, de entre todas las unidades de codificacion mas profunda incluidas en la unidad de codificacion maxima. Una unidad de codificacion de una profundidad codificada se puede determinar de forma jerarquica de acuerdo con unas profundidades en la misma region de la unidad de codificacion maxima, y se pueden determinar de forma independiente en diferentes regiones. De forma similar, una profundidad codificada en una region actual se puede determinar de forma independiente a partir de una profundidad codificada en otra region.
Una profundidad maxima de acuerdo con un ejemplo es un mdice relacionado con el numero de veces que se realiza la division de una unidad de codificacion maxima a una unidad de codificacion minima. Una primera profundidad maxima de acuerdo con un ejemplo puede denotar el numero total de veces que se realiza la division de la unidad de codificacion maxima a la unidad de codificacion minima. Una segunda profundidad maxima de acuerdo con un ejemplo puede denotar el numero total de niveles de profundidad de la unidad de codificacion maxima a la unidad de codificacion minima. Por ejemplo, cuando una profundidad de la unidad de codificacion maxima es 0, una profundidad de una unidad de codificacion, en la que la unidad de codificacion maxima se divide una vez, se puede establecer a 1, y una profundidad de una unidad de codificacion, en la que la unidad de codificacion maxima se divide dos veces, se puede establecer a 0. En el presente caso, si la unidad de codificacion minima es una unidad de codificacion en la que la unidad de codificacion maxima se divide cuatro veces, existen cinco niveles de profundidad de profundidades 0, 1, 2, 3 y 4 y, por lo tanto, la primera profundidad maxima se puede establecer a 4, y la segunda profundidad maxima se puede establecer a 5.
La codificacion por prediccion y una transformacion se pueden realizar de acuerdo con la unidad de codificacion maxima. La codificacion por prediccion y la transformacion tambien se realizan sobre la base de las unidades de codificacion mas profunda de acuerdo con una profundidad igual a o profundidades menores que la profundidad maxima, de acuerdo con la unidad de codificacion maxima.
Debido a que el numero de unidades de codificacion mas profunda aumenta en cualquier momento que se divide la unidad de codificacion maxima de acuerdo con unas profundidades, la codificacion incluyendo la codificacion por prediccion y la transformacion se realiza en todas las unidades de codificacion mas profunda generadas a medida que se agudiza la profundidad. Para conveniencia de descripcion, la codificacion por prediccion y la transformacion se describiran a continuacion sobre la base de una unidad de codificacion de una profundidad actual, en una unidad de codificacion maxima.
El aparato de codificacion de video 100 puede seleccionar de forma variable un tamano o forma de una unidad de datos para codificar los datos de imagen. Con el fin de codificar los datos de imagen, las operaciones, tal como codificacion por prediccion, transformacion, y codificacion por entropfa, se realizan, y en este momento, la misma unidad de datos se puede usar para todas las operaciones o diferentes unidades de datos se pueden usar para cada operacion.
Por ejemplo, el aparato de codificacion de video 100 puede seleccionar no solo una unidad de codificacion para codificar los datos de imagen, sino tambien una unidad de datos diferente de la unidad de codificacion para realizar la codificacion por prediccion sobre los datos de imagen en la unidad de codificacion.
Con el fin de realizar una codificacion por prediccion de la unidad de codificacion maxima, la codificacion por prediccion se puede realizar sobre la base de una unidad de codificacion que se corresponde con una profundidad codificada, es decir, sobre la base de una unidad de codificacion que ya no esta dividida a unidades de codificacion que se corresponden con una profundidad inferior. En lo sucesivo, la unidad de codificacion que ya no esta dividida se vuelve una unidad basica para la codificacion por prediccion que se denominara como una 'unidad de prediccion'. Una division que se obtiene mediante la division de la unidad de prediccion puede incluir una unidad de prediccion a una unidad de datos que se obtiene mediante la division de al menos uno de una altura y un ancho de la unidad de prediccion.
Por ejemplo, cuando una unidad de codificacion de 2N * 2N (en la que N es un numero entero positivo) ya no esta dividida y se vuelve una unidad de prediccion de 2N * 2N, un tamano de una division puede ser 2N * 2N, 2N * N,
5
10
15
20
25
30
35
40
45
50
55
N x 2N o N x N. Ejemplos de un tipo de division incluyen divisiones simetricas que se obtienen mediante la division de forma simetrica de una altura o ancho de la unidad de prediccion, unas divisiones que se obtienen mediante la division de forma asimetrica de la altura o el ancho de la unidad de prediccion, tal como 1 : n o n : 1, unas divisiones que se obtienen mediante la division de forma geometrica de la unidad de prediccion, y unas divisiones que tienen formas arbitrarias.
Un modo de prediccion de la unidad de prediccion puede ser al menos uno de un intra modo, un inter modo, y un modo de salto. Por ejemplo, el intra modo o el inter modo se pueden realizar sobre la division de 2N x 2N, 2N x N, N x 2N, N x n. Asimismo, el modo de salto se puede realizar solo en la division de 2N x 2N. La codificacion se realiza de forma independiente en una unidad de prediccion en una unidad de codificacion, seleccionando de ese modo un modo de prediccion que tiene un error de codificacion menor.
El aparato de codificacion de video 100 tambien puede realizar la transformacion sobre los datos de imagen en una unidad de codificacion no solo sobre la base de la unidad de codificacion para codificar los datos de imagen, sino tambien sobre la base de una unidad de datos que es diferente de la unidad de codificacion.
Con el fin de realizar la transformacion de la unidad de codificacion, la transformacion se puede realizar sobre la base de una unidad de transformacion que tiene un tamano menor que o igual a la unidad de codificacion. Por ejemplo, la unidad de transformacion para la transformacion puede incluir una unidad de datos para un intra modo y una unidad de datos para un inter modo.
De forma similar a la unidad de codificacion, la unidad de transformacion de la unidad de codificacion se puede dividir de forma recursiva en regiones de tamano menor, para que la unidad de transformacion se pueda determinar de forma independiente en unidades de regiones. Por lo tanto, los datos residuales en la unidad de codificacion se pueden dividir de acuerdo con las unidades de transformacion que tienen la estructura de arbol de acuerdo con las profundidades de transformacion.
Una profundidad de transformacion que indica el numero de veces que se realiza la division para llegar a la unidad de transformacion mediante la division de la altura y el ancho de la unidad de codificacion tambien se puede establecer en la unidad de transformacion. Por ejemplo, en una unidad de codificacion actual de 2N x 2N, una profundidad de transformacion puede ser 0 cuando el tamano de una unidad de transformacion tambien es 2N x 2N, y puede ser 1 cuando el tamano de la unidad transformacion es N*N, y puede ser 2 cuando el tamano de la unidad de transformacion es N / 2 x N / 2. Dicho de otra forma, las unidades de transformacion que tienen una estructura de arbol se pueden establecer de acuerdo con unas profundidades de transformacion.
La informacion de codificacion de acuerdo con una profundidad codificada requiere no solo informacion acerca de la profundidad codificada, sino tambien informacion acerca de la codificacion por prediccion y la transformacion. Por consiguiente, el codificador 120 no solo determina una profundidad codificada que tiene un error de codificacion menor, sino que tambien determina un tipo de division en una unidad de prediccion, un modo de prediccion de acuerdo con unidades de prediccion, y un tamano de una unidad de transformacion para transformacion. Para intra prediccion, la informacion de codificacion de acuerdo con una profundidad puede incluir informacion relacionada con el filtrado de interpolacion para interpolar unidades de sub-pel.
Asimismo, el codificador 120 puede realizar transformacion mediante el uso de unidades de transformacion que tienen una estructura de arbol para codificar unidades de codificacion, sobre la base de un nivel de division maximo de las unidades de transformacion, que se establece previamente y de forma restrictiva en cada unidad de codificacion maxima o una unidad de codificacion actual.
En cada una de las unidades de codificacion mas profunda de acuerdo con unas profundidades, una unidad de transformacion basica que tiene un tamano menor que o igual a una unidad de codificacion se puede dividir de forma jerarquica en unidades de transformacion de profundidades de transformacion inferiores. Las unidades de transformacion que tienen una estructura de arbol pueden incluir una unidad de transformacion basica que tiene un tamano maximo que se permite actualmente, y las unidades de transformacion de nivel inferior en relacion con un nivel de division maximo que se permite para unidades de codificacion.
Despues de realizar transformacion y en cada nivel de acuerdo con una profundidad de transformacion en una unidad de codificacion actual, el codificador 120 puede determinar unidades de transformacion que tienen una estructura de arbol, que son independientes de unidades de transformacion de regiones adyacentes y forman una estructura jerarquica entre unas unidades de transformacion en la misma region de acuerdo con unas profundidades de transformacion.
Dicho de otra forma, las unidades de transformacion que tienen una estructura de arbol se pueden determinar mediante la realizacion de una transformacion en cada unidad de codificacion mediante el uso de unidades de transformacion de varios tamanos y entonces mediante la comparacion de resultados de transformacion. A pesar de que una unidad de codificacion se esta determinando, se puede determinar una unidad de transformacion para transformar la unidad de codificacion. En cualquier momento que las unidades de codificacion de acuerdo con cada una de una o mas profundidades se codifican, las unidades de transformacion de acuerdo con cada una de una o mas profundidades de transformacion se pueden usar para realizar transformacion.
5
10
15
20
25
30
35
40
45
50
55
Una unidad de transformacion que tiene un error de codificacion menor se ha determinado para cada unidad de codificacion. Con el fin de determinar una profundidad de transformacion que tiene un error de codificacion mmimo en una unidad de transformacion, se pueden medir errores de codificacion y se pueden comparar en todas las unidades de transformacion mas profunda de acuerdo con unas profundidades. Una unidad de transformacion se puede determinar como una unidad de datos para minimizar un error de transformacion de una unidad de codificacion.
Por consiguiente, debido a que una combinacion de una unidad de codificacion mas profunda y una unidad de transformacion mas profunda de acuerdo con las profundidades, que tiene un error de codificacion menor, se determina de forma individual en cada region de una unidad de codificacion maxima, las unidades de codificacion que tienen una estructura de arbol y unas unidades de transformacion que tienen una estructura de arbol se pueden determinar.
Los procedimientos para determinar unidades de codificacion que tienen una estructura de arbol, unas divisiones y unas unidades de transformacion que tienen una estructura de arbol en la unidad de codificacion maxima, de acuerdo con unos ejemplos de la presente invencion, se describiran en detalle en lo sucesivo con referencia las figuras 15 a 25.
El codificador 120 puede medir un error de codificacion de unas unidades de codificacion mas profunda de acuerdo con unas profundidades mediante el uso de optimizacion de distorsion de velocidad sobre la base de multiplicadores lagrangianos.
El aparato de codificacion de video 100 puede enviar los datos de imagen de la unidad de codificacion maxima, que se codifican sobre la base de al menos una profundidad codificada determinada por el codificador 120, e informacion acerca de un modo de codificacion de acuerdo con la profundidad codificada, que se codifica por la unidad de salida 130, en la forma de una secuencia de bits.
La informacion acerca del modo de bits de codificacion de las unidades de codificacion mas profunda de acuerdo con unas profundidades, que se determina a medida que una imagen se codifica sobre la base de unas unidades de codificacion, unas unidades de prediccion y unas unidades de transformacion que tienen una estructura de arbol, se pueden incluir en un encabezado, un grupo de parametros de secuencia (SPS, sequence parameter set), o un grupo de parametros de imagen (PPS, picture parameter set) de una secuencia de bits.
Los datos de imagen codificados se pueden obtener mediante la codificacion de datos residuales de una imagen.
La informacion acerca del modo de codificacion de acuerdo con la profundidad codificada puede incluir informacion acerca de la profundidad codificada, sobre el tipo de division en la unidad de prediccion, el modo de prediccion, y el tamano de la unidad de transformacion.
La informacion acerca de la profundidad codificada se puede definir mediante el uso de informacion de division de acuerdo con unas profundidades, que representa si se realiza la codificacion en unidades de codificacion de una profundidad inferior en lugar de una profundidad actual. Si la profundidad actual de la unidad de codificacion actual es la profundidad codificada, los datos de imagen en la unidad de codificacion actual se codifican y se envfan y, por lo tanto, la informacion de division se puede dividir no para dividir la unidad de codificacion actual a una profundidad interior. Como alternativa, si la profundidad actual de la unidad de codificacion actual no es la profundidad codificada, la codificacion se realiza sobre la unidad de codificacion de la profundidad inferior y, por lo tanto, se puede definir y la informacion de division para dividir la unidad de codificacion actual para obtener las unidades de codificacion de la profundidad inferior.
Si la profundidad actual no es la profundidad codificada, se realiza una codificacion sobre la unidad de codificacion que esta dividida en la unidad de codificacion de la profundidad inferior. Debido a que al menos una unidad de codificacion de la profundidad inferior existe en una unidad de codificacion de la profundidad actual, la codificacion se realiza de forma repetida en cada unidad de codificacion de la profundidad interior y, por lo tanto, la codificacion se puede realizar de forma recursiva para las unidades de codificacion que tienen la misma profundidad.
Debido a que las unidades de codificacion que tienen una estructura de arbol se determinan para una unidad de codificacion maxima, y la informacion acerca de al menos un modo de codificacion se determina para una unidad de codificacion de una profundidad codificada, la informacion acerca de al menos un modo de codificacion se puede determinar para una unidad de codificacion maxima. Asimismo, una profundidad codificada de los datos de imagen de la unidad de codificacion maxima puede ser diferente de acuerdo con ubicaciones debido a que los datos de imagen se dividen de forma jerarquica de acuerdo con unas profundidades y, por lo tanto, la informacion acerca de la profundidad codificada y el modo de codificacion se pueden establecer para los datos de imagen.
Por consiguiente, la unidad de salida 130 puede asignar informacion de codificacion sobre una profundidad codificada correspondiente y un modo de codificacion para al menos una de una unidad de codificacion, la unidad de prediccion y una unidad minima incluida en una unidad de codificacion maxima.
La unidad minima de acuerdo con un ejemplo de la presente invencion es una unidad de datos rectangular que se
5
10
15
20
25
30
35
40
45
50
55
obtiene mediante la division de la unidad de codificacion mmima que constituye la profundidad inferior por 4. Como alternativa, la unidad minima puede ser una unidad de datos rectangular maxima que se puede incluir en todas las unidades de codificacion, unidades de prediccion, unidades de division y unas unidades de transformacion incluidas en la unidad de codificacion maxima.
Por ejemplo, la informacion de codificacion enviada a traves de la unidad de salida 130 se puede clasificar en informacion de codificacion de acuerdo con unidades de codificacion, e informacion de codificacion de acuerdo con unidades de prediccion. La informacion de codificacion de acuerdo con las unidades de codificacion puede incluir la informacion acerca del modo de prediccion y sobre el tamano de las divisiones. La informacion de codificacion de acuerdo con las unidades de prediccion puede incluir informacion acerca de una direccion estimada de un inter modo, sobre un mdice de imagen de referencia del inter modo, sobre un vector de movimiento, sobre una componente de croma de un intra modo, y sobre un procedimiento de interpolacion del intra modo.
La informacion acerca de un tamano maximo de la unidad de codificacion definida de acuerdo con las imagenes, fragmentos, o GOP, e informacion acerca de una profundidad maxima se puede insertar en un encabezado, un SPF o un PPS de una secuencia de bits.
En el aparato de codificacion de video 100, la unidad de codificacion mas profunda puede ser una unidad de codificacion que se obtiene mediante la division de una altura o un ancho de una unidad de codificacion de una profundidad superior, que es una capa por encima, por 2. Dicho de otra forma, cuando el tamano de la unidad de codificacion de la profundidad actual es 2N * 2N, el tamano de la unidad de codificacion de la profundidad inferior es N x N. Asimismo, la unidad de codificacion de la profundidad actual que tiene el tamano de 2N * 2N puede incluir maximo 4 de la unidad de codificacion de la profundidad inferior.
Por consiguiente, el aparato de codificacion de video 100 puede formar las unidades de codificacion que tienen la estructura de arbol al determinar unidades de codificacion que tienen una forma optima y un tamano optimo para cada unidad de codificacion maxima, sobre la base del tamano de la unidad de codificacion maxima y tambien la profundidad maxima determinada considerando caractensticas de la imagen actual. Asimismo, debido a que la codificacion se puede realizar en cada unidad de codificacion maxima mediante el uso de cualquiera de los varios modos de prediccion y transformaciones, se puede determinar un modo de codificacion optimo considerando caractensticas de la unidad de codificacion de varios tamanos de imagen.
Por lo tanto, si una imagen que tiene alta resolucion o gran cantidad de datos se codifica en un macro bloque convencional, un numero de macro bloques por imagen aumenta de forma excesiva. Por consiguiente, un numero de piezas de informacion comprimida generada para cada macro bloque aumenta y, por lo tanto, es diffcil transmitir la informacion comprimida y disminuye la eficiencia de compresion de datos. No obstante, mediante el uso del aparato de codificacion de video 100, la eficiencia de compresion de imagen puede aumentar debido a que una unidad de codificacion se ajusta mientras considera caractensticas de una imagen mientras aumenta un tamano maximo de una unidad de codificacion mientras considera un tamano de la imagen.
La unidad de salida 130 puede codificar y enviar informacion de codificacion indicando un procedimiento de codificacion usado para codificar un video sobre la base de unas unidades de codificacion que tienen una estructura de arbol y unas unidades de transformacion que tienen una estructura de arbol. La informacion de codificacion puede incluir informacion acerca de varios modos de codificacion de unas unidades de codificacion que se corresponden con una profundidad codificada, e informacion acerca de la profundidad codificada.
Las definiciones de varios terminos, tal como una unidad de codificacion, una profundidad, una unidad de prediccion, una unidad de transformacion, e informacion acerca de varios modos de codificacion, para varias operaciones del aparato de descodificacion de video 200 son identicas a los descritos con referencia al aparato de codificacion de video 100.
El receptor 210 recibe una secuencia de bits de un video codificado. El receptor y extractor 220 analiza la secuencia de bits recibida. El receptor y extractor 220 extrae datos de imagen codificados para cada unidad de codificacion de la secuencia de bits analizada, en la que las unidades de codificacion tienen una estructura de arbol de acuerdo con cada unidad de codificacion maxima, y envfa los datos de imagen extrafdos al descodificador 230. El receptor y extractor 220 puede extraer informacion acerca de un tamano maximo de una unidad de codificacion de una imagen actual, de un encabezado, un SPS, un PPS sobre la imagen actual.
Asimismo, el receptor y extractor 220 puede extraer informacion de codificacion sobre las unidades de codificacion que tienen una estructura de arbol de acuerdo con cada unidad de codificacion maxima, de la secuencia de bits analizada. La informacion acerca de una profundidad codificada y un modo de codificacion se extrae de la informacion de codificacion. La informacion que se extrae acerca de la profundidad codificada y el modo de codificacion se envfa al descodificador 230. Dicho de otra forma, los datos de imagen en una secuencia de bits se pueden dividir en la unidad de codificacion maxima para que el descodificador 230 pueda descodificar los datos de imagen para cada unidad de codificacion maxima.
La informacion acerca de la profundidad codificada y el modo de codificacion de acuerdo con la unidad de codificacion maxima se puede establecer para informacion acerca de al menos una unidad de codificacion que se
5
10
15
20
25
30
35
40
45
50
55
corresponde con la profundidad codificada, e informacion acerca de un modo de codificacion puede incluir informacion acerca de un tipo de division de una unidad de codificacion correspondiente que se corresponde con la profundidad codificada, acerca de un modo de prediccion, y un tamano de una unidad de transformacion.. Para inter prediccion, la informacion relacionada con el filtrado de interpolacion para interpolar unidades de sub-pel se puede extraer de la informacion de codificacion de acuerdo con una profundidad codificada. Asimismo, se puede extraer informacion de division de acuerdo con la informacion acerca de la profundidad codificada.
La informacion acerca de la profundidad codificada y el modo de codificacion de acuerdo con cada unidad de codificacion maxima extrafda por el receptor y extractor 220 es informacion acerca de una profundidad codificada y un modo de codificacion determinado para generar un error de codificacion mmimo cuando un codificador, tal como el aparato de codificacion de video 100, realiza de forma repetida una codificacion para cada unidad de codificacion mas profunda de acuerdo con unas profundidades de acuerdo con cada unidad de codificacion maxima. Por consiguiente, el aparato de codificacion de video 200 puede reconstruir una imagen al descodificar los datos de imagen de acuerdo con una profundidad codificada y un modo de codificacion que genera el error de codificacion minima.
Debido a que la informacion de codificacion acerca de la profundidad codificada y el modo de codificacion se pueden asignar a una unidad de datos previamente determinada de entre una unidad de codificacion correspondiente, una unidad de prediccion y una unidad minima, el receptor y extractor 220 puede extraer la informacion acerca de la profundidad codificada y el modo de codificacion de acuerdo con las unidades de datos previamente determinadas. Las unidades de datos previamente determinadas a las cuales se asigna la misma informacion acerca de la profundidad codificada y el modo de codificacion se puede inferir para hacer unidades de datos incluidas en la misma unidad de codificacion maxima.
El descodificador 230 puede determinar al menos una profundidad codificada de una unidad de codificacion maxima actual mediante el uso de informacion de division de acuerdo con unas profundidades. La informacion de division representa que los datos de imagen ya no estan divididos en la profundidad actual, la profundidad actual es una profundidad codificada. Por consiguiente, el descodificador 230 puede descodificar datos de imagen codificados de al menos una unidad de codificacion que se corresponde con cada profundidad codificada en la unidad de codificacion maxima actual mediante el uso de la informacion acerca del tipo de division de la unidad de prediccion, el modo de prediccion, y el tamano de la unidad de transformacion para cada unidad de codificacion que se corresponde con la profundidad codificada, y enviar los datos de imagen de la unidad de codificacion maxima actual.
Dicho de otra forma, las unidades de datos que contienen la informacion de codificacion incluyendo la misma informacion de division se pueden recopilar al observar el grupo de informacion de codificacion asignado para la unidad de datos previamente determinada desde la unidad de codificacion, la unidad de prediccion, y la unidad minima, y se puede considerar que las unidades de datos recopiladas son una unidad de datos que se va a descodificar por el descodificador 230 en el mismo modo de codificacion.
El descodificador 230 puede reconstruir la imagen actual al descodificar los datos de imagen codificados en cada unidad de codificacion maxima sobre la base de la informacion acerca de la profundidad codificada y el modo de codificacion de acuerdo con las unidades de codificacion maxima. El tipo de division, el modo de prediccion, y la unidad de transformacion se pueden leer como el modo de codificacion para cada unidad de codificacion de entre las unidades de codificacion que tienen la estructura de arbol incluida en cada unidad de codificacion maxima. Un procedimiento de descodificacion puede incluir una prediccion que incluye intra prediccion y compensacion de movimiento, y una transformacion inversa.
El descodificador 230 puede realizar una intra prediccion o compensacion de movimiento de acuerdo con una division y un modo de prediccion de cada unidad de codificacion, sobre la base de la informacion acerca del tipo de division y el modo de prediccion de la unidad de prediccion de las unidades de codificacion que tienen una estructura de arbol.
Asimismo, el descodificador 230 puede leer la estructura de unidades de transformacion que tienen una estructura de arbol y puede realizar transformacion inversa en cada unidad de codificacion sobre la base de las unidades de transformacion.
El aparato de descodificacion de video 200 puede tener informacion acerca de al menos una unidad de codificacion que genera el error de codificacion mmimo cuando la codificacion se realiza de forma recursiva para cada unidad de codificacion maxima, y puede usar la informacion para descodificar la imagen actual. Dicho de otra forma, las unidades de codificacion que tienen una estructura de arbol determinadas para hacer las unidades de codificacion optima en cada unidad de codificacion maxima se pueden descodificar. Asimismo, el tamano maximo de la unidad de codificacion se determina en consideracion de la resolucion y una cantidad de datos de imagen.
Por consiguiente, incluso si los datos de imagen tienen una resolucion alta y una gran cantidad de datos, los datos de imagen se pueden descodificar y reconstruir de forma eficiente mediante el uso de un tamano de una unidad de codificacion y un modo de codificacion, que se determinan de forma adaptable de acuerdo con caractensticas de los datos de imagen, mediante el uso de informacion acerca de un modo de codificacion optimo recibido de un
5
10
15
20
25
30
35
40
45
50
55
codificador.
La figura 15 es un diagrama para describir un concepto de unas unidades de codificacion de acuerdo con una realizacion de la presente invencion.
Un tamano de una unidad de codificacion se puede expresar en ancho x altura, y puede ser 64 * 64, 32 * 32, 16 ^ 16, y 8 * 8. Una unidad de codificacion de 64 * 64 puede estar dividida en divisiones de 64 * 64, 64 * 32, 32 * 64, o 32 * 32, una unidad de codificacion de 32 * 32 puede estar dividida en divisiones de 32 * 32, 32 * 16, 16 * 32, o 16 * 16, una unidad de codificacion de 16 * 16 puede estar dividida en divisiones de 16 * 16, 16 * 8, 8*16, u 8*8y una unidad de codificacion de 8*8 puede estar dividida en divisiones de 8*8, 8*4, 4*8 o 4*4.
En los datos de video 310, una resolucion es 1920 * 1080, un tamano maximo de una unidad de codificacion es 64, y una profundidad maxima es 2. En los datos de unidad 320, una resolucion es 1920 * 1080, un tamano maximo de una unidad de codificacion es 64, y una profundidad maxima es 3. En los datos de video 330, una resolucion es 352 * 288, un tamano maximo de una unidad de codificacion es 16, y una profundidad maxima es 1. La profundidad maxima mostrada en la figura 15 denota un numero total de divisiones de una unidad de codificacion maxima a una unidad de descodificacion minima.
Si una resolucion es alta o una cantidad de datos es grande, un tamano maximo de una unidad de codificacion puede ser grande para no solo aumentar la eficiencia de codificacion sino tambien reflejar de forma precisa las caractensticas de una imagen. Por consiguiente, el tamano maximo de la unidad de codificacion de los datos de video 310 y 320 que tienen la resolucion mas alta que los datos de video 330 puede ser 64.
Debido a que la profundidad maxima de los datos de video 310 es 2, las unidades de codificacion 315 de los datos de video 310 pueden incluir una unidad de codificacion maxima que tienen un tamano de eje largo de 64, y las unidades de codificacion que tienen tamanos de eje largo de 32 y 16 debido a que las profundidades se agudizan a dos capas mediante la division de la unidad de codificacion maxima dos veces. Mientras tanto, debido a que la profundidad maxima de los datos de video 330 es 1, las unidades de codificacion 335 de los datos de video 330 pueden incluir una unidad de codificacion maxima que tiene un tamano de eje largo de 16, y las unidades de codificacion que tienen un tamano de eje largo de 8 debido a que las profundidades se agudizan a una capa mediante la division de la unidad de codificacion maxima una vez.
Debido a que la profundidad maxima de los datos de video 320 es 3, las unidades de codificacion 325 de los datos de video 320 pueden incluir una unidad de codificacion maxima que tiene un tamano de eje largo de 64 y unas unidades de codificacion que tienen tamanos de eje largo de 32, 16, y 8 debido a que las profundidades se agudizan a tres capas mediante la division de la unidad de codificacion maxima tres veces. A medida que una profundidad se agudiza, la informacion detallada se puede expresar de forma precisa.
La figura 16 es un diagrama de bloques de un codificador de imagen 400 sobre la base de unas unidades de codificacion, de acuerdo con un ejemplo de la presente invencion.
El codificador de imagen 400 realiza operaciones del codificador 120 del aparato de codificacion de video 100 para codificar datos de imagen. Dicho de otra forma, un intra pronosticador 410 realiza una intra prediccion en unidades de codificacion en un intra modo, de entre una trama actual 405, y un estimador de movimiento 420 y un compensador de movimiento 425 realiza una inter estimacion y una compensacion de movimiento en unidades de codificacion en un inter modo de entre la trama actual 405 mediante el uso de la trama actual 405, y una trama de referencia 495.
Con el fin de realizar de forma precisa estimacion de movimiento mediante el uso de pfxeles de referencia en unidades de sub-pel, el estimador de movimiento 420 y el compensador de movimiento 425 pueden generar pfxeles en las unidades de sub-pel mediante la interpolacion de pfxeles en unidades de pel de valor entero. Un filtro de interpolacion para generar pfxeles en unidades de sub-pel puede ser el filtro de interpolacion de alisado que se ha descrito en lo que antecede en relacion con las figuras 1 y 13A.
En la salida de datos del intra pronosticador 410, el estimador de movimiento 420, y el compensador de movimiento 425 se envfa como un coeficiente de transformacion cuantificado a traves de un transformador 430 y un cuantificador 440. El coeficiente de transformacion cuantificado se reconstruye como datos en un dominio espacial a traves de un cuantificador inverso 460 y un transformador inverso 470, y los datos reconstruidos en el dominio espacial se envfan como la trama de referencia 495 despues de pos-procesarse a traves de un filtro de desbloqueo 480 y un filtro de bucle 490. El coeficiente de transformacion cuantificado se puede enviar como una secuencia de bits 455 a traves de un codificador por entropfa 450.
Con el fin de que el codificador de imagen 400 se aplique en el aparto de codificacion de video 100, todos los elementos del codificador de imagen 400, es decir, el intra pronosticador 410, el estimador de movimiento 420, el compensador de movimiento 425, el transformador 430, el cuantificador 440, el codificador por entropfa 450, el cuantificador inverso 460, el transformador inverso 470, el filtro de desbloqueo 480, y el filtro de bucle 490, tienen que realizar operaciones sobre la base de cada unidad de codificacion de entre unas unidades de codificacion que tienen una estructura de arbol, mientras consideran la profundidad maxima de cada unidad de codificacion maxima.
5
10
15
20
25
30
35
40
45
50
55
En concreto, el intra pronosticador 410, el estimador de movimiento 420, y el compensador de movimiento 425 tienen que determinar divisiones y un modo de prediccion de cada unidad de codificacion de entre las unidades de codificacion que tienen una estructura de arbol mientras se considera el tamano maximo y la profundidad maxima de una unidad de codificacion maxima actual, y el transformador 430 tiene que determinar el tamano de la unidad de transformacion en cada unidad de codificacion de entre las unidades de codificacion que tienen una estructura de arbol.
La figura 17 es un diagrama de bloques de un descodificador de imagen 500 sobre la base de unas unidades de codificacion, de acuerdo con un ejemplo de la presente invencion.
Un analizador 510 analiza datos de imagen codificados a descodificar e informacion acerca de la codificacion requerida para descodificar a partir de una secuencia de bits 505. Los datos de imagen codificados se envfan como datos inversamente cuantificados a traves de un descodificador por entropfa 520 y un cuantificador inverso 530, y los datos inversamente cuantificados se reconstruyen a datos de imagen en un dominio espacial a traves de un transformador inverso 540.
Un intra pronosticador 550 realiza una intra prediccion sobre unidades de codificacion en un intra modo con respecto a los datos de imagen en el dominio espacial, y un compensador de movimiento 560 realiza compensacion de movimiento sobre unidades de codificacion en un inter modo mediante el uso de una trama de referencia 585.
Con el fin de realizar de forma precisa estimacion de movimiento mediante el uso de pfxeles de referencia en unidades de sub-pel, el compensador de movimiento 560 puede generar pfxeles en unidades de sub-pel mediante la interpolacion de pfxeles en unidades de pel de valor entero. Un filtro de interpolacion para generar pfxeles en unidades de sub-pel puede ser el filtro de interpolacion de alisado que se ha descrito en lo que antecede en relacion con las figuras 2 y 13B.
Los datos de imagen en el dominio espacial, que pasan a traves del intra pronosticador 550 y el compensador de movimiento 560, se pueden enviar como una trama reconstruida 595 despues de pos-procesarse a traves de un filtro de desbloqueo 570 y un filtro de bucle 580. Asimismo, los datos de imagen que se pos-procesan a traves del filtro de desbloqueo 570 y el filtro de bucle 580 se pueden enviar como la trama de referencia 585.
Con el fin de descodificar los datos de imagen en el descodificador 230 del aparato de descodificacion de video 200, el descodificador de imagen 500 puede realizar operaciones que se realizan despues del analizador 510.
Con el fin de que el descodificador de imagen 500 se aplique en el aparato de descodificacion de video 200, todos los elementos del descodificador de imagen 500, es decir, el analizador 510, el descodificador por entropfa 520, el cuantificador inverso 530, el transformador inverso 540, el intra pronosticador 550, el compensador de movimiento 560, el filtro de desbloqueo 570, y el filtro de bucle 580, tienen que realizar operaciones sobre la base de unas unidades de codificacion que tienen una estructura de arbol para cada unidad de codificacion maxima.
En concreto, la intra prediccion 550 y el compensador de movimiento 560 tienen que determinar divisiones y un modo de prediccion para cada una de las unidades de codificacion que tienen una estructura de arbol, y el transformador inverso 540 tiene que determinar un tamano de una unidad de transformacion para cada unidad de codificacion.
La figura 18 es un diagrama que ilustra unas unidades de codificacion mas profunda de acuerdo con unas profundidades, y unas divisiones, de acuerdo con un ejemplo de la presente invencion.
El aparato de codificacion de video 100 y el aparato de descodificacion de video 200 usan unidades de codificacion jerarquica para considerar caractensticas de una imagen. Una altura maxima, un ancho maximo, y una profundidad maxima de unidades de codificacion se pueden determinar de forma adaptable de acuerdo con las caractensticas de la imagen, o se pueden establecer de forma diferente por un usuario. Los tamanos de las unidades de codificacion mas profunda de acuerdo con unas profundidades se pueden determinar de acuerdo con el tamano maximo previamente determinado de la unidad de codificacion.
En una arquitectura jerarquica 600 de unidades de codificacion, de acuerdo con un ejemplo de la presente invencion, la altura maxima y el ancho maximo de las unidades de codificacion son cada uno 64, y la profundidad maxima es 3. En este caso, la profundidad maxima denota el numero total de veces que se realiza la division a partir codificacion maxima a una unidad de codificacion minima. Debido a que una profundidad se agudiza a lo largo de un eje vertical de la estructura jerarquica 600, se divide cada uno de una altura y un ancho de la unidad de codificacion mas profunda. Asimismo, una unidad de prediccion y unas divisiones, que son bases para la codificacion por prediccion de cada unidad de codificacion mas profunda, se muestran a lo largo de un eje horizontal de la estructura jerarquica 600.
Dicho de otra forma, una unidad de codificacion 610 es una unidad de codificacion maxima de la estructura jerarquica 600, en la que una profundidad de 0 y un tamano, es decir, una altura por ancho, es 64 * 64. La profundidad se agudiza a lo largo del eje vertical y una unidad de codificacion 620 que tiene un tamano de 32 * 32 y una profundidad de 1, una unidad de codificacion 630 que tiene un tamano de 16 * 16 y una profundidad de 2 y una
5
10
15
20
25
30
35
40
45
50
55
unidad de codificacion 640 que tiene un tamano de 8^8 y una profundidad de 3 existen. La unidad de codificacion 640 que tiene el tamano de 8 * 8 y la profundidad de 3 es una unidad de codificacion minima.
La unidad de prediccion y las divisiones de una unidad de codificacion se disponen a lo largo del eje horizontal de acuerdo con cada profundidad. Dicho de otra forma, si la unidad de codificacion 610 que tiene el tamano de 64 * 64 y la profundidad de 0 es una unidad de prediccion, la unidad de prediccion se puede dividir en divisiones incluidas en la unidad de codificacion 610, es decir, una division 610 que tiene un tamano de 64 * 64, unas divisiones 612 que tienen el tamano de 64 * 32, unas divisiones 614 que tienen el tamano de 32 * 64, o divisiones 616 que tienen el tamano de 32 * 32.
De forma similar, una unidad de prediccion de la unidad de codificacion 620 que tiene el tamano de 32 * 32 y la
profundidad de uno se puede dividir en divisiones incluidas en la unidad de codificacion 620, es decir, una division
620 que tiene un tamano de 32 * 32, unas divisiones 622 que tienen un tamano de 32 * 16, unas divisiones 624 que tienen un tamano de 16 * 32, o divisiones 626 que tienen un tamano de 16 * 16.
De forma similar, una unidad de prediccion de la unidad de codificacion 630 que tienen el tamano de 16*16 y la
profundidad de dos se puede dividir en divisiones incluidas en la unidad de codificacion 630, es decir, una division
que tiene un tamano de 16 * 16, unas divisiones 632 que tienen un tamano de 16 * 8, unas divisiones 634 que tiene un tamano de 8 * 16, o divisiones 636 que tienen un tamano de 8*8.
De forma similar, una unidad de prediccion de la unidad de codificacion 640 que tiene el tamano de 8*8 y la profundidad de 3 se puede dividir en divisiones incluidas en la unidad de codificacion 640, es decir una division que tiene un tamano de 8*8, unas divisiones 642 que tienen un tamano de 8*4, unas divisiones 644 que tienen un tamano de 4*8, o divisiones 646 que tienen un tamano de 4*4.
Con el fin de determinar que la al menos una profundidad codificada de las unidades de codificacion que constituyen la unidad de codificacion maxima 610, el codificador 120 del aparato de codificacion de video 100 realiza una codificacion para unidades de codificacion que se corresponden con cada profundidad incluida en la unidad de codificacion maxima 610.
Un numero de unidades de codificacion mas profunda de acuerdo con unas profundidades que incluyen datos en el mismo intervalo y el mismo tamano aumenta a medida que se agudiza la profundidad. Por ejemplo, cuatro unidades de codificacion que se corresponden con una profundidad de dos se requieren para cubrir datos que se incluyen en una unidad de codificacion que se corresponde con una profundidad de 1. Por consiguiente, con el fin de comparar resultados de codificacion de los mismos datos de acuerdo con unas profundidades, se codifica cada una de la unidad de codificacion que se corresponde con la profundidad de 1 y cuatro unidades de codificacion que se corresponden con la profundidad de 2.
Con el fin de realizar una codificacion para una profundidad actual de entre las profundidades, un error de codificacion mmimo se puede seleccionar para la profundidad actual para realizar una codificacion para cada unidad de prediccion en las unidades de codificacion que se corresponden con la profundidad actual, a lo largo del eje horizontal de la estructura jerarquica 600. Como alternativa, el error de codificacion mmimo se puede buscar mediante la comparacion de los errores de codificacion menores de acuerdo con unas profundidades, mediante la realizacion de una codificacion para cada profundidad a medida que la profundidad se agudiza a lo largo del eje vertical de la estructura jerarquica 600. Una profundidad y una division que tiene el error de codificacion mmimo de la unidad de codificacion 610 se puede seleccionar como la profundidad codificada y un tipo de division de la unidad de codificacion 610.
La figura 19 es un diagrama para describir una relacion entre una unidad de codificacion 710 y unas unidades de transformacion 720, de acuerdo con un ejemplo de la presente invencion.
El aparato de codificacion de video 100 o el aparato de descodificacion de video 200 codifica o descodifica una imagen de acuerdo con unidades de codificacion que tienen tamanos menores que o iguales a una unidad de codificacion maxima para cada unidad de codificacion maxima. Los tamanos de unidades de transformacion para transformacion durante codificacion se pueden seleccionar sobre la base de unas unidades de datos que nos mayores que una unidad de codificacion correspondiente.
Por ejemplo, en el aparato de codificacion de video 100 o el aparato de descodificacion de video 200, si un tamano de la unidad de codificacion 710 es 64 * 64, la transformacion se puede realizar mediante el uso de las unidades de transformacion 720 que tienen un tamano de 32 * 32.
Asimismo, los datos de la unidad de codificacion 710 que tienen el tamano de 64 * 64 se pueden codificar mediante la realizacion de la transformacion en cada una de las unidades de transformacion que tienen el tamano de 32 * 32, 16*16, 8*8, y 4*4, que son menores que 64 * 64, y entonces se puede seleccionar una unidad de transformacion que tiene el error de codificacion menor.
La figura 20 es un diagrama para describir una informacion de codificacion de unas unidades de codificacion que se corresponden con una profundidad codificada, de acuerdo con un ejemplo de la presente invencion.
5
10
15
20
25
30
35
40
45
50
55
La unidad de salida 130 del aparato de codificacion de v^deo 100 puede codificar y transmitir una informacion 800 sobre un tipo de division, informacion 810 sobre un modo de prediccion, e informacion 820 sobre un tamano de una unidad de transformacion para cada unidad de codificacion que se corresponde con una profundidad codificada, como informacion acerca de un modo de codificacion.
La informacion 800 representa informacion acerca de una forma de una division que se obtiene mediante la division de una unidad de prediccion de una unidad de codificacion actual, en la que la division es una unidad de datos para codificar por prediccion la unidad de codificacion actual. Por ejemplo, una unidad de codificacion actual CU_0 que tiene un tamano de 2N * 2N se puede dividir en cualquiera de una division 802 que tiene un tamano de 2N * 2n, una division 804 que tiene el tamano de 2N * N, una division 806 que tiene un tamano de N * 2N, y una division 808 que tiene un tamano de N * N. En el presente caso, la informacion 800 sobre un tipo de division se establece para indicar una de la division 804 que tiene tamano de 2N * N, la division 806 tiene un tamano de N * 2N, y la division 808 tiene un tamano de N * N.
La informacion 810 representa un modo de prediccion de cada division. Por ejemplo, la informacion 810 puede indicar un modo de codificacion por prediccion realizado sobre una division representada por la informacion 800, es decir, un intra modo 812, un inter modo 814, o un modo de salto 816.
La informacion 820 representa una unidad de transformacion que se va a basar en cuando se realiza la transformacion sobre una unidad de codificacion actual. Por ejemplo, la unidad de transformacion puede ser una primera unidad de intra transformacion 822, una segunda unidad de intra transformacion 824, una primera unidad de inter transformacion 826, o una segunda unidad de intra transformacion 828.
El receptor y extractor 822 del aparato de descodificacion de video 200 puede extraer y usar la informacion 800, 810, y 820 para la descodificacion, de acuerdo con cada unidad de codificacion mas profunda.
La figura 21 es un diagrama de unidades de codificacion mas profunda de acuerdo con unas profundidades, de acuerdo con un ejemplo de la presente invencion.
La informacion de division se puede usar para indicar un cambio de una profundidad. La informacion de division representa si una unidad de codificacion de una profundidad actual esta dividida en unidades de codificacion de una profundidad inferior.
Una unidad de prediccion 910 para la codificacion por prediccion de una unidad de codificacion 900 que tiene una profundidad de 0 y un tamano de 2N_0 * 2N_0 puede incluir divisiones de un tipo de division 912 que tiene un tamano de 2N_0 * 2N_0 como un tipo de division 914 que tiene un tamano de 2N_0 * 2N_0, un tipo de division 916 que tiene un tamano de N_0 * 2N_0, y un tipo de division 918 que tiene un tamano de N_0 * N_0. La figura 9 solo ilustra los tipos de division 912 a 918 que se obtienen mediante la division de forma simetrica de la unidad de prediccion 910, pero un tipo de division no esta limitado a esto, y las divisiones de la unidad de prediccion 910 pueden incluir divisiones asimetricas, unas divisiones que tienen una forma previamente determinada, y unas divisiones que tienen una forma geometrica.
La codificacion por prediccion se realiza de forma repetida sobre una division que tiene un tamano de 2N_0 * 2N_0, dos divisiones que tiene un tamano de 2N_0 * N_0, dos divisiones que tiene un tamano de N_0 * 2N_0, y cuatro divisiones que tienen un tamano de N_0 * N_0, de acuerdo con cada tipo de division. La codificacion por prediccion en un intra modo y un inter modo se pueden realizar sobre las divisiones que tienen los tamanos de 2N_0 * 2N_0, N_0 * 2N_0, 2N_0 * N_0, N_0 * N_0. La codificacion por prediccion en un modo de salto se realiza solo en la division que tiene el tamano de 2N_0 * 2N_0.
Errores de codificacion que incluyen la codificacion por prediccion en los tipos de division 912 a 918 se comparan, y el error de codificacion menor se determina entre los tipos de division. Si un error de codificacion es mas pequeno en uno de los tipos de division 912 a 916, la unidad de prediccion 910 puede no estar dividida en una profundidad inferior.
Si el error de codificacion es el menor en el tipo de division 918, se cambia una profundidad de 0 a 1 para dividir el tipo de division 918 en operacion 920, y la codificacion se realiza de forma repetida sobre unidades de codificacion 930 que tienen una profundidad de 2 y un tamano de N_0 * N_0 para buscar un error de codificacion minima.
La unidad de prediccion 940 para codificar por prediccion la unidad de codificacion 930 que tiene una profundidad de 1 y un tamano de 2N_1 * 2N_1 (= N_0 * N_0) puede incluir divisiones de un tipo de division 942 que tiene un tamano de 2N_1 * 2N_1, un tipo de division 944 que tiene un tamano de 2N_1 * N_1, un tipo de division 946 que tiene un tamano de N_1 * N_1, y tipo de division 948 que tiene un tamano de N_1 * N_1.
Si un error de codificacion es el menor en el tipo de division 948, se cambia una profundidad de 1 a 2 para dividir el tipo de division 948 en operacion 950, y la codificacion se realiza de forma repetida en unidades de codificacion 960, que tienen una profundidad de 2 y un tamano de N_2 * N_2 para buscar un error de codificacion mmimo.
Cuando una profundidad maxima es d, las unidades de codificacion mas profunda de acuerdo con unas
5
10
15
20
25
30
35
40
45
50
55
profundidades se pueden asignar hasta cuando una profundidad se vuelve d-1, y la informacion de division se puede codificar hasta cuando la profundidad es 0 a d - 2. Dicho de otra forma, cuando se realiza una codificacion hasta cuando la profundidad es d-1, despues de que una unidad de codificacion que se corresponde con una profundidad de d - 2 se divida en la operacion 970, una unidad de prediccion 990 para codificar por prediccion una unidad de codificacion 980 que tiene una profundidad de d -1 y un tamano de 2N_(d -1) * 2N_(d -1) puede incluir divisiones de un tipo de division 992 que tienen un tamano de 2N_(d -1) * 2N_(d -1), un tipo de division 934 que tiene un tamano de 2N_(d -1) * N_(d -1), un tipo de division 196 que tiene un tamano de N_(d -1) * 2N_ (d -1), y un tipo de division 998 que tiene un tamano de N_(d -1) * N_(d -1).
La codificacion por prediccion se puede realizar de forma repetida en una division que tiene un tamano de 2N_(d - 1) * 2N_(d -1), dos divisiones que tienen un tamano de, dos divisiones que tienen un tamano de N_(d -1) * 2N_(d - 1), cuatro divisiones que tienen un tamano de N_(d -1) * N_(d -1) de entre los tipos de division 992 a 998 para buscar un tipo de division que tiene un error de codificacion mmimo.
Incluso cuando el tipo de inicio 998 tiene el error de codificacion mmimo, debido a que la profundidad maxima es de, una unidad de codificacion CU_(d -1) que tiene una profundidad de d -1 ya no se divide a una profundidad inferior, y una profundidad codificada para las unidades de codificacion que constituyen una unidad de codificacion maxima actual 900 se determina para ser d -1 y un tipo de division de la unidad de codificacion maxima actual 900 se puede determinar para ser N_(d -1) * N_(d -1). Asimismo, debido a que la profundidad maxima es de y una unidad de codificacion minima 980 que tiene una profundidad inferior a d -1 ya no se divide a una profundidad inferior, la informacion de division para la unidad de codificacion minima 980 no se establece.
Una unidad de datos 999 puede ser una 'unidad minima’ para la unidad de codificacion maxima actual. Una unidad minima de acuerdo con un ejemplo de la presente invencion puede ser una unidad de datos rectangular que se obtiene mediante la division de una unidad de codificacion minima 980 por 4. Al realizar la codificacion de forma repetida, el aparato de codificacion de video 100 puede seleccionar una profundidad que tiene el error de codificacion menor mediante la comparacion de errores de codificacion de acuerdo con unas profundidades de la unidad de codificacion 900 para determinar una profundidad codificada, y establecer un tipo de division correspondiente y un modo de prediccion como un modo de codificacion de la profundidad codificada.
En ese sentido, los errores de codificacion mmimos de acuerdo con las profundidades se comparan en todas las profundidades de 1 a d, y una profundidad que tiene el error de codificacion menor se puede determinar como una profundidad codificada. La profundidad codificada, el tipo de division de la unidad de prediccion, y el modo de prediccion se pueden codificar y transmitir como informacion acerca de un modo de codificacion. Asimismo, debido a que una unidad de codificacion esta dividida de una profundidad de 0 a una profundidad codificada, solo la informacion de division de la profundidad codificada se establece a 0, y la informacion de division de profundidades, excluyendo la profundidad codificada, se establece a 1.
El receptor y extractor 220 del aparato de descodificacion de video 200 puede extraer y usar la informacion acerca de la profundidad codificada y la unidad de prediccion de la unidad de codificacion 900 para descodificar la division 912. El aparato de codificacion de video 200 puede determinar una profundidad, en la que la informacion de division es 0, como una profundidad codificada mediante el uso de informacion de division de acuerdo con unas profundidades, y usar informacion acerca de un modo de codificacion de la profundidad correspondiente para la descodificacion.
Las figuras 22 a 24 son unos diagramas para describir una relacion entre unas unidades de codificacion 1010, unas unidades de prediccion 1060 y unas unidades de transformacion 1070, de acuerdo con un ejemplo de la presente invencion.
Las unidades de codificacion 1010 son unidades de codificacion que tienen una estructura de arbol, que se corresponde con unas profundidades codificadas determinadas por el aparato de codificacion de video 100, en una unidad de codificacion maxima. Las unidades de prediccion 1060 son divisiones de unidades de prediccion de cada una de las unidades de codificacion 1010, y las unidades de transformacion 1070 son unidades de transformacion de cada una de las unidades de codificacion 1010.
Cuando una profundidad de una unidad de codificacion maxima es 0 en las unidades de codificacion 1010, las profundidades de las unidades de codificacion 1012 y 1054 son 1, las profundidades de unidades de codificacion 1014, 1016, 1018, 1028, 1050, y 1052 son 2, las profundidades de las unidades de codificacion 1020, 1022, 1024, 1026, 1030, 1030 y 1048 son 3, y las profundidades de las unidades de codificacion 1040, 1042, 1044, y 1046 son 4.
En las unidades de prediccion 1060, algunas unidades de codificacion y 1014, 1016, 1022, 1032, 1048, 1050, 1052, y 1054 se obtienen mediante la division de las unidades de codificacion de las unidades de codificacion 1010. Dicho de otra forma, los tipos de division de las unidades de codificacion 1014, 1022, 1050, y 1054 tienen un tamano de 2N * N, los tipos de division en las unidades de codificacion 1016, 1048, y 1052 tiene un tamano de N * 2N, y un tipo de division de la unidad de codificacion 1032 tiene un tamano de N * N. Las unidades de prediccion y las divisiones de las unidades de codificacion 1010 son mas pequenas que o iguales a cada unidad de codificacion.
La transformacion o la transformacion inversa se realizan sobre datos de imagen de la unidad de codificacion 1052
5
10
15
20
25
30
35
en las unidades de transformacion 1070 en una unidad de datos que es mas pequena que la unidad de codificacion 1052. Asimismo, las unidades de codificacion y 1014, 1016, 1022, 1032, 1048, 1050, y 1052 en las unidades de transformacion 1070 son diferentes para aquellas en las unidades de prediccion 1060 en terminos de tamanos y formas. Dicho de otra forma, los datos de codificacion y de descodificacion de video 100 y 200 pueden realizar una intra prediccion, estimacion de movimiento, compensacion de movimiento, transformacion, y una transformacion de inversa de forma individual sobre una unidad de datos en la misma unidad de codificacion.
Por consiguiente, la codificacion se realiza de forma recursiva sobre cada una de las unidades de codificacion que tienen una estructura jerarquica en cada region de una unidad de codificacion maxima para determinar una unidad de codificacion optima y, por lo tanto, se pueden obtener las unidades de codificacion que tienen una estructura de arbol recursiva. La informacion de codificacion puede incluir informacion de division sobre una unidad de codificacion, informacion acerca de un tipo de division, informacion acerca de un modo de prediccion, e informacion acerca de un tamano de una unidad de transformacion. La Tabla 1 muestra la informacion de codificacion que se puede establecer por los aparatos de codificacion y de descodificacion de video 100 y 200.
Tabla 1
Informacion de division 0
Informacion de
(Codificacion sobre Unidad de Codificacion que tiene Tamano de 2N * 2N y una
division 1
profundidad actual de d)
Modo de prediccion
Tipo de division Tamano de Unidad de transformacion
Tipo de Tipo de Informacion de Informacion de
division division division 0 de Unidad division 1 de Unidad
Intra
simetrica asimetrica de transformacion de transformacion Codificar de forma repetida unidades de
N * N
Inter
codificacion que
2N * 2N 2N * nU (Tipo de division tienen una
simetrica) profundidad inferior
Salto
2N * N 2N * nD de d + 1
2N * 2N
(Solo 2N
N * 2N nL * 2N
* 2N)
N*N nR * 2N N/2 * N/2
(Tipo de division
asimetrica)
La unidad de salida 130 del aparato de codificacion de video 100 puede enviar la informacion de codificacion sobre las unidades de codificacion que tienen una estructura de arbol, y el receptor y extractor 220 del aparato de descodificacion de video 200 puede extraer la informacion de codificacion sobre las unidades de codificacion que tienen una estructura de arbol desde una secuencia de bits recibida.
La informacion de division representa si una unidad de codificacion actual esta dividida en unidades de codificacion de una profundidad inferior. Si la informacion de division de una profundidad actual d es 0, una profundidad, en la cual una unidad de codificacion actual ya no esta dividida en una profundidad inferior, es una profundidad codificada y, por lo tanto, la informacion acerca de un tipo de division, modo de prediccion, y un tamano de una unidad de transformacion se puede definir para la profundidad codificada. Si la unidad de codificacion actual ademas esta dividida de acuerdo con la informacion de division, la codificacion se realiza de forma independiente en cuatro unidades de codificacion de division de una profundidad inferior.
Un modo de prediccion puede ser uno de un intra modo, un inter modo, y un modo de salto. El intra modo y el inter modo se pueden definir en todos los tipos de division, y el modo de salto se define solo en un tipo de division que tiene un tamano de 2N * 2N.
La informacion acerca del tipo de division puede indicar tipos de division simetrica que tienen tamanos de 2N * 2N, 2N * N, N * 2N, y N * N, que se obtienen mediante la division de forma simetrica de una altura o un ancho de una unidad de prediccion, y tipos de division asimetrica que tienen tamanos de 2N * nU, 2N * nD, nL * 2N y nR * 2N, que se obtienen mediante la division de forma simetrica de la altura o el ancho de la unidad de prediccion. Los tipos de division asimetrica que tienen los tamanos de 2N * nU y 2N * nD se pueden obtener, de forma respectiva, mediante la division de una altura de la unidad de prediccion en 1:3 y 3:1, y los tipos de division asimetrica que tienen los tamanos de nL * 2N y nR * 2N se pueden obtener, de forma respectiva, mediante la division del ancho de
5
10
15
20
25
30
35
40
45
50
55
la unidad de prediccion en 1 : 3 y 3 : 1.
El tamano de la unidad de transformacion se puede establecer por dos tipos en el intra modo y dos tipos en el inter modo. Dicho de otra forma, si la informacion de division de la unidad de transformacion es 0, el tamano de la unidad de transformacion puede ser 2N * 2N, que es el tamano de la unidad de codificacion actual. Si la informacion de division de la unidad de transformacion es 1, las unidades de transformacion se pueden obtener mediante la division de la unidad de codificacion actual. Asimismo, si un tipo de division de la unidad de codificacion actual que tiene el tamano de 2N * 2N es un tipo de division simetrica, un tamano de una unidad de transformacion puede ser N * N, y si el tipo de division de la unidad de codificacion actual es un tipo de division asimetrica, el tamano de la unidad de transformacion puede ser N / 2 * N / 2.
La informacion de codificacion sobre unidades de codificacion que tienen una estructura de arbol puede incluir al menos una de una unidad de codificacion que se corresponde con una profundidad codificada, una unidad de prediccion y una unidad minima. La unidad de codificacion que se corresponde con la profundidad codificada puede incluir al menos una de una unidad de prediccion y una unidad minima que contiene la misma informacion de codificacion.
Por consiguiente, se determina si se incluyen unidades de datos adyacentes en la misma unidad de codificacion que se corresponde con la profundidad codificada mediante la comparacion de informacion de codificacion de las unidades de datos adyacentes. Asimismo, se determina una unidad de codificacion correspondiente que se corresponde con una profundidad codificada mediante el uso de informacion de codificacion de una unidad de datos y, por lo tanto, se puede determinar una distribucion de profundidades codificadas en una unidad de codificacion maxima.
Por consiguiente, si se predice una unidad de codificacion actual sobre la base de la informacion de codificacion de unas unidades de datos adyacentes, la informacion de codificacion de unas unidades de datos en unidades de codificacion mas profunda adyacentes a la unidad de codificacion actual se puede consultary usar directamente.
Como alternativa, si se predice una unidad de codificacion actual sobre la base de la informacion de codificacion de unas unidades de datos adyacentes, las unidades de datos adyacentes a la unidad de codificacion actual se buscan usando informacion codificada de las unidades de datos, y las unidades de codificacion adyacentes buscadas se pueden consultar para predecir la unidad de codificacion actual.
La figura 25 es un diagrama para describir una relacion entre una unidad de codificacion, una unidad de prediccion o una division y una unidad de transformacion, de acuerdo con una informacion de modo de codificacion de la Tabla 1.
Una unidad de codificacion maxima 1300 incluye unidades de codificacion 1302, 1304, 1306, 1312, 1314, 1316 y 1318 de profundidades codificadas. En el presente caso, debido a que la unidad de codificacion 1310 es una unidad de codificacion de una profundidad codificada, la informacion de division se puede establecer a 0. La informacion acerca de un tipo de division de la unidad de codificacion 1318 que tiene un tamano de 2N * 2N se puede establecer para ser una de un tipo de division 1322 que tiene un tamano de 2N * 2N, un tipo de division 1324 que tiene un tamano de 2N * N, un tipo de division 1326 que tiene un tamano de N * 2N, un tipo de division 1328 que tiene un tamano de N * N, un tipo de division 1324 que tiene un tamano de 2N * nU, un tipo de division 1334 que tiene un tamano de 2N * nD, un tipo de division 1336 que tiene un tamano de nL * 2N, y un tipo de division 1338 que tiene un tamano de nR * 2N.
La informacion de division (indicador de tamano de TU) de una unidad de transformacion es una clase de un mdice de transformacion, y el tamano de una unidad de transformacion que se corresponde con el mdice de transformacion puede variar de acuerdo con un tipo de unidad de prediccion o un tipo de division de una unidad de codificacion.
Por ejemplo, cuando se establece el tipo de division para ser simetrico, es decir el tipo de division 1322, 1324, 1326, 1328, una unidad de transformacion 1342 que tiene un tamano de 2N * 2N se establece si un indicador de tamano TU es 0, y la unidad de transformacion 1344 que tienen un tamano de N * N se establece si un indicador de tamano TU es 1.
Cuando el tipo de division se establece para ser simetrico, es decir, el tipo de division 1332, 1334, 1336, o 1338, una unidad de transformacion 1342 que tiene un tamano de 2N * 2N se establece si un indicador de tamano TU es 0, una unidad de transformacion 1354 que tiene un tamano de N/2* N/2 se hace un indicador de tamano TU es 1.
Haciendo referencia a la figura 21, el indicador de tamano TU es un indicador que tiene un valor de 0 o 1, pero el indicador de tamano TU no esta limitado a 1 bit y una unidad de transformacion que se puede dividir de forma jerarquica teniendo una estructura de arbol mientras el indicador de tamano TU aumenta desde 0. El indicador de tamano TU se puede usar como un ejemplo de un mdice de transformacion.
En este caso, el tamano de una unidad de transformacion que se ha usado realmente se puede expresar mediante el uso de un indicador de tamano TU de una unidad de transformacion, de acuerdo con un ejemplo de la presente invencion, junto con un tamano maximo y un tamano mmimo de la unidad de transformacion. De acuerdo con un ejemplo de la presente invencion, el aparato de codificacion de video 100 es capaz de codificar informacion de
5
10
15
20
25
30
35
40
45
50
tamano de unidad de transformacion maximo, informacion de tamano de unidad de transformacion mmimo, y un indicador de tamano TU maximo. El resultado de codificacion de la informacion de tamano de unidad de transformacion maximo, la informacion de tamano de unidad de transformacion mmimo y el indicador de tamano TU maximo se pueden insertar dentro de un SPS. De acuerdo con un ejemplo de la presente invencion, el aparato de descodificacion de video 200 puede codificar video mediante el uso de la informacion de tamano de unidad de transformacion maximo, la informacion de tamano de unidad de transformacion mmimo, y el indicador de tamano TU maximo.
Por ejemplo, (a) si el tamano de una unidad de codificacion actual es 64 * 64 y el tamano de la unidad de transformacion maximo es 32 * 32, entonces (A -1) el tamano de una unidad de transformacion puede ser 32 * 32 cuando un indicador de tamano TU es 0, (A - 2) puede ser 16 * 16 cuando el indicador de tamano TU es 1, y (A - 3) puede ser 8*8 cuando el indicador de tamano TU es 2.
Como otro ejemplo, (b) si el tamano de la unidad de codificacion actual, es 32 * 32 y un tamano de unidad de 5 transformacion mmimo es 32 * 32, entonces (B -1) el tamano de la unidad de transformacion puede ser 32 * 32 cuando el indicador de tamano TU es 0. En el presente caso, el indicador de tamano TU se puede establecer a un valor diferente de 0, debido a que el tamano de la unidad de transformacion no puede ser menor que 32 * 32.
Como otro ejemplo, (c) si el tamano de la unidad de codificacion actual es 64 * 64 y un indicador de tamano TU maximo es 1, entonces el indicador de tamano TU puede ser 0 o 1. En el presente caso, el indicador de tamano TU no se puede establecer a un valor diferente de 0 o 1.
Por lo tanto, si se define que el indicador de tamano TU maximo es 'MaxTransformSizelndex', un tamano de unidad de transformacion mmimo es 'MinTransformSize', y un tamano de la unidad de transformacion de rafz es 'RootTuSize' cuando el indicador de tamano TU es O, entonces un tamano de unidad de transformacion mmimo actual 'CurrMinTuSize' que se puede determinar en una unidad de codificacion actual, se puede definir por la ecuacion (1):
CurrMinTuSize = max (MinTransformSize, RootTuSize / (2AMaxTransformSizeIndex))
...(1)
En comparacion con el tamano de unidad de transformacion mmimo actual 'CurrMinTuSize' que se puede determinar en la unidad de codificacion actual, el tamano de unidad de rafz 'RootTuSize' puede denotar un tamano de unidad de transformacion maximo que se puede seleccionar en el sistema. En la ecuacion (1), 'RootTuSize / (2AMaxTransformSizeIndex)' denota un tamano de unidad de transformacion cuando el tamano de unidad de transformacion de rafz 'RootTuSize' se divide un numero de veces que se corresponde con el indicador de tamano TU maximo, y 'MinTransformSize' denota un tamano de transformacion mmimo. Por lo tanto, un valor menor de entre 'RootTuSize / (2AMaxTransformSizelndex)' y 'MinTransformSize' puede ser el tamano de unidad de transformacion mmimo actual 'CurrMinTuSize' que se puede determinar en la unidad de codificacion actual.
De acuerdo con un ejemplo de la presente invencion, el tamano de la unidad de transformacion de rafz 'RootTuSize' puede variar de acuerdo con el tipo de un modo de prediccion.
Por ejemplo, si un de prediccion actual es un inter modo, entonces 'RootTuSize' se puede determinar mediante el uso de la ecuacion (2) a continuacion. En la ecuacion (2), 'MaxTransformSize' denota un tamano de unidad de transformacion maximo, y 'PUSize' denota un tamano de unidad de prediccion actual.
RootTuSize = mm (MaxTransformSize, PUSize)........(2)
Es decir, si el modo de inter prediccion actual es el inter modo, el tamano de unidad de transformacion de rafz 'RootTuSize' cuando el indicador de tamano TU es O puede ser un valor menor de entre el tamano de unidad de transformacion maximo y el tamano de unidad de prediccion actual.
Si un modo de prediccion de una unidad de division actual es un intra modo, 'RootTuSize' se puede determinar mediante el uso de la ecuacion (3) a continuacion. En la ecuacion (3), 'PartitionSize' denota el tamano de la unidad de division actual.
RootTuSize = mm (MaxTransformSize, PartitionSize)........(3)
Es decir, si el modo de prediccion actual es el intra modo, el tamano de unidad de transformacion de rafz 'RootTuSize' puede ser un valor menor de entre el tamano de unidad de transformacion maximo y el tamano de la unidad de division actual.
No obstante, el tamano de unidad de transformacion maximo actual que vana de acuerdo con el tipo de un modo de prediccion en una unidad de division, el tamano de unidad de transformacion de rafz 'RootTuSize' es solo un ejemplo y la presente invencion no esta limitada a esto.
La figura 26 es un diagrama de flujo de un procedimiento de codificacion de video que usa un filtro de interpolacion
5
10
15
20
25
30
35
40
45
50
55
de alisado sobre la base de unas unidades de codificacion que tienen una estructura de arbol, de acuerdo con un ejemplo de la presente invencion.
En la operacion 2610, con el fin de codificar una imagen actual de un video de entrada, la imagen actual se divide en al menos una unidad de codificacion maxima. Cada una de al menos una region de division, que se obtiene mediante la division de una region de cada unidad de codificacion maxima de acuerdo con unas profundidades, se puede codificar. Con el fin de codificar cada region de division de acuerdo con unas profundidades, se realizan transformacion y cuantificacion en un resultado de inter prediccion sobre la base de una interpolacion de unidad de sub-pel, e intra prediccion.
En el presente caso, una profundidad de division para enviar un resultado de codificacion final de acuerdo con al menos una region de division se puede determinar mediante la comparacion de resultados de regiones de division de codificacion de acuerdo con unas profundidades, y se pueden determinar unidades de codificacion incluidas en una unidad de codificacion maxima actual y que tienen una estructura de arbol. De forma similar a las unidades de codificacion que tienen una estructura de arbol, las unidades de transformacion que tienen una estructura de arbol se pueden determinar. Dicho de otra forma, como un resultado de codificacion de imagen, como las unidades de codificacion determinadas que tienen una estructura de arbol, un resultado de codificacion de las unidades de transformacion que tienen una estructura de arbol se puede enviar como datos codificados de la imagen.
La inter prediccion se puede realizar sobre cada unidad de prediccion o division de la unidad de codificacion. El movimiento de una unidad de prediccion o division actual se puede predecir con referencia a pfxeles generados mediante la realizacion de una interpolacion de unidad de sub-pel. De entre los filtros de interpolacion para generar un valor de pixel de unidad de sub-pel, un filtro de interpolacion se selecciona de forma diferente sobre la base de una ubicacion de interpolacion unidad de sub-pel y un alisamiento. Con el fin de realizar de forma eficiente interpolacion de imagen, los coeficientes de filtro de interpolacion se pueden determinar de forma selectiva.
De entre los coeficientes de filtro de interpolacion previamente almacenados en la memoria, se puede seleccionar un filtro de interpolacion deseado de acuerdo con una ubicacion de interpolacion de unidad de sub-pel, un alisamiento, el numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una funcion de base de filtrado de interpolacion sobre la base de transformacion, y una componente de color, y la interpolacion se pueden realizar para generar el valor de pixel de unidad de sub-pel.
En la operacion 2620, los datos de imagen que se obtienen como el resultado de codificacion final de acuerdo con al menos una region de division de cada unidad de codificacion maxima, e informacion acerca de la profundidad codificada y el modo de codificacion se envfan como una secuencia de bits.
La informacion acerca del modo de codificacion puede incluir informacion acerca de la profundidad codificada o informacion de division, informacion acerca de un tipo de division de una unidad de prediccion, informacion acerca de un modo de prediccion, e informacion acerca de una estructura de arbol de unidades de transformacion. La informacion de codificacion puede incluir informacion acerca de un filtro de interpolacion usado para realizar una codificacion por prediccion de unidad de sub-pel. La informacion codificada sobre el modo de codificacion se puede transmitir a un aparato de descodificacion junto con los datos de imagen codificados.
La figura 27 es un diagrama de flujo de un procedimiento de descodificacion de video que usa un filtro de interpolacion de alisado sobre la base de unas unidades de codificacion que tienen una estructura de arbol, de acuerdo con un ejemplo de la presente invencion.
En la operacion 2710, se recibe y se analiza una secuencia de bits de un video codificado.
En la operacion 2720, los datos de imagen codificados de una imagen actual asignada a una unidad de codificacion maxima, y la informacion acerca de una profundidad codificada y un modo de codificacion de acuerdo con unidades de codificacion maxima se extraen de la secuencia de bits analizada. La informacion acerca de un filtro de interpolacion requerido para realizar una compensacion de movimiento de unidad de sub-pel se puede extraer de la informacion de codificacion.
La informacion acerca de la profundidad codificada y el modo de codificacion se puede extraer de la informacion de codificacion. De acuerdo con la informacion acerca de la profundidad codificada y el modo de codificacion, una unidad de codificacion maxima se puede dividir en unidades de codificacion de acuerdo con una estructura de arbol. Asimismo, de acuerdo con la informacion acerca de una estructura de arbol de unidades de transformacion incluidas en la informacion que se extrae, se pueden determinar las unidades de transformacion que tienen una estructura de arbol de acuerdo con unas profundidades de transformacion de las unidades de codificacion.
En la operacion 2730, mediante el uso de la informacion acerca de la profundidad codificada y el modo de codificacion de acuerdo con cada unidad de codificacion maxima, los datos de imagen de cada unidad de codificacion maxima se pueden descodificar sobre la base de las unidades de codificacion que tienen una estructura de arbol, unidades de prediccion, y las unidades de transformacion que tienen una estructura de arbol. Debido a que una unidad de codificacion actual se codifica sobre la base de la informacion acerca de la profundidad codificada y el modo de codificacion, una unidad de codificacion actual se puede transformar de forma inversa mediante el uso de
5
10
15
20
25
30
35
40
45
50
55
una unidad de transformacion determinada de entre las unidades de transformacion que tienen una estructura de arbol.
Los datos de imagen codificados se pueden descodificar mediante la realizacion de varias operaciones de descodificacion tal como compensacion de movimiento e intra prediccion sobre cada unidad de prediccion o division de la unidad de codificacion sobre la base del modo de codificacion.
En concreto, si se extraen datos residuales codificados y datos de referencia extrafdos sobre la base de pfxeles interpolados en una unidad de sub-pel, la compensacion de movimiento sobre una unidad de prediccion actual o una division actual se puede realizar sobre la base de los pfxeles interpolados en las unidades de sub-pel. De entre los filtros de interpolacion para generacion de un valor de pixel de unidad de sub-pel, un filtro de interpolacion se puede seleccionar de forma diferente sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento.
Con el fin de realizar de forma eficiente interpolacion de imagen, los coeficientes de filtro de interpolacion se pueden determinar de forma selectiva. De entre los coeficientes de filtro de interpolacion previamente almacenados en la memoria, se puede seleccionar un filtro de interpolacion deseado de acuerdo con una ubicacion de interpolacion de unidad de sub-pel, un alisamiento, el numero de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una funcion de bases de filtrado de interpolacion sobre la base de transformacion, y una componente de color, e interpolacion se puede realizar para generar el valor de pixel de unidad de sub-pel.
Una imagen de referencia y una region de referencia se determinan mediante el uso de los datos de referencia, y el valor de pixel de unidad de sub-pel se puede generar mediante la realizacion de un filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad de pel de valor entero de la imagen de referencia. La compensacion de movimiento se puede realizar sobre la unidad de prediccion actual o la division actual mediante la combinacion del valor de pixel de unidad de sub-pel generado y los datos residuales y, por lo tanto, se puede realizar descodificacion por prediccion.
Debido a que cada unidad de codificacion maxima se descodifica, los datos de imagen en un dominio espacial se pueden reconstruir, y una imagen y un video que es una secuencia de imagen se pueden reconstruir. El video reconstruido se puede reproducir por un aparato de reproduccion, se puede almacenar en un medio de almacenamiento, o se puede transmitir en una red.
Los ejemplos de la presente invencion se pueden escribir como programas informaticos y se pueden implementar en ordenadores digitales de uso general que ejecutan los programas usando un medio de registro legible por ordenador. Los ejemplos del medio de registro legible por ordenador incluyen medios de almacenamiento magnetico (por ejemplo, ROM, discos flexibles, discos duros, etc.) y medios de registro opticos (por ejemplo, CD-ROM o DVD).
Los siguientes parrafos numerados definen ejemplos adicionales de la invencion que son utiles para su comprension.
1. Un procedimiento de interpolacion de una imagen en consideracion de alisado, comprendiendo el procedimiento seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion para generar al menos un valor de pixel de unidad de sub-pel ubicado entre pfxeles de unidad de pel de valor entero, y generar el al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de los pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado.
2. El procedimiento del parrafo 1, en el que el filtro de interpolacion incluye unos coeficientes de filtro para transformar los pfxeles de unidad de pel de valor entero sobre la base de una pluralidad de funciones de base y transformar de forma inversa una pluralidad de coeficientes generados como un resultado de la transformacion.
3. El procedimiento del parrafo 1, en el que el filtro de interpolacion incluye unos coeficientes de filtro que tienen el alisamiento determinado sobre la base de una distancia entre la ubicacion de interpolacion y los pfxeles de unidad de pel de valor entero.
4. El procedimiento del parrafo 1, en el que los filtros de interpolacion incluyen unos coeficientes de filtro que tienen el alisamiento determinado sobre la base de una distancia entre la ubicacion de interpolacion y los pfxeles de unidad de pel de valor entero adyacentes a la ubicacion de interpolacion.
5. El procedimiento del parrafo 2, en el que, con el fin de interpolar los pfxeles de unidad de pel de valor entero en un
dominio espacial, el filtro de interpolacion incluye unos coeficientes de filtro que se obtienen mediante la
combinacion de un filtro para realizar transformacion y una transformacion inversa usando la pluralidad de funciones
de base, y una funcion de ventana, y en el que la funcion de ventana es simetrica con respecto a la ubicacion de
interpolacion. 6
6. El procedimiento del parrafo 2, en el que, con el fin de interpolar los pfxeles de unidad de pel de valor entero en un
dominio espacial, el filtro de interpolacion incluye unos coeficientes de filtro que se obtienen mediante la
5
10
15
20
25
30
35
40
45
50
55
combinacion de un filtro para realizar transformacion y una transformacion inversa usando la pluralidad de funciones de base, y un parametro de alisado, y en el que el parametro de alisado controla al menos uno de una velocidad de alisado y un intervalo de alisado.
7. El procedimiento del parrafo 2, en el que el filtro de interpolacion incluye unos coeficientes de filtro para alisar muy fuertemente p^xeles de unidad de pel de valor entero de lfmite sobre la base de una condicion de lfmite de una funcion de curva como una funcion de base.
8. El procedimiento del parrafo 2, en el que el filtro de interpolacion incluye unos coeficientes de filtro para maximizar una respuesta de baja frecuencia del filtro de interpolacion sobre la base de una funcion polinomica como una funcion de base.
9. El procedimiento del parrafo 1, en el que la seleccion del filtro de interpolacion comprende seleccionar un filtro de interpolacion que incluye unos coeficientes de filtro puestos a escala a numeros enteros, de entre los filtros de interpolacion, y en el que la generacion del al menos un valor de pixel de unidad de sub-pel comprende normalizar el al menos un valor de pixel de unidad de sub-pel generado mediante el uso del filtro de interpolacion seleccionado, sobre la base de un factor de puesta a escala.
10. El procedimiento del parrafo 1, en el que la seleccion del filtro de interpolacion comprende, con el fin interpolar un pixel de croma, seleccionar un filtro de interpolacion que tiene un alisamiento mas fuerte que la de un filtro de interpolacion para un pixel de luma, de entre los filtros de interpolacion, y en el que la generacion del al menos un valor de pixel de unidad de sub-pel comprende generar el al menos un valor de pixel de unidad de sub-pel mediante el uso de un filtro de interpolacion seleccionado de forma diferente de acuerdo con el pixel de croma y el pixel de luma.
11. El procedimiento del parrafo 1, en el que los filtros de interpolacion comprenden al menos uno de (i) un filtro de interpolacion de unidad de 1/4 de pel de 8 tomas que tiene un factor de puesta a escala de 26 y que incluye unos coeficientes de filtro {-1, 4, -10, 57, 19, -7, 3, -1 }, (ii) un filtro de interpolacion de unidad de 1/2 de pel de 8 tomas que tiene un factor de puesta a escala de 26 y que incluye unos coeficientes de filtro {-1, 4, -11, 40, 40, -11, 4, -1 }, (iii) un filtro de interpolacion de unidad de 1/8 de pel de 4 tomas que tiene un factor de puesta a escala de 26 y que incluye unos coeficientes de filtro {-3, 60, 8, -1 }, (iv) un filtro de interpolacion de unidad de 1/4 de pel de 4 tomas que tiene un factor de puesta a escala de 26 y que incluye unos coeficientes de filtro {-4, 54, 16, -2 }, (v) un filtro de interpolacion de unidad de 3/8 de pel de 4 tomas que tiene un factor de puesta a escala de 26 y que incluye unos coeficientes de filtro {-5, 46, 27, -4 }, y (vi) un filtro de interpolacion de unidad de 1/2 de pel de 4 tomas que tiene un factor de puesta a escala de 26 y que incluye unos coeficientes de filtro {-4, 36, 36, -4 }.
12. El procedimiento del parrafo 1, que comprende: mediante un codificador de video, seleccionar de forma diferente un tipo de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion almacenados en el codificador de video, con respecto a cada bloque de una imagen de entrada, realizar una codificacion por prediccion para generar al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado, y realizar transformacion y cuantificacion sobre un resultado de prediccion de la codificacion por prediccion; y enviar una secuencia de bits generada mediante la realizacion de una codificacion por entropfa sobre coeficientes de transformacion cuantificados e informacion de codificacion.
13. El procedimiento del parrafo 1, que comprende, mediante un descodificador de video, recibir una secuencia de bits codificada de un video y extraer informacion de codificacion y datos codificados de una imagen del video mediante la realizacion de una descodificacion por entropfa y al analizar sobre la secuencia de bits; y realizar una cuantificacion inversa y una transformacion inversa sobre coeficientes de transformacion cuantificados de los datos codificados de un bloque actual de la imagen, seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion almacenados en el descodificador de video, realizar una descodificacion por prediccion para generar al menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de valor de pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado, y reconstruir la imagen.
14. Un aparato para interpolar una imagen en consideracion de alisado, comprendiendo el aparato, un selector de filtro para seleccionar de forma diferente un filtro de interpolacion sobre la base de una ubicacion de interpolacion de unidad de sub-pel y un alisamiento de entre los filtros de interpolacion para generar al menos un valor de pixel de unidad de sub-pel ubicado entre los pfxeles de unidad de pel de valor entero, y un interpolador para generar el por lo menos un valor de pixel de unidad de sub-pel mediante la interpolacion de valores de pixel de los pfxeles de unidad de pel de valor entero mediante el uso del filtro de interpolacion seleccionado.
15. Un medio de registro legible por ordenador que tiene, registrado en el mismo, un programa informatico para ejecutar el procedimiento del parrafo 1.

Claims (1)

  1. REIVINDICACIONES
    1. Un aparato de compensacion de movimiento, comprendiendo el aparato:
    una unidad de filtrado de interpolacion de luma que esta configurada para determinar, en una imagen de referencia de luma, un bloque de referencia de luma para la prediccion de un bloque actual, mediante el uso de un vector de 5 movimiento de luma del bloque actual, y generar una muestra de luma de una ubicacion de 1/2 pixel, una ubicacion de 1/4 de pixel y una ubicacion de 3/4 de pixel en el bloque de referencia de luma mediante la aplicacion de un filtro de interpolacion de 8 tomas a unas muestras de luma de una ubicacion de pixel de valor entero de la imagen de referencia de luma; y
    una unidad de filtrado de interpolacion de croma que esta configurada para determinar, en una imagen de referencia 10 de croma, un bloque de referencia de croma para la prediccion del bloque actual, mediante el uso de un vector de movimiento de croma del bloque actual, y generar una muestra de croma de una ubicacion de 1/2 pixel en el bloque de referencia de croma mediante la aplicacion de un filtro de interpolacion a unas muestras de croma de una ubicacion de pixel de valor entero de la imagen de referencia de croma,
    en el que el filtro de interpolacion de 8 tomas comprende ocho coeficientes de filtro para generar la muestra de luma 15 de la ubicacion de 2/4 de pixel, que son {-1, 4, -11,40, 40, -11,4, -1 },
    en el que el vector de movimiento de luma indica una ubicacion de sub-pfxel de una unidad de 1/4 de pixel en la imagen de referencia de luma,
    en el que los coeficientes de filtro del filtro de interpolacion de 8 tomas para generar la muestra de luma de la ubicacion de 1/4 de pixel son los mismos, pero dispuestos en orden inverso, que los coeficientes de filtro del filtro de 20 interpolacion de 8 tomas para generar la muestra de luma de la ubicacion de 3/4 de pixel.
ES15173607.1T 2010-09-30 2011-09-30 Dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado Active ES2640666T3 (es)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US38826410P 2010-09-30 2010-09-30
US201061388264P 2010-09-30
US201061426479P 2010-12-22 2010-12-22
US201061426479P 2010-12-22
US201161431909P 2011-01-12 2011-01-12
US201161431909P 2011-01-12
US201161450775P 2011-03-09 2011-03-09
US201161450775P 2011-03-09

Publications (1)

Publication Number Publication Date
ES2640666T3 true ES2640666T3 (es) 2017-11-03

Family

ID=45893683

Family Applications (4)

Application Number Title Priority Date Filing Date
ES15173607.1T Active ES2640666T3 (es) 2010-09-30 2011-09-30 Dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado
ES15173605.5T Active ES2629870T3 (es) 2010-09-30 2011-09-30 Procedimiento y dispositivo de interpolación de imágenes usando un filtro de interpolación de suavizado
ES15173606.3T Active ES2646306T3 (es) 2010-09-30 2011-09-30 Procedimiento de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado
ES14193524.7T Active ES2630107T3 (es) 2010-09-30 2011-09-30 Procedimiento y dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado

Family Applications After (3)

Application Number Title Priority Date Filing Date
ES15173605.5T Active ES2629870T3 (es) 2010-09-30 2011-09-30 Procedimiento y dispositivo de interpolación de imágenes usando un filtro de interpolación de suavizado
ES15173606.3T Active ES2646306T3 (es) 2010-09-30 2011-09-30 Procedimiento de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado
ES14193524.7T Active ES2630107T3 (es) 2010-09-30 2011-09-30 Procedimiento y dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado

Country Status (18)

Country Link
US (5) US9124902B2 (es)
EP (7) EP2860980B1 (es)
JP (7) JP5654685B2 (es)
KR (7) KR101452861B1 (es)
CN (6) CN104994381B (es)
BR (2) BR122020014075B1 (es)
CY (4) CY1119447T1 (es)
DK (4) DK2996335T3 (es)
ES (4) ES2640666T3 (es)
HR (4) HRP20170917T1 (es)
HU (4) HUE037725T2 (es)
LT (4) LT2953355T (es)
MX (5) MX2013003606A (es)
PL (4) PL2860980T3 (es)
PT (4) PT2996335T (es)
RS (3) RS56473B1 (es)
SI (4) SI2860980T1 (es)
WO (1) WO2012044105A2 (es)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011121716A1 (ja) * 2010-03-30 2011-10-06 株式会社 東芝 動画像符号化方法、復号化方法、符号化装置および復号化装置
KR101682147B1 (ko) * 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
JP5977235B2 (ja) * 2010-07-09 2016-08-24 サムスン エレクトロニクス カンパニー リミテッド 映像補間方法
JP5665508B2 (ja) * 2010-11-30 2015-02-04 キヤノン株式会社 画像処理装置及び方法、並びにプログラム及び記憶媒体
US9264725B2 (en) 2011-06-24 2016-02-16 Google Inc. Selection of phase offsets for interpolation filters for motion compensation
JP5886953B2 (ja) * 2011-06-28 2016-03-16 サムスン エレクトロニクス カンパニー リミテッド 非対称形の補間フィルタを利用して、映像を補間する方法及びその装置
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
US9883203B2 (en) * 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
DE102011119177A1 (de) * 2011-11-23 2013-05-23 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Verfahren zum Erstellen eines ersten Parametersatzes
JP5911166B2 (ja) * 2012-01-10 2016-04-27 シャープ株式会社 画像処理装置、画像処理方法、画像処理プログラム、撮像装置、及び画像表示装置
US8675102B2 (en) * 2012-06-08 2014-03-18 Apple Inc. Real time denoising of video
US20140078394A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Selective use of chroma interpolation filters in luma interpolation process
WO2014107066A1 (ko) * 2013-01-04 2014-07-10 삼성전자 주식회사 위상차를 고려한 영상 업샘플링을 이용하는 스케일러블 비디오 부호화 방법 및 장치, 스케일러블 비디오 복호화 방법 및 장치
AU2014227060B2 (en) * 2013-03-07 2017-04-06 Japan Oil, Gas And Metals National Corporation Image processing device, method for image processing, and image processing program
DE102013219737B4 (de) 2013-09-30 2019-05-09 Siemens Healthcare Gmbh Angiographisches Untersuchungsverfahren eines Gefäßsystems
JP2015144423A (ja) * 2013-12-25 2015-08-06 三星電子株式会社Samsung Electronics Co.,Ltd. 画像符号化装置、画像復号化装置、それらの方法、プログラム及び画像処理システム
WO2015149699A1 (en) * 2014-04-01 2015-10-08 Mediatek Inc. Method of adaptive interpolation filtering in video coding
KR102440941B1 (ko) 2015-03-03 2022-09-05 삼성전자주식회사 이미지 처리 정보에 따라 크기와 방향을 갖는 초기 위상을 계산할 수 있는 이미지 처리 장치들
KR102402671B1 (ko) 2015-09-09 2022-05-26 삼성전자주식회사 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법
GB201516670D0 (en) * 2015-09-21 2015-11-04 Taranis Visual Method and system for interpolating data
CN108028937B (zh) 2015-09-25 2020-07-24 华为技术有限公司 视频运动补偿装置和方法
RU2696309C1 (ru) * 2015-09-25 2019-08-01 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ компенсации движения видео
WO2017052405A1 (en) * 2015-09-25 2017-03-30 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
AU2015410095C1 (en) 2015-09-25 2020-01-16 Huawei Technologies Co., Ltd. Adaptive sharpening filter for predictive coding
CN107925772B (zh) * 2015-09-25 2020-04-14 华为技术有限公司 利用可选插值滤波器进行视频运动补偿的装置和方法
MX2018006091A (es) 2015-11-17 2018-11-09 Awei Tech Co Ltd Metodo y aparato para filtracion adaptativa de muestras para codificacion de video.
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
CN116074532A (zh) 2016-02-01 2023-05-05 Oppo广东移动通信有限公司 预测图像生成装置、运动图像解码装置、以及运动图像编码装置
KR20180042899A (ko) * 2016-10-19 2018-04-27 디지털인사이트 주식회사 적응적 보간 필터를 사용하는 비디오 코딩 방법 및 장치
WO2018097700A1 (ko) * 2016-11-28 2018-05-31 한국전자통신연구원 필터링을 위한 방법 및 장치
CN116320494A (zh) 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
WO2018132150A1 (en) * 2017-01-13 2018-07-19 Google Llc Compound prediction for video coding
CN110583021B (zh) * 2017-01-31 2023-06-02 夏普株式会社 用于执行平面帧内预测视频编码的系统和方法
US10499078B1 (en) * 2017-02-07 2019-12-03 Google Llc Implicit motion compensation filter selection
KR102511546B1 (ko) * 2017-02-24 2023-03-17 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10440396B2 (en) * 2017-03-28 2019-10-08 Qualcomm Incorporated Filter information sharing among color components
JP6981811B2 (ja) 2017-08-25 2021-12-17 株式会社ニューフレアテクノロジー パターン検査装置及びパターン検査方法
WO2019065537A1 (ja) * 2017-09-28 2019-04-04 シャープ株式会社 動き補償フィルタ装置、画像復号装置および動画像符号化装置
SG11202003260WA (en) * 2017-11-07 2020-05-28 Huawei Tech Co Ltd Interpolation filter for an inter prediction apparatus and method for video coding
KR102424189B1 (ko) * 2018-02-14 2022-07-21 후아웨이 테크놀러지 컴퍼니 리미티드 적응형 보간 필터
US20190273946A1 (en) * 2018-03-05 2019-09-05 Markus Helmut Flierl Methods and Arrangements for Sub-Pel Motion-Adaptive Image Processing
WO2019190342A1 (en) 2018-03-29 2019-10-03 Huawei Technologies Co., Ltd Image processing apparatus and method
TWI677233B (zh) * 2018-08-02 2019-11-11 瑞昱半導體股份有限公司 決定濾波器係數的方法
SG11202103441TA (en) * 2018-10-06 2021-05-28 Huawei Tech Co Ltd Method and apparatus for intra prediction using an interpolation filter
AU2020235190B2 (en) 2019-03-08 2023-06-01 Beijing Bytedance Network Technology Co., Ltd. Constraints on model-based reshaping in video processing
BR112021019260A2 (pt) 2019-03-28 2021-11-30 Huawei Tech Co Ltd Método e aparelho para suavização intra
CN117528068A (zh) 2019-04-18 2024-02-06 北京字节跳动网络技术有限公司 视频编解码中的跨分量模式中的选择性使用
EP3935855A4 (en) 2019-04-23 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. METHOD OF CROSS-COMPONENT DEPENDENCE REDUCTION
EP3949395A4 (en) 2019-05-08 2022-06-29 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
CN117478908A (zh) 2019-06-22 2024-01-30 北京字节跳动网络技术有限公司 色度残差缩放的语法元素
CN110351482A (zh) * 2019-06-25 2019-10-18 杭州汇萃智能科技有限公司 图像预处理装置、方法和一种相机
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
JP6797247B2 (ja) * 2019-07-10 2020-12-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオ動き補償用の装置および方法
JP2022548521A (ja) * 2019-09-23 2022-11-21 アリババ グループ ホウルディング リミテッド 参照ダウンサンプリングありの動き補償補間のためのフィルタ
US20210176486A1 (en) * 2019-12-09 2021-06-10 Alibaba Group Holding Limited Methods and apparatuses for motion compensation
EP4128755A4 (en) * 2020-04-29 2023-09-06 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR INTERPOLATION FILTERING UNDERSAMPLING
US20240171757A1 (en) * 2021-03-31 2024-05-23 Telefonaktiebolaget Lm Ericsson (Publ) Smooth surface prediction
US20230179763A1 (en) * 2021-12-06 2023-06-08 Tencent America LLC Interpolation Filters for Adaptive Motion Vector Difference Resolution
WO2023200135A1 (ko) * 2022-04-15 2023-10-19 현대자동차주식회사 크로마 성분에 대한 개선된 인루프필터를 이용하는 비디오 코딩을 위한 방법 및 장치

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07266331A (ja) * 1994-03-30 1995-10-17 Hitachi Chem Co Ltd 単結晶の切断方法
JP3637740B2 (ja) * 1997-08-25 2005-04-13 三菱住友シリコン株式会社 ワイヤソーおよびインゴット切断方法
JP3075269B2 (ja) 1998-10-13 2000-08-14 セイコーエプソン株式会社 画像データ補間方法、画像データ補間装置および画像データ補間プログラムを記録した媒体
US6768817B1 (en) 1999-09-03 2004-07-27 Truong, T.K./ Chen, T.C. Fast and efficient computation of cubic-spline interpolation for data compression
JP2003509748A (ja) * 1999-09-03 2003-03-11 チェン,ティー.シー. データ圧縮のための3次スプライン補間の高速で効率のよい計算方法
DE10055286A1 (de) * 2000-11-08 2002-05-23 Freiberger Compound Mat Gmbh Vorrichtung und Verfahren zum Trennen von Werkstoffen
DE10122628B4 (de) * 2001-05-10 2007-10-11 Siltronic Ag Verfahren zum Abtrennen von Scheiben von einem Werkstück
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
SG140441A1 (en) * 2003-03-17 2008-03-28 St Microelectronics Asia Decoder and method of decoding using pseudo two pass decoding and one pass encoding
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
KR101038822B1 (ko) 2003-09-07 2011-06-03 마이크로소프트 코포레이션 인터레이스형 비디오의 코딩 및 디코딩
US8165389B2 (en) 2004-03-15 2012-04-24 Microsoft Corp. Adaptive interpolation with artifact reduction of images
US7502505B2 (en) 2004-03-15 2009-03-10 Microsoft Corporation High-quality gradient-corrected linear interpolation for demosaicing of color images
US7623575B2 (en) * 2005-01-05 2009-11-24 Lsi Corporation Method and apparatus for sub-pixel motion compensation
KR20070055212A (ko) 2005-11-25 2007-05-30 삼성전자주식회사 프레임 보간장치, 프레임 보간방법 및 움직임 신뢰성평가장치
CN100566413C (zh) * 2006-06-05 2009-12-02 华为技术有限公司 一种自适应插值处理方法及编解码模块
US9014280B2 (en) 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
JP2008118447A (ja) 2006-11-06 2008-05-22 Canon Inc 画像形成装置及び画像形成方法ならびにそのプログラム
CN101212672B (zh) * 2006-12-30 2011-01-05 安凯(广州)微电子技术有限公司 视频内容自适应的亚像素插值方法和装置
KR101369746B1 (ko) * 2007-01-22 2014-03-07 삼성전자주식회사 적응적 보간 필터를 이용한 영상 부호화, 복호화 방법 및장치
EP2048886A1 (en) * 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
KR101418116B1 (ko) * 2007-10-24 2014-07-09 고려대학교 산학협력단 프레임 보간 장치 및 그를 포함한 프레임 속도 상향 변환장치
JP4988627B2 (ja) * 2008-03-05 2012-08-01 ルネサスエレクトロニクス株式会社 フィルタ演算器及び動き補償装置
CN102057680A (zh) * 2008-07-04 2011-05-11 株式会社东芝 运动图像编码/解码方法和装置
US8610673B2 (en) * 2008-12-03 2013-12-17 Microsoft Corporation Manipulation of list on a multi-touch display
US8761268B2 (en) * 2009-04-06 2014-06-24 Intel Corporation Selective local adaptive wiener filter for video coding and decoding
WO2011086672A1 (ja) * 2010-01-13 2011-07-21 株式会社 東芝 動画像符号化装置および復号装置
JP5977235B2 (ja) * 2010-07-09 2016-08-24 サムスン エレクトロニクス カンパニー リミテッド 映像補間方法
US20120134425A1 (en) * 2010-11-29 2012-05-31 Faouzi Kossentini Method and System for Adaptive Interpolation in Digital Video Coding
PL2658263T3 (pl) * 2010-12-22 2023-03-13 Lg Electronics Inc. Sposób predykcji wewnątrzramkowej i urządzenie wykorzystujące ten sposób
US20120230423A1 (en) * 2011-03-10 2012-09-13 Esenlik Semih Line memory reduction for video coding and decoding

Also Published As

Publication number Publication date
KR20150041763A (ko) 2015-04-17
CN103238320A (zh) 2013-08-07
ES2646306T3 (es) 2017-12-13
LT2860980T (lt) 2017-07-10
HUE037725T2 (hu) 2018-09-28
DK2953355T3 (da) 2017-06-26
EP4318277A3 (en) 2024-02-28
PT2996336T (pt) 2017-09-22
CY1119203T1 (el) 2018-02-14
JP2015188261A (ja) 2015-10-29
US9179167B2 (en) 2015-11-03
JP2013542666A (ja) 2013-11-21
RS56359B1 (sr) 2017-12-29
US20150237358A1 (en) 2015-08-20
HRP20171386T1 (hr) 2017-11-03
DK2996336T3 (en) 2017-10-02
KR101658808B1 (ko) 2016-09-22
CN103238320B (zh) 2016-06-01
PL2996336T3 (pl) 2017-11-30
KR20140146560A (ko) 2014-12-26
DK2996335T3 (da) 2017-11-20
JP6902937B2 (ja) 2021-07-14
CN105049843B (zh) 2018-02-06
PT2953355T (pt) 2017-06-26
EP2996335B1 (en) 2017-11-01
CY1119447T1 (el) 2018-03-07
KR20150041762A (ko) 2015-04-17
CN105072443A (zh) 2015-11-18
LT2953355T (lt) 2017-07-10
KR101452861B1 (ko) 2014-10-27
HUE036401T2 (hu) 2018-07-30
PL2953355T3 (pl) 2017-12-29
JP2017188943A (ja) 2017-10-12
US9124902B2 (en) 2015-09-01
PT2996335T (pt) 2017-11-14
LT2996336T (lt) 2017-09-25
RS56176B1 (sr) 2017-11-30
EP2624558A4 (en) 2015-03-25
KR20150041761A (ko) 2015-04-17
MX336877B (es) 2016-02-04
PL2996335T3 (pl) 2018-02-28
EP2953355A1 (en) 2015-12-09
MX339849B (es) 2016-06-15
EP2996335A1 (en) 2016-03-16
US20150237359A1 (en) 2015-08-20
CN104994381B (zh) 2019-01-04
MX2013003606A (es) 2013-04-24
HRP20170981T1 (hr) 2017-09-22
KR20120034057A (ko) 2012-04-09
KR101657537B1 (ko) 2016-09-19
CN105049844A (zh) 2015-11-11
SI2860980T1 (sl) 2017-08-31
CN104980738B (zh) 2017-04-12
JP2015188260A (ja) 2015-10-29
EP3276961A1 (en) 2018-01-31
KR101658807B1 (ko) 2016-09-22
JP2015165726A (ja) 2015-09-17
US20150245058A1 (en) 2015-08-27
EP2624558A2 (en) 2013-08-07
PL2860980T3 (pl) 2017-09-29
EP2996336A1 (en) 2016-03-16
US20130182780A1 (en) 2013-07-18
CY1119672T1 (el) 2018-04-04
EP4318277A2 (en) 2024-02-07
US9253507B2 (en) 2016-02-02
US9118933B1 (en) 2015-08-25
EP2860980B1 (en) 2017-06-28
JP2015165727A (ja) 2015-09-17
JP2015057919A (ja) 2015-03-26
EP2996336B1 (en) 2017-09-13
WO2012044105A3 (ko) 2012-06-07
HRP20170917T1 (hr) 2017-09-22
SI2996335T1 (sl) 2017-12-29
EP2953355B1 (en) 2017-06-14
BR122021005436B1 (pt) 2022-08-23
HRP20171672T1 (hr) 2018-01-12
US9277247B2 (en) 2016-03-01
HUE034477T2 (en) 2018-02-28
KR101539235B1 (ko) 2015-07-27
BR122020014075B1 (pt) 2023-11-28
RS56473B1 (sr) 2018-01-31
SI2996336T1 (sl) 2017-10-30
CY1119450T1 (el) 2018-03-07
KR101658806B1 (ko) 2016-09-22
PT2860980T (pt) 2017-07-12
US20150237357A1 (en) 2015-08-20
KR20140122215A (ko) 2014-10-17
EP2860980A1 (en) 2015-04-15
ES2630107T3 (es) 2017-08-18
SI2953355T1 (sl) 2017-07-31
MX339848B (es) 2016-06-15
ES2629870T3 (es) 2017-08-16
LT2996335T (lt) 2017-11-27
KR20140096004A (ko) 2014-08-04
CN105072443B (zh) 2018-07-27
WO2012044105A2 (ko) 2012-04-05
CN105049843A (zh) 2015-11-11
CN105049844B (zh) 2017-07-28
JP5654685B2 (ja) 2015-01-14
KR101707610B1 (ko) 2017-02-16
CN104980738A (zh) 2015-10-14
CN104994381A (zh) 2015-10-21
DK2860980T3 (en) 2017-07-17
HUE035494T2 (en) 2018-05-02
MX339850B (es) 2016-06-15

Similar Documents

Publication Publication Date Title
ES2640666T3 (es) Dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado
RU2612612C2 (ru) Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
ES2770320T3 (es) Interpolación de imágenes usando un filtro asimétrico de interpolación
ES2961857T3 (es) Interpolación adaptativa para la codificación de vídeo escalable espacialmente
US10085028B2 (en) Method and device for reducing a computational load in high efficiency video coding
JP5833757B2 (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム及び記録媒体
TW201234860A (en) Video coding using temporally coherent dynamic range mapping
KR20180005186A (ko) 인트라 예측을 수행하는 영상 복호화 방법 및 그 장치 및 인트라 예측을 수행하는 영상 부호화 방법 및 그 장치
KR20180006915A (ko) 인트라 예측을 수행하는 영상 복호화 방법 및 그 장치 및 인트라 예측을 수행하는 영상 부호화 방법 및 그 장치
US10911779B2 (en) Moving image encoding and decoding method, and non-transitory computer-readable media that code moving image for each of prediction regions that are obtained by dividing coding target region while performing prediction between different views
JP4241588B2 (ja) 動画像符号化装置、及び動画像復号化装置