ES2620432T3 - Compensación de luminancia adaptativa en la codificación de vídeo tridimensional - Google Patents

Compensación de luminancia adaptativa en la codificación de vídeo tridimensional Download PDF

Info

Publication number
ES2620432T3
ES2620432T3 ES13802489.8T ES13802489T ES2620432T3 ES 2620432 T3 ES2620432 T3 ES 2620432T3 ES 13802489 T ES13802489 T ES 13802489T ES 2620432 T3 ES2620432 T3 ES 2620432T3
Authority
ES
Spain
Prior art keywords
block
video
partition
luma samples
samples
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
ES13802489.8T
Other languages
English (en)
Inventor
Ying Chen
Jewon KANG
Li Zhang
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 ES2620432T3 publication Critical patent/ES2620432T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Un procedimiento de decodificación de datos de vídeo, procedimiento que comprende: obtener (160) las ponderaciones de predicción, en base a un tamaño de una partición de bloques de vídeo, y no en base a un tamaño de transformación para la partición de bloques de vídeo, para la compensación de la iluminación de las muestras de luma de la partición de bloques de vídeo, una vez para la partición de bloques de vídeo, de tal manera que la partición de bloques de vídeo tenga un conjunto común de ponderaciones de predicción entre las muestras de luma para realizar la compensación de la iluminación de las muestras de luma; calcular (162) un bloque predicho para la partición de bloques de vídeo utilizando las ponderaciones de predicción y utilizando la compensación de la iluminación; y decodificar (164) la partición de bloques de vídeo usando el bloque predicho.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Compensacion de luminancia adaptativa en la codificacion de video tridimensional CAMPO TECNICO
Esta divulgacion se refiere a la codificacion de video y, mas en particular, a la codificacion de video tridimensional (3DVC).
ANTECEDENTES
Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusion directa digital, sistemas de difusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados “telefonos inteligentes", dispositivos de videoconferencia, dispositivos de transmision por flujo de video y similares. Los dispositivos de video digital implementan tecnicas de compresion de video, tales como las descritas en las normas definidas por MPEG-2, MpEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificacion Avanzada de Video (AVC), la norma de Codificacion de Video de Alta Eficacia (HEVC) actualmente en desarrollo y las extensiones de tales normas. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar y/o almacenar informacion de video digital mas eficazmente, implementando dichas tecnicas de compresion de video.
Las tecnicas de compresion de video llevan a cabo la prediccion espacial (intra-imagen) y/o la prediccion temporal (entre imagenes) para reducir o eliminar la redundancia intrinseca en las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (por ejemplo, una imagen o una parte de una imagen) puede ser dividida en bloques de video, que tambien pueden ser denominados bloques arbolados, unidades de codificacion (CU) y/o nodos de codificacion. Los bloques de video en un fragmento intra-codificado (I) de una imagen son codificados usando la prediccion espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen. Los bloques de video en un fragmento inter-codificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen, o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia.
La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de pixeles entre el bloque original a codificar y el bloque predictivo. Un bloque inter-codificado se codifica de acuerdo con un vector de movimiento que indica la ubicacion de un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica de acuerdo con una modalidad de intra-codificacion y los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pixeles a un dominio de transformacion, dando como resultado coeficientes de transformacion residuales, los cuales pueden cuantizarse posteriormente. Los coeficientes de transformacion cuantizados, inicialmente dispuestos en una formacion bidimensional, pueden explorarse con el fin de producir un vector unidimensional de coeficientes de transformacion, y puede aplicarse la codificacion por entropia para lograr aun mas compresion.
La propuesta JCT3V-B0031 por Mikhail Mishurovskiy et al describe "3D-CE2.a da como resultado la codificacion entre vistas con compensacion de luminancia adaptativa", del 12 de octubre de 2012.
RESUMEN
En general, esta divulgacion describe tecnicas para la realizacion de la codificacion de video tridimensional, utilizando una extension tridimensional de la norma H.264/Codificacion de Video Avanzada (AVC), conocida como 3D-AVC. La extension tridimensional define una tecnologia de codificacion de video para la codificacion de multiples vistas de datos de video, tales como vistas de ojo izquierdo y derecho con los datos de profundidad. Cada vista puede corresponder a una perspectiva, o angulo, diferente, donde fueron capturados los datos de video correspondientes de una escena comun. En el contexto de la norma 3D H.264/AVC, cada vista puede contener una vista de textura y una vista de profundidad. Una representacion codificada de una vista en un caso momentaneo es un componente de vista. Un componente de vista puede contener un componente de vista en profundidad y un componente de vista en textura.
En la norma 3D-AVC, un codificador de video puede realizar una tecnica conocida como "compensacion de la iluminacion". Las tecnicas de compensacion de la iluminacion ajustan o normalizan los valores de muestra de iluminacion o “luma”, para un bloque actual en base a las diferencias de las muestras de luma codificadas previamente de la vista actual y las muestras de luma de otra vista. Al normalizar los valores de luma entre las diferentes vistas, un codificador de video puede predecir mejor los valores de las muestras similares o de luma en comparacion con los valores de luma no compensados. Sin embargo, las tecnicas actuales para realizar la
5
10
15
20
25
30
35
40
45
50
55
60
65
compensacion de la iluminacion en la norma 3D-AVC pueden incurrir en alta complejidad de calculo y/o pueden ser incompatibles con las implementaciones existentes de decodificadores de la norma H.264/AVC en algunos casos. Las tecnicas de esta divulgacion se refieren en general a las tecnicas para reducir la complejidad de calculo y mejorar la compatibilidad de un codificador de video configurado para realizar la compensacion de la iluminacion en la norma 3D-AVC.
La invencion se define en las reivindicaciones a las que se dirige ahora la referencia.
Los detalles de uno o mas aspectos de la divulgacion se exponen en los dibujos adjuntos y la descripcion a continuacion. Otras caracteristicas, objetos y ventajas de las tecnicas descritas en esta divulgacion seran evidentes a partir de la descripcion y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
La FIG. 1 es un diagrama de bloques que ilustra un sistema a modo de ejemplo de codificacion y decodificacion de video 10, que puede configurarse para realizar la compensacion de iluminacion adaptativa, de acuerdo con las tecnicas de esta divulgacion.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de video 20 a modo de ejemplo, que puede estar configurado para realizar la compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion.
La FIG. 3 es un diagrama de bloques que ilustra un decodificador de video 30 a modo de ejemplo, que puede configurarse para realizar la compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion.
La FIG. 4 es un diagrama conceptual que ilustra un patron de prediccion de la norma 3D-AVC a modo de ejemplo.
La FIG. 5 es un diagrama conceptual que ilustra la relacion entre un bloque de una trama de referencia predicha entre vistas, y un bloque actual de una trama decodificada.
Las FIGs. 6A a 6D son diagramas conceptuales que ilustran ejemplos de tecnicas de compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion.
Las FIGs. 7A a 7B son diagramas conceptuales que ilustran ejemplos de tecnicas de compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion.
La FIG. 8 es un diagrama de flujo que ilustra una operacion a modo de ejemplo de un dispositivo de codificacion de video configurado para realizar tecnicas de compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion.
DESCRIPCION DETALLADA
De acuerdo con ciertos sistemas de codificacion de video, la estimacion de movimiento y la compensacion de movimiento se pueden utilizar para reducir la redundancia temporal en una secuencia de video, con el fin de lograr la compresion de datos. En este caso, puede generarse un vector de movimiento que identifica un bloque predictivo de datos de video, por ejemplo, un bloque de otra imagen o fragmento de video, que se puede utilizar para predecir los valores del bloque de video actual que se esta codificando. Los valores del bloque de video predictivo se restan de los valores del bloque de video actual para producir un bloque de datos residuales. La informacion de movimiento (por ejemplo, un vector de movimiento, indices de vectores de movimiento, direcciones de prediccion u otra informacion) se comunica desde un codificador de video a un decodificador de video, junto con los datos residuales. El decodificador puede localizar el mismo bloque predictivo (en base al vector de movimiento) y reconstruir el bloque de video codificado mediante la combinacion de los datos residuales con los datos del bloque predictivo.
La norma tridimensional H.264/AVC (3D-AVC) es un proceso de codificacion de video para la codificacion de varias vistas de datos de video, para producir un efecto tridimensional, por ejemplo, usando una vista del ojo izquierdo y una vista del ojo derecho. En general, cada vista se corresponde con una perspectiva, o angulo, diferente, donde fueron capturados (o generados) los datos de video correspondientes de una escena comun. Una extension 3D-AVC a la norma ITU-T H.264/AVC esta actualmente en fase de desarrollo. Un borrador de trabajo de una enmienda de la norma H.264/AVC, para anadir la extension 3DVC, se describe en "3D-AVC Texto Borrador 5", ISO/IEC/JTC1/SC29/WG11/JCT3V-C1002, Ginebra, Suiza, con fecha de enero de 2013 ( "3D-AVC WD 5"). La extension 3D-AVC define tecnicas para la codificacion de vistas, para prestar soporte a la visualizacion de datos de video tridimensional.
Por ejemplo, en el video tridimensional, dos vistas (por ejemplo, las vistas de los ojos izquierdo y derecho de un
5
10
15
20
25
30
35
40
45
50
55
60
65
observador humano) pueden exhibirse simultaneamente, o casi simultaneamente, utilizando diferentes polarizaciones de luz, y un espectador pueden usar gafas polarizadas pasivas de tal manera que cada uno de los ojos del espectador reciba una respectiva de las vistas. De forma alternativa, el espectador puede llevar gafas activas que obturan cada ojo de forma independiente, y una pantalla puede alternar rapidamente entre las imagenes de cada ojo de forma sincronizada con las gafas.
Si bien cada vista (por ejemplo, las vistas de los ojos izquierdo y derecho) puede codificarse de forma individual, en 3D-AVC, una de las vistas se reconstruye a partir de la otra vista usando un componente de profundidad de una vista de referencia. Para ilustrar, un mapa de profundidad de una imagen particular de una vista (donde esta imagen particular de una vista puede ser denominada un "componente de vista" de la vista) puede calcularse como una diferencia entre la vista del ojo izquierdo y la vista del ojo derecho. El codificador puede codificar la vista del ojo izquierdo, por ejemplo, como un denominado "componente de textura" del componente de vista y el mapa de profundidad puede ser codificado como un denominado "componente de profundidad" del componente de vista.
El decodificador puede entonces decodificar el componente de textura del componente de vista y el componente de profundidad del componente de vista, y reconstruir la vista del ojo derecho a partir del componente de textura (que representa la vista del ojo izquierdo) utilizando el componente de profundidad. Mediante la codificacion solamente de una vista y un mapa de profundidad correspondiente de esta manera, 3D-AVC puede codificar mas eficazmente la vista, tanto del ojo izquierdo como del ojo derecho, en comparacion con la codificacion, tanto de la vista del ojo izquierdo como de la vista del ojo derecho, independientemente como vistas por separado de los datos de 3D-AVC.
3D-AVC tambien aprovecha las dependencias entre componentes, entre los componentes de textura y de profundidad de video tridimensional. Para aprovechar estas interdependencias, 3D-AVC introduce la codificacion conjunta de datos de textura y profundidad. En 3D-AVC, la vista de base esta asociada con un mapa de profundidad, que indica la profundidad de las diversas regiones de una trama de datos de video. Para aprovechar las dependencias entre componentes, el componente de profundidad de la vista de base se codifica con informacion extraida de la vista de la textura codificada. Por otra parte, el orden de codificacion de los componentes de vista de la textura y de los componentes de vista de profundidad es flexible. Las vistas dependientes de la textura se codifican con informacion disponible de la profundidad asociada, que se codifica antes de la textura en una configuracion de codificacion de profundidad en primer lugar, mientras que las vistas de textura se codifican antes de la profundidad en una configuracion de codificacion de textura en primer lugar.
La norma 3D-AVC se basa en la norma de codificacion de video H.264/AVC, y un codificador de video compatible con H.264/AVC puede ser capaz de codificar una vista base (por ejemplo, vistas que corresponden a un ojo) de un flujo de video de 3D-AVC, pero puede no ser capaz de codificar otras vistas o componentes de profundidad de los datos de video. Como parte del apoyo a la norma H.264/AVC subyacente, un codificador de video compatible con 3D-AVC puede llevar a cabo la inter-prediccion para predecir los componentes de luma (brillo) y croma (color) de un bloque de datos de video. Durante la inter-prediccion, el codificador de video determina un bloque predictivo basado en un bloque de referencia codificado previamente a partir de una trama diferente que el bloque actual.
3D-AVC extiende el concepto de inter-prediccion mas alla al permitir la prediccion entre vistas, en la que un codificador de video predice valores de luma o de croma para el bloque actual, en base a los valores de un bloque de referencia, a partir de un bloque previo de una vista diferente. Sin embargo, debido a una serie de factores diferentes, los valores de luminancia (luma) de los bloques correspondientes o similares pueden variar entre las diferentes vistas. Cuando se realiza la prediccion entre vistas, un codificador de video de 3D-AVC (por ejemplo, un codificador o un decodificador) puede realizar la compensacion de luminancia con el fin de ajustarse a esta variacion de luminancia entre vistas. El proceso de realizar la compensacion de luminancia puede ser denominado "compensacion de luminancia adaptativa" (ALC), y tambien denominado "compensacion de la iluminacion".
Al realizar la ALC, un codificador de video de 3D-AVC determina muestras de luma de los bloques contiguos superior e izquierdo en la misma trama que el bloque actual, y muestras de luma de los bloques contiguos superior e izquierdo en relacion con el bloque de referencia desde otra vista. El bloque de referencia puede ser identificado por un vector de disparidad para el bloque actual. El codificador de video compara las muestras de luma contiguas con las muestras de luma del bloque actual, y si los valores de las muestras varian en demasia, ajusta las muestras de luma predictivas del bloque de referencia en base a una diferencia ponderada entre los conjuntos de muestras contiguas y las muestras de luma predictivas para el bloque actual.
En 3D-AVC, al igual que con la norma H.264/AVC, una imagen de video se divide en macro-bloques. Cada macro- bloque puede ser adicionalmente dividido en particiones de macro-bloque, y esas particiones de macro-bloque se pueden dividir adicionalmente en sub-particiones. Al realizar la ALC, un codificador de video compatible puede llevar a cabo la compensacion de movimiento para cada sub-particion de un macro-bloque, para determinar las muestras contiguas, izquierda y superior, de luma entre vistas para la ALC. En algunos casos, las sub-particiones de macro- bloque y las particiones de macro-bloque pueden tener el mismo vector exacto de movimiento, lo cual indica un bloque de referencia predictivo entre vistas de las muestras de luminancia. La realizacion de la compensacion de movimiento varias veces, incluso cuando cada sub-particion tiene el mismo vector de movimiento, puede ser costosa en terminos de calculo. Ademas, los tamanos de bloque para llevar a cabo la compensacion de movimiento
5
10
15
20
25
30
35
40
45
50
55
60
65
conjuntamente con la ALC pueden ser incompatibles con las implementaciones de decodificadores de video existentes de H.264/AVC, para llevar a cabo la compensacion de movimiento.
Las tecnicas a modo de ejemplo de esta divulgacion pueden utilizarse para reducir la complejidad de calculo para realizar la compensacion de la iluminacion. Por ejemplo, de acuerdo con las tecnicas de esta divulgacion, un codificador de video (por ejemplo, un codificador de video o un decodificador de video) puede obtener un unico conjunto de ponderaciones en base a los mismos conjuntos de muestras contiguas, izquierdas y superiores, de luma entre vistas, para cada particion o sub-particion de un macro-bloque, y utilizar el mismo conjunto de ponderaciones al realizar la ALC en una particion de macro-bloque o una sub-particion. En algunos ejemplos, un codificador de video tambien puede estar configurado para reducir o redondear de la precision del vector de movimiento que indica la posicion del bloque de referencia entre vistas, en relacion con el bloque actual, con el fin de reducir la complejidad de calculo de la realizacion de la compensacion de movimiento en un sub-pel durante la ALC. En algunos otros ejemplos, un codificador de video de acuerdo con las tecnicas de esta divulgacion tambien puede estar configurado para seleccionar las regiones de muestra contiguas, superior y/o izquierda, de luma que tengan tamanos reducidos o diferentes de muestras de luma al realizar la ALC.
La siguiente descripcion deberia entenderse dentro del contexto de 3D-AVC, donde una referencia a 3D-AVC se entiende que hace referencia a H.264/AVC. Es decir, dado que la 3D-AVC es una extension para H.264, y que 3D- AVC es una extension adicional de H.264/AVC, la 3D-AVC incorpora o, de otro modo, puede considerarse que "hereda", todos los aspectos de H.264/AVC. En otras palabras, en algunos ejemplos, las tecnicas pueden proveer la generacion de un flujo de bits de 3D-AVC que sea retro-compatible con la norma H.264/AVC (o, en otras palabras, capaz de ser decodificado por un decodificador de video que no de soporte a 3D-AVC pero que si de soporte a H.264/AVC). Si bien cada una de las siguientes tecnicas se describe en el contexto de 3D-AVC, estas tecnicas pueden extenderse en algunos casos a otras formas de codificacion de datos de video tridimensionales que tienen tanto componentes de vista de textura como componentes de vista de profundidad. Por ejemplo, las tecnicas de esta divulgacion pueden ser aplicadas en el contexto de las extensiones tridimensionales a otras normas de codificacion de video, tales como la norma de codificacion de video de alta eficacia (HEVC), por ejemplo, 3D-HEVC.
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion y decodificacion de video 10 a modo de ejemplo, que puede configurarse para realizar la compensacion de iluminacion adaptativa de acuerdo con las tecnicas de esta divulgacion. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que proporciona datos de video codificados, a decodificar en un momento posterior por parte de un dispositivo de destino 14. En particular, el dispositivo de origen 12 proporciona los datos de video al dispositivo de destino 14 a traves de un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portatiles), ordenadores de tableta, ordenadores de pizarra, decodificadores, equipos telefonicos de mano tales como los denominados telefonos “inteligentes”, los denominados paneles “inteligentes”, televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, un dispositivo de flujos de transmision de video o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicacion inalambrica.
El dispositivo de destino 14 puede recibir los datos de video codificados que se van a decodificar, mediante el medio legible por ordenador 16. El medio legible por ordenador 16 puede comprender cualquier tipo de medio o dispositivo capaz de transferir los datos de video codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el medio legible por ordenador 16 puede comprender un medio de comunicacion para permitir al dispositivo de origen 12 transmitir datos de video codificados directamente al dispositivo de destino 14 en tiempo real, o casi tiempo real.
Los datos de video codificados pueden ser modulados de acuerdo con una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y transmitidos al dispositivo de destino 14. El medio de comunicacion puede comprender cualquier medio de comunicacion inalambrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o mas lineas de transmision fisica. El medio de comunicacion puede formar parte de una red basada en paquetes, tal como una red de area local, una red de area extensa o una red global tal como Internet. El medio de comunicacion puede incluir routers, conmutadores, estaciones base o cualquier otro equipo que pueda ser util para facilitar la comunicacion desde el dispositivo de origen 12 al dispositivo de destino 14.
En algunos ejemplos, pueden emitirse datos codificados desde el transmisor 24 del dispositivo de origen 24 hasta un dispositivo de almacenamiento. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento por medio del receptor 26 del dispositivo de destino 14. El dispositivo de almacenamiento puede incluir cualquiera entre una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco rigido, discos Blu-ray, discos DVD, discos CD-ROM, memoria flash, memoria volatil o no volatil, u otros medios adecuados cualesquiera de almacenamiento digital, para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de ficheros o a otro dispositivo de almacenamiento intermedio que pueda almacenar los datos de video codificados, generados por el dispositivo de origen 12.
5
10
15
20
25
30
35
40
45
50
55
60
65
El dispositivo de destino 14 puede acceder a datos de video almacenados del dispositivo de almacenamiento, mediante flujo o descarga. El servidor de ficheros puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo de destino 14. Los servidores de ficheros a modo de ejemplo incluyen un servidor de Internet (por ejemplo, para una sede en la Red), un servidor del FTP, dispositivos de almacenamiento conectados a la red (NAS) o un controlador de disco local. El dispositivo de destino 14 puede acceder a los datos de video codificado a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion de Wi-Fi), una conexion por cable (por ejemplo, DSL, modem de cable, etc.), o una combinacion de ambos que sea adecuada para acceder a datos de video codificado, almacenados en un servidor de ficheros. La transmision de datos de video codificados desde el dispositivo de almacenamiento puede ser una transmision por flujo, una transmision de descarga o una combinacion de ambas.
Las tecnicas de esta divulgacion no estan limitadas necesariamente a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video, en soporte de cualquiera entre una diversidad de aplicaciones de multimedios, tales como difusiones de television por el aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones de video por flujo de Internet, tales como el flujo adaptativo dinamico sobre HTTP (DASH), video digital que se codifica en un medio de almacenamiento de datos, decodificacion de video digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para dar soporte a la transmision de video unidireccional o bidireccional, para prestar soporte a aplicaciones tales como el flujo de video, la reproduccion de video, la difusion de video y/o la videotelefonia.
En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye un origen de video 18, un codificador de video 20, una unidad de encapsulacion 21 y una interfaz de salida 22. El dispositivo de destino 14 incluye la interfaz de entrada 28, la unidad de desencapsulacion 29, un decodificador de video 30 y un dispositivo de visualizacion 32. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de video desde un origen de video externo 18, tal como una camara externa. Asimismo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualizacion externo, en lugar de incluir un dispositivo de visualizacion integrado 32.
El sistema ilustrado 10 de la figura 1 es simplemente un ejemplo. Las tecnicas de esta divulgacion relacionadas con la ALC pueden ser realizadas por cualquier dispositivo de codificacion y/o decodificacion de video digital. Aunque, por lo general, las tecnicas de esta divulgacion se llevan a cabo mediante un dispositivo de codificacion de video, las tecnicas tambien pueden llevarse a cabo mediante un codificador/decodificador de video, denominado tipicamente "CODEC". Ademas, las tecnicas de esta divulgacion tambien pueden llevarse a cabo mediante un preprocesador de video. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de tales dispositivos de codificacion, donde el dispositivo de origen 12 genera datos de video codificados para su transmision al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de manera esencialmente simetrica, de modo que cada uno de los dispositivos 12, 14 incluya componentes de codificacion y de decodificacion de video. Por lo tanto, el sistema 10 puede dar soporte a una transmision de video unidireccional o bidireccional entre los dispositivos de video 12, 14, por ejemplo, para el flujo continuo de video, la reproduccion de video, la radiodifusion de video o la videotelefonia.
El origen de video 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de video, tal como una camara de video, un archivo de video que contiene video grabado previamente y/o una interfaz de alimentacion de video para recibir video de un proveedor de contenido de video. Como una alternativa adicional, el origen de video 18 puede generar datos basados en graficos de ordenador como el video de origen, o una combinacion de video en directo, video archivado y video generado por ordenador. En algunos casos, si el origen de video 18 es una videocamara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados telefonos con camara o videotelefonos. Sin embargo, como se ha mencionado anteriormente, las tecnicas descritas en esta divulgacion pueden ser aplicables a la codificacion de video en general, y pueden aplicarse a aplicaciones inalambricas y/o cableadas. En cada caso, el video grabado, pregrabado o generado por ordenador puede ser codificado por el codificador de video 20. La informacion de video codificada puede ser entonces emitida por la interfaz de salida 22 en un medio legible por ordenador 16.
El origen de video 18, en general, puede proporcionar una pluralidad de vistas de una escena al codificador de video 20, tales como una vista del ojo izquierdo y del derecho, correspondiente a video tridimensional, para el codificador de video 20. El origen de video 18 tambien puede proporcionar informacion indicativa de las ubicaciones de perspectivas de la camara para las vistas.
El medio legible por ordenador 16 puede incluir medios transitorios, tales como una emision inalambrica o una transmision de red cableada, o medios de almacenamiento (es decir, medios de almacenamiento no transitorio), tales como un disco duro, una unidad de memoria flash, un disco compacto, un disco de video digital, un disco Blu- ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de video codificados desde el dispositivo de origen 12 y proporcionar los datos de video codificados al dispositivo de destino 14, por ejemplo, mediante transmision por red. De manera similar, un dispositivo informatico de una
5
10
15
20
25
30
35
40
45
50
55
60
65
instalacion de produccion de un medio, tal como una instalacion de grabacion de discos, puede recibir datos de video codificados desde el dispositivo de origen 12 y producir un disco que contiene los datos de video codificados. Por lo tanto, puede entenderse que el medio legible por ordenador 16 incluya uno o mas medios legibles por ordenador de varias formas, en varios ejemplos.
La interfaz de entrada 28 del dispositivo de destino 14 recibe informacion desde el medio legible por ordenador 16. La informacion del medio legible por ordenador 16 puede incluir informacion sintactica definida por el codificador de video 20, que tambien es usada por el decodificador de video 30, que incluye elementos sintacticos que describen caracteristicas y/o el procesamiento de bloques y otras unidades codificadas, por ejemplo, grupos de imagenes (GOP). La unidad de desencapsulacion 29 del dispositivo de destino 14 puede representar una unidad que desencapsula mensajes de SEI de un flujo de bits (o un subconjunto de un flujo de bits denominado un "punto de operacion" en el contexto de 3D-AVC). La unidad de desencapsulacion 29 puede realizar operaciones en un orden inverso a las realizadas por unidad de encapsulacion 29, para desencapsular datos del flujo de bits codificado y encapsulado, tales como mensajes de SEI. El dispositivo de visualizacion 32 muestra los datos de video decodificados a un usuario y puede comprender cualquiera entre una variedad de dispositivos de visualizacion, tales como un tubo de rayos catodicos (CRT), una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
El codificador de video 20 y el decodificador de video 30 pueden implementarse, cada uno, como cualquiera entre una amplia variedad de circuitos codificadores o decodificadores adecuados, segun corresponda, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especificos de la aplicacion (ASIC), formaciones de compuertas programables en el terreno (FPGA), circuitos de logica discreta, software, hardware, firmware o cualquier combinacion de los mismos. Cada uno, entre el codificador de video 20 y el decodificador de video 30, puede estar incluido en uno o mas codificadores o decodificadores, cada uno de los cuales puede estar integrado como parte de un codificador/decodificador (CODEC) de video combinado. Un dispositivo que incluye el codificador de video 20 y/o el decodificador de video 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicacion inalambrica, tal como un telefono celular.
Aunque no se muestra en la FIG. 1, en algunos aspectos, cada uno entre el codificador de video 20 y el decodificador de video 30 puede estar integrado con un codificador y decodificador de audio, y puede incluir unidades adecuadas de multiplexado y demultiplexado, u otro hardware y software, para gestionar la codificacion, tanto de audio como de video, en un flujo de datos comun o en flujos de datos diferentes. Si procede, las unidades de multiplexado y demultiplexado pueden ajustarse al protocolo de multiplexado ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
En el ejemplo mostrado en la FIG. 1, el sistema 10 incluye tambien el servidor / red de suministro de contenido 34 que tiene el router 36. En algunos ejemplos, el dispositivo de origen 12 puede comunicarse con el servidor / la red de suministro de contenido 34 mediante una diversidad de medios de transmision o de almacenamiento, inalambricos y/o cableados, como se ha descrito anteriormente. Ademas, aunque se muestra por separado en el ejemplo de la FIG. 1, en algunos ejemplos, el dispositivo de origen 12 y el servidor / la red de suministro de contenido 34 comprenden el mismo dispositivo. El servidor / la red de suministro de contenido 34 puede almacenar una o mas versiones de datos de video codificados (desde el codificador de video 20 del dispositivo de origen 12), y puede hacer que dichos datos de video codificados esten disponibles para el acceso por parte del dispositivo de destino 14 y el decodificador de video 30. En algunos ejemplos, el router 36 puede ser responsable de proporcionar datos de video codificados al dispositivo de destino 14 en un formato solicitado.
El codificador de video 20 y el decodificador de video 30 pueden funcionar de acuerdo con una norma de codificacion de video, tal como la norma ITU-T H.264, de forma alternativa denominada MPEG-4, Parte 10, Codificacion Avanzada de Video (AVC), o extensiones de dichas normas, incluyendo la extension MVC (codificacion de video de multiples vistas) y/o la extension 3D-AVC para la H.264. Sin embargo, las tecnicas de esta divulgacion no estan limitadas a ninguna norma de codificacion particular. Otros ejemplos de normas de codificacion de video incluyen la MPEG-2, la ITU-T H.263 y la HEVC (ITU-T H.265).
La norma ITU-T H.264/MPEG-4 (AVC) fue formulada por el Grupo de Expertos en Codificacion de Video de la UIT-T (VCEG), junto el Grupo de Expertos en Peliculas de ISO/IEC (MPEG), como el producto de una asociacion colectiva conocida como el Equipo de Video Conjunto (JVT). En algunos aspectos, las tecnicas descritas en esta divulgacion pueden ser aplicadas a dispositivos que se ajustan en general a la norma H.264. La norma H.264 se describe en la Recomendacion ITU-T H.264, Codificacion de Video Avanzada, para los servicios audiovisuales genericos, por el Grupo de Estudio de la ITU-T, y con fecha de marzo de 2005, que se puede denominar en el presente documento norma H.264 o memoria descriptiva H.264, o la norma o memoria descriptiva H.264/AVC. La norma H.264/AVC incluye extensiones de codificacion de video ajustable a escala (SVC) y extensiones de MVC. Ademas, hay un desarrollo adicional para proporcionar una extension de 3D-AVC, haciendo uso de la codificacion de datos de textura y datos de mapas de profundidad en diferentes resoluciones espaciales. El Equipo de Video Conjunto (JVT) continua trabajando en extensiones para H.264/MPEG-4 AVC. Si bien se han descrito en el contexto de 3D-AVC, las tecnicas descritas en la presente divulgacion pueden implementarse con respecto a otros algoritmos de codificacion de video, capaces de codificar y decodificar video tridimensional que implica ambos componentes de textura y
5
10
15
20
25
30
35
40
45
50
55
60
65
profundidad.
Ademas, el codificador de video 20 puede codificar datos sintacticos, tales como datos sintacticos basados en bloques, datos sintacticos basados en imagenes y datos sintacticos basados en GOP, que el decodificador de video 30 puede recibir finalmente, por ejemplo, en una cabecera de imagen, una cabecera de bloque, una cabecera de fragmento o una cabecera de GOP. Los datos sintacticos de GOP pueden describir un cierto numero de imagenes en el GOP respectivo, y los datos sintacticos de imagen pueden indicar una modalidad de codificacion/prediccion usada para codificar la imagen correspondiente.
En algunos ejemplos, el codificador de video 20 puede generar y el decodificador de video 30 puede recibir ciertos conjuntos de parametros, que pueden ser usados al decodificar datos de video. Por ejemplo, los conjuntos de parametros pueden contener informacion de cabecera a nivel de secuencia (en conjuntos de parametros de secuencia (SPS)) e informacion de cabecera a nivel de imagen, que cambia con poca frecuencia (en conjuntos de parametros de imagen (PPS)). Con los conjuntos de parametros (por ejemplo, PPS y SPS), la informacion que cambia infrecuentemente no tiene por que ser repetida para cada secuencia (por ejemplo, secuencia de imagenes) o imagen; por lo tanto, la eficacia de codificacion puede mejorarse. Ademas, el uso de conjuntos de parametros puede permitir la transmision fuera de banda de la informacion de cabecera importante, evitando la necesidad de transmisiones redundantes, para la capacidad de recuperacion de errores. En los ejemplos de transmision fuera de banda, las unidades de NAL de conjuntos de parametros se pueden transmitir por un canal diferente al de otras unidades de NAL, tales como las unidades de NAL de informacion de mejora suplementaria (SEI).
Las unidades de NAL de SEI (denominadas mensajes de SEI) pueden contener informacion que no es necesaria para la decodificacion de las muestras de imagenes codificadas a partir de las unidades de NAL de la capa de codificacion de video (VCL), pero pueden ayudar en los procesos relacionados con la decodificacion, la visualizacion, la capacidad de recuperacion de errores y otros fines. Los mensajes de SEI pueden estar contenidos en las unidades de NAL no de VCL. Los mensajes de SEI pueden estar incluidos en la parte normativa de algunas memorias descriptivas de normas y, por lo tanto, no siempre son obligatorios para la implementacion de un decodificador compatible con normas. Los mensajes de SEI pueden ser mensajes de SEI a nivel de secuencia o mensajes de SEI a nivel de imagen. Parte de la informacion a nivel de secuencia puede estar contenida en los mensajes de SEI, tales como los mensajes de SEI de informacion de ajustabilidad a escala en el ejemplo de la SVC y los mensajes de SEI de informacion de ajustabilidad a escala de vistas en la MVC. Los mensajes de SEI de informacion de ajustabilidad a escala tambien pueden proporcionar informacion a nivel de secuencia para la extension 3D-AVC para el H.264.
En algunos ejemplos, el codificador de video 20 puede codificar un flujo de bits de 3D-AVC que se ajusta a la extension 3D-AVC de la norma H.264, que puede incluir datos de textura y datos de profundidad en diferentes resoluciones espaciales y, especificamente, datos de profundidad a una resolucion mas baja en comparacion con la resolucion de datos de textura. De acuerdo con las tecnicas de esta divulgacion, el codificador de video 20 y el decodificador de video 30 pueden estar configurados para realizar la compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion.
Como se ha descrito anteriormente, ciertas tecnicas para realizar la compensacion de luminancia adaptativa pueden dar lugar a una alta complejidad de calculo y/o a incompatibilidad con los decodificadores de video existentes de la norma H.264/AVC. En algunas implementaciones de la ALC, que pueden tener una complejidad de calculo relativamente mas alta, en comparacion con las tecnicas de esta divulgacion, el codificador de video 20 y el decodificador de video 30 pueden llevar a cabo la compensacion de movimiento una vez para cada sub-particion de macro-bloque. Para reducir la complejidad de calculo de la realizacion de la ALC, el codificador de video 20 y el decodificador de video 30 pueden realizar la compensacion de movimiento una sola vez para cada particion de macro-bloque.
Por ejemplo, el codificador de video 20 y el decodificador 30 de video pueden configurarse para obtener las ponderaciones de prediccion para la compensacion de iluminacion de las muestras de luminancia (luma) de una particion de bloque de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente de un tamano de transformacion para la particion de bloques de video, calcular un bloque predicho para la particion del bloque de video utilizando las ponderaciones de prediccion que utilizan la compensacion de la iluminacion, y codificar la particion del bloque de video usando el bloque predicho.
La particion del bloque de video puede comprender una particion de un macro-bloque. Por ejemplo, la particion del bloque de video puede comprender un tamano de 8x16, 16x8, 8x8 u otro tamano de la particion del macro-bloque. En lugar de determinar las ponderaciones de prediccion para cada bloque de tamano 4x4 de la particion del bloque de video, el codificador de video 20 y el decodificador de video 30 pueden determinar las ponderaciones de prediccion para la compensacion de iluminacion solo una vez para la particion del bloque de video. Ademas, si el macro-bloque incluye una pluralidad (por ejemplo, dos o mas) de particiones de bloques de video, cada una de las particiones puede tener un conjunto comun de ponderaciones de prediccion, independientemente de los tamanos de
5
10
15
20
25
30
35
40
45
50
transformacion para el macro-bloque. El tamano de transformacion puede ser, por ejemplo, 4x4. En otro ejemplo, un macro-bloque contiene un unico conjunto de ponderaciones de prediccion, obtenido una vez para el macro-bloque, independientemente de una particion de macro-bloque y los tamanos de transformacion.
Como se ha analizado anteriormente, la compensacion de la iluminacion puede utilizarse en el calculo de un bloque predicho para una particion de bloques de video. Por ejemplo, el codificador de video 20 y el decodificador de video 30 pueden determinar un bloque de referencia entre vistas para la particion del bloque de video utilizando, por ejemplo, la compensacion de movimiento de disparidad. Ademas, utilizando el conjunto comun de ponderaciones de prediccion, el codificador de video 20 y el decodificador de video 30 pueden modificar los valores del bloque de referencia entre vistas, realizando la compensacion de la iluminacion. A continuacion, el codificador de video 20 y el decodificador de video 30 pueden codificar la particion del bloque de video usando el bloque predicho que se sometio a la compensacion de iluminacion. Por ejemplo, el codificador de video 20 puede calcular los datos residuales para la particion del bloque de video, transformar y cuantizar los datos residuales, y codificar por entropia los datos residuales cuantizados y transformados. El decodificador de video 30, de manera similar, puede decodificar por entropia datos residuales transformados y cuantizados, cuantizar inversamente y transformar inversamente los datos residuales para reproducir los datos residuales en el dominio espacial, y combinar los datos residuales con los datos predichos para la particion del bloque de video, para reproducir (es decir, decodificar) la particion del bloque de video. El codificador de video 20 o el decodificador de video 30 pueden llevar a cabo la compensacion de luminancia en la compensacion de movimiento en el proceso de codificacion y decodificacion.
En general, un codificador de video, tal como el codificador de video 20 o el decodificador de video 30, que es compatible con la 3D-AVC, puede ser configurado para realizar la ALC sobre la base de datos sintacticos codificados en un flujo de video. El codificador de video 20 o el decodificador de video 30 puede estar configurado para realizar la ALC cuando un bloque de datos de video es predicho entre vistas, a partir de un bloque de una vista diferente. Cuando el bloque actual es predicho entre vistas, el codificador de video 20 o el decodificador de video 30 lleva a cabo la estimacion de movimiento y la compensacion de movimiento para determinar un vector de movimiento indicativo de un bloque de referencia correspondiente desde una vista diferente con respecto a la vista actual.
Para llevar a cabo la ALC, el codificador de video determina en primer lugar un bloque predictivo de muestras de luma. El codificador de video determina entonces bloques de muestras contiguas de luma con respecto al bloque actual de datos de video que el codificador esta codificando. El codificador de video determina un bloque contiguo superior y un bloque contiguo izquierdo, con respecto al bloque actual, que se encuentra en la misma trama (o imagen) que el bloque actual. El codificador de video tambien determina un bloque de referencia para el bloque actual usando un vector de movimiento de disparidad. El bloque contiguo superior de muestras de luma con respecto al bloque de referencia se indica como "UTRefi", y el bloque contiguo izquierdo de muestras de luma con respecto al bloque de referencia se indica como "LTRefi", donde el subindice i indica un indice particular de particion o sub-particion de macro-bloque.
Un codificador de video, configurado para realizar la ALC, tambien determina los bloques contiguos superior e izquierdo de muestras de luma decodificadas previamente en relacion con el bloque actual, es decir, en la misma trama que el bloque actual. El bloque contiguo izquierdo de muestras de luma con respecto al bloque actual se indica como "LTDeci," y el bloque contiguo superior de muestras de luma se indica como "UTDeci."
Despues de que el codificador de video 20 o el decodificador de video 30 determina las muestras de luma: UTDeci, LTDeci, UTRefi y LTRefi, para una particion de macro-bloque en particular, el codificador de video 20 o el decodificador de video 30 compara los valores de las muestras de luma de UTDeci, LTDeci, UTRefi y LTRefi entre si. Mas concretamente, el codificador de video 20 o el decodificador de video 30 pueden comparar las correspondientes muestras de luma de UTRefi, LTRefi, UTDeci y LTDeci entre si de la siguiente manera:
5
10
15
20
25
30
35
40
45
Ref_Dec ; = 1 + Y LTDec
k,m=[\.A,\..psy]
Y UTDec
k,m=[\..psx,\.A]
r , fl,|LTDeci.[^m]-LTRefI.[^m]|<m ;[k,m\x\ 1 +(1)
I 0, de otro modo
r , f 1,lUTDec \k,m\ - UTRef; [&, m II < TH :[k,m\x < 1 ,
0, de otro modo
Ref_Refi = l+ Y LTRef t „
k,m=[\.A,\..psy-\ [0, de otro modo
r , fl,|LTDec J^ml- LTRef J^mll < \k,m\x\
(1)
TH
z
k,m=[\..psx,\.A]
UTRef,[t,M]x{'-|UTDec,[/t,m]-UTRef,[*,m]<
0, de otro modo
TH
(2)
La ecuacion 1 compara las muestras de luma correspondientes de LTDeci con las muestras de luma de LTRefi y produce una variable, "Ref_Deci", y anade la correspondiente muestra LTDeci a Ref_Deci si la diferencia entre las dos muestras es menor que un valor de umbral (indicado como "TH", que es igual a 30 por omision). La ecuacion 1 tambien anade valor de cada muestra de UTDeci a Ref_Deci si la diferencia entre UTDeci y UTRefi es menor que TH.
La ecuacion 2 es similar a la ecuacion 1, y anade el valor de LTRefi [k, m] a la suma Ref_Refi si el valor absoluto de la diferencia de LTDeci y LTRefi [k, m] es menor que el umbral, TH. La ecuacion 2 tambien anade el valor de UTRefi [k, m] para Ref_Refi si la diferencia en los valores absolutos de la diferencia entre UTDeci [k, m] - UTRefi [k, m] es menor que TH.
En ambas ecuaciones, el subindice "i" indica el indice de una particion o sub-particion de un macro-bloque en particular. Las variables "k" y "m" representan las coordenadas x e y de una muestra particular dentro de UTDeci,, UTRefi, LTDeci o LTRefi. Las ecuaciones 1 y 2 se describen con fines ilustrativos. En las ecuaciones 1 y 2, UTDeci y UTRefi tienen una altura de 4 pixeles, y LTRefi y LTDeci tienen una anchura de cuatro pixeles. Como se describira en mayor detalle a continuacion, de acuerdo con las tecnicas de esta divulgacion, otras dimensiones para UTDeci, LTDeci, UTRefi y LTRefi son tambien posibles.
Despues de calcular los valores de Ref_Refi y de Ref_Deci, el codificador de video 20 o el decodificador de video 30 determina una serie de parametros de ponderacion que se utilizan para ajustar los valores de luma predichos del bloque actual. Los valores de luma predichos para el bloque actual se indican como predParti. Para el calculo de los parametros de ponderacion para la ALC, un codificador de video determina primero un valor de una variable indicada como "Wi." Wi se determina de acuerdo con la ecuacion 3, a continuacion.
r J1,//(Rcf_Rcf, » CUT_TH) == (Rcf_Dcc; » CUT_TH)
1 _ {((1 << LogWDC) x Ref_Fef;- + (Ref_Ref,. >> l))/Ref_Ref!,de otro
(3)
En la ecuacion 3, ">>" indica un desplazamiento aritmetico a la derecha, CUT_TH es un umbral con un valor igual a cuatro, y logWDC es otra variable que es igual a 15. Wi es igual a uno si el desplazamiento aritmetico de Ref_Refi >> CUT_TH es igual al desplazamiento aritmetico de Ref_Deci >> CUT_TH. Wi es igual a ((1 << LogWDC) x Ref_Refi + Ref_Ref i >> 1) en caso contrario.
Basandose en el valor calculado de W i, el codificador de video determina los valores de luma compensadas por ALC para la particion o sub-particion de macro-bloque del bloque predicho de las muestras de luma para el bloque actual. La particion compensada por ALC de los valores de luma del bloque actual se indica como predPartALCi [x, y]. predPartALC i [x, y] se calcula de acuerdo con la ecuacion 4 como:
predPartALCi[x,y] = Min{255, (predParti[x,y] (4)
W-, + 2ogWDC -1) >> logWDC )
predPart i en la ecuacion 4 se calcula de acuerdo con la ecuacion 5:
si (logWDC >= 1) predParti [x, y] =
5
10
15
20
25
30
35
40
45
50
Clipl ( ( ( predPartL0i[ x, y ] * W01 + 2logWDc-1 ) >> logWDC ) + 001 ) si no
predParti [ x, y ] = Clip1 ( predPartL01[ x, y ] * w0c + o0c ) (5)
Las tecnicas de esta divulgacion modifican el lenguaje del 3D-AVC 4 WD, mencionado anteriormente. Mas concretamente, las tecnicas de esta divulgacion incluyen modificaciones para una presentacion de propuesta anterior con respecto a la compensacion de luminancia adaptativa que se puede encontrar en el documento de Mishurovskiy et al.: “JCT3V-B0031”, ISO/IEC/JCT1/SC 29/Wg 11, Shanghai, China, con fecha de oct. 2012 (“JCT3V-B0031”). Los cambios en JCT3V-B0031 se reflejan en el 3D-AVC WD 5. Los cambios que detallan algunas de las tecnicas de esta divulgacion con relacion al documento JCT3V-B0031 se describiran ahora junto con alguna explicacion. Las adiciones al borrador de trabajo se indican con las lineas que comienzan en "@". Las supresiones de la propuesta JCT3V-B0031 se indican en las lineas que comienzan con "#". El texto en negrita indica un encabezado de seccion en el 3D-AVC 4 WD.
J.8.3.5.1 Definicion de las coordenadas y tamanos de un bloque de luma a predecir
@ Sea (xM, yM) igual a la salida de la sub-clausula 6.4.1 (la ubicacion de la muestra de luma superior izquierda para el macro-bloque actual con direccion mbAddr con relacion a la muestra superior izquierda de la imagen).
@ Sea (xP, yP) igual a la salida de la sub-clausula 6.4.2.1 (la ubicacion de la muestra de luma superior izquierda para la particion de macro-bloque mbPartldx).
# Sea (xB, yB) igual a la salida de la sub-clausula 6.4.3 (la ubicacion de la muestra de luma superior izquierda para el bloque de luma de tamano 4x4 definido por Luma4x4BlkIdx que puede ser 0 ... 15).
@ Sea (xB, yB) igual a la salida de la sub-clausula 6.4.2.2 (la ubicacion de la muestra de luma superior izquierda para el bloque de luma de tamano 4x4 con relacion a la muestra superior izquierda del sub-macro-bloque).
# Sea (MB8, yB8) igual a la salida del proceso 6.4.5 (la ubicacion de la muestra de luma superior izquierda para el bloque de luma de tamano 8x8 donde Luma8x8BlkIdx = (Luma4x4BlkIdx >> 2) se da como una entrada).
# Las variables xCT, yCT, CBX, CBY se fijan de acuerdo con la tabla J-8-X: [Ed (MH).: CBX y CBY no son nombres de variables adecuados ya que no tienen mayusculas intermedias.]
Tabla J-8-X - Memoria descriptiva de los parametros para obtener valores de muestra de los bloques LRec, URec, LRef, URef
#tipo_mb
indicador_tamano_transform_8x8 igual a 1 indicador tamano transform 8x8 igual a 0
xCT
YCT BX BY xCT YCT BX BY
# P_L0_16x16
xCT = xM yCT = yM 6 6 xCT = xM + xB8 yCT = yM + yB8
#P_L0_L0_16x8
xCT = xM + xP yCT = yM + yP 6 + X II 1— O CD X X < < 00 0 H II < +
# P_L0_L0_8x16
xCT = xM + xP yCT = yM + yP 6 + X II 1— O CD X X < < 00 0 H II < +
#P 8x8, # P_8x8ref0
xCT = xM + xP yCT = yM + yP + X II 1— O CD X X < < 00 0 H II < +
#P_Omitir
Indefinido xCT = xM yCT = yM 6 6
@ Las variables xCT, yCT, CBX, CBY se fijan de la forma siguiente:
@ Si el tipo_mb es igual a P_8x8 o P_8x8ref () y sub_mi_tipo no es P_L0_8x8,
• @ xCT se fija igual a xM + xP + xB
• @ yCT se fija igual a yM + yP + yB
• @ CBX y CBY se fijan iguales a 4.
- @ De lo contrario (el tipo_mb es igual a P_L0_16x16, P_L0_L0_16x8, o
- @ P_L0_L0_8x16, o P_8x8 y P_8x8ref () cuyos sub_mi_tipo son P_L0_8x8)
5
10
15
20
25
30
35
40
45
50
55
60
65
• @ xCT se fija igual a xM + xP
• @ yCT se fija igual a yM + yP
• @ CBX se fija igual a MbAnchuraParte (tipo_mb)
• @ CBY se fija igual a MbAlturaParte (tipo_mb).
@ Si una o mas de las siguientes condiciones son verdaderas, W0C se fija en 1 y logWDC se fija en 15.
@ - xCT es menor que (xL + 1) para xL = 3;
@ - yCT es menor que (yL + 1) para yL = 3;
@ - (mvL0 [0] + ((xCT - xL - 1) << 2)) es menor que 0, para xL = 3;
@ - (mvL0 [1] + ((yCT - yL - 1) << 2)) es menor que 0 para yL = 3;
@ - (mvL0 [0] + ((xCT + CBX) << 2)) es mayor o igual que (AncholmagenEnMuestrasL << 2);
@ - (mvL0 [1] + ((yCT + CBY) << 2)) es mayor o igual que (AlturalmagenEnMuestrasL << 2).
@ De lo contrario, los valores de muestra de LRef, URef, LRec y URec se obtienen como se especifica en J.8.3.6.2 y J.8.3.6.3, seguido por el calculo de las variables SumaRefcontiguo, Sumacontiguo y W0L, O0L especificadas en las sub-clausulas J.8.3.6.4 y J.8.3.6.5 correspondientemente.
# J.8.3.7 Proceso de inter-prediccion con compensacion de luminancia adaptativa para transformacion de tamano 4x4
@ J.8.3.7 Proceso de inter-prediccion con compensacion de luminancia adaptativa para tipo_mb P_8x8
@ Esta sub-clausula se invoca para un macro-bloque en un componente de vista de textura solo cuando
# indicador_tamano_transform_8x8 es igual a 0 y
@indicador_mb_alc es igual a 1, tipo_mb es igual a P_8x8 y tanto el AnchoParteSubMb como la AlturaParteSubMb son menos de 8.
El proceso de inter-prediccion para un macro-bloque consiste en las siguientes etapas en orden.
1. @ La sub-clausula J.8.3.5 se invoca para obtener componentes del vector de movimiento, indices de referencia y ponderaciones de prediccion de la siguiente manera.
2. # El MvCnt variable se incrementa en subMvCnt.
3. @Para cada
# particion de macro-bloque mbPartldx y una
@ particion de sub-macro-bloque subMbPartldx, se hacen las siguientes asignaciones. [Ed (MH).: Las convenciones de los nombres de variables no se siguen a continuacion, se requiere reescritura.]
# - tipo_sub_mb_Normal [mbPartldx] = tipo_sub_mb [mbPartldx];
# - tipo_mb_Normal = tipo_mb;
# - Si tipomb es igual a P_L0_16x16, se aplica lo siguiente en orden.
# - tipo_mb se fija igual a P_8x8;
# - Para mbPartldx de 0 a NumMbPart (tipomb) - 1, ambos inclusive, #tipo_sub_mb [mbPartldx] se fija igual a P_L0_8x8.
# - De lo contrario, se aplica lo siguiente en orden.
# - tipo_mb se fija igual a P_8x8;
# - Para mbPartldx de 0 a NumMbPart (tipomb) - 1, inclusive, y tipo_sub_mb [mbPartldx], se fija igual a P_L0_4x4.
5
10
15
20
25
30
35
40
45
50
55
60
65
@ Para i de 0 a NumSubMbPart - 1, tipo_sub_mb [i] se almacena en tipo_sub_mb_temp [i] y se fija igual a
P_L0_4x4.
4. @ El proceso de decodificacion, para muestras de inter-prediccion para cada
# particion de macro-bloque mbPartldx y una
@ particion de sub-macro-bloque subMbPartldx, consiste en lo siguiente en orden.
@ - Invocar la sub-clausula J.8.3.6 para obtener las ponderaciones de prediccion en la compensacion de luminancia adaptativa.
@ - Invocar la sub-clausula 8.4.2 para obtener las muestras de inter-prediccion.
@ - Invocar la sub-clausula 8.5 para obtener los coeficientes de transformacion y construir la imagen antes del proceso del filtro de desbloqueo.
5. @ Para cada
# particion de macro-bloque mbPartldx y una
@ particion de sub-macro-bloque subMbPartldx, se hacen las siguientes asignaciones.
# - tipo_mb = tipo_mb_Normal
# - tipo_sub_mb [mbPartldx] = tipo_sub_mb_Normal [mbPartldx]
@tipo_sub_mb [i] se restaura a tipo_sub_mb_temp [i].
Estas revisiones al Anexo J, secciones sub-clausulas J.8.3.5.1 a J.8.3.7 del 3D-AVC WD4, modifican las tecnicas de compensacion de luminancia adaptativa descritas en la misma. Las tecnicas de compensacion de luminancia adaptativa pueden ser realizadas por un codificador de video, tal como el codificador de video 20, o el decodificador de video 30. Las modificaciones pueden dar como resultado la reduccion de la complejidad de calculo en relacion con las tecnicas descritas en la propuesta V-B0031 JCT3.
Como se ha descrito brevemente mas arriba, las tecnicas de la propuesta V-B0031 JCT3 pueden hacer que un codificador de video compatible lleve a cabo la compensacion de movimiento para determinar los valores de ponderacion de la ALC, indicados como W i, para cada (sub-)particion de macro-bloque, para determinar muestras de luma contiguas entre vistas para la compensacion de luminancia adaptativa. Si se divide un macro-bloque, por ejemplo, en sub-particiones, la complejidad de calculo de la realizacion de la compensacion de movimiento y el calculo de W i para cada bloque de tamano 4x4 puede ser alta.
De acuerdo con un ejemplo de las tecnicas de esta divulgacion, el codificador de video 20 o el decodificador de video 30 puede determinar un conjunto de ponderaciones de prediccion solo una vez por particion de un macro- bloque de datos de video, o incluso una vez por macro-bloque (por ejemplo, para una particion particular del macro- bloque, y reutilizados para cada particion adicional del macro-bloque). Mas en particular, los cambios anteriores al 3D-AVC WD4 modifican el proceso de determinacion de la ubicacion de los bloques de muestras de luma a partir de la imagen de referencia.
Una vez mas, con respecto a los cambios anteriores del documento WD 4, si el macro-bloque actual es una particion de macro-bloque de tamano 8x8 que no tiene un tipo de sub-macro-bloque de tamano 8x8, la coordenada x que indica la posicion de los bloques contiguos izquierdo y superior de muestras de luma (xCT) es igual a la coordenada x superior izquierda de la muestra de luma superior izquierda para el macro-bloque actual, mas la coordenada x de la muestra de luma superior izquierda de la particion del macro-bloque actual (xP), mas la coordenada x de la muestra de luma superior izquierda de la sub-particion del macro-bloque (xB). La coordenada y, indicativa de la posicion de los bloques de muestras contiguas superiores e izquierdas de luma (yCT), es igual a la coordenada y de la muestra de luma superior izquierda del macro-bloque actual (YM), mas la coordenada y de la muestra de luma superior izquierda de la particion del macro-bloque (yP), mas la coordenada y de la muestra de luma superior izquierda del bloque de luma de tamano 4x4, con relacion a la muestra superior izquierda del sub-macro-bloque (yB). En este caso, la altura y la anchura de los bloques de muestras de luma es igual a las de las muestras de luma de tamano 4x4.
De lo contrario, cuando el indicador_tamano_transform_8x8 es igual a 1, xCT es igual a xM + xP, yCT es igual a yM + yP, y las alturas de los bloques de muestras contiguas izquierdas de luma (LTRefi y LTDeci) son iguales a la altura de la particion del macro-bloque actual. Las anchuras de los bloques de muestras contiguas superiores de luma (UTRef y UTDec) son iguales a la anchura de la particion del macro-bloque actual. Por lo tanto, el mismo conjunto de ponderaciones de prediccion se determina para cada particion de macro-bloque, en lugar de individualmente para cada particion de sub-macro-bloque, independientemente del tamano de transformacion del macro-bloque.
En algunos otros ejemplos de las tecnicas de esta divulgacion, incluso para las particiones de macro-bloque de tamano 8x8, el codificador de video 20 o el decodificador de video 30 puede determinar un conjunto de ponderaciones de prediccion, Wi, independientemente de si los vectores de movimiento para cada uno de los
5
10
15
20
25
30
35
40
45
50
55
60
65
bloques de luma de tamano 4x4 de la particion del macro-bloque son los mismos o no. En este ejemplo, el codificador de vfdeo 20 o el decodificador de vfdeo 30 obtiene las ponderaciones de prediccion, W^ en base a ponderaciones de ALC determinadas para un bloque de tamano 4x4 de muestras de luma de la particion del macro- bloque. En algunos ejemplos, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede utilizar las tecnicas de este ejemplo cuando el bloque actual tiene un tamano de transformacion mas grande que las muestras de luma de tamano 4x4. El bloque de tamano 4x4 que el codificador de vfdeo utiliza para obtener ponderaciones de prediccion puede ser cualquier bloque de luma de tamano 4x4 dentro de la particion de MB de tamano 8x8 en algunos casos.
En algunos otros ejemplos, cuando se realiza la ALC, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede determinar el bloque de tamano 4x4 de las muestras de luma que tiene el valor absoluto maximo del vector de movimiento (es decir, la suma del valor absoluto del componente horizontal y del valor absoluto del componente vertical del vector de movimiento).
En otros ejemplos mas, el codificador de vfdeo 20 o el decodificador de vfdeo 30 pueden obtener y utilizar un conjunto de ponderaciones de prediccion para todo el macro-bloque actual. El codificador de vfdeo 20 o el decodificador de vfdeo 30 puede determinar las ponderaciones de la ALC para el macro-bloque actual utilizando el conjunto de ponderaciones de prediccion obtenidas para la particion de macro-bloque que contiene la muestra de luma superior izquierda del macro-bloque. Si la particion de MB contiene varios bloques de luma que tienen diferentes vectores de movimiento, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede determinar las ponderaciones de prediccion, Wi, para el macro-bloque en base a las ponderaciones obtenidas para el bloque superior izquierdo de la particion del macro-bloque.
En algunos ejemplos, de conformidad con las tecnicas de esta descripcion, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede utilizar diferentes tamanos de LTRefi, LTDeci, UTDeci y UTRefi. Por ejemplo, cuando se admite la compensacion de iluminacion para un bloque dado que tiene un tamano de NxM, (donde N es la anchura y la M es la altura, y pueden ser uno entre 4, 8 o 16), en lugar de utilizar Nx4 filas superiores y 4xM columnas izquierdas, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede utilizar menos filas o menos columnas para la obtencion de las ponderaciones de prediccion para la ALC.
En otro ejemplo, si N (o M) es igual a 16, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede seleccionar las filas superiores (o columnas izquierdas) de UTRefi, UTDeci, LTRefi y LTDeCi de modo tal que los bloques de muestras de luma elegidos tengan un tamano de 8x4 (o 4x8). En algunos otros ejemplos de acuerdo con las tecnicas de esta divulgacion, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede tambien ser configurado para no invocar la compensacion de movimiento, sino mas bien para tomar un vector de movimiento existente, redondear el vector y utilizar el vector de movimiento redondeado para determinar las ubicaciones de los bloques de luma de la imagen de referencia (es decir, UTRefi y LTRefi).
Por ejemplo, cuando se obtienen las muestras de regiones superiores e izquierdas en la imagen de referencia (que es una imagen de referencia entre vistas), en vez de invocar la compensacion de movimiento para obtener las muestras de luma en base al mismo vector de movimiento que el bloque actual, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede redondear un vector de movimiento. Por ejemplo, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede tomar un vector de movimiento existente (por ejemplo, mv[0], mv[1 ]), y redondear el vector de movimiento a un numero entero de pel. Para redondear el vector de movimiento a un numero entero de pel, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede utilizar una de las ecuaciones 6 a 8, mas adelante (cuando el vector de movimiento ya es un vector de movimiento de un numero entero de pel, no es necesaria la interpolacion):

mv [0] = (mv [0] >> 2) << 2) y mv [1] = (mv [1] >> 2) << 2), o (6)

mv [0] = ((mv [0] 2) >> 2 << 2), y mv [1] = ((mv [1] 2) >> 2 << 2) o (7)
mv [0] = ((mv [0] + signo (mv [0]) * 2) >> 2) << 2, y

mv [1] = ((mv [1] + signo (mv [1]) * 2) >> 2) << 2. (8)
Como alternativa, el codificador de vfdeo 20 o el decodificador de vfdeo 30 puede redondear el vector de movimiento hasta la mitad de pel, por ejemplo, usando la ecuacion 9, a continuacion:

mv [0] = (mv [0] >> 1) << 1) y mv [1] = (mv [1 ] >> 1) << 1). (9)
El codificador de vfdeo 20 o el decodificador de vfdeo 30 puede tambien convertir el vector de movimiento para obtener los bloques de muestras de luma superior e izquierda a partir de (un diferente) vector de movimiento utilizado para compensar el movimiento del bloque actual.
En otro ejemplo, en vez de realizar la compensacion de movimiento para un bloque de luma contiguo superior o izquierdo que tenga un tamano igual a 4x4 o mayor que 4x4, el codificador de vfdeo 20 o el decodificador de vfdeo
5
10
15
20
25
30
35
40
45
50
55
60
65
30 puede considerar solo las muestras de luma en una fila superior y una columna izquierda al obtener las ponderaciones de prediccion, W i. En otro ejemplo, el codificador de video 20 o el decodificador de video 30 puede utilizar solamente la fila superior y la columna izquierda, pero puede obtener la ubicacion de los bloques de referencia de las muestras de luma utilizando un vector de movimiento que se haya redondeado a un numero entero de pel.
En algunos otros ejemplos, el codificador de video 20 o el decodificador de video 30 puede seleccionar solo un subconjunto de muestras de luma de un bloque de muestras de luma contiguas al obtener ponderaciones de prediccion. Por ejemplo, el codificador de video 20 o el decodificador de video 30 puede usar ambos extremos de una fila o columna para obtener las ponderaciones de prediccion. En otro ejemplo, el codificador de video 20 o el decodificador de video 30 puede utilizar muestras de luma en ambos extremos del bloque de muestra de luma, asi como la(s) muestra(s) media(s) de la fila o columna al determinar las ponderaciones para la ALC.
En otro ejemplo mas, el codificador de video 20 o el decodificador de video 30 puede utilizar hasta cuatro muestras de luma de una fila o columna al determinar las ponderaciones de prediccion para la ALC. En este ejemplo, si una fila / columna de muestras de luma contiguas (en relacion con el bloque actual) tiene una longitud de N muestras (en la que N = 4*2S, S=0, 1 o 2), la posicion horizontal / vertical x [i] de las muestras elegidas, con respecto a la coordenada horizontal o vertical de la muestra superior izquierda del bloque, puede calcularse como: x[i]=i<<s, donde i esta en la gama entre 0 y 3, inclusive.
En otra alternativa mas, el codificador de video 20 o el decodificador de video 30 puede reducir el muestreo de las muestras de luma de una fila o columna, el codificador de video 20 o el decodificador de video 30 tambien puede filtrar y reducir el muestreo de la luma de una fila o columna al determinar las ponderaciones de la ALC.
Como alternativa, cuando se admite la compensacion de iluminacion para un bloque dado que tiene un tamano de NxM, en el que N es la anchura y la M es la altura y al menos uno de ellos es igual a 16, en lugar de utilizar las Nx4 filas superiores y las 4xM columnas izquierdas, el codificador de video 20 o el decodificador de video 30 puede utilizar menos filas o menos columnas para realizar la obtencion de las ponderaciones de prediccion para la ALC.
En otros ejemplos mas, el codificador de video 20 o el decodificador de video 30 puede seleccionar muestras en el interior de la region de muestras de luma contiguas superiores de tamano 16x4 (o la region izquierda de muestras de luma de tamano 4x16) de forma que las muestras de luma formen una region de tamano 8x4 (o 4x8) o 4x4. El codificador de video 20 o el decodificador de video 30 tambien puede utilizar muestras filtradas de la region superior de tamano 16x4 (o la region izquierda de tamano 4x16) que pueden formar una region de tamano 8x4 (o 4x8) o 4x4. Tambien deberia entenderse que cualquiera de las tecnicas de esta divulgacion se puede realizar independientemente de las dimensiones, N o M, del macro-bloque.
En varios ejemplos, el codificador de video 20 o el decodificador de video 30 puede seleccionar las dimensiones de las regiones de muestras contiguas izquierdas y contiguas superiores, independientemente del tamano de transformacion del macro-bloque actual. El codificador de video 20 o el decodificador de video 30 puede tambien seleccionar las dimensiones de las regiones de muestras contiguas izquierdas y superiores, independientemente del tamano de transformacion del bloque actual, pero en base al tamano de la particion o sub-particion del macro-bloque actual.
El codificador de video 20 o el decodificador de video 30 tambien puede realizar la identificacion de muestras de referencia independientes de la particion de MB: en este procedimiento, un MB siempre es filtrado por un conjunto de ponderaciones generadas independientemente de la particion de MB.
En diversos ejemplos, como alternativa, el codificador de video 20 o el decodificador de video 30 puede fijar las muestras de referencia de luma superiores e izquierdas para la ALC en los bloques de luma superiores de tamano 4x4 e izquierdos de tamano 4x4, del bloque superior izquierdo de tamano 4x4 del macro-bloque actual. Ademas, el codificador de video 20 o el decodificador de video 30 puede fijar el vector de movimiento de ese bloque, que se utiliza para obtener el predictor de las muestras de referencia, en una vista de referencia.
En algunos ejemplos, el codificador de video 20 o el decodificador de video 30 puede fijar las muestras de referencia superior e izquierda en los bloques de luma superiores de tamano 4x4 e izquierdos de tamano 4x4 del bloque de superior izquierdo de tamano 4x4 del macro-bloque actual. El codificador de video 20 o el decodificador de video 30 tambien puede determinar el vector de movimiento utilizado para determinar el bloque predictor de muestras de referencia de luma en la vista de referencia, mediante el uso de uno o mas vectores de movimiento de los bloques del macro-bloque actual.
En algunas otras tecnicas de esta divulgacion, el codificador de video 20 o el decodificador de video 30 puede estar configurado para realizar la identificacion de muestras de referencia, dependiente de la particion del macro-bloque, pero independiente de la particion de sub-bloques. En estas tecnicas, el codificador de video 20 o el decodificador de video 30 puede obtener un conjunto de ponderaciones de la ALC para cada particion de macro-bloque. El codificador de video 20 o el decodificador de video 30 puede estar configurado para filtrar conjuntamente pixeles
5
10
15
20
25
30
35
40
45
50
55
60
65
dentro de una particion de macro-bloque utilizando el conjunto de ponderaciones, independientemente de la particion del sub-bloque. Por ejemplo, para una particion de MB de tamano 8x8, si la particion de tamano 8x8 se divide ademas en cuatro bloques de tamano 4x4, el codificador de video 20 o el decodificador de video 30 pueden utilizar el mismo conjunto de coeficientes de filtro para los cuatro bloques, y pueden filtrar los bloques conjuntamente.
En otro ejemplo, el codificador de video 20 o el decodificador de video 30 puede fijar las muestras de referencia superior e izquierda en el bloque superior de tamano 4x4 y en el bloque superior izquierdo de tamano 4x4 de una particion del macro-bloque. En este ejemplo, el codificador de video 20 o el decodificador de video 30 utiliza el vector de movimiento del bloque superior de tamano 4x4 y del bloque izquierdo de tamano 4x4 para determinar la ubicacion del bloque predictivo de las muestras de luma a partir de la vista de referencia.
En otra alternativa, si una particion de macro-bloque tiene un tamano de MxN, y M o N es mayor que 8, o M o N tiene un tamano igual a 8, pero la particion del macro-bloque tiene una particion de sub-bloque que es de tamano 8x8, el codificador de video 20 o el decodificador de video 30 puede seleccionar la region de muestras de referencia luma izquierda de tal manera que la region tenga un tamano de 4XN y una region de las principales muestras de referencia, de tal manera que la region de muestras de referencia superior tenga un tamano de MX4. El codificador de video 20 o el decodificador de video 30 tambien puede seleccionar la region de muestras de referencia izquierda de tal manera que la region izquierda de muestras de referencia de luma tenga un tamano de 4x8 y la region derecha de muestras de referencia de tal manera que la region derecha de muestras de referencia de luma tenga un tamano de 8x4. El codificador de video 20 o el decodificador de video 30, tales que las regiones de las muestras de referencia de luma izquierda y superior tengan un tamano de 4XN/2 y M/2x4, respectivamente.
En varios ejemplos, el codificador de video 20 o el decodificador de video 30 pueden realizar la identificacion de muestras de referencia, dependientes de la particion del macro-bloque y dependientes de la particion del sub- bloque. En este ejemplo, el codificador de video 20 o el decodificador de video 30 obtiene un conjunto de ponderaciones de prediccion de la ALC para cada particion de MB. Sin embargo, el codificador de video 20 o el decodificador de video 30 puede utilizar diferentes tecnicas para identificar las muestras de referencia para cada particion de sub-bloque. Si la particion del macro-bloque es una particion de tamano 8x8, y la particion de sub- bloque tiene un tamano de: dos bloques de tamano 8x4 (mxn) o dos bloques de tamano 4x8 (mxn), el codificador de video 20 o el decodificador de video 30 puede seleccionar la region izquierda de muestras de referencia de modo que la region de muestras de referencia contiguas izquierdas tenga un tamano de 4xn y la de muestras de luma de referencia superiores tenga un tamano de mx4.
En una alternativa, si la particion del macro-bloque es de tamano 8x8 y la particion de sub-bloque es de dos bloques de tamano 8x4 (mxn) o dos bloques de tamano 4x8 (mxn), el codificador de video 20 o el decodificador de video 30 puede determinar el vector de movimiento indicativo de la ubicacion del bloque predictivo de las muestras de luma para el bloque actual, sobre la base de uno de los vectores de movimiento indicativos de las ubicaciones de los bloques contiguos superiores o izquierdos de las muestras de luma de referencia. En otra alternativa, el codificador de video 20 o el decodificador de video 30 puede utilizar los vectores de movimiento que indican la ubicacion de los bloques de muestras de referencia contiguas superiores y/o izquierdas al determinar el vector de movimiento indicativo del bloque predictivo de las muestras de luma para el bloque actual.
Las tecnicas descritas en el presente documento para modificaciones en el borrador de trabajo de 3D-AVC incluyen tecnicas que hacen que un codificador, configurado de acuerdo con las tecnicas de esta divulgacion, lleve a cabo la compensacion de movimiento para determinar las ponderaciones para la ALC solo una vez por particion de macro- bloque. El codificador de video utiliza luego el mismo vector de movimiento para determinar las muestras de luma de referencia para cada particion de macro-bloque y sub-particiones cualesquiera dentro de la particion del macro- bloque.
Por lo tanto, en un ejemplo, el codificador de video 20 y el decodificador de video 30 pueden configurarse para ponderaciones de prediccion para la compensacion de la iluminacion de las muestras de luma de una particion de bloques de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente de un tamano de transformacion para la particion del bloque de video, calcule un bloque predicho para la particion del bloque de video utilizando las ponderaciones de prediccion y utilizando la compensacion de la iluminacion, y codifique (por ejemplo, codifique o decodifique) la particion del bloque de video utilizando el bloque predicho.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de video a modo de ejemplo, que puede estar configurado para realizar la compensacion de luminancia adaptativa, de acuerdo con las tecnicas de esta divulgacion. El codificador de video 20 recibe datos de video a codificar. En el ejemplo de la FIG. 2, el decodificador de video 20 incluye una unidad de seleccion de modalidad 40, un sumador 50, una unidad de procesamiento de transformacion 52, una unidad de cuantizacion 54, una unidad de codificacion por entropia 56 y una memoria de imagenes de referencia 64. A su vez, la unidad de seleccion de modalidad 40 incluye una unidad de estimacion de movimiento 42, una unidad de compensacion de movimiento 44, una unidad de intra-prediccion 46 y una unidad de
5
10
15
20
25
30
35
40
45
50
55
60
65
particion 48.
Para la reconstruccion de bloques de video, el codificador de video 20 incluye ademas una unidad de cuantizacion inversa 58, una unidad de procesamiento de transformacion inversa 60 y un sumador 62. Tambien puede incluirse un filtro de desbloqueo (no mostrado en la FIG. 2) para filtrar limites de bloque, para eliminar distorsiones de efecto pixelado del video reconstruido. Si se desea, el filtro de desbloqueo filtrara tipicamente la salida del sumador 62. Tambien pueden usarse filtros de bucle adicionales (en bucle o tras el bucle), ademas del filtro de desbloqueo. Dichos filtros no se muestran por razones de brevedad pero, si se desea, pueden filtrar la salida del sumador 50 (tal como un filtro en bucle).
La unidad de seleccion de modalidad 40 puede recibir datos de video en bruto en forma de bloques de una o mas vistas. En la norma 3D-AVC, las vistas pueden corresponder a una vista del ojo izquierdo y a una vista del ojo derecho. La unidad de seleccion de modalidad 40 puede seleccionar una de las modalidades de codificacion, intra o inter (por ejemplo, la inter-prediccion intra-vistas, tambien denominada prediccion temporal, o la prediccion entre vistas), por ejemplo, en base a los resultados de error, y proporciona el bloque intra-codificado o inter-codificado resultante al sumador 50 para generar datos de bloque residual, y al sumador 62 para reconstruir el bloque codificado para su uso como una imagen de referencia. En algunos ejemplos, la unidad de seleccion de modalidad 40 puede determinar que un bloque deberia predecirse entre vistas, en base a los datos de video desde una vista diferente. La unidad de seleccion de modalidad 40 proporciona ademas elementos sintacticos, tales como vectores de movimiento, indicadores de intra-modalidad, informacion de particion y otra informacion sintactica de este tipo, a la unidad de codificacion por entropia 56.
La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 pueden estar sumamente integradas, pero se ilustran por separado con fines conceptuales. La estimacion de movimiento, realizada por la unidad de estimacion de movimiento 42, es el proceso de generacion de vectores de movimiento, que estiman el movimiento para los bloques de video. De manera similar, la unidad de estimacion de movimiento 42 puede realizar la estimacion de disparidad para la prediccion entre vistas, lo cual da como resultado un vector de movimiento de disparidad. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de un bloque de un bloque de video dentro de una imagen actual, con respecto a un bloque predictivo dentro de una imagen de referencia (u otra unidad codificada), con respecto al bloque actual que esta siendo codificado dentro de la imagen actual (u otra unidad codificada).
En diversos ejemplos de acuerdo con las tecnicas de esta divulgacion, la unidad de estimacion de movimiento 42 puede determinar un vector de movimiento que indica el desplazamiento del bloque actual en relacion con un bloque predictivo a partir de una vista diferente, por ejemplo, cuando el bloque actual es predicho entre vistas. La unidad de estimacion de movimiento 42 tambien puede estar configurada para determinar los vectores de movimiento que indican la(s) ubicacion(es) de uno o mas bloques o regiones de las muestras de luma de referencia que el codificador de video 20 utiliza para determinar las ponderaciones al realizar la ALC. La unidad de estimacion de movimiento 42 puede calcular los vectores de movimiento (por ejemplo, vectores de movimiento temporal y/o de disparidad) que tienen una precision de imagen fraccionada, por ejemplo, la mitad o un cuarto de la precision de pixeles. De acuerdo con ciertas tecnicas de esta divulgacion, la unidad de compensacion de movimiento 44 puede estar configurada para realizar el redondeo de los vectores de movimiento cuando se realiza la ALC, por ejemplo, el redondeo de un vector de movimiento fraccional en pel hasta un vector de movimiento de precision de un numero entero de pel o de medio-pel.
Un bloque predictivo es un bloque que se revela como estrechamente coincidente con el bloque a codificar, en lo que respecta a la diferencia de pixeles, que puede determinarse mediante la suma de una diferencia absoluta (SAD), una suma de diferencia de cuadrados (SSD) u otras metricas de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular valores para posiciones de fracciones de pixel de imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. Por ejemplo, el codificador de video 20 puede interpolar valores de posiciones de un cuarto de pixel, posiciones de un octavo de pixel u otras posiciones fraccionarias de pixel de la imagen de referencia. Por lo tanto, la unidad de estimacion de movimiento 42 puede realizar una busqueda de movimiento con respecto a las posiciones de pixeles completos y a las posiciones de fracciones de pixel, y emitir un vector de movimiento con una precision de fracciones de pixel.
La unidad de estimacion de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en un fragmento inter-codificado, comparando la posicion de la PU con la posicion de un bloque predictivo de una imagen de referencia. La unidad de estimacion/ disparidad de movimiento 42 tambien puede configurarse para realizar la prediccion entre vistas, en cuyo caso la unidad de estimacion/ disparidad de movimiento 42 puede calcular vectores de desplazamiento entre los bloques de una imagen de vista (por ejemplo, la vista 0) y los bloques correspondientes de una imagen de vista de referencia (por ejemplo, la vista 1). En general, los datos para un vector de movimiento pueden incluir una lista de imagenes de referencia, un indice en la lista de imagenes de referencia (ref_idx), un componente horizontal y un componente vertical. La imagen de referencia puede seleccionarse a partir de una primera lista de imagenes de referencia (Lista 0) o una segunda lista de imagenes de referencia (Lista 1), cada una de las cuales identifica una o mas imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. Para cada lista (es decir, la Lista 0 o la Lista 1), el codificador de video 20 puede seleccionar las
5
10
15
20
25
30
35
40
45
50
55
60
65
entradas en base al orden ascendente del indice de referenda.
La unidad de estimacion de movimiento 42 puede generar y enviar un vector de movimiento que identifica el bloque predictivo de la imagen de referencia a la unidad de codificacion por entropia 56 y a la unidad de compensacion de movimiento 44. Es decir, la unidad de estimacion de movimiento 42 puede generar y enviar datos de vectores de movimiento que identifican la lista de imagenes de referencia que contiene el bloque predictivo, un indice en la lista de imagenes de referencia que identifica la imagen del bloque predictivo y un componente horizontal y vertical para localizar el bloque predictivo dentro de la imagen identificada.
La compensacion de movimiento, llevada a cabo por la unidad de compensacion de movimiento 44, puede implicar capturar o generar el bloque predictivo en base al vector de movimiento determinado por la unidad de estimacion de movimiento 42. De nuevo, la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 pueden integrarse funcionalmente, en algunos ejemplos. Tras recibir el vector de movimiento para una particion del macro-bloque de video actual, la unidad de compensacion de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imagenes de referencia.
La unidad de compensacion de movimiento 44 puede tambien realizar ciertas tecnicas relacionadas con la ALC, de acuerdo con las tecnicas de esta divulgacion. En algunos ejemplos, la unidad de compensacion de movimiento 44 puede estar configurada para determinar bloques de muestras de luma contiguas superiores e izquierdas con respecto al bloque actual. Los bloques de muestras contiguas superiores e izquierdas pueden comprender regiones de muestras de luma de los bloques previamente codificados de la misma trama que el bloque actual (por ejemplo, las regiones UTDec y LTDec descritas anteriormente), asi como las regiones de muestras de luma que son contiguas del bloque de referencia (por ejemplo, LTRef y UTDec, descritas anteriormente).
La unidad de compensacion de movimiento 44 puede determinar la ubicacion de las regiones de las muestras, asi como la ubicacion de los valores de las muestras predictivas de luma para el bloque actual, sobre la base de uno o mas vectores de movimiento generados por la unidad de estimacion de movimiento 42. Si el bloque actual tiene la ALC habilitada, una vez que la unidad de compensacion de movimiento 44 determina las regiones de muestras de luma contiguas superior e izquierda ara el bloque actual, la unidad de compensacion de movimiento 44 compara los valores absolutos de las muestras correspondientes de los bloques para generar las variables Ref_Ref y Ref_Dec, y el factor de ponderacion para el bloque actual, W i, como se ha descrito anteriormente. Una vez que la unidad de compensacion de movimiento 44 determina el factor de ponderacion, W i para la particion o sub-particion del macro- bloque, la unidad de compensacion de movimiento 44 puede ajustar el bloque predictivo de los valores de luma para el bloque actual, predParti, en el factor de ponderacion Wi de conformidad con la ecuacion 4, descrita anteriormente.
De acuerdo con las tecnicas de esta divulgacion, la unidad de compensacion de movimiento 44 puede estar configurada para obtener ponderaciones de prediccion para la compensacion de la iluminacion de las muestras de luma de una particion bloque de video, una vez para la particion del bloque de video, de tal manera que la particion del bloque de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente del tamano de transformacion para la particion del bloque de video. La unidad de compensacion de movimiento 44 puede estar configurada para realizar la compensacion de la iluminacion de las muestras de luma, adicionalmente de acuerdo con las tecnicas de esta divulgacion. Por ejemplo, cuando un macro-bloque actual es predicho unidireccionalmente a partir de una imagen de referencia entre vistas en un fragmento P, la unidad de compensacion de movimiento 44 puede realizar la compensacion de la iluminacion para las muestras de luma del macro-bloque actual, de acuerdo con las tecnicas de esta divulgacion. Del mismo modo, la unidad de compensacion de movimiento 44 puede aplicar las ponderaciones de prediccion a un bloque de referencia para una particion de un macro-bloque actual, para calcular un bloque predictivo para la particion.
El sumador 50 forma un bloque de video residual restando los valores de pixel del bloque predictivo a los valores de pixel del bloque de video actual que esta siendo codificado, generando valores de diferencia de pixel, como se analiza posteriormente. En general, la unidad de estimacion de movimiento 42 lleva a cabo la estimacion de movimiento con respecto a los componentes de luma, y la unidad de compensacion de movimiento 44 usa vectores de movimiento calculados en base a los componentes de luma, tanto para los componentes de croma como para los componentes de luma. La unidad de seleccion de modalidad 40 tambien puede generar elementos sintacticos asociados a los bloques de video y al fragmento de video para su uso por parte del decodificador de video 30 a la hora de decodificar los bloques de video del fragmento de video.
La unidad de intra-prediccion 46 puede intra-predecir un bloque actual, como alternativa a la inter-prediccion llevada a cabo por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de intra-prediccion 46 puede determinar una modalidad de intra- prediccion a usar para codificar un bloque actual. En algunos ejemplos, la unidad de intra-prediccion 46 puede codificar un bloque actual usando varias modalidades de intra-prediccion, por ejemplo, durante diferentes pasadas de codificacion, y la unidad de intra-prediccion 46 (o la unidad de seleccion de modalidad 40, en algunos ejemplos) puede seleccionar una modalidad adecuada de intra-prediccion a usar, entre las modalidades probadas.
5
10
15
20
25
30
35
40
45
50
55
60
65
Por ejemplo, la unidad de intra-prediccion 46 puede calcular valores de velocidad-distorsion usando un analisis de velocidad-distorsion para las diversas modalidades de intra-prediccion probadas, y seleccionar la modalidad de intra- prediccion que tenga las mejores caracteristicas de velocidad-distorsion entre las modalidades probadas. El analisis de velocidad-distorsion determina en general una magnitud de distorsion (o errores) entre un bloque codificado y un bloque original, no codificado, que se codifico para generar el bloque codificado, asi como una velocidad binaria (es decir, un numero de bits) usada para generar el bloque codificado. La unidad de intra-prediccion 46 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar que modalidad de intra-prediccion presenta el mejor valor de velocidad-distorsion para el bloque.
Despues de seleccionar una modalidad de intra-prediccion para un bloque, la unidad de intra-prediccion 46 puede proporcionar informacion, indicativa de la modalidad de intra-prediccion seleccionada para el bloque, a la unidad de codificacion por entropia 56. La unidad de codificacion por entropia 56 puede codificar la informacion que indica la modalidad de intra-prediccion seleccionada. El codificador de video 20 puede incluir datos de configuracion en el flujo de bits transmitido, que pueden incluir una pluralidad de tablas de indices de modalidades de intra-prediccion y una pluralidad de tablas de indices de modalidades de intra-prediccion modificadas (tambien denominadas tablas de correlacion de palabras de codigo), definiciones de contextos de codificacion para varios bloques e indicaciones de la modalidad de intra-prediccion mas probable, una tabla de indices de modalidades de intra-prediccion y una tabla modificada de indices de modalidades de intra-prediccion, a usar en cada uno de los contextos.
El codificador de video 20 forma un bloque de video residual restando los datos de prediccion de la unidad de seleccion de modalidad 40 del bloque de video original que esta siendo codificado. El sumador 50 representa el componente o los componentes que realizan esta operacion de resta. La unidad de procesamiento de transformaciones 52 aplica una transformacion, tal como una transformacion discreta del coseno (DCT) o una transformacion conceptualmente similar, al bloque residual, generando un bloque de video que comprende valores residuales de coeficientes de transformacion. La unidad de procesamiento de transformaciones 52 puede llevar a cabo otras transformaciones que son conceptualmente similares a la DCT. Tambien podrian usarse transformaciones de ondiculas, transformaciones de enteros, transformaciones de sub-bandas u otros tipos de transformaciones. En cualquier caso, la unidad de procesamiento de transformaciones 52 aplica la transformacion al bloque residual, generando un bloque de coeficientes de transformacion residuales. La transformacion puede convertir la informacion residual, desde un dominio de valores de pixel a un dominio de transformaciones, tal como un dominio de frecuencia.
La unidad de procesamiento de transformaciones 52 puede enviar los coeficientes de transformacion resultantes a la unidad de cuantizacion 54. La unidad de cuantizacion 54 cuantiza los coeficientes de transformacion para reducir adicionalmente la velocidad de bits. El proceso de cuantizacion puede reducir la profundidad de bits asociada a algunos de, o a todos, los coeficientes. El grado de cuantizacion puede modificarse ajustando un parametro de cuantizacion. En algunos ejemplos, la unidad de cuantizacion 54 puede realizar a continuacion un escaneo de la matriz, incluyendo los coeficientes de transformacion cuantizados. Como alternativa, la unidad de codificacion por entropia 56 puede realizar el escaneo.
Tras la cuantizacion, la unidad de codificacion por entropia 56 codifica por entropia los coeficientes de transformacion cuantizados. Por ejemplo, la unidad de codificacion por entropia 56 puede llevar a cabo la codificacion de longitud variable adaptativa al contexto (CAVLC), la codificacion aritmetica binaria adaptativa al contexto (CABAC), la codificacion aritmetica binaria adaptativa al contexto y basada en sintaxis (SBAC), la codificacion por entropia mediante la particion en intervalos de probabilidades (PIPE) u otra tecnica de codificacion por entropia. En el caso de la codificacion por entropia basada en el contexto, el contexto puede basarse en bloques contiguos. Tras la codificacion por entropia realizada por la unidad de codificacion por entropia 56, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el decodificador de video 30) o archivarse para su posterior transmision o recuperacion.
La unidad de cuantizacion inversa 58 y la unidad de transformacion inversa 60 aplican la cuantizacion inversa y la transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio de pixeles, por ejemplo, para su uso posterior como un bloque de referencia. La unidad de compensacion de movimiento 44 puede calcular un bloque de referencia anadiendo el bloque residual a un bloque predictivo de una de las imagenes de la memoria de imagenes de referencia 64. La unidad de compensacion de movimiento 44 tambien puede aplicar uno o mas filtros de interpolacion al bloque residual reconstruido para calcular valores de fracciones de pixel para su uso en la estimacion de movimiento. El sumador 62 anade el bloque residual reconstruido al bloque de prediccion compensado por movimiento, generado por la unidad de compensacion de movimiento 44, para generar un bloque de video reconstruido para su almacenamiento en la memoria de imagenes de referencia 64. El bloque de video reconstruido puede ser usado por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 como un bloque de referencia para inter-codificar un bloque en una imagen posterior.
El codificador de video 20 puede generar una serie de elementos sintacticos, como se ha descrito anteriormente, que pueden ser codificados por la unidad de codificacion por entropia 56 u otra unidad de codificacion del codificador de video 20. En algunos ejemplos, el codificador de video 20 puede generar y codificar elementos sintacticos para un flujo de bits de 3D-AVC, como se ha descrito anteriormente, donde de nuevo este flujo de bits de
5
10
15
20
25
30
35
40
45
50
55
60
65
3DVC puede ser retro-compatible con la norma H.264/AVC.
De esta manera, el codificador de video 20 puede estar configurado para obtener ponderaciones de prediccion para la compensacion de la iluminacion de las muestras de luma de una particion de bloques de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente de un tamano de transformacion para la particion del bloque de video, calcular un bloque predicho para la particion del bloque de video utilizando las ponderaciones de prediccion y usando la compensacion de la iluminacion, y codificar la particion del bloque de video usando el bloque predicho.
La FIG. 3 es un diagrama de bloques que ilustra un decodificador de video 30 a modo de ejemplo que puede configurarse para realizar la compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion. En el ejemplo de la FIG. 3, el decodificador de video 30 incluye una unidad de decodificacion por entropia 70, una unidad de prediccion 81 con una unidad de compensacion de movimiento 72 y una unidad de intra- prediccion 74, una unidad de cuantizacion inversa 76, una unidad de transformacion inversa 78, un sumador 80 y una memoria de imagenes de referencia 82.
Durante el proceso de decodificacion, el decodificador de video 30 recibe un flujo de bits de video codificado que representa bloques de video de un fragmento de video codificado y elementos sintacticos asociados, desde el codificador de video 20. La unidad de decodificacion por entropia 70 del decodificador de video 30 decodifica por entropia el flujo de bits para generar coeficientes cuantizados, vectores de movimiento y otros elementos sintacticos. La unidad de decodificacion por entropia 70 remite los vectores de movimiento y otros elementos sintacticos relacionados con la prediccion a la unidad de prediccion 81. El decodificador de video 30 puede recibir los elementos sintacticos al nivel del fragmento de video y/o al nivel del bloque de video.
Por ejemplo, el decodificador de video 30 puede recibir un cierto numero de unidades de NAL que tienen una cabecera de unidad de NAL que identifica un tipo de datos almacenados en la unidad de NAL (por ejemplo, datos de VCL y datos no de VCL). Los conjuntos de parametros pueden contener la informacion de cabecera a nivel de secuencia, tal como un SPS, PPS u otro conjunto de parametros descrito anteriormente.
Cuando un fragmento de video se codifica como un fragmento intra-codificado (I), el modulo de intra-prediccion 74 del modulo de prediccion 81 puede generar datos de prediccion para un bloque de video del fragmento de video actual, en base a una modalidad de intra-prediccion senalizada, y datos de bloques previamente decodificados de la imagen actual, a la vista de los conjuntos de parametros activos. Cuando la imagen es codificada como un fragmento inter-codificado (es decir, B, P o PB generalizado (GPB)), la unidad de compensacion de movimiento 72 de la unidad de prediccion 81 genera bloques predictivos para un bloque de video del fragmento de video actual, en base a los vectores de movimiento y otros elementos sintacticos recibidos desde la unidad de decodificacion por entropia 80, nuevamente a la vista de los conjuntos de parametros activos. Los bloques predictivos pueden ser generados a partir de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. El decodificador de video 30 puede construir las listas de imagenes de referencia, la Lista 0 y la Lista 1 (o una lista combinada, la Lista c), usando tecnicas de construccion por omision, en base a las imagenes de referencia almacenadas en la memoria de imagenes de referencia 82.
La unidad de compensacion de movimiento 72 determina la informacion de prediccion para un bloque de video del fragmento de video actual, analizando los vectores de movimiento y otros elementos sintacticos, y usa la informacion de prediccion para generar los bloques predictivos para el bloque de video actual que esta siendo decodificado. Por ejemplo, la unidad de compensacion de movimiento 72 usa algunos de los elementos sintacticos recibidos para determinar una modalidad de prediccion (por ejemplo, intra-prediccion o inter-prediccion), usada para codificar los bloques de video del fragmento de video, un tipo de fragmento de inter-prediccion (por ejemplo, fragmento B o fragmento P), informacion de construccion para una o mas de las listas de imagenes de referencia del fragmento, vectores de movimiento para cada bloque de video inter-codificado del fragmento, el estado de inter-prediccion para cada bloque de video inter-codificado del fragmento y otra informacion, para decodificar los bloques de video en el fragmento de video actual.
La unidad de decodificacion por entropia o la unidad de compensacion de movimiento 72 tambien puede determinar los vectores de movimiento que se utilizan al realizar la ALC en un bloque predicho entre vistas. La unidad de compensacion de movimiento 72 puede determinar la ubicacion de un bloque predictivo entre vistas de las muestras de luma que se utilizan para predecir los valores de luma para el bloque actual (predPart) en base a un vector de movimiento decodificado usando la unidad de decodificacion por entropia 70. La unidad de decodificacion por entropia 70 y la unidad de compensacion de movimiento 72 tambien pueden determinar uno o mas vectores de movimiento que indican la posicion de las regiones de bloques de muestras de luma contiguas superiores e izquierdas, LTRefi y UTRefi a partir del mismo bloque de referencia como predParti, el bloque de luma predictivo a partir de la vista de referencia.
La unidad de compensacion de movimiento 72 puede tambien determinar las regiones de bloques de muestras de luma contiguas superiores e izquierdas con respecto al bloque actual, LTDeci y UTDeci. LTDeci y UTDeci se
5
10
15
20
25
30
35
40
45
50
55
60
65
encuentran en la misma trama que el bloque actual. La unidad de compensacion de movimiento 72 puede realizar la ALC en el bloque actual mediante la determinacion de la diferencia entre las muestras correspondientes de UTRefi y UTDeci y LTDeci y LTRefi, como se ha descrito anteriormente en la ecuacion para generar las variables Ref_Refi y Ref_Deci para la particion de o sub-particion del macro-bloque actual. La unidad de compensacion de movimiento 72 puede determinar el factor de ponderacion W i para la realizacion de la ALC en la particion o sub-particion del macro- bloque actual, etc., de acuerdo con la ecuacion 3, mas arriba. La unidad de compensacion de movimiento 72 ajusta los valores de luma predichos de predParti en Wi, de acuerdo con la ecuacion 4, mas arriba. La salida de la ponderacion de predParti es el bloque predictivo ponderado de muestras de luma, predPartALCi.
De esta manera, la unidad de compensacion de movimiento 72 puede estar configurada para realizar la compensacion de la iluminacion de acuerdo con las tecnicas de esta divulgacion, por ejemplo, para obtener ponderaciones de prediccion para la compensacion de la iluminacion de las muestras de luma de una particion de bloque de video, una vez para la particion del bloque de video, de tal manera que la particion del bloque de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente de un tamano de transformacion para la particion de bloques de video, y para calcular un bloque predicho para la particion del bloque de video utilizando las ponderaciones de prediccion y usando la compensacion de la iluminacion.
La unidad de cuantizacion inversa 76 cuantiza de manera inversa, es decir, des-cuantiza, los coeficientes de transformacion cuantizados, proporcionados en el flujo de bits y decodificados por la unidad de decodificacion por entropia 70. El proceso de cuantizacion inversa puede incluir el uso de un parametro de cuantizacion calculado por el codificador de video 20 para cada bloque de video en el fragmento de video, para determinar un grado de cuantizacion y, asimismo, un grado de cuantizacion inversa que deberia aplicarse.
La unidad de transformacion inversa 78 aplica una transformacion inversa, por ejemplo, una DCT inversa, una transformacion inversa entera o un proceso de transformacion inversa conceptualmente similar, a los coeficientes de transformacion con el fin de generar bloques residuales en el dominio de pixeles. El procesamiento de transformacion inversa 78 puede determinar la manera en la que las transformaciones se aplicaron a los datos residuales.
Despues de que la unidad de compensacion de movimiento 72 genera el bloque predictivo para el bloque de video actual, en base a los vectores de movimiento y a otros elementos sintacticos, el decodificador de video 30 forma un bloque de video decodificado sumando los bloques residuales procedentes de la unidad de transformacion inversa 78 a los correspondientes bloques predictivos generados por la unidad de compensacion de movimiento 72. El sumador 80 representa el componente o los componentes que llevan a cabo esta operacion de suma. Si se desea, tambien puede aplicarse un filtro de desbloqueo para filtrar los bloques decodificados, con el fin de eliminar distorsiones de efecto pixelado. Otros filtros de bucle (ya sea en el bucle de codificacion o despues del bucle de codificacion) tambien pueden ser usados para allanar las transiciones de pixeles, o mejorar de otro modo la calidad del video. Los bloques de video decodificados en una imagen dada son a continuacion almacenados en la memoria de imagenes de referencia 82, que almacena imagenes de referencia usadas para la posterior compensacion de movimiento. La memoria de imagenes de referencia 82 almacena tambien video decodificado para su presentacion posterior en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la FIG. 1.
De esta manera, el decodificador de video 30 de la FIG. 3 puede estar configurado para obtener las ponderaciones de prediccion para la compensacion de la iluminacion de las muestras de luma de una particion del bloque de video, una vez para la particion del bloque de video, de tal manera que la particion del bloque de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente de un tamano de transformacion de la particion de bloques de video, para calcular un bloque predicho para la particion del bloque de video utilizando las ponderaciones de prediccion y usando la compensacion de la iluminacion, y decodificar la particion del bloque de video usando el bloque predicho.
La FIG. 4 es un diagrama conceptual que ilustra un patron de prediccion de la norma 3D-AVC a modo de ejemplo. En el ejemplo de la FIG. 4, se ilustran ocho vistas y se ilustran doce ubicaciones temporales para cada vista. En general, cada fila en la FIG. 4 corresponde a una vista, mientras que cada columna indica una ubicacion temporal. Cada una de las vistas se puede identificar usando un identificador de vista ( "id_vista"), que puede ser utilizado para indicar una ubicacion de camara relativa con respecto a las otras vistas. En el ejemplo mostrado en la FIG. 4, los identificadores de vista se indican con "S0" a "S7", aunque tambien se pueden utilizar identificadores numericos de vista. Ademas, cada una de las ubicaciones temporales se puede identificar usando un valor de recuento de orden de imagenes (POC), que indica una orden de visualizacion de las imagenes. En el ejemplo mostrado en la FIG. 4, los valores de POC se indican con "T0" a "T11".
Las imagenes en la FIG. 4 se indican usando un bloque sombreado que incluye una letra, que designa si la imagen correspondiente esta intra-codificada (es decir, una trama I), o inter-codificada en una direccion (es decir, como una trama P) o en multiples direcciones (es decir, como una trama B). En general, las predicciones se indican mediante flechas, donde la imagen a la que se apunta utiliza el objeto desde el que se apunta como referencia de prediccion. Por ejemplo, la trama P de la vista S2 en la ubicacion temporal T0 se predice a partir de la trama I de la vista S0 en
5
10
15
20
25
30
35
40
45
50
55
60
65
la ubicacion temporal T0. Cada una de las imageries mostradas en la FIG. 4 puede denominarse un componente de vista.
Al igual que con la codificacion de video de vista unica, las imagenes de una secuencia de video de la norma 3D- AVC pueden codificarse predictivamente con respecto a las imagenes en diferentes ubicaciones temporales. Por ejemplo, la trama B de la vista S0 en la ubicacion temporal T1 tiene una flecha apuntando a la misma desde la trama I de la vista S0 en la ubicacion temporal T0, lo cual indica que la trama B se predice a partir de la trama I. Adicionalmente, sin embargo, en el contexto de la codificacion de video de multiples vistas, las imagenes pueden ser predichas entre vistas. Es decir, un componente de vista puede utilizar los componentes de vista en otras vistas para referencia. En la norma 3D-AVC, por ejemplo, la prediccion entre vistas se realiza como si el componente de vista en otra vista es una referencia de inter-prediccion. Las referencias potenciales entre vistas pueden ser senalizadas en la extension de la norma 3D-AVC del SPS y pueden ser modificadas por el proceso de construccion de la lista de imagenes de referencia, lo cual habilita el ordenamiento flexible de las referencias de inter-prediccion o de prediccion entre vistas.
La FIG. 4 proporciona varios ejemplos de la prediccion entre vistas. Las imagenes de la vista S1, en el ejemplo de la FIG. 4, se ilustran como predichas a partir de imagenes en diferentes ubicaciones temporales de la vista S1, asi como predichas entre vistas a partir de imagenes de imagenes de vistas S0 y S2 en las mismas ubicaciones temporales. Por ejemplo, la trama B de la vista S1 en la ubicacion temporal T1 se predice a partir de cada una de las tramas B de la vista SI en las ubicaciones temporales T0 y T2, asi como las tramas B de las vistas S0 y S2 en la ubicacion temporal T1.
En el ejemplo de la FIG. 4, la letra "B" mayuscula y la "b" minuscula estan concebidas para indicar diferentes relaciones jerarquicas entre las imagenes, en lugar de diferentes metodologias de codificacion. En general, las tramas con "B" mayuscula estan relativamente mas altas en la jerarquia de prediccion que las tramas con "b" minuscula. La FIG. 4 tambien ilustra las variaciones en la jerarquia de prediccion utilizando diferentes niveles de sombreado, donde las imagenes con una mayor magnitud de sombreado (es decir, relativamente mas oscuras) estan mas altas en la jerarquia de prediccion que aquellas imagenes que tienen menos sombreado (es decir, relativamente mas claras). Por ejemplo, todas las tramas I en la FIG. 4 se ilustran con sombreado completo, mientras que las tramas P tienen un sombreado algo mas claro, y las tramas B (y las tramas con b minuscula) tienen diversos niveles de sombreado entre si, pero siempre mas claros que el sombreado de las tramas P y las tramas I.
En general, la jerarquia de prediccion se relaciona con indices del orden de vistas, en cuanto a que las imagenes relativamente mas altas en la jerarquia de prediccion deberian ser decodificadas antes de la decodificacion de imagenes que estan relativamente mas bajas en la jerarquia, de tal modo que esas imagenes relativamente mas altas en la jerarquia se puedan utilizar como imagenes de referencia durante la decodificacion de las imagenes relativamente mas bajas en la jerarquia. Un indice de orden de vistas es un indice que indica el orden de decodificacion de componentes de vista en una unidad de acceso. Los indices de orden de vistas pueden estar implicitos en un conjunto de parametros, tal como un SPS. De esta manera, las imagenes utilizadas como imagenes de referencia pueden ser decodificadas antes de la decodificacion de las imagenes que se codifican con referencia a las imagenes de referencia.
En algunos casos, un subconjunto de todo un flujo de bits puede ser extraido para formar un sub-flujo de bits que aun se ajusta a la norma 3D-AVC. Hay muchos posibles sub-flujos de bits que las aplicaciones especificas pueden requerir, en base a, por ejemplo, un servicio proporcionado por un servidor, la capacidad, el apoyo y las capacidades de los decodificadores de uno o mas clientes y/o la preferencia de uno o varios clientes. Por ejemplo, un cliente podria requerir solo tres vistas, y podria haber dos escenarios. En un ejemplo, un cliente puede requerir una experiencia de visualizacion sin problemas y podria preferir vistas con los valores del id_vista S0, S1 y S2, mientras que otro cliente puede requerir ajustabilidad a escala de las vistas y preferir vistas con los valores de id_vista S0, S2 y S4. Ambos sub-flujos de bits se pueden decodificar como flujos de bits independientes de MVC y pueden disponer de soporte de forma simultanea.
De acuerdo con las tecnicas de esta divulgacion, los datos de video de una vista no de base se pueden predecir a partir de una vista de base. Ademas, un codificador de video, tal como el codificador de video 20 o el decodificador de video 30, puede estar configurado para realizar la compensacion de la iluminacion al codificar muestras de luma de una vista no de base. Por ejemplo, como se muestra en la FIG. 4, los datos de la vista S2 pueden predecirse entre vistas a partir de los datos de la vista S0. Asi, por ejemplo, un codificador de video puede utilizar la compensacion de iluminacion a bloques de codigo de la imagen P en el momento T0 de la vista S2 con relacion a los datos de la imagen I de vista S0 en el momento T0. A modo de ejemplo, el codificador de video puede obtener las ponderaciones de prediccion para una particion de bloque de video de un bloque de video (por ejemplo, un macro-bloque) de la imagen P en el momento T0 de la vista S2 una vez.
La FIG. 5 es un diagrama conceptual que ilustra la relacion entre un bloque de una trama de referencia predicha entre vistas y un bloque actual de una trama decodificada. En el ejemplo de la FIG. 5, un bloque actual 100 de la trama decodificada 102 se relaciona con un bloque predictivo 104, predParti, de una trama de referencia entre vistas 106, mediante un vector de movimiento 108. El vector de movimiento 108 indica el desplazamiento relativo del
5
10
15
20
25
30
35
40
45
50
55
60
65
bloque actual 100 con relacion al bloque predictivo 104.
A la izquierda, y encima, del bloque actual 100 y del bloque predictivo 104 hay bloques de muestras de luma. El bloque de muestras de luma contiguas izquierdas con respecto al bloque actual es LTDeci 110, y el bloque de muestras de luma contiguas superiores con respecto al bloque actual 100 es UTDeci 112. El bloque contiguo izquierdo en relacion con el bloque predictivo 104 es LTRefi 114, y el bloque contiguo superior en relacion con el bloque predictivo 104 es UTRefi 116.
La disposicion de UTRefi 116, LTRefi 114, UTDeci 112 y LTDeci 110, ilustrada en la FIG. 5, es simplemente un ejemplo. De acuerdo con las tecnicas de esta divulgacion, el codificador de video 20 o el decodificador de video 30 puede determinar los tamanos y/o ubicaciones de UTRefi, LTRefi, UTDeci, y LTDeci, distintos a los ilustrados en la FIG. 5. Por ejemplo, UTRefi, LTRefi, UTDeci y LTDeci pueden tener dimensiones menores que la anchura o la altura del bloque actual 100 y el bloque predictivo 104. Aunque solo un vector de movimiento, el vector de movimiento 108, se ilustra en la FIG. 5, puede haber diferentes vectores de movimiento que indican las posiciones de una o mas entre LTRefi 114 y UTRefi 116, como ejemplos.
Las FIGs. 6A a 6D son diagramas conceptuales que ilustran ejemplos de tecnicas de compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion. Como se ha descrito brevemente en lo que antecede, con respecto a la FIG. 1, el codificador de video 20 o el decodificador de video 30 puede estar configurado para utilizar bloques de regiones de muestras de luma contiguas superiores e izquierdas, de diferentes tamanos y ubicaciones. De acuerdo con las tecnicas de esta divulgacion, el codificador de video 20 o el decodificador de video 30 de las FIGs. 1 a 3 pueden estar configurado para determinar bloques de regiones de muestras de luma con un tamano de 8x4 muestras, para la region de muestras contiguas superiores, y de 4x8 muestras para la region contigua izquierda. La FIG. 6A ilustra una configuracion en la que el codificador de video 20 o el decodificador de video 30 utiliza una muestra contigua superior de tamano 8x4, de acuerdo con las tecnicas de esta divulgacion.
La FIG. 6B ilustra otra posible configuracion de bloques de regiones de muestras de luma de tamano 4x8 o 8x4, que el codificador de video 20 o el decodificador de video 30 puede ser configurado para seleccionar al realizar la aLc. En el ejemplo de la FIG. 6B, el codificador de video 20 o el decodificador de video 30 selecciona la region media de tamano 8x4 para la muestra contigua superior, y puede seleccionar un bloque de regiones de muestras de luma centrales contiguas izquierdas de tamano 4x8 (no se muestra en la FIG. 6B).
En algunos ejemplos, el codificador de video 20 o el decodificador de video 30 puede seleccionar regiones superiores cualesquiera de tamano 8x4 dentro de la region superior original de tamano 16x4, con respecto al bloque actual cuando N es igual a 16. El codificador de video 20 o el decodificador de video 30 puede seleccionar regiones cualesquiera de tamano 4x8 dentro de la region original de tamano 4x16 cuando M es igual a 16. En los casos en que los bloques de muestras de luma para la ponderacion de la ALC son de muestras de tamano 8x4 o 4x8, el codificador de video 20 o el decodificador de video 30 puede determinar la ubicacion de los uno o mas bloques de referencia de tamano 8x4 o 8x4 (es decir, LTRefi y UTRefi) de varias formas, por ejemplo, similar a lo que se hace en el borrador de trabajo actual de la norma 3D-AVC.
La FIG. 6C ilustra otra posible configuracion mas de bloques de regiones de muestras de luma para el codificador de video 20 o el decodificador de video 30. En la FIG. 6C, si N, la anchura de la particion del macro-bloque actual, o M, la altura de la particion del macro-bloque actual, no es igual a 4, el codificador de video 20 o el decodificador de video 30 determina una region de muestras de luma contiguas superiores mas a la izquierda, de tamano 4x4, para su uso al determinar factores de ponderacion para la ALC. El codificador de video 20 o el decodificador de video 30 pueden estar configurados de manera similar para determinar una region de bloques de muestras contiguas izquierdas superiores centrales (no ilustrado en la FIG. 6C).
La FIG. 6D ilustra otra posible configuracion de regiones de muestras de luma para el codificador de video 20 o el decodificador de video 30 al realizar la ALC. En el ejemplo de la FIG. 6D, si N o M no es igual a cuatro, el codificador de video 20 o el decodificador de video 30 esta configurado para determinar un bloque de regiones de muestras de luma contiguas superiores centrales de tamano 4x4 para su uso al realizar la ALC. De manera similar, en este ejemplo, el codificador de video 20 o el decodificador de video 30 esta configurado para determinar un bloque de muestras de luma contiguas izquierdas centrales de tamano 4x4, para su uso al realizar la ALC.
En otra alternativa, sin tener en cuenta el valor de N o M, el codificador de video 20 o el decodificador de video 30 puede seleccionar la region de muestras de luma superior y la region de muestras de luma izquierda, como una region que tiene un tamano de 4x4 muestras de luma. Como alternativa, el codificador de video 20 o el decodificador de video 30 puede seleccionar cualquier region de tamano 4x4 dentro de la region de tamano NX4 y 4xM.
Las FIGs. 7A a 7B son diagramas conceptuales que ilustran ejemplos de tecnicas de compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion. Como se ha descrito brevemente anteriormente, con respecto a la FIG. 1, el codificador de video 20 o el decodificador de video 30 puede estar configurado para realizar la identificacion de muestras de referencia, dependiente de la particion de macro-bloque, pero independiente de la particion de sub-bloque. En estas tecnicas, el codificador de video 20 o el decodificador de video 30 puede obtener
5
10
15
20
25
30
35
40
45
50
55
60
65
un conjunto de ponderaciones de la ALC para cada particion de macro-bloque. El codificador de video 20 o el decodificador de video 30 tambien pueden configurarse para filtrar conjuntamente pixeles dentro de una particion de macro-bloque utilizando el conjunto de ponderaciones, independientemente de la particion de sub-bloque. Por ejemplo, para una particion de macro-bloque de tamano 8x8, si la particion de tamano 8x8 se divide ademas en cuatro bloques de tamano 4x4, el codificador de video 20 o el decodificador de video 30 puede utilizar el mismo conjunto de coeficientes de filtro para los cuatro bloques, y puede filtrar los bloques de forma conjunta.
En otro ejemplo ilustrado en la FIG. 7A, el codificador de video 20 o el decodificador de video 30 selecciona las regiones de muestras de luma contiguas superiores e izquierdas para el bloque superior de tamano 4x4 y el bloque izquierdo de tamano 4x4 del bloque superior izquierdo de tamano 4x4 de una particion de macro-bloque. En este ejemplo, el codificador de video 20 o el decodificador de video 30 puede estar configurado para utilizar el vector de movimiento de la region de muestras de luma contiguas superiores y/o izquierdas de tamano 4x4, para determinar la ubicacion del bloque predictivo de las muestras de luma a partir de la vista de referencia (por ejemplo, LTRefi y UTRef i).
En otra alternativa, si una particion de macro-bloque tiene un tamano de MxN, y M o N es mas grande que 8x8, o M o N tiene un tamano igual a 8x8, pero tiene una particion de sub-bloque de tamano 8x8, el codificador de video 20 o el decodificador de video 30 puede seleccionar la region de muestras de referencia de luma izquierda, de tal manera que la region tenga un tamano de 4XN, y una region de muestras de referencia superior, de tal manera que la region de muestras de referencia superior tenga un tamano de MX4. El codificador de video 20 o el decodificador de video 30 tambien puede seleccionar la region de muestras de referencia izquierda de tal manera que la region de muestras de referencia de luma izquierda tenga un tamano de 4x8 y la region de muestras de referencia derecha de tal manera que la region de muestras de referencia de luma derecha tenga un tamano de 8x4. El codificador de video 20 o el decodificador de video 30 de tal manera que las regiones de muestras de referencia de luma izquierda y superior tengan un tamano de 4xN/2 y M/2x4, respectivamente.
En varios ejemplos, tales como los ilustrados en la FIG. 7B, el codificador de video 20 o el decodificador de video 30 puede realizar la identificacion de muestras de referencia, dependiente de la particion de macro-bloque, y dependiente de la particion de sub-bloque. En el ejemplo de la FIG. 7B, el codificador de video 20 o el decodificador de video 30 obtienen un conjunto de ponderaciones de prediccion de ALC para cada particion de MB. Sin embargo, el codificador de video 20 o el decodificador de video 30 puede utilizar diferentes tecnicas para identificar las muestras de referencia para cada particion de sub-bloque. Si la particion de macro-bloque es una particion de tamano 8x8, y la particion de sub-bloque tiene un tamano de: dos bloques de tamano 8x4 (mxn) o dos bloques de tamano 4x8 (mxn), el codificador de video 20 o el decodificador de video 30 puede seleccionar la region de muestras de referencia izquierda de modo que la region de muestras de referencia contigua izquierda tenga un tamano de 4xn y las muestras de luma de referencia superior un tamano de mx4.
En una alternativa, si la particion de macro-bloque es de tamano 8x8 y la particion de sub-bloque es de dos bloques de tamano 8x4 (mxn) o dos bloques de tamano 4x8 (mxn), el codificador de video 20 o el decodificador de video 30 puede determinar el vector de movimiento indicativo de la ubicacion del bloque predictivo de las muestras de luma para el bloque actual, sobre la base de uno de los vectores de movimiento indicativos de las ubicaciones de los bloques contiguos superiores o izquierdos de las muestras de luma de referencia. En otra alternativa, el codificador de video 20 o el decodificador de video 30 puede utilizar los vectores de movimiento que indican la ubicacion de los bloques de muestras de referencia contiguas superiores y/o izquierdas, al determinar el vector de movimiento indicativo del bloque predictivo de las muestras de luma para el bloque actual.
Las tecnicas descritas en las modificaciones al borrador de trabajo de la norma 3D-AVC incluyen tecnicas que hacen que un codificador configurado de acuerdo con las tecnicas de esta divulgacion lleve a cabo la compensacion de movimiento para determinar las ponderaciones para la ALC solo una vez por particion de macro-bloque. El codificador de video utiliza luego el mismo vector de movimiento para determinar las muestras de luma de referencia para cada particion de macro-bloque y sub-particiones cualesquiera dentro de la particion de macro-bloque.
La FIG. 8 es un diagrama de flujo que ilustra una operacion a modo de ejemplo de un dispositivo de codificacion de video configurado para realizar tecnicas de compensacion de luminancia adaptativa de acuerdo con las tecnicas de esta divulgacion. Para los fines de este ejemplo, se deberia entender que un codificador de video, tal como el codificador de video 20 o el decodificador de video 30, puede llevar a cabo el procedimiento de la FIG. 8.
En el procedimiento de la FIG. 8, el codificador de video 20 o el decodificador de video 30 puede obtener las ponderaciones de prediccion para la compensacion de la iluminacion de las muestras de luma de una particion de bloque de video, una vez por particion de bloque de video, de tal manera que la particion del bloque de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente del tamano de transformacion de las muestras de luma para la particion del bloque de video (160).
En el procedimiento de la FIG. 8, el codificador de video 20 o el decodificador de video 30 puede estar configurado ademas para calcular un bloque predicho para la particion de bloques de video, utilizando las ponderaciones de
5
10
15
20
25
30
35
40
45
50
55
60
65
prediccion y usando la compensacion de la iluminacion (162), y para codificar la particion de bloques de video usando el bloque predicho (164).
Para obtener el conjunto comun de ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 puede ademas estar configurado para obtener el conjunto comun de ponderaciones de prediccion usando muestras de luma de a lo sumo Nx4 muestras de un bloque contiguo superior, y para usar muestras de luma de a lo sumo 4xM muestras de un bloque contiguo izquierdo. En este ejemplo, N es un ancho y M es una altura, un N y M son menores o iguales a 16.
En varios ejemplos, el bloque contiguo superior tiene una altura de 1 fila de muestras de luma, y el bloque contiguo izquierdo tiene una anchura de 1 columna de muestras de luma. En algunos ejemplos, el bloque contiguo superior puede incluir solo un primer subconjunto de muestras de luma de la fila 1 de muestras de luma, y el bloque contiguo izquierdo puede incluir solo un segundo subconjunto de muestras de luma de la columna 1 de muestras de luma.
En algunos ejemplos, el bloque contiguo superior incluye solo las muestras de luma de los extremos izquierdo y derecho de las muestras de luma, y el bloque contiguo izquierdo incluye solo las muestras de luma de los extremos superior e inferior de la columna 1 de muestras de luma. En algunos otros ejemplos, uno entre N y M es uno entre 4, 8 o 16, y el otro entre N y M es igual a 16.
En otro ejemplo mas, la particion de bloques de video puede tener un tamano igual a NxM, donde N es una anchura, y M es una altura. En este ejemplo, para obtener las ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 pueden obtener las ponderaciones de prediccion utilizando al menos uno entre: una serie de columnas de pixeles en un bloque contiguo superior basado en N, y una serie de filas de pixeles en un bloque contiguo izquierdo basado en M.
En otros ejemplos mas, las Nx4 muestras del bloque contiguo izquierdo pueden comprender muestras de luma contiguas izquierdas cualesquiera de tamano 4x8, en relacion con la particion del bloque de video. En otro ejemplo, las Nx4 muestras del bloque contiguo izquierdo pueden comprender muestras de luma contiguas izquierdas cualesquiera de tamano 4x4, en relacion con la particion del bloque de video. En otro ejemplo, las 4xM muestras del bloque contiguo superior pueden comprender muestras de luma contiguas izquierdas cualesquiera de tamano 8x4, en relacion con la particion del bloque de video. En otro ejemplo, las 4xM muestras del bloque contiguo superior pueden comprender muestras de luma contiguas izquierdas cualesquiera de tamano 4x4, en relacion con el bloque de la particion de video. En otros ejemplos mas aun, si al menos uno entre N y M no es igual a 4, el bloque contiguo superior es el bloque contiguo superior mas a la izquierda, y el bloque contiguo izquierdo es el bloque contiguo izquierdo mas elevado.
En otros ejemplos mas aun, para obtener las ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 puede estar configurado ademas para obtener las ponderaciones de prediccion usando muestras finales y una muestra de centro de la fila de muestras o la columna de muestras. En otro ejemplo, para obtener las ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 puede estar configurado ademas para obtener las ponderaciones de prediccion utilizando a lo sumo cuatro muestras de la fila de muestras o la columna de muestras.
En varios ejemplos, para obtener las ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 puede estar configurado ademas para obtener las ponderaciones de prediccion utilizando uno o mas muestras de muestreo reducido. En otro ejemplo, para obtener las ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 puede estar configurado ademas para obtener las ponderaciones de prediccion utilizando uno o mas muestras de muestreo reducido y filtradas.
En otros ejemplos, si la particion tiene un tamano de 8x8, donde el conjunto comun de ponderaciones de prediccion comprende un unico conjunto de ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 puede ademas estar configurado para obtener el unico conjunto de ponderaciones de prediccion para la compensacion de la iluminacion de la particion del bloque de video en base a ponderaciones de prediccion para un bloque de muestras de luma de la particion del bloque de video.
En otro ejemplo, la particion de tamano 8x8 de muestras de luma puede comprender ademas al menos una sub- particion de muestras de luma de tamano 4x4, y el bloque utilizado para obtener las ponderaciones de prediccion puede ser una de las al menos una sub-particion de muestras de luma de tamano 4x4. En diversos ejemplos, la particion de tamano 8x8 de muestras de luma comprende ademas al menos una sub-particion de las muestras de luma de tamano 4x4. En estos ejemplos, el codificador de video 20 o el decodificador 30 de video puede ademas ser configurado para seleccionar, como el bloque utilizado para obtener las ponderaciones de prediccion, una de las al menos una sub-particion de muestras de luma de tamano 4x4 que tenga un maximo vector de movimiento entre los vectores de movimiento para las sub-particiones.
En otro ejemplo, el conjunto de ponderaciones de prediccion se basa en un conjunto de muestras de luma contiguas izquierdas previamente decodificadas, y un conjunto de muestras de luma contiguas superiores con respecto a la
5
10
15
20
25
30
35
40
45
50
55
60
65
particion de bloques de video en la misma imagen que la particion del bloque de video, y en el que el conjunto de ponderaciones de prediccion tambien se basa en un conjunto de muestras de luma contiguas izquierdas y un conjunto de muestras de luma contiguas superiores con relacion a un bloque de referencia predictivo entre vistas de las muestras de luma para la particion de bloques de video.
En otro ejemplo, el codificador de video 20 o el decodificador de video 30 puede ademas ser configurado para: determinar un vector de movimiento entre vistas para la particion de bloques de video, redondear el vector de movimiento entre vistas hasta un pixel entero y determinar el bloque de referencia predictivo entre vistas de las muestras de luma en base al vector de movimiento redondeado a mitades de enteros.
En otros ejemplos mas, el codificador de video 20 o el decodificador de video 30 puede ademas estar configurado para: determinar un vector de movimiento entre vistas para la particion de bloques de video. El codificador de video 20 o el decodificador de video 30 puede redondear el vector de movimiento entre vistas hasta mitades de enteros de pixeles, y determinar el bloque de referencia predictivo entre vistas de las muestras de luma en base al vector de movimiento redondeado hasta mitades de enteros.
En otros ejemplos mas, el bloque de referencia predictivo entre vistas puede comprender un primer bloque, y el conjunto de muestras de luma contiguas izquierdas y el conjunto de muestras de luma contiguas superiores, con respecto a un segundo bloque, diferente, de referencia entre vistas, determinado en base a un vector de movimiento redondeado que indica la ubicacion del primer bloque.
En otros ejemplos mas, la particion de bloques de video comprende una particion de bloque de video entre una o mas particiones de un bloque de video completo y, para obtener el conjunto comun de ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 esta configurado para obtener el conjunto comun de ponderaciones de prediccion una vez para todas las particiones de bloque de video en base a aquella entre las particiones de bloques de video que contiene un pixel superior izquierdo del bloque de video completo.
En otro ejemplo, la particion del bloque de video puede comprender una pluralidad de sub-bloques, y cada uno de los sub-bloques puede tener un vector de movimiento respectivo. Para obtener el conjunto comun de ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 esta configurado para obtener el conjunto comun de ponderaciones de prediccion de una vez para cada uno de los sub-bloques, en base al sub-bloque superior izquierdo de la particion del bloque de video.
En otro ejemplo mas, la particion de bloques de video puede tener un tamano igual a NxM, y al menos uno entre N y M puede ser igual a 16. En este ejemplo, para obtener las ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 esta configurado para obtener las ponderaciones de prediccion utilizando hasta N columnas de pixeles en un bloque contiguo superior o hasta M filas de pixeles en un bloque contiguo izquierdo.
En algunos ejemplos, el codificador de video 20 o el decodificador de video 30 puede estar configurado ademas para llevar a cabo una operacion de filtrado en las hasta N columnas de pixeles o las hasta M filas de pixeles para formar un conjunto de muestras intermedias. En estos ejemplos, para obtener las ponderaciones de prediccion, el codificador de video 20 o el decodificador de video 30 puede estar configurado para obtener las ponderaciones de prediccion en base, al menos en parte, a las muestras intermedias. Y en algunos ejemplos, para llevar a cabo la operacion de filtrado, el codificador de video 20 o el decodificador de video 30 puede estar configurado para realizar la operacion de filtrado en muestras dentro de las hasta N columnas o las hasta M filas que pueden formar una region de tamano 8x4, 4x8 o 4x4.
De esta manera, el procedimiento de la FIG. 8 representa un ejemplo de un procedimiento que incluye obtener ponderaciones de prediccion para la compensacion de la iluminacion de las muestras de luma de una particion de bloques de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un conjunto comun de ponderaciones de prediccion para realizar la compensacion de la iluminacion de las muestras de luma, independientemente de un tamano de transformacion para la particion de bloques de video, calcular un bloque predicho para la particion de bloques de video utilizando las ponderaciones de prediccion y utilizando la compensacion de la iluminacion, y codificar (por ejemplo, codificar o decodificar) la particion de bloques de video usando el bloque predicho.
Si bien se describen ciertas tecnicas de esta divulgacion con respecto a la norma H.264, se deberia entender que las tecnicas no se limitan necesariamente a una norma de codificacion particular. Es decir, las tecnicas se refieren mas en general al logro de eficacias de codificacion en la 3DVC, por ejemplo, mediante un procesamiento mas eficaz (por ejemplo, la codificacion) de datos de video, como se ha descrito anteriormente.
Ha de reconocerse que, segun el ejemplo, ciertos actos o sucesos de cualquiera de los procedimientos descritos en el presente documento pueden realizarse en una secuencia distinta, pueden anadirse, fundirse u omitirse por completo (por ejemplo, no todos los actos o sucesos descritos son necesarios para la puesta en practica del procedimiento). Ademas, en ciertos ejemplos, los actos o sucesos pueden realizarse simultaneamente, por ejemplo, mediante el procesamiento de multiples hebras, el procesamiento de interrupciones o multiples procesadores, en
5
10
15
20
25
30
35
40
45
50
55
60
lugar de secuencialmente. Ademas, aunque ciertos aspectos de esta divulgacion se describen como realizados por un unico modulo o unidad, con fines de claridad, se deberia entender que las tecnicas de esta divulgacion pueden ser realizadas por una combinacion de unidades o modulos asociados con un codificador de video.
En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de los mismos. Si se implementan en software, las funciones, como una o mas instrucciones o codigo, pueden almacenarse en, o transmitirse por, un medio legible por ordenador, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como medios de almacenamiento de datos o medios de comunicacion que incluyen cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion.
De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles y legibles por ordenador, que sean no transitorios, o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera, a los que se pueda acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en esta divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
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 optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda usarse para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion puede denominarse adecuadamente un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra optica, un par trenzado, una linea de abonado digital (DSL) o tecnologias inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologias inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio.
Sin embargo, deberia entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco de laser, el disco optico, el disco versatil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos normalmente reproducen datos de manera magnetica, mientras que otros discos reproducen los datos de manera optica con laser. Las combinaciones de lo anterior tambien deberian incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especificos de la aplicacion (ASIC), formaciones logicas programables en el terreno (FPGA) u otros circuitos logicos integrados o discretos equivalentes. Por consiguiente, el termino "procesador", como se usa en el presente documento, puede referirse a cualquier estructura anterior o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de hardware especializado y/o modulos de software configurados para la codificacion y la decodificacion, o incorporarse en un codec combinado. Ademas, las tecnicas podrian implementarse completamente en uno o mas circuitos o elementos logicos.
Las tecnicas de esta divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un equipo de mano inalambrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Varios componentes, modulos o unidades se describen en esta divulgacion para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente la realizacion mediante diferentes unidades de hardware. Mas bien, como se ha descrito anteriormente, pueden combinarse diversas unidades en una unidad de hardware de codec, o ser proporcionadas por una coleccion de unidades de hardware inter-operativas, incluyendo uno o mas procesadores, como se ha descrito anteriormente, conjuntamente con el software y/o firmware adecuado.
Se han descrito diversos aspectos de la divulgacion. Estos y otros aspectos estan dentro del alcance de las siguientes reivindicaciones.

Claims (15)

1.
5
10
15
2.
20
25
30
3.
35
4.
40
45
5.
50
55
60
6.
7.
REIVINDICACIONES
Un procedimiento de decodificacion de datos de video, procedimiento que comprende:
obtener (160) las ponderaciones de prediccion, en base a un tamano de una particion de bloques de video, y no en base a un tamano de transformacion para la particion de bloques de video, para la compensacion de la iluminacion de las muestras de luma de la particion de bloques de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un conjunto comun de ponderaciones de prediccion entre las muestras de luma para realizar la
compensacion de la iluminacion de las muestras de luma;
calcular (162) un bloque predicho para la particion de bloques de video utilizando las ponderaciones de prediccion y utilizando la compensacion de la iluminacion; y
decodificar (164) la particion de bloques de video usando el bloque predicho.
Un procedimiento de codificacion de datos de video, procedimiento que comprende:
obtener (160) las ponderaciones de prediccion, en base a un tamano de una particion de bloques de video, y no en base a un tamano de transformacion para la particion de bloques de video, para la compensacion de la iluminacion de las muestras de luma de la particion de bloques de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un conjunto comun de ponderaciones de prediccion entre las muestras de luma para realizar la
compensacion de la iluminacion de las muestras de luma;
calcular (162) un bloque predicho para la particion de bloques de video utilizando las ponderaciones de prediccion con compensacion de la iluminacion; y
codificar (164) la particion de bloques de video usando el bloque predicho.
El procedimiento de la reivindicacion 1 o 2, en el que la obtencion del conjunto comun de ponderaciones de prediccion comprende obtener el conjunto comun de ponderaciones de prediccion usando muestras de luma de a lo sumo Nx4 muestras de un bloque contiguo superior, y el uso de muestras de luma de a lo sumo 4xM muestras de un bloque contiguo izquierdo, en el que N es un ancho y M es una altura, y en el que N y M son menores o iguales a 16.
El procedimiento de la reivindicacion 3,
en el que el bloque contiguo superior tiene una altura de 1 fila de muestras de luma,
en el que el bloque contiguo izquierdo tiene una anchura de 1 columna de muestras de luma;
en el que el bloque contiguo superior incluye solo un primer subconjunto de muestras de luma de la fila 1 de muestras de luma, y
en el que el bloque contiguo izquierdo solo incluye un segundo subconjunto de las muestras de luma de la columna 1 de las muestras de luma.
El procedimiento de la reivindicacion 3, en el que:
las Nx4 muestras del bloque contiguo izquierdo comprenden muestras de luma contiguas izquierdas cualesquiera de tamano 4x8, en relacion con la particion de bloques de video; o
las Nx4 muestras del bloque contiguo izquierdo comprenden muestras de luma contiguas izquierdas cualesquiera de tamano 4x4, en relacion con la particion de bloques de video; o
las 4xM muestras del bloque contiguo superior comprenden muestras de luma contiguas izquierdas cualesquiera de tamano 8x4, en relacion con la particion de bloques de video; o
las 4xM muestras del bloque contiguo superior comprenden muestras de luma contiguas izquierdas cualesquiera de tamano 4x4, en relacion con la particion de bloques de video.
El procedimiento de la reivindicacion 2 o la reivindicacion 3, en el que al menos uno entre N y M no es igual a 4,
en el que el bloque contiguo superior es el bloque contiguo superior mas a la izquierda, y en el que el bloque contiguo izquierdo es el bloque contiguo izquierdo mas alto.
El procedimiento de la reivindicacion 3, en el que la obtencion de las ponderaciones de prediccion
5
10
15
20
25
30
35
40
45
50
55
60
65
comprende:
i) obtener las ponderaciones de prediccion usando muestras de los extremos izquierdo y derecho y un centro del bloque contiguo superior, y muestras de los extremos superior e inferior, y un centro del bloque contiguo izquierdo; u
ii) obtener las ponderaciones de prediccion comprende obtener las ponderaciones de prediccion utilizando a lo sumo cuatro muestras de la fila de muestras o la columna de muestras; u
iii) obtener las ponderaciones de prediccion comprende obtener las ponderaciones de prediccion utilizando una o mas muestras de muestreo reducido; u
iv) obtener las ponderaciones de prediccion comprende obtener las ponderaciones de prediccion utilizando una o mas muestras de muestreo reducido y filtradas.
8. El procedimiento de la reivindicacion 1 o 2, en el que la particion tiene un tamano de 8x8, en el que el conjunto comun de ponderaciones de prediccion comprende un unico conjunto de ponderaciones de prediccion, comprendiendo el procedimiento ademas obtener el unico conjunto de ponderaciones de prediccion para la compensacion de la iluminacion de la particion del bloque de video en base a ponderaciones de prediccion para un bloque de muestras de luma de la particion de bloques de video.
9. El procedimiento de la reivindicacion 1 o 2, en el que el conjunto de ponderaciones de prediccion se basa en un conjunto de muestras de luma contiguas izquierdas previamente decodificadas, y un conjunto de muestras de luma contiguas superiores, en relacion con la particion de bloques de video en la misma imagen que la particion de bloques de video, y en el que el conjunto de ponderaciones de prediccion tambien se basa en un conjunto de muestras de luma contiguas izquierdas y un conjunto de muestras de luma contiguas superiores, con relacion a un bloque de referencia predictivo entre vistas de las muestras de luma para la particion de bloques de video.
10. El procedimiento de la reivindicacion 9,
en el que el bloque de referencia predictivo entre vistas comprende un primer bloque,
en el que el conjunto de muestras de luma contiguas izquierdas y el conjunto de muestras de luma contiguas superiores son contiguos respecto a un segundo bloque de referencia, distinto, entre vistas, determinado en base a un vector de movimiento redondeado que indica la ubicacion del primer bloque.
11. El procedimiento de la reivindicacion 1 o 2, en el que:
i) la particion de bloques de video comprende una particion de bloques de video de una o mas particiones de bloques de video de un bloque de video completo, y en el que la obtencion del conjunto comun de ponderaciones de prediccion comprende obtener el conjunto comun de ponderaciones de prediccion una vez para todas las particiones de bloques de video, en base a aquella de las particiones de bloques de video que contiene un pixel superior izquierdo del bloque de video completo; o
ii) la particion de bloques de video comprende una pluralidad de sub-bloques, teniendo cada uno de los sub-bloques un vector de movimiento respectivo, y en el que la obtencion del conjunto comun de ponderaciones de prediccion comprende obtener el conjunto comun de ponderaciones de prediccion, una vez para cada uno de los sub-bloques, en base al sub-bloque superior izquierdo de la particion de bloques de video.
12. El procedimiento de la reivindicacion 1 o 2, en el que la particion de bloques de video tiene un tamano igual a NxM,
en la que N es una anchura, y M es una altura, y
donde obtener las ponderaciones de prediccion comprende obtener las ponderaciones de prediccion utilizando al menos uno entre: una serie de columnas de pixeles en un bloque contiguo superior, sobre la base de N, y un numero de filas de pixeles en un bloque contiguo izquierdo, basado en M.
13. Un medio de almacenamiento no transitorio legible por ordenador que comprende instrucciones que, cuando son ejecutadas, hacen que uno o mas procesadores lleven a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 12.
14. Un dispositivo para decodificar datos de video (30), dispositivo que comprende:
medios para obtener ponderaciones de prediccion, en base a un tamano de una particion de bloques de video, y no en base a un tamano de transformacion para la particion de bloques de video, para la compensacion de la iluminacion de las muestras de luma de la particion de bloques de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un
conjunto comun de ponderaciones de prediccion entre las muestras de luma para realizar la compensacion de la iluminacion de las muestras de luma;
10
15
20
medios para calcular un bloque predicho para la particion de bloques de video, utilizando las
ponderaciones de prediccion usando la compensacion de la iluminacion; y
medios para decodificar la particion de bloques de video usando el bloque predicho.
15. Un dispositivo para codificar datos de video, comprendiendo el dispositivo:
medios para obtener ponderaciones de prediccion, en base a un tamano de una particion de bloques de
video, y no en base a un tamano de transformacion para la particion de bloques de video, para la
compensacion de la iluminacion de las muestras de luma de la particion de bloques de video, una vez para la particion de bloques de video, de tal manera que la particion de bloques de video tenga un conjunto comun de ponderaciones de prediccion entre las muestras de luma para realizar la compensacion de la iluminacion de las muestras de luma;
medios para calcular un bloque predicho para la particion de bloques de video utilizando las
ponderaciones de prediccion y usando la compensacion de la iluminacion; y
medios para codificar la particion de bloques de video usando el bloque predicho.
5
ES13802489.8T 2012-11-20 2013-11-20 Compensación de luminancia adaptativa en la codificación de vídeo tridimensional Active ES2620432T3 (es)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261728739P 2012-11-20 2012-11-20
US201261728739P 2012-11-20
US201361750321P 2013-01-08 2013-01-08
US201361750321P 2013-01-08
US201314084347 2013-11-19
US14/084,347 US9667942B2 (en) 2012-11-20 2013-11-19 Adaptive luminance compensation in three dimensional video coding
PCT/US2013/070957 WO2014081799A1 (en) 2012-11-20 2013-11-20 Adaptive luminance compensation in three dimensional video coding

