ES2700281T3 - Control de la herencia de parámetros de movimiento (MPI) de la subunidad de predicción (SUB-PU) en la HEVC tridimensional (3D) u otra codificación tridimensional - Google Patents

Control de la herencia de parámetros de movimiento (MPI) de la subunidad de predicción (SUB-PU) en la HEVC tridimensional (3D) u otra codificación tridimensional Download PDF

Info

Publication number
ES2700281T3
ES2700281T3 ES14821434T ES14821434T ES2700281T3 ES 2700281 T3 ES2700281 T3 ES 2700281T3 ES 14821434 T ES14821434 T ES 14821434T ES 14821434 T ES14821434 T ES 14821434T ES 2700281 T3 ES2700281 T3 ES 2700281T3
Authority
ES
Spain
Prior art keywords
depth
sub
block
size
mpi
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
ES14821434T
Other languages
English (en)
Inventor
Ying Chen
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 ES2700281T3 publication Critical patent/ES2700281T3/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un procedimiento de decodificación de un bloque de profundidad, el procedimiento que comprende: recibir un elemento sintáctico que indica un tamaño de una subunidad de predicción, sub-PU, para la herencia de parámetros de movimiento, MPI, en una unidad de predicción de profundidad, PU de profundidad, en donde la PU de profundidad comprende una o más sub-PU, en donde cada sub -PU tiene un tamaño igual al tamaño indicado por el elemento sintáctico y en donde se puede heredar información de movimiento distinta para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva; y al recibir un valor de índice que indica que un candidato a fusión u omisión de MPI, basado en una modalidad de MPI de sub-PU, puede utilizarse para la predicción de movimiento, heredar información de movimiento para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en los correspondientes bloques de textura cosituados con cada una de las sub-PU.

Description

