ES2675578T3 - Puesta en correspondencia de plantillas para codificación de vídeo - Google Patents

Puesta en correspondencia de plantillas para codificación de vídeo Download PDF

Info

Publication number
ES2675578T3
ES2675578T3 ES13192339.3T ES13192339T ES2675578T3 ES 2675578 T3 ES2675578 T3 ES 2675578T3 ES 13192339 T ES13192339 T ES 13192339T ES 2675578 T3 ES2675578 T3 ES 2675578T3
Authority
ES
Spain
Prior art keywords
hypotheses
video
template
hypothesis
sets
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
ES13192339.3T
Other languages
English (en)
Inventor
Marta Karcewicz
Wei-Jung Chien
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2675578T3 publication Critical patent/ES2675578T3/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un procedimiento de codificación de vídeo para codificar un bloque de vídeo actual de una unidad de vídeo actual, comprendiendo el procedimiento: generar (108) uno o más conjuntos de hipótesis para la codificación de vídeo predictiva de puesta en coincidencia de plantillas, en donde cada una de las hipótesis en los uno o más conjuntos de hipótesis se basa en un bloque de vídeo predictivo (70) en una unidad de vídeo diferente a la unidad actual de vídeo y en donde cada una de las hipótesis en los uno o más conjuntos de hipótesis se genera en base a datos de vídeo en una plantilla (72) que tiene una forma que corresponde a una forma de una plantilla (66, 74) asociada al bloque de vídeo actual (64, 76); generar (108) una hipótesis de referencia basada en los uno o más conjuntos de hipótesis, en donde la hipótesis de referencia comprende una media de valores de píxeles para cada ubicación de píxel de una pluralidad de hipótesis en los uno o más conjuntos de hipótesis; eliminar (120), de los uno o más conjuntos de hipótesis, cada hipótesis para la cual una medida de diferencia con respecto a la hipótesis de referencia es mayor que un valor de umbral (118); seleccionar una o más hipótesis de las hipótesis restantes en los uno o más conjuntos de hipótesis, en base a un número de hipótesis a usar para codificar el bloque de vídeo actual, en donde se identifica el número de hipótesis (124) como un primer número de hipótesis o un segundo número de hipótesis; generar (126) un elemento sintáctico que indica el número identificado de hipótesis; y codificar (128), mediante un codificador de vídeo, el bloque de vídeo actual en base a las una o más hipótesis seleccionadas para producir un bloque de vídeo codificado.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCIÓN
Puesta en correspondencia de plantillas para codificación de vídeo CAMPO TÉCNICO
[0001] La divulgación se refiere a la codificación de vídeo y, más en concreto, a las técnicas de codificación de vídeo que utilizan la predicción del movimiento de puesta en correspondencia de plantillas.
ANTECEDENTES
[0002] Las capacidades multimedia digitales pueden incorporarse a una amplia gama de dispositivos incluyendo televisiones digitales, sistemas digitales de difusión directa, dispositivos de comunicaciones inalámbricas, sistemas de difusión inalámbrica, asistentes personales digitales (PDAs), computadoras portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos celulares o por satélite, reproductores de medios digitales y similares. Los dispositivos multimedia digitales pueden implementar técnicas de codificación de vídeo, como por ejemplo MPEG-2, ITU-H.263, MPEG 4 o ITU-H.264/MPEG- 4 Parte 10, Codificación de Vídeo Avanzada (AVC), para transmitir y recibir o almacenar y recuperar de manera más eficiente datos de vídeo digitales. Las técnicas de codificación de vídeo pueden llevar a cabo compresión de vídeo por medio de una predicción espacial y temporal para reducir o eliminar la redundancia inherente en las secuencias de vídeo.
[0003] En la codificación de vídeo, la compresión a menudo incluye la predicción espacial, la estimación del movimiento y la compensación del movimiento. La intracodificación se basa en la predicción espacial y en la codificación por transformación, como por ejemplo una transformación cosenoidal discreta (DCT), para reducir o eliminar la redundancia espacial entre los bloques de vídeo dentro de una trama de vídeo determinada. La intercodificación se basa en la predicción temporal y en la codificación por transformación para reducir o eliminar la redundancia temporal entre bloques de vídeo de tramas de vídeo sucesivas de una secuencia de vídeo. Las tramas Intracodificadas (“tramas-I”) a menudo se utilizan como puntos de acceso aleatorios así como referencias para la intercodificación de otras tramas. Las tramas-I, sin embargo, típicamente muestran una compresión menor que otras tramas. El término unidades-I puede referirse a tramas-I, a rebanadas-I o a otras porciones independientemente descodificables de una trama-I.
[0004] Para la intercodificación, un codificador de vídeo lleva a cabo una estimación del movimiento para rastrear el movimiento de bloques de vídeo en correspondencia entre dos o más tramas adyacentes u otras unidades codificadas, como por ejemplo rebanadas de tramas. Las tramas intercodificadas pueden incluir tramas predictivas (“tramas-P”), las cuales pueden incluir bloques predichos a partir de una trama anterior, y tramas predictivas bidireccionales (“tramas-B”) las cuales pueden incluir bloques predichos procedentes de una trama anterior y de una trama posterior de una secuencia de vídeo. Las técnicas convencionales de codificación de vídeo de compensación del movimiento comparan un bloque de vídeo con otros bloques de vídeo de una trama de vídeo anterior o posterior con el fin de identificar los datos de vídeo predictivos que pueden ser utilizados para codificar el bloque de vídeo actual. Un bloque de vídeo puede desglosarse en particiones subbloque para facilitar una codificación de mayor calidad.
[0005] Un bloque de vídeo codificado puede ser representado por una información de predicción que pueda ser utilizada para crear o identificar un bloque predictivo, y un bloque residual de datos indicativo de las diferencias entre el bloque que está siendo codificado y el bloque predictivo. La información de predicción puede comprender los uno o más vectores de movimiento que se utilizan para identificar el bloque de datos predictivo. Dados los vectores de movimiento, el descodificador es capaz de reconstruir los bloques predictivos que fueron utilizados para codificar el residual. Así, dado un conjunto de bloques residuales y un conjunto de vectores de movimiento (y posiblemente alguna sintaxis adicional), el descodificador puede ser capaz de reconstruir una trama de vídeo que fue originalmente codificada. Una secuencia de vídeo codificada puede comprender bloques de datos residuales, vectores de movimiento y posiblemente otros tipos de sintaxis.
[0006] La puesta en correspondencia de plantillas es una técnica que puede ser utilizada para eliminar vectores de movimiento, y sin embargo seguir proporcionando al mismo tiempo ventajas de la codificación de vídeo de compensación del movimiento. En la puesta de correspondencia de plantillas, los píxeles vecinos con respecto al bloque de vídeo que está siendo codificado pueden definir una plantilla, y esa plantilla (más que el bloque de vídeo que está siendo codificado) puede ser comparada con los datos de una trama de vídeo anterior o posterior. Tanto el codificador de vídeo como el descodificador de vídeo pueden llevar a cabo el proceso de puesta en correspondencia de plantillas para identificar el movimiento sin el uso de vectores de movimiento. Así, con la puesta en correspondencia de plantillas, los vectores de movimiento no son codificados en un flujo de bits. Por el contrario, los vectores de movimiento se derivan esencialmente del proceso de puesta en correspondencia de plantillas a medida que la trama se codifica y se descodifica.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0007] El documento WO 2009/124511 divulga un procedimiento, un dispositivo y un sistema para la intercodificación y descodificación de predicción de trama para obtener una pluralidad de valores de predicción de hipótesis para distorsiones entre una zona de plantillas del bloque de codificación actual y una pluralidad de plantillas de correspondencia en una pluralidad de tramas de referencia y calcular los valores de predicción de puesta en correspondencia de plantillas del bloque de codificación actual. De acuerdo con la divulgación, una pluralidad de vectores de desplazamiento se ordena por un orden predeterminado de acuerdo con los valores de las distorsiones entre la zona de plantillas del bloque de codificación actual y las plantillas de correspondencia para obtener una lista de subconjunto. Se selecciona un número predeterminado de valores de predicción de hipótesis del bloque de codificación al que corresponden las plantillas de correspondencia de acuerdo con un orden ascendente de distorsiones de los vectores de desplazamiento.
RESUMEN
[0008] En general, la presente divulgación describe técnicas de codificación de vídeo aplicables a la codificación de predicción del movimiento de puesta en correspondencia de plantillas de bloques de vídeo dentro de unidades de vídeo. Una unidad de vídeo comprende una trama de vídeo. En la predicción del movimiento de puesta en correspondencia de plantillas, un bloque de vídeo se codifica de manera predictiva y se descodifica en base a una o más listas de datos de referencia predictivos sin depender de vectores de movimiento, proporcionando al mismo tiempo las ventajas de la codificación de vídeo de compensación del movimiento. En particular, los píxeles vecinos con respecto al bloque de vídeo que está siendo codificado pueden definir una plantilla y esta plantilla, y no el bloque de vídeo que está siendo codificado, puede ser comparada con los datos almacenados en las listas de los datos de referencia predictivos. Los datos de referencia predictivos son generados en base a una o más tramas que pueden producirse antes o después de una trama destinaria.
[0009] Al aplicar la predicción de puesta en correspondencia de plantillas a las tramas-B, se generan dos listas de datos de vídeo predictivos, la primera lista procedente de una trama que se produce antes de la trama destinataria (por ejemplo, la trama anterior), y la segunda lista procedente de una trama posterior a la trama destinataria (por ejemplo, la trama futura). En un aspecto de esta divulgación, se aplica la puesta en correspondencia de plantillas para codificar y descodificar tramas-B. En la aplicación de la puesta en correspondencia de plantillas a las tramas-B, se pueden utilizar uno o dos conjuntos de hipótesis para la trama-B. Si se utiliza un conjunto de hipótesis, la hipótesis establecida puede contener hipótesis encontradas tanto en la primera lista como en la segunda lista. Si se utilizan dos conjuntos de hipótesis, un primer conjunto de hipótesis puede contener hipótesis procedentes de la primera lista y un segundo conjunto de hipótesis puede contener las hipótesis encontradas procedentes de la segunda lista. Un tercer conjunto de hipótesis adicional se puede formar a partir de la predicción del movimiento bidireccional, en el que los datos procedentes de la primera lista y los datos procedentes de la segunda lista se combinan y se utilizan para la predicción.
[0010] Se aplica selección y rechazo de hipótesis mejorados a la predicción de puesta en correspondencia de plantillas tanto de las tramas-P como de las tramas-B. En este contexto, se introduce un elemento sintáctico para señalar, al descodificador, el número de hipótesis utilizadas por un codificador al codificar o descodificar datos de vídeo que utilizan la predicción de puesta en correspondencia de plantillas. Por ejemplo, el codificador puede estar configurado para seleccionar uno entre dos números diferentes que especifiquen el número de hipótesis utilizadas durante el proceso de codificación, y el descodificador puede estar configurado para aplicar el número de hipótesis identificadas por el codificador. El codificador puede determinar un coste asociado con la utilización de uno u otro número de hipótesis durante la codificación y puede seleccionar el número de hipótesis con el coste más bajo. El codificador puede entonces codificar los datos de vídeo en base al número de hipótesis con el coste más bajo y puede señalar este número al descodificador, utilizando el elemento sintáctico.
[0011] Al determinar qué hipótesis no considerar, un codificador o descodificador compara la hipótesis objeto de consideración (esto es, la hipótesis candidata) con una hipótesis de referencia. Si la diferencia entre la hipótesis candidata y la hipótesis de referencia es mayor que un umbral predefinido, la hipótesis candidata puede no ser tomada en consideración. La hipótesis de referencia puede ser generada promediando, en un ejemplo, todas las hipótesis objeto de consideración o, en otro ejemplo, un subconjunto de las mejoras hipótesis objeto de consideración. En el aspecto de rechazo de las hipótesis de la presente divulgación, no se requiere la señalización al codificador o al descodificador en cuanto a cuáles sean las hipótesis aceptadas o rechazadas para la predicción del movimiento de puesta en correspondencia de plantillas aplicadas a las tramas-P o a las tramas-B.
[0012] En un aspecto adicional de esta divulgación, se puede prever una técnica para la ponderación de la suma de la diferencia absoluta en la predicción del movimiento de puesta en correspondencia de las plantillas sobre las tramas-P y las tramas-B. Una forma de plantilla puede ser definida con respecto al bloque actual y una forma de plantilla correspondiente puede ser definida con respecto a un bloque destinatario. La suma de la diferencia absoluta es el valor absoluto de la diferencia entre los valores de píxeles de cada píxel de la forma de plantilla definida con respecto al bloque actual y a los valores de píxeles de cada píxel correspondiente de cada plantilla definida con respecto al bloque de referencia. Las formas de las plantillas definidas con respecto al bloque actual o al bloque destinatario pueden, cada una, ser divididas en dos o más particiones. A cada partición se le otorga una ponderación que disminuye a medida que aumenta la distancia entre cada partición y el bloque correspondiente. Mediante la
5
10
15
20
25
30
35
40
45
50
55
60
65
ponderación de la suma de la diferencia absoluta, la relación espacial de la plantilla y de los bloques de vídeo puede ser tomada en consideración al llevar a cabo la predicción de la puesta en correspondencia de plantillas, lo que puede traducirse en una puesta en correspondencia de plantillas más precisa.
[0013] En otro aspecto de esta divulgación se aplica a la predicción del movimiento de puesta en correspondencia de plantillas un desplazamiento de plantillas calculado según se aplica a las tramas-P y a las tramas-B. El desplazamiento de las plantillas puede ser utilizado para predecir el desplazamiento entre el bloque de referencia y el bloque destinatario. Al buscar la plantilla de puesta en correspondencia, cada píxel del bloque de referencia puede incorporar un conjunto de correspondientes coordenadas que definan donde está situado cada píxel en el bloque de referencia. Las coordenadas indican una posición de búsqueda. Para cada posición de búsqueda, se puede calcular la diferencia media entre el valor de píxel de cada píxel de la plantilla de la trama actual y el valor de píxel de cada píxel de la trama de referencia. Esta diferencia media en valores de píxel para la entera plantilla se puede definir como el desplazamiento de plantillas. Para cada plantilla, un desplazamiento puede ser calculado mediante este técnica, una vez que se ha calculado el desplazamiento de la plantilla, las técnicas de esta divulgación pueden calcular la suma de las diferencias absolutas para el bloque destinatario tomando cada valor del píxel del bloque destinatario, restando el valor de píxel del correspondiente píxel del bloque de referencia y restando después el desplazamiento. Mediante el ajuste de la suma de la diferencia absoluta del bloque destinatario mediante el desplazamiento, puede ser más probable que la hipótesis seleccionada sea la mejor hipótesis, reduciendo con ello los residuales y mejorando la compresión del vídeo.
[0014] Otro aspecto de esta divulgación contempla una técnica para incorporar un residual luma a la predicción de puesta en correspondencia de plantillas aplicado a las tramas-P y a las tramas-B. En este caso, el bloque destinatario puede ser un bloque de vídeo luma y el bloque de vídeo luma se puede dividir en subbloques. Cuando un primer subbloque de un bloque luma no incorpora unos píxeles reconstruidos disponibles, la codificación de un segundo subbloque que se base en el primer subbloque puede o bien retrasarse hasta que la codificación del primer subbloque se haya completado, o bien la codificación del segundo subbloque se puede basar en el contenido del primer subbloque como ha sido generado mediante la combinación de la predicción de compensación del movimiento con el residual luma codificado. Mediante la combinación de la predicción de compensación del movimiento y del residual luma codificado, el contenido generado del primer subbloque puede ser más próximo a los datos originales y la predicción del movimiento de puesta en correspondencia de plantillas del segundo subbloque puede ser más precisa.
[0015] En un ejemplo, esta divulgación describe un procedimiento para codificar un bloque de video actual tal y como se define en la reivindicación 1.
[0016] En otro ejemplo, esta divulgación describe un dispositivo de codificación de video tal y como se define en la reivindicación 8.
[0017] Las técnicas descritas en la presente divulgación pueden ser implementadas en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, el software puede ser ejecutado en uno o más procesadores, como por ejemplo un microprocesador, un circuito integrado específico de la aplicación (ASIC), una matriz programable de puertas sobre el terreno (FPGA), o un procesador digital de la señal (DSP). El software que ejecuta las técnicas puede estar inicialmente almacenado en un medio legible por computadora y cargado y ejecutado en el procesador.
[0018] En consecuencia, esta divulgación también contempla un medio de almacenamiento legible por ordenador tal y como se define en la reivindicación 15.
[0019] Los detalles de una o más formas de realización de la invención se definen en los dibujos que se acompañan y en la descripción posterior. Otras características, objetos y ventajas de la invención se pondrán de manifiesto a partir de la descripción los dibujos y las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0020]
La FIG. 1 es un diagrama de bloques ejemplar que ilustra un sistema de codificación y descodificación de vídeo. La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo de acuerdo con la presente divulgación.
La FIG. 3 es un diagrama de bloques conceptual que ilustra una unidad de vídeo destinataria ejemplar y una unidad de vídeo de referencia de acuerdo con la presente divulgación.
La FIG. 4 es un diagrama de bloques conceptual que ilustra un ejemplo de una predicción del movimiento de puesta de correspondencia de plantillas en el que el contenido de un bloque de vídeo se determina de acuerdo con la presente divulgación.
La FIG. 5 es un diagrama de bloques que ilustra un ejemplo de un descodificador de vídeo de acuerdo con la presente divulgación.
5
10
15
20
25
30
35
40
45
50
55
60
65
Las FIGS.6A-6B son diagramas de flujo que ilustran un proceso ejemplar llevado a cabo por un codificador de vídeo de acuerdo con la presente divulgación.
Las FIGS. 7A-7B son diagramas de flujo que ilustran un proceso ejemplar llevado a cabo por un descodificador de vídeo de acuerdo con la presente divulgación.
DESCRIPCIÓN DETALLADA
[0021] La presente divulgación describe unas técnicas de codificación de vídeo aplicables a la codificación de predicción del movimiento de puesta en correspondencia de plantillas de unidades de vídeo. En la presente divulgación, el término “codificación” se refiere a la codificación o a la descodificación. De modo similar, el término “codificador” se refiere, en términos generales, a cualquier codificador de vídeo, descodificador de vídeo o codificador/descodificador combinados (códec). De acuerdo con ello, el término “codificador” se utiliza en la presente memoria para referirse a un dispositivo o aparato informático especializado que llevar a cabo una codificación de vídeo o una descodificación de vídeo o tanto una codificación como una descodificación de vídeo.
[0022] La puesta en correspondencia de plantillas es una técnica que puede ser utilizada para eliminar vectores de movimiento pero que al mismo tiempo proporciona las ventajas de la codificación de vídeo de compensación del movimiento. En la puesta en práctica de la correspondencia de plantillas, una plantilla define una forma de píxeles vecinos con respecto a un bloque de vídeo que está siendo codificado. La forma de plantilla se define con respecto al bloque de vídeo y puede lindar con o rodear el bloque de vídeo pero no se requiere que esté situado inmediatamente en posición adyacente al bloque de vídeo. La forma de plantilla puede ser aplicada a uno o más bloques de vídeo dentro de una unidad de vídeo de referencia. Una hipótesis se puede basar en los datos de vídeo predictivos contenidos dentro de una forma de plantilla, en base a un primer conjunto de datos de vídeo predictivos procedente de al menos una porción de una primera unidad de vídeo predictiva, o en base a un primer conjunto de datos de vídeo predictivo procedentes de al menos una porción de una primera unidad de vídeo predictiva y un segundo conjunto de datos de vídeo predictivo procedente de al menos una porción de una segunda unidad de vídeo predictiva. Las hipótesis que sean generadas y tomadas en consideración durante la predicción del movimiento de puesta en correspondencia de plantillas pueden ser designadas como hipótesis candidata. Pueden existir múltiples hipótesis candidatas para cada bloque de vídeo que está siendo codificado.
[0023] Las técnicas de la presente divulgación incluyen la aplicación de la puesta en correspondencia de plantillas a las tramas-B así como diversas técnicas que pueden ser aplicadas para mejorar la puesta en correspondencia de plantillas cuando se aplican a las tramas-B o a las tramas-P. En un aspecto de la presente divulgación, la selección y rechazo de hipótesis mejoradas se aplica a la predicción del movimiento de puesta en correspondencia de plantillas. En este contexto, se introduce un elemento sintáctico para señalar, al descodificador, el número de hipótesis utilizadas por un codificador al codificar o descodificar datos de vídeo que utilizan la predicción de puesta en correspondencia de plantillas. Al determinar qué hipótesis descartar, un codificador o descodificador compara la hipótesis candidata con una hipótesis de referencia. Si la diferencia entre la hipótesis candidata y la hipótesis de referencia es mayor que un umbral predefinido, la hipótesis candidata puede no ser tenida en cuenta.
[0024] En aspectos adicionales de la presente divulgación, se prevén técnicas para la ponderación de la suma de la diferencia absoluta, aplicando un desplazamiento de plantillas calculado, e incorporando un residual luma en la predicción de movimiento de puesta en correspondencia de plantillas. La relación espacial de la plantilla y de los bloques de vídeo puede ser tomada en consideración al llevar a cabo la predicción de puesta en correspondencia en plantillas mediante la ponderación de la suma de la diferencia absoluta, que puede traducirse en una puesta en correspondencia de plantillas más precisa. El desplazamiento de plantillas puede ser utilizado para predecir el desplazamiento entre el bloque de referencia y el bloque destinatario. Una vez que el desplazamiento de plantillas se ha calculado, las técnicas de la presente divulgación pueden calcular la suma de las diferencias absolutas para el bloque destinatario tomando cada valor de píxel del bloque destinatario, restando el valor de píxel del píxel correspondiente del bloque de referencia y restando también el desplazamiento. Mediante el ajuste de la suma de la diferencia absoluta del bloque destinatario mediante el desplazamiento, puede ser más probable que la hipótesis seleccionada sea la mejor hipótesis, reduciendo con ello los residuales y mejorando la compresión del vídeo. El contenido generado de un primer subbloque puede ser más próximo a los datos originales si el contenido se genera mediante la combinación de la predicción de compensación del movimiento y del residual luma codificado y la predicción del movimiento de puesta en correspondencia de plantillas de un segundo subbloque que se base en el primer subbloque puede ser más precisa. De esta manera, las técnicas de la presente divulgación pueden mejorar la predicción del movimiento de puesta en correspondencia de plantillas mediante la generación de un bloque de vídeo codificado que contenga menos valores residuales.
[0025] La FIG. 1 es un diagrama de bloques que ilustra un sistema 10 de codificación y descodificación de vídeo ejemplar que puede implementar técnicas de la presente divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo 12 de origen que transmite un vídeo codificado a un dispositivo 16 de destino por medio de un canal 15 de comunicación. El dispositivo 12 de origen y el dispositivo 16 de destino pueden comprender cualquier dispositivo entre una amplia variedad de dispositivos. En algunos casos, el dispositivo 12 de origen y el dispositivo 16 de destino comprenden dispositivos de comunicaciones inalámbricos, como por ejemplo teléfonos inalámbricos, los llamados radioteléfonos celulares o por satélite, o cualquier dispositivo que pueda comunicar información de
5
10
15
20
25
30
35
40
45
50
55
60
65
vídeo a través de un canal 15 de comunicación, que puede ser o no ser inalámbrico. Las técnicas de la presente divulgación, sin embargo, las cuales se refieren a las técnicas de predicción de la puesta en correspondencia de plantillas, no están necesariamente limitadas a aplicaciones o configuraciones inalámbricas.
[0026] En el ejemplo de la FIG. 1, el dispositivo 12 de origen puede incluir una fuente 20 de vídeo, un codificador 22 de vídeo, un modulador/desmodulador (módem) 23 y un transmisor 24. El dispositivo 16 de destino puede incluir un receptor 26, un módem 27, un descodificador 28 de vídeo y un dispositivo 30 de representación. De acuerdo con la presente divulgación, el codificador 22 de vídeo del dispositivo 12 de origen puede estar configurado para aplicar la predicción de puesta en correspondencia de plantillas a tramas-B así como a tramas-P. El codificador 22 de vídeo puede también estar configurado para aplicar los aspectos particulares de la predicción del movimiento de puesta en correspondencia de plantillas de la presente divulgación. Por ejemplo, el codificador 22 de vídeo puede estar configurado para identificar el número de hipótesis utilizadas al codificar datos de vídeo. El número de hipótesis puede ser señalado al codificador 28 de vídeo, utilizando un elemento sintáctico como parte de un flujo de bits codificado. El codificador 28 de vídeo puede estar configurado para interpretar y aplicar el elemento sintáctico que identifica el número de hipótesis que hay que utilizar al descodificar los datos de vídeo.
[0027] El sistema 10 ilustrado de la FIG. 1 es meramente ejemplar. Las técnicas de predicción de puesta en correspondencia de plantillas de la presente divulgación pueden ser llevadas a cabo mediante cualquier dispositivo de codificación que soporte la codificación de vídeo de compensación del movimiento utilizando la puesta en correspondencia de plantillas. El dispositivo 12 de origen y el dispositivo 16 de destino son simplemente ejemplos de dichos dispositivos de codificación en los cuales el dispositivo 12 de origen genera datos de vídeo codificados desde la transmisión hasta el dispositivo 16 de destino. En algunos casos, los dispositivos 12, 16 pueden operar de una manera sustancialmente simétrica de forma que, cada uno de los dispositivos 12, 16 incluya componentes de codificación y descodificación de vídeo. Por tanto, el sistema 10 puede soportar una transmisión de vídeo unidireccional o bidireccional entre los dispositivos 12, 16 de vídeo, por ejemplo, para la transmisión de flujos de vídeo, reproducción de vídeo, difusión de vídeo o telefonía de vídeo.
[0028] La fuente 20 de vídeo del dispositivo 12 de origen puede incluir un dispositivo de captación de vídeo, como por ejemplo una videocámara, un archivo de vídeo que contenga el vídeo anteriormente captado o una alimentación de vídeo procedente de un proveedor de contenidos de vídeo. Como una alternativa adicional, la fuente 20 de vídeo puede generar datos a base de gráficos informáticos como el vídeo de fuente, o una combinación de vídeo en vivo, vídeo archivado y vídeo generado por computadora. En algunos casos, si la fuente 20 de vídeo es una videocámara, el dispositivo 12 de origen y el dispositivo 16 de destino pueden formar unos llamados teléfonos con cámara o videoteléfonos. En cada caso, el vídeo captado, precaptado o generado por computadora puede ser codificado por el codificador 22 de vídeo. La información de vídeo codificada puede, a continuación, ser modulada por el módem 23 de acuerdo con un estándar de comunicación, por ejemplo, el acceso múltiple por división de código (CDMA) u otro estándar de comunicación, y transmitida al dispositivo 16 de destino por medio del transmisor 24. El módem 23 puede incluir varios mezcladores, filtros, amplificadores u otros componentes diseñados para la modulación de la señal. El transmisor 24 puede incluir circuitos diseñados para transmitir datos, incluyendo amplificadores, filtros y una o más antenas.
[0029] El receptor 26 del dispositivo 16 de destino recibe información a través del canal 15, y el módem 27 desmodula la información. De nuevo aquí, el proceso de codificación de vídeo puede implementar una o más de las técnicas descritas en la presente memoria. La información comunicada a través del canal 15 puede incluir la información definida por el codificador 22 de vídeo, la cual puede ser utilizada por el descodificador 28 de vídeo de acuerdo con la presente divulgación. El dispositivo 30 de pantalla presenta los datos de vídeo descodificados a un usuario, y puede comprender cualquier gama de dispositivos de pantalla, como por ejemplo un tubo de rayos catódicos, una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos fotoemisores orgánicos (OLED), o cualquier otro tipo de dispositivo de representación.
[0030] En el ejemplo de la FIG. 1, el canal 15 de comunicación puede comprender cualquier medio de comunicación inalámbrico o cableado, como por ejemplo un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas, o cualquier combinación de medios inalámbricos o cableados. De acuerdo con ello, el módem 23 y el transmisor 24 pueden soportar muchos posibles protocolos inalámbricos, protocolos cableados o protocolos cableados e inalámbricos. El canal 15 de comunicación puede formar parte de una red basada en paquetes, como por ejemplo una red de área local (LAN), una red de área extendida (WAN), o una red global, como por ejemplo Internet, comprendiendo una interconexión de una o más redes. El canal 15 de comunicación representa, en términos generales, cualquier medio de comunicación apropiado, o colección de diferentes medios de comunicación, para transmitir datos de vídeo desde el dispositivo 12 de origen hasta el dispositivo 16 de destino. El canal 15 de comunicación puede incluir encaminadores, conmutadores, estaciones de base o cualquier otro equipamiento que pueda ser de utilidad para facilitar la comunicación entre el dispositivo 12 de origen hasta el dispositivo 16 de destino.
[0031] El codificador 22 de vídeo y el descodificador 28 de vídeo pueden operar de acuerdo con un estándar de compresión de vídeo, como por ejemplo el estándar ITU-T H.264, descrito como alternativa como Codificación de Vídeo Avanzada (AVC), el MPEG-4, Parte 10. Las técnicas de la presente divulgación, sin embargo, no están
5
10
15
20
25
30
35
40
45
50
55
60
65
limitadas a ningún estándar de codificación concreto. Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador 22 de vídeo y el descodificador 28 de vídeo pueden estar cada uno integrados con un codificador y descodificador de audio, y pueden incluir unidades MUX-DE-MUX apropiadas, u otro hardware o software para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si son aplicables, las unidades MUX-DE-MUX pueden adaptarse al protocolo de multiplexación ITU H.223 o a otros protocolos como por ejemplo el protocolo de datagramas de usuario (UDP).
[0032] El estándar ITU-T H.264/MPEG-4 (AVC) fue formulado por el Grupo de Expertos de Codificación de Vídeo ITU-T (VCEG) junto con el Grupo de Expertos de Imágenes Móviles (MPEG) ISO/IEC como producto de una participación colectiva conocida como Equipo Mixto de Vídeo (JVT). En algunos aspectos, las técnicas descritas en la presente divulgación pueden ser aplicadas a dispositivos que en general se adaptan al estándar H.264, se describe la Recomendación H.264 ITU-T. La Codificación de Vídeo Avanzada para servicios audiovisuales genéricos, por el Grupo de Estudio ITU-T, y fechada en marzo de 2005, la cual será designada en la presente memoria como el estándar H.264 o la especificación H.264, o el estándar o especificación H.264/AVC. El Equipo Mixto de Vídeo (JVT) continúa trabajando sobre extensiones hasta H.264/MPEG-4 AVC.
[0033] El codificador 22 de vídeo y el codificador 28 de vídeo pueden cada uno ser implementados como uno o más microprocesadores, procesadores digitales de la señal (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables sobre el terreno (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de estos. Cada codificador 22 de vídeo y codificador 28 de vídeo puede ser incluido en uno o más codificadores o descodificadores, pudiendo cualquiera de ellos estar integrados como parte de un codificador / descodificador combinado (CODEC) en un dispositivo móvil respectivo, dispositivo de abonado, dispositivo de difusión, servidor, o similares.
[0034] Una secuencia de vídeo típicamente incluye una serie de tramas de vídeo. El codificador 22 de vídeo y el codificador 28 de vídeo puede operar sobre bloques de vídeo dentro de tramas de vídeo individuales con el fin de codificador y descodificar los datos de vídeo. Los bloques de vídeo pueden presentar tamaños fijos o variables, y pueden diferir en cuanto a su tamaño de acuerdo con un estándar de codificación específico. Cada trama de vídeo puede incluir una serie de rebanadas u otras unidades descodificables de manera independiente. Cada rebanada puede incluir una serie de macrobloques, los cuales pueden estar dispuestos en subbloques. A modo de ejemplo, el estándar ITU-T H.264 soporta una intrapredicción en bloques de diversos tamaños, como por ejemplo 16 por 16, 8 por 8, o 4 por 4 para componentes luma, y 8x8 para componentes croma, así como una interpredicción en diversos tamaños de bloque como por ejemplo 16 por 16, 16 por 8, 8 por 16, 8 por 8, 8 por 4, 4 por 8 y 4 por 4 para componentes luma y los correspondientes tamaños a escala para componentes croma. Los bloques de vídeo pueden comprender bloques de datos de píxeles o bloques de coeficientes de transformación, por ejemplo, después de un proceso de transformación, como por ejemplo una transformación cosenoidal discreta o un proceso de transformación conceptualmente similar. Algunas técnicas de la presente divulgación pueden ser concretamente aplicadas a bloques luma (u otros tipos de bloques) que sean divididos en subbloques.
[0035] Los bloques de vídeo de menor tamaño pueden proporcionar una mejor resolución, y pueden ser utilizados para emplazamientos de una trama de vídeo que incluyan altos niveles de detalle. En general, los macrobloques y los diversos subbloques pueden ser considerados como bloques de vídeo. Así mismo, una rebanada puede ser considerada como una serie de bloques de vídeo como por ejemplo macrobloques y/o subbloques. Cada rebanada puede ser una unidad descodificable de manera independiente de una trama de vídeo. Como alternativa, las propias tramas pueden ser unidades descodificables u otras porciones de una trama pueden ser definidas como unidades descodificables. El término “unidad codificada” se refiere a cualquier unidad descodificable de manera independiente de una trama de vídeo, como por ejemplo una rebanada entera, una rebanada de una trama, un grupo de imágenes (GOP), u otra unidad descodificable de manera independiente definida de acuerdo con las técnicas de codificación utilizadas.
[0036] Después de la intercodificación predictiva (la cual puede incluir las técnicas de puesta en correspondencia de plantillas de la presente divulgación) y después de cualquier transformación (como por ejemplo la transformación de números enteros 4x4 u 8x8 utilizada en el H.264/AVC o una transformación cosenoidal discreta o DCT), se puede llevar a cabo una cuantificación. La cuantificación se refiere en general a un proceso en el que los coeficientes son cuantificados para posiblemente reducir la cantidad de datos utilizados para representar los coeficientes. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. Por ejemplo, un valor de 16 bits puede ser redondeado a la baja hasta un valor de 15 bits durante la cuantificación. Después de la cuantificación, se puede llevar a cabo una codificación de entropía, por ejemplo, de acuerdo con una codificación de longitud variable de contenido adaptativo (CAVLC), una codificación aritmética binaria de contexto adaptativa (CABAC), u otra metodología de codificación de entropía.
[0037] Las técnicas de la presente divulgación son específicamente aplicables a la predicción de la puesta en correspondencia de plantillas. La predicción bidireccional es la predicción de los llamados “bloques de vídeo-B” en base a dos listas diferentes de datos. Los bloques de vídeo-B pueden ser previstos a partir de dos listas de datos procedentes de dos tramas anteriores, dos listas de datos procedentes de tramas posteriores, o una lista de datos procedente de una trama anterior y una procedente de una trama posterior. Por contra, los bloques de vídeo-P son
5
10
15
20
25
30
35
40
45
50
55
60
65
previstos en base a una lista, la cual puede corresponder a una trama predictiva, por ejemplo una trama anterior o una trama posterior. Las tramas-B, y las tramas-P pueden ser designadas en términos más generales como unidades-P y unidades-B. Las unidades-P y las unidades-B pueden también materializarse en unidades codificadas de menor tamaño, como por ejemplo rebanadas de tramas o porciones de tramas. Las unidades-P pueden incluir unidades de vídeo-B, bloques de vídeo-P o bloques de vídeo-I. Las unidades-P pueden incluir bloques de vídeo-P o bloques de vídeo-I. Las unidades-I pueden incluir sólo bloques de vídeo-I.
[0038] La puesta en correspondencia de plantillas es una técnica que puede ser utilizada para eliminar vectores de movimiento pero al mismo tiempo proporcionar las ventajas de la codificación de vídeo de compensación del movimiento. En la puesta en correspondencia de plantillas, una plantilla define una forma de píxeles vecinos con respecto a un bloque de vídeo que está siendo codificado. La forma de plantilla se define con respecto al bloque de vídeo. La forma de plantilla puede lindar con el bloque de vídeo o rodear el bloque de vídeo. Sin embargo, no se requiere que la plantilla esté situada inmediatamente en posición adyacente al bloque de vídeo. Esto es, uno o más píxeles del bloque de vídeo pueden existir entre el bloque más próximo de la forma de plantilla y el bloque de vídeo.
[0039] Una hipótesis, en un ejemplo, se puede basar en los datos de vídeo predictivos contenidos dentro de una forma de plantilla. La forma de plantilla puede ser aplicada a uno o más bloques de vídeo dentro de una unidad de vídeo de referencia. Una hipótesis se refiere a una forma de plantilla correspondiente de una unidad de vídeo de referencia, la cual se define con respecto a un bloque de los datos de vídeo predictivos dentro de la unidad de vídeo de referencia. Una hipótesis se puede basar en un primer conjunto de datos predictivos procedentes de al menos una porción de una primera unidad de vídeo predictiva. Una hipótesis se puede también basar en un primer conjunto de datos de vídeo predictivos procedente de al menos una porción de una unidad de vídeo predictiva y en base a un segundo conjunto de datos de vídeo predictivos procedente de al menos una porción de una segunda unidad de vídeo predictiva. Las hipótesis que son generadas y consideradas durante la predicción del movimiento de puesta en correspondencia de plantillas pueden ser designadas como hipótesis candidatas. Pueden existir múltiples hipótesis candidatas para cada bloque de vídeo que está siendo codificado.
[0040] Los datos definidos por la plantilla asociada con el bloque de vídeo que está siendo codificado (más que por el bloque de vídeo propiamente dicho que está siendo codificado) pueden ser comparados con los datos de una correspondiente plantilla dentro de una unidad de vídeo anterior o posterior. En base a la comparación, el algoritmo de predicción del movimiento de puesta en correspondencia de plantillas identifica la mejor hipótesis a partir del conjunto de hipótesis candidato. Se pueden considerar múltiples hipótesis en la unidad de vídeo de referencia durante el proceso de codificación para crear una probabilidad mayor de que se encuentre la hipótesis puesta en correspondencia más próxima en la unidad de vídeo de referencia. El bloque de vídeo correspondiente a la hipótesis puesta en correspondencia más próxima puede ser el bloque de vídeo más próximo al bloque de vídeo actual y, por tanto, el bloque de vídeo codificado resultante puede contener menos valores residuales. El bloque de vídeo actual es el bloque de vídeo que está siendo codificado y se puede designar como el bloque de vídeo destinatario. El codificador 22 de vídeo y el codificador 28 de vídeo pueden llevar a cabo el proceso de puesta en correspondencia de plantillas para identificar el movimiento sin el uso de vectores de movimiento. De esta manera, con la puesta en correspondencia de plantillas, los vectores de movimiento no son codificados en el flujo de bits. Por el contrario, los vectores de movimiento son esencialmente derivados del proceso de puesta en correspondencia de plantillas cuando la unidad de vídeo es codificada y descodificada.
[0041] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador 40 de vídeo que puede llevar a cabo tanto técnicas de predicción del movimiento de puesta en correspondencia de plantillas de acuerdo con la presente divulgación, como técnicas de predicción del movimiento basadas en vectores. El codificador 40 de vídeo es un ejemplo de un dispositivo o aparato informático de vídeo especializado designado en la presente memoria como “codificador”. El codificador 40 de vídeo puede corresponderse con el codificador 22 de vídeo del dispositivo 12 de origen, o con un codificador de vídeo de un dispositivo diferente. El codificador 40 de vídeo puede llevar a cabo intra e intercodificaciones de bloques dentro de las tramas de vídeo, aunque los componentes de intracodificación no se muestran en la FIG. 2 para facilitar la ilustración. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en vídeo dentro de una trama de vídeo determinada. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en vídeo dentro de tramas adyacentes de una secuencia de vídeo. Un intramodo (modo-I) puede referirse a un modo basado en compresión espacial, y los Intramodos-I como por ejemplo una predicción (modo-P) o uno bidireccional (modo-B) se pueden referir a los modos de compresión de base temporal. Las unidades codificadas que utilizan el modo-B son codificadas con referencia a dos tramas. En el H.264 y en otros estándares, la trama-B, u otra unidad, puede ser codificada con referencia a dos tramas temporalmente adyacentes. Por ejemplo, si la unidad actual que va a ser codificada se aloja dentro de una trama N, entonces las tramas N-1 y N-2 pueden ser utilizadas como tramas de referencia para codificar la unidad actual. En otro ejemplo, las tramas N+1 y N+2 pueden ser utilizadas como tramas de referencia para codificar la unidad actual. En algunos casos, al menos una trama temporalmente futura (por ejemplo, la trama N+1) y al menos una trama temporalmente anterior (por ejemplo la trama N-1) pueden ser utilizadas para codificar la unidad actual que se aloja en la trama N. Muchas veces, sólo una porción de las tramas anteriores o posteriores son de hecho tomadas en consideraciones o utilizadas en la codificación.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0042] Como se muestra en la FIG. 2, el codificador 40 de vídeo recibe un bloque de vídeo dentro de una unidad de vídeo destinada a ser codificada. En el ejemplo de la FIG. 2, el codificador 40 de vídeo incluye una unidad 42 de predicción de puesta en correspondencia de plantillas (“Unidad 42 de predicción de TM”) que comprende la unidad 43 de estimación del movimiento de puesta en correspondencia de plantillas (ME de TM) y la unidad 45 de compensación del movimiento de puesta en correspondencia de plantillas (MC de TM). El codificador de vídeo incluye, así mismo, una memoria 44, un sumador 46, una unidad 48 de transformación, una unidad 50 de cuantificación, y una unidad 52 de codificación de entropía. Para una reconstrucción de bloques de vídeo, el codificador 40 de vídeo incluye también una unidad 54 de cuantificación inversa, una unidad 56 de transformación inversa y un sumador 58. El codificador 40 de vídeo puede, así mismo, incluir un filtro desbloqueante (no mostrado) para filtrar las fronteras de los bloques para eliminar los artefactos de bloqueo del vídeo reconstruido. Si se desea el filtro desbloqueante típicamente filtraría la salida del sumador 58. Aunque no se muestra en la FIG. 2, el codificador 40 de vídeo puede también incluir una unidad de predicción para llevar a cabo técnicas de predicción del movimiento basadas en vectores. La unidad de predicción puede generar unos modos de predicción y unos vectores de movimiento, los cuales comprendan unos elementos sintácticos que puedan ser utilizados para identificar los bloques destinatarios utilizados para codificar el bloque de vídeo actual. La unidad de predicción puede incluir unidades de estimación del movimiento y de compensación del movimiento.
[0043] Durante el proceso de codificación, el codificador de vídeo recibe un bloque de vídeo destinado a ser codificado, y la unidad 43 de ME de TM y la unidad 45 de MC de TM llevan a cabo una codificación interpredictiva. La unidad 43 de ME de TM y la unidad 45 de MC de TM pueden estar muy integradas, pero se ilustran por separados con fines conceptuales. La estimación del movimiento se considera típicamente como el proceso de generar vectores de movimiento, los cuales estiman el movimiento del bloque de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento del bloque predictivo dentro de una trama predictiva (u otra unidad codificada) con respecto al bloque actual que está siendo codificado dentro de la trama actual (u otra unidad codificada). La compensación del movimiento se considera típicamente como el proceso de extracción o generación del bloque predictivo en base al vector de movimiento determinado por la estimación de movimiento. De nuevo aquí, la unidad 43 de la ME de TM y la unidad 45 de la MC de TM pueden estar funcionalmente integradas. Con fines demostrativos, las técnicas descritas en la presente divulgación se describen como llevadas a cabo por la unidad 42 de predicción de la TM.
[0044] En un ejemplo, la unidad 42 de predicción de la TM aplica la predicción del movimiento de puesta en correspondencia de plantillas para codificar el bloque de vídeo actual, por ejemplo, el bloque de vídeo destinatario. La unidad 42 de predicción de TM puede, por ejemplo, comparar los píxeles existentes dentro de una forma de plantilla definida con respecto al bloque destinatario que está siendo codificado con los datos correspondientes de una unidad de vídeo anterior y/o posterior. Al suministrar la predicción del movimiento de puesta en correspondencia de plantillas, la unidad 42 de predicción de TM puede seleccionar una unidad de vídeo anterior o una unidad de vídeo futura procedente de un primer conjunto de unidades de vídeo (el cual puede ser designado como lista 0) y determinar un conjunto de hipótesis que utilicen sólo esta unidad de vídeo anterior o futura procedente de la lista 0. Como alternativa la unidad 42 de predicción de TM puede seleccionar una unidad de vídeo anterior o futura procedente de un conjunto de unidades de vídeo (el cual puede ser designado como lista 1) y determinar un conjunto de hipótesis utilizando sólo esta unidad de vídeo anterior o futura procedente de la lista 1.
[0045] Para hacer posible la puesta en correspondencia de plantillas sobre las tramas-B, pueden ser utilizados dos conjuntos de hipótesis para la trama-B. Si sólo se utiliza un conjunto de hipótesis, el conjunto de hipótesis puede contener hipótesis encontradas tanto en la lista 0 como en la lista 1. Si se utilizan dos conjuntos de hipótesis, un conjunto de hipótesis puede contener las hipótesis encontradas en la lista 1 y otro conjunto de hipótesis puede contener las hipótesis encontradas en la lista 0. Así mismo, puede formarse un tercer conjunto de hipótesis a partir de la predicción del movimiento bidireccional, en la que los datos procedentes de la lista 0 y los datos procedentes de la lista 1 sean utilizados con fines de predicción, posiblemente de una forma ponderada para definir os datos del tercer conjunto de hipótesis. El conjunto de hipótesis para cualquier lista determinada puede incluir una hipótesis concreta que identifique un bloque de vídeo predictivo deseable que sea el más parecido al bloque de vídeo que está siendo codificado. Una métrica, como por ejemplo la suma de las diferencias absolutas (SAD) o la suma de la diferencia cuadrática (SSD), pueden ser utilizadas para encontrar la mejor hipótesis, la cual, a su vez, identifique el bloque de vídeo predictivo que debe ser utilizado para el codificado.
[0046] La unidad 42 de predicción de TM selecciona una o más hipótesis procedentes del conjunto generado de hipótesis durante el proceso de codificación. En un ejemplo, un elemento sintáctico es introducido con el fin de señalar el número de hipótesis utilizado en la predicción del movimiento de puesta en correspondencia de plantillas. En este ejemplo, dos números de hipótesis diferentes, por ejemplo, Ki y K2 pueden ser disponibles. Ki representa un primer número de hipótesis que puede ser utilizado al codificar y descodificar el bloque destinatario y K2 representa un segundo número, por ejemplo un número máximo de hipótesis que puede ser utilizado al codificar y descodificar el bloque destinatario. Por ejemplo, K puede ser cuatro y K2 puede ser ocho. Para determinar el número de hipótesis que hay que utilizar para codificar el bloque destinatario, la unidad 42 de predicción de TM puede generar un primer conjunto de datos de vídeo predictivos en base a las hipótesis Ki y un segundo conjunto de datos de vídeo predictivos en base a las hipótesis K2. La unidad 42 de predicción de TM puede generar el primer conjunto de datos de vídeo predictivos mediante la identificación de un subconjunto de hipótesis que contenga el número Ki de las
5
10
15
20
25
30
35
40
45
50
55
60
mejores hipótesis procedentes del conjunto de todas las hipótesis posibles. Las mejores hipótesis dentro de un subconjunto determinado pueden ser las hipótesis que se correspondan con más exactitud a los datos existentes dentro de la forma de plantilla definida con respecto al bloque de vídeo destinatario que está siendo codificado. La suma de la diferencia absoluta (SAD) o la suma de la diferencia cuadrática (SSD) por ejemplo, pueden ser aplicadas para determinar las mejores hipótesis para definir un subconjunto determinado. La unidad 42 de predicción de TM puede identificar los bloques de vídeo de referencia correspondientes a cada una de las hipótesis del subconjunto de hipótesis y hacer la media de los valores de píxeles para cada píxel que presente el mismo emplazamiento relativo dentro de los bloques de vídeo de referencia identificados. La unidad 42 de predicción de TM puede generar un segundo conjunto de datos de vídeo predictivos en base a las hipótesis K2 sustancialmente de la misma manera. Aunque en este ejemplo, el valor de píxel medio para cada píxel de los bloques de referencia se calcula para generar los conjuntos de datos predictivos asociados con las hipótesis Ki y/o K2, pueden ser utilizados otros cálculos y métricas matemáticas para combinar los diferentes conjuntos de datos predictivos asociados con las hipótesis Ki y/o K2.
[0047] Después de que la unidad 42 de predicción de TM genera al menos uno de los primero y segundo conjuntos de datos de vídeo predictivos, la unidad 42 de predicción de TM puede aplicar un multiplicador de Lagrange para determinar el coste de la codificación del bloque destinatario al utilizar los primero y segundo conjuntos de datos de vídeo predictivos. Para determinar el coste, la unidad 42 de predicción de TM, utiliza una función del coste que se define como C = D+lR, en la que C es el coste, D es la distorsión, l es el multiplicador de Lagrange, y R es la tasa de codificación. La unidad 42 de predicción de TM selecciona el número de hipótesis que producirá en último término el coste de la tasa de distorsión más baja y puede identificar el número de hipótesis que fue utilizado por la unidad 42 de predicción de TM al codificar la trama destinataria a través del nuevo elemento sintáctico. Cuando se toman en consideración demasiadas hipótesis, la eficiencia de la codificación de la puesta en correspondencia de plantillas puede resentirse. Mediante la incorporación de un elemento sintáctico para señalar el número de hipótesis, lo que produce el coste menor al codificar un bloque destinatario, se puede tomar en consideración un número más conveniente de hipótesis durante la codificación y la descodificación, mejorando de esta manera la eficiencia de la codificación global de la puesta en correspondencia de plantillas.
[0048] En un aspecto de la presente divulgación, la unidad 42 de predicción de TM puede también rechazar las hipótesis que utilizan una técnica de rechazo de hipótesis de mejora. En esta técnica, cada hipótesis objeto de consideración es comparada con una hipótesis de referencia. La hipótesis de referencia puede ser generada promediando los valores de píxeles de todas las hipótesis o de un subconjunto de las mejoras hipótesis sometidas a consideración. Si la diferencia entre las hipótesis sometidas a consideración y las hipótesis de referencia es mayor que un umbral, entonces la hipótesis sometida a consideración puede ser eliminada de la consideración. La diferencia puede ser calculada en base a la suma ponderada de las diferencias absolutas (WSAD), descritas más adelante, o en base a la SAD de los píxeles de la hipótesis sometida a consideración y la hipótesis de referencia, por ejemplo. Las hipótesis pueden ser rechazadas o seleccionadas sin señalar a un descodificador cuáles fueron las hipótesis rechazadas o seleccionadas.
[0049] De acuerdo con otro aspecto de la presente divulgación, la SAD puede ser ponderada para mejorar la selección de hipótesis. La SAD es la suma del valor absoluto de la diferencia entre el valor de píxel de cada píxel del bloque actual y del correspondiente píxel del bloque de referencia. La plantilla del bloque actual y la plantilla del bloque de referencia pueden ser divididas en K partes. Como se muestra en la FIG. 3, la unidad 62 de vídeo destinataria incluye un bloque 64 destinatario y una plantilla 66 de bloque destinatario y una unidad 68 de vídeo de referencia incluye un bloque 70 de referencia y la plantilla 72 del bloque de referencia. En este ejemplo, la plantilla 66 del bloque destinatario y la plantilla 72 del bloque de referencia están cada una divididas en cuatro particiones de plantilla. La ponderación otorgada a cada partición de plantilla concreta de la plantilla 66 de bloque destinatario o de la plantilla 72 de bloque de referencia puede disminuir cuando la distancia entre cada partición de plantilla y el bloque 64 destinatario o el bloque 70 de referencia aumenta. La suma ponderada de las referencias absolutas (WSAD) se puede definir como:
^Z)=ELEw**i7'«-7’«
nk
donde wk es el valor ponderado de la partición de plantilla k“ima, Tpk es la partición de plantilla Késima asociada con el bloque de referencia, Tsk es la partición de plantilla késima asociada con el bloque destinatario, nk es el número de píxeles de la partición k de plantilla y K es el número de particiones en la que está dividida cada plantilla asociada con el bloque destinatario y la plantilla asociada con el bloque de referencia.
[0050] La unidad 42 de predicción de TM puede, así mismo, aplicar un desplazamiento calculado de plantilla para predecir el desplazamiento entre el bloque de referencia y el bloque destinatario para mejorar la calidad de la codificación de vídeo. Al efectuar la búsqueda de la mejor hipótesis de puesta en correspondencia definida por la forma de plantilla, la unidad 42 de predicción de TM puede calcular la diferencia media entre el valor de píxel de
5
10
15
20
25
30
35
40
45
50
55
60
cada píxel dentro de la plantilla definida con respecto al bloque destinatario y el valor de píxel de la hipótesis candidato utilizando la siguiente fórmula:
imagen1
donde Tbk es un valor de píxel de un píxel de la hipótesis candidata, Tpk es un valor de píxel de un píxel en la plantilla definida con respecto al bloque destinatario, K es el número de píxeles de la plantilla definida con respecto al bloque destinatario y offset es la diferencia media en el valor de píxel entre los píxeles de la hipótesis candidata y la plantilla definida con respecto al bloque destinatario. Esta diferencia media en valores de píxel es conocida como desplazamiento de plantilla. Para cada hipótesis candidata del conjunto de hipótesis potenciales, la unidad 42 de predicción de TM puede calcular un desplazamiento de este tipo.
[0051] Una vez que el desplazamiento de plantilla es calculado para una hipótesis candidata concreta, la unidad 42 de predicción de TM puede calcular la suma de las diferencias absolutas respecto de la hipótesis candidata tomando cada valor de píxel de la hipótesis candidata, restando el valor de píxel del píxel correspondiente de la plantilla de referencia y después restando el desplazamiento. La suma de las diferencias absolutas de la hipótesis candidata se define como:
s'4Z3=LJr«+offset-7’»* i
donde Tsk es un valor de píxel de un pixel en la hipótesis candidata, Tpk es un valor de píxel de un pixel en la plantilla definida con respecto al bloque destinario, K es el número de píxeles en la hipótesis candidato y offset es la diferencia media en el valor de píxel entre los píxeles en la hipótesis candidata y los píxeles de la plantilla definida con respecto al bloque destinatario. El desplazamiento de plantilla obtenido se supone que es el desplazamiento objeto de consideración, la predicción de compensación del movimiento del bloque destinatario puede ser representada como:
B’ = P + offset
donde B' es la predicción de compensación del movimiento del bloque destinatario, P es el valor de píxel de un píxel del bloque de referencia, y offset es el desplazamiento medio de la plantilla según se ha calculado con anterioridad. Mediante el ajuste de la suma de la diferencia absoluta del bloque destinatario por el desplazamiento de plantilla, es probable que las hipótesis seleccionadas sean de hecho las mejores hipótesis, reduciendo con ello las residuales y disminuyendo la cantidad de información que debe ser almacenada.
[0052] En la FIG. 4, la plantilla 74 se define con respecto a un subbloque 76 destinatario y se superpone a una porción del subbloque 78 donde el subbloque 76 y el subbloque 78 son particiones del mismo bloque de vídeo. Si el subbloque 78 no presenta píxeles reconstruidos disponibles el contenido del subbloque 78 se puede determinar mediante el resultado de la predicción de compensación del movimiento, por ejemplo. Si el contenido del subbloque 78 se determina mediante la utilización del resultado de la predicción de compensación del movimiento, la precisión de la predicción del movimiento del subbloque 76 se puede resentir debido a que el resultado de la predicción de compensación del movimiento del subbloque 78 puede diferir significativamente de los datos originales. Para mejorar la precisión de la predicción del movimiento del subbloque 76 destinatario cuando el subbloque 78 no incorpora píxeles reconstruidos disponibles, una unidad 42 de predicción puede esperar hasta que el subbloque 78 haya sido codificado antes de la codificación del subbloque 76 destinatario. Mediante la espera hasta que el subbloque 78 haya sido codificado, el contenido del subbloque 78 está más próximo a los datos originales y la predicción del movimiento de puesta en correspondencia de plantillas del subbloque 76 destinatario puede ser más precisa.
[0053] En un ejemplo, el subbloque 76 y el subbloque 78 son subbloques de un bloque de vídeo luma. En general, un bloque de vídeo luma es un bloque de 16 por 16 valores luma para píxeles dentro del bloque de vídeo. Un bloque de vídeo luma puede ser divido en múltiples subbloques de 8 por 8, 8 por 4, o 4 por 4 subbloques de píxel, por ejemplo. Para determinar el contenido del subbloque 78, la unidad 42 de predicción de TM, en primer término, calcula la predicción de compensación del movimiento y el residual luma para el subbloque 78. La predicción de compensación del movimiento incluye los valores de píxel del correspondiente subbloque en la unidad de vídeo de referencia. El residual luma es la diferencia en valores luma del subbloque 78 y del correspondiente subbloque en la unidad de vídeo de referencia. La unidad 42 de predicción de TM combina entonces la predicción de compensación del movimiento y el residual luma codificado en resultados de luma codificado para determinar el contenido del subbloque 78. Una vez que la unidad 42 de predicción de TM ha determinado el contenido del subbloque 78, los valores de píxel están disponibles para la plantilla 74 y la unidad 42 de predicción de TM puede proceder con la ejecución de la predicción del movimiento de puesta en correspondencia de plantillas respecto del subbloque 76.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0054] La FIG. 5 es un diagrama de bloques que ilustra un ejemplo de un descodificador 80 de vídeo, el cual lleva a cabo las técnicas de descodificación recíprocas a las técnicas de codificación descritas en las líneas anteriores, como por ejemplo la aplicación de predicción del movimiento de puesta en correspondencia de plantillas a las tramas-P y a la tramas-B, la aplicación de un número de hipótesis definido por un elemento sintáctico, el cálculo y la aplicación de una WSAD, y/o el cálculo y la aplicación de un desplazamiento de plantilla. El descodificador 80 de vídeo puede incluir una unidad 82 de descodificación de entropía, una unidad 84 de predicción de puesta en correspondencia de plantillas (TM), una unidad 86 de cuantificación inversa, una unidad 88 de transformación inversa, una memoria 90 y un sumador 92. La unidad 84 de predicción puede incluir una unidad 85 de estimación de movimiento de puesta en correspondencia de plantillas (ME de TM), una unidad 87 de compensación de movimiento de puesta en correspondencia de plantillas (MC de TM), así como unos componentes de predicción espaciales, los cuales no se muestran para simplificar y facilitar la ilustración.
[0055] En general, la unidad 82 de descodificación de entropía recibe un flujo de bits codificado y descodifica el flujo de bits para generar unos coeficientes cuantificados y otros elementos sintácticos. La unidad 84 de predicción puede llevar a cabo una predicción del movimiento de puesta en correspondencia de plantillas de acuerdo con la presente divulgación. Los elementos sintácticos pueden incluir una información que especifique el número de hipótesis consideradas por un codificador de vídeo al codificar la unidad de vídeo codificada. La unidad 84 de predicción de TM puede considerar el número codificado de hipótesis al descodificar la unidad de vídeo mediante la limitación del número de hipótesis utilizado durante el proceso de descodificación al número de hipótesis identificado por el elemento sintáctico. Al descodificar una unidad de vídeo codificada utilizando la pluralidad de hipótesis identificada por el elemento sintáctico, la unidad 84 de predicción de TM puede generar un conjunto de datos de vídeo predictivos mediante la identificación de un subconjunto de hipótesis que contiene la pluralidad de mejores hipótesis identificada por el elemento sintáctico procedente del conjunto de todas las hipótesis posibles. Las mejores hipótesis incluidas en un conjunto determinado pueden ser las hipótesis que más estrechamente se correspondan con los datos de vídeo incluidos en la forma de plantilla definida con respecto al bloque destinatario que está siendo codificado. La SAD o SSD, por ejemplo, pueden ser aplicadas para determinar las mejores hipótesis para definir un subconjunto determinado. La unidad 84 de predicción de TM puede identificar los bloques de vídeo de referencia correspondientes a cada una de las hipótesis del subconjunto de hipótesis y hacer la media de los valores de píxel para cada pixel que presente el mismo emplazamiento relativo dentro de los bloques de vídeo de referencia identificados. Aunque, en el presente ejemplo, el valor de píxel medio para cada píxel de los bloques de referencia se calcula para generar un conjunto de datos de vídeo predictivos asociados con el número de hipótesis identificado por el elemento sintáctico, se pueden utilizar otros cálculos o métricas matemáticas. En general, el mismo cálculo matemático utilizado por el codificador es también utilizado por el descodificador. De esta manera, la unidad 84 de predicción de TM genera un conjunto de datos de vídeo predictivos para la descodificación del bloque de vídeo codificado.
[0056] Los coeficientes cuantificados son enviados desde la unidad 82 de descodificación de entropía hasta la unidad 86 de cuantificación inversa, la cual lleva a cabo la cuantificación inversa. La unidad 88 de transformación inversa transforma a la inversa los coeficientes descuantificados hasta el dominio de píxeles para generar un bloque residual. El sumador 92 combina el conjunto de datos predictivos generado por la unidad 84 de predicción de TM con el bloque residual a partir de la unidad 88 de transformación inversa para crear un bloque de vídeo reconstruido, el cual puede ser almacenado en la memoria 90 y/o emitido desde el descodificador 80 de vídeo como salida de vídeo descodificada.
[0057] Las FIGS. 6A-6B son diagramas de flujo que ilustran un proceso ejemplar llevado a cabo por un codificador de vídeo de acuerdo con la presente divulgación. Las FIGS. 6A-6B se describirán desde la perspectiva del codificador de vídeo de la FIG. 2. Como se muestra en la FIG. 6A, la unidad 42 de predicción de TM genera unas listas (100) de referencia. Las listas de referencia pueden incluir información de vídeo procedente de una o más unidades de vídeo de referencia. Las unidades de vídeo de referencia pueden producirse con anterioridad en el tiempo o más tarde en el tiempo con respecto a una unidad de vídeo que incluya el bloque de vídeo destinatario. La unidad 42 de predicción selecciona, a continuación, un bloque (102) de vídeo destinatario y define una forma de plantilla con respecto al bloque destinatario. Si el bloque destinatario es un subbloque de un bloque luma y alguna porción de la forma de plantilla no presenta píxeles reconstruidos disponibles (NO en la etapa 104), la unidad 42 de predicción de TM genera el contenido de la participación de subbloques asociado con la porción de la forma de plantilla que no incorpora píxeles reconstruidos disponibles (106). En concreto, el contenido de la participación en subbloques puede ser generado mediante la combinación del residual luma con la predicción de compensación del movimiento de la partición de subbloques. Una vez que el contenido de la partición de subbloques se ha generado (106) o si los píxeles reconstruidos se encuentran disponibles respecto de la entera plantilla asociada con el bloque destinatario (SI en la etapa 104), entonces la unidad 42 de predicción de TM genera un o más conjuntos de hipótesis en base a las listas de referencia y a la plantilla asociada con el bloque destinatario (108).
[0058] Para cada hipótesis del conjunto de hipótesis, la unidad 42 de predicción de TM calcula el desplazamiento de plantilla (110) mediante el cálculo de la diferencia media entre cada valor de píxel de la forma de plantilla definida con respecto al bloque destinatario y el valor de píxel de cada píxel de una hipótesis candidata procedente del conjunto de hipótesis. La unidad 42 de predicción de TM puede, a continuación, calcular la suma ponderada de las diferencias absolutas para cada hipótesis (112). En un ejemplo, la unidad 42 de predicción de TM calcula la WSAD
5
10
15
20
25
30
35
40
45
50
55
60
65
utilizando los valores de píxel calculados en base al desplazamiento de plantilla mediante la multiplicación de los valores de píxel calculados por un factor de ponderación, de manera que el factor de ponderación se reduzca a medida que la distancia entre el bloque de vídeo y la partición de plantilla aumente. En otro ejemplo, la unidad 42 de predicción de TM calcula la WSAD mediante la multiplicación de los valores de píxel calculados mediante un valor de ponderación, de manera que, el factor de ponderación disminuya a medida que la distancia entre el bloque de vídeo y la partición de plantilla aumente, pero sin ajustar los valores de píxel basados en el desplazamiento de plantilla. La unidad 42 de predicción de TM puede calcular la WSAD mejor que la WSAD mediante la eliminación del factor de ponderación. En el cálculo de la WSAD o de la SAD, la unidad 42 de predicción de TM puede incorporar el desplazamiento de plantilla calculado. Una vez que el desplazamiento de plantilla y o bien la WSAD o la SAD son calculadas, la unidad 42 de predicción de TM puede generar una hipótesis de referencia (114), en un ejemplo, mediante la promediación de todas las hipótesis sometidas a consideración o, en otro ejemplo, mediante la promediación de un subconjunto de las mejoras hipótesis sometidas a consideración.
[0059] Con respecto a la FIG. 6B, la unidad 42 de predicción de TM puede, a continuación, seleccionar una de las hipótesis disponibles para ser objeto de consideración (116) y calcular la diferencia entre la hipótesis que está siendo considerada, HK, y la hipótesis de referencia, HR y comparar la diferencia de valor con un valor de umbral T (118). Este valor de diferencia entre la hipótesis que está siendo considerada, HK, y la hipótesis de referencia, HR, puede comprender la suma de la diferencia absoluta entre cada píxel de la hipótesis que está siendo considerada, Hk, y la hipótesis de referencia, Hr. Si esta diferencia (esto es, si la SAD de los píxeles de la hipótesis objeto de consideración y la hipótesis de referencia) es mayor que un umbral T (sí de la etapa 118), entonces esa hipótesis puede ser eliminada de la consideración (120). Sin embargo, si la diferencia entre los píxeles de Hk y los píxeles de Hr son inferiores a T (NO en la etapa 118) o después de que Hk es eliminada de la consideración (120), la unidad de predicción de TM determina si hay hipótesis que restan en el conjunto de hipótesis objeto de consideración (122). Si hay hipótesis que restan, la unidad 42 de predicción de TM selecciona una nueva hipótesis de consideración (116), y determina si la diferencia de valor entre la hipótesis que está siendo considerada y la hipótesis de referencia anteriormente generada es mayor que el valor de umbral (118). Una vez que no hay más hipótesis disponibles para ser consideradas que no hayan sido ya consideradas, (NO en la etapa 122), la unidad 42 de predicción de TM selecciona el número de hipótesis (124) mediante el cálculo del coste asociado con la codificación del bloque de vídeo destinatario cuando un primer número de hipótesis y el coste asociado con la codificación del bloque de vídeo destinatario cuando el segundo número de hipótesis procedente del conjunto de hipótesis son utilizados en la codificación.
[0060] Para seleccionar el número de hipótesis que hay que utilizar para la codificación del bloque destinatario (124) la unidad 42 de predicción de TM puede generar un primer conjunto de datos de vídeo predictivos en base a un primer número de hipótesis y un segundo conjunto de datos de vídeo predictivos en base a un segundo número de hipótesis. La unidad 42 de predicción de TM puede generar el primer conjunto de datos de vídeo predictivos mediante la identificación de un subconjunto de hipótesis que contenga el primer número de mejores hipótesis procedentes del conjunto de todas las posibles hipótesis. La unidad 42 de predicción de TM puede, a continuación, identificar los bloques de vídeo de referencia correspondientes a cada una de las hipótesis del subconjunto de hipótesis y hacer la media de los valores de píxel para cada píxel que presente el mismo emplazamiento relativo en los bloques de vídeo de referencia identificados. La unidad 42 de predicción de TM puede generar un segundo conjunto de datos de vídeo predictivos en base al segundo número de hipótesis sustancialmente de la misma manera. Después de que la unidad 42 de predicción de TM genera en los primero y segundo conjuntos de datos de vídeo predictivos, la unidad 42 de predicción de TM determina el coste de la tasa de distorsión para la codificación del bloque destinatario al utilizar los primero o segundo conjuntos de datos de vídeo predictivos. La unidad 42 de predicción de TM selecciona el número de hipótesis que en último término producirán el coste de la tasa de distorsión más baja.
[0061] La unidad 42 de predicción de TM genera, a continuación, el elemento sintáctico para el número de hipótesis seleccionado (126). El elemento sintáctico señala al descodificador si el primer número o el segundo número de las hipótesis seleccionadas fueron utilizados al codificar el bloque destinatario (126). El codificador 40 de vídeo puede, a continuación, codificar el bloque de vídeo (128) en base a un conjunto de datos de vídeo predictivos. En un ejemplo, el codificador 40 de vídeo codifica el bloque de vídeo en base al conjunto de datos de vídeo predictivo asociado con el número de hipótesis que presenta el coste más bajo. En otro ejemplo, la unidad 42 de predicción selecciona la mejor hipótesis y el codificador 40 de vídeo codifica el bloque de vídeo en base a los datos de vídeo predictivos contenidos dentro del bloque de vídeo de referencia asociado con la mejor hipótesis. En otro ejemplo, la unidad 42 de predicción de TM puede generar datos de vídeo predictivos en base a todos los bloques de vídeo de referencia asociados con todas las hipótesis restantes disponibles susceptibles de consideración, y el codificador 40 de vídeo codifica el bloque de vídeo en base a estos datos de vídeo predictivos.
[0062] Las FIGS. 7A-7B son diagramas de flujo que ilustran un proceso ejemplar llevado a cabo por un codificador de vídeo de acuerdo con la presente divulgación. Las FIGS. 7A-7B se describirán desde la perspectiva del descodificador 80 de vídeo de la FIG. 5. Como se muestra en la FIG. 7A, el descodificador 80 de vídeo recibe los datos de vídeo codificados (132), y recibe uno o más elementos sintácticos que identifican el número de hipótesis utilizado por el codificador de vídeo al codificar los datos de vídeo codificados. La unidad 84 de predicción de TM selecciona un bloque de vídeo destinatario, identifica la plantilla asociada con el bloque destinatario, y genera las
5
10
15
20
25
30
35
40
45
50
55
60
65
listas de referencia (134). Las listas de referencia incluyen la información de vídeo procedente de una o más unidades de vídeo de referencia. Las unidades de vídeo de referencia, pueden encontrarse con carácter previo o con posterioridad respecto de una unidad de vídeo que incluya el bloque de vídeo destinatario. Si porciones de la forma de plantilla definida con respecto al bloque destinatario no han reconstruido píxeles disponibles (NO en la etapa 136) y el bloque destinatario es un subbloque de un bloque luma, la unidad 84 de predicción de TM puede generar el contenido de la participación en subbloques asociado con la porción de la forma de plantilla que no presente píxeles reconstruidos disponibles (138). En particular, el contenido de la partición en subbloques puede ser generado mediante la combinación del residual luma con la predicción de compensación del movimiento. Una vez que el contenido de la partición de subbloques es generado (138) o si los píxeles reconstruidos están disponibles para la entera forma de plantilla definida con respecto al bloque destinatario (SI en la etapa 136), la unidad 42 de predicción de TM genera uno o más conjuntos de hipótesis en base a las listas de referencia y a la plantilla asociada con el bloque destinatario (140).
[0063] Para cada hipótesis del conjunto de hipótesis, la unidad 84 de predicción de TM puede calcular un desplazamiento de plantilla (142) mediante el cálculo de la diferencia media entre los valores de píxel de cada píxel de la forma de plantilla definida con respecto al bloque destinatario y el valor de píxel de cada píxel correspondiente de una hipótesis candidato del conjunto de hipótesis. La unidad 84 de predicción de TM puede calcular la suma ponderada de las diferencias absolutas para cada hipótesis (144). En un ejemplo, la unidad 84 de predicción de TM calcula la WSAD utilizando los valores de píxel calculados en base al desplazamiento de plantilla mediante la multiplicación de los valores de píxel calculados por un factor de ponderación, de manera que el factor de ponderación disminuya a medida que la distancia entre el vídeo y la partición de plantilla aumente. En otro ejemplo, la unidad 84 de predicción de TM calcula la WSAD mediante la multiplicación de los valores de píxel calculados por un factor de ponderación, de manera que el factor de ponderación disminuya a medida que la distancia entre el bloque de vídeo y la partición de plantilla aumente, pero sin ajustar los valores de píxel en base al desplazamiento de plantilla. La unidad 84 de predicción de TM puede calcular la SAD mejor que la WSAD mediante la eliminación del factor de ponderación. En el cálculo de la SAD, la unidad 84 de predicción de TM puede incorporar el desplazamiento de plantilla calculado.
[0064] Con respecto a la FIG. 7B, la unidad 84 de predicción de TM puede calcular una hipótesis de referencia (146), en un ejemplo, promediando todas las hipótesis sometidas a consideración o, en otro ejemplo, un conjunto de las mejores hipótesis objeto de consideración. La unidad 84 de predicción de TM puede, a continuación, seleccionar una de las hipótesis disponibles para su consideración (148) y calcular la diferencia entre la hipótesis que está siendo considerada, HK, y la hipótesis de referencia, HR, y comparar la diferencia de valor con un valor de umbral, T (150). Este valor de diferencia entre la hipótesis que está siendo considerada, HK, y la hipótesis de referencia, HR, puede comprender la suma de la diferencia absoluta entre cada píxel de la hipótesis que está siendo considerada, Hk, y la hipótesis de referencia, Hr. Si esta diferencia (esto es, si la SAD de los píxeles de la hipótesis sometida a consideración y la hipótesis de referencia) es mayor que un umbral T (SI en la etapa 150), entonces esa hipótesis puede ser eliminada de la consideración. Si la diferencia de valor es inferior a T (NO en la etapa 150) o después de que Hk sea eliminada de la consideración (152), la unidad 84 de predicción de TM determina si hay cualquier hipótesis restante en el conjunto de hipótesis sometido a consideración (154). Si hay hipótesis que restan, la unidad de predicción selecciona una nueva hipótesis de consideración (148), y determina si la diferencia de valor entre la hipótesis que está siendo considerada y la hipótesis de referencia anteriormente generada es mayor que un valor de umbral (150). Una vez que no hay más hipótesis disponibles como consideración que no hayan sido ya consideradas, (NO en la etapa 154), la unidad 84 de predicción de TM puede descodificar un elemento sintáctico que identifique el número de hipótesis consideradas al codificar el bloque destinatario y aplicar el número de hipótesis (156).
[0065] Para aplicar el número de hipótesis (156), la unidad 84 de predicción de TM genera un conjunto de datos de vídeo predictivos mediante la identificación de un subconjunto de hipótesis que contiene el número de mejores hipótesis identificados por el elemento sintáctico procedente del conjunto de todas las hipótesis posibles. La unidad 84 de predicción de TM puede entonces identificar los bloques de vídeo de referencia correspondientes a cada una de las hipótesis del subconjunto de hipótesis y hacer la media de los valores de píxel para cada píxel que presente el mismo emplazamiento relativo en los bloques de vídeo de referencia identificados. El descodificador 80 de vídeo puede entonces descodificar el vídeo en base a los datos de vídeo predictivos (158). En un ejemplo, un descodificador 80 de vídeo descodifica el bloque de vídeo en base al conjunto de datos de vídeo predictivos asociado con el número de hipótesis que presente el coste más bajo. En otro ejemplo, la unidad 84 de predicción de TM selecciona la mejor hipótesis y el descodificador 80 de vídeo descodifica el bloque de vídeo en base a los datos de vídeo predictivos contenidos dentro del bloque de vídeo de referencia asociado con la mejor hipótesis. En otro ejemplo, la unidad 84 de predicción de TM puede generar datos de vídeo predictivos en base a todos los bloques de video de referencia asociados con todas las hipótesis restantes disponibles de consideración y el descodificador 80 de vídeo codifica el bloque de vídeo en base a estos datos de vídeo predictivos.
[0066] Un codificador de vídeo que opere de acuerdo con la presente divulgación puede omitir una o más etapas de los procedimientos ejemplares mostrados en las FIGS. 6A-6B y 7A-7B. Por ejemplo, un codificador de vídeo puede no calcular un desplazamiento de plantilla, calcular una suma ponderada de las diferencias absolutas, generar una hipótesis de referencia o utilizar una sintaxis que especifique un número de hipótesis. En general, un
5
10
15
20
25
30
35
40
45
codificador de vídeo llevará a cabo las técnicas de predicción del movimiento de puesta en correspondencia de plantillas descritas en la presente divulgación seleccionando al menos un bloque destinatario, generando un conjunto de hipótesis y codificando una unidad de vídeo en base al conjunto de hipótesis.
[0067] Las técnicas de la presente divulgación pueden ser implementadas en una amplia variedad de dispositivos o aparatos, incluyendo un aparato telefónico inalámbrico y un circuito integrado (CI) o un conjunto de CIs (esto es, un conjunto de chips). Cualquier componente, módulo o unidad se ha descrito para subrayar los aspectos funcionales y no requiere necesariamente la puesta en práctica por parte de unidades de hardware diferentes. Las técnicas descritas en la presente memoria pueden, así mismo, ser implementadas en hardware, software, firmware o cualquier combinación de estos. Cualquier característica descrita como módulo, unidad o componente puede ser implementada de manera conjunta en un dispositivo lógico integrado o por separado como dispositivo lógico discreto pero interoperable. En algunos casos, diversas características pueden ser implementadas como un dispositivo de circuito integrado, como por ejemplo un chip de circuito integrado o un conjunto de chips.
[0068] Si se implementan en software, las técnicas pueden llevarse a cabo, al menos en parte, por un medio legible por computadora que comprenda unas instrucciones que, una vez ejecutadas en un procesador, lleven a cabo uno o más de los procedimientos descritos con anterioridad. El medio legible por computadora puede comprender un medio de almacenamiento legible por computadora y puede formar parte de un producto de programa informático, el cual puede incluir materiales en paquetes. El medio legible de almacenamiento por computadora puede comprender una memoria de acceso aleatorio (RAM) como por ejemplo de una memoria de acceso aleatorio dinámica síncrona (SDRAM), una memoria de sólo lectura (ROM), una memoria de acceso aleatorio no volátil (NVRAM), una memoria de sólo lectura programable eléctricamente borrable (EEPROM), una memoria FLASH, medios de almacenamiento de datos magnéticos u ópticos, y similares. Las técnicas, adicionalmente o como alternativa, pueden llevarse a cabo, al menos en parte, por un medio de comunicación legible por computadora que incorpore o comunique un código bajo la forma de instrucciones o estructuras de datos y al que se pueda acceder, que se pueda leer y/o que pueda ser ejecutado por una computadora.
[0069] El código o las instrucciones pueden ser ejecutadas por uno o más procesadores, como por ejemplo uno o más procesadores digitales de la señal (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables sobre el terreno (FPGA), u otro conjunto de circuitos lógicos equivalentes integrados o discretos. De acuerdo con ello, el término “procesador”, según se utiliza en la presente memoria, puede referirse a cualquier estructura precedente o a cualquier estructura apropiada para la implementación de las técnicas descritas en la presente memoria. Así mismo, en algunos aspectos, la funcionalidad descrita en la presente memoria puede estar dispuesta dentro de módulos de software dedicados o de módulos de hardware configurados para la codificación y descodificación, o incorporados en un códec combinado. Así mismo, las técnicas podrían ser completamente implementadas en uno o más circuitos o elementos lógicos.
[0070] Así mismo, la divulgación contempla cualquier combinación de dispositivos de circuito integrado que incluyan un conjunto de circuitos para implementar una o más de las técnicas descritas en la presente divulgación. Dicho conjunto de circuitos puede estar dispuesto en un chip único de circuito integrado o en múltiples chips de circuito integrado interoperables dentro de un llamado conjunto de chips. Dichos dispositivos de circuito integrado pueden ser utilizados en una diversidad de aplicaciones, algunas de las cuales pueden incluir su uso en dispositivos de comunicaciones inalámbricas, como por ejemplo aparatos telefónicos móviles.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un procedimiento de codificación de vídeo para codificar un bloque de vídeo actual de una unidad de vídeo actual, comprendiendo el procedimiento:
    generar (108) uno o más conjuntos de hipótesis para la codificación de vídeo predictiva de puesta en coincidencia de plantillas, en donde cada una de las hipótesis en los uno o más conjuntos de hipótesis se basa en un bloque de vídeo predictivo (70) en una unidad de vídeo diferente a la unidad actual de vídeo y en donde cada una de las hipótesis en los uno o más conjuntos de hipótesis se genera en base a datos de vídeo en una plantilla (72) que tiene una forma que corresponde a una forma de una plantilla (66, 74) asociada al bloque de vídeo actual (64, 76); generar (108) una hipótesis de referencia basada en los uno o más conjuntos de hipótesis, en donde la hipótesis de referencia comprende una media de valores de píxeles para cada ubicación de píxel de una pluralidad de hipótesis en los uno o más conjuntos de hipótesis; eliminar (120), de los uno o más conjuntos de hipótesis, cada hipótesis para la cual una medida de diferencia con respecto a la hipótesis de referencia es mayor que un valor de umbral (118); seleccionar una o más hipótesis de las hipótesis restantes en los uno o más conjuntos de hipótesis, en base a un número de hipótesis a usar para codificar el bloque de vídeo actual, en donde se identifica el número de hipótesis (124) como un primer número de hipótesis o un segundo número de hipótesis; generar (126) un elemento sintáctico que indica el número identificado de hipótesis; y
    codificar (128), mediante un codificador de vídeo, el bloque de vídeo actual en base a las una o más hipótesis seleccionadas para producir un bloque de vídeo codificado.
  2. 2. El procedimiento de codificación de vídeo de la reivindicación 1, en el que generar los uno o más conjuntos de hipótesis comprende calcular una suma ponderada de diferencias absolutas, en donde calcular la suma ponderada incluye dividir la plantilla asociada al bloque de vídeo actual en una pluralidad de particiones y multiplicar una suma de las diferencias absolutas de cada partición de la pluralidad de particiones por un valor que disminuye a medida que aumenta la distancia de la partición en consideración desde el bloque de vídeo actual.
  3. 3. El procedimiento de codificación de vídeo de la reivindicación 1, en el que la generación de los uno o más conjuntos de hipótesis comprende:
    calcular un desplazamiento de plantilla, en donde calcular el desplazamiento de plantilla comprende calcular la diferencia media en los valores de píxel de una plantilla definida con respecto al bloque de vídeo actual y los valores de píxel de una primera hipótesis de los uno o más conjuntos de hipótesis; y aplicar el desplazamiento de plantilla a la diferencia entre cada uno de los valores de píxel de la primera hipótesis y cada uno de los valores de píxel de la plantilla definida en relación con el bloque de vídeo actual.
  4. 4. El procedimiento de codificación de vídeo de la reivindicación 1, en el que el bloque de vídeo actual es un bloque de vídeo luma, en donde el bloque de vídeo luma incluye una pluralidad de subbloques, y en donde el procedimiento comprende además seleccionar una de las hipótesis entre los uno o más conjuntos de hipótesis para codificar el bloque de vídeo actual:
    seleccionando un primer subbloque de la pluralidad de subbloques; definiendo una forma de plantilla relativa a una ubicación del primer subbloque;
    calculando un residual de luma de un segundo subbloque, en el que al menos una parte del segundo subbloque está ubicada dentro de al menos una parte de la forma de la plantilla;
    calculando una predicción de compensación del movimiento de los valores de píxel del segundo subbloque; y
    generando datos de vídeo predictivos para píxeles dentro de la forma de la plantilla, en base al residual de luma y a la predicción de compensación del movimiento de los valores de píxel.
  5. 5. El procedimiento de codificación de vídeo de la reivindicación 1, en el que el codificador de vídeo comprende un codificador de vídeo, en donde el procedimiento comprende además:
    generar un primer subconjunto de hipótesis en los uno o más conjuntos de hipótesis;
    generar un segundo subconjunto de hipótesis en los uno o más conjuntos de hipótesis;
    calcular un primer coste asociado a la codificación del bloque de vídeo actual, en donde el primer coste se
    calcula agregando una distorsión más un producto de un multiplicador de Lagrange, multiplicado por una
    tasa de codificación para el primer subconjunto de hipótesis;
    calcular un segundo coste asociado a la codificación del bloque de vídeo actual, en donde el segundo coste se calcula agregando una distorsión más un producto de un multiplicador de Lagrange, multiplicado por una tasa de codificación para el segundo subconjunto de hipótesis;
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    determinar un coste más bajo asociado a la codificación del bloque de vídeo actual, entre el primer coste y el segundo coste; y
    configurar, por el codificador de vídeo, el elemento sintáctico para indicar el número identificado de hipótesis que produce el coste más bajo asociado a la codificación del bloque de vídeo actual.
  6. 6. El procedimiento de codificación de vídeo de la reivindicación 1, en el que el codificador de vídeo comprende el descodificador de vídeo, en donde el procedimiento comprende además:
    descodificar uno o más elementos sintácticos que identifican un número de hipótesis de los uno o más conjuntos de hipótesis usadas en la codificación de datos de vídeo codificados; y
    identificar un subconjunto de hipótesis a partir de los uno o más conjuntos de hipótesis, en donde el subconjunto incluye el número de hipótesis identificadas por los uno o más elementos sintácticos, en donde la codificación del bloque de vídeo actual comprende además descodificar los datos de vídeo codificados utilizando el subconjunto de hipótesis identificado.
  7. 7. El procedimiento de codificación de vídeo de la reivindicación 1, en el que la generación de los uno o más conjuntos de hipótesis comprende:
    generar un primer conjunto de hipótesis para la codificación de vídeo predictiva por puesta en coincidencia de plantillas, en donde al menos algunas de las hipótesis en el primer conjunto de hipótesis se basan en un primer conjunto de datos de vídeo de al menos una parte de una primera unidad de vídeo, y en donde cada hipótesis del primer conjunto de hipótesis comprende datos de vídeo correspondientes a una forma de plantilla definida en relación con una primera ubicación de bloque de vídeo; generar un segundo conjunto de hipótesis para la codificación de vídeo predictiva por puesta en coincidencia de plantillas, en donde al menos algunas de las hipótesis en el segundo conjunto de hipótesis se basan en un segundo conjunto de datos de vídeo de al menos una parte de una segunda unidad de vídeo, y en donde cada hipótesis del segundo conjunto de hipótesis comprende datos de vídeo correspondientes a la forma de la plantilla definida en relación con una segunda ubicación de bloque de vídeo; y
    generar un tercer conjunto de hipótesis basadas en la predicción del movimiento bidireccional en base al primer conjunto de hipótesis y al segundo conjunto de hipótesis.
  8. 8. Un dispositivo que codifica un bloque de vídeo actual de una unidad de vídeo actual, comprendiendo el dispositivo:
    medios para generar uno o más conjuntos de hipótesis para la codificación de vídeo predictiva por puesta en coincidencia de plantillas, en donde cada una de las hipótesis en los uno o más conjuntos de hipótesis se basa en un bloque de vídeo predictivo (70) en una unidad de vídeo diferente a la unidad de vídeo actual y en donde cada una de las hipótesis en los uno o más conjuntos de hipótesis se genera en base a datos de vídeo en una plantilla (72) que tiene una forma que corresponde a una forma de una plantilla (66, 74) asociada al bloque de vídeo actual (64, 76); medios para generar una hipótesis de referencia en base a los uno o más conjuntos de hipótesis, en donde la hipótesis de referencia comprende una media de valores de píxel para cada ubicación de píxel de una pluralidad de hipótesis en los uno o más conjuntos de hipótesis;
    medios para eliminar, de los uno o más conjuntos de hipótesis, cada hipótesis para la cual una medida de diferencia con respecto a la hipótesis de referencia es mayor que un valor de umbral; medios para seleccionar una o más hipótesis de las hipótesis restantes en los uno o más conjuntos de hipótesis en base a un número de hipótesis a usar para codificar el bloque de vídeo actual, en donde el número de hipótesis se identifica como un primer número de hipótesis o un segundo número de hipótesis; medios para generar un elemento sintáctico que indica el número identificado de hipótesis; y medios para codificar el bloque de vídeo actual en base a las una o más hipótesis seleccionadas para producir un bloque de vídeo codificado.
  9. 9. El dispositivo de la reivindicación 8, en el que los medios para generar los uno o más conjuntos de hipótesis comprenden medios para calcular una suma ponderada de diferencias absolutas, en donde calcular la suma ponderada de diferencias absolutas incluye dividir la plantilla asociada al bloque de vídeo actual en una pluralidad de particiones y multiplicar la suma de las diferencias absolutas de cada partición de la pluralidad de particiones por un valor que disminuye a medida que aumenta la distancia de la partición en consideración desde el bloque de vídeo actual.
  10. 10. El dispositivo de la reivindicación 8, en el que los medios para generar los uno o más conjuntos de hipótesis comprenden:
    medios para calcular un desplazamiento de plantilla que comprenden medios para calcular la diferencia media en valores de píxel de una plantilla del bloque de vídeo actual y valores de píxel de una primera hipótesis de los uno o más conjuntos de hipótesis; y
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    medios para aplicar el desplazamiento de plantilla a una diferencia entre cada uno de los valores de píxel de la primera hipótesis y cada uno de los valores de píxel de la plantilla definido con respecto al bloque de vídeo actual.
  11. 11. El dispositivo de la reivindicación 8, en el que el bloque de vídeo actual es un bloque de vídeo luma, en donde el bloque de vídeo luma incluye una pluralidad de subbloques, y en donde el dispositivo comprende medios para seleccionar una de las hipótesis de los uno o más conjuntos de hipótesis, comprendiendo además los medios para seleccionar:
    medios para seleccionar un primer subbloque de la pluralidad de subbloques;
    medios para definir una forma de plantilla en relación con una ubicación del primer subbloque;
    medios para calcular un residual luma de un segundo subbloque, en donde al menos una parte del
    segundo subbloque está situada dentro de al menos una parte de la forma de la plantilla;
    medios para calcular una predicción de compensación del movimiento de valores de píxel del segundo
    subbloque; y
    medios para generar datos de vídeo predictivos para píxeles dentro de la forma de la plantilla en base al residual luma y la predicción de compensación del movimiento de los valores de píxel.
  12. 12. El dispositivo de la reivindicación 8, en el que los medios para codificar el bloque de vídeo actual comprenden además:
    medios para generar un primer subconjunto de hipótesis en los uno o más conjuntos de hipótesis;
    medios para generar un segundo subconjunto de hipótesis en los uno o más conjuntos de hipótesis;
    medios para calcular un primer coste asociado a la codificación del bloque de vídeo actual, en donde el
    primer coste se calcula sumando una distorsión más un producto de un multiplicador de Lagrange
    multiplicado por una tasa de codificación para el primer subconjunto de hipótesis;
    medios para calcular un segundo coste asociado a la codificación del bloque de vídeo actual, en donde el
    segundo coste se calcula sumando una distorsión más un producto de un multiplicador de Lagrange
    multiplicado por una tasa de codificación para el segundo subconjunto de hipótesis;
    medios para determinar un coste más bajo asociado a la codificación del bloque de vídeo actual, de entre
    el primer coste y el segundo coste; y
    medios para fijar el elemento sintáctico para indicar el número identificado de hipótesis que producen el coste más bajo asociado a la codificación del bloque de vídeo actual.
  13. 13. El dispositivo de la reivindicación 8,
    en el que los medios para codificar el bloque de vídeo actual comprenden además medios para descodificar
    datos de vídeo codificados,
    en donde el dispositivo comprende además:
    medios para descodificar uno o más elementos sintácticos que identifican un número de hipótesis de los uno o más conjuntos de hipótesis usados en la codificación de datos de vídeo codificados; y medios para identificar un subconjunto de hipótesis a partir de los uno o más conjuntos de hipótesis, en donde el subconjunto incluye el número de hipótesis identificadas por los uno o más elementos sintácticos,
    en donde los medios para descodificar los datos de vídeo codificados descodifican el vídeo codificado usando el subconjunto de hipótesis identificado.
  14. 14. El aparato de codificación de vídeo de acuerdo con una cualquiera de las reivindicaciones 8 a 13,
    en el que una unidad de predicción comprende los medios para generar los uno o más conjuntos de hipótesis, los medios para generar la hipótesis de referencia, los medios para eliminar y los medios para seleccionar; y
    en donde una unidad de codificación de vídeo comprende los medios para codificar y los medios para generar el elemento sintáctico.
  15. 15. Un medio de almacenamiento legible por ordenador con instrucciones para hacer que uno o más procesadores programables realicen el procedimiento de una cualquiera de las reivindicaciones 1 a 7.
    imagen1
    FIG. 1
    20
    imagen2
    FIG. 2
ES13192339.3T 2009-07-02 2010-06-29 Puesta en correspondencia de plantillas para codificación de vídeo Active ES2675578T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US756661 1991-09-09
US22283609P 2009-07-02 2009-07-02
US222836P 2009-07-02
US12/756,661 US8873626B2 (en) 2009-07-02 2010-04-08 Template matching for video coding

Publications (1)

Publication Number Publication Date
ES2675578T3 true ES2675578T3 (es) 2018-07-11

Family

ID=43216579

Family Applications (2)

Application Number Title Priority Date Filing Date
ES10730948.6T Active ES2452866T3 (es) 2009-07-02 2010-06-29 Puesta en correspondencia de plantillas para codificación de vídeo
ES13192339.3T Active ES2675578T3 (es) 2009-07-02 2010-06-29 Puesta en correspondencia de plantillas para codificación de vídeo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES10730948.6T Active ES2452866T3 (es) 2009-07-02 2010-06-29 Puesta en correspondencia de plantillas para codificación de vídeo

Country Status (9)

Country Link
US (1) US8873626B2 (es)
EP (2) EP2449786B1 (es)
JP (2) JP5623521B2 (es)
KR (2) KR101632126B1 (es)
CN (1) CN102474622B (es)
ES (2) ES2452866T3 (es)
HU (1) HUE038078T2 (es)
TW (1) TW201130316A (es)
WO (1) WO2011002809A2 (es)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011069831A1 (en) * 2009-12-10 2011-06-16 Thomson Licensing Method and apparatus for coding and decoding an image block
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
FR2959376A1 (fr) * 2010-04-22 2011-10-28 France Telecom Procede de traitement d'une information de mouvement, procedes de codage et de decodage, dispositifs, signal et programme d'ordinateur correspondants
KR101681303B1 (ko) * 2010-07-29 2016-12-01 에스케이 텔레콤주식회사 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치
ES2891598T3 (es) * 2010-11-04 2022-01-28 Ge Video Compression Llc Codificación de instantánea que soporta unión de bloques y modo de salto
EP2490448A1 (de) * 2011-02-18 2012-08-22 Siemens Aktiengesellschaft Kodierverfahren und Bildkodiervorrichtung zur Kompression einer Bildsequenz
US20140307798A1 (en) * 2011-09-09 2014-10-16 Newsouth Innovations Pty Limited Method and apparatus for communicating and recovering motion information
US20130329800A1 (en) * 2012-06-07 2013-12-12 Samsung Electronics Co., Ltd. Method of performing prediction for multiview video processing
MX346795B (es) * 2012-07-16 2017-03-31 Samsung Electronics Co Ltd Método de codificación de video y aparato de codificación de video y método de decodificación de video y aparato de decodificación de video para señalar parámetros de compensación adaptiva de muestra (sao).
WO2014082982A1 (en) 2012-11-29 2014-06-05 Thomson Licensing Method for predicting a block of pixels from at least one patch
CN103020915B (zh) * 2012-12-21 2016-04-13 清华大学 一种基于视频数据的物像增强方法
WO2015010317A1 (zh) * 2013-07-26 2015-01-29 北京大学深圳研究生院 一种基于p帧的多假设运动补偿方法
CN104717512B (zh) 2013-12-16 2019-07-23 浙江大学 一种前向双假设编码图像块的编解码方法和装置
US9544596B1 (en) * 2013-12-27 2017-01-10 Google Inc. Optimized template matching approach to intra-coding in video/image compression
CN106470962A (zh) 2014-04-17 2017-03-01 巴斯夫欧洲公司 新型硝化抑制剂和生物农药的组合以及(硫代)磷酸三酰胺和生物农药的组合
US9723377B2 (en) * 2014-04-28 2017-08-01 Comcast Cable Communications, Llc Video management
JP2019213242A (ja) * 2014-04-28 2019-12-12 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 符号化方法、復号方法、符号化装置および復号装置
JPWO2015166639A1 (ja) * 2014-04-28 2017-04-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化方法、復号方法、符号化装置および復号装置
US10412415B2 (en) 2014-10-24 2019-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding video signal using transform derived from graph template
CN104363449B (zh) * 2014-10-31 2017-10-10 华为技术有限公司 图像预测方法及相关装置
US10574993B2 (en) 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
EP3273692A4 (en) * 2015-06-10 2018-04-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding or decoding image using syntax signaling for adaptive weight prediction
WO2017035833A1 (en) 2015-09-06 2017-03-09 Mediatek Inc. Neighboring-derived prediction offset (npo)
GB2557544B (en) * 2015-09-11 2021-12-01 Kt Corp Method and device for processing video signal
JP6379186B2 (ja) * 2016-02-17 2018-08-22 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオピクチャを符号化および復号する方法および装置
CN114449287A (zh) 2016-03-16 2022-05-06 联发科技股份有限公司 视频编码的样式基础的运动向量推导之方法及装置
US10805631B2 (en) * 2016-09-23 2020-10-13 Lg Electronics Inc. Method and apparatus for performing prediction using template-based weight
US10880570B2 (en) 2016-10-05 2020-12-29 Qualcomm Incorporated Systems and methods of adaptively determining template size for illumination compensation
US10880546B2 (en) 2016-10-11 2020-12-29 Lg Electronics Inc. Method and apparatus for deriving intra prediction mode for chroma component
US10609367B2 (en) * 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding
EP3349451A1 (en) * 2017-01-11 2018-07-18 Thomson Licensing Method and apparatus for selecting a coding mode used for encoding/decoding a residual block
US10701366B2 (en) * 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US20180332298A1 (en) * 2017-05-10 2018-11-15 Futurewei Technologies, Inc. Bidirectional Prediction In Video Compression
US10757442B2 (en) * 2017-07-05 2020-08-25 Qualcomm Incorporated Partial reconstruction based template matching for motion vector derivation
EP3644608A4 (en) * 2017-07-11 2020-06-10 Huawei Technologies Co. Ltd. METHOD AND DEVICE FOR DECODING BASED ON A TEMPLATE
US10986360B2 (en) * 2017-10-16 2021-04-20 Qualcomm Incorproated Various improvements to FRUC template matching
WO2019152283A1 (en) 2018-02-02 2019-08-08 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
US10992930B2 (en) 2018-03-30 2021-04-27 Hulu, LLC Template refined bi-prediction for video coding
US11477474B2 (en) * 2018-06-08 2022-10-18 Mediatek Inc. Methods and apparatus for multi-hypothesis mode reference and constraints
US11533471B2 (en) 2018-06-22 2022-12-20 Sony Corporation Image processing apparatus and image processing method
US11956460B2 (en) * 2018-08-31 2024-04-09 Hulu, LLC Selective template matching in video coding
US20230093043A1 (en) * 2021-09-22 2023-03-23 Tencent America LLC Method and apparatus for adaptive reordering for reference frames
WO2023200217A1 (ko) * 2022-04-11 2023-10-19 엘지전자 주식회사 템플릿 매칭을 이용하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1143551C (zh) 1996-05-28 2004-03-24 松下电器产业株式会社 图像预测解码装置
US6101276A (en) 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US7373004B2 (en) 2003-05-23 2008-05-13 Silicon Integrated Systems Corp. Apparatus for constant quality rate control in video compression and target bit allocator thereof
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
EP1747677A2 (en) 2004-05-04 2007-01-31 Qualcomm, Incorporated Method and apparatus to construct bi-directional predicted frames for temporal scalability
JP2007043651A (ja) 2005-07-05 2007-02-15 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
EP1982532A2 (en) 2006-02-02 2008-10-22 Thomson Licensing Method and apparatus for motion estimation using combined reference bi-prediction
EP1985124B1 (en) 2006-02-17 2010-09-01 Thomson Licensing Process for coding images using intra prediction mode
JP2008154015A (ja) 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
JP5372341B2 (ja) 2007-05-18 2013-12-18 株式会社エヌ・ティ・ティ・ドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法および画像予測復号プログラム
US8619853B2 (en) 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
US20090003443A1 (en) * 2007-06-26 2009-01-01 Nokia Corporation Priority-based template matching intra prediction video and image coding
CN101557514B (zh) 2008-04-11 2011-02-09 华为技术有限公司 一种帧间预测编解码方法、装置及系统
US20110261882A1 (en) * 2008-04-11 2011-10-27 Thomson Licensing Methods and apparatus for template matching prediction (tmp) in video encoding and decoding
JPWO2010035730A1 (ja) 2008-09-24 2012-02-23 ソニー株式会社 画像処理装置および方法
CN102160379A (zh) 2008-09-24 2011-08-17 索尼公司 图像处理装置和图像处理方法
WO2010069381A1 (en) * 2008-12-18 2010-06-24 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for rate distortion optimisation

Also Published As

Publication number Publication date
WO2011002809A3 (en) 2011-06-23
JP5623521B2 (ja) 2014-11-12
KR20120042910A (ko) 2012-05-03
US20110002388A1 (en) 2011-01-06
US8873626B2 (en) 2014-10-28
HUE038078T2 (hu) 2018-09-28
KR20140068269A (ko) 2014-06-05
JP2012532501A (ja) 2012-12-13
KR101521336B1 (ko) 2015-05-18
ES2452866T3 (es) 2014-04-03
JP2014064301A (ja) 2014-04-10
EP2449786B1 (en) 2014-01-29
EP2704442B1 (en) 2018-04-04
TW201130316A (en) 2011-09-01
CN102474622A (zh) 2012-05-23
JP5752771B2 (ja) 2015-07-22
EP2449786A2 (en) 2012-05-09
WO2011002809A2 (en) 2011-01-06
CN102474622B (zh) 2015-04-29
EP2704442A1 (en) 2014-03-05
KR101632126B1 (ko) 2016-06-24

Similar Documents

Publication Publication Date Title
ES2675578T3 (es) Puesta en correspondencia de plantillas para codificación de vídeo
ES2663691T3 (es) Selección eficiente de modo de predicción
KR101384077B1 (ko) 비디오 코딩에서 블록 타입 시그널링
US9609357B2 (en) Non-zero rounding and prediction mode selection techniques in video encoding
US8995526B2 (en) Different weights for uni-directional prediction and bi-directional prediction in video coding
US9525872B2 (en) Video coding based on first order prediction and pre-defined second order prediction mode
US8711930B2 (en) Non-zero rounding and prediction mode selection techniques in video encoding