ES2985808T3 - Método y dispositivo para interpolar imágenes mediante el uso de un filtro de interpolación de alisado - Google Patents
Método y dispositivo para interpolar imágenes mediante el uso de un filtro de interpolación de alisado Download PDFInfo
- Publication number
- ES2985808T3 ES2985808T3 ES17187373T ES17187373T ES2985808T3 ES 2985808 T3 ES2985808 T3 ES 2985808T3 ES 17187373 T ES17187373 T ES 17187373T ES 17187373 T ES17187373 T ES 17187373T ES 2985808 T3 ES2985808 T3 ES 2985808T3
- Authority
- ES
- Spain
- Prior art keywords
- unit
- coding
- interpolation
- transformation
- filter
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/635—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
- G06F17/175—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
Se proporciona un método para interpolar una imagen mediante la determinación de coeficientes de filtro de interpolación. Un método para interpolar una imagen teniendo en cuenta el suavizado incluye la selección diferente de un filtro de interpolación en función de una ubicación de interpolación de subunidades de pel y una suavidad entre filtros de interpolación para generar al menos un valor de píxel de subunidades de pel ubicado entre píxeles de unidades de pel enteras; y la generación del al menos un valor de píxel de subunidades de pel mediante la interpolación de valores de píxel de los píxeles de unidades de pel enteras utilizando el filtro de interpolación seleccionado. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Método y dispositivo para interpolar imágenes mediante el uso de un filtro de interpolación de alisado
Campo técnico
La presente invención se refiere a un método de codificación de vídeo, a un aparato de codificación de vídeo y a un método de descodificación de vídeo usando compensación de movimiento.
Antecedentes de la técnica
En los procedimientos de codificación y de descodificación de imagen típicos, con el fin de codificar una imagen, una imagen se divide en macro bloques. Después de eso, se realiza una codificación por predicción sobre cada macro bloque mediante el uso de inter predicción o intra predicción.
La inter predicción se refiere a un procedimiento para comprimir una imagen mediante la eliminación de redundancia temporal entre imágenes y su ejemplo representativo es la codificación de estimación de movimiento. En la codificación de estimación de movimiento, cada bloque de una imagen actual se predice mediante el uso de al menos una imagen de referencia. Un bloque de referencia que es muy similar a un bloque actual se halla dentro de un intervalo de búsqueda previamente determinado mediante el uso de una función de evaluación previamente determinada.
Se predice un bloque actual basándose en un bloque de referencia, y se codifica un bloque residual que se obtiene al restar del bloque actual un bloque de predicción generado como un resultado de predicción. En este caso, con el fin de realizar de forma más precisa la predicción, se realiza una interpolación en un intervalo de búsqueda de la imagen de referencia, se generan píxeles de unidad de sub-pel más pequeños que los píxeles de unidad de pel de valor entero, y se realiza una inter predicción sobre los píxeles de unidad de sub-pel generados. La codificación de vídeo de alta eficacia se discute en el siguiente artículo: "High Efficiency Video Coding (HEVC) Test Model 2 (HM 2) Encoder Description", de Ken McCann (Samsung/Zetacast): 4. JCT-VC Meeting; 95. MPEG Meeting; 20-1-2011 to 28-1-2011; Daegu; (Joint Collaborative Team on Video Coding of ISO/IEC JTC1/SC29/WG11 and ITU-T SG.16): URL: http://wftp3.itu.int/av-arch/jctvc-site/, no. JCTVC-D502, 15 April 2011.
MCCANN (ZETACAST / SAMSUNG) K ET AL:"Video coding technology proposal by Samsung (and BBC)", 1. JVC-VC MEETING;15 - 4 - 2010 - 23 - 4 - 2010; DRESDE;(JOINTCOLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16); URL:HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/. n.°XP030007572, 1 de junio de 2010 (01 -06 -2010), XP030007573, ISSN: 0000-0049 describe una compensación de movimiento usando filtrado de interpolación en la sección[2.3.4 DCT-based in te rpo la ron filler (DIF)].
Divulgación de la invención
Problema técnico
La presente invención proporciona un método de codificación de vídeo, un aparato de codificación de vídeo y un método de descodificación de vídeo usando compensación de movimiento en donde se emplea un filtro de interpolación con el fin de generar un píxel de unidad de sub-pel mediante la interpolación de píxeles de unidad de pel de valor entero.
Solución técnica
De acuerdo con un aspecto de la presente invención, se proporciona un método de codificación de vídeo, un aparato de codificación de vídeo y un método de descodificación de vídeo según las reivindicaciones del presente documento.
Efectos ventajosos
Cuando se codifica y descodifica un vídeo, debido a que se genera una imagen de alta calidad mediante la interpolación de una trama de referencia y se realizan una estimación y una compensación de movimiento basándose en la imagen de alta calidad, se puede aumentar la precisión de la inter predicción. Asimismo, debido a que se usa un filtro de interpolación de alisado para reducir los componentes de alta frecuencia en un resultado de interpolación y, por lo tanto, se obtiene un resultado de interpolación más uniforme, se pueden eliminar componentes de alta frecuencia y se pueden mejorar la eficiencia de la codificación de imagen y de la descodificación de imagen.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques de un aparato de interpolación de imagen;
la figura 2 es un diagrama para describir una relación entre una unidad de pel de valor entero y una unidad de sub-pel;
la figura 3 es un diagrama que ilustra píxeles de unidad de pel de valor entero adyacentes a los que se hará referencia con el fin de determinar un valor de píxel de unidad de sub-pel;
las figuras 4A a 4C son unos diagramas que ilustran ejemplos de píxeles de unidad de pel de valor entero a los que se hará referencia para determinar un valor de píxel de unidad de sub-pel;
la figura 5 es una gráfica de un parámetro de alisado de un filtro de interpolación de alisado;
la figura 6 es una gráfica de una función de curva que se puede usar por un filtro de interpolación de alisado;
la figura 7 es un diagrama de flujo de un procedimiento de interpolación de imagen;
las figuras 8A a 8C son unas tablas que muestran unos coeficientes de filtro de 12 tomas determinados basándose en un parámetro de alisado y una ubicación de interpolación;
las figuras 9A a 9C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolación de 6 tomas determinados basándose en un parámetro de alisado y una ubicación de interpolación;
la figura 10 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolación de 6 tomas determinados para píxeles de croma basándose en un parámetro de alisado y una ubicación de interpolación;
la figura 11 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolación de alisado determinados de forma diferente basándose en una componente de color y una ubicación de interpolación de imagen;
las figuras 12A a 12C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolación de alisado basándose en una ubicación de interpolación de imagen y un factor de puesta a escala, incluyen aquellos según realizaciones de la presente invención;
la figura 13A es un diagrama de bloques de un aparato de codificación de vídeo que usa un filtro de interpolación de alisado;
la figura 13B es un diagrama de bloques de un aparato de descodificación de vídeo que usa un filtro de interpolación de alisado;
la figura 14A es un diagrama de flujo de un procedimiento de codificación de imagen que usa un filtro de interpolación de alisado, según una realización de la presente invención;
La figura 14B es un diagrama de flujo de un procedimiento de descodificación de imagen que usa un filtro de interpolación de alisado, según una realización de la presente invención;
La figura 15 es un diagrama para describir un concepto de unas unidades de codificación;
la figura 16 es un diagrama de bloques de un codificador de imagen basado en unas unidades de codificación, según una realización de la presente invención;
la figura 17 es un diagrama de bloques de un descodificador de imagen basado en unas unidades de codificación;
la figura 18 es un diagrama que ilustra unas unidades de codificación más profunda de acuerdo con unas profundidades, y unas divisiones;
la figura 19 es un diagrama para describir una relación entre una unidad de codificación y unas unidades de transformación;
la figura 20 es un diagrama para describir una información de codificación de unas unidades de codificación;
la figura 21 es un diagrama de unidades de codificación más profunda de acuerdo con unas profundidades;
las figuras 22 a 24 son unos diagramas para describir una relación entre unas unidades de codificación;
la figura 25 es un diagrama para describir una relación entre una unidad de codificación, una unidad de predicción y una unidad de transformación, de acuerdo con una información de modo de codificación de la Tabla 1;
la figura 26 es un diagrama de flujo de un procedimiento de codificación de vídeo que usa un filtro de interpolación basándose en unas unidades de codificación que tienen una estructura de árbol; y
la figura 27 es un diagrama de flujo de un procedimiento de descodificación de vídeo que usa un filtro de interpolación de alisado basándose en unas unidades de codificación.
Mejor modo para llevar a cabo la invención
En un ejemplo útil para su comprensión, se considera un procedimiento de interpolación de una imagen en consideración de alisado, el procedimiento incluye seleccionar de forma diferente un filtro de interpolación basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento de entre los filtros de interpolación para generar al menos un valor de píxel de unidad de sub-pel ubicado entre píxeles de unidad de pel de valor entero; y generar el al menos un valor de píxel de unidad de subpel mediante la interpolación de valores de píxel de los píxeles de unidad de pel de valor entero mediante el uso del filtro de interpolación seleccionado.
El filtro de interpolación puede incluir unos coeficientes de filtro para transformar los píxeles de unidad de pel de valor entero basándose en una pluralidad de funciones de base y transformar de forma inversa una pluralidad de coeficientes generados como un resultado de la transformación.
El filtro de interpolación puede incluir unos coeficientes de filtro que tienen la uniformidad determinada basándose en una distancia entre la ubicación de interpolación y los píxeles de unidad de pel de valor entero. Los filtros de interpolación pueden incluir unos coeficientes de filtro que tienen la uniformidad determinada basándose en una distancia entre la ubicación de interpolación y los píxeles de unidad de pel de valor entero adyacentes a la ubicación de interpolación.
Con el fin de interpolar los píxeles de unidad de pel de valor entero en un dominio espacial, el filtro de interpolación puede incluir unos coeficientes de filtro que se obtienen mediante la combinación de un filtro para realizar transformación y una transformación inversa usando la pluralidad de funciones de base, y una función de ventana, la función de ventana puede ser simétrica con respecto a la ubicación de interpolación.
Con el fin de interpolar los píxeles de unidad de pel de valor entero en un dominio espacial, el filtro de interpolación puede incluir unos coeficientes de filtro que se obtienen mediante la combinación de un filtro para realizar transformación y una transformación inversa usando la pluralidad de funciones de base, y un parámetro de alisado, y el parámetro de alisado puede controlar al menos uno de una velocidad de alisado y un intervalo de alisado.
El filtro de interpolación puede incluir unos coeficientes de filtro basándose en una función de curva. El filtro de interpolación puede incluir unos coeficientes de filtro para maximizar una respuesta de baja frecuencia del filtro de interpolación basándose en una función polinómica.
La selección del filtro de interpolación puede incluir seleccionar un filtro de interpolación que incluye unos coeficientes de filtro puestos a escala a números enteros, de entre los filtros de interpolación, y la generación del al menos un valor de píxel de unidad de sub-pel puede incluir normalizar el al menos un valor de píxel de unidad de sub-pel generado mediante el uso del filtro de interpolación seleccionado, basándose en un factor de puesta a escala.
La selección de filtro de interpolación puede incluir seleccionar de forma diferente un filtro de interpolación basándose en características de píxel de entre los filtros de interpolación, y la generación del al menos un valor de píxel de unidad de sub-pel puede incluir generar el al menos un valor de píxel de unidad de sub-pel mediante el uso del filtro de interpolación seleccionado de forma diferente, basándose en las características de píxel.
En otro ejemplo útil para su comprensión, se considera un aparato para interpolar una imagen en consideración de alisado, el aparato incluye un selector de filtro para seleccionar de forma diferente un filtro de interpolación basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento de entre filtro de interpolación para generar al menos un valor de píxel de unidad de sub-pel ubicado entre píxeles de unidad de pel de valor entero; y un interpolador para generar el al menos un valor de píxel de unidad de sub-pel mediante la interpolación de valores de píxel de los píxeles de unidad de pel de valor entero mediante el uso del filtro de interpolación seleccionado.
En otro ejemplo útil para su comprensión, se considera un procedimiento de interpolación de una imagen en consideración de una componente de color, el procedimiento incluye seleccionar de forma diferente un filtro de interpolación basándose en una ubicación de interpolación de unidad de sub-pel y una componente de color de un píxel actual de entre los filtros de interpolación para generar al menos un valor de píxel de unidad de filtro en pel ubicado entre píxeles de unidad de pel de valor entero; y generar el al menos un valor de píxel de unidad de sub-pel mediante la interpolación de valores de píxel de los píxeles de unidad de pel de valor entero mediante el uso del filtro de interpolación seleccionado.
La selección de filtro de interpolación puede incluir, con el fin de interpolar un píxel de croma, seleccionar un filtro de interpolación que tiene un alisamiento más fuerte que la de un filtro de interpolación a un píxel de luma, de entre los filtros de interpolación.
El filtro de interpolación que tiene un alisamiento más fuerte que la del filtro de interpolación para un píxel de luma puede ser uno de un filtro que incluye unos coeficientes de filtro para alisar los píxeles de unidad de pel de valor entero, transformar los píxeles de unidad de pel de valor entero alisados mediante el uso de una pluralidad de funciones de base, y transformar de forma inversa una pluralidad de coeficientes generados como un resultado de la transformación; un filtro que se obtiene mediante la combinación de coeficientes de filtro para realizar transformación y una transformación inversa mediante el uso de la pluralidad de funciones de base, y coeficientes de función de ventana para realizar un filtrado de paso bajo; un filtro que incluye unos coeficientes de filtro para alisar muy fuertemente píxeles de unidad de pel de valor entero de límite de basándose en una condición de límite de una función de curva; y un filtro que incluye unos coeficientes de filtro para maximizar una respuesta de baja frecuencia de un filtro de interpolación basándose en una función polinómica.
En otro ejemplo útil para su comprensión, se considera un aparato para interpolar una imagen en consideración de una componente de color, el aparato incluye un selector de filtro para seleccionar de forma diferente un filtro de interpolación basándose en una ubicación de interpolación de unidad de subpel y una componente de color de un píxel actual de entre filtro de interpolación para generar al menos un valor de píxel de unidad de sub-pel ubicado entre píxeles de unidad de valor entero; y un interpolador para generar el al menos un valor de píxel de unidad de sub-pel mediante la interpolación de valores de píxel de los píxeles de unidad de valor entero mediante el uso del filtro de interpolación seleccionado.
Según un aspecto de la presente invención, se proporciona un método de codificación de vídeo según la reivindicación 1 de esta memoria. En otro ejemplo útil para su comprensión, el codificador puede usar un filtro de interpolación de imagen, el codificador de vídeo incluye un codificador para seleccionar de forma diferente un filtro de interpolación basándose en una ubicación de interpolación de unidad de subpel y un alisamiento de entre los filtros de interpolación almacenados en el codificador de vídeo, con respeto a cada bloque de una imagen de entrada, realizar una codificación por predicción para generar al menos un valor de píxel de unidad de sub-pel mediante la interpolación de valores de píxel de píxeles de unidad de pel de valor entero mediante el uso del filtro de interpolación seleccionado y realizar transformación y cuantificación sobre un resultado de predicción de la codificación por predicción; una unidad de salida para enviar una secuencia de bits generada para realizar una codificación por entropía sobre coeficientes de transformación cuantificada en la información de codificación, y un almacenamiento para almacenar unos coeficientes de filtro de los filtros de interpolación.
Según otro aspecto de la presente invención, se proporciona un aparato de codificación de vídeo según la reivindicación 2 de esta memoria. En otro ejemplo de un descodificador de vídeo útil para su comprensión, el descodificador puede usar un filtro de interpolación de imagen, el descodificador de vídeo incluye un receptor y extractor para recibir una secuencia de bits codificada de un vídeo y extraer información de codificación y datos codificados de una imagen de vídeo mediante la realización de una descodificación de entropía y al analizar en la secuencia de bits; un descodificador para realizar una cuantificación inversa y una transformación inversa sobre coeficientes de transformación cuantificados de los datos codificados de un bloque actual de la imagen, seleccionar de forma diferente un filtro de interpolación basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento de entre los filtros de interpolación almacenados en el descodificador de vídeo, realizar una descodificación por predicción para generar al menos un valor de píxel de unidad de sub-pel mediante la interpolación de valores de píxel de píxeles de unidad de pel de valor entero mediante el uso del filtro de interpolación seleccionado, y reconstruir la imagen; y un almacenamiento para almacenar unos coeficientes de filtro de los filtros de interpolación.
Otros ejemplos no reivindicados pueden proporcionar un medio de registro legible por ordenador que tiene almacenado en él un programa informático para ejecutar el procedimiento anterior.
Modo para la invención
En la siguiente descripción, una 'imagen' se puede referir de forma exhaustiva a una imagen en movimiento tal como un vídeo, así como una imagen fija. La interpolación de imagen que considera alisado, de acuerdo con un ejemplo, se describe con referencia a las figuras 1 a 12C. Asimismo, la codificación y descodificación de vídeo que usa un filtro de interpolación de alisado, de acuerdo con una realización de la presente invención, se describen con referencia a las figuras 14A, 14B y 16. En concreto, la codificación y descodificación de vídeo que usa un filtro de interpolación de alisado basándose en unas unidades de codificación que tienen una estructura de árbol, de acuerdo con un ejemplo, se describen con referencia a las figuras 15 y 17 a 27. La interpolación de imagen que considera alisado y un filtro de interpolación alisado, se describirán a continuación en detalle con referencia a las figuras 1 a 12C. La figura 1 es un diagrama de bloques de un aparato de interpolación de imagen 10 de acuerdo con un ejemplo. El aparato de interpolación de imagen 10 que considera alisado incluye un selector de filtro 12 y un interpolador 14. Las operaciones del selector de filtro 12 y el interpolar 14 del aparato de interpolación de imagen 10 se pueden controlar de forma cooperativa mediante un procesador de codificación de vídeo, una unidad central de procesamiento (CPU,central Processing unit)y un procesador de gráficos. El aparato de interpolación de imagen 10 puede recibir una imagen de entrada y puede generar valores de píxel de unidad de sub-pel mediante la interpolación de píxeles de unidad de pel de valor entero. La imagen de entrada puede ser una secuencia de imagen, una imagen, una trama, o bloques de un vídeo. El selector de filtro 12 puede seleccionar de forma diferente un filtro de interpolación para generar al menos un valor de píxel de unidad de sub-pel ubicado entre unas unidades de pel de valor entero, basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento. El interpolador 14 puede interpolar píxeles de unidad de pel de valor entero adyacentes a la ubicación de interpolación de unidad de sub-pel al usar el filtro de interpolación seleccionado por el selector de filtro 12, generando de ese modo valores de píxel de unidad de sub-pel. El filtrado de interpolación de píxeles de unidad de pel de valor entero para generar valores de píxel de unidad de sub-pel puede incluir un filtrado de interpolación de valores de píxel de referencia de unidad de pel de valor entero incluyendo píxeles de unidad de pel valor entero adyacentes a la ubicación de interpolación de unidad de sub-pel en una región soportada por el filtro de interpolación. Un filtro de interpolación puede incluir unos coeficientes de filtro para transformar píxeles de referencia de unidad de pel de valor entero basándose en una pluralidad de funciones de base, y para transformar de forma inversa una pluralidad de coeficientes generados como un resultado de transformación. El filtro de interpolación puede ser un filtro unidimensional o un filtro bidimensional. Si el filtro de interpolación seleccionado es un filtro unidimensional, el interpolador 14 puede realizar de forma secuencial un filtrado mediante el uso de unos filtros de interpolación unidimensionales en dos o más direcciones, generando de ese modo un valor de píxel de unidad de sub-pel actual.
Un filtro de interpolación de alisado puede tener un alisamiento determinado basado en una distancia entre una ubicación de interpolación y píxeles de unidad de pel de valor entero.
Un filtro de interpolación puede incluir diferentes coeficientes de filtro basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento. En lo sucesivo, un filtro de interpolación determinado en consideración de una ubicación de interpolación de unidad de sub-pel y un alisamiento se denomina un filtro de interpolación de alisado.
Un filtro de interpolación de alisado puede tener un alisamiento determinado basándose en una distancia entre una ubicación de interpolación y píxeles de unidad de pel de valor entero adyacentes a la ubicación de interpolación.
Asimismo, el filtro de interpolación de alisado puede incluir unos coeficientes de filtro para píxeles de referencia de unidad de pel de valor entero más fuertemente alisado lejos de la ubicación de interpolación.
Con el fin de interpolar píxeles de unidad de pel de valor entero en un dominio espacial, el filtro de interpolación de alisado se puede obtener mediante la combinación de coeficientes de filtro para realizar transformación y una transformación inversa mediante el uso de una pluralidad de funciones de base, y coeficientes de función de ventana para realizar un filtrado de paso bajo.
Una función de ventana puede ser simétrica con respecto a una ubicación de interpolación. El filtro de interpolación de alisado que se obtiene mediante la combinación de coeficientes de filtro para realizar transformación y una transformación inversa y coeficientes de función de ventana para realizar un filtrado de paso bajo pueden incluir fuentes de filtro para proporcionar un gran peso a un píxel de referencia de unidad de pel de valor entero cerca de la ubicación de interpolación y proporcionar un pequeño peso a un píxel de referencia de unidad de pel de valor entero lejos de la ubicación de interpolación.
El filtro de interpolación de alisado puede incluir coeficientes de filtro para alisar píxeles de referencia de unidad de pel de valor entero, transformar los píxeles de referencia de unidad de pel de valor entero alisados mediante el uso de una pluralidad de funciones de base, y transformar de forma inversa una pluralidad de coeficientes generados como un resultado de transformación.
El filtro de interpolación de alisado es un filtro de interpolación en un dominio espacial, y puede incluir unos coeficientes de filtro que se obtienen mediante la combinación de un filtro de interpolación para realizar transformación y una transformación inversa, y un parámetro de alisado. El parámetro de alisado puede controlar al menos uno de una velocidad de alisado y un intervalo de alisado.
El filtro de interpolación de alisado puede incluir unos coeficientes de filtro basándose en una función de curva. Es decir, una función de base de transformación y una transformación inversa para determinar unos coeficientes de filtro de interpolación puede ser una función de curva. Con el fin de obtener un resultado de interpolación más liso, el filtro de interpolación de alisado puede incluir unos coeficientes de filtro determinados mediante el uso de una función de curva.
De acuerdo con un ejemplo, un filtro de interpolación de alisado basado en una función de curva puede incluir unos coeficientes de filtro para alisar muy fuertemente píxeles de referencia de unidad de pel de valor entero de límite basándose en una condición de límite de la función de curva.
De acuerdo con otro ejemplo, si una función de base de transformación y una transformación inversa es una función polinómica, un filtro de interpolación de alisado puede incluir unos coeficientes de filtro para maximizar una respuesta de baja frecuencia de un filtro de interpolación basándose en la función polinómica.
Un filtro de interpolación de alisado de acuerdo con un ejemplo puede incluir diferentes coeficientes de filtro basándose en una longitud de filtro así como una ubicación de interpolación de unidad de sub-pel y un alisamiento.
Asimismo, el filtro de interpolación de alisado puede incluir diferentes coeficientes de filtro basándose en un factor de puesta a escala de un resultado de interpolación así como una ubicación de interpolación de unidad de sub-pel, un alisamiento, y una longitud de filtro. El selector de filtro 12 puede seleccionar un filtro de interpolación de alisado que incluye unos coeficientes de filtro puestos a escala a números enteros. El interpolador 14 normaliza valores de píxel generados mediante el uso del filtro de interpolación de alisado seleccionado mediante el selector de filtro 12.
Asimismo, el selector de filtro 12 puede seleccionar de forma diferente un filtro de interpolación basándose en características de píxel. El interpolador 14 puede generar valores de píxel de unidad de sub-pel mediante el uso del filtro de interpolación seleccionado de forma diferente basándose en características de píxel.
El filtro de interpolación seleccionable por el selector de filtro 12 puede incluir un filtro de interpolación de alisado y un filtro de interpolación general que no considera alisado. Por lo tanto, basándose en características de imagen, el selector de filtro 12 puede seleccionar un filtro de interpolación general que no considera alisado en absoluto.
Por ejemplo, el aparato de interpolación de imagen 10 puede realizar una interpolación de imagen mediante el uso de diferentes filtros de interpolación de acuerdo con unas componentes de color.
Según otro ejemplo, el selector de filtro 12 puede seleccionar de forma diferente un filtro de interpolación basándose en la ubicación de interpolación de unidad de sub-pel y una componente de color de un píxel actual. De acuerdo con otro ejemplo, el interpolador 14 puede interpolar píxeles de unidad de pel de valor entero mediante el uso del filtro de interpolación seleccionado, generando de ese modo al menos un valor de píxel de unidad de sub-pel.
Por ejemplo, el selector de filtro 12 puede determinar de forma diferente un filtro de interpolación para una componente de luma y un filtro de interpolación para una componente de croma.
Con el fin de interpolar un píxel de croma, el selector de filtro 12 puede seleccionar un filtro de interpolación de alisado que tiene un alisamiento más fuerte que la de un filtro de interpolación para un píxel de luma.
Por ejemplo, con el fin interpolar un píxel de croma, se puede seleccionar un filtro de interpolación incluye unos coeficientes de filtro determinados basándose en una función de curva o un filtro de interpolación que incluye unos coeficientes de filtro determinados basándose en una función polinómica. Los coeficientes de filtro determinados basándose en una función de curva alisan muy fuertemente los píxeles de unidad de pel de valor entero de límite basándose en una condición de límite de la función de curva. El filtro de interpolación determinado basándose en una función polinómica puede incluir unos coeficientes de filtro para maximizar una respuesta de baja frecuencia.
Asimismo, con el fin interpolar un píxel de croma, se puede seleccionar un filtro de interpolación que incluye unos coeficientes de filtro determinados basándose en un parámetro de alisado que tiene un alisamiento más fuerte que el de un filtro de interpolación para un píxel de luma, un filtro de interpolación que incluye unos coeficientes de filtro combinados con una función de ventana para eliminar componentes de alta frecuencia y un filtro de interpolación para un píxel de luma.
Con el fin de obtener un resultado de interpolación liso de una componente de croma, se puede seleccionar una interpolación de alisado que se obtiene mediante la combinación de coeficientes de filtro para realizar transformación y una transformación inversa basándose en una pluralidad de funciones de base y coeficientes de función de ventana para realizar un filtrado de paso bajo.
Se usa interpolación de imagen para transformar una imagen de baja calidad en una imagen de alta calidad, para transformar una imagen entrelazada en una imagen progresiva, o para muestrear de forma ascendente una imagen de baja calidad en una imagen de alta calidad. Asimismo, cuando un aparato de codificación de vídeo codifica una imagen, un estimador de movimiento y un compensador pueden realizar una inter predicción mediante el uso de una trama de referencia interpolada. La precisión de inter predicción puede aumentar mediante la interpolación de una trama de referencia para generar una imagen de alta calidad, y realizar estimación y compensación del movimiento basándose en la imagen de alta calidad. De forma similar, cuando un aparato de descodificación de imagen descodifica una imagen, un compensador de movimiento puede realizar compensación de movimiento mediante el uso de una trama de referencia interpolada, aumentando de ese modo la precisión de la inter predicción.
Asimismo, el filtro de interpolación de alisado usado por el aparato de interpolación de imagen 10 puede obtener un resultado de interpolación liso o reducir los componentes de alta frecuencia en un resultado de interpolación usando un filtro de interpolación. Debido a que las componentes de alta frecuencia reducen la eficiencia de compresión de imagen, la eficiencia de codificación y de descodificación de imagen también se puede mejorar mediante la realización de una interpolación de imagen ajustable por alisamiento.
La figura 2 es un diagrama para describir una relación entre una unidad de pel de valor entero y una unidad de sub-pel.
Haciendo referencia a la figura 2, el aparato de interpolación de imagen 10 genera valores de píxel de ubicaciones 'X' mediante la interpolación de valores de píxel de unidad de pel de valor entero de ubicaciones 'O' de un bloque previamente determinado 20 en un dominio espacial. Los valores de píxel de las ubicaciones 'X' son valores de píxel de unidad de sub-pel de ubicaciones de interpolación determinadas por ax y ay. A pesar de que la figura 2 ilustra que el bloque previamente determinado 20 es un bloque 4 x 4, un experto en la técnica entenderá fácilmente que el tamaño de bloque no está limitado a 4 x 4 y puede ser mayor o menor que 4 x 4.
En el procesamiento de vídeo, se usa un vector de movimiento para realizar compensación de movimiento y predicción en una imagen actual. Basándose en la codificación por predicción, se hace referencia a una imagen previamente descodificada para predecir una imagen actual, y un vector de movimiento indica un punto previamente determinado de una imagen de referencia. Por lo tanto, un vector de movimiento indica un píxel de unidad de pel de valor entero de una imagen de referencia.
No obstante, un píxel al que hará referencia una imagen actual se puede ubicar entre píxeles de unidad de pel de valor entero de una imagen de referencia. Tal ubicación se denomina una ubicación de unidad de sub-pel. Debido a que un píxel no existe en una ubicación de unidad de sub-pel, simplemente se predice un valor de píxel de unidad de sub-pel mediante el uso de valores de píxel de unidad de pel de valor entero. Dicho de otra forma, se estima un valor de píxel de unidad de sub-pel mediante la interpolación de píxeles de unidad de pel de valor entero.
A continuación se describirá un procedimiento de interpolación de píxeles de unidad de pel de valor entero en detalle con referencia a las figuras 3 y 4A a 4C.
La figura 3 es un diagrama que ilustra píxeles de unidad de pel de valor entero adyacentes a los que se hará referencia para determinar un valor de píxel de unidad de sub-pel.
Haciendo referencia a la figura 3, el aparato de interpolación de imagen 10 genera un valor de píxel de unidad de sub-pel 35 de una ubicación de interpolación mediante la interpolación de valores de píxel de unidad de pel de valor entero 31 y 33 en un dominio espacial. La ubicación de interpolación se determina por a.
Las figuras 4A a 4C son unos diagramas que ilustran ejemplos de píxeles de unidad de pel de valor entero a los que se hará referencia para determinar un valor de píxel de unidad de sub-pel.
Haciendo referencia a la figura 4A, con el fin de generar el valor de píxel de unidad de sub-pel 35 mediante la interpolación de los valores de píxel de unidad de pel de valor entero 31 y 33, se usa una pluralidad de valores de unidad de pel de valor entero adyacentes 37 y 39 incluyendo los valores de píxel de unidad de pel de valor entero 31 y 33. Dicho de otra forma, los 0-ésimo y 1er píxeles se pueden interpolar mediante la realización de un filtrado de interpolación unidimensional en valores de píxel 2M desde un valor de píxel -(M - 1)-ésimo hasta un valor de píxel M-ésimo.
Asimismo, a pesar de que la figura 4A ilustra que los valores de píxel en una dirección horizontal se interpolan, el filtrado de interpolación unidimensional se puede realizar mediante el uso de valores de píxel en una dirección vertical o diagonal.
Haciendo referencia a la figura 4B, un valor de píxel P(a) de una ubicación de interpolaciónase puede generar mediante la interpolación de píxeles P<0>41 y P<1>43 que son adyacentes entre sí en una dirección vertical. Cuando las figuras 4A y 4B se comparan, sus procedimientos de filtrado de interpolación son similares y la única diferencia entre ellos es que los valores de píxel 47 y 49 alineados en una dirección vertical se interpolan en la figura 4B mientras los valores de píxel 37 y 39 alineados en una dirección vertical se interpolan en la figura 4A.
Haciendo referencia a la figura 4C, de forma similar, un valor de píxel 44 de la ubicación de interpolaciónase genera mediante la interpolación de los valores de píxel adyacentes 40 y 42. La única diferencia de la figura 4A es que los valores de píxel 46 y 48 alineados en una dirección diagonal se usan en lugar de los valores de píxel 37 y 39 alineados en una dirección horizontal.
Además de las direcciones mostradas en las figuras 4A a 4C, se puede realizar un filtrado de interpolación unidimensional en distintas direcciones.
El filtrado de interpolación se puede realizar para interpolar píxeles de unidad de pel de valor entero para generar un valor de píxel de unidad de sub-pel. El filtrado de interpolación se puede representar mediante la siguiente ecuación.
Un valor de píxel p(x) se genera mediante la realización de una interpolación basada en un producto escalar de un vector p de 2M píxeles de referencia de unidad de pel de valor entero {pm}={p-M<+1>, p-M+<2>, ..., p<0>, p<1>, ...,<pm>} y un vector f(x) de coeficientes de filtro {fm}={f-M<+1>, f-M<+2>, ..., f<0>, f<1>, ..., fM}. Dado que el coeficiente de filtro f(a) varía según la ubicación de interpolaciónay un valor de píxel p(a) que se obtiene mediante la realización de una interpolación se determina basándose en el coeficiente de filtro f(a), un filtro de interpolación seleccionado, es decir, el coeficiente de filtro determinado f(x), influye ampliamente sobre el desempeño de filtrado de interpolación.
La interpolación de imagen que usa transformación y una transformación inversa basada en unas funciones de base, y un procedimiento para determinar un filtro de interpolación se describirán a continuación en detalle.
Un filtro de interpolación que usa transformación y una transformación inversa transforma inicialmente valores de píxel mediante el uso de una pluralidad de funciones de base que tienen diferentes componentes de frecuencia. La transformación puede incluir todo tipo de transformación de valores de píxel en un dominio espacial en coeficientes en un dominio de transformación, y puede ser Transformación de Coseno Discreta (DCT,discrete cosine transformaron).Los valores de píxel de unidad de pel de valor entero se transforman mediante el uso de una pluralidad de funciones de base. Un valor de píxel puede ser un valor de píxel de luma o un valor de píxel de croma. Las funciones de base no están limitadas a funciones de base particulares y pueden incluir todas las funciones de base para transformar valores de píxel en un dominio espacial en valores de píxel en un dominio de transformación. Por ejemplo, una función de base puede ser una función coseno o seno para realizar una DCT y DCT inversa (IDCT,inverse DCT).Como alternativa, se pueden usar distintas funciones de base tal como una función de curva y una función polinómica. Asimismo, la DCT puede ser DCT modificada (MDCT,modified DCT)o<m>D<c>T sin ventanas.
El filtro de interpolación que usa transformación y una transformación inversa desplaza las fases de las funciones de base usadas para realizar transformación y transforma de forma inversa valores de una pluralidad de coeficientes generados mediante el uso de las funciones de base desfasada, es decir, los valores en un dominio de transformación. Como un resultado de transformación inversa, se envían los valores de píxel en un dominio espacial y los valores enviados pueden ser valores de píxel de una ubicación de interpolación.
<Coeficientes de filtro usando una transformación ortogonal y una transformación inversa basadas en funciones de base ortogonal>
Se describirá a continuación en detalle un caso en el que el interpolador 14 realiza un filtrado de interpolación usando una transformación y una transformación inversa basadas en funciones de base ortogonal. En concreto, la DCT se describe como un ejemplo de la transformación.
Por ejemplo, haciendo referencia a la figura 4A, con el fin de generar el valor de píxel de unidad de subpel 35 mediante la interpolación de los dos valores de píxel de unidad de pel de valor entero 31 y 33, mediante el uso de una pluralidad de valores de píxeles de unidad de pel de valor entero adyacentes 37 y 39 incluyendo los valores de píxel de unidad de pel de valor entero 31 y 33, el 0-ésimo y 1er píxeles se pueden interpolar mediante la realización de una DCT unidimensional en 2M valores de píxel desde un valor de píxel -(M - 1) hasta valor de píxel M-ésimo, y mediante la realización de una IDCT unidimensional basada en funciones de base desfasada.
El interpolador 14 realiza inicialmente una DCT unidimensional en valores de píxel de unidad de pel de valor entero. La DCT unidimensional se puede realizar tal como se representa en la Ecuación 1.
[Ecuación 1]
0< k< 2M — 1
p(l) representa los valores de píxel 37 y 39 desde un valor de píxel -(M - 1) hasta un valor de píxel M-ésimo, y Ck representa una pluralidad de coeficientes en un dominio de frecuencia, que se genera mediante la realización de una DCT unidimensional en los valores de píxel 37 y 39. En este caso, k es un número entero positivo que satisface la condición anterior de la Ecuación 1.
Después de que se realice una DCT unidimensional sobre los valores de píxel 37 y 39 mediante el uso de la Ecuación 1, el interpolador 14 realiza transformación inversa sobre los coeficientes tal como se representa la Ecuación 2.
[Ecuación 2]
arepresenta una ubicación de interpolación entre dos valores de píxel tal como se ilustra en la figura 13, y puede tener distintos valores fraccionarios tales como 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, etc. El valor fraccionario no está limitado a un valor particular, yapuede ser un valor real en lugar de un valor fraccionario. P(a) representa el valor de píxel de unidad de sub-pel 35 de la ubicación de interpolación a, que se genera como un resultado de IDCT unidimensional.
Cuando la Ecuación 2 se compara con la Ecuación 1, la fase de una función coseno que es una función de base usada para realizar una IDCT se determina basándose en un número fraccionarioaen lugar de un número entero l, y de esa forma es diferente de la fase de una función de base usada para realizar una DCT unidimensional. Dicho de otra forma, la fase de cada función de base usada para realizar transformación inversa, es decir, una función coseno, se desfasa a base de 2a. Si el interpolador 14 realiza IDCT basándose en las funciones coseno desfasadas según la Ecuación 2, se genera el valor de píxel de unidad de sub-pel 35 de la ubicación de interpolación a, es decir, P(a).
La DCT según la Ecuación 1 se expresa por una ecuación de matriz representada en la Ecuación 3.
[Ecuación 3]
C = D x REF
En el presente caso, C es una matriz 2M x 1 de los coeficientes 2M que se han descrito en lo que antecede en relación con la Ecuación 1, y REF es una matriz 2M x 1 de los valores de píxel de unidad de pel de valor entero, es decir, los valores de píxel P-(<m>-<1>), ... P<m>, tal como se ha descrito en lo que antecede en relación con la Ecuación 1. El número de valores de píxel de unidad de pel de valor entero usados para realizar una interpolación, es decir, 2M, se refiere al número de tomas de un filtro de interpolación unidimensional. D es una matriz cuadrada para realizar una DCT unidimensional y se puede definir tal como se representa en la Ecuación 4.
[Ecuación 4]
k y I son números enteros que satisfacen las condiciones anteriores, y Dki se refiere a un fila k y una columna l de la matriz cuadrada D para realizar una DCT en la Ecuación 3. M es igual que en la Ecuación 3.
IDCT usando una pluralidad de funciones de base desfasadas según la Ecuación 2 se expresa por una ecuación de matriz representada en la Ecuación 5.
[Ecuación 5]
En el presente caso, P(a) es igual que en la Ecuación 2, y W(a) es una matriz 1 x 2M para realizar una IDCT unidimensional mediante el uso de una pluralidad de funciones de base desfasadas y se pueden definir tal como se representa la Ecuación 6.
[Ecuación 6]
W Í,(a )=£E
1 < k< 2M— 1
k es un número entero que satisface la condición anterior, y Wk(a) se refiere a una columna k de la matriz W(a) que se ha descrito en lo que antecede en relación con la Ecuación 5. Un filtro F(a) para realizar una DCT unidimensional e IDC<t>unidimensional usando una pluralidad de funciones de base desfasadas según las Ecuaciones 3 y 5 se puede definir tal como se representa en la Ecuación 7.
[Ecuación 7]
k y I son números enteros que satisfacen las condiciones anteriores, Fl(a) se refiere a una columna l de F(a) y W(a) y D son iguales que los de la Ecuación 3.
Con el fin de generar valores de píxel de unidad de sub-pel más fuertemente alisados, el interpolador 14 puede cambiar un filtro de interpolación usado para realizar transformación y una transformación inversa basándose en una función de base.
Un caso en el que se usa una función de ventana, un caso en el que se usa una pluralidad de parámetros de alisado, un caso en el que se usa una función de curva como una función de base, y un caso en el que se usa una función polinómica como una función de base para determinar distintos filtros de interpolación de alisado se describirán a continuación de forma secuencial en detalle.
<Filtro de interpolación de alisado usando una función de ventana>
Se describirá a continuación en detalle un procedimiento para alisar unos coeficientes de filtro de interpolación mediante el uso de una función de ventana.
Una función de ventana puede incluir una función de ventana de Hamming, una función de ventana de coseno, una función de ventana exponencial, una función de ventana de Hanning, una función de ventana de Blackman, y una función de ventana de triángulo. A pesar de que se describirán a continuación casos en los que los filtros de interpolación basándose en transformación y una transformación inversa se alisan mediante el uso de ciertas funciones de ventana para conveniencia de explicación, un experto en la técnica entenderá fácilmente que, además de las funciones de ventana descritas, también se pueden usar otras funciones de ventana que tienen respuestas de frecuencias similares.
Los coeficientes de ventana basados en una función de ventana de Hamming satisfacen la Ecuación 24.
[Ecuación 8]
En varias funciones de ventana incluyendo la función de ventana de Hamming, una entrada n es simétrica con referencia a N/2 y una respuesta de frecuencia es similar a la de un filtro de paso bajo. De entre entradas de una función de ventana, solo una entrada cubierta por una ventana formada mediante la función de ventana se puede enviar. Un tamaño de ventana N se puede establecer como un número entero positivo mayor que la longitud de un filtro de interpolación original. Por ejemplo, con el fin de filtrar una función de ventana un filtro de interpolación para generar un píxel de unidad de sub-pel tal como 1/2 o 1/4 píxel, la ubicación central de la función de ventana se puede mover en 1/2 o 1/4 píxel, es decir, debido a que la ubicación central de la función de ventana se mueve a una ubicación de interpolación, la función de ventana puede ser simétrica con respecto a la ubicación de interpolación.
Por ejemplo, las Ecuaciones 9 y 10 muestran, respectivamente, unos coeficientes de ventana de las funciones de ventana de Hamming para los filtros de interpolación de unidad de 1/2 de pel y de unidad de 1/4 de pel, respectivamente.
[Ecuación 9]
[Ecuación 10]
La Ecuación 11 muestra de forma secuencial coeficientes de ventana de una función de ventana de Hamming, una función de ventana de coseno, y una función de ventana exponencial como funciones de ventana para filtros de interpolación, que se generalizan basándose en una ubicación de interpolación de unidad de sub-pel a.
[Ecuación 11]
wa=exp—¡3(a — ro)J
Mediante la combinación de los coeficientes de ventana según la Ecuación 11 con un filtro de interpolación original fk(a), los coeficientes de filtro de interpolación de alisado se pueden determinar de acuerdo con la Ecuación 12.
[Ecuación 12]
f k = f k ( < * ) wA k ) t
k = —M 1, M
Debido a que se determina un filtro de interpolación de alisado mediante el uso de una función de ventana, se puede ajustar una ponderación de un coeficiente de filtro de interpolación basándose en la distancia entre un píxel de referencia de unidad de pel de valor entero y una ubicación de interpolación. Por ejemplo, se puede determinar un filtro de interpolación de alisado de tal forma que, mediante una función de ventana, de entre los coeficientes de filtro de un filtro de interpolación, un coeficiente de filtro para un píxel de referencia de unidad de pel de valor entero ubicado lejos de una ubicación de interpolación cambia demasiado un coeficiente de filtro de un píxel de referencia de unidad de pel de valor entero ubicado cerca de la ubicación de interpolación no cambia demasiado.
Asimismo, si se determina un filtro de interpolación de alisado al usar una función de ventana, se puede realizar un filtrado de interpolación después de que se alisen los píxeles de referencia de unidad de pel de valor entero. Los píxeles de referencia de unidad de pel de valor entero introducidos Ref={p-M<+1>, p-<m>+<2>, ..., p<0>, p<1>, ...,<pm>} pueden incluir ruido o se pueden dañar debido a un error tal como un error de cuantificación. En ese sentido, si se alisan los píxeles de referencia de unidad de pel de valor entero antes de que se realice un filtrado de interpolación, el aparato de interpolación de imagen 10 puede mejorar un efecto de interpolación.
<Filtro de interpolación de alisado usando dos parámetros>
Un filtro de interpolación de alisado puede determinar el alisamiento de coeficientes de filtro basándose en dos parámetros. Los coeficientes de filtro de interpolación de alisado de unidad de sub-pel que se obtienen mediante la combinación de una matriz de alisado S y coeficientes de filtro de interpolación basándose en transformación y una transformación inversa satisfacen la Ecuación 13.
[Ecuación 13]
La Ecuación 14 muestra un ejemplo de la matriz de alisado S.
[Ecuación 14]
La matriz de alisado S de acuerdo con la Ecuación 14 es una matriz de 3 diagonales. Dicho de otra forma, de entre las componentes de la matriz de alisado S, las componentes diferentes a las componentes sobre una línea central y dos líneas diagonales correspondientes entre sí y adyacentes a la línea central son todos 0.
En la matriz de alisado S, un alisamiento a¡ se puede determinar sin importar la distancia (i - a) con respecto a los píxeles de unidad de pel de valor entero que se van a interpolar. En este caso, el alisado basándose en la matriz de alisado S se puede denominar alisado uniforme.
Asimismo, la matriz de alisado S, el alisamiento<ct>¡ puede variar basándose en un índice l de una ubicación de píxel de unidad de pel de valor entero. En este caso, el alisado basándose en la matriz de alisado S se puede denominar como alisado no uniforme. Por ejemplo, el alisado ct¡ puede satisfacer la Ecuación 15.
[Ecuación 15]
Un índice positivo l puede aumentar un efecto de alisado si la distancia entre una ubicación de interpolación y un píxel de referencia de unidad de pel de valor entero es grande. Por consiguiente, el índice positivo l puede controlar la velocidad de alisado basándose en la distancia entre una ubicación de interpolación y un píxel de referencia de unidad de pel de valor entero. Un parámetro de alisado p puede controlar el intervalo de alisado alrededor de una ubicación de interpolación.
Si el parámetro de alisado p es menor que 0, la matriz de alisado S según la Ecuación 13 se puede cambiar a un filtro de acentuación. Por consiguiente, si la matriz de alisado S que es menor que 0 se combina con un filtro de interpolación usando una transformación y una transformación inversa, se puede generar un filtro para amplificar componentes de alta frecuencia.
Con el fin de realizar predicción de unidad de sub-pel, el aparato de interpolación de imagen 10 puede usar datos de coeficiente de filtro de interpolación de alisado previamente almacenados en la memoria.
La figura 5 es una gráfica 50 de un factor de alisado basado en un parámetro de alisado p de un filtro de interpolación de alisado.
Las primeras y segundas curvas 52 y 54 muestran un factor de alisado para alisar un filtro de interpolación basado en una transformación discreta. Si m es grande, es decir, si la distancia desde los píxeles de unidad de pel de valor entero que se van a interpolar aumenta, el factor de alisado está cerca de 0.
En el presente caso, en comparación con la segunda curva 54 en un caso en el que el parámetro de alisado p es grande, la primera curva 52 en un caso en el que el parámetro de alisado p es pequeño tiene un ancho relativamente grande del factor de alisado. Dicho de otra forma, si el parámetro de alisado es p del filtro de interpolación de alisado es grande, se pueden filtrar principalmente componentes de baja frecuencia y, por lo tanto, se pueden generar valores de píxel de unidad de sub-pel relativamente alisados fuertemente. Si el parámetro de alisado p del filtro de interpolación de alisado es relativamente pequeño, las componentes de frecuencia relativamente alta pueden permanecer e interpolarse y, por lo tanto, se pueden generar valores de píxel de unidad de sub-pel.
Con el fin de determinar unos coeficientes de filtro de un tipo de interpolación de alisado, el aparato de interpolación de imagen 10 puede usar una función de curva o una función polinómica, una función de base así como una función de base ortogonal.
<Filtro de interpolación de alisado basado en función de curva>
El aparato de interpolación de imagen 10 puede determinar unos coeficientes de filtro de un filtro de interpolación de alisado basándose en una función de curva.
Asimismo, con el fin de alisar un resultado de interpolación, el aparato de interpolación de imagen 10 puede usar una función de curva que tiene una condición de límite. En más detalle, por ejemplo, si la interpolación de curva polinómica que tiene una variable p se usa para formar un filtro de interpolación usando M píxeles de unidad de pel de valor entero pm (M es un número entero igual a o mayor que 2), con el fin de permitir que la variable p tenga un alisamiento máximo en un intervalo de 3<p<M+1 y para permitir que un valor de curva, es decir, un valor de resultado de interpolación se pueda alisar infinitamente en un píxel (-M 2)-ésimo y un píxel (M - 1)-ésimo, se pueden establecer condiciones adicionales de (p -1). Estas condiciones adicionales se denominan condiciones de límite no de nudo o condiciones de límite de de Boor.
Un resultado de interpolación que usa coeficientes de filtro de interpolación basados en una función de curva se puede representar como una suma ponderada calculada mediante el uso de la Ecuación 16.
[Ecuación 16]
M
s (x )= Ep J J x )
- M+ 1
Los píxeles de entrada pm son píxeles de referencia de unidad de pel de valor entero, y un grupo {pm} de píxeles de entrada en el que el intervalo de m es [-M 1, M] (es decir, -M+1<m<M) ingresa. Una función de curva S(x) se corresponde con los valores de píxel generados como un resultado de interpolación. fm(x) es un interpolante de curva cardinal y se corresponde con coeficientes de filtro basándose en una función de curva cardinal. fm(x) pueden ser valores de función de curva cardinal que tienen la misma condición de límite y tienen valores solo en ubicaciones de píxel de referencia de unidad de pel de valor entero (es decir, -M+1<m<M, m es un número entero).
El coeficiente de filtro fm(x) se puede determinar mediante el uso de la Ecuación 17.
[Ecuación 17]
z — x M —1 —k
Cuando k es un número entero en un intervalo de 0 < k < 2M-2, con el coeficiente de filtro de curva fm(x) se puede determinar en cada número entero m en un intervalo de [-M+1+k, -M+k+2], es decir, desde ( i
M+1+k) hasta (-M+k+2). En la Ecuación 17, se puede determinar un coeficiente basándose en la Ecuación 18.
[Ecuación 18]
Para interpolación de unidad de sub-pel, un filtro de respuesta de impulso finito (FIR,finite impulse response)que incluye unos coeficientes de filtro de curva fm(a) de acuerdo con una ubicación de interpolaciónase puede calcular y almacenar previamente, y un valor de píxel de unidad de sub-pel en una ubicación de interpolación a entre un 0-ésimo píxel y un primer píxel se puede generar mediante la realización de un filtrado de interpolación usando el filtro FIR incluyendo los coeficientes de filtro de curva fm(a) sobre el píxel de referencia de unidad de pel de valor entero pm.
La figura 6 es una gráfica de una función de curva 60 que se puede usar mediante un filtro de interpolación de alisado.
Haciendo referencia a la figura 6, basada en una función de curva que tiene una variable p de 3, se ilustran tres curvas interpolantes de curva f<-2>(x) 61, f<-1>(x) 62 y fo(x) 63 para 2M=6, es decir, un filtro de interpolación de 6 tomas. Por ejemplo, los coeficientes de filtro de interpolación para generar valores de píxel de unidad de sub-pel que satisfacen a=1/4 se pueden determinar como f-2(1/4) 64, f-i(1/4) 65 y fo(1/4) 66 sobre las curvas interpolantes de curva f<-2>(x) 61, f<-1>(x) 62 y fo(x) 63.
<Filtro de interpolación de alisado basándose en una función polinómica>
El aparato de interpolación de imagen 10 puede determinar unos coeficientes de filtro de un filtro de interpolación alisado basándose en una función polinómica.
Una función de interpolación polinómica que incluye unos coeficientes de filtro de interpolación {fk} basándose en una función polinómica se puede representar basándose en una función polinómica como una función de base mediante el uso de la Ecuación 19. El número entero k se define dentro de un intervalo de -M+1 < k < M.
[Ecuación 19]
Asimismo, con el fin de alisar un resultado de interpolación, el aparato de interpolación de imagen 10 puede determinar unos coeficientes de filtro optimizados a una banda de baja frecuencia de entre los coeficientes de filtro de interpolación {fk} basándose en una función polinómica. Por ejemplo, si una frecuencia o es 0, los coeficientes de filtro {fk} determinados cuando un valor de función de una función de interpolación polinómica y unos valores de función de derivadas de la función de interpolación polinómica son iguales, se pueden determinar como coeficientes de filtro de interpolación optimizados a una banda de baja frecuencia. En ese sentido, tal como se representa en la Ecuación 20, como una función para el número entero k, se pueden obtener 2M funciones lineales para 2M coeficientes de filtro {fk} (2M es una incógnita).
[Ecuación 20]
Las soluciones de las funciones lineales de la Ecuación 20 se pueden calcular mediante el uso de una función polinómica de Newton. La Ecuación 21 representa 2M coeficientes de filtro {fk} calculadas como soluciones de las funciones lineales de la Ecuación 20.
[Ecuación 21]
Un filtro de interpolación incluyendo los coeficientes de filtro {fk} determinados basándose en la función polinómica de Newton de las ecuaciones 20 y 21 tiene una respuesta máxima a una banda de baja frecuencia, un resultado de interpolación más fuertemente alisado se puede obtener mediante el uso de valores de píxel usando este filtro de interpolación. Por consiguiente, un filtro de interpolación que incluye unos coeficientes de filtro determinados basándose en una función polinómica como una función de base se puede seleccionar como un filtro de interpolación de alisado.
En ese sentido, el aparato de interpolación de imagen 10 puede generar píxeles de interpolación más fuertemente alisados al seleccionar un filtro de interpolación alisado que incluye unos coeficientes de filtro de interpolación basados en una función polinómica. En particular, debido a que los píxeles de croma tienen componentes de alta frecuencia fuertes, con el fin de generar valores de píxel de unidad de sub-pel de píxeles de unidad de pel de valor entero de croma, se puede usar un filtro de interpolación de alisado que incluye unos coeficientes de filtro de interpolación basados en una función polinómica.
<Coeficientes de filtro de interpolación para interpolación puesta a escala>
Varios procedimientos de generación de filtro de interpolación de alisado según los ejemplos se basan en una expresión aritmética para generar un número de punto flotante en lugar de un número entero, y los valores absolutos de los coeficientes de filtro por lo general no son mayores que 1. En concreto, un resultado de cálculo de un número real en lugar de un número entero se puede generar mediante una ubicación de interpolación de unidad de sub-pel a.
La eficiencia del cálculo basándose en un número entero es mayor que la del cálculo basándose en punto flotante. En ese sentido, el aparato de interpolación de imagen 10 puede mejorar la eficiencia de cálculo del filtrado de interpolación al poner a escala coeficientes de filtro de números enteros mediante el uso de un factor de puesta a escala. Asimismo, debido a que aumenta una profundidad de bits de valores de píxel, también puede mejorar la precisión de filtrado de interpolación.
El aparato de interpolación de imagen 10 puede multiplicar unos coeficientes de filtro fm(a) por un valor previamente determinado, y puede realizar una interpolación de imagen mediante el uso de coeficientes de filtro grandes Fm(a). Por ejemplo, los coeficientes de filtro Fm(a) se pueden poner a escala desde los coeficientes de filtro fm(a) tal como se representa en la Ecuación 22.
[Ecuación 22]
Para eficiencia de cálculo, el factor de puesta a escala puede ser en la forma de 2n. n puede ser 0 o un número entero positivo. Un resultado de filtrado de interpolación usando coeficientes de filtro puestos a escala por 2n puede tener una profundidad de bits puesta a escala por n bits en comparación con un resultado que se obtiene mediante el uso de coeficientes de filtro originales.
El filtrado de interpolación de cálculo de valor entero usando los coeficientes de filtro puestos a escala Fm(a) puede satisfacer la Ecuación 23. Dicho de otra forma, después de que se realice un filtrado de interpolación mediante el uso de los coeficientes de filtro puestos a escala Fm(a), la profundidad de bits de puesta a escala tiene que reconstruirse a una profundidad de bits original.
[Ecuación 23]
En este caso, un desplazamiento puede ser 2n-1.
Dicho de otra forma, debido a que un resultado de filtrado puesto a escala usando un filtro de interpolación de alisado puesto a escala de ese modo tiene que reducirse mediante un factor de puesta a escala, es decir, 2n, para ser reconstruido a los bits originales, una profundidad de bits del resultado de filtrado puesto a escala se puede reducir en n bits.
Si el filtrado de interpolación en dos etapas se lleva a cabo mediante la realización de un filtrado de interpolación unidimensional en una dirección horizontal y mediante la realización de un filtrado de interpolación unidimensional en una dirección vertical, se puede hacer una reducción por un total de 2n bits. Por consiguiente, si se pone a escala un filtro de interpolación unidimensional por n1 bits y un segundo filtro de interpolación unidimensional se pone a escala por 2n bits, después de que se realice el filtrado de interpolación en dos etapas mediante el uso del primer y el segundo filtros de interpolación unidimensionales, se puede hacer una reducción por una suma de n1 y n2, es decir, 2n bits. El primer filtro de interpolación unidimensional puede ser un filtro de interpolación que no está puesto a escala.
Dado que una suma de los coeficientes de filtro de alisado fm(a) es 1,
[Ecuación 24]
M
^ f j n ia ) = 1
Una condición para normalizar los coeficientes de filtro de alisado puestos a escala Fm(a) del filtro de interpolación puesto a escala necesita satisfacer la Ecuación 25.
[Ecuación 25]
M
£ F in ( « ) = zB
-M l
No obstante, la condición de normalización según la Ecuación 25 puede causar un error de redondeo. El aparato de interpolación de imagen 10 puede redondear los coeficientes de filtro puestos a escala Fm(a) basándose en la condición de normalización según la Ecuación 19. Para normalización, algunos de los coeficientes de filtro puestos a escala Fm(a) se pueden ajustar dentro de un intervalo previamente determinado de valores originales. Por ejemplo, algunos de los coeficientes de filtro puestos a escala Fm(a) se pueden ajustar dentro de un intervalo de ± 1 con el fin de corregir un error de redondeo.
Varios filtros de interpolación de alisado y coeficientes de filtro se han descrito en lo que antecede. En concreto, como una función para determinar unos coeficientes de filtro de un filtro de interpolación de alisado, se puede usar una función de ventana, una función de curva, una función polinómica, etc. Para un filtro de interpolación de alisado, una respuesta de frecuencia de una función puede variar basándose en una frecuencia pero una ganancia de filtro de la respuesta de frecuencia de la función puede estar cerca de 1. Por consiguiente, el aparato de interpolación de imagen 10 puede determinar unos coeficientes de filtro mediante el uso de una función que tiene una ganancia de filtro de la cual una respuesta de frecuencia está más cerca de 1 incluso cuando una frecuencia varía, y puede seleccionar un filtro de interpolación de alisado que incluye los coeficientes de filtro.
La figura 7 es un diagrama de flujo de un procedimiento de interpolación de imagen de acuerdo con un ejemplo.
En la operación 71, un filtro de interpolación se selecciona de forma diferente basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento de entre los filtros de interpolación para generar al menos un valor de píxel de unidad de sub-pel ubicado entre píxeles de unidad de pel de valor entero de una imagen. Un alisamiento del filtro de interpolación se puede determinar basándose en una distancia entre una ubicación de interpolación y unas unidades de pel de valor entero.
Un filtro de interpolación según un ejemplo puede ser un filtro que incluye unos coeficientes de filtro para realizar transformación y una transformación de inversa basándose en una pluralidad de funciones de base. Un filtro de interpolación de alisado de acuerdo con una realización puede incluir al menos uno de un filtro de interpolación combinado con una función de ventana, un filtro de interpolación basado en una pluralidad de parámetros de alisado, un filtro de interpolación basado en un parámetro de alisado, un filtro de interpolación de curva, y un filtro de interpolación de función polinómica.
Con el fin de realizar un filtrado mediante el uso de un filtro de interpolación de alisado, los coeficientes de filtro se pueden determinar para alisar más fuertemente píxeles de referencia de unidad de pel de valor entero lejos de una ubicación de interpolación.
En la operación 73, al menos un valor de píxel de unidad de sub-pel se genera mediante la interpolación de valores de píxel de los píxeles de unidad de pel de valor entero mediante el uso del filtro de interpolación seleccionado en la operación 71.
De entre los filtros de interpolación, si se selecciona un filtro de interpolación que incluye unos coeficientes de filtro puestos a escala a números enteros, los valores de píxel generados mediante el uso del filtro de interpolación se pueden normalizar basándose en un factor de puesta a escala.
De acuerdo con un ejemplo, un filtro de interpolación se puede seleccionar de forma diferente basándose en características de píxeles que se van a interpolar, y los valores de píxel de unidad de sub-pel se pueden generar mediante el uso del filtro de interpolación seleccionado.
Varios ejemplos de coeficientes de filtro, de un filtro de interpolación determinado en consideración de una ubicación de interpolación de unidad de sub-pel y un alisamiento se describirán a continuación con referencia a las figuras 8A a 12C.
Las figuras 8A a 8C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolación de 12 tomas determinados basándose en un parámetro de alisado y una ubicación de interpolación, de acuerdo con los ejemplos.
Haciendo referencia a las figuras 8A a 8C, de entre los filtros de interpolación que se han descrito en lo que antecede basados en transformación ortogonal, con el fin de realizar una transformación ortogonal y una transformación inversa después de alisar los píxeles de referencia de unidad de pel de valor entero tal como se ha descrito en lo que antecede en relación con la figura 5, se muestran los coeficientes de filtro de un filtro de interpolación de alisado que se obtiene mediante la combinación de una matriz de alisado y un filtro de interpolación basado en una transformación ortogonal.
Las figuras 8A a 8C muestran varios filtros de interpolación incluyendo diferentes coeficientes de filtro a medida que un parámetro de alisado p varía entre 0, 0,002, 0,004, 0,006, 0,008, 0,010, 0,012, 0,014, 0,016, 0,018 y 0,020, y una ubicación de interpolación a varía entre 1/8, 1/4, 3/8, 1/2, 5/8, 3/4 y 7/8.
Por ejemplo, en la tabla de la figura 8A, si un parámetro de alisado p es 0,002 y la ubicación de interpolaciónaes 1/8, un filtro que incluye unos coeficientes de filtro {fm}, por ejemplo, {f<-11>, f<-10>, f-9, f-8, f-<7>, f-6, f-5, f-4, f-3, f<-2>, f<-1>, f<0>, f<1>, f<2>, f3, f4, fs, f6, f7, f8, f9, f<10>, fu, f<12>}, determinados como {-1, 4, -7, 12, -24, 246, 37, -16, 9, -5, 3, -1} se puede seleccionar como un filtro de interpolación.
Las figuras 9A a 9C son unas tablas que muestran unos coeficientes de filtro de unos filtros de interpolación de 6 tomas determinados basándose en un parámetro de alisado y una ubicación de interpolación, según los ejemplos.
A pesar de que los coeficientes de filtro de las figuras 8A a 8C son 12 coeficientes de filtro de un filtro de interpolación de 12 tomas de entre los filtros de interpolación de alisado que se obtienen mediante la combinación de una matriz de alisado y un filtro de interpolación de transformación ortogonal, las figuras 9A a 9C muestran seis coeficientes de filtro de un filtro de interpolación de 6 tomas. En las figuras 8A a 8C, y 9A a 9C, se pueden mostrar varios filtros de interpolación de alisado que incluyen diferentes coeficientes de filtro basándose en los parámetros de alisado p y la ubicación de interpolación a.
Los coeficientes de filtro mostrados en las figuras 8A a 8C, y 9A a 9C son coeficientes puestos a escala en un factor de puesta a escala de 256 (= 28) basados en un filtrado de interpolación de puesta a escala y después redondeados.
En las figuras 8A a 8C, y 9A a 9C, cuando la ubicación de interpolación a es constante y aumenta el parámetro de alisado p, un coeficiente de filtro fm puede ser relativamente pequeño.
Asimismo, cuando el parámetro de alisado p es constante y la ubicación de interpolaciónaestá lejos de 1/2, si m del coeficiente de filtro fm está lejos de m = 0 hacia m = -M 1 o m = M, el coeficiente de filtro fm puede ser relativamente pequeño en comparación con f0. Un coeficiente de filtro fm cercano a m = 0 puede ser relativamente grande.
Por consiguiente, cuando aumenta el parámetro de alisado p, si la ubicación de interpolaciónaestá lejos de 1/2, es decir, cerca de un píxel de unidad de valor entero, se puede seleccionar un filtro de interpolación más acentuado, es decir, un filtro de interpolación menos alisado.
Debido a que un filtro de interpolación según un ejemplo es un filtro simétrico de reflector de espejo, un coeficiente de filtro fm(a) de una ubicación de interpolación (1 - a) se puede determinar mediante el uso del coeficiente de filtro. fm(a) de la ubicación de interpolación a. Por ejemplo, en la figura 9A, de entre los coeficientes de filtro {fm} que tienen el parámetro de alisado p = 0,002, los coeficientes de filtro {fm(3/8)} de la ubicación de interpolacióna= 3/8 y coeficientes de filtro {fm(5/8)} de la ubicación de interpolacióna= 1 - 3/8 = 5/8 se comparan tal como se muestra a continuación.
{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 de filtro {fm(3/8)} cuando m = -2, -1, 0 son iguales que los coeficientes de filtro {fm(5/8)} cuando m = 3, 2, 1, y los coeficientes de filtro {fm(3/8)} cuando m = 3, 2, 1 son igual que los coeficientes de filtro {fm(5/8)} cuando m = -2, -1, 0. Por consiguiente, en las tablas de las figuras 10 a 12C, a pesar de que solo se muestran los coeficientes de filtro de interpolación fm(a) en un caso en el que la ubicación de interpolación es menor que o igual a 1/2, un experto en la técnica entenderá fácilmente que los coeficientes de filtro de interpolación fm(a) también se pueden determinar en un caso en el que la ubicación de interpolación es mayor que 1/2.
La figura 10 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolación de 6 tomas determinados para píxeles de croma basados en un parámetro de alisado y una ubicación de interpolación, según un ejemplo.
El aparato de interpolación de imagen 10 puede seleccionar de forma diferente un filtro de interpolación basándose en características de imagen. Por ejemplo, si un filtro de interpolación de alisado que se obtiene mediante la combinación de una matriz de alisado y un filtro de interpolación de transformación ortogonal se determina, un parámetro de alisado puede variar basándose en características de imagen.
Por ejemplo, debido a que los píxeles de croma se muestrean de forma descendente basándose en un formato de color de 4:2:0, los píxeles de croma tienen menos componentes de baja frecuencia en comparación con píxeles de luma. En este caso, haciendo referencia a la figura 10, sin importar un filtro de interpolación para píxeles de luma, solo se puede seleccionar de forma adicional un filtro de interpolación para píxeles de croma. Varios coeficientes de filtro de unos filtros de interpolación seleccionados de forma diferente basándose en una componente de color se describirán a continuación con referencia a la figura 11.
La figura 11 es una tabla que muestra unos coeficientes de filtro de unos filtros de interpolación de alisado determinados de forma diferente basándose en una componente de color y una ubicación de interpolación de imagen, según un ejemplo.
Haciendo referencia a la figura 11, varios filtros de interpolación de alisado que incluyen diferentes coeficientes de filtro como un número de tomas de filtro 2M, una ubicación de interpolación a, y una componente de color L(luma)/C(croma) varían. Los coeficientes de filtro de la figura 11 son coeficientes puestos a escala en un factor de puesta a escala de 256 (= 28) y redondeados. Tal como se ha descrito en lo que antecede, basándose en características reflectoras de espejo de coeficientes de filtro de interpolación, solo se muestra un caso en el que la ubicación de interpolación a es menor que o igual a 1/2.
De forma similar a las figuras 8A a 10, un resultado de comparar unos coeficientes de filtro para una componente de croma y coeficientes de filtro para una componente de luma similar a un resultado de comprar unos coeficientes de filtro en un caso en el que un parámetro de alisado p sea grande y coeficientes de filtro en un caso en el que el parámetro de alisado p sea pequeño.
Las figuras 12A a 12C son unas tablas que muestran coeficientes de filtro de unos filtros de interpolación de alisado basados en una ubicación de interpolación de imagen y un factor de puesta a escala, incluyendo aquellos según realizaciones de la presente invención.
Las figuras 12A a 12C muestran varios ejemplos modificados de coeficientes de filtro de unos filtros de interpolación de alisado, que se ponen a escala, se redondean, y se normalizan a medida que un factor de puesta a escala de 2n varía entre 512, 256, 128 y 64, y el número de tomas de filtro de un filtro de interpolación y una ubicación de interpolación a varían.
En concreto, en la figura 12C, los coeficientes de filtro de interpolación para interpolar unidades de 1/8 de píxel pueden ser útiles para realizar compensación de movimiento sobre píxeles de croma. No obstante, debido a que la calidad de imagen de píxeles de croma, que es reconocida de forma visual por las personas, es menos crítica en comparación con los píxeles de luma, debido a una toma de filtro relativamente corta, por ejemplo, 4 tomas, y una profundidad de bits baja, también se puede usar un filtro de interpolación de alisado que tiene un factor de puesta a escala de 25.
Los coeficientes de filtro mostrados en las figuras 8A a 12C simplemente son partes de varios ejemplos, y un experto en la técnica entenderá fácilmente que los coeficientes de filtro de unos filtros de interpolación considerando alisado, según los ejemplos, se pueden modificar basándose en distintos factores incluyendo una ubicación de interpolación, un parámetro de alisado, una función de ventana, una función de curva, una función polinómica, un factor de puesta a escala, y redondeo.
La codificación y descodificación de vídeo usando un filtro de interpolación de alisado, según las realizaciones de la presente invención, se describen a continuación con referencia a las figuras 14A, 14B y 16. La codificación y descodificación de vídeo basada en unas unidades de codificación que tienen una estructura de árbol, según los ejemplos, se describen a continuación con referencia a las figuras 15 y 17 a 25. Los procedimientos de codificación y de descodificación de vídeo usando un filtro de interpolación de alisado, según los ejemplos, se describen a continuación con referencia a las figuras 26 y 27.
Cuando se realizan varias operaciones en los datos de imagen, los datos de imagen se pueden dividir en grupos de datos y la misma operación se puede realizar en datos del mismo grupo de datos. En la siguiente descripción, un grupo de datos formado de acuerdo con una norma previamente determinada se denomina una 'unidad de datos', y se realiza una operación en cada 'unidad de datos' mediante el uso de datos incluidos en la unidad de datos.
<Codificación y descodificación de vídeo usando un filtro de interpolación de alisado>
La figura 13A es un diagrama de bloques de un aparato de codificación de vídeo 100 usando un filtro de interpolación de alisado, de acuerdo con un ejemplo.
Las operaciones de un codificador 120 y una unidad de salida 130 del aparato de codificación de vídeo 100 se pueden controlar de forma operativa mediante un procesador de codificación de vídeo, una CPU, y un procesador de gráficos.
Con el fin de codificar una imagen actual de un vídeo de entrada, el aparato de codificación de vídeo 100 divide la imagen actual en unidades de datos que tienen un tamaño previamente determinado y codifica cada unidad de datos.
Por ejemplo, la imagen actual incluye píxeles en un dominio espacial. Con el fin de codificar píxeles espacialmente adyacentes de la imagen actual al mismo tiempo, la imagen actual se puede dividir en grupos de píxel que tienen un tamaño previamente determinado de tal forma que los píxeles adyacentes dentro de un intervalo previamente determinado forman un grupo. Al realizar una serie de operaciones de codificación sobre píxeles de los grupos de píxel divididos, la imagen actual se puede codificar.
Debido a que los datos iniciales de una imagen que se va a codificar son valores de píxel en el dominio espacial, cada grupo de píxel se puede usar como una unidad de datos que se va a codificar. Asimismo, cuando los coeficientes de transformación en un dominio de transformación se generan mediante la realización de una transformación para la codificación de vídeo en valores de píxel del grupo de píxel en el dominio espacial, los coeficientes de transformación se incluyen en grupos de coeficiente que tienen el mismo tamaño que los grupos de píxel en el dominio espacial. Por consiguiente, un grupo de coeficiente de los coeficientes de transformación en el dominio de transformación también se puede usar como una unidad de datos para codificar una imagen.
Por consiguiente, en el dominio espacial y el dominio de transformación, un grupo de datos que tiene un tamaño previamente determinado se puede usar como una unidad de datos que se va a codificar. En este caso, el tamaño de una unidad de datos se puede definir como el número de piezas de datos incluido en la unidad de datos. Por ejemplo, el número de píxeles en el dominio espacial o el número de coeficientes de transformación en el dominio de transformación puede representar el tamaño de una unidad de datos.
Un procedimiento de codificación o características de codificación de una unidad de datos actual se puede determinar con respecto a cada grupo de datos de entre una unidad de datos, un fragmento, una imagen, una secuencia de imagen de un vídeo que se va a codificar actualmente.
El aparato de codificación de vídeo 100 puede codificar la imagen actual mediante la realización de una codificación por predicción incluyendo inter predicción e intra predicción, transformación, cuantificación, y codificación por entropía sobre cada unidad de datos.
Basándose en la inter predicción, con el fin de estimar un valor de píxel actual con referencia a un valor de píxel de una imagen temporalmente previa o subsiguiente, se pueden determinar los datos residuales entre un valor de píxel de un valor de referencia de una imagen de referencia y un valor de píxel de una imagen actual, y datos de referencia indicando lo referido al valor de píxel.
Con el fin de realizar de forma más precisa inter predicción, el aparato de codificación de vídeo 100 puede determinar los datos residuales y los datos de referencia mediante el uso de un valor de píxel de unidad de sub-pel. Con el fin de realizar una inter predicción de unidad de sub-pel, el aparato de codificación de vídeo 100 puede determinar un valor de píxel de unidad de sub-pel ubicado entre los píxeles de unidad de pel de valor entero mediante la interpolación de los píxeles de unidad de pel de valor entero adyacentes.
Asimismo, el valor de píxel de unidad de sub-pel se puede generar mediante la realización de una interpolación filtrando dos o más píxeles de referencia de unidad de pel de valor entero incluyendo los píxeles de unidad de pel de valor entero adyacentes. Los píxeles de referencia para realizar un filtrado de interpolación pueden ser píxeles de una imagen de referencia.
Con el fin de realizar de forma eficiente interpolación de imagen, el aparato de codificación de vídeo 100 puede determinar de forma selectiva unos coeficientes de filtro de interpolación. El codificador 120 puede incluir el aparato de interpolación de imagen 100 ilustrado en la figura 1. Dicho de otra forma, con el fin de realizar ínter predicción de unidad de sub-pel, el codificador 120 puede generar un valor de píxel de unidad de sub-pel mediante el uso de un filtro de interpolación que incluye unos coeficientes de filtro determinados por el aparato de interpolación de imagen 10 basándose en transformación y una transformación inversa.
Con el fin de realizar de forma eficiente un filtrado de interpolación, el aparato de codificación de vídeo 100 puede almacenar previamente coeficientes de filtro de interpolación en la memoria. De acuerdo con una ubicación de interpolación, un alisamiento, el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, y una función de base de filtrado de interpolación basándose en transformación se pueden almacenar en la memoria del aparato de codificación de vídeo 100.
Por ejemplo, al menos uno de (i) los coeficientes de filtro de unidad de 1/4 de pel de 8 tomas { -1, 4, -10, 57, 19, -7, 3, -1 } que tienen un factor de puesta a escala de 26, (ii) coeficientes de filtro de unidad de 1/2 pel de 8 tomas { -1, 4, -11, 40, 40, -11, 4, -1 } que tienen un factor de puesta a escala de 26, (iii) coeficientes de filtro de unidad de 1/8 de pel de 4 tomas { -3, 60, 8, -1 } que tienen un factor de puesta a escala de 26, (iv) coeficientes de filtro de unidad de 1/4 de pel de 4 tomas { -4, 54, 16, -2 } que tienen un factor de puesta a escala de 26, (v) coeficientes de filtro de unidad de 3/8 de pel de 4 tomas { -5, 46, 27, -4 } que tienen un factor de puesta a escala de 26, y (vi) coeficientes de filtro de unidad de 1/2 de pel de 4 tomas { -4, 36, 36, -4 } que tienen un factor de puesta a escala de 26 se pueden almacenar en la memoria y se pueden usar para realizar un filtrado de interpolación de alisado.
Además de los coeficientes de filtro que se han mencionado en lo que antecede, los coeficientes de filtro de interpolación de alisado modificables basándose en varias funciones de base y funciones de ventana tal como se muestra en las figuras 8A a 12C se pueden usar para realizar un filtrado de interpolación.
Si el filtrado de interpolación se realiza mediante el uso de los coeficientes de filtro almacenados en la memoria, se puede mejorar una velocidad de cálculo de la inter predicción.
De entre una pluralidad de filtros de interpolación, el codificador 120 puede seleccionar y usar un filtro de interpolación de alisado deseado para realizar una inter predicción basándose en una ubicación de interpolación de unidad de sub-pel a y un alisamiento. Además, un filtro de interpolación de alisado apropiado para un píxel actual se puede determinar basándose en el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, etc.
El codificador 120 puede determinar un filtro de interpolación basándose en características de imagen. Por ejemplo, el codificador 120 puede determinar diferentes filtros de interpolación basándose en las componentes de color de píxeles. Por ejemplo, un filtro de interpolación para píxeles de luma y un filtro de interpolación para píxeles de croma se pueden seleccionar de forma separada y, por lo tanto, los valores de píxel de unidad de sub-pel se pueden generar de forma individual mediante la realización de un filtrado de interpolación.
Un vídeo se puede codificar mediante la realización de una inter predicción basándose en una interpolación de unidad de sub-pel, intra predicción, transformación y cuantificación.
La unidad de salida 130 puede codificar y enviar información de codificación y puede enviar datos de imagen codificados. Como la información de codificación, la información acerca del filtro de interpolación seleccionado se puede codificar adicionalmente. Dicho de otra forma, la información acerca de un filtro de interpolación usado para realizar una codificación por predicción de unidad de sub-pel se puede codificar. Por ejemplo, un descodificador tiene que saber de un filtro de interpolación usado para codificar una imagen con el fin de descodificar la imagen mediante el uso del mismo filtro de interpolación usado en el procedimiento de codificación. Para esto, la información que indica el filtro de interpolación usado se puede codificar junto con la imagen. No obstante, si se selecciona un filtro basándose en un resultado de codificación previo, es decir, contexto, la información acerca del filtro seleccionado puede no codificarse adicionalmente.
La unidad de salida 130 puede realizar una codificación por entropía en información de codificación y datos de imagen codificados y puede enviar una secuencia de bits.
La figura 13B es un diagrama de bloques de un aparato de codificación de vídeo 200 usando un filtro de interpolación de alisado, de acuerdo con un ejemplo.
El aparato de descodificación de vídeo 200 incluye un receptor y extractor 220 y un descodificador 230. Las operaciones del receptor y extractor 220 y el descodificador 230 del aparato de descodificación de vídeo 200 se pueden controlar de forma cooperativa mediante un procesador de descodificación de vídeo, un procesador de gráficos y una CPU.
Con el fin de reconstruir una imagen de una secuencia de bits, el aparato de descodificación de vídeo 200 puede descodificar datos de imagen codificados de la secuencia de bits mediante la realización de operaciones incluyendo descodificación por entropía, cuantificación inversa, transformación inversa, inter predicción / compensación, e intra predicción / compensación.
El receptor y extractor 220 recibe y analiza una secuencia de bits de un vídeo codificado. El receptor y extractor 22o puede extraer datos codificados de cada unidad de datos de una imagen actual, e información de codificación incluyendo la información acerca de un procedimiento de codificación que se va a usar para descodificar los datos codificados, desde la secuencia de bits analizada.
Si la información de codificación incluye la información de filtro de interpolación, el descodificador 230 puede leer información acerca de un filtro de interpolación usado para realizar una intra predicción de unidad de sub-pel desde la información de filtro de interpolación, y puede realizar compensación de movimiento mediante el uso del filtro de interpolación usado en un procedimiento de codificación.
El descodificador 230 puede descodificar datos de imagen codificados mediante la realización de varias operaciones de descodificación tal como descodificación por entropía, cuantificación inversa, transformación inversa, inter predicción / compensación, e intra predicción / compensación en una imagen codificada según con varios procedimientos de descodificación determinados a base de información acerca de un modo de codificación.
Con el fin de realizar compensación de movimiento, una región de referencia de una imagen de referencia que es temporalmente previa o subsiguiente a una imagen actual se puede determinar mediante el uso de datos de referencia, y un valor de píxel de la región de referencia y datos residuales se pueden combinar para reconstruir un valor de píxel actual.
Si los datos residuales y los datos de referencia se determinan basándose en píxeles interpolados en una unidad de sub-pel en un procedimiento de codificación, el descodificador 230 también puede realizar compensación de movimiento basándose en píxeles interpolados en una unidad de sub-pel. Con el fin de realizar compensación en movimiento de unidad de sub-pel, el descodificador 230 puede generar un valor de píxel de unidad de sub-pel mediante la interpolación de píxeles de unidad de pel de valor entero adyacentes de la imagen de referencia. El valor de píxel de unidad de sub-pel se puede generar mediante la realización de un filtrado de interpolación sobre dos o más píxeles de referencia de unidad de pel de valor entero incluyendo los píxeles de unidad de valor entero adyacentes.
Con el fin de realizar de forma eficiente la interpolación de imagen, el aparato de descodificación de vídeo 200 puede determinar de forma selectiva unos coeficientes de filtro de interpolación. El descodificador 230 puede incluir el aparato de interpolación de imagen 10 ilustrado en la figura 1. Dicho de otra forma, con el fin de realizar compensación de movimiento de unidad de sub-pel, el descodificador 230 puede generar un valor de píxel de unidad de sub-pel mediante el uso de un filtro de interpolación basado en transformación.
Con el fin de realizar de forma eficiente un filtrado de interpolación, el aparato de descodificación de vídeo 200 puede almacenar previamente coeficientes de filtro de interpolación seleccionadles de forma variable en la memoria de acuerdo con una ubicación de interpolación, un alisamiento, el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, y una función de base de filtrado de interpolación basado en transformación.
Tal como se ha descrito en lo que antecede, por ejemplo, al menos uno de (i) coeficientes de filtro de unidad de 1/4 de pel de 8 tomas { -1,4, -10, 57, 19, -7, 3, -1 } que tienen un factor de puesta a escala de 26, (ii) coeficientes de filtro de unidad de 1/2 de pel de 8 tomas { -1, 4, -11, 40, 40, -11, 4, -1 } que tienen un factor de puesta a escala de 26, (iii) coeficientes de filtro de unidad de 1/8 de pel de 4 tomas (-3, 60, 8, -1) que tienen un factor de puesta a escala de 26, (iv) coeficientes de filtro de unidad de 1/4 de pel de 4 tomas { -4, 54, 16, -2 } que tienen un factor de puesta a escala de 26, (v) coeficientes de filtro de unidad de 3/8 de pel de 4 tomas { -5, 46, 27, -4 } que tienen un factor de puesta a escala de 26, y (vi) coeficientes de filtro de unidad de 1/2 de pel de 4 tomas (-4, 36, 36, -4 } que tienen un factor de puesta a escala de 26 se pueden almacenar en memoria y se pueden usar para realizar un filtrado de interpolación de alisado. Además de los coeficientes de filtro que se han mencionado en lo que antecede, los coeficientes de filtro de interpolación de alisado modificables de acuerdo con varias funciones de base y funciones de ventana tal como se muestra en las figuras 8A a 12C se pueden usar para realizar un filtrado de interpolación de alisado.
De entre una pluralidad de filtros de interpolación, el descodificador 230 puede seleccionar y usar un filtro de interpolación apropiado para que un píxel actual realice compensación de movimiento de unidad de sub-pel, de acuerdo con una ubicación de interpolación de unidad de sub-pel a, el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, etc.
Asimismo, el descodificador 230 puede determinar un filtro de interpolación de alisado basándose en características de imagen. Por ejemplo, diferentes filtros de interpolación se pueden determinar de acuerdo con unas componentes de color de píxeles, filtrado de interpolación para píxeles de luma de filtrado de interpolación para píxeles de croma se pueden realizar de forma separada y, por lo tanto, los valores de píxel de unidades de sub-pel interpolados se puede generar de forma individual.
Por consiguiente, el descodificador 230 puede reconstruir datos en un dominio espacial mediante la realización de una cuantificación inversa / transformación inversa, y puede reconstruir valores de píxel y una imagen actual mediante la realización de una intra predicción y compensación de movimiento basándose en una interpolación de unidad de sub-pel así como interpolación de unidad de pel de valor entero. Si se reconstruyen imágenes, se puede descodificar un vídeo.
La figura 14A es un diagrama de flujo de un procedimiento de codificación de imagen usando un filtro de interpolación de alisado, según una realización de la presente invención.
En la operación 1410, con el fin de codificar una imagen actual de un vídeo de entrada, se realiza la codificación por predicción usando una interpolación de unidad de sub-pel. Un filtro de interpolación se selecciona de forma diferente basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento de entre los filtros de interpolación para generar un valor de píxel de unidad de sub-pel. El alisamiento del filtro de interpolación se puede determinar basándose en la distancia entre una ubicación de interpolación y unas unidades de pel de valor entero.
El valor de unidad de sub-pel se puede generar mediante la realización de un filtrado de interpolación sobre dos o más píxeles de referencia de unidad de pel de valor entero de una imagen de referencia. Los datos residuales y los datos de referencia se determinan mediante el uso del valor de píxel de unidad de sub-pel generado, realizando de ese modo codificación por predicción.
Con el fin de realizar de forma eficiente interpolación de imagen, se pueden determinar de forma selectiva unos coeficientes de filtro de interpolación. De entre los coeficientes de filtro de interpolación previamente almacenados en la memoria, un filtro de interpolación deseado se puede seleccionar basándose en una ubicación de interpolación de unidad de sub-pel, un alisamiento, el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una función de base de filtrado de interpolación a base de transformación, y una componente de color, y la interpolación se puede realizar para generar el valor de píxel de unidad de sub-pel.
En la operación 1420, la transformación y la cuantificación se realizan en un resultado de inter predicción basándose en una interpolación de unidad de sub-pel, e intra predicción.
En la operación 1430, una secuencia de bits se puede enviar mediante la realización de una codificación por entropía sobre una información de codificación y datos de imagen codificados en la forma de coeficientes de transformación cuantificados. La información de codificación puede incluir información acerca de un filtro de interpolación usado para realizar una codificación por predicción de unidad de subpel.
La figura 14B es un diagrama de flujo de un procedimiento de descodificación de imagen usando un filtro de interpolación de alisado, de acuerdo con una realización de la presente invención.
En la operación 1450, una secuencia de bits de un vídeo codificado se recibe, se descodifica por entropía, y se analiza para extraer unos coeficientes de transformación cuantificados e información de codificación de una imagen actual de la secuencia de bits.
Si la información de codificación incluye información acerca de un filtro de interpolación, el tipo de un filtro de interpolación requerido se puede leer a partir de la información.
En la operación 1460, de acuerdo con varios procedimientos de descodificación determinados basado en un modo de codificación leído de la información de codificación, la cuantificación inversa y la transformación inversa se realizan en los coeficientes de transformación cuantificados, y se agregan datos residuales, reconstruyéndose de ese modo datos en un dominio espacial.
En la operación 1470, los datos de imagen codificados se pueden descodificar mediante la realización de varias operaciones de descodificación tal como compensación de movimiento e intra predicción basándose en l modo de codificación.
En concreto, si los datos residuales codificados y los datos de referencia se extraen basándose en píxeles interpolados en una unidad de sub-pel, la compensación de movimiento se puede realizar basándose en los píxeles interpolados en una unidad de sub-pel. De entre los filtros de interpolación para generar un valor de píxel de unidad de sub-pel, un filtro de interpolación se selecciona de forma diferente basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento.
Con el fin de realizar de forma eficiente interpolación de imagen, los coeficientes de filtro de interpolación se pueden determinar de forma selectiva. De entre los coeficientes de filtro de interpolación almacenados previamente en memoria, se puede seleccionar un filtro de interpolación deseado de acuerdo con una ubicación de interpolación de unidad de sub-pel, un alisamiento, el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una función de base de filtrado de interpolación a base de transformación, y una componente de color, e interpolación se pueden realizar para generar el valor de píxel de unidad de sub-pel. Debido a que se realiza compensación de movimiento en píxeles interpolados mediante el uso de los coeficientes de filtro de interpolación previamente almacenados en la memoria, puede aumentar una velocidad de cálculo.
Se determinan una imagen de referencia y una región de referencia mediante el uso de los datos de referencia, y el valor de píxel de unidad de sub-pel se puede generar mediante la realización de un filtrado de interpolación sobre dos o más píxeles de referencia de unidad de pel de valor entero de la imagen de referencia. Se puede realizar compensación de movimiento mediante la combinación del valor de píxel de unidad de sub-pel generado y los datos residuales y, por lo tanto, se puede realizar descodificación por predicción.
En la operación 1480, se reconstruye una imagen actual mediante el uso de valores de píxel que se obtienen mediante la realización de una descodificación por predicción y, por lo tanto, se descodifica un vídeo.
<Codificación y descodificación de vídeo usando una interpolación de alisado basándose en unas unidades de codificación que tienen una estructura de árbol>
Los aparatos de codificación y de descodificación de vídeo que usan un filtro de interpolación de alisado basándose en unas unidades de codificación que tienen una estructura de árbol, y procedimientos de codificación y de descodificación de vídeo que se corresponden con los aparatos de codificación y de descodificación de vídeo, se describirán a continuación en detalle con referencia a las figuras 13 a 27.
El aparato de codificación de vídeo 100 puede codificar un vídeo basándose en unas unidades de codificación y unas unidades de transformación que tienen una estructura de árbol.
Una imagen actual de un vídeo se puede dividir basándose en una unidad de codificación máxima para la imagen actual. Si la imagen actual es más grande que la unidad de codificación máxima, los datos de imagen de la imagen actual se pueden dividir en al menos una unidad de codificación máxima. La unidad de codificación máxima puede ser una unidad de datos que tiene un tamaño de 32 x 32, 64 x 64, 128 x 128, 256 x 256, etc., en la que una forma de la unidad de datos es un cuadrado que tiene un ancho y una longitud en cuadrados de 2. El codificador 120 puede codificar datos de imagen de cada una de al menos una unidad de codificación máxima.
Una unidad de codificación se puede caracterizar por un tamaño máximo y una profundidad. La profundidad denota el número de veces que la unidad de codificación se divide espacialmente de la unidad de codificación máxima, y a medida que la profundidad se agudiza, las unidades de codificación más profundas de acuerdo con las profundidades se pueden dividir de la unidad de codificación máxima a una unidad de codificación mínima. Una profundidad de la unidad de codificación máxima es una profundidad superior y una profundidad de la unidad de codificación mínima es una profundidad inferior. Debido a que un tamaño de una unidad de codificación que se corresponde con cada profundidad disminuye a medida que se agudiza la profundidad de la unidad de codificación máxima, una unidad de codificación que se corresponde con una profundidad superior puede incluir una pluralidad de unidades de codificación que se corresponden con unas profundidades inferiores.
Tal como se ha descrito en lo que antecede, los datos de imagen de la imagen actual se dividen en las unidades de codificación máxima de acuerdo con un tamaño máximo de la unidad de codificación, y cada una de las unidades de codificación máxima puede incluir unidades de codificación más profunda que están divididas de acuerdo con unas profundidades. Debido a que la unidad de codificación máxima está dividida según las profundidades, los datos de imagen de un dominio espacial incluidos en la unidad de codificación máxima se pueden clasificar de forma jerárquica de acuerdo con las profundidades.
Se pueden predeterminar una profundidad máxima y un tamaño máximo de una unidad de codificación, que limitan el número total de veces que se divide de forma jerárquica una altura y un ancho de la unidad de codificación máxima.
El codificador 120 codifica al menos una región dividida que se obtiene mediante la división de una región de la unidad de codificación máxima de acuerdo con unas profundidades, y determina una profundidad para enviar datos de imagen finalmente codificados de acuerdo con al menos una región dividida. Dicho de otra forma, el codificador 120 determina una profundidad codificada mediante la codificación de los datos de imagen en las unidades de codificación más profunda de acuerdo con unas profundidades, de acuerdo con la unidad de codificación máxima de la imagen actual, y al seleccionar una profundidad que tiene el menor error de codificación.
El codificador 120 puede enviar los datos de imagen codificados de la unidad de codificación que se corresponde con la profundidad codificada determinada. Asimismo, el codificador 120 puede transmitir una información acerca de la profundidad codificada o determinada a la unidad de salida 130 para que la información acerca de la profundidad codificada se pueda codificar como información de codificación.
Los datos de imagen de la unidad de codificación máxima se codifican basándose en las unidades de codificación más profunda que se corresponden con al menos una profundidad igual a o por debajo de la profundidad máxima, y es el resultado de descodificar los datos de imagen que se comparan basándose en cada una de las unidades de codificación más profunda. Una profundidad que tiene el menor error de codificación se puede seleccionar después de comparar errores de codificación de las unidades de codificación más profunda. Al menos una profundidad codificada se puede seleccionar para cada unidad de codificación máxima.
El tamaño de la unidad de codificación máxima se divide a medida que una unidad de codificación se divide de forma jerárquica de acuerdo con unas profundidades, y a medida que aumenta el número de unidades de codificación. Asimismo, incluso si las unidades de codificación corresponden a la misma profundidad en una unidad de codificación máxima, se determina si se divide cada una de las unidades de codificación que se corresponden con la misma profundidad a una profundidad inferior al medir un error de codificación de los datos de imagen de cada unidad de codificación, de forma separada. Por consiguiente, incluso cuando se incluyen datos de imagen en una unidad de codificación máxima, los datos de imagen se dividen en regiones de acuerdo con las profundidades y los errores de codificación pueden diferir por regiones en una unidad de codificación máxima y, por lo tanto, las profundidades codificadas pueden diferir por regiones en los datos de imagen. Por lo tanto, una o más profundidades se pueden determinar en una unidad de codificación máxima, y los datos de imagen de la unidad de codificación máxima se pueden dividir de acuerdo con unidades de codificación de al menos una profundidad codificada.
Por consiguiente, el codificador 120 puede determinar unidades de codificación que tienen una estructura de árbol incluida en la unidad de codificación máxima. Las 'unidades de codificación que tienen una estructura de árbol' de acuerdo con una realización de la presente invención incluyen unidades de codificación que se corresponden con una profundidad determinada para hacer la profundidad codificada, de entre todas las unidades de codificación más profunda incluidas en la unidad de codificación máxima. Una unidad de codificación de una profundidad codificada se puede determinar de forma jerárquica de acuerdo con unas profundidades en la misma región de la unidad de codificación máxima, y se pueden determinar de forma independiente en diferentes regiones. De forma similar, una profundidad codificada en una región actual se puede determinar de forma independiente a partir de una profundidad codificada en otra región.
Una profundidad máxima según un ejemplo es un índice relacionado con el número de veces que se realiza la división de una unidad de codificación máxima a una unidad de codificación mínima. Una primera profundidad máxima de acuerdo con una realización de la presente invención puede denotar el número total de veces que se realiza la división de la unidad de codificación máxima a la unidad de codificación mínima. Una segunda profundidad máxima según un ejemplo puede denotar el número total de niveles de profundidad de la unidad de codificación máxima a la unidad de codificación mínima. Por ejemplo, cuando una profundidad de la unidad de codificación máxima es 0, una profundidad de una unidad de codificación, en la que la unidad de codificación máxima se divide una vez, se puede establecer en 1, y una profundidad de una unidad de codificación, en la que la unidad de codificación máxima se divide dos veces, se puede establecer en 2. En el presente caso, si la unidad de codificación mínima es una unidad de codificación en la que la unidad de codificación máxima se divide cuatro veces, existen cinco niveles de profundidad de profundidades 0, 1,2, 3 y 4 y, por lo tanto, la primera profundidad máxima se puede establecer en 4, y la segunda profundidad máxima se puede establecer en 5.
La codificación por predicción y una transformación se pueden realizar de acuerdo con la unidad de codificación máxima. La codificación por predicción y la transformación también se realizan basándose en las unidades de codificación más profunda de acuerdo con una profundidad igual a o profundidades menores que la profundidad máxima, de acuerdo con la unidad de codificación máxima.
Debido a que el número de unidades de codificación más profunda aumenta en cualquier momento que se divide la unidad de codificación máxima de acuerdo con unas profundidades, la codificación incluyendo la codificación por predicción y la transformación se realiza en todas las unidades de codificación más profunda generadas a medida que se agudiza la profundidad. Por conveniencia de la descripción, la codificación por predicción y la transformación se describirán a continuación basándose en una unidad de codificación de una profundidad actual, en una unidad de codificación máxima.
El aparato de codificación de vídeo 100 puede seleccionar de forma variable un tamaño o forma de una unidad de datos para codificar los datos de imagen. Con el fin de codificar los datos de imagen, se realizan las operaciones, tal como codificación por predicción, transformación, y codificación por entropía, y en este momento, la misma unidad de datos se puede usar para todas las operaciones o se pueden usar diferentes unidades de datos para cada operación.
Por ejemplo, el aparato de codificación de vídeo 100 puede seleccionar no solo una unidad de codificación para codificar los datos de imagen, sino también una unidad de datos diferente de la unidad de codificación para realizar la codificación por predicción sobre los datos de imagen en la unidad de codificación.
Con el fin de realizar una codificación por predicción de la unidad de codificación máxima, la codificación por predicción se puede realizar basándose en una unidad de codificación que se corresponde con una profundidad codificada, es decir, basándose en una unidad de codificación que ya no está dividida en unidades de codificación que se corresponden con una profundidad inferior. En lo sucesivo, la unidad de codificación que ya no está dividida se vuelve una unidad básica para la codificación por predicción que se denominará como una 'unidad de predicción'. Una división que se obtiene mediante la división de la unidad de predicción puede incluir una unidad de predicción a una unidad de datos que se obtiene mediante la división de al menos uno de una altura y un ancho de la unidad de predicción.
Por ejemplo, cuando una unidad de codificación de 2N x 2N (en la que N es un número entero positivo) ya no está dividida y se vuelve una unidad de predicción de 2N x 2N, un tamaño de una división puede ser 2N x 2N, 2N x N , N x 2N o N x N. Ejemplos de un tipo de división incluyen divisiones simétricas que se obtienen mediante la división de forma simétrica de una altura o ancho de la unidad de predicción, unas divisiones que se obtienen mediante la división de forma asimétrica de la altura o el ancho de la unidad de predicción, tales como 1:n o n:1, unas divisiones que se obtienen mediante la división de forma geométrica de la unidad de predicción, y unas divisiones que tienen formas arbitrarias.
Un modo de predicción de la unidad de predicción puede ser al menos uno de un intra modo, un inter modo, y un modo de salto. Por ejemplo, el intra modo o el inter modo se pueden realizar sobre la división de 2N x 2N, 2N x N, N x 2N, N x N. Asimismo, el modo de salto se puede realizar solo en la división de 2N x 2N. La codificación se realiza de forma independiente en una unidad de predicción en una unidad de codificación, seleccionando de ese modo un modo de predicción que tiene un error de codificación menor.
El aparato de codificación de vídeo 100 también puede realizar la transformación sobre los datos de imagen en una unidad de codificación no solo basándose en la unidad de codificación para codificar los datos de imagen, sino también basándose en una unidad de datos que es diferente de la unidad de codificación.
Con el fin de realizar la transformación de la unidad de codificación, la transformación se puede realizar basándose en una unidad de transformación que tiene un tamaño menor que o igual a la unidad de codificación. Por ejemplo, la unidad de transformación para la transformación puede incluir una unidad de datos para un intra modo y una unidad de datos para un inter modo.
De forma similar a la unidad de codificación, la unidad de transformación de la unidad de codificación se puede dividir de forma recursiva en regiones de tamaño menor, para que la unidad de transformación se pueda determinar de forma independiente en unidades de regiones. Por lo tanto, los datos residuales en la unidad de codificación se pueden dividir de acuerdo con las unidades de transformación que tienen la estructura de árbol de acuerdo con las profundidades de transformación.
Una profundidad de transformación que indica el número de veces que se realiza la división para llegar a la unidad de transformación mediante la división de la altura y el ancho de la unidad de codificación también se puede establecer en la unidad de transformación. Por ejemplo, en una unidad de codificación actual de 2N x 2N, una profundidad de transformación puede ser 0 cuando el tamaño de una unidad de transformación también es 2N x 2N, y puede ser 1 cuando el tamaño de la unidad transformación es N x N, y puede ser 2 cuando el tamaño de la unidad de transformación es N/2 x N/2. Dicho de otra forma, las unidades de transformación que tienen una estructura de árbol se pueden establecer de acuerdo con unas profundidades de transformación.
La información de codificación de acuerdo con una profundidad codificada requiere no solo información acerca de la profundidad codificada, sino también información acerca de la codificación por predicción y la transformación. Por consiguiente, el codificador 120 no solo determina una profundidad codificada que tiene un error de codificación menor, sino que también determina un tipo de división en una unidad de predicción, un modo de predicción de acuerdo con unidades de predicción, y un tamaño de una unidad de transformación para transformación. Para intra predicción, la información de codificación de acuerdo con una profundidad puede incluir información relacionada con el filtrado de interpolación para interpolar unidades de sub-pel.
Asimismo, el codificador 120 puede realizar transformación mediante el uso de unidades de transformación que tienen una estructura de árbol para codificar unidades de codificación, basándose en un nivel de división máximo de las unidades de transformación, que se establece previamente y de forma restrictiva en cada unidad de codificación máxima o una unidad de codificación actual.
En cada una de las unidades de codificación más profunda de acuerdo con unas profundidades, una unidad de transformación básica que tiene un tamaño menor que o igual a una unidad de codificación se puede dividir de forma jerárquica en unidades de transformación de profundidades de transformación inferiores. Las unidades de transformación que tienen una estructura de árbol pueden incluir una unidad de transformación básica que tiene un tamaño máximo que se permite actualmente, y las unidades de transformación de nivel inferior en relación con un nivel de división máximo que se permite para unidades de codificación.
Después de realizar transformación y en cada nivel de acuerdo con una profundidad de transformación en una unidad de codificación actual, el codificador 120 puede determinar unidades de transformación que tienen una estructura de árbol, que son independientes de unidades de transformación de regiones adyacentes y forman una estructura jerárquica entre unas unidades de transformación en la misma región de acuerdo con unas profundidades de transformación.
Dicho de otra forma, las unidades de transformación que tienen una estructura de árbol se pueden determinar mediante la realización de una transformación en cada unidad de codificación mediante el uso de unidades de transformación de varios tamaños y entonces mediante la comparación de resultados de transformación. A pesar de que una unidad de codificación se está determinando, se puede determinar una unidad de transformación para transformar la unidad de codificación. En cualquier momento que las unidades de codificación de acuerdo con cada una de una o más profundidades se codifican, las unidades de transformación de acuerdo con cada una de una o más profundidades de transformación se pueden usar para realizar transformación.
Una unidad de transformación que tiene un error de codificación menor se ha determinado para cada unidad de codificación. Con el fin de determinar una profundidad de transformación que tiene un error de codificación mínimo en una unidad de transformación, se pueden medir errores de codificación y se pueden comparar en todas las unidades de transformación más profunda de acuerdo con unas profundidades. Una unidad de transformación se puede determinar como una unidad de datos para minimizar un error de transformación de una unidad de codificación.
Por consiguiente, debido a que una combinación de una unidad de codificación más profunda y una unidad de transformación más profunda de acuerdo con las profundidades, que tiene un error de codificación menor, se determina de forma individual en cada región de una unidad de codificación máxima, se pueden determinar las unidades de codificación que tienen una estructura de árbol y unas unidades de transformación que tienen una estructura de árbol.
Los procedimientos para determinar unidades de codificación que tienen una estructura de árbol, unas divisiones y unas unidades de transformación que tienen una estructura de árbol en la unidad de codificación máxima, se describirán en detalle en lo sucesivo con referencia las figuras 15 a 25.
El codificador 120 puede medir un error de codificación de unas unidades de codificación más profunda de acuerdo con unas profundidades mediante el uso de optimización de distorsión de velocidad basándose en multiplicadores Lagrangianos.
El aparato de codificación de vídeo 100 puede enviar los datos de imagen de la unidad de codificación máxima, que se codifican basándose en al menos una profundidad codificada determinada por el codificador 120, e información acerca de un modo de codificación de acuerdo con la profundidad codificada, que se codifica por la unidad de salida 130, en la forma de una secuencia de bits.
La información acerca del modo de bits de codificación de las unidades de codificación más profunda de acuerdo con unas profundidades, que se determina a medida que una imagen se codifica basándose en unas unidades de codificación, unas unidades de predicción y unas unidades de transformación que tienen una estructura de árbol, se pueden incluir en un encabezado, un grupo de parámetros de secuencia (SPS,sequence parameter set),o un grupo de parámetros de imagen (PPS,picture parameter set)de una secuencia de bits.
Los datos de imagen codificados se pueden obtener mediante la codificación de datos residuales de una imagen.
La información acerca del modo de codificación según la profundidad codificada puede incluir información acerca de la profundidad codificada, sobre el tipo de división en la unidad de predicción, el modo de predicción y el tamaño de la unidad de transformación.
La información acerca de la profundidad codificada se puede definir mediante el uso de información de división de acuerdo con unas profundidades, que representa si se realiza la codificación en unidades de codificación de una profundidad inferior en lugar de una profundidad actual. Si la profundidad actual de la unidad de codificación actual es la profundidad codificada, los datos de imagen en la unidad de codificación actual se codifican y se envían y, por lo tanto, la información de división se puede definir no para dividir la unidad de codificación actual a una profundidad interior. Como alternativa, si la profundidad actual de la unidad de codificación actual no es la profundidad codificada, la codificación se realiza sobre la unidad de codificación de la profundidad inferior y, por lo tanto, se puede definir la información de división para dividir la unidad de codificación actual para obtener las unidades de codificación de la profundidad inferior.
Si la profundidad actual no es la profundidad codificada, se realiza una codificación sobre la unidad de codificación que está dividida en la unidad de codificación de la profundidad inferior. Debido a que al menos una unidad de codificación de la profundidad inferior existe en una unidad de codificación de la profundidad actual, la codificación se realiza de forma repetida en cada unidad de codificación de la profundidad interior y, por lo tanto, la codificación se puede realizar de forma recursiva para las unidades de codificación que tienen la misma profundidad.
Debido a que las unidades de codificación que tienen una estructura de árbol se determinan para una unidad de codificación máxima, y la información acerca de al menos un modo de codificación se determina para una unidad de codificación de una profundidad codificada, la información acerca de al menos un modo de codificación se puede determinar para una unidad de codificación máxima. Asimismo, una profundidad codificada de los datos de imagen de la unidad de codificación máxima puede ser diferente de acuerdo con ubicaciones debido a que los datos de imagen se dividen de forma jerárquica de acuerdo con unas profundidades y, por lo tanto, la información acerca de la profundidad codificada y el modo de codificación se pueden establecer para los datos de imagen.
Por consiguiente, la unidad de salida 130 puede asignar información de codificación sobre una profundidad codificada correspondiente y un modo de codificación para al menos una de una unidad de codificación, la unidad de predicción y una unidad mínima incluida en una unidad de codificación máxima.
La unidad mínima es una unidad de datos rectangular que se obtiene mediante la división de la unidad de codificación mínima que constituye la profundidad inferior por 4. Como alternativa, la unidad mínima puede ser una unidad de datos rectangular máxima que se puede incluir en todas las unidades de codificación, unidades de predicción, unidades de división y unas unidades de transformación incluidas en la unidad de codificación máxima.
Por ejemplo, la información de codificación enviada a través de la unidad de salida 130 se puede clasificar en información de codificación de acuerdo con unidades de codificación, e información de codificación de acuerdo con unidades de predicción. La información de codificación de acuerdo con las unidades de codificación puede incluir la información acerca del modo de predicción y sobre el tamaño de las divisiones. La información de codificación de acuerdo con las unidades de predicción puede incluir información acerca de una dirección estimada de un inter modo, sobre un índice de imagen de referencia del inter modo, sobre un vector de movimiento, sobre una componente de croma de un intra modo, y sobre un procedimiento de interpolación del intra modo.
La información acerca de un tamaño máximo de la unidad de codificación definida de acuerdo con las imágenes, fragmentos o GOP e información acerca de una profundidad máxima se puede insertar en un encabezado, un SPS o un PPS de una secuencia de bits.
En el aparato de codificación de vídeo 100, la unidad de codificación más profunda puede ser una unidad de codificación que se obtiene mediante la división de una altura o un ancho de una unidad de codificación de una profundidad superior, que es una capa por encima, por dos. Dicho de otra forma, cuando el tamaño de la unidad de codificación de la profundidad actual es 2N x 2N, el tamaño de la unidad de codificación de la profundidad inferior es N x N. Asimismo, la unidad de codificación de la profundidad actual que tiene el tamaño de 2N x 2N puede incluir máximo 4 de la unidad de codificación de la profundidad inferior.
Por consiguiente, el aparato de codificación de vídeo 100 puede formar las unidades de codificación que tienen la estructura de árbol al determinar unidades de codificación que tienen una forma óptima y un tamaño óptimo para cada unidad de codificación máxima, basándose en el tamaño de la unidad de codificación máxima y también la profundidad máxima determinada considerando características de la imagen actual. Asimismo, debido a que la codificación se puede realizar en cada unidad de codificación máxima mediante el uso de cualquiera de los varios modos de predicción y transformaciones, se puede determinar un modo de codificación óptimo considerando características de la unidad de codificación de varios tamaños de imagen.
Por lo tanto, si una imagen que tiene alta resolución o gran cantidad de datos se codifica en un macro bloque convencional, un número de macro bloques por imagen aumenta de forma excesiva. Por consiguiente, un número de piezas de información comprimida generada para cada macro bloque aumenta y, por lo tanto, es difícil transmitir la información comprimida y disminuye la eficiencia de compresión de datos. No obstante, mediante el uso del aparato de codificación de vídeo 100, la eficiencia de compresión de imagen puede aumentar debido a que una unidad de codificación se ajusta mientras considera características de una imagen mientras aumenta un tamaño máximo de una unidad de codificación mientras considera un tamaño de la imagen.
La unidad de salida 130 puede codificar y enviar información de codificación indicando un procedimiento de codificación usado para codificar un vídeo basándose en unas unidades de codificación que tienen una estructura de árbol y unas unidades de transformación que tienen una estructura de árbol. La información de codificación puede incluir información acerca de varios modos de codificación de unas unidades de codificación que se corresponden con una profundidad codificada, e información acerca de la profundidad codificada.
Las definiciones de varios términos, tales como una unidad de codificación, una profundidad, una unidad de predicción, una unidad de transformación e información acerca de varios modos de codificación, para varias operaciones del aparato de descodificación de vídeo 200 son idénticas a las descritos con referencia al aparato de codificación de vídeo 100.
El receptor 210 recibe una secuencia de bits de un vídeo codificado. El receptor y extractor 220 analiza la secuencia de bits recibida. El receptor y extractor 220 extrae datos de imagen codificados para cada unidad de codificación de la secuencia de bits analizada, en la que las unidades de codificación tienen una estructura de árbol de acuerdo con cada unidad de codificación máxima, y envía los datos de imagen extraídos al descodificador 230. El receptor y extractor 220 puede extraer información acerca de un tamaño máximo de una unidad de codificación de una imagen actual, de un encabezado, un SPS, un PPS sobre la imagen actual.
Asimismo, el receptor y extractor 220 puede extraer información de codificación sobre las unidades de codificación que tienen una estructura de árbol de acuerdo con cada unidad de codificación máxima, de la secuencia de bits analizada. La información acerca de una profundidad codificada y un modo de codificación se extrae de la información de codificación. La información que se extrae acerca de la profundidad codificada y el modo de codificación se envía al descodificador 230. Dicho de otra forma, los datos de imagen en una secuencia de bits se pueden dividir en la unidad de codificación máxima para que el descodificador 230 pueda descodificar los datos de imagen para cada unidad de codificación máxima.
La información acerca de la profundidad codificada y el modo de codificación de acuerdo con la unidad de codificación máxima se puede establecer para información acerca de al menos una unidad de codificación que se corresponde con la profundidad codificada, e información acerca de un modo de codificación puede incluir información acerca de un tipo de división de una unidad de codificación correspondiente que se corresponde con la profundidad codificada, acerca de un modo de predicción, y un tamaño de una unidad de transformación. Para inter predicción, la información relacionada con el filtrado de interpolación para interpolar unidades de sub-pel se puede extraer de la información de codificación de acuerdo con una profundidad codificada. Asimismo, se puede extraer información de división de acuerdo con la información acerca de la profundidad codificada.
La información acerca de la profundidad codificada y el modo de codificación de acuerdo con cada unidad de codificación máxima extraída por el receptor y extractor 220 es información acerca de una profundidad codificada y un modo de codificación determinado para generar un error de codificación mínimo cuando un codificador, tal como el aparato de codificación de vídeo 100, realiza de forma repetida una codificación para cada unidad de codificación más profunda de acuerdo con unas profundidades de acuerdo con cada unidad de codificación máxima. Por consiguiente, el aparato de codificación de vídeo 200 puede reconstruir una imagen al descodificar los datos de imagen de acuerdo con una profundidad codificada y un modo de codificación que genera el error de codificación mínimo.
Debido a que la información de codificación acerca de la profundidad codificada y el modo de codificación se pueden asignar a una unidad de datos previamente determinada de entre una unidad de codificación correspondiente, una unidad de predicción y una unidad mínima, el receptor y extractor 220 puede extraer la información acerca de la profundidad codificada y el modo de codificación de acuerdo con las unidades de datos previamente determinadas. Las unidades de datos previamente determinadas a las cuales se asigna la misma información acerca de la profundidad codificada y el modo de codificación se pueden inferir para que sean las unidades de datos incluidas en la misma unidad de codificación máxima.
El descodificador 230 puede determinar al menos una profundidad codificada de una unidad de codificación máxima actual mediante el uso de información de división de acuerdo con unas profundidades. La información de división representa que los datos de imagen ya no están divididos en la profundidad actual, la profundidad actual es una profundidad codificada. Por consiguiente, el descodificador 230 puede descodificar datos de imagen codificados de al menos una unidad de codificación que se corresponde con cada profundidad codificada en la unidad de codificación máxima actual mediante el uso de la información acerca del tipo de división de la unidad de predicción, el modo de predicción, y el tamaño de la unidad de transformación para cada unidad de codificación que se corresponde con la profundidad codificada, y enviar los datos de imagen de la unidad de codificación máxima actual.
Dicho de otra forma, las unidades de datos que contienen la información de codificación incluyendo la misma información de división se pueden recopilar al observar el grupo de información de codificación asignado para la unidad de datos previamente determinada desde la unidad de codificación, la unidad de predicción, y la unidad mínima, y se puede considerar que las unidades de datos recopiladas son una unidad de datos que se va a descodificar por el descodificador 230 en el mismo modo de codificación.
El descodificador 230 puede reconstruir la imagen actual al descodificar los datos de imagen codificados en cada unidad de codificación máxima basándose en la información acerca de la profundidad codificada y el modo de codificación de acuerdo con las unidades de codificación máxima. El tipo de división, el modo de predicción, y la unidad de transformación se pueden leer como el modo de codificación para cada unidad de codificación de entre las unidades de codificación que tienen la estructura de árbol incluida en cada unidad de codificación máxima. Un procedimiento de descodificación puede incluir una predicción que incluye intra predicción y compensación de movimiento, y una transformación inversa.
El descodificador 230 puede realizar una intra predicción o compensación de movimiento de acuerdo con una división y un modo de predicción de cada unidad de codificación, basándose en la información acerca del tipo de división y el modo de predicción de la unidad de predicción de las unidades de codificación que tienen una estructura de árbol.
Asimismo, el descodificador 230 puede leer la estructura de unidades de transformación que tienen una estructura de árbol y puede realizar transformación inversa en cada unidad de codificación basándose en las unidades de transformación.
El aparato de descodificación de vídeo 200 puede tener información acerca de al menos una unidad de codificación que genera el error de codificación mínimo cuando la codificación se realiza de forma recursiva para cada unidad de codificación máxima, y puede usar la información para descodificar la imagen actual. Dicho de otra forma, las unidades de codificación que tienen una estructura de árbol determinadas para hacer las unidades de codificación óptima en cada unidad de codificación máxima se pueden descodificar. Asimismo, el tamaño máximo de la unidad de codificación se determina en consideración de la resolución y una cantidad de datos de imagen.
Por consiguiente, incluso si los datos de imagen tienen una resolución alta y una gran cantidad de datos, los datos de imagen se pueden descodificar y reconstruir de forma eficiente mediante el uso de un tamaño de una unidad de codificación y un modo de codificación, que se determinan de forma adaptable de acuerdo con características de los datos de imagen, mediante el uso de información acerca de un modo de codificación óptimo recibido de un codificador.
La figura 15 es un diagrama para describir un concepto de unas unidades de codificación de acuerdo con un ejemplo.
Un tamaño de una unidad de codificación se puede expresar en ancho x altura, y puede ser 64 x 64, 32 x 32, 16 x 16, y 8 x 8. Una unidad de codificación de 64 x 64 puede estar dividida en divisiones de 64 x 64, 64 x 32, 32 x 64, o 32 x 32, una unidad de codificación de 32 x 32 puede estar dividida en divisiones de 32 x 32, 32 x 16, 16 x 32, o 16 x 16, una unidad de codificación de 16 x 16 puede estar dividida en divisiones de 16 x 16, 16 x 8, 8 x 16, u 8 x 8 y una unidad de codificación de 8 x 8 puede estar dividida en divisiones de 8 x 8, 8 x 4, 4 x 8 o 4 x 4.
En los datos de vídeo 310, una resolución es 1920 x 1080, un tamaño máximo de una unidad de codificación es 64, y una profundidad máxima es 2. En los datos de unidad 320, una resolución es 1920 x 1080, un tamaño máximo de una unidad de codificación es 64, y una profundidad máxima es 3. En los datos de vídeo 330, una resolución es 352 x 288, un tamaño máximo de una unidad de codificación es 16, y una profundidad máxima es 1. La profundidad máxima mostrada en la figura 15 denota un número total de divisiones de una unidad de codificación máxima a una unidad de descodificación mínima.
Si una resolución es alta o una cantidad de datos es grande, un tamaño máximo de una unidad de codificación puede ser grande para no solo aumentar la eficiencia de codificación sino también reflejar de forma precisa las características de una imagen. Por consiguiente, el tamaño máximo de la unidad de codificación de los datos de vídeo 310 y 320 que tienen la resolución más alta que los datos de vídeo 330 puede ser 64.
Debido a que la profundidad máxima de los datos de vídeo 310 es 2, las unidades de codificación 315 de los datos de vídeo 310 pueden incluir una unidad de codificación máxima que tienen un tamaño de eje largo de 64, y las unidades de codificación que tienen tamaños de eje largo de 32 y 16 debido a que las profundidades se agudizan a dos capas mediante la división de la unidad de codificación máxima dos veces. Mientras tanto, debido a que la profundidad máxima de los datos de vídeo 330 es 1, las unidades de codificación 335 de los datos de vídeo 330 pueden incluir una unidad de codificación máxima que tiene un tamaño de eje largo de 16, y las unidades de codificación que tienen un tamaño de eje largo de 8 debido a que las profundidades se agudizan a una capa mediante la división de la unidad de codificación máxima una vez.
Debido a que la profundidad máxima de los datos de vídeo 320 es 3, las unidades de codificación 325 de los datos de vídeo 320 pueden incluir una unidad de codificación máxima que tiene un tamaño de eje largo de 64 y unas unidades de codificación que tienen tamaños de eje largo de 32, 16, y 8 debido a que las profundidades se agudizan a 3 capas mediante la división de la unidad de codificación máxima tres veces. A medida que una profundidad se agudiza, la información detallada se puede expresar de forma precisa.
La figura 16 es un diagrama de bloques de un codificador de imagen 400 que se basa en unas unidades de codificación, de acuerdo con una realización de la presente invención.
El codificador de imagen 400 realiza operaciones del codificador 120 del aparato de codificación de vídeo 100 para codificar datos de imagen. Dicho de otra forma, un intra pronosticador 410 realiza una intra predicción en unidades de codificación en un intra modo, de entre una trama actual 405, y un estimador de movimiento 420 y un compensador de movimiento 425 realiza una inter estimación y una compensación de movimiento en unidades de codificación en un inter modo de entre la trama actual 405 mediante el uso de la trama actual 405, y una trama de referencia 495.
Con el fin de realizar de forma precisa estimación de movimiento mediante el uso de píxeles de referencia en unidades de sub-pel, el estimador de movimiento 420 y el compensador de movimiento 425 pueden generar píxeles en las unidades de sub-pel mediante la interpolación de píxeles en unidades de pel de valor entero. Un filtro de interpolación para generar píxeles en unidades de sub-pel puede ser el filtro de interpolación de alisado que se ha descrito en lo que antecede en relación con las figuras 1 y 13A.
En la salida de datos del intra pronosticador 410, el estimador de movimiento 420, y el compensador de movimiento 425 se envía como un coeficiente de transformación cuantificado a través de un transformador 430 y un cuantificador 440. El coeficiente de transformación cuantificado se reconstruye como datos en un dominio espacial a través de un cuantificador inverso 460 y un transformador inverso 470, y los datos reconstruidos en el dominio espacial se envían como la trama de referencia 495 después de pos-procesarse a través de un filtro de desbloqueo 480 y un filtro de bucle 490. El coeficiente de transformación cuantificado se puede enviar como una secuencia de bits 455 a través de un codificador por entropía 450.
Con el fin de que el codificador de imagen 400 se aplique en el aparato de codificación de vídeo 100, todos los elementos del codificador de imagen 400, es decir, el intra pronosticador 410, el estimador de movimiento 420, el compensador de movimiento 425, el transformador 430, el cuantificador 440, el codificador por entropía 450, el cuantificador inverso 460, el transformador inverso 470, el filtro de desbloqueo 480, y el filtro de bucle 490, tienen que realizar operaciones basándose en cada unidad de codificación de entre unas unidades de codificación que tienen una estructura de árbol, mientras consideran la profundidad máxima de cada unidad de codificación máxima.
En concreto, el intra pronosticador 410, el estimador de movimiento 420, y el compensador de movimiento 425 tienen que determinar divisiones y un modo de predicción de cada unidad de codificación de entre las unidades de codificación que tienen una estructura de árbol mientras se considera el tamaño máximo y la profundidad máxima de una unidad de codificación máxima actual, y el transformador 430 tiene que determinar el tamaño de la unidad de transformación en cada unidad de codificación de entre las unidades de codificación que tienen una estructura de árbol.
La figura 17 es un diagrama de bloques de un descodificador de imagen 500 que se basa en unas unidades de codificación, según un ejemplo.
Un analizador 510 analiza datos de imagen codificados para descodificar e información acerca de la codificación requerida para descodificar a partir de una secuencia de bits 505. Los datos de imagen codificados se envían como datos inversamente cuantificados a través de un descodificador por entropía 520 y un cuantificador inverso 530, y los datos inversamente cuantificados se reconstruyen a datos de imagen en un dominio espacial a través de un transformador inverso 540.
Un intra pronosticador 550 realiza una intra predicción sobre unidades de codificación en un intra modo con respecto a los datos de imagen en el dominio espacial, y un compensador de movimiento 560 realiza compensación de movimiento sobre unidades de codificación en un inter modo mediante el uso de una trama de referencia 585.
Con el fin de realizar de forma precisa estimación de movimiento mediante el uso de píxeles de referencia en unidades de sub-pel, el compensador de movimiento 560 puede generar píxeles en unidades de sub-pel mediante la interpolación de píxeles en unidades de pel de valor entero. Un filtro de interpolación para generar píxeles en unidades de sub-pel puede ser el filtro de interpolación de alisado que se ha descrito en lo que antecede en relación con las figuras 2 y 13B.
Los datos de imagen en el dominio espacial, que pasan a través del intra pronosticador 550 y el compensador de movimiento 560, se pueden enviar como una trama reconstruida 595 después de pos procesarse a través de un filtro de desbloqueo 570 y un filtro de bucle 580. Asimismo, los datos de imagen que se pos-procesan a través del filtro de desbloqueo 570 y el filtro de bucle 580 se pueden enviar como la trama de referencia 585.
Con el fin de descodificar los datos de imagen en el descodificador 230 del aparato de descodificación de vídeo 200, el descodificador de imagen 500 puede realizar operaciones que se realizan después del analizador 510.
Con el fin de que el descodificador de imagen 500 se aplique en el aparato de descodificación de vídeo 200, todos los elementos del descodificador de imagen 500, es decir, el analizador 510, el descodificador por entropía 520, el cuantificador inverso 530, el transformador inverso 540, el intra pronosticador 550, el compensador de movimiento 560, el filtro de desbloqueo 570, y el filtro de bucle 580, tienen que realizar operaciones basándose en unas unidades de codificación que tienen una estructura de árbol para cada unidad de codificación máxima.
En concreto, la intra predicción 550 y el compensador de movimiento 560 tienen que determinar divisiones y un modo de predicción para cada una de las unidades de codificación que tienen una estructura de árbol, y el transformador inverso 540 tiene que determinar un tamaño de una unidad de transformación para cada unidad de codificación.
La figura 18 es un diagrama que ilustra unas unidades de codificación más profunda de según unas profundidades y unas divisiones.
El aparato de codificación de vídeo 100 y el aparato de descodificación de vídeo 200 usan unidades de codificación jerárquica para considerar características de una imagen. Una altura máxima, un ancho máximo, y una profundidad máxima de unidades de codificación se pueden determinar de forma adaptable de acuerdo con las características de la imagen, o se pueden establecer de forma diferente por un usuario. Los tamaños de las unidades de codificación más profunda de acuerdo con unas profundidades se pueden determinar de acuerdo con el tamaño máximo previamente determinado de la unidad de codificación.
En una arquitectura jerárquica 600 de unidades de codificación, la altura máxima y el ancho máximo de las unidades de codificación son cada uno 64, y la profundidad máxima es 3. En este caso, la profundidad máxima denota el número total de veces que se realiza la división a partir de la codificación máxima a una unidad de codificación mínima. Debido a que una profundidad se agudiza a lo largo de un eje vertical de la estructura jerárquica 600, se divide cada uno de una altura y un ancho de la unidad de codificación más profunda. Asimismo, una unidad de predicción y unas divisiones, que son bases para la codificación por predicción de cada unidad de codificación más profunda, se muestran a lo largo de un eje horizontal de la estructura jerárquica 600.
Dicho de otra forma, una unidad de codificación 610 es una unidad de codificación máxima de la estructura jerárquica 600, en la que una profundidad de 0 y un tamaño, es decir, una altura por ancho, es 64 x 64. La profundidad se agudiza a lo largo del eje vertical y existen una unidad de codificación 620 que tiene un tamaño de 32 x 32 y una profundidad de 1, una unidad de codificación 630 que tiene un tamaño de 16 x 16 y una profundidad de 2 y una unidad de codificación 640 que tiene un tamaño de 8 x 8 y una profundidad de 3. La unidad de codificación 640 que tiene el tamaño de 8 x 8 y la profundidad de 3 es una unidad de codificación mínima.
La unidad de predicción y las divisiones de una unidad de codificación se disponen a lo largo del eje horizontal de acuerdo con cada profundidad. Dicho de otra forma, si la unidad de codificación 610 que tiene el tamaño de 64 x 64 y la profundidad de 0 es una unidad de predicción, la unidad de predicción se puede dividir en divisiones incluidas en la unidad de codificación 610, es decir, una división 610 que tiene un tamaño de 64 x 64, unas divisiones 612 que tienen el tamaño de 64 x 32, unas divisiones 614 que tienen el tamaño de 32 x 64, o divisiones 616 que tienen el tamaño de 32 x 32.
De forma similar, una unidad de predicción de la unidad de codificación 620 que tiene el tamaño de 32 x 32 y la profundidad de 1 se puede dividir en divisiones incluidas en la unidad de codificación 620, es decir, una división 620 que tiene un tamaño de 32 x 32, unas divisiones 622 que tienen un tamaño de 32 x 16, unas divisiones 624 que tienen un tamaño de 16 x 32, o divisiones 626 que tienen un tamaño de 16 x 16.
De forma similar, una unidad de predicción de la unidad de codificación 630 que tienen el tamaño de 16 x 16 y la profundidad de 2 se puede dividir en divisiones incluidas en la unidad de codificación 630, es decir, una división que tiene un tamaño de 16 x 16, unas divisiones 632 que tienen un tamaño de 16 x 8, unas divisiones 634 que tiene un tamaño de 8 x 16, o divisiones 636 que tienen un tamaño de 8 x 8.
De forma similar, una unidad de predicción de la unidad de codificación 640 que tiene el tamaño de 8 x 8 y la profundidad de 3 se puede dividir en divisiones incluidas en la unidad de codificación 640, es decir una división que tiene un tamaño de 8 x 8, unas divisiones 642 que tienen un tamaño de 8 x 4, unas divisiones 644 que tienen un tamaño de 4 x 8, o divisiones 646 que tienen un tamaño de 4 x 4.
Con el fin de determinar que la al menos una profundidad codificada de las unidades de codificación que constituyen la unidad de codificación máxima 610, el codificador 120 del aparato de codificación de vídeo 100 realiza una codificación para unidades de codificación que se corresponden con cada profundidad incluida en la unidad de codificación máxima 610.
Un número de unidades de codificación más profunda de acuerdo con unas profundidades que incluyen datos en el mismo intervalo y el mismo tamaño aumenta a medida que se agudiza la profundidad. Por ejemplo, cuatro unidades de codificación que se corresponden con una profundidad de 2 se requieren para cubrir datos que se incluyen en una unidad de codificación que se corresponde con una profundidad de 1. Por consiguiente, con el fin de comparar resultados de codificación de los mismos datos de acuerdo con unas profundidades, se codifica cada una de la unidad de codificación que se corresponde con la profundidad de 1 y cuatro unidades de codificación que se corresponden con la profundidad de 2.
Con el fin de realizar una codificación para una profundidad actual de entre las profundidades, un error de codificación mínimo se puede seleccionar para la profundidad actual para realizar una codificación para cada unidad de predicción en las unidades de codificación que se corresponden con la profundidad actual, a lo largo del eje horizontal de la estructura jerárquica 600. Como alternativa, el error de codificación mínimo se puede buscar mediante la comparación de los errores de codificación menores de acuerdo con unas profundidades, mediante la realización de una codificación para cada profundidad a medida que la profundidad se agudiza a lo largo del eje vertical de la estructura jerárquica 600. Una profundidad y una división que tiene el error de codificación mínimo de la unidad de codificación 610 se puede seleccionar como la profundidad codificada y un tipo de división de la unidad de codificación 610.
La figura 19 es un diagrama para describir una relación entre una unidad de codificación 710 y unas unidades de transformación 720.
El aparato de codificación de vídeo 100 o el aparato de descodificación de vídeo 200 codifica o descodifica una imagen de acuerdo con unidades de codificación que tienen tamaños menores que o iguales a una unidad de codificación máxima para cada unidad de codificación máxima. Los tamaños de unidades de transformación para transformación durante codificación se pueden seleccionar basándose en unas unidades de datos que no son mayores que una unidad de codificación correspondiente.
Por ejemplo, en el aparato de codificación de vídeo 100 o el aparato de descodificación de vídeo 200, si un tamaño de la unidad de codificación 710 es 64 x 64, la transformación se puede realizar mediante el uso de las unidades de transformación 720 que tienen un tamaño de 32 x 32.
Asimismo, los datos de la unidad de codificación 710 que tienen el tamaño de 64 x 64 se pueden codificar mediante la realización de la transformación en cada una de las unidades de transformación que tienen el tamaño de 32 x 32, 16 x 16, 8 x 8, y 4 x 4, que son menores que 64 x 64, y entonces se puede seleccionar una unidad de transformación que tiene el error de codificación menor.
La figura 20 es un diagrama para describir una información de codificación de unas unidades de codificación que se corresponden con una profundidad codificada.
La unidad de salida 130 del aparato de codificación de vídeo 100 puede codificar y transmitir una información 800 sobre un tipo de división, información 810 sobre un modo de predicción, e información 820 sobre un tamaño de una unidad de transformación para cada unidad de codificación que se corresponde con una profundidad codificada, como información acerca de un modo de codificación.
La información 800 representa información acerca de una forma de una división que se obtiene mediante la división de una unidad de predicción de una unidad de codificación actual, en la que la división es una unidad de datos para codificar por predicción la unidad de codificación actual. Por ejemplo, una unidad de codificación actual CU_0 que tiene un tamaño de 2N x 2N se puede dividir en cualquiera de una división 802 que tiene un tamaño de 2N x 2N, una división 804 que tiene el tamaño de 2N x N, una división 806 que tiene un tamaño de N x 2N, y una división 808 que tiene un tamaño de N x N. En el presente caso, la información 800 sobre un tipo de división se establece para indicar una de la división 804 que tiene tamaño de 2N x N, la división 806 tiene un tamaño de N x 2N, y la división 808 tiene un tamaño de N x N.
La información 810 representa un modo de predicción de cada división. Por ejemplo, la información 810 puede indicar un modo de codificación por predicción realizado sobre una división representada por la información 800, es decir, un intra modo 812, un inter modo 814, o un modo de salto 816.
La información 820 representa una unidad de transformación que se va a basar en cuándo se realiza la transformación sobre una unidad de codificación actual. Por ejemplo, la unidad de transformación puede ser una primera unidad de intra transformación 822, una segunda unidad de intra transformación 824, una primera unidad de inter transformación 826, o una segunda unidad de intra transformación 828.
El receptor y extractor 220 del aparato de descodificación de vídeo 200 puede extraer y usar la información<8 0 0>, 810, y 820 para la descodificación, de acuerdo con cada unidad de codificación más profunda.
La figura 21 es un diagrama de unidades de codificación más profunda según unas profundidades.
La información de división se puede usar para indicar un cambio de una profundidad. La información de división representa si una unidad de codificación de una profundidad actual está dividida en unidades de codificación de una profundidad inferior.
Una unidad de predicción 910 para la codificación por predicción de una unidad de codificación 900 que tiene una profundidad de 0 y un tamaño de 2N_0 x 2N_0 puede incluir divisiones de un tipo de división 912 que tiene un tamaño de 2N_0 x 2N_0 como un tipo de división 914 que tiene un tamaño de 2N_0 x N_0, un tipo de división 916 que tiene un tamaño de N_0 x 2N_0, y un tipo de división 918 que tiene un tamaño de N_0 x N_0. La figura 9 solo ilustra los tipos de división 912 a 918 que se obtienen mediante la división de forma simétrica de la unidad de predicción 910, pero un tipo de división no está limitado a esto, y las divisiones de la unidad de predicción 910 pueden incluir divisiones asimétricas, unas divisiones que tienen una forma previamente determinada, y unas divisiones que tienen una forma geométrica.
La codificación por predicción se realiza de forma repetida sobre una división que tiene un tamaño de 2N_0 x 2N_0, dos divisiones que tiene un tamaño de 2N_0 x N_0, dos divisiones que tiene un tamaño de N_0 x 2N_0, y cuatro divisiones que tienen un tamaño de N_0 x N_0, de acuerdo con cada tipo de división. La codificación por predicción en un intra modo y un inter modo se pueden realizar sobre las divisiones que tienen los tamaños de 2N_0 x 2N_0, N_0 x 2n_0, 2N_0 x N_0, N_0 x N_0. La codificación por predicción en un modo de salto se realiza solo en la división que tiene el tamaño de 2N_0 x 2N_0.
Errores de codificación que incluyen la codificación por predicción en los tipos de división 912 a 918 se comparan, y el error de codificación menor se determina entre los tipos de división. Si un error de codificación es más pequeño en uno de los tipos de división 912 a 916, la unidad de predicción 910 puede no estar dividida en una profundidad inferior.
Si el error de codificación es el menor en el tipo de división 918, se cambia una profundidad de 0 a 1 para dividir el tipo de división 918 en operación 920, y la codificación se realiza de forma repetida sobre unidades de codificación 930 que tienen una profundidad de 2 y un tamaño de N_0 x N_0 para buscar un error de codificación mínima.
La unidad de predicción 940 para codificar por predicción la unidad de codificación 930 que tiene una profundidad de 1 y un tamaño de 2N_1 x 2N_1 (= N_0 x N_0) puede incluir divisiones de un tipo de división 942 que tiene un tamaño de 2N_1 x 2N_1, un tipo de división 944 que tiene un tamaño de 2N_1 x N_1, un tipo de división 946 que tiene un tamaño de N_1 x 2N_1, y tipo de división 948 que tiene un tamaño de N_1 x N_1.
Si un error de codificación es el menor en el tipo de división 948, se cambia una profundidad de 1 a 2 para dividir el tipo de división 948 en operación 950, y la codificación se realiza de forma repetida en unidades de codificación 960, que tienen una profundidad de 2 y un tamaño de N_2 x N_2 para buscar un error de codificación mínimo.
Cuando una profundidad máxima es d, las unidades de codificación más profunda de acuerdo con unas profundidades se pueden asignar hasta cuando una profundidad se vuelve d - 1, y la información de división se puede codificar hasta cuando la profundidad es 0 a d - 2. Dicho de otra forma, cuando se realiza una codificación hasta cuando la profundidad es d -1, después de que una unidad de codificación que se corresponde con una profundidad de d - 2 se divida en la operación 970, una unidad de predicción 990 para codificar por predicción una unidad de codificación 980 que tiene una profundidad de d -1 y un tamaño de 2N_(d -1 ) x 2N_(d -1 ) puede incluir divisiones de un tipo de división 992 que tienen un tamaño de 2N_(d -1 ) x 2N_(d -1), un tipo de división 934 que tiene un tamaño de 2N_(d -1 ) x N_(d -1), un tipo de división 196 que tiene un tamaño de N_(d -1 ) x 2N_ (d -1), y un tipo de división 998 que tiene un tamaño de N_(d -1 ) x N_(d -1).
La codificación por predicción se puede realizar de forma repetida en una división que tiene un tamaño de 2N_(d -1 ) x 2N_(d -1), dos divisiones que tienen un tamaño de 2N_(d -1 ) x N_(d -1),, dos divisiones que tienen un tamaño de N_(d -1 ) x 2N_(d -1), cuatro divisiones que tienen un tamaño de N_(d -1 ) x N_(d -1 ) de entre los tipos de división 992 a 998 para buscar un tipo de división que tiene un error de codificación mínimo.
Incluso cuando el tipo de inicio 998 tiene el error de codificación mínimo, debido a que la profundidad máxima es de, una unidad de codificación CU_(d -1 ) que tiene una profundidad de d -1 ya no se divide a una profundidad inferior, y una profundidad codificada para las unidades de codificación que constituyen una unidad de codificación máxima actual 900 se determina para ser d - 1 y un tipo de división de la unidad de codificación máxima actual 900 se puede determinar para ser N_(d -1 ) x N_(d -1). Asimismo, debido a que la profundidad máxima es de y una unidad de codificación mínima 980 que tiene una profundidad inferior a d -1 ya no se divide a una profundidad inferior, la información de división para la unidad de codificación mínima 980 no se establece.
Una unidad de datos 999 puede ser una 'unidad mínima' para la unidad de codificación máxima actual. Una unidad mínima puede ser una unidad de datos rectangular que se obtiene mediante la división de una unidad de codificación mínima 980 por 4. Al realizar la codificación de forma repetida, el aparato de codificación de vídeo 100 puede seleccionar una profundidad que tiene el error de codificación menor mediante la comparación de errores de codificación de acuerdo con unas profundidades de la unidad de codificación 900 para determinar una profundidad codificada, y establecer un tipo de división correspondiente y un modo de predicción como un modo de codificación de la profundidad codificada.
En ese sentido, los errores de codificación mínimos de acuerdo con las profundidades se comparan en todas las profundidades de 1 a d, y una profundidad que tiene el error de codificación menor se puede determinar como una profundidad codificada. La profundidad codificada, el tipo de división de la unidad de predicción, y el modo de predicción se pueden codificar y transmitir como información acerca de un modo de codificación. Asimismo, debido a que una unidad de codificación está dividida de una profundidad de 0 a una profundidad codificada, solo la información de división de la profundidad codificada se establece en 0, y la información de división de profundidades, excluyendo la profundidad codificada, se establece en 1.
El receptor y extractor 220 del aparato de descodificación de vídeo 200 puede extraer y usar la información acerca de la profundidad codificada y la unidad de predicción de la unidad de codificación 900 para descodificar la división 912. El aparato de codificación de vídeo 200 puede determinar una profundidad, en la que la información de división es 0, como una profundidad codificada mediante el uso de información de división de acuerdo con unas profundidades, y usar información acerca de un modo de codificación de la profundidad correspondiente para la descodificación.
Las figuras 22 a 24 son unos diagramas para describir una relación entre unas unidades de codificación 1010, unas unidades de predicción 1060 y unas unidades de transformación 1070.
Las unidades de codificación 1010 son unidades de codificación que tienen una estructura de árbol, que se corresponde con unas profundidades codificadas determinadas por el aparato de codificación de vídeo 100, en una unidad de codificación máxima. Las unidades de predicción 1060 son divisiones de unidades de predicción de cada una de las unidades de codificación 1010, y las unidades de transformación 1070 son unidades de transformación de cada una de las unidades de codificación 1010.
Cuando una profundidad de una unidad de codificación máxima es 0 en las unidades de codificación 1010, las profundidades de las unidades de codificación 1012 y 1054 son 1, las profundidades de unidades de codificación 1014, 1016, 1018, 1028, 1050, y 1052 son 2, las profundidades de las unidades de codificación 1020, 1022, 1024, 1026, 1030, 1032 y 1048 son 3, y las profundidades de las unidades de codificación 1040, 1042, 1044, y 1046 son 4.
En las unidades de predicción 1060, algunas unidades de codificación y 1014, 1016, 1022, 1032, 1048, 1050, 1052, y 1054 se obtienen mediante la división de las unidades de codificación de las unidades de codificación 1010. Dicho de otra forma, los tipos de división de las unidades de codificación 1014, 1022, 1050, y 1054 tienen un tamaño de 2N x N, los tipos de división en las unidades de codificación 1016, 1048, y 1052 tiene un tamaño de N x 2N, y un tipo de división de la unidad de codificación 1032 tiene un tamaño de N x N. Las unidades de predicción y las divisiones de las unidades de codificación 1010 son más pequeñas que o iguales a cada unidad de codificación.
La transformación o la transformación inversa se realizan sobre datos de imagen de la unidad de codificación 1052 en las unidades de transformación 1070 en una unidad de datos que es más pequeña que la unidad de codificación 1052. Asimismo, las unidades de codificación y 1014, 1016, 1022, 1032, 1048, 1050, y 1052 en las unidades de transformación 1070 son diferentes para aquellas en las unidades de predicción 1060 en términos de tamaños y formas. Dicho de otra forma, los datos de codificación y de descodificación de vídeo 100 y 200 pueden realizar una intra predicción, estimación de movimiento, compensación de movimiento, transformación, y una transformación de inversa de forma individual sobre una unidad de datos en la misma unidad de codificación.
Por consiguiente, la codificación se realiza de forma recursiva sobre cada una de las unidades de codificación que tienen una estructura jerárquica en cada región de una unidad de codificación máxima para determinar una unidad de codificación óptima y, por lo tanto, se pueden obtener las unidades de codificación que tienen una estructura de árbol recursiva. La información de codificación puede incluir información de división sobre una unidad de codificación, información acerca de un tipo de división, información acerca de un modo de predicción, e información acerca de un tamaño de una unidad de transformación. La Tabla 1 muestra la información de codificación que se puede establecer por los aparatos de codificación y de descodificación de vídeo 100 y 200.
Tabla 1
La unidad de salida 130 del aparato de codificación de vídeo 100 puede enviar la información de codificación sobre las unidades de codificación que tienen una estructura de árbol, y el receptor y extractor 220 del aparato de descodificación de vídeo 200 puede extraer la información de codificación sobre las unidades de codificación que tienen una estructura de árbol desde una secuencia de bits recibida.
La información de división representa si una unidad de codificación actual está dividida en unidades de codificación de una profundidad inferior. Si la información de división de una profundidad actual d es 0, una profundidad, en la cual una unidad de codificación actual ya no está dividida en una profundidad inferior, es una profundidad codificada y, por lo tanto, la información acerca de un tipo de división, modo de predicción, y un tamaño de una unidad de transformación se puede definir para la profundidad codificada. Si la unidad de codificación actual además está dividida de acuerdo con la información de división, la codificación se realiza de forma independiente en cuatro unidades de codificación de división de una profundidad inferior.
Un modo de predicción puede ser uno de un intra modo, un inter modo, y un modo de salto. El intra modo y el inter modo se pueden definir en todos los tipos de división, y el modo de salto se define solo en un tipo de división que tiene un tamaño de 2N x 2N.
La información acerca del tipo de división puede indicar tipos de división simétrica que tienen tamaños de 2N x 2N, 2N x N, N x 2N, y N x N, que se obtienen mediante la división de forma simétrica de una altura o un ancho de una unidad de predicción, y tipos de división asimétrica que tienen tamaños de 2N x nU, 2N x nD, nL x 2N y nR x 2N, que se obtienen mediante la división de forma simétrica de la altura o el ancho de la unidad de predicción. Los tipos de división asimétrica que tienen los tamaños de 2N x nU y 2N x nD se pueden obtener, de forma respectiva, mediante la división de una altura de la unidad de predicción en 1:3 y 3:1, y los tipos de división asimétrica que tienen los tamaños de nL x 2N y nR x 2N se pueden obtener, de forma respectiva, mediante la división del ancho de la unidad de predicción en 1:3 y 3:1.
El tamaño de la unidad de transformación se puede establecer por dos tipos en el intra modo y dos tipos en el inter modo. Dicho de otra forma, si la información de división de la unidad de transformación es 0, el tamaño de la unidad de transformación puede ser 2N x 2N, que es el tamaño de la unidad de codificación actual. Si la información de división de la unidad de transformación es 1, las unidades de transformación se pueden obtener mediante la división de la unidad de codificación actual. Asimismo, si un tipo de división de la unidad de codificación actual que tiene el tamaño de 2N x 2N es un tipo de división simétrica, un tamaño de una unidad de transformación puede ser N x N, y si el tipo de división de la unidad de codificación actual es un tipo de división asimétrica, el tamaño de la unidad de transformación puede ser N/2 x N/2.
La información de codificación sobre unidades de codificación que tienen una estructura de árbol puede incluir al menos una de una unidad de codificación que se corresponde con una profundidad codificada, una unidad de predicción y una unidad mínima. La unidad de codificación que se corresponde con la profundidad codificada puede incluir al menos una de una unidad de predicción y una unidad mínima que contiene la misma información de codificación.
Por consiguiente, se determina si se incluyen unidades de datos adyacentes en la misma unidad de codificación que se corresponde con la profundidad codificada mediante la comparación de información de codificación de las unidades de datos adyacentes. Asimismo, se determina una unidad de codificación correspondiente que se corresponde con una profundidad codificada mediante el uso de información de codificación de una unidad de datos y, por lo tanto, se puede determinar una distribución de profundidades codificadas en una unidad de codificación máxima.
Por consiguiente, si se predice una unidad de codificación actual basándose en la información de codificación de unas unidades de datos adyacentes, la información de codificación de unas unidades de datos en unidades de codificación más profunda adyacentes a la unidad de codificación actual se puede consultar y usar directamente.
Como alternativa, si se predice una unidad de codificación actual basándose en la información de codificación de unas unidades de datos adyacentes, las unidades de datos adyacentes a la unidad de codificación actual se buscan usando información codificada de las unidades de datos, y las unidades de codificación adyacentes buscadas se pueden consultar para predecir la unidad de codificación actual.
La figura 25 es un diagrama para describir una relación entre una unidad de codificación, una unidad de predicción o una división y una unidad de transformación, de acuerdo con una información de modo de codificación de la Tabla 1.
Una unidad de codificación máxima 1300 incluye unidades de codificación 1302, 1304, 1306, 1312, 1314, 1316 y 1318 de profundidades codificadas. En el presente caso, debido a que la unidad de codificación 1318 es una unidad de codificación de una profundidad codificada, la información de división se puede establecer en 0. La información acerca de un tipo de división de la unidad de codificación 1318 que tiene un tamaño de 2N x 2N se puede establecer para ser una de un tipo de división 1322 que tiene un tamaño de 2N x 2N, un tipo de división 1324 que tiene un tamaño de 2N x N, un tipo de división 1326 que tiene un tamaño de N x 2N, un tipo de división 1328 que tiene un tamaño de N x N, un tipo de división 1332 que tiene un tamaño de 2N x nU, un tipo de división 1334 que tiene un tamaño de 2N x nD, un tipo de división 1336 que tiene un tamaño de nL x 2N, y un tipo de división 1338 que tiene un tamaño de nR x 2N.
La información de división (indicador de tamaño de TU) de una unidad de transformación es una clase de un índice de transformación, y el tamaño de una unidad de transformación que se corresponde con el índice de transformación puede variar de acuerdo con un tipo de unidad de predicción o un tipo de división de una unidad de codificación.
Por ejemplo, cuando se establece el tipo de división para ser simétrico, es decir el tipo de división 1322, 1324, 1326, 1328, una unidad de transformación 1342 que tiene un tamaño de 2N x 2N se establece si un indicador de tamaño TU es 0, y la unidad de transformación 1344 que tienen un tamaño de N x N se establece si un indicador de tamaño TU es 1.
Cuando el tipo de división se establece para ser simétrico, es decir, el tipo de división 1332, 1334, 1336, o 1338, una unidad de transformación 1352 que tiene un tamaño de 2N x 2N se establece si un indicador de tamaño TU es 0, una unidad de transformación 1354 que tiene un tamaño de N/2 x N/2 se hace un indicador de tamaño TU es 1.
Haciendo referencia a la figura 21, el indicador de tamaño TU es un indicador que tiene un valor de 0 o 1, pero el indicador de tamaño TU no está limitado a 1 bit y una unidad de transformación que se puede dividir de forma jerárquica teniendo una estructura de árbol mientras el indicador de tamaño TU aumenta desde 0. El indicador de tamaño TU se puede usar como un ejemplo de un índice de transformación.
En este caso, el tamaño de una unidad de transformación que se ha usado realmente se puede expresar mediante el uso de un indicador de tamaño TU de una unidad de transformación, junto con un tamaño máximo y un tamaño mínimo de la unidad de transformación. De acuerdo con un ejemplo, el aparato de codificación de vídeo 100 es capaz de codificar información de tamaño de unidad de transformación máximo, información de tamaño de unidad de transformación mínimo, y un indicador de tamaño TU máximo. El resultado de codificación de la información de tamaño de unidad de transformación máximo, la información de tamaño de unidad de transformación mínimo y el indicador de tamaño TU máximo se pueden insertar dentro de un SPS. El aparato de descodificación de vídeo 200 puede codificar vídeo mediante el uso de la información de tamaño de unidad de transformación máximo, la información de tamaño de unidad de transformación mínimo, y el indicador de tamaño TU máximo.
Por ejemplo, (a) si el tamaño de una unidad de codificación actual es 64 x 64 y el tamaño de la unidad de transformación máximo es 32 x 32, entonces (a - 1) el tamaño de una unidad de transformación puede ser 32 x 32 cuando un indicador de tamaño TU es 0, (a -2 ) puede ser 16 x 16 cuando el indicador de tamaño TU es 1, y (a - 3) puede ser 8 x 8 cuando el indicador de tamaño TU es 2.
Como otro ejemplo, (b) si el tamaño de la unidad de codificación actual, es 32 x 32 y un tamaño de unidad de transformación mínimo es 32 x 32, entonces (b - 1) el tamaño de la unidad de transformación puede ser 32 x 32 cuando el indicador de tamaño TU es 0. En el presente caso, el indicador de tamaño TU se puede establecer en un valor diferente de 0, debido a que el tamaño de la unidad de transformación no puede ser menor que 32 x 32.
Como otro ejemplo, (c) si el tamaño de la unidad de codificación actual es 64 x 64 y un indicador de tamaño TU máximo es 1, entonces el indicador de tamaño TU puede ser 0 o 1. En el presente caso, el indicador de tamaño TU no se puede establecer en un valor diferente de 0 o 1.
Por lo tanto, si se define que el indicador de tamaño TU máximo es 'MaxTransformSizelndex', un tamaño de unidad de transformación mínimo es 'MinTransformSize', y un tamaño de la unidad de transformación de raíz es 'RootTuSize' cuando el indicador de tamaño TU es 0, entonces un tamaño de unidad de transformación mínimo actual 'CurrMinTuSize' que se puede determinar en una unidad de codificación actual, se puede definir por la Ecuación (1):
CurrMinTuSize=máx (MinTransformSize, RootTuSize/(2AMaxTransformSizelndex))... (1)
En comparación con el tamaño de unidad de transformación mínimo actual 'CurrMinTuSize' que se puede determinar en la unidad de codificación actual, el tamaño de unidad de raíz 'RootTuSize' puede denotar un tamaño de unidad de transformación máximo que se puede seleccionar en el sistema. En la Ecuación (1), 'RootTuSize/(2AMaxTransformSizelndex)' denota un tamaño de unidad de transformación cuando el tamaño de unidad de transformación de raíz 'RootTuSize' se divide un número de veces que se corresponde con el indicador de tamaño TU máximo, y 'MinTransformSize' denota un tamaño de transformación mínimo. Por lo tanto, un valor menor de entre ‘RootTuSize/(2AMaxTransformSizelndex)' y ‘MinTransformSize' puede ser el tamaño de unidad de transformación mínimo actual ‘CurrMinTuSize' que se puede determinar en la unidad de codificación actual.
El tamaño de la unidad de transformación de raíz ‘RootTuSize' puede variar de acuerdo con el tipo de un modo de predicción.
Por ejemplo, si un de predicción actual es un inter modo, entonces ‘RootTuSize' se puede determinar mediante el uso de la Ecuación (2) a continuación. En la Ecuación (2), ‘MaxTransformSize' denota un tamaño de unidad de transformación máximo, y ‘PUSize' denota un tamaño de unidad de predicción actual.
RootTuSize = mín (MaxTransformSize, PUSize) ... (2)
Es decir, si el modo de inter predicción actual es el inter modo, el tamaño de unidad de transformación de raíz ‘RootTuSize' cuando el indicador de tamaño TU es 0 puede ser un valor menor de entre el tamaño de unidad de transformación máximo y el tamaño de unidad de predicción actual.
Si un modo de predicción de una unidad de división actual es un intra modo, ‘RootTuSize' se puede determinar mediante el uso de la Ecuación (3) a continuación. En la Ecuación (3), ‘PartitionSize' denota el tamaño de la unidad de división actual.
RootTuSize = mín (MaxTransformSize, PartitionSize) ... (3)
Es decir, si el modo de predicción actual es el intra modo, el tamaño de unidad de transformación de raíz ‘RootTuSize' puede ser un valor menor de entre el tamaño de unidad de transformación máximo y el tamaño de la unidad de división actual.
No obstante, el tamaño de unidad de transformación máximo actual que varía de acuerdo con el tipo de un modo de predicción en una unidad de división, el tamaño de unidad de transformación de raíz ‘RootTuSize' es solo un ejemplo y la presente invención no está limitada a esto.
La figura 26 es un diagrama de flujo de un procedimiento de codificación de vídeo que usa un filtro de interpolación de alisado basándose en unas unidades de codificación que tienen una estructura de árbol.
En la operación 2610, con el fin de codificar una imagen actual de un vídeo de entrada, la imagen actual se divide en al menos una unidad de codificación máxima. Cada una de al menos una región de división, que se obtiene mediante la división de una región de cada unidad de codificación máxima de acuerdo con unas profundidades, se puede codificar. Con el fin de codificar cada región de división de acuerdo con unas profundidades, se realizan transformación y cuantificación en un resultado de inter predicción basándose en una interpolación de unidad de sub-pel, e intra predicción.
En el presente caso, una profundidad de división para enviar un resultado de codificación final de acuerdo con al menos una región de división se puede determinar mediante la comparación de resultados de regiones de división de codificación de acuerdo con unas profundidades, y se pueden determinar unidades de codificación incluidas en una unidad de codificación máxima actual y que tienen una estructura de árbol. De forma similar a las unidades de codificación que tienen una estructura de árbol, las unidades de transformación que tienen una estructura de árbol se pueden determinar. Dicho de otra forma, como un resultado de codificación de imagen, como las unidades de codificación determinadas que tienen una estructura de árbol, un resultado de codificación de las unidades de transformación que tienen una estructura de árbol se puede enviar como datos codificados de la imagen.
La inter predicción se puede realizar sobre cada unidad de predicción o división de la unidad de codificación. El movimiento de una unidad de predicción o división actual se puede predecir con referencia a píxeles generados mediante la realización de una interpolación de unidad de sub-pel. De entre los filtros de interpolación para generar un valor de píxel de unidad de sub-pel, un filtro de interpolación se selecciona de forma diferente basándose en una ubicación de interpolación unidad de sub-pel y un alisamiento. Con el fin de realizar de forma eficiente interpolación de imagen, los coeficientes de filtro de interpolación se pueden determinar de forma selectiva.
De entre los coeficientes de filtro de interpolación previamente almacenados en la memoria, se puede seleccionar un filtro de interpolación deseado de acuerdo con una ubicación de interpolación de unidad de sub-pel, un alisamiento, el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una función de base de filtrado de interpolación basándose en transformación, y una componente de color, y la interpolación se pueden realizar para generar el valor de píxel de unidad de sub-pel.
En la operación 2620, los datos de imagen que se obtienen como el resultado de codificación final de acuerdo con al menos una región de división de cada unidad de codificación máxima, e información acerca de la profundidad codificada y el modo de codificación se envían como una secuencia de bits.
La información acerca del modo de codificación puede incluir información acerca de la profundidad codificada o información de división, información acerca de un tipo de división de una unidad de predicción, información acerca de un modo de predicción, e información acerca de una estructura de árbol de unidades de transformación. La información de codificación puede incluir información acerca de un filtro de interpolación usado para realizar una codificación por predicción de unidad de sub-pel. La información codificada sobre el modo de codificación se puede transmitir a un aparato de descodificación junto con los datos de imagen codificados.
La figura 27 es un diagrama de flujo de un procedimiento de descodificación de vídeo que usa un filtro de interpolación de alisado basándose en unas unidades de codificación que tienen una estructura de árbol.
En la operación 2710, se recibe y se analiza una secuencia de bits de un vídeo codificado.
En la operación 2720, los datos de imagen codificados de una imagen actual asignada a una unidad de codificación máxima, y la información acerca de una profundidad codificada y un modo de codificación de acuerdo con unidades de codificación máxima se extraen de la secuencia de bits analizada. La información acerca de un filtro de interpolación requerido para realizar una compensación de movimiento de unidad de sub-pel se puede extraer de la información de codificación.
La información acerca de la profundidad codificada y el modo de codificación se puede extraer de la información de codificación. De acuerdo con la información acerca de la profundidad codificada y el modo de codificación, una unidad de codificación máxima se puede dividir en unidades de codificación de acuerdo con una estructura de árbol. Asimismo, de acuerdo con la información acerca de una estructura de árbol de unidades de transformación incluidas en la información que se extrae, se pueden determinar las unidades de transformación que tienen una estructura de árbol de acuerdo con unas profundidades de transformación de las unidades de codificación.
En la operación 2730, mediante el uso de la información acerca de la profundidad codificada y el modo de codificación de acuerdo con cada unidad de codificación máxima, los datos de imagen de cada unidad de codificación máxima se pueden descodificar basándose en las unidades de codificación que tienen una estructura de árbol, unidades de predicción, y las unidades de transformación que tienen una estructura de árbol. Debido a que una unidad de codificación actual se codifica basándose en la información acerca de la profundidad codificada y el modo de codificación, una unidad de codificación actual se puede transformar de forma inversa mediante el uso de una unidad de transformación determinada de entre las unidades de transformación que tienen una estructura de árbol.
Los datos de imagen codificados se pueden descodificar mediante la realización de varias operaciones de descodificación tal como compensación de movimiento e intra predicción sobre cada unidad de predicción o división de la unidad de codificación basándose en el modo de codificación.
En concreto, si se extraen datos residuales codificados y datos de referencia extraídos basándose en píxeles interpolados en una unidad de sub-pel, la compensación de movimiento sobre una unidad de predicción actual o una división actual se puede realizar basándose en los píxeles interpolados en las unidades de sub-pel. De entre los filtros de interpolación para generación de un valor de píxel de unidad de sub-pel, un filtro de interpolación se puede seleccionar de forma diferente basándose en una ubicación de interpolación de unidad de sub-pel y un alisamiento.
Con el fin de realizar de forma eficiente interpolación de imagen, los coeficientes de filtro de interpolación se pueden determinar de forma selectiva. De entre los coeficientes de filtro de interpolación previamente almacenados en la memoria, se puede seleccionar un filtro de interpolación deseado de acuerdo con una ubicación de interpolación de unidad de sub-pel, un alisamiento, el número de tomas de filtro, una profundidad de bits, un factor de puesta a escala, una función de bases de filtrado de interpolación basándose en transformación, y una componente de color, e interpolación se puede realizar para generar el valor de píxel de unidad de sub-pel.
Una imagen de referencia y una región de referencia se determinan mediante el uso de los datos de referencia, y el valor de píxel de unidad de sub-pel se puede generar mediante la realización de un filtrado de interpolación sobre dos o más píxeles de referencia de unidad de pel de valor entero de la imagen de referencia. La compensación de movimiento se puede realizar sobre la unidad de predicción actual o la división actual mediante la combinación del valor de píxel de unidad de sub-pel generado y los datos residuales y, por lo tanto, se puede realizar descodificación por predicción.
Debido a que cada unidad de codificación máxima se descodifica, los datos de imagen en un dominio espacial se pueden reconstruir, y una imagen y un vídeo que es una secuencia de imagen se pueden reconstruir. El vídeo reconstruido se puede reproducir por un aparato de reproducción, se puede almacenar en un medio de almacenamiento, o se puede transmitir en una red.
Las realizaciones de la presente invención se pueden escribir como programas informáticos y se pueden implementar en ordenadores digitales de uso general que ejecutan los programas usando un medio de registro legible por ordenador. Los ejemplos del medio de registro legible por ordenador incluyen medios de almacenamiento magnético (por ejemplo, ROM, discos flexibles, discos duros, etc.) y medios de registro ópticos (por ejemplo, CD-ROM o DVD).
Claims (3)
1. Un procedimiento de codificación de vídeo que utiliza la compensación de movimiento, el método de codificación de vídeo comprende:
determinar un bloque de referencia de luma para la predicción de un bloque actual utilizando un vector de movimiento de luma del bloque actual;
generar muestras de luma de una ubicación de 1/2 píxel en el bloque de referencia de luma aplicando un filtro de interpolación de 8 tomas a muestras de luma de una ubicación de píxel entero de una imagen de referencia de luma;
determinar un bloque de referencia de croma para la predicción del bloque actual utilizando un vector de movimiento de croma del bloque actual;
generar muestras de croma de una ubicación de 1/2 píxel en el bloque de referencia de croma aplicando un filtro de interpolación a muestras de croma de una ubicación de píxel entero de una imagen de referencia de croma;
obtener datos predichos del bloque actual basándose en las muestras de luma generadas de la ubicación de 1/2 píxel y en las muestras de croma generadas de la ubicación de 1/2 píxel; generar datos residuales para el bloque actual basándose en los datos predichos;
realizar la transformación de los datos residuales generados para generar coeficientes de transformación;
realizar la cuantificación de los coeficientes de transformación para generar coeficientes de transformación cuantificados;
realizar la codificación por entropía de los coeficientes de transformación cuantificados para generar datos residuales codificados; y
generar un flujo de bits que comprenda información de vector de movimiento de luma que indique el vector de movimiento de luma, información de vector de movimiento de croma que indique el vector de movimiento de croma y los datos residuales codificados para el bloque actual,
caracterizado por que
el filtro de interpolación de 8 tomas comprende ocho coeficientes de filtro para generar las muestras de luma de la ubicación de 1/2 píxel, que son { -1, 4, -11, 40, 40, -11, 4, -1}.
2. Un aparato de codificación de video que emplea compensación del movimiento, el aparato de codificación de video comprende:
un inter predictor configurado para:
determinar un bloque de referencia de luma para la predicción de un bloque actual utilizando un vector de movimiento de luma del bloque actual,
generar muestras de luma de una ubicación de 1/2 píxel en el bloque de referencia de luma aplicando un filtro de interpolación de 8 tomas a muestras de luma de una ubicación de píxel entero de una imagen de referencia de luma,
determinar un bloque de referencia de croma para la predicción del bloque actual utilizando un vector de movimiento de croma del bloque actual;
generar muestras de croma de una ubicación de 1/2 píxel en el bloque de referencia de croma aplicando un filtro de interpolación a muestras de croma de una ubicación de píxel entero de una imagen de referencia de croma; y
obtener datos predichos del bloque actual basándose en las muestras de luma generadas de la ubicación de 1/2 píxel y las muestras de croma generadas de la ubicación de 1/2 píxel; un generador de datos residuales configurado para generar datos residuales para el bloque actual basándose en los datos predichos del bloque actual;
un transformador configurado para realizar la transformación en los datos residuales para generar coeficientes de transformación;
un cuantificador configurado para realizar la cuantificación de los datos residuales transformados para generar coeficientes de transformación cuantificados;
un codificador de entropía configurado para realizar la codificación de entropía de los coeficientes cuantificados y transformados para generar datos residuales codificados, y
un generador de flujo de bits configurado para generar un flujo de bits que comprende información de vector de movimiento de luma que indique el vector de movimiento de luma, información de vector de movimiento de croma que indique el vector de movimiento de croma, y los datos residuales codificados para el bloque actual,
caracterizado por que el filtro de interpolación de 8 tomas comprende ocho coeficientes de filtro para generar las muestras de luma de la ubicación de 1/2 píxel, que son { -1, 4, -11, 40, 40, -11,4, -1}.
3. Un procedimiento de descodificación de vídeo que utiliza compensación de movimiento, el método de descodificación de vídeo comprende:
obtener, a partir de un flujo de bits, una información de vector de movimiento de luma que indica un vector de movimiento de luma para un bloque actual, una información de vector de movimiento de croma que indica un vector de movimiento de croma para el bloque actual,
determinar un bloque de referencia de luma para la predicción del bloque actual utilizando el vector de movimiento de luma del bloque actual;
generar muestras de luma de una ubicación de 1/2 píxel en el bloque de referencia de luma aplicando un filtro de interpolación de 8 tomas a muestras de luma de una ubicación de píxel entero de una imagen de referencia de luma;
determinar un bloque de referencia de croma para la predicción del bloque actual utilizando el vector de movimiento de croma del bloque actual;
generar muestras de croma de una ubicación de 1/2 píxel en el bloque de referencia de croma aplicando un filtro de interpolación a muestras de croma de una ubicación de píxel entero de una imagen de referencia de croma;
obtener datos predichos del bloque actual basados en las muestras de luma generadas de la ubicación de 1/2 píxel y las muestras de croma generadas de la ubicación de 1/2 píxel;
realizar la descodificación por entropía del flujo de bits para obtener coeficientes cuantificados y transformados, y realizar la cuantificación inversa y transformación inversa de los coeficientes cuantificados y transformados para obtener datos residuales del bloque actual; y
restaurar el bloque actual utilizando los datos residuales y los datos predichos,
caracterizado por que el filtro de interpolación de 8 tomas comprende ocho coeficientes de filtro para generar las muestras de luma de la ubicación de 1/2 píxel, que son { -1, 4, -11, 40, 40, -11,4, -1}.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US38826410P | 2010-09-30 | 2010-09-30 | |
| US201061426479P | 2010-12-22 | 2010-12-22 | |
| US201161431909P | 2011-01-12 | 2011-01-12 | |
| US201161450775P | 2011-03-09 | 2011-03-09 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2985808T3 true ES2985808T3 (es) | 2024-11-07 |
Family
ID=45893683
Family Applications (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17187373T Active ES2985808T3 (es) | 2010-09-30 | 2011-09-30 | Método y dispositivo para interpolar 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 |
| 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 (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES15173605.5T Active ES2629870T3 (es) | 2010-09-30 | 2011-09-30 | Procedimiento y dispositivo de interpolación de imágenes usando un filtro de interpolación de suavizado |
| ES15173606.3T Active ES2646306T3 (es) | 2010-09-30 | 2011-09-30 | Procedimiento de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado |
| ES14193524.7T Active ES2630107T3 (es) | 2010-09-30 | 2011-09-30 | Procedimiento y dispositivo de interpolación de imágenes mediante el uso de un filtro de interpolación de alisado |
| 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 |
Country Status (18)
| Country | Link |
|---|---|
| US (5) | US9124902B2 (es) |
| EP (7) | EP2996336B1 (es) |
| JP (7) | JP5654685B2 (es) |
| KR (7) | KR101452861B1 (es) |
| CN (6) | CN103238320B (es) |
| BR (2) | BR122020014075B1 (es) |
| CY (4) | CY1119447T1 (es) |
| DK (4) | DK2996336T3 (es) |
| ES (5) | ES2985808T3 (es) |
| HR (4) | HRP20170917T1 (es) |
| HU (5) | HUE068806T2 (es) |
| LT (4) | LT2996335T (es) |
| MX (5) | MX2013003606A (es) |
| PL (5) | PL3276961T3 (es) |
| PT (4) | PT2996336T (es) |
| RS (3) | RS56176B1 (es) |
| SI (4) | SI2860980T1 (es) |
| WO (1) | WO2012044105A2 (es) |
Families Citing this family (66)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5323252B2 (ja) * | 2010-03-30 | 2013-10-23 | 株式会社東芝 | 動画像符号化方法、復号化方法、符号化装置および復号化装置 |
| KR101682147B1 (ko) * | 2010-04-05 | 2016-12-05 | 삼성전자주식회사 | 변환 및 역변환에 기초한 보간 방법 및 장치 |
| KR101686945B1 (ko) * | 2010-07-09 | 2016-12-15 | 삼성전자주식회사 | 영상 보간 방법 및 장치 |
| JP5665508B2 (ja) * | 2010-11-30 | 2015-02-04 | キヤノン株式会社 | 画像処理装置及び方法、並びにプログラム及び記憶媒体 |
| WO2012178178A2 (en) | 2011-06-24 | 2012-12-27 | General Instrument Corporation | Selection of phase offsets for interpolation filters for motion compensation |
| TWI574552B (zh) * | 2011-06-28 | 2017-03-11 | 三星電子股份有限公司 | 使用非對稱內插濾波器的內插影像用的方法與裝置 |
| 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 |
| EP2942963A4 (en) * | 2013-01-04 | 2016-08-17 | Samsung Electronics Co Ltd | VIDEO CODING WITH SCALABLE DEVICE THROUGH IMAGE-UPSAMPLING, INCLUDING PHASE SHIFTING AND SCALABLE VIDEO DECODING METHOD AND DEVICE |
| JP6007312B2 (ja) * | 2013-03-07 | 2016-10-12 | 独立行政法人石油天然ガス・金属鉱物資源機構 | 画像処理装置、画像処理方法及び画像処理プログラム |
| 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 |
| CN108141603B (zh) * | 2015-09-25 | 2020-12-15 | 华为技术有限公司 | 视频编解码方法及视频编解码器 |
| JP6678735B2 (ja) | 2015-09-25 | 2020-04-08 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 予測符号化のための適応シャープニングフィルタ |
| WO2017052408A1 (en) * | 2015-09-25 | 2017-03-30 | Huawei Technologies Co., Ltd. | Apparatus and method for video motion compensation |
| MY197611A (en) | 2015-09-25 | 2023-06-28 | Huawei Tech Co Ltd | Apparatus and method for video motion compensation |
| BR112018006009B1 (pt) | 2015-09-25 | 2023-12-12 | Huawei Technologies Co., Ltd | Codificador de vídeo, decodificador de vídeo, métodos para a codificação e decodificação preditiva e meio de armazenamento legível por computador |
| EP3363198B1 (en) | 2015-11-17 | 2020-09-16 | Huawei Technologies Co., Ltd. | Method and apparatus of adaptive filtering of samples for video coding |
| US10009622B1 (en) | 2015-12-15 | 2018-06-26 | Google Llc | Video coding with degradation of residuals |
| WO2017135151A1 (ja) * | 2016-02-01 | 2017-08-10 | シャープ株式会社 | 予測画像生成装置、動画像復号装置、および動画像符号化装置 |
| KR20180042899A (ko) * | 2016-10-19 | 2018-04-27 | 디지털인사이트 주식회사 | 적응적 보간 필터를 사용하는 비디오 코딩 방법 및 장치 |
| WO2018097700A1 (ko) | 2016-11-28 | 2018-05-31 | 한국전자통신연구원 | 필터링을 위한 방법 및 장치 |
| CN116320493A (zh) | 2016-11-28 | 2023-06-23 | 韩国电子通信研究院 | 用于滤波的方法和装置 |
| EP3568978B1 (en) * | 2017-01-13 | 2025-04-02 | Google LLC | Compound prediction for video coding |
| WO2018142795A1 (en) * | 2017-01-31 | 2018-08-09 | Sharp Kabushiki Kaisha | Systems and methods for performing planar intra prediction video coding |
| 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 | シャープ株式会社 | 動き補償フィルタ装置、画像復号装置および動画像符号化装置 |
| JP7005854B2 (ja) * | 2017-11-07 | 2022-01-24 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ビデオ符号化のためのインター予測装置の補間フィルタ及び方法 |
| 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 |
| BR112020019740A2 (pt) | 2018-03-29 | 2021-02-17 | Huawei Technologies Co., Ltd. | aparelho e método de processamento de imagem |
| TWI677233B (zh) * | 2018-08-02 | 2019-11-11 | 瑞昱半導體股份有限公司 | 決定濾波器係數的方法 |
| GB2577339A (en) * | 2018-09-24 | 2020-03-25 | Sony Corp | Image data encoding and decoding |
| BR112021006522A2 (pt) * | 2018-10-06 | 2021-07-06 | Huawei Tech Co Ltd | método e aparelho para predição intra usando um filtro de interpolação |
| CA3119646A1 (en) * | 2018-12-31 | 2020-07-09 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
| WO2020182091A1 (en) | 2019-03-08 | 2020-09-17 | Beijing Bytedance Network Technology Co., Ltd. | Reshaping model in video processing |
| SG11202110724WA (en) * | 2019-03-28 | 2021-10-28 | Huawei Tech Co Ltd | Method and apparatus for intra smoothing |
| WO2020211869A1 (en) | 2019-04-18 | 2020-10-22 | Beijing Bytedance Network Technology Co., Ltd. | Parameter derivation in cross component mode |
| CN117579841A (zh) | 2019-04-23 | 2024-02-20 | 北京字节跳动网络技术有限公司 | 降低跨分量依赖性的方法 |
| KR102641796B1 (ko) | 2019-05-08 | 2024-03-04 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 교차-성분 코딩의 적용가능성에 대한 조건들 |
| CN113994697B (zh) | 2019-06-22 | 2024-10-18 | 北京字节跳动网络技术有限公司 | 色度残差缩放的语法元素 |
| CN110351482A (zh) * | 2019-06-25 | 2019-10-18 | 杭州汇萃智能科技有限公司 | 图像预处理装置、方法和一种相机 |
| EP3977738A4 (en) | 2019-07-07 | 2022-08-17 | Beijing Bytedance Network Technology Co., Ltd. | SIGNALING OF CHROMA RESIDUAL SCALE |
| JP6797247B2 (ja) * | 2019-07-10 | 2020-12-09 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ビデオ動き補償用の装置および方法 |
| CN120416504A (zh) | 2019-09-23 | 2025-08-01 | 阿里巴巴集团控股有限公司 | 通过重采样执行运动补偿插值的滤波器 |
| US20210176486A1 (en) * | 2019-12-09 | 2021-06-10 | Alibaba Group Holding Limited | Methods and apparatuses for motion compensation |
| WO2021126017A2 (en) | 2020-04-29 | 2021-06-24 | Huawei Technologies Co., Ltd. | Method and apparatus of subsample interpolation filtering |
| EP3965009A1 (en) * | 2020-09-08 | 2022-03-09 | Robert Bosch GmbH | Device and method for training a scale-equivariant convolutional neural network |
| KR20210023911A (ko) * | 2021-02-10 | 2021-03-04 | 인텔렉추얼디스커버리 주식회사 | 인트라 예측 방법 및 장치 |
| CN117083855A (zh) * | 2021-03-31 | 2023-11-17 | 瑞典爱立信有限公司 | 平滑表面预测 |
| TR2021011002A1 (tr) * | 2021-07-06 | 2023-01-23 | Aselsan Elektronik Sanayi Ve Ticaret As | Fpga üzeri̇nde gerçek zamanli x-model/plus-model fi̇ltre i̇le yüksek kali̇teli̇ vi̇deo ölçekleme |
| US12132895B2 (en) * | 2021-12-06 | 2024-10-29 | Tencent America LLC | Interpolation filters for adaptive motion vector difference resolution |
| WO2023200135A1 (ko) * | 2022-04-15 | 2023-10-19 | 현대자동차주식회사 | 크로마 성분에 대한 개선된 인루프필터를 이용하는 비디오 코딩을 위한 방법 및 장치 |
| US12470705B2 (en) * | 2023-01-12 | 2025-11-11 | Qualcomm Incorporated | Fractional-pel block vector for video coding |
| KR20250128146A (ko) * | 2024-02-20 | 2025-08-27 | 세종대학교산학협력단 | 참조 샘플들의 절대값 차이합을 기초로 하는 적응형 보간 필터를 이용한 비디오 부호화/복호화 방법 및 장치 |
Family Cites Families (31)
| 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 | セイコーエプソン株式会社 | 画像データ補間方法、画像データ補間装置および画像データ補間プログラムを記録した媒体 |
| JP2003509748A (ja) * | 1999-09-03 | 2003-03-11 | チェン,ティー.シー. | データ圧縮のための3次スプライン補間の高速で効率のよい計算方法 |
| 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 |
| 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 |
| KR101037834B1 (ko) | 2003-09-07 | 2011-05-31 | 마이크로소프트 코포레이션 | 인터레이스형 비디오의 코딩 및 디코딩 |
| US7724827B2 (en) | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
| 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 | ルネサスエレクトロニクス株式会社 | フィルタ演算器及び動き補償装置 |
| EP2299720A1 (en) * | 2008-07-04 | 2011-03-23 | Kabushiki Kaisha Toshiba | Dynamic image encoding/decoding method and device |
| 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 | 株式会社 東芝 | 動画像符号化装置および復号装置 |
| KR101686945B1 (ko) * | 2010-07-09 | 2016-12-15 | 삼성전자주식회사 | 영상 보간 방법 및 장치 |
| US20120134425A1 (en) * | 2010-11-29 | 2012-05-31 | Faouzi Kossentini | Method and System for Adaptive Interpolation in Digital Video Coding |
| HUE063154T2 (hu) * | 2010-12-22 | 2023-12-28 | Lg Electronics Inc | Intra predikció video kódolásban |
| US20120230423A1 (en) * | 2011-03-10 | 2012-09-13 | Esenlik Semih | Line memory reduction for video coding and decoding |
-
2011
- 2011-09-30 ES ES17187373T patent/ES2985808T3/es active Active
- 2011-09-30 EP EP15173607.1A patent/EP2996336B1/en active Active
- 2011-09-30 PL PL17187373.0T patent/PL3276961T3/pl unknown
- 2011-09-30 DK DK15173607.1T patent/DK2996336T3/en active
- 2011-09-30 EP EP17187373.0A patent/EP3276961B1/en active Active
- 2011-09-30 RS RS20170662A patent/RS56176B1/sr unknown
- 2011-09-30 SI SI201131230T patent/SI2860980T1/sl unknown
- 2011-09-30 PT PT151736071T patent/PT2996336T/pt unknown
- 2011-09-30 SI SI201131291T patent/SI2996336T1/sl unknown
- 2011-09-30 BR BR122020014075-5A patent/BR122020014075B1/pt active IP Right Grant
- 2011-09-30 RS RS20171115A patent/RS56473B1/sr unknown
- 2011-09-30 CN CN201180057602.5A patent/CN103238320B/zh not_active Expired - Fee Related
- 2011-09-30 EP EP15173605.5A patent/EP2953355B1/en active Active
- 2011-09-30 EP EP11829611.0A patent/EP2624558A4/en not_active Withdrawn
- 2011-09-30 DK DK14193524.7T patent/DK2860980T3/en active
- 2011-09-30 HU HUE17187373A patent/HUE068806T2/hu unknown
- 2011-09-30 SI SI201131338T patent/SI2996335T1/sl unknown
- 2011-09-30 LT LTEP15173606.3T patent/LT2996335T/lt unknown
- 2011-09-30 MX MX2013003606A patent/MX2013003606A/es active IP Right Grant
- 2011-09-30 CN CN201510377410.2A patent/CN105072443B/zh active Active
- 2011-09-30 PL PL14193524T patent/PL2860980T3/pl unknown
- 2011-09-30 PT PT141935247T patent/PT2860980T/pt unknown
- 2011-09-30 HU HUE15173606A patent/HUE035494T2/en unknown
- 2011-09-30 LT LTEP15173607.1T patent/LT2996336T/lt unknown
- 2011-09-30 EP EP15173606.3A patent/EP2996335B1/en active Active
- 2011-09-30 LT LTEP14193524.7T patent/LT2860980T/lt unknown
- 2011-09-30 HU HUE15173605A patent/HUE034477T2/en unknown
- 2011-09-30 CN CN201510373683.XA patent/CN104980738B/zh active Active
- 2011-09-30 EP EP23216198.4A patent/EP4318277A3/en active Pending
- 2011-09-30 WO PCT/KR2011/007220 patent/WO2012044105A2/ko not_active Ceased
- 2011-09-30 HU HUE15173607A patent/HUE037725T2/hu unknown
- 2011-09-30 ES ES15173605.5T patent/ES2629870T3/es active Active
- 2011-09-30 ES ES15173606.3T patent/ES2646306T3/es active Active
- 2011-09-30 DK DK15173605.5T patent/DK2953355T3/da active
- 2011-09-30 SI SI201131217A patent/SI2953355T1/sl unknown
- 2011-09-30 ES ES14193524.7T patent/ES2630107T3/es active Active
- 2011-09-30 PL PL15173607T patent/PL2996336T3/pl unknown
- 2011-09-30 PT PT151736063T patent/PT2996335T/pt unknown
- 2011-09-30 PL PL15173605T patent/PL2953355T3/pl unknown
- 2011-09-30 KR KR1020110100037A patent/KR101452861B1/ko not_active Expired - Fee Related
- 2011-09-30 BR BR122021005436-3A patent/BR122021005436B1/pt active IP Right Grant
- 2011-09-30 CN CN201510401079.3A patent/CN105049844B/zh active Active
- 2011-09-30 JP JP2013531498A patent/JP5654685B2/ja active Active
- 2011-09-30 US US13/877,074 patent/US9124902B2/en active Active
- 2011-09-30 ES ES15173607.1T patent/ES2640666T3/es active Active
- 2011-09-30 EP EP14193524.7A patent/EP2860980B1/en active Active
- 2011-09-30 CN CN201510400603.5A patent/CN105049843B/zh active Active
- 2011-09-30 LT LTEP15173605.5T patent/LT2953355T/lt unknown
- 2011-09-30 HU HUE14193524A patent/HUE036401T2/hu unknown
- 2011-09-30 DK DK15173606.3T patent/DK2996335T3/da active
- 2011-09-30 PT PT151736055T patent/PT2953355T/pt unknown
- 2011-09-30 CN CN201510377329.4A patent/CN104994381B/zh active Active
- 2011-09-30 PL PL15173606T patent/PL2996335T3/pl unknown
- 2011-09-30 RS RS20170915A patent/RS56359B1/sr unknown
-
2013
- 2013-03-27 MX MX2015008365A patent/MX339849B/es unknown
- 2013-03-27 MX MX2015008363A patent/MX336877B/es unknown
- 2013-03-27 MX MX2015008366A patent/MX339848B/es unknown
- 2013-03-27 MX MX2015008364A patent/MX339850B/es unknown
-
2014
- 2014-05-07 KR KR1020140054354A patent/KR101539235B1/ko active Active
- 2014-09-03 KR KR1020140117033A patent/KR101657537B1/ko active Active
- 2014-10-29 KR KR1020140148730A patent/KR101658806B1/ko not_active Expired - Fee Related
- 2014-11-20 JP JP2014235539A patent/JP2015057919A/ja active Pending
-
2015
- 2015-02-26 US US14/632,132 patent/US9118933B1/en active Active
- 2015-02-26 US US14/632,176 patent/US9253507B2/en active Active
- 2015-02-26 US US14/632,169 patent/US9277247B2/en active Active
- 2015-02-26 US US14/632,155 patent/US9179167B2/en active Active
- 2015-03-12 KR KR1020150034526A patent/KR101707610B1/ko active Active
- 2015-03-12 KR KR1020150034524A patent/KR101658807B1/ko active Active
- 2015-03-12 KR KR1020150034525A patent/KR101658808B1/ko active Active
- 2015-06-25 JP JP2015127740A patent/JP2015165727A/ja active Pending
- 2015-06-25 JP JP2015127742A patent/JP2015188261A/ja active Pending
- 2015-06-25 JP JP2015127739A patent/JP2015165726A/ja active Pending
- 2015-06-25 JP JP2015127741A patent/JP2015188260A/ja active Pending
-
2017
- 2017-06-14 HR HRP20170917TT patent/HRP20170917T1/hr unknown
- 2017-06-14 JP JP2017116971A patent/JP6902937B2/ja active Active
- 2017-06-28 HR HRP20170981TT patent/HRP20170981T1/hr unknown
- 2017-06-29 CY CY20171100693T patent/CY1119447T1/el unknown
- 2017-08-11 CY CY20171100867T patent/CY1119203T1/el unknown
- 2017-09-14 HR HRP20171386TT patent/HRP20171386T1/hr unknown
- 2017-09-27 CY CY20171101021T patent/CY1119450T1/el unknown
- 2017-11-02 HR HRP20171672TT patent/HRP20171672T1/hr unknown
- 2017-12-07 CY CY20171101292T patent/CY1119672T1/el unknown
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2985808T3 (es) | Método y dispositivo para interpolar imágenes mediante el uso de un filtro de interpolación de alisado | |
| ES2770320T3 (es) | Interpolación de imágenes usando un filtro asimétrico de interpolación | |
| CN106803957B (zh) | 对视频进行解码的设备 | |
| KR20210107183A (ko) | 영상 처리 방법 및 이를 위한 장치 | |
| BR122021005437B1 (pt) | Método para compensação de movimento | |
| BR112013007203B1 (pt) | Método de compensação de movimento |