DESCRIPCIÓN
Control de la herencia de parámetros de movimiento (MPI) de la subunidad de predicción (SUB-PU) en la HEVC tridimensional (3D) u otra codificación tridimensional
[0001] Esta solicitud reivindica la prioridad de la solicitud provisional estadounidense N.° 61/916,068 presentada el 13 de diciembre de 2013.
CAMPO TÉCNICO
[0002] Esta descripción se refiere a codificación y compresión de vídeo y, más específicamente, a técnicas de codificación que pueden usarse para codificar vídeo tridimensional (3D).
ANTECEDENTES
[0003] Las capacidades de vídeo digital pueden incorporarse a una amplia gama de dispositivos, incluidos televisores digitales, sistemas de difusión directa digital, sistemas de difusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de sobremesa, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, 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, Codificación Avanzada de Vídeo (AVC), la norma de codificación de vídeo de alta eficacia (HEVC), recientemente desarrollada, y las ampliaciones de dichas normas, para transmitir, recibir y almacenar información de vídeo digital más eficazmente.
[0004] Las técnicas de compresión de vídeo realizan la predicción espacial (intra-imagen) y/o la predicción temporal (entre imágenes) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo puede dividirse en bloques de vídeo, que también pueden denominarse bloques arbolados, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un fragmento intra-codificado (I) de una imagen se codifican utilizando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un fragmento inter-codificado (P o B) de una imagen pueden usar la predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o la predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse tramas y las imágenes de referencia pueden denominarse tramas de referencia.
[0005] Un flujo de bits de codificación de múltiples vistas puede generarse codificando vistas, por ejemplo, desde múltiples perspectivas. La codificación de múltiples vistas puede permitir que un decodificador elija entre vistas diferentes o posiblemente represente múltiples vistas. Además, algunas técnicas y normas de vídeo tridimensional (3D) que se han desarrollado, o están en desarrollo, utilizan aspectos de codificación de vistas múltiples. El vídeo tridimensional también se conoce como "3DV"
[0006] Por ejemplo, diferentes vistas pueden transmitir vistas del ojo izquierdo y del derecho para dar soporte al vídeo tridimensional. De forma alternativa, algunos procesos de codificación de vídeo tridimensional pueden aplicar la denominada codificación de múltiples vistas más profundidad. En la codificación de múltiples vistas más profundidad, un flujo de bits de vídeo tridimensional puede contener no solo componentes de vista de textura, sino también componentes de vista de profundidad. Por ejemplo, cada vista puede comprender un componente de vista de textura y un componente de vista de profundidad.
[0007] Un equipo conjunto de colaboración en codificación de vídeo tridimensional (JCT-3C) de VCEG y MPEG ha desarrollado una norma de vídeo tridimensional denominada "high efficiency video coding (HEVC) [codificación de vídeo de alta eficacia (HEVC)]", para lo cual parte de los esfuerzos de estandarización incluye la estandarización del códec de vídeo de múltiples vistas basado en la HEVC (MV-HEVC) y otra parte para codificación de vídeo tridimensional basada en la HEVC (3D-HEVC). Para la 3D-HEVC, se pueden incluir y dotar de soporte varias herramientas de codificación, incluidas las del nivel de unidad de codificación / unidad de predicción, para vistas tanto de textura como de profundidad.
SUMARIO
[0008] En general, la divulgación describe técnicas para codificar y decodificar bloques de profundidad en datos de vídeo. Un dispositivo de codificación de vídeo puede determinar el tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad puede comprender una o más sub-PU, en donde cada sub-PU tiene el mismo tamaño. La información de movimiento distinto se puede heredar para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva. El dispositivo puede codificar cada sub-PU del bloque de profundidad basándose en la MPI correspondiente a los bloques de textura cosituados con cada una de las sub-PU y generar un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI. El dispositivo puede recibir además el elemento sintáctico y, al recibir un valor de índice que indica una modalidad de MPI de sub-PU, heredar la MPI para cada sub-PU del bloque de profundidad en función de los bloques de textura correspondientes cosituados con cada una de las sub-PU.
[0009] En un ejemplo, la divulgación se dirige a un procedimiento de decodificación de un bloque de profundidad en el que un dispositivo de codificación de vídeo recibe un elemento sintáctico que indica un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad comprende una o más sub-PU. Cada sub-PU tiene un tamaño igual al tamaño indicado por el elemento sintáctico. La información de movimiento distinto se puede heredar para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva. Al recibir un valor de índice que indica una modalidad de MPI de sub-PU, el dispositivo de codificación de vídeo hereda adicionalmente la MPI para cada una de las sub-PU del bloque de profundidad basándose, al menos en parte, en los bloques de textura correspondientes cosituados con cada una de las sub-PU.
[0010] En otro ejemplo, la divulgación se dirige a un dispositivo para codificar un bloque de profundidad, comprendiendo el dispositivo una memoria configurada para almacenar datos asociados al bloque de profundidad y uno o más procesadores. Los uno o más procesadores están configurados para recibir un elemento sintáctico que indica un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad comprende una o más sub-PU. Cada sub-PU tiene un tamaño igual al tamaño indicado por el elemento sintáctico. La información de movimiento distinto se puede heredar para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva. Al recibir un valor de índice que indica una modalidad de MPI de sub-PU, los uno o más procesadores están configurados además para heredar la MPI para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en los bloques de textura correspondientes cosituados con cada una de las sub-PU.
[0011] En otro ejemplo, la divulgación se dirige a un procedimiento de codificación de un bloque de profundidad en el que un dispositivo de codificación de vídeo determina un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad comprende una o más sub-PU. Cada sub-PU tiene el mismo tamaño. La información de movimiento distinto se puede heredar para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva. El dispositivo de codificación de vídeo codifica cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU. El dispositivo de codificación de vídeo genera además un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad.
[0012] En otro ejemplo, la divulgación se dirige a un dispositivo para codificar un bloque de profundidad, comprendiendo el dispositivo una memoria configurada para almacenar datos asociados al bloque de profundidad y uno o más procesadores. Los uno o más procesadores están configurados para determinar un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad comprende una o más sub-PU. Cada sub-PU tiene el mismo tamaño. La información de movimiento distinto se puede heredar para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva. Uno o más procesadores están configurados para codificar cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a los bloques de textura cosituados con cada una de las sub-PU. Los uno o más procesadores están configurados además para generar un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad.
[0013] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y la descripción siguiente. Otras características, objetos y ventajas de la divulgación serán evidentes a partir de la descripción y dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0014]
La figura 1 es una ilustración conceptual que muestra las modalidades de intra-predicción en la HEVC.
La figura 2 es una ilustración conceptual que muestra bloques vecinos temporales en NBDV.
La figura 3 es una ilustración conceptual que muestra una obtención de bloques de profundidad a partir de una vista de referencia para realizar predicciones BVSP.
La figura 4 es una ilustración conceptual que muestra la obtención del candidato vectorial de movimiento predicho entre vistas para la modalidad de fusión / salto.
La figura 5 es una ilustración conceptual que muestra la obtención del candidato de MVI para la codificación de profundidad.
La figura 6 es una ilustración conceptual que muestra un procedimiento de predicción de movimiento entre vistas de nivel sub-PU (SPIVMP).
La figura 7 es un diagrama de bloques que ilustra un sistema ejemplar que puede implementar técnicas de esta divulgación.
La figura 8 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo que puede implementar las técnicas de esta divulgación.
La figura 9 es un diagrama de bloques que ilustra un ejemplo de decodificador de vídeo que puede implementar las técnicas de esta divulgación.
La figura 10 es un diagrama de flujo que ilustra una técnica de codificación ejemplar de acuerdo con esta divulgación.
La figura 11 es un diagrama de flujo que ilustra una técnica de decodificación ejemplar de acuerdo con esta divulgación.
DESCRIPCIÓN DETALLADA
[0015] Esta divulgación está relacionada con la codificación de vídeo tridimensional basada en códecs avanzados, que incluye técnicas de codificación de profundidad. Las técnicas de codificación propuestas están relacionadas con el control de la predicción de movimiento en la 3D-HEVC, más específicamente, en la codificación de profundidad.
[0016] Entre las normas de codificación de vídeo 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 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificación de vídeo ajustable a escala (SVC) y de codificación de vídeo de múltiples vistas (MVC). El más reciente borrador conjunto de la MVC se describe en "Advanced video coding for generic audiovisual services" ["Codificación de vídeo avanzada para servicios audiovisuales genéricos"], Recomendación H.264 de la ITU-T, marzo de 2010. Además, hay una norma de codificación de vídeo, a saber, Codificación de vídeo de alta eficacia (HEVC) (versión JCTVC-L1003_v11), desarrollada por el Equipo conjunto de colaboración en codificación de vídeo (JCT-VC) del Grupo de expertos en codificación de vídeo de la ITU-T (VCEG) y el Grupo de expertos en imágenes en movimiento de (MPEG) ISO / IEC.
[0017] En la HEVC actual (versión JCTVC-L1003_v11), para el componente de luma de cada unidad de predicción (PU), se utiliza un procedimiento de intra-predicción con 33 modalidades de predicción angular (indizadas de 2 a 34), la modalidad DC (indizada con 1) y la modalidad Plana (indizada con 0), como se muestra en la figura 1. En particular, la figura 1 ilustra modalidades de intra-predicción en la HEVC.
[0018] Habitualmente, una estructura de lista de imágenes de referencia para la primera o la segunda lista de imágenes de referencia de una imagen B incluye dos etapas: inicialización de la lista de imágenes de referencia y reordenamiento de la lista de imágenes de referencia (es decir, modificación de la lista de imágenes de referencia). La inicialización de la lista de imágenes de referencia es un mecanismo o proceso explícito que coloca (es decir almacena) las imágenes de referencia en la memoria de imágenes de referencia (también conocida como memoria intermedia de imágenes decodificadas) como una lista basada en el orden de los valores del POC (Recuento de orden de imagen, alineado con el orden de exhibición de una imagen). El mecanismo de reordenamiento de la lista de imágenes de referencia puede modificar la posición de una imagen que se colocó en la lista de imágenes de referencia durante la inicialización de la lista de imágenes de referencia, como cualquier posición nueva dentro de la lista de imágenes de referencia. El mecanismo de reordenamiento de la lista de imágenes de referencia también puede poner cualquier imagen de referencia, en la memoria de imágenes de referencia, en cualquier otra posición en la memoria de imágenes de referencia, incluso aunque la imagen no pertenezca a la lista de imágenes de referencia inicializada. Algunas imágenes, después del reordenamiento de la lista de imágenes de referencia (es decir, la modificación de la lista de imágenes de referencia), pueden colocarse en una posición que sea secuencialmente posterior en la lista. Sin embargo, si una posición de una imagen supera un número de imágenes de referencia activas de la lista, la imagen puede no ser considerada como una entrada de la lista final de imágenes de referencia. El número de imágenes de referencia activas se puede señalizar en el encabezado de fragmento para cada lista. Después de que están construidas las listas de imágenes de referencia (concretamente ListaImgRefO y ListaImgRef1, si están disponibles), se puede usar un índice de referencia a una lista de imágenes de referencia para identificar cualquier imagen de referencia incluida en la lista de imágenes de referencia.
[0019] Para obtener (es decir, determinar) un Predictor Vectorial de Movimiento Temporal (TMVP), primero se ha de identificar una imagen cosituada. Si la imagen actual es un fragmento B, se señaliza un indicador_cosituado_desde_10 en el encabezado de fragmento para indicar si la imagen cosituada es de la ListaImgRefO o la ListaImgRef1. Después de identificar una lista de imágenes de referencia, idx_ref_cosituada, que es un elemento sintáctico señalizado en el encabezado de fragmento, se usa para identificar la imagen en la lista de imágenes de referencia. Luego se identifica una unidad de predicción (PU) cosituada verificando la imagen cosituada. O bien el movimiento de la PU inferior derecha de la unidad de codificación (CU) que contiene esta PU o bien el movimiento de la PU inferior derecha dentro de las PU centrales de la CU que contiene esta PU, se utiliza como la imagen en la lista de imágenes de referencia.
[0020] Cuando los vectores de movimiento identificados por el proceso anterior se utilizan para generar un candidato de movimiento para AMVP o la modalidad de fusión, se pueden ajustar a escala en función de la ubicación temporal (reflejada por el POC). Obsérvese que el índice de referencia de destino de todas las listas de imágenes de referencia posibles para el candidato de fusión temporal obtenido del TMVP puede fijarse en 0, mientras que, para el AMVP, el índice de referencia de destino se fija igual al índice de referencia decodificado.
[0021] En la HEVC, el SPS incluye un indicador indicador_habilitación_mvp_temporal_de_sps y el encabezado de segmento incluye un indicador indicador_habilitación_mvp_temporal_img cuando el indicador_habilitación_mvp_temporal_sps es igual a 1. Cuando tanto el indicador_habilitación_mvp_temporal_img como el identificador temporal son iguales a 0 para una imagen particular, ningún vector de movimiento de imágenes antes de esa imagen particular en orden de decodificación se usaría como un predictor vectorial de movimiento temporal en la decodificación de la imagen particular o de una imagen después de la imagen particular en orden de decodificación.
[0022] Actualmente, un Equipo de Colaboración Conjunta en Codificación de vídeo tridimensional (JCT-3C) de VCEG y MPEG está elaborando una norma de 3DV basada en la HEVC, para la cual una parte de los trabajos de normalización incluye la normalización del códec de vídeo de múltiples vistas basado en HEVC (MV-HEVC) y otra parte, la codificación de vídeo tridimensional basada en la HEVC (3D-HEVC). Para la MV-HEVC, se debería garantizar que solo haya cambios sintácticos de alto nivel (HLS), de modo que ningún módulo en el nivel de CU / PU en la HEVC necesite ser rediseñado y pueda reutilizarse por completo para la MV-HEVC. Para la 3D-HEVC, se pueden incluir y dotar de soporte nuevas herramientas de codificación, incluyendo aquellas a nivel de unidad de codificación / unidad de predicción, tanto para las vistas de textura como de profundidad. La más reciente descripción del software de referencia, así como el borrador de trabajo de la 3D-HEVC, queda disponible de la siguiente manera: Gerhard Tech, Krzysztof Wegner, Ying Chen, Sehoon Yea, "3D-HEVC Test Model 4" ["Modelo de prueba 4 de 3D-HEVC"], JCT3V-F1001, equipo conjunto de colaboración en desarrollo de ampliación de codificación de vídeo tridimensional de ITU-T SG 16 WP 3 e ISO / IEC JTC 1 / SC 29 / WG 11 ,6a Conferencia.
[0023] Para mejorar aún más la eficacia de codificación, se han adoptado dos nuevas tecnologías (a saber, "predicción de movimiento entre vistas" y "predicción residual entre vistas") en el más reciente software de referencia. Para habilitar estas dos herramientas de codificación, la primera etapa es obtener un vector de disparidad. El vector de disparidad se usa para ubicar el bloque correspondiente en la otra vista para el movimiento entre vistas / predicción residual o para convertirlo en un vector de movimiento de disparidad para la predicción de movimiento entre vistas.
[0024] Se genera un vector de disparidad implícita (IDV) cuando una PU emplea predicción vectorial de movimiento entre vistas, es decir, el candidato para las modalidades de AMVP o de fusión se obtiene de un bloque correspondiente en la otra vista con la ayuda de un vector de disparidad. Dicho vector de disparidad se llama IDV. El IDV se almacena en la PU con el propósito de la obtención del vector de disparidad.
[0025] Para obtener un vector de disparidad, el procedimiento denominado Vector de disparidad basado en bloques vecinos (NBDV) se utiliza en el 3D-HTM. El NBDV utiliza vectores de movimiento de disparidad a partir de bloques vecinos espaciales y temporales. En el NBDV, los vectores de movimiento de bloques vecinos espaciales o temporales se comprueban en un orden de comprobación fijo. Una vez que se identifica un vector de movimiento de disparidad o un IDV, finaliza el proceso de comprobación y el vector de movimiento de disparidad identificado se devuelve y se convierte en el vector de disparidad que se utilizará en la predicción de movimiento entre vistas y la predicción de residuos entre vistas. Si no se encuentra tal vector de disparidad después de verificar todos los bloques vecinos predefinidos, se usará un vector de disparidad cero para la predicción de movimiento entre vistas mientras que la predicción residual entre vistas se desactivará para la unidad de predicción (PU) correspondiente.
[0026] Se utilizan cinco bloques vecinos espaciales para la obtención del vector de disparidad. Son: los bloques abajo a la izquierda, a la izquierda, arriba a la derecha, arriba y arriba a la izquierda de la unidad de predicción (PU) actual, indicados por A0 , A1, B0 , B1 o B2 , como se define en la Figura 8-33 de la especificación de la HEVC.
[0027] Hasta dos imágenes de referencia de la vista actual, la imagen cosituada y la imagen de acceso aleatorio o la imagen de referencia con la diferencia de POC más pequeña y el Identificador temporal más pequeño, se consideran para las comprobaciones de bloques temporales. El acceso aleatorio se verifica primero, seguido por la imagen cosituada. Para cada imagen candidata, se verifican dos bloques candidatos. El primer bloque candidato verificado es el bloque central (CR), o el bloque central de 4x4 píxeles de la región cosituada de la PU actual (véase 'Pos. A' en la figura 2). El segundo bloque candidato verificado es el bloque inferior derecho (BR): Bloque de 4x4 píxeles de la esquina inferior derecha de la región cosituada de la PU actual (véase 'Pos. B' en la figura 2), que muestra bloques vecinos temporales en el NBDV.
[0028] Si se utilizan los DMV se verifica en primer lugar para todos los bloques vecinos espaciales / temporales, seguidos por los IDV. Primero se verifican los bloques vecinos espaciales, seguidos por bloques vecinos temporales.
Cinco bloques vecinos espaciales se comprueban en el orden de A i , Bi , B0, A0 y B2. Si uno de los bloques vecinos utiliza el DMV, el proceso de verificación finaliza y el DMV correspondiente se utilizará como el vector de disparidad final. Para cada imagen candidata, los dos bloques se verifican en orden, CR y BR para la primera vista no básica o BR, CR para la segunda vista no básica. Si uno de los bloques vecinos utiliza el DMV, el proceso de verificación finaliza y el DMV correspondiente se utilizará como el vector de disparidad final. Cinco bloques vecinos espaciales se comprueban en el orden de A0, A i , B0, Bi y B2. Si uno de los bloques vecinos usa IDV y se codifica como de modalidad de omisión / fusión, el proceso de comprobación finaliza y el IDV correspondiente se utilizará como el vector de disparidad final.
[0029] El vector de disparidad, generado a partir del esquema del NBDV, podría refinarse aún más usando la información en el mapa de profundidad codificado. Es decir, la precisión del vector de disparidad podría mejorarse aprovechando la información codificada en el mapa de profundidad de la vista base. Las etapas de refinamiento se describen de la siguiente manera. En primer lugar, un dispositivo de codificación de vídeo localiza un bloque de profundidad correspondiente mediante el vector de disparidad obtenido en la vista de profundidad de referencia previamente codificada, tal como la vista base. El tamaño del bloque de profundidad correspondiente es el mismo que el de la PU actual. A continuación, se calcula un vector de disparidad a partir del bloque de profundidad cosituado, a partir del valor máximo de los cuatro valores de profundidad de esquina. Esto se fija igual que el componente horizontal de un vector de disparidad, mientras que el componente vertical del vector de disparidad se fija en 0.
[0030] Este nuevo vector de disparidad se denomina vector de disparidad basado en bloques vecinos orientado a la profundidad (DoNBDV). El vector de disparidad del esquema de NBDV se reemplaza luego por este vector de disparidad obtenido recientemente a partir del esquema de DoNBDV para la obtención de candidatos entre vistas para las modalidades de AMVP y de fusión. Téngase en cuenta que el vector de disparidad no refinado se utiliza para la predicción residual entre vistas. Además, el vector de disparidad refinado se almacena como el vector de movimiento de una PU si el vector de disparidad refinado se codifica con la modalidad VSP inversa.
[0031] El enfoque de VSP de distorsión inversa, según lo propuesto en el documento JCT3V-C0152, fue adoptado en la tercera conferencia del JCT-3V. La idea básica de esta VSP de distorsión inversa es la misma que (o similar a) la VSP basada en bloques en la 3D-AVC. Ambas técnicas usan la distorsión inversa y la VSP basada en bloques para evitar transmitir las diferencias de vectores de movimiento y utilizar vectores de movimiento más precisos. Los detalles de implementación son diferentes debido a las diferentes plataformas. En esta descripción, BVSP se refiere al enfoque de VSP de distorsión inversa en la 3D-HEVC.
[0032] En 3D-HTM, la primera codificación de textura se aplica en condiciones de prueba comunes. Por lo tanto, la correspondiente vista de profundidad no de base no está disponible al decodificar una vista de textura no de base. Por lo tanto, la información de profundidad se estima y se utiliza para realizar la BVSP.
[0033] Para estimar la información de profundidad para un bloque, se propone obtener primero un vector de disparidad de los bloques vecinos, y luego usar el vector de disparidad obtenido para obtener un bloque de profundidad a partir de una vista de referencia.
[0034] En el modelo de prueba HTM 5.1, existe un proceso para obtener un vector predictor de disparidad, conocido como vector de disparidad de bloque vecino (NBDV). Sea (dvx, dvy) el vector de disparidad identificado a partir de la función de NBDV, y la posición actual del bloque es (bloquex, bloquey). Se propone capturar un bloque de profundidad en (bloquex dvx, bloquey dvy) en la imagen de profundidad de la vista de referencia. El bloque de profundidad capturado tendría el mismo tamaño que la unidad de predicción (PU) actual, y el bloque de profundidad capturado se usaría entonces para realizar una distorsión inversa para la PU actual. La figura 3 muestra un proceso de tres etapas, que muestra cómo se ubica un bloque de profundidad procedente de la vista de referencia y se usa luego para la predicción BVSP. En particular, la FIG. 3 muestra una obtención de bloque de profundidad a partir de una vista de referencia para hacer la predicción BVSP.
[0035] Si la BVSP está habilitada en la secuencia, se cambia el proceso del NBDV para la predicción de movimiento entre vistas. Para cada uno de los bloques vecinos temporales, si el bloque vecino temporal usa un vector de movimiento de disparidad, el vector de movimiento de disparidad se devuelve como el vector de disparidad y el vector de movimiento de disparidad se refina adicionalmente con el procedimiento descrito anteriormente con respecto al esquema de NBDV refinado usando la información en el mapa de profundidad codificado. Para cada uno de los bloques vecinos espaciales, y para cada lista de imágenes de referencia 0 o lista de imágenes de referencia 1, se aplica lo siguiente. Si el bloque espacial vecino usa un vector de movimiento de disparidad, el vector de movimiento de disparidad se devuelve como el vector de disparidad y el vector de movimiento de disparidad se refina adicionalmente con el procedimiento descrito anteriormente con respecto al esquema de NBDV refinado usando la información en el mapa de profundidad codificado. De lo contrario, si el bloque vecino espacial utiliza la modalidad BVSP, el vector de movimiento asociado se devuelve como el vector de disparidad. El vector de movimiento de disparidad se refina adicionalmente de una manera similar a la descrita anteriormente con respecto al esquema de NBDV refinado usando la información en el mapa de profundidad codificado. Sin embargo, el valor máximo de profundidad se selecciona a partir de todos los píxeles del bloque de profundidad correspondiente, en lugar de cuatro píxeles de esquina. Para cada uno de los bloques vecinos espaciales, si el bloque espacial vecino usa un IDV, el IDV se devuelve como el vector de disparidad y el bloque vecino espacial se refina adicionalmente con el procedimiento descrito anteriormente con respecto al esquema refinado de NBDV utilizando la información en el mapa de profundidad codificado.
[0036] La modalidad de BVSP introducida se trata como una modalidad inter-codificada especial y se debería mantener un indicador de indicación del uso de la modalidad de BVSP para cada PU. En lugar de señalizar el indicador en el flujo de bits, se agrega un nuevo candidato de fusión (candidato de fusión de BVSP) a la lista de candidatos de fusión y el indicador depende de si el índice del candidato de fusión decodificado corresponde a un candidato de fusión de BVSP. El candidato de fusión de BVSP se define de la forma siguiente: El índice de imagen de referencia para cada lista de imágenes de referencia es igual a -1. Además, el vector de movimiento para cada lista de imágenes de referencia es el vector de disparidad refinado.
[0037] La posición insertada del candidato de fusión de BVSP depende de los bloques vecinos espaciales: Si cualquiera de los cinco bloques vecinos espaciales (A0, A1, B0, B1 o B2) está codificado con la modalidad de BVSP, es decir, el indicador mantenido del bloque vecino es igual a 1, el candidato de fusión de BVSP es tratado como el correspondiente candidato de fusión espacial e insertado en la lista de candidatos de fusión. Obsérvese que el candidato de fusión de BVSP solo se insertará una vez en la lista de candidatos de fusión. De lo contrario (ninguno de los cinco bloques vecinos espaciales está codificado con la modalidad de BVSP), el candidato de fusión de BVSP se inserta en la lista de candidatos de fusión justo antes de los candidatos de fusión temporal.
[0038] Para cada PU codificada por BVSP, con su tamaño indicado por NxM, la PU codificada se divide adicionalmente en varias subregiones con un tamaño igual a KxK píxeles (donde K puede ser 4 o 2). Para cada subregión, se obtiene un vector de movimiento de disparidad independiente y cada subregión se predice a partir de un bloque localizado por el vector de movimiento de disparidad obtenido en la imagen de referencia entre vistas. En otras palabras, el tamaño de la unidad de compensación de movimiento para las PU codificadas por BVSP se fija en KxK píxeles. En condiciones de prueba comunes, K se fija en 4.
[0039] Para cada subregión (bloque de 4x4 píxeles) dentro de una PU codificada con modalidad de BVSP, se ubica en primer lugar un correspondiente bloque de profundidad de 4x4 píxeles en la vista de profundidad de referencia con el vector de disparidad refinado precitado anteriormente. Se selecciona el valor máximo de los dieciséis píxeles de profundidad en el correspondiente bloque de profundidad. El valor máximo se convierte en el componente horizontal de un vector de movimiento de disparidad. El componente vertical del vector de movimiento de disparidad se fija en 0.
[0040] Con base en el vector de disparidad obtenido del esquema de DoNBDV, se puede agregar un nuevo candidato vectorial de movimiento, Candidato Vectorial de Movimiento Predicho Entre Vistas (IPMVC), si está disponible, a las modalidades de AMVP y de omisión / fusión. El vector de movimiento predicho entre vistas, si está disponible, es un vector de movimiento temporal.
[0041] Las modalidades de salto tienen el mismo proceso de obtención del vector de movimiento que la modalidad de fusión. Por lo tanto, todas las técnicas descritas en esta divulgación pueden aplicarse tanto a una modalidad de fusión como a una modalidad de omisión.
[0042] Para la modalidad de fusión / omisión, el vector de movimiento predicho entre vistas se obtiene mediante el siguiente proceso. Un bloque correspondiente de PU / CU actual en una vista de referencia de la misma unidad de acceso es localizado por el vector de disparidad. Si el bloque correspondiente no está intra-codificado y no está predicho entre vistas y su imagen de referencia tiene un valor de POC igual al de una entrada en la misma lista de imágenes de referencia de la PU / CU actual, su información de movimiento (dirección de predicción, imágenes de referencia y vectores de movimiento), después de convertir el índice de referencia basándose en el POC, resulta ser el vector de movimiento predicho entre vistas.
[0043] El bloque correspondiente se define de la siguiente manera. Una ubicación de luma (xP, yP) de la muestra de luma superior izquierda de la unidad de predicción actual se indica con relación a la muestra de luma superior izquierda de la imagen actual. nPSW y nPSH indican, respectivamente, el ancho y la altura de la unidad de predicción actual. Un índice de orden de vista de referencia se indica como IdxVistaRef. Un vector de disparidad se indica como mvDisp. La ubicación de luma de la capa de referencia (xRef, yRef) resulta de:
xRef = Clip3 (0, AnchoImgEnMuestrasL-1, xP ((nPSW-l) >> 1)
((mvDisp [0] 2) >> 2)) (H-124)
yRef = Clip3 (0, AlturaImgEnMuestrasL-1, yP ((nPSH-l) >> 1)
((mvDisp [l] 2) >> 2)) (H-125)
El bloque correspondiente se establece en la unidad de predicción que cubre la ubicación de luma (xRef, yRef) en el componente de vista con IdxVista igual a IdxVistaRef.
[0044] La figura 4 muestra un ejemplo del proceso de obtención del candidato vectorial de movimiento predicho entre vistas. En particular, la figura 4 muestra la obtención del candidato vectorial de movimiento predicho entre vistas para la modalidad de fusión / omisión.
[0045] Además, el vector de disparidad se convierte en un vector de movimiento de disparidad entre vistas, que se agrega a la lista de candidatos de fusión en una posición diferente al IPMVC, o se agrega a la lista de candidatos de AMVP en la misma posición que el IPMVC cuando el vector de disparidad está disponible. En este contexto, bien el IPMVC o bien el Candidato Vectorial de Movimiento de Disparidad Entre Vistas (IDMVC) se llama 'candidato entre vistas'.
[0046] En la modalidad de fusión / omisión, el IPMVC, si está disponible, siempre se inserta antes de todos los candidatos de fusión espaciales y temporales en la lista de candidatos de fusión. El IDMVC se inserta antes del candidato de fusión espacial obtenido de A0.
[0047] El vector de disparidad se obtiene en primer lugar con el procedimiento de DoNBDV. Con el vector de disparidad, el proceso de construcción de la lista de candidatos de fusión en la 3D-HEVC se puede definir de la siguiente manera. En primer lugar, el IPMVC se obtiene mediante el procedimiento descrito anteriormente. Si el vector de disparidad está disponible, la disparidad se inserta en la lista de fusión. A continuación, se verifica la información de movimiento de las PU vecinas espaciales en el siguiente orden: A1, B1, B0 , A0 o B2. La poda restringida se realiza entonces. Por ejemplo, si A1 y el IPMVC tienen los mismos vectores de movimiento y los mismos índices de referencia, A1 no se inserta en la lista de candidatos. De lo contrario, A1 se inserta en la lista. Si B1 y A1 / IPMVC tienen los mismos vectores de movimiento y los mismos índices de referencia, B1 no se inserta en la lista de candidatos. De lo contrario, B1 se inserta en la lista. Si B0 está disponible, B0 se agrega a la lista de candidatos. El IDMVC se obtiene por el procedimiento descrito anteriormente. Si B0 está disponible y B0 es diferente a los candidatos obtenidos de A1 y B1, B0 se inserta en la lista de candidatos. Si la BVSP está habilitada para la imagen completa o para el fragmento actual, entonces el candidato de fusión de BVSP se inserta en la lista de candidatos de fusión. Si A0 está disponible, A0 se agrega a la lista de candidatos. Si B2 está disponible, B2 se agrega a la lista de candidatos.
[0048] A continuación, el dispositivo de codificación de vídeo puede realizar un proceso de obtención para un candidato de fusión temporal. De manera similar al proceso de obtención de candidato de fusión temporal en la HEVC donde se utiliza la información de movimiento de la PU cosituada, sin embargo, el índice de imagen de referencia de destino del candidato de fusión temporal puede cambiarse en lugar de fijarse en 0. Cuando el índice de referencia de destino igual a 0 corresponde a una imagen de referencia temporal (en la misma vista), mientras que el vector de movimiento de la unidad de predicción (PU) cosituada apunta a una imagen de referencia entre vistas, el índice de referencia de destino cambia a otro índice que corresponde a la primera entrada de la imagen de referencia entre vistas en la lista de imágenes de referencia. Por el contrario, cuando el índice de referencia de destino igual a 0 corresponde a una imagen de referencia entre vistas mientras que el vector de movimiento de la unidad de predicción (PU) cosituada apunta a una imagen de referencia temporal, el índice de referencia de destino cambia a otro índice que corresponde a la primera entrada de la imagen de referencia temporal en la lista de imágenes de referencia.
[0049] Si el número total de candidatos obtenidos de las dos etapas anteriores es menor que el número máximo de candidatos, se realiza el mismo proceso según lo definido en la HEVC, excepto la especificación de 10CandIdx y 11CandIdx. La relación entre combldx, 10CandIdx y 11CandIdx se define en la siguiente tabla (etiquetada como TABLA 2):
Tabla 2 - Especificación de 10CandIdx y 11 CandIdx en la 3D-HEVC
Figure imgf000008_0001
[0050] Finalmente, se realiza el mismo procedimiento que se define en la HEVC para obtener un candidato de fusión de vector de movimiento cero. En el software más reciente, el número total de candidatos en la lista de MRG es de hasta 6 y se señaliza cinco_menos_núm_máx_cand_fusión para especificar el número máximo de candidatos de MRG restados a 6 en la cabecera de fragmento. Se debe notar que cinco_menos_núm_máx_cand_fusión está en el rango de 0 a 5, inclusive.
[0051] La idea principal detrás de la herencia del vector de movimiento (MVI) es explotar la similitud de las características de movimiento entre las imágenes de textura y sus imágenes de profundidad asociadas. Para una PU dada en la imagen de profundidad, el candidato de MVI reutiliza utilizando los vectores de movimiento y los índices de referencia del bloque de textura correspondiente ya codificado, si el bloque de textura correspondiente está disponible. La figura 5 muestra un ejemplo del proceso de obtención del candidato de MVI en el que se selecciona el bloque de textura correspondiente como el bloque de tamaño 4x4 ubicado en la parte inferior derecha del centro de la PU actual. De esta manera, la figura 5 ilustra la obtención del candidato de MVI para la codificación de profundidad.
[0052] Cabe señalar que los vectores de movimiento con precisión entera se utilizan en la codificación de profundidad, mientras que la precisión de un cuarto de los vectores de movimiento se utiliza para la codificación de textura. Por lo tanto, el vector de movimiento del bloque de textura correspondiente se ajustará a escala antes de usarlo como un candidato de MVI. Con la generación de candidatos de MVI, la lista de candidatos de fusión para las vistas de profundidad se construye de la siguiente manera. Para la inserción de la MVI, la MVI se obtiene mediante el procedimiento descrito anteriormente. Si el vector de disparidad está disponible, el vector de disparidad se inserta en la lista de fusión.
[0053] Para obtener candidatos de fusión espacial y para la inserción del IDMVC en la 3D-HEVC, un dispositivo de codificación de vídeo verifica la información de movimiento de las PU vecinas espaciales en el siguiente orden: A1, B1, B0 , A0 o B2. Un dispositivo de codificación de vídeo luego realiza un procedimiento de poda restringido. Si A1 y la MVI tienen los mismos vectores de movimiento y los mismos índices de referencia, A1 no se inserta en la lista de candidatos. Si B1 y A1 / MVI tienen los mismos vectores de movimiento y los mismos índices de referencia, B1 no se inserta en la lista de candidatos. Si B0 está disponible, B0 se agrega a la lista de candidatos. Si A0 está disponible, A0 se agrega a la lista de candidatos. Si B2 está disponible, B2 se agrega a la lista de candidatos.
[0054] Para obtener un candidato de fusión temporal, un dispositivo de codificación de vídeo realiza un proceso similar al proceso de obtención de candidatos de fusión temporal en la HEVC donde se utiliza la información de movimiento de la PU cosituada. Sin embargo, el índice de imagen de referencia de destino del candidato de fusión temporal puede cambiarse en lugar de ser fijado en 0. Cuando el índice de referencia de destino igual a 0 corresponde a una imagen de referencia temporal (en la misma vista), mientras que el vector de movimiento de la unidad de predicción (PU) cosituada apunta a una imagen de referencia entre vistas, el índice de referencia de destino cambia a otro índice que corresponde a la primera entrada de la imagen de referencia entre vistas en la lista de imágenes de referencia. Por el contrario, cuando el índice de referencia de destino igual a 0 corresponde a una imagen de referencia entre vistas mientras que el vector de movimiento de la unidad de predicción (PU) cosituada apunta a una imagen de referencia temporal, el índice de referencia de destino cambia a otro índice que corresponde a la primera entrada de la imagen de referencia temporal en la lista de imágenes de referencia.
[0055] Para obtener candidatos combinados de fusión bi-predictiva en la 3D-HEVC, un dispositivo de codificación de vídeo realiza un proceso que depende del número total de candidatos obtenidos. Si el número total de candidatos obtenidos de las dos etapas anteriores es menor que el número máximo de candidatos, se realiza el mismo proceso según lo definido en la HEVC, excepto la especificación de 10CandIdx y 11CandIdx. La relación entre combldx, 10CandIdx y 11CandIdx se define en la Tabla 2 (reproducida anteriormente). Para obtener candidatos de fusión de vectores de movimiento cero, un dispositivo de codificación de vídeo puede realizar el mismo procedimiento que se define en la HEVC.
[0056] En el documento JCT3V-E0184, se propone utilizar un procedimiento de predicción de movimiento entre vistas en subniveles de PU para el candidato de fusión entre vistas temporales, es decir, el candidato obtenido de un bloque de referencia en la vista de referencia. El concepto básico de predicción de movimiento entre vistas se describe anteriormente, en donde solo la información de movimiento del bloque de referencia se usa para la PU actual en la vista dependiente. Sin embargo, la PU actual puede corresponder a un área de referencia (con el mismo tamaño que la PU actual identificada por el vector de disparidad) en la vista de referencia y la referencia puede tener abundante información de movimiento. Por lo tanto, se propone un procedimiento de predicción de movimiento de entre-vistas de nivel sub-PU (SPIVMP), como se muestra en la figura 6. El candidato de fusión entre vistas temporales se obtiene de la siguiente manera.
[0057] La sub-PU asignada tiene un tamaño de NxN píxeles. Primero, un dispositivo de codificación de vídeo divide la PU actual en múltiples sub-PU, cada una con un tamaño más pequeño que la PU actual. El dispositivo de codificación de vídeo indica el tamaño de la PU actual con nPSW x nPSH y el tamaño de la sub-PU con nPSWsub x nPSHSub. En este ejemplo,
nPSWsub = (min (N, nPSW)) / 2
nPSHSub = (min (N, nPSH)) / 2
[0058] A continuación, el dispositivo de codificación de vídeo establece el vector de movimiento predeterminado tmvLX en (0, 0) y el índice de referencia refLX en -1 para cada lista de imágenes de referencia. Para cada sub-PU en el orden de barrido por trama, el dispositivo de codificación de vídeo agrega el DV a la posición media de la sub-PU actual para obtener una ubicación de muestra de referencia (xRefSub, yRefSub) de la siguiente manera:
xRefSub = Clip3 (0, AnchoImgEnMuestrasL-1, xPSub nPSWsub / 2 ((mvDisp [0] 2) >> 2)) yRefSub = Clip3 (0, AlturaImgEnMuestrasL-1, yPSub nPSHSub / 2 ((mvDisp [ 1] 2) >> 2)). El dispositivo de codificación de vídeo usa un bloque en la vista de referencia que abarca (xRefSub, yRefSub) como el bloque de referencia para la sub-PU actual.
[0059] Para el bloque de referencia identificado, si el bloque de referencia identificado se codifica utilizando vectores de movimiento temporal, se aplica lo siguiente. Si tanto refL0 como refL1 son iguales a -1 y la sub-PU actual no es la primera en el orden de barrido por trama, la información de movimiento del bloque de referencia es heredada por todas las sub-PU anteriores. Los parámetros de movimiento asociados se pueden usar como parámetros de movimiento candidatos para la sub-PU actual. Además, tmvLX y refLX se actualizan con la información de movimiento de la sub-PU actual. De lo contrario (el bloque de referencia está intra-codificado), la información de movimiento de la sub-PU actual se establece en tmvLX y refLX.
[0060] Un elemento sintáctico está presente en el VPS que indica para cada capa el tamaño de sub-PU. Si el tamaño de la sub-PU es lo suficientemente grande, por ejemplo, más grande que la PU actual, la PU completa no está utilizando la predicción entre vistas de sub-PU. Si el tamaño de sub-PU es lo suficientemente grande, por ejemplo, más grande que la unidad de codificación más grande (LCU), ninguna PU en la capa utiliza la predicción entre-vistas de sub-PU. Se pueden aplicar diferentes tamaños de bloques de sub-PU, por ejemplo, 4x4, 8x8 y 16x16.
[0061] La semántica detallada de dicho elemento sintáctico es la siguiente. log2_tamaño_sub_pb_menos2 [idCapa] especifica el valor de la variable TamañoSubPb [idCapa] que se utiliza en la decodificación de las unidades de predicción utilizando el candidato de fusión entre vistas. El valor del log2_tamaño_sub_pb_menos2 puede estar en la gama entre 0 y 4, inclusive. Este elemento sintáctico está codificado con ue(v). En consecuencia, la profundidad de bits de este elemento sintáctico puede ser variable.
[0062] En la HEVC, después de que se codifica una imagen y antes de que la imagen se coloque en el almacén temporal de imágenes decodificadas (DPB), los vectores de movimiento se pueden comprimir para que sean almacenados en un nivel de bloque de tamaño 16x16. En la 3D-HEVC, sin embargo, dado que la predicción de movimiento está habilitada para cruzar capas, la compresión de movimiento se realiza en dos etapas. En primer lugar, después de decodificar una imagen de una vista y antes de que la imagen se coloque en el DPB, la imagen se comprime a un nivel de bloque de tamaño 8x8. Cuando se decodifica toda la unidad de acceso, lo que significa que cada imagen de cada capa de la unidad de acceso se decodifica, se realiza la compresión de movimiento al nivel de bloque de tamaño 16x16. En la HEVC, para cada bloque de tamaño 8x8, se mantienen a lo sumo dos vectores de movimiento. Los a lo sumo dos vectores de movimiento pueden ser dos vectores de movimiento correspondientes a ListaImgRefO y ListaImgRef1 respectivamente, o dos vectores de movimiento que pertenecen a dos PU (dos de tamaño 4x8, dos de tamaño 8x4), ambos correspondientes a la ListaImgRefO.
[0063] Como se propone en el documento JCT3V-F0128, se puede señalizar un valor de índice para indicar que un candidato de fusión de herencia de parámetros de movimiento (MPI), basado en la predicción de movimiento de nivel sub-PU (es decir, modalidad de MPI de sub-PU), puede utilizarse para la predicción de movimiento. Con el candidato propuesto de fusión de modalidad de MPI de sub-PU, para cada bloque de píxeles de tamaño 8x8 dentro de una PU de profundidad actual, los parámetros de movimiento del bloque de textura cosituado, que cubre la posición media del bloque actual de píxeles de tamaño 8x8, son heredados. Con la modalidad propuesta de MPI de sub-PU, se pueden heredar diferentes vectores de movimiento para las sub-PU de 8x8 píxeles dentro de una PU de profundidad.
[0064] La norma actual de 3D-HEVC presenta los siguientes problemas, especialmente cuando se considera la modalidad de MPI de sub-PU. Si el tamaño de la sub-PU para la predicción de movimiento entre vistas es igual a 4x4 píxeles, se requieren los procesos de compensación de movimiento de bloques de 4x4 píxeles, lo cual no está alineado con el diseño base de la HEVC. Además, cuando se aplica la modalidad de MPI de sub-PU, no hay forma de controlar la precisión del vector de movimiento y siempre se usa la modalidad de MPI de sub-PU de 8x8 píxeles. En otras palabras, cuando se aplica la modalidad MPI de sub-PU, los sub-PU de 4x4 píxeles y de 16x16 píxeles no se pueden procesar, obligando a los dispositivos de codificación a usar las sub-PU de 8x8 píxeles, que pueden no ser óptimas.
[0065] Las técnicas relacionadas con la predicción de movimiento entre vistas de sub-PU, la modalidad de MPI de sub-PU y la compresión de movimiento se describen en el presente documento. A saber, se describe un elemento sintáctico que indica el tamaño de la MPI de sub-PU. En algunos ejemplos, el elemento sintáctico se puede llamar log2_tamaño_mpi_sub_pb_menos3. El rango de valores de este elemento sintáctico es de 0 a 3 inclusive. Al incluir este elemento sintáctico en el esquema de codificación de vídeo, un dispositivo de codificación de vídeo puede usar procesos específicos para la compensación de movimiento de bloques de 4x4 píxeles, incluso cuando el dispositivo de codificación de vídeo implementa el diseño de base de la HEVC. Además, al incluir este elemento sintáctico, la MPI de sub-PU se puede usar con tamaños distintos a 8x8 píxeles. Por ejemplo, se puede usar MPI de sub-PU de 4x4 píxeles y de 16x16 píxeles, incrementando la exactitud y precisión con la que la MPI de sub-PU puede ser utilizada en varias técnicas de codificación. Esta flexibilidad adicional aumentará aún más la eficacia de la codificación cuando un valor de índice indica que es aplicable la MPI de sub-PU, lo que aumenta la velocidad de procesamiento durante la codificación de vídeo.
[0066] Tal elemento sintáctico (por ejemplo, un elemento sintáctico indicativo del tamaño de la MPI de sub-PU, tal como log2_tamaño_mpi_sub_pb_menos3) está asociado con todas las vistas de profundidad (es decir, cada capa de bloques de profundidad), por tanto presente una vez en el Conjunto de parámetros de vídeo (VPS), el Conjunto de parámetros de imagen (PPS) o el Conjunto de parámetros de secuencia (SPS). Cuando el elemento sintáctico está presente en el PPS y en el SPS (es decir, dos instancias activas del elemento sintáctico log2_tamaño_mpi_sub_pb_menos3), los valores de estos dos elementos sintácticos pueden ser los mismos. Alternativamente, tal elemento sintáctico puede estar presente para cada vista de profundidad una vez en el VPS, el SPS o el PPS.
[0067] El tamaño de las sub-PU usadas para la MPI de sub-PU comienza desde 8x8. Cuando una PU de profundidad actual tiene un tamaño que es mayor o igual a (1 << (log2_tamaño_mpi_sub_pb_menos3 3)) x (1 << (log2_tamaño_mpi_sub_pb_menos3 3)), la MPI de sub-PU no se aplica a la PU actual y se aplica la MPI original.
[0068] Cuando log2_tamaño_mpi_sub_pb_menos3 es igual a 1 o mayor, la compresión de movimiento a 16x16 en este caso se puede hacer una vez que se han decodificado todas las imágenes de las vistas de textura dentro de la misma unidad de acceso. En este caso, cuando las vistas de textura se codifican independientemente de las vistas de profundidad, todas las imágenes de vistas de textura en cualquier unidad de acceso pueden decodificarse más temprano, antes de que se codifique cualquier imagen de las vistas de profundidad y se puede realizar la compresión de movimiento para imágenes de textura después de ser decodificadas.
[0069] Cuando log2_tamaño_mpi_sub_pb_menos3 es igual a 0, lo que significa que el tamaño de la MPI de sub-PU es 8x8, y cuando el bloque de textura cosituado contiene dos PU (de tamaño 4x8 o 8x4), la sub-PU actual puede dividirse adicionalmente en dos bloques más pequeños, con tamaños de 4x8 u 8x4, la compensación de movimiento (unidireccional) en estos dos bloques más pequeños se aplica en la modalidad de MPI de sub-PU. Dos vectores de movimiento correspondientes a ListaImgRefO se heredan para la sub-PU actual en la PU de profundidad. En lugar de habilitar solamente la compensación de movimiento de tamaño 8x8 o tamaños superiores cuando se aplica la MPI de sub-PU, como en el documento JCT3V-F0128, dicha sub-PU puede ser compensada en movimiento con un tamaño de bloque igual a 4x8 u 8x4. Alternativamente, la habilitación de dicha partición puede ser señalizada por un elemento sintáctico (por ejemplo, un indicador) en el VPS, el SPS o el PPS.
[0070] En algunos ejemplos, un dispositivo de codificación de vídeo puede alinear el diseño de la 3D-HEVC con la HEVC en términos del tamaño más pequeño de compensación de movimiento. Por lo tanto, el tamaño de sub-PU igual a 4x4 puede desactivarse en estos ejemplos. En tal caso, log2_tamaño_sub_pb_menos2 puede cambiarse a log2_tamaño_sub_pb_menos3 y el rango de log2_tamaño_sub_pb_menos3 es de 0 a 3, inclusive.
[0071] La figura 7 es un diagrama de bloques que ilustra un sistema ejemplar de codificación de vídeo 10 que puede utilizar las técnicas de esta divulgación. Como se describe en el presente documento, el término "codificador de vídeo" se refiere genéricamente tanto a codificadores de vídeo como a decodificadores de vídeo. En esta divulgación, los términos "codificación de vídeo" o "codificación" pueden referirse genéricamente a la codificación de vídeo o a la decodificación de vídeo.
[0072] Como se muestra en la figura 7, el sistema de codificación de vídeo 10 incluye un dispositivo de origen 12 y un dispositivo de destino 14. El dispositivo de origen 12 genera datos de vídeo codificados. En consecuencia, el dispositivo de origen 12 puede denominarse dispositivo de codificación de vídeo o aparato de codificación de vídeo. El dispositivo de destino 14 puede decodificar datos de vídeo codificados, generados por el dispositivo de origen 12. En consecuencia, el dispositivo de destino 14 puede denominarse dispositivo de decodificación de vídeo o aparato de decodificación de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 pueden ser ejemplos de dispositivos de codificación de vídeo o aparatos de codificación de vídeo.
[0073] El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, dispositivos informáticos móviles, ordenadores plegables (es decir, portátiles), ordenadores de tableta, decodificadores, equipos telefónicos de mano tales como los denominados teléfonos "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, ordenadores de coche o similares.
[0074] El dispositivo de destino 14 puede recibir datos de vídeo codificados desde el dispositivo de origen 12 mediante un canal 16. El canal 16 puede comprender uno o más medios o dispositivos capaces de desplazar los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el canal 16 puede comprender uno o más medios de comunicación que permiten al dispositivo de origen 12 transmitir datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. En este ejemplo, el dispositivo de origen 12 puede modular los datos de vídeo codificados de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y puede transmitir los datos de vídeo modulados al dispositivo de destino 14. Los uno o más medios de comunicación pueden incluir medios de comunicación inalámbricos y/o alámbricos, tales como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. Los uno o más medios de comunicación pueden formar parte de una red basada en paquetes, tal como una red de área local, una red de área extensa o una red global (por ejemplo, Internet). El canal 16 puede incluir varios tipos de dispositivos, tales como encaminadores, conmutadores, estaciones base u otros equipos que faciliten la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0075] En otro ejemplo, el canal 16 puede incluir un medio de almacenamiento que almacena datos de vídeo codificados, generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder al medio de almacenamiento mediante el acceso a disco o el acceso a tarjeta. El medio de almacenamiento puede incluir varios medios de almacenamiento de datos de acceso local, tales como discos Blu-ray, DVD, CD-ROM, memoria flash u otros medios adecuados de almacenamiento digital para almacenar datos de vídeo codificados.
[0076] En un ejemplo adicional, el canal 16 puede incluir un servidor de ficheros u otro dispositivo de almacenamiento intermedio que almacene los datos de vídeo codificados, generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder a datos de vídeo codificados almacenados en el servidor de ficheros o en otro dispositivo de almacenamiento intermedio mediante transmisión continua o descarga. El servidor de ficheros puede ser un tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir los datos de vídeo codificados al dispositivo de destino 14. Entre los ejemplos de servidores de ficheros se incluyen servidores de la Red (por ejemplo, para una sede de la Red), servidores del protocolo de transferencia de ficheros (FTP), dispositivos de almacenamiento conectados a red (NAS) y unidades de disco local.
[0077] El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de una conexión de datos estándar, tal como una conexión a Internet. Entre los ejemplos de tipos de conexiones de datos pueden incluirse canales inalámbricos (por ejemplo, conexiones de Wi-Fi), conexiones cableadas (por ejemplo, DSL, módem de cable, etc.) o combinaciones de ambas que sean adecuadas para acceder a datos de vídeo codificados almacenados en un servidor de ficheros. La transmisión de datos de vídeo codificados desde el servidor de ficheros puede ser una transmisión por flujo continuo, una transmisión de descarga o una combinación de ambas.
[0078] Las técnicas de esta divulgación no están limitadas a aplicaciones o configuraciones inalámbricas. Las técnicas pueden aplicarse a la codificación de vídeo como soporte de una diversidad de aplicaciones de multimedios, tales como difusiones de televisión por el aire, difusiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo en flujo continuo, por ejemplo, mediante Internet, codificación de datos de vídeo para su almacenamiento en un medio de almacenamiento de datos, decodificación de datos de vídeo almacenados en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema de codificación de vídeo 10 puede configurarse para dar soporte a la transmisión de vídeo unidireccional o bidireccional para dar soporte a aplicaciones tales como la transmisión de flujo de vídeo, la reproducción de vídeo, la difusión de vídeo y/o la videotelefonía.
[0079] En el ejemplo de la figura 7, el dispositivo de origen 12 incluye un origen de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. En algunos ejemplos, la interfaz de salida 22 puede incluir un modulador/demodulador (módem) y/o un transmisor. El origen de vídeo 18 puede incluir un dispositivo de captura de vídeo, por ejemplo, una videocámara, un fichero de vídeo que contenga datos de vídeo previamente capturados, una interfaz de alimentación de vídeo para recibir datos de vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de vídeo, o una combinación de dichos orígenes de datos de vídeo.
[0080] El codificador de vídeo 20 puede codificar datos de vídeo procedentes del origen de vídeo 18. En algunos ejemplos, el dispositivo de origen 12 transmite directamente los datos de vídeo codificados al dispositivo de destino 14 mediante la interfaz de salida 22. En otros ejemplos, los datos de vídeo codificados también pueden almacenarse en un medio de almacenamiento o en un servidor de ficheros para un acceso posterior mediante el dispositivo de destino 14 para su decodificación y/o reproducción.
[0081] El codificador de vídeo 20 puede ejecutar además técnicas de acuerdo con esta divulgación. Por ejemplo, el codificador de vídeo 20 puede determinar un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener el mismo tamaño. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. El codificador de vídeo 20 puede codificar cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU. El codificador de vídeo 20 puede generar además un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad.
[0082] En el ejemplo de la figura 7, el dispositivo de destino 14 incluye una interfaz de entrada 28, un decodificador de vídeo 30 y un dispositivo de pantalla 32. En algunos ejemplos, la interfaz de entrada 28 incluye un receptor y/o un módem. La interfaz de entrada 28 puede recibir los datos de vídeo codificados por el canal 16. El dispositivo de pantalla 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En general, el dispositivo de pantalla 32 exhibe los datos de vídeo decodificados. El dispositivo de pantalla 32 puede comprender varios dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de pantalla.
[0083] En algunos ejemplos, el codificador de vídeo 20 y el decodificador de vídeo 30 funcionan de acuerdo con una norma de compresión de vídeo, tal como la ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como AVC de MPEG-4 de ISO/IEC), incluidas sus extensiones de codificación de vídeo ajustable a escala (SVC) y de codificación de vídeo de múltiples vistas (MVC). En otros ejemplos, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo con otras normas de compresión de vídeo, incluyendo la norma de Codificación de Vídeo de Alta Eficacia (HEVC) actualmente en desarrollo. Un borrador de la norma HEVC actualmente en desarrollo, conocido como "Borrador 9 de la HEVC", se describe en el artículo de Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 9" ["Borrador 9 de la especificación textual de la codificación de vídeo de alta eficacia (HEVC)"], Equipo de colaboración conjunta en codificación de vídeo (JCT-VC) de UIT-T SG16 WP3 e ISO / IEC JTC1 / SC29 / WG11, 11a Conferencia: Shanghai, China, octubre de 2012. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma o técnica de codificación particular. Otro borrador reciente de la norma HEVC, denominado “Borrador 10 de trabajo de la HEVC” o “WD10”, se describe en el documento JCTVC-L1003v34, de Bross et al., titulado "High Efficiency video Coding (HEVC) Text Specification Draft 10 (for FDIS & Last Call)" [“Memoria descriptiva textual de la Codificación de Vídeo de Alta Eficacia (HEVC), Borrador 10 (para Norma Internacional de Borrador Final y Última Llamada)”], Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12a conferencia: Ginebra, Suiza, 14 al 23 de enero de 2013. Otro borrador más de la norma HEVC se denomina en el presente documento "Revisiones de WD10" descritas en el artículo de Bross et al., "Editors' proposed corrections to HEVC version 1" ["Correcciones propuestas por los editores para la HEVC versión 1"], Equipo de colaboración conjunta en codificación de vídeo (JCT-VC) del UIT-T SG16 WP3 e ISO / IEC JTC1 / SC29 / WG11, 1 3 a Conferencia, Incheon, KR, abril de 2013.
[0084] El decodificador de vídeo 30 también puede configurarse para ejecutar técnicas de acuerdo con esta divulgación. Por ejemplo, el decodificador de vídeo 30 puede recibir un elemento sintáctico que indica un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener un tamaño igual al tamaño indicado por el elemento sintáctico. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. Al recibir un valor de índice que indica una modalidad de MPI de sub-PU, el decodificador de vídeo 30 puede heredar además la MPI para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en los bloques de textura correspondientes cosituados con cada una de las sub-PU.
[0085] La figura 7 es meramente un ejemplo y las técnicas de esta divulgación pueden aplicarse a configuraciones de codificación de vídeo (por ejemplo, codificación de vídeo o decodificación de vídeo) que no incluyen necesariamente cualquier comunicación de datos entre el dispositivo de codificación de vídeo y el dispositivo de decodificación de vídeo. En otros ejemplos, los datos se recuperan de una memoria local, se transmiten por flujo continuo por una red o similar. Un dispositivo de codificación de vídeo puede codificar y almacenar datos en la memoria y/o un dispositivo de decodificación de vídeo puede recuperar y decodificar datos desde la memoria. En muchos ejemplos, la codificación y decodificación de vídeo se realiza mediante dispositivos que no se comunican entre sí, sino que simplemente codifican datos en la memoria y/o recuperan y decodifican datos de la memoria.
[0086] El codificador de vídeo 20 y el decodificador de vídeo 30 pueden, cada uno, implementarse como cualquiera entre varios circuitos adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), formaciones de compuertas programables sobre el terreno (FPGA), lógica discreta, hardware o cualquier combinación de los mismos. Si las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado de almacenamiento no transitorio legible por ordenador, y puede ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Puede considerarse que cualquiera de los anteriores (incluyendo hardware, software, una combinación de hardware y software, etc.) sean uno o más procesadores. Cada uno entre el codificador de vídeo 20 y el decodificador de vídeo 30 puede estar incluido en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador (CÓDEC) combinado en un dispositivo respectivo.
[0087] Esta divulgación puede generalmente referirse al codificador de vídeo 20 como "señalizando" cierta información. El término "señalización" puede referirse en general a la comunicación de elementos sintácticos y/o a otros datos usados para decodificar los datos de vídeo comprimidos. Dicha comunicación puede producirse en tiempo real o casi real. De forma alternativa, dicha comunicación puede producirse durante un lapso, tal como podría ocurrir cuando se almacenan elementos sintácticos en un medio de almacenamiento legible por ordenador en un flujo de bits codificado en el momento de la codificación, que a continuación un dispositivo de decodificación de vídeo puede recuperar en cualquier momento tras haber sido almacenado en este medio. En algunos ejemplos, desde la perspectiva del codificador, la señalización puede incluir la generación de un flujo de bits codificado y, desde la perspectiva del decodificador, la señalización puede incluir la recepción y el análisis sintáctico de un flujo de bits codificado.
[0088] Como se ha mencionado brevemente en lo que antecede, el codificador de vídeo 20 codifica datos de vídeo. Los datos de vídeo pueden comprender una o más imágenes. Cada una de las imágenes es una imagen fija que forma parte de un vídeo. Cuando el codificador de vídeo 20 codifica los datos de vídeo, el codificador de vídeo 20 puede generar un flujo de bits. El flujo de bits puede incluir una secuencia de bits que forma una representación codificada de los datos de vídeo. El flujo de bits puede incluir imágenes codificadas y datos asociados. Una imagen codificada es una representación codificada de una imagen. Los datos asociados pueden incluir conjuntos de parámetros de secuencia (SPS), conjuntos de parámetros de imagen (PPS), conjuntos de parámetros de vídeo (VPS), conjuntos de parámetros adaptativos (APS), encabezados de fragmento, encabezados de bloque y otras estructuras sintácticas.
[0089] Una imagen puede incluir tres formaciones de muestras, denominadas Sl, SCb y SCr. Sl es una formación bidimensional (es decir, un bloque) de muestras de luma. Las muestras de luma también se pueden mencionar en la presente memoria como muestras "Y". SCb es una formación bidimensional de muestras de crominancia Cb. SCr es una formación bidimensional de muestras de crominancia Cr. Las muestras de crominancia también se pueden mencionar en el presente documento como muestras de "croma". Las muestras de crominancia Cb se pueden mencionar en el presente documento como "Muestras U". Las muestras de crominancia Cr se pueden mencionar en el presente documento como "muestras V".
[0090] En algunos ejemplos, el codificador de vídeo 20 puede reducir el muestreo de las formaciones de croma de una imagen (es decir, SCb y SCr). Por ejemplo, el codificador de vídeo 20 puede usar un formato de vídeo YUV 4: 2: 0, un formato de vídeo YUV 4: 2: 2 o un formato de vídeo 4: 4: 4. En el formato de vídeo YUV 4: 2: 0, el codificador de vídeo 20 puede reducir el muestreo de las formaciones de croma, de manera que las formaciones de croma tengan V de la altura y V del ancho de la formación de luma. En el formato de vídeo YUV 4: 2: 2, el codificador de vídeo 20 puede reducir el muestreo de las formaciones de croma, de manera que las formaciones de croma tengan V del ancho y la misma altura que la formación de luma. En el formato de vídeo YUV 4: 4: 4, el codificador de vídeo 20 no reduce el muestreo de las formaciones de croma.
[0091] Para generar una representación codificada de una imagen, el codificador de vídeo 20 puede generar un conjunto de unidades de árbol de codificación (CTU). Cada una de las CTU puede ser un bloque arbolado de codificación de muestras de luma, dos correspondientes bloques arbolados de codificación de muestras de croma y estructuras sintácticas usadas para codificar las muestras de los bloques arbolados de codificación. Un bloque arbolado de codificación puede ser un bloque de muestras de tamaño NxN. Una CTU también puede denominarse un "bloque arbolado" o una "máxima unidad de codificación" (LCU). Las CTU de la HEVC pueden ser análogas en gran medida a los macrobloques de otras normas, tales como H.264/AVC. Sin embargo, una CTU no está limitada necesariamente a un tamaño particular y puede incluir una o más unidades de codificación (CU).
[0092] Como parte de la codificación de una imagen, el codificador de vídeo 20 puede generar representaciones codificadas de cada fragmento de la imagen (es decir, fragmentos codificados). Para generar una división codificada, el codificador de vídeo 20 puede codificar una serie de CTU. Esta descripción puede referirse a una representación codificada de una CTU como una CTU codificada. En algunos ejemplos, cada uno de los fragmentos incluye un número entero de CTU codificadas.
[0093] Para generar una CTU codificada, el codificador de vídeo 20 puede llevar a cabo de forma recursiva una partición de árbol cuádruple en los bloques arbolados de codificación de una CTU para dividir los bloques arbolados de codificación en bloques de codificación, de ahí el nombre "unidades de árbol de codificación". Un bloque de codificación es un bloque de muestras de tamaño NxN. Una CU puede ser un bloque de codificación de muestras de luma y dos correspondientes bloques de codificación de muestras de croma de una imagen que tenga una formación de muestras de luma, una formación de muestras de Cb y una formación de muestras de Cr, y estructuras sintácticas usadas para codificar las muestras de los bloques de codificación. El codificador de vídeo 20 puede dividir un bloque de codificación de una CU en uno o más bloques de predicción. Un bloque de predicción puede ser un bloque rectangular (es decir, cuadrado o no cuadrado) de muestras en las que se aplica la misma predicción. Una unidad de predicción (PU) de una CU puede ser un bloque de predicción de muestras de luma, dos bloques de predicción correspondientes de muestras de croma de una imagen y estructuras sintácticas usadas para predecir las muestras de bloques de predicción. El codificador de vídeo 20 puede generar bloques predictivos de luma, Cb y Cr para bloques de predicción de luma, Cb y Cr de cada PU de la CU.
[0094] El codificador de vídeo 20 puede usar intra-predicción o inter-predicción para generar los bloques predictivos para una PU. Si el codificador de vídeo 20 utiliza intra-predicción para generar los bloques predictivos de una PU, el codificador de vídeo 20 puede generar los bloques predictivos de la PU basándose en muestras decodificadas de la imagen asociada a la PU.
[0095] Si el codificador de vídeo 20 utiliza inter-predicción para generar los bloques predictivos de una PU, el codificador de vídeo 20 puede generar los bloques predictivos de la PU basándose en muestras decodificadas de una o más imágenes distintas a la imagen asociada a la PU. El codificador de vídeo 20 puede usar uni-predicción o bipredicción para generar los bloques predictivos de una PU. Cuando el codificador de vídeo 20 usa la uni-predicción para generar los bloques predictivos para una PU, la PU puede tener un MV único. Cuando el codificador de vídeo 20 usa uni-predicción para generar los bloques predictivos para una PU, la PU puede tener dos MV.
[0096] Después de que el codificador de vídeo 20 genera bloques predictivos de luma, Cb y Cr para una o más PU de una CU, el codificador de vídeo 20 puede generar un bloque residual de luma para la CU. Cada muestra en el bloque residual de luma de la CU indica una diferencia entre una muestra de luma en uno de los bloques predictivos de luma de la CU y una muestra correspondiente en el bloque de codificación de luma original de la Cu . Además, el codificador de vídeo 20 puede generar un bloque residual de Cb para la CU. Cada muestra en el bloque residual de Cb de la CU puede indicar una diferencia entre una muestra de Cb en uno de los bloques predictivos de Cb de la CU y una muestra correspondiente en el bloque de codificación de Cb original de la CU. El codificador de vídeo 20 también puede generar un bloque residual de Cr para la CU. Cada muestra en el bloque residual de Cr de la CU puede indicar una diferencia entre una muestra de Cr en uno de los bloques de Cr predictivos de la CU y una muestra correspondiente en el bloque de codificación de Cr original de la CU.
[0097] Además, el codificador de vídeo 20 puede usar la partición en árbol cuádruple para descomponer los bloques residuales de luma, Cb y Cr de una CU en uno o más bloques de transformación de luma, Cb y Cr. Un bloque de transformación puede ser un bloque rectangular de muestras en el que se aplica la misma transformación. Una unidad de transformación (TU) de una CU puede ser un bloque de transformación de muestras de luma, dos bloques de transformación correspondientes de muestras de croma y estructuras sintácticas utilizadas para transformar las muestras de bloques de transformación. De este modo, cada TU de una CU puede estar asociada a un bloque de transformación de luma, un bloque de transformación de Cb y un bloque de transformación de Cr. El bloque de transformación de luma asociado a la TU puede ser un sub-bloque del bloque residual de luma de la CU. El bloque de transformación de Cb puede ser un sub-bloque del bloque residual de Cb de la CU. El bloque de transformación de Cr puede ser un sub-bloque del bloque residual de Cr de la CU. Para la codificación tridimensional, los valores de profundidad en bloques de profundidad se pueden representar análogamente como valores de muestra, indicando cada uno un nivel de profundidad asociado a una ubicación de píxel determinada. Las técnicas de esta divulgación son aplicables a la codificación de bloques de profundidad, en particular, en modalidades tales como la modalidad de salto o la modalidad de fusión, donde se genera una lista de candidatos para heredar o usar información de movimiento de un candidato seleccionado, en la codificación del bloque de profundidad.
[0098] El codificador de vídeo 20 puede aplicar una o más transformaciones a un bloque de transformación de luma de una TU con el fin de generar un bloque de coeficientes de luma para la TU. Un bloque de coeficientes puede ser una formación bidimensional de coeficientes de transformación. Un coeficiente de transformación puede ser una cantidad escalar. El codificador de vídeo 20 puede aplicar una o más transformaciones a un bloque de transformación de Cb de una TU para generar un bloque de coeficientes de Cb para la TU. El codificador de vídeo 20 puede aplicar una o más transformaciones a un bloque de transformación de Cr de una TU para generar un bloque de coeficientes de Cr para la TU.
[0099] Después de generar un bloque de coeficientes (por ejemplo, un bloque de coeficientes de luma, un bloque de coeficientes de Cb o un bloque de coeficientes de Cr), el codificador de vídeo 20 puede cuantizar el bloque de coeficientes. La cuantización se refiere, en general, a un proceso en el que los coeficientes de transformación se cuantizan para reducir posiblemente la cantidad de datos usados para representar los coeficientes de transformación, proporcionando una compresión adicional. Después de que el codificador de vídeo 20 cuantice un bloque de coeficientes, el codificador de vídeo 20 puede codificar por entropía elementos sintácticos que indican los coeficientes de transformación cuantizados. Por ejemplo, el codificador de vídeo 20 puede realizar la Codificación Aritmética Binaria Adaptativa al Contexto (CABAC) en los elementos sintácticos que indican los coeficientes de transformación cuantizados. El codificador de vídeo 20 puede emitir los elementos sintácticos codificados por entropía en un flujo de bits.
[0100] El decodificador de vídeo 30 puede recibir un flujo de bits generado por el codificador de vídeo 20. Además, el decodificador de vídeo 30 puede analizar sintácticamente el flujo de bits para decodificar elementos sintácticos del flujo de bits. El decodificador de vídeo 30 puede reconstruir las imágenes de los datos de vídeo basándose, al menos en parte, en los elementos sintácticos decodificados a partir del flujo de bits. El proceso para reconstruir los datos de vídeo puede ser, en general, recíproco al proceso realizado por el codificador de vídeo 20. Por ejemplo, el decodificador de vídeo 30 puede usar los MV de las PU para determinar bloques predictivos de muestra para las PU de una CU actual. Además, el decodificador de vídeo 30 puede cuantizar inversamente bloques de coeficientes de transformación, asociados a las TU de la CU actual. El decodificador de vídeo 30 puede realizar transformaciones inversas en los bloques de coeficientes de transformación para reconstruir los bloques de transformación asociados a las TU de la CU actual. El decodificador de vídeo 30 puede reconstruir los bloques de codificación de la CU actual añadiendo las muestras de los bloques predictivos de muestra para las PU de la CU actual a las muestras correspondientes de los bloques de transformación de las TU de la CU actual. Mediante la reconstrucción de los bloques de codificación para cada CU de una imagen, el decodificador de vídeo 30 puede reconstruir la imagen.
[0101] En algunos casos, el codificador de vídeo 20 puede señalizar la información de movimiento de una PU usando la modalidad de fusión o una modalidad de salto o, posiblemente, una modalidad de predicción de MV avanzada (AMVP). La información de movimiento de una PU puede incluir uno o más vectores de movimiento de la PU y uno o más índices de referencia de la PU. Cuando el codificador de vídeo 20 señaliza la información de movimiento de una PU actual usando la modalidad de fusión, el codificador de vídeo 20 genera una lista de candidatos de fusión. La lista de candidatos de fusión incluye un conjunto de candidatos. Los candidatos pueden indicar la información de movimiento de las PU que lindan espacial o temporalmente con la PU actual. El codificador de vídeo 20 puede entonces seleccionar un candidato de la lista de candidatos y puede usar la información de movimiento indicada por el candidato seleccionado como la información de movimiento de la PU actual. Además, en la modalidad de fusión, el codificador de vídeo 20 puede señalizar la posición en la lista de candidatos del candidato seleccionado. El decodificador de vídeo 30 puede generar la misma lista de candidatos y puede determinar, basándose en la indicación de la posición del candidato seleccionado, el candidato seleccionado. El decodificador de vídeo 30 puede entonces usar la información de movimiento del candidato seleccionado para generar muestras predictivas para la PU actual, y puede generar una señal residual como la diferencia entre la PU actual y las muestras predictivas de la PU predictiva identificada en la modalidad de fusión.
[0102] La modalidad de salto es similar a la modalidad de fusión en cuanto a que el codificador de vídeo 20 genera una lista de candidatos y selecciona un candidato de la lista de candidatos. Sin embargo, cuando el codificador de vídeo 20 señaliza la información de movimiento de una PU actual (por ejemplo, un bloque de profundidad) usando la modalidad de salto, el codificador de vídeo 20 puede evitar la generación de cualquier señal residual.
[0103] La modalidad de AMVP es similar a la modalidad de fusión en cuanto a que el codificador de vídeo 20 genera una lista de candidatos y selecciona un candidato de la lista de candidatos. Sin embargo, cuando el codificador de vídeo 20 señaliza la información de movimiento de una PU actual (por ejemplo, un bloque de profundidad) usando la modalidad de AMVP, el codificador de vídeo 20 puede señalizar una diferencia vectorial de movimiento (MVD) para la PU actual y un índice de referencia, además de señalizar una posición del candidato seleccionado en la lista de candidatos. Una MVD para la PU actual puede indicar una diferencia entre un MV de la PU actual y un MV del candidato a MV seleccionado. En uni-predicción, el codificador de vídeo 20 puede señalizar una MVD y un índice de referencia para la PU actual. En la bi-predicción, el codificador de vídeo 20 puede señalar dos MVD y dos índices de referencia para la PU actual. Para la predicción de bloques de profundidad congruentes con esta divulgación, el codificador 20 de vídeo habitualmente señalizaría una MVD y un índice de referencia para la PU actual, aunque la predicción de bloques de profundidad también podría usar técnicas similares a la bi-predicción, donde se señalizan dos MVD y dos índices de referencia.
[0104] Además, cuando la información de movimiento de una PU actual se señaliza usando la modalidad de AMVP, el decodificador de vídeo 30 puede generar la misma lista de candidatos y puede determinar, basándose en la indicación de la posición del candidato seleccionado, el candidato seleccionado. El decodificador de vídeo 30 puede recuperar un MV de la PU actual agregando una MVD al MV del candidato seleccionado. El decodificador de vídeo 30 puede entonces usar los uno o más MV recuperados de la PU actual para generar bloques de muestra predictivos para la PU actual.
[0105] De acuerdo con esta divulgación, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden realizar una o más técnicas descritas en el presente documento como parte de un proceso de codificación de vídeo (por ejemplo, codificación de vídeo o decodificación de vídeo). Por ejemplo, el codificador de vídeo 20 puede determinar un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener el mismo tamaño. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. El codificador de vídeo 20 puede codificar cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU. El codificador de vídeo 20 puede generar y transmitir además un elemento sintáctico (por ejemplo, el elemento sintáctico log2_tamaño_mpi_sub_pb_menos3, expuesto anteriormente) que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad.
[0106] Además, el decodificador de vídeo 30 puede recibir el elemento sintáctico (por ejemplo, el elemento sintáctico generado y transmitido por el codificador de vídeo 20) que indica un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener un tamaño igual al tamaño indicado por el elemento sintáctico. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. Al recibir un valor de índice que indica una modalidad de MPI de sub-PU, el decodificador de vídeo 30 puede heredar además la MPI para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en los bloques de textura correspondientes cosituados con cada una de las sub-PU.
[0107] La figura 8 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo 20 que puede implementar las técnicas de esta divulgación. La figura 8 se proporciona con fines de explicación y no debería considerarse limitadora de las técnicas, tal como se ha ejemplificado y descrito ampliamente en esta divulgación. Con fines de explicación, esta divulgación describe el codificador de vídeo 20 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0108] En el ejemplo de la figura 8, el codificador de vídeo 20 incluye una unidad de procesamiento de predicción 100, una unidad de generación residual 102, una unidad de procesamiento de transformación 104, una unidad de cuantización 106, una unidad de cuantización inversa 108, una unidad de procesamiento de transformación inversa 110, una unidad de reconstrucción 112, una unidad de filtro 114, una memoria intermedia de imágenes decodificadas 116 y una unidad de codificación por entropía 118. La unidad de procesamiento de predicción 100 incluye una unidad de procesamiento de inter-predicción 120 y una unidad de procesamiento de intra-predicción 126. La unidad de procesamiento de inter-predicción 120 incluye una unidad de estimación de movimiento 122 y una unidad de compensación de movimiento 124. En otros ejemplos, el codificador de vídeo 20 puede incluir más, menos o diferentes componentes funcionales.
[0109] El codificador de vídeo 20 puede recibir datos de vídeo. El codificador de vídeo 20 puede codificar cada CTU en un fragmento de una imagen de los datos de vídeo. Cada una de las CTU puede asociarse a bloques arbolados de codificación (CTB) de luma de igual tamaño y a los CTB correspondientes de la imagen. Como parte de la codificación de una CTU, la unidad de procesamiento de predicción 100 puede realizar la partición de árbol cuádruple para dividir los CTB de la CTU en bloques progresivamente más pequeños. Los bloques más pequeños pueden ser bloques de codificación de las CU. Por ejemplo, la unidad de procesamiento de predicción 100 puede dividir un CTB asociado a una CTU en cuatro sub-bloques de igual tamaño, dividir uno o más de los subbloques en cuatro subsubbloques de igual tamaño, etc.
[0110] El codificador de vídeo 20 puede codificar las CU de una CTU para generar representaciones codificadas de las CU (es decir, CU codificadas). Como parte de la codificación de una CU, la unidad de procesamiento de predicción 100 puede dividir los bloques de codificación asociados a la CU entre una o más PU de la CU. Por lo tanto, cada PU puede asociarse a un bloque de predicción de luma y a los correspondientes bloques de predicción de croma. El codificador de vídeo 20 y el decodificador de vídeo 30 pueden dar soporte a las PU de varios tamaños. Como se ha indicado anteriormente, el tamaño de una CU puede referirse al tamaño del bloque de codificación de luma de la CU y el tamaño de una PU puede referirse al tamaño de un bloque de predicción de luma de la PU. Suponiendo que el tamaño de una CU particular sea 2Nx2N, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden dar soporte a tamaños de PU de 2Nx2N o NxN para la intra-predicción, y a tamaños de PU simétricas de 2Nx2N, 2NxN, Nx2N, NxN o similares para la inter-predicción. El codificador de vídeo 20 y el decodificador de vídeo 30 también pueden dar soporte a la partición asimétrica para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N, para la inter-predicción.
[0111] La unidad de procesamiento de inter-predicción 120 puede generar datos predictivos para una PU realizando una inter-predicción en cada PU de una CU. Los datos predictivos para la PU pueden incluir bloques predictivos de muestra de la PU e información de movimiento para la PU. La unidad de inter-predicción 121 puede realizar diferentes operaciones para una PU de una CU, según que la PU esté en un fragmento I, un fragmento P o un fragmento B. En un fragmento I, todas las PU son intra-predichas. Por lo tanto, si la PU está en un fragmento I, la unidad de inter­ predicción 121 no realiza inter-predicción en la PU. Por lo tanto, para bloques codificados en la modalidad I, el bloque predicho se forma usando predicción espacial a partir de bloques contiguos previamente codificados dentro de la misma trama.
[0112] Si una PU está en un fragmento P, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia en una lista de imágenes de referencia (por ejemplo, “ListaImgRef0”) para una región de referencia para la PU. La región de referencia para la PU puede ser una región, dentro de una imagen de referencia, que contiene bloques de muestra que se corresponden más estrechamente con los bloques de muestra de la PU. La unidad de estimación de movimiento 122 puede generar un índice de referencia que indique una posición en la ListaImgRef0 de la imagen de referencia que contiene la región de referencia para la PU. Además, la unidad de estimación de movimiento 122 puede generar un MV que indica un desplazamiento espacial entre un bloque de codificación de la PU y una ubicación de referencia asociada a la región de referencia. Por ejemplo, el MV puede ser un vector bidimensional que proporciona un desplazamiento desde las coordenadas en la imagen decodificada actual hasta las coordenadas en una imagen de referencia. La unidad de estimación de movimiento 122 puede emitir el índice de referencia y el MV como la información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de muestra de la PU basándose en muestras reales o interpoladas en la ubicación de referencia indicada por el vector de movimiento de la PU.
[0113] Si una PU está en un fragmento B, la unidad de estimación de movimiento 122 puede llevar a cabo la predicción unidireccional o la predicción bidireccional para la PU. Para realizar predicción unidireccional para la PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia de la ListaImgRef0 o una segunda lista de imágenes de referencia (“ListaImgRef1”) para una región de referencia para la PU. La unidad de estimación de movimiento 122 puede emitir, como la información de movimiento de la PU, un índice de referencia que indica una posición en la ListaImgRef0 o la ListaImgRef1 de la imagen de referencia que contiene la región de referencia, un MV que indica un desplazamiento espacial entre un bloque de muestra de la PU y una ubicación de referencia asociada a la región de referencia, y uno o más indicadores de dirección de predicción que indican si la imagen de referencia está en la ListaImgRef0 o la ListaImgRef1. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de muestra de la PU basándose, al menos en parte, en muestras reales o interpoladas en la región de referencia indicada por el vector de movimiento de la PU.
[0114] Para realizar inter-predicción bidireccional para una PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia en ListaImgRef0 para una región de referencia para la PU y también puede buscar las imágenes de referencia en ListaImgRef1 para otra región de referencia para la PU. La unidad de estimación de movimiento 122 puede generar índices de imágenes de referencia que indiquen posiciones en ListaImgRef0 y ListaImgRef1 de las imágenes de referencia que contienen las regiones de referencia. Además, la unidad de estimación de movimiento 122 puede generar los MV que indiquen desplazamientos espaciales entre la ubicación de referencia asociada a las regiones de referencia y un bloque de muestra de la PU. La información de movimiento de la PU puede incluir los índices de referencia y los MV de la PU. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de muestra de la PU basándose, al menos en parte, en muestras reales o interpoladas en la región de referencia indicada por el vector de movimiento de la PU.
[0115] De acuerdo con una o más técnicas de esta divulgación, una o más unidades dentro del codificador de vídeo 20 pueden realizar una o más técnicas descritas en este documento como parte de un proceso de codificación de vídeo. Se pueden incluir componentes tridimensionales adicionales dentro del codificador de vídeo 20, tal como, por ejemplo, la unidad de procesamiento de profundidad 125. La unidad de procesamiento de profundidad 125 puede realizar una o más técnicas de esta divulgación, en algunos ejemplos.
[0116] Por ejemplo, el codificador de vídeo 20 de la unidad de procesamiento de profundidad 125 puede determinar un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener el mismo tamaño. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. La unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede codificar cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU. La unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede generar adicionalmente un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad.
[0117] En diferentes ejemplos, la unidad de procesamiento de predicción 100, la unidad de procesamiento de inter­ predicción 120, la unidad de estimación de movimiento 122, la unidad de compensación de movimiento 124, la unidad de procesamiento de intra-predicción 126, la unidad de procesamiento de profundidad 125 y / u otra unidad del codificador de vídeo pueden realizar un procedimiento de datos de codificación asociados a vídeo tridimensional, congruente con las técnicas descritas en este documento. Una de estas unidades (o cualquier combinación de las mismas), por ejemplo, puede configurarse para realizar técnicas de MPI como se describe en este documento, como parte de un proceso de codificación de vídeo.
[0118] Ahora se hace referencia continua al ejemplo de la figura 8. La unidad de procesamiento de intra-predicción 126 puede generar datos predictivos para una PU realizando una intra-predicción en la PU. Los datos predictivos para la PU pueden incluir bloques predictivos de muestra para la PU y varios elementos sintácticos. La unidad de procesamiento de intra-predicción 126 puede realizar la intra-predicción en las PU en fragmentos I, fragmentos P y fragmentos B.
[0119] Para realizar la intra-predicción en una PU, la unidad de procesamiento de intra-predicción 126 puede usar múltiples modalidades de intra-predicción para generar múltiples conjuntos de datos predictivos para la PU. Para usar una modalidad de intra-predicción para generar un conjunto de datos predictivos para la PU, la unidad de procesamiento de intra-predicción 126 puede extender muestras a partir de bloques de muestra de PU contiguas, entre los bloques de muestras de la PU en una dirección asociada a la modalidad de intra-predicción. Las PU contiguas pueden estar arriba, arriba y a la derecha, arriba y a la izquierda, o a la izquierda de la PU, suponiendo un orden de codificación de izquierda a derecha, de arriba a abajo, para las PU, CU y CTU. La unidad de procesamiento de intrapredicción 126 puede usar varios números de modalidades de intra-predicción, por ejemplo, 33 modalidades de intrapredicción direccional. En algunos ejemplos, el número de modalidades de intra-predicción puede depender del tamaño de la región asociada a la PU.
[0120] La unidad de procesamiento de predicción 100 puede seleccionar los datos predictivos para las PU de una CU entre los datos predictivos generados por la unidad de procesamiento de inter-predicción 120 para las PU o los datos predictivos generados por la unidad de procesamiento de intra-predicción 126 para las PU. En algunos ejemplos, la unidad de procesamiento de predicción 100 selecciona los datos predictivos para las PU de la CU basándose en las métricas de velocidad/distorsión de los conjuntos de datos predictivos. Los bloques de muestra predictivos de los datos predictivos seleccionados pueden denominarse en este documento bloques de muestra predictivos seleccionados.
[0121] La unidad de generación residual 102 puede generar, basándose en los bloques de codificación de luma, Cb y Cr de una CU y los bloques predictivos de luma, Cb y Cr seleccionados de las PU de la CU, y bloques residuales de luma, Cb y Cr de la CU. Por ejemplo, la unidad de generación residual 102 puede generar los bloques residuales de la CU de manera que cada muestra en los bloques residuales tenga un valor igual a una diferencia entre una muestra en un bloque de codificación de la CU y una muestra correspondiente en un correspondiente bloque predictivo seleccionado de una PU de la CU.
[0122] La unidad de procesamiento de transformación 104 puede realizar la división en árbol cuádruple para dividir los bloques residuales asociados a una CU en bloques de transformación asociados a las TU de la CU. De este modo, una TU puede estar asociada a un bloque de transformación de luma y a dos bloques de transformación de croma. Los tamaños y las posiciones de los bloques de transformación de luma y croma de las TU de una CU pueden o no basarse en los tamaños y posiciones de los bloques de predicción de las PU de la CU. Una estructura de árbol cuádruple conocida como "árbol cuádruple residual" (RQT) puede incluir nodos asociados a cada una de las regiones. Las TU de una CU pueden corresponder a nodos de hoja del RQT.
[0123] La unidad de procesamiento de transformación 104 puede generar bloques de coeficientes de transformación para cada TU de una CU aplicando una o más transformaciones a los bloques de transformación de la TU. La unidad de procesamiento de transformación 104 puede aplicar varias transformaciones a un bloque de transformación asociado a una TU. Por ejemplo, la unidad de procesamiento de transformación 104 puede aplicar una transformación de coseno discreta (DCT), una transformación direccional o una transformación conceptualmente similar a un bloque de transformación. En algunos ejemplos, la unidad de procesamiento de transformación 104 no aplica transformaciones a un bloque de transformación. En dichos ejemplos, el bloque de transformación puede tratarse como un bloque de coeficientes de transformación.
[0124] La unidad de cuantización 106 puede cuantizar los coeficientes de transformación en un bloque de coeficientes. El proceso de cuantización puede reducir la profundidad de bits asociada a algunos o a la totalidad de los coeficientes de transformación. Por ejemplo, un coeficiente de transformación de n bits puede redondearse hacia abajo hasta un coeficiente de transformación de m bits durante la cuantización, donde n es mayor que m. La unidad de cuantización 106 puede cuantizar un bloque de coeficientes asociado a una TU de una CU basándose en un valor de parámetro de cuantización (QP) asociado a la CU. El codificador de vídeo 20 puede ajustar el grado de cuantización aplicado a los bloques de coeficientes asociados a una CU, ajustando el valor del QP asociado a la CU. La cuantización puede introducir pérdida de información, por lo que los coeficientes de transformación cuantizados pueden tener una precisión inferior a los originales.
[0125] La unidad de cuantización inversa 108 y la unidad de procesamiento de transformación inversa 110 pueden aplicar la cuantización inversa y las transformaciones inversas a un bloque de coeficientes, respectivamente, para reconstruir un bloque residual a partir del bloque de coeficientes. La unidad de reconstrucción 112 puede añadir el bloque residual reconstruido a las muestras correspondientes a partir de uno o más bloques predictivos de muestra, generados por la unidad de procesamiento de predicción 100 para producir un bloque de transformación reconstruido asociado a una TU. Mediante la reconstrucción de bloques de transformación para cada TU de una CU de esta manera, el codificador de vídeo 20 puede reconstruir los bloques de codificación de la CU.
[0126] La unidad de filtro 114 puede realizar una o más operaciones de desbloqueo para reducir las distorsiones de bloqueo en los bloques de codificación asociados a una CU. La memoria intermedia de imágenes decodificadas 116 puede almacenar los bloques de codificación reconstruidos después de que la unidad de filtro 114 realice las una o más operaciones de desbloqueo en los bloques de codificación reconstruidos. La unidad de inter-predicción 120 puede utilizar una imagen de referencia que contiene los bloques de codificación reconstruidos para realizar la inter-predicción en las PU de otras imágenes. Además, la unidad de procesamiento de intra-predicción 126 puede usar bloques de codificación reconstruidos en la memoria intermedia de imágenes decodificadas 116 para realizar intra-predicción en otras PU en la misma imagen que la CU.
[0127] La unidad de codificación por entropía 118 puede recibir datos desde otros componentes funcionales del codificador de vídeo 20. Por ejemplo, la unidad de codificación por entropía 118 puede recibir bloques de coeficientes desde la unidad de cuantización 106 y puede recibir elementos sintácticos desde la unidad de procesamiento de predicción 100. La unidad de codificación por entropía 118 puede realizar una o más operaciones de codificación por entropía en los datos para generar datos codificados por entropía. Por ejemplo, la unidad de codificación por entropía 118 puede realizar una operación de codificación de longitud variable adaptable al contexto (CAVLC), una operación de CABAC, una operación de codificación de longitud variable a variable (V2V), una operación de codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), una operación de codificación por entropía de partición de intervalos de probabilidad (PIPE), una operación de codificación Exponencial-Golomb u otro tipo de operación de codificación por entropía en los datos. El codificador de vídeo 20 puede emitir un flujo de bits que incluye datos codificados por entropía, generados por la unidad de codificación por entropía 118. Por ejemplo, el flujo de bits puede incluir datos que representan un RQT para una CU.
[0128] La figura 9 es un diagrama de bloques que ilustra un decodificador de vídeo 30 ejemplar que está configurado para implementar las técnicas de esta divulgación. La figura 9 se proporciona con fines de explicación y no es limitadora para las técnicas, como se ejemplifica y describe ampliamente en esta divulgación. Con fines de explicación, esta divulgación describe el decodificador de vídeo 30 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0129] En el ejemplo de la figura 9, el decodificador de vídeo 30 incluye una unidad de decodificación por entropía 150, una unidad de procesamiento de predicción 152, una unidad de cuantización inversa 154, una unidad de procesamiento de transformación inversa 156, una unidad de reconstrucción 158, una unidad de filtro 160 y una memoria intermedia de imágenes decodificadas 162. La unidad de procesamiento de predicción 152 incluye una unidad de compensación de movimiento 164 y una unidad de procesamiento de intra-predicción 166. En otros ejemplos, el decodificador de vídeo 30 puede incluir más, menos o diferentes componentes funcionales.
[0130] El decodificador de vídeo 30 puede recibir un flujo de bits. La unidad de decodificación por entropía 150 puede analizar sintácticamente el flujo de bits para extraer los elementos sintácticos del flujo de bits. La unidad de decodificación por entropía 150 puede decodificar por entropía los elementos sintácticos codificados por entropía en el flujo de bits. La unidad de procesamiento de predicción 152, la unidad de cuantización inversa 154, la unidad de procesamiento de transformación inversa 156, la unidad de reconstrucción 158 y la unidad de filtro 160 pueden generar datos de vídeo decodificados basándose en los elementos sintácticos extraídos del flujo de bits.
[0131] El flujo de bits puede comprender una serie de unidades de NAL. Las unidades de NAL del flujo de bits pueden incluir unidades de NAL de fragmentos codificados. Como parte de la decodificación del flujo de bits, la unidad de decodificación por entropía 150 puede extraer y decodificar por entropía elementos sintácticos de las unidades de NAL de fragmentos codificados. Cada uno de los fragmentos codificados puede incluir una cabecera de fragmento y datos de fragmento. La cabecera de fragmento puede contener elementos sintácticos pertenecientes a un fragmento. Los elementos sintácticos en la cabecera de fragmento pueden incluir un elemento sintáctico que identifica un PPS asociado a una imagen que contiene el fragmento.
[0132] Además de decodificar los elementos sintácticos del flujo de bits, el decodificador de vídeo 30 puede realizar una operación de reconstrucción en una CU no dividida. Para realizar la operación de reconstrucción en una CU no dividida, el decodificador de vídeo 30 puede realizar una operación de reconstrucción en cada TU de la CU. Realizando la operación de reconstrucción para cada TU de la CU, el decodificador de vídeo 30 puede reconstruir bloques residuales de la CU.
[0133] Como parte de la realización de una operación de reconstrucción en una TU de una CU, la unidad de cuantización inversa 154 puede cuantizar de forma inversa, es decir, decuantizar, los bloques de coeficientes asociados a la TU. La unidad de cuantización inversa 154 puede utilizar un valor de QP asociado a la CU de la TU para determinar un grado de cuantización y, asimismo, un grado de cuantización inversa, para aplicar por la unidad de cuantización inversa 154. Es decir, la razón de compresión, es decir, la razón entre el número de bits utilizados para representar la secuencia original y la comprimida, puede controlarse ajustando el valor del QP utilizado al cuantificar los coeficientes de transformación. La razón de compresión también puede depender del procedimiento de codificación por entropía empleado.
[0134] Después de que la unidad de cuantización inversa 154 cuantiza inversamente un bloque de coeficientes, la unidad de procesamiento de transformación inversa 156 puede aplicar una o más transformaciones inversas al bloque de coeficientes para generar un bloque residual asociado a la TU. Por ejemplo, la unidad de procesamiento de transformación inversa 156 puede aplicar una DCT inversa, una transformación entera inversa, una transformación de Karhunen-Loeve (KLT) inversa, una transformación de rotación inversa, una transformación direccional inversa u otra transformación inversa al bloque de coeficientes.
[0135] Si se codifica una PU usando la intra-predicción, la unidad de procesamiento de intra-predicción 166 puede realizar la intra-predicción para generar bloques predictivos para la PU. La unidad de procesamiento de intra-predicción 166 puede usar una modalidad de intra-predicción para generar los bloques predictivos de luma, Cb y Cr para la PU basándose en los bloques de predicción de las PU espacialmente contiguas. La unidad de procesamiento de intrapredicción 166 puede determinar la modalidad de intra-predicción para la PU basándose en uno o más elementos sintácticos decodificados a partir del flujo de bits.
[0136] La unidad de procesamiento de predicción 152 puede construir una primera lista de imágenes de referencia (ListaImgRef0) y una segunda lista de imágenes de referencia (ListaImgRef1) basándose en los elementos sintácticos extraídos del flujo de bits. Además, si se codifica una PU usando la inter-predicción, la unidad de decodificación por entropía 150 puede extraer información de movimiento para la PU. La unidad de compensación de movimiento 164 puede determinar, basándose en la información de movimiento de la PU, una o más regiones de referencia para la PU. La unidad de compensación de movimiento 164 puede generar, basándose en bloques de muestras en los uno o más bloques de referencia para la PU, bloques predictivos de luma, Cb y Cr para la PU.
[0137] Como se ha indicado anteriormente, el codificador de vídeo 20 puede señalizar la información de movimiento de una PU usando la modalidad de fusión, la modalidad de salto o la modalidad de AMVP. Cuando el codificador de vídeo 20 señaliza la información de movimiento de una PU actual usando la modalidad de AMVP, la unidad decodificadora por entropía 150 puede decodificar, a partir del flujo de bits, un índice de referencia, una MVD para la PU actual y un índice candidato. Además, la unidad de compensación de movimiento 164 puede generar una lista de candidatos de AMVP para la PU actual. La lista de candidatos de AMVP incluye uno o más candidatos de predictores de MV. Cada uno de los candidatos de predictores de MV especifica una MV de una PU que linda espacial o temporalmente con la PU actual. La unidad de compensación de movimiento 164 puede determinar, basándose, al menos en parte, en el índice candidato, un candidato predictor de MV, seleccionado en la lista de candidatos de AMVP. La unidad de compensación de movimiento 164 puede entonces determinar el MV de la PU actual añadiendo la MVD al MV especificado por el candidato predictor de MV seleccionado. En otras palabras, para AMVP, MV se calcula como MV = MVP MVD, en donde se señaliza el índice del predictor de vector de movimiento (MVP) y MVP es uno de los candidatos a MV (espaciales o temporales) de la lista de AMVP, y la MVD se señaliza al lado del decodificador.
[0138] Si la PU actual es bi-predicha, la unidad decodificadora por entropía 150 puede decodificar un índice de referencia adicional, la MVD y el índice candidato del flujo de bits. La unidad de compensación de movimiento 162 puede repetir el proceso descrito anteriormente usando el índice de referencia adicional, la MD y el índice candidato para obtener un segundo MV para la PU actual. De esta forma, la unidad de compensación de movimiento 162 puede obtener un MV para ListaImgRefO (es decir, un MV de la ListaImgRefO) y un MV para ListaImgRef1 (es decir, un MV de la ListaImgRef1).
[0139] De acuerdo con una o más técnicas de esta divulgación, una o más unidades dentro del decodificador de vídeo 30 pueden realizar una o más técnicas descritas en este documento como parte de un proceso de decodificación de vídeo. También se pueden incluir componentes tridimensionales adicionales dentro del decodificador de vídeo 30, tales como, por ejemplo, la unidad de procesamiento de profundidad 165. La unidad de procesamiento de profundidad 165 puede realizar las técnicas en algunos ejemplos.
[0140] Por ejemplo, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede recibir un elemento sintáctico que indica un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener un tamaño igual al tamaño indicado por el elemento sintáctico. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. Al recibir un valor de índice que indica una modalidad de MPI de sub-PU, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede heredar adicionalmente la MPI para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en bloques de textura correspondientes cosituados con cada una de las sub-PU.
[0141] En algunos ejemplos, la unidad de procesamiento de predicción 152, la unidad de compensación de movimiento 164, la unidad de procesamiento de intra-predicción 166, la unidad de procesamiento de profundidad 165 y / u otra unidad del decodificador de vídeo 30 pueden realizar un procedimiento de decodificación de datos asociados al vídeo tridimensional, congruente con las técnicas descritas en el presente documento. Una de estas unidades (o cualquier combinación de las mismas), por ejemplo, puede configurarse para realizar técnicas de MPI según se describe en el presente documento, como parte de un proceso de decodificación de vídeo.
[0142] Se hace referencia continua a la figura 9. La unidad de reconstrucción 158 puede utilizar los bloques de transformación de luma, Cb y Cr, asociados a las TU de una CU y los bloques predictivos de luma, Cb y Cr de las PU de la CU, es decir, datos de intra-predicción o bien datos de inter-predicción, según corresponda, para reconstruir los bloques de codificación de luma, Cb y Cr de la CU. Por ejemplo, la unidad de reconstrucción 158 puede agregar muestras de los bloques de transformación de luma, Cb y Cr a las muestras correspondientes de los bloques predictivos de luma, Cb y Cr para reconstruir los bloques de codificación de luma, Cb y Cr de la CU.
[0143] La unidad de filtro 160 puede realizar una operación de desbloqueo para reducir las distorsiones de bloqueo asociadas a los bloques de codificación de luma, Cb y Cr de la CU. El decodificador de vídeo 30 puede almacenar los bloques de codificación de luma, Cb y Cr de la CU en la memoria intermedia de imágenes decodificadas 162. La memoria intermedia de imágenes decodificadas 162 puede proporcionar imágenes de referencia para las posteriores compensación de movimiento, intra-predicción y presentación en un dispositivo de pantalla, tal como el dispositivo de pantalla 32 de la figura 7. Por ejemplo, el decodificador de vídeo 30 puede realizar, basándose en los bloques de luma, Cb y Cr en la memoria intermedia de imágenes decodificadas 162, operaciones de intra-predicción o de inter­ predicción en las PU de otras CU. De esta forma, el decodificador de vídeo 30 puede extraer, a partir del flujo de bits, los niveles de coeficientes de transformación del bloque de coeficientes luma significativos, cuantizar inversamente los niveles de coeficientes de transformación, aplicar una transformación a los niveles de coeficientes de transformación para generar un bloque de transformación, generar, basándose, al menos en parte, en el bloque de transformada, un bloque de codificación, y emitir el bloque de codificación para su visualización.
[0144] La figura 10 es un diagrama de flujo que ilustra una técnica de codificación ejemplar de acuerdo con esta divulgación. Por ejemplo, el codificador de vídeo 20 de la unidad de procesamiento de profundidad 125 puede determinar un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad) (170). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener el mismo tamaño. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. La unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede codificar cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU (172). La unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede generar adicionalmente un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad (174). En algunos ejemplos, el elemento sintáctico tiene un rango de 0 a 3 inclusive.
[0145] Si el valor del elemento sintáctico es mayor o igual que 1, la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede codificar cada bloque de textura en una unidad de acceso, y realizar compresión de movimiento con respecto a un bloque de tamaño 16x16 en cada bloque de textura. La unidad de acceso incluye el bloque de profundidad. En algunos ejemplos, cada bloque de textura en la unidad de acceso puede codificarse independientemente con respecto a un correspondiente bloque de profundidad cosituado en la unidad de acceso. Cada bloque de textura puede codificarse antes de codificar cualquiera de los bloques de profundidad en la unidad de acceso, y la unidad de procesamiento de profundidad 125 del decodificador de vídeo 20 puede realizar compresión de movimiento antes de codificar cada uno de los bloques de profundidad en la unidad de acceso.
[0146] Si el valor del elemento sintáctico es igual a 0, entonces la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede determinar que el tamaño de la MPI es 8x8. En dichos ejemplos, la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede determinar si el bloque de textura cosituado contiene dos PU. En respuesta a la determinación de que el bloque de textura cosituado contiene dos PU, la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede determinar si un tamaño de cada PU en el bloque de textura cosituado es 4x8 o 8x4, dividir la sub-PU en dos unidades más pequeñas, tales que el tamaño de cada partición sea igual al tamaño de cada PU en el bloque de textura cosituado, y compensar el movimiento unidireccional en cada una de las dos unidades más pequeñas. Además, la codificación de la sub-PU puede incluir la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 que hereda dos vectores de movimiento correspondientes a ListaImgRefO.
[0147] Si bien los ejemplos anteriores describen las consecuencias del elemento sintáctico que tiene valores particulares, estas consecuencias pueden realizarse para otros valores del elemento sintáctico. Por ejemplo, si el valor del elemento sintáctico es igual a 0, entonces la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede codificar cada bloque de textura en una unidad de acceso y realizar compresión de movimiento con respecto a un bloque de tamaño 16x16 en cada bloque de textura. Además, si el valor del elemento sintáctico es mayor o igual a 1, entonces la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede determinar que el tamaño de la MPI es 8x8. Además, aunque estas técnicas se describen con respecto a bloques de tamaños particulares (es decir, bloques de tamaño 16x16 u 8x8), en otros ejemplos, los bloques pueden tener diferentes tamaños, tales como 4x4, 32x32 o 4x8, entre otros tamaños posibles.
[0148] En algunos ejemplos, el elemento sintáctico se puede generar en un conjunto de parámetros de secuencia (SPS). En estos ejemplos, el bloque de profundidad puede incluir una pluralidad de PU de profundidad y puede ser uno entre una pluralidad de bloques de profundidad en una unidad de acceso. El elemento sintáctico puede indicar adicionalmente el tamaño de la MPI para cada sub-PU de cada PU de profundidad en cada bloque de profundidad respectivo en la unidad de acceso. En tal caso, la codificación de la sub-PU puede incluir que la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 determine que la PU de profundidad está en un primer conjunto de PU de profundidad, en donde cada PU de profundidad en el primer conjunto de PU de profundidad tiene un tamaño que es menor que un cuadrado de una suma de 3 y el valor del elemento sintáctico después de un desplazamiento a la izquierda de 1, bit a bit, y codificar cada sub-PU en la PU de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU. En algunos ejemplos, la PU de profundidad puede ser una primera PU de profundidad. En estos ejemplos, la unidad de procesamiento de profundidad 125 del codificador de vídeo 20 puede determinar además que una segunda PU de profundidad está en un segundo conjunto de PU de profundidad, en donde cada PU de profundidad en el segundo conjunto de PU de profundidad tiene un tamaño que es mayor o igual que el cuadrado de la suma de 3 y el valor del elemento sintáctico después de un desplazamiento a la izquierda de 1, bit a bit, y codificar cada sub-PU de la segunda PU de profundidad usando la MPI, no basándose en el tamaño de la MPI.
[0149] La figura 11 es un diagrama de flujo que ilustra una técnica de decodificación ejemplar de acuerdo con esta divulgación. Por ejemplo, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede recibir un elemento sintáctico que indica un tamaño de una subunidad de predicción (sub-PU) para la herencia de parámetros de movimiento (MPI) en una unidad de predicción de profundidad (PU de profundidad) (180). La PU de profundidad puede ser una o más sub-PU. Cada sub-PU puede tener un tamaño igual al tamaño indicado por el elemento sintáctico. Además, la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado a la respectiva sub-PU. Al recibir un valor de índice que indica una modalidad de MPI de sub-PU, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede heredar adicionalmente la MPI para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en bloques de textura correspondientes cosituados con cada una de las sub-PU (182). En algunos ejemplos, el elemento sintáctico tiene un rango de 0 a 3 inclusive.
[0150] Si el valor del elemento sintáctico es mayor o igual que 1, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede decodificar cada bloque de textura en una unidad de acceso, y realizar compresión de movimiento con respecto a un bloque de tamaño 16x16 en cada bloque de textura. La unidad de acceso incluye el bloque de profundidad. En algunos ejemplos, cada bloque de textura en la unidad de acceso puede codificarse independientemente con respecto a un correspondiente bloque de profundidad cosituado en la unidad de acceso. Cada bloque de textura puede decodificarse antes de decodificar cualquiera de los bloques de profundidad en la unidad de acceso, y la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede realizar compresión de movimiento después de decodificar cada uno de los bloques de profundidad en la unidad de acceso.
[0151] Si el valor del elemento sintáctico es igual a 0, entonces la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede determinar que el tamaño de la MPI es 8x8. En dichos ejemplos, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede determinar si el bloque de textura cosituado contiene dos PU. En respuesta a la determinación de que el bloque de textura cosituado contiene dos PU, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede determinar si un tamaño de cada PU en el bloque de textura cosituado es 4x8 o 8x4, dividir la sub-PU en dos unidades más pequeñas, tales que el tamaño de cada partición sea igual al tamaño de cada PU en el bloque de textura cosituado, y compensar el movimiento unidireccional en cada una de las dos unidades más pequeñas. Además, la decodificación de la sub-PU puede incluir que la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 herede dos vectores de movimiento correspondientes a ListaImgRefO.
[0152] Si bien los ejemplos anteriores describen las consecuencias del elemento sintáctico que tiene valores particulares, estas consecuencias pueden realizarse para otros valores del elemento sintáctico. Por ejemplo, si el valor del elemento sintáctico es igual a 0, entonces la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede decodificar cada bloque de textura en una unidad de acceso y realizar compresión de movimiento con respecto a un bloque de tamaño 16x16 en cada bloque de textura. Además, si el valor del elemento sintáctico es mayor o igual a 1, entonces la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede determinar que el tamaño de la MPI es 8x8. Además, aunque estas técnicas se describen con respecto a bloques de tamaños particulares (es decir, bloques de tamaño 16x16 u 8x8), en otros ejemplos, los bloques pueden tener diferentes tamaños, tales como 4x4, 32x32 o 4x8, entre otros tamaños posibles.
[0153] En algunos ejemplos, el elemento sintáctico se puede recibir en un conjunto de parámetros de secuencia (SPS). En estos ejemplos, el bloque de profundidad puede incluir una pluralidad de PU de profundidad y puede ser uno entre una pluralidad de bloques de profundidad en una unidad de acceso. El elemento sintáctico puede indicar adicionalmente el tamaño de la MPI para cada sub-PU de cada PU de profundidad en cada bloque de profundidad respectivo en la unidad de acceso. En tal caso, heredar la MPI para cada sub-PU puede incluir que la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 determine que la PU de profundidad está en un primer conjunto de PU de profundidad, donde cada PU de profundidad en el primer conjunto de PU de profundidad tiene un tamaño que es menor que un cuadrado de una suma de 3 y el valor del elemento sintáctico después de un desplazamiento a la izquierda de 1, bit a bit, y herede la MPI para cada sub-PU en la PU de profundidad, basada, al menos en parte, en bloques de textura correspondientes cosituados con cada una de las sub-PU. En algunos ejemplos, la PU de profundidad puede ser una primera PU de profundidad. En estos ejemplos, la unidad de procesamiento de profundidad 165 del decodificador de vídeo 30 puede determinar además que una segunda PU de profundidad está en un segundo conjunto de PU de profundidad, donde cada PU de profundidad en el segundo conjunto de PU de profundidad tiene un tamaño mayor o igual que el cuadrado de la suma de 3 y el valor del elemento sintáctico después de un desplazamiento a la izquierda de 1, bit a bit de 1, y heredar la MPI para cada sub-PU de la segunda PU de profundidad, no basada en el tamaño del MPI.
[0154] En uno o más ejemplos, las funciones descritas en el presente documento pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones, como una o más instrucciones o código, pueden almacenarse en, o transmitirse por, un medio legible por ordenador y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que correspondan a un medio tangible tal como medios de almacenamiento de datos o medios de comunicación que incluyan cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) medios de almacenamiento tangibles legibles por ordenador que sean no transitorios o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0155] A modo de ejemplo, y no de manera limitativa, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda usarse para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe debidamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El término disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente emiten datos magnéticamente, mientras que otros discos emiten datos ópticamente con láseres. Las combinaciones de lo anterior también deberían incluirse dentro del alcance de los medios legibles por ordenador.
[0156] Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), formaciones de compuertas programables in situ (FPGA) u otros circuitos lógicos equivalentes, integrados o discretos. En consecuencia, el término «procesador», como se usa en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de módulos de hardware y/o software dedicados, configurados para la codificación y la decodificación, o incorporados en un códec combinado. Asimismo, las técnicas podrían implementarse por completo en uno o más circuitos o elementos lógicos.
[0157] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un equipo manual inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, incluyendo uno o más procesadores, como se ha descrito anteriormente, juntamente con software y/o firmware adecuados.
[0158] Se han descrito varios ejemplos de la divulgación. Se contempla cualquier combinación de los sistemas, operaciones o funciones descritos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (15)

  1. REIVINDICACIONES
    i . Un procedimiento de decodificación de un bloque de profundidad, el procedimiento que comprende:
    recibir un elemento sintáctico que indica un tamaño de una subunidad de predicción, sub-PU, para la herencia de parámetros de movimiento, MPI, en una unidad de predicción de profundidad, PU de profundidad, en donde la PU de profundidad comprende una o más sub-PU, en donde cada sub -PU tiene un tamaño igual al tamaño indicado por el elemento sintáctico y en donde se puede heredar información de movimiento distinta para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva; y
    al recibir un valor de índice que indica que un candidato a fusión u omisión de MPI, basado en una modalidad de MPI de sub-PU, puede utilizarse para la predicción de movimiento, heredar información de movimiento para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en los correspondientes bloques de textura cosituados con cada una de las sub-PU.
  2. 2. Un procedimiento de codificación de un bloque de profundidad, el procedimiento que comprende:
    determinar un tamaño de una subunidad de predicción, sub-PU, para la herencia de parámetros de movimiento, MPI, en una unidad de predicción de profundidad, PU de profundidad, donde la PU de profundidad comprende una o más sub-PU, en donde cada sub-PU tiene igual tamaño y en donde la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva;
    codificar cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU; y
    generar un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad.
  3. 3. El procedimiento de la reivindicación 1 o 2, en el que el elemento sintáctico se recibe en un conjunto de parámetros de secuencia, SPS.
  4. 4. El procedimiento de la reivindicación 3, en el que el bloque de profundidad incluye una pluralidad de PU de profundidad, en el que el bloque de profundidad es uno entre una pluralidad de bloques de profundidad en una unidad de acceso y en el que el elemento sintáctico indica además un tamaño de MPI para cada sub-PU de cada PU de profundidad en cada bloque de profundidad respectivo en la unidad de acceso.
  5. 5. El procedimiento de la reivindicación 4 cuando depende de la reivindicación 1, en el que la herencia de la información de movimiento para cada sub-PU, basándose, al menos en parte, en los bloques de textura correspondientes cosituados con cada una de las sub-PU comprende:
    determinar que la PU de profundidad está en un primer conjunto de PU de profundidad, en donde cada PU de profundidad en el primer conjunto de PU de profundidad tiene un tamaño que es menor que un cuadrado de una suma de 3 y el valor del elemento sintáctico después de un desplazamiento de 1, bit a bit, a la izquierda; y
    heredar información de movimiento para cada sub-PU en la PU de profundidad basándose, al menos en parte, en los bloques de textura correspondientes cosituados con cada uno de los sub-PU.
  6. 6. El procedimiento de la reivindicación 4 cuando depende de la reivindicación 2, en el que la codificación de la sub-PU basada, al menos en parte, en la MPI correspondiente a los bloques de textura cosituados con cada una de las sub-PU comprende:
    determinar que la PU de profundidad está en un primer conjunto de PU de profundidad, en donde cada PU de profundidad en el primer conjunto de PU de profundidad tiene un tamaño que es menor que un cuadrado de una suma de 3 y el valor del elemento sintáctico después de un desplazamiento de 1, bit a bit, a la izquierda; y
    codificar cada sub-PU en la PU de profundidad basándose, al menos en parte, en la MPI correspondiente a los bloques de textura cosituados con cada una de las sub-PU.
  7. 7. El procedimiento de la reivindicación 5 o 6, en el que la PU de profundidad es una primera PU de profundidad, el procedimiento que comprende además:
    determinar que una segunda PU de profundidad está en un segundo conjunto de PU de profundidad, en donde cada PU de profundidad en el segundo conjunto de PU de profundidad tiene un tamaño que es mayor o igual que el cuadrado de la suma de 3 y el valor del elemento sintáctico después de un desplazamiento de 1 a la izquierda, bit a bit; y
    respectivamente heredar la MPI para cada sub-PU de la segunda PU de profundidad, no basándose en el tamaño de la MPI, o codificar cada sub-PU de la segunda PU de profundidad usando la MPI, no basándose en el tamaño de la MPI.
  8. 8. El procedimiento de la reivindicación 1 o 2, en el que el valor del elemento sintáctico es mayor o igual a 1, el procedimiento que comprende además:
    decodificar o codificar respectivamente cada bloque de textura en una unidad de acceso, en donde la unidad de acceso incluye el bloque de profundidad; y
    realizar compresión de movimiento con respecto a un bloque de tamaño 16x16 en cada bloque de textura.
  9. 9. El procedimiento de la reivindicación 8 cuando depende de la reivindicación 1, en el que cada bloque de textura en la unidad de acceso se codifica independientemente con respecto a un bloque de profundidad correspondiente cosituado en la unidad de acceso, en donde cada bloque de textura se decodifica antes de decodificar cualquiera de los bloques de profundidad en la unidad de acceso, y en donde la compresión de movimiento se realiza después de decodificar cada uno de los bloques de profundidad en la unidad de acceso.
  10. 10. El procedimiento de la reivindicación 1 o 2, en el que el elemento sintáctico tiene un rango de 0 a 3 inclusive y en el que, cuando el valor del elemento sintáctico es 0, el procedimiento comprende además determinar que el tamaño de la MPI es 8x8.
  11. 11. El procedimiento de la reivindicación 10, que comprende además:
    determinar si el bloque de textura cosituado contiene dos PU; y
    en respuesta a la determinación de que el bloque de textura cosituado contiene dos PU: determinar si un tamaño de cada PU en el bloque de textura cosituado es 4x8 u 8x4;
    dividir la sub-PU en dos unidades más pequeñas de modo que el tamaño de cada partición sea igual al tamaño de cada PU en el bloque de textura cosituado; y
    aplicar compensación de movimiento unidireccional en cada una de las dos unidades más pequeñas.
  12. 12. El procedimiento de la reivindicación 11, en el que decodificar la sub-PU comprende heredar dos vectores de movimiento correspondientes a la ListaImgRefO.
  13. 13. Un dispositivo para decodificar un bloque de profundidad, el dispositivo que comprende:
    una memoria configurada para almacenar datos asociados al bloque de profundidad; y
    uno o más procesadores configurados para:
    recibir un elemento sintáctico que indica un tamaño de una sub-unidad de predicción, sub-PU, para la herencia de parámetros de movimiento, MPI, en una unidad de predicción de profundidad, PU de profundidad, en donde la PU de profundidad comprende una o más sub-PU, en donde cada sub -PU tiene un tamaño igual al tamaño indicado por el elemento sintáctico y en donde se puede heredar información de movimiento distinta para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva; y
    al recibir un valor de índice que indica que un candidato a fusión u omisión de MPI, basado en una modalidad de MPI de sub-PU, puede utilizarse para la predicción de movimiento, heredar información de movimiento para cada una de las sub-PU del bloque de profundidad, basándose, al menos en parte, en los correspondientes bloques de textura cosituados con cada una de las sub-PU.
  14. 14. Un dispositivo para codificar un bloque de profundidad, el dispositivo que comprende:
    una memoria configurada para almacenar datos asociados al bloque de profundidad; y
    uno o más procesadores configurados para:
    determinar un tamaño de una subunidad de predicción, sub-PU, para la herencia de parámetros de movimiento, MPI, en una unidad de predicción de profundidad, PU de profundidad, en donde la PU de profundidad comprende una o más sub-PU, en donde cada sub-PU tiene igual tamaño, y en donde la información de movimiento distinta se puede heredar para cada sub-PU desde un bloque de textura cosituado con la sub-PU respectiva;
    codificar cada sub-PU del bloque de profundidad basándose, al menos en parte, en la MPI correspondiente a bloques de textura cosituados con cada una de las sub-PU; y
    generar un elemento sintáctico que indica el tamaño de cada sub-PU para la MPI en la PU de profundidad.
  15. 15. Un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando son ejecutadas por una unidad de procesamiento, llevan a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 13.
