ES2638416T3 - Predicción residual avanzada (ARP) más precisa para la codificación de texturas - Google Patents

Predicción residual avanzada (ARP) más precisa para la codificación de texturas Download PDF

Info

Publication number
ES2638416T3
ES2638416T3 ES14740047.7T ES14740047T ES2638416T3 ES 2638416 T3 ES2638416 T3 ES 2638416T3 ES 14740047 T ES14740047 T ES 14740047T ES 2638416 T3 ES2638416 T3 ES 2638416T3
Authority
ES
Spain
Prior art keywords
block
view
video
video block
current
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
ES14740047.7T
Other languages
English (en)
Inventor
Li Zhang
Ying Chen
Marta Karczewicz
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 ES2638416T3 publication Critical patent/ES2638416T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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 predicción residual de inter-vista para descodificar datos de vídeo HEVC, comprendiendo el procedimiento: descodificar un flujo de bits de vídeo codificado que codifica los datos de vídeo para identificar un vector de movimiento de disparidad (DMV) y un bloque residual para un bloque de vídeo actual, en el que el bloque de vídeo actual está en una vista actual y en el que el DMV se utiliza para predicción de inter-vista del bloque de vídeo actual basándose en un bloque de vídeo de referencia de inter-vista en una vista de referencia y en una misma unidad de acceso que el bloque de vídeo actual; identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de vídeo de referencia de inter-vista; identificar un bloque de vídeo de referencia temporal en la imagen de referencia asociada en la vista de referencia basándose en el TMV del bloque de vídeo de referencia de inter-vista; identificar un bloque de vídeo de referencia temporal en la vista actual basándose en el TMV del bloque de vídeo de referencia de inter-vista en la vista de referencia, en el que el bloque de vídeo de referencia temporal en la vista actual y el bloque de vídeo de referencia temporal en la vista de referencia se encuentran en la misma unidad de acceso; determinar un bloque de predicción residual para el bloque de vídeo actual basándose en una diferencia entre el bloque de vídeo de referencia temporal en la vista actual y el bloque de vídeo de referencia temporal en la vista de referencia; y aplicar el bloque de predicción residual y el bloque residual identificado desde el flujo de bits de vídeo codificado al bloque de vídeo de referencia para reconstruir el bloque de vídeo actual.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Prediccion residual avanzada (ARP) mas precisa para la codificacion de texturas
Esta solicitud reivindica el beneficio de la solicitud provisional de Estados Unidos 61/838 208, presentada el 21 de junio de 2013, y de la solicitud provisional de Estados Unidos 61/846 036, presentada el 14 de julio de 2013.
CAMPO TECNICO
Esta divulgacion se refiere a la codificacion de video.
ANTECEDENTES
Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusion digital directa, sistemas de difusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados "telefonos inteligentes", dispositivos de videoconferencia, dispositivos de transmision de video y similares. Los dispositivos de video digital implementan tecnicas de codificacion de video, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificacion Avanzada de Video (AVC), la norma de Codificacion de Video de Alta Eficiencia (HEVC), actualmente en desarrollo y las ampliaciones de tales normas. Los dispositivos de video pueden transmitir, recibir, codificar, descodificar y/o almacenar informacion de video digital mas eficazmente, implementando tales tecnicas de codificacion de video.
Las tecnicas de codificacion de video incluyen la prediccion espacial (intra-imagen) y/o la prediccion temporal (entre imagenes) para reducir o eliminar la redundancia intrfnseca en las secuencias de video. Para la codificacion de video basandose en bloques, un fragmento de video (por ejemplo, una trama de video o una parte de una trama de video) puede dividirse en bloques de video, que tambien pueden denominarse bloques arbolados, unidades de codificacion (CU) y/o nodos de codificacion. Los bloques de video en un fragmento intracodificado (I) de una imagen son codificados usando la prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen. Los bloques de video en un fragmento inter-codificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen, o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas y las imagenes de referencia pueden denominarse tramas de referencia.
La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de pfxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica de acuerdo con una modalidad de intra-codificacion y los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pfxeles a un dominio de transformacion, dando como resultado coeficientes de transformacion residuales, los cuales pueden cuantificarse posteriormente. Los coeficientes de transformacion cuantificados, inicialmente dispuestos en una formacion bidimensional, pueden escanearse con el fin de producir un vector unidimensional de coeficientes de transformacion, y puede aplicarse la codificacion por entropfa para lograr aun mas compresion.
RESUMEN
En general, esta divulgacion describe tecnicas exactas de prediccion residual avanzada (ARP) para la codificacion de textura, que pueden proporcionar una precision mejorada con relacion a otras tecnicas de ARP. Mas particularmente, esta divulgacion describe tecnicas ARP que incluyen la identificacion de un DMV desde la vista actual hasta una vista de referencia y la determinacion de un bloque de prediccion residual para ARP del bloque de video actual basandose en la identificacion del DMV.
En algunos ejemplos, el DMV es un DMV del bloque de video actual, y las tecnicas incluyen determinar un bloque de prediccion residual de inter-vista para ARP de inter-vista del bloque de video actual. El DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista. Las tecnicas para ARP de inter-vista tambien pueden incluir la identificacion de bloques de video de referencia temporales en las vistas actuales y de referencia basandose en un vector de movimiento temporal (TMV) del bloque de video de referencia de inter-vista, y la determinacion de un bloque de prediccion residual basandose en una diferencia entre los bloques de video de referencia temporales. En dichos ejemplos, ARP no se limita a ARP temporal para codificar bloques de video predichos temporalmente, y en su lugar puede incluir ARP de inter-vista para codificar bloques de video predichos de inter-vista.
En algunos ejemplos, el bloque de video actual se predice temporalmente y un DMV del bloque de video de
5
10
15
20
25
30
35
40
45
50
55
60
65
referencia para el bloque de video actual reemplaza a un vector de disparidad derivado para el bloque de video actual, por ejemplo, de acuerdo con la obtencion de vector de disparidad basandose en bloques contiguos (NBDV), para ARP temporal del bloque de video actual. En tales ejemplos, el DMV, que se elige tfpicamente mediante optimizacion de la distorsion de velocidad, puede ser mas preciso que el vector de disparidad derivado, lo cual puede originar una ARP temporal mas precisa del bloque de video actual. En algunos ejemplos, el bloque de video actual se predice temporalmente y un vector de disparidad obtenido a traves de un bloque de profundidad co- ubicado del bloque de video de referencia temporal para el bloque de video actual reemplaza a un vector de disparidad derivado para el bloque de video actual, por ejemplo de acuerdo con la Obtencion de Vector de Disparidad basandose en Bloques Contiguos (NBDV), para ARP temporal del bloque de video actual. Tales ejemplos pueden proporcionar una ARP temporal mas precisa cuando el bloque de profundidad co-ubicado esta disponible durante la codificacion de textura.
En un ejemplo, un procedimiento de prediccion residual avanzada de inter-vista para descodificar datos de video comprende descodificar un flujo de bits de video codificado que codifica los datos de video para identificar un vector de movimiento de disparidad (DMV) y un bloque residual para un bloque de video actual. El bloque de video actual esta en una vista actual y el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en la misma unidad de acceso que el bloque de video actual. El procedimiento comprende ademas identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identificando un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista, e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia se encuentran en la misma unidad de acceso. El procedimiento comprende ademas determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia. El procedimiento comprende ademas aplicar el bloque de prediccion residual y el bloque residual identificados desde el flujo de bits de video codificado al bloque de video de referencia de inter-vista para reconstruir el bloque de video actual.
En otro ejemplo, un procedimiento de prediccion residual avanzada de inter-vista para codificar datos de video comprende identificar un vector de movimiento de disparidad (DMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y la misma unidad de acceso que el bloque de video actual. El procedimiento comprende ademas identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identificando un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista, e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia se encuentran en la misma unidad de acceso. El procedimiento comprende ademas determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia. El procedimiento comprende ademas codificar un flujo de bits de video codificado que codifica los datos de video para identificar el DMV y un bloque residual para el bloque de video actual. El bloque residual identificado por el flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
En otro ejemplo, un aparato comprende un codificador de video configurado para realizar una prediccion residual avanzada de inter-vista para codificar datos de video. El codificador de video comprende una memoria configurada para almacenar un flujo de bits de video codificado que codifica los datos de video y uno o mas procesadores. El uno o mas procesadores estan configurados para identificar un vector de movimiento de disparidad (DMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de intervista en una vista de referencia y en la misma unidad de acceso que el bloque de video actual. El uno o mas procesadores estan configurados adicionalmente para identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identificar un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia estan situados en la misma unidad de acceso. El uno o mas procesadores estan configurados ademas para determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia. El uno o mas procesadores estan configurados ademas para codificar el flujo de bits de video codificado para identificar el DMV y un bloque residual para el bloque de video actual. El bloque residual identificado mediante la codificacion del flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el
5
10
15
20
25
30
35
40
45
50
55
60
65
bloque de prediccion residual para el bloque de video actual.
En otro ejemplo, un medio de almacenamiento legible por ordenador tiene instrucciones almacenadas en el mismo que, cuando se ejecutan, hacen que uno o mas procesadores de un codificador de video identifiquen un vector de movimiento de disparidad (DMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual, y en el que el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en la misma unidad de acceso que el bloque de video actual. Las instrucciones ademas hacen que uno o mas procesadores identifiquen un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identifiquen un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista, e identifiquen un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia estan situados en la misma unidad de acceso. Las instrucciones ademas hacen que uno o mas procesadores determinen un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia. Las instrucciones ademas hacen que uno o mas procesadores codifiquen el flujo de bits de video codificado para identificar el DMV y un bloque residual para el bloque de video actual. El bloque residual identificado mediante la codificacion del flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
En otros ejemplos, los procedimientos de prediccion residual avanzada de inter-vista para codificar datos de video comprenden la identificacion de un vector de movimiento de disparidad (DMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y la misma unidad de acceso que el bloque de video actual. Los procedimientos comprenden ademas la identificacion de un vector de movimiento temporal (TMV) y una imagen de referencia asociada. En algunos ejemplos, el DMV puede ser de una primera lista de imagenes de referencia del bloque de video actual y el TMV y la imagen de referencia asociada pueden ser de una segunda lista de imagenes de referencia del bloque de video actual. En otros ejemplos, el TMV y la imagen de referencia asociada se obtienen a partir de bloques contiguos espaciales o temporales del bloque de video actual. En cualquier caso, los procedimientos pueden comprender ademas la identificacion de un bloque de video de referencia temporal en la vista de referencia basandose en el TMV, e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV. Los procedimientos comprenden ademas la determinacion de un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia. Los procedimientos comprenden ademas codificar un flujo de bits de video codificado que codifica los datos de video para identificar el DMV y un bloque residual para el bloque de video actual. El bloque residual identificado por el flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
En otro ejemplo, un procedimiento de prediccion residual temporal avanzada para codificar datos de video comprende identificar un vector de movimiento temporal (TMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el TMV se utiliza para la prediccion del bloque de video actual basandose en un bloque de video de referencia temporal en la vista actual y en una unidad de acceso diferente al
bloque de video actual. El procedimiento comprende ademas identificar un vector de movimiento de disparidad
(DMV) del bloque de video de referencia temporal usado para la prediccion de inter-vista del bloque de video de referencia temporal. El procedimiento comprende ademas determinar, basandose en el DMV, por lo menos uno de un bloque de video de referencia de inter-vista en la vista de referencia y en la misma unidad de acceso que el bloque de video actual o un bloque de video de referencia temporal en la vista de referencia y en la unidad de acceso diferente. El procedimiento comprende ademas determinar el bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia de inter-vista en la vista de referencia y en la misma unidad de acceso que el bloque de video actual y el bloque de video de referencia temporal en la vista de referencia y en la unidad de acceso diferente. El procedimiento comprende ademas codificar un flujo de bits de video codificado que codifica los datos de video para identificar el tMv y un bloque residual para el
bloque de video actual. El bloque residual identificado por el flujo de bits de video codificado comprende una
diferencia entre el bloque de video de referencia temporal y el bloque de prediccion residual para el bloque de video actual. Algunos ejemplos de este procedimiento comprenden ademas escalar el TMV del bloque de video actual a una imagen de referencia objetivo en una unidad de acceso objetivo para la prediccion residual avanzada del bloque de video actual, en el que el TMV escalado identifica el bloque de video de referencia temporal en la vista actual. En algunos ejemplos de este procedimiento, el bloque de video de referencia temporal en la vista actual identificado por el TMV escalado comprende un primer bloque de video de referencia temporal y el procedimiento comprende ademas determinar que el primer bloque de video de referencia temporal en la vista actual identificado por el TMV escalado no esta asociado con un DMV, e identificar un segundo bloque de video de referencia temporal en la vista actual basandose en el escalado ausente de TMV. En tales ejemplos, la identificacion del DMV comprende identificar un DMV del segundo bloque de video de referencia temporal en la vista actual identificado por el escalado
5
10
15
20
25
30
35
40
45
50
55
60
65
ausente de TMV. En algunos ejemplos de este procedimiento, el bloque de video de referencia temporal en la vista actual y en una unidad de acceso diferente al bloque de video actual comprende una pluralidad de unidades de prediccion, e identificar el DMV del bloque de video de referencia temporal comprende identificar un DMV asociado con una de la pluralidad de PU que contiene una posicion central del bloque de video de referencia temporal. En algunos ejemplos de este procedimiento, identificar el DMV comprende identificar un DMV de un modo de prediccion distinto a la prediccion de sfntesis de video inverso (BVSP). En algunos ejemplos de este procedimiento, el bloque de video de referencia de inter-vista contiene un primer conjunto de informacion de movimiento correspondiente a una primera lista de imagenes de referencia y un segundo conjunto de informacion de movimiento correspondiente a una segunda lista de imagenes de referencia, ya la identificacion del TMV del bloque de video de referencia de intervista comprende seleccionar del TMV del primer conjunto de informacion de movimiento si el primer conjunto de informacion de movimiento incluye un TMV y seleccionar el TMV del segundo conjunto de informacion de movimiento si el primer conjunto de informacion de movimiento no incluye un TMV. En algunos ejemplos de este procedimiento, la primera lista de imagenes de referencia comprende RefPicList0. En algunos ejemplos de este procedimiento, un orden para considerar el primer y segundo conjuntos de informacion de movimiento es independiente de cual de los primero y segundo conjuntos de informacion de movimiento incluye el TMV. En algunos ejemplos de este procedimiento, la codificacion del flujo de bits de video codificado comprende descodificar el flujo de bits de video codificado con un descodificador de video para identificar el TMV y el bloque residual para el bloque de video actual y aplicar el bloque de prediccion residual y el bloque residual identificado del flujo de bits de video codificado al bloque de video de referencia temporal para reconstruir el bloque de video actual. En algunos ejemplos de este procedimiento, codificar el flujo de bits de video codificado comprende codificar el flujo de bits de video codificado con un codificador de video para indicar el TMV y el bloque residual para el bloque de video actual a un descodificador de video.
En otro ejemplo, un procedimiento de prediccion residual temporal avanzada para codificar datos de video comprende identificar un vector de movimiento temporal (TMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el TMV se utiliza para la prediccion del bloque de video actual basandose en un bloque de video de referencia temporal en la vista actual y en una unidad de acceso diferente al bloque de video actual. El procedimiento comprende ademas obtener un vector de disparidad (DV) a traves de un bloque de profundidad co-ubicado del bloque de video de referencia temporal. El procedimiento comprende ademas determinar, basandose en el DV, al menos uno de un bloque de video de referencia de inter-vista en la vista de referencia y en la misma unidad de acceso que el bloque de video actual o un bloque de video de referencia temporal en la vista de referencia y en la unidad de acceso diferente. El procedimiento comprende ademas determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia de inter-vista en la vista de referencia y en la misma unidad de acceso que el bloque de video actual y el bloque de video de referencia temporal en la vista de referencia y en la unidad de acceso diferente. El procedimiento comprende ademas codificar un flujo de bits de video codificado que codifica los datos de video para identificar el TMV y un bloque residual para el bloque de video actual. El bloque residual identificado por el flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia temporal y el bloque de prediccion residual para el bloque de video actual. Algunos ejemplos de este procedimiento comprenden ademas escalar el TMV del bloque de video actual a una imagen de referencia objetivo en una unidad de acceso objetivo para la prediccion residual avanzada del bloque de video actual, en el que el TMV escalado identifica el bloque de video de referencia temporal en la vista actual. En algunos ejemplos de este procedimiento, el bloque de video de referencia temporal en la vista actual identificado por el TMV escalado comprende un primer bloque de video de referencia temporal y el procedimiento comprende ademas determinar que el primer bloque de video de referencia temporal en la vista actual identificado por el TMV escalado no esta asociado con un DMV, e identificar un segundo bloque de video de referencia temporal en la vista actual basandose en el escalado ausente de TMV. En tales ejemplos, la identificacion del DMV comprende identificar un DMV del segundo bloque de video de referencia temporal en la vista actual identificado por el escalado ausente de TMV. En algunos ejemplos de este procedimiento, obtener el DV comprende convertir un valor de profundidad de una muestra dentro del bloque de profundidad co- ubicado en el DV. En algunos ejemplos, la muestra se encuentra en (W/2, H/2) con respecto a la muestra superior izquierda del bloque de profundidad co-ubicado, en el que el tamano del bloque de profundidad co-ubicado es W x H. En algunos ejemplos de este procedimiento, obtener el DV comprende determinar un valor de profundidad representativo basandose en valores de profundidad de una pluralidad de muestras dentro del bloque de profundidad co-ubicado y convertir el valor de profundidad representativo en el DV. En algunos ejemplos, la pluralidad de muestras son cuatro muestras de esquina. En algunos ejemplos, la pluralidad de muestras se selecciona basandose en muestras contiguas del bloque de profundidad. En algunos ejemplos, la determinacion del valor de profundidad representativo basandose en valores de profundidad de una pluralidad de muestras dentro del bloque de profundidad co-ubicado comprende determinar el valor de profundidad representativo basandose en todos los valores de profundidad de una pluralidad de muestras dentro del bloque de profundidad co-ubicado. En algunos ejemplos de este procedimiento, la codificacion del flujo de bits de video codificado comprende descodificar el flujo de bits de video codificado con un descodificador de video para identificar el TMV y el bloque residual para el bloque de video actual y aplicar el bloque de prediccion residual y el bloque residual identificado del flujo de bits de video codificado al bloque de video de referencia temporal para reconstruir el bloque de video actual. En algunos ejemplos de este procedimiento, codificar el flujo de bits de video codificado comprende codificar el flujo de bits de video codificado con un codificador de video para indicar el TMV y el bloque residual para el bloque de video actual a un descodificador de video.
5
10
15
20
25
30
35
40
45
50
55
60
65
Los detalles de uno o mas ejemplos de la divulgacion se exponen en los dibujos adjuntos y la descripcion siguiente. Otras caractensticas, objetivos y ventajas resultaran evidentes a partir de la descripcion, los dibujos y las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificacion y descodificacion de video que puede utilizar las tecnicas descritas en esta divulgacion.
La FIG. 2 es un diagrama grafico que ilustra un ejemplo de orden de codificacion o descodificacion multivista.
La FIG. 3 es un diagrama conceptual que ilustra un ejemplo de patron de prediccion temporal y de inter-vista para la codificacion de video multivista.
La FIG. 4 es un diagrama conceptual que ilustra un ejemplo de relacion de bloques contiguos con un bloque actual para la prediccion de la informacion de movimiento del bloque actual.
La FIG. 5 es un diagrama conceptual que ilustra un ejemplo de obtencion de un candidato de vector de movimiento predicho de inter-vista y un candidato de vector de movimiento de disparidad de inter-vista para la prediccion de la informacion de movimiento del bloque actual.
La FIG. 6 es un diagrama conceptual que ilustra ejemplos de bloques contiguos espaciales, a partir de los cuales se puede obtener un vector de disparidad para un bloque de video actual utilizando la Obtencion de Vector de Disparidad Basandose en Bloques Contiguos (NBDV), en relacion con el bloque de video actual.
La FIG. 7 es un diagrama conceptual que ilustra un ejemplo de localizacion de un bloque de profundidad a partir de una vista de referencia y el uso del bloque de profundidad localizado en la vista de referencia para la Prediccion de Smtesis de Vista Inversa (BVSP).
La FIG. 8 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion para la Prediccion Residual Avanzada (ARP) temporal de un bloque de video predicho temporalmente.
La FIG. 9 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion bidireccional para ARP temporal.
La FIG. 10 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion para ARP de inter-vista de un bloque de video predicho de inter-vista de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 11 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion para ARP temporal de un bloque de video predicho temporalmente usando un vector de movimiento de disparidad (DMV) de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 12 es un diagrama conceptual que ilustra tecnicas de ejemplo para la identificacion de un vector de movimiento temporal (TMV) o DMV en o adyacente a un bloque de video de acuerdo con las tecnicas descritas en esta divulgacion.
Las FIGs. 13A a 13D son diagramas conceptuales que ilustran ejemplos de ordenes de escaneado para identificar TMV o DMV de acuerdo con las tecnicas de esta divulgacion.
La FIG. 14 es un diagrama de bloques que ilustra un ejemplo de codificador de video que puede implementar las tecnicas descritas en esta divulgacion.
La FIG. 15 es un diagrama de bloques que ilustra un ejemplo de descodificador de video que puede utilizar las tecnicas descritas en esta divulgacion.
La FIG. 16 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP para descodificar un bloque de video de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 17 es un diagrama de flujo que ilustra un ejemplo de un procedimiento de ARP de inter-vista para descodificar un bloque de video predicho de inter-vista de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 18 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP temporal para descodificar un bloque de video predicho temporalmente de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 19 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP para codificar un bloque de
5
10
15
20
25
30
35
40
45
50
55
60
65
video de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 20 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP de inter-vista para codificar un bloque de video predicho de inter-vista de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 21 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP temporal para codificar un bloque de video predicho temporalmente de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 22 es un diagrama de flujo que ilustra un procedimiento de ejemplo para identificar un DMV para ARP temporal de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 23 es un diagrama de flujo que ilustra un procedimiento de ejemplo para identificar un TMV o DMV para ARP de acuerdo con las tecnicas descritas en esta divulgacion.
DESCRIPCION DETALLADA
En general, esta divulgacion esta relacionada con la codificacion de video multivista, en la que los datos de video codificados incluyen dos o mas vistas. En algunos ejemplos, la codificacion de video multivista incluye un proceso de codificacion de video multivista mas profundidad. En algunos ejemplos, la codificacion multivista puede incluir codificacion de video tridimensional o 3D, y puede denominarse codificacion de video en 3D. Algunas tecnicas divulgadas pueden aplicarse tambien a la codificacion de video distinta de la codificacion de video multivista o 3D, por ejemplo, codificacion de video escalable o codificacion de video de acuerdo con una memoria descriptiva de base de una norma de codificacion de video, por ejemplo, en el que los datos de video no incluyen multiples vistas o capas.
Esta divulgacion tambien se refiere a la prediccion de la senal residual de un bloque de video, por ejemplo, Prediccion Residual Avanzada (ARP). Mas particularmente, esta divulgacion describe tecnicas para ARP mas precisa de los componentes de textura de datos de video multivista en una vista no de base. Las tecnicas para ARP mas precisa pueden incluir la identificacion de un vector de movimiento de disparidad (DMV) desde la vista actual de un bloque de video actual a una vista de referencia. El DMV es un vector de movimiento utilizado para la prediccion de inter-vista de datos de video en la vista actual, por ejemplo, del bloque de video actual o un bloque de video de referencia, datos de video basados en la vista de referencia. Las tecnicas pueden incluir ademas el uso del DMV identificado para identificar bloques de video de referencia para ARP y determinar un bloque de prediccion residual para el bloque de video actual basandose en los bloques de video de referencia identificados. Un bloque residual codificado para el bloque actual identificado en un flujo de bits de video codificado puede ser una diferencia entre un bloque residual normal, que es la diferencia entre el bloque actual y un bloque de video de referencia para el bloque de video actual, y el bloque de prediccion residual despues del potencial escalado basandose en el indice de factor de ponderacion codificado. En esta divulgacion, el termino "actual" se utiliza en general para identificar una vista, imagen o bloque que se esta codificando actualmente. De este modo, un bloque actual en general representa un bloque de datos de video codificados, en oposicion a un bloque de video ya codificado o en oposicion a un bloque de video no codificado todavfa.
En algunos ejemplos, el DMV puede ser un DMV del bloque de video actual, en cuyo caso el codificador de video puede usar el DMV para identificar un bloque de referencia en la vista de referencia. En dichos ejemplos, las tecnicas pueden incluir la determinacion de un bloque de prediccion residual de inter-vista para ARP de inter-vista del bloque de video actual basandose en el DMV identificado. En dichos ejemplos, la aRp no se limita a ARP temporal para codificar bloques de video predichos temporalmente, y en su lugar puede incluir ARP de inter-vista para codificar bloques de video predichos de inter-vista. La ARP de inter-vista puede permitir que el codificador de video calcule con mayor precision un predictor residual de inter-vista en una unidad de acceso diferente para predecir el valor residual del bloque de video actual
En algunos ejemplos, el bloque de video actual se predice temporalmente y el DMV puede ser un DMV de un bloque de referencia temporal en la misma vista que el bloque de video actual. En dichos ejemplos, el codificador de video puede utilizar el DMV en lugar de un vector de disparidad (DV) obtenido para el bloque de video actual para identificar uno o ambos de un bloque de referencia de inter-vista del bloque de video actual en la vista de referencia, o un bloque de referencia temporal en la vista de referencia para ARP temporal del bloque de video actual. El codificador de video puede usar el bloque o bloques identificados basados en el DMV para calcular con mayor exactitud un predictor residual temporal (calculado en una vista de referencia) para predecir el valor residual del bloque de video actual. En tales ejemplos, el DMV, que se elige tfpicamente mediante optimizacion de la distorsion de velocidad, puede ser mas preciso que el vector de disparidad derivado, lo cual puede originar una ARP temporal mas precisa del bloque de video actual.
Entre las normas de codificacion de video se incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (tambien conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificacion de video ajustable a escala (SVC) y de codificacion de video multivista (MVC). El ultimo borrador conjunto de MVC se describe en "Codificacion de video avanzada para servicios
5
10
15
20
25
30
35
40
45
50
55
60
65
audiovisuales genericos", Recomendacion ITU-T H.264, marzo de 2010.
Recientemente, ha finalizado el diseno de una nueva norma de codificacion de video, concretamente la Codificacion de Video de Alta Eficiencia (HEVC), por parte el Equipo de Colaboracion Conjunta en Codificacion de Video (JCT- VC) del Grupo de Expertos en Codificacion de Video (VCEG) de ITU-T y el Grupo de Expertos en Imagenes en Movimiento (MPEG) de ISO/IEC. El ultimo borrador de la memoria descriptiva HEVC, denominado HEVC WD10 a continuacion, esta disponible en:
http://phenix.int-evrv.fr/ict/doc end user/documents/12 Geneva/wg11/JCTVC- L1003-v34.zip. La cita completa de HEVC WD10 es Bross et al., "High Efficiency video Coding (HEVC), borrador de memoria descriptiva textual 10 (para FDIS y ultima llamada)," JCTVC-L1003_v34, Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) of ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 12.a reunion: Ginebra, Suiza, 14-23 de enero de 2013.
El JCT-3V tambien esta desarrollando la extension multivista para HEVC, a saber MV-HEVC. Un reciente Borrador de T rabajo (WD) de MV-HEVC, denominado MV-HEVC WD3 de aquf en adelante, esta disponible en:
http://phenix.it- sudparis.eu/ict2/doc end user/documents/3 Geneva/wg11/JCT3V-C1004-v4.zip. La cita completa de MV-HEVC WD3 es: Tech et al., "Borrador de Texto 3 de MV-HEVC (ISO/IEC 23008-2:201x/PDAM2)", JCT3V-C1004_d3, Equipo de Colaboracion Conjunta sobre Desarrollo de Extension de Codificacion 3Dvfdeo de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 3.a Reunion: Ginebra, Suiza, 17-23 de enero de 2013.
La extension escalable a HEVC, llamada SHVC, tambien esta siendo desarrollada por el JCT-VC. Un borrador de trabajo (WD) reciente de SHVC, denominado SHVC WD1 de aquf en adelante, esta disponible en:
http://phenix.intevrv.fr/jct/doc end user/documents/12 Geneva/wg11/JCTVC-L1008-v1.zip. La cita completa de SHVC WD1 es: Chen et al., "Borrador de Texto 1 de SHVC", JCTVC-L1008, Equipo de Colaboracion Conjunta sobre Codificacion de Video (JCT-VC) de la ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 12.a Reunion: Ginebra, Suiza, 14-23 de enero de 2013.
Actualmente, un Equipo de Colaboracion Conjunta en Codificacion de Video en 3D (JCT-3C) de VCEG y MPEG esta desarrollando una norma 3DV basandose en HEVC, para el cual parte de los esfuerzos de estandarizacion incluye la estandarizacion de MV-HEVC y otra parte de los esfuerzos de estandarizacion incluye la estandarizacion de la codificacion de video 3D (3DV) basandose en HEVC (3DHEVC). Para 3D-HEVC, se pueden incluir y soportar nuevas herramientas de codificacion, incluyendo aquellas a nivel de unidad de codificacion / unidad de prediccion, tanto para las vistas de textura como de profundidad. Un modelo de prueba de software de referencia reciente para 3D-HEVC (3D-HTM-7.0) se puede descargar desde el siguiente enlace:
https://heve.hhi.fraunhofer.de/svn/svn 3DVCSoftware/tags/HTM-7.0/.
Una cita completa para una descripcion de software de referencia reciente, asf como el borrador de trabajo de 3D- HEVC es la siguiente: Tech et al, "3D-HEVC Test Model 4", JCT3V-D1005_spec_v1, Equipo de Colaboracion Conjunta sobre Desarrollo de Extension de Codificacion de Video en 3D de la ITU-T SG 16 Wp 3 e ISO/IEC JTC 1/SC 29/WG 11, 4.a reunion: Incheon, Corea, 20-26 abr. 2013. Esta descripcion de software de referencia y borrador de trabajo de 3D-HEVC se puede descargar desde el siguiente enlace:
http://phenix.itsudparis.eu/jct2/doc end user/documents/4 Incheon/wg11/JCT3V-D1005-v1.zip.
Las tecnicas descritas en esta divulgacion pueden implementarse mediante un codificador de video que funciona de acuerdo con, por ejemplo, las extensiones MV-HEVC o 3D-HEVC de HEVC, o la extension MVC de H.264. Sin embargo, las tecnicas descritas en esta divulgacion no se limitan a esas normas, y pueden ampliarse a otras normas de codificacion de video descritas en el presente documento, u otras normas de codificacion de video no mencionadas en el presente documento, incluyendo normas que proporcionan prediccion residual en codificacion de video.
La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificacion y descodificacion de video de acuerdo con uno o mas ejemplos descritos en esta divulgacion. Por ejemplo, el sistema 10 incluye el dispositivo de origen 12 y el dispositivo objetivo 14. El dispositivo de origen 12 y el dispositivo objetivo 14 estan configurados para implementar las tecnicas descritas en esta divulgacion. En algunos ejemplos, el sistema 10 puede configurarse para soportar la codificacion, transmision, almacenamiento, descodificacion y/o presentacion de datos de video codificados, tales como datos de video codificados de acuerdo con la norma HEVC, por ejemplo, como se describe en WD10, y sus extensiones, tales como, por ejemplo, las extensiones descritas en MV-HEVc WD3, SHVC WD1, 3D-HEVC Test Model 4, o similares. Sin embargo, las tecnicas descritas en esta divulgacion pueden ser aplicables a otras normas de codificacion de video u otras extensiones.
Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera datos de video codificado, a descodificar en un momento posterior por parte de un dispositivo objetivo 14. El dispositivo de origen 12 y el dispositivo objetivo 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portatiles), ordenadores de tableta, descodificadores, equipos telefonicos de mano tales como los denominados telefonos “inteligentes”, los denominados paneles “inteligentes”, televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, un dispositivo de transmision de video o similares. En algunos casos, el dispositivo de origen 12 y el
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo objetivo 14 pueden estar equipados para la comunicacion inalambrica.
El dispositivo objetivo 14 puede recibir los datos de video codificados que se van a descodificar, mediante un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de video codificados desde el dispositivo de origen 12 al dispositivo objetivo 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicacion para permitir al dispositivo de origen 12 transmitir datos de video codificados directamente al dispositivo objetivo 14 en tiempo real. Los datos de video codificados pueden ser modulados de acuerdo con una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y transmitidos al dispositivo objetivo 14. El medio de comunicacion puede comprender cualquier medio de comunicacion inalambrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o mas lmeas de transmision ffsica. El medio de comunicacion puede formar parte de una red basandose en paquetes, tal como una red de area local, una red de area extensa o una red global tal como Internet. El medio de comunicacion puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser util para facilitar la comunicacion desde el dispositivo de origen 12 al dispositivo objetivo 14.
En algunos ejemplos, pueden emitirse datos codificados desde la interfaz de salida 22 hasta un dispositivo de almacenamiento 36. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento 34 mediante una interfaz de entrada 28. El dispositivo de almacenamiento 36 puede incluir cualquiera de entre una diversidad de medios de almacenamiento de datos de acceso distribuido o local, tales como una unidad de disco fijo, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volatil o no volatil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de video codificado. En un ejemplo adicional, el dispositivo de almacenamiento 36 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que pueda retener el video codificado generado por el dispositivo de origen 12. El dispositivo objetivo 14 puede acceder a los datos de video almacenados desde el dispositivo de almacenamiento 36 a traves de transmision en continuo o descarga. El servidor de ficheros puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo objetivo 14. Entre los ejemplos de servidores de archivos se incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectados a la red (NAS) o una unidad de disco local. El dispositivo objetivo 14 puede acceder a los datos de video codificados a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion de Wi-Fi), una conexion por cable (por ejemplo, DSL, modem de cable, etc.), o una combinacion de ambos que sea adecuada para acceder a datos de video codificado, almacenados en un servidor de ficheros. La transmision de datos de video codificados desde el dispositivo de almacenamiento 36 puede ser una transmision en continuo, una transmision de descarga o una combinacion de ambas.
Las tecnicas de esta divulgacion no estan limitadas, por supuesto, a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video, en soporte de cualquiera entre una diversidad de aplicaciones de multimedios, tales como difusiones de television por el aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones de video por flujo, por ejemplo, mediante Internet, codificacion de video digital para su almacenamiento en un medio de almacenamiento de datos, descodificacion de video digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para dar soporte a la transmision de video unidireccional o bidireccional, para prestar soporte a aplicaciones tales como la transmision de video, la reproduccion de video, la difusion de video y/o la videotelefoma.
En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de video 18, un codificador de video 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador / desmodulador (modem) y/o un transmisor. En el dispositivo de origen 12, la fuente de video 18 puede incluir una fuente tal como un dispositivo de captura de video, por ejemplo, una videocamara, un archivo de video que contiene video previamente capturado, una interfaz de alimentacion de video para recibir video desde un proveedor de contenido de video y/o un sistema de graficos de ordenador para generar datos de graficos de ordenador como el video de origen, o una combinacion de tales ongenes. En un ejemplo, si la fuente de video 18 es una videocamara, el dispositivo de origen 12 y el dispositivo objetivo 14 pueden formar los denominados telefonos con camara o videotelefonos. Sin embargo, las tecnicas descritas en esta divulgacion pueden ser aplicables a la codificacion de video en general, y pueden aplicarse a aplicaciones inalambricas y/o cableadas.
El video capturado, pre-capturado o generado por ordenador puede ser codificado por el codificador de video 12. Los datos de video codificados pueden ser transmitidos directamente al dispositivo objetivo 14 mediante la interfaz de salida 22 del dispositivo de origen 12. Los datos de video codificados tambien (o de forma alternativa) pueden almacenarse en el dispositivo de almacenamiento 36 para un acceso posterior por el dispositivo objetivo 14 u otros dispositivos, para descodificacion y/o reproduccion.
El dispositivo objetivo 14 incluye una interfaz de entrada 28, un descodificador de video 30 y un dispositivo de visualizacion 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un modem. La interfaz de entrada 28 del dispositivo objetivo 14 recibe los datos de video codificados por el enlace 16. Los datos de video codificado, comunicados por el enlace 16, o proporcionados en el dispositivo de almacenamiento 36, pueden incluir una diversidad de elementos sintacticos generados por el codificador de video 20, para su uso por un descodificador
5
10
15
20
25
30
35
40
45
50
55
60
65
de video, tal como el descodificador de video 30, en la descodificacion de los datos de video. Tales elementos sintacticos pueden incluirse con los datos de video codificado, transmitidos en un medio de comunicacion, almacenarse en un medio de almacenamiento o almacenarse en un servidor de ficheros.
El dispositivo de visualizacion 32 puede estar integrado con, o ser externo a, el dispositivo objetivo 14. En algunos ejemplos, el dispositivo objetivo 14 puede incluir un dispositivo de visualizacion integrado y tambien estar configurado para interconectarse con un dispositivo de visualizacion externo. En otros ejemplos, el dispositivo objetivo 14 puede ser un dispositivo de visualizacion. En general, el dispositivo de visualizacion 32 visualiza los datos de video descodificado a un usuario, y puede comprender cualquiera entre una variedad de dispositivos de visualizacion, tales como una pantalla de cristal lfquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
El codificador de video 20 y el descodificador de video 30 pueden funcionar de acuerdo con una norma de compresion de video, tal como la norma HEVC actualmente en desarrollo, asf como extensiones de la norma HEVC, por ejemplo, MV-HEVC, SHVC y 3D-HEVC. Sin embargo, las tecnicas de esta divulgacion no estan limitadas a ninguna norma de codificacion particular.
Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de video 20 y el descodificador de video 30 pueden estar integrado, cada uno de ellos, con un codificador y descodificador de audio, y pueden incluir unidades adecuadas de multiplexado y de multiplexado, u otro hardware y software, para gestionar la codificacion, tanto de audio como de video, en un flujo de datos comun o en flujos de datos diferentes. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden ajustarse al protocolo de multiplexado ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador de video 20 y el descodificador de video 30 pueden implementarse como cualquiera entre una variedad de circuitos de codificadores adecuados, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados de aplicacion especffica (ASIC), matrices de puertas programables in situ (FPGA), logica discreta, software, hardware, firmware o cualquier combinacion de estos. Cuando las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en unos medios legibles por ordenador no transitorios adecuados, y ejecutar las instrucciones en hardware mediante uno o mas procesadores que realizan las tecnicas de esta divulgacion. Tanto el codificador de video 20 como el descodificador de video 30 pueden estar incluidos en uno o mas codificadores o descodificadores, donde cualquiera de ambos puede estar integrado como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo.
El codificador de video 20 y el descodificador de video 30 pueden funcionar, en general, de acuerdo con HEVC WD10, MVHEVCWD3, SHVC WD1 y/o 3D-HEVC Test Model 4, como se ha descrito anteriormente, o con otras normas o extensiones similares en los que las tecnicas descritas en esta divulgacion pueden ser utiles. La norma HEVC especifica varias capacidades adicionales de los dispositivos de codificacion de video respecto a dispositivos existentes de acuerdo con, por ejemplo, la ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificacion de intra-prediccion, la norma HEVC puede proporcionar hasta treinta y tres modos de codificacion de intra-prediccion.
En general, una trama o imagen de video puede dividirse en una secuencia de bloques arbolados o unidades de codificacion de mayor tamano (LCU), que incluyen muestras tanto de luma como de croma. Un bloque arbolado en el proceso de codificacion de HEVC tiene un fin similar al de un macrobloque de la norma H.264. Un fragmento incluye un numero de bloques arbolados consecutivos en orden de codificacion. Una trama o imagen de video puede dividirse en uno o mas fragmentos. Cada bloque arbolado puede separarse en unidades de codificacion (CU) de acuerdo con un arbol cuadruple. Por ejemplo, un bloque arbolado, como un nodo rafz del arbol cuaternario, puede separarse en cuatro nodos hijo, y cada nodo hijo puede a su vez ser un nodo padre y dividirse en otros cuatro nodos hijo. Un nodo hijo final, no separado, como un nodo hoja del arbol cuaternario, comprende un nodo de codificacion, es decir, un bloque de video codificado. Los datos sintacticos asociados a un flujo de bits codificado pueden definir un numero maximo de veces que puede separarse un bloque arbolado, y tambien pueden definir un tamano mfnimo de los nodos de codificacion.
Una CU incluye un nodo de codificacion y unidades de prediccion (PU) y unidades de transformacion (TU) asociadas al nodo de codificacion. Un tamano de la CU corresponde a un tamano del nodo de codificacion y debe ser de forma cuadrada. El tamano de la CU puede variar desde 8 x 8 pfxeles hasta el tamano del bloque arbolado, con un maximo de 64 x 64 pfxeles o mas. Cada CU puede contener una o mas PU y una o mas TU. Los datos sintacticos asociados a una CU pueden describir, por ejemplo, la division de la CU en una o mas PU. Los modos de division pueden diferir dependiendo de si la CU esta codificada en modo de omision o directo, codificada en modo de intra-prediccion o codificada en modo de inter-prediccion. Las PU pueden dividirse para no tener forma cuadrada. Los datos sintacticos asociados a una CU tambien pueden describir, por ejemplo, la division de la CU en una o mas TU de acuerdo con un arbol cuadruple. Una TU puede tener forma cuadrada o no cuadrada.
La norma HEVC admite transformaciones de acuerdo con las TU, que pueden ser diferentes para diferentes CU. El
5
10
15
20
25
30
35
40
45
50
55
60
65
tamano de las TU tfpicamente se basa en el tamano de las PU de una CU dada definida para una LCU dividida, aunque puede que no siempre sea asf. Las TU presentan tfpicamente el mismo tamano o un tamano mas pequeno que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades mas pequenas mediante una estructura de arbol cuadruple conocida como "arbol cuadruple residual" (RQT). Los nodos hoja del RQT pueden denominarse unidades de transformacion (TU). Los valores de diferencias de pfxeles asociados a las TU pueden transformarse para generar coeficientes de transformacion, que pueden cuantificarse.
En general, una PU incluye datos relacionados con el proceso de prediccion. Por ejemplo, cuando la PU esta codificada en modalidad intra, la PU puede incluir datos que describen una modalidad de intra-prediccion para la PU. En otro ejemplo, cuando la PU esta codificada en la modalidad inter, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolucion para el vector de movimiento (por ejemplo, precision de pfxeles de un cuarto o precision de pfxeles de un octavo), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imagenes de referencia (por ejemplo, RefPicList0 (L0) o RefPicListl (L1)) para el vector de movimiento.
En general, se usa una TU para los procesos de transformacion y cuantificacion. Una CU dada que presenta una o mas PU tambien puede incluir una o mas unidades de transformacion (TU). Tras la prediccion, el codificador de video 20 puede calcular valores residuales correspondientes a la PU. Los valores residuales comprenden valores de diferencias de pfxeles que se pueden transformar en coeficientes de transformacion, cuantificar y escanear mediante las TU, para generar coeficientes de transformacion en serie para la codificacion por entropfa. Esta divulgacion usa tfpicamente el termino “bloque de video” para referirse a un nodo de codificacion de una CU. En algunos casos espedficos, esta divulgacion tambien puede usar el termino “bloque de video” para referirse a un bloque arbolado, es decir, una LCU o una CU, que incluye un nodo de codificacion y unas PU y TU.
Por ejemplo, para la codificacion de video de acuerdo con la norma HEVC, una trama de video puede dividirse en unidades de codificacion (CU), unidades de prediccion (PU) y unidades de transformacion (TU). Una CU en general se refiere a una region de la imagen que sirve como una unidad basica sobre la cual se aplican diversas herramientas de codificacion para la compresion de video. Una CU tiene tfpicamente una geometrfa cuadrada, y puede considerarse similar a un llamado "macro-bloque", en virtud de otras normas de codificacion de video, tales como, por ejemplo, la ITU-T H.264.
Para lograr una mejor eficiencia de codificacion, una CU puede tener un tamano variable dependiendo de los datos de video que contiene. Es decir, una CU se puede partir, o "dividir" en bloques mas pequenos, o sub-CU, cada uno de los cuales tambien se puede denominar Cu. Ademas, cada CU que no esta dividida en sub-CU puede dividirse en una o mas PU y TU con fines de prediccion y transformacion de la CU, respectivamente.
Las PU pueden considerarse similares a las llamadas particiones de un bloque bajo otras normas de codificacion de video, tales como H.264. Las PU son la base sobre la cual se realiza la prediccion para el bloque para producir coeficientes "residuales". Los coeficientes residuales de una CU representan una diferencia entre los datos de video de la CU y los datos predichos para la CU determinados usando una o mas PU de la CU. Especfficamente, la una o mas PU especifican como se divide la CU con el proposito de prediccion y que modo de prediccion se utiliza para predecir los datos de video contenidos dentro de cada particion de la CU.
Una o mas TU de una CU especifican particiones de un bloque de coeficientes residuales de la CU basandose en las cuales se aplica una transformacion al bloque para producir un bloque de coeficientes de transformacion residual para la CU. La o las TU tambien pueden asociarse con el tipo de transformacion que se aplica. La transformacion convierte los coeficientes residuales de un dominio de pixel o espacial, a un dominio de transformacion, como un dominio de frecuencia. Ademas, la una o mas TU pueden especificar parametros basandose en los cuales se aplica la cuantificacion al bloque resultante de coeficientes de transformacion residual para producir un bloque de coeficientes de transformacion residual cuantificados. Los coeficientes de transformacion residual pueden cuantificarse para posiblemente reducir la cantidad de datos utilizados para representar los coeficientes.
Una CU en general incluye un componente de luminancia, denominado Y, y dos componentes de crominancia, denominados U y V. En otras palabras, una CU dada que no esta dividida en sub-CU puede incluir componentes Y, U y V, cada uno de los cuales se puede dividir adicionalmente en una o mas PU y TU con fines de prediccion y transformacion de la CU, como se ha descrito anteriormente. Por ejemplo, dependiendo del formato de muestreo de video, el tamano de los componentes U y V, en terminos del numero de muestras, puede ser el mismo o diferente al tamano del componente Y. Como tales, las tecnicas descritas anteriormente con referencia a prediccion, transformacion y cuantificacion pueden realizarse para cada uno de los componentes Y, U y V de una CU dada.
Para codificar una CU, se obtienen primero uno o mas predictores para la CU basandose en una o mas PU de la CU. Un predictor es un bloque de referencia que contiene datos predichos para la CU, y se obtiene basandose en una PU correspondiente para la CU, como se ha descrito anteriormente. Por ejemplo, la PU indica una particion de la CU para la que se tienen que determinar los datos predichos, y un modo de prediccion utilizado para determinar
5
10
15
20
25
30
35
40
45
50
55
60
65
los datos predichos. Puede obtenerse el predictor, ya sea mediante los modos de intra- (I) prediccion (es decir, prediccion espacial) o la inter- (P o B) prediccion (es decir, prediccion temporal). Por lo tanto, algunas CU pueden estar intra-codificadas (I) usando la prediccion espacial con respecto a los bloques de referencia contiguos, o CU, en la misma trama, mientras que otras CU pueden estar inter-codificadas (P o B) con respecto a los bloques de referencia; CU, en otras tramas.
Tras la identificacion del uno o mas predictores basados en una o mas PU de la CU, se calcula una diferencia entre los datos de video originales de la CU correspondientes a una o mas PU y los datos predichos para la CU contenidos en uno o mas predictores. Esta diferencia, tambien denominada valor residual de prediccion, comprende coeficientes residuales y se refiere a diferencias de pixeles entre porciones de la CU especificadas por una o mas PU y los uno o mas predictores, tal como se ha descrito anteriormente. Los coeficientes residuales se disponen en general en una matriz bidimensional (2-D) que corresponde a una o mas PU de la CU.
Para lograr una mejor compresion, el valor residual de prediccion en general se transforma, por ejemplo, usando una transformacion de coseno discreta (DCT), una transformacion entera, una transformacion de Karhunen-Loeve (KL) u otra transformacion. La transformacion convierte el valor residual de prediccion, es decir, los coeficientes residuales, en el dominio espacial en coeficientes de transformacion residual en el dominio de transformacion, por ejemplo, un dominio de frecuencia, como tambien se ha descrito anteriormente. Los coeficientes de transformacion tambien se disponen en general en una matriz 2-D que corresponde a la una o mas TU de la CU. Para la compresion adicional, los coeficientes de transformacion residual pueden cuantificarse para posiblemente reducir la cantidad de datos utilizados para representar los coeficientes, como tambien se ha descrito anteriormente.
Para lograr una compresion aun mayor, un codificador por entropia codifica posteriormente los coeficientes de transformacion residual resultantes, utilizando Codificacion Aritmetica Binaria Adaptativa de Contexto (CABAC), Codificacion de Longitud Variable Adaptativa de Contexto (CAVLC), codificacion por entropia de Particion de Intervalo de Probabilidad (PIPE) u otra metodologfa de codificacion por entropia. La codificacion por entropia puede conseguir esta compresion adicional reduciendo o eliminando la redundancia estadfstica inherente en los datos de video de la CU, representada por los coeficientes, con relacion a otras CU.
Una secuencia de video incluye tfpicamente una serie de tramas o imagenes de video. Un grupo de imagenes (GOP) comprende en general una serie de una o mas de las imagenes de video. Un GOP puede incluir datos sintacticos en una cabecera del GOP, en una cabecera de una o mas de las imagenes o en otras ubicaciones, que describen un cierto numero de imagenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintacticos de fragmento que describen un modo de codificacion para el fragmento respectivo. Un codificador de video 20 actua tfpicamente sobre bloques de video de fragmentos de video individuales con el fin de codificar los datos de video. Un bloque de video puede corresponder a un nodo de codificacion de una CU. Los bloques de video pueden presentar tamanos fijos o variables y pueden diferir en tamano de acuerdo con una norma de codificacion especificada.
En un ejemplo, la HEVC soporta la prediccion en diversos tamanos de PU. Suponiendo que el tamano de una CU especffica sea 2Nx2N, la HEVC soporta la intra-prediccion en tamanos de PU de 2Nx2N o NxN, y la inter-prediccion en tamanos de PU simetrica de 2Nx2N, 2NxN, Nx2N o NxN. LA HEVC tambien soporta la division asimetrica para la inter-prediccion en tamanos de PU de 2NxnU,2NxnD, nLx2N y nRx2N En la division asimetrica, una direccion de una CU no esta dividida, mientras que la otra direccion esta dividida en 25 % y 75 %. La parte de la CU correspondiente a la division de 25 % esta indicada por una “n” seguida de una indicacion “arriba”, “abajo”, “izquierda” o “derecha”. Asf, por ejemplo, “2NxnU” se refiere a una CU de tamano 2Nx2N que esta dividida horizontalmente, con una PU de tamano 2Nx0,5N encima y una PU de tamano 2Nx1,5N debajo.
En esta divulgacion, "NxN" y "N por N" pueden usarse de manera intercambiable para hacer referencia a las dimensiones de pixeles de un bloque de video, en terminos de dimensiones verticales y horizontales, por ejemplo, 16x 16 pixeles o 16 por 16 pixeles. En general, un bloque de 16x16 tendra 16 pixeles en una direccion vertical (y = 16) y 16 pixeles en la direccion horizontal (x = 16). Asimismo, un bloque de tamano NxN tiene en general N pixeles en una direccion vertical y N pixeles en una direccion horizontal, donde N representa un valor entero no negativo. Los pixeles en un bloque pueden estar ordenados en filas y columnas. Ademas, los bloques no necesitan presentar necesariamente el mismo numero de pixeles en la direccion horizontal y en la direccion vertical. Por ejemplo, los bloques pueden comprender NxM pixeles, donde M no es necesariamente igual a N.
Tras la codificacion de intra-prediccion o inter-prediccion mediante las PU de una CU, el codificador de video 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de pixeles en el dominio espacial (tambien denominado dominio de pixeles) y las TU pueden comprender coeficientes en el dominio de transformacion tras la aplicacion de una transformacion, por ejemplo, una transformacion de coseno discreta (DCT), una transformacion entera, una transformacion de wavelet o una transformacion similar desde un punto de vista conceptual a los datos de video residuales. Los datos residuales pueden corresponder a diferencias de pixeles entre pixeles de la imagen no codificada y valores de prediccion correspondientes a las PU. El codificador de video 20 puede formar las TU incluyendo los datos residuales para la CU, y a continuacion transformar las TU para generar
5
10
15
20
25
30
35
40
45
50
55
60
65
coeficientes de transformacion para la CU.
Tras cualquier transformacion para generar coeficientes de transformacion, el codificador de video 20 puede realizar la cuantificacion de los coeficientes de transformacion. La cuantificacion se refiere en general a un proceso en el que los coeficientes de transformacion se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresion adicional. El proceso de cuantificacion puede reducir la profundidad de bits asociada a algunos o la totalidad de los coeficientes. Por ejemplo, un valor de n bits puede redondearse a la baja hasta un valor de m bits durante la cuantificacion, donde n es mayor que m.
En algunos ejemplos, el codificador de video 20 puede usar un orden de escaneado predefinido para escanear los coeficientes de transformacion cuantificados y generar un vector en serie que pueda someterse a la codificacion por entropfa. En otros ejemplos, el codificador de video 20 puede realizar un escaneado adaptativo. Despues de escanear los coeficientes de transformacion cuantificados para formar un vector unidimensional, el codificador de video 20 puede realizar la codificacion por entropfa del vector unidimensional, por ejemplo, de acuerdo con la codificacion de longitud variable adaptativa de acuerdo con el contexto (CAVLC), la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), la codificacion aritmetica binaria adaptativa segun el contexto basandose en la sintaxis (SBAC), la codificacion por entropfa por division de intervalos de probabilidad (PIPE) u otros procedimientos de codificacion por entropfa. El codificador de video 20 tambien puede realizar la codificacion por entropfa de elementos sintacticos asociados a los datos de video codificados para su uso por el descodificador de video 30 en la descodificacion de los datos de video.
Para realizar la CABAC, el codificador de video 20 puede asignar un contexto de un modelo contextual a un sfmbolo que se va a transmitir. El contexto puede referirse, por ejemplo, a si los valores contiguos del sfmbolo son distintos de cero o no. Para realizar la CAVLC, el codificador de video 20 puede seleccionar un codigo de longitud variable para un sfmbolo que se va a transmitir. Las palabras de codigo en la VLC pueden construirse de forma que los codigos relativamente mas cortos correspondan a sfmbolos mas probables, mientras que los codigos mas largos correspondan a sfmbolos menos probables. De esta manera, el uso de la VLC puede permitir un ahorro en bits con respecto, por ejemplo, al uso de palabras de codigo de igual longitud para cada sfmbolo que se va a transmitir. La determinacion de la probabilidad puede basarse en un contexto asignado al sfmbolo.
Ademas, el codificador de video 20 puede enviar datos sintacticos, tales como datos sintacticos basandose en bloques, datos sintacticos basandose en tramas y datos sintacticos basandose en GOP, al descodificador de video 30, por ejemplo, en una cabecera de trama, una cabecera de bloque, una cabecera de fragmento o una cabecera de GOP. Los datos sintacticos de GOP pueden describir un numero de tramas en el respectivo GOP, y los datos sintacticos de trama pueden indicar una modalidad de codificacion/prediccion utilizada para codificar la trama correspondiente.
Ademas, el codificador de video 20 puede descodificar o reconstruir imagenes codificadas, por ejemplo, mediante cuantificacion inversa y transformacion inversa de datos residuales, y combinar los datos residuales con datos de prediccion. De esta manera, el codificador de video 20 puede simular el proceso de descodificacion realizado por el descodificador de video 30. Tanto el codificador de video 20 como el descodificador de video 30, por lo tanto, tendran acceso a esencialmente las mismas imagenes descodificadas o reconstruidas, para su uso en la prediccion entre imagenes.
En general, el descodificador de video 30 puede realizar un proceso de descodificacion que es el inverso al proceso de codificacion realizado por el codificador de video. Por ejemplo, el descodificador de video 30 puede realizar la descodificacion por entropfa usando la inversa de las tecnicas de codificacion por entropfa usadas por el codificador de video para codificar por entropfa los datos de video cuantificados. El descodificador de video 30 puede ademas cuantificar inversamente los datos de video usando la inversa de las tecnicas de cuantificacion empleadas por el codificador de video 20, y puede realizar una inversa de la transformacion usada por el codificador de video 20 para producir los coeficientes de transformacion que estan cuantificados. El descodificador de video 30 puede entonces aplicar los bloques residuales resultantes a los bloques de referencia adyacentes (intra-prediccion) o a bloques de referencia procedentes de otra imagen (inter-prediccion), para producir el bloque de video para su exhibicion eventual. El descodificador de video 30 puede ser configurado, instruido, controlado o dirigido para realizar la inversa de los diversos procesos realizados por el codificador de video 20, basandose en los elementos sintacticos proporcionados por el codificador de video 20, con los datos de video codificados en el flujo de bits recibido por el descodificador de video 30. Tal como se utiliza en el presente documento, el termino "codificador de video" puede referirse a un codificador de video, tal como un codificador de video 20, o un descodificador de video, tal como un descodificador de video 30. Ademas, los terminos "codificacion de video" o "codificacion" pueden referirse a cualquiera o ambas de codificacion, por ejemplo, mediante un codificador de video, o descodificacion, por ejemplo, mediante un descodificador de video.
En algunos ejemplos, el codificador de video 20 y el descodificador de video 30 (FIG. 1) pueden emplear tecnicas para la codificacion de video multivista, por ejemplo, la codificacion de datos de video que incluyen dos o mas vistas. En tales ejemplos, el codificador de video 20 puede codificar un flujo de bits que incluye datos de video codificados para dos o mas vistas, y el descodificador de video 30 puede descodificar los datos de video codificados para
5
10
15
20
25
30
35
40
45
50
55
60
65
proporcionar las dos o mas vistas, por ejemplo, al dispositivo de visualizacion 32. En algunos ejemplos, el descodificador de video 30 puede proporcionar las multiples vistas de datos de video para permitir al dispositivo de visualizacion 32 exhibir video tridimensional. En algunos ejemplos, el codificador de video 20 y el descodificador de video 30 pueden ser conformes a una extension 3D-HEVC de la norma HEVC, por ejemplo, en la cual se usan procesos de codificacion multivista y de codificacion multivista con profundidad. La codificacion de video multivista, o tridimensional, puede implicar la codificacion de dos o mas vistas de textura, y/o vistas que incluyan componentes de textura y de profundidad. En algunos ejemplos, los datos de video codificados por el codificador de video 20 y descodificados por el descodificador de video 30 incluyen dos o mas imagenes en cualquier instancia temporal dada, es dedr, dentro de una “unidad de acceso”, o datos a partir de los cuales pueden obtenerse dos o mas imagenes en cualquier instancia temporal dada.
En algunos ejemplos, un dispositivo, por ejemplo, la fuente de video 18, puede generar las dos o mas imagenes, por ejemplo, usando dos o mas camaras espacialmente desplazadas, u otros dispositivos de captura de video, para capturar una escena comun. Dos imagenes de la misma escena capturadas simultaneamente, o casi simultaneamente, desde posiciones horizontales levemente distintas, pueden ser usadas para producir un efecto tridimensional. En algunos ejemplos, la fuente de video 18 (u otro componente del dispositivo de origen 12) puede usar informacion de profundidad o informacion de disparidad para generar una segunda imagen (u otra adicional) de una segunda vista (u otra adicional) en una instancia temporal dada, a partir de una primera imagen de una primera vista en la instancia temporal dada. En este caso, una vista dentro de una unidad de acceso puede incluir un componente de textura correspondiente a una primera vista y un componente de profundidad que puede ser usado, con el componente de textura, para generar una segunda vista. La informacion de profundidad o disparidad puede ser determinada por un dispositivo de captura de video que captura la primera vista, por ejemplo, basandose en parametros de camara u otra informacion conocida, con respecto a la configuracion del dispositivo de captura de video y a la captura de los datos de video para la primera vista. La informacion de profundidad o disparidad puede ser calculada, adicionalmente o de forma alternativa, por la fuente de video 18 u otro componente del dispositivo de origen 12, a partir de parametros de camara y/o datos de video en la primera vista.
Para presentar video tridimensional, el dispositivo de visualizacion 32 puede exhibir, simultaneamente, o casi simultaneamente, dos imagenes asociadas a distintas vistas de una escena comun, que fueron capturadas simultaneamente, o casi simultaneamente. En algunos ejemplos, un usuario del dispositivo objetivo 14 puede usar gafas activas para obturar, rapidamente y de forma alternativa, las lentes izquierda y derecha, y el dispositivo de visualizacion 32 puede conmutar rapidamente entre una vista izquierda y una vista derecha, en sincronizacion con las gafas activas. En otros ejemplos, el dispositivo de visualizacion 32 puede exhibir las dos vistas simultaneamente, y el usuario puede usar gafas pasivas, por ejemplo, con lentes polarizadas, que filtran las vistas para hacer que las vistas adecuadas pasen a traves hasta los ojos del usuario. En otros ejemplos, el dispositivo de visualizacion 32 puede comprender un visor auto-estereoscopico, que no requiere gafas para que el usuario perciba el efecto tridimensional.
La codificacion de video multivista se refiere a la manera en la que se codifica una pluralidad de vistas. En el caso de la codificacion de video en 3D, la pluralidad de vistas puede, por ejemplo, corresponder a una vista de ojo izquierdo y una vista de ojo derecho. Cada vista de la pluralidad de vistas incluye una pluralidad de imagenes. La percepcion del espectador de una escena 3D se debe a la disparidad horizontal entre los objetos en las imagenes de las diferentes vistas.
Un vector de disparidad (DV) para un bloque actual de una imagen actual es un vector que apunta a un bloque correspondiente en una imagen correspondiente que esta en una vista diferente a la imagen actual. Por tanto, utilizando un DV, un codificador de video puede localizar, en una imagen correspondiente, el bloque de aquel que corresponde a un bloque actual de una imagen actual. En este caso, la imagen correspondiente es una imagen que es de la misma instancia temporal que la imagen actual pero que esta en una vista diferente. El bloque correspondiente en la imagen correspondiente y el bloque actual en la imagen actual pueden incluir contenido de video similar; sin embargo, hay al menos una disparidad horizontal entre la ubicacion del bloque actual en la imagen actual y la ubicacion del bloque correspondiente en la imagen correspondiente. El DV del bloque actual proporciona una medida de esta disparidad horizontal entre el bloque en la imagen correspondiente y el bloque actual en la imagen actual.
En algunos casos, tambien puede haber disparidad vertical entre la ubicacion del bloque dentro de la imagen correspondiente y la ubicacion del bloque actual dentro de la imagen actual. El DV del bloque actual tambien puede proporcionar una medida de esta disparidad vertical entre el bloque en la imagen correspondiente y el bloque actual en la imagen actual. Un DV contiene dos componentes (un componente x y un componente y), aunque en muchos casos el componente vertical sera igual a cero. El tiempo en que se muestra la imagen actual de la vista actual y la imagen correspondiente de la vista diferente puede ser el mismo, es decir, la imagen actual y las imagenes correspondientes son imagenes de la misma instancia temporal.
En la codificacion de video, en general hay dos tipos de prediccion, comunmente denominados intra-prediccion e inter-prediccion. En la intra-prediccion, un codificador de video predice un bloque de video en una imagen basandose en un bloque ya codificado en la misma imagen. En la inter-prediccion, un codificador de video predice
5
10
15
20
25
30
35
40
45
50
55
60
65
un bloque de video en una imagen basandose en un bloque ya codificado de una imagen diferente (es decir, una imagen de referencia). Una imagen de referencia, tal como se utiliza en esta divulgacion, se refiere en general a cualquier imagen que contenga muestras que puedan ser utilizadas para la inter-prediccion en el proceso de descodificacion de imagenes posteriores en orden de descodificacion. Cuando se codifica un contenido multivista, por ejemplo de acuerdo con 3D-HEVC, con respecto a una imagen actual, las imagenes de referencia pueden ser de la misma instancia temporal pero en una vista diferente o pueden estar en la misma vista pero de una instancia temporal diferente. En el caso de la codificacion multivista, por ejemplo, en la 3D-HEVC, la prediccion entre imagenes puede incluir la prediccion del bloque de video actual, por ejemplo, el nodo de codificacion actual de una CU, a partir de otro bloque de video en una imagen temporalmente distinta, es decir, a partir de una unidad de acceso distinta a la de la imagen actual, asf como la prediccion a partir de una imagen distinta en la misma unidad de acceso que la imagen actual, pero asociada a una vista distinta a la de la imagen actual.
En el ultimo caso de la inter-prediccion, puede denominarse codificacion inter-vista o prediccion de inter-vista. En la codificacion multivista, la prediccion de inter-vista se realiza entre las imagenes capturadas en las diferentes vistas de la misma unidad de acceso (es decir, con la misma instancia de tiempo) para eliminar la correlacion entre las vistas. Al codificar una imagen de una vista no de base, por ejemplo, una vista dependiente, una imagen de la misma unidad de acceso, pero de una vista distinta, por ejemplo, de una vista de referencia, como la vista de base, puede anadirse a una lista de imagenes de referencia. Una imagen de referencia de inter-vista puede ponerse en cualquier posicion de una lista de imagenes de referencia, como es el caso con cualquier imagen de referencia de inter-prediccion (por ejemplo, temporal o inter-vista).
El bloque de la imagen de referencia utilizado para predecir el bloque de la imagen actual se identifica mediante un vector de movimiento. En la codificacion multivista, hay al menos dos clases de vectores de movimiento. Un vector de movimiento temporal (TMV) es un vector de movimiento que apunta a un bloque en una imagen de referencia temporal que esta en la misma vista que el bloque que esta siendo codificado, pero en una instancia de tiempo o unidad de acceso diferente al bloque que esta siendo codificado, y la inter-prediccion correspondiente se denomina prediccion compensada por movimiento (MCP). Otro tipo de vector de movimiento es un vector de movimiento de disparidad (DMV), que apunta a un bloque en una imagen en la misma imagen actual de unidad de acceso, pero de una vista distinta. Con un DMV, la correspondiente inter-prediccion se denomina prediccion compensada por disparidad (DCP) o prediccion de inter-vista.
La FIG. 2 es un diagrama grafico que ilustra un ejemplo de orden de codificacion o descodificacion multivista. La disposicion de orden de descodificacion ilustrada en la FIG. 2 puede denominarse codificacion de primera vez. En general, una secuencia de video en 3D o multivista puede incluir, para cada unidad de acceso (es decir, con la misma instancia de tiempo), dos o mas imagenes para cada una de dos o mas vistas, respectivamente. En la FIG. 2, S0-S7 se refieren a diferentes vistas del video multivista. Cada T0-T8 representa una instancia de tiempo de salida. Una unidad de acceso puede incluir las imagenes codificadas de todas las vistas para una instancia de tiempo de salida. Por ejemplo, una primera unidad de acceso incluye todas las vistas S0-S7 para la instancia de tiempo T0 (es decir, las imagenes 0-7), una segunda unidad de acceso incluye todas las vistas S0-S7 para la instancia de tiempo T1 (es decir, las imagenes 8-15), etcetera. En este ejemplo, las imagenes 0-7 estan en una misma instancia de tiempo (es decir, la instancia de tiempo T0), las imagenes 8-15 en una misma instancia de tiempo (es decir, la instancia de tiempo T1). Las imagenes con la misma instancia de tiempo se muestran en general al mismo tiempo, y es la disparidad horizontal, y posiblemente alguna disparidad vertical, entre los objetos dentro de las imagenes de la misma instancia de tiempo las que hacen que el espectador perciba una imagen que abarca un volumen en 3D.
En la FIG. 2, cada una de las vistas incluye conjuntos de imagenes. Por ejemplo, la vista S0 incluye un conjunto de imagenes 0, 8, 16, 24, 32, 40, 48, 56 y 64, la vista S1 incluye el conjunto de imagenes 1, 9, 17, 25, 33, 41, 49, 57 y 65, etc. Cada conjunto incluye dos imagenes: una imagen se denomina componente de vista de textura, y la otra imagen se denomina componente de vista de profundidad. El componente de vista de textura y el componente de vista de profundidad dentro de un conjunto de imagenes de una vista pueden considerarse como correspondientes entre si. Por ejemplo, el componente de vista de textura dentro de un conjunto de imagenes de una vista puede considerarse como correspondiente al componente de vista de profundidad dentro del conjunto de las imagenes de la vista, y viceversa (es decir, el componente de vista de profundidad corresponde a su componente de vista de textura en el conjunto, y viceversa). Tal como se utiliza en esta divulgacion, un componente de vista de textura y un componente de vista en profundidad correspondientes pueden considerarse parte de una misma vista de una unica unidad de acceso.
El componente de vista de textura incluye el contenido de imagen real que se muestra. Por ejemplo, el componente de vista de textura puede incluir los componentes de luma (Y) y croma (Cb y Cr). El componente de vista de profundidad puede indicar profundidades relativas de los pfxeles en su componente de vista de textura correspondiente. Como un ejemplo, el componente de vista de profundidad puede ser similar a una imagen en escala de grises que incluye unicamente valores de luma. En otras palabras, el componente de vista de profundidad tal vez no transmita ningun contenido de imagen, pero en lugar de eso proporcione una medida de las profundidades relativas de los pfxeles en el componente de vista de textura.
Por ejemplo, un valor de pixel correspondiente a un pixel puramente blanco en el componente de vista de
5
10
15
20
25
30
35
40
45
50
55
60
65
profundidad puede indicar que su correspondiente pixel o pixeles en el componente de vista de textura correspondiente esta mas cerca de la perspectiva del espectador, y un valor de pixel correspondiente a un pixel puramente negro en el componente de vista de profundidad puede indicar que su correspondiente pixel o pixeles en el componente de vista de textura correspondiente esta mas alejado de la perspectiva del espectador. Los valores de pixel correspondientes a los diversos tonos de gris entre negro y blanco indican diferentes niveles de profundidad. Por ejemplo, un pixel muy gris en el componente de vista de profundidad indica que su pixel correspondiente en el componente de vista de textura esta mas alejado que un pixel ligeramente gris en el componente de vista de profundidad. Dado que solo se necesita un valor de pixel, similar a la escala de grises, para identificar la profundidad de pixeles, el componente de vista de profundidad puede incluir solo un valor de pixel. Por lo tanto, no son necesarios valores analogos a los componentes de croma.
El componente de vista de profundidad que utiliza solo valores de luma (por ejemplo, valores de intensidad) para identificar la profundidad se proporciona con fines ilustrativos y no debe considerarse limitante. En otros ejemplos, puede utilizarse cualquier tecnica para indicar las profundidades relativas de los pixeles en el componente de vista de textura.
De acuerdo con la codificacion multivista, los componentes de vista de textura se inter-predicen a partir de componentes de vista de textura en la misma vista o de componentes de vista de textura en una o mas vistas diferentes. Los componentes de vista de textura pueden codificarse en bloques de datos de video, que se denominan "bloques de video" y comunmente llamados macrobloques en el contexto H.264, o bloques arbolados o unidades de codificacion (CU) en el contexto HEVC.
Las imagenes de cualquier instancia de tiempo similar pueden incluir contenido similar. Sin embargo, el contenido de video de diferentes imagenes en una instancia de tiempo similar puede estar ligeramente desplazada en la direccion horizontal uno con relacion al otro. Por ejemplo, si un bloque se encuentra en (x, y) en la imagen 0 de la vista S0, un bloque situado en (x+x ', y) en la imagen 1 de la vista S1 incluye contenido de video similar al bloque situado en (x, y) en la imagen 0 de la vista S0. En este ejemplo, el bloque situado en (x, y) en la imagen 0 de la vista S0 y el bloque situado en (x + x ', y) en la imagen 1 de la vista S1 se consideran bloques correspondientes. En algunos ejemplos, un DV para el bloque situado en (x+x ', y) en la imagen 1 de la vista S1 se refiere a la ubicacion de su bloque correspondiente. Por ejemplo, el DV para el bloque situado en (x+x ', y) es (-x', 0).
En algunos ejemplos, el codificador de video 20 o el descodificador de video 30 pueden utilizar el DV de un bloque en una imagen de una primera vista para identificar el bloque correspondiente en una imagen de una segunda vista. El codificador de video 20 y el descodificador de video 20 pueden, por ejemplo, utilizar el DV cuando se realiza una prediccion de inter-vista. El codificador de video 20 y el descodificador de video 30 pueden, por ejemplo, realizar una prediccion de inter-vista utilizando informacion de un bloque de referencia de una imagen de referencia en una vista de referencia determinada por el DV del bloque actual.
La FIG. 3 es un diagrama conceptual que ilustra un ejemplo de patron de prediccion temporal y de inter-vista para la codificacion de video multivista. De forma similar al ejemplo de la FIG. 2, en el ejemplo de la FIG. 3, se ilustran ocho vistas (con ID de vista "S0" a "S7") y se ilustran doce unidades de acceso o posiciones temporales ("T0" a "T11") para cada vista. Es decir, cada fila de la FIG. 3 corresponde a una vista, mientras que cada columna indica una unidad de acceso o ubicacion temporal. Los objetos (que pueden ser imagenes, o bloques de video de ejemplo en imagenes diferentes) se indican en la interseccion de cada fila y cada columna de la FIG. 3. La norma H.264/AVC con extensiones MVC puede usar el termino trama para representar una porcion del video, mientras que la norma HEVC puede usar el termino imagen para representar una porcion del video. Esta divulgacion utiliza el termino imagen y trama de forma intercambiable.
En la FIG. 3, la vista S0 puede considerarse como una vista de base, y las vistas S1-S7 pueden considerarse como vistas dependientes. Una vista de base incluye imagenes que no estan predichas con inter-vista. Las imagenes en una vista de base pueden inter-predecirse con respecto a otras imagenes en la misma vista. Por ejemplo, ninguna de las imagenes en vista S0 puede inter-predecirse con respecto a una imagen en cualquiera de las vistas S1-S7, pero algunas de las imagenes en la vista S0 pueden inter-predecirse con respecto a otras imagenes en la vista S0.
Ademas, las unidades de acceso T0 y T8 son unidades de acceso aleatorio o puntos de acceso aleatorio para la secuencia de video de la estructura de prediccion de ejemplo de la FIG. 3. Como se ilustra mediante los bloques etiquetados como "I" en la estructura de prediccion de ejemplo de la FIG. 3, en cada punto de acceso aleatorio (TO y T8), los bloques de video de la imagen de vista de base (SO) son predichos intra-imagen. Los bloques de video de otras imagenes de vistas no de base en los puntos de acceso aleatorio, o de imagenes de vista de base y no de base en puntos de acceso no aleatorios, pueden predecirse entre imagenes, ya sea mediante inter-prediccion temporal o prediccion de inter-vista, como se ilustra mediante los diversos bloques etiquetados como "I", "B", "P" o "b" en la estructura de prediccion de ejemplo de la FIG. 3. Las predicciones en la estructura de prediccion de ejemplo de la FIG. 3 se indican mediante flechas, donde el objeto al que se apunta utiliza el objeto desde el que se apunta como referencia de prediccion.
Una vista dependiente incluye imagenes con prediccion de inter-vista. Por ejemplo, cada una de las vistas S1-S7
5
10
15
20
25
30
35
40
45
50
55
60
65
incluye al menos una imagen que esta inter-predicha con respecto a una imagen en otra vista. Las imagenes en una vista dependiente pueden inter-predecirse con respecto a las imagenes en la vista de base, o pueden inter- predecirse con respecto a las imagenes en otras vistas dependientes. En el ejemplo de la FIG. 3, la letra "B" mayuscula y la "b" minuscula se utilizan para indicar diferentes relaciones jerarquicas entre las imagenes, en lugar de diferentes metodologfas de codificacion. En general, las imagenes con "B" mayuscula son relativamente mas altas en la jerarqufa de prediccion que las tramas con "b" minuscula.
Una secuencia de video que incluye tanto una vista de base como una o mas vistas dependientes pueden ser decodificables mediante diferentes tipos de descodificadores de video. Por ejemplo, un tipo basico de descodificador de video puede estar configurado para descodificar solamente la vista de base. Ademas, puede configurarse otro tipo de descodificador de video para descodificar cada una de las vistas S0 a S7. Un descodificador que esta configurado para descodificar tanto la vista de base como las vistas dependientes puede denominarse un descodificador que soporta codificacion multivista.
Las imagenes (u otros objetos) de la FIG. 3 se ilustran usando un bloque sombreado que incluye una letra, que designa si la imagen correspondiente esta intra-codificada (es decir, una imagen I), inter-codificada en una direccion (es decir, como una imagen P) o inter-codificada en multiples direcciones (es decir, como una imagen B). En general, las predicciones se indican mediante flechas, donde las imagenes a las que se apunta utilizan la imagen desde la que se apunta como referencia de prediccion. Por ejemplo, la imagen P de la vista S2 en la ubicacion temporal T0 se predice a partir de la imagen I de la vista S0 en la ubicacion temporal T0.
Al igual que con la codificacion de video de vista unica, las imagenes de una secuencia de video de codificacion de video multivista pueden codificarse predictivamente con respecto a las imagenes en diferentes ubicaciones temporales. Por ejemplo, la imagen B de la vista S0 en la ubicacion temporal T1 tiene una flecha apuntando a la misma desde la imagen I de la vista S0 en la ubicacion temporal T0, lo cual indica que la imagen b se predice a partir de la imagen I. Adicionalmente, sin embargo, en el contexto de la codificacion de video multivista, las imagenes pueden tener prediccion de inter-vista. Es decir, un componente de vista (por ejemplo, un componente de vista de textura) puede utilizar los componentes de vista en otras vistas como referencia. En codificacion multivista, por ejemplo, la prediccion de inter-vista se realiza como si el componente de vista en otra vista fuera una referencia de inter-prediccion. Las posibles referencias de inter-vista pueden senalarse, y pueden modificarse mediante el proceso de construccion de la lista de imagenes de referencia, lo cual permite el ordenamiento flexible de las referencias de inter-prediccion o de prediccion de inter-vista.
La FIG. 3 proporciona varios ejemplos de prediccion de inter-vista. Las imagenes de la vista S1, en el ejemplo de la FIG. 3, se ilustran como predichas a partir de imagenes en diferentes ubicaciones temporales de la vista S1, asf como con prediccion de inter-vista a partir de imagenes de vistas S0 y S2 en las mismas ubicaciones temporales. Por ejemplo, la imagen B de la vista S1 en la ubicacion temporal T1 se predice a partir de cada una de las imagenes B de la vista S1 en las ubicaciones temporales T0 y T2, asf como las imagenes B de las vistas S0 y S2 en la ubicacion temporal T1.
La FIG. 3 tambien ilustra las variaciones en la jerarqufa de prediccion utilizando diferentes niveles de sombreado, donde las tramas con una mayor magnitud de sombreado (es decir, relativamente mas oscuras) estan mas altas en la jerarqufa de prediccion que aquellas tramas que tienen menos sombreado (es decir, relativamente mas claras). Por ejemplo, todas las imagenes I en la FIG. 3 se ilustran con sombreado completo, mientras que las imagenes P tienen un sombreado algo mas claro, y las imagenes B (y las imagenes con b minuscula) tienen diversos niveles de sombreado, pero siempre mas claros que el sombreado de las imagenes P y las imagenes I.
En general, la jerarqufa de prediccion puede estar relacionada con indices de orden de vista, en que las imagenes relativamente mas altas en la jerarqufa de prediccion deberfan descodificarse antes de descodificar imagenes que son relativamente mas bajas en la jerarqufa. Esas imagenes relativamente mas altas en la jerarqufa pueden utilizarse como imagenes de referencia durante la descodificacion de las imagenes relativamente mas bajas en la jerarqufa. Un fndice de orden de vista es un fndice que indica el orden de descodificacion de componentes de vista en una unidad de acceso. La descodificacion de los componentes de vista puede seguir el orden ascendente del fndice de orden de vista. Si se presentan todas las vistas, entonces el conjunto de indices de orden de vista puede comprender un conjunto consecutivamente ordenado de cero a uno menos que el numero total de vistas.
Para ciertas imagenes a niveles iguales de la jerarqufa, el orden de descodificacion entre ellas puede no importar. Por ejemplo, la imagen I de la vista S0 en la posicion temporal T0 puede utilizarse como imagen de referencia para la imagen P de la vista S2 en la posicion temporal T0, que a su vez puede utilizarse como imagen de referencia para la imagen P de la vista S4 en la posicion temporal T0. En consecuencia, la imagen I de la vista S0 en la posicion temporal T0 deberfa descodificarse antes que la imagen P de la vista S2 en la posicion temporal T0, que a su vez deberfa descodificarse antes de la imagen P de la vista S4 en la posicion temporal T0. Sin embargo, entre las vistas S1 y S3, no importa un orden de descodificacion, porque las vistas S1 y S3 no dependen la una de la otra para la prediccion. En su lugar, las vistas S1 y S3 se predicen solo a partir de otras vistas que estan mas altas en la jerarqufa de prediccion. Ademas, la vista S1 puede descodificarse antes que la vista S4, siempre que la vista S1 se descodifique despues de las vistas S0 y S2.
5
10
15
20
25
30
35
40
45
50
55
60
65
Como se ha descrito anteriormente, en 3D-HEVC, el codificador de video 20 y el descodificador de video 30 pueden inter-predecir un bloque actual dentro de una imagen actual de una primera vista con referencia a un bloque de referencia dentro de una imagen de referencia de una segunda vista. Dicha inter-prediccion se denomina prediccion de inter-vista. La instancia de tiempo de la imagen actual y la imagen de referencia pueden ser las mismas en vistas respectivas. En tales ejemplos, el codificador de video 20 o el descodificador de video 30 realizan prediccion de inter-vista a traves de imagenes en una misma unidad de acceso, donde las imagenes en la misma unidad de acceso estan en la misma instancia de tiempo.
Para realizar una prediccion de inter-vista sobre el bloque actual, el codificador de video 20 o el descodificador de video 30 construyen listas de imagenes de referencia que identifican imagenes de referencia que pueden usarse para inter-prediccion, incluyendo imagenes que pueden usarse para la prediccion de inter-vista. La inter-prediccion se refiere a la prediccion de un bloque actual en una imagen actual con respecto a un bloque de referencia en una imagen de referencia. La prediccion de inter-vista es un subconjunto de inter-prediccion en que en la prediccion de inter-vista, la imagen de referencia esta en una vista diferente a la vista de la imagen actual. Por consiguiente, para la prediccion de inter-vista, el codificador de video 20 y el descodificador de video 30 anaden la imagen de referencia en la otra vista en una o ambas listas de imagenes de referencia construidas. La imagen de referencia en la otra vista puede identificarse en cualquier posicion dentro de las listas de imagenes de referencia construidas. Tal como se utiliza en esta divulgacion, cuando el codificador de video 20 realiza inter-prediccion (por ejemplo, inter- prediciendo) en un bloque, el codificador de video 20 puede considerarse como una codificacion de inter-prediccion de un bloque. Cuando el descodificador de video 30 esta realizando una inter prediccion (por ejemplo, inter- prediciendo) en un bloque, el descodificador de video 30 puede considerarse como inter-prediccion descodificando un bloque. En la prediccion de inter-vista, un DMV para el bloque de video actual identifica una ubicacion del bloque en una imagen de referencia en una vista distinta a la vista en la que la imagen incluye el bloque de video a predecir que se va a utilizar como bloque de referencia para inter-predecir el bloque actual, y un indice de referencia en una o ambas listas de imagenes de referencia construidas identifica la imagen de referencia en la otra vista.
Esta divulgacion describe tecnicas para realizar ARP que incluyen identificar un DMV del bloque de video actual o de un bloque de video de referencia y determinar un bloque de prediccion residual para el bloque de video actual basandose en el DMV identificado. Un DMV del bloque de video actual, o de un bloque de video de referencia en la misma vista que el bloque de video actual, puede considerarse un DMV desde la vista actual de un bloque de video actual a una vista de referencia que se usa para la prediccion de inter-vista de datos de video en la vista actual basandose en datos de video en la vista de referencia. Las tecnicas de esta divulgacion pueden ser implementadas por uno o ambos del codificador de video 20 y el descodificador de video 30. Estas tecnicas pueden ser utilizadas, por ejemplo, en combinacion con codificacion de video multivista basandose en HEVC y/o codificacion de video en 3D basandose en HEVC.
Como se ha analizado anteriormente, los datos que definen un TMV o DMV para un bloque de datos de video pueden incluir componentes horizontales y verticales del vector, asf como una resolucion para el vector. La informacion de movimiento para un bloque de video puede incluir un vector de movimiento, asf como una direccion de prediccion y un valor de indice de imagen de referencia. Ademas, la informacion de movimiento para un bloque de video actual puede predecirse a partir de la informacion de movimiento de un bloque de video contiguo que tambien se puede denominar un bloque de video de referencia. El bloque de video de referencia puede ser un bloque contiguo espacial dentro de la misma imagen, un bloque contiguo temporal dentro de una imagen diferente de la misma vista, pero dentro de una unidad de acceso diferente, o un bloque de video dentro de una imagen diferente de una vista diferente, pero dentro de la misma unidad de acceso. En el caso de la informacion de movimiento de un bloque de referencia en una vista diferente, el vector de movimiento puede ser un TMV derivado de un bloque de referencia en una imagen de referencia de inter-vista (es decir, una imagen de referencia en la misma unidad de acceso que la imagen actual, pero desde una perspectiva diferente), o un DMV derivado de un DV.
Tfpicamente, para la prediccion de informacion de movimiento, se forma una lista de informacion de movimiento candidatos a partir de varios bloques de referencia de una manera definida, por ejemplo, de tal manera que la informacion de movimiento de varios bloques de referencia se considera para su inclusion en la lista en un orden definido. Despues de formar la lista de candidatos, el codificador de video 20 puede evaluar cada candidato para determinar cual proporciona las mejores caracterfsticas de velocidad y distorsion que mejor coincidan con un perfil de velocidad y distorsion dado seleccionados para codificar el video. El codificador de video 20 puede realizar un procedimiento de optimizacion de distorsion de velocidad (RDO) con respecto a cada uno de los candidatos, seleccionando uno de los candidatos de informacion de movimiento que tienen los mejores resultados de RDO. De forma alternativa, el codificador de video 20 puede seleccionar uno de los candidatos almacenados en la lista que mejor se aproxime a la informacion de movimiento determinada para el bloque de video actual.
En cualquier caso, el codificador de video 20 puede especificar el candidato seleccionado utilizando un indice que identifica al candidato seleccionado de la lista de candidatos de informacion de movimiento. El codificador de video 20 puede senalar este indice en el flujo de bits codificado para su uso por parte del descodificador de video 30. Para la eficiencia de codificacion, los candidatos pueden ordenarse en la lista de tal manera que la informacion de movimiento de candidatos que mas probablemente sea seleccionada para codificar el bloque de video actual es la
5
10
15
20
25
30
35
40
45
50
55
60
65
primera, o de lo contrario esta asociada con el valor de fndice de magnitud mas bajo.
Las tecnicas para la prediccion de informacion de movimiento pueden incluir un modo de fusion, un modo de omision y un modo de prediccion de vector de movimiento anticipado (AMVP). En general, de acuerdo con el modo de fusion y/o modo de omision, un bloque de video actual hereda la informacion de movimiento, por ejemplo, vector de movimiento, direccion de prediccion e fndice de imagen de referencia, de otro bloque contiguo previamente codificado, por ejemplo, un bloque espacialmente contiguo en la misma imagen, o un bloque en una imagen de referencia temporal o inter-vista. Cuando se implementa el modo de fusion / omision, el codificador de video 20 construye una lista de candidatos de fusion que son la informacion de movimiento de los bloques de referencia en una materia definida, selecciona uno de los candidatos de fusion y senala un fndice de lista de candidatos que identifica al candidato de fusion seleccionado para descodificador de video 30 en el flujo de bits.
El descodificador de video 30, al implementar el modo de fusion / omision, recibe este fndice de lista de candidatos, reconstruye la lista de candidatos de fusion de acuerdo con la manera definida y selecciona uno de los candidatos de fusion en la lista de candidatos indicada por el fndice. El descodificador de video 30 puede entonces instanciar el candidato seleccionado de los candidatos de fusion como un vector de movimiento para la PU actual con la misma resolucion que el vector de movimiento del candidato seleccionado de los candidatos de fusion y apuntando a la misma imagen de referencia que el vector de movimiento para el seleccionado de los candidatos de fusion. Por consiguiente, en el lado del descodificador, una vez descodificado el fndice de lista de candidatos, se puede heredar toda la informacion de movimiento del bloque correspondiente del candidato seleccionado tal como, por ejemplo, vector de movimiento, direccion de prediccion e fndice de imagen de referencia. El modo de fusion y el modo de omision promueven la eficiencia del flujo de bits permitiendo que el codificador de video 20 senale un fndice en la lista de candidatos de fusion, en lugar de toda la informacion de movimiento para la inter-prediccion del bloque de video actual.
Cuando se implementa AMVP, el codificador de video 20 construye una lista de predictores de vector de movimiento candidatos (MVP) en una materia definida, selecciona uno de los MVP candidatos y senala un fndice de lista de candidatos que identifica el MVP seleccionado con el descodificador de video 30 en el flujo de bits. Similar al modo de fusion, al implementar AMVP, el descodificador de video 30 reconstruye la lista de MVP candidatos en el asunto definido, descodifica el fndice de lista de candidatos del codificador y selecciona e instancia uno de los MVP basandose en el fndice de lista de candidatos.
Sin embargo, contrariamente al modo de fusion / omision, al implementar AMVP, el codificador de video 20 tambien senala un fndice de imagen de referencia y una direccion de prediccion, especificando asf la imagen de referencia a la que apunta el MVP especificado por los puntos del fndice de lista de candidatos. Ademas, el codificador de video 20 determina una diferencia de vector de movimiento (MVD) para el bloque actual, donde el MVD es una diferencia entre el MVP y el vector de movimiento real que de otro modo se utilizarfa para el bloque actual. Para AMVP, ademas del fndice de imagen de referencia, la direccion de la imagen de referencia y el fndice de lista de candidatos, el codificador de video 20 senala el MVD para el bloque actual en el flujo de bits. Debido a la senalizacion del fndice de imagen de referencia y la diferencia de vector de prediccion para un bloque dado, el AMVP puede no ser tan eficiente como el modo de fusion / omision, pero puede proporcionar una fidelidad mejorada de los datos de video codificados.
La FIG. 4 muestra un ejemplo de un bloque de video actual 47, cinco bloques contiguos espaciales (41, 42, 43, 44 y 45) y un bloque de referencia temporal 46 de otra imagen pero en la misma vista que la imagen actual. El bloque de referencia temporal 46 puede ser, por ejemplo, un bloque co-ubicado en una imagen de una instancia temporal diferente, pero la misma vista que el bloque de video actual 47. En algunos ejemplos, el bloque de video actual 47 y los bloques de video de referencia 41-46 pueden definirse en general en la norma HEVC actualmente en desarrollo. Los bloques de video de referencia 41-46 se denominan A0, A1, B0, B1, B2 y T de acuerdo con la norma HEVC actualmente en desarrollo. El codificador de video 20 y el descodificador de video 30 pueden predecir la informacion de movimiento, incluyendo un TMV, del bloque de video actual 47 basandose en la informacion de movimiento de los bloques de video de referencia 41-46 de acuerdo con un modo de prediccion de informacion de movimiento, por ejemplo, modo de fusion / omision o modo AMVP. Como se describe con mas detalle a continuacion, los TMV de bloques de video se pueden usar con DMV para prediccion residual avanzada de acuerdo con las tecnicas de esta divulgacion.
Como se ilustra en la FIG. 4, los bloques de video 42, 44, 43, 41 y 45 pueden quedar a la izquierda, por encima, por encima a la derecha, por debajo a la izquierda y por encima a la izquierda, respectivamente, con relacion al bloque de video actual 47. Sin embargo, el numero y las ubicaciones de los bloques contiguos 41-45 con respecto al bloque de video actual 47 ilustrado en la FIG. 4, son simplemente un ejemplos. En otras ubicaciones, la informacion de movimiento de un numero diferente de bloques contiguos y/o de bloques en ubicaciones diferentes, puede considerarse para su inclusion en una lista de candidatos de prediccion de informacion de movimiento para el bloque de video actual 47.
La relacion espacial de cada uno de los bloques espacialmente contiguos 42, 44, 43, 41 y 45 con el bloque de video actual 47 se puede describir de la forma siguiente. Se utiliza una ubicacion de luma (xP, yP) para especificar la
5
10
15
20
25
30
35
40
45
50
55
60
65
muestra de luma superior izquierda del bloque actual en relacion con la muestra superior izquierda de la imagen actual. Las variables nPSW y nPSH indican la anchura y la altura del bloque actual para luma. La muestra de luma superior izquierda del bloque 42 espacialmente contiguo es xP - 1, yP + nPSH - 1. La muestra de luma superior izquierda del bloque 44 espacialmente contiguo es xP + nPSW - 1, yP - 1. La muestra de luma superior izquierda del bloque espacialmente contiguo 43 es xP + nPSW, yP - 1. La muestra de luma superior izquierda del bloque espacialmente contiguo 41 es xP - 1, yP + nPSH. La muestra de luma superior izquierda del bloque espacialmente contiguo 45 es xP - 1, yP - 1. Aunque se describen con respecto a las ubicaciones de luma, los bloques actuales y de referencia pueden incluir componentes de croma.
Cada uno de los bloques 41-45 espacialmente contiguos puede proporcionar un candidato de informacion de movimiento espacial para predecir la informacion de movimiento, por ejemplo, TMV, del bloque de video actual 47. Un codificador de video, por ejemplo, el codificador de video 20 (FIG. 1) o el descodificador de video 30 (FIG. 1), puede considerar la informacion de movimiento de los bloques de referencia espacialmente contiguos en un orden predeterminado, por ejemplo, un orden de escaneado. En el caso de 3D-HEVC, por ejemplo, el descodificador de video puede considerar la informacion de movimiento de los bloques de referencia para su inclusion en una lista de candidatos de fusion para el modo de fusion en el siguiente orden: 42, 44, 43, 41 y 45. En el ejemplo ilustrado, los bloques espacialmente contiguos 41-45 estan a la izquierda de y/o encima del bloque de video actual 47. Esta disposicion es tfpica, ya que la mayorfa de los codificadores de video codifican bloques de video en orden de escaneado de trama desde la parte superior izquierda de una imagen. Por consiguiente, en dichos ejemplos, los bloques espacialmente contiguos 41 - 45 se codificaran tfpicamente antes del bloque de video actual 47. Sin embargo, en otros ejemplos, por ejemplo, cuando un codificador de video codifica bloques de video en un orden diferente, los bloques 41-45 espacialmente contiguos pueden estar situados a la derecha de y/o debajo del bloque de video actual 47.
El bloque de referencia temporal 46 esta situado dentro de una imagen de referencia temporal codificada previamente, aunque no necesariamente inmediatamente antes en orden de codificacion, a la imagen actual del bloque de video actual 47. Ademas, la imagen de referencia del bloque 46 no es necesariamente anterior a la imagen del bloque de video actual 47 en orden de vista. El bloque de video de referencia 46 puede estar co-ubicado, en general, en la imagen de referencia con respecto a la ubicacion del bloque de video actual 47 en la imagen actual. En algunos ejemplos, el bloque de video de referencia 46 esta situado a la derecha de y por debajo de la posicion del bloque de video actual 47 en la imagen actual o cubre la posicion central del bloque de video actual 47 en la imagen actual.
La FIG. 5 es un diagrama conceptual que ilustra un ejemplo de obtencion de un candidato de vector de movimiento predicho de inter-vista (IPMVC) y un candidato de vector de movimiento de disparidad de inter-vista (IDMVC) para la prediccion de la informacion de movimiento de un bloque de video actual 50, por ejemplo, de acuerdo con un modo de fusion / omision o un modo AMVP. Cuando la prediccion de inter-vista esta habilitada, el codificador de video 20 y/o el descodificador de video 30 pueden anadir un nuevo candidato de vector de movimiento, IPMVC o IDMVC a la lista de candidatos de informacion de movimiento para el bloque de video actual 50. El IPMVC puede predecir un TMV para el bloque de video actual 50, que el codificador de video 20 y/o el descodificador de video 30 pueden usar para ARP del bloque de video actual 50 u otro bloque de video de acuerdo con las tecnicas de esta divulgacion, como se describe con mayor detalle a continuacion. El IDMVC puede predecir un DMV para el bloque de video actual 50, que el codificador de video 20 y/o el descodificador de video 30 pueden usar para ARP del bloque de video actual 50 u otro bloque de video de acuerdo con las tecnicas de esta divulgacion, como se describe con mayor detalle a continuacion.
En el ejemplo de la FIG. 5, el bloque actual 50 esta en la vista actual Vm. El codificador de video 20 y/o el descodificador de video 30 pueden localizar un bloque 52 correspondiente o de referencia en la vista de referencia V0 usando un vector de disparidad (DV) 51. El codificador de video puede determinar DV 51 basandose en parametros de camara, o de acuerdo con cualquiera de las tecnicas descritas en el presente documento. Por ejemplo, el codificador de video puede determinar DV 51 para el bloque de video actual 50 incluyendo basandose en un DV de un bloque contiguo, por ejemplo, usando Obtencion de Vector de Disparidad Basandose en Bloques Contiguos (NBDV).
Si el bloque de referencia 52 no esta intracodificado y no tiene prediccion de inter-vista, y su imagen de referencia, por ejemplo, la imagen de referencia 58 o la imagen de referencia 60, tiene un valor de recuento de orden de imagen (POC) igual al de una entrada en la misma lista de imagenes de referencia del bloque de video actual 50, el codificador de video 20 y/o el descodificador de video 30 pueden obtener su informacion de movimiento (direccion de prediccion, imagenes de referencia y vectores de movimiento), despues de convertir el indice de referencia basandose en POC, para ser el IPMVC para el bloque de video actual 50. En el ejemplo de la FIG. 5, el bloque de video de referencia 52 esta asociado con TMV 54 que apunta a una primera imagen de referencia 58 en la vista de referencia V0 que se especifica en una primera lista de imagenes de referencia (RefPicListO) y TMV 56 que apunta a una segunda imagen 60 en la vista de referencia V0 que se especifica en una segunda lista de imagenes de referencia (RefPicList1). La herencia de los TMV 54 y 56 por el bloque de video actual 50 se ilustra mediante las flechas discontinuas en la FIG.5. Basandose en la informacion de movimiento del bloque de video de referencia 52, el codificador de video obtiene el IPMVC para que el bloque de video actual 50 sea al menos uno de un TMV 62 que
5
10
15
20
25
30
35
40
45
50
55
60
65
apunte a una primera imagen de referencia 66 en la vista actual Vm que se especifica en una primera lista de imageries de referencia (RefPicListO), por ejemplo, con el mismo POC en la primera lista de imagenes de referencia como imagen de referencia 58 y TMV 64 apuntando a una segunda imagen 68 en la vista actual Vm que se especifica en una segunda lista de imagenes de referencia (RefPicListl) Por ejemplo, con el mismo POC que la imagen de referencia 60. El codificador de video 20 y/o el descodificador de video 30 pueden usar TMV 62 y/o TMV 64 para ARP del bloque de video actual 50 u otro bloque de video de acuerdo con las tecnicas de esta divulgacion, como se describe con mayor detalle a continuacion.
El codificador de video 20 y/o descodificador de video 30 tambien pueden convertir DV 51 a un IDMVC para el bloque de video actual 50 y anadir el IDMVC a la lista de candidatos de informacion de movimiento para el bloque de video actual 50 en una posicion diferente de la IPMVC. Cada uno de los IPMVC o IDMVC puede denominarse un "candidato de inter-vista" en este contexto. En el modo de fusion / omision, el codificador de video inserta el IPMVC, si esta disponible, antes de todos los candidatos de fusion espacial y temporal en la lista de candidatos de fusion. En el modo de fusion / omision, el codificador de video inserta el IDMVC antes del candidato de fusion espacial derivado de A0 (bloque 41 de la FIG. 4). La conversion de DV 51 a un IDMVC puede considerarse conversion de DV 51 a un DMV para el bloque de video actual 50. El codificador de video 20 y/o el descodificador de video 30 pueden usar el DMV para ARP del bloque de video actual 50 u otro bloque de video de acuerdo con las tecnicas de esta divulgacion, como se describe con mayor detalle a continuacion.
En algunas situaciones, un codificador de video puede obtener un DV para un bloque de video actual. Por ejemplo, como se ha descrito anteriormente, con referencia a la FIG. 5, el codificador de video 20 y/o el descodificador de video 30 pueden obtener DV 51 para el bloque de video actual 50. En algunos ejemplos, un codificador de video puede utilizar la obtencion de Vector de Disparidad Basandose en Bloques Contiguos (NBDV) para obtener el DV para el bloque de video actual.
Las propuestas para 3D-HEVC usan un orden de codificacion de textura primero para todas las vistas. En otras palabras, para cada una de la pluralidad de vistas en el flujo de bits, el componente de textura de esta codificado, por ejemplo, codificado o descodificado, antes de cualquier componente de profundidad para la vista. En algunos casos, por ejemplo, para la prediccion de inter-vista, se necesita un DV para codificar un bloque de video en un componente de textura de una vista en una unidad de acceso particular. Sin embargo, en la codificacion de texto primero, el componente de profundidad correspondiente del bloque de video actual no esta disponible para determinar el DV para el bloque de video actual. El NBDV puede ser empleado por un codificador de video, y se propone para 3D-HEVC, para obtener un DV para un bloque de video actual en tales situaciones. En el diseno actual de 3D-HEVC, el DV derivado de NBDV podrfa refinarse adicionalmente recuperando los datos de profundidad del mapa de profundidad de la vista de referencia apuntados por el DV desde el proceso NBDV.
Un DV se utiliza para un estimador del desplazamiento entre dos vistas. Debido a que los bloques contiguos comparten casi la misma informacion de movimiento / disparidad en la codificacion de video, el bloque de video actual puede usar la informacion de vector de movimiento en bloques contiguos como un buen predictor de su informacion de movimiento / disparidad. Siguiendo esta idea, NBDV utiliza la informacion de disparidad contigua para estimar los DV en diferentes vistas.
De acuerdo con NBDV, un codificador de video identifica varios bloques contiguos espaciales y temporales. Se utilizan dos conjuntos de bloques contiguos. Un conjunto es de bloques contiguos espaciales y el otro conjunto es de bloques contiguos temporales. El codificador de video comprueba cada uno de los bloques contiguos espaciales y temporales en un orden predefinido determinado por la prioridad de la correlacion entre el bloque actual y el bloque candidato (contiguo). Cuando el codificador de video identifica un DMV, es decir, un vector de movimiento que apunta desde el bloque candidato contiguo a una imagen de referencia de inter-vista (en la misma unidad de acceso, pero en una vista diferente), en la informacion de movimiento de los candidatos, el codificador de video convierte el DMV a un DV, y devuelve el indice de orden de vista asociado. Por ejemplo, el codificador de video puede establecer un componente horizontal del DV para el bloque actual igual a un componente horizontal del DMV y puede establecer el componente vertical del DV en 0.
3D-HEVC adopto en primer lugar el procedimiento NBDV propuesto en Zhang et al. "3D-CE5.h: Resultados de la generacion de vectores de disparidad", Equipo de Colaboracion Conjunta en el Desarrollo de la Extension de Codificacion de Video de la ITU-T SG 16 wP 3 e ISO/IEC JTC1/SC 29/WG 11, 1.a Reunion: Estocolmo, Suecia, 1620 de julio de 2012, Doc. JCT3V-A0097 (numero MPEG m26052), en lo sucesivo "JCT3V-A0097". JCT3V-A0097 se puede descargar desde el siguiente enlace:

http://phenix.int-evry.fr/jct2/doc_end_user/current_document.php?id=89.
En algunos disenos de 3D-HEVC, cuando el codificador de video realiza el proceso NBDV, el codificador de video comprueba los vectores de movimiento de disparidad en los bloques contiguos temporales, los vectores de movimiento de disparidad en los bloques contiguos espaciales y luego los vectores de disparidad implfcitos (IDVs) en orden. Un IDV puede ser un vector de disparidad de una PU espacialmente o temporalmente contigua que se codifica utilizando la prediccion de inter-vista. Los IDV tambien pueden denominarse vectores de disparidad
5
10
15
20
25
30
35
40
45
50
55
60
65
derivados. Un IDV puede generarse cuando una PU emplea la prediccion de inter-vista, es decir, el candidato para AMVP o modos de fusion se obtiene a partir de un bloque de referencia en la otra vista con la ayuda de un vector de disparidad. Este vector de disparidad se llama IDV. Un IDV puede almacenarse en la PU con el fin de obtencion DV. Por ejemplo, aunque el bloque se codifica con prediccion de movimiento, un DV derivado para el bloque no se descarta con el proposito de codificar un bloque de video siguiente. Por lo tanto, cuando el codificador de video identifica un DMV o un IDV, el codificador de video puede devolver el DMV o IDV identificado.
Se incluyeron vectores de disparidad implfcitos (IDVs) con un NBDV simplificado en Sung et al., "3D-CE5.h: Simplificacion de la obtencion del vector de disparidad para la codificacion de video en 3D basandose en HEVC", Equipo de Colaboracion Conjunta en el Desarrollo de la Extension de Codificacion de Video de la ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 1.a Reunion: Estocolmo, Suecia, 16-20 de julio de 2012, Doc. JCT3V-A0126 (numero MPEG m26079), en lo sucesivo "JCT3V-A0126". JCT3V-A0126 se puede descargar desde el siguiente enlace:

http://phenix.int-evry.fr/jct2/doc_end_user/current_document.php?id=142.
El desarrollo adicional del NBDV para 3D-HEVC se produjo en Kang et al., "3D-CE5.h: Mejora de la obtencion de los vectores de disparidad", Equipo de Colaboracion Conjunta en el Desarrollo de la Extension de Codificacion de Video de la ITU-T SG 16 WP 3 e ISO/IECJTC 1/SC 29/WG 11, 2.a Reunion: Shanghai, China, 13-19 de octubre de 2012, Doc. JCT3V-B0047 (numero MPEG m26736), en lo sucesivo "JCT3V-B0047". JCT3V-B0047 se puede descargar desde el siguiente enlace:

http://phenix.it-sudparis.eu/jct2/doc_end_user/current_document.php?id=236. En JCT3V-B0047, el NBDV for3D- HEVC se simplifico adicionalmente eliminando los IDV almacenados en la memoria intermedia de imagenes descodificadas, pero la ganancia de codificacion tambien se mejora con la seleccion de imagen de punto de acceso aleatorio (RAP). El codificador de video puede convertir el IDV o vector de movimiento de disparidad devuelto en un vector de disparidad y puede utilizar el vector de disparidad para la prediccion de inter-vista y la prediccion residual de inter-vista. El acceso aleatorio se refiere a la descodificacion de un flujo de bits a partir de una imagen codificada que no es la primera imagen codificada en el flujo de bits. La insercion de imagenes de acceso aleatorio o puntos de acceso aleatorio en un flujo de bits a intervalos regulares puede permitir el acceso aleatorio. Entre los tipos de ejemplo de imagenes de acceso aleatorio se incluyen imagenes de actualizacion instantanea de descodificador instantanea (IDR), imagenes de acceso aleatorio limpio (CRA) e imagenes de acceso de enlace roto (BLA). Por lo tanto, las imagenes IDR, CRA y BLA se denominan colectivamente imagenes RAP. En algunos ejemplos, las imagenes RAP pueden tener tipos de unidades NAL iguales a BLA_W_LP, BLA_W_RADL, BlA_N_LP, IDR_W_RADL, IDR_N_LP, RSV_IRAP_VCL22, RSV_IRAP_VCL23, o CRA_NUT.
Las tecnicas para la obtencion DV basandose en CU para 3D-HEVC se propusieron en Kang et al., "CE2.h: Obtencion de Vector de Disparidad basandose en CU en 3D-HEVC", Equipo de Colaboracion Conjunta en el Desarrollo de la Extension de Codificacion de Video de la ITU-T SG 16 WP3 e ISO/IEC JTC 1/SC 29/WG 11, 4.a Reunion: Incheon, Corea, 20-26 de abril de 2013, Doc. JCT3V-D0181 (numero MPEG m29012), en lo sucesivo "JCT3V-D0181". JCT3V-D0181 se puede descargar desde el siguiente enlace:

http://phenix.it-sudparis.eu/jct3v/doc_end_user/current_document.php?id=866.
Cuando el codificador de video identifica un DMV o un IDV, el codificador de video puede terminar el proceso de comprobacion. Asf, una vez que el codificador de video encuentra un DV para el bloque actual, el codificador de video puede terminar el proceso NBDV. Cuando el codificador de video no puede determinar un DV para el bloque actual realizando el proceso NBDV (es decir, cuando no se encuentra DMV o IDV durante el proceso NBDV), el NBDV esta marcado como no disponible. En otras palabras, puede considerarse que el proceso NBDV devuelve un vector de disparidad no disponible.
Si el codificador de video no puede obtener un DV para el bloque actual (es decir, si no se encuentra ningun vector de disparidad) realizando el proceso NBDV, el codificador de video puede usar un DV cero como DV para la PU actual. El DV cero es un DV que tiene componentes horizontales y verticales iguales a 0. Por lo tanto, incluso cuando el proceso NBDV devuelve un resultado no disponible, otros procesos de codificacion del codificador de video que requieren un DV pueden utilizar un vector de disparidad cero para el bloque actual. En algunos ejemplos, si el codificador de video es incapaz de obtener un DV para el bloque actual realizando el proceso NBDV, el codificador de video puede deshabilitar la prediccion residual de inter-vista para el bloque actual. Sin embargo, independientemente de si el codificador de video es capaz de obtener un DV para el bloque actual realizando el proceso NBDV, el codificador de video puede usar la prediccion de inter-vista para el bloque actual. Es decir, si no se encuentra un DV despues de comprobar todos los bloques contiguos predefinidos, se puede utilizar un vector de disparidad cero para la prediccion de inter-vista mientras que la prediccion residual de inter-vista puede estar deshabilitada para la CU correspondiente.
La FIG. 6 es un diagrama conceptual que ilustra ejemplos de bloques contiguos espaciales, a partir de los cuales se puede obtener un DV para un bloque de video actual utilizando NBDV, con relacion al bloque de video actual 90.
5
10
15
20
25
30
35
40
45
50
55
60
65
Los cinco bloques contiguos espaciales ilustrados en la FIG. 6 son el bloque inferior izquierdo 96, el bloque izquierdo 95, el bloque superior derecho 92, el bloque superior 93 y el bloque superior izquierdo 94 con relacion al bloque de video actual. Los bloques contiguos espaciales pueden ser los bloques inferior izquierdo, izquierdo, superior- derecho, superior y superior izquierdo de un bloque de video actual que cubre CU. Debe observarse que estos bloques contiguos espaciales para NBDV pueden ser los mismos que los bloques contiguos espaciales utilizados por el codificador de video para la prediccion de informacion de movimiento para el bloque de video actual, tal como de acuerdo con los modos MERGE / AMVP en HEVC. En tales casos, no se requiere ningun acceso adicional a la memoria por parte del codificador de video para NBDV, ya que la informacion de movimiento de los bloques contiguos espaciales ya se considera para la prediccion de informacion de movimiento para el bloque de video actual.
Para comprobar bloques contiguos temporales, un codificador de video construye una lista de imagenes candidatas. En algunos ejemplos, el codificador de video puede tratar hasta dos imagenes de referencia desde la vista actual, es decir, la misma vista que el bloque de video actual, como imagenes candidatas. El codificador de video puede insertar primero la imagen de referencia co-ubicada en la lista de imagenes candidatas, seguida por el resto de imagenes candidatas en el orden ascendente del indice de imagenes de referencia. Cuando esten disponibles imagenes de referencia con el mismo indice de referencia en ambas listas de imagenes de referencia, el codificador de video puede insertar la de la misma lista de imagenes de referencia que la imagen co-ubicada antes de la otra imagen de referencia de la otra lista de imagenes de referencia. En algunos ejemplos, el codificador de video puede identificar tres regiones candidatas para obtener los bloques contiguos temporales de cada una de las imagenes candidatas en la lista de imagenes candidatas. Las tres regiones candidatas pueden definirse de la forma siguiente:
• CPU: Una region co-ubicada de la PU actual o la CU actual.
• CLCU: Una unidad de codificacion mas grande (LCU) que cubre la region co-ubicada del bloque actual.
• BR: Un bloque inferior derecho 4x4 de la CPU.
Si la PU que cubre la region candidata especifica un DMV, el codificador de video puede determinar el DV de la unidad de video actual basandose en el vector de movimiento de disparidad de la PU.
Como se analizo anteriormente, ademas de los DMV derivados de bloques contiguos espaciales y temporales, un codificador de video puede comprobar IDVs. En el proceso NBDV propuesto para 3D-HTM 7.0, el codificador de video comprueba DMVs en los bloques contiguos temporales, luego los DMVs en los bloques contiguos espaciales, y luego los IDVs, en orden. Una vez que se encuentra el DMV o IDV, se termina el proceso.
Cuando el codificador de video comprueba una PU contigua (es decir, una PU espacialmente o temporalmente contigua), el codificador de video puede comprobar primero si la PU contigua tiene un vector de movimiento de disparidad. Si ninguna de las PU contiguas tiene un vector de movimiento de disparidad, el codificador de video puede determinar si cualquiera de las PU espacialmente contiguas tiene un IDV. Si una de las PU espacialmente contiguas tiene un IDV y el IDV esta codificado como modo de fusion / omision, el codificador de video puede terminar el proceso de comprobacion y puede usar el IDV como vector de disparidad final para la PU actual.
Como se indico anteriormente, un codificador de video puede aplicar un proceso NBDV para obtener un DV para un bloque actual (por ejemplo, una CU, PU, etc.). El vector de disparidad para el bloque actual puede indicar una ubicacion en una imagen de referencia (es decir, un componente de referencia) en una vista de referencia. En algunos disenos 3D-HEVC, el codificador de video puede acceder a la informacion de profundidad para la vista de referencia. En algunos disenos 3D HEVC, cuando el codificador de video utiliza el proceso NBDV para obtener el DV para el bloque actual, el codificador de video puede aplicar un proceso de refinamiento para refinar aun mas el vector de disparidad para el bloque actual. El codificador de video puede refinar el DV para el bloque actual basandose en el mapa de profundidad de la imagen de referencia. El codificador de video puede usar un proceso de refinamiento similar para refinar un DMV para la prediccion de sfntesis de vista hacia atras. De esta manera, la profundidad se puede usar para refinar el DV o DMV que se utilizara para la prediccion de sfntesis de vista hacia atras. Este proceso de refinamiento puede denominarse en este documento refinamiento de NBDV ("NBDV-R"), el proceso de refinamiento de NBDV, o NBDV orientado a la profundidad (Do-NBDV).
Cuando el proceso NBDV devuelve un vector de disparidad disponible (por ejemplo, cuando el proceso NBDV devuelve una variable que indica que el proceso NBDV pudo obtener un vector de disparidad para el bloque actual basandose en un vector de movimiento de disparidad o un IDV de un bloque contiguo), el codificador de video puede refinar aun mas el vector de disparidad recuperando los datos de profundidad del mapa de profundidad de la vista de referencia. En algunos ejemplos, el proceso de refinamiento incluye los dos pasos siguientes:
1) Localizar un bloque de profundidad correspondiente mediante el DV derivado en la vista de profundidad de referencia previamente codificada, tal como la vista de base; el tamano del bloque de profundidad correspondiente es el mismo que el de la PU actual.
5
10
15
20
25
30
35
40
45
50
55
60
65
2) Seleccionar un valor de profundidad de cuatro pfxeles de esquina del correspondiente bloque de profundidad y convertirlo en el componente horizontal del DV refinado. El componente vertical del DV no cambia.
El DV refinado puede utilizarse para la prediccion de inter-vista para el bloque de video actual, mientras que el DV no refinado puede usarse para la prediccion residual de inter-vista para el bloque de video actual. Ademas, el DV refinado se almacena como el vector de movimiento de una PU si esta codificado con el modo de prediccion de sfntesis de vista atras (BVSP), que se describe con mayor detalle a continuacion. En el proceso de NBDV propuesto para 3D-HTM 7.0, siempre se accedera al componente de vista de profundidad de la vista de base independientemente del valor del indice de orden de vista derivado del proceso NBDV.
Un enfoque de Prediccion de Sfntesis de Vision hacia Atras (BVSP) fue propuesto en Tian et al., "CEI.h: Prediccion de Sfntesis de Vista hacia Atras Utilizando Bloques Contiguos". Equipo de Colaboracion Conjunta en el Desarrollo de la Extension de Codificacion de Video de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 3.a Reunion: Ginebra, Suiza, 17-23 de enero de 2013, Doc. JCT3VC0152 (numero MPEG m27909), en lo sucesivo "JCT3V- C0152". JCT3V-C0152 se puede descargar desde el siguiente enlace:
http://phenix.int-
evrv.fr/ict3v/doc end user/current document.php?id=594.
JCT3V-C0152 fue adoptado en la 3.a reunion de JCT-3V. La idea basica de este BSVP es la misma que la VSP basandose en bloques en 3D-AVC. Ambas tecnicas usan la deformacion hacia atras y la VSP basandose en bloques para evitar transmitir las diferencias de vector de movimiento y utilizar vectores de movimiento mas precisos. Los detalles de implementacion son diferentes debido a las diferentes plataformas. En los parrafos siguientes, tambien usamos el termino BVSP para indicar uno o ambos del enfoque vSp de deformacion hacia atras en 3D-HEVC o el VSP basandose en bloques en 3D-AVC.
En 3D-HTM, la primera codificacion de textura se aplica en condiciones de prueba comunes. Por lo tanto, la vista de profundidad no de base correspondiente no esta disponible al descodificar una vista de textura no de base. Por lo tanto, la informacion de profundidad se estima y se utiliza para realizar BVSP.
En general, cuando un codificador de video realiza BVSP para sintetizar una imagen de textura de referencia, el codificador de video procesa bloques (por ejemplo, unidades de video) en una imagen de textura dependiente. La imagen de textura dependiente y la imagen de textura sintetizada estan en la misma unidad de acceso, pero estan en vistas diferentes. Cuando el codificador de video procesa un bloque (es decir, un bloque actual) de la imagen de textura dependiente, el codificador de video puede realizar un proceso NBDV para identificar un DV del bloque actual. Es decir, para estimar la informacion de profundidad para un bloque, un codificador de video puede obtener primero un DV de bloques contiguos.
Ademas, cuando el codificador de video realiza BVSP para sintetizar la imagen de textura de referencia, el codificador de video puede utilizar el DV del bloque actual para identificar un bloque de referencia en una imagen de profundidad de referencia. En otras palabras, el codificador de video puede utilizar entonces el DV derivado para obtener un bloque de profundidad a partir de una vista de referencia. Por ejemplo, el DV identificado mediante el proceso NBDV se puede denotar como (dvx, dvy) y la posicion de bloque actual se puede denotar como (blockx, blocky). Ademas, en este ejemplo, el codificador de video puede obtener un bloque de profundidad en (blockx+dvx, blocky+dvy) en la imagen en profundidad de la vista de referencia. En este ejemplo, el bloque de profundidad buscado tiene el mismo tamano de la PU actual. La imagen de textura dependiente y la imagen de profundidad de referencia estan en la misma unidad de acceso, pero estan en vistas diferentes. El codificador de video puede entonces realizar un proceso de deformacion hacia atras para determinar, basandose en valores de muestra del bloque actual y valores de muestra del bloque de referencia identificado de la imagen de referencia, valores de muestra de la imagen sintetizada. En otras palabras, el codificador de video, en este ejemplo, puede usar el bloque de profundidad buscado para realizar deformacion hacia atras para la PU actual.
Como se ha indicado anteriormente, cuando el codificador de video realiza BVSP, el codificador de video puede realizar un proceso NBDV para identificar un DV para un bloque actual. Ademas, cuando el codificador de video realiza BVSP, el codificador de video puede usar un proceso de refinamiento similar al descrito en otra parte de esta divulgacion para refinar el DMV obtenido usando el proceso NBDV. Cuando el codificador de video realiza el proceso de refinamiento de DV, el codificador de video puede refinar el DV basandose en valores de profundidad en un mapa de profundidad en una vista de referencia. En otras palabras, la profundidad se puede utilizar para refinar el DV o DMV que se utilizara para BVSP. El DV refinado puede almacenarse como el vector de movimiento de una PU si el DV refinado esta codificado con el modo BVSP.
En algunas versiones de 3D-HEVC, se aplica la primera codificacion de textura. En la primera codificacion de textura, un codificador de video codifica (por ejemplo, codifica o descodifica) un componente de vista de textura antes de codificar el componente de vista de profundidad correspondiente (es decir, el componente de vista de profundidad que tiene el mismo valor POC y el identificador de vista como el componente de vista de textura). Por lo tanto, un componente de vista de profundidad de vista no de base no esta disponible para su uso en la codificacion de un correspondiente componente de vista de textura de vista no de base. En otras palabras, cuando un codificador de video codifica un componente de vista de textura no de base, el componente correspondiente de vista de
5
10
15
20
25
30
35
40
45
50
55
60
65
profundidad no de base no esta disponible. Por lo tanto, la informacion de profundidad se puede estimar y utilizar para realizar BVSP.
La FIG. 7 es un diagrama conceptual que ilustra la obtencion del bloque de profundidad a partir de una vista de referencia para realizar la prediccion BVSP. En el ejemplo de la FIG. 7, un codificador de video esta codificando una imagen de textura actual 70. La imagen de textura actual 70 esta marcada como una "imagen de textura dependiente" porque la imagen de textura actual 70 depende de una imagen de textura de referencia sintetizada 72. En otras palabras, el codificador de video puede necesitar sintetizar la imagen de textura de referencia 72 con el fin de descodificar la imagen de textura actual 70. La imagen de textura de referencia 72 y la imagen de textura actual 70 estan en la misma unidad de acceso, pero son vistas indiferentes.
Con el fin de sintetizar la imagen de textura de referencia 72, el codificador de video puede procesar bloques (es decir, unidades de video) de la imagen de textura actual 70. En el ejemplo de la FIG. 7, el codificador de video esta procesando un bloque actual 74. Cuando el codificador de video procesa el bloque actual 74, el codificador de video puede realizar el proceso NBDV para obtener un DV para el bloque actual 74. Por ejemplo, en el ejemplo de la FIG. 7, el codificador de video identifica un DV 76 de un bloque 78 que esta contiguo al bloque de video actual 74. La identificacion de DV 76 se muestra como Etapa 1 de la FIG. 7. Ademas, en el ejemplo de la FIG. 7, el codificador de video determina, basandose en DV 76, un DV 78 del bloque actual 74. Por ejemplo, DV 78 puede ser una copia de DV 76. La copia de DV 76 se muestra como Etapa 2 de la FIG. 7.
El codificador de video puede identificar, basandose en el DV 78 del bloque actual 74, un bloque de video de referencia 80 en una imagen de profundidad de referencia 82. La imagen de profundidad de referencia 82, la imagen de textura actual 70 y la imagen de textura de referencia 72 pueden estar en la misma unidad de acceso. La imagen de profundidad de referencia 82 y la imagen de textura de referencia 72 pueden estar en la misma vista. El codificador de video puede determinar, basandose en los valores de muestra de textura del bloque actual 74 y valores de muestra de profundidad del bloque de profundidad de referencia 80, valores de muestra de textura de la imagen de textura de referencia 72. El proceso de determinar los valores de la muestra de textura puede denominarse deformacion hacia atras. La deformacion hacia atras se muestra como el paso 3 de la FIG. 7. De esta manera, la FIG. 7 ilumina los tres pasos de como se localiza un bloque de profundidad desde la vista de referencia y luego se utiliza para la prediccion BVSP.
El modo BVSP introducido se trata como un modo inter-codificado especial y se debe mantener un indicador de indicacion del uso del modo BVSP para cada PU. En lugar de senalar el indicador en el flujo de bits, se agrega un nuevo candidato de fusion (candidato de fusion BVSP) para el modo de fusion a la lista de candidatos de fusion y el indicador depende de si el indice de candidato de fusion descodificado corresponde a un candidato de fusion BVSP. El candidato de fusion de BVSP se define de la forma siguiente:
1. Indice de imagenes de referencia para cada lista de imagenes de referencia: -1
2. Vector de movimiento para cada lista de imagenes de referencia: el vector de disparidad refinado
La posicion insertada del candidato de fusion BVSP depende de los bloques espaciales contiguos:
1. Si alguno de los cinco bloques contiguos espaciales esta codificado con el modo BVSP, es decir, el indicador mantenido del bloque contiguo es igual a 1, el codificador de video trata al candidato de fusion BVSP como el candidato de fusion espacial correspondiente e inserta al candidato BVSP en la lista de candidatos de fusion. En algun ejemplo, el codificador de video inserta el candidato de fusion BVSP en la lista de candidatos de fusion solo una vez.
2. De lo contrario (ninguno de los cinco bloques contiguos espaciales esta codificado con el modo BVSP), el codificador de video puede insertar el candidato de fusion BVSP en la lista de candidatos de fusion justo antes de los candidatos de fusion temporal.
En algunos ejemplos, durante el proceso de obtencion de candidatos de fusion bi-predictivo combinado, un codificador de video deberfa comprobar condiciones adicionales para evitar incluir el candidato de fusion BVSP.
Para cada PU codificada por BVSP con su tamano denotado por NxM, un codificador de video puede dividir adicionalmente la PU en varias subregiones con el tamano igual a KxK (donde K puede ser igual a 4). Para cada sub-region, el codificador de video puede obtener un DMV separado, y cada sub-region puede predecirse desde un bloque localizado mediante el DMV derivado en la imagen de referencia de inter-vista. En otras palabras, el tamano de una unidad de compensacion de movimiento para las PU codificadas por BVSP puede ajustarse a KxK. En condiciones de prueba comunes, K se fija en 4.
Para cada sub-region (bloque 4x4) dentro de una PU codificada con el modo BVSP, el codificador de video puede localizar un bloque de profundidad de 4x4 correspondiente en la vista de profundidad de referencia con el DV refinado mencionado anteriormente. El codificador de video puede seleccionar el valor maximo de los dieciseis pfxeles de profundidad en el correspondiente bloque de profundidad. El codificador de video puede convertir el valor
5
10
15
20
25
30
35
40
45
50
55
60
65
maximo en el componente horizontal de un DMV, y puede establecer que el componente vertical del DMV se establezca en 0.
La FIG. 8 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion para las propuestas actuales de Prediccion Residual Avanzada temporal (ARP) de un bloque de video predicho temporalmente. ARP aplicado a las CU con el modo de particion igual a Part_2Nx2N fue adoptado en la 4.a reunion de JCT3V, tal como se propone en Zhang et al., "CE4: Prediccion Residual Avanzada para la codificacion multivista", Equipo de Colaboracion Conjunta en el Desarrollo de la Extension de Codificacion de Video de la ITU-T SG 16 Wp3 e ISO/IEC JTC 1/SC 29/WG 11, 4a Reunion: Incheon, Corea, 20-26 de abril de 2013, Doc. JCT3V-D0177 (numero MPEG m29008), en lo sucesivo "JCT3V-D0177". JCT3V-D0177 se puede descargar desde el siguiente enlace:
http://phenix.it- sudparis.eu/jct3v/doc end user/current document.php?id=862.
Como se muestra en la FIG. 8, el codificador de video invoca o identifica los siguientes bloques en la prediccion del valor residual para un bloque de video actual 100 en una imagen actual 102 de la vista actual, por ejemplo, dependiente Vm.
1. Bloque de video actual 100 (en vista Vm): Curr
2. Un bloque de video de referencia de inter-vista 106 en una imagen de referencia de inter-vista 108 de una vista de referencia / base (V0 en la FIG 8): Base. El codificador de video obtiene el bloque de video de referencia de inter-vista 106 basandose en DV 104 del bloque de video actual 100 (Curr). El codificador de video puede determinar DV 104 usando NBDV, como se ha descrito anteriormente.
3. Un bloque de video de referencia temporal 112 en una imagen de referencia temporal 114 en la misma vista (Vm) que el bloque de video actual 100 (Curr): CurrTRef. El codificador de video obtiene el bloque de video de referencia temporal 112 basandose en el TMV110 del bloque de video actual 100. El codificador de video puede determinar TMV 100 usando cualquiera de las tecnicas descritas en el presente documento.
4. Un bloque de video de referencia temporal 116 en una imagen de referencia temporal 118 en la vista de referencia, es decir, la misma vista que el bloque de video de referencia de inter-vista 106 (Base): BaseTRef . Un codificador de video obtiene el bloque de video de referencia temporal 116 en la vista de referencia usando TMV 110 del bloque de video actual 100 (Curr). Un vector 120 de TMV+DV puede identificar el bloque de video de referencia temporal 116 (BaseTRef) con respecto al bloque de video actual 100 (Curr).
Cuando un codificador de video predice temporalmente el bloque de video actual 100 basandose en el bloque de video de referencia temporal 112, que el codificador de video identifica utilizando TMV 110, el codificador de video determina las diferencias de pixel a pixel entre el bloque de video actual 100 y el bloque de video de referencia temporal 112 como un bloque residual. Estando ausente ARP, el codificador de video transformarfa, cuantificarfa y codificarfa por entropfa el bloque residual. Un descodificador de video descodificarfa por entropfa un flujo de bits de video codificado, realizarfa transformacion y cuantificacion inversa para obtener el bloque residual y aplicarfa el bloque residual a una reconstruccion del bloque de video de referencia 112 para reconstruir el bloque de video actual 100.
Usando ARP, los codificadores de video determinan un bloque de prediccion residual que predice los valores del bloque residual, es decir, predice la diferencia entre el bloque de video actual 100 (Curr) y el bloque de video de referencia temporal 112 (CurrTRef). Un codificador de video puede entonces solamente necesitar codificar una diferencia entre el bloque residual y el bloque de prediccion residual, reduciendo la cantidad de informacion incluida en el flujo de bits de video codificado para codificar el bloque de video actual 100. En el ejemplo de ARP temporal de la FIG. 8, el predictor para el valor residual del bloque de video actual 100 se determina basandose en bloques en la vista de referencia / base (V0) que corresponden al bloque de video actual 100 (Curr) y al bloque de video de referencia temporal 112 (CurrTRef), y se identifican mediante DV 104. La diferencia entre estos bloques correspondientes en la vista de referencia puede ser un buen predictor del valor residual, es decir, la diferencia entre el bloque de video actual 100 (Curr) y el bloque de video de referencia temporal 112 (CurrTRef). En particular, los codificadores de video identifican un bloque de video de referencia de inter-vista 106 (Base) y un bloque de video de referencia temporal 116 (BaseTRef) en la vista de referencia y determinan el bloque de prediccion residual basandose en la diferencia entre el bloque de video de referencia de inter-vista 106 y el bloque de video de referencia temporal 116 (Base-TRef-Base), en el que la operacion de sustraccion se aplica a cada pixel de los conjuntos de pfxeles denotados. En algunos ejemplos, un codificador de video puede aplicar un factor de ponderacion, w, al predictor residual. En tales ejemplos, el predictor final del bloque actual, es decir, el bloque de referencia sumado con el bloque de prediccion residual, se puede designar como: CurrTRej + w*(BaveTRef-Base).
La FIG. 9 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion bidireccional para ARP temporal de un bloque de video actual 120 en una vista actual (Vm). Las descripciones anteriores y la FIG. 8 ilustran la prediccion unidireccional. Al extender ARP al caso de prediccion bidireccional, el codificador de video puede aplicar las tecnicas anteriores a una o ambas listas de imagenes de referencia con el fin de identificar un bloque de prediccion residual para el bloque de video actual 120. En particular, el codificador de video puede comprobar una o
5
10
15
20
25
30
35
40
45
50
55
60
65
ambas listas de referencia para el bloque de video actual 100 para determinar si una de ellas contiene un TMV utilizable para ARP temporal. En el ejemplo ilustrado en la FIG. 9, el bloque de video actual 120 esta asociado con un TMV 130 que apunta a una primera imagen de referencia temporal 134 en una primera lista de imagenes de referencia (RefPicListO) y un TMV132 que apunta a una segunda imagen de referencia temporal 136 es una segunda lista de imagenes de referencia (RefPicList1) .
En algunos ejemplos, un codificador de video comprobara las listas de imagenes de referencia de acuerdo con un orden de comprobacion para determinar si una de ellas incluye un TMV utilizable para ARP temporal y no necesita comprobar una segunda lista de acuerdo con la orden de comprobacion si una primera lista incluye un TMV de este tipo. En algunos ejemplos, un codificador de video comprobara ambas listas de imagenes de referencia y, si ambas listas incluyen un TMV, determinara que TMV usar, por ejemplo, basandose en una comparacion de los predictores residuales resultantes producidos usando los TMVs con respecto al valor residual del bloque de video actual. En particular, de acuerdo con las propuestas actuales para ARP, cuando el bloque actual utiliza una imagen de referencia de inter-vista (en una vista diferente) para una lista de imagenes de referencia, el proceso de prediccion residual esta deshabilitado.
Como se ilustra en la FIG. 9, el codificador de video puede utilizar un DV 124 identificado para el bloque de video actual 120, por ejemplo, de acuerdo con NBDV, para identificar un bloque de video de referencia de inter-vista 126 (Base) en una imagen de referencia de inter-vista 128 que esta en una vista de referencia diferente (V0), pero esta en la misma unidad de acceso que la imagen actual 122. El codificador de video puede utilizar tambien los TMV 130 y 132 para que el bloque de video actual 120 identifique los bloques de referencia temporales (BaseTRef) para el bloque de video de referencia de inter-vista 126 (Base) en varias imagenes de referencia temporales de la vista de referencia en ambas listas de imagenes de referencia, por ejemplo, RefPicList0 y RefPicList1. En el ejemplo de la FIG. 9, el codificador de video identifica el bloque de video de referencia temporal (BaseTRef) 140 en la imagen de referencia temporal 142 en una primera lista de imagenes de referencia, por ejemplo, RefPicList0 y el bloque de video de referencia temporal (BaseTRef) 144 en la imagen de referencia temporal 146 en una segunda lista de imagenes de referencia, por ejemplo, RefPicList1, basandose en los TMV 130 y 132 del bloque de video actual 120.
El uso de TMV 130 y 132 del bloque de video actual 120 en la vista de referencia se ilustra mediante flechas discontinuas en la FlG. 9. En la FlG. 9, los bloques de video de referencia temporales 140 y 144 en la vista de referencia se denominan bloques de referencia compensados por movimiento debido a su identificacion basandose en los TMV 130 y 132. Un codificador de video puede determinar un bloque de prediccion residual para el bloque de video actual 120 basandose en una diferencia entre el bloque de video de referencia temporal 140 y el bloque de video de referencia de inter-vista 126, o basandose en una diferencia entre el bloque de video de referencia temporal 144 y el bloque de video de referencia de inter-vista 126.
Se pueden describir los procedimientos principales de la ARP temporal propuesta en el lado del descodificador (con referencia a la FIG. 9) de la forma siguiente:
1. Un descodificador de video obtiene un DV 124 como se especifica en el 3D-HEVC actual, por ejemplo, usando NBDV, apuntando a una vista de referencia objetivo (V0). Entonces, en la imagen 128 de la vista de referencia dentro de la misma unidad de acceso, el descodificador de video identifica el bloque de video de referencia de inter-vista correspondiente 126 (Base) mediante DV 124.
2. El descodificador de video vuelve a usar la informacion de movimiento, por ejemplo, TMV 130, 132, del bloque de video actual 120 para obtener la informacion de movimiento para el correspondiente bloque de video de referencia de inter-vista 126. El descodificador de video puede aplicar una compensacion de movimiento para el bloque de video de referencia de inter-vista 126 basandose en TMV 130, 132 del bloque de video actual 120 y la imagen de referencia obtenida 142, 146 en la vista de referencia para el bloque de video de referencia 126, para identificar un bloque de video de referencia temporal compensado por movimiento 140, 144 (BaseTRef) y determinar el bloque de prediccion residual determinando BaseTRef-Base. La relacion entre el bloque actual, el bloque correspondiente (Base) y el bloque compensado por movimiento (BaseTRef) se muestra en las FIGs. 8 y 9. En algunos ejemplos se selecciona como imagen de referencia del bloque correspondiente la imagen de referencia en la vista de referencia (V0) que tiene el mismo valor POC (Recuento de Orden de Imagenes) que la imagen de referencia de la vista actual (Vm).
3. El descodificador de video puede aplicar un factor de ponderacion w al bloque de prediccion residual para obtener un bloque de prediccion residual ponderado y anadir los valores del bloque residual ponderado a las muestras predichas para reconstruir el bloque de video actual 100.
En las propuestas de ARP, pueden utilizarse tres factores de ponderacion, es decir, 0, 0,5 y 1. El que conlleva el coste de distorsion de la tasa minima para la CU actual se selecciona como el factor de ponderacion final y se transmite el indice del factor de ponderacion correspondiente (0, 1 y 2 que corresponden al factor de ponderacion 0, 1 y 0,5, respectivamente) en el flujo de bits al nivel de CU. Todas las predicciones de PU en una CU comparten el mismo factor de ponderacion. Cuando el factor de ponderacion es igual a 0, ARP no se utiliza para la CU actual.
5
10
15
20
25
30
35
40
45
50
55
60
65
Aspectos de ARP para 3D-HEVC se describen en Zhang et al., "3D-CE4: Prediccion residual avanzada para la codificacion multivista", Equipo de Colaboracion Conjunta en el Desarrollo de la Extension de Codificacion de Video de la ITU-T SG 16 WP 3 e ISO/IEC JTC1/SC 29/WG 11, 3.a Reunion: Ginebra, Suiza, 17-23 de enero de 2013, Doc. JCT3V-C0049 (numero MPEG m27784), en lo sucesivo "JCT3V-C0049". JCT3V-C0049 se puede descargar desde el siguiente enlace:
http://phenix.int-evrv.fr/ict3v/doc end user/current document.php?id=487.
En JCT3V-C0049, las imagenes de referencia de diferentes PU codificadas con factores de ponderacion distintos a cero pueden ser diferentes de PU a PU (o de bloque de video actual a bloque de video actual). Por lo tanto, es posible que se necesite acceder a diferentes imagenes desde la vista de referencia para generar el bloque compensado por movimiento (BaseTRef), por ejemplo, los bloques de video de referencia temporales 116, 140 y 144 en las FIGs. 8 y 9 del correspondiente bloque de video de referencia de inter-vista en la vista de referencia (Base), por ejemplo, los bloques de video de referencia de inter-vista 106 y 126 en las FIGs. 8 y 9.
En JCT3V-D0177 se propuso una simplificacion adicional de ARP a traves de la seleccion de imagenes de referencia mediante escalado vectorial de movimiento. Por ejemplo, se propuso que un codificador de video escalara los vectores de movimiento de la PU actual hacia una imagen fija antes de realizar la compensacion de movimiento para el proceso de generacion residual cuando el factor de ponderacion es diferente a 0. En JCT3V-D0177, la imagen fija se define como la primera imagen de referencia de cada lista de imagenes de referencia si es desde la misma vista. Cuando el vector de movimiento descodificado no apunta a la imagen fija, primero es escalado por el codificador de video, y luego utilizado por el codificador de video para identificar CurrTRef y BaseTRef para el bloque de video actual. Dicha imagen de referencia utilizada para ARP puede denominarse imagen de referencia de ARP objetivo. Pueden existir dos imagenes de referencia de ARP objetivo, correspondientes a RefPicList0 y RefPicList1, respectivamente, que se pueden designar como la imagen de referencia de ARP objetivo L0 y la imagen de referencia de ARP objetivo L1, respectivamente.
De acuerdo con JCT3V-C0049, un codificador de video aplica un filtro bi-lineal durante un proceso de interpolacion del bloque correspondiente (Base) y su bloque de prediccion (BaseTRef), pero aplica un filtro convencional de 8/4 coeficientes para un proceso de interpolacion del bloque de video actual (Curr), por ejemplo, PU, y el bloque de prediccion (CurrTRef) del bloque de video actual. Se propuso en JCT3V-D0177 que el codificador de video emplee siempre filtros bilineales para dichos procesos de interpolacion independientemente de si el bloque esta en vista de base o no de base cuando se aplica ARP.
Ademas, de acuerdo con las propuestas existentes para ARP, la vista de referencia para ARP se identifica mediante el indice de orden de vista devuelto desde el proceso NBDV. Como se describio anteriormente, un codificador de video puede utilizar el proceso NBDV para determinar el DV, por ejemplo, DV 104 o 124, utilizado para identificar el correspondiente bloque de video de referencia de inter-vista correspondiente (base), por ejemplo, los bloques de video de referencia de inter-vista 106 y 126 en las FIGs. 8 y 9. De acuerdo con las propuestas existentes para ARP, cuando la imagen de referencia de un bloque de video (PU) en una lista de imagenes de referencia es de una vista diferente, entonces la vista de referencia objetivo para ARP, identificada por el indice de orden de vista devuelto desde el proceso NBDV, esta deshabilitada para esta lista de imagenes de referencia.
Puede haber problemas asociados con las propuestas existentes para ARP en 3D-HEVC. Por ejemplo, de acuerdo con las propuestas existentes, ARP solo predice el valor residual generado a partir de la prediccion temporal, cuando el vector de movimiento actual de un bloque de video actual se refiere a una imagen de referencia en la misma vista. Por lo tanto, cuando el vector de movimiento actual de un bloque de video actual se refiere a una imagen de referencia de inter-vista, ARP no es aplicable, aunque el (los) elemento(s) sintactico(s) relacionado(s) con ARP sigue(n) siendo transmitido(s).
Como otro ejemplo, un DV obtenido, por ejemplo, segun se obtiene de acuerdo con un proceso de NBDV, puede ser menos preciso en comparacion con un dMv explfcito, que se elige tfpicamente mediante optimizacion de distorsion de velocidad (RDO). Ademas, como proceso de descodificacion, la prediccion de movimiento, incluida la prediccion de inter-vista, ocurre despues de la generacion de DV, y la ARP ocurre despues de la prediccion de movimiento. Por lo tanto, los TMV o DMVs mas precisos que podrfan usarse para identificar diferentes bloques que no se consideran en ARP actual estan disponibles cuando ARP es realizado por un codificador de video. Sin embargo, como se ha descrito anteriormente, con referencia a las FIGs. 8 y 9, las propuestas existentes para ARP temporal utilizan el DV obtenido a traves de NBDV para identificar el bloque de video de referencia de inter-vista correspondiente.
Esta divulgacion proporciona tecnicas que pueden abordar problemas asociados con las propuestas existentes para ARP, incluyendo aquellas analizadas anteriormente, y pueden asf mejorar la eficacia de codificacion de ARP. Por ejemplo, un codificador de video, por ejemplo, un codificador de video 20 y/o un descodificador de video 30, que implementa las tecnicas de esta divulgacion para codificar un bloque de video actual utilizando ARP, puede identificar un DMV desde una vista actual del bloque de video actual a una vista de referencia y determinar un bloque de prediccion residual para el bloque de video actual basandose en la identificacion del DMV. En algunos ejemplos, el DMV es un DMV usado para la prediccion de inter-vista del bloque de video actual, y el codificador de video puede realizar ARP de inter-vista para codificar el bloque de video actual. En otros ejemplos, el DMV es un DMV de un bloque de video de referencia temporal en la misma vista que el bloque de video actual. En tales
5
10
15
20
25
30
35
40
45
50
55
60
65
ejemplos, el DMV puede usarse en ARP temporal para el bloque de video actual en lugar del DV obtenido mediante NBDV para el bloque de video actual.
La FIG. 10 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion para ARP de inter-vista de un bloque de video predicho de inter-vista de acuerdo con las tecnicas descritas en esta divulgacion. De acuerdo con la tecnica de ejemplo ilustrada en la FIG. 10, un codificador de video, p. ej., codificador de video 20 y/o descodificador de video 30, puede utilizar un valor residual de inter-vista calculado en una unidad de acceso diferente para predecir el valor residual del bloque actual, que se predice mediante inter-vista. En contraste con las propuestas de ARP en las que ARP no se realiza cuando el vector de movimiento del bloque actual es un DMV, y se realiza solamente cuando el vector de movimiento para el bloque de video actual es un TMV, la tecnica de ejemplo de la FIG. 10 utiliza el DMV para realizar ARP.
En particular, la tecnica a modo de ejemplo de la FIG. 10 puede realizarse mediante un codificador de video, por ejemplo, un codificador de video 20 o un descodificador de video 30, cuando el vector de movimiento del bloque de video actual 150 (Curr) en una imagen actual 152 es un DMV 154 y el bloque de video de referencia de inter-vista 156 (Base) en una imagen de referencia de inter-vista 158 en la vista de referencia (V0) contiene al menos un TMV 160. En algunos ejemplos, el DMV 154 puede ser un DV que se convirtio a un DMV para actuar como un IDMVC para la prediccion de informacion de movimiento del bloque de video actual 150.
El codificador de video identifica el bloque de video de referencia de inter-vista 156 (Base) en la imagen de referencia de inter-vista 158 usando el dMv 154 para el bloque de video actual 150. El codificador de video utiliza un TMV 160 y una imagen de referencia asociada, por ejemplo, una imagen de referencia temporal 164 en la vista de referencia (V0), del bloque de video de referencia de inter-vista 156 junto con el DMV para identificar un bloque de video de referencia temporal 162 (BaseTRef) en la imagen de referencia temporal 164 en la vista de referencia (V0). La identificacion del bloque de video de referencia temporal 162 (BaseTRef) basandose en TMV 160 y DMV 154 esta representada por el vector de trazos 170 (TMV + DMV). El codificador de video tambien usa TMV 160 para identificar un bloque de referencia temporal 166 (CurrTRef) en una imagen de referencia temporal 168 en la vista actual (Vm). El bloque de video de referencia temporal 162 (BaseTRef) en la vista de referencia (V0) y el bloque de video de referencia temporal 166 (CurrTRef) en la vista actual (Vm) puede estar dentro de la misma unidad de acceso, es decir, la imagen de referencia temporal 164 en la vista de referencia (V0) y la imagen de referencia temporal 168 en la vista actual (Vm) pueden estar en la misma unidad de acceso
El codificador de video, por ejemplo, el codificador de video 20 y/o el descodificador de video 30, pueden entonces calcular el bloque de prediccion residual de inter-vista en una unidad de acceso diferente del bloque de video actual 150 basandose en la diferencia de pixel a pixel entre estos dos ultimos bloques, es decir, la diferencia entre el bloque de video de referencia temporal 166 en la vista actual y el bloque de video de referencia temporal 164 en la vista de referencia, o CurrTRef-BaseTRef. La senal de diferencia, denominada predictor residual de inter-vista, puede usarse para predecir el valor residual del bloque de video actual 150. La senal de prediccion del bloque de video actual 150 puede ser la suma del predictor de inter-vista, es decir, el bloque de video de referencia de intervista 156 (Base) y el valor residual de inter-vista predicho en una unidad de acceso diferente determinada basandose en la diferencia entre el bloque de video de referencia temporal 166 en la vista actual y el bloque de video de referencia temporal 164 en la vista de referencia. En algunos ejemplos, se aplica un factor de ponderacion w al valor residual de inter-vista predicho en la unidad de acceso diferente. En tales ejemplos, la senal de prediccion del bloque de video actual 150 puede ser: Base + w*(CurrTRef-BaseTRef).
En algunos ejemplos, el codificador de video puede determinar una imagen de referencia objetivo en una unidad de acceso objetivo para ARP de inter-vista, por ejemplo, similar a la determinacion de una imagen de referencia objetivo para ARP temporal, como se analizo anteriormente. En algunos ejemplos, como se ha analizado anteriormente con referencia a JCT3V-D0177, la imagen de referencia objetivo para cada lista de imagenes de referencia es la primera imagen de referencia en la lista de imagenes de referencia. En otros ejemplos, la imagen de referencia objetivo, por ejemplo, POC objetivo, para una o ambas listas de imagenes de referencia puede ser senalada desde el codificador de video 20 al descodificador de video 30, por ejemplo, en una PU, CU, fragmento, imagen u otra base. En otros ejemplos, la imagen de referencia objetivo para cada lista de imagenes de referencia es la imagen de referencia temporal en la lista de imagenes de referencia que tiene la diferencia de POC mas pequena comparada con el bloque actual y el indice de imagen de referencia mas pequeno. En otros ejemplos, la imagen de referencia objetivo para dos listas de imagenes de referencia es la misma.
Si la imagen que contiene el bloque de video de referencia temporal en la vista de referencia indicada por TMV 160 esta en una unidad de acceso diferente (instancia de tiempo) a la imagen de referencia de ARP objetivo, el codificador de video puede escalar TMV 160 a la imagen de referencia objetivo, por ejemplo, imagen de referencia objetivo 164, para identificar el bloque de video de referencia temporal 162 (BaseTRef) en la vista de referencia para el ARP de inter-vista. En tales ejemplos, el codificador de video localiza el bloque de video de referencia temporal 162 en la unidad de acceso que contiene la imagen de referencia de ARP objetivo. El codificador de video puede escalar TMV 160 mediante escalado de POC. Ademas, el TMV escalado se utiliza para identificar el bloque de video de referencia temporal (CurrTRef) 166 en la vista actual que se encuentra en la imagen de referencia de ARP objetivo.
5
10
15
20
25
30
35
40
45
50
55
60
65
En algunos ejemplos, el codificador de video escala TMV 160 a la imagen de referenda objetivo LX (X siendo 0 o 1), donde LX corresponde a la RefPicListX de la PU que incluye el TMV. En algunos ejemplos, el codificador de video puede escalar TMVs desde uno o ambos de RefPicList0 o RefPicList1 a la imagen de referencia objetivo L0 o L1, respectivamente. En algunos ejemplos, el codificador de video escala TMV 160 a la imagen de referencia objetivo LX, en la que X satisface la condicion de que el DMV 154 del bloque de video actual 150, por ejemplo, la PU actual, corresponde a RefPicListX.
De forma similar, en algunos ejemplos, el codificador de video escala DMV 154 a una vista de referencia objetivo para ARP antes de identificar el bloque de video de referencia de inter-vista 156 en la imagen de referencia 158 en la vista de referencia objetivo. El codificador de video puede escalar el DMV 154 mediante escalado de diferencia de orden de vista. La vista de referencia objetivo puede ser predeterminada y conocida por el codificador de video 20 y el descodificador de video 30, o puede ser senalada desde el codificador de video 20 al descodificador de video 30, por ejemplo, en una PU, CU, fragmento, imagen u otra base.
En algunos ejemplos de ARP de inter-vista, el codificador de video, por ejemplo, el codificador de video 20 y/o el descodificador de video 30, pueden obtener la senal de prediccion para el bloque actual 150 usando la misma estructura de prediccion y los bloques de video de referencia 156, 164 y 168 identificados ilustrados en la FIG. 10, pero determina el bloque de prediccion residual basandose en la diferencia entre los bloques de referencia 156 y 162 en la vista de referencia, en lugar de los bloques de referencia 162 y 166 en la unidad de acceso diferente. En tales ejemplos, el codificador de video puede aplicar un factor de ponderacion a otras matrices de muestra, por ejemplo, la diferencia entre los bloques de referencia 156 y 162 en la vista de referencia y, en consecuencia, obtener la senal de prediccion para el bloque de video actual 150 de la forma siguiente: CurrTRef + w * (Base - BaseTRef) . En algunos ejemplos de ARP de inter-vista, el codificador de video puede utilizar varios filtros de interpolacion, incluyendo filtros bilineales, para obtener los bloques de video de referencia 156, 162 y 166 si estan alineados con posiciones de pfxeles fraccionadas.
Aunque la FIG. 10 ilustra ejemplos de ARP de inter-vista en los que se identifican los bloques de video de referencia temporales en las vistas actuales y de referencia utilizando el TMV y la imagen de referencia asociada del bloque de video de referencia de inter-vista, en otros ejemplos pueden usarse otras TMVs e imagenes de referencia asociadas para identificar los bloques de video de referencia temporales en las vistas actual y de referencia. Por ejemplo, si el DMV del bloque de video actual es de una primera lista de imagenes de referencia (por ejemplo, RefPicList0 o RefPicList1) del bloque de video actual, un codificador de video puede usar un TMV y una imagen de referencia asociada de una segunda lista de imagenes de referencia (por ejemplo, la otra de RefPicList0 o RefPicList1) del bloque de video actual. En dichos ejemplos, el codificador de video puede identificar el bloque de video de referencia temporal en la vista actual en la imagen de referencia asociada con el TMV, o escalar el TMV a una unidad de acceso objetivo y una imagen de referencia objetivo para ARP para identificar el bloque de video de referencia temporal en la vista actual. En tales ejemplos, el codificador de video puede identificar el bloque de video de referencia temporal en la vista de referencia en una imagen de referencia que esta en la misma unidad de acceso que la imagen de referencia en la que se localizo el bloque de video de referencia temporal en la vista actual. En otros ejemplos, en lugar del TMV del bloque de video de referencia de inter-vista o el TMV de la otra lista de imagenes de referencia del bloque de video actual, un codificador de video puede utilizar de manera similar un TMV y una imagen de referencia asociada derivada de la informacion de movimiento de los bloques de video contiguos espaciales o temporales del bloque de video actual para identificar los bloques de video de referencia temporales en las vistas actuales y de referencia para ARP.
La FIG. 10 ilustra un ejemplo de ARP de inter-vista de acuerdo con la presente divulgacion. Como se ha analizado anteriormente, de acuerdo con las propuestas existentes de ARP temporal, se utiliza un DV del bloque de video actual, por ejemplo, obtenido mediante NBDV, para identificar el bloque de video de referencia de inter-vista en la vista de referencia. De acuerdo con las tecnicas de esta divulgacion, la precision del predictor residual temporal calculado en una vista de referencia para ARP temporal puede aumentarse reemplazando el DV por un DMV del bloque de referencia temporal en la vista actual (CurrTRef) si contiene al menos un DMV.
La FIG. 11 es un diagrama conceptual de un ejemplo de estructura de prediccion para la ARP temporal de un bloque de video actual predicho temporalmente 180 en una imagen actual 182 que utiliza un DMV 190 del bloque de referencia temporal en la vista actual (CurrTRef) de acuerdo con las tecnicas descritas en esta divulgacion . De acuerdo con el ejemplo de la FIG. 11, un codificador de video, por ejemplo, el codificador de video 20 y/o el descodificador de video 30 predice temporalmente el bloque de video actual 180 usando un TMV 184 que identifica un bloque de video de referencia temporal 186 en una imagen de referencia temporal 188. El codificador de video determina si el bloque de video de referencia temporal 186 contiene al menos un DMV, por ejemplo DMV 190, usado para el bloque de video de referencia temporal de prediccion de inter-vista 186. En algunos ejemplos, el DMV 190 puede ser un IDMVC utilizado para la prediccion de informacion de movimiento del bloque de video de referencia temporal 186.
El codificador de video puede utilizar DMV 190 en lugar de un DV del bloque de video actual 180 para la identificacion de uno o ambos de: un bloque de video de referencia de inter-vista 196 (Base) dentro de una imagen
5
10
15
20
25
30
35
40
45
50
55
60
65
de referenda 198 en la vista de referenda (V0), o un bloque de video de referenda temporal 194 (BaseTRef) en la imagen de referencia temporal 194 en la vista de referencia (V0). La identificacion del bloque de video de referencia temporal 194 basandose en TMV 184 y DMV 190 se ilustra mediante el vector 200, que esta marcada como TMV + DMV. En algunos ejemplos, cuando el codificador de video utiliza un DMV para reemplazar el DV de NBDV para ARP temporal, el codificador de video tambien puede reemplazar el indice de orden de vista devuelto del proceso NBDV por un indice de orden de vista asociado con el DMV seleccionado. Adicionalmente, en algunos ejemplos, un codificador de video tal vez no seleccione un DMV asociado con el bloque de video de referencia temporal 186 para ARP temporal del bloque de video actual 180 si el DMV se obtuvo usando el modo BVSP para reemplazar el DV de NBDV. El codificador de video puede determinar el bloque de prediccion residual temporal para el bloque de video actual 180 usando los bloques de video de referencia identificados 186, 192 y 196, como se ha descrito anteriormente con referencia a los bloques 106, 112 y 116 de la FIG. 8.
En algunos ejemplos, si el TMV 184 descodificado del bloque de video actual 180 apunta a una imagen de referencia en una unidad de acceso diferente (instancia de tiempo) a la imagen de referencia de ARP objetivo, el codificador de video puede escalar TMV 184 a la imagen de referencia de ARP objetivo 188 y localizar el bloque de video de referencia temporal 186 (CurrTRef) en la imagen de referencia de ARP objetivo mediante TMV 184 escalado, por ejemplo, usando escalado de POC. En tales ejemplos, el codificador de video puede obtener el DMV 190 en el bloque de video de referencia temporal 186 (CurrTRef) como se identifica mediante TMV 184 escalado. En algunos ejemplos, cuando el codificador de video escala TMV 184 para identificar el bloque de video de referencia temporal 186 (CurrTRef) en la imagen 188 perteneciente a la misma unidad de acceso que la imagen ARP objetivo, puede identificarse otro bloque de video de referencia temporal identificado por TMV 184 sin escalar, es decir, CurrTempRef. En tales ejemplos, el codificador de video puede usar un DMV de este bloque de video de referencia temporal (CurrTempRef), si esta disponible, para reemplazar el DV por ARP temporal del bloque de video actual 180. En algunos ejemplos, el codificador de video solo identifica y usa CurrTempRef cuando no hay DMV asociado con el bloque de video de referencia temporal 186 (CurrTRef). En algunos ejemplos, se pueden usar otros DMV de bloques codificados para reemplazar el DV de NBDV.
La FIG. 12 es un diagrama conceptual que ilustra tecnicas de ejemplo para la identificacion de un TMV o DMV en o adyacente a un bloque de video de acuerdo con las tecnicas descritas en esta divulgacion. Como se ha analizado anteriormente, con respecto a las FIGs. 10 y 11, un codificador de video, por ejemplo, un codificador de video 20 y/o un descodificador de video 30, identifica TMVs y DMV para implementar ARP de inter-vista y ARP temporal de acuerdo con las tecnicas descritas en esta divulgacion. En algunos ejemplos, el codificador de video identifica los TMV y los DMV en o adyacentes a un bloque de video actual, o un bloque de video de referencia temporal o de inter-vista, que puede ser una region dentro de una imagen de referencia con el mismo tamano que el bloque de video actual, por ejemplo, PU actual, de anchura x altura.
La FIG. 12 ilustra un bloque 210 de anchura x altura. El bloque 210 puede ser un bloque de video actual o un bloque de video de referencia temporal o de inter-vista que puede ser una region dentro de una imagen de referencia con el mismo tamano que el bloque de video actual. La FIG. 12 ilustra tambien un bloque 212 adyacente o que incluye la posicion central del bloque 210 y un bloque 214 adyacente o que incluye una posicion inferior derecha del bloque 210.
En algunos ejemplos, para ARP temporal o de inter-vista, el codificador de video considera, por ejemplo, solo el vector de movimiento, por ejemplo, TMV o DMV y el indice de referencia asociado con una PU u otro bloque que contiene la posicion central del bloque, por ejemplo, el bloque 212 dentro del bloque 210. En algunos ejemplos, el codificador de video considera, por ejemplo, solo la informacion de movimiento (incluyendo los vectores de movimiento y los indices de referencia) de dos bloques que contienen los pfxeles de la parte inferior derecha (con coordinacion con respecto al pixel de la esquina superior izquierda de (anchura, altura)), y central (con una coordinacion relativa a la esquina superior izquierda de (anchura/2, altura/2)) del bloque 210. Con referencia a la FIG. 12, los bloques 214 y 212, respectivamente, pueden ser ejemplos de bloques que contienen los pfxeles de la parte inferior derecha y central del bloque 210. Los bloques 212 y 214 pueden ser NxN, que puede ser la granularidad de bloque mas grande que puede contener hasta un vector de movimiento correspondiente a cada lista de imagenes de referencia; por ejemplo, NxN puede ser 4x4. Los bloques 212 y 214 se pueden comprobar para el DMV o TMV para ARP en cualquier orden.
En algunos ejemplos, suponiendo que el bloque de video actual, por ejemplo, el PU actual, tiene una coordenada de (x, y) y el vector utilizado para identificar el bloque de video de referencia (v[0], v[1 ]) es de un vector de movimiento (TMV o DMV), el codificador de video puede convertir el DMV como v[i] = (mv[j]+2)>> 2, para i igual a 0 o 1 respectivamente, o v[i]= mv[j ]>>2. En tales ejemplos, el codificador de video puede identificar los bloques 212 y 214 respectivamente como el bloque, por ejemplo, bloque 4x4, cubriendo el pixel con coordinacion de (x+v[0]+anchura/2, y+v[1]+altura/2) y el bloque que cubre el pixel con coordinacion (x+v[0]+anchura, y+v[1]+altura). En algunos ejemplos, el codificador de video puede identificar uno o ambos del bloque central 212 y del bloque inferior derecho 214 por coordinacion desplazada con (-1, -1), que corresponde a (x+v[0]+anchura/2-1, y+v[1]+altura/2-1) y (x+v[0]+anchura-1, y+v [1]+altura-1) respectivamente.
En algunos ejemplos, el codificador de video puede comprobar los bloques 212 y 214 para un TMV o DMV
5
10
15
20
25
30
35
40
45
50
55
60
65
disponible de acuerdo con una orden de comprobacion. En algunos ejemplos, el codificador de video puede comprobar primero el bloque central 212 y utilizar el DMV o TMV asociado con el bloque central para ARP, si dicho vector de movimiento esta disponible. En tales ejemplos, el codificador de video puede comprobar el bloque inferior derecho 214 para un TMV o DMV para ARP si dicho vector de movimiento no estaba disponible desde el bloque central 212.
En algunos ejemplos, el codificador de video puede comprobar las listas de imagenes de referencia para los bloques 212, 214 para un vector de movimiento apropiado para ARP en un orden de comprobacion. Por ejemplo, el codificador de video puede comprobar RefPicList0, y utilizar el DMV o TMV asociado con RefPicList0, si dicho vector de movimiento esta disponible. En tales ejemplos, el codificador de video puede comprobar RefPicList1 para un TMV o DMV para ARP si dicho vector de movimiento no estaba disponible en RefPicList0.
En algunos ejemplos, el codificador de video puede considerar, por ejemplo, solo considerar, los vectores de movimiento asociados con las PU que contienen la posicion central y una o mas de las cuatro posiciones de esquina del bloque. El codificador de video puede considerar las PU en un orden basandose en una prioridad y, una vez que se encuentre un vector de movimiento, puede no considerar las otras PU. La prioridad de estas diferentes posiciones puede, en un ejemplo, definirse como: central, superior izquierda, superior derecha, inferior izquierda e inferior derecha del bloque.
En algunos ejemplos, el codificador de video puede configurarse para considerar toda la informacion de movimiento asociada con el bloque. En algunos ejemplos, el codificador de video tal vez no compruebe los vectores de movimiento adicionales una vez que se encuentre un TMV o DMV para ARP dentro del bloque 210. Una prioridad para comprobar PU dentro del bloque 210 para vectores de movimiento puede ser, por ejemplo, un orden de escaneado de trama o escaneado en espiral. Algunos ejemplos de ordenes de escaneado en espiral para escanear un bloque, por ejemplo, un bloque 4x4, para vectores de movimiento se representan en las FIGs. 13A - 13D.
En algunos ejemplos, al comprobar un bloque 210 para un TMV para ARP, un codificador de video tal vez solo considere TMVs apuntando a una imagen de referencia en la misma unidad de acceso que la imagen de referencia de ARP objetivo. En algunos ejemplos, al comprobar un bloque de referencia 210 para un DMV para ARP, un codificador de video tal vez solo considere DMVs que apuntan a una imagen de referencia de inter-vista en una misma vista que la indicada por el DMV o DV para el bloque de video actual. En algunos ejemplos, el codificador de video extiende primero el bloque 210 a un bloque asociado con una PU y busca un tMv o un DMV dentro del bloque extendido para ser el TMV o DMV para ARP. En algunos ejemplos, si no se encuentra TMV o DMV en el bloque 210, el codificador de video realiza ARP usando un vector de movimiento cero, o no realiza ARP. En algunos ejemplos, cuando un codificador de video utiliza un vector de movimiento cero para identificar los dos bloques de video de referencia temporales en la vista actual y de referencia, el codificador de video puede usar la imagen de referencia objetivo para RefPicListX, donde X puede ser 0 o 1 e indicar que lista fue invocada para la prediccion de inter-vista, por ejemplo, que lista inclufa el DMV.
Como se ha descrito anteriormente, por ejemplo, con referencia a la FIG. 12, un codificador de video puede identificar un TMV o un DMV en un bloque dado que contiene solamente hasta dos conjuntos de informacion de movimiento, por ejemplo, un bloque 4x4 dentro del bloque 210. Un conjunto de informacion de movimiento corresponde a una primera lista de imagenes de referencia, por ejemplo, la Lista de Imagenes de Referencia 0 (RefPicLista0) para el bloque dado y la otra corresponde a una segunda lista de imagenes de referencia, por ejemplo, la Lista de Imagenes de Referencia 1 (RefPicList1), para el boque dado. Cada conjunto de informacion de movimiento incluye un vector de movimiento y un indice de referencia.
En algunos ejemplos, un codificador de video solo considera la informacion de movimiento correspondiente a RefPicList0 para identificar un TMV o DMV para ARP de un bloque de video actual. En otros ejemplos, un codificador de video solo considera la informacion de movimiento correspondiente a RefPicList1 para identificar un TMV o DMV para ARP de un bloque de video actual. En otros ejemplos, el codificador de video considera la informacion de movimiento correspondiente a RefPicListX primero. Si la informacion de movimiento correspondiente a RefPicListX no incluye un TMV o DMV adecuado para ARP, el codificador de video considera la informacion de movimiento correspondiente a RefPicListY (con Y igual a 1-X).
En algunos ejemplos, X es igual a 0. En algunos ejemplos, X es igual a 1. En algunos ejemplos, X es igual a Z, en el que Z corresponde a la lista de imagenes de referencia en la que se incluyo el vector de movimiento (TMV o DMV) del bloque de video actual. Por ejemplo, si el vector de movimiento perteneciente al bloque de video actual, por ejemplo, PU actual, corresponde a RefPicList0, Z es 0. Si el vector de movimiento perteneciente al bloque de video actual, por ejemplo, la PU actual, corresponde a RefPicList1, Z es 1. En algunos ejemplos, el codificador de video solo codifica la informacion de movimiento correspondiente a RefPicListZ.
Otro ejemplo de tecnica para mejorar la precision de la ARP temporal, por ejemplo, la exactitud del valor residual temporal calculado en una vista de referencia, reemplazando el DV del bloque de video actual, incluye reemplazar el DV, por ejemplo, obtenido mediante NBDV, por un DV obtenido de un bloque de profundidad co-ubicado de un bloque de referencia temporal del bloque actual (CurrTRef). Un codificador de video, por ejemplo, el codificador de
5
10
15
20
25
30
35
40
45
50
55
60
65
video 20 y/o descodificador de video 30, puede obtener el DV a traves de un bloque de profundidad co-ubicado de un bloque de referencia temporal del bloque actual (CurrTRef) usando tecnicas similares o iguales a las utilizadas para obtener un DV para un bloque de video actual para BVSP, como se ha descrito anteriormente con respecto a la FIG. 7.
El codificador de video puede utilizar el DV obtenido a traves del bloque de profundidad co-ubicado del bloque de referencia temporal del bloque actual (CurrTRef) en lugar del DV del actual, por ejemplo, obtenido mediante NBDV, para la obtencion de cualquiera de los dos o los dos bloques de referencia en la vista de referencia utilizada para ARP. Por ejemplo, el codificador de video puede utilizar el DV obtenido a traves del bloque de profundidad co- ubicado del bloque de referencia temporal del bloque actual (CurrTRef) para identificar uno o ambos bloques de referencia de inter-vista del bloque actual en la vista de referencia (Base) o el bloque de referencia temporal en la vista de referencia (BaseTRef). El codificador de video puede identificar el bloque de referencia temporal en la vista de referencia (BaseTRef) anadiendo el TMV del bloque actual al DV obtenido a traves del bloque de profundidad co- ubicado del bloque de referencia temporal del bloque actual (CurrTRef).
Como se ha analizado anteriormente, en algunos ejemplos, si el TMV descodificado del bloque actual apunta a una imagen de referencia en una unidad de acceso diferente (instancia de tiempo) a la imagen de referencia de ARP objetivo, el codificador de video puede escalar el TMV a la imagen de referencia de ARP objetivo, y localizar CurrTRef mediante el TMV escalado. En tales ejemplos, el codificador de video obtiene el DV del bloque de profundidad co-ubicado del bloque de referencia temporal del bloque actual (CurrTRef) como se identifica mediante el TMV escalado. Ademas, como se ha analizado anteriormente, en algunos ejemplos, cuando se escala un TMV para identificar el CurrTRef en una imagen que pertenece a la misma unidad de acceso que la imagen ARP objetivo, el codificador de video puede identificar otro bloque de referencia temporal identificado por el TMV sin escalar, es decir, se puede identificar un CurrTempRef, y un DV derivado del bloque de profundidad co-ubicado de CurrTempRef, si esta disponible, puede ser utilizado para reemplazar el DV. En algunos ejemplos, el codificador de video solo necesita identificar y utilizar CurrTempRef cuando no puede obtener un mediante un bloque de profundidad co-ubicado de un bloque de referencia temporal del bloque actual (CurrTRef).
El codificador de video, por ejemplo, el codificador de video 20 y/o el descodificador de video 30, pueden obtener un DV del bloque de profundidad co-ubicado del bloque de referencia temporal del bloque actual (CurrTRef) en cualquiera de una variedad de formas. En algunos ejemplos, el codificador de video utiliza solo una muestra dentro del bloque de profundidad co-ubicado directamente, y convierte el valor de profundidad asociado en el DV para ARP temporal. En algunos ejemplos, la muestra individual del bloque de profundidad co-ubicado utilizado para obtener el DV para ARP temporal es el pixel situado en el centro del bloque de profundidad co-ubicado, por ejemplo, en (W/2, H/2) relativo a la muestra superior izquierda de un bloque de profundidad con un tamano de WxH.
En algunos ejemplos, el codificador de video utiliza varias muestras selectivas dentro del bloque de profundidad co- ubicado para determinar un valor de profundidad representativo, por ejemplo, a traves de una funcion matematica. En un ejemplo, el codificador de video selecciona cuatro muestras de profundidad de esquina. En otro ejemplo, el codificador de video selecciona las muestras de profundidad dentro del bloque de profundidad co-ubicado basandose en las muestras de profundidad contiguas del bloque de profundidad. Por ejemplo, cuando las muestras de profundidad contiguas muestran un borde horizontal, el codificador de video puede seleccionar solamente los dos pfxeles de esquina en la primera fila. En algunos ejemplos, todas las muestras de profundidad dentro del bloque de profundidad co-ubicado pueden usarse para determinar un valor de profundidad representativo a traves de una funcion matematica. En algunos ejemplos, el codificador de video puede determinar un valor de profundidad representativo basandose en valores de profundidad seleccionados (o todos) a partir del bloque de profundidad co- ubicado, por ejemplo, determinando un valor maximo, promedio o mediana de los valores de profundidad seleccionados o aplicando alguna otra funcion a los valores de profundidad seleccionados.
En algunos ejemplos, un codificador de video puede aplicar las tecnicas ARP temporales descritas anteriormente que implican el Dv obtenido a traves del bloque de profundidad co-ubicado del bloque de referencia temporal del bloque actual (CurrTRef) cuando no es necesario descodificar una vista de textura independiente de la vista de profundidad asociada. Cuando se requiere la descodificacion de una vista de textura independiente de la vista de profundidad asociada, un codificador de video puede aplicar otras tecnicas de ARP descritas en el presente documento, tales como las descritas con respecto a las FIGs. 10 y 11.
Cuando tanto la ARP temporal como de inter-vista estan habilitadas, la condicion de senalizacion del factor de ponderacion para ARP puede cambiarse de comprobar si todas las imagenes de referencia son imagenes de referencia de inter-vista a simplemente comprobar si la imagen actual es una imagen de acceso aleatorio (IRAP, con un tipo de unidad NAL de 15 a 22, incluidos: es decir, BLA_W_LP, BLA_W_RADL, BLA_N_LP, IDR_W_RADL, IDR_N_LP o CRA_NUT). Por lo tanto, en algunos ejemplos, un codificador de video, por ejemplo, el codificador de video 20, senala el factor de ponderacion si la CU actual es una CU inter-codificada que no pertenece a una imagen IRAP. En tales ejemplos, cuando una imagen es una imagen de acceso aleatorio, el codificador de video nunca transmite el factor de ponderacion. En otros ejemplos, el codificador de video 20 senala adicionalmente que el factor de ponderacion es para las CU inter-codificadas pertenecientes a una imagen IRAP, si al menos una de sus imagenes de referencia (que solo puede ser una imagen de referencia de inter-vista) tiene una imagen de referencia
de inter-vista en cualquiera de sus listas de imagenes de referencia. En dichos ejemplos, los codificadores de video pueden realizar ARP de la prediccion residual de inter-vista para imagenes dentro de la unidad de acceso
Para ejemplos en los que un codificador de video, por ejemplo, el codificador de video 20, senala el factor de 5 ponderacion si la CU actual es una CU inter-codificada que no pertenece a una imagen IRAP, se cambia la tabla de sintaxis de la coding_unit, como se resalta a continuacion. Las adiciones relativas a 3D-HEVC Test Model 4 estan subrayadas y las supresiones se muestran con texto.
coding_unit(x0, y0, log2CbSize, ctDepth) {
Descriptor
if(transquant_bypass_enable_flag) {
cu_transquant_bypass_flag
ae(v)
}
if(slice_type != I)
skip_flag[x0][y0]
ae(v)
if(skip_flag[x0][y0]) {
prediction_unit (x0, y0, log2CbSize)
si (iv res pred flag && (nal unit type > = BLA W LP && nal unit type < = RSV IRAP VCL23))
iv_res_pred_weight_idx
ae(v)
si (icEnableFlag)
ic_flag
ae(v)
}
else {
nCbS = (1 <<log2CbSize)
if(slice_type != I)
pred_mode_flag
ae(v)
if((PredMode[x0][y0]! = MODE_INTRA || log2CbSize = = Log2MinCbSize) && !predPartModeFlag)
part_mode
ae(v)
if(PredMode[x0][y0] = = MODE_INTRA) {
if(PartMode = = PART_2Nx2N && pcm_enabled_flag && log2CbSize >= Log2MinIPCMCUSize && log2CbSize <= Log2MaxIPCMCUSize)
pcm_flag
ae(v)
if(pcm_flag) {
num_subsequent_pcm
tu(3)
NumPCMBlock = num_subsequent_pcm + 1
while(!byte_aligned( ))
pcm_alignment_zero_bit
f(1)
pcm_sample(x0, y0, log2CbSize)
} else {
pbOffset = (PartMode = = PART_NxN) ? (nCbS / 2) : 0
log2PbSize = log2CbSize - (PartMode = = PART_NxN ? 1 : 0)
for(j = 0; j <= pbOffset; j = j + pbOffset)
for(i = 0; i <= pbOffset; i = i + pbOffset) {
if(vps_depth_modes_flag[nub_layer_id])
depth_mode_parameters(x0 + i, y0+ j)
if(depth_intra_mode[x0 + i][y0 + j] = = INTRA_DEP_NONE)
prev_intra_luma_pred_flag[x0 + i][y0+ j]
ae(v)
}
for(j = 0; j <= pbOffset; j = j + pbOffset)
for(i = 0; i <= pbOffset; i = i + pbOffset) {
if(depth_intra_mode[x0 + i][y0 + j] = = INTRA_DEP_NONE) {
5
10
15
20
25
30
35
40
coding_unit(x0, y0, log2CbSize, ctDepth) {
Descriptor
if(prev_intra_luma_pred_flag[x0 + i][y0+ j])
mpm_idx[x0 + i][y0+ j]
ae(v)
else
rem_intra_luma_pred_mode[x0 + i][y0+ j]
ae(v)
}
}
if (!SdcFlag[x0][y0])
intra_chroma_pred_mode[x0][y0]
ae(v)
}
} else {
if(PartMode = = PART_2Nx2N) {
if (iv res pred flag && (nal unit type > = BLA W LP && nal unit type < = RSV
IRAP VCL23 ))
iv_res_pred_weight_idx
ae(v)
prediction_unit(x0, y0, nCbS, nCbS)
} else if(PartMode = = PART_2NxN) {
}
Ademas, la variable TempRefPicInListsFlag y el proceso de obtencion relacionado de TempRefPicInListsFlag se elimina como se muestra a continuacion:
H. 8.3.7 Proceso de obtencion para el fndice de referenda objetivo alternativo para TMVP en el modo de fusion
• Este proceso se invoca cuando el fragmento actual es un fragmento P o B.
• Las variables AltRefIdxL0 y AltRefIdxL1 se establecen igual a -1 y lo siguiente se aplica para X en el rango de 0 a
I, inclusive:
• Cuando X es igual a 0 o el fragmento actual es un fragmento B, se aplica lo siguiente:
■ ^zeroIdxLtFlag = RefPicListX[0] es una imagen de referencia a corto plazo? 0 : 1
■ for (i = 1; i <= num_ref_idx_1X_active_minus 1 && AltRefIdxLX = =-1; i++)
• if ((zeroIdxLtFlag && RefPicListX[i] es una imagen de referencia a corto plazo) ||
o (IzeroIdxLtFlag && RefPicListX[i] es una imagen de referencia a largo plazo)) o AltRefIdxLX = i
Las propuestas existentes para ARP temporal deshabilitan ARP cuando NBDV no devuelve un DV disponible para el bloque de video actual. Sin embargo, como se ha analizado anteriormente, esta divulgacion proporciona tecnicas para ARP que no dependen de un DV obtenido mediante NBDV. En consecuencia, en algunos ejemplos de acuerdo con esta divulgacion, en lugar de inhabilitar siempre ARP cuando NBDV no devuelve un DV disponible, un codificador de video puede habilitar ARP en al menos algunas situaciones en las que NBDV no devuelve un DV disponible. Por ejemplo, un codificador de video, p. ej., el codificador de video 20 y/o el descodificador de video 30, puede habilitar un ARP temporal si un bloque de video de referencia temporal (CurrTRef) cubre al menos un DMV. Como otro ejemplo, un codificador de video puede habilitar un ARP temporal si el bloque de video de referencia temporal (CurrTRef) cubre al menos un DMV y el bloque correspondiente no esta codificado con el modo BVSP. En dichos ejemplos, el codificador de video puede aplicar un ARP temporal usando el DMV para reemplazar el DV, por ejemplo, como se ha descrito anteriormente con respecto a la FIG. 11. Como otro ejemplo, un codificador de video puede habilitar un ARP de inter-vista, por ejemplo, como se ha descrito anteriormente con respecto a la FIG. 10, si la imagen de referencia actual es una imagen de referencia de inter-vista. Pueden darse una o mas restricciones en el descodificador de video para que cuando NBDV no devuelva un DV disponible y una o mas de las condiciones anteriores no sean verdaderas, el factor de ponderacion w, para ARP se ponga a 0.
La FIG. 14 es un diagrama de bloques que ilustra un codificador de video a modo de ejemplo 20 que puede implementar las tecnicas descritas en esta divulgacion. El codificador de video 20 puede realizar una intra e inter- codificacion de bloques de video dentro de fragmentos de video. La intra-codificacion se apoya en la prediccion
5
10
15
20
25
30
35
40
45
50
55
60
65
espacial para reducir o eliminar la redundancia espacial en el video dentro de una trama o imagen de video dada. La intercodificacion se basa en la prediccion temporal o inter-vista para reducir o eliminar la redundancia temporal en el video dentro de tramas o imagenes adyacentes de una secuencia de video. El modo intra (modo I) puede referirse a cualquiera de varios modos de compresion espacial. Las inter-modalidades, tales como la prediccion unidireccional (modalidad P) o la bi-prediccion (modalidad B), pueden incluir cualquiera de varias modalidades de compresion de base temporal.
En el ejemplo de la FIG. 14, el codificador de video 20 incluye una unidad de division 235, una unidad de procesamiento de prediccion 241, una memoria de imagenes de referencia 264, un sumador 250, una unidad de procesamiento de transformacion 252, una unidad de procesamiento de cuantificacion 254 y una unidad de codificacion por entropfa 256. La unidad de procesamiento de prediccion 241 incluye una unidad de estimacion de movimiento 242, una unidad de compensacion de movimiento 244, una unidad de prediccion residual avanzada (ARP) 254 y una unidad de procesamiento de intra-prediccion 246. Para la reconstruccion de bloques de video, el codificador de video 20 incluye ademas una unidad de procesamiento de cuantificacion inversa 258, una unidad de procesamiento de transformacion inversa 260 y un sumador 262. Tambien puede incluirse un filtro de desbloqueo (no se muestra en la FIG. 14) para filtrar lfmites de bloque, para eliminar distorsiones de efecto pixelado del video reconstruido. Si se desea, el filtro de desbloqueo filtrara tfpicamente la salida del sumador 262. Tambien pueden usarse filtros de bucle adicionales (en bucle o tras el bucle), ademas del filtro de desbloqueo.
En varios ejemplos, una unidad de codificador de video 20 puede estar encargada de realizar las tecnicas de esta divulgacion. Ademas, en algunos ejemplos, las tecnicas de esta divulgacion pueden dividirse entre una o mas de las unidades del codificador de video 20. Por ejemplo, la unidad ARP 245 puede realizar las tecnicas de esta divulgacion, solas o en combinacion con otras unidades de codificador de video, tales como la unidad de estimacion de movimiento 242 y la unidad de compensacion de movimiento 244.
Como se muestra en la FIG. 14, el codificador de video 20 recibe datos de video y la unidad de division 235 divide los datos en bloques de video. Esta division tambien puede incluir la division en fragmentos, elementos u otras unidades mayores, asf como la division de bloques de video, por ejemplo, de acuerdo con una estructura de arbol cuaternario de unas LCU y CU. El codificador de video 20 ilustra en general los componentes que codifican bloques de video de un fragmento de video que se va a codificar. El fragmento puede dividirse en multiples bloques de video (y, posiblemente, en conjuntos de bloques de video denominados elementos).
La unidad de procesamiento de prediccion 241 puede seleccionar una entre una pluralidad de posibles modos de codificacion, tal como una entre una pluralidad de modos de intra-codificacion, o una de una pluralidad de modos de inter-codificacion, para el bloque de video actual, basandose en resultados de errores (por ejemplo, la velocidad de codificacion y el nivel de distorsion). La unidad de procesamiento de prediccion 241 puede proporcionar el bloque intra-codificado o inter-codificado resultante al sumador 250 para generar datos de bloques residuales, y al sumador 262 para reconstruir el bloque codificado para su uso como una imagen de referencia.
La unidad de intra-prediccion 246, dentro de la unidad de procesamiento de prediccion 241, puede realizar la codificacion intra-predictiva del bloque de video actual con respecto a uno o mas bloques contiguos en la misma trama o fragmento que el bloque que va a codificarse, para proporcionar compresion espacial. La unidad de estimacion de movimiento 242 y la unidad de compensacion de movimiento 244, dentro de la unidad de procesamiento de prediccion 241, realizan la codificacion inter-predictiva del bloque de video actual con respecto a uno o mas bloques predictivos en una o mas imagenes de referencia, por ejemplo para proporcionar compresion temporal.
La unidad de estimacion de movimiento 242 puede estar configurada para determinar el modo de inter-prediccion para un fragmento de video de acuerdo con un patron predeterminado para una secuencia de video. La unidad de estimacion de movimiento 242 y la unidad de compensacion de movimiento 244 pueden estar sumamente integradas, pero se ilustran por separado con fines conceptuales. La estimacion de movimiento, realizada por la unidad de estimacion de movimiento 242, es el proceso de generacion de vectores de movimiento, que estiman el movimiento de los bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de video de una trama o imagen de video actual con respecto a un bloque predictivo de una imagen de referencia.
Un bloque predictivo es un bloque del que se descubre que se corresponde estrechamente con la PU del bloque de video que se va a codificar en terminos de diferencia de pfxeles, que puede determinarse mediante la suma de una diferencia absoluta (SAD), suma de diferencia al cuadrado (SSD) u otras metricas de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular valores para posiciones de pixel de subentero de imagenes de referencia almacenadas en la memoria de imagenes de referencia 264. Por ejemplo, el codificador de video 20 puede interpolar valores de posiciones de un cuarto de pixel, posiciones de un octavo de pixel u otras posiciones de pixel fraccionarias de la imagen de referencia. Por lo tanto, la unidad de estimacion de movimiento 242 puede realizar una busqueda de movimiento con respecto a las posiciones de pixel completo y a las posiciones de pixel fraccionario, y emitir un vector de movimiento con una precision de pixel fraccionario.
5
10
15
20
25
30
35
40
45
50
55
60
65
La unidad de estimacion de movimiento 242 calcula un vector de movimiento para una PU de un bloque de video de un fragmento sometido a intercodificacion, comparando la posicion de la PU con la posicion de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse entre una primera lista de imagenes de referencia (lista 0 o RefPicList0) o una segunda lista de imagenes de referencia (lista 1 o RefPicListl), cada una de las cuales identifica una o mas imagenes de referencia almacenadas en la memoria de imagenes de referencia 264. La unidad de estimacion de movimiento 242 envfa el vector de movimiento calculado a la unidad de codificacion por entropia 256 y a la unidad de compensacion de movimiento 246.
La compensacion de movimiento, realizada por la unidad de compensacion de movimiento 244, puede implicar extraer o generar el bloque predictivo basandose en el vector de movimiento determinado por la estimacion de movimiento, realizando posiblemente interpolaciones hasta la precision de subpixel. Tras recibir el vector de movimiento para la PU del bloque de video actual, la unidad de compensacion de movimiento 244 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imagenes de referencia. El codificador de video 20 forma un bloque de video residual restando los valores de pfxeles del bloque predictivo a los valores de pfxeles del bloque de video actual que se esta codificando, generando valores de diferencia de pixel. Los valores de diferencia de pixel forman datos residuales para el bloque, y pueden incluir componentes de diferencia de luma y croma. El sumador 250 representa el componente o los componentes que realizan esta operacion de sustraccion. La unidad de compensacion de movimiento 244 tambien puede generar elementos sintacticos asociados a los bloques de video y al fragmento de video para su uso por el descodificador de video 30 en la descodificacion de los bloques de video del fragmento de video.
La unidad de intra-prediccion 246 puede intra-predecir un bloque actual, como alternativa a la inter-prediccion llevada a cabo por la unidad de estimacion de movimiento 242 y la unidad de compensacion de movimiento 244, como se ha descrito anteriormente. En particular, la unidad de procesamiento de intra-prediccion 246 puede determinar un modo de intra-prediccion a usar para codificar un bloque actual. En algunos ejemplos, la unidad de procesamiento de intra-prediccion 246 puede codificar un bloque de video actual usando varias modalidades de intra-prediccion, por ejemplo, durante diferentes pasadas de codificacion, y el modulo de intra-prediccion 246 (o la unidad de procesamiento de prediccion 241, en algunos ejemplos) puede seleccionar una modalidad adecuada de intra-prediccion a usar, entre las modalidades probadas. Por ejemplo, la unidad de procesamiento de intra-prediccion 246 puede calcular valores de velocidad-distorsion usando un analisis de velocidad-distorsion para los diversos modos de intra-prediccion probadas, y seleccionar el modo de intra-prediccion que tenga las mejores caracterfsticas de velocidad-distorsion entre los modos probados. El analisis detasa-distorsion determina en general una cantidad de distorsion (o error) entre un bloque codificado y un bloque original no codificado que se codifico para generar el bloque codificado, asf como una tasa de bits (es decir, un numero de bits) usada para generar el bloque codificado. La unidad de procesamiento de intra-prediccion 246 puede calcular relaciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar que modo de intra-prediccion presenta el mejor valor de velocidad-distorsion para el bloque.
En cualquier caso, tras seleccionar un modo de intra-prediccion para un bloque, la unidad de procesamiento de intra- prediccion 246 puede proporcionar informacion que indica el modo de intra-prediccion seleccionada para el bloque, a la unidad de codificacion por entropia 256. La unidad de codificacion por entropia 256 puede codificar la informacion que indica la modalidad de intra-prediccion seleccionada de acuerdo con las tecnicas de esta divulgacion. El codificador de video 20 puede incluir datos de configuracion en el flujo de bits transmitidos, que pueden incluir una pluralidad de tablas de indices de modalidades de intra-prediccion y una pluralidad de tablas de indices de modalidades de intra-prediccion modificadas (tambien denominadas tablas de asignacion de palabras de codigo), definiciones de contextos de codificacion para varios bloques e indicaciones de la modalidad de intra-prediccion mas probable, una tabla de indices de modalidades de intra-prediccion y una tabla modificada de indices de modalidades de intra-prediccion, a usar en cada uno de los contextos.
Despues de que la unidad de procesamiento de prediccion 241 genera el bloque predictivo para el bloque de video actual, ya sea mediante la inter-prediccion o la intra-prediccion, el codificador de video 20 forma un bloque de video residual restando el bloque predictivo al bloque de video actual. Los datos de video residuales del bloque residual pueden incluirse en una o mas TU y aplicarse a la unidad de procesamiento de transformacion 252. La unidad de procesamiento de transformacion 252 transforma los datos de video residuales en coeficientes de transformacion residuales mediante una transformacion, tal como una transformacion de coseno discreta (DCT) o una transformacion similar desde un punto de vista conceptual. La unidad de procesamiento de transformacion 252 puede convertir los datos de video residuales de un dominio de pixel a un dominio de transformacion, tal como un dominio de frecuencia.
La unidad de procesamiento de transformacion 252 puede enviar los coeficientes de transformacion resultantes a la unidad de procesamiento de cuantificacion 254. La unidad de procesamiento de cuantificacion 254 cuantifica los coeficientes de transformacion para reducir adicionalmente la velocidad binaria. El proceso de cuantificacion puede reducir la profundidad de bits asociada a algunos o la totalidad de los coeficientes. El grado de cuantificacion puede modificarse ajustando un parametro de cuantificacion. En algunos ejemplos, la unidad de procesamiento de cuantificacion 254 puede llevar a cabo un escaneado de la matriz, incluyendo los coeficientes de transformacion cuantificados. De forma alternativa, la unidad de codificacion por entropia 256 puede llevar a cabo el escaneado.
5
10
15
20
25
30
35
40
45
50
55
60
65
Tras la cuantificacion, la unidad de codificacion por entropfa 256 realiza la codificacion por entropfa de los coeficientes de transformacion cuantificados. Por ejemplo, la unidad de codificacion por entropfa 256 puede realizar una codificacion de longitud variable adaptativa segun el contexto (CAVLC), una codificacion aritmetica binaria adaptativa segun el contexto (CABAC), una codificacion aritmetica binaria adaptativa segun el contexto basandose en la sintaxis (SBAC), una codificacion por entropfa por division de intervalos de probabilidad (PIPE) u otros procedimientos o tecnicas de codificacion por entropfa. Tras la codificacion por entropfa realizada por la unidad de codificacion por entropfa 256, el flujo de bits de video codificado puede transmitirse al descodificador de video 30, o archivarse para su posterior transmision o recuperacion mediante el descodificador de video 30. La unidad de codificacion por entropfa 256 tambien puede realizar la codificacion por entropfa de los vectores de movimiento y los otros elementos sintacticos para el fragmento de video actual que se esta codificando.
La unidad de procesamiento de cuantificacion inversa 258 y la unidad de procesamiento de transformacion inversa 260 aplican una cuantificacion inversa y una transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio de pixel, para su posterior uso como un bloque de referencia de una imagen de referencia. La unidad de compensacion de movimiento 244 puede calcular un bloque de referencia anadiendo el bloque residual a un bloque predictivo de una de las imagenes de referencia de una de las listas de imagenes de referencia. La unidad de compensacion de movimiento 244 tambien puede aplicar uno o mas filtros de interpolacion al bloque residual reconstruido para calcular valores de pixel subentero y usarlos en la estimacion de movimiento. El sumador 262 anade el bloque residual reconstruido al bloque predictivo con compensacion de movimiento generado por la unidad de compensacion de movimiento 244 para generar un bloque de referencia para su almacenamiento en la memoria de imagenes de referencia 264. La unidad de estimacion de movimiento 242 y la unidad de compensacion de movimiento 244 pueden usar el bloque de referencia como un bloque de referencia para realizar la inter-prediccion de un bloque en una trama o imagen de video posterior.
El codificador de video 20, por ejemplo, la unidad ARP 245 del codificador de video 20, puede realizar cualquiera de las tecnicas de ARP, por ejemplo las tecnicas de ARP temporales o de inter-vista descritas aquf. Por ejemplo, si la unidad de procesamiento de prediccion 241 y/o la unidad de estimacion de movimiento 242 inter-vista predice un bloque de video actual, por ejemplo, predice el bloque de video actual basandose en un bloque de referencia de una imagen de referencia en una vista de referencia diferente al bloque de video actual utilizando un DMV, la unidad ARP 245 puede identificar el DMV asociado con el bloque de video actual para la prediccion de inter-vista del bloque de video actual. En algunos ejemplos, el DMV puede ser un DV convertido a un IDMVC para la prediccion de informacion de movimiento del bloque de video actual.
Basandose en el DMV, la unidad ARP 245, sola o con la unidad de compensacion de movimiento 244, tambien puede identificar el bloque de video de referencia de inter-vista (Base) y un TMV del bloque de video de referencia de inter-vista, que puede haberse determinado previamente mediante la unidad de estimacion de movimiento 242 durante la prediccion del bloque de video de referencia de inter-vista (Base). Basandose en el TMV, la unidad ARP 245, sola o con unidad de compensacion de movimiento 244, puede identificar un bloque de video de referencia temporal en la vista de referencia (BaseTRef) y un bloque de video de referencia temporal en la vista actual (CurrTRef). La unidad ARP 245 puede determinar el predictor residual de inter-vista para el bloque de video actual basandose en la diferencia (CurrTRef - BaseTRef) entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia. La unidad ARP 245 puede aplicar un factor de ponderacion w a la diferencia (CurrTRef - BaseTRef), y puede determinar que el bloque de prediccion de inter-vista para el bloque de video actual sea Base + w (CurrTRef - BaseTRef), como se describe en el presente documento, por ejemplo, con respecto a la FIG. 10.
Como otro ejemplo, si la unidad de procesamiento de prediccion 241 y/o la unidad de estimacion de movimiento 242 predice temporalmente un bloque de video actual, por ejemplo, predice el bloque de video actual basandose en un bloque de referencia de una imagen de referencia en una unidad de acceso diferente a, pero con la misma vista que el bloque de video actual usando un TMV, la unidad ARP 245 puede identificar el TMV. Basandose en el TMV, la unidad ARP 245, sola o con unidad de compensacion de movimiento 244, tambien puede identificar el bloque de video de referencia temporal (CurrTRef) y un DMV del bloque de video de referencia temporal, que puede haberse determinado previamente mediante la unidad de estimacion de movimiento 242 durante la prediccion del bloque de video de referencia temporal (CurrTRef). Basandose en el DMV, la unidad ARP 245, sola o con unidad de compensacion de movimiento 244, puede identificar un bloque de video de referencia temporal en la vista de referencia (BaseTRef) y un bloque de video de referencia de inter-vista en la vista de referencia (Base). La unidad ARP 245 puede determinar el predictor residual temporal para el bloque de video actual basandose en la diferencia (Base - BaseTRef) entre los bloques de video de referencia en la vista de referencia. La unidad ARP 245 puede aplicar un factor de ponderacion w a la diferencia (Base - BaseTRef), y puede determinar que el bloque de prediccion temporal para que el bloque de video actual sea CurrTRef + w * (Base - BaseTRef), como se describe en el presente documento, por ejemplo, con respecto A la FIG. 11.
En cualquiera de los ejemplos anteriores, la unidad ARP 245, la unidad de compensacion de movimiento 244 y/o cualquier componente de la unidad de procesamiento de prediccion 241 o el codificador de video 20, pueden proporcionar el bloque de prediccion de inter-vista al sumador 250, que determina el valor residual que se va a
5
10
15
20
25
30
35
40
45
50
55
60
65
codificar en el flujo de bits de video codificado para el bloque de video actual. Adicionalmente, la unidad ARP 245 puede escalar TMVs y DMVs, o llevar a cabo cualquiera de las funciones descritas en el presente documento para ARP de acuerdo con las tecnicas de esta divulgacion.
De esta manera, el codificador de video 20 puede estar configurado para implementar las tecnicas ARP de ejemplo de esta divulgacion para codificar un bloque de video. Por ejemplo, el codificador de video 20 puede ser un ejemplo de un codificador de video configurado para realizar un procedimiento de prediccion residual avanzada de inter-vista para codificar datos de video que comprende identificar un DMV para un bloque de video actual, en el que el bloque de video actual esta en una vista actual, y en el que el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en la misma unidad de acceso que el bloque de video actual. El procedimiento comprende ademas identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identificando un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista, e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia estan en la misma unidad de acceso. El procedimiento comprende ademas determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia, y codificar un flujo de bits de video codificado que codifica los datos de video para identificar el DMV y un bloque residual para el bloque de video actual, en el que el bloque residual identificado por el flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
El codificador de video 20 tambien puede ser un ejemplo de un codificador de video que comprende una memoria configurada para almacenar un flujo de bits de video codificado que codifica los datos de video y uno o mas procesadores. El uno o mas procesadores del codificador de video, por ejemplo, el codificador de video 20, pueden configurarse para identificar un DMV para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en la misma unidad de acceso que el bloque de video actual. El uno o mas procesadores estan configurados adicionalmente para identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identificar un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia estan en la misma unidad de acceso. El uno o mas procesadores estan configurados adicionalmente para determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia, y codificar el flujo de bits de video codificado para identificar el DMV y un bloque residual para el bloque de video actual, en el que el bloque residual identificado codificando el flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
La FIG. 15 es un diagrama de bloques que ilustra un descodificador de video a modo de ejemplo 30 que puede implementar las tecnicas descritas en esta divulgacion. En el ejemplo de la FIG. 15, el descodificador de video 30 incluye una unidad de descodificacion por entropfa 280, una unidad de procesamiento de prediccion 281, una unidad de procesamiento de cuantificacion inversa 286, una unidad de transformacion inversa 288, un sumador 290 y una memoria de imagenes de referencia 292. La unidad de procesamiento de prediccion 281 incluye la unidad de compensacion de movimiento 282, la unidad ARP 283 y la unidad de intra-prediccion 284. En algunos ejemplos, el descodificador de video 30 puede realizar una pasada de descodificacion en general recfproca a la pasada de codificacion descrita con respecto al codificador de video 20 de la FIG. 14.
En varios ejemplos, una unidad de descodificador de video 30 puede ser responsable de la realizacion de las tecnicas de esta divulgacion. Ademas, en algunos ejemplos, las tecnicas de esta divulgacion pueden dividirse entre una o mas de las unidades del descodificador de video 30. Por ejemplo, la unidad ARP 283 puede realizar las tecnicas de esta divulgacion, solas o en combinacion con otras unidades de codificador de video, tal como la unidad de compensacion de movimiento 282.
Durante el proceso de descodificacion, el descodificador de video 30 recibe un flujo de bits de video codificado que representa bloques de video de un fragmento de video codificado y elementos sintacticos asociados desde el codificador de video 20. La unidad de descodificacion por entropfa 280 del descodificador de video 30 descodifica por entropfa el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos sintacticos. La unidad de descodificacion por entropfa 280 remite los vectores de movimiento y otros elementos sintacticos a la unidad de procesamiento de prediccion 281. El descodificador de video 30 puede recibir los elementos sintacticos al nivel del fragmento de video y/o el nivel del bloque de video.
5
10
15
20
25
30
35
40
45
50
55
60
65
Cuando el fragmento de video se codifica como un fragmento intra-codificado (I), la unidad de intra-prediccion 284 de la unidad de procesamiento de prediccion 281 puede generar datos de prediccion para un bloque de video del fragmento de video actual, basandose en un modo de intra-prediccion indicado y unos datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de video es codificada como un fragmento inter-codificado (es decir, B o P), la unidad de compensacion de movimiento 282 de la unidad de procesamiento de prediccion 281 genera bloques predictivos para un bloque de video del fragmento de video actual, basandose en los vectores de movimiento y otros elementos sintacticos recibidos desde la unidad de descodificacion por entropfa 280. Los bloques predictivos pueden ser generados a partir de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. El descodificador de video 30 puede construir las listas de tramas de referencia, RefPicList0 and RefPicList1 usando tecnicas de construccion por defecto o cualquier otra tecnica basandose en las imagenes de referencia almacenadas en la memoria de imagenes de referencia 292.
La unidad de compensacion de movimiento 282 determina la informacion de prediccion para un bloque de video del fragmento de video actual, analizando los vectores de movimiento y otros elementos sintacticos, y usa la informacion de prediccion para generar los bloques predictivos del bloque de video actual que esta siendo descodificado. Por ejemplo, la unidad de compensacion de movimiento 282 usa algunos de los elementos sintacticos recibidos para determinar una modalidad de prediccion (por ejemplo, intra-prediccion o inter-prediccion), usada para codificar los bloques de video del fragmento de video, un tipo de fragmento de inter-prediccion (por ejemplo, fragmento B o fragmento P), informacion de construccion para una o mas de las listas de imagenes de referencia del fragmento, vectores de movimiento para cada bloque de video inter-codificado del fragmento, el estado de inter-prediccion para cada bloque de video inter-codificado del fragmento y otra informacion, para descodificar los bloques de video en el fragmento de video actual.
La unidad de compensacion de movimiento 282 tambien puede realizar la interpolacion basandose en filtros de interpolacion. La unidad de compensacion de movimiento 282 puede usar filtros de interpolacion, como los usados por el codificador de video 20 durante la codificacion de los bloques de video, para calcular valores interpolados de pfxeles subenteros de los bloques de referencia. En este caso, la unidad de compensacion de movimiento 282 puede determinar los filtros de interpolacion usados por el codificador de video 20 a partir de los elementos sintacticos recibidos y usar los filtros de interpolacion para generar bloques predictivos.
La unidad de procesamiento cuantificacion inversa 286 cuantifica de manera inversa, es decir, descuantifica, los coeficientes de transformacion cuantificados, proporcionados en el flujo de bits y descodificados por la unidad de descodificacion por entropfa 280. El proceso de cuantificacion inversa puede incluir el uso de un parametro de cuantificacion calculado por el codificador de video 20 para cada bloque de video en el fragmento de video, para determinar un grado de cuantificacion y, asimismo, un grado de cuantificacion inversa que deberfa aplicarse. La unidad de procesamiento de transformacion inversa 288 aplica una transformacion inversa, por ejemplo una DCT inversa, una transformacion inversa entera o un proceso de transformacion inversa conceptualmente similar, a los coeficientes de transformacion, con el fin de generar bloques residuales en el dominio de pfxeles.
Despues de que la unidad de compensacion de movimiento 282 genera el bloque predictivo para el bloque de video actual, basandose en los vectores de movimiento y otros elementos sintacticos, el descodificador de video 30 forma un bloque de video descodificado sumando los bloques residuales procedentes de la unidad de procesamiento de transformacion inversa 288 con los correspondientes bloques predictivos generados por la unidad de compensacion de movimiento 282. El sumador 290 representa el componente o los componentes que llevan a cabo esta operacion de suma. Si se desea, tambien puede aplicarse un filtro de desbloqueo para filtrar los bloques descodificados con el fin de eliminar distorsiones de efecto pixelado. Tambien pueden utilizarse otros filtros de bucle (ya sea en el bucle de codificacion o despues del bucle de codificacion) para suavizar las transiciones de pfxeles, o mejorar de otro modo la calidad del video. Los bloques de video descodificados de una trama o imagen dada son a continuacion almacenados en la memoria de imagenes de referencia 292, que almacena imagenes de referencia usadas para la posterior compensacion de movimiento. La memoria de imagenes de referencia 292 almacena tambien video descodificado para su presentacion posterior en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la FIG. 1.
El descodificador de video 30, por ejemplo, la unidad ARP 283 del descodificador de video 30, puede realizar cualquiera de las tecnicas ARP, por ejemplo, las tecnicas de ARP temporales o de inter-vista descritas en el presente documento. Por ejemplo, si, basandose en elementos sintacticos recuperados del flujo de bits de video codificado por la unidad de descodificacion por entropfa 280, la unidad de procesamiento de prediccion 281 y/o la unidad de compensacion de movimiento 282 realiza una prediccion de inter-vista de un bloque de video actual usando un DMV, la unidad ARP 283 puede identificar el DMV asociado con el bloque de video actual para la prediccion de inter-vista del bloque de video actual. En algunos ejemplos, el DMV puede ser un DV convertido a un IDMVC para la prediccion de informacion de movimiento del bloque de video actual.
Basandose en el DMV, la unidad ARP 283, sola o con la unidad de compensacion de movimiento 282, tambien puede identificar el bloque de video de referencia de inter-vista (Base) y un TMV del bloque de video de referencia de inter-vista, que puede haberse previamente determinado mediante la unidad de compensacion de movimiento
5
10
15
20
25
30
35
40
45
50
55
60
65
282 durante la prediccion del bloque de video de referenda de inter-vista (Base). Basandose en el TMV, la unidad ARP 283, sola o con unidad de compensacion de movimiento 282, puede identificar un bloque de video de referencia temporal en la vista de referencia (BaseTRef) y un bloque de video de referencia temporal en la vista actual (CurrTRef). La unidad ARP 283 puede determinar el predictor residual de inter-vista para el bloque de video actual basandose en la diferencia (CurrTRef - BaseTRef) entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia. La unidad ARP 283 puede aplicar un factor de ponderacion w a la diferencia (CurrTRef - BaseTRef), y puede determinar que el bloque de prediccion de inter-vista para que el bloque de video actual sea Base + w*(CurrTRef ~ BaseTRef), como se describe en el presente documento, por ejemplo con respecto a la FIG. 10.
Como otro ejemplo, si, basandose en elementos sintacticos recuperados del flujo de bits de video codificado por la unidad de descodificacion por entropfa 280, la unidad de procesamiento de prediccion 281 y/o la unidad de compensacion de movimiento 282 predice temporalmente un bloque de video actual usando un TMV, la unidad ARP
283 puede identificar el TMV. Basandose en el TMV, la unidad ARP 283, sola o con la unidad de compensacion de movimiento 282, tambien puede identificar el bloque de video de referencia temporal (CurrTRef) y un DMV del bloque de video de referencia temporal, que puede haberse previamente determinado mediante la unidad de compensacion de movimiento 282 durante la prediccion del bloque de video de referencia temporal (CurrTRef). Basandose en el DMV, la unidad ARP 283, sola o con la unidad de compensacion de movimiento 282, puede identificar un bloque de video de referencia temporal en la vista de referencia (BaseTRef) y un bloque de video de referencia de inter-vista en la vista de referencia (Base). La unidad ARP 283 puede determinar el predictor residual temporal para el bloque de video actual basandose en la diferencia (Base - BaseTRef) entre los bloques de video de referencia en la vista de referencia. La unidad ARP 283 puede aplicar un factor de ponderacion w a la diferencia (Base - BaseTRef), y puede determinar que el bloque de prediccion temporal para el bloque de video actual sea CurrTRef + w*(Base - BaseTRef), como se describe en el presente documento, por ejemplo, con respecto a la FIG. 11.
En cualquiera de los ejemplos anteriores, la unidad ARP 283, la unidad de compensacion de movimiento 282 y/o cualquier componente de la unidad de procesamiento de prediccion 281 o el descodificador de video 30, pueden proporcionar el bloque de prediccion de inter-vista al sumador 290, que suma el bloque de prediccion con el valor residual descodificado recibido de la unidad de procesamiento de transformacion inversa 288 para reconstruir el bloque de video actual. Adicionalmente, la unidad ARP 283 puede escalar TMVs y DMVs, o llevar a cabo cualquiera de las funciones descritas en el presente documento para aRp de acuerdo con las tecnicas de esta divulgacion.
De esta manera, el descodificador de video 30 puede configurarse para implementar las tecnicas ARP de ejemplo de esta divulgacion para descodificar un bloque de video. Por ejemplo, el descodificador de video 30 puede ser un ejemplo de un descodificador de video configurado para realizar un procedimiento de prediccion residual avanzada de inter-vista para descodificar datos de video que comprende descodificar un flujo de bits de video codificado que codifica los datos de video para identificar un vector de movimiento de disparidad (DMV) y un bloque residual para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de intervista en una vista de referencia y en una misma unidad de acceso que el bloque de video actual. El procedimiento comprende ademas identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identificando un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista, e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia estan en la misma unidad de acceso. El procedimiento comprende ademas determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia, y aplicar el bloque de prediccion residual y el bloque residual identificados desde el flujo de bits de video codificado al bloque de video de referencia de inter-vista para reconstruir el bloque de video actual.
El descodificador de video 30 puede ser tambien un ejemplo de un codificador de video que comprende una memoria configurada para almacenar un flujo de bits de video codificado que codifica los datos de video y uno o mas procesadores. El uno o mas procesadores del codificador de video, por ejemplo, el descodificador de video 30, pueden configurarse para identificar un DMV para un bloque de video actual, en el que el bloque de video actual esta en una vista actual, y en el que el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en una misma unidad de acceso que el bloque de video actual. El uno o mas procesadores estan configurados adicionalmente para identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista, identificar un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista e identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia. El bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia estan en la misma unidad de acceso. El uno o mas procesadores estan
5
10
15
20
25
30
35
40
45
50
55
60
65
configurados ademas para determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia, y codificar el flujo de bits de video codificado para identificar el DMV y un bloque residual para el bloque de video actual, en el que el bloque residual identificado codificando el flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
La FIG. 16 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP para descodificar un bloque de video de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 16 puede ser realizado por un descodificador de video, tal como el descodificador de video 30, que puede incluir una unidad ARP 283.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 16, el descodificador de video 30 descodifica un flujo de bits de video codificado para identificar un bloque de video de referencia y un bloque residual para el bloque de video actual (300). Por ejemplo, la unidad de compensacion de movimiento 282 puede identificar el bloque de video de referencia basandose en un vector de movimiento indicado por la sintaxis descodificada por la unidad de descodificacion por entropfa 280 y la unidad de procesamiento de transformacion inversa 288 puede proporcionar el bloque residual descodificado al sumador 290. El descodificador de video 30, por ejemplo, la unidad ARP 283, identifica un DMV desde una vista actual del bloque de video actual a una vista de referencia (302).
El descodificador de video 30, por ejemplo, la unidad ARP 283, puede entonces determinar un bloque de prediccion residual para descodificar el bloque de video actual basandose en el DMV (304). Por ejemplo, si el bloque de video actual tiene prediccion de inter-vista, el descodificador de video 30 puede determinar un bloque de prediccion residual de inter-vista basandose en el DMV del bloque de video actual utilizando tecnicas de ARP de inter-vista, por ejemplo, como se describe con respecto a la FIG. 10. Si se predice temporalmente el bloque de video actual, el descodificador de video 30 puede determinar un bloque de prediccion residual temporal basandose en el DMV de un bloque de video de referencia temporal utilizando tecnicas de ARP temporal, por ejemplo, como se describe con respecto a la FIG. 11. El descodificador de video 30, por ejemplo, la unidad ARP 283 y/o el sumador 290, puede aplicar el bloque de prediccion residual y el bloque residual descodificado al bloque de video de referencia para reconstruir el bloque de video actual (306).
La FIG. 17 es un diagrama de flujo que ilustra un ejemplo de un procedimiento de ARP de inter-vista para descodificar un bloque de video predicho de inter-vista de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 17 puede ser realizado por un descodificador de video, tal como el descodificador de video 30, que puede incluir una unidad ARP 283.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 17, el descodificador de video 30 descodifica un flujo de bits de video codificado para identificar un DMV utilizado para la prediccion de inter-vista del bloque de video actual y un bloque residual (310). El descodificador de video 30, por ejemplo, la unidad ARP 283, identifica el bloque de video de referencia de inter-vista (Base) basandose en el DMV (312). El descodificador de video 30, por ejemplo, la unidad ARP 283, tambien identifica un TMV y una imagen de referencia asociada del bloque de video de referencia de inter-vista (Base) (314).
El descodificador de video 30, por ejemplo, la unidad ARP 283, puede entonces identificar bloques de video de referencia temporales en las vistas actuales y de referencia (CurrTRef y BaseTRef, respectivamente) basandose en el TMV, por ejemplo, utilizando las tecnicas descritas anteriormente con respecto a la FIG. 10 (316). El descodificador de video 30, por ejemplo, la unidad ARP 283, puede entonces determinar un bloque de prediccion residual de inter-vista para el bloque de video actual basandose en la diferencia entre estos bloques de video de referencia temporales (Currtref -BaseTRef) (318). El descodificador de video, por ejemplo, la unidad ARP 283 y/o el sumador 290, puede aplicar el bloque de prediccion residual de inter-vista y el bloque residual descodificado al bloque de video de referencia de inter-vista (Base) para reconstruir el bloque de video actual) (Curr) (320).
La FIG. 18 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP temporal para descodificar un bloque de video predicho temporalmente de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 18 puede ser realizado por un descodificador de video, tal como el descodificador de video 30, que puede incluir una unidad ARP 283.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 18, el descodificador de video 30 descodifica el flujo de bits de video codificado para identificar un bloque de video de referencia temporal (CurrTRef) en la vista actual y un bloque residual para reconstruir el bloque de video actual (330). El descodificador de video 30, por ejemplo, la unidad de compensacion de movimiento 282, puede identificar el bloque de video de referencia temporal (CurrTRef) en la vista actual usando un TMV asociado con el bloque de video actual como se determina a partir del flujo de bits de video descodificado. El descodificador de video 30, por ejemplo, la unidad ARP 283, puede identificar un DMV del bloque de video de referencia temporal (CurrTRef), que a su vez puede identificar un bloque de video de referencia temporal en la vista de referencia (BaseTRef) (332).
5
10
15
20
25
30
35
40
45
50
55
60
65
El descodificador de video 30, por ejemplo, la unidad ARP 283, tambien puede identificar un bloque de video de referenda de inter-vista en la vista de referencia (Base) basandose en el DMV del bloque de video de referencia temporal (CurrTRef) en la vista actual (334). El descodificador de video 30, por ejemplo, la unidad ARP 283, puede entonces determinar el bloque de prediccion residual temporal para el bloque de video actual basandose en la diferencia entre estos bloques de video de referencia en la vista de referencia (Base - BaseTRef) (336). El descodificador de video, por ejemplo, la unidad ARP 283 y/o el sumador 290, puede aplicar el bloque de prediccion residual temporal y el bloque residual descodificado al bloque de video de referencia temporal (CurrTRef) para reconstruir el bloque de video actual (Curr) (338).
La FIG. 19 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP para codificar un bloque de video de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 19 puede realizarse mediante un codificador de video, tal como un codificador de video 20, que puede incluir una unidad ARP 245.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 19, el codificador de video 20, por ejemplo la unidad ARP 245, identifica un DMV desde una vista actual de un bloque de video actual a una vista de referencia (340). El codificador de video 20, por ejemplo, la unidad ARP 245, puede determinar entonces un bloque de prediccion residual para codificar el bloque de video actual basandose en el DMV (342). Por ejemplo, si el bloque de video actual tiene prediccion de inter-vista, el codificador de video 20 puede determinar un bloque de prediccion residual de inter-vista basandose en el DMV del bloque de vista actual usando tecnicas de ARP de inter-vista, por ejemplo, como se describe con respecto a la FIG. 10. Si se predice temporalmente el bloque de video actual, el codificador de video 20 puede determinar un bloque de prediccion residual temporal basandose en el DMV de un bloque de video de referencia temporal en la vista actual usando tecnicas de ARP temporal, por ejemplo, como se describe con respecto a la FIG. 11. En cualquier caso, el codificador de video 20, por ejemplo, la unidad ARP 245 y el sumador 250 pueden determinar un bloque residual para el bloque de video actual basandose en una diferencia entre el bloque de video actual y el bloque de prediccion para el bloque de video actual, que puede ser la suma del bloque de video de referencia y el bloque de prediccion residual para el bloque de video actual (344). El codificador de video 20 puede codificar el flujo de bits de video para identificar este bloque residual y el bloque de video de referencia (346).
La FIG. 20 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP de inter-vista para codificar un bloque de video predicho de inter-vista de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 20 puede realizarse mediante un codificador de video, tal como un codificador de video 20, que puede incluir una unidad ARP 245.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 20, el codificador de video 20, por ejemplo, la unidad ARP 245, identifica el DMV del bloque de video actual (Curr) al bloque de video de referencia de inter-vista (Base). El codificador de video 20, por ejemplo, la unidad ARP 245, tambien identifica un TMV y una imagen de referencia asociada del bloque de video de referencia de inter-vista (Base) (352). El codificador de video 20, por ejemplo, la unidad ARP 245, puede entonces identificar bloques de video de referencia temporales en las vistas actuales y de referencia (CurrTRef y BaseTRef, respectivamente) basandose en el TMV, por ejemplo, utilizando las tecnicas descritas anteriormente con respecto a la FIG. 10 (354).
El codificador de video 30, por ejemplo, la unidad ARP 245, puede entonces determinar un bloque de prediccion residual de inter-vista para el bloque de video actual basandose en la diferencia entre estos bloques de video de referencia temporales (CurrTRef - BaseTRef) (318). El codificador de video 20, por ejemplo, la unidad ARP 245 y el sumador 250 pueden determinar un bloque residual para el bloque de video actual basandose en una diferencia entre el bloque de video actual y el bloque de prediccion para el bloque de video actual, que puede ser la suma del bloque de video de referencia de inter-vista (Base) y el bloque de prediccion residual para el bloque de video actual (358). El codificador de video 20 puede codificar el flujo de bits de video para identificar este bloque residual y el bloque de video de referencia de inter-vista (360).
La FIG. 21 es un diagrama de flujo que ilustra un ejemplo de procedimiento de ARP temporal para codificar un bloque de video predicho temporalmente de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 21 puede realizarse mediante un codificador de video, tal como un codificador de video 20, que puede incluir una unidad ARP 245.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 21, el codificador de video 20, por ejemplo la unidad ARP 245, identifica un bloque de video de referencia temporal (CurrTRef) en la vista actual, por ejemplo, usando un TMV asociado con el bloque de video actual. El codificador de video 20, por ejemplo, la unidad ARP 245, puede entonces identificar un DMV del bloque de video de referencia temporal (CurrTRef), que a su vez puede identificar un bloque de video de referencia temporal en la vista de referencia (BaseTRef) (370). Basandose en el DMV del bloque de video de referencia temporal (CurrTRef) en la vista actual, el codificador de video 20, por ejemplo, la unidad ARP 245, tambien puede identificar un bloque de video de referencia de inter-vista en la vista de referencia (Base) (372).
5
10
15
20
25
30
35
40
45
50
55
60
65
El codificador de video 20, por ejemplo, la unidad ARP 245, puede determinar entonces el bloque de prediccion residual temporal para el bloque de video actual basandose en la diferencia entre estos bloques de video de referencia en la vista de referencia (Base - BaseTRef) (374). El codificador de video 20, por ejemplo la unidad ARP 245 y el sumador 250, pueden determinar un bloque residual para el bloque de video actual basandose en una diferencia entre el bloque de video actual y el bloque de prediccion para el bloque de video actual, que puede ser la suma del bloque de video de referencia temporal (CurrTRef) y el bloque de prediccion residual para el bloque de video actual (376). El codificador de video 20 puede codificar el flujo de bits de video para identificar este bloque residual y el bloque de video de referencia de inter-vista (378).
La FIG. 22 es un diagrama de flujo que ilustra un procedimiento de ejemplo para identificar un DMV para ARP temporal de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 22 puede realizarse mediante un codificador de video, tal como el codificador de video 20 y/o el descodificador de video 30, que puede incluir una unidad ARP 245, 283.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 22, el codificador de video identifica un bloque de video de referencia temporal en la vista actual (CurrTRef) basandose en un TMV escalado (380). El codificador de video determina entonces el bloque de video de referencia temporal identificado que esta asociado con un DMV (382). Si el bloque de video de referencia temporal esta asociado con un DMV, el codificador de video identifica un bloque de video de referencia de inter-vista basandose en el DMV (388). Si el bloque de video de referencia temporal no esta asociado con un DMV, el codificador de video identifica otro bloque de video de referencia temporal en la vista actual basandose en el escalado ausente de TMV (384) e identifica el bloque de video de referencia de inter-vista basandose en un DMV del bloque de video de referencia temporal en la vista actual que se identifico basandose en el escalado ausente de TMV (388).
La FIG. 23 es un diagrama de flujo que ilustra un procedimiento de ejemplo para identificar un DMV o TMV para ARP de acuerdo con las tecnicas descritas en esta divulgacion. El procedimiento a modo de ejemplo de la FIG. 23 puede realizarse mediante un codificador de video, tal como el codificador de video 20 y/o el descodificador de video 30, que puede incluir una unidad ARP 245, 283.
De acuerdo con el procedimiento a modo de ejemplo de la FIG. 23, el codificador de video comprueba primero RefPicList0 para el DmV o TMV necesario para ArP (390). Si RefPicList0 incluye el DMV o TMV, el codificador de video identifica un bloque de video de referencia basandose en el DMV o TMV (396). Si RefPicList0 no incluye el DMV o TMV, el codificador de video comprueba RefPicListl para el DMV o TMV (394), y puede identificar un bloque de video de referencia basandose en el DMV o TMV de RefPicListl (396). Si ninguna de las listas de imagenes de referencia incluye el DMV o el TMV, el codificador de video puede utilizar un vector de movimiento cero, o no realizar ARP, como ejemplos. En algunos ejemplos en los que el codificador de video utiliza un vector de movimiento cero para ARP, el codificador de video puede aplicar el vector de movimiento cero a la lista de imagenes de referencia (direccion) invocada para la prediccion de inter-vista utilizando el DMV.
En algunos ejemplos, uno o mas aspectos de las tecnicas descritas en esta divulgacion pueden ser realizados por un dispositivo de red intermedio, tal como un elemento de red consciente de medios (MANE), un procesador de adaptacion de flujo, un procesador de empalme o un procesador de edicion. Por ejemplo, dicho dispositivo intermedio puede configurarse para generar o recibir cualquiera de una variedad de senales como se describe en esta divulgacion.
En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de estos. Si se implementan en software, las funciones, como una o mas instrucciones o codigo, pueden almacenarse en, o transmitirse por, un medio legible por ordenador, y ejecutarse mediante una unidad de procesamiento basandose en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos, o medios de comunicacion que incluyen cualquier medio que facilite la transferencia de un programa informatico de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles y legibles por ordenador, que sean no transitorios, o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se puede acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para implementar las tecnicas descritas en la presente divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
A modo de ejemplo, y no de manera limitativa, dichos medios de almacenamiento legibles por ordenador pueden comprender RaM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda utilizarse para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion puede denominarse de forma correcta con el termino medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otra fuente remota mediante un cable coaxial, un cable de fibra optica, un par trenzado, una lfnea de abonado
5
10
15
20
25
30
digital (DSL) o tecnologfas inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologfas inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberfa entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco de laser, el disco optico, el disco versatil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos normalmente reproducen datos de manera magnetica, mientras que otros discos reproducen los datos de manera optica con laser. Las combinaciones de lo anterior tambien deberfan incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especfficos de la aplicacion (ASIC), matrices logicas programables in situ (FPGA) u otros circuitos logicos integrados o discretos equivalentes. Por consiguiente, el termino «procesador», como se utiliza en el presente documento, puede referirse a cualquier estructura anterior o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de modulos de hardware y/o software especfficos configurados para la codificacion y la descodificacion, o incorporarse en un codec combinado. Ademas, las tecnicas podrfan implementarse completamente en uno o mas circuitos o elementos logicos.
Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un telefono inalambrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgacion se describen varios componentes, modulos o unidades para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente su realizacion mediante diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de codec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, que incluyen uno o mas procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuado. Se han descrito diversos ejemplos.

Claims (9)

10
15
20
25
30 2.
35
3.
40
45
4.
50
55
5.
60
REIVINDICACIONES
Un procedimiento de prediccion residual de inter-vista para descodificar datos de video HEVC, comprendiendo el procedimiento:
descodificar un flujo de bits de video codificado que codifica los datos de video para identificar un vector de movimiento de disparidad (DMV) y un bloque residual para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en una misma unidad de acceso que el bloque de video actual;
identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista;
identificar un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista;
identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia, en el que el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia se encuentran en la misma unidad de acceso;
determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia; y
aplicar el bloque de prediccion residual y el bloque residual identificado desde el flujo de bits de video codificado al bloque de video de referencia para reconstruir el bloque de video actual.
El procedimiento segun la reivindicacion 1, en el que la determinacion del bloque de prediccion residual para el bloque de video actual basandose en la diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia comprende aplicar un factor de ponderacion a la diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia.
El procedimiento segun la reivindicacion 1, que comprende ademas escalar el TMV del bloque de video de referencia de inter-vista a una imagen de referencia objetivo en una unidad de acceso objetivo para la prediccion residual del bloque de video actual, en el que al menos uno de:
identificar el bloque de video de referencia temporal en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista comprende identificar el bloque de video de referencia temporal en la vista de referencia basandose en el TMV escalado; e
identificar el bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista comprende identificar el bloque de video de referencia temporal en la vista de referencia basandose en el TMV escalado.
El procedimiento segun la reivindicacion 3, que comprende ademas:
seleccionar una lista de imagenes de referencia; y
seleccionar la imagen de referencia objetivo a partir de la lista de imagenes de referencia seleccionada, en el que seleccionar la lista de imagenes de referencia comprende una de las siguientes:
seleccionar la lista de imagenes de referencia asociada con el TMV; o
seleccionar la lista de imagenes de referencia asociada con el DMV.
El procedimiento segun la reivindicacion 1, en el que el bloque de video de referencia de inter-vista comprende una pluralidad de unidades de prediccion, e identificar el TMV del bloque de video de referencia de inter-vista comprende identificar un TMV asociado con una de la pluralidad de unidades de prediccion que contiene una posicion central del bloque de video de referencia de inter-vista.
El procedimiento segun la reivindicacion 1, en el que el bloque de video de referencia de inter-vista contiene un primer conjunto de informacion de movimiento correspondiente a una primera lista de imagenes de referencia y un segundo conjunto de informacion de movimiento correspondiente a una segunda lista de
10
15
20
25
30
35
40
45
50
55
60
imageries de referenda, e identificar el TMV del bloque de video de referencia de inter-vista comprende:
seleccionar el TMV del primer conjunto de informacion de movimiento si el primer conjunto de informacion de movimiento incluye un TMV; y
seleccionar el TMV del segundo conjunto de informacion de movimiento si el primer conjunto de informacion de movimiento no incluye un TMV.
7. El procedimiento segun la reivindicacion 1, que comprende ademas:
aplicar escalado de diferencia de orden de vista para escalar el DMV identificado a una vista de referencia objetivo para la prediccion residual del bloque de video actual; e
identificar el bloque de video de referencia de inter-vista basandose en el DMV escalado.
8. Un procedimiento de prediccion residual de inter-vista para codificar datos de video HEVC, comprendiendo el procedimiento:
identificar un vector de movimiento de disparidad (DMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para la prediccion de intervista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en la misma unidad de acceso que el bloque de video actual;
identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista;
identificar un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista;
identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia, en el que el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia se encuentran en la misma unidad de acceso;
determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia; y
codificar un flujo de bits de video codificado que codifica los datos de video para identificar el DMV y un bloque residual para el bloque de video actual, en el que el bloque residual identificado por el flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
9. El procedimiento segun la reivindicacion 8, en el que la determinacion del bloque de prediccion residual para el bloque de video actual basandose en la diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia comprende aplicar un factor de ponderacion a la diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia.
10. El procedimiento segun la reivindicacion 8, que comprende ademas escalar el TMV del bloque de video de referencia de inter-vista a una imagen de referencia objetivo en una unidad de acceso objetivo para la prediccion residual del bloque de video actual, en el que al menos uno de:
identificar el bloque de video de referencia temporal en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista comprende identificar el bloque de video de referencia temporal en la vista de referencia basandose en el TMV escalado; y
identificar el bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista comprende identificar el bloque de video de referencia temporal en la vista de referencia basandose en el TMV escalado.
11. El procedimiento segun la reivindicacion 10, que comprende ademas:
seleccionar una lista de imagenes de referencia; y
seleccionar la imagen de referencia objetivo de la lista de imagenes de referencia seleccionada,
5
10
15
20
25
30
35
40
45
50
55
en el que la seleccion de la lista de imageries de referenda comprende una de las siguientes:
seleccionar la lista de imagenes de referencia asociada con el TMV; o
seleccionar la lista de imagenes de referencia asociada con el DMV.
Un aparato que comprende un codificador de video configurado para realizar una prediccion residual de intervista para codificar datos de video HEVC, comprendiendo el codificador de video:
una memoria configurada para almacenar un flujo de bits de video codificado que codifica los datos de video; y
uno o mas procesadores configurados para:
identificar un vector de movimiento de disparidad (DMV) para un bloque de video actual, en el que el bloque de video actual esta en una vista actual y en el que el DMV se utiliza para la prediccion de inter-vista del bloque de video actual basandose en un bloque de video de referencia de inter-vista en una vista de referencia y en la misma unidad de acceso que el bloque de video actual;
identificar un vector de movimiento temporal (TMV) y una imagen de referencia asociada del bloque de video de referencia de inter-vista;
identificar un bloque de video de referencia temporal en la imagen de referencia asociada en la vista de referencia basandose en el TMV del bloque de video de referencia de inter-vista;
identificar un bloque de video de referencia temporal en la vista actual basandose en el TMV del bloque de video de referencia de inter-vista en la vista de referencia, en el que el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia se encuentran en la misma unidad de acceso;
determinar un bloque de prediccion residual para el bloque de video actual basandose en una diferencia entre el bloque de video de referencia temporal en la vista actual y el bloque de video de referencia temporal en la vista de referencia; y codificar el flujo de bits de video codificado para identificar el DMV y un bloque residual para el bloque de video actual, en el que el bloque residual identificado mediante la codificacion del flujo de bits de video codificado comprende una diferencia entre el bloque de video de referencia de inter-vista y el bloque de prediccion residual para el bloque de video actual.
El aparato de la reivindicacion 12, en el que el codificador de video es un descodificador de video, y el uno o mas procesadores estan configurados para:
descodificar el flujo de bits de video codificado para identificar el DMV y el bloque residual para el bloque de video actual; y aplicar el bloque de prediccion residual y el bloque residual identificado desde el flujo de bits de video codificado al bloque de video de referencia de inter-vista para reconstruir el bloque de video actual.
El aparato de la reivindicacion 12, en el que el codificador de video es un codificador de video y el uno o mas procesadores estan configurados para codificar el flujo de bits de video codificado para indicar el DMV y el bloque residual para el bloque de video actual a un descodificador de video.
Un medio de almacenamiento legible por ordenador que presenta instrucciones almacenadas en el mismo que, al ejecutarse, hacen que uno o mas procesadores de un codificador de video emprendan el procedimiento segun cualquiera de las reivindicaciones 1 a 11.
ES14740047.7T 2013-06-21 2014-06-20 Predicción residual avanzada (ARP) más precisa para la codificación de texturas Active ES2638416T3 (es)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361838208P 2013-06-21 2013-06-21
US201361838208P 2013-06-21
US201361846036P 2013-07-14 2013-07-14
US201361846036P 2013-07-14
US201414309711 2014-06-19
US14/309,711 US9288507B2 (en) 2013-06-21 2014-06-19 More accurate advanced residual prediction (ARP) for texture coding
PCT/US2014/043403 WO2014205343A1 (en) 2013-06-21 2014-06-20 More accurate advanced residual prediction (arp) for texture coding

Publications (1)

Publication Number Publication Date
ES2638416T3 true ES2638416T3 (es) 2017-10-20

Family

ID=51210783

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14740047.7T Active ES2638416T3 (es) 2013-06-21 2014-06-20 Predicción residual avanzada (ARP) más precisa para la codificación de texturas

Country Status (9)

Country Link
US (1) US9288507B2 (es)
EP (1) EP3011746B1 (es)
JP (1) JP6337104B2 (es)
KR (1) KR101722890B1 (es)
CN (1) CN105379282B (es)
CA (1) CA2912451C (es)
ES (1) ES2638416T3 (es)
HK (1) HK1216809A1 (es)
WO (1) WO2014205343A1 (es)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102137266B1 (ko) * 2012-09-28 2020-07-23 삼성전자주식회사 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
WO2014075236A1 (en) 2012-11-14 2014-05-22 Mediatek Singapore Pte. Ltd. Methods for residual prediction with pseudo residues in 3d video coding
US9860529B2 (en) 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
WO2015006922A1 (en) * 2013-07-16 2015-01-22 Mediatek Singapore Pte. Ltd. Methods for residual prediction
KR102260146B1 (ko) * 2014-03-31 2021-06-03 인텔렉추얼디스커버리 주식회사 시점 간 움직임 병합 후보 유도 방법 및 장치
KR102378459B1 (ko) * 2014-06-30 2022-03-24 한국전자통신연구원 움직임 병합 모드에서 시점 합성 예측 후보의 중복성 제거 장치 및 방법
US9743110B2 (en) * 2014-10-09 2017-08-22 Hfi Innovation Inc. Method of 3D or multi-view video coding including view synthesis prediction
JP2018533871A (ja) * 2015-11-11 2018-11-15 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号方法及びその装置、並びにビデオ符号化方法及びその装置
CN116708782A (zh) * 2016-07-12 2023-09-05 韩国电子通信研究院 图像编码/解码方法以及用于该方法的记录介质
KR102569476B1 (ko) * 2016-10-11 2023-08-24 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치
CN106878753B (zh) * 2017-02-16 2020-04-28 南京理工大学 一种使用纹理平滑信息的3d视频残差编码模式选择方法
EP3451665A1 (en) 2017-09-01 2019-03-06 Thomson Licensing Refinement of internal sub-blocks of a coding unit
JP7382332B2 (ja) * 2017-11-01 2023-11-16 ヴィド スケール インコーポレイテッド マージモード用のサブブロック動き導出およびデコーダサイド動きベクトル精緻化
US20190141320A1 (en) * 2017-11-07 2019-05-09 Qualcomm Incorporated Enhanced reference picture management in video coding
WO2019124191A1 (ja) * 2017-12-18 2019-06-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2020084554A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Searching based motion candidate derivation for sub-block motion vector prediction
CN117395397A (zh) 2019-06-04 2024-01-12 北京字节跳动网络技术有限公司 使用临近块信息的运动候选列表构建
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
CN114175636B (zh) 2019-07-14 2024-01-12 北京字节跳动网络技术有限公司 自适应参数集中的自适应环路滤波的指示
WO2021054380A1 (ja) * 2019-09-20 2021-03-25 日本放送協会 符号化装置、復号装置、及びプログラム
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
WO2021141372A1 (ko) * 2020-01-06 2021-07-15 현대자동차주식회사 이종 해상도를 갖는 참조 픽처 기반의 영상 부호화 및 복호화
CN112243131B (zh) * 2020-10-31 2022-11-11 西安邮电大学 基于可重构阵列处理器的先进残差预测方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007011147A1 (en) * 2005-07-18 2007-01-25 Electronics And Telecommunications Research Institute Apparatus of predictive coding/decoding using view-temporal reference picture buffers and method using the same
MY159176A (en) * 2005-10-19 2016-12-30 Thomson Licensing Multi-view video coding using scalable video coding
KR101370919B1 (ko) * 2006-07-12 2014-03-11 엘지전자 주식회사 신호처리방법 및 장치
JP5261774B2 (ja) * 2007-10-25 2013-08-14 日本電信電話株式会社 動画像スケーラブル符号化方法及び復号方法、それらの装置、それらのプログラム並びにプログラムを記録した記録媒体
EP2355510A1 (en) * 2009-12-21 2011-08-10 Alcatel Lucent Method and arrangement for video coding
US9467690B2 (en) * 2010-01-06 2016-10-11 Dolby Laboratories Licensing Corporation Complexity-adaptive scalable decoding and streaming for multi-layered video systems
JP5664762B2 (ja) * 2011-03-17 2015-02-04 富士通株式会社 動画像復号方法、動画像符号化方法、動画像復号装置及び動画像復号プログラム
US20140085418A1 (en) * 2011-05-16 2014-03-27 Sony Corporation Image processing device and image processing method
US10158850B2 (en) * 2011-08-25 2018-12-18 Telefonaktiebolaget Lm Ericsson (Publ) Depth map encoding and decoding
JP6039178B2 (ja) * 2011-09-15 2016-12-07 シャープ株式会社 画像符号化装置、画像復号装置、並びにそれらの方法及びプログラム
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
EP2777273B1 (en) * 2011-11-11 2019-09-04 GE Video Compression, LLC Efficient multi-view coding using depth-map estimate for a dependent view
JP5779483B2 (ja) * 2011-11-15 2015-09-16 株式会社ソシオネクスト 画像処理装置、及び画像処理方法
US20130271567A1 (en) * 2012-04-16 2013-10-17 Samsung Electronics Co., Ltd. Image processing method and apparatus for predicting motion vector and disparity vector
KR20150020175A (ko) * 2012-04-24 2015-02-25 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
WO2013169031A1 (ko) * 2012-05-10 2013-11-14 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
IN2014KN02890A (es) * 2012-06-19 2015-05-08 Lg Electronics Inc
WO2014010918A1 (ko) * 2012-07-10 2014-01-16 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR102137266B1 (ko) * 2012-09-28 2020-07-23 삼성전자주식회사 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
KR102186605B1 (ko) * 2012-09-28 2020-12-03 삼성전자주식회사 다시점 영상 부호화/복호화 장치 및 방법
US9264691B2 (en) * 2012-09-28 2016-02-16 Mitsubishi Electric Research Laboratories, Inc. Method and system for backward 3D-view synthesis prediction using neighboring blocks
US20140098883A1 (en) * 2012-10-09 2014-04-10 Nokia Corporation Method and apparatus for video coding
WO2014056423A1 (en) * 2012-10-09 2014-04-17 Mediatek Inc. Method and apparatus for motion information prediction and inheritance in video coding
WO2014075236A1 (en) 2012-11-14 2014-05-22 Mediatek Singapore Pte. Ltd. Methods for residual prediction with pseudo residues in 3d video coding
US20140301463A1 (en) * 2013-04-05 2014-10-09 Nokia Corporation Method and apparatus for video coding and decoding
US9930363B2 (en) * 2013-04-12 2018-03-27 Nokia Technologies Oy Harmonized inter-view and view synthesis prediction for 3D video coding

Also Published As

Publication number Publication date
CN105379282A (zh) 2016-03-02
EP3011746A1 (en) 2016-04-27
KR101722890B1 (ko) 2017-04-05
JP2016526829A (ja) 2016-09-05
CN105379282B (zh) 2019-02-22
US20140376633A1 (en) 2014-12-25
WO2014205343A1 (en) 2014-12-24
KR20160023764A (ko) 2016-03-03
CA2912451A1 (en) 2014-12-24
EP3011746B1 (en) 2017-06-07
CA2912451C (en) 2017-07-04
JP6337104B2 (ja) 2018-06-06
HK1216809A1 (zh) 2016-12-02
US9288507B2 (en) 2016-03-15

Similar Documents

Publication Publication Date Title
ES2638416T3 (es) Predicción residual avanzada (ARP) más precisa para la codificación de texturas
ES2841312T3 (es) Predicción de vectores de movimiento para modelos de movimiento afines en codificación de vídeo
ES2755573T3 (es) Predicción de vector de movimiento temporal avanzada basada en unidades de subpredicción
ES2842109T3 (es) Predicción residual avanzada basada en bloques para la codificación de vídeo 3D
ES2669399T3 (es) Vector de movimiento predicho entre visualizaciones para vídeo 3D
ES2753958T3 (es) Predicción de vector de movimiento temporal basada en subunidad de predicción (PU) en la HEVC y diseño de sub-PU en la 3D-HEVC
ES2633150T3 (es) Predicción de vectores de movimiento en codificación de vídeo
ES2900029T3 (es) Derivación de vector de movimiento en codificación de vídeo
KR101835240B1 (ko) 3d 비디오 코딩을 위한 조합된 양방향-예측 병합 후보들
ES2732013T3 (es) Predicción de vector de movimiento temporal basada en subunidad de predicción (PU) en la HEVC y diseño de sub-PU en la 3d-hevc
ES2799323T3 (es) Técnicas de codificación de vídeo usando particionamiento de movimiento asimétrica
KR102060857B1 (ko) 3d-hevc 를 위한 단순화된 진보된 모션 예측
ES2736280T3 (es) Simplificaciones en la obtención de vectores de disparidad y la predicción de vectores de movimiento en codificación de vídeo 3D
KR102187723B1 (ko) 3 차원(3d)비디오 코딩을 위한 진보된 병합 모드
ES2900751T3 (es) Extensiones de sintaxis de alto nivel para codificación de vídeo de alta eficacia
ES2704885T3 (es) Derivación del vector de disparidad de bloque vecino en codificación de vídeo 3D
KR20180018535A (ko) 공간적 및/또는 시간적 모션 정보를 사용하는 서브-예측 유닛 모션 벡터 예측
JP6370891B2 (ja) 深さブロックの視差に基づく高度な深さインターコーディング
ES2703062T3 (es) Síntesis de visualización en vídeo 3D
KR20160024960A (ko) 심도 지향 인터-뷰 모션 벡터 예측
WO2015131387A1 (en) Simplified sub-prediction unit (sub-pu) motion parameter inheritence (mpi)
CN104350749A (zh) 深度图估计的推导
KR20150139953A (ko) 백워드 뷰 합성 예측
WO2014100610A1 (en) Constraints on neighboring block based disparity vector (nbdv) techniques for 3d video
ES2716676T3 (es) Predicción residual avanzada simplificada para la 3d-hevc