Publications (1)

Publication Number Publication Date
ES2620432T3 true ES2620432T3 (es) 2017-06-28

Family

ID=50727546

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13802489.8T Active ES2620432T3 (es) 2012-11-20 2013-11-20 Compensación de luminancia adaptativa en la codificación de vídeo tridimensional

Country Status (8)

Country Link
US (1) US9667942B2 (es)
EP (1) EP2923492B1 (es)
JP (2) JP6359549B2 (es)
CN (1) CN104813668B (es)
ES (1) ES2620432T3 (es)
HU (1) HUE032219T2 (es)
TW (1) TWI558178B (es)
WO (1) WO2014081799A1 (es)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
US9118929B2 (en) 2010-04-14 2015-08-25 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US8971400B2 (en) * 2010-04-14 2015-03-03 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
JP5857244B2 (ja) * 2011-03-07 2016-02-10 パナソニックIpマネジメント株式会社 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路
KR102186461B1 (ko) * 2013-04-05 2020-12-03 삼성전자주식회사 정수 픽셀의 위치와 관련하여 비디오의 부호화 및 복호화를 수행하는 방법과 그 장치
KR20140123008A (ko) * 2013-04-05 2014-10-21 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2015007159A1 (en) * 2013-07-15 2015-01-22 Mediatek Singapore Pte. Ltd. Method of disparity derived depth coding in 3d video coding
WO2015056961A1 (ko) * 2013-10-14 2015-04-23 삼성전자 주식회사 휘도 보상 여부에 따른 뷰 합성 예측 적용 방법 및 장치
WO2015192372A1 (en) * 2014-06-20 2015-12-23 Mediatek Singapore Pte. Ltd. A simplified method for illumination compensation in multi-view and 3d video coding
CN105100549B (zh) * 2015-07-27 2018-06-29 京东方科技集团股份有限公司 图像补偿方法及装置
JP6817961B2 (ja) * 2015-12-14 2021-01-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置
WO2017188782A2 (ko) * 2016-04-29 2017-11-02 세종대학교 산학협력단 영상 신호 부호화/복호화 방법 및 장치
CN109479142B (zh) * 2016-04-29 2023-10-13 世宗大学校产学协力团 用于对图像信号进行编码/解码的方法和设备
US10397569B2 (en) * 2016-06-03 2019-08-27 Mediatek Inc. Method and apparatus for template-based intra prediction in image and video coding
KR102383106B1 (ko) * 2016-07-05 2022-04-06 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN116582668A (zh) * 2016-08-11 2023-08-11 Lx 半导体科技有限公司 图像编码/解码方法以及图像数据的发送方法
EP3301915A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for omnidirectional video coding with adaptive intra most probable modes
US10880570B2 (en) * 2016-10-05 2020-12-29 Qualcomm Incorporated Systems and methods of adaptively determining template size for illumination compensation
WO2019009667A1 (ko) * 2017-07-06 2019-01-10 가온미디어 주식회사 동기화된 영상의 처리 방법 및 그 장치
US10715810B2 (en) * 2018-02-20 2020-07-14 Qualcomm Incorporated Simplified local illumination compensation
EP3554080A1 (en) 2018-04-13 2019-10-16 InterDigital VC Holdings, Inc. Methods and devices for picture encoding and decoding
WO2019234613A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partition tree with partition into 3 sub-blocks by horizontal and vertical splits
WO2020017910A1 (ko) * 2018-07-18 2020-01-23 한국전자통신연구원 지역 조명 보상을 통한 효과적인 비디오 부호화/복호화 방법 및 장치
CN110868594B (zh) 2018-08-28 2023-04-07 北京字节跳动网络技术有限公司 分割方法的冗余移除
US11132819B2 (en) * 2018-12-13 2021-09-28 Konkuk University Industrial Cooperation Corp Method and apparatus for decoding multi-view video information
CN113068025B (zh) * 2018-12-25 2023-05-12 Oppo广东移动通信有限公司 解码预测方法、装置及计算机存储介质
CN113228632B (zh) * 2019-01-16 2022-09-02 华为技术有限公司 用于局部亮度补偿的编码器、解码器、以及对应方法
US11206396B2 (en) * 2019-01-16 2021-12-21 Qualcomm Incorporated Local illumination compensation in video coding
CN113396586A (zh) * 2019-02-11 2021-09-14 北京字节跳动网络技术有限公司 条件依赖的视频块分割
EP3751853A1 (en) * 2019-06-12 2020-12-16 InterDigital VC Holdings, Inc. Method and apparatus for encoding a block and decoding based on illumination compensation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0151210B1 (ko) 1994-09-23 1998-10-15 구자홍 엠펙2를 수용하는 반화소 움직임 보상조절장치
US8284837B2 (en) 2004-09-16 2012-10-09 Thomson Licensing Video codec with weighted prediction utilizing local brightness variation
US8325822B2 (en) * 2006-01-20 2012-12-04 Qualcomm Incorporated Method and apparatus for determining an encoding method based on a distortion value related to error concealment
RU2407220C2 (ru) * 2006-09-20 2010-12-20 Ниппон Телеграф Энд Телефон Корпорейшн Способ кодирования и способ декодирования изображений, устройства для них, программа для них и носитель информации для хранения программ
KR101244917B1 (ko) * 2007-06-11 2013-03-18 삼성전자주식회사 조도 보상 방법 및 장치, 이를 이용한 영상의 부호화,복호화 방법 및 장치
KR101187580B1 (ko) * 2008-06-02 2012-10-02 삼성전자주식회사 조도 보상 방법 및 그 장치와 이를 이용한 동영상 부호화방법 및 그 장치
US9445121B2 (en) * 2008-08-04 2016-09-13 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
FR2947134A1 (fr) 2009-06-23 2010-12-24 France Telecom Procedes de codage et de decodages d'images, dispositifs de codage et de decodage, flux de donnees et programme d'ordinateur correspondants.
EP2375754A1 (en) 2010-04-09 2011-10-12 Mitsubishi Electric R&D Centre Europe B.V. Weighted motion compensation of video
KR101129713B1 (ko) * 2010-05-28 2012-03-28 광운대학교 산학협력단 영상을 깊이에 따라 계층별로 분리하여 히스토그램 매칭을 하는 다시점 영상의 조명보상 방법 및 그 기록매체
JP5742048B2 (ja) * 2011-01-04 2015-07-01 学校法人成蹊学園 カラー動画像構造変換方法及びカラー動画像構造変換装置
CN102611851A (zh) * 2012-03-01 2012-07-25 林青 一种视频图像的自动照度补偿方法及系统