ES14821434T 2013-12-13 2014-12-12 Control de la herencia de parámetros de movimiento (MPI) de la subunidad de predicción (SUB-PU) en la HEVC tridimensional (3D) u otra codificación tridimensional Active ES2700281T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361916068P 2013-12-13 2013-12-13
US14/567,564 US9693077B2 (en) 2013-12-13 2014-12-11 Controlling sub prediction unit (sub-PU) motion parameter inheritance (MPI) in three dimensional (3D) HEVC or other 3D coding
PCT/US2014/070041 WO2015089407A1 (en) 2013-12-13 2014-12-12 Controlling sub prediction unit (sub-pu) motion parameter inheritance (mpi) in three dimensional (3d) hevc or other 3d coding

Publications (1)

Publication Number Publication Date
ES2700281T3 true ES2700281T3 (es) 2019-02-14

Family

ID=53370081

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14821434T Active ES2700281T3 (es) 2013-12-13 2014-12-12 Control de la herencia de parámetros de movimiento (MPI) de la subunidad de predicción (SUB-PU) en la HEVC tridimensional (3D) u otra codificación tridimensional

Country Status (10)

Country Link
US (1) US9693077B2 (es)
EP (1) EP3080989B1 (es)
JP (1) JP6559675B2 (es)
KR (1) KR102294260B1 (es)
CN (1) CN105794209B (es)
BR (1) BR112016013464B1 (es)
ES (1) ES2700281T3 (es)
HK (1) HK1222276A1 (es)
HU (1) HUE040325T2 (es)
WO (1) WO2015089407A1 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5893346B2 (ja) * 2011-11-07 2016-03-23 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
WO2015012622A1 (ko) * 2013-07-24 2015-01-29 삼성전자 주식회사 움직임 벡터 결정 방법 및 그 장치
US11032568B2 (en) 2013-11-27 2021-06-08 Hfi Innovation Inc. Method of video coding using prediction based on intra picture block copy
JP2017520994A (ja) * 2014-06-20 2017-07-27 寰發股▲ふん▼有限公司HFI Innovation Inc. 3dおよびマルチビュービデオコーディングのサブpu構文シグナリングおよび照明補償方法
WO2017008263A1 (en) 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
WO2017069505A1 (ko) * 2015-10-19 2017-04-27 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
US20180109814A1 (en) * 2016-10-14 2018-04-19 Mediatek Inc. Method And Apparatus Of Coding Unit Information Inheritance
CN106878753B (zh) * 2017-02-16 2020-04-28 南京理工大学 一种使用纹理平滑信息的3d视频残差编码模式选择方法
WO2020040619A1 (ko) 2018-08-24 2020-02-27 삼성전자 주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
US11272201B2 (en) * 2019-01-03 2022-03-08 Qualcomm Incorporated Block size restriction for illumination compensation
CN109756719B (zh) * 2019-01-28 2020-06-26 华侨大学 基于cu划分贝叶斯决策的3d-hevc帧间快速方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3628810B2 (ja) 1996-06-28 2005-03-16 三菱電機株式会社 画像符号化装置
US7929610B2 (en) * 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
CA2366325A1 (en) * 2001-12-27 2003-06-27 Todd Howley Method of forming turbine blade root
CN101123723B (zh) * 2006-08-11 2011-01-12 北京大学 基于图形处理器的数字视频解码方法
WO2009112742A1 (fr) * 2008-02-21 2009-09-17 France Telecom Codage et decodage d'une image ou d'une sequence d'images decoupees en blocs de pixels
US8488678B2 (en) 2008-04-01 2013-07-16 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method
US9066107B2 (en) 2009-01-28 2015-06-23 France Telecom Methods for encoding and decoding sequence implementing a motion compensation, corresponding encoding and decoding devices, signal and computer programs
JPWO2010131537A1 (ja) 2009-05-11 2012-11-01 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、方法およびプログラム、並びに、動画像復号化装置、方法およびプログラム
CN101923542A (zh) * 2009-06-12 2010-12-22 如临其境创意(上海)有限公司 一种用于网络多维空间数据表达的MDDRQ-Tree索引结构
US9137544B2 (en) 2010-11-29 2015-09-15 Mediatek Inc. Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes
CN102186070B (zh) * 2011-04-20 2013-06-05 北京工业大学 分层结构预判的快速视频编码方法
US9525861B2 (en) * 2012-03-14 2016-12-20 Qualcomm Incorporated Disparity vector prediction in video coding
KR102028123B1 (ko) * 2012-04-23 2019-10-04 삼성전자주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
US9716899B2 (en) 2013-06-27 2017-07-25 Qualcomm Incorporated Depth oriented inter-view motion vector prediction
US9948915B2 (en) 2013-07-24 2018-04-17 Qualcomm Incorporated Sub-PU motion prediction for texture and depth coding

