ES2701978T3 - Procedimiento de decodificación usando un filtro de interpolación - Google Patents

Procedimiento de decodificación usando un filtro de interpolación Download PDF

Info

Publication number
ES2701978T3
ES2701978T3 ES17168407T ES17168407T ES2701978T3 ES 2701978 T3 ES2701978 T3 ES 2701978T3 ES 17168407 T ES17168407 T ES 17168407T ES 17168407 T ES17168407 T ES 17168407T ES 2701978 T3 ES2701978 T3 ES 2701978T3
Authority
ES
Spain
Prior art keywords
interpolation
unit
coding
filter
interpolation 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
Application number
ES17168407T
Other languages
English (en)
Inventor
Elena Alshina
Alexander Alshin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of ES2701978T3 publication Critical patent/ES2701978T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)

Abstract

Un procedimiento de decodificación de video para interpredecir una imagen usando compensación de movimiento usando un filtro de interpolación, comprendiendo el procedimiento de decodificación de video: determinar coeficientes de filtro de unos filtros de interpolación de 7 derivaciones para generar al menos una muestra de unidad de cuarto de sub-pel localizada entre píxeles de unidades pel de número entero; y generar una muestra de una ubicación de 1/4 de píxel o una ubicación de 3/4 de píxel mediante la interpolación de los píxeles de unidades pel de número entero utilizando el filtro de interpolación de 7 derivaciones; e interprecedir la imagen usando compensación de movimiento usando la muestra de la ubicación de 1/4 de píxel o la ubicación de 3/4 de píxel, en el que el filtro de interpolación de 7 derivaciones para generar la muestra de la ubicación de 1/4 de píxel comprende siete coeficientes de filtro: {-1, 4, -10, 58, 17, -5, 1}, y el filtro de interpolación de 7 derivaciones para generar la muestra de la ubicación de 3/4 de píxel comprende siete coeficientes de filtro: {1, -5, 17, 58, -10, 4, -1}.

Description