Also Published As

Publication number Publication date
EP2923492B1 (en) 2016-12-21
CN104813668A (zh) 2015-07-29
EP2923492A1 (en) 2015-09-30
TWI558178B (zh) 2016-11-11
JP2016501484A (ja) 2016-01-18
US9667942B2 (en) 2017-05-30
HUE032219T2 (en) 2017-09-28
TW201436539A (zh) 2014-09-16
JP2018110409A (ja) 2018-07-12
CN104813668B (zh) 2018-09-28
JP6359549B2 (ja) 2018-07-18
WO2014081799A1 (en) 2014-05-30
US20140139627A1 (en) 2014-05-22

Similar Documents

Publication Publication Date Title
ES2620432T3 (es) Compensación de luminancia adaptativa en la codificación de vídeo tridimensional
ES2841312T3 (es) Predicción de vectores de movimiento para modelos de movimiento afines en codificación de vídeo
ES2875418T3 (es) Acceso aleatorio regional en vídeo de 360 grados
ES2736280T3 (es) Simplificaciones en la obtención de vectores de disparidad y la predicción de vectores de movimiento en codificación de vídeo 3D
ES2633150T3 (es) Predicción de vectores de movimiento en codificación de vídeo
ES2799323T3 (es) Técnicas de codificación de vídeo usando particionamiento de movimiento asimétrica
ES2900029T3 (es) Derivación de vector de movimiento en codificación de vídeo
ES2704885T3 (es) Derivación del vector de disparidad de bloque vecino en codificación de vídeo 3D
ES2842109T3 (es) Predicción residual avanzada basada en bloques para la codificación de vídeo 3D
ES2732013T3 (es) Predicción de vector de movimiento temporal basada en subunidad de predicción (PU) en la HEVC y diseño de sub-PU en la 3d-hevc
ES2841986T3 (es) Identificación de bloques usando vector de disparidad en la codificación de vídeo
ES2693707T3 (es) Modo de síntesis de visión para la codificación de vídeo tridimensional
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
ES2707890T3 (es) Codificación de vídeo de múltiples visualizaciones
ES2742026T3 (es) Determinación de vector de movimiento para codificación de vídeo
ES2706476T3 (es) Procesamiento paralelo para codificación de vídeo
ES2892479T3 (es) Modo de predicción ponderada para codificación de video escalable
ES2650729T3 (es) Construcción de la lista de imágenes de referencia para codificación de vídeo de múltiples visualizaciones y tridimensional
ES2638416T3 (es) Predicción residual avanzada (ARP) más precisa para la codificación de texturas
ES2780688T3 (es) Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo
ES2686936T3 (es) Códec 3DVC basado en MVC que soporta el modo de predicción de movimiento de visualización interna (IVMP)
ES2636967T3 (es) Vectores de disparidad derivados en codificación de vídeo 3D
ES2703062T3 (es) Síntesis de visualización en vídeo 3D
ES2834114T3 (es) Indicación de procesamiento en paralelo en codificación de vídeo