ES2629870T3 - Procedimiento y dispositivo de interpolación de imágenes usando un filtro de interpolación de suavizado - Google Patents

Procedimiento y dispositivo de interpolación de imágenes usando un filtro de interpolación de suavizado Download PDF

Info

Publication number
ES2629870T3
ES2629870T3 ES15173605.5T ES15173605T ES2629870T3 ES 2629870 T3 ES2629870 T3 ES 2629870T3 ES 15173605 T ES15173605 T ES 15173605T ES 2629870 T3 ES2629870 T3 ES 2629870T3
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
ES15173605.5T
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 ES2629870T3 publication Critical patent/ES2629870T3/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 para la compensación de movimiento, comprendiendo el aparato: un selector de filtro que está configurado para seleccionar un filtro de 8 tomas de interpolación de muestras de brillo, y un interpolador que está configurado para determinar, en una imagen de referencia de brillo, un bloque de referencia de brillo para la predicción de un bloque actual, usando un vector de movimiento de brillo del bloque actual, y generar una muestra de brillo de una ubicación de 1/2 píxel incluida en el bloque de referencia de brillo aplicando el filtro de 8 tomas a muestras de brillo de una ubicación de píxel entero de la imagen de referencia de brillo, en el que el selector de filtro selecciona un filtro para la interpolación de muestras de color, el interpolador determina, en una imagen de referencia de color, un bloque de referencia de color para la predicción del bloque actual, usando un vector de movimiento de color del bloque actual, y generar una muestra de color de la ubicación de 1/2 píxel incluida en el bloque de referencia de color aplicando el filtro a muestras de color de una ubicación de píxel entero de la imagen de referencia de color, el filtro de 8 tomas comprende ocho coeficientes de filtro para generar la muestra de brillo de la ubicación de 1/2 píxel, que son {-1, 4, -11, 40, 40, -11, 4, -1}.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Procedimiento y dispositivo de interpolacion de imagenes usando un filtro de interpolacion de suavizado Campo tecnico
La presente invencion se refiere a un aparato para la compensacion de movimiento.
Antecedentes de la tecnica
En los procedimientos de codificacion y decodificacion de imagen tipicos, con el fin de codificar una imagen, una imagen se divide en bloques de macro. Despues de eso, la codificacion de prediccion se realiza sobre cada bloque de macro usando interprediccion o intraprediccion.
La interprediccion se refiere a un procedimiento de compresion de una imagen eliminando la redundancia temporal entre las 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 usando al menos una imagen de referencia. Un bloque de referencia que es mas similar a un bloque actual se encuentra dentro de un intervalo de busqueda predeterminado usando una funcion de evaluacion predeterminada.
Un bloque actual se predice basandose en un bloque de referencia, y un bloque residual obtenido sustrayendo del bloque actual un bloque de prediccion generado como un resultado de prediccion se codifica.
En este caso, con el fin de realizar la prediccion con mayor precision, se realiza la interpolacion sobre un intervalo de busqueda de la imagen de referencia, se generan pfxeles de unidad sub-pel mas menores que los pfxeles de unidad pel entera, y se realiza una interprediccion sobre los pfxeles de unidad sub-pel generados.
MCCANN (ZETACAST / SAMSUNG) K Y COL.: "Video coding technology proposal by Samsung (and BBC)", 1. JCT- VC MEETING; 15-4-2010 - 23-4-2010; DRESDEN; (JOINTCOLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16); URL:
HTTP://WFTP3.ITU.INT/AV- ARCH/JCTVC-SITE/, numero XP030007572, 1 de junio de 2010 (), XP030007573, ISSN: 0000-0049 describe la 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 para la compensacion de movimiento que utiliza un filtro de interpolacion para generar pfxeles de unidad sub-pel interpolando pfxeles de unidad pel entera.
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 un video se codifica y decodifica, puesto que una imagen de alta calidad se genera interpolando un fotograma de referencia y se realiza una estimacion y compensacion del movimiento basandose en la imagen de alta calidad, la precision de la interprediccion puede aumentarse. Tambien, ya que un filtro de interpolacion de suavizado se usa para reducir los componentes de alta frecuencia en un resultado de interpolacion y asf se obtiene el resultado de la interpolacion de suavizado, los componentes de alta frecuencia pueden retirarse y la eficacia de la codificacion de la imagen y la decodificacion de la imagen puede mejorarse.
Breve descripcion de los dibujos
La figura 1 es un diagrama de un aparato de interpolacion de imagen;
la figura 2 es un diagrama para describir una relacion entre una unidad pel entera y una unidad sub-pel; la figura 3 es un diagrama que ilustra pfxeles de unidad pel entera adyacentes a los que se hace referencia para determinar el valor de un pixel de unidad sub-pel;
las figuras 4A a 4C son diagramas que ilustran ejemplos de pfxeles de unidad pel entera a los que se haran
referencia para determinar el valor de un pixel de unidad sub-pel;
la figura 5 es un grafico de un parametro de un filtro de interpolacion de suavizado;
la figura 6 es un grafico de una funcion spline utilizable por un filtro de interpolacion de suavizado;
la figura 7 es un diagrama de flujo de un procedimiento de interpolacion de imagen;
las figuras 8A a 8C son tablas que muestran los coeficientes de filtro de filtros de interpolacion de 12 tomas determinados basandose en un parametro de suavizado y una ubicacion de interpolacion; las figuras 9A a 9C son tablas que muestran los coeficientes de filtro de filtros de interpolacion de 6 tomas determinados basandose en un parametro de suavizado y una ubicacion de interpolacion;
5
10
15
20
25
30
35
40
45
50
55
60
la figura 10 es una tabla que muestra coeficientes de filtro de filtros de interpolacion de 6 tomas determinados por
p^xeles de color basandose en un parametro de suavizado y una ubicacion de interpolacion;
la figura 11 es una tabla que muestra coeficientes de filtros de interpolacion de suavizado determinados de
manera diferente basandose en un componente de color y una ubicacion de interpolacion de imagen;
las figuras 12A a 12C son tablas que muestran coeficientes de filtro de filtros de interpolacion de suavizado de
imagen basandose en una ubicacion de interpolacion y un factor de escala, incluyendo aquellos de acuerdo con
las realizaciones de la presente invencion;
la figura 13A es un diagrama de bloques de un aparato de codificacion de video que usa una interpolacion de suavizado;
la figura 13B es un diagrama de bloques de un aparato de decodificacion de video que usa una interpolacion de suavizado;
la figura 14A es un diagrama de flujo de un procedimiento de codificacion que usa un filtro de interpolacion de suavizado.
la figura 14B es un diagrama de flujo de un procedimiento de decodificacion que usa un filtro de interpolacion de suavizado.
la figura 15 es un diagrama para describir un concepto de unidades de codificacion;
la figura 16 es un diagrama de bloques de un codificador de imagen basandose en unidades de codificacion; la figura 17 es un diagrama de bloques de un decodificador de imagen basandose en unidades de codificacion; la figura 18 es un diagrama que ilustra unidades de codificacion mas profundas de acuerdo con las profundidades, y particiones;
la figura 19 es un diagrama para describir una relacion entre una unidad de codificacion y unidades de transformacion;
la figura 20 es un diagrama para describir informacion de codificacion de unidades de codificacion que corresponde a una profundidad codificada;
la figura 21 es un diagrama unidades de codificacion mas profundas de acuerdo con las profundidades;
las figuras 22 a 24 son diagramas para describir una relacion entre unidades de codificacion, unidades de
prediccion, y unidades de transformacion;
la figura 25 es un diagrama para describir una relacion entre una unidad de codificacion, una unidad de prediccion o una particion, y una unidad de transformacion, de acuerdo con la informacion del 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 de suavizado basandose en unidades de codificacion que tienen una estructura de arbol; y la figura 27 es un diagrama de flujo de un procedimiento de decodificacion de video que usa un filtro de interpolacion de suavizado basandose en unidades de codificacion que tienen una estructura de arbol.
Mejor modo de 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 del suavizado, el procedimiento incluye seleccionar de distinta manera un filtro de interpolacion basandose en una ubicacion de interpolacion en unidades sub-pel y una suavidad de entre los filtros de interpolacion para generar al menos un valor de pixel de unidad sub-pel ubicado entre los pfxeles de unidad pel entera; y generar el al menos un valor de pixel de unidad sub-pel interpolando los valores de pixel de los pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado.
El filtro de interpolacion puede incluir coeficientes de filtro para transformar los pfxeles de unidad pel entera basandose en una pluralidad de funciones basicas e inversamente transformando una pluralidad de coeficientes generados como un resultado de la transformacion.
El filtro de interpolacion puede incluir coeficientes de filtros que tienen la suavidad determinada basandose en una distancia entre la ubicacion de interpolacion y los pfxeles de unidad pel entera. Los filtros de interpolacion pueden incluir coeficientes que tienen la suavidad determinada basandose en la distancia entre la ubicacion de interpolacion y los pfxeles de unidad pel entera en la ubicacion de interpolacion.
Con el fin de interpolar los pfxeles de unidad pel entera en un ambito espacial, el filtro de interpolacion puede incluir coeficientes de filtro obtenidos por la combinacion de un filtro para realizar la transformacion y la transformacion
inversa usando la pluralidad de funciones basicas, y una funcion de ventana, y la funcion de ventana puede ser
simetrica con respecto a la ubicacion de interpolacion.
Con el fin de interpolar los pfxeles de unidad pel entera en un ambito espacial, el filtro de interpolacion puede incluir coeficientes de filtro obtenidos por la combinacion de un filtro para realizar la transformacion y la transformacion
inversa usando la pluralidad de funciones basicas, y un parametro de suavizado, y el parametro de suavizado puede
controlar al menos uno de entre la velocidad de suavizado y el intervalo de suavizado.
El filtro de interpolacion puede incluir coeficientes de filtro basandose en una funcion spline. El filtro de interpolacion puede incluir coeficientes de filtro para maximizar una respuesta de baja frecuencia del filtro de interpolacion basandose en una funcion polinomica.
5
10
15
20
25
30
35
40
45
50
55
La seleccion del filtro de interpolacion puede incluir seleccionar un filtro de interpolacion que incluye coeficientes de filtro escalados a numeros enteros, de entre los filtros de interpolacion, y la generacion de al menos un valor de pixel de unidad sub-pel puede incluir normalizar el al menos un valor de pixel de unidad sub-pel generado usando el filtro de interpolacion seleccionado, basandose en un factor de escala.
La seleccion del filtro de interpolacion puede incluir seleccionar de diferente manera un filtro de interpolacion basandose en caractensticas de pixel de entre los filtros de interpolacion, y la generacion de el al menos un valor de pixel de unidad sub-pel puede incluir generar el al menos un valor de pixel de unidad sub-pel usando el filtro de interpolacion seleccionado de manera diferente basandose en las caractensticas del pixel.
En un ejemplo de un aparato para interpolar una imagen en consideracion del suavizado, el aparato incluye un selector de filtro que selecciona de distinta manera un filtro de interpolacion basandose en una ubicacion de interpolacion en unidades sub-pel y una suavidad de entre los filtros de interpolacion para generar al menos un valor de pixel de unidad sub-pel ubicado entre los pfxeles de unidad pel entera; y un interpolador para generar el al menos un valor de pixel de unidad sub-pel interpolando los valores de pixel de los pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado.
En un ejemplo de un procedimiento de interpolacion de una imagen en consideracion de un componente de color, el procedimiento incluye seleccionar de diferente manera un filtro de interpolacion basandose en la ubicacion de interpolacion de unidad sub-pel y un componente de color de un pixel actual de entre los filtros de interpolacion para generar el al menos un valor de pixel sub-pel ubicado entre los pfxeles de unidad pel entera; y generar el al menos un valor de pixel de unidad sub-pel interpolando los valores de pixel de los pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado.
La seleccion del filtro de interpolacion puede incluir, con el fin de interpolar un pixel de color, seleccionar un filtro de interpolacion que tiene una suavidad mas fuerte que un filtro de interpolacion para un pixel de brillo, de entre los filtros de interpolacion.
El filtro de interpolacion que tiene una suavidad mas fuerte que la del filtro de interpolacion para un pixel de brillo puede ser uno de entre un filtro que incluye coeficientes de filtro para suavizar los pfxeles de unidad pel entera, transformar los pfxeles de unidad pel entera suavizados usando una pluralidad de funciones basicas, y transformar inversamente una pluralidad de coeficientes generados como un resultado de transformar; un filtro obtenido combinando los coeficientes de filtro para realizar la transformacion y la transformacion inversa usando la pluralidad de funciones basicas, y los coeficientes de la funcion de ventana para realizar un filtrado de paso bajo; un filtro que incluye coeficientes de filtro para un suavizado mas fuerte de los pfxeles de unidad pel entera lfmite basandose en una condicion lfmite de una funcion spline; y un filtro que incluye coeficientes de filtro para maximizar una respuesta de baja frecuencia de un filtro de interpolacion basandose en una funcion polinomica.
En un ejemplo de un aparato para interpolar una imagen en consideracion de un componente de color, el aparato incluye un selector de filtro para seleccionar de manera diferente un filtro de interpolacion basandose en una ubicacion de interpolacion de unidad sub-pel y el componente de color de un pixel actual de entre los filtros de interpolacion para generar el al menos un valor de pixel de unidad sub-pel ubicado entre los pfxeles de unidad pel entera; y un interpolador para generar el al menos un valor de unidad sub-pel interpolando los valores de pixel de los pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado.
En un ejemplo de un codificador de video que utiliza un filtro de interpolacion de imagen, el codificador de video incluye un codificador para seleccionar de diferente manera un filtro de interpolacion basandose en la ubicacion de interpolacion de unidad sub-pel y una suavidad de entre los filtros de interpolacion almacenados en el codificador de video, con respecto a cada bloque de una imagen de entrada, que realiza la codificacion de prediccion para generar el al menos un valor de pixel de unidad sub-pel interpolando los valores de pfxeles de pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado, y realizar la transformacion y cuantificacion sobre un resultado de prediccion de la codificacion de prediccion de una unidad de salida para generar un flujo de bits generado por la realizacion de la codificacion de entropfa de coeficientes sobre los coeficientes de transformacion cuantificados y la informacion de codificacion; y un almacen para almacenar los coeficientes de filtro de los filtros de interpolacion.
En un ejemplo de un decodificador de video que utiliza un filtro de interpolacion de imagen, el decodificador de video incluye un receptor y un extractor para recibir un flujo de bits codificados de un video y extraer la informacion de codificacion y los datos codificados de una imagen de video por la realizacion de la decodificacion de entropfa y el analisis sobre el flujo de bits; un decodificador para realizar la cuantificacion inversa y la transformacion inversa sobre los coeficientes de transformacion cuantificados de los datos codificados de un bloque actual de la imagen, seleccionando de diferente manera un filtro de interpolacion sobre una ubicacion de interpolacion de unidad sub-pel y una suavidad de entre los filtros de interpolacion almacenados en el decodificador de video, que realiza la decodificacion de prediccion para generar el al menos un valor de pixel de unidad sub-pel interpolando los valores de pfxeles de pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado, y que reconstruye la imagen; y un almacen para almacenar los coeficientes de filtro de los filtros de interpolacion.
En algunas disposiciones, se proporciona un medio de grabacion legible por un ordenador que tiene grabado en el
5
10
15
20
25
30
35
40
45
50
un programa informatico para ejecutar el procedimiento anterior. Modo de la invencion
En la siguiente descripcion, una "imagen" puede referirse ampliamente a una imagen en movimiento tal como un video, asf como a una imagen fija.
La interpolacion que considera el suavizado, de acuerdo con un ejemplo de la presente invencion, se desvela con referencia a las figuras 1 a 12C. Tambien, una codificacion y decodificacion de video que usa un filtro de interpolacion de suavizado, de acuerdo con un ejemplo, se desvela con referencia a las figuras 13A a 27. Espedficamente, la codificacion y decodificacion de video que usa un filtro de interpolacion de suavizado que se basan en unidades de codificacion que tienen una estructura de arbol, de acuerdo con un ejemplo, se desvela con referencia a las figuras 15 a 27.
La interpolacion de imagen que considera el suavizado y un filtro de interpolacion de suavizado, de acuerdo con un ejemplo, se describira ahora en detalle con referencia a las figuras 1 a 12C.
La figura 1 es un diagrama de bloques de un aparato 10 de interpolacion de imagen.
El aparato 10 de interpolacion de imagen que considera el suavizado incluye un selector 12 de filtro y un interpolador 14. Las operaciones del selector 12 de filtro y del interpolador 14 del aparato 10 de interpolacion de imagen se controlaran de manera cooperativa por un procesador de codificacion de video, una unidad de procesamiento central (CPU), y un procesador grafico.
El aparato 10 de interpolacion de imagen puede recibir una imagen de entrada y puede generar valores de pixel de unidad sub-pel por la interpolacion de pfxeles de unidad pel entera. La imagen de entrada puede ser una secuencia de imagen, una imagen, un fotograma, o bloques de un video.
El selector 12 de filtro puede seleccionar de manera diferente un filtro de interpolacion para generar al menos un valor de pixel de unidad sub-pel ubicado entre las unidades pel enteras, basandose en una ubicacion de interpolacion de unidad sub-pel y una suavidad.
El interpolador 14 puede interpolar los pfxeles de unidad pel entera adyacentes a la ubicacion de interpolacion de unidad sub-pel usando el filtro de interpolacion seleccionado por el selector 12 de filtro, generando asf valores de pixel de unidad sub-pel. El filtrado de interpolacion de pfxeles de unidad pel entera para generar valores de pixel de unidad sub-pel puede incluir filtrado de interpolacion de valores de pfxeles de referencia de unidad pel entera que incluyen pfxeles de unidad pel entera adyacentes a la ubicacion de interpolacion de unidad sub-pel ubicada en una region soportada por el filtro de interpolacion.
Un filtro de interpolacion puede incluir coeficientes de filtro para transformar pfxeles de referencia de unidad pel entera basandose en una pluralidad de funciones basicas, y para transformar inversamente 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 manera secuencial el filtrado usando filtros de interpolacion unidimensional en dos o mas direcciones, generando asf un valor de pixel de unidad sub-pel actual.
Un filtro de interpolacion de suavizado puede tener una suavidad determinada basandose en una distancia entre una ubicacion de interpolacion y los pfxeles de unidad pel entera.
Un filtro de interpolacion puede incluir diferentes coeficientes de filtro basandose en la ubicacion de interpolacion de unidad sub-pel y una suavidad. De ahora en adelante, a un filtro de interpolacion determinado en consideracion de una ubicacion de interpolacion de unidad sub-pel y una suavidad se hara referencia como filtro de interpolacion de suavizado.
Un filtro de interpolacion de suavizado puede tener una suavidad determinada basandose en una distancia entre una ubicacion de interpolacion y los pfxeles de unidad pel entera adyacentes a la ubicacion de interpolacion.
Tambien, el filtro de interpolacion de suavizado puede incluir coeficientes de filtro para pfxeles de referencia de unidad pel entera de suavizado mas fuerte lejos de la ubicacion de interpolacion.
Con el fin de interpolar pfxeles de unidad pel entera en un ambito espacial, el filtro de interpolacion de suavizado puede obtenerse combinando coeficientes de filtro para realizar la transformacion y la transformacion usando una pluralidad de funciones basicas, y coeficientes de funcion de ventana para realizar el filtrado de paso bajo.
Una funcion de ventana puede ser simetrica con respecto a una ubicacion de interpolacion. El filtro de interpolacion de suavizado obtenido por la combinacion de coeficientes de filtro para la realizacion de la transformacion y la transformacion inversa y los coeficientes de funcion de ventana para realizar el filtrado de paso bajo puede incluir
5
10
15
20
25
30
35
40
45
50
coeficientes de filtro para proporcionar un mayor peso a un pixel de referencia de unidad pel entera cerca de la ubicacion de interpolacion y proporcionar un menor peso a un pixel de referencia de unidad pel entera lejos de la ubicacion de interpolacion.
El filtro de interpolacion de suavizado puede incluir coeficientes de filtro para suavizar pfxeles de referencia de unidad pel entera, transformar los pfxeles de referencia de unidad pel entera suavizados usando una pluralidad de funciones basicas, y transformar inversamente una pluralidad de coeficientes generados como un resultado de transformacion.
El filtro de interpolacion de suavizado es un filtro de interpolacion en un ambito espacial, y puede incluir coeficientes de filtro obtenidos por la combinacion de un filtro de interpolacion para realizar la transformacion y la transformacion inversa, un parametro de suavizado. El parametro de suavizado puede controlar al menos uno de entre la velocidad de suavizado y el intervalo de suavizado.
El filtro de interpolacion de suavizado puede incluir coeficientes de filtro basandose en una funcion spline. Es decir, una funcion basica de transformacion y de transformacion inversa para determinar los coeficientes de filtro de interpolacion puede ser una funcion spline. Con el fin de obtener un resultado de interpolacion mas suave, el filtro de interpolacion de suavizado puede incluir coeficientes de filtro determinados por el uso de una funcion spline.
De acuerdo con un ejemplo, un filtro de interpolacion de suavizado basandose en una funcion spline puede incluir coeficientes de filtro para un mayor suavizado de pfxeles de referencia de unidad pel entera de lfmite basandose en una condicion lfmite de la funcion spline.
De acuerdo con otro ejemplo, si una funcion basica de transformacion y de transformacion inversa es una funcion polinomica, un filtro de interpolacion de suavizado puede incluir coeficientes para maximizar una respuesta de baja frecuencia de un filtro de interpolacion basandose en la funcion polinomica.
Un filtro de interpolacion de suavizado de acuerdo con un ejemplo puede incluir coeficientes de filtro diferentes basandose en una longitud de filtro como una ubicacion de interpolacion de unidad sub-pel y una suavidad.
Tambien, el filtro de interpolacion de suavizado puede incluir coeficientes de filtro diferentes basandose en un factor de escala de un resultado de interpolacion, asf como una ubicacion de interpolacion de unidad sub-pel, una suavidad, y una longitud de filtro. El selector 12 de filtro puede seleccionar un filtro de interpolacion de suavizado que incluye coeficientes de filtro escalado a numeros enteros. El interpolador 14 normaliza los valores de pixel generados usando el filtro de interpolacion de suavizado seleccionado por el selector 12 de filtro.
Tambien, el selector 12 de filtro puede seleccionar de manera diferente un filtro de interpolacion basandose en caractensticas de pixel. El interpolador 14 puede generar valores de unidad sub-pel usando el filtro de interpolacion de diferente manera basandose en caractensticas de pixel.
El filtro de interpolacion seleccionable por el selector 12 de filtro puede incluir un filtro de interpolacion de suavizado y un filtro de interpolacion general que no considera el suavizado. De esta manera, basandose en las caractensticas de la imagen, el selector 12 de filtro puede seleccionar un filtro de interpolacion general que no considere el suavizar en absoluto.
Por ejemplo, el aparato 10 de interpolacion de imagen puede realizar una interpolacion de imagen usando diferentes filtros de interpolacion de imagen de acuerdo con los componentes de color.
De acuerdo con otro ejemplo, el selector 12 de filtro puede seleccionar de diferente manera un filtro de interpolacion basandose en la ubicacion de interpolacion de unidad sub-pel y un componente de color del pixel actual. De acuerdo con otro ejemplo, el interpolador 14 puede interpolar pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado, generando asf al menos un valor de pixel de unidad sub-pel.
Por ejemplo, el selector 12 de filtro puede determinar de diferente manera un filtro de interpolacion para un componente de brillo y un filtro de interpolacion para un componente de color.
Con el fin de interpolar un pixel de color, el selector 12 de filtro puede seleccionar un filtro de interpolacion de suavizado que tiene una mayor suavidad que la de un filtro de interpolacion para un pixel de brillo.
Por ejemplo, con el fin de interpolar un pixel de color, un filtro de interpolacion que incluye coeficientes de filtro determinados basandose en una funcion spline o un filtro de interpolacion que incluye coeficientes de filtro determinados basandose en una funcion polinomica puede seleccionarse. Los coeficientes de filtro determinados pueden basandose en una funcion spline puede suavizar de manera mas fuerte los pfxeles de unidad pel entera de ifmite basandose en una condicion lfmite de la funcion spline. El filtro de interpolacion determinado basandose en una funcion polinomica puede incluir coeficientes para maximizar una respuesta de baja frecuencia.
Tambien, con el fin de interpolar un pixel de color, un filtro de interpolacion que incluye coeficientes de interpolacion basandose en un parametro de suavizado que tiene una suavidad mas fuerte que la de un filtro de interpolacion para un pixel de brillo, o un filtro de interpolacion que incluye coeficientes de filtro combinados con una funcion de
5
10
15
20
25
30
35
40
45
50
ventana para eliminar mas componentes de alta frecuencia que un filtro de interpolacion para un pixel de brillo puede seleccionarse.
Con el fin de obtener un resultado de interpolacion mas suave de un componente de color, un filtro de interpolacion de suavizado obtenido por la combinacion de coeficientes de filtro para realizar la transformacion y la transformacion inversa basandose en una pluralidad de funciones basicas, y coeficientes de funcion de ventana para realizar el filtrado de paso bajo puede seleccionar.
La interpolacion de imagen se usa para transformar una imagen de baja calidad en una imagen de alta calidad, para transformar una imagen entrelazada en una imagen progresiva, o crear una muestra complementaria de una imagen de baja calidad en una imagen de alta calidad. Tambien, cuando un aparato de codificacion de video codifica una imagen, un estimador de movimiento y un compensador pueden realizar una interprediccion usando un fotograma de referencia interpolado. La precision de la interprediccion se puede aumentar interpolando un fotograma de referencia para generar una imagen de alta calidad, y realizar la estimacion de movimiento y compensacion basandose en la imagen de alta calidad. De manera similar, cuando un aparato de decodificacion de imagen decodifica una imagen, un compensador de movimiento puede realizar la compensacion de movimiento usando un fotograma de referencia interpolado, aumentando asf la precision de la interprediccion.
Tambien, el filtro de interpolacion de suavizado usado por el aparato 10 de interpolacion de imagen puede obtener un resultado de interpolacion suave reduciendo los componentes de alta frecuencia en un resultado de interpolacion que usa un filtro de interpolacion. Ya que los componentes de alta frecuencia reducen la eficacia de la compresion de imagen, la eficacia de la codificacion y decodificacion de la imagen puede tambien mejorarse realizando una interpolacion de imagen de suavidad ajustable.
La figura 2 es un diagrama para describir una relacion entre una unidad pel entera y una unidad sub-pel.
En referencia a la figura 2, el aparato 10 de interpolacion de imagen genera valores de ubicaciones "X" interpolando los valores de pfxeles de unidad pel entera de ubicaciones "O" de un bloque 20 predeterminado en un ambito espacial. Los valores de pixel e las ubicaciones "X" son valores de pixel de unidad sub-pel de ubicaciones de interpolacion determinados por ax y ay. Aunque la figura 2 ilustra que el bloque 20 predeterminado es un bloque 4x4, se entendera facilmente por un experto en la materia que el tamano del bloque no se limita a 4x4 y puede ser mayor o menor de 4x4.
En el procesamiento de video, se usa un vector de movimiento para realizar una compensacion de movimiento y prediccion sobre una imagen actual. Basandose en la codificacion de prediccion, a una imagen decodificada previamente se hace referencia como para predecir una imagen actual, y un vector de movimiento indica un punto predeterminado de una imagen de referencia. Por lo tanto, un vector de movimiento indica un pixel de unidad pel entera de una imagen de referencia.
Sin embargo, un pixel al que se hara referencia por una imagen actual puede ubicarse entre los pfxeles de unidad pel entera de una imagen de referencia. A dicha ubicacion se hace referencia como una ubicacion de unidad sub- pel. Ya que un pixel no existe en una ubicacion de unidad sub-pel, un valor de pixel de unidad sub-pel se predice meramente usando los valores de pixel de unidad pel entera. En otras palabras, un valor de pixel de unidad sub-pel se estima por la interpolacion de pfxeles de unidad pel entera.
Un procedimiento de interpolacion de pfxeles de unidad pel entera se describira ahora en detalle con referencia a las figuras 3, y 4A a 4C.
La figura 3 es un diagrama que ilustra pfxeles de unidad pel entera adyacentes a los que se hara referencia para determinar un valor de pixel de unidad sub-pel.
En referencia a la figura 3, el aparato 10 de interpolacion de imagen genera un valor 35 de pixel de unidad sub-pel de una ubicacion de interpolacion interpolando los valores 31 y 33 de pixel de unidad pel entera en un ambito espacial. La ubicacion de la interpolacion se determina por a.
las figuras 4A a 4C son diagramas que ilustran ejemplos de pfxeles de unidad pel entera a los que se haran referencia para determinar el valor de un pixel de unidad sub-pel.
En referencia a las figuras 4A, con el fin de generar un valor 35 de pixel de unidad sub-pel por interpolacion de dos valores 31, 33 de pixel de unidad pel entera, una pluralidad valores 37 y 39 de pfxeles de unidad pel entera adyacentes que incluyen los valores 31 y 33 de pfxeles de unidad pel entera. En otras palabras, los pfxeies 0° y 1° pueden interpolarse por la realizacion de un filtrado de interpolacion unidimensional en valores de pfxeles de 2M de un valor de pixel -(M-1)° a un valor de pixel M°.
Tambien, aunque la figura 4F ilustra que los valores de pixel en una direccion horizontal se interpolan, el filtrado de interpolacion unidimensional se puede realizar usando valores de pixel en una direccion vertical o diagonal.
En referencia ahora a las figuras 4B, un valor P(a) de una ubicacion de interpolacion puede generarse interpolando
5
10
15
20
25
30
35
40
45
50
los pfxeles Po 41 y Pi 43 que son adyacentes entre s^ en una direccion vertical. Cuando se comparan las figuras 4A y 4B, sus procedimientos de filtrado de interpolacion son similares y la unica diferencia entre ellos es que los valores 47 y 49 de pfxeles alineados en una direccion vertical se interpolan en la figura 4B mientras que los valores 37 y 39 de pixel alineados en una direccion horizontal se interpolan en la figura 4A.
En referencia a la figura 4C, de manera similar, un valor 44 de pixel de la ubicacion de interpolacion a se genera por interpolacion de los dos valores 40 y 42 de pixel adyacentes. La unica diferencia de la figura 4A es que los valores 46 y 48 de pfxeles que se alinean en una direccion diagonal se usan en lugar de valores 37 y 39 de pixel alineados en una direccion horizontal.
Ademas de las direcciones mostradas en las figuras 4A a 4C, un filtrado de interpolacion dimensional puede realizarse en diversas direcciones.
El filtrado de interpolacion puede realizarse para interpolar pfxeles de unidad pel entera para generar un valor de pixel de unidad sub-pel. El filtrado de interpolacion puede representarse mediante la siguiente ecuacion.
p(«) = f(a) x p = £“m+1 fra • pm
Un valor p(x) se genera realizando la interpolacion basandose en un producto de punto de un vector p de pfxeles {pm}={p-M+i, p-M+2, ..., pi, ..., pm} de referencia de unidad pel entera 2M y un vector f(x) o coeficientes {fm}={f-M+i, f-M+2, ..., fi, ..., fM} de filtro. Ya que un coeficiente f(a) de filtro vana basandose en la ubicacion de interpolacion a y un valor p(a) de pixel obtenido realizando la interpolacion se determina basandose en el coeficiente f(a) de filtro, un filtro de interpolacion seleccionado, es decir, el coeficiente f(x) de filtro se determinado, incluye enormemente en el rendimiento del filtrado de interpolacion.
La interpolacion de imagen que usa transformacion y transformacion inversa basandose en funciones basicas, y un procedimiento de determinar un filtro de interpolacion se describira ahora en detalle.
Un filtro de interpolacion que usa transformacion y transformacion inversa inicialmente transforma los valores de pixel usando una pluralidad de funciones basicas que tienen componentes de diferentes frecuencias.
La transformacion puede incluir cualquier tipo de transformacion desde valores de pixel en un ambito espacial en coeficientes en un ambito de transformacion, y puede ser una transformacion de coseno discreta (DCT). Los valores de pixel de unidad pel entera se transforman usando una pluralidad de funciones basicas. Un valor de pixel puede ser un valor de pixel de brillo o un valor de pixel de color. Las funciones basicas no se limitan a funciones basicas particulares y pueden incluir todas las funciones basicas para transformar valores de pfxeles en un ambito espacial en valores de pfxeles en un ambito de transformacion. Por ejemplo, una funcion basica puede ser una funcion de coseno o de selo para realizar DCT y DCT (IDCT) inversa. De manera alternativa, las diversas funciones basicas tales como una funcion spline y una funcion polinomica se pueden usar. Tambien, la DCT puede ser una DCT (MDCT) modificada o MDCT con sistema de ventanas.
El filtro de interpolacion que usa la transformacion y la transformacion inversa desplaza las fases de las funciones basicas usadas para realizar los valores de transformacion y de transformacion inversa de una pluralidad de coeficientes generados usando las funciones basicas de desplazamiento de fase, es decir, valores en un ambito de transformacion. Como un resultado de transformacion inversa, los valores de pixel en un ambito espacial se generan y los valores de salida pueden ser valores de pfxeles de una ubicacion de interpolacion.
<Coeficientes de filtro que usan transformacion y transformacion inversa ortogonal basandose en funciones basicas ortogonales>
Un caso cuando el interpolador 14 lleva a cabo el filtrado de interpolacion que usa la transformacion y la transformacion inversa basandose en funciones basicas ortogonales se describira ahora en detalle. Espedficamente, la DCT se describe como un ejemplo de transformacion.
Por ejemplo, En referencia a la figura 4A, con el fin de generar un valor 35 de pixel de unidad sub-pel por interpolacion de dos valores 31, 33 de pixel de unidad pel entera, usando una pluralidad valores 37 y 39 de pfxeles de unidad pel entera adyacentes que incluyen los valores 31 y 33 de pfxeles de unidad pel entera, los pfxeles 0° y 1° pueden interpolarse por la realizacion de una DCT unidimensional en valores de pfxeles de 2M de un valor de pixel - (M-1)° a un valor de pixel M°, y realizar la IDCT unidimensional basandose en las funciones basicas de desplazamiento de fase.
El interpolador 14 inicialmente realiza la DCT unidimensional sobre valores de pixel de unidad pel entera. La DCT unidimensional se puede realizar como se representa en la ecuacion 1.
[Ecuacion 1]
5
10
15
20
25
30
35
ck = ^t
1VJ~ l=-M+1 ^1VL
0< k< 2M— 1
p(I) representa los valores 37 y 39 de p^xel de un valor de p^xel -(M-1)° a un valor de pfxel M°, y Ck representa una pluralidad de coeficientes en un ambito de frecuencia, que se generan realizando una DCT unidimensional sobre los valores 37 y 39 de pfxel. En este caso, k es un numero entero positivo que cumple la condition anterior de la ecuacion 1.
Despues de realizar la DCT unidimensional sobre los valores 37 y 39 de pfxel usando la ecuacion 1, el interpolador 14 realiza la transformation inversa sobre los coeficientes como se representa en la ecuacion 2.
[Ecuacion 2]
imagen1
a representa una ubicacion de interpolation entre dos valores de pfxel como se ilustra en la figura 13, y puede tener diversos valores fraccionales, tal como 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, etc. El valor fraccional no se limita a un valor particular, y puede ser un valor real en lugar de un valor fraccional. P(a) representa el valor 35 de pfxel de unidad sub-pel de la ubicacion a de interpolacion, que se genera como un resultado IDCT unidimensional.
Cuando la ecuacion 2 se compara con la ecuacion 1, la fase de una funcion de coseno que es una funcion basica usada para realizar una IDCT se determina basandose en un numero fraccional a en lugar de un numero entero I, y por lo tanto es asf diferente de la fase de una funcion basica usada para realizar una DCT unidimensional. En otras palabras, la fase de cada funcion basica usada para realizar la transformacion inversa, es decir, es una funcion coseno, se desplaza basandose en 2a. Si el interpolador 14 realiza una IDCT basandose en las funciones coseno de fase desplazada de acuerdo con la ecuacion 2, el valor 35 de pfxel sub-pel de la ubicacion a de interpolacion, es decir, P(a), se genera.
la DCT de acuerdo con la ecuacion 1 se expresa mediante la ecuacion matriz representada en la ecuacion 3.
[Ecuacion 3]
C— Dx REF
Aqm, C es una matriz 2Mx1 de los coeficientes 2M anteriormente descritos en relation con la ecuacion 1, y REF es una matriz 2Mx1 de los valores de pfxel de unidad pel entera, es decir, valores de pfxel P-(m-1), ..., Pm, descritos anteriormente en relacion con la ecuacion 1. El numero de valores de pfxel de unidad pel entera usado para realizar la 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 puede definirse como se representa en la ecuacion 4.
[Ecuacion 4]
imagen2
0<k<2M— 1,
— (M— 1) < Z< M
k e I son numeros enteros que satisfacen las condiciones anteriores, y Dki se refiere a una fila K y a una columna I de la matriz D cuadrada para realizar la DCT en la ecuacion 3. M es igual que en la ecuacion 3.
la IDCT que usa una pluralidad de funciones basicas e fase desplazada de acuerdo con la ecuacion 2 se expresa mediante una ecuacion matriz representada en la ecuacion 5.
[Ecuacion 5]
5
10
15
20
25
30
P(a ) = W(a) X C
Aqul, P(a) es igual que en la ecuacion 2, y W(a) es una matriz 1x2M para realizar una IDCT unidimensional mediante el uso de una pluralidad de funciones basicas de fase desplazada y se pueden definir como se representa en la ecuacion 6.
[Ecuacion 6]
Wa(a) =
Wk(a) =
l<k<2M— 1
k es un numero entero que cumple las condiciones anteriores, y Wk(a) se refiere a una columna k de la matriz W(a) descrita anteriormente en relacion con la ecuacion 5. Un filtro F(a) para realizar un DCT unidimensional y una IdCt unidimensional que usa una pluralidad de funciones basicas de fase desplazada de acuerdo con las ecuaciones 3 y 5 pueden definirse como se representa en la ecuacion 7.
[Ecuacion 7]
P(o) = P(o ) x REF,
■2M— 1
^i(«) = £ Wk(a)Du,
k= 0
0<fc<2M-l,
— (M— 1)<1<M
k e I son numeros enteros que satisfacen las condiciones anteriores, Fl(a) se refieren a una columna I de F(a), y W(a) y D son iguales que los de la ecuacion 3.
Con el fin de generar valores de pixel de unidad sub-pel mas fuertemente suavizados, el interpolador 14 puede cambiar un filtro de interpolation usado para realizar la transformation y la transformation inversa basandose en una funcion basica.
Un caso cuando se usa una funcion de ventana, un caso cuando se usa una pluralidad de parametros de suavizado, un caso cuando se usa una funcion spline como una funcion base, y un caso cuando se usa una funcion polinomica como una funcion basica para determinar diversos filtros de interpolacion de suavizado se describiran ahora secuencialmente en detalle.
<Filtro de interpolacion de suavizado que usa una funcion de ventana>
Un procedimiento de coeficientes de filtro de interpolacion de suavizado mediante el uso de una funcion de ventana se describira ahora en detalle.
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. Aunque los casos en los que los filtros de interpolacion basandose en la transformacion y en la transformacion inversa se suavizan por el uso de ciertas funciones de ventana se describiran a continuation para mayor comodidad de explication, se entendera facilmente por un experto en la materia que, Ademas de las funciones de ventana descritas, se pueden usar tambien otras funciones de ventana que tengan respuestas de frecuencia similares.
Los coeficientes de ventana basandose en una funcion de ventana de Hamming satisfacen la ecuacion 24.
2’
+ 2M)fa ),
5
10
15
20
25
30
[Ecuacion 8]
w{n) = 0.54 - 0.46eos(—),0 <n < M
N
En diversas funciones de ventana que incluyen una funcion de ventana de Hamming, y una entrada n es simetrica en referencia con N/2 y una respuesta de frecuencia es similar a aquella del filtro de paso bajo. De entre las entradas de una funcion de ventana, solo una entrada cubierta por una ventana formada por la funcion de ventana puede generarse. Una ventana de tamano N puede establecerse como un numero entero positivo en lugar de la longitud de un filtro de interpolacion original. Por ejemplo, para aplicar una funcion de ventana a un filtro de interpolation para generar un pixel de unidad sub-pel tal como un pixel 1/2 o 1/4, la ubicacion central de la funcion de ventana puede moverse por un pixel 1/2 o 1/4. Es decir, ya que la ubicacion central de la funcion de ventana se mueve a una ubicacion de interpolacion, la funcion de ventana puede estar simetrica con respecto a la ubicacion de interpolacion.
Por ejemplo, Las ecuaciones 9 y 10 muestran respectivamente coeficientes de funciones de ventana de Hamming para filtros de interpolacion de 1/2 unidades pel y 1/4 unidades pel, respectivamente.
[Ecuacion 9]
wt/2 ( n) — 0.54 —0.46cos-^ ( ^2 ^ + )
[Ecuacion 10]
w1/4 (n) = 0.54 - 0.46cos^ ( 2N~1 + n)
La ecuacion 11 muestra secuencialmente los coeficientes de ventana de una funcion de ventana de Hamming, una funcion de ventana de coseno, una funcion de ventana exponencial como funciones de ventana para filtros de interpolacion, que se generalizan basandose en una ubicacion a de interpolacion de unidad sub-pel.
[Ecuacion 11]
wa ( n) = 0.54 —0.46cos(-^(4^-—a +n)),
wa (n) = cos(yi N ),
wa = exp—(3 (q —n)2
Combinando los coeficientes de ventana de acuerdo con la reivindicacion 11 con un filtro fk(a) de interpolacion original, los coeficientes de filtro de interpolacion de suavizado pueden determinarse de acuerdo con la ecuacion 12.
[Ecuacion 12]
fk = fk(<*)wa(k),
k=—M+ 1,M
Ya que un filtro de interpolacion de suavizado se determina usando una funcion de ventana, un peso de un coeficiente de filtro de interpolacion puede ajustarse basandose en la distancia entre un pixel de referencia de unidad pel entera y una ubicacion de interpolacion. Por ejemplo, un filtro de interpolacion de suavizado puede determinarse de tal manera que, mediante una funcion de ventana, de entre los coeficientes de filtro de un filtro de interpolacion, un coeficiente de filtro para un pixel de referencia de unidad pel entera ubicada lejos de una ubicacion de interpolacion se cambia ampliamente y un coeficiente de filtro para un pixel de referencia de unidad pel entera cerca de la ubicacion de interpolacion no se cambia ampliamente.
5
10
15
20
25
30
35
40
Tambien, si un filtro de interpolation de suavizado se determina usando una funcion de ventana, el filtrado de interpolation puede realizarse despues de que los pixeles de referencia de unidad pel entera se suavicen. Los pixeles de referencia de unidad pel entera Ref = {p-M+i, p-M+2, ..., po, pi, ... pm} pueden incluir ruido o pueden danarse debido a un error tal como un error de cuantificacion. Como tal, si los pixeles de referencia de unidad pel entera se suavizan antes realizar el filtrado de interpolacion, el aparato 10 de interpolacion de imagen puede mejorar un efecto de interpolacion.
<Filtro de interpolacion de suavizado que usa dos parametros>
Un filtro de interpolacion de suavizado puede determinar la suavidad de los coeficientes de filtro basandose en dos parametros. El filtro de interpolacion de suavizado de unidad sub-pel obtenido por la combination de una matriz S de suavizado u coeficientes de filtro de interpolacion basados en la transformation y en la transformation inversa satisfacen la ecuacion 13.
[Ecuacion 13]
La ecuacion 14 muestra un ejemplo de matriz S de suavizado.
[Ecuacion 14]
j ~~~ ^
Hi = i — %*+1 = o-*}; *=— m+i
Hi = 1 %;i±1 = txj; —M+l<*< M
Hi = ! — «m_i = aih i = M
La matriz S de suavizado de acuerdo con la ecuacion 14 es una matriz de tres diagonales. En otras palabras, de
entre los componentes de la matriz S de suavizado, los componentes distintos de los componentes en una linea
diagonal central y dos lineas diagonales centrales que corresponden entre si y adyacentes a la linea de diagonal central son todas 0.
En la matriz s de suavizado, una suavidad 6i puede determinarse independientemente de la distancia (i-a) de los pixeles de unidad pel entera que se interpolaran. En este caso, la suavidad basada en la matriz S de suavizado puede denominarse como un suavizado uniforme.
Tambien, en la matriz S de suavizado, la suavidad 6 puede variar basandose en un indice I de una ubicacion de pixel de unidad pel entera. En este caso, la suavidad basada en la matriz S de suavizado puede denominarse como un suavizado no uniforme. Por ejemplo, la suavidad 6 puede satisfacer la ecuacion 15.
[Ecuacion 15]
imagen3
imagen4
Un indice I positivo puede aumentar un efecto de la distancia entre una ubicacion de interpolacion y un pixel de referencia de unidad pel entera es grande. Por consiguiente, el indice I positivo puede controlar la velocidad del suavizado basandose en la distancia entre la ubicacion de interpolacion y un pixel de unidad pel entera. Un parametro p puede controlar el intervalo de suavizado alrededor de una ubicacion de interpolacion.
Si el parametro p de suavizado es menor que 0, la matriz S de suavizado de acuerdo con la ecuacion 13 puede cambiarse a un filtro de afilado. Por consiguiente, Si la matriz S de suavizado que es menor que 0 se combina con un filtro de interpolacion que usa la transformacion y la transformacion inversa, un filtro para amplificar los componentes de alta frecuencia puede generarse.
Con el fin de realizar la prediction de unidad sub-pel, el aparato 10 de interpretation de imagen puede usar los datos de coeficiente de filtro de interpolacion de suavizado almacenados previamente en la memoria.
La figura 5 es un grafico 50 de un factor de suavizado basado en un parametro p de suavizado de un filtro de interpolacion de suavizado.
La primera y la segunda curva 52 y 54 muestran un factor de suavizado para suavizar un filtro de interpolacion basandose en la transformacion discreta. Si m es grande, es decir, si la distancia de los pixeles de unidad pel entera
10
15
20
25
30
que se interpolaran se aumenta, el factor de suavizado es cerca de 0.
Aqui, en comparacion con la segunda curva 54, en un caso en el que el parametro p de suavizado es grande, la primera curva 52 en un caso en el que el parametro p de suavizado es pequeno tiene un ancho relativamente agrando del factor de suavizado. En otras palabras, si el parametro p de suavizado del filtro de interpolation de suavizado es grande, los componentes de baja frecuencia pueden filtrarse principalmente y asi suavizar relativamente con fuerza los valores de pixel de unidad sub-pel pueden generarse. Si el parametro p de suavizado del filtro de interpolacion de suavizado es relativamente pequeno, los componentes de frecuencia relativamente alta pueden permanecer e interpolarse y asi los valores de pixel de unidad sub-pel pueden generarse.
Con el fin de determinar los coeficientes de filtro de un filtro de interpolacion de suavizado, el aparato 10 de interpolacion de imagen puede usar una funcion spline o una funcion polinomica como una funcion basica, asi como una funcion basica ortogonal.
<Filtro de interpolacion de suavizado basado en una funcion spline>
El aparato 10 de interpolacion de imagen puede determinar los coeficientes de filtro de un filtro de interpolacion de suavizado basado en una funcion spline.
Tambien, con el fin de suavizar un resultado de interpolacion, el aparato 10 de interpolacion de imagen puede usar una funcion spline que tiene una condition limite. En mayor detalle, por ejemplo, si la interpolacion spline polinomica que tiene una variable p se usa para formar un filtro de interpolacion que usa pixeles pm de unidad entera M (M es un numero entero igual o mayor que 2), con el fin de permitir que la variable p tenga una suavidad maxima en un intervalo de 3<p<M<+1y para permitir un valor spline, es decir, un valor de resultado de interpolacion que sera infinitamente suave en un pixel (-M+2)° y un pixel (M-1)°, (p-1) condiciones adicionales pueden establecerse. Estas condiciones adicionales se denominan condiciones limite de no nudo o condiciones limite de Boor.
Un resultado de interpolacion que usa coeficientes de filtro de interpolacion basandose en una funcion spline puede representarse como una suma ponderada calculada usando la ecuacion 16.
[Ecuacion 16]
M
S(X) = E Pj,n(X)
-M+1
Los pixeles de entrada pm son pixeles de referencia de unidad pel entera, y un conjunto {pm} de pixeles de entrada en el que el intervalo de m es [-M+1, M] (es decir, -M+1<m<M) se introducen. Una funcion S(x) spline corresponde a valores de pixeles generados como un resultado fm(x) de interpolacion es un interpolante spline cardinal y corresponde a los coeficientes de filtro basados en una funcion fm(x) spline cardinal pueden ser los valores de la funcion spline cardinal que tienen la misma condicion limite y que tiene valores solo en las ubicaciones de pixel de referencia de unidad pel entera (es decir, -M+1<m<M, m es un numero entero).
El coeficiente fm(x) de filtro puede determinarse usando la ecuacion 17.
[Ecuacion 17]
fJx> =a'-M+1+*(i -z) + CM+1+*+1*
+ 0™((1 — zf + z — 1 )/6 + <rf„+103 — z)/6 z = x M— 1 — k
Cuando K es un numero entero en un intervalo de 0 < k < 2M-2, el coeficiente fm(x) de filtro spline puede determinarse en cada numero m entero en un intervalo de [-M+1+k, -M+k+2], es decir, de (-M+1+k) a (-M+k+2).
En la ecuacion 17, un coeficiente [Ecuacion 18]
puede determinarse basandose en la ecuacion 18.
5
10
15
20
25
30
35
— am + 2alm-am=0t
am 1 + 4+ + ++1 = 6(5^ 1 — 25^-j- 5^+1). 1< k<2M— 3,
__ 2+f—3 j ^ 2M—2 ,_2M—1 fj
— fTm ~r^° m — “ U
Para interpolation de unidad sub-pel, se puede calcular y almacenar previamente un filtro de respuesta de impulso finito (FIR) que incluye coeficientes fm(a) de filtro de acuerdo con una ubicacion de interpolacion a, y un valor de pixel de unidad sub-pel en una ubicacion de interpolacion a entre un pixel 0° y un primer pixel puede generarse realizando el filtrado de interpolacion que usa el filtro FIR que incluye los coeficientes fm(a) de filtro sobre el pixel pm de referenda de unidad pel entera.
La figura es un grafico de una funcion 60 spline que se puede usar por un filtro de interpolacion de suavizado.
En referencia a la figura 6, basandose en una funcion spline que tiene una variable p de 3, tres curvas f-2(x) 61, f-i(x) 62 y f0(x) 63 interpolantes spline para 2M=6, es decir, un filtro de interpolacion de 6 tomas se ilustra. Por ejemplo, los coeficientes de filtro de interpolacion para generar valores de pixel de unidad sub-pel que satisfacen a=1/4pueden determinarse como f-2(1/4) 64, f_1 (1/4) 65, y fo(1/4) 66, sobre las curvas f-2(x) 61, f-1(x) 62, y fo(x) 63 interpolantes spline.
<Filtro de interpolacion de suavizado basado en una funcion polinomica>
El aparato 10 de interpolacion de imagen puede determinar los coeficientes de filtro de un filtro de interpolacion de suavizado basado en una funcion polinomica.
Una funcion de interpolacion polinomica que incluye coeficientes {fk} de filtro de interpolacion basandose en una funcion polinomica puede representarse basandose en una funcion polinomica como una funcion basica mediante el uso de la ecuacion 19. El numero entero k se define dentro de un intervalo de -M+1 < k < M.
[Ecuacion 19]
M
E i(a)e“, e4””
-M+1
Tambien, con el fin de suavizar un resultado de interpolacion, el aparato 10 de interpolacion de imagen puede determinar coeficientes de filtro optimizados para una banda de baja frecuencia de entre los coeficientes {fk} de filtro basandose en una funcion polinomica. Por ejemplo, si una frecuencia w es 0, los coeficientes {fk} de filtro determinados cuando un valor de funcion de una funcion de interpolacion polinomica y los valores de funcion de derivados de funcion de interpolacion polinomica son los mismos, pueden determinarse como coeficientes de filtro de interpolacion optimizados para una banda de baja frecuencia. Como tal, como se representa en la ecuacion 20, como una funcion para el numero entero k, se pueden obtener funciones lineales 2M para coeficientes {fk} de filtro 2M.
[Ecuacion 20]
M
E /»(«)*“= am
— M+1
Se pueden calcular soluciones de las funciones lineales de la ecuacion 20 usando una funcion polinomica de Newton. La ecuacion 21 representa coeficientes {fk} de filtro 2M calculados como soluciones de las funciones lineales de la ecuacion 20.
[Ecuacion 21]
imagen5
Un filtro de interpolacion que incluye coeficientes {fk} de filtro determinados basandose en la funcion polinomica de Newton de las ecuaciones 20 y 21 tiene una respuesta maxima en una banda de baja frecuencia, un resultado de interpolacion mas fuertemente suavizado puede obtenerse usando valores de pixel que usan este filtro de
5
10
15
20
25
30
35
40
45
interpolacion. Por consiguiente, un filtro de interpolacion que incluye coeficientes determinados basandose en una funcion polinomica como una funcion basica puede seleccionarse como un filtro de interpolacion de suavizado.
Como tal, el aparato 10 de interpolacion de imagen puede generar pfxeles de interpolacion mas fuertemente suavizados seleccionando un filtro de interpolacion de suavizado que incluye coeficientes de filtro basandose en una funcion polinomica. En particular, ya que los pfxeles de color tienen componentes de alta frecuencia, con el fin de generar valores de pixel de unidad sub-pel de pfxeles de unidad pel entera de color, un filtro de interpolacion de suavizado que incluye coeficientes de filtro de interpolacion basandose en una funcion polinomica puede usarse.
<Coeficientes de filtro de interpolacion para interpolacion escalada>
Diversos procedimientos de generacion de filtros de interpolacion de suavizado segun los ejemplos 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 coeficientes de filtro normalmente no son mayores de 1. Espedficamente, un resultado de calculo de un numero real en lugar de un numero entero puede generarse por la ubicacion a de interpolacion de unidad sub-pel.
La eficacia del calculo basado en el numero entero es superior que la del calculo basado en un punto flotante. Como tal, el aparato 10 de interpolacion de imagen puede mejorar la eficacia del calculo del filtrado de interpolacion escalando los coeficientes de filtro en numeros enteros usando un factor de escala. Tambien, ya que la profundidad de bit de los valores de pixel aumenta, la precision del filtrado de interpolacion puede tambien mejorarse.
El aparato 10 de interpolacion de imagen puede multiplicar los coeficientes afm(a) de filtro por un valor predeterminado, y puede realizar la interpolacion de imagen usando coeficientes Fm(a) de filtro mas grandes.
Por ejemplo, los coeficientes Fm(a) de filtro pueden escalarse a partir de los coeficientes fm(a) como se representa en la ecuacion 22.
[Ecuacion 22]
Para la eficacia del calculo, el factor de escala puede estar en forma de 2n. n puede ser 0 o un numero entero positivo. Un resultado de filtrado de interpolacion que usa los coeficientes de filtro escalados por 2n pueden tener una profundidad de bits escalada por n bits en comparacion con un resultado obtenido usando coeficientes de filtro originales.
El filtrado de interpolacion de calculo de numeros enteros que usa coeficientes Fm(a) de filtro puede satisfacer la ecuacion 23. En otras palabras, despues de realizar el filtrado de interpolacion usando los coeficientes Fm(a) de filtro escalados, la profundidad de bits escalada tiene que reconstruirse en una profundidad de bits original.
[Ecuacion 23]
M
?(«)=( Yj Fm(a) * Pm+Off™*) > 71
— I
En este caso, un desplazamiento puede ser 2n'1.
En otras palabras, ya que un resultado de filtrado escalado que usa un filtro de interpolacion de suavizado escalado tiene que reducirse por un factor de escala, es decir, 2n, para que se reconstruya en los bits originales, una profundidad de bits del resultado de filtrado de bits escalado puede reducirse por n bits.
Si se realiza el filtrado de interpolacion realizando un filtrado de interpolacion unidimensional en una direccion horizontal realizando un filtrado de interpolacion unidimensional en una direccion vertical, se puede realizar una interpolacion de un total de 2n bits. Por consiguiente, si un primer filtro de interpolacion se escala por n1 bits y un segundo filtro de interpolacion de filtro unidimensional se escala por n2 bits, despues de que se realice un filtrado de interpolacion usando el primer y el segundo filtro de interpolacion unidimensional, se puede realizar una reduccion sumando n1 y n2, es decir, 2n bits. El primer filtro de interpolacion unidimensional puede ser un filtro de interpolacion sin escalar.
Ya que una suma de los coeficientes fm(a) del filtro de suavizado,
[Ecuacion 24]
imagen6
5
10
15
20
25
30
35
40
45
M
M+l
una condicion para normalizar los coeficientes Fm(a) de filtro de suavizado del filtro de interpolacion necesita satisfacer la ecuacion 25.
[Ecuacion 25]
M
-M + l
Sin embargo, la condicion de normalizacion de acuerdo con la ecuacion 25 puede provocar un error de redondeo. El aparato 10 de interpolacion de imagen puede redondear los coeficientes Fm(a) de filtro escalados basandose en la condicion de normalizacion de acuerdo con la ecuacion 19. Para la normalizacion, algunos coeficientes Fm(a) de filtro de escalados pueden ajustarse dentro de un intervalo predeterminado de valores originales. Por ejemplo, algunos coeficientes Fm(a) de filtro escalados pueden ajustarse dentro de un intervalo de ±1 con el fin de corregir un error de redondeo.
Diversos filtros de interpolacion de suavizado y coeficientes de filtro se describieron anteriormente. Espedficamente, como una funcion para determinar los coeficientes de filtro de un filtro de interpolacion de suavizado, una funcion de ventana, una funcion spline, una funcion polinomica, etc., puede usarse. Para un filtro de interpolacion de suavizado, una respuesta de frecuencia de una funcion puede variar basandose en una frecuencia, pero una ganancia de filtro de frecuencia de respuesta de la funcion puede estar cerca de 1. Por consiguiente, el aparato 10 de interpolacion de imagen puede determinar coeficientes de filtro usando una funcion que tiene una ganancia de filtro cuya respuesta de frecuencia esta cerca de 1 incluso cuando una frecuencia varia, y puede seleccionar un filtro de interpolacion de suavizado que incluye coeficientes de filtro.
La figura 7 es un diagrama de flujo de un procedimiento de interpolacion de imagen de acuerdo con un ejemplo de la presente invencion.
En la operacion 71, un filtro de interpolacion se selecciona de diferente manera basandose en una ubicacion de interpolacion de unidad sub-pel y una suavidad de entre los filtros de interpolacion para generar al menos un valor de pixel de unidad sub-pel ubicado entre los pfxeles de unidad pel entera de una imagen. Una suavidad del filtro de interpolacion puede determinarse basandose en una distancia entre una ubicacion de interpolacion y unidad pel enteras.
Un filtro de interpolacion de acuerdo con un ejemplo puede ser un filtro que incluye coeficientes de filtro para realizar la transformacion y la transformacion inversa basandose en una pluralidad de funciones basicas. Un filtro de interpolacion de suavizado de acuerdo con un ejemplo puede incluir al menos un filtro de interpolacion combinado con una funcion ventana, un filtro de interpolacion basandose en una pluralidad de parametros de suavizado, un filtro de interpolacion basandose en un parametro de suavizado, un filtro de interpolacion spline, y un filtro de interpolacion de funcion polinomica.
Con el fin de realizar el filtrado usando un filtro de interpolacion de suavizado, los coeficientes de filtro pueden determinarse para suavizar mas fuertemente pfxeles de referencia de unidad pel entera lejos de una ubicacion d interpolacion.
En la operacion 73, al menos un valor de pixel de unidad sub-pel se genera interpolando valores de pixel de pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado en la operacion 71.
De entre los filtros de interpolacion, si un filtro de interpolacion que incluye coeficientes de filtro escalados en numeros enteros se selecciona, los valores de pixel generados usando el filtro de interpolacion puede normalizandose basandose en un factor de escala.
De acuerdo con un ejemplo un filtro de interpolacion puede seleccionarse de manera diferente basandose en caractensticas de pfxeles que se interpolaran, y los valores de pixel de unidad sub-pel pueden generarse usando el filtro de interpolacion seleccionado.
Diversos ejemplos de coeficientes de filtro de un filtro de interpolacion determinados en consideracion de la ubicacion de interpolacion de unidad sub-pel y una suavidad se describiran ahora en referencia con las figuras 8A a 12C.
Las figuras 8A a 8C son tablas que muestran los coeficientes de filtro de filtros de interpolacion de 12 tomas determinados basandose en un parametro de suavizado y una ubicacion de interpolacion, de acuerdo con los
5
10
15
20
25
30
35
40
45
50
ejemplos de la presente invencion.
En referencia a las figuras 8A a 8C, de entre los filtros de interpolacion descritos anteriormente basados en transformacion ortogonal, Con el fin de realizar la transformacion ortogonal y la transformacion inversa despues de suavizar los pfxeles de referencia de unidad pel entera como se describio anteriormente en relacion con la figura 5, se muestran los coeficientes de filtro de un filtro de interpolacion de suavizado obtenido por la combinacion de una matriz de suavizado y un filtro de interpolacion basandose en una transformacion ortogonal.
Las figuras 8A a 8C muestran diversos filtros que incluyen diferentes coeficientes de filtro como un parametro de suavizado (B 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 vana 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 el parametro de suavizado (p es 0,002 y la ubicacion de interpolacion es 1/8, un filtro que incluye coeficientes {fm} de filtro, por ejemplo, {f-n, f-10, f-9, f-8, f-7, f-6, f-5, f-4, f-3, f-2, f-1, f0, f-i, f2, f3, f4, f5, f6, f7, f8, f9, f10, fn, f12} se determina 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 tablas que muestran los coeficientes de filtro de filtros de interpolacion de 6 tomas determinados basandose en un parametro de suavizado y una ubicacion de interpolacion, de acuerdo con los ejemplos de la presente invencion.
Aunque 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 suavizado obtenidos por combinacion de una matriz de suavizado y un filtro de interpolacion ortogonal, Las figuras 9A a 9C muestran 6 coeficientes de filtro de un filtro de interpolacion de 6 tomas. En las figuras 8A a 8C, y 9A a 9C, diversos filtros de interpolacion de suavizado que incluyen diferentes coeficientes de filtro basandose en parametros p de suavizado y la ubicacion de interpolacion a pueden mostrarse.
Los coeficientes de filtro mostrados en las figuras 8A a 8C, y 9A a 9C son coeficientes escalados en un factor de escala de 256 (=28) basandose en el filtrado de interpolacion escalado y despues redondeo.
En las figuras 8A a 8C, y 9A a 9C, cuando la ubicacion de interpolacion a es constante y el parametro de suavizado p se aumenta, un coeficiente fm de filtro puede ser relativamente pequeno.
Tambien, cuando el parametro p de suavizado es constante y la ubicacion de interpolacion esta lejos de 1/2, Si m del coeficiente fm de filtro esta lejos de m=0 hacia m=M+1 o m=M, el coeficiente fm de filtro puede ser relativamente pequeno en comparacion con f0. El coeficiente fm de filtro cerca de m=0 puede ser relativamente grande.
Por consiguiente, cuando un parametro p de suavizado aumenta, si la ubicacion de interpolacion a esta lejos de 1/2, es decir, cerca de un pixel de unidad pel entera, un filtro de interpolacion afilado, es decir, un filtro de interpolacion de menos suavizado, puede escalarse.
Ya que un filtro de interpolacion de acuerdo con un ejemplo es un filtro simetrico reflectante de espejo, un coeficiente fm(a) de filtro de una ubicacion (1-a) de interpolacion puede determinarse usando el coeficiente fm(a) de filtro de la ubicacion a de interpolacion. Por ejemplo, en la figura 9A, de entre los coeficientes {fm} de filtro que tienen un parametro p=0,002 de suavizado, los coeficientes {fm(3/8)} de filtro de la ubicacion a=3/8 de interpolacion y los coeficientes (fm(5/8)} de filtro de la ubicacion a=1 - 3/8 = 5/8 de interpolacion se comparan como se muestra a continuacion.
{fm(3/8)} = {11, -42, 196, 117, -35, 10},
{fm(5/8)} = {10, -35, 117, 196, -42, 11}
Es decir, se muestra que los coeficientes {fm(3/8)} de filtro cuando m=-2, -1, 0 son los mismos coeficientes {fm(5/8)} de filtro cuando m=3, 2, 1, son los mismos coeficientes {fm(3/8)} de filtro cuando m=3, 2, 1 son los mismos que los coeficientes de filtro {fm (5/8)} cuando m = -2, -1,0. Por consiguiente, en las tablas de las figuras 10 a 12C, aunque solo los coeficientes fm(a) de filtro de interpolacion en un caso en el que la ubicacion de interpolacion es menor o igual que 1/2 se muestran, se entendera facilmente por un experto en la materia que los coeficientes fm(a) de filtro de interpolacion en un caso en el que la ubicacion de interpolacion es mayor que 1/2 puede tambien determinarse.
La figura 10 es una tabla que muestra coeficientes de filtro de filtros de interpolacion de 6 tomas determinados por pfxeles de color basandose en un parametro de suavizado y una ubicacion de interpolacion, de acuerdo con un ejemplo de la presente invencion.
El aparato 10 de interpolacion de imagen puede seleccionar de manera diferente un filtro de interpolacion basandose en caractensticas de imagen. Por ejemplo, si se obtiene un filtro de interpolacion de suavizado combinando una matriz de suavizado y un filtro de interpolacion de transformacion ortogonal se determina, un parametro de suavizado puede variar basandose en caractensticas de imagen.
Por ejemplo, ya que los pfxeles de color se muestrean basandose en un formato de color de 4:2:0, los pfxeles de
5
10
15
20
25
30
35
40
45
50
color tienen menos componentes de baja frecuencia en comparacion con los p^xeles de brillo. En este caso, en referencia a la figura 10, independientemente de un filtro de interpolacion para pfxeles de brillo, solo un filtro de interpolacion para pfxeles de color puede seleccionarse adicionalmente. Diversos coeficientes de filtro de filtros de interpolacion seleccionados de manera diferente basandose en un componente de color se describira a continuacion con referencia a la figura 11.
La figura 11 es una tabla que muestra coeficientes de filtros de interpolacion determinados de manera diferente basandose en un componente de color y una ubicacion de interpolacion de imagen, de acuerdo con un ejemplo de la presente invencion.
En referencia a la figura 11, diversos filtros de interpolacion de suavizado que incluyen diferentes coeficientes de filtro como un numero de tomas de filtro 2M, una ubicacion a de interpolacion, y un componente L(brillo)/C(color) de color vana. Los coeficientes de filtro de la figura 11 son coeficientes escalados a un factor de escala de 256 (=28) y redondeado. Como se describio anteriormente, basandose en las caractensticas reflectantes de espejo de coeficientes de filtro de interpolacion, solo un caso en el que la ubicacion de interpolacion es menor o igual que 1/2 se muestra.
De manera similar a las figuras 8A a 10, un resultado de comparar los coeficientes de filtro para un componente de color y coeficientes de filtro para un componente de brillo es similar a un resultado de comparar coeficientes de filtro en un caso en el que un parametro p de suavizado es grande y los coeficientes de filtro en un caso en el que el parametro p de suavizado es pequeno.
Las figuras 12A a 12C son tablas que muestran coeficientes de filtro de filtros de interpolacion de imagen basandose en una ubicacion de interpolacion y un factor de escala, incluyendo aquellos de acuerdo con las realizaciones de la presente invencion.
Las figuras 12A a 12C muestran diversos ejemplos modificados de coeficientes de filtro de filtro de interpolacion de suavizado, que se escalan, redondean, y normalizan conforme un factor de 2n vana como 512, 256, 128, y 64, y el numero de tomas de filtro de un filtro de interpolacion y la ubicacion de interpolacion a vanan.
Espedficamente, en la figura 12C, los coeficientes de filtro de interpolacion para interpolar 1/8 unidades de pixel pueden variar para realizar compensacion de movimiento en pfxeles de color. Sin embargo, ya que la calidad de imagen de pfxeles de color, que se reconocen visualmente por la gente, es menos cntica en comparacion con los pfxeles de brillo, debido a una toma de filtro relativamente corta, por ejemplo, 4 tomas, y una profundidad de bits baja, un filtro de interpolacion de suavizado que tiene un factor de escala de 25 puede usarse tambien.
Los coeficientes de filtro mostrados en las figuras 8A a 12C son meramente partes de diversos ejemplos, y se entenderan facilmente por un experto en la materia que esos coeficientes de filtro de los filtros de interpolacion que consideran el suavizado, pueden modificarse basandose en diversos factores que incluyen una ubicacion de interpolacion, un parametro de suavizado, una funcion de ventana, una funcion spline, una funcion polinomica, un factor de escala, y redondeo.
Una codificacion y decodificacion de video que usa un filtro de interpolacion de suavizado, de acuerdo con los ejemplos de la presente invencion, se describen a continuacion con referencia a las figuras 13A a 27. La codificacion y decodificacion de video basandose en unidades de codificacion que tienen una estructura de arbol, de acuerdo con los ejemplos de la presente invencion, se describen a continuacion con referencia a las figuras 15 a 25. Los procedimientos de codificacion y decodificacion de video que usan un filtro de interpolacion de suavizado, de acuerdo con los ejemplos de la presente invencion, se describen a continuacion con referencia a las figuras 26 y 27.
Cuando diversas operaciones se realizan en datos de imagen, los datos de imagen pueden dividirse en grupos de datos y la misma operacion puede realizarse sobre datos del mismo grupo de datos. En la siguiente descripcion, un grupo de datos formado de acuerdo con un estandar predeterminado se denomina "unidad de datos", y una operacion se realiza sobre cada "unidad de datos" usando datos incluidos en la unidad de datos.
<Codificacion y decodificacion de video usando filtro de interpolacion de suavizado>
La figura 13A es un diagrama de bloques de un aparato 100 de codificacion de video que usa un filtro de interpolacion de suavizado, de acuerdo con un ejemplo de la presente invencion.
Las operaciones de un codificador 120 y una unidad 130 de salida del aparato 100 de codificacion de video puede controlarse de manera cooperativa por un procesador de codificacion de video, una CPU, y un procesador grafico.
Con el fin de codificar una imagen actual de un video de entrada, el aparato 100 de codificacion de video divide la imagen actual en unidades de datos que tienen un tamano predeterminado y codifica cada unidad de datos.
Por ejemplo, la imagen actual incluye pfxeles en un ambito espacial. Con el fin de codificar espacialmente los pfxeles adyacentes de la imagen actual al mismo tiempo, la imagen actual puede dividirse en grupos de pfxeles que tienen un tamano predeterminado de tal manera que los pfxeles adyacentes dentro de un intervalo predeterminado forman
5
10
15
20
25
30
35
40
45
50
55
un grupo. Realizando una serie de operaciones de codificacion sobre p^xeles de los grupos de p^xeles divididos, la imagen actual puede codificarse.
Ya que los datos iniciales de una imagen que se codificara son valores de pfxeles en el ambito espacial, cada grupo de pfxeles puede usarse como una unidad de datos que se codificara. Tambien, cuando los coeficientes de transformacion en un ambito de transformacion se generan realizando la transformacion para codificacion de video sobre valores de pfxeles del grupo de pfxeles en el ambito espacial, los coeficientes de transformacion se incluyen en grupos de coeficientes que tienen el mismo tamano que los grupos de pfxeles en el ambito espacial. Por consiguiente, un grupo de coeficientes de los coeficientes de transformacion en el ambito de transformacion puede tambien usarse como una unidad de datos para codificar una imagen.
Por consiguiente, en el ambito espacial y en el ambito de transformacion, un grupo de datos que tienen un tamano predeterminado puede usarse como unidad de datos que se codificaran. En este caso, el tamano de una unidad de datos puede definirse como el numero de trozos de datos incluidos en la unidad de datos. Por ejemplo, el numero de pfxeles en el ambito espacial o el numero de coeficientes de transformacion en el ambito 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 puede determinarse con respecto a cada grupo de datos de cualquier nivel de datos de entre una unidad de datos, un fragmento, una imagen, y una secuencia de imagenes de un video que se codificara actualmente.
El aparato 100 de codificacion de video puede codificar la imagen actual realizando una prediccion de codificacion que incluye interprediccion e intraprediccion, transformacion, cuantificacion, y codificacion de entropfa sobre cada unidad de datos.
Basandose en la interprediccion, con el fin de estimar un valor de pixel actual con referencia a un valor de pixel de una imagen temporalmente anterior o posterior, los datos residuales entre un valor de pixel de una region de referencia de una imagen de referencia y un valor de pixel de una imagen actual, y datos de referencia que indican la referencia al valor de pixel puede determinarse.
Con el fin de realizar la interprediccion de manera mas precisa, el aparato 100 de codificacion de video puede determinar los datos residuales y los datos de referencia usando un valor de pixel de unidad sub-pel. Con el fin de realizar la interprediccion de unidad sub-pel, el aparato 100 de codificacion de video puede determinar un valor de pixel de unidad sub-pel ubicado entre los pfxeles de unidad pel entera adyacentes interpolando los pfxeles de unidad pel entera adyacentes.
Tambien, el valor de pixel de unidad sub-pel puede generarse realizando el filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad pel entera incluyendo los pfxeles de unidad pel entera adyacentes. Los pfxeles de referencia para realizar el filtrado de interpolacion pueden ser pfxeles de una imagen de referencia.
Con el fin de realizar de manera eficaz la interpolacion de la imagen, el aparato 100 de codificacion de video puede determinar de manera selectiva los coeficientes de filtro de interpolacion. El codificador 120 puede incluir el aparato 10 de interpolacion de imagen ilustrado en la figura 1. En otras palabras, con el fin de realizar la interprediccion de unidad sub-pel, el codificador 120 puede generar un valor de pixel de unidad sub-pel usando un filtro de interpolacion que incluye coeficientes de filtro determinados por el aparato 10 de interpolacion de imagen basandose en la transformacion y la transformacion inversa.
Con el fin de realizar de manera eficaz el filtrado de interpolacion, el aparato 100 de codificacion de video puede almacenar previamente coeficientes de filtro de interpolacion en la memoria. De acuerdo con una ubicacion de interpolacion, una suavidad, el numero de tomas de filtro, una profundidad de bits, un factor de escala, y una funcion basica de filtrado de interpolacion basandose en la transformacion puede almacenarse en la memoria del aparato 100 de codificacion de video.
Por ejemplo, al menos uno de entre (i) coeficientes {-1, 4, -10, 57, 19, -7, 3, -1) de filtro de 1/4 unidad pel de 8 tomas que tienen un factor de escala de 26, (iii) coeficientes {-1, 4, -11, 40, 40, -11, 4, -1} de filtro de 1/2 unidad pel de 8 tomas que tienen un factor de escala de 26, (iii) coeficientes {-3, 60, 8, -1} de filtro de 1/8 unidad pel de 4 tomas que tiene un factor de escala de 26, (iv) coeficientes {-4, 54, 16, -2} de filtro de 1/8 unidad pel de 4 tomas que tiene un factor de escala de 26, (v) coeficientes {-5, 46, 27, -4} de filtro de 3/8 unidad pel de 4 tomas que tiene un factor de escala de 26, y (vi) coeficientes {-4, 36, 36, -4} de filtro de 1/2 unidad pel de 4 tomas que tienen un factor de escala de 26 pueden almacenarse en la memoria y se pueden usar para realizar un filtrado de interpolacion de suavizado.
Ademas de los coeficientes de filtro anteriormente mencionados, los coeficientes de filtro de interpolacion de suavizado modificables basandose en diversas funciones basicas y funciones de ventana como se muestran en las figuras 8A a 12C pueden usarse para realizar el filtrado de interpolacion.
Si el filtrado de interpolacion se realiza usando los coeficientes de filtro almacenados en la memoria, una velocidad de calculo de interprediccion puede mejorarse.
5
10
15
20
25
30
35
40
45
50
55
De entre una pluralidad de filtros de interpolacion, el codificador 120 puede seleccionar y usar un filtro de interpolacion de suavizado deseado para realizar interprediccion basandose en una ubicacion de interpolacion a de unidad sub-pel y una suavidad. Ademas, un filtro de interpolacion de suavidad para un pixel actual puede determinarse basandose en el numero de tomas de filtro, una profundidad de bits, un factor de escala, etc.
El codificador 120 puede determinar un filtro de interpolacion basandose en las caractensticas de la imagen. Por ejemplo, el codificador 120 puede determinar filtros de interpolacion diferentes basandose en componentes de color de pfxeles. Por ejemplo, un filtro de interpolacion para pfxeles de brillo y un filtro de interpolacion para pfxeles de color pueden seleccionarse de manera separada y asf los valores de pixel de unidad sub-pel pueden generarse individualmente realizando el filtrado de interpolacion.
Un video puede codificarse realizando la interprediccion basada en la interpolacion de unidad sub-pel, intraprediccion, transformacion, y cuantificacion.
La unidad 130 de salida puede codificar y generar informacion de codificacion y puede generar datos de imagen codificados. Como la informacion de codificacion, la informacion acerca del filtro de interpolacion seleccionado puede codificarse adicionalmente. En otras palabras, la informacion acerca de un filtro de interpolacion usado para realizar la codificacion de la prediccion de unidad sub-pel puede codificarse. Por ejemplo, un decodificador tiene que saber acerca de un filtro de interpolacion usado para codificar una imagen con el fin de decodificar la imagen usando el mismo filtro de interpolacion usado en el proceso de codificacion. Para esto, se puede codificar la informacion que indica el filtro de interpolacion usado junto con la imagen. Sin embargo, si un filtro se selecciona basandose en un resultado de codificacion previo, es decir, el contexto, la informacion acerca del filtro seleccionado puede no codificarse adicionalmente.
La unidad 130 de salida puede realizar una codificacion de entropfa sobre la informacion codificada y los datos de imagen codificada y puede generar un flujo de bits.
La figura 13B es un diagrama de bloques de un aparato 200 de decodificacion de video que usa un filtro de interpolacion de suavizado, de acuerdo con un ejemplo de la presente invencion.
El aparato 200 de decodificacion de video incluye un receptor y extractor 220 y un decodificador 230. Las operaciones del receptor y del extractor 220 y el decodificador 230 del aparato 200 de decodificacion de video pueden controlarse de manera cooperativa por un procesador de decodificacion de video, un procesador grafico, y una CPU.
Con el fin de reconstruir una imagen a partir de un flujo de bits, el aparato 200 de decodificacion de video puede decodificar datos de imagen codificados del flujo de bits realizando operaciones que incluyen decodificacion de entropfa, cuantificacion inversa, transformacion inversa, interprediccion/compensacion, e intraprediccion/compensacion.
El receptor y extractor 220 recibe y analiza un flujo de bits de un video codificado. El receptor y extractor 220 puede extraer datos codificados de cada unidad de datos de una imagen actual, y la informacion codificada que incluye informacion acerca de un procedimiento de codificacion que se usara para decodificar los datos codificados, desde el flujo de bits analizado.
Si la informacion de codificacion incluye informacion de filtro de interpolacion, el decodificador 230 puede leer informacion acerca de un filtro de interpolacion usado para realizar la intraprediccion de unidad sub-pel a partir de la informacion del filtro de interpolacion, y puede realizar compensacion de movimiento usando el filtro de interpolacion usado en un proceso de codificacion.
El decodificador 230 puede decodificar datos de imagen codificados realizando diversas operaciones de decodificacion tal como decodificacion de entropfa, cuantificacion inversa, transformacion inversa, interprediccion/compensacion, e intraprediccion/compensacion sobre una imagen codificada de acuerdo con diversos procedimientos de decodificacion basandose en la informacion acerca de un modo de codificacion.
Con el fin de realizar la compensacion de movimiento, una region de referencia de una imagen de referencia que es temporalmente anterior o posterior a una imagen actual puede determinarse usando datos de referencia, y un valor de pixel de una region de referencia y datos residuales pueden combinarse para reconstruir un valor de pixel actual.
Si los datos residuales y los datos de referencia se determinan basandose en pfxeles interpolados en una unidad sub-pel en un proceso de codificacion, el decodificador 230 puede tambien realizar la compensacion de movimiento basandose en los pfxeles interpolados en una unidad sub-pel. Con el fin de realizar la compensacion de movimiento de unidad sub-pel, el decodificador 230 puede generar un valor de pixel de unidad sub-pel interpolando los pfxeles de unidad pel entera adyacentes de la imagen de referencia. El valor de pixel de unidad sub-pel puede generarse realizando el filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad pel entera incluyendo los pfxeles de unidad pel entera adyacentes.
Con el fin de realizar de manera eficaz la interpolacion de la imagen, el aparato 200 de decodificacion de video
5
10
15
20
25
30
35
40
45
50
55
puede determinar de manera selectiva los coeficientes de filtro de interpolacion. El decodificador 230 puede incluir el aparato 10 de interpolacion de imagen ilustrado en la figura 1. En otras palabras, con el fin de realizar la compensacion de movimiento de unidad sub-pel, el decodificador 230 puede generar un valor de pixel de unidad sub-pel usando un filtro de interpolacion basandose en la transformacion.
Con el fin de realizar de manera eficaz el filtrado de interpolacion, el aparato 200 de decodificacion de video puede almacenar previamente los coeficientes de filtro de interpolacion diversamente seleccionables en la memoria de acuerdo con una ubicacion de interpolacion, una suavidad, el numero de tomas de filtro, una profundidad de bits, un factor de escala, y una funcion basica del filtrado de interpolacion basada en la transformacion.
Como se describio anteriormente, por ejemplo, al menos uno de entre (i) coeficientes {-1, 4, -10, 57, 19, -7, 3, -1} de filtro de 1/4 unidad pel de 8 tomas que tienen un factor de escala de 26, (iii) coeficientes {-1, 54, -11, 40, 40, -11, 4, - 1} de filtro de 1/2 unidad pel de 8 tomas que tienen un factor de escala de 26, (iii) coeficientes {-3, 60, 8, -1} de filtro de 1/8 unidad pel de 4 tomas que tiene un factor de escala de 26, (iv) coeficientes {-4, 54, 16, -2} de filtro de 1/8 unidad pel de 4 tomas que tiene un factor de escala de 26, (v) coeficientes {-5, 46, 27, -4} de filtro de 3/8 unidad pel de 4 tomas que tiene un factor de escala de 26, y (vi) coeficientes {-4, 36, 36, -4} de filtro de 1/2 unidad pel de 4 tomas que tienen un factor de escala de 26 pueden almacenarse en la memoria y se pueden usar para realizar un filtrado de interpolacion de suavizado. Ademas de los coeficientes de filtro anteriormente mencionados, los coeficientes de filtro de interpolacion de suavizado modificables de acuerdo con diversas funciones basicas y funciones de ventana como se muestran en las figuras 8A a 12C pueden usarse para realizar el filtrado de interpolacion de suavizado.
De entre una pluralidad de filtros de interpolacion, el decodificador 230 puede seleccionar y usar un filtro de interpolacion apropiado para un pixel actual para realizar la compensacion de movimiento de unidad sub-pel de acuerdo con una ubicacion a de unidad sub-pel, el numero de tomas de filtro, una profundidad de bits, un factor de escala, etc.
Tambien, el decodificador 230 puede determinar un filtro de interpolacion de suavizado basandose en caractensticas de imagen. Por ejemplo, se pueden determinar diferentes filtros de interpolacion de acuerdo con los componentes de color de los pfxeles, el filtrado de interpolacion para pfxeles de brillo y el filtrado de interpolacion para pfxeles de color pueden realizarse por separado, y asf los valores de pfxeles de unidad sub-pel interpolados pueden generarse de manera individual.
Por consiguiente, el decodificador 230 puede reconstruir los datos en un ambito espacial realizando cuantificacion inversa/transformacion inversa, y puede reconstruir los valores de pfxeles y una imagen actual realizando intraprediccion y compensacion del movimiento basandose en una interpolacion de unidad sub-pel, asf como en una interpolacion de unidad pel entera. Si las imagenes de reconstruyen, un video puede decodificarse.
La figura 14A es un diagrama de flujo de un procedimiento de codificacion que usa un filtro de interpolacion de suavizado, 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, la codificacion de prediccion que usa una interpolacion de unidad sub-pel se realiza. Un filtro de interpolacion se selecciona de manera diferente basandose en una interpolacion de unidad sub-pel y una suavidad de entre los filtros de interpolacion para generar un valor de pixel de unidad sub-pel. La suavidad del filtro de interpolacion puede determinarse basandose en la distancia entre una ubicacion de interpolacion y unidades pel enteras.
El valor de pixel de unidad sub-pel puede generarse realizando el filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad pel entera de una imagen de referencia. Los datos residuales y los datos de referencia se determinan usando el valor de pixel de unidad sub-pel generado, realizando asf la codificacion de prediccion.
Con el fin de realizar de manera eficaz la interpolacion de la imagen, los coeficientes del filtro de interpolacion pueden determinarse selectivamente. De entre los coeficientes de filtro de interpolacion previamente almacenados en memoria, un filtro de interpolacion deseado puede seleccionarse basandose en una ubicacion de interpolacion de unidad sub-pel, una suavidad, el numero de tomas de filtro, una profundidad de bits, un factor de escala, una funcion basica del filtrado de interpolacion basada en la transformacion, y un componente de color, y la interpolacion se puede realizar para generar el valor de pfxeles de unidad sub-pel.
En la operacion 1420, la transformacion y la cuantificacion se realizan en un 5 resultado de interprediccion basandose en una interpolacion de unidad sub-pel, y la intraprediccion.
En la operacion 1430, un flujo de bits puede generarse realizando una codificacion de entropfa sobre la informacion de codificacion y los datos de imagen codificados en la forma de coeficientes de transformacion cuantificados. La informacion de codificacion puede incluir informacion sobre un filtro de interpolacion utilizado para realizar una codificacion de prediccion de unidad sub-pel.
La figura 14B es un diagrama de flujo de un procedimiento de decodificacion que usa un filtro de interpolacion de suavizado, de acuerdo con un ejemplo de la presente invencion.
5
10
15
20
25
30
35
40
45
50
55
En la operacion 1450, se recibe un flujo de bits de un v^deo codificado, codificado por entrc^a, y analizado para extraer los coeficientes de transformacion cuantificados y la informacion codificada de una imagen actual a partir del flujo de bits.
Si la informacion de codificacion incluye informacion acerca de un filtro de interpolacion, el tipo de un filtro de interpolacion necesario puede leerse a partir de la informacion.
En la operacion 1460, de acuerdo con diversos procedimientos de decodificacion determinados basandose en modo de codificacion lefdo a partir de la informacion de codificacion, la cuantificacion inversa y la transformacion inversa se realizan sobre coeficientes de transformacion cuantificados, y los datos residuales se anaden, reconstruyendo asf los datos en un ambito espacial.
En la operacion 1470, los datos de imagen codificados pueden decodificarse realizando diversas operaciones de decodificacion tales como la compensacion de movimiento y la intraprediccion basandose en el modo de codificacion.
Espedficamente, si los datos residuales codificados y los datos de referencia se extraen basandose en los pfxeles interpolados extrafdos en una unidad sub-pel, la compensacion de movimiento puede realizarse basandose en los pfxeles interpolados en una unidad sub-pel. De entre los filtros de interpolacion para generar un valor de pixel de unidad sub-pel, un filtro de interpolacion se selecciona de diferente manera basandose en la ubicacion de interpolacion de unidad sub-pel y una suavidad.
Con el fin de realizar de manera eficaz la interpolacion de la imagen, Los coeficientes del filtro de interpolacion pueden determinarse selectivamente. De entre los coeficientes de filtro de interpolacion previamente almacenados en memoria, un filtro de interpolacion deseado puede seleccionarse de acuerdo con una ubicacion de interpolacion de unidad sub-pel, una suavidad, el numero de tomas de filtro, una profundidad de bits, un factor de escala, una funcion basica del filtrado de interpolacion basada en la transformacion, y un componente de color, y la interpolacion se puede realizar para generar el valor de pfxeles de unidad sub-pel. Ya que la compensacion de movimiento se realiza sobre pfxeles interpolados usando los coeficientes de filtro de interpolacion previamente almacenados en la memoria, se puede aumentar una velocidad de calculo.
Una imagen de referencia y una region de referencia se determinan usando los datos de referencia, y el valor de pixel de unidad sub-pel puede generarse realizando el filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad pel entera de la imagen de referencia. La compensacion de movimiento puede realizarse combinando el valor de pixel de unidad sub-pel en los datos residuales, y asf puede realizarse la decodificacion de prediccion.
En la operacion 1480, una imagen actual se reconstruye usando valores de pixel obtenidos por la realizacion de la decodificacion de prediccion, y asf se decodifica un video.
<Codificacion y decodificacion de video usando interpolacion de suavizado basandose en unidades de codificacion que tienen estructura en arbol>
Los aparatos de codificacion y decodificacion de video que usa un filtro de interpolacion de suavizado que se basan en unidades de codificacion que tienen una estructura de arbol, y procedimientos de codificacion y decodificacion de video que corresponden a los aparatos de codificacion y decodificacion de video, de acuerdo con los ejemplos de la presente invencion, se describiran ahora en detalle con referencia a las figuras 13 y 27.
El aparato 100 de codificacion de video puede codificar un video basandose en unidades de codificacion y unidades de transformacion que tienen una estructura en arbol.
Una imagen actual de un video puede dividirse basandose en 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 pueden dividirse en al menos una unidad de codificacion maxima. La unidad de codificacion maxima puede ser una unidad de datos que tiene un tamano de 32x32, 64x64, 128x128, 256x256, etc., en la que la forma de la unidad de datos es cuadrada teniendo un ancho y una longitud en cuadrados de 2. El codificador 120 puede codificar los datos de imagen de cada una de al menos una unidad de codificacion maxima.
Una unidad de codificacion maxima de acuerdo con un ejemplo de acuerdo con un ejemplo de la presente invencion puede caracterizarse por un tamano y una profundidad maximos. La profundidad indica un numero de veces que la unidad de codificacion se divide de manera espacial de la unidad de codificacion maxima, y conforme la profundidad profundiza, las unidades de codificacion mas profundas de acuerdo con las profundidades pueden separarse de la unidad de codificacion maxima en una unidad de codificacion minima. Una profundidad de la unidad de codificacion maxima es la profundidad mas alta y una profundidad de la unidad de codificacion minima es la profundidad mas baja. Ya que un tamano de una unidad de codificacion que corresponde a cada profundidad disminuye conforme la profundidad de la unidad de codificacion maxima se profundiza, una unidad de codificacion que corresponde a una profundidad superior puede incluir una pluralidad de unidades de codificacion que corresponde a las profundidades inferiores.
5
10
15
20
25
30
35
40
45
50
55
Como se describio anteriormente, los datos de imagen de la imagen actual se dividen en unidades de codificacion maximas de acuerdo con un tamano de la unidad de codificacion, y cada una de las unidades de codificacion maxima puede incluir unidades de codificacion mas profundas que se dividen de acuerdo con las profundidades. Ya que la unidad de codificacion maxima de acuerdo con un ejemplo de la presente invencion se divide de acuerdo con las profundidades, los datos de imagen de un ambito espacial en la unidad de codificacion maxima pueden clasificarse jerarquicamente de acuerdo con las profundidades.
Una profundidad maxima y un tamano maximo de una unidad de codificacion, que limitan el numero total de veces que una altura y un ancho de la unidad de codificacion maxima se dividen jerarquicamente, puede predeterminarse.
El codificador 120 codifica al menos una region dividida obtenida dividiendo una region de la unidad de codificacion maxima de acuerdo con las profundidades, y determina una profundidad para generar finalmente los datos de imagen codificados de acuerdo con la al menos una region dividida. En otras palabras, el codificador 120 determina una profundidad codificada codificando los datos de imagen en las unidades de codificacion mas profundas de acuerdo con las profundidades, de acuerdo con la unidad de codificacion maxima de la imagen actual, y seleccionar una profundidad que tiene el mmimo error de codificacion.
El codificador 120 puede generar los datos de imagen codificados de la unidad de codificacion que corresponde a la profundidad codificada determinada. Tambien, el codificador 120 puede transmitir informacion acerca de la profundidad codificada a la unidad 130 de salida de tal manera que la informacion acerca de la profundidad codificada puede codificarse como informacion de codificacion.
Los datos de imagen en la unidad de codificacion maxima se codifican basandose en las unidades de codificacion mas profundas que corresponden a al menos una profundidad igual a o por debajo de la profundidad maxima, y los resultados de la codificacion de los datos de imagen se comparan basandose en cada una de las unidades de codificacion mas profundas. Una profundidad que tiene el mmimo error de codificacion puede seleccionarse despues de comparar los errores de codificacion de las unidades de codificacion mas profundas. Al menos una profundidad codificada puede seleccionarse para cada unidad de codificacion maxima.
El tamano de la unidad de codificacion maxima se divide conforme una unidad de codificacion se divide jerarquicamente de acuerdo a las profundidades, y conforme el numero de unidades de codificacion disminuye. Tambien, incluso si las unidades de codificacion corresponden a la misma profundidad en una unidad de codificacion maxima, se determina si dividir cada una de las unidades de codificacion que corresponden a la misma profundidad en una profundidad inferior midiendo un error de codificacion de los datos de imagen de cada unidad de codificacion, por separado. Por consiguiente, incluso cuando los datos de imagen se incluyen 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 diferir de acuerdo con las regiones en la unidad de codificacion maxima, y asf las profundidades codificadas pueden diferir de acuerdo con las regiones en los datos de imagen. De esta manera, una o mas profundidades codificadas puede determinarse en una unidad de codificacion maxima, y los datos de imagen de la unidad de codificacion maxima pueden dividirse de acuerdo con las 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 corresponden a una profundidad determinada que sera la profundidad codificada, de entre todas las unidades de codificacion mas profundas incluidas en la unidad de codificacion maxima. Una unidad de codificacion de una profundidad codificada puede determinarse de manera jerarquica de acuerdo con profundidades en la misma region de la unidad de codificacion maxima, y puede determinarse independientemente en diferentes regiones. De manera similar, una profundidad codificada de una region actual puede determinarse independientemente de una profundidad codificada en otra region.
Una profundidad maxima es un mdice relacionado con el numero de veces que se ha realizado la division de una unidad de codificacion maxima en una unidad de codificacion minima. Una primera profundidad maxima puede indicar el numero total de veces que la division se ha realizado de la unidad de codificacion maxima en la unidad de codificacion minima. Una segunda profundidad maxima puede indicar el numero total de niveles de profundidad de la unidad de codificacion maxima en la unidad de codificacion minima. Por ejemplo, cuando una profundidad de la unidad de codificacion es 0, una profundidad de una unidad de codificacion, en la que la unidad de codificacion maxima se divide una vez, se puede establecer en 1, y una profundidad de una unidad de codificacion, en la que la unidad de codificacion maxima se divide dos veces, se puede establecer en 2. Aqrn, si la unidad de codificacion minima es una unidad de codificacion en la que la unidad de codificacion maxima se divide cuatro veces, los niveles de profundidad de las profundidades 0, 1, 2, 3 y 4 existen, y por tanto la primera profundidad maxima se puede fijar en 4, y la segunda profundidad maxima se puede establecer en 5.
La codificacion de la prediccion y la transformacion pueden realizarse de acuerdo con una unidad de codificacion maxima. La codificacion de prediccion y la transformacion tambien se realizan basandose en las unidades de codificacion mas profundas de acuerdo con una profundidad igual a o menos profundas que la profundidad maxima,
5
10
15
20
25
30
35
40
45
50
55
de acuerdo con una unidad de codificacion.
Ya que el numero de unidades de codificacion mas profundas disminuye siempre que la unidad de codificacion maxima se divide de acuerdo con las profundidades, la codificacion que incluye la codificacion de prediccion y la transformacion se realiza en todas las unidades de codificacion mas profundas generadas conforme la profundidad profundiza. Por conveniencia de descripcion, la codificacion de prediccion y la transformacion se describiran a continuacion basandose en una unidad de codificacion de una profundidad actual, en una unidad de codificacion maxima.
El aparato 100 de codificacion de video puede seleccionar diversamente un tamano o forma de una unidad de datos para codificar los datos de imagen. Con el fin de codificar datos de imagen, operaciones, tales como codificacion de prediccion, transformacion, y codificacion de entropfa, se llevan a cabo, y en este momento, la misma unidad de datos puede usarse para todas las operaciones o se pueden usar para cada operacion diferentes unidades de datos.
Por ejemplo, el aparato 100 de codificacion de video puede seleccionar no solo una unidad de codificacion para codificar los datos de imagen, sino que tambien una unidad de datos diferente de la unidad de codificacion para realizar la codificacion de prediccion sobre los datos de imagen en la unidad de codificacion.
Con el fin de llevar a cabo la codificacion de prediccion en la unidad de codificacion maxima, la codificacion de prediccion puede realizarse basandose en una unidad de codificacion correspondiente a una profundidad codificada, es decir, basandose en una unidad de codificacion que ya no esta dividida en unidades de codificacion correspondientes a una profundidad inferior. De ahora en adelante, la unidad de codificacion que ya no esta dividida y que deviene una unidad basica para la codificacion de prediccion se denominara una "unidad de prediccion". Una particion obtenida dividiendo la unidad de prediccion puede incluir una unidad de prediccion o una unidad de datos obtenida dividiendo al menos uno de entre una altura y un ancho de la unidad de prediccion.
Por ejemplo, cuando una unidad de codificacion de 2Nx2N (donde N es un numero entero positivo) ya no esta dividida y deviene una unidad de prediccion de 2Nx2N, un tamano de una particion puede ser 2Nx2N, 2NxN, Nx2N, o NxN. Ejemplos de un tipo de particion incluyen particiones simetricas que se obtienen dividiendo de manera simetrica una altura o ancho de la unidad de prediccion, las particiones obtenidas por dividir asimetricamente la altura o el ancho de la unidad de prediccion, tal como 1:n o n:1, las particiones que se obtienen por division geometrica de la unidad de prediccion, y las particiones que tienen formas arbitrarias.
Un modo de prediccion de la unidad de prediccion puede ser al menos un intramodo, un intermodo, o un modo de salto. Por ejemplo, el intramodo o el intermodo se pueden realizar sobre la particion de 2Nx2N, 2NxN, Nx2N, o NxN. Tambien, el modo de salto puede realizarse solo sobre la particion 2Nx2N. La codificacion se realiza independientemente de una unidad de prediccion en una unidad de codificacion, seleccionando asf un modo de prediccion que tiene al menos un error de codificacion.
El aparato 100 de codificacion de video tambien puede realizar la transformacion sobre los datos de imagen en una unidad de codificacion basandose solo en la unidad de codificacion para codificar los datos de imagen, pero tambien basandose en una unidad de datos que es diferente de la unidad de codificacion.
Con el fin de realizar la transformacion en la unidad de codificacion, la transformacion puede realizar basandose en una unidad de transformacion que tiene un tamano menor que o igual que la unidad de codificacion. Por ejemplo, la unidad de transformacion para la transformacion puede incluir una unidad de datos para un intramodo y una unidad de datos para un intermodo.
De manera similar a la unidad de codificacion, la unidad de transformacion en la unidad de codificacion puede dividirse recursivamente en regiones de menor tamano, de manera que la unidad de transformacion puede determinarse independientemente en unidades de regiones. De esta manera, los datos residuales en la unidad de codificacion pueden dividirse 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 la division se ha realizado para alcanzar la unidad de transformacion dividiendo la altura y el ancho de la unidad de codificacion se puede tambien establecer en la unidad de transformacion. Por ejemplo, en una unidad de codificacion actual de 2Nx2N, una profundidad de transformacion puede ser 0 cuando el tamano de una unidad de transformacion tambien es 2Nx2N, puede ser 1 cuando el tamano de la unidad de transformacion es NxN, y puede ser 2 cuando el tamano de la unidad de transformacion es N/2xN/2. En otras palabras, las unidades de transformacion que tienen una estructura de arbol pueden establecerse de acuerdo con las profundidades de transformacion.
La informacion de codificacion de acuerdo con una profundidad de codificacion requiere, no solo informacion acerca de la profundidad de codificacion, sino tambien informacion sobre la codificacion y la transformacion. Por consiguiente, el codificador 120 no solo determina una profundidad de codificacion que tiene al menos un error de codificacion, sino que tambien determina un tipo de particion en una unidad de prediccion, un modo de prediccion de acuerdo con las unidades de prediccion, y un tamano de una unidad de transformacion para la transformacion. Para la interprediccion, la informacion de codificacion de acuerdo con una profundidad codificada puede incluir
5
10
15
20
25
30
35
40
45
50
55
informacion relacionada con el filtrado de interpolacion para interpolar unidades sub-pel.
Tambien, el codificador 120 puede realizar la transformacion usando unidades de transformacion que tienen una estructura para codificar unidades de codificacion, basandose en un nivel de division maximo de las unidades de transformacion, que se establecen previa y restrictivamente en cada unidad de codificacion maxima o en cada unidad de codificacion actual.
En cada una de las unidades de codificacion mas profundas de acuerdo con las profundidades, una unidad de transformacion basica que tiene un tamano menor o igual que una unidad de codificacion puede dividirse jerarquicamente en unidades de transformacion de profundidades de transformacion mas bajas. 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 un nivel inferior de las unidades de transformacion en relacion con el nivel de division maximo que se permite para las unidades de codificacion.
Despues de realizar la transformacion en cada nivel de acuerdo con una profundidad de transformacion en una unidad de codificacion actual, el codificador 120 puede determinar las unidades de transformacion que tienen una estructura de arbol, que son independientes de las unidades de transformacion de las regiones adyacentes y forman una estructura jerarquica entre las unidades de transformacion en la misma region de acuerdo con las profundidades de transformacion.
En otras palabras, las unidades de transformacion que tienen una estructura de arbol pueden determinarse realizando la transformacion sobre cada unidad de codificacion usando unidades de transformacion de diversos tamanos y seguidamente comparando los resultados de la transformacion. Mientras que una unidad de codificacion se esta determinando, una unidad de transformacion para la transformacion de la unidad de codificacion puede determinarse. Siempre que las unidades de codificacion de acuerdo entre sf o mas profundidades se codifican, las unidades de transformacion de acuerdo con cada una de o mas profundidades de transformacion pueden usarse para realizar la transformacion.
Una unidad de transformacion que tiene al menos un error de codificacion tiene que determinarse 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, los errores de codificacion se pueden medir y comparar en todas las unidades de transformacion mas profundas de acuerdo con las profundidades. Una unidad de transformacion puede determinarse como una unidad de datos para minimizar un error de transformacion de una unidad de transformacion.
Por consiguiente, ya que una combinacion de una unidad de codificacion y una unidad de transformacion mas profunda de acuerdo con las profundidades, que tiene al menos un error de codificacion, se determina de manera individual en cada region de una unidad de codificacion maxima, las unidades de codificacion que tienen una estructura de arbol y las unidades de transformacion que tienen una estructura de arbol pueden determinarse.
Los procedimientos para determinar las unidades de codificacion que tienen una estructura en arbol, particiones, y las unidades de transformacion que tienen una estructura de arbol en una unidad de codificacion maxima, de acuerdo con los ejemplos de la presente invencion, se describiran en detalle mas tarde con referencia a las figuras 15 y 25.
El codificador 120 puede medir un error de codificacion de unidades de codificacion mas profundas de acuerdo con las profundidades usando una optimizacion de la tasa de distorsion basandose en multiplicadores lagrangianos.
El aparato 100 de codificacion de video puede generar los datos de imagen de la unidad de codificacion maxima, que se codifican basandose en al menos una profundidad de codificacion determinada por el codificador 120, y la informacion acerca de un modo de codificacion de acuerdo con la profundidad codificada, que se codifica por la unidad 130 de salida, en la forma de flujo de bits.
La informacion acerca del modo de codificacion de las unidades de codificacion mas profundas de acuerdo con las profundidades, que se determina conforme una imagen se codifica basandose en unidades de codificacion, unidades de prediccion, y unidades de transformacion que tienen una estructura de arbol, puede incluirse en un encabezado, un conjunto de parametros de secuencia (SPS), o un conjunto de parametros de imagen (PPS) de un flujo de bits.
Los datos de imagen codificados pueden obtenerse codificando datos residuales de una imagen.
La informacion acerca del modo de codificacion en la profundidad codificada puede incluir informacion sobre la profundidad codificada, acerca del tipo de particion en la unidad de prediccion, el modo de prediccion, y el tamano de la unidad de transformacion.
La informacion acerca de la profundidad codificada puede definirse usando informacion dividida de acuerdo con las profundidades, que representa si la codificacion se ha realizado sobre unidades de codificacion de una profundidad inferior en lugar de una profundidad actual. Si la profundidad de la unidad de codificacion actual es la profundidad de
5
10
15
20
25
30
35
40
45
50
55
codificacion, los datos de imagen en la unidad de codificacion actual se codifican y se generan, y asf la informacion dividida puede definirse como no dividir la unidad de codificacion actual a una profundidad inferior. De manera alternativa, si la profundidad de la unidad de codificacion actual es la profundidad de codificacion, la codificacion se realiza en la unidad de codificacion de la profundidad inferior, y asf, la informacion dividida puede definirse para dividir la unidad de codificacion actual para obtener las unidades de codificacion de profundidad inferior.
Si la profundidad actual no es la profundidad codificada, la codificacion se realiza sobre la unidad de codificacion que se divide en la unidad de codificacion de la profundidad inferior. Ya 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 manera repetida sobre cada unidad de la profundidad inferior, y, por lo tanto, la codificacion puede realizarse de manera recursiva por las unidades de codificacion que tienen la misma profundidad.
Ya 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 puede determinarse para una unidad de codificacion maxima. Tambien, una profundidad de codificacion de los datos de imagen de la unidad de codificacion maxima puede ser diferente de acuerdo con las ubicaciones ya que los datos de imagen se dividen de manera jerarquica de acuerdo con las profundidades, y asf la informacion acerca de la profundidad codificada y el modo de codificacion pueden establecerse para los datos de imagen.
Por consiguiente, la unidad 130 de salida puede asignar la informacion de codificacion acerca de una profundidad codificada correspondiente y un modo de codificacion en al menos una de las unidades de codificacion, la unidad de prediccion, y una unidad minima incluida en la unidad de codificacion maxima.
La unidad minima de acuerdo con un ejemplo de la presente invencion es una unidad de datos rectangular obtenida por la division de la unidad de codificacion minima que constituye la profundidad mas baja por 4. De manera alternativa, la unidad minima puede ser una unidad de datos rectangular que puede incluirse en todas las unidades de codificacion, unidades de prediccion, unidades de particion, y unidades de transformacion incluidas en la unidad de codificacion maxima.
Por ejemplo, la informacion de codificacion generada a traves de la unidad 130 de salida puede clarificarse en informacion de codificacion de acuerdo con las unidades de codificacion, y la informacion de codificacion de acuerdo con las unidades de prediccion. La informacion de codificacion de acuerdo con las unidades de codificacion puede incluir la informacion acerca del modo de prediccion y acerca del tamano de las particiones. La informacion de codificacion de acuerdo con las unidades de prediccion puede la informacion acerca de una direccion estimada de un intermodo, acerca de un mdice de imagen de referencia del intermodo, acerca de un vector de movimiento, acerca de un componente de color de un intramodo, y acerca de un procedimiento de interpolacion del intramodo.
La informacion acerca de un tamano maximo de la unidad de codificacion se define de acuerdo con las imagenes, fragmentos, o GOP, y la informacion acerca de una profundidad maxima puede insertarse en un encabezado, un SPS, o un PPS de un flujo de datos.
En el aparato 100 de codificacion de video, la unidad de codificacion mas profunda puede ser una unidad de codificacion obtenida por la division de una altura o ancho de una unidad de codificacion de una profundidad superior, que esta una capa por encima, por dos. En otras palabras, cuando el tamano de la unidad de codificacion de la profundidad actual es 2Nx2N, el tamano de la unidad de codificacion de la profundidad inferior es NxN. Tambien, la unidad de codificacion de la profundidad actual que tiene el tamano de 2Nx2N, puede incluir maximo 4 de la unidad de codificacion de la profundidad inferior.
Por consiguiente, el aparato 100 de codificacion de video puede formar las unidades de codificacion que tienen una estructura de arbol determinando las unidades de codificacion que tienen una forma optima y un tamano optimo para cada unidad de codificacion maxima, basandose en el tamano de la unidad de codificacion maxima y la profundidad maxima determinada considerando las caractensticas de la imagen actual. Tambien, ya que la codificacion puede realizarse sobre cada unidad de codificacion maxima usando cualquiera de diversos modos de prediccion y transformaciones, un modo de codificacion optimo puede determinarse considerando las caractensticas de la unidad de codificacion de diversos tamanos de imagen.
De esta manera, si una imagen que tiene una alta resolucion o gran cantidad de datos se codifica en un macrobloque convencional, un numero de macrobloques por imagen aumenta excesivamente. Por consiguiente, un numero de trozos de informacion comprimida generada para cada macrobloque aumenta, y asf es diffcil transmitir la informacion comprimida y la eficacia de la compresion de datos disminuye. Sin embargo, usando el aparato 100 de codificacion de video, la eficacia de la compresion de imagen puede aumentarse ya que una unidad de codigo se ajusta mientras se considera las caractensticas de una imagen mientras aumenta un tamano maximo de una unidad de codificacion mientras considera un tamano de una imagen.
La unidad 130 de salida puede codificar u generar informacion de codificacion que indica un procedimiento de codificacion usado para codificar un video basandose en las unidades de codificacion que tienen una estructura de arbol y las unidades de transformacion que tienen una estructura en arbol. La informacion de codificacion puede
5
10
15
20
25
30
35
40
45
50
55
incluir informacion acerca de diversos modos de codificacion de las unidades de codificacion que corresponden a una profundidad codificada, y la informacion acerca de la profundidad codificada.
Las definiciones de diversos terminos, tal como unidad de codificacion, una profundidad, una unidad de prediccion, una unidad de transformacion, e informacion acerca de diversos modos de codificacion, para diversas operaciones de aparato 200 de decodificacion de video son identicas a las descritas con referencia al aparato 100 de codificacion de video.
El receptor 210 recibe un flujo de bits de un video codificado. El receptor y el extractor 220 analizan el flujo de bits recibido. El receptor y el extractor 220 extraen los datos de imagen codificada para cada unidad de codificacion desde el flujo de bits analizado, en el que las unidades de codificacion tienen una estructura de arbol de acuerdo con cada unidad de codificacion maxima, y genera los datos de imagen extrafdos del decodificador 230. El receptor y el extractor 220 pueden extraer informacion acerca de un tamano maximo de una unidad de codificacion de una imagen actual, desde un encabezado, un SPS, o un PPS acerca de la imagen actual.
Tambien, el receptor y el extractor 220 pueden extraer la informacion codificada acerca de las unidades de codificacion que tienen una estructura de arbol de acuerdo con cada unidad de codificacion maxima, desde el flujo
de bits analizado. La informacion acerca de la profundidad de un modo de codificacion se extrae desde la
informacion codificada. La informacion extrafda acerca de la profundidad codificada y el modo de codificacion se envfa al generador 230. En otras palabras, los datos de imagen en el flujo de datos pueden dividirse en la unidad de codificacion maxima para que el decodificador 230 decodifique 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 puede establecerse para informacion acerca de al menos una unidad de codificacion correspondiente a la profundidad codificada, y la informacion acerca de un modo de codificacion puede incluir informacion acerca de un tipo de particion de una unidad de codificacion correspondiente que corresponde a la
profundidad codificada, acerca de un modo de prediccion, y un tamano de una unidad de transformacion. Para la
interprediccion, la informacion relacionada al filtrado de interpolacion para interpolar unidades sub-pel se puede extraer de la informacion codificada de acuerdo con una profundidad codificada. Tambien, la informacion de division de acuerdo con las profundidades puede extraerse como 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 el 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 100 de codificacion de video, realiza repetidamente la codificacion para cada unidad de codificacion mas profunda de acuerdo con las profundidades de acuerdo con cada unidad de codificacion maxima. Por consiguiente, el aparato 200 de codificacion de video puede reconstruir una imagen decodificando los datos de imagen de acuerdo con una profundidad codificada y un modo de codificacion que genera el error de codificacion mmimo.
Ya que la informacion de codificacion acerca de la profundidad codificada y el modo de codificacion pueden asignare a una unidad de datos predeterminada de entre una unidad de codificacion correspondiente, una unidad de prediccion, y una unidad minima, el receptor y el extractor 220 pueden extraer la informacion acerca de la profundidad codificada y el modo de codificacion de acuerdo con las unidades de datos predeterminadas. Las unidades de datos predeterminadas a las que la misma informacion acerca de la profundidad codificada y el modo de codificacion se asigna puede deducirse que son las unidades de datos incluidas en la misma unidad de codificacion maxima.
El decodificador 230 puede determinar al menos una profundidad codificada de una unidad de codificacion maxima actual usando informacion dividida de acuerdo con las profundidades. Si la informacion dividida representa que los datos de imagen ya no se dividen en la profundidad actual, la profundidad actual es una profundidad codificada. Por consiguiente, el decodificador 230 puede decodificar datos de imagen codificados de al menos una unidad de codificacion que corresponde a cada profundidad codificada en la unidad de codificacion maxima actual usando la informacion acerca del tipo de particion de la unidad de prediccion, el modo de prediccion, y el tamano de la unidad de transformacion para cada unidad de codificacion correspondiente a la profundidad codificada, y generan los datos de imagen de la unidad de codificacion maxima actual.
En otras palabras, las unidades de datos que contienen la informacion de codificacion que incluye la misma informacion dividida se puede obtener observando el conjunto de informacion de codificacion asignada para la unidad de datos predeterminada de entre la unidad de codificacion, la unidad de prediccion, y la unidad minima, y las unidades de datos obtenidos pueden considerarse ser una unidad de datos que se decodificara por el decodificador 230 en el mismo modo de codificacion.
El decodificador 230 puede reconstruir la imagen actual decodificando los datos de imagen codificados en cada unidad de codificacion maxima basandose en la informacion acerca de la profundidad codificada y el modo de codificacion de acuerdo con las unidades de codificacion maximas. El tipo de particion, el modo de prediccion, y la
5
10
15
20
25
30
35
40
45
50
55
unidad de transformacion pueden leerse como el modo de codificacion para cada unidad de codificacion de entre las unidades de codificacion que tienen una estructura de arbol incluida en cada unidad de codificacion maxima. Un proceso de decodificacion puede incluir una prediccion que incluye una intraprediccion y una compensacion del movimiento, y una transformacion inversa.
El decodificador 230 puede realizar la intraprediccion o compensacion del movimiento de acuerdo con una particion y un modo de prediccion de cada unidad de codificacion, basandose en la informacion acerca del tipo de particion y el modo de prediccion de la unidad de prediccion de las unidades de codificacion que tienen una estructura en arbol.
Tambien, el decodificador 230 puede leer la estructura de las unidades de transformacion que tienen una estructura de arbol y puede realizar la transformacion inversa sobre cada unidad de codificacion basandose en las unidades de transformacion.
El aparato 200 de decodificacion de video puede obtener informacion acerca de al menos una unidad de codificacion que genera el error de codificacion mmimo cuando la codificacion se realiza de manera recursiva para cada unidad de codificacion maxima, y puede usar la informacion para decodificar la imagen actual. En otras palabras, las unidades de codificacion que tienen la estructura de arbol determinadas para ser unidades de codificacion optimas en cada unidad de codificacion maxima pueden decodificarse. Tambien, el tamano maximo de la unidad de codificacion se determina n consideracion de la resolucion y la cantidad de datos de imagen.
Por consiguiente, aunque una imagen de datos tenga una resolucion alta y una gran cantidad de datos, los datos de imagen pueden decodificarse de manera eficaz y reconstruirse usando un tamano de una unidad de codificacion y un modo de codificacion, que se determinan de manera adaptativa de acuerdo con las caractensticas de los datos de imagen, usando informacion acerca de un modo de codificacion optimo recibido desde un codificador.
La figura 15 es un diagrama para describir un concepto de unidades de codificacion de acuerdo con un ejemplo de la presente invencion.
Un tamano de una unidad de codificacion puede expresarse en ancho x altura, y puede ser 64x64, 32x32, 16x16, y 8x8. Una unidad de codificacion de 64x64 puede dividirse en particiones de 64x64, 64x32, 32x64, o 32x32, una unidad de codificacion de 32x32 puede dividirse en particiones de 32x32, 32x16, 16x32, o 16x16, una unidad de codificacion de 16x16 puede dividirse en particiones de 16x16, 16x8, 8x16, o 8x8, y una unidad de codificacion de 8x8 puede dividirse en particiones de 8x8, 8x4, 4x8, o 4x4.
En los datos 310 de video, una resolucion es 1920x1080, un tamano maximo de una unidad de codificacion es 64, y una profundidad maxima es 2. En los datos 320 de video, una resolucion es 1920x1080, un tamano maximo de una unidad de codificacion es 64, y una profundidad maxima es 3. En los datos 330 de video, una resolucion es 352x288, un tamano maximo de una unidad de codificacion es 16, y una profundidad maxima es 1. La profundidad maxima mostrada en la figura 15 indica un numero total de divisiones de una unidad de codificacion maxima a una unidad de decodificacion minima.
Si una resolucion es alta o la cantidad de datos es grande, un tamano maximo de una unidad de codificacion puede ser grande para no solo aumentar la eficacia de la codificacion sino tambien para reflejar con recision las caractensticas de una imagen. Por consiguiente, el tamano maximo de la unidad de codificacion de los datos 310 y 320 de video que tienen la resolucion mas alta que los datos 330 de video puede ser 64.
Ya que la profundidad maxima de los datos 310 de video es 2, las unidades 315 de codificacion de los datos 310 de video pueden incluir una unidad maxima que tiene un tamano de eje largo de 64, y las unidades de codificacion que tienen tamanos de eje largo de 32 y 16 ya que las profundidades se profundizan en dos capas por la separacion de la unidad de codificacion maxima dos veces. Mientras tanto, ya que la profundidad maxima de los datos 330 de video es 1, las unidades 335 de codificacion de los datos 330 de video pueden incluir una unidad maxima que tiene un tamano de eje largo de 16, y las unidades de codificacion que tienen un tamano de eje largo de 8 ya que las profundidades se profundizan en una capa por la division de una unidad de codificacion maxima una vez.
Ya que la profundidad maxima de los datos 320 de video es 3, las unidades 325 de codificacion de los datos 320 de video pueden incluir una unidad maxima que tiene un tamano de eje largo de 64, y las unidades de codificacion que tienen tamanos de eje largo de 32, 16, y 8, ya que las profundidades se profundizan en 3 capas por la division de la unidad de codificacion maxima tres veces. Conforme se profundiza una profundidad, se puede expresar con precision informacion detallada.
La figura 16 es un diagrama de bloques de un codificador 400 de imagen basandose en unidades de codificacion, de acuerdo con un ejemplo de la presente invencion.
El codificador 400 de imagen realiza operaciones del codificador 120 del aparato 100 de codificacion de video para codificar datos de imagen. En otras palabras, un intrapredictor 410 realiza una intraprediccion sobre unidades de codificacion en un intramodo, de entre un fotograma 405 actual, y un estimador 420 de movimiento y un compensador 425 de movimiento realiza la interestimacion y la compensacion de movimiento sobre unidades de codificacion en un intermodo de entre el fotograma 405 actual usando el fotograma 405 actual, y un fotograma 495
5
10
15
20
25
30
35
40
45
50
55
de referencia.
Con el fin de realizar con precision la estimacion de movimiento mediante el uso de p^xeles de referencia en unidades sub-pel, el estimador 420 de movimiento y el compensador 425 de movimiento pueden generar p^xeles en unidades sub-pel interpolando p^xeles en unidades pel enteras. Un filtro de interpolacion para generar pfxeles en unidades sub-pel puede ser el filtro de interpolacion de suavizado descrito anteriormente en relacion con las figuras 1 y 13A.
La salida de datos del intrapredictor 410, el estimador 420 de movimiento, y el compensador 425 de movimiento se genera 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 ambito espacial a traves de un cuantificador 460 inverso y un transformador 470 inverso, y los datos reconstruidos en el ambito espacial se generan como el fotograma 495 de referencia despues de post procesarse a traves de un filtro 480 de desbloqueo y un filtro 490 de bucle. El coeficiente de transformacion cuantificada puede generarse como un flujo 455 de bits a traves de un codificador 450 de entropfa.
Con el fin de que el codificador 400 de imagen se aplique en el aparato 100 de video, todos los elementos del codificador 400 de imagen, es decir, el intrapredictor 410, el estimador 420 de movimiento, el compensador 425 de movimiento, el transformador 430, el cuantificador 440, el codificador 450 de entropfa, el cuantificador 460 inverso, el transformador 470 inverso, el filtro 480 de desbloqueo, y el filtro 490 de bucle, tienen que realizar operaciones basadas en cada unidad de codificacion de entre unidades de codificacion que tienen una estructura de arbol considerando la profundidad maxima de cada unidad de codificacion maxima.
Espedficamente, el intrapredictor 410, el estimador 420 de movimiento, y el compensador 425 de movimiento tienen que determinar particiones 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 decodificador 500 de imagen basandose en unidades de codificacion, de acuerdo con un ejemplo de la presente invencion.
Un analizador 510 analiza datos de imagen codificados que se decodificaran e informacion sobre la codificacion requerida para la decodificacion de un flujo 505 de bits. Los datos de imagen codificados se emiten como datos cuantificados inversamente a traves de un decodificador 520 de entropfa y un cuantificador 530 inverso, y los datos cuantificados inversamente se reconstruyen en datos de imagen en un ambito espacial a traves de un transformador 540 inverso.
Un intrapredictor 550 realiza intraprediccion en unidades de codificacion en un intramodo con respecto a los datos de imagen en el ambito espacial, y un compensador 560 de movimiento realiza la compensacion de movimiento en unidades de codificacion en un intermodo utilizando un fotograma 585 de referencia.
Con el fin de realizar con precision la estimacion de movimiento mediante el uso de pfxeles de referencia en unidades sub-pel, el compensador 560 de movimiento puede generar pfxeles en unidades sub-pel interpolando pfxeles en unidades pel enteras. Un filtro de interpolacion para generar pfxeles en unidades sub-pel puede ser el filtro de interpolacion de suavizado descrito anteriormente en relacion con las figuras 2 y 13B.
Los datos de imagen en el ambito espacial, que pasan a traves del intrapredictor 550 y el compensador 560 de movimiento, pueden emitirse como un fotograma 595 reconstruido despues de posprocesarse a traves de un filtro 570 de desbloqueo y un filtro 580 de bucle. Tambien, los datos de imagen se posprocesan a traves del filtro 570 de desbloqueo y el filtro 580 de bucle puede emitirse como el fotograma 585 de referencia.
Con el fin de decodificar los datos de imagen en el decodificador 230 del aparato 200 de decodificacion de video, el decodificador 500 de imagen puede realizar operaciones que se realizan despues del analizador 510.
Con el fin de que el codificador 500 de imagen se aplique en el aparato 200 de video, todos los elementos del codificador 500 de imagen, es decir, el analizador 510, el codificador 520 de entropfa, el cuantificador 530 inverso, el transformador 540 inverso, el intrapredictor 550, el compensador 560 de movimiento, el filtro 570 de desbloqueo, y el filtro 580 de bucle, tienen que realizar operaciones basandose en unidades de codificacion que tienen una estructura de arbol para cada unidad de codificacion maxima.
Espedficamente, la intraprediccion 550 y el compensador 560 de movimiento tienen que determinar las particiones y un modo de prediccion para cada una de las unidades de codificacion que tienen una estructura de arbol, y el transformador 540 inverso tiene que determinar un tamano de una unidad de transformacion para cada unidad de codificacion.
La figura 18 es un diagrama que ilustra unidades de codificacion mas profundas de acuerdo con las profundidades, y
5
10
15
20
25
30
35
40
45
50
55
las particiones, de acuerdo con un ejemplo de la presente invencion.
El aparato 100 de codificacion de video y el aparato 200 de decodificacion de video utilizan unidades de codificacion jerarquicas para considerar las caractensticas de una imagen. Una altura maxima, un ancho maximo, y una profundidad maxima de unidades de codificacion pueden determinarse de forma adaptativa de acuerdo con las caractensticas de la imagen, o pueden establecerse de manera diferente por un usuario. Los tamanos de las unidades de codificacion mas profundas de acuerdo con las profundidades pueden determinarse de acuerdo con un tamano maximo de la unidad de codificacion.
En una estructura 600 jerarquica 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 una de 64, y la profundidad maxima es 3. En este caso, la profundidad maxima indica el numero total de veces que se ha realizado la division de una unidad de codificacion maxima a una unidad de codificacion minima. Ya que la profundidad profundiza a lo largo de un eje vertical de la estructura 600 jerarquica, una altura y un ancho de la unidad de codificacion mas profunda se dividen cada uno. Tambien, una unidad de prediccion y particiones, que son bases para la codificacion de prediccion de cada unidad de codificacion mas profunda, se muestran a lo largo de un eje horizontal de la estructura 600 jerarquica.
En otras palabras, una unidad 610 de codificacion es una unidad de codificacion maxima en la estructura 600 jerarquica, en la que una profundidad es 0 y un tamano, es decir, una altura por ancho, es 64x64. La profundidad se profundiza a lo largo del eje vertical, y una unidad 620 de codificacion que tiene un tamano de 32x32 y una profundidad de 1, una unidad 630 de codificacion que tiene un tamano de 16x16 y una profundidad de 2, y una unidad 640 de codificacion que tiene un tamano de 8x8 y una profundidad de 3 existen. La unidad 640 de codificacion que tiene el tamano de 8x8 y la profundidad de 3 es una unidad de codificacion minima.
La unidad de prediccion y las particiones de una unidad de codificacion se disponen a lo largo del eje horizontal de acuerdo con cada profundidad. En otras palabras, si la unidad 610 de codificacion que tiene el tamano de 64x64 y la profundidad de 0 es una unidad de prediccion, la unidad de prediccion puede dividirse en particiones incluidas en la unidad 610 de codificacion, es decir, una particion 610 que tiene un tamano de 64x64, particiones 612 que tienen el tamano de 64x32, particiones 614 que tienen el tamano de 32x64, o particiones 616 que tienen el tamano de 32x32.
De manera similar, una unidad de prediccion de la unidad 620 de codificacion que tiene el tamano de 32x32 y la profundidad de 1 puede dividirse en particiones incluidas en la unidad 620 de codificacion, es decir, una particion 620 que tiene un tamano de 32x32, particiones 622 que tienen un tamano de 32x16, particiones 624 que tienen un tamano de 16x32, o particiones 626 que tienen un tamano de 16x16.
De manera similar, una unidad de prediccion de la unidad 630 de codificacion que tiene el tamano de 16x16 y la profundidad de 2 puede dividirse en particiones incluidas en la unidad 630 de codificacion, es decir, una particion que tiene un tamano de 16x16, particiones 632 que tienen un tamano de 16x8, particiones 634 que tienen un tamano de 8x16, o particiones 636 que tienen un tamano de 8x8.
De manera similar, una unidad de prediccion de la unidad 640 de codificacion que tiene el tamano de 8x8 y la profundidad de 40 3 puede dividirse en particiones incluidas en la unidad 640 de codificacion, es decir, una particion que tiene un tamano de 8x8, particiones 642 que tienen un tamano de 8x4, particiones 644 que tienen un tamano de 4x8, o particiones 646 que tienen un tamano de 4x4.
Con el fin de determinar la al menos una profundidad codificada de las unidades de codificacion que constituyen la unidad 610 de codificacion maxima, el codificador 120 del aparato 100 de codificacion de video realiza la codificacion para las unidades de codificacion correspondientes en cada profundidad incluida en la unidad 610 de codificacion maxima.
Un numero de unidades de codificacion mas profundas de acuerdo con las profundidades que incluyen datos en el mismo intervalo y el mismo tamano aumenta conforma la profundidad profundiza. Por ejemplo, cuatro unidades de codificacion que corresponden a una profundidad de 2 se requieren para cubrir los datos que se incluyen en una unidad de codificacion correspondiente a una profundidad 1. Por consiguiente, con el fin de comprar los resultados de codificacion en los mismos datos de acuerdo con las profundidades, la unidad de codificacion correspondiente a la profundidad de 1 y cuatro unidades de codificacion correspondientes de 2 se codifican cada una.
Con el fin de realizar la codificacion para una profundidad actual de entre las profundidades, al menos el error de codificacion puede seleccionarse de la profundidad actual realizando la codificacion para cada unidad de prediccion en las unidades de codificacion que corresponden a la profundidad actual, a lo largo del eje horizontal de la estructura 600 jerarquica. De manera alternativa, el error de codificacion mmimo puede buscarse para compararlos los menos errores de codificacion de acuerdo con las profundidades, realizando la codificacion para cada profundidad conforme la profundidad profundiza a lo largo del eje vertical de la estructura 600 jerarquica. Una profundidad y una particion que tienen el error mmimo de codificacion en la unidad 610 de codificacion puede seleccionarse como la profundidad codificada y un tipo de particion de la unidad 610 de codificacion.
La figura 19 es un diagrama para describir una relacion entre una unidad 710 de codificacion y unidades de 720
5
10
15
20
25
30
35
40
45
50
transformacion, de acuerdo con un ejemplo de la presente invencion.
El aparato 100 de codificacion de v^deo o el aparato 200 de decodificacion de video codifica o decodifica una imagen de acuerdo con las unidades de que tienen tamanos mas pequenos o iguales que una unidad de codificacion maxima para cada unidad de codificacion maxima. Los tamanos de las unidades de transformacion para la transformacion durante la codificacion pueden seleccionarse basandose en unidades de datos que no son mas grandes que la unidad de codificacion correspondiente.
Por ejemplo, en el aparato 100 de codificacion de video o el aparato 200 de decodificacion de codificacion de video, si un tamano de una unidad 710 de codificacion es de 64x64, la transformacion puede realizarse usando las unidades 720 de transformacion que tienen un tamano de 32x32.
Tambien, los datos de la unidad 710 de codificacion que tiene el tamano de 64x64 pueden codificarse realizando la transformacion sobre cada una de las unidades de transformacion que tienen el tamano de 32x32, 16x16, 8x8, y 4x4, que son similares que 64x64, y entonces una unidad de transformacion que tiene al menos el error de codigo puede seleccionarse.
La figura 20 es un diagrama para describir informacion de codificacion de unidades de codificacion que corresponde a una profundidad codificada, de acuerdo con un ejemplo de la presente invencion.
La unidad 130 de salida del aparato 100 de codificacion de video puede codificar y transmitir la informacion 800 sobre un tipo de particion, la informacion 810 sobre un modo de prediccion, y la informacion 820 sobre un tamano de una unidad de transformacion para cada unidad de codificacion correspondiente a una profundidad codificada, como informacion acerca de un modo de codificacion.
La informacion 800 representa la informacion acerca de una forma de una particion obtenida separando una unidad de prediccion de una unidad de codificacion actual, en la que la particion es una unidad de datos para codificacion de prediccion de la unidad de codificacion actual. Por ejemplo, una unidad CU_0 de codificacion actual que tiene un tamano de 2Nx2N puede dividirse en cualquiera de entre una particion 802 que tiene un tamano de 2Nx2N, una particion 804 que tienen el tamano de 2NxN, una particion 806 que tienen el tamano de Nx2N, y una particion 808 que tiene un tamano de NxN. Aqrn, la informacion 800 acerca de un tipo de particion se establece para indicar una de entre la particion 804 que tiene un tamano de 2NxN, una particion 806 que tienen el tamano de Nx2N, y una particion 808 que tiene un tamano de NxN.
La informacion 810 representa un modo de prediccion de cada particion. Por ejemplo, la informacion 810 puede indicar un modo de codificacion de prediccion realizado en una particion representada por la informacion 800, es decir, un intramodo 812, un intermodo 814, o un modo 816 de salto.
La informacion 820 representa una unidad de transformacion en la que se basara cuando la transformacion se realiza sobre una unidad de codificacion actual. Por ejemplo, la unidad de transformacion puede ser una primera unidad 822 de intratransformacion, una segunda unidad 824 de intratransformacion, una primera unidad 826 de intertransformacion, o una segunda unidad 828 de intertransformacion.
El receptor y extractor 220 del aparato 200 de codificacion de video puede extraer y usar la informacion 800, 810, y 820 para decodificacion, de acuerdo con cada unidad de codificacion mas profunda.
La figura 21 es un diagrama unidades de codificacion mas profundas de acuerdo con las profundidades, de acuerdo con un ejemplo de la presente invencion.
La informacion dividida puede usarse para indicar un cambio de una profundidad. La informacion dividida representa si una unidad de codificacion de una profundidad actual se divide en unidades de codificacion de una profundidad inferior.
Una unidad 910 de prediccion para predecir la codificacion de una unidad 900 de codificacion que tiene una profundidad de 0 y un tamano de 2N_0x2N_0 pueden incluir particiones de un tipo 912 que tienen un tamano de 2N_0x2N_0, un tipo 914 de particion que tiene un tamano de 2N_0xN_0, un tipo 916 de particion que tiene un tamano de N_0x2N_0, un tipo 918 de particion que tiene un tamano de N_0xN_0. La figura 9 solo ilustra los tipos 912 a 918 de particion que se obtienen por dividir de manera simetrica la unidad 910 de prediccion, pero un tipo de particion no se limita a los mismos, y las particiones de la unidad 910 de prediccion pueden incluir particiones asimetricas, particiones que tienen una forma predeterminada, y particiones que tienen una forma geometrica.
La codificacion de la prediccion se realiza repetidamente en una particion que tiene un tamano de 2N_0x2N_0, dos particiones que tienen el tamano de 2N_0xN_0, dos particiones que tienen el tamano de N_0x2N_0, y cuatro particiones que tienen un tamano de N_0xN_0, de acuerdo con cada tipo de particion. La codificacion de la prediccion en un intramodo y en un intermodo puede realizarse sobre las particiones que tienen los tamanos de 2N_0x2N_0, N_0x2N_0, 2N_0xN_0, y N_0xN_0. La codificacion de la prediccion en un modo de salto se realiza solo sobre la particion que tiene el tamano de 2N_0x2N_0.
5
10
15
20
25
30
35
40
45
50
55
Los errores de codificacion que incluyen la codificacion de prediccion en los tipos 912 a 918 de particion se comparan, y el menor error de codificacion se determina entre los tipos de particion. Si un error de codificacion es el menor en uno de los tipos 912 a 916 de particion, la unidad 910 de prediccion puede no dividirse en una profundidad inferior.
Si el error de codificacion es el mas pequeno en el tipo 918 de particion, una profundidad se cambia de 0 a 1 para dividir el tipo 918 de particion en la operacion 920, y la codificacion se realiza de manera repetida sobre las unidades 930 de codificacion que tienen una profundidad de 2 y un tamano de N_0xN_0 para buscar un error de codificacion mmimo.
Una unidad 940 de prediccion para la codificacion de la prediccion de la unidad 930 de codificacion que tiene una profundidad de 1 y un tamano de 2N_1x2N_1 (=N_0xN_0) puede incluir particiones de un tipo 942 de particion que tiene un tamano de 2N_1x2N_1, un tipo 944 de particion que tiene un tamano de 2N_1 xN_1, un tipo 946 de particion que tiene un tamano de N_1 x2N_1, y un tipo 948 de particion que tiene un tamano de N_1 xN_1.
Si un error de codificacion es el mas pequeno en el tipo 948 de particion, una profundidad se cambia de 1 a 2 para dividir el tipo 948 de particion en la operacion 950, y la codificacion se realiza de manera repetida sobre las unidades 960 de codificacion, que tienen una profundidad de 2 y un tamano de N_2xN_2 para buscar un error de codificacion mmimo.
Cuando una profundidad maxima es d, las unidades de codificacion de acuerdo con las profundidades pueden asignarse hasta cuando una profundidad se convierte en d-1, y la informacion dividida puede codificarse como hasta cuando una profundidad es uno de entre 0 a d-2. En otras palabras, cuando la codificacion se realiza hasta cuando la profundidad es d-1 despues de que una unidad de codificacion correspondiente a una profundidad de d-2 se divide en la operacion 970, una unidad 990 de prediccion para la codificacion de prediccion de una unidad 980 de codificacion que tiene una profundidad de d-1 y un tamano de 2N_(d-1)x2N_(d-1) puede incluir particiones de un tipo 992 de particion que tienen un tamano de 2N_(d-1)x2N_(d-1), un tipo 994 de particion que tiene un tamano de 2N_(d-1)xN_(d-1), un tipo 996 de particion que tiene un tamano de N_(d-1)x2N_(d-1), un tipo 998 de particion que tiene un tamano de N_(d-1)xN_(d-1).
La codificacion de la prediccion puede realizarse de manera repetida sobre una particion que tiene un tamano de 2N_(d-1)x2N_(d-1), dos particiones que tienen un tamano de 2N_(d-1)xN_(d-1), dos particiones que tienen un tamano de N_(d-1)x2N_(d-1), cuatro particiones que tienen un tamano de N_(d-1)xN_(d-1) de entre los tipos 992 a 998 de particion para buscar un tipo de particion que tiene un error de codificacion mmimo.
Incluso cuando el tipo 998 de particion tiene el error de codificacion mmimo, ya que una profundidad maxima es d, una unidad CU_(d-1) de codificacion que tienen una profundidad d-1 ya no se divide en una profundidad inferior, y se determina una profundidad codificada para las unidades de codificacion que constituyen una unidad 900 de codificacion maxima actual para ser d-1 y un tipo de particion de una unidad 900 de codificacion maxima actual puede determinarse para ser N_(d-1)xN_(d-1). Tambien, ya que la profundidad maxima es d y una unidad 980 de codificacion minima que tiene una profundidad mas baja de d-1 ya no se divide en una profundidad inferior, la informacion dividida para la unidad 980 de codificacion minima no se establece.
Una unidad 999 de datos 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 obtenida dividiendo una unidad 980 de codificacion minima entre 4. Realizando la codificacion de manera repetida, el aparato 100 de codificacion de video puede seleccionar una profundidad que tiene el menor error de codificacion comparando errores de codificacion de acuerdo con las profundidades de la unidad 900 de codificacion para determinar una profundidad codificada, y establecer un tipo de particion y un modo de prediccion correspondiente como un modo de codificacion de la profundidad codificada.
Como tal, 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 menor error de codificacion puede determinarse como una profundidad codificada. La profundidad codificada, el tipo de particion de la unidad de prediccion, y el modo de prediccion pueden codificarse y transmitirse como informacion acerca de un modo de codificacion. Tambien, ya que una unidad de codificacion se divide desde una profundidad de 0 a una profundidad codificada, solo la informacion dividida de la profundidad codificada se establece en 0, y la informacion dividida de las profundidades que excluyen la profundidad codificada se establece en 1.
El receptor y el extractor 220 del aparato 200 de decodificacion de video puede extraer y usar la informacion acerca de la profundidad codificada y la unidad de prediccion de la unidad 900 de codificacion para codificar la particion 912. El aparato 200 de decodificacion de video puede determinar una profundidad, en la que la informacion dividida es 0, como una profundidad codificada usando la informacion dividida de acuerdo con las profundidades, y usa informacion acerca de un modo de codificacion de la profundidad correspondiente para decodificacion.
Las figuras 22 a 24 son diagramas para describir una relacion entre unidades 1010 de codificacion, unidades 1060 de prediccion, y las unidades 1070 de transformacion, de acuerdo con un ejemplo de la presente invencion.
5
10
15
20
25
30
Las unidades 1010 de codificacion son unidades de codificacion que tienen una estructura de arbol, que corresponde a las profanidades codificadas determinadas por el aparato 100 de codificacion de video, en una unidad de codificacion maxima. Las unidades 1060 de prediccion son particiones de unidades de prediccion de cada una de las unidades 1010 de codificacion, y las unidades 1070 de transformacion son unidades de transformacion de cada una de las unidades 1010 de codificacion.
Cuando una profundidad de una unidad de codificacion maxima es 0 en las unidades 1010 de codificacion, las profundidades de las unidades 1012 y 1054 de codificacion son 1, las profundidades de las unidades 1014, 1016, 1018, 1028, 1050 y 1052 de codificacion son 2, las profundidades de las unidades 1020, 1022, 1024, 1026, 1030, 1032 y 1048 de codificacion son 3 y las profundidades de las unidades1040, 1042, 1044 y 1046 son 4.
En las unidades 1060 de prediccion, algunas unidades 1014 1016, 1022, 1032, 1048, 1050, 1052 y 1054 de codificacion se obtienen dividiendo las unidades de codificacion en las unidades 1010 de codificacion. En otras palabras, los tipos de particion en las unidades 1014, 1022, 1050 y 1054 de codificacion tienen un tamano de 2NxN, los tipos de particion en las unidades 1016, 1048 y 1052 de codificacion tienen un tamano de Nx2N, y un tipo de particion de la unidad 1032 de codificacion tiene un tamano de NxN. Las unidades de prediccion y las particiones de las unidades 1010 de codificacion son mas pequenas o iguales que cada unidad de codificacion.
La transformacion o la transformacion inversa se realiza sobre los datos de una imagen de la unidad 1052 de codificacion en las unidades 1070 de transformacion en una unidad de datos que es mas pequena que la unidad 1052 de codificacion. Tambien, las unidades 1014, 1016, 1022, 1032, 1048, 1050 y 1052 de codificacion en las unidades 1070 de transformacion son diferentes de aquellas unidades 1060 de prediccion en terminos de tamanos y formas. En otras palabras, los aparatos 100 y 200 de codificacion y decodificacion de video puede realizar intraprediccion, estimacion de movimiento, compensacion de movimiento, transformacion, y transformacion inversa individualmente sobre una unidad de datos en la misma unidad de codificacion.
Por consiguiente, la codificacion se realiza de manera recursiva sobre cada una de las unidades de codificacion que tiene una estructura jerarquica en cada region de una unidad de codificacion maxima para determinar una unidad de codificacion optima, y, por lo tanto, las unidades de codificacion que tienen una estructura de arbol recursiva pueden obtenerse. La informacion de codificacion puede incluir informacion dividida acerca de una unidad de codificacion, informacion acerca de un tipo de particion, 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 100 y 200 de codificacion y decodificacion de video.
5
10
15
20
25
Tabla 1
Informacion dividida 0
(Codificacion en la unidad de codificacion que tiene el tamano de 2Nx2N y la profundidad actual de d)
Informacion dividida 1
Prediccion
Tipo de particion Tamano de la unidad de transformacion
Modo
Informacion dividida Informacion dividida 1
Intra
Tipo de particion simetrico Tipo de particion asimetrico 0 de Unidad de transformacion de Unidad de transformacion Codificar repetidamente las unidades que tienen una profundidad de d+1
Inter
NxN
2Nx2N 2NxnU (Tipo de particion
Salto (Solo 2Nx2N)
2NxN 2NxnD 2Nx2N simetrico)
Nx2N nLx2N N/2xN/2
NxN nRx2N (Tipo de particion asimetrico)
La unidad 130 de salida del aparato 100 de codificacion de video puede generar la informacion de codificacion acerca de las unidades de codificacion que tienen una estructura de arbol, y el receptor y extractor 220 del aparato 200 de decodificacion de video puede extraer la informacion de codificacion acerca de las unidades de codificacion que tienen una estructura de arbol de un flujo de bits recibido.
La informacion dividida representa si una unidad de codificacion actual se divide en unidades de codificacion de una profundidad inferior. Si la informacion dividida de una profundidad d actual es 0, una profundidad, en la que una unidad de codificacion actual ya no se divide en una profundidad inferior, es una profundidad codificada, y por lo tanto informacion acerca de un tipo de particion, el modo de prediccion, y un tamano de una unidad de transformacion puede definirse para la profundidad codificada. Si la unidad de codificacion actual se divide adicionalmente de acuerdo con la informacion dividida, la codificacion se realiza de manera independiente sobre cuatro unidades de codificacion dividida de una profundidad inferior.
Un modo de prediccion puede ser un intramodo, un intermodo, o un modo de salto. El intramodo y el intermodo puede definirse en todos los tipos de particion, y el modo de salto se define solo en un tipo de particion que tiene un tamano de 2Nx2N.
La informacion acerca del tipo de particion puede indicar tipos de particion simetricos que tienen tamanos de 2Nx2N, 2NxN, Nx2N, y NxN, que se obtienen dividiendo de manera simetrica una altura o un ancho de una unidad de prediccion, y un tipo de particion asimetrico que tiene tamanos de 2NxnU, 2NxnD, nLx2N, y nRx2N, que se obtienen dividiendo de manera asimetrica la altura o el ancho de la unidad de prediccion. Los tipos de particion asimetrica que tienen los tamanos de 2NxnU y 2NxnD pueden obtenerse respectivamente dividiendo la altura de la unidad de prediccion en 1:3 y 3:1, y los tipos de particion asimetrica que tienen los tamanos de nLx2N y nRx2N pueden obtenerse respectivamente dividiendo el ancho de la unidad de prediccion en 1:3 y 3:1
El tamano de la unidad de transformacion puede establecerse en dos tipos en el intramodo y dos tipos en el intermodo. En otras palabras, si la informacion dividida de la unidad de transformacion es 0, el tamano de la unidad de transformacion puede ser 2Nx2N, que es el tamano de la unidad de codificacion actual. Si la informacion dividida
5
10
15
20
25
30
35
40
45
50
55
de la unidad de transformacion es 1, las unidades de transformacion se pueden obtener dividiendo la unidad de codificacion actual. Tambien, si un tipo de particion de la unidad de codificacion actual que tiene el tamano de 2Nx2N es un tipo de particion simetrica, un tamano de una unidad de transformacion puede ser NxN, y si el tipo de particion de la unidad de codificacion actual es un tipo de particion asimetrica, el tamano de la unidad de transformacion puede ser N/2xN/2.
La informacion de codificacion sobre las unidades de codificacion que tienen una estructura de arbol puede incluir al menos una de una unidad de codificacion que corresponde a una profundidad codificada, una unidad de prediccion, y una unidad minima. La unidad de codificacion que corresponde a la profundidad codificada puede incluir al menos una de entre una unidad de prediccion y una unidad minima que contiene la misma informacion de codificacion.
Por consiguiente, se determina si las unidades de datos adyacentes se incluyen en la misma unidad de codificacion que corresponde a la profundidad codificada comparando la informacion de codificacion de las unidades de datos adyacentes. Tambien, se determina una unidad de codificacion que corresponde a una profundidad codificada utilizando informacion de codificacion de una unidad de datos, y por lo tanto puede determinarse una distribucion de profundidades codificadas en una unidad de codificacion maxima.
Por consiguiente, si se predice una unidad de codificacion actual basada en informacion de codificacion de unidades de datos adyacentes, la informacion de codificacion de unidades de datos en unidades de codificacion mas profundas adyacentes a la unidad de codificacion actual puede denominarse y usarse directamente.
De manera alternativa, si se predice una unidad de codificacion actual basada en informacion de codificacion de 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 a las unidades de codificacion adyacentes buscadas pueden hacerse referencia 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 particion, y una unidad de transformacion, de acuerdo con la informacion del modo de codificacion de la tabla 1.
Una unidad 1300 de codificacion maxima incluye las unidades 1302, 1304, 1306, 1312, 1314, 1316 y 1318 de codificacion de profundidades codificadas. Aqrn, ya que la unidad 1318 de codificacion es una unidad de codificacion de una profundidad codificada, la informacion dividida puede establecerse en 0. La informacion acerca de un tipo de particion de la unidad 1318 de codificacion que tiene un tamano de 2Nx2N puede establecerse para ser uno de entre un tipo 1322 de particion que tiene un tamano de 2Nx2N, un tipo 1324 de particion que tiene un tamano de 2NxN, un tipo 1326 de particion que tiene un tamano de Nx2N, un tipo 1328 de particion que tiene un tamano de NxN, un tipo 1332 de particion que tiene un tamano de 2NxnU, un tipo 1334 de particion que tiene un tamano de 2NxnD, un tipo 1336 de particion que tiene un tamano de nLx2N, un tipo 1338 de particion que tiene un tamano de nRx2N.
La informacion dividida (indicador de tamano TU) de una unidad de transformacion es una especie de un mdice de transformacion, y el tamano de una unidad de transformacion que corresponde al mdice de transformacion puede variar de acuerdo con un tipo de unidad de prediccion o un tipo de particion de una unidad de codificacion.
Por ejemplo, cuando el tipo de particion se establece como simetrico, es decir, el tipo 1322, 1324, 1326, 1328 de particion, una unidad 1342 de transformacion que tiene un tamano de 2Nx2N se establece si un indicador de tamano TU es 0, y una unidad 1344 de transformacion que tiene un tamano de NxN se establece si un indicador de tamano TU es 1.
Cuando el tipo de particion se establece como simetrico, es decir, el tipo 1332, 1334, 1336, 1338, de particion, una unidad 1352 de transformacion que tiene un tamano de 2Nx2N se establece si un indicador de tamano TU es 0, y una unidad 1354 de transformacion que tiene un tamano de N/2xN/2 se establece si un indicador de tamano TU es
1.
En referencia a la figura 21, el indicador de tamano TU es un indicador que tiene un valor 0 o 1, pero el indicador de tamano TU no se limita a 1 bit, y una unidad de transformacion puede dividirse jerarquicamente teniendo una estructura de arbol mientras que el indicador de tamano TU aumenta de 0. El indicador de tamano TU puede usarse como un ejemplo de un mdice de transformacion.
En este caso, el tamano de una unidad de transformacion que se ha usado realmente puede expresarse usando 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 100 de codificacion de video es capaz de codificar la unidad la informacion de tamano de la unidad de transformacion maxima, la informacion de tamano de la unidad de transformacion minima, y un indicador de tamano TU maximo. El resultado de codificacion de la informacion de tamano de la unidad de transformacion maxima, la informacion de tamano de la unidad de transformacion minima, y el indicador de tamano TU maximo puede insertarse en un SPS. De acuerdo con un ejemplo de la presente invencion, el aparato 200 de decodificacion de video puede decodificar video usando la informacion de tamano de la unidad de transformacion maxima, la informacion de tamano de la unidad de transformacion minima, y el indicador de tamano TU maximo.
5
10
15
20
25
30
35
40
45
50
Por ejemplo, (a) si el tamano de una unidad de codificacion actual es 64x64 y un tamano de unidad de transformacion maximo es 32x32, entonces (a-1) el tamano de una unidad de transformacion puede ser 32x32 cuando un indicador de tamano TU es 0, (a-2) puede ser 16x16 cuando el indicador de tamano TU es 1, y (a-3) puede ser 8x8 cuando el indicador de tamano TU es 2.
Como otro ejemplo, (b) si el tamano de una unidad de codificacion actual es 32x32 y un tamano de unidad de transformacion mmimo es 32x32, entonces (b-1) el tamano de la unidad de transformacion puede ser 32x32 cuando el indicador de tamano TU es 0. Aqm, el indicador de tamano TU no se puede establecer en un valor distinto de 0, ya que el tamano de la unidad de transformacion no puede ser menor de 32x32.
Como otro ejemplo, (c) si el tamano de la unidad de codificacion actual es 64x64 y un indicador de tamano TU maximo es 1, entonces el indicador de tamano TU puede ser 0 o 1. Aqm, el indicador de tamano TU no se puede establecer en un valor distinto de 0 o 1.
De esta manera, 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 unidad de transformacion rafz es "RootTuSize" cuando el indicador de tamano TU es 0, entonces un tamano de unidad de transformacion mmimo actual "CurrMinTuSize" que se puede determinar en una unidad de codificacion actual, puede definirse por la ecuacion (1):
CurrMinTuSize = max (MinTransformSize, RootTuSize / (2 A MaxTransformSizelndex))
......(1)
Comparado con el tamano de unidad de transformacion mmimo "CurrMinTuSize" que se puede determinar en la unidad de codificacion actual, el tamano de la unidad de transformacion rafz "RootTuSize" puede indicar un tamano de unidad de transformacion maximo que puede seleccionarse en el sistema. En la ecuacion (1), 'RootTuSize / (2 A MaxTransformSizelndex)' indica un tamano de la unidad de transformacion cuando el tamano de la unidad de transformacion rafz "RootTuSize" se divide en un numero de veces que corresponde al indicador de tamano TU maximo, y "MinTransformSize" indica un tamano de transformacion mmimo. De esta manera, un valor mas pequeno de entre "RootTuSize/(2AMaxTransformSlzelndex)" 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 unidad de transformacion rafz "RootTuSize" puede variar de acuerdo con el tipo de un modo de prediccion.
Por ejemplo, si un modo de prediccion actual es un intermodo, entonces "RootTuSize" puede determinarse usando la ecuacion (2) siguiente. En la ecuacion (2), "MaxTransformSize" indica un tamano de unidad maximo, y 'PUSize' indica un tamano de unidad de prediccion actual.
RootTuSize = min(MaxTransformSize, PUSize).............(2)
Es decir, si el modo de prediccion actual es el intermodo, el tamano de la unidad de transformacion rafz "RootTuSize" cuando el indicador de tamano TU es 0 puede ser un valor menor de entre el tamano de la unidad de transformacion maximo y el tamano de la unidad de prediccion actual.
Si un modo de prediccion de una unidad de particion actual es un intramodo, "RootTuSize" puede determinarse usando la ecuacion (3) siguiente. En la ecuacion (3), 'PartitionSize' indica el tamano de la unidad de particion actual.
RootTuSize = min(MaxTransformSize, PartitionSize).............(3)
Es decir, si el modo de prediccion actual es el intramodo, el tamano de la unidad de transformacion rafz "RootTuSize" puede ser un valor menor de entre el tamano de la unidad de transformacion maximo y el tamano de la unidad de particion actual.
Sin embargo, el tamano de la unidad de transformacion maximo actual que vana de acuerdo con el tipo de un modo de prediccion en una unidad de particion, el tamano de la unidad de transformacion rafz "RootTuSize", es solo un ejemplo y la presente invencion no se limita a los mismos.
La figura 26 es un diagrama de flujo de un procedimiento de codificacion de video que usa un filtro de interpolacion de suavizado basandose en 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 dividida, que se obtiene dividiendo una region de cada unidad de codificacion maxima de acuerdo con las profundidades, puede codificarse. Con el fin de codificar cada region dividida en funcion de las profundidades, la transformacion y la cuantificacion se realizan en un resultado de interprediccion basandose en una interpolacion de unidad sub-pel, y la intraprediccion.
5
10
15
20
25
30
35
40
45
50
55
Aqm, una profundidad dividida para generar un resultado de codificacion final de acuerdo con la al menos una region dividida puede determinarse comparando los resultados de las regiones de codificacion de acuerdo con las profundidades, y las unidades de codificacion incluidas en una unidad de codificacion maxima actual que tiene una estructura de arbol puede determinarse. Al igual que las unidades de codificacion que tienen una estructura de arbol, las unidades de transformacion que tienen una estructura de arbol pueden determinarse. En otras palabras, como resultado de codificacion de una imagen, al igual que 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 puede generarse como datos codificados de la imagen.
La interprediccion puede realizarse sobre cada unidad de prediccion o particion de unidad de codificacion. El movimiento de una unidad de prediccion actual o particion puede predecirse con referencia a los pfxeles generados por la interpolacion de unidad sub-pel. De entre los filtros de interpolacion para generar un valor de pixel de unidad sub-pel, un filtro de interpolacion se selecciona de diferente manera basandose en la ubicacion de interpolacion de unidad sub-pel y una suavidad. Con el fin de realizar de manera eficaz la interpolacion de la imagen, Los coeficientes del filtro de interpolacion pueden determinarse selectivamente.
De entre los coeficientes de filtro de interpolacion previamente almacenados en memoria, un filtro de interpolacion deseado puede seleccionarse de acuerdo con una ubicacion de interpolacion de unidad sub-pel, una suavidad, el numero de tomas de filtro, una profundidad de bits, un factor de escala, una funcion basica del filtrado de interpolacion basada en la transformacion, y un componente de color, y la interpolacion se puede realizar para generar el valor de pfxeles de unidad sub-pel.
En la operacion 2620, los datos de imagen obtenidos como el resultado de codificacion final de acuerdo con la al menos una region dividida de cada unidad de codificacion maxima, y la informacion acerca de la profundidad codificada y el modo de codificacion se generan como flujo de bits.
La informacion acerca del modo de codificacion puede incluir informacion acerca de la profundidad codificada o informacion dividida, la informacion acerca de un tipo de particion de una unidad de prediccion, la informacion acerca de un modo de prediccion, y la informacion acerca de una estructura de arbol de las unidades de transformacion. La informacion de codificacion puede incluir informacion sobre un filtro de interpolacion utilizado para realizar una codificacion de prediccion de unidad sub-pel. La informacion codificada sobre el modo de codificacion puede transmitirse a un aparato de decodificacion junto con los datos de imagen codificados.
La figura 27 es un diagrama de flujo de un procedimiento de decodificacion de video que usa un filtro de interpolacion de suavizado basandose en 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 analiza un flujo de bits de un video codificado.
En la operacion 2720, los datos de imagen codificados de una imagen actual asignados a una unidad de codificacion maxima, y la informacion acerca de una profundidad codificada y un modo de codificacion de acuerdo con las unidades de codificacion maxima se extraen del flujo de bits analizado. La informacion acerca de un filtro de interpolacion necesario para realizar la compensacion de movimiento de unidad sub-pel puede extraerse de la informacion de codificacion.
La informacion acerca de la profundidad codificada y del modo de codificacion se puede extraer de la informacion de codificacion. De acuerdo con la informacion acerca de la profundidad codificada y del modo de codificacion, una unidad de codificacion maxima se puede dividir en unidades de codificacion que tienen una estructura de arbol. Tambien, de acuerdo con la informacion acerca de una estructura de arbol de las unidades de transformacion incluidas en la informacion extrafda, las unidades de transformacion que tienen una estructura de arbol de acuerdo con las profundidades de transformacion en las unidades de codificacion pueden determinarse.
En la operacion 2730, utilizando 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 pueden descodificarse basandose en las unidades de codificacion que tienen una estructura de arbol, unidades de prediccion, y las unidades de transformacion que tienen una estructura de arbol. Ya que una unidad de codificacion actual se decodifica basandose en la informacion acerca de la profundidad codificada, y el modo de codificacion, una unidad de codificacion actual puede transformarse de manera inversa usando una unidad de transformacion determinada de entre la cantidad de unidades de trasformacion que tienen una estructura en arbol.
Los datos de imagen codificados pueden decodificarse por la realizacion de diversas operaciones de decodificacion tales como la compensacion del movimiento y la intraprediccion sobre cada unidad de prediccion o particion de la unidad de codificacion basandose en el modo de codificacion.
Espedficamente, si los datos residuales codificados y los datos de referencia se extraen basandose en los pfxeles interpolados extrafdos en una unidad sub-pel, la compensacion de movimiento sobre una unidad de prediccion actual puede realizarse basandose en los pfxeles interpolados en las unidades sub-pel. De entre los filtros de interpolacion para generar un valor de pixel de unidad sub-pel, un filtro de interpolacion puede seleccionarse de
5
10
15
20
25
30
35
40
45
50
diferente manera basandose en la ubicacion de interpolacion de unidad sub-pel y una suavidad.
Con el fin de realizar de manera eficaz la interpolacion de la imagen, los coeficientes del filtro de interpolacion pueden determinate selectivamente. De entre los coeficientes de filtro de interpolacion previamente almacenados en memoria, un filtro de interpolacion deseado puede seleccionarse de acuerdo con una ubicacion de interpolacion de unidad sub-pel, una suavidad, el numero de tomas de filtro, una profundidad de bits, un factor de escala, una funcion basica del filtrado de interpolacion basada en la transformacion, y un componente de color, y la interpolacion se puede realizar para generar el valor de pfxeles de unidad sub-pel.
Una imagen de referencia y una region de referencia se determinan usando los datos de referencia, y el valor de pixel de unidad sub-pel puede generarse realizando el filtrado de interpolacion sobre dos o mas pfxeles de referencia de unidad pel entera de la imagen de referencia. La compensacion de movimiento puede realizarse sobre la unidad de prediccion actual o la particion actual combinando el valor de pixel de unidad sub-pel y los datos residuales, y asf puede realizarse la decodificacion de prediccion.
Como cada unidad de codificacion maxima se decodifica, los datos de imagen en un ambito espacial pueden reconstruirse, y una imagen y un video que son una secuencia de imagen pueden reconstruirse. El video reconstruido puede reproducirse por un aparato de reproduccion, pueden almacenarse en un medio de almacenamiento, o puede transmitirse en una red.
Los ejemplos de la presente invencion pueden escribirse como programas informaticos y pueden implementarse en ordenadores digitales de uso general que ejecuten los programas usando un medio de grabacion legible por ordenador. Los ejemplos de medios de grabacion legibles por ordenador incluyen medios de almacenamiento magnetico (por ejemplo, ROM, disquetes, discos duros, etc.) y medios de grabacion optica (por ejemplo, CD-ROM, o DVD).
Los siguientes parrafos numerados definen aspectos o ejemplos adicionales de la invencion que son utiles para la comprension.
1. Un procedimiento de interpolacion de una imagen en consideracion de la suavidad, comprendiendo el procedimiento:
seleccionar de manera diferente un filtro de interpolacion basandose en una ubicacion de interpolacion de unidad sub-pel y una suavidad de entre filtros de interpolacion para generar al menos un valor de pixel de unidad sub-pel ubicado entre los pfxeles de unidad pel entera; y
generar el al menos un valor de unidad sub-pel interpolando los valores de pixel de los pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado.
2. El procedimiento del parrafo 1, en el que el filtro de interpolacion incluye coeficientes de filtro para transformar los pfxeles de unidad pel entera basandose en una pluralidad de funciones basicas y transformar inversamente 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 coeficientes de filtro que tienen la suavidad determinada basandose en una distancia entre la ubicacion de interpolacion y los pfxeles de unidad pel entera.
4. El procedimiento del parrafo 1, en el que los filtros de interpolacion incluyen coeficientes de filtro que tienen la suavidad determinada basandose en la distancia entre la ubicacion de interpolacion y los pfxeles de unidad pel entera adyacente a la ubicacion de interpolacion.
5. El procedimiento del parrafo 2, en el que, con el fin de interpolar los pfxeles de unidad pel entera en un ambito espacial, el filtro de interpolacion incluye coeficientes de filtro obtenidos por la combinacion de un filtro para realizar la transformacion y la transformacion inversa usando la pluralidad de funciones basicas, y una funcion de ventana, y en el que la funcion de ventana es simetrica con respecto a la ubicacion de interpolacion.
6. El procedimiento del parrafo 2, en el que, con el fin de interpolar los pfxeles de unidad pel entera en un ambito espacial, el filtro de interpolacion incluye coeficientes de filtro obtenidos por la combinacion de un filtro para realizar la transformacion y la transformacion inversa usando la pluralidad de funciones basicas, y un parametro de suavizado, y
en el que los parametros de suavizado controlan al menos uno de entre una velocidad de suavizado y un intervalo de suavizado.
7. El procedimiento del parrafo 2, en el que el filtro de interpolacion incluye coeficientes de filtro para pfxeles de unidad pel entera lfmite de suavizado mas fuertemente basandose en una condicion lfmite de una funcion spline como una funcion basica.
8. El procedimiento del parrafo 2, en el que el filtro de interpolacion incluye coeficientes de filtro para maximizar una respuesta de baja frecuencia del filtro de interpolacion basandose en una funcion polinomica como una funcion
5
10
15
20
25
30
35
40
45
basica.
9. El procedimiento del parrafo 1, en el que la seleccion del filtro de interpolacion comprende seleccionar un filtro de interpolacion que incluye coeficientes de filtro escalados a numeros enteros, de entre los filtros de interpolacion, y
en el que la generacion del al menos un valor de unidad sub-pel comprende normalizar el al menos un valor de pixel de unidad sub-pel generado por el uso del filtro de interpolacion seleccionado, basandose en un factor de escala.
10. El procedimiento del parrafo 1, en el que la seleccion del filtro de interpolacion comprende, con el fin de interpolar un pixel de color, seleccionar un filtro de interpolacion que tiene una suavidad mas fuerte que un filtro de interpolacion para un pixel de brillo, de entre los filtros de interpolacion, y en el que la generacion del al menos un valor de pixel de unidad sub-pel comprende generar el al menos un valor de unidad sub-pel usando un filtro de interpolacion seleccionado de manera diferente de acuerdo con el pixel de color y el pixel de brillo.
11. El procedimiento del parrafo 1, en el que los filtros de interpolacion comprenden al menos uno de entre(i) un filtro de interpolacion de 1/4 de unidad pel de 8 tomas que tiene un factor de escala de 26 y que incluye coeficientes {-1,4, -10, 57, 19, -7, 3, -1} de filtro, (ii) un filtro de interpolacion de 1/2 de unidad pel de 8 tomas que tiene un factor de escala de 26 y que incluye coeficientes {-1, 4, -11,40, 40, -11, 4, -1} de filtro, (iii) un filtro de interpolacion de 1/8 de unidad pel de 4 tomas que tiene un factor de escala de 26 y que incluye coeficientes {-3, 60, 8, -1} de filtro, (iv) un filtro de interpolacion de 1/4 de unidad pel de 4 tomas que tiene un factor de escala de 26 y que incluye coeficientes {-4, 54, 16, -2} de filtro, (v) un filtro de interpolacion de 3/8 de unidad pel de 4 tomas que tiene un factor de escala de 26 y que incluye coeficientes {-5, 46, 27, -4} de filtro, y (vi) un filtro de interpolacion de 1/2 de unidad pel de 4 tomas que tiene un factor de escala de 26 y que incluye coeficientes (-4, 36, 36, -4} de filtro.
12. El procedimiento del parrafo 1, que comprende:
por un codificador de video, seleccionar de diferente manera un filtro de interpolacion sobre una ubicacion de interpolacion de unidad sub-pel y una suavidad de entre los filtros de interpolacion almacenados en el codificador de video, con respecto a cada bloque de una imagen de entrada, realizar la codificacion de prediccion para generar el al menos un valor de pixel de unidad sub-pel interpolando los valores de pfxeles de pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado, y realizar la transformacion y la cuantificacion sobre un resultado de prediccion de la codificacion de prediccion; y
emitir un flujo de bits generado por la realizacion de la codificacion de entropfa sobre coeficientes de transformacion cuantificados e informacion de codificacion.
13. El procedimiento del parrafo 1, que comprende:
por un decodificador de video, recibir un flujo de bits codificados de un video y extraer la informacion de codificacion y los datos codificados de una imagen de video por la realizacion de la decodificacion de entropfa y el analisis sobre el flujo de bits; y
realizar la cuantificacion inversa y la transformacion inversa sobre los coeficientes de transformacion cuantificados de los datos codificados de un bloque actual de la imagen, seleccionando de diferente manera un filtro de interpolacion sobre una ubicacion de interpolacion de unidad sub-pel y una suavidad de entre los filtros de interpolacion almacenados en el decodificador de video, que realiza la decodificacion de prediccion para generar el al menos un valor de pixel de unidad sub-pel interpolando los valores de pfxeles de pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado, y reconstruir la imagen.
14. Un aparato para interpolar una imagen en consideracion de la suavidad, comprendiendo el aparato:
un filtro selector para seleccionar de manera diferente un filtro de interpolacion basandose en una ubicacion de interpolacion de unidad sub-pel y una suavidad de entre filtros de interpolacion para generar al menos un valor de pixel de unidad sub-pel ubicado entre los pfxeles de unidad pel entera; y
un interpolador para generar el al menos un valor de unidad sub-pel interpolando los valores de pixel de los pfxeles de unidad pel entera usando el filtro de interpolacion seleccionado.
15. Un medio de grabacion legible por ordenador que tiene grabado en el un programa informatico para ejecutar el procedimiento del parrafo 1.

Claims (2)

  1. REIVINDICACIONES
    1. Un aparato para la compensacion de movimiento, comprendiendo el aparato:
    un selector de filtro que esta configurado para seleccionar un filtro de 8 tomas de interpolacion de muestras de brillo, y
    5 un interpolador que esta configurado para determinar, en una imagen de referencia de brillo, un bloque de
    referencia de brillo para la prediccion de un bloque actual, usando un vector de movimiento de brillo del bloque actual, y generar una muestra de brillo de una ubicacion de 1/2 pixel incluida en el bloque de referencia de brillo aplicando el filtro de 8 tomas a muestras de brillo de una ubicacion de pixel entero de la imagen de referencia de brillo,
    10 en el que el selector de filtro selecciona un filtro para la interpolacion de muestras de color,
    el interpolador determina, en una imagen de referencia de color, un bloque de referencia de color para la prediccion del bloque actual, usando un vector de movimiento de color del bloque actual, y generar una muestra de color de la ubicacion de 1/2 pixel incluida en el bloque de referencia de color aplicando el filtro a muestras de color de una ubicacion de pixel entero de la imagen de referencia de color,
    15 el filtro de 8 tomas comprende ocho coeficientes de filtro para generar la muestra de brillo de la ubicacion de 1/2
    pixel, que son {-1, 4, -11, 40, 40, -11,4, -1}.
  2. 2. El aparato segun la reivindicacion 1, en el que la unidad de filtrado de interpolacion de brillo esta configurada para escalar la muestra de brillo generada aplicando el filtro de 8 tomas que usa un factor de escala de brillo de 64 con el fin de reconstruir una profundidad de bits de la muestra de brillo.
    20
ES15173605.5T 2010-09-30 2011-09-30 Procedimiento y dispositivo de interpolación de imágenes usando un filtro de interpolación de suavizado Active ES2629870T3 (es)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US38826410P 2010-09-30 2010-09-30
US388264P 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
ES2629870T3 true ES2629870T3 (es) 2017-08-16

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 Before (1)

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

Family Applications After (2)

Application Number Title Priority Date Filing Date
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
ES2640666T3 (es) 2017-11-03
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
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
ES2629870T3 (es) Procedimiento y dispositivo de interpolación de imágenes usando un filtro de interpolación de suavizado
JP6388685B2 (ja) 固定小数点変換のためのビット深度調節を伴うビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
ES2701978T3 (es) Procedimiento de decodificación usando un filtro de interpolación
JP5832683B2 (ja) ビデオ復号化方法及びビデオ復号化装置
JP5314136B2 (ja) 映像の符号化方法及び装置、並びにその復号化方法及び装置
JP5832519B2 (ja) ツリー構造による符号化単位に基づいたビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
JP5654594B2 (ja) 映像の符号化方法及び装置、その復号化方法及び装置
KR102558015B1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
KR20150000851A (ko) 단일화된 참조가능성 확인 과정을 통해 인트라 예측을 수반하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
BR122021005437B1 (pt) Método para compensação de movimento
BR112013007203B1 (pt) Método de compensação de movimento