DESCRIPCIÓN
Procedimiento de decodificación usando un filtro de interpolación
Campo de la invención
La presente invención se refiere a codificación de predicción utilizando compensación de movimiento.
Antecedentes de la técnica
En procedimientos de codificación y decodificación de imagen típicos, con el fin de codificar una imagen, se divide una imagen en macrobloques. Después de eso, se realiza codificación de predicción en cada macrobloque al utilizar interpredicción o intrapredicción.
La interpredicción se refiere a un procedimiento para comprimir una imagen al remover redundancia temporal entre imágenes y su ejemplo representativo es codificación de estimación de movimiento. En codificación de estimación de movimiento, cada bloque de una imagen actual se predice al utilizar al menos una imagen de referencia. Un bloque de referencia que es muy similar a un bloque actual se encuentra dentro de un intervalo de búsqueda predeterminado al utilizar una función de evaluación predeterminada.
Se predice un bloque actual con base en un bloque de referencia, y se codifica un bloque residual obtenido al sustraer 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 predicción, se realiza 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 píxeles de unidad de pel de número entero, y se realiza interpredicción en los píxeles de unidad de sub-pel generados.
MCCANN K ET AL: «HEVC Test Model 3 (HM 3) Encoder Description» NETWORK WORKING GROUP RFC 1717, INTERNET SOCIETY (ISOC) 4, RUE DES FALAISES CH- 1205 GINEBRA, SUIZA, CH, n.° JCTVC-E602, 29 de marzo de 2011 (2011-03-29), describe compensación de movimiento usando filtrado de interpolación en la sección [5.4.3. Filtro de interpolación]. El filtro de interpolación de 8 derivaciones con coeficientes {-1, 4, -10, 57, 19, -7, 3, -1} se usa para interpolación luma en una posición de 1/4 de píxel. El filtro de interpolación de 8 derivaciones con coeficientes {-1, 3, -7, 19, 57, -10, 4, -1} se usa para interpolación luma en una posición de 3/4 de píxel.
Divulgación
Problema Técnico
La presente invención proporciona un procedimiento de decodificación de vídeo para interpredicción de una imagen usando compensación de movimiento usando un filtro de interpolación para generar un píxel de unidad de sub-pel al interpolar píxeles de unidad de pel de número entero.
Solución Técnica
La invención se indica en el procedimiento de decodificación de vídeo de la reivindicación 1.
Todas las apariciones de la palabra “realización(es)” excepto las relacionadas con la reivindicación 1 se refieren a ejemplos útiles para comprender la invención que se presentaron originalmente, pero no representan realizaciones de la invención actualmente reivindicada; estos ejemplos se muestran solamente por motivos ilustrativos.
Efectos Ventajosos
Con el fin de realizar eficientemente interpolación de imagen, de entre filtros de interpolación para generar un valor de píxel de unidad de sub-pel, se selecciona de manera diferente un filtro de interpolación con base en una ubicación de interpolación de unidad de sub-pel. El filtro de interpolación puede ser un filtro de interpolación de derivación de número impar o par con el fin de lograr interpolación de unidad de sub-pel. El filtro de interpolación puede seleccionarse con un filtro de interpolación simétrico o asimétrico de conformidad con una ubicación de interpolación.
Descripción de los dibujos
La figura 1 es un diagrama de bloques de un aparato de interpolación de imagen de conformidad con una realización de la presente invención;
La figura 2 es un diagrama para describir una relación entre una unidad de pel de número entero y una unidad de sub-pel;
La figura 3 es un diagrama que ilustra píxeles de unidad de pel de número entero para indicarse para determinar un valor de píxel de unidad de sub-pel, de conformidad con la realización de la presente invención;
Las figuras 4A a 4C son diagramas que ilustran ejemplos de píxeles de unidad de pel de número entero para indicarse para determinar un valor de píxel de unidad de sub-pel, de conformidad con la realización de la presente invención;
La figura 5A es un diagrama para describir un procedimiento de filtración de interpolación utilizando píxeles de referencia localizados asimétricamente con respecto a una ubicación de interpolación con el fin de determinar un valor de píxel de unidad de sub-pel, de conformidad con una realización de la presente invención;
La figura 5B es un diagrama para describir un procedimiento de interpolación utilizando un filtro de interpolación que incluye un número impar de coeficientes de filtro con el fin de determinar un valor de píxel de unidad de sub-pel, de conformidad con una realización de la presente invención;
La figura 6 es una gráfica de un factor alisado con base en un parámetro alisado de un filtro de interpolación alisado, de conformidad con una realización de la presente invención;
La figura 7 es una gráfica de respuesta de frecuencia de amplitud de filtros de interpolación, de conformidad con una realización de la presente invención;
La figura 8 es un diagrama de flujo de un procedimiento de interpolación de imagen de conformidad con una realización de la presente invención;
Las figuras 9A a 9D muestran respectivamente coeficientes de filtro de filtros de interpolación de tres derivaciones a seis derivaciones determinados con base en una ubicación de interpolación y un tamaño de filtro de ventana, de conformidad con realizaciones de la presente invención;
Las figuras 10A a 10C muestran respectivamente coeficientes de filtro de filtros de interpolación de siete derivaciones determinados con base en una ubicación de interpolación y un tamaño de filtro de ventana, de conformidad con realizaciones de la presente invención;
Las figuras 11A a 11C respectivamente muestran coeficientes de filtro de filtros de interpolación de ocho derivaciones determinados con base en una ubicación de interpolación y un tamaño de filtro de ventana, de conformidad con realizaciones de la presente invención;
Las figuras 12A y 12B muestran respectivamente coeficientes de filtro de un filtro de interpolación luma regularizado y un filtro de interpolación croma regularizado, de conformidad con realizaciones de la presente invención;
La figura 13A es un diagrama de bloques de un aparato de codificación de video que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención;
La figura 13B es un diagrama de bloques de un aparato de decodificación de video que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención;
La figura 14A es un diagrama de flujo de un procedimiento de codificación de imagen que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención;
La figura 14B es un diagrama de flujo de un procedimiento de decodificación de imagen que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención;
La figura 15 es un diagrama para describir un concepto de unidades de codificación de conformidad con una realización de la presente invención;
La figura 16 es un diagrama de bloques de un codificador de imagen con base en unidades de codificación, de conformidad con una realización de la presente invención;
La figura 17 es un diagrama de bloques de un decodificador de imagen con base en unidades de codificación, de conformidad con una realización de la presente invención;
La figura 18 es un diagrama que ilustra unidades de codificación más profundas de conformidad con profundidades, y divisiones, de conformidad con una realización de la presente invención;
La figura 19 es un diagrama para describir una relación entre una unidad de codificación y unidades de transformación, de conformidad con una realización de la presente invención;
La figura 20 es un diagrama para describir información de codificación de unidades de codificación que corresponden a una profundidad codificada, de conformidad con una realización de la presente invención;
La figura 21 es un diagrama de unidades de codificación más profundas de conformidad con profundidades, de conformidad con una realización de la presente invención;
Las figuras 22 a 24 son diagramas para describir una relación entre unidades de codificación, unidades de predicción, y unidades de transformación, de conformidad con una realización de la presente invención;
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 conformidad con información del modo de codificación de la Tabla 1;
La figura 26 es un diagrama de flujo de un procedimiento de codificación de video que utiliza un filtro de interpolación con base en unidades de codificación que tienen una estructura de árbol, de conformidad con una realización de la presente invención; y
La figura 27 es un diagrama de flujo de un procedimiento de decodificación de video que utiliza un filtro de interpolación con base en unidades de codificación que tienen una estructura de árbol, de conformidad con una realización de la presente invención.
Mejor modo
La invención se define en la reivindicación 1.
Modo de la invención
En la siguiente descripción, una "imagen" puede referirse comprensivamente a una imagen en movimiento tal como un video, así como una imagen fija.
Se describe interpolación que utiliza un filtro de interpolación asimétrico y un filtro de interpolación simétrico en consideración de alisado, de conformidad con una realización de la presente invención, con referencia a las figuras 1 a 12B. También, codificación y decodificación de video que utiliza un filtro de interpolación asimétrico y un filtro de interpolación simétrico, de conformidad con una realización de la presente invención, se describen con referencia a las figuras 13A a 27. Específicamente, la codificación y decodificación de video que utilizan un filtro de interpolación asimétrico y un filtro de interpolación simétrico con base en unidades de codificación que tienen una estructura de árbol, de conformidad con una realización de la presente invención, se describen con referencia a las figuras 15 a 25.
Se describirá ahora interpolación que utiliza un filtro de interpolación asimétrico y un filtro de interpolación simétrico en consideración de alisado, de conformidad con una realización de la presente invención, en detalle con referencia a las figuras 1 a 12B.
La figura 1 es un diagrama de bloques de un aparato 10 de interpolación de imagen de conformidad con una realización de la presente invención.
El aparato 10 de interpolación de imagen que utiliza filtros de interpolación simétricos y asimétricos incluye un selector 12 de filtro y un interpolador 14. Operaciones del selector 12 de filtro y el interpolador 14 del aparato 10 de interpolación de imagen pueden controlarse cooperativamente mediante un procesador de codificación de video, una unidad de procesamiento central (CPU), y un procesador gráfico.
El aparato 10 de interpolación de imagen puede recibir una imagen de entrada y puede generar valores de píxel de unidad de sub-pel al interpolar píxeles de unidad de pel de número entero. La imagen de entrada puede ser una secuencia de imagen, una imagen, un cuadro, o bloques de un video.
El selector 12 de filtro puede seleccionar de manera diferente un filtro de interpolación para generar al menos un valor de píxel de unidad de sub-pel localizado entre unidades de pel de número entero, con base en una ubicación de interpolación de unidad de sub-pel.
El interpolador 14 puede interpolar píxeles de unidad de pel de número entero adyacentes a la ubicación de interpolación de unidad de sub-pel al utilizar el filtro de interpolación seleccionado por el selector 12 de filtro, generando con ello valores de píxel de unidad de sub-pel. La filtración de interpolación de píxeles de unidad de pel de número entero para generar valores de píxel de unidad de sub-pel puede incluir filtración de interpolación de valores de píxel de referencia de unidad de pel de número entero incluyendo píxeles de unidad de pel de número 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.
El filtro de interpolación puede incluir coeficientes de filtro para transformar píxeles de referencia de unidad de pel de número entero con base en una pluralidad de funciones base, y para transformar inversamente 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 continuamente filtración al utilizar filtros de interpolación unidimensionales en dos o más direcciones, generando con ello un valor de píxel de unidad de sub-pel actual.
El selector 12 de filtro puede seleccionar individualmente un filtro de interpolación de conformidad con la ubicación de interpolación de unidad de sub-pel. El filtro de interpolación puede incluir un filtro de interpolación simétrico que incluye los mismos números de coeficientes de filtro en ambos lados de una ubicación de interpolación en una región soportada por el filtro de interpolación simétrico, y un filtro de interpolación asimétrico que incluye diferentes números de coeficientes de filtro en ambos lados de una ubicación de interpolación en una región soportada por el filtro de interpolación asimétrico. El selector 12 de filtro puede seleccionar individualmente un filtro de interpolación simétrico y un filtro de interpolación asimétrico de conformidad con la ubicación de interpolación de unidad de subpel.
Por ejemplo, un filtro de interpolación de siete derivaciones puede incluir tres coeficientes de filtro y cuatro coeficientes de filtro en ambos lados de una ubicación de interpolación en una región soportada por el filtro de interpolación de siete derivaciones. En este caso, el filtro de interpolación de siete derivaciones puede considerarse como un filtro de interpolación asimétrico.
Por ejemplo, un filtro de interpolación de ocho derivaciones puede incluir cuatro coeficientes de filtro y cuatro coeficientes de filtro en ambos lados de una ubicación de interpolación en una región soportada por el filtro de interpolación de ocho derivaciones. En este caso, el filtro de interpolación de ocho derivaciones puede considerarse como un filtro de interpolación simétrico.
Si el selector 12 de filtro selecciona un filtro de interpolación asimétrico, el interpolador 14 puede realizar filtración sobre píxeles de unidad de pel de número entero asimétricamente localizados con respecto a una ubicación de interpolación. De otra forma si se selecciona un filtro de interpolación simétrico, el interpolador 14 puede realizar filtración sobre píxeles de unidad de pel de número entero localizados simétricamente con respecto a una ubicación de interpolación.
El filtro de interpolación puede incluir un filtro de interpolación de derivación de número impar asimétrico que incluye un número impar de coeficientes de filtro, y un filtro de interpolación de derivación de número par simétrico que incluye un número par de coeficientes de filtro. El selector 12 de filtro puede seleccionar individualmente un filtro de interpolación de derivación de número impar asimétrico y un filtro de interpolación de derivación de número par simétrico de conformidad con la ubicación de interpolación de unidad de sub-pel. Por ejemplo, un filtro de interpolación de unidad de 1/2 pel y un filtro de interpolación de unidad de 1/4 pel pueden seleccionarse individualmente y de manera diferente. De esa forma, un filtro de interpolación de ocho derivaciones, es decir, un filtro de interpolación de derivación del número par simétrico puede seleccionarse como el filtro de interpolación de unidad de 1/2 pel, y un filtro de interpolación de siete derivaciones, es decir, un filtro de interpolación de derivación de número impar asimétrico puede seleccionarse como un filtro de interpolación de unidad de 1/4 pel.
Con el fin de interpolar píxeles de unidad de pel de número entero en un dominio espacial, cada filtro de interpolación puede obtenerse al combinar coeficientes de filtro para realizar transformación y transformación inversa al utilizar una pluralidad de funciones base, y coeficientes de filtro de ventana para realizar filtración de paso bajo. El filtro de interpolación puede generarse con base en un filtro de ventana que es asimétrico con respecto a una ubicación de interpolación o un filtro de ventana que es simétrico con respecto a una ubicación de interpolación. El filtro de interpolación asimétrico también puede generarse al combinar un filtro para realizar transformación y transformación inversa con base en una pluralidad de funciones base, y un filtro de ventana asimétrico.
Si se selecciona un filtro de interpolación de derivación del número impar, el interpolador 14 puede realizar filtración sobre un número impar de píxeles de unidad de pel de número entero localizados con respecto a una ubicación de interpolación, al utilizar un número impar de derivación de coeficientes de filtro del filtro de interpolación.
Si se selecciona un filtro de interpolación de derivación del número par, el interpolador 14 puede realizar filtración sobre un número par de píxeles de unidad de pel de número entero localizados con respecto a una ubicación de interpolación, al utilizar un número par de coeficientes de filtro del filtro de interpolación de derivación del número par.
El filtro de interpolación de derivación de número impar puede incluir diferentes números de coeficientes de filtro en ambos lados de una ubicación de interpolación en una región de soporte correspondiente y de esa forma puede ser un filtro de interpolación asimétrico. El filtro de interpolación de derivación de número par puede ser un filtro de interpolación simétrico que incluye los mismos números de coeficientes de filtro en ambos lados de una ubicación de interpolación en una región de soporte correspondiente.
El selector 12 de filtro puede seleccionar un filtro de interpolación regularizado para minimizar un error de respuesta de frecuencia generado como un resultado de interpolación que utiliza el filtro de interpolación. Por ejemplo, el filtro de interpolación regularizado puede incluir i) un filtro de interpolación de unidad de 1/4 pel que incluye coeficientes de filtro de siete derivaciones {-1, 4, -10, 58, 17, -5, 1} y que tiene un tamaño de ventana de 8,7, y ii) un filtro de interpolación de unidad de 1/2 pel que incluye coeficientes de filtro de ocho derivaciones {-1, 4, -11, 40, 40, -11, 4, -i} y que tiene un tamaño de ventana de 9,5.
También, el selector 12 de filtro puede seleccionar individualmente y de manera diferente un filtro de interpolación de conformidad con componentes de color. Por ejemplo, el filtro de interpolación regularizado para píxeles luma puede determinarse como un filtro de interpolación de siete derivaciones de unidad de 1/4 pel y un filtro de interpolación de ocho derivaciones de unidad de 1/2 pel. El filtro de interpolación regularizado para píxeles croma puede determinarse como filtros de interpolación de cuatro derivaciones de unidad de 1/8 pel, unidad de 1/4 pel, y unidad de 1/2 pel.
El filtro de interpolación regularizado es determinado para píxeles croma puede incluir i) un filtro de interpolación de unidad de 1/8 pel que incluye coeficientes de filtro de cuatro derivaciones {-2, 58, 10, -2} para una ubicación de interpolación 1/8 y que tienen una uniformidad de 0,012, ii) un filtro de interpolación de unidad de 1/4 pel que incluye coeficientes de filtro de cuatro derivaciones {-4, 54, 16, -2} para una ubicación de interpolación 1/4 y que tiene una uniformidad de 0,016, iii) un filtro de interpolación de unidad de 1/8 pel que incluye coeficientes de filtro de 4 derivaciones {-6, 46, 28, -4} para una ubicación de interpolación 3/8 y que tiene una uniformidad de 0,018, y iv) un filtro de interpolación de unidad de 1/2 pel que incluye coeficientes de filtro de 4 derivaciones {-4, 36, 36, -4} para una ubicación de interpolación 1/2 y que tiene una uniformidad de 0,020.
El filtro de interpolación puede ser un filtro simétrico reflector de espejo en el cual un coeficiente de filtro f(a) de una ubicación de interpolación a y un coeficiente de filtro f1(1- a) de una ubicación de interpolación (1- a) pueden ser los mismos.
El filtro de interpolación de unidad de 1/4 pel para píxeles luma puede ser un filtro simétrico reflector de espejo. Por consiguiente, un filtro de interpolación para una ubicación de interpolación 1/4 y un filtro de interpolación para una ubicación de interpolación 3/4 puede incluir simétricamente los mismos coeficientes. Si un filtro de interpolación luma de siete derivaciones de unidad de 1/4 pel incluye coeficientes de filtro {-1, 4, -10, 58, 17, -5, 1} de una ubicación de interpolación 1/4, puede incluir coeficientes de filtro {1, -5, 17, 58, -10, 4, -1} de una ubicación de interpolación 3/4. El filtro de interpolación de unidad de 1/8 pel para píxeles croma puede ser un filtro simétrico reflector de espejo. Por consiguiente, un filtro de interpolación para una ubicación de interpolación 1/8 y un filtro de interpolación para una ubicación de interpolación 7/8 pueden incluir simétricamente los mismos coeficientes. Similarmente, un filtro de interpolación para una ubicación de interpolación 3/8 y un filtro de interpolación para una ubicación de interpolación 5/8 pueden incluir simétricamente los mismos coeficientes. El filtro de interpolación puede determinarse con base en un filtro de interpolación con base en transformación que incluye coeficientes de filtro determinados al utilizar una pluralidad de funciones base. También, un filtro de interpolación alisado modificado del filtro de interpolación con base en transformación puede utilizarse para realizar filtración al variar su uniformidad de conformidad con la distancia entre una ubicación de interpolación y píxeles de unidad de pel de número entero.
La uniformidad del filtro de interpolación alisado puede determinarse con base en la distancia entre una ubicación de interpolación y píxeles de unidad pel de número entero. El filtro de interpolación puede incluir diferentes coeficientes de filtro de conformidad con la ubicación de interpolación de unidad de sub-pel y su uniformidad.
La uniformidad del filtro de interpolación alisado también puede determinarse con base en la distancia entre una ubicación de interpolación y píxeles de unidad de pel de número entero adyacentes a la ubicación de interpolación. También, el filtro de interpolación puede incluir coeficientes de filtro para permitir píxeles de referencia de unidad de pel de número entero, que están lejos de la ubicación de interpolación, para alisarse.
El filtro de interpolación alisado obtenido al combinar coeficientes de filtro para realizar transformación y transformación inversa y coeficientes de filtro de ventana para realizar filtración de paso bajo pueden incluir coeficientes de filtro para dar un gran peso a un píxel de referencia de unidad de pel de número entero cerca de la ubicación de interpolación y dar un peso pequeño a un píxel de referencia de unidad de pel de número entero lejos de la ubicación de interpolación.
El filtro de interpolación alisado puede incluir coeficientes de filtro para alisar píxeles de referencia de unidad de pel de número entero, transformar los píxeles de referencia de unidad de pel de número entero alisados al utilizar una pluralidad de funciones base, y transformar de manera inversa una pluralidad de coeficientes generados como un resultado de transformación.
El filtro de interpolación alisado puede incluir diferentes coeficientes de filtro de conformidad con su longitud, así como la ubicación de interpolación de unidad de sub-pel y su uniformidad.
También, el filtro de interpolación alisado puede incluir diferentes coeficientes de filtro de conformidad con una relación de escala como un resultado de interpolación, así como la ubicación de interpolación de unidad de sub-pel, su uniformidad, y su longitud. El selector 12 de filtro puede seleccionar un filtro de interpolación alisado del cual los coeficientes de filtro aumentan a números enteros. El interpolador 14 regulariza valores de píxel generados al utilizar el filtro de interpolación alisado seleccionado por el selector 12 de filtro.
También, el selector 12 de filtro puede seleccionar de manera diferente un filtro de interpolación de conformidad con características de píxel. El interpolador 14 puede generar valores de píxel de unidad de sub-pel al utilizar el filtro de interpolación seleccionado de manera diferente de conformidad con características de píxel.
El filtro de interpolación seleccionable por el selector 12 de filtro puede incluir un filtro de interpolación alisado y un filtro de interpolación general que no considera alisado. De esa forma, de conformidad con características de imagen, el selector 12 de filtro puede seleccionar un filtro de interpolación general que no considera alisado en lo absoluto.
Por ejemplo, de conformidad con otra realización, el aparato 10 de interpolación de imagen puede realizar interpolación de imagen al utilizar diferentes filtros de interpolación de conformidad con componentes de color. De conformidad con otra realización, el selector 12 de filtro puede seleccionar de manera diferente un filtro de interpolación con base en la ubicación de interpolación de unidad de sub-pel y un componente de color de un píxel actual. De conformidad con otra realización, el interpolador 14 puede interpolar píxeles de unidad de pel de número entero al utilizar el filtro de interpolación seleccionado, generando con ello al menos un valor de píxel de unidad de sub-pel.
Por ejemplo, el selector 12 de filtro puede determinar de manera diferente un filtro de interpolación para un componente luma y un filtro de interpolación para un componente croma.
Con el fin de interpolar un píxel croma, el selector 12 de filtro puede seleccionar un filtro de interpolación alisado que tiene una mayor uniformidad que aquella de un filtro de interpolación para un píxel luma.
También, con el fin de interpolar un píxel croma, puede seleccionarse un filtro de interpolación que incluye coeficientes de filtro determinados con base en un parámetro de alisado que tiene una mayor uniformidad que aquella de un filtro de interpolación para un píxel luma, o un filtro de interpolación que incluye coeficientes de filtro combinados con un filtro de ventana para remover más componentes de alta frecuencia que un filtro de interpolación para un píxel luma.
Con el fin de obtener un resultado de interpolación liso de un componente croma, puede seleccionarse un filtro de interpolación alisado obtenido al combinar coeficientes de filtro para realizar transformación y transformación inversa con base en una pluralidad de funciones base, y coeficientes de filtro de ventana para realizar filtración de paso bajo. El aparato 10 de interpolación de imagen puede incluir una CPU (no mostrada) para controlar comprensivamente el selector 12 de filtro y el interpolador 14. Alternativamente, el selector 12 de filtro y el interpolador 14 pueden impulsarse mediante procesadores individuales (no mostrados) y los procesadores pueden operar cooperativamente entre sí, operando con ello todo el aparato 10 de interpolación de imagen. Alternativamente, un procesador (no mostrado) fuera del aparato 10 de interpolación de imagen puede controlar el selector 12 de filtro y el interpolador 14.
El aparato 10 de interpolación de imagen puede incluir una o más unidades de almacenamiento de datos (no mostradas) para almacenar datos de entrada/salida (I/O) del selector 12 de filtro y el interpolador 14. El aparato 10 de interpolación de imagen también puede incluir un controlador de memoria (no mostrado) para controlar y/o de datos de las unidades de almacenamiento de datos (no mostradas).
El aparato 10 de interpolación de imagen puede incluir un procesador adicional que incluye un circuito para realizar interpolación de imagen. Alternativamente, el aparato 10 de interpolación de imagen puede incluir un medio de almacenamiento en el cual se registra un módulo de interpolación de imagen, y la CPU puede llamar e impulsar al módulo de interpolación de imagen para realizar interpolación de imagen.
Se utiliza 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 hacia arriba una imagen de baja calidad en una imagen de alta calidad. También, cuando un aparato de codificación de video codifica una imagen, un estimador o compensador de movimiento puede realizar interpredicción al utilizar un cuadro de referencia interpolado. La precisión de la interpredicción puede aumentar al interpolar un cuadro de referencia para generar una imagen de alta calidad, y al realizar estimación y compensación de movimiento con base en la imagen de alta calidad. Similarmente, cuando un aparato de decodificación de imagen decodifica una imagen, un compensador de movimiento puede realizar compensación de movimiento al utilizar un cuadro de referencia interpolado, aumentando con ello la precisión de intrapredicción.
También, el filtro de interpolación alisado utilizado por el aparato 10 de interpolación de imagen puede obtener un resultado de interpolación liso al reducir componentes de alta frecuencia en un resultado de interpolación utilizando un filtro de interpolación. Ya que los componentes de alta frecuencia reducen la eficiencia de compresión de imagen, la eficiencia de codificación y decodificación de imagen también puede mejorar al proporcionar interpolación de imagen ajustable de uniformidad.
También, puede utilizarse selectivamente un filtro de interpolación simétrico en el cual se localizan simétricamente coeficientes de filtro con respecto a una ubicación de interpolación o un filtro de interpolación asimétrico en el cual se localizan asimétricamente coeficientes de filtro con respecto a una ubicación de interpolación. También, como un filtro de interpolación, un filtro de interpolación de derivación de número impar o un filtro de interpolación de derivación de número par pueden utilizarse selectivamente de conformidad con una ubicación de interpolación. Por consiguiente, el aparato 10 de interpolación de imagen puede realizar filtración de interpolación de imagen sobre píxeles de unidad de pel de número entero localizados asimétricamente con respecto a una ubicación de interpolación, así como píxeles de unidad de pel de número entero localizados simétricamente con respecto a una ubicación de interpolación.
La interpolación que utiliza un filtro de interpolación obtenida al combinar coeficientes de filtro para realizar transformación y transformación inversa con base en una pluralidad de funciones base, y coeficientes de filtro de ventana, de conformidad con realizaciones de la presente invención, se describirá ahora en detalle con referencia a las figuras 2 a 7B.
La figura 2 es un diagrama para describir una relación entre una unidad de pel de número entero y una unidad de sub-pel.
Al hacer referencia a la figura 2, el aparato 10 de interpolación de imagen genera valores de píxel de ubicaciones 'X' al interpolar valores de píxel de unidad de pel de número entero de ubicaciones 'O' de un bloque 20 predeterminado 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. Aunque la figura 2 ilustra que el bloque 20 predeterminado es un bloque 4x4, se entenderá por un experto en la técnica que el tamaño de bloque no está limitado a 4x4 y puede ser mayor o menor que 4x4.
En procesamiento de video, se utiliza un vector de movimiento para realizar compensación y predicción de movimiento en una imagen actual. De conformidad con codificación de predicción, se indica una imagen previamente decodificada para predecir una imagen actual, y un vector de movimiento indica un punto predeterminado de una imagen de referencia. Por lo tanto, un vector de movimiento indica un píxel de unidad de pel de número entero de una imagen de referencia.
Sin embargo, un píxel que se va a indicar por una imagen actual puede localizarse entre píxeles de unidad de pel de número entero de una imagen de referencia. Tal ubicación se denomina como una ubicación de unidad de sub-pel. Ya que un píxel no existe en una ubicación de unidad de sub-pel, un valor de píxel de unidad de sub-pel simplemente se predice al utilizar valores de píxel de unidad de pel de número entero. En otras palabras, se estima un valor de píxel de unidad de sub-pel al interpolar los píxeles de unidad de pel de número entero.
Ahora se describirá en detalle un procedimiento para interpolar píxeles de unidad de pel de número entero 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 número entero adyacentes que se van a indicar para determinar un valor de píxel de unidad de sub-pel, de conformidad con una realización de la presente invención.
Al hacer referencia a la figura 3, el aparato 10 de interpolación de imagen genera un valor 35 de píxel de unidad de sub-pel de una ubicación de interpolación al interpolar valores de píxel de unidad de pel de número entero 31 y 33 en un dominio espacial. La ubicación de interpolación se determina por a.
Las figuras 4A a 4C son diagrama que ilustran ejemplos de píxeles de unidad de pel de número entero que se van a indicar para determinar un valor de píxel de unidad de sub-pel, de conformidad con una realización de la presente invención.
Al hacer referencia a la figura 4A, con el fin de generar el valor 35 de píxel de unidad de sub-pel al interpolar los dos valores de píxel de unidad de pel de número entero 31 y 33, se utiliza una pluralidad de valores de píxel de unidad de pel de número entero 37 y 39 que incluye los valores de píxel de unidad de pel de número entero 31 y 33. En otras palabras pueden interpolarse 0-ésimo y 1-er píxeles al realizar filtración de interpolación unidimensional sobre 2M valores de píxel de un valor de píxel -(M-1) a un M-ésimo valor de píxel.
También, aunque la figura 4A ilustra que los valores de píxel en una dirección horizontal son interpolados, puede realizarse filtración de interpolación unidimensional al utilizar valores de píxel en una dirección vertical o diagonal. Al hacer referencia a la figura 48, puede generarse un valor de píxel P(a) de una interpolación a al interpolar píxeles P0 41 y P143 que están adyacentes entre sí en una dirección vertical. Cuando se comparan las figuras 4A y 4b , sus procedimientos de filtración 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 son interpolados en la figura 4B mientras los valores de píxel 37 y 39 alineados en una dirección horizontal son interpolados en la figura 4A.
Al hacer referencia a la figura 4C, similarmente, un valor de píxel 44 de la ubicación de interpolación a se genera al interpolar dos 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 utilizan 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, puede realizarse filtración de interpolación unidimensional en varias direcciones.
La filtración de interpolación puede realizarse para interpolar píxeles de unidad de pel de número entero para generar un valor de píxel de unidad de sub-pel. La filtración de interpolación puede representarse por la siguiente ecuación.
p ( a ) = f ( « ) X p = S - M i fm - P m
Un valor de píxel p(x) se generan al realizar interpolación de conformidad con un producto de punto de un vector p de 2M píxeles de referencia de unidad de pel de número entero {pm} = {p-M+i, p-M+2, ..., po, pi , ..., pm} y un vector f(x) de coeficientes de filtro {fm} = {f-M+i, f-M+2, ..., fo, fi , ..., fM}. Ya que un coeficiente de filtro f(a) varía de conformidad con la ubicación de interpolación a y un valor de píxel p(a) obtenido al realizar la interpolación se determina de conformidad con el coeficiente de filtro f(a) , un filtro de interpolación seleccionado, es decir, el coeficiente de filtro determinado f(x), e influencia ampliamente el desempeño de filtración de interpolación.
La interpolación de imagen que utiliza transformación y transformación inversa con base en funciones base, y un procedimiento para determinar un filtro de interpolación se describirán ahora en detalle.
Un filtro de interpolación que utiliza transformación y transformación inversa inicialmente transforma valores de píxel al utilizar una pluralidad de funciones 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 transformada de coseno discreta (DCT). Se transforman valores de píxel de unidad de pel de número entero al utilizar una pluralidad de funciones base. Un valor de píxel puede ser un valor de píxel luma o un valor de píxel croma. Las funciones base no están limitadas a funciones base particulares y pueden incluir todas las funciones 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 base puede ser una función de coseno o de seno para realizar DCT y DCT inversa (IDCT). Alternativamente, pueden utilizarse varias funciones base tal como una función spline y una función de base polinominal. También, DCT puede ser DCT modificada (MDCT) o MDCT con sistema de ventanas. El filtro de interpolación que utiliza transformación y transformación inversa desplaza fases de las funciones base utilizadas para realizar transformación y transforma de manera inversa valores de una pluralidad de coeficientes generados al utilizar las funciones base desplazadas en fase, es decir, valores en un dominio de transformación. Como un resultado de transformación inversa, se envían valores de píxel en un dominio espacial y los valores de salida pueden ser valores de píxel de una ubicación de interpolación.
< Coeficientes de filtro que utilizan transformación ortogonal y transformación inversa con base en funciones de base ortogonales>
Se describirá ahora en detalle un caso cuando el interpolador 14 realiza filtración de interpolación utilizando transformación y transformación inversa con base en funciones base ortogonales. Específicamente, se describe DCT como un ejemplo de la transformación.
Por ejemplo, al hacer referencia a la figura 4A, con el fin de generar el valor 35 de píxel de unidad de sub-pel al interpolar los dos valores de píxel unidad de pel de número entero 31 y 33, al utilizar una pluralidad de valores de píxel de unidad de pel de número entero adyacentes 37 y 39 que incluye los valores de píxel de unidad de pel de número entero 31 y 33, pueden interpolarse 0-ésimo y 1-er píxeles al realizar DCT unidimensional en 2M valores de píxel de un (M-l)-ésimo valor de píxel a un M-ésimo valor de píxel, y al realizar IDCT unidimensional con base en funciones base desplazadas en fase.
El interpolador 14 realiza inicialmente DCT unidimensional sobre valores de píxel de unidad de pel de número entero. Puede realizarse DCT unidimensional como se representó en la Ecuación 38.
[Ecuación 38]
Figure imgf000009_0001
p(I) representa los valores de píxel 37 y 39 de un -(M-1)-ésimo valor de píxel a un M-ésimo valor de píxel, y Ck representa una pluralidad de coeficientes en un dominio de frecuencia, que se generan al realizar DCT unidimensional sobre 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 38.
Después que se realiza DCT unidimensional sobre los valores de píxel 37 y 39 al utilizar la Ecuación 38, el interpolador 14 realiza transformación inversa sobre los coeficientes como se representó en la Ecuación 39.
[Ecuación 39]
Figure imgf000010_0001
a representa una ubicación de interpolación entre dos valores de píxel como se ilustró en la figura 13, y puede tener varios valores fraccionarios tal como 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, etc. El valor fraccionario no está limitado a un valor particular, y a puede ser un valor real en lugar de un valor fraccionario. P(a) representa el valor 35 de píxel de unidad de sub-pel de la ubicación de interpolación a, que se genera como un resultado de IDCT unidimensional. Cuando la Ecuación 39 se compara con la Ecuación 38, la fase de una función de coseno que es una función base utilizada para realizar IDCT se determina de conformidad con un número fraccionario a en lugar de un número entero I, y de esa forma es diferente de una función base utilizada para realizar DCT unidimensional. En otras palabras, la fase de cada función base utilizada para realizar transformación inversa, es decir, una función de coseno, se desplaza de conformidad con 2a. Si el interpolador 14 realiza IDCT con base en las funciones de coseno desplazadas en fase de conformidad con la Ecuación 39, el valor 35 de píxel de unidad de sub-pel de la ubicación de interpolación a, es decir, P(a), se genera.
DCT de conformidad con la Ecuación 38 se expresa por un determinante representado en la Ecuación 40.
[Ecuación 40]
C = D X REF
Aquí, C es una matriz 2Mx1 de los 2M coeficientes descritos anteriormente con relación a la Ecuación 38, y REF es una matriz 2Mx1 de los valores de píxel de unidad de pel de número entero, es decir, P-(m-1), ... Pm valores de píxel, descritos anteriormente con relación a la Ecuación 38. El número de valores de píxel de unidad de pel de número entero utilizados para realizar interpolación, es decir, 2M, se refiere al número de derivaciones de un filtro de interpolación unidimensional. D es una matriz cuadrada para realizar DCT unidimensional y puede definirse como se representó en la Ecuación 4.
[Ecuación 4]
Figure imgf000010_0002
k y I son números enteros que satisfacen las condiciones anteriores, y Dkl se refiere a una fila k y una columna y una columna I de la matriz cuadrada D para realizar DCT en la Ecuación 40. M es el mismo que aquel de la Ecuación 40. IDCT que utiliza una pluralidad de funciones base desplazadas en fase de conformidad con la Ecuación 39 se expresa por un determinante representado en la Ecuación 5.
[Ecuación 5]
jP ( cO — I-V ( ol) X c
Aquí, P(a) es el mismo que aquel de la Ecuación 39, y W(a) es una más matriz 1x2M para realizar IDCT unidimensional al utilizar una pluralidad de funciones base desplazadas en fase y puede definirse como se representó en la Ecuación 6.
[Ecuación 6]
Figure imgf000011_0001
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) descrita anteriormente con relación a la Ecuación 5. Un filtro F(a) para realizar DCT unidimensional e IDCT unidimensional utilizando una pluralidad de funciones base desplazadas en fase con base en las Ecuaciones 3 y 5 pueden definirse como se representó en la Ecuación 7.
[Ecuación 7]
Figure imgf000011_0002
k y I son enteros que satisfacen las condiciones anteriores, Fi(a) se refiere a una columna I de F(a), y W(a) y D son los mismos que aquellos de la Ecuación 40.
<Coeficientes de filtro de interpolación para interpolación escalada>
Varios procedimientos de generación de filtro de interpolación de conformidad con una realización de la presente invención se basan en una expresión aritmética para generar un número de punto flotante en lugar de un número entero, y valores absolutos de coeficientes de filtro usualmente no son mayores que 1. Específicamente, puede generarse un resultado de cálculo de un número real en lugar de un número entero por una ubicación de interpolación unidad de sub-pel a.
La eficiencia de cálculo con base en número entero es mayor que aquella de cálculo con base en punto flotante. Como tal, el aparato 10 de interpolación de imagen puede mejorar la eficiencia de cálculo de filtración de interpolación al escalar coeficientes de filtro en números enteros al utilizar una relación de escalamiento. También, ya que una profundidad de valores de píxel aumenta, también puede mejorarse la precisión de filtración de interpolación.
El aparato 10 de interpolación de imagen puede multiplicar coeficientes de filtro fm(a) por un valor predeterminado, y puede realizar interpolación de imagen al utilizar coeficientes de filtro grandes Fm(a). Por ejemplo, los coeficientes de filtro Fm(a) pueden seleccionarse de los coeficientes de filtro fm(a) como se representó en la Ecuación 8.
[Ecuación 8]
Figure imgf000011_0003
Para eficiencia de cálculo, la relación de escalamiento puede estar en la forma de 2n. n puede ser 0 o un número entero positivo. Un resultado de filtración de interpolación que utiliza coeficientes de filtro escalados por 2n puede tener una profundidad de bits escalada por n bits en comparación con un resultado obtenido al utilizar coeficientes de filtro originales.
La filtración de interpolación de cálculo en número entero que utiliza los coeficientes de filtro escalados Fm(a) puede satisfacer la Ecuación 9. En otras palabras, después que se realiza filtración de interpolación al utilizar los coeficientes de filtro escalados Fm(a), la profundidad de bit escalada tiene que restaurarse a una profundidad de bit original.
[Ecuación 9]
Figure imgf000012_0001
En este caso, un desplazamiento puede ser 2n-1.
En otras palabras, ya que se tiene que reducir un resultado de filtración de escalamiento utilizando un filtro de interpolación escalado por una relación de escalamiento, es decir, 2n, para restaurarse a bits originales, puede reducirse una profundidad del resultado de filtración escalado por n bits.
Si se realiza filtración de interpolación de dos pasos al realizar filtración de interpolación unidimensional en una dirección horizontal y al realizar filtración de interpolación unidimensional en una dirección vertical, puede hacerse una reducción por un total de 2n bits. Por consiguiente, si se escala un primer filtro de interpolación unidimensional por n1 bits y se escala un segundo filtro de interpolación unidimensional por n2 bits, después que se realiza filtración de interpolación de dos pasos al utilizar el primer y segundo filtros de interpolación unidimensional, puede hacerse 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á escalado.
Ya que una suma de los coeficientes de filtro fm(a) es 1,
[Ecuación 10]
X - M l fm ( « ) = 1
una condición para regularizar los coeficientes de filtro Fm(a) del filtro de interpolación escalado necesita satisfacer la Ecuación 11.
[Ecuación 11]
S m m , . , F m ( a ) = 2 "
Sin embargo, la condición de regularización de conformidad con la Ecuación 11 puede causar un error de redondeo. El aparato 10 de interpolación de imagen puede redondear los coeficientes de filtro escalados Fm(a) con base en la condición de regularización de conformidad con la Ecuación 11. Para regularización, algunos de los coeficientes de filtro escalados Fm(a) pueden ajustarse dentro de un intervalo predeterminado de valores originales. Por ejemplo, algunos de los coeficientes de filtro escalados Fm(a) pueden ajustarse dentro de un intervalo de ±1 con el fin de corregir un error de redondeo.
Para un filtro interpolación que tiene un número impar de píxeles de referencia o un filtro de interpolación asimétrico con respecto a una ubicación interpolación, el interpolador 14 puede tener un filtro de interpolación utilizando transformación y transformación inversa con base en una pluralidad de funciones base.
La interpolación de imagen que utiliza un filtro de interpolación de derivación de número impar incluyendo un número impar de coeficientes de filtro, como un filtro de interpolación que utiliza transformación y transformación inversa con base en una pluralidad de funciones base, se describirá ahora a continuación.
<Filtro de interpolación asimétrico>
La figura 5A es un diagrama para describir un procedimiento de filtración de interpolación que utiliza píxeles de referencia localizados asimétricamente con respecto a una ubicación de interpolación con el fin de determinar un valor de píxel de unidad de sub-pel, de conformidad con una realización de la presente invención.
Se asume que, con el fin de calcular un píxel p(a) 50 de una ubicación de interpolación de unidad de sub-pel a, se utilizan píxeles 52 de referencia izquierdos y píxeles 54 de referencia derechos con respecto a la ubicación de interpolación a para realizar filtración de interpolación. El número de los píxeles 52 de referencia izquierdos es tres y el número de los píxeles 54 de referencia derechos es cinco. Ya que se soporta un número impar de píxeles por la filtración de interpolación, los píxeles 52 y 54 de referencia izquierdos y derechos se localizan asimétricamente con respecto a la ubicación de interpolación a.
Como se describió anteriormente con relación a las Ecuaciones 38 a 40 y 4 a 7, la filtración de interpolación se realiza al utilizar 2M píxeles de referencia de unidad de pel de número entero p-M+1, p-M+2, p0, p-i , ... ,pm distribuidos simétricamente con respecto a la ubicación de interpolación a. Es decir, si se representan píxeles de referencia como pi, el intervalo de un número entero I se representa como -M+1 < I < M.
Si la ubicación de interpolación a de Ecuaciones 38 a 40 y 4 a 7 se mueve en traslación paralela a a-h, pueden generarse coeficientes de filtro de un filtro de interpolación utilizando píxeles de referencia localizados asimétricamente con respecto a la ubicación de interpolación a como se ilustró en la figura 5A al utilizar Ecuaciones 38 a 40 y 4 a 7.
En otras palabras, si los píxeles 52 y 54 de referencia izquierdos y derechos asimétricos se representan como pi, el intervalo de un número entero 1 es -M+1+h < I < M+h. En este caso, N es 4 y h es 1. El número de los píxeles 52 de referencia izquierdos es uno menos que en un caso 2M píxeles de referencia se distribuyen simétricamente con respecto a la ubicación de interpolación a.
El filtro de interpolación de conformidad con las Ecuaciones 38 a 40 y 4 a 7 es un filtro unidimensional. Con el fin de realizar filtración bidimensional, al utilizar el filtro unidimensional, se realiza filtración de interpolación en una dirección vertical y en una dirección horizontal. En otras palabras, se realiza filtración de interpolación unidimensional dos veces. De entre la realización de la filtración de interpolación unidimensional dos veces, para realizar compensación de movimiento, la segunda filtración de interpolación unidimensional utiliza un filtro del cual se aumenta el número de derivaciones de filtro por la mitad y se realiza la primera filtración de interpolación unidimensional sobre un bloque expandido.
Cuando se realiza filtración de interpolación sobre un límite izquierdo de un bloque, el bloque tiene que extenderse hacia a la izquierda desde el límite izquierdo. Si se utiliza un filtro de interpolación simétrico que utiliza 2M píxeles de referencia localizados simétricamente con respecto a la ubicación de interpolación a, con el fin de realizar filtración de interpolación, el bloque tiene que expandirse hacia la izquierda por M píxeles.
Sin embargo, si se utiliza un filtro de interpolación asimétrico utilizando píxeles de referencia localizados asimétricamente con respecto a la ubicación de interpolación, con el fin de realizar filtración de interpolación, una región de filtración tiene que expandirse hacia la izquierda del bloque por M-h píxeles. Similarmente, si h es una dirección negativa, cuando se realiza filtración de interpolación sobre un límite derecho de bloque, una región de filtración tiene que expandirse a la derecha del bloque por M+h píxeles. En otras palabras, si se realiza filtración de interpolación sobre un límite de un bloque, en comparación con un caso cuando se utiliza un filtro de interpolación simétrico, cuando se utiliza un filtro de interpolación asimétrico, puede reducirse una región del bloque que se va a expandir. Como tal, puede reducirse un espacio de almacenamiento para almacenar valores de píxel de la región expandida, y también puede reducirse la cantidad de cálculo para expandir el bloque.
<Filtro de interpolación de derivación de número impar>
La figura 5B es un diagrama para describir un procedimiento de interpolación utilizando un filtro de interpolación que incluye un número impar de coeficientes de filtro con el fin de determinar un valor de píxel de unidad de sub-pel, de conformidad con una realización de la presente invención.
Se asume que, con el fin de calcular un píxel p(a) de una ubicación de interpolación de unidad de sub-pel a, un filtro de interpolación utiliza píxeles de referencia {p.2, p- i , po, pi , p2}. El número de píxeles de referencia es cinco, es decir, un número impar, y pueden indicarse tres píxeles 51 de referencia izquierdos y dos píxeles 53 de referencia derechos con respecto a la ubicación de interpolación a para realizar filtración de interpolación.
Ya que los píxeles 51 y 53 de referencia izquierdos y derechos se localizan asimétricamente con respecto a la ubicación de interpolación a y el número de los píxeles 53 de referencia derechos es menor que aquel de los píxeles 51 de referencia izquierdos, el filtro de interpolación ilustrado en la figura 5B puede ser efectivo para realizar filtración de interpolación sobre un límite derecho de un bloque.
Inicialmente, de conformidad con las Ecuaciones 12 a 15, se determinan coeficientes de filtro {p(a)} de un filtro de interpolación que utiliza píxeles de referencia {pi} en los cuales el intervalo de un entero I es -M+1 < I < M-1, y que tiene un tamaño de filtro Tamaño (es decir, el número de derivaciones de filtro) de 2M-1.
[Ecuación 12]
2 í n k i l + Tamaño/ 2 )
D,k ---- T-a-m-a--ño eos \ --------- T-a-m--a-ñ-o---------M 1 < / < M - 1;
0 < k < Tamaño — 1
[Ecuación 13]
Figure imgf000014_0001
[Ecuación 14]
F ilt ro á < ¿ ) = Y S - %^ k D ik
[Ecuación 15]
p ( a ) - Y ,fLz1M+ 1 F il t r o < ia ) l p l
Si M es 3, pueden determinarse coeficientes de filtro de interpolación de la figura 5B de conformidad con la Ecuación 15.
Alternativamente, de conformidad con Ecuaciones 16 a 19, pueden determinarse coeficientes de filtro {p(a)} de un filtro de interpolación que utiliza píxeles de referencia {pi} en los cuales el intervalo de un número entero I es -M+2 < I < M, y que tienen un tamaño de filtro Tamaño (es decir, el número de derivaciones de filtro) de 2M-1.
[Ecuación 16]
Figure imgf000014_0002
[Ecuación 17]
Figure imgf000014_0003
[Ecuación 18]
F iltro ^ ) = YJí::VW kDlk
[Ecuación 19]
p ía ) = Y iL-m +2 Filtro{a)iVi
La filtración de interpolación que utiliza los coeficientes de filtro determinados de conformidad con la Ecuación 19 puede realizarse sobre píxeles movidos en traslación paralela por uno a la derecha de los píxeles de referencia de la figura 5B.
En las Ecuaciones 12 a 19, a no está limitado a un valor igual o mayor que 0 e igual o mayor que 1. En otras palabras, a puede tener un valor menor que 0 o mayor que 1. Por consiguiente, con base en Ecuaciones 12 a 19, puede obtenerse un filtro de interpolación de derivación de número impar que tiene un número impar de derivaciones de filtro. Ya que el número de derivaciones de filtro es un número impar, puede realizarse filtración de interpolación utilizando el filtro de interpolación sobre un número impar de píxeles de referencia.
El filtro de interpolación también puede obtenerse al combinar un filtro de interpolación que utiliza píxeles de referencia localizados asimétricamente con respecto a una ubicación de interpolación, y un filtro de interpolación de derivación de número impar. Es decir, también está disponible un filtro de interpolación para realizar filtración de interpolación sobre un número impar de píxeles localizados asimétricamente con respecto a una ubicación de interpolación.
Si se generaliza el centro de píxeles de referencia en Ecuaciones 12 a 15, pueden inducirse coeficientes de filtro de un filtro de interpolación de conformidad con las Ecuaciones 20 y 21.
[Ecuación 20]
Figure imgf000015_0001
[Ecuación 21]
Figure imgf000015_0004
Aquí, Mmax y Mmin representan respectivamente valores de índice mínimos y máximos de entre píxeles de referencia y pueden representar el intervalo de los píxeles de referencia. Por consiguiente, puede determinarse un tamaño de filtro Tamaño como Mmax-Mmin+1. Por ejemplo, en un filtro de interpolación de 7 derivaciones, si Mmax = 3 y Mmin = -3, un Centro de índice central de píxeles de referencia puede ser 0. En otras palabras, Centro tiene un valor promedio de Mmax Y Mmin.
También, si se representa una función base para un filtro de interpolación de conformidad con las Ecuaciones 20 y 21 como una función base Wk de una función de transformación de coseno, se inducen las Ecuaciones 22 y 23.
[Ecuación 22]
Figure imgf000015_0002
[Ecuación 23]
Figure imgf000015_0003
Por consiguiente, el filtro de interpolación puede ser un filtro de interpolación asimétrico que utiliza píxeles de referencia localizados asimétricamente con respecto a una ubicación de interpolación, y pueden incluir un filtro de interpolación de derivación de número impar del cual el número de coeficientes de filtro es un número impar. Como se describió anteriormente con relación a las Ecuaciones 38 y 40 y 4 a 7, el filtro de interpolación también puede incluir un filtro de interpolación simétrico y un filtro de interpolación de derivación de número par.
En general, un filtro de interpolación de derivación de número impar puede ser un filtro de interpolación asimétrico. Sin embargo, un filtro de interpolación de derivación de número par puede ser un filtro de interpolación simétrico o un filtro de interpolación asimétrico. Por ejemplo, un filtro de interpolación de 8 derivaciones puede ser un filtro de interpolación de derivación del número par simétrico si incluye cuatro coeficientes de filtro y cuatro coeficientes de filtro en ambos lados de una ubicación de interpolación en una región soportada por el filtro de interpolación de derivación del número par simétrico, y puede ser un filtro de interpolación de derivación de número par asimétrico si incluye tres coeficientes de filtro y cinco coeficientes de filtro en ambos lados de una ubicación de interpolación en una región soportada por el filtro de interpolación de derivación del número par asimétrico.
El filtro de interpolación puede incluir coeficientes de filtro generados al ajustar la uniformidad de una respuesta de filtro de interpolación de conformidad con una ubicación de interpolación.
Se describirá ahora en detalle un caso cuando se utiliza un filtro de ventana para determinar varios filtros de interpolación alisados.
<Filtro de interpolación alisado que utiliza filtro de ventana>
Se describirá ahora en detalle un procedimiento para alisar coeficientes de filtro de interpolación al utilizar un filtro de ventana.
Un filtro de ventana puede utilizar 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 hamming, una función de ventana de Blackman, y una función de ventana de triángulo. Aunque se describirán a continuación casos cuando se alisan filtros de interpolación con base en transformación y transformación inversa al utilizar ciertas funciones de ventana para conveniencia de explicación, se entenderá por un experto en la técnica, además de las funciones de ventana descritas, que también pueden utilizarse otras funciones de ventana que tienen respuestas de frecuencias similares.
Coeficientes de ventana de conformidad con una función de ventana de hamming satisfacen la Ecuación 24.
[Ecuación 24]
Figure imgf000016_0003
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 aquella de un filtro de paso bajo. De entre entradas de una función de ventana, únicamente puede enviarse una entrada cubierta por una ventana formada por la función de ventana. Un tamaño de ventana N puede establecerse como un número entero positivo mayor que la longitud de un filtro de interpolación original. Por ejemplo, con el fin de aplicar una función de ventana a un filtro 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 puede moverse por 1/2 o 1/4 píxel. Es decir, ya 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 25 y 26 muestran coeficientes de ventana de funciones de ventana de hamming para filtros de interpolación de unidad de 1/2 pel y de unidad de 1/4 pel, respectivamente.
[Ecuación 25]
Figure imgf000016_0002
[Ecuación 26]
Figure imgf000016_0001
La Ecuación 27 muestra secuencialmente 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 de conformidad con una ubicación de interpolación de unidad de sub-pel a.
[Ecuación 27]
Figure imgf000016_0004
Al combinar los coeficientes de ventana de conformidad con la Ecuación 27 con un filtro de interpolación original fk(a), pueden determinarse coeficientes de filtro de interpolación alisados de conformidad con la Ecuación 28.
[Ecuación 28]
Figure imgf000016_0005
Ya que se determina un filtro de interpolación alisado al utilizar un filtro de ventana, puede ajustarse una ponderación de un coeficiente de filtro de interpolación con base en la distancia entre un píxel de referencia de unidad de pel de número entero y una ubicación de interpolación. Por ejemplo, puede determinarse un filtro de interpolación alisado de tal forma que, mediante una función de ventana, de entre coeficientes de filtro de un filtro de interpolación, se alisa ampliamente un coeficiente de filtro para un píxel de referencia de unidad de pel de número entero localizado lejos de una ubicación de interpolación y no se cambia ampliamente un coeficiente de filtro para un píxel de referencia de unidad de pel de número entero localizado cerca de la ubicación de interpolación.
También, si se determina un filtro de interpolación alisado al utilizar un filtro de ventana, puede realizarse filtración de interpolación después que se alisan los píxeles de referencia de unidad de pel de número entero. Los píxeles de referencia de unidad de pel de número entero de entrada Ref= {p-M+i, p-M+2, ..., po, pi , ..., pm} pueden incluir ruido o pueden dañarse debido a un error tal como un error de cuantificación. Como tal, si se alisan píxeles de referencia de unidad de pel de número entero antes que se realice filtración de interpolación, el aparato 10 de interpolación de imagen puede mejorar un efecto de interpolación.
<Filtro de interpolación que utiliza filtro de ventana asimétrico>
Un filtro de ventana asimétrico es asimétrico con respecto al centro del filtro. Por consiguiente, un filtro de ventana asimétrico para un filtro de interpolación puede utilizarse para realizar filtración de interpolación asimétricamente con respecto a una ubicación de interpolación.
La Ecuación 29 muestra coeficientes de filtro W i de un filtro de ventana asimétrico en la forma más simple.
[Ecuación
Figure imgf000017_0001
N representa un tamaño de ventana, y Mmin y Mm representan píxeles de referencia de las ubicaciones más alejadas de una ubicación de interpolación.
Pueden ajustarse características de filtro de un filtro de ventana al variar el tamaño de ventana N. El tamaño de ventana N puede ser igual a mayor que un tamaño de filtro Tamaño de un filtro de interpolación y puede ser igual a o menor que dos veces el tamaño de filtro Tamaño (Tamaño < N < 2XTamaño).
Por ejemplo, cuando las Ecuaciones 38 a 40 y 4 a 7 se combinan con la Ecuación 29, si se determinan coeficientes de filtro de un filtro de interpolación simétrico en donde M es 4, ya que el número de píxeles de referencia (2M) es 8, se obtiene un filtro de interpolación de 8 derivaciones. Si se utiliza una función de filtro en la cual el tamaño de ventana N=13, los coeficientes de filtro de un filtro de interpolación de unidad de 1/4 pel y un filtro de interpolación de unidad de 1/2 pel se representa como a continuación. Aquí, un factor de escalamiento utilizado S es 64.
Coeficientes de filtro de interpolación unidad de 1/4 pel {pi} = {-1,4, -10, 57, 19, -7, 3, -1}
Coeficientes de filtro de interpolación de unidad de 1/2 pel {pi} = {-1, 4, -11,40, 40, -11,4, -1}.
Similarmente, cuando se combinan Ecuaciones 38 a 44 y 4 a 7 con la Ecuación 29, si se ajustan Mmin y Mmax de manera diferente, pueden determinarse coeficientes de filtro de un filtro de interpolación asimétrico al utilizar un filtro de ventana asimétrico.
<Filtro de interpolación alisado que utiliza dos parámetros>
Un filtro de interpolación alisado puede determinar la uniformidad de coeficientes de filtro con base en dos parámetros. Los coeficientes de filtro de interpolación alisados de unidad de sub-pel obtenidos al combinar una matriz de alisado S y coeficientes de filtro de interpolación con base en transformación y transformación inversa satisfacen la Ecuación 30.
[Ecuación 30]
f(a) = f(ci)T ■ S
La Ecuación 31 muestra un ejemplo de la matriz de alisado S.
[Ecuación 31]
Sij
(sn
(sji
Figure imgf000017_0002
{s,i = 1 - tfj; su _! = a j ; i = M
La matriz de alisado S de conformidad con la Ecuación 31 es una matriz de tres diagonales. En otras palabras, de entre componentes de la matriz de alisado S, componentes diferentes a componente sobre una línea diagonal central y dos líneas diagonales que corresponden entre sí y adyacentes a la línea diagonal central son todos 0.
En la matriz de alisado S, puede determinarse una uniformidad a¡ sin importar la distancia (i-a) de los píxeles de unidad de pel de número entero que se van a interpolar. En este caso, el alisado de conformidad con la matriz de alisado S puede indicarse como alisado uniforme.
También, en la matriz de alisado S, la uniformidad a¡ puede cambiar de conformidad con un índice I de una ubicación de píxel de unidad de pel de número entero. En este caso, el alisado de conformidad con la matriz de alisado S puede indicarse como alisado no uniforme. Por ejemplo, la uniformidad ct¡ puede satisfacer la Ecuación 32.
[Ecuación 32]
« i = m - o 1
Un índice positivo I 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 número entero es grande. Por consiguiente, el índice positivo I puede controlar la velocidad de alisado de conformidad con la distancia entre una ubicación de interpolación y un píxel de referencia de unidad de pel de número 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 de conformidad con la Ecuación 13 puede cambiar en un filtro de definición. Por consiguiente, si la matriz de alisado S que es menor que 0 se combina con un filtro de interpolación utilizando transformación inversa, puede generarse un filtro para amplificar componentes de alta frecuencia.
Con el fin de realizar predicción de unidad de sub-pel, el aparato 10 de interpolación de imagen puede utilizar datos de coeficiente de filtro de interpolación alisados previamente almacenados en memoria.
La figura 6 es una gráfica 67 de un factor de alisado con base en un parámetro de alisado 0 de un filtro de interpolación de alisado, de conformidad con una realización de la presente invención.
Las primeras y segundas curvas 68 y 69 muestran un factor de alisado para alisar un filtro de interpolación con base en transformación discreta. Si M es grande, es decir, si la distancia de píxel es de unidad de pel de número entero que se van a interpolar aumenta, el factor de alisado está cerca de 0.
Aquí, en comparación con la segunda curva 69 en un caso cuando el parámetro de alisado p es grande, la primera curvas 68 en un caso cuando el parámetro de alisado p es pequeño tiene un ancho relativamente grande del factor de alisado. En otras palabras, si el parámetro de alisado p del filtro de interpolación de alisado es grande, componentes de baja frecuencia pueden filtrarse principalmente y de esa forma pueden generarse valores de píxel de unidad de sub-pel relativamente alisados de manera fuerte. Si el parámetro de alisado p del filtro de interpolación alisado es relativamente pequeño, pueden permanecer e interpolarse componentes de frecuencia relativamente alta y de esa forma pueden generarse valores de píxel de unidad de sub-pel.
Se describen anteriormente varios filtros de interpolación y coeficientes de filtro. Específicamente, como una función para determinar coeficientes de filtro de un filtro de interpolación, puede utilizarse una función de ventana, una función de spline, una función polinominal, etc. Para un filtro de interpolación, una respuesta de frecuencia de una función puede variar de conformidad con 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 10 de interpolación de imagen puede determinar coeficientes de filtro al utilizar una función de la cual una ganancia de filtro de una respuesta de frecuencia está más cerca de 1 incluso cuando una frecuencia varía, y puede seleccionar un filtro de interpolación incluyendo los coeficientes de filtro.
<Filtro de interpolación regularizado>
Si se aumenta un tamaño de filtro de un filtro de interpolación, puede mejorarse la precisión de interpolación. Sin embargo, si se aumenta el tamaño de filtro, componentes de alta frecuencia permanecen en un resultado de filtración y de esa forma el filtro de interpolación es vulnerable al ruido. El filtro de interpolación puede alisar valores de píxel de referencia {pi} al utilizar una función de ventana de coseno que tiene una ubicación de interpolación a como su centro, reduciendo con ello ruido en un resultado de filtración de interpolación. Una operación de alisado de los valores de píxel de referencia {pi} al utilizar una función de ventana de coseno satisface la Ecuación 33.
[Ecuación 33]
Figure imgf000018_0001
N representa un tamaño de ventana para alisado, pero no necesariamente puede ser un número entero. Por consiguiente, si se combina filtración utilizando transformación y transformación inversa de conformidad con la Ecuación 7 configuración de ventana de conformidad con la Ecuación 33, se permite filtración de interpolación alisada para una ubicación de interpolación de unidad de sub-pel a. La filtración de interpolación alisada puede realizarse al utilizar un filtro de respuesta de impulso finito (FIR) y satisface las Ecuaciones 34 y 35.
[Ecuación 34]
Figure imgf000019_0001
[Ecuación 35]
Figure imgf000019_0002
En las Ecuaciones 34 y 35, pa representa un valor de píxel generado como un resultado de filtración de interpolación alisado, y Filtrol(a) representa coeficientes de filtro de un filtro de interpolación alisado. Mmin y Mmax representan el intervalo de píxeles de referencia.
En un filtro de interpolación alisado para píxeles croma, puede ajustarse un parámetro de alisado de filtro de interpolación alisado para remover la influencia de componentes de alta frecuencia de más. Los coeficientes de filtro de un filtro de interpolación croman que utiliza un parámetro de alisado pueden determinarse como se representó en las Ecuaciones 36 y 37.
[Ecuación 36]
Figure imgf000019_0003
La figura 7 es una gráfica 70 de respuesta de frecuencia de amplitud de filtros de interpolación, de conformidad con una realización de la presente invención.
Si una señal armónica que tiene un tamaño de 1 se ingresa a los filtros de interpolación, la gráfica 70 de respuesta de frecuencia de amplitud de los filtros de interpolación puede mostrar resultados de realizar filtración de interpolación.
La gráfica 70 de respuesta de frecuencia de amplitud muestra una primera respuesta 71 de frecuencia de un filtro de interpolación alisado de 8 derivaciones que utiliza DCT e IDCT con base en funciones base, de conformidad con la realización de la presente invención, una segunda respuesta 72 de frecuencia de un filtro de interpolación alisado de 8 derivaciones regularizado de conformidad con una realización de la presente invención, y una tercera respuesta 73 de frecuencia de un filtro de interpolación de 6 derivaciones de conformidad con el estándar de codificación de video H.264.
En la primera a tercera respuestas 71 a 73 de frecuencia, las colinas 711, 715, 721, y 731 representan que las señales son amplificadas en frecuencias correspondientes, y un valle 713 representa que una señal es amortiguada en una frecuencia correspondiente. Un efecto de que una señal de entrada es amplificada o amortiguada no es apropiado en filtración de interpolación.
En una respuesta 74 de frecuencia de amplitud ideal, se mantiene constantemente una ganancia de filtro como 1 en todas las frecuencias y de esa forma no existe en absoluto una columna o valle. Esto significa que no ocurre distorsión debido a filtración de interpolación.
Si una respuesta de frecuencia de un filtro de interpolación está más cerca de la respuesta 74 de frecuencia de amplitud ideal, un resultado de filtración de interpolación es más preciso. La distorsión en una respuesta de frecuencia de un filtro de interpolación en comparación con la respuesta 74 de frecuencia de amplitud ideal puede representarse como un cuadrado de la diferencia entre la respuesta de frecuencia de filtro de interpolación y la respuesta 74 de frecuencia de amplitud ideal, es decir, un área de una región de diferencia.
Por ejemplo, puede minimizarse distorsión en una respuesta de frecuencia del filtro de interpolación alisado regularizado en comparación con la respuesta 74 de frecuencia de amplitud ideal al ajustar su tamaño de filtro de ventana N y su uniformidad a. La distorsión en la respuesta de frecuencia del filtro de interpolación alisado regularizado en comparación con la respuesta 74 de frecuencia de amplitud ideal corresponde a un área de una región sombreada entre la respuesta 74 de frecuencia de amplitud ideal y la segunda respuesta 72 de frecuencia en la gráfica 70 de respuesta de frecuencia de amplitud. Es decir, si el área de la región sombreada es pequeña, puede mejorarse la precisión de interpolación alisada al utilizar el filtro de interpolación alisado regularizado.
También, ya que una respuesta de frecuencia de un filtro FIR está cerca de 0, ya que una frecuencia está cerca de H, el filtro FIR puede no generar componentes de alta frecuencia. También, si un nivel de corte de un filtro interpolación es bajo, el filtro de interpolación puede no restaurar información detallada de una imagen de referencia. En general, si la longitud de un filtro es grande, puede asignarse un nivel de corte alto. En la gráfica 70 de respuesta de frecuencia de amplitud, ya que niveles 719 y 729 de corte de la primera y segunda respuestas 71 y 72 de frecuencia del filtro de interpolación alisado y el filtro de interpolación alisado regularizado son más altos que un nivel 739 de corte de la tercera respuesta 73 de frecuencia del filtro de interpolación H.264, el filtro de interpolación alisado y el filtro de interpolación alisado regularizado pueden restaurar información detallada de una imagen de referencia de forma más precisa en comparación con el filtro de interpolación H.264.
Por consiguiente, en comparación con el filtro de interpolación H.264, el filtro de interpolación alisado puede dejar componentes de alta frecuencia de una señal de entrada después de realizar filtración de interpolación. También, en comparación con el filtro de interpolación H.264, una región de distorsión del filtro de interpolación alisado es relativamente pequeña y de esa forma distorsiona en un resultado de interpolación es relativamente pequeña.
De entre filtros de interpolación alisado, la segunda respuesta 72 de frecuencia del filtro de interpolación alisado regularizado está cerca de la respuesta 74 de frecuencia de amplitud ideal, y la primera respuesta 71 de frecuencia del filtro de interpolación alisado no regularizado tiene una región de distorsión relativamente grande debido a colinas y valles. En otras palabras, en comparación con el filtro de interpolación alisado regularizado, un resultado de filtración del filtro de interpolación alisado no regularizado puede incluir más artefactos no deseados.
Por consiguiente, como coeficientes de filtro de un filtro de interpolación de conformidad con una realización de la presente invención, pueden seleccionarse coeficientes de filtro de filtro de interpolación alisado regularizado para minimizar una región de distorsión en comparación con la respuesta 74 de frecuencia de amplitud ideal. En otras palabras, si el tamaño de filtro de ventana N y la uniformidad a del filtro de interpolación alisado se ajustan y se regularizan sus coeficientes de filtro, pueden determinarse coeficientes de filtro para minimizar una región de distorsión de una respuesta de frecuencia del filtro de interpolación alisado.
Por lo tanto, filtros de interpolación del aparato 10 de interpolación de imagen pueden incluir coeficientes de filtro determinados en consideración de alisado.
<Desplazamiento de fase a y valor de vector de movimiento>
La precisión para compensación de movimiento típica está en una unidad de sub-pel de una unidad de 1/2p-pel tal como una unidad de 1/2 pel y una unidad de 1/4 pel. Sin embargo, una ubicación de interpolación a para determinar coeficientes de filtro de un filtro de interpolación de unidad de sub-pel de conformidad con una realización de la presente invención no está limitada a una unidad de 1/2p-pel.
Con el fin de realizar compensación de movimiento de la ubicación de interpolación a en una unidad de sub-pel diferente a una unidad de 1/2 pel o una unidad de 1/4 pel, pueden utilizarse vectores parciales de un vector de movimiento de unidad de 1/2 pel o unidad de 1/4 pel. Por ejemplo, se asume un grupo de componente de unidad de sub-pel {a, 1/2, 1- a } de un vector de movimiento o MV de unidad de 1/2 pel. Ya que la longitud de componentes de unidad de codificación del vector de movimiento MV se reduce si a es menor que 1/4, puede mejorarse la estabilidad de filtración de interpolación para compensación de movimiento y pueden guardarse bits de codificación para un vector de movimiento diferencial.
El formato de color más utilizado en codificación de video es un formato 4:2:0. En este caso, pueden codificarse muestras croma que corresponden a un medio del número de muestras luma. Si se comparte el mismo vector de movimiento entre las muestras luma y croma, el tamaño de un vector de movimiento croma es un medio del tamaño de un vector de movimiento luma. Por consiguiente, puede sincronizarse un desplazamiento de fase de un filtro de interpolación luma con el desplazamiento de fase de un filtro de interpolación croma.
Por ejemplo, si el desplazamiento de fase del filtro de interpolación luma es {ai}, el desplazamiento de fase del filtro de interpolación croma puede sincronizarse a {a/2} U {1-a/2} U {1/2}.
Por ejemplo, cuando se realiza compensación de movimiento al utilizar el grupo de componente de unidad de subpel del vector de movimiento MV, si el desplazamiento de fase del filtro de interpolación luma es {a, 1/2, 1-a}, el desplazamiento de fase del filtro de interpolación croma puede sincronizarse a {a/2, (1-a/2, 1/2, 1-a/2, 1-(1-a)/2}. Como filtros de interpolación de conformidad con realizaciones de la presente invención, un filtro de interpolación que utiliza transformación y transformación inversa con base en una pluralidad de funciones base, un filtro de interpolación para realizar interpolación en una unidad de sub-pel, un filtro de interpolación simétrico o asimétrico, un filtro de interpolación de derivación de número impar o par, un filtro interpolación que utiliza un filtro de ventana, un filtro de interpolación que considera alisado, y un filtro de interpolación regularizado se describen anteriormente. Los filtros de interpolación mencionados anteriormente pueden operar individualmente o pueden combinarse. Por ejemplo, un filtro de interpolación de conformidad con una realización de la presente invención puede realizar interpolación en una unidad de sub-pel y puede realizar filtración de interpolación sin importar si los píxeles de referencia están localizados simétrica o asimétricamente con respecto a una ubicación de interpolación. También, ya que el número de coeficientes de filtro puede ser un número par o impar, el filtro de interpolación puede realizar filtración de interpolación sobre un número impar de píxeles de unidad de pel de número entero, así como un número par de píxeles de unidad de pel de número entero. Además, ya que pueden seleccionarse coeficientes de filtro de un filtro de interpolación alisado regularizado, información detallada de píxeles de referencia puede permanecer y pueden minimizarse componentes de alta frecuencia no deseados tal como ruido, minimizando con ello distorsión debido a filtración interpolación.
La figura 8 es un diagrama de flujo de un procedimiento de interpolación de imagen de conformidad con una realización de la presente invención.
En la operación 81, de entre filtros de interpolación para generar al menos un valor de píxel de unidad de sub-pel localizado entre unidades de pel de número entero de una imagen, se selecciona individualmente un filtro de interpolación simétrico o asimétrico de conformidad con una ubicación de interpolación de unidad de sub-pel.
El filtro de interpolación asimétrico seleccionado puede ser un filtro de interpolación de derivación de número impar. El filtro de interpolación simétrico seleccionado puede ser un filtro de interpolación de derivación de número par. Con el fin de interpolar píxeles de unidad de pel de número entero en un dominio espacial, el filtro de interpolación puede incluir coeficientes de filtro obtenidos al combinar un filtro que utiliza transformación y transformación inversa con base en una pluralidad de funciones base, y un filtro de ventana asimétrico o simétrico.
Un filtro de interpolación, que está regularizado para minimizar un error de respuesta de frecuencia generado como un resultado de interpolación cuando utiliza el filtro de interpolación seleccionado, se selecciona. También, con el fin de prevenir que se restauren componentes de alta frecuencia tal como ruido, puede seleccionarse un filtro de interpolación que incluye coeficientes de filtro para alisar píxeles de referencia.
En la operación 83, se interpolan valores de píxel unidad de pel de número entero al utilizar el filtro de interpolación seleccionado en la operación 81, generando con ello al menos un valor de píxel de unidad de sub-pel.
Si se selecciona un filtro de interpolación asimétrico en la operación 81, en la operación 83, puede realizarse filtración sobre píxeles de unidad de pel de número entero localizados asimétricamente con respecto a una ubicación de interpolación. Si se selecciona un filtro de interpolación simétrico en la operación 81, en la operación 83, puede realizarse filtración sobre píxeles de unidad de pel de número entero localizados simétricamente con respecto a una ubicación de interpolación.
También, si se selecciona un filtro de interpolación de derivación de número impar asimétrico en la operación 81, en la operación 83, puede realizarse filtración sobre un número impar de píxeles de unidad de pel de número entero localizados con respecto a una ubicación de interpolación al utilizar un número impar de coeficientes de filtro del filtro de interpolación de derivación de número impar asimétrico. Si se selecciona un filtro de interpolación de derivación de número par simétrico en la operación 81, en la operación 83, puede realizarse filtración sobre un número par de píxeles de unidad de pel de número entero localizados con respecto a una ubicación de interpolación al utilizar un número par de coeficientes de filtro del filtro de interpolación de derivación de número par simétrico.
Ahora se describirán varios ejemplos de coeficientes de filtro de un filtro de interpolación simétrico o asimétrico determinado selectivamente de conformidad con una ubicación de interpolación de unidad de sub-pel con referencia a las figuras 9A a 12B.
De conformidad con los principios descritos anteriormente, el filtro de interpolación ilustrado en las figuras 9A a 12B es un filtro obtenido al combinar un filtro de interpolación de unidad de sub-pel que utiliza transformación y transformación inversa con base en una pluralidad de funciones base, y un filtro de ventana para alisar componentes de alta frecuencia, e incluye coeficientes de filtro de los cuales se ajusta un tamaño de ventana y una uniformidad para minimizar distorsión en un resultado de interpolación. También, se describirán a continuación varios filtros de interpolación simétricos y asimétricos y filtros de interpolación de derivación de número impar y par.
Ya que el filtro de interpolación es un filtro simétrico o reflector de espejo, un coeficiente de filtro fm(1-a) de reubicación de interpolación (1- a) puede determinarse al utilizar un coeficiente de filtro a de una ubicación de interpolación a. Por consiguiente, en las tablas mostradas en las figuras 9A a 12B, aunque únicamente se muestran coeficientes de filtro de interpolación {fm(a)} en un caso cuando una unidad de sub-pel de un vector de movimiento MV es igual a o menor que 1/2, se entenderá por un experto en la técnica que pueden determinarse otros coeficientes de filtro de interpolación {fm(a)} en un caso cuando la unidad de sub-pel del vector de movimiento MV es mayor que 1/2.
Inicialmente, en las tablas mostradas en las figuras 9A 11C, 'FracMV' en la primera columna representa una unidad de sub-pel de un vector de movimiento MV para compensación de movimiento de unidad de 1/2p-pel. Con el fin de realizar filtración de interpolación de unidad de sub-pel, puede combinarse un valor de 'FracMV' con coeficientes de filtro en la segunda columna. Una ubicación de interpolación a en la tercera columna es un parámetro para definir una ubicación de interpolación de unidad de sub-pel y puede representar una cantidad de desplazamiento de fase de una unidad de pel de número entero. Un tamaño de filtro de ventana N en la cuarta columna puede no necesariamente ser un número entero. Los bits de escalamiento del filtro de interpolación son 6 bits.
Las figuras 9A a 9D respectivamente muestran coeficientes de filtro de filtros de interpolación de 3 derivaciones a 6 derivaciones determinados con base en una ubicación de interpolación y un tamaño de filtro de ventana, de conformidad con realizaciones de la presente invención.
La figura 9A muestra un filtro de interpolación asimétrico que es un filtro de interpolación de 3 derivaciones e incluye coeficientes de filtro {p- i , p0, pi }. Por consiguiente, el filtro de interpolación mostrado en la figura 9A puede realizar filtración de interpolación en píxeles de unidad de pel de número entero asimétricamente localizados con respecto a una ubicación de interpolación. Por ejemplo, si se realiza interpolación horizontal, puede realizarse filtración de interpolación sobre dos píxeles de referencia de unidad de pel de número entero izquierdos y un píxel de referencia de unidad de pel de número entero derecho con respecto a una ubicación de interpolación.
La figura 9B muestra un filtro de interpolación simétrico que es un filtro de interpolación de 4 derivaciones e incluye coeficientes de filtro {p- i , po, pi , p2}. Por consiguiente, el filtro de interpolación mostrado en la figura 9B puede realizar filtración de interpolación sobre píxeles de unidad de pel de número entero simétricamente localizados con respecto a una ubicación de interpolación. Por ejemplo, si se realiza interpolación horizontal, puede realizarse filtración de interpolación al utilizar dos píxeles de referencia de unidad de pel de número entero izquierdos y dos píxeles de referencia de unidad de pel de número entero derechos con respecto a una ubicación de interpolación. La figura 9C muestra un filtro de interpolación asimétrico que es un filtro de interpolación de 5 derivaciones e incluye coeficientes de filtro {p. i , po, pi , p2, p3}. Por consiguiente, si se realiza interpolación horizontal, puede realizarse filtración de interpolación sobre dos píxeles de referencia de unidad de pel de número entero izquierdos y tres píxeles de referencia de unidad de pel de número entero derechos localizados simétricamente con respecto a una ubicación de interpolación.
La figura 9D muestra un filtro de interpolación simétrico que es un filtro de interpolación de 6 derivaciones e incluye coeficientes de filtro {p.2, p. i , po, pi , p2, p3}. Por consiguiente, si se realiza interpolación horizontal, puede realizarse filtración de interpolación al utilizar tres píxeles de referencia de unidad de pel de número entero izquierdos y tres píxeles de referencia de unidad de pel de número entero derechos simétricamente localizados con respecto a una ubicación de interpolación.
Las figuras iOA a iOC muestran respectivamente coeficientes de filtro de filtros de interpolación de 7 derivaciones determinados con base en una ubicación de interpolación y un tamaño de filtro de ventana, de conformidad con realizaciones de la presente invención.
La figura iOA muestra un filtro de interpolación asimétrico que incluye coeficientes de filtro {p.3, p-2, p. i , po, pi , p2, p3}. Por consiguiente, si se realiza interpolación horizontal al utilizar el filtro de interpolación mostrado en la figura ioA, puede realizarse filtración de interpolación sobre cuatro píxeles de referencia de unidad de pel de número entero izquierdos y tres píxeles de referencia de unidad de pel de número entero derechos localizados asimétricamente con respecto a una ubicación de interpolación.
La figura ioB muestra un filtro de interpolación asimétrico que incluye coeficientes de filtro {p-2, p- i , po, pi , p2, p3, p4}. Por consiguiente, si se realiza interpolación horizontal al utilizar el filtro de interpolación mostrado en la figura ioB, puede realizarse filtración de interpolación sobre tres píxeles de referencia de unidad de pel de número entero izquierdos y cuatro píxeles de referencia de unidad de pel de número entero derechos localizados asimétricamente con respecto a una ubicación de interpolación.
La figura ioC muestra un filtro de interpolación asimétrico que incluye coeficientes de filtro {p- i , po, pi , p2, p3, p4, ps}. Por consiguiente, si se realiza interpolación horizontal al utilizar el filtro de interpolación mostrado en la figura ioC, puede realizarse filtración de interpolación sobre dos píxeles de referencia de unidad de pel de número entero izquierdos y cinco píxeles de referencia de unidad de pel de número entero derechos localizados asimétricamente con respecto a una ubicación de interpolación.
Las figuras i iA a i iC respectivamente muestran coeficientes de filtro de filtros de interpolación de 8 derivaciones determinados con base en una ubicación de interpolación y un tamaño de filtro de ventana, de conformidad con realizaciones de la presente invención.
La figura i iA muestra un filtro de interpolación simétrico que incluye coeficientes de filtro {p-3, p-2, p- i , po, pi , p2, p3, p4}. Por consiguiente, si se realiza interpolación horizontal al utilizar el filtro de interpolación mostrado en la figura IIA , puede realizarse filtración de interpolación sobre cuatro píxeles de referencia de unidad de pel de número entero izquierdos y cuatro píxeles de referencia de unidad de pel de número entero derechos localizados simétricamente con respecto a una ubicación de interpolación.
La figura 11B muestra un filtro de interpolación asimétrico que incluye coeficientes de filtro {p-2, p-1, p0, p-i , p2, p3, p4, ps}. Por consiguiente, si se realiza interpolación horizontal al utilizar el filtro de interpolación mostrado en la figura IIB , puede realizarse filtración de interpolación sobre tres píxeles de referencia de unidad de pel de número entero izquierdos y cinco píxeles de referencia de unidad de pel de número entero derechos localizados asimétricamente con respecto a una ubicación de interpolación.
La figura 11C muestra un filtro de interpolación asimétrico que incluye coeficientes de filtro {p-4, p-3, p-2, p- i , po, pi , p2, p3}. Por consiguiente, si se realiza interpolación horizontal al utilizar el filtro de interpolación mostrado en la figura IIC , puede realizarse filtración de interpolación sobre cinco píxeles de referencia de unidad de pel de número entero izquierdos y tres píxeles de referencia de unidad de pel de número entero derechos localizados asimétricamente con respecto a una ubicación de interpolación.
Las figuras 12A y 12B muestran respectivamente coeficientes de filtro de un filtro de interpolación luma regularizado y un filtro de interpolación croma regularizado, de conformidad con realizaciones de la presente invención.
Las figuras 12A y 12B muestran coeficientes de filtro de filtros de interpolación regularizados seleccionados para minimizar una región de disolución como se describió anteriormente en <Filtro de interpolación regularizados De conformidad con la figura 12A, se ajusta un tamaño de filtro de ventana N para regularizar un filtro de interpolación luma. De entre varios filtros de interpolación mostrados en las figuras 9A a 11C, puede seleccionarse un filtro de interpolación de 7 derivaciones {-1, 4, -10, 58, 17, -5, -1} que tiene un tamaño de ventana de 8,7 como un filtro de interpolación luma regularizado para realizar filtración de interpolación de unidad de 1/4 pel. También, puede seleccionarse un filtro de interpolación de 8 derivaciones {-1, 4, -11, 40, 40, -11, 4, -1} que tiene un tamaño de ventana de 9,5 como un filtro interpolación luma regularizado para realizar filtración de interpolación de unidad de 1/2 pel. En otras palabras, puede seleccionarse un filtro de interpolación asimétrico como un filtro de interpolación luma de unidad de 1/4 pel, y puede seleccionarse un filtro de interpolación simétrico como un filtro de interpolación luma de unidad de 1/2 pel regularizado.
De conformidad con la figura 12B, se ajusta una uniformidad a para regularizar un filtro de interpolación croma. Puede seleccionarse un filtro de interpolación simétrico de 4 derivaciones de unidad de 1/8 pel como un filtro de interpolación croma regularizado.
Se describen a continuación codificación y decodificación de video utilizando un filtro de interpolación, de conformidad con realizaciones de la presente invención, con referencia a las figuras 13A a 27. Se describen a continuación codificación y decodificación de video con base en unidades de codificación que tienen una estructura de árbol, de conformidad con realizaciones de la presente invención, con referencia a las figuras 15 a 25. Se describen a continuación procedimientos de codificación y decodificación de video utilizando un filtro de interpolación, de conformidad con realizaciones de la presente invención, con referencia a las figuras 26 y 27.
Cuando se realizan varias operaciones sobre datos de imagen, los datos de imagen pueden dividirse en grupos de datos y puede realizarse la misma operación sobre datos del mismo grupo de datos. En la siguiente descripción, se indica un grupo de datos formado de conformidad con un estándar predeterminado como una 'unidad de datos', y se realiza una operación sobre cada 'unidad de datos' al utilizar datos incluidos en la unidad de datos.
<Codificación y decodificación de video que utilizan filtro de interpolación>
La figura 13A es un diagrama de bloques de un aparato 100 de codificación de video que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención.
Operaciones de un codificador 120 y una unidad 130 de salida del aparato 100 de codificación de video pueden controlarse cooperativamente mediante un procesador de codificación de video, una CPU, y un procesador gráfico. Con el fin de codificar una imagen actual de un video de entrada, el aparato 100 de codificación de video divide la imagen actual en unidades de datos que tienen un tamaño predeterminado 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 puede dividirse en grupos de píxel que tienen un tamaño predeterminado de manera que los píxeles adyacentes dentro de un intervalo predeterminado forman un grupo. Al realizar una serie de operaciones de codificación sobre píxeles de los grupos de píxel divididos, puede codificarse la imagen actual.
Ya que datos iniciales de una imagen que se van a codificar son valores de píxel en el dominio espacial, cada grupo de píxel puede utilizarse como una unidad de datos que se va a codificar. También, cuando se generan coeficientes de transformación en un dominio de transformación al realizar transformación para codificación de video sobre valores de píxel del grupo de píxel en el dominio espacial, se incluyen coeficientes de transformación en grupos de coeficiente que tienen el mismo tamaño que los grupos de píxel en el dominio espacial. Por consiguiente, también puede utilizarse un grupo de coeficiente de los coeficientes de transformación en el dominio de transformarse como una unidad de datos para codificar una imagen.
Por consiguiente, en el dominio espacial y el dominio de transformación, se va a codificar puede utilizarse un grupo de datos que tiene un tamaño predeterminado como una unidad de datos que se va a codificar. En este caso, el tamaño de una unidad de datos puede definirse como el número de piezas de datos incluidas 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 pueden 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 puede determinarse con respecto a cada grupo de datos de cualquier nivel de datos de entre una unidad de datos, un fragmento, una imagen, y una secuencia de imagen de un video que se va a codificar actualmente.
El aparato 100 de codificación de video puede codificar la imagen actual al realizar codificación de predicción incluyendo interpredicción e intrapredicción, transformación, cuantificación, y codificación de entropía en cada unidad de datos.
De conformidad con interpredicció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 posterior, pueden determinarse datos residuales entre un valor de píxel de una región de referencia de una imagen de referencia y un valor de píxel de una imagen actual, y datos de referencia que indican el valor de píxel indicado.
Con el fin de realizar de forma más precisa interpredicción, el aparato 100 de codificación de video puede determinar los datos residuales y los datos de referencia al utilizar un valor de píxel de unidad de sub-pel. Con el fin de realizar interpredicción de unidad de sub-pel, el aparato 100 de codificación de video puede determinar un valor de píxel de unidad de sub-pel localizado entre píxeles de unidad de pel de número entero adyacentes al interpolar los píxeles de unidad de pel de número entero adyacentes.
También, puede generarse el valor de píxel de unidad de sub-pel al realizar filtración de interpolación sobre dos o más píxeles de referencia de unidad de pel de número entero incluyendo los píxeles de unidad de pel de número entero adyacentes. Los píxeles de referencia para realizar filtración de interpolación pueden ser píxeles de una imagen de referencia.
Con el fin de realizar eficientemente interpolación de imagen, el aparato 100 de codificación de video puede determinar selectivamente coeficientes de filtro de interpolación. El codificador 120 puede incluir el aparato 10 de interpolación de imagen ilustrado en la Figura 1. En otras palabras, con el fin de realizar interpredicción de unidad de sub-pel, el codificador 120 puede generar un valor de píxel de unidad de sub-pel al utilizar un filtro de interpolación que incluye coeficientes de filtro determinados por el aparato 10 de interpolación de imagen con base en transformación y transformación inversa.
Con el fin de realizar eficientemente filtración e interpolación, el aparato 100 de codificación de video puede almacenar previamente coeficientes de filtro de interpolación en memoria. De conformidad con una ubicación de interpolación, una uniformidad, el número de derivaciones de filtro, una profundidad de bit, una relación de escalamiento, una función base de filtración de interpolación con base en transformación, una función de ventana, y un tamaño de ventana, pueden almacenarse varios coeficientes de filtro de interpolación en memoria del aparato 100 de codificación de video.
Por ejemplo, i) un filtro de interpolación de unidad de 1/4 pel que incluye coeficientes de filtro de 7 derivaciones {-1, 4, -10, 58, 17, -5, 1} y que tiene un tamaño de ventana de 8,7, y ii) un filtro de interpolación de unidad de 1/2 pel que incluye coeficientes de filtro de 8 derivaciones {-1, 4, -11, 40, 40, -11, 4, -1} y que tiene un tamaño de ventana de 9,5 pueden almacenarse en memoria y pueden utilizarse para realizar filtración de interpolación.
Además de los coeficientes de filtro de interpolación mencionados anteriormente, pueden utilizarse coeficientes de filtro de interpolación modificables de conformidad con varias funciones base y funciones de ventana como se muestra en las figuras 9A a 12B para realizar filtración de interpolación.
Si se realiza filtración de interpolación al utilizar los coeficientes de filtro almacenados en memoria, se puede mejorar una velocidad de cálculo de interpredicción.
De entre una pluralidad de filtro de interpolación, el codificador 120 puede seleccionar y utilizar un filtro de interpolación simétrico o asimétrico para realizar interpredicción de conformidad con una ubicación de interpolación de unidad de sub-pel a. Además, puede determinarse un filtro de interpolación apropiado para un píxel actual de conformidad con el número de derivaciones de filtro, una profundidad de bit, una relación de escalamiento, un tamaño de filtro de ventana, una uniformidad, etc.
El codificador 120 puede determinar un filtro de interpolación de conformidad con características de imagen. Por ejemplo, el codificador 120 puede determinar diferentes filtros de interpolación de conformidad con componentes de color de píxeles. Por ejemplo, un filtro de interpolación para píxeles luma y un filtro de interpolación para píxeles croma pueden seleccionarse separadamente y de esa forma pueden generarse individualmente valores de píxel de unidad de sub-pel al realizar filtración de interpolación.
Puede codificarse un video al realizar interpredicción con base en interpolación de unidad de sub-pel, intrapredicción, transformación, y cuantificación.
La unidad 130 de salida puede codificar y enviar información de codificación y puede enviar datos de imagen codificados. Como la información de codificación, puede codificarse adicionalmente información sobre el filtro de interpolación seleccionado. En otras palabras, puede codificarse información sobre un filtro de interpolación utilizado para realizar codificación de predicción de unidad de sub-pel. Por ejemplo, un decodificador tiene que conocer sobre un filtro de interpolación utilizado para codificar una imagen con el fin de decodificar la imagen al utilizar el mismo filtro de interpolación utilizado en el procedimiento de codificación. Para esto, puede codificarse información que indica el filtro de interpolación utilizado junto con la imagen. Sin embargo, si se selecciona un filtro con base en un resultado de codificación previo, es decir, contexto, información sobre el filtro seleccionado puede no codificarse adicionalmente.
La unidad 130 de salida puede realizar codificación de entropía sobre información de codificación y datos de imagen codificados y puede enviar una corriente de bits.
La figura 13B es un diagrama de bloques de un aparato 200 de decodificación de video que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención.
El aparato 200 de decodificación de video incluye un receptor y extractor 220 y un decodificador 230. Operaciones del receptor y extractor 220 y el decodificador 230 del aparato 200 de decodificación de video pueden controlarse cooperativamente mediante un procesador de decodificación de video, un procesador gráfico, y una CPU.
Con el fin de restaurar una imagen de una corriente de bits, el aparato 200 de decodificación de video puede decodificar datos de imagen codificados de la corriente de bits al realizar operaciones que incluyen decodificación de entropía, cuantificación inversa, transformación inversa, interpredicción/compensación, e intrapredicción/compensación.
El receptor y extractor 220 recibe y analiza una corriente de bits de un video codificado. El receptor y extractor 220 puede extraer datos codificados de cada unidad de datos de una imagen actual, e información de codificación que incluye información sobre un procedimiento de codificación que se va a utilizar para decodificar los datos codificados, de la corriente de bits analizada.
Si la información de codificación incluye información de filtro de interpolación, el decodificador 230 puede leer información sobre un filtro de interpolación utilizado para realizar intrapredicción de unidad de sub-pel de la información de filtro de interpolación, y puede realizar compensación de movimiento al utilizar el filtro de interpolación utilizado en un procedimiento de codificación.
El decodificador 230 puede decodificar datos de imagen codificados al realizar varias operaciones de decodificación tal como decodificación de entropía, cuantificación inversa, transformación inversa, interpredicción/compensación, e intrapredicción/compensación sobre una imagen codificada de conformidad con varios procedimientos de codificación determinados con base en información sobre un modo de codificación.
Con el fin de realizar compensación de movimiento, puede determinarse una región de referencia de una imagen de referencia que es temporalmente previa o subsecuente a una imagen actual al utilizar datos de referencia, y un valor de píxel de la región de referencia y datos residuales pueden combinarse para restaurar un valor de píxel actual. Si se determinan los datos residuales y los datos de referencia con base en píxeles interpolados en unidad de subpel en un procedimiento de codificación, el decodificador 230 también puede realizar compensación de movimiento con base en píxeles interpolados en una unidad de sub-pel. Con el fin de realizar compensación de movimiento de unidad de sub-pel, el decodificador 230 puede generar un valor de píxel de unidad de sub-pel al interpolar píxeles de unidad de pel de número entero adyacentes de la imagen de referencia. El valor de píxel de unidad de sub-pel puede generarse al realizar filtración de interpolación sobre dos o más píxeles de referencia de unidad de pel de número entero incluyendo los píxeles de unidad de pel de número entero adyacentes.
Con el fin de realizar eficientemente interpolación de imagen, el aparato 200 de decodificación de video puede determinar selectivamente coeficientes de filtro de interpolación. El decodificador 230 puede incluir el aparato 10 de interpolación de imagen ilustrado en la figura 1. En otras palabras, con el fin de realizar compensación de movimiento de unidad de sub-pel, el decodificador 230 puede generar un valor de píxel de unidad de sub-pel al utilizar un filtro de interpolación con base en transformación.
Para realizar eficientemente filtración de interpolación, el aparato 200 de decodificación de video puede almacenar previamente coeficientes de filtro de interpolación seleccionables de manera variada en memoria de conformidad con una ubicación de interpolación, una uniformidad, el número de derivaciones de filtro, una profundidad de bit, una relación de escalamiento, y una función base de filtración de interpolación con base en transformación.
Como se describió anteriormente, por ejemplo, al menos uno de i) un filtro de interpolación de unidad de 1/4 pel que incluye coeficientes de filtro de 7 derivaciones {-1, 4, -10, 58, 17, -5, 1} y que tiene un tamaño de ventana de 8,7, y ii) un filtro de interpolación de unidad de 1/2 pel que incluye coeficientes de filtro de 8 derivaciones {-1, 4, -11, 40, 40, -11, 4, -1} y que tiene un tamaño de ventana de 9,5 pueden almacenarse en memoria y pueden utilizarse para realizar filtración de interpolación. Además de los coeficientes de filtro de interpolación mencionados anteriormente, pueden utilizarse coeficientes de filtro de interpolación modificables de conformidad con varias funciones base y funciones de ventana como se muestra en las figuras 9A a 12B.
De entre una pluralidad de filtros de interpolación, el decodificador 230 puede seleccionar y utilizar un filtro de interpolación apropiado para un píxel actual para realizar compensación de movimiento de unidad de sub-pel de conformidad con una ubicación de interpolación de unidad de sub-pel a, el número de derivaciones de filtro, una profundidad de bits, una relación de escalamiento, etc.
También, el decodificador 230 puede determinar un filtro de interpolación de conformidad con características de imagen. Por ejemplo, pueden determinarse diferentes filtros de interpolación de conformidad con componentes de color de píxeles, filtración de interpolación para píxeles luma y filtración de interpolación para píxeles croma pueden realizarse separadamente, y de esa forma pueden generarse individualmente valores de píxel de unidad de sub-pel interpolados.
Por consiguiente, el decodificador 230 puede restaurar datos en un dominio espacial al realizar cuantificación inversa/transformación inversa, y puede restaurar valores de píxel y una imagen actual al realizar intrapredicción y compensación de movimiento con base en interpolación de unidad de sub-pel así como interpolación de unidad de pel de número entero. Si se restauran imágenes, puede codificarse un video.
La figura 14A es un diagrama de flujo de un procedimiento de codificación de imagen que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención.
En la operación 1410, con el fin de codificar una imagen actual de un video de entrada, se realiza codificación de predicción utilizando interpolación de unidad de sub-pel. De entre filtros de interpolación para generar un valor de píxel unidad de sub-pel, se selecciona de manera diferente a un filtro de interpolación con base en una ubicación de interpolación de unidad de sub-pel y una uniformidad. La uniformidad del filtro de interpolación puede terminarse con base en la distancia entre una ubicación de interpolación y unidades de pel de número entero.
El valor de píxel de unidad de sub-pel puede generarse al realizar filtración de interpolación sobre dos o más píxeles de referencia de unidad de pel de número entero de una imagen de referencia. Se determinan datos residuales y datos de referencia al utilizar el valor de píxel de unidad de sub-pel generado, realizando con ello codificación de predicción.
Con el fin de realizar eficientemente interpolación de imagen, pueden determinarse selectivamente coeficientes de filtro de interpolación. La memoria puede almacenar coeficientes de filtro de interpolación de filtros de interpolación simétricos y asimétricos, filtros de interpolación de derivación de número impar y par, y filtros de interpolación regularizados. De entre los coeficientes de filtro de interpolación previamente almacenados en memoria, puede seleccionarse un filtro de interpolación deseado de conformidad con una ubicación de interpolación de unidad de sub-pel, una uniformidad, el número de derivaciones de filtro, una profundidad de bit, una relación de escalamiento, una función base de filtración de interpolación con base en transformación, un tamaño de filtro de ventana, y un componente de color, y puede realizarse interpolación para generar el valor de píxel de unidad de sub-pel.
En la operación 1420, se realiza transformación y cuantificación sobre un resultado de interpredicción con base en interpolación de unidad de sub-pel, e intrapredicción. En la operación 1430, puede enviarse una corriente de bits al realizar codificación de entropía sobre 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 sobre un filtro de interpolación utilizado para realizar codificación de predicción de unidad de sub-pel.
La figura 14B es un diagrama de flujo de un procedimiento de decodificación de imagen que utiliza un filtro de interpolación, de conformidad con una realización de la presente invención.
En la operación 1450, se recibe una corriente de bits de un video codificado, decodificado por entropía, y analizado para extraer coeficientes de transformación cuantificados e información de codificación de una imagen actual de la corriente de bits.
Si la información de codificación incluye información sobre un filtro de interpolación, puede leerse el tipo de un filtro de interpolación requerido de la información.
En la operación 1460, de conformidad con varios procedimientos de decodificación determinados con base en un modo de codificación leída de la información de codificación, se realiza cuantificación inversa y transformación inversa sobre los coeficientes de transformación cuantificados, y se agregan datos residuales, restaurando con ello datos en un dominio espacial.
En la operación 1470, pueden decodificarse datos de imagen codificados al realizar varias operaciones de decodificación tal como compensación de movimiento e intrapredicción con base en el modo de codificación.
Específicamente, se extraen datos residuales codificados y datos de referencia con base en píxeles interpolados en una unidad de sub-pel, puede realizarse compensación de movimiento con base en los píxeles interpolados en una unidad de sub-pel. De entre filtros de interpolación para generar un valor de píxel unidad de sub-pel, se selecciona de manera diferente un filtro de interpolación con base en una ubicación de interpolación de unidad de sub-pel y una uniformidad.
Con el fin de realizar eficientemente interpolación de imagen, pueden determinarse selectivamente coeficientes de filtro de interpolación. La memoria puede almacenar coeficientes de filtro interpolación de filtros de interpolación simétricos y asimétricos, filtros de interpolación de derivación de número impar y par, y filtros de interpolación regularizados. De entre los coeficientes de filtro de interpolación previamente almacenados en memoria, puede seleccionarse un filtro de interpolación deseado de conformidad con una ubicación de interpolación de unidad de sub-pel, una uniformidad, el número de derivaciones de filtro, una profundidad de bit, una relación de escalamiento, una función base de filtración de interpolación con base en transformación, un tamaño de filtro de ventana, y un componente de color, y puede realizarse interpolación para generar el valor de píxel de unidad de sub-pel.
Ya que se realiza compensación de movimiento sobre píxeles interpolados al utilizar los coeficientes de filtro de interpolación previamente almacenados en memoria, se puede aumentar una velocidad de cálculo. La memoria puede almacenar filtros de interpolación simétricos y asimétricos, y filtros de interpolación de derivación de número impar y par.
Se determina una imagen de referencia y una región de referencia al utilizar los datos de referencia, y puede generarse el valor de píxel de unidad de sub-pel al realizar filtración de interpolación sobre dos o más píxeles de referencia de unidad de pel de número entero de la imagen de referencia. Puede realizarse compensación de movimiento al combinar el valor de píxel unidad de sub-pel generado y los datos residuales, y de esa forma puede realizarse decodificación de predicción.
En la operación 1480, se restaura una imagen actual al utilizar valores de píxel obtenidos al realizar decodificación de predicción, y de esa forma se decodifica un video.
<Codificación y decodificación de video utilizando interpolación con base en unidades de codificación que tienen estructura de árbol>
Ahora se describirán aparatos de codificación y decodificación de video que utilizan un filtro de interpolación con base en unidades de codificación que tienen una estructura de árbol, y procedimientos de codificación y decodificación de video correspondientes a los aparatos de codificación y decodificación de video, de conformidad con realizaciones de la presente invención, en detalle con referencia a las figuras 13 a 27.
El aparato 100 de codificación de video puede codificar un video con base en unidades de codificación y unidades de transformación que tienen una estructura de árbol.
Una imagen actual de un video puede dividirse con base 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, pueden dividirse datos de imagen de la imagen actual al menos en una unidad de codificación máxima. La unidad de codificación máxima puede ser una unidad de datos que tienen un tamaño de 32x32, 64x64, 128x128, 256x256, etc., en donde una forma de la unidad de datos es un cuadrado que tiene un ancho y 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 de conformidad con una realización de la presente invención puede caracterizarse por un tamaño máximo y una profundidad. La profundidad denota un número de veces que se divide espacialmente la unidad de codificación de la unidad de codificación máxima, y a medida que la profundidad aumenta, pueden dividirse unidades de codificación más profunda de conformidad con profundidades 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. Ya que un tamaño de una unidad de codificación que corresponde a cada profundidad disminuye a medida que la profundidad de la unidad de codificación máxima se vuelve mayor, una unidad de codificación correspondiente a una profundidad superior puede incluir una pluralidad de unidades de codificación que corresponden a profundidades inferiores. Como se describió anteriormente, los datos de imagen de la imagen actual se dividen en las unidades de codificación máximas de conformidad con un tamaño máximo de la unidad de codificación, y cada una de las unidades de codificación máximas puede incluir unidades de codificación más profundas que se dividen de conformidad con profundidades. Ya que la unidad de codificación máxima de conformidad con una realización de la presente invención se divide de conformidad con profundidades, los datos de imagen de un dominio espacial incluido en la unidad de codificación máxima pueden clasificarse jerárquicamente de conformidad con profundidades.
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 jerárquicamente una altura y un ancho de la unidad de codificación máxima, pueden predeterminarse. El decodificador 120 codifica al menos una región dividida obtenida al dividir una región de la unidad de codificación máxima de conformidad con profundidades, y determina una profundidad para enviar datos de imagen finalmente codificados de conformidad con al menos una región dividida. En otras palabras, el codificador 120 determina una profundidad codificada al codificar los datos de imagen en las unidades de codificación más profundas de conformidad con profundidades, de conformidad con la unidad de codificación máxima de la imagen actual, y al seleccionar una profundidad que tiene el mínimo error de codificación.
El codificador 120 puede enviar los datos de imagen codificados de la unidad de codificación que corresponden a la profundidad codificada determinada. También, el codificador 120 puede transmitir información sobre la profundidad codificada determinada a la unidad 130 de salida de manera que la información sobre la profundidad codificada puede codificarse como información de codificación.
Los datos de imagen en la unidad de codificación máxima se codifican con base en las unidades de codificación más profundas que corresponden al menos a una profundidad igual a o bajo la profundidad máxima, y resultados de codificar los datos de imagen se comparan con base en cada una de las unidades de codificación más profundas. Una profundidad que tiene el error de codificación mínimo puede seleccionarse después de comparar errores de codificación de las unidades de codificación más profundas. Puede seleccionarse al menos una profundidad codificada para cada unidad de codificación máxima.
El tamaño de la unidad de codificación máxima se divide como una unidad de codificación que se divide jerárquicamente de conformidad con profundidades, y a medida que aumenta el número de unidades de codificación. También, incluso si unidades de codificación corresponden a la misma profundidad en una unidad de codificación máxima, se determina sí se divide cada una de las unidades de codificación que corresponden a 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, separadamente. 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 conformidad con las profundidades y los errores de codificación pueden diferir de conformidad con regiones en una unidad de codificación máxima, y de esa forma las profundidades codificadas pueden diferir de conformidad con regiones en los datos de imagen. De esa forma, pueden determinarse una o más profundidades codificadas en una unidad de codificación máxima, y los datos de imagen de la unidad de codificación máxima pueden dividirse de conformidad 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 conformidad con una realización de la presente invención incluyen unidades de codificación que corresponden a una profundidad determinada para ser la profundidad codificada, de entre todas las unidades de codificación más profundas incluidas en la unidad de codificación máxima. Una unidad de codificación de una profundidad codificada puede determinarse jerárquicamente de conformidad con profundidades en la misma región de la unidad de codificación máxima, y puede determinarse independientemente en diferentes regiones. Similarmente, una profundidad codificada en una región actual puede determinarse independientemente de una profundidad codificada en otra región.
Una profundidad máxima de conformidad con una realización de la presente invención es un índice relacionado con el número de veces que se realiza división de una unidad de codificación máxima a una unidad de codificación mínima. Una primera profundidad máxima de conformidad con una realización de la presente invención puede denotar el número total de veces que se realiza división de la unidad de codificación máxima a la unidad de codificación mínima. Una segunda profundidad máxima de conformidad con una realización de la presente invención 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 cual la unidad de codificación máxima se divide una vez, puede establecerse en 1, y una profundidad de una unidad de codificación, en la cual la unidad de codificación máxima se divide dos veces, puede establecerse en 0. Aquí, si la unidad de codificación mínima es una unidad de codificación en la cual la unidad de codificación máxima se divide cuatro veces, existen cinco niveles de profundidades 0, 1,2, 3 y 4, y de esa forma la primera profundidad máxima puede establecerse en 4, y la segunda profundidad máxima puede establecerse en 5.
Puede realizarse codificación de predicción y transformación de conformidad con la unidad de codificación máxima. La codificación de predicción y la transformación también se realizan con base en las unidades de codificación más profundas de conformidad con una profundidad igual a o profundidades menores que la profundidad máxima, de conformidad con la unidad de codificación máxima.
Ya que el número de unidades de codificación más profundas aumenta en cualquier momento que se divide la unidad de codificación máxima de conformidad con profundidades, se realiza codificación que incluye la codificación de predicción y la transformación en todas las unidades de codificación más profunda generadas a medida que la profundidad se hace mayor. Para conveniencia de descripción, ahora se describirá la codificación de predicción y la transformación con base en una unidad de codificación de una profundidad actual, en una unidad de codificación máxima.
El aparato 100 de codificación de video puede seleccionar de manera variada 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, operaciones, tal como codificación de predicción, transformación, y codificación de entropía, se realizan, y en este momento, la misma unidad de datos puede utilizarse para todas las operaciones o diferentes unidades de datos pueden utilizarse para cada operación.
Por ejemplo, el aparato 100 de codificación de video puede seleccionar no únicamente 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 de predicción en los datos de imagen en la unidad de codificación.
Con el fin de realizar codificación de predicción en la unidad de codificación máxima, la codificación de predicción puede realizarse con base en una unidad de codificación que corresponde a una profundidad codificada, es decir, con base en una unidad de codificación que ya no está dividida a unidades de codificación que corresponden a una profundidad inferior. En lo sucesivo, la unidad de codificación que ya no está dividida y se vuelve una unidad básica para codificación de predicción se indicará como una 'unidad de predicción'. Una división obtenida al dividir la unidad de predicción puede incluir una unidad de predicción o una unidad de datos obtenida al dividir al menos uno de una altura y un ancho de la unidad de predicción.
Por ejemplo, cuando una unidad de codificación de 2Nx2N (en donde N es un número entero positivo) ya no se divide y se vuelve una unidad de predicción de 2Nx2N, un tamaño de una división puede ser 2Nx2N, 2NxN, Nx2N, o NxN. Ejemplos de un tipo de división incluyen divisiones simétricas que se obtienen al dividir simétricamente una altura o ancho de la unidad de predicción, divisiones obtenidas al dividir asimétricamente la altura o ancho de la unidad de predicción, tal como 1:n o n:1, divisiones que se obtienen al dividir geométricamente la unidad de predicción, y 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 pueden realizarse en la división de 2Nx2N, 2NxN, Nx2N, o NxN. También, el modo de salto puede realizarse únicamente en la división de 2Nx2N. La codificación se realiza independientemente sobre una unidad de predicción en una unidad de codificación, seleccionando con ello un modo de predicción que tiene un error de codificación mínimo.
El aparato 100 de codificación de video también puede realizar la transformación sobre los datos de imagen en una unidad de codificación con base no solo en la unidad de codificación para codificar los datos de imagen, sino también con base en una unidad de datos que es diferente de la unidad de codificación.
Con el fin de realizar la transformación en la unidad de codificación, la transformación puede realizarse con base en una unidad de transformación que tiene un tamaño más pequeño 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.
Similarmente a la unidad de codificación, la unidad de transformación en la unidad de codificación puede dividirse recursivamente en regiones de tamaño más pequeño, de manera que la unidad de transformación puede determinarse independientemente en unidades de regiones. De esa forma, datos residuales en la unidad de codificación pueden dividirse de conformidad con las unidades de transformación que tienen estructura de árbol de conformidad con profundidades de transformación.
Una profundidad de transformación que indica el número de veces que se realiza división para alcanzar la unidad de transformación al dividir la altura y el ancho de la unidad de codificación también puede establecerse en la unidad de transformación. Por ejemplo, en una unidad de codificación actual de 2Nx2N, una profundidad de transformación puede ser 0 cuando el tamaño de una unidad de transformación también es 2Nx2N, puede ser 1 cuando el tamaño de la unidad de transformación es NxN, y puede ser 2 cuando el tamaño de la unidad de transformación es N/2xN/2. En otras palabras, las unidades de transformación que tienen una estructura de árbol pueden establecerse de conformidad con profundidades de transformación.
Información de codificación de conformidad con una profundidad codificada requiere no solamente información sobre la profundidad codificada, sino también información sobre codificación de predicción y transformación. Por consiguiente, el codificador 120 no solamente determina una profundidad codificada que tiene un error de codificación mínimo, sino también determina un tipo de división en una unidad de predicción, un modo de predicción de conformidad con unidades de predicción, y un tamaño de una unidad de transformación para transformación. Para interpredicción, la información de codificación de conformidad con una profundidad codificada puede incluir información relacionada con filtración de interpolación para interpolar unidades de sub-pel.
También, el codificador 120 puede realizar transformación al utilizar unidades de transformación que tienen una estructura de árbol para codificar unidades de codificación, con base en un nivel de división máximo de las unidades de transformación, que se establece previa y restrictivamente 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 profundas de conformidad con profundidades, una unidad de transformación básica que tiene un tamaño menor que o igual a una unidad de codificación puede dividirse jerárquicamente en unidades de transformación de profundidades de transformación inferiores. 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 es permitido actualmente, y unidades de transformación de nivel inferior con relación a un nivel de división máximo que se permite para unidades de codificación.
Después de realizar transformación en cada nivel de conformidad 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 unidades de transformación en la misma región de conformidad con profundidades de transformación.
En otras palabras, pueden determinarse unidades de transformación que tienen una estructura de árbol al realizar transformación en cada unidad de codificación al utilizar unidades de transformación de varios tamaños y entonces comparar resultados de transformación. Aunque se está determinando una unidad de codificación, puede determinarse una unidad de transformación para transformar la unidad de codificación. En cualquier momento que se codifica unidades de codificación de conformidad con cada una de una o más profundidades, pueden utilizarse unidades de transformación de conformidad con cada una de una o más profundidades de transformación para realizar transformación.
Se tiene que determinar una unidad de transformación que tiene un error de codificación mínimo 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, pueden medirse errores de codificación y compararse en todas las unidades de transformación más profundas de conformidad con profundidades. Puede determinarse una unidad de transformación como una unidad de datos para minimizar un error de transformación de una unidad de codificación. Por consiguiente, ya que se determina individualmente una unidad de codificación más profunda y una unidad de transformación más profunda de conformidad con profundidades, que tiene un error de codificación mínimo, en cada región de una unidad de codificación máxima, pueden determinarse unidades de codificación que tienen una estructura de árbol y unidades de transformación que tienen una estructura de árbol.
Se describirán procedimientos para determinar unidades de codificación que tienen una estructura de árbol, divisiones, y unidades de transformación que tienen una estructura de árbol en una unidad de codificación máxima, de conformidad con realizaciones de la presente invención, en detalle posteriormente con referencia a las figuras 15 a 25.
El codificador 120 puede medir un error de codificación de unidades de codificación más profundas de conformidad con profundidades al utilizar optimización de distorsión de velocidad con base en multiplicadores Lagrangianos. El aparato 100 de codificación de video puede enviar los datos de imagen de la unidad de codificación máxima, que se codifican con base al menos en una profundidad codificada determinada por el codificador 120, e información sobre un modo de codificación de conformidad con la profundidad codificada, que se codifica por la unidad 130 de salida, en la forma de una corriente de bits.
La información sobre el modo de codificación de unidades de codificación más profundas de conformidad con profundidades, que se determina como una imagen se codifica con base en unidades de codificación, unidades de predicción, y unidades de transformación que tienen una estructura de árbol, puede incluirse en un encabezado, un grupo de parámetro de secuencia (SPS), o un grupo de parámetro de imagen (PPS) de una corriente de bits.
Pueden obtenerse los datos de imagen codificados al codificar datos residuales de una imagen.
La información sobre el modo de codificación de conformidad con la profundidad codificada puede incluir información sobre 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 sobre la profundidad codificada puede definirse al utilizar información de división de conformidad con profundidades, que representa si se realiza codificación sobre 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, se codifican y envían datos de imagen en la unidad de codificación actual, y de esa forma puede definirse la información de división para no dividir la unidad de codificación actual a una profundidad inferior. Alternativamente, si la profundidad actual de la unidad de codificación actual no es la profundidad codificada, se realiza la codificación sobre la unidad de codificación de la profundidad inferior, y de esa forma puede definirse la información de división para dividir la unión 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 codificación sobre la unidad de codificación que está dividida en unidades de codificación de la profundidad inferior. Ya que existe al menos una unidad de codificación de la profundidad inferior en una unidad de codificación de la profundidad actual, la codificación se realiza repetidamente sobre cada unidad de codificación de la profundidad inferior, y de esa forma puede realizarse de manera recursiva codificación para las unidades de codificación que tienen la misma profundidad.
Ya que se determinan las unidades de codificación que tienen una estructura de árbol para una unidad de codificación máxima, y se determina información sobre al menos un modo de codificación para una unidad de codificación de una profundidad codificada, puede determinarse información sobre al menos un modo de codificación para una unidad de codificación máxima. También, una profundidad codificada de los datos de imagen de la unidad de codificación máxima puede ser diferente de conformidad con ubicaciones ya que los datos de imagen se dividen jerárquicamente de conformidad con profundidades, y de esa forma puede establecerse información sobre la profundidad codificada y el modo de codificación para los datos de imagen.
Por consiguiente, la unidad 130 de salida puede asignar información de codificación sobre una profundidad codificada correspondiente y un modo de codificación para al menos uno de la unidad de codificación, la unidad de predicción, y una unidad mínima incluida en la unidad de codificación máxima.
La unidad mínima de conformidad con una realización de la presente invención es una unidad de datos rectangular obtenida al dividir la unidad de codificación mínima que constituye la profundidad inferior por cuatro. Alternativamente, la unidad mínima puede ser una unidad de datos rectangular máxima que puede incluirse en todas las unidades de codificación, unidades de predicción, unidades de división, y 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 130 de salida puede clasificarse en información de codificación de conformidad con unidades de codificación, e información de codificación de conformidad con unidades de predicción. La información de codificación de conformidad con las unidades de codificación puede incluir la información sobre el modo de predicción y sobre el tamaño de las divisiones. La información de codificación de conformidad con las unidades de predicción puede incluir información sobre una dirección estimada de un inter modo, sobre un índice de imagen de referencia del inter modo, sobre un vector de movimiento, sobre un componente croma de un intra modo, y sobre un procedimiento de interpolación del intra modo.
Información sobre un tamaño máximo de la unidad de codificación definida de conformidad con imágenes, fragmentos, o GOP, e información sobre una profundidad máxima puede insertarse en un encabezado, un SPS, o un PPS de una corriente de bits.
En el aparato 100 de codificación de video, la unidad de codificación más profunda puede ser una unidad de codificación obtenida al dividir una altura o un ancho de una unidad de codificación de una profundidad superior, que es una capa por encima, por dos. En otras palabras, cuando el tamaño de la unidad de codificación de la profundidad actual es 2Nx2N, el tamaño de la unidad de codificación de la profundidad inferior es NxN. También, la unidad de codificación de la profundidad actual que tiene el tamaño de 2Nx2N puede incluir máximo 4 de la unidad de codificación de la profundidad inferior.
Por consiguiente, el aparato 100 de codificación de video puede formar las unidades de codificación que tienen la estructura de árbol al determinar unidades de codificación que tiene una forma óptima y un tamaño óptimo para cada unidad de codificación máxima, con base en el tamaño de la unidad de codificación máxima y la profundidad máxima determinada considerando características de la imagen actual. También, ya que puede realizarse codificación en cada unidad de codificación máxima al utilizar cualquiera de los varios modos de predicción y transformaciones, puede determinarse un modo de codificación óptimo considerando características de la unidad de codificación de varios tamaños de imagen.
De esa forma, si se codifica una imagen que tiene alta resolución o gran cantidad de datos en un macrobloque convencional, aumenta un número de macrobloques por imagen excesivamente. Por consiguiente, aumenta un número de piezas de información comprimida generada para cada macrobloque, y de esa forma es difícil transmitir la información comprimida y disminuye eficiencia de compresión de datos. Sin embargo, al utilizar el aparato 100 de codificación de video, puede aumentar la eficiencia de compresión de imagen ya que se ajusta una unidad de codificación mientras se consideran características de imagen mientras se aumenta un tamaño máximo de una unidad de codificación mientras se considera un tamaño de la imagen.
La unidad 130 de salida puede codificar y enviar información de codificación que indica un procedimiento de codificación utilizado para codificar un video con base en unidades de codificación que tienen una estructura de árbol y unidades de transformación que tienen una estructura de árbol. La información de codificación puede incluir información sobre varios modos de codificación de unidades de codificación que corresponden a una profundidad codificada, e información sobre la profundidad codificada.
Definiciones de varios términos, tal como una unidad de codificación, una profundidad, una unidad de predicción, una unidad de transformación, e información sobre varios modos de codificación, para varias operaciones del aparato 200 de decodificación de video son idénticas a aquellas descritas con referencia al aparato 100 de codificación de video.
El receptor 210 recibe una corriente de bits de un video codificado. El receptor y extractor 220 analiza la corriente de bits recibida. El receptor y extractor 220 extrae datos de imagen codificados para cada unidad de codificación de la corriente de bits analizada, en donde las unidades de codificación tienen una estructura de árbol de conformidad con cada unidad de codificación máxima, y envía los datos de imagen extraídos al decodificador 230. El receptor y extractor 220 puede extraer información sobre un tamaño máximo de una unidad de codificación de una imagen actual, de un encabezado, un SPS, o un PPS sobre la imagen actual.
También, 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 conformidad con cada unidad de codificación máxima, de la corriente de bits analizada. Información sobre una profundidad codificada y un modo de codificación se extraen de la información de codificación. La información extraída sobre la profundidad codificada y el modo de codificación se envía al decodificador 230. En otras palabras, los datos de imagen en una corriente de bits pueden dividirse en la unidad de codificación máxima para que el decodificador 230 pueda decodificar los datos de imagen para cada unidad de codificación máxima.
La información sobre la profundidad codificada y el modo de codificación de conformidad con la unidad de codificación máxima puede establecerse para información sobre al menos una unidad de codificación que corresponde a la profundidad codificada, e información sobre un modo de codificación puede incluir información sobre un tipo de división de una unidad de codificación correspondiente, que corresponde a la profundidad codificada, sobre un modo de predicción, y un tamaño de una unidad de transformación. Para interpredicción, puede extraerse información relacionada con una filtración de interpolación para interpolar unidades de sub-pel de la información de codificación de conformidad con una profundidad codificada. También, puede extraerse información de división de conformidad con profundidades como la información sobre la profundidad codificada.
La información sobre la profundidad codificada y el modo de codificación de conformidad con cada unidad de codificación máxima extraída por el receptor y extractor 220 es información sobre 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 100 de codificación de video, realiza repetidamente codificación para cada unidad de codificación más profunda de conformidad con profundidades de conformidad con cada unidad de codificación máxima. Por consiguiente, el aparato 200 de decodificación de video puede restaurar una imagen al decodificar los datos de imagen de conformidad con una profundidad decodificada y un modo de codificación que genera el error de codificación mínimo.
Ya que puede asignarse información de codificación sobre la profundidad codificada y el modo de codificación a una unidad de datos predeterminada 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 sobre la profundidad codificada y el modo de codificación de conformidad con las unidades de datos predeterminadas. Las unidades de datos predeterminadas a las cuales se asigna la misma información sobre la profundidad codificada y el modo de codificación pueden inferirse para ser las unidades de datos incluidas en la misma unidad de codificación máxima. El decodificador 230 puede determinar al menos una profundidad codificada de una unidad de codificación máxima actual al utilizar información de división de conformidad con profundidades. Si la información de división representa estos datos de imagen que ya no están divididos en la profundidad actual, la profundidad actual es una profundidad codificada. Por consiguiente, el decodificador 230 puede decodificar datos de imagen codificados de al menos una unidad de codificación que corresponde a cada profundidad codificada en la unidad de codificación máxima actual al utilizar la información sobre el 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 corresponde a la profundidad codificada, y envía los datos de imagen de la unidad de codificación máxima actual.
En otras palabras, pueden recolectarse unidades de datos que contienen la información de codificación que incluye la misma información de división al observar el grupo de información de codificación asignado para la unidad de datos predeterminada de entre la unidad de codificación, la unidad de predicción, y la una unidad mínima, y las unidades de datos recolectadas pueden considerarse para ser una unidad de datos que se va a decodificar mediante el decodificador 230 en el mismo modo de codificación.
El decodificador 230 puede restaurar la imagen actual al decodificar los datos de imagen codificados en cada unidad de codificación máxima con base en la información sobre la profundidad codificada y el modo de codificación de conformidad con las unidades de codificación máximas. El tipo de división, el modo de predicción, y la unidad de transformación pueden leerse 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 decodificación puede incluir una predicción que incluye intrapredicción y compensación de movimiento, y una transformación inversa.
El decodificador 230 puede realizar intrapredicción o compensación en movimiento de conformidad con una división y un modo de predicción de cada unidad de codificación, con base en la información sobre el 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. También, el decodificador 230 puede leer la estructura de unidades de transformación que tienen una estructura de árbol y puede realizar transformación inversa sobre cada unidad de codificación con base en las unidades de transformación.
El aparato 200 de decodificación de video puede obtener información sobre al menos una unidad de codificación que genera el error de codificación mínimo cuando se realiza de manera recursiva codificación para cada unidad de codificación máxima, y puede utilizar información para decodificar la imagen actual. En otras palabras, las unidades de codificación que tienen la estructura de árbol determinadas para ser las unidades de codificación óptimas en cada unidad de codificación máxima pueden decodificarse. También, el tamaño máximo de unidad de codificación se determina en consideración de resolución de una cantidad de datos de imagen.
Por consiguiente, incluso si datos de imagen tienen alta resolución y una gran cantidad de datos, los datos de imagen pueden decodificarse y restaurarse eficientemente al utilizar un tamaño de una unidad de codificación y un modo de codificación, que se determinan de manera adaptable de conformidad con características de los datos de imagen, al utilizar información sobre un modo de codificación óptimo recibido de un codificador.
La figura 15 es un diagrama para describir un concepto de unidades de codificación de conformidad con una realización de la presente invención.
Un tamaño de una unidad de codificación puede expresarse en ancho por altura, y puede ser 64x64, 32x32, 16x16, y 8x8. Una unidad de codificación de 64x64 puede dividirse en divisiones de 64x64, 64x32 32x64 o 32x32, una unidad de codificación de 32x32 puede dividirse en divisiones de 32x32, 32x16, 16x32, o 16x16, una unidad de codificación de 16x16 puede dividirse en divisiones de 16x16, 16x8, 8x16, o 8x8, y una unidad de codificación de 8x8 puede dividirse en divisiones de 8x8, 8x4, 4x8, o 4x4.
En datos de video 310, una resolución es 1920x1080, un tamaño máximo de una unidad de codificación es 64, y una profundidad máxima es 2. En datos de video 320, una resolución es 1920x1080, un tamaño máximo de una unidad de codificación es 64, y una profundidad máxima es 3. En datos de video 330, una resolución es 352x288, 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 codificació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 eficiencia de codificación sino también para reflejar de manera precisa características de una imagen. Por consiguiente, el tamaño máximo de la unidad de codificación de los datos de video 310 y 320 que tienen la resolución más alta que los datos de video 330 puede ser 64.
Ya que la profundidad máxima de los datos de video 310 es 2, unidades de codificación 315 de los datos de video 310 pueden incluir una unidad de codificación máxima que tiene un tamaño de eje largo de 64, y unidades de codificación que tienen tamaños de eje largo de 32 y 16 ya que las profundidades aumentan a dos capas al dividir la unidad de codificación máxima dos veces. Mientras tanto, ya que la profundidad máxima de los datos de video 330 es 1, unidades de codificación 335 de los datos de video 330 pueden incluir una unidad de codificación máxima que tiene un tamaño de eje largo de 16, y unidades de codificación que tienen un tamaño de eje largo de 8 ya que aumentan las profundidades a una capa al dividir la unidad de codificación máxima una vez.
Ya que la profundidad máxima de los datos de video 320 es 3, unidades 325 de codificación de los datos de video 320 pueden incluir una unidad de codificación máxima que tiene un tamaño de eje largo de 64, y unidades de codificación que tienen tamaños de eje largo de 32, 16, y 8 ya que aumentan las profundidades a tres capas al dividir la unidad de codificación máxima tres veces. A medida que aumenta una profundidad, puede expresarse de manera precisa información detallada.
La figura 16 es un diagrama de bloques de un codificador 400 de imagen con base en unidades de codificación, de conformidad con una realización de la presente invención.
El codificador 400 de imagen realiza operaciones del codificador 120 del aparato 100 de codificación de video para codificar datos de imagen. En otras palabras, un intra pronosticador 410 realiza intrapredicción sobre unidades de codificación en un intra modo, de entre un cuadro 405 actual, y un estimador 420 de movimiento y un compensador de movimiento 425 realiza inter estimación y compensación de movimiento sobre unidades de codificación en un inter modo de entre el cuadro 405 actual al utilizar el cuadro 405 actual, y un cuadro 495 de referencia.
Con el fin de realizar de manera precisa estimación de movimiento al utilizar píxeles de referencia en unidades de sub-pel, el estimador 420 de movimiento y el compensador 425 de movimiento puede generar píxeles en unidades de sub-pel al interpolar píxeles en unidades de pel de número entero. Un filtro de interpolación para generar píxeles en unidades de sub-pel puede ser el filtro de interpolación descrito anteriormente con relación a las figuras 1 y 13A.
La salida de datos del intra pronosticador 410, el estimador 420 de movimiento, y el compensador 425 de movimiento 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 restaura como datos en un dominio espacial a través de un cuantificador 460 inverso y un transformador 470 inverso, y los datos restaurados en el dominio espacial se envían como el cuadro 495 de referencia después de ser post-procesados a través de una unidad 480 de desbloqueo y una unidad 490 de filtración de bucle. El coeficiente de transformación cuantificado puede enviarse como una corriente de bits 455 a través de un codificador de entropía 450.
Con el fin de que se aplique el codificador 400 de imagen en el aparato 100 de codificación de video, todos los elementos del codificador 400 de imagen, es decir, el intra pronosticador 410, el estimador 420 de movimiento, el compensador 425 de movimiento, el transformador 430, el cuantificador 440, el codificador 450 de entropía, el cuantificador 460 inverso, el transformador 470 inverso, la unidad 480 de desbloqueo, y la unidad 490 de filtración de bucle, tienen que realizar operaciones con base en cada unidad de codificación de entre unidades de codificación que tienen una estructura de árbol mientras se considera la profundidad máxima de cada unidad de codificación máxima.
Específicamente, el intra pronosticador 410, el estimador 420 de movimiento, y el compensador 425 de movimiento 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 decodificador 500 de imagen con base en unidades de codificación, de conformidad con una realización de la presente invención.
Un analizador 510 analiza datos de imagen codificados para decodificarse e información sobre codificación requerida para decodificación desde una corriente de bits 505. Los datos de imagen codificados se envían como datos inversamente cuantificados a través de un decodificador 520 de entropía y un cuantificador 530 inverso, y los datos inversamente cuantificados se restauran a datos de imagen en un dominio espacial a través de un transformador 540 inverso.
Un intra pronosticador 550 realiza intrapredicción sobre unidades de codificación en un intra modo con respecto a los datos de imagen en el dominio espacial, y un compensador 560 de movimiento realiza compensación de movimiento sobre unidades de codificación en un inter modo al utilizar un cuadro 585 de referencia.
Con el fin de realizar de manera precisa estimación de movimiento al utilizar píxeles de referencia en unidades de sub-pel, el compensador 560 de movimiento puede generar píxeles en unidades de sub-pel al interpolar píxeles en unidades de pel de número entero. Un filtro de interpolación para generar píxeles en unidades de sub-pel puede ser el filtro de interpolación descrito anteriormente con relación a 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 560 de movimiento, pueden enviarse como un cuadro 595 restaurado después de post-procesarse a través de una unidad 570 de desbloqueo y una unidad 580 de filtración de bucle. También, los datos de imagen que son post­ procesados a través de la unidad 570 de desbloqueo y la unidad 580 de filtración de bucle pueden enviarse como el cuadro 585 de referencia.
Con el fin de decodificar los datos de imagen en el decodificador 230 del aparato 200 de decodificación de video, el decodificador en imagen 500 puede realizar operaciones que se realizan después del analizador 510.
Con el fin de que se aplique el decodificador 500 de imagen en el aparato 200 de decodificación de video, todos los elementos del decodificador 500 de imagen, es decir, el analizador 510, el decodificador 520 de entropía, el cuantificador 530 inverso, el transformador 540 inverso, el intra pronosticador 550, el compensador 560 de movimiento, la unidad 570 de desbloqueo, y la unidad 580 de filtración de bucle, tienen que realizar operaciones con base en unidades de codificación que tienen una estructura de árbol para cada unidad de codificación máxima. Específicamente, el intra pronosticador 550 y el compensador 560 de movimiento 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 540 inverso 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 unidades de codificación más profundas de conformidad con profundidades, y divisiones, de conformidad con una realización de la presente invención.
El aparato 100 de codificación de video y el aparato 200 de decodificación de video utilizan 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 pueden determinarse de manera adaptable de conformidad con las características de la imagen, o pueden establecerse de manera diferente mediante un usuario. Pueden determinarse tamaños de unidades de codificación más profundas de conformidad con profundidades de conformidad con el tamaño máximo predeterminado de la unidad de codificación.
En una estructura 600 jerárquica de unidades de codificación, de conformidad con una realización de la presente invención, la altura máxima y el ancho máximo de las unidades de codificación cada uno son 64, y la profundidad máxima es 4. En cada caso, la profundidad máxima denota el número total de veces que se realiza división de una unidad de codificación máxima a una unidad de codificación mínima. Ya que una profundidad se hace mayor a lo largo de un eje vertical de la estructura 600 jerárquica, cada uno de una altura y un ancho de la unidad de codificación más profunda se divide. También, se muestra una unidad de predicción y divisiones, que son bases para codificación de predicción de cada unidad de codificación más profunda, a lo largo de un eje horizontal de la estructura 600 jerárquica.
En otras palabras, una unidad 610 de codificación es una unidad de codificación máxima a la estructura 600 jerárquica, en donde una profundidad es 0 y un tamaño, es decir, una altura por ancho, es 64x64. La profundidad aumenta a lo largo del eje vertical, y una unidad 620 de codificación que tiene un tamaño de 32x32 y una profundidad de 1, una unidad 630 de codificación que tiene un tamaño de 16x16 y una profundidad de 2, y una unidad 640 de codificación que tiene un tamaño de 8x8 y una profundidad de 3. La unidad 640 de codificación que tiene el tamaño de 8x8 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 conformidad con cada profundidad. En otras palabras, si la unidad 610 de codificación que tiene el tamaño de 64x64 y la profundidad de 0 es una unidad de predicción, la unidad de predicción puede dividirse en divisiones incluidas en la unidad 610 de codificación, es decir, una división 610 que tiene un tamaño de 64x64, divisiones 612 que tienen el tamaño de 64x32, divisiones 614 que tienen el tamaño de 32x64, o divisiones 616 que tienen el tamaño de 32x32. Similarmente, una unidad de predicción de la unidad 620 de codificación que tiene el tamaño de 32x32 y la profundidad de 1 puede dividirse en divisiones incluidas en la unidad 620 de codificación, es decir una división 620 que tiene un tamaño de 32x32, divisiones 622 que tienen un tamaño de 32x16, divisiones 624 que tienen un tamaño de 16x32, o divisiones 626 que tienen un tamaño de 16x16.
Similarmente, una unidad de predicción de la unidad 630 de codificación que tiene el tamaño de 16x16 y la profundidad de 2 puede dividirse en divisiones incluidas en la unidad 630 de codificación, es decir, una división que tiene un tamaño de 16x16, divisiones 632 que tienen un tamaño de 16x8, divisiones 634 que tienen un tamaño de 8x16, o divisiones 638 que tienen un tamaño de 8x8.
Similarmente, una unidad de predicción de la unidad 640 de codificación que tiene el tamaño de 8x8 y la profundidad de 3 puede dividirse en divisiones incluidas en la unidad 640 de codificación, es decir una división que tiene un tamaño de 8x8, divisiones 642 que tienen un tamaño de 8x8, divisiones 644 que tienen un tamaño de 4x8, o divisiones 646 que tienen un tamaño de 4x4.
Con el fin de determinar la por lo menos una profundidad codificada de las unidades de codificación que constituyen la unidad 610 de codificación máxima, el codificador 120 del aparato 100 de codificación de video realiza codificación para unidades de codificación que corresponden a cada profundidad incluida en la unidad 610 de codificación máxima.
Un número de unidades de codificación más profundas de conformidad con profundidades que incluyen datos en el mismo intervalo y el mismo tamaño aumenta a medida que aumenta la profundidad. Por ejemplo, cuatro unidades de codificación que corresponden a una profundidad de 2 se requieren para cubrir datos que se incluyen en una unidad de codificación que corresponde a una profundidad de 1. Por consiguiente, con el fin de comparar resultados de codificación de los mismos datos de conformidad con profundidades, se codifica cada una de la unidad de codificación que corresponde a la profundidad de 1 y cuatro unidades de codificación que corresponden a la profundidad de 2. Con el fin de realizar codificación para una profundidad actual de entre las profundidades, puede seleccionarse un error de codificación mínimo para el error actual al realizar codificación para cada unidad de predicción en las unidades de codificación que corresponden a la profundidad actual, a lo largo del eje horizontal de la estructura 600 jerárquica. Alternativamente, puede buscarse el error de codificación mínimo al comparar los errores de codificación mínimos de conformidad con profundidades, al realizar codificación para cada profundidad a medida que aumenta la profundidad a lo largo del eje vertical de la estructura 600 jerárquica. Puede seleccionarse una profundidad y una división que tiene el error de codificación mínimo en la unidad 610 de codificación 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 de entre una unidad 710 de codificación y unidades 720 de transformación, de conformidad con una realización de la presente invención.
El aparato 100 de codificación de video o el aparato 200 de decodificación de video codifica o decodifica una imagen de conformidad con unidades de codificación que tienen tamaños más pequeños que o iguales a una unidad de codificación máxima para cada unidad de codificación máxima. Pueden seleccionarse tamaños de unidades de transformación para transformación durante codificación con base en unidades de datos que son más grandes que una unidad de codificación correspondiente.
Por ejemplo, en el aparato 100 de codificación de video o el aparato 200 de decodificación de video, si un tamaño de la unidad 710 de codificación es 64x64, puede realizarse transformación al utilizar las unidades 720 de transformación que tienen un tamaño de 32x32.
También, pueden codificarse datos de la unidad 710 de codificación que tienen el tamaño de 64x64 al realizar la transformación en cada una de las unidades de transformación que tienen el tamaño de 32x32, 16x16, 8x8, y 4x4, que son más pequeñas que 64x64, y entonces puede seleccionarse una unidad de transformación que tiene el error de codificación mínimo.
La figura 20 es un diagrama para describir información de codificación de unidades de codificación que corresponden a una profundidad codificada, de conformidad con una realización de la presente invención.
La unidad 130 de salida del aparato 100 de codificación de video puede codificar y transmitir 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 corresponde a una profundidad codificada, como información sobre un modo de codificación.
La información 800 representa información sobre una forma de una división obtenida al dividir una unidad de predicción de una unidad de codificación actual, en donde la división es una unidad de datos para codificación de predicción de la unidad de codificación actual. Por ejemplo, una unidad de codificación actual CU_O que tiene un tamaño de 2Nx2N puede dividirse en cualquiera de una división 810 que tiene un tamaño de 2Nx2N, una división 804 que tiene un tamaño de 2NxN, una división 806 que tiene un tamaño de Nx2N, y una división 808 que tiene un tamaño de NxN. Aquí, la información 800 sobre un tipo de división se establece para indicar una de la división 804 que tiene un tamaño de 2NxN, la división 806 que tiene un tamaño de Nx2N, y la división 808 que tiene un tamaño de NxN.
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 de predicción realizado en una división representada por la información 800, es decir, un intra modo 812, un inter modo 814, o un modo de salto 814.
La información 820 representa una unidad de transformación que se va a basar en cuando se realiza transformación sobre una unidad de codificación actual. Por ejemplo, la unidad de transformación puede ser una primera unidad 822 de intra transformación, una segunda unidad 824 de intra transformación, una primera unidad 826 de inter transformación, o una segunda unidad 828 de inter transformación.
El receptor y el extractor 220 del aparato 200 de decodificación de video puede extraer y utilizar la información 800, 810, y 8 2 0 para decodificación, de conformidad con cada unidad de codificación más profunda.
La figura 21 es un diagrama de unidades de codificación más profundas de conformidad con profundidades, de conformidad con una realización de la presente invención.
La información de división puede utilizarse 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 910 de predicción para codificación de predicción de una unidad 900 de codificación que tiene una profundidad de 0 y un tamaño de 2N_0x2N_0 puede incluir divisiones de un tipo de división 912 que tiene un tamaño de 2N_0x2N_0, un tipo de división 914 que tiene un tamaño de 2N_0xN_0, un tipo de división 916 que tiene un tamaño de N_0x2N_0, y un tipo de división 918 que tiene un tamaño de N_0xN_0. La figura 21 únicamente ilustra los tipos de división 912 a 918 que se obtienen al dividir simétricamente la unidad 910 de predicción, pero un tipo de división no está limitado a esto, y las divisiones de la unidad 910 de predicción pueden incluir divisiones asimétricas, divisiones que tienen una forma predeterminada, y divisiones que tienen una forma geométrica.
Se realiza repetidamente codificación de predicción sobre una división que tiene un tamaño de 2N_0x2N_0, dos divisiones que tienen un tamaño de 2N_0xN_0, dos divisiones que tienen un tamaño de N_0x2N_0, y cuatro divisiones que tienen un tamaño de N_0xN_0, de conformidad con cada tipo de división. La codificación de predicción en un intra modo y un inter modo pueden realizarse sobre las divisiones que tienen los tamaños de 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 y N_0xN_0. La codificación de predicción en un modo de salto se realiza únicamente en la división que tiene el tamaño de 2N_0x2N_0.
Se comparan errores de codificación que incluyen la codificación de predicción en los tipos de división 912 a 918, y el error de codificación mínimo 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 910 de predicción puede no dividirse en una profundidad inferior. Si el error de codificación es el más pequeño en el tipo de división 918, se cambia una profundidad de 0 a 1 para dividir el tipo de división 918 en la operación 920, y se realiza repetidamente codificación sobre unidades 930 de codificación que tienen una profundidad de 2 y un tamaño de N_0xN_0 para buscar un error de codificación mínimo.
Una unidad 940 de predicción para codificación de predicción de la unidad 930 de codificación que tiene una profundidad de 1 y un tamaño de 2N_1x2N_1 (=N_0xN_0) puede incluir divisiones de un tipo de división 942 que tienen un tamaño de 2N_1x2N_1, un tipo de división 944 que tiene un tamaño de 2N_1xN_1, un tipo de división 946 que tiene un tamaño de N_1 lx2N_1, y un tipo de división 948 que tiene un tamaño de N_1xN_1.
Si un error de codificación es el más pequeño en el tipo de división 948, se cambia la profundidad de 1 a 2 para dividir el tipo de división 948 en la operación 950, y se realiza repetidamente codificación sobre unidades 960 de codificación, que tienen una profundidad de 2 y un tamaño de N_2xN_2 para buscar un error de codificación mínimo. Cuando una profundidad máxima es d, pueden asignarse unidades de codificación más profundas de conformidad con profundidades hasta cuando una profundidad se vuelve d-1, y puede codificarse información de división como hasta cuando una profundidad es uno de 0 a d-2. En otras palabras, cuando se realiza codificación hasta cuando la profundidad es d-1 después que una unidad de codificación que corresponde a una profundidad de d-2 se divide en la operación 970, una unidad 990 de predicción para codificación de predicción de una unidad de codificación 980 que tiene una profundidad de d-1 y un tamaño de 2N_(d-1)x2N_(d-1) puede incluir divisiones de un tipo de división 992 que tiene un tamaño de 2N_(d-1)x2N_(d-1), un tipo de división 994 que tiene un tamaño de 2N_(d-1)xN_(d-1), un tipo de división 996 que tiene un tamaño de N_(d-1)x2N_(d-1), y un tipo de división 998 que tiene un tamaño de N_(d-1)xN_(d-1).
La codificación de predicción puede realizarse repetidamente en una división que tiene un tamaño de 2N_(d-1)x2N_(d-1), dos divisiones que tienen un tamaño de 2N_(d-1)xN_(d-1), dos divisiones que tienen un tamaño de N_(d-1)x2N_(d-1), cuatro divisiones que tienen un tamaño de N_(d-1)xN_(d-1) de entre los tipos de división 992 a 998 para buscar un tipo de división que tenga un error de codificación mínimo.
Incluso cuando el tipo de división 998 tiene el error de codificación mínimo, ya que la profundidad máxima es d, una unidad de codificación CU_(d-1) que tiene una profundidad de d-1 ya no se divide una profundidad inferior, y una profundidad codificada para las unidades de codificación que constituyen una unidad 900 de codificación máxima actual se determina para ser d-1 y un tipo de división de la unidad 900 de codificación máxima puede determinarse para ser N_(d-1)xN_(d-1). También, ya que la profundidad máxima es d y una unidad 980 de codificación mínima que tiene una profundidad inferior de d-1 ya no se divide una profundidad inferior, no se establece información de división para la unidad 980 de codificación mínima.
Una unidad 999 de datos puede ser una 'unidad mínima' para la unidad de codificación máxima actual. Una unidad mínima de conformidad con una realización de la presente invención puede ser una unidad de datos rectangular obtenida al dividir una unidad de codificación mínima 980x4. Al realizar la codificación repetidamente, el aparato 100 de codificación de video puede seleccionar una profundidad que tiene el error de codificación mínimo al comparar errores de codificación de conformidad con profundidades de la unidad 900 de codificación 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.
Como tal, los errores de codificación mínimos de conformidad con profundidades se comparan en todas las profundidades de uno de, y puede determinarse una profundidad que tiene el error de codificación mínimo como una profundidad codificada. La profundidad codificada, el tipo de división de la unidad de predicción, y el modo de predicción pueden codificarse y transmitirse como información sobre un modo de codificación. También, ya que una unidad de codificación se divide de una profundidad de 0 a una profundidad codificada, únicamente información de división de la profundidad codificada se establece en 0, e información de división de profundidades que excluye la profundidad codificada se establece en 1.
El receptor y el extractor 220 del aparato 200 de decodificación de video puede extraer y utilizar la información sobre la profundidad codificada y la unidad de predicción de la unidad 900 de codificación para decodificar la división 912. El aparato 200 de decodificación de video puede determinar una profundidad, en la cual información de división es 0, como una profundidad codificada al utilizar información de división de conformidad con profundidades, y utilizar información sobre un modo de codificación de la profundidad correspondiente para decodificación.
Las figuras 22 a 24 son diagramas para describir una relación entre unidades 1010 de codificación, unidades 1060 de predicción, y unidades 1070 de transformación, de conformidad con una realización de la presente invención. Las unidades de codificación 1010 son unidades de codificación que tienen una estructura de árbol, correspondiente a profundidades codificadas determinadas por el aparato 100 de codificación de video, en una unidad de codificación máxima. Las unidades 1060 de predicción son divisiones de unidades de predicción de cada una de las unidades 1010 de codificación, y las unidades 1070 de transformación son unidades de transformación de cada una de las unidades 1010 de codificación.
Cuando una profundidad de una unidad de codificación máxima es 0 en las unidades 1010 de codificación, profundidades de unidades 1012 y 1050 de codificación son 1, profundidades de unidades 1014, 1016, 1018, 1028, 1050, y 1052 de codificación son 2, profundidades de unidades 1020, 1022, 1024, 1026, 1030, 1032, y 1048 de codificación son 3, y profundidades de unidades 1040, 1042, 1044, y 1046 de codificación son 4.
En las unidades 1060 de predicción, se obtienen algunas unidades 1014, 1016, 1022, 1032, 1048, 1050, 1052, y 1054 de codificación al dividir las unidades de codificación en las unidades 1010 de codificación. En otras palabras, tipos de división en las unidades 1014, 1022, 1050, y 1054 de codificación tienen un tamaño de 2NxN, tipos de división en las unidades 1016, 1048, y 1052 de codificación tienen un tamaño de Nx2N, y un tipo de división de la unidad 1032 de codificación tiene un tamaño de NxN. Unidades de predicción y divisiones de las unidades 1010 de codificación son más pequeñas que o iguales a cada unidad de codificación.
Se realiza transformación o transformación inversa sobre datos de imagen de la unidad 1052 de codificación en las unidades 1070 de transformación en una unidad de datos que es más pequeña que la unidad 1052 de codificación. También, las unidades 1014, 1016, 1022, 1032, 1048, 1050, y 1052 de codificación en las unidades 1070 de transformación son diferentes de aquellas en las unidades 1060 de predicción en términos de tamaños y formas. En otras palabras, los aparatos 100 y 200 de codificación y decodificación de video pueden realizar intrapredicción, estimación de movimiento, compensación de movimiento, transformación, y transformación inversa individualmente sobre una unidad de datos en la misma unidad de codificación.
Por consiguiente, se realiza recursivamente codificación sobre cada una de las unidades de codificación que tiene 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 de esa forma pueden obtenerse unidades de codificación que tienen una estructura de árbol recursiva. Información de codificación puede incluir información de división sobre una unidad de codificación, información sobre un tipo de división, información sobre un modo de predicción, e información sobre un tamaño de una unidad de transformación. La Tabla 1 muestra la información de codificación que puede establecerse mediante los aparatos 100 y 200 de codificación y decodificación de video.
Tabla 1
Figure imgf000038_0001
La unidad 130 de salida del aparato 100 de codificación de video 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 200 de decodificación de video extraer la información de codificación sobre las unidades de codificación que tienen una estructura de árbol de una corriente de bits recibida.
Información de división representa sí 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 de esa forma la información sobre un tipo de división, modo de predicción, y un tamaño de una unidad de transformación pueden definirse para la profundidad codificada. Si la unidad de codificación actual además está dividida de conformidad con la información de división, se realiza independientemente codificación sobre cuatro unidades de codificación divididas 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 pueden definirse en todos los tipos de división, y el modo de salto se define únicamente en un tipo de división que tiene un tamaño de 2Nx2N.
La información sobre el tipo de división puede indicar tipos de división simétrica que tienen tamaños de 2Nx2N, 2NxN, Nx2N, NxN, que se obtienen al dividir simétricamente una altura o un ancho de una unidad de predicción, y tipos de división asimétrica que tienen tamaños de 2NxnU, 2NxnD, nLx2N y nRx2N, que se obtienen al dividir asimétricamente la altura o ancho de la unidad de predicción. Los tipos de división asimétrica que tienen los tamaños de 2NxnU y 2NxnD pueden obtenerse respectivamente al dividir la 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 nLx2N y nRx2N pueden obtenerse respectivamente al dividir el ancho de la unidad de predicción en 1:3 y 3:1.
El tamaño de la unidad de transformación puede establecerse para ser dos tipos en el intra modo y dos tipos en el inter modo. En otras palabras, si la información de división de la unidad de transformación es 0, el tamaño de la unidad de transformación pues ser 2Nx2N, 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 pueden obtenerse al dividir la unidad de codificación actual. También, si un tipo de división de la unidad de codificación actual que tiene el tamaño de 2Nx2N es un tipo de división simétrica, un tamaño de una unidad de transformación puede ser NxN, 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/2xN/2.
La información de codificación sobre unidades de codificación que tienen una estructura de árbol puede incluir al menos uno de una unidad de codificación que corresponde a una profundidad codificada, una unidad de predicción, y una unidad mínima. La unidad de codificación que corresponde a 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 corresponde a la profundidad codificada al comparar información de codificación de las unidades de datos adyacentes. También, se determina una unidad de codificación correspondiente que corresponde a una profundidad codificada al utilizar información de codificación de una unidad de datos, y de esa forma puede determinarse 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 con base en información de codificación de unidades de datos adyacentes, información de codificación de unidades de datos en unidades de codificación más profundas adyacentes a la unidad de codificación actual pueden indicarse directamente y utilizarse.
Alternativamente, si se predice una unidad de codificación actual con base en la información de codificación de unidades de datos adyacentes, unidades de datos adyacentes en la unidad de codificación actual se buscan utilizando información codificada de las unidades de datos, y las unidades de codificación adyacentes buscadas pueden indicarse 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 conformidad con información de modo de codificación de la Tabla 1.
Una unidad 1300 de codificación máxima incluye las unidades 1302, 1304, 1306, 1312, 1314, 1316, y 1318 de codificación de profundidades codificadas. Aquí, ya que la unidad 1318 de codificación es una unidad de codificación de una profundidad codificada, información de división puede establecerse en 0. Información sobre un tipo de división de la unidad 1318 de codificación que tiene un tamaño de 2Nx2N puede establecerse en 1 de un tipo de división 1322 que tiene un tamaño de 2Nx2N, un tipo de división 1324 que tiene un tamaño de 2NxN, un tipo de división 1326 que tiene un tamaño de Nx2N, un tipo de división 1328 que tiene un tamaño de NxN, un tipo de división 1332 que tiene un tamaño de 2NxnU, un tipo de división 1334 que tiene un tamaño de 2NxnD, un tipo de división 1336 que tiene un tamaño de nLx2N y un tipo de división 1338 que tiene un tamaño de nRx2N.
Información de división (indicación 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 corresponde al índice de transformación puede variar de conformidad con un tipo de unidad de predicción o un tipo de división de una unidad de codificación.
Por ejemplo, cuando el tipo de división se establece para ser simétrico, es decir, el tipo de división 1322, 1324, 1326, o 1328, se establece una unidad 1342 de transformación que tiene un tamaño de 2Nx2N si un indicador de tamaño de TU es 0, y una unidad de transformación 1344 que tiene un tamaño de NxN se establece si un indicador de tamaño de TU es 1.
Cuando se establece el tipo de división para ser asimétrico, es decir, el tipo de división 1332, 1334, 1336, o 1338, se establece una unidad 1352 de transformación que tiene un tamaño de 2Nx2N si un indicador de tamaño de TU es 0, y una unidad 1354 de transformación que tiene un tamaño de N/2xN/2 se establece si un indicador de tamaño de TU es 1.
Al hacer referencia a la figura 21, el indicador de tamaño de TU es un indicador que tiene un valor de 0 o 1, pero el indicador de tamaño de TU no está limitado a 1 bit, y una unidad de transformación puede dividirse jerárquicamente teniendo una estructura de árbol mientras el indicador de tamaño de TU aumenta desde 0. El indicador de tamaño de TU puede utilizarse como un ejemplo de un índice de transformación.
En este caso, el tamaño de una unidad de transformación que se ha utilizado realmente puede expresarse al utilizar un indicador de tamaño de TU de una unidad de transformación, de conformidad con una realización de la presente invención, junto con un tamaño máximo y tamaño mínimo de la unidad transformación. De conformidad con la realización de la presente invención, el aparato 100 de codificación de video 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 de 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 de TU máximo puede insertarse en un SPS. De conformidad con una realización de la presente invención, el aparato 200 de decodificación de video puede decodificar video al utilizar 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 de TU máximo.
Por ejemplo, (a) si el tamaño de una unidad de codificación actual es 64x64 y un tamaño de unidad de transformación máximo es 32x32, entonces (a-1) el tamaño de una unidad transformación puede ser 32x32 cuando un indicado de tamaño de TU es 0, (a-2) puede ser 16x16 cuando el indicador de tamaño de TU es 1, y (a-3) puede ser 8x8 cuando el indicador de tamaño de TU es 2.
Como otro ejemplo, (b) si el tamaño de la unidad de codificación actual es 32x32 y un tamaño de unidad de transformación mínimo es 32x32, entonces (b-1) el tamaño de la unidad de transformación puede ser 32x32 cuando el indicador de tamaño de TU es 0. Aquí, el tamaño del indicador de tamaño de TU no puede establecerse en un valor diferente a 0, ya que el tamaño de la unidad de transformación no puede ser menor que 32x32.
Como otro ejemplo, (c) y el tamaño de la unidad de codificación actual es 64x64 y un indicador de tamaño de TU máximo es 1, entonces el indicador de tamaño de TU puede ser 0 o 1. Aquí, el indicador de tamaño de TU no puede establecerse en un valor diferente a 0 o 1.
De esa forma, si se define que el indicador de tamaño de TU máximo es 'MaxTransformSizeIndex', un tamaño de unidad de transformación mínimo es 'MinTransformSize', y un tamaño de unidad de transformación de raíz es 'RootTuSize' cuando el indicador de tamaño de TU es 0, entonces un tamaño de unidad de transformación mínimo actual 'CurrMinTuSize' que puede determinarse en una unidad de codificación actual, puede definirse por la Ecuación (1):
Figure imgf000040_0001
Comparado con el tamaño de unidad de transformación mínimo actual 'CurrMinTuSize' que puede determinarse en la unidad de codificación actual, el tamaño de unidad de transformación de raíz 'RootTuSize' puede denotar un tamaño de unidad de transformación máximo que puede seleccionarse en el sistema. En la Ecuación (1), 'RootTuSize/(2AMaxTransformSizeIndex)' 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 corresponde al indicador de tamaño de TU máximo, y 'MinTransformSize' denota un tamaño de transformación mínimo. De esa forma, un valor más pequeño de entre 'RootTuSize/(2AMaxTransformSizeIndex)' y 'MinTransformSize' puede ser el tamaño de unidad de transformación mínimo actual 'CurrMinTuSize' que puede de terminarse en la unidad de codificación actual.
De conformidad con una realización de la presente invención, el tamaño de unidad de transformación de raíz 'RootTuSize' puede variar de conformidad con el tipo de un modo de predicción.
Por ejemplo, si un modo de predicción actual es un inter modo, entonces 'RootTuSize' puede determinarse al utilizar 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=min(MaxTransformSize, PUSize) (2)
Es decir, si el modo de 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 de TU es 0 puede ser un valor más pequeño 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' puede determinarse el utilizar 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=min(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 más pequeño de entre el tamaño de unidad de transformación máximo y el tamaño de la unidad de predicción actual.
Sin embargo, el tamaño de unidad de transformación máximo actual que varía de conformidad con el tipo de 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 esto.
La figura 26 es un diagrama de flujo de un procedimiento de codificación de video que utiliza un filtro de interpolación con base en unidades de codificación que tienen una estructura de árbol, de conformidad con una realización de la presente invención.
En la operación 2610, con el fin de codificar una imagen actual de un video de entrada, la imagen actual se divide al menos en una unidad de codificación máxima. Cada una de al menos una región dividida, que se obtiene al dividir una región de cada unidad de codificación máxima de conformidad con profundidades, puede codificarse. Con el fin de codificar cada región dividida de conformidad con profundidades, se realiza transformación y cuantificación en un resultado de interpredicción con base en interpolación de unidad de sub-pel, e intrapredicción.
Aquí, puede determinarse una profundidad dividida para enviar un resultado de codificación final de conformidad con la por lo menos una región dividida al comparar resultados de regiones divididas de codificación de conformidad con profundidades, y pueden determinarse unidades de codificación incluidas en una unidad de codificación máxima actual y que tienen una estructura de árbol. Similar a las unidades de codificación que tienen una estructura de árbol, pueden determinarse unidades de transformación que tienen una estructura de árbol. En otras palabras, como un resultado de codificación de una imagen, similar a las unidades de codificación determinadas que tienen una estructura de árbol, puede enviarse un resultado de codificación de las unidades de transformación que tienen una estructura de árbol como datos codificados de la imagen.
Puede realizarse interpredicción en cada unidad de predicción o división de la unidad de codificación. Puede predecirse movimiento de una unidad de predicción actual o división con referencia a píxeles generados al realizar interpolación de unidad de sub-pel. De entre filtros de interpolación para generar un valor de píxel de unidad de subpel, se selecciona de manera diferente un filtro de interpolación con base en una ubicación de interpolación de unidad de sub-pel. Con el fin de realizar eficientemente interpolación de imagen, pueden determinarse selectivamente coeficientes de filtro de interpolación. El filtro de interpolación puede seleccionarse como un filtro de interpolación simétrico o asimétrico de conformidad con una ubicación de interpolación. El filtro de interpolación puede ser un filtro de interpolación de derivación de número impar o par.
De entre coeficientes de filtro de interpolación previamente almacenados en memoria, puede seleccionarse un filtro de interpolación deseado de conformidad con una ubicación de interpolación de unidad de sub-pel, una uniformidad, el número de derivaciones de filtro, una profundidad de bits, una relación de escalamiento, una función base de filtración de interpolación con base en transformación, un tamaño de filtro de ventana, y un componente de color, y puede realizarse interpolación para generar el valor de píxel de unidad de sub-pel.
En la operación 2620, datos de imagen obtenidos como el resultado de codificación final de conformidad con la por lo menos una región dividida de cada unidad de codificación máxima, e información sobre la profundidad codificada y el modo de codificación se envían como una corriente de bits.
La información sobre el modo de codificación puede incluir información sobre la profundidad codificada o información de división, información sobre un tipo de división de una unidad de predicción, información sobre un modo de predicción, e información sobre una estructura de árbol y unidades de transformación. La información de codificación puede incluir información sobre un filtro de interpolación utilizado para realizar codificación de predicción de unidad de sub-pel. La información codificada sobre el modo de codificación puede transmitirse a un aparato de decodificación junto con los datos de imagen codificados.
La figura 27 es un diagrama de flujo de un procedimiento de decodificación de video que utiliza un filtro interpolación con base en unidades de codificación que tienen una estructura de árbol, de conformidad con una realización de la presente invención.
En la operación 2710, se recibe y analiza una corriente de bits de un video codificado.
En la operación 2720, datos de imagen codificados de una imagen actual asignada a una unidad de codificación máxima, e información sobre una profundidad codificada y un modo de codificación de conformidad con unidades de codificación máximas se extraen de la corriente de bits analizada. Puede extraerse información sobre un filtro de interpolación requerido para realizar compensación de movimiento de unidad de sub-pel de la información de codificación.
Puede extraerse información sobre la profundidad codificada y el modo de codificación de la información de codificación. De conformidad con la información sobre la profundidad codificada y el modo de codificación, una unidad de codificación máxima puede dividirse en unidades de codificación que tienen una estructura de árbol. También, de conformidad con información sobre una estructura de árbol de unidades de transformación incluidas en la información extraída, pueden determinarse unidades de transformación que tienen una estructura de árbol de conformidad con profundidades de transformación en las unidades de codificación.
En la operación 2730, al utilizar la información sobre la profundidad codificada y el modo de codificación de conformidad con cada unidad de codificación máxima, pueden decodificarse datos de imagen de cada unidad de codificación máxima con base 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. Ya que se decodifica una unidad de codificación actual con base en la información sobre la unidad codificada y el modo de codificación, una unidad de codificación actual puede transformarse de manera inversa al utilizar una unidad de transformación determinada de entre las unidades de transformación que tienen una estructura de árbol.
Pueden codificarse datos de imagen codificados al realizar varias operaciones de decodificación tal como compensación de movimiento e intrapredicción en cada unidad de predicción o división de la unidad de codificación con base en el modo de codificación.
Específicamente, si se extraen datos residuales codificados y datos de referencia con base en píxeles interpolados en una unidad de sub-pel, puede realizarse compensación de movimiento sobre una unidad de predicción actual o una división actual con base en los píxeles interpelados en unidades de sub-pel. De entre filtros de interpolación para generar un valor de píxel de unidad de sub-pel, un filtro de interpolación puede seleccionarse de manera diferente con base en una ubicación de interpolación de unidad de sub-pel. El filtro de interpolación puede seleccionarse como un filtro de interpolación simétrico o asimétrico de conformidad con una ubicación de interpolación. El filtro de interpolación puede ser un filtro de interpolación de derivación de número impar o par. Con el fin de realizar eficientemente interpolación de imagen, pueden determinarse selectivamente coeficientes de filtro de interpolación. De entre coeficientes de filtro de interpolación previamente almacenados en memoria, puede seleccionarse un filtro de interpolación deseado de conformidad con una ubicación de interpolación de unidad de sub-pel, una uniformidad, el número de derivaciones de filtro, una profundidad de bit, una relación de escalamiento, una función base de filtración de interpolación con base en transformación, un tamaño de filtro de ventana, y un componente de color, y puede realizarse interpolación para generar el valor de píxel de unidad de sub-pel.
Se determina una imagen de referencia y una región de referencia al utilizar los datos de referencia, y el valor de píxel de unidad de sub-pel puede generarse al realizar filtración de interpolación sobre dos o más píxeles de referencia de unidad de pel de número entero de la imagen de referencia. Puede realizarse compensación de movimiento sobre la unidad de predicción actual o la división actual al combinar el valor de píxel unidad de sub-pel generado y los datos residuales, y de esa forma puede realizarse de codificación de predicción.
Ya que se decodifica cada unidad de codificación máxima, pueden restaurarse datos de imagen en un dominio espacial, y puede restaurarse una imagen de un video que es una secuencia de imagen. El video restaurado puede reproducirse mediante un aparato de reproducción, puede almacenarse en un medio de almacenamiento, o puede transmitirse en una red.
Las realizaciones de la presente invención pueden escribirse como programas de computadora y pueden implementarse en ordenadores digitales de uso general que ejecutan los programas utilizando un medio de grabación legible por ordenador. Ejemplos del medio de grabación legible por ordenador incluyen medios de almacenamiento magnético (por ejemplo, ROM, discos flexibles, discos duros, etc.) y medios de grabación ópticos (por ejemplo, CD-ROM, o DVD).

Claims (1)

REIVINDICACIONES
1. Un procedimiento de decodificación de video para interpredecir una imagen usando compensación de movimiento usando un filtro de interpolación, comprendiendo el procedimiento de decodificación de video:
determinar coeficientes de filtro de unos filtros de interpolación de 7 derivaciones para generar al menos una muestra de unidad de cuarto de sub-pel localizada entre píxeles de unidades pel de número entero; y
generar una muestra de una ubicación de 1/4 de píxel o una ubicación de 3/4 de píxel mediante la interpolación de los píxeles de unidades pel de número entero utilizando el filtro de interpolación de 7 derivaciones; e
interprecedir la imagen usando compensación de movimiento usando la muestra de la ubicación de 1/4 de píxel o la ubicación de 3/4 de píxel,
en el que el filtro de interpolación de 7 derivaciones para generar la muestra de la ubicación de 1/4 de píxel comprende siete coeficientes de filtro: {-1,4, -10, 58, 17, -5, 1}, y
el filtro de interpolación de 7 derivaciones para generar la muestra de la ubicación de 3/4 de píxel comprende siete coeficientes de filtro: {1, -5, 17, 58, -10, 4, -1}.
ES17168407T 2011-06-28 2012-06-28 Procedimiento de decodificación usando un filtro de interpolación Active ES2701978T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161502056P 2011-06-28 2011-06-28

Publications (1)

Publication Number Publication Date
ES2701978T3 true ES2701978T3 (es) 2019-02-26

Family

ID=47424683

Family Applications (2)

Application Number Title Priority Date Filing Date
ES18199959T Active ES2770320T3 (es) 2011-06-28 2012-06-28 Interpolación de imágenes usando un filtro asimétrico de interpolación
ES17168407T Active ES2701978T3 (es) 2011-06-28 2012-06-28 Procedimiento de decodificación usando un filtro de interpolación

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES18199959T Active ES2770320T3 (es) 2011-06-28 2012-06-28 Interpolación de imágenes usando un filtro asimétrico de interpolación

Country Status (25)

Country Link
US (5) US9282339B2 (es)
EP (4) EP3448025B1 (es)
JP (5) JP5886953B2 (es)
KR (7) KR20130002294A (es)
CN (5) CN105791870B (es)
AU (4) AU2012276477B2 (es)
BR (4) BR122021004606B1 (es)
CA (2) CA2976108C (es)
CY (1) CY1121054T1 (es)
DK (2) DK3232664T3 (es)
ES (2) ES2770320T3 (es)
HR (1) HRP20182054T1 (es)
HU (2) HUE048724T2 (es)
LT (1) LT3232664T (es)
MX (5) MX336301B (es)
MY (1) MY168224A (es)
PH (5) PH12014500017B1 (es)
PL (2) PL3448025T3 (es)
PT (1) PT3232664T (es)
RS (1) RS58193B1 (es)
RU (4) RU2595262C2 (es)
SI (1) SI3232664T1 (es)
TW (3) TWI554088B (es)
WO (1) WO2013002579A2 (es)
ZA (1) ZA201502811B (es)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5323252B2 (ja) * 2010-03-30 2013-10-23 株式会社東芝 動画像符号化方法、復号化方法、符号化装置および復号化装置
EP3448025B1 (en) * 2011-06-28 2020-01-08 Samsung Electronics Co., Ltd. Image interpolation using asymmetric interpolation filter
GB2561782B (en) * 2011-11-08 2019-01-16 Kt Corp Method and apparatus for encoding image, and method and apparatus for decoding image
US20150181204A1 (en) * 2012-07-18 2015-06-25 Sony Corporation Image processing apparatus, image processing method, and image display device
WO2014107066A1 (ko) * 2013-01-04 2014-07-10 삼성전자 주식회사 위상차를 고려한 영상 업샘플링을 이용하는 스케일러블 비디오 부호화 방법 및 장치, 스케일러블 비디오 복호화 방법 및 장치
KR102273025B1 (ko) 2013-03-06 2021-07-05 삼성전자주식회사 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 부호화 방법 및 그 장치, 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 복호화 방법 및 그 장치
KR102286856B1 (ko) * 2013-06-12 2021-08-06 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
US10659806B2 (en) 2014-11-04 2020-05-19 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus using interpolation filter on which image characteristic is reflected
US10291932B2 (en) * 2015-03-06 2019-05-14 Qualcomm Incorporated Method and apparatus for low complexity quarter pel generation in motion search
CN104883579B (zh) * 2015-06-08 2017-11-14 电子科技大学 一种基于空‑频域的联合视频图像的上采样方法
US10750174B2 (en) * 2015-08-28 2020-08-18 Kt Corporation Method and device for deriving a prediction sample in decoding/encoding video signal using binary and quad trees
WO2017094298A1 (ja) * 2015-12-04 2017-06-08 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
WO2018012933A1 (ko) 2016-07-14 2018-01-18 삼성전자 주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
US10116957B2 (en) * 2016-09-15 2018-10-30 Google Inc. Dual filter type for motion compensated prediction in video coding
KR20180042899A (ko) * 2016-10-19 2018-04-27 디지털인사이트 주식회사 적응적 보간 필터를 사용하는 비디오 코딩 방법 및 장치
WO2018097700A1 (ko) 2016-11-28 2018-05-31 한국전자통신연구원 필터링을 위한 방법 및 장치
CN116320498A (zh) 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
CN116193111B (zh) 2017-01-04 2025-12-30 三星电子株式会社 视频解码方法和设备以及视频编码方法和设备
CN110169062A (zh) * 2017-01-10 2019-08-23 瑞典爱立信有限公司 去块滤波控制
EP3471418A1 (en) 2017-10-12 2019-04-17 Thomson Licensing Method and apparatus for adaptive transform in video encoding and decoding
KR102357142B1 (ko) * 2017-11-07 2022-02-08 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩을 위한 인터 예측 장치 및 방법을 위한 보간 필터
CN115695790B (zh) 2018-01-15 2025-10-28 三星电子株式会社 编码方法及其设备以及解码方法及其设备
EP4171030A1 (en) 2018-03-28 2023-04-26 Huawei Technologies Co., Ltd. An image processing device and method for performing efficient deblocking
US10863190B2 (en) * 2018-06-14 2020-12-08 Tencent America LLC Techniques for memory bandwidth optimization in bi-predicted motion vector refinement
CN112868232B (zh) * 2018-10-06 2023-07-11 华为技术有限公司 使用插值滤波器进行帧内预测的方法和装置
HUE066346T2 (hu) 2019-02-22 2024-07-28 Huawei Tech Co Ltd Eljárás és berendezés kroma alblokkok affin alapú inter predikciójához
CN118474354A (zh) 2019-03-04 2024-08-09 阿里巴巴集团控股有限公司 视频解码方法和装置、处理视频内容的方法和装置及介质
CN110276732B (zh) * 2019-06-18 2022-06-07 昆明理工大学 一种顾及地形特征线要素的山区点云空洞修复方法
US20220232206A1 (en) * 2019-06-18 2022-07-21 Electronics And Telecommunications Research Institute Video encoding/decoding method and apparatus, and recording medium storing bitstream
KR102155760B1 (ko) * 2019-06-25 2020-09-14 오스템임플란트 주식회사 Ct 영상의 해상도 강화 장치 및 그 방법
US11303909B2 (en) * 2019-09-18 2022-04-12 Qualcomm Incorporated Scaling ratio and output full resolution picture in video coding
EP4082195A4 (en) * 2019-12-24 2023-06-28 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatuses for reference picture resampling
US11968356B2 (en) * 2022-03-16 2024-04-23 Qualcomm Incorporated Decoder-side motion vector refinement (DMVR) inter prediction using shared interpolation filters and reference pixels
CN119032575A (zh) * 2022-04-15 2024-11-26 现代自动车株式会社 使用用于色度分量的改进环内滤波器的视频编码方法和装置
WO2024200085A1 (en) * 2023-03-28 2024-10-03 Interdigital Ce Patent Holdings, Sas Phase-based motion compensation for predictive video coding of chroma content
CN116389743A (zh) * 2023-04-18 2023-07-04 哲库科技(上海)有限公司 图像编码方法、装置、芯片、终端、存储介质及程序产品
WO2025084770A1 (ko) * 2023-10-16 2025-04-24 현대자동차주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2025183928A1 (en) * 2024-02-26 2025-09-04 Google Llc Asymmetric interpolation of sub-pixels for motion compensation

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AR016812A1 (es) * 1997-08-14 2001-08-01 Samsung Electronics Co Ltd Metodo para transmitir informacion de video comprimida, disposiciones de compresion y de grabacion de video y aparato de reproduccion de video
DE19746214A1 (de) * 1997-10-21 1999-04-22 Bosch Gmbh Robert Verfahren zur bewegungskompensierenden Prädiktion von Bewegtbildfolgen
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
KR100624429B1 (ko) * 2003-07-16 2006-09-19 삼성전자주식회사 칼라 영상을 위한 비디오 부호화/복호화 장치 및 그 방법
US7623575B2 (en) * 2005-01-05 2009-11-24 Lsi Corporation Method and apparatus for sub-pixel motion compensation
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
US8320460B2 (en) * 2006-09-18 2012-11-27 Freescale, Semiconductor, Inc. Dyadic spatial re-sampling filters for inter-layer texture predictions in scalable image processing
US20080075165A1 (en) 2006-09-26 2008-03-27 Nokia Corporation Adaptive interpolation filters for video coding
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 画像形成装置及び画像形成方法ならびにそのプログラム
US7944969B2 (en) * 2007-01-05 2011-05-17 Freescale Semiconductor, Inc. Method and system for sampling video data
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US20090022412A1 (en) * 2007-07-20 2009-01-22 Sanyo Electric Co., Ltd. Image processing apparatus and image pickup apparatus using the same
EP2048886A1 (en) 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
KR20090076019A (ko) * 2008-01-07 2009-07-13 엘지전자 주식회사 보간 필터, 그 보간 필터를 이용한 멀티 코덱 디코더 및디코딩 방법
US20090257499A1 (en) 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US8462842B2 (en) 2008-04-10 2013-06-11 Qualcomm, Incorporated Symmetry for interpolation filtering of sub-pixel positions in video coding
US8705622B2 (en) 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US8610673B2 (en) * 2008-12-03 2013-12-17 Microsoft Corporation Manipulation of list on a multi-touch display
WO2010063881A1 (en) * 2008-12-03 2010-06-10 Nokia Corporation Flexible interpolation filter structures for video coding
MY182191A (en) * 2010-07-09 2021-01-18 Samsung Electronics Co Ltd Image interpolation method and apparatus
CN104980738B (zh) * 2010-09-30 2017-04-12 三星电子株式会社 通过使用平滑插值滤波器对图像进行插值的方法和装置
WO2012178178A2 (en) * 2011-06-24 2012-12-27 General Instrument Corporation Selection of phase offsets for interpolation filters for motion compensation
CA2997877C (en) * 2011-06-24 2020-08-04 Ntt Docomo, Inc. Method and apparatus for motion compensation prediction with multiple fractional sample interpolations
EP3448025B1 (en) * 2011-06-28 2020-01-08 Samsung Electronics Co., Ltd. Image interpolation using asymmetric interpolation filter
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법

Also Published As

Publication number Publication date
EP3232664A1 (en) 2017-10-18
CN105791870A (zh) 2016-07-20
KR20140146563A (ko) 2014-12-26
CN105744285B (zh) 2017-09-22
US9313522B2 (en) 2016-04-12
MX2014000056A (es) 2014-04-30
PH12017501593A1 (en) 2018-06-11
KR20150041760A (ko) 2015-04-17
TWI554088B (zh) 2016-10-11
AU2016201052A1 (en) 2016-03-10
MX336303B (es) 2016-01-14
JP2016129380A (ja) 2016-07-14
DK3448025T3 (da) 2020-01-27
PL3448025T3 (pl) 2020-04-30
JP5921793B1 (ja) 2016-05-24
KR20140122214A (ko) 2014-10-17
AU2018203838B2 (en) 2019-09-19
HRP20182054T1 (hr) 2019-02-08
US20150189317A1 (en) 2015-07-02
CY1121054T1 (el) 2019-12-11
TWI646827B (zh) 2019-01-01
CN105744285A (zh) 2016-07-06
KR20150041759A (ko) 2015-04-17
CN105791869A (zh) 2016-07-20
AU2018203838A1 (en) 2018-06-21
AU2016201052B2 (en) 2016-12-15
PH12017501595A1 (en) 2018-07-02
EP2728868A2 (en) 2014-05-07
CN105791870B (zh) 2017-10-24
BR122021004604B1 (pt) 2022-07-26
RU2014102579A (ru) 2015-08-10
CA2976108C (en) 2020-06-30
RU2654525C1 (ru) 2018-05-21
US9313520B2 (en) 2016-04-12
KR101650545B1 (ko) 2016-08-23
HUE048724T2 (hu) 2020-08-28
AU2017201283B2 (en) 2018-03-08
RU2627294C1 (ru) 2017-08-07
US9313521B2 (en) 2016-04-12
EP2728868A4 (en) 2015-02-25
DK3232664T3 (en) 2019-01-07
JP2016129378A (ja) 2016-07-14
PH12014500017A1 (en) 2014-02-17
LT3232664T (lt) 2018-12-27
KR101675537B1 (ko) 2016-11-11
KR101675539B1 (ko) 2016-11-11
JP2016129379A (ja) 2016-07-14
PH12017501592B1 (en) 2018-06-11
CN103765884A (zh) 2014-04-30
CN103765884B (zh) 2017-03-22
US9282339B2 (en) 2016-03-08
CA2840638A1 (en) 2013-01-03
SI3232664T1 (sl) 2019-02-28
MX336371B (es) 2016-01-18
EP3448025A1 (en) 2019-02-27
KR20130002294A (ko) 2013-01-07
AU2017201283A1 (en) 2017-03-16
TW201309035A (zh) 2013-02-16
HUE043939T2 (hu) 2019-09-30
TWI574552B (zh) 2017-03-11
AU2012276477B2 (en) 2016-02-18
JP6114420B2 (ja) 2017-04-12
PH12017501593B1 (en) 2018-06-11
EP3232664B1 (en) 2018-12-05
PH12017501594B1 (en) 2019-04-24
BR112013033703B1 (pt) 2022-05-17
PH12017501592A1 (en) 2018-06-11
ZA201502811B (en) 2017-01-25
BR122021004606B1 (pt) 2023-04-18
JP5921794B1 (ja) 2016-05-24
MY168224A (en) 2018-10-15
WO2013002579A2 (ko) 2013-01-03
CA2976108A1 (en) 2013-01-03
US20150189314A1 (en) 2015-07-02
BR112013033703A2 (pt) 2017-07-04
RS58193B1 (sr) 2019-03-29
EP3448025B1 (en) 2020-01-08
PL3232664T3 (pl) 2019-05-31
TW201715889A (zh) 2017-05-01
RU2689129C1 (ru) 2019-05-24
KR101675540B1 (ko) 2016-11-11
PH12014500017B1 (en) 2018-04-06
US20150189315A1 (en) 2015-07-02
WO2013002579A3 (ko) 2013-04-11
KR101675538B1 (ko) 2016-11-11
ES2770320T3 (es) 2020-07-01
RU2595262C2 (ru) 2016-08-27
CN105791869B (zh) 2017-09-22
US20140133551A1 (en) 2014-05-15
BR122021004608B1 (pt) 2023-04-18
CN105847844B (zh) 2017-07-28
PH12017501595B1 (en) 2018-07-02
AU2012276477A1 (en) 2014-01-30
JP2016129377A (ja) 2016-07-14
JP2014523185A (ja) 2014-09-08
JP5886953B2 (ja) 2016-03-16
US20150189316A1 (en) 2015-07-02
MX336301B (es) 2016-01-14
KR20140085385A (ko) 2014-07-07
TW201642660A (zh) 2016-12-01
EP2843950A1 (en) 2015-03-04
CN105847844A (zh) 2016-08-10
US9407928B2 (en) 2016-08-02
MX336302B (es) 2016-01-14
PH12017501594A1 (en) 2018-06-11
KR101895428B1 (ko) 2018-09-05
KR20150041758A (ko) 2015-04-17
PT3232664T (pt) 2018-12-14
JP6114419B2 (ja) 2017-04-12
CA2840638C (en) 2017-10-17

Similar Documents

Publication Publication Date Title
ES2701978T3 (es) Procedimiento de decodificación usando un filtro de interpolación
RU2697628C1 (ru) Способ и устройство кодирования режима внутрикадрового предсказания для блока предсказания изображений и способ и устройство декодирования режима внутрикадрового предсказания для блока предсказания изображений
KR101855293B1 (ko) 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP5654685B2 (ja) 動き補償方法及び動き補償装置
JP5654594B2 (ja) 映像の符号化方法及び装置、その復号化方法及び装置
JP2013542667A (ja) 映像のイントラ予測方法及びその装置
KR20130004133A (ko) 휘도 성분 영상을 이용한 색차 성분 영상의 예측 방법 및 예측 장치
BR122021005437B1 (pt) Método para compensação de movimento
BR112013007203B1 (pt) Método de compensação de movimento