Also Published As

Publication number Publication date
US20150172716A1 (en) 2015-06-18
BR112016013464A2 (pt) 2017-08-08
EP3080989B1 (en) 2018-09-05
US9693077B2 (en) 2017-06-27
EP3080989A1 (en) 2016-10-19
CN105794209B (zh) 2019-01-01
JP6559675B2 (ja) 2019-08-14
HK1222276A1 (zh) 2017-06-23
CN105794209A (zh) 2016-07-20
HUE040325T2 (hu) 2019-02-28
KR20160096649A (ko) 2016-08-16
WO2015089407A1 (en) 2015-06-18
BR112016013464B1 (pt) 2023-05-16
JP2017503403A (ja) 2017-01-26
KR102294260B1 (ko) 2021-08-25

Similar Documents

Publication Publication Date Title
ES2700281T3 (es) Control de la herencia de parámetros de movimiento (MPI) de la subunidad de predicción (SUB-PU) en la HEVC tridimensional (3D) u otra codificación tridimensional
ES2841312T3 (es) Predicción de vectores de movimiento para modelos de movimiento afines en codificación de vídeo
ES2954447T3 (es) Predicción de vectores de movimiento
US10477238B2 (en) Sub-PU based bi-directional motion compensation in video coding
ES2755573T3 (es) Predicción de vector de movimiento temporal avanzada basada en unidades de subpredicción
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
ES2742026T3 (es) Determinación de vector de movimiento para codificación de vídeo
EP3047649B1 (en) Combined bi-predictive merging candidates for 3d video coding
WO2018126163A1 (en) Motion vector generation for affine motion model for video coding
BR112020006588A2 (pt) predição afim em codificação de vídeo
KR101958055B1 (ko) 비디오 코딩에서의 디스패리티 벡터 리파인먼트
KR20190041480A (ko) 후보 리스트들의 구성을 위한 지오메트리 기반의 우선순위
ES2704885T3 (es) Derivación del vector de disparidad de bloque vecino en codificación de vídeo 3D
KR20180018535A (ko) 공간적 및/또는 시간적 모션 정보를 사용하는 서브-예측 유닛 모션 벡터 예측
KR20150139953A (ko) 백워드 뷰 합성 예측
BR112016000866B1 (pt) Processamento de compensação de iluminação para codificação de vídeo
US10009621B2 (en) Advanced depth inter coding based on disparity of depth blocks
KR20160016803A (ko) 이웃-기반 디스패리티 벡터 유도에 의한 3d 비디오 코딩을 위한 병렬 유도된 디스패리티 벡터
JP2016530784A (ja) 3d−hevcのための簡素化された高度動き予測
WO2015013643A1 (en) Use of a depth condition in 3dv codec
WO2015006883A1 (en) Motion vector inheritance techniques for depth coding