ES2588314T3 - Gestión de memoria intermedia de imágenes decodificadas de múltiple resolución para codificación de vídeo multi-capa - Google Patents

Gestión de memoria intermedia de imágenes decodificadas de múltiple resolución para codificación de vídeo multi-capa Download PDF

Info

Publication number
ES2588314T3
ES2588314T3 ES14702663.7T ES14702663T ES2588314T3 ES 2588314 T3 ES2588314 T3 ES 2588314T3 ES 14702663 T ES14702663 T ES 14702663T ES 2588314 T3 ES2588314 T3 ES 2588314T3
Authority
ES
Spain
Prior art keywords
decoded
image
dpb
video
sub
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
ES14702663.7T
Other languages
English (en)
Inventor
Ying Chen
Ye-Kui Wang
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 ES2588314T3 publication Critical patent/ES2588314T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

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

Abstract

Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento: decodificar (1100) datos de vídeo para producir una pluralidad de componentes de capa decodificada, siendo cada componente de capa decodificada de un tipo, en el que los tipos de la pluralidad de componentes de capa decodificada incluyen al menos uno entre una vista de textura de datos de vídeo de multi-vista, una vista en profundidad de datos de vídeo de multi-vista, una capa base de datos de vídeo ajustables a escala, o cada una de una o más capas de mejora de datos de vídeo ajustables a escala; caracterizado por almacenar (1110) la pluralidad de componentes de capa decodificada en sub-unidades de una memoria intermedia de imágenes decodificadas (DPB), de tal forma que un tipo diferente de componente de capa decodificada se almacene en cada sub-unidad respectiva; y realizar (1120) un proceso de gestión de la DPB en las sub-unidades, en el que el proceso de gestión de la DPB se gestiona independientemente para cada una de las sub-unidades

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Gestion de memoria intermedia de imagenes decodificadas de multiple resolucion para codificacion de video multi- capa
CAMPO TECNICO
Esta divulgacion se refiere a tecnicas para codificacion de video y, mas especfficamente, a tecnicas para codificar video multi-capa.
ANTECEDENTES
Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas digitales de difusion directa, sistemas de difusion inalambricos, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, camaras digitales, dispositivos de grabacion digitales, reproductores de multimedios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, dispositivos de videoconferencia, etc. Los dispositivos de video digital implementan tecnicas de compresion de video, tales como las descritas en los estandares definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, codificacion de video avanzada (AVC), el estandar de codificacion de video de alta eficacia (HEVC) en desarrollo actualmente, y extensiones de dichos estandares, para transmitir, recibir y almacenar informacion de video digital mas eficazmente.
El documento WO 2008/084443 describe diversos modos de decodificar datos de video para producir componentes de capa de decodificacion.
Las extensiones de algunos de los estandares que se han mencionado anteriormente, incluyendo la H.264/AVC, proporcionan tecnicas para codificacion de video multi-capa. Las tecnicas de codificacion de video multi-capa pueden incluir tecnicas de codificacion de video ajustables a escala, tecnicas de codificacion de video multi-vista, y tecnicas de codificacion de video multi-vista mas profundidad. Para producir video en estereo o tridimensional (“3D”), por ejemplo, se han propuesto tecnicas para codificacion multi-vista para su uso en la AVC, con el estandar de codificacion de video ajustable a escala (SVC) (que es la extension ajustable a escala para la H.264/AVC), y el estandar de codificacion de video multi-vista (MVC) (que se ha convertido en la extension multi-vista para la H.264/AVC).
Habitualmente, se consigue video en estereo usando dos vistas, por ejemplo, una vista izquierda y una vista derecha. Una imagen de la vista izquierda puede mostrarse esencialmente de forma simultanea con una imagen de la vista derecha para conseguir un efecto de video tridimensional. Por ejemplo, un usuario puede llevar gafas pasivas polarizadas que filtran la vista izquierda de la vista derecha. Como alternativa, las imagenes de las dos vistas pueden mostrarse en sucesion rapida, y el usuario puede llevar gafas activas que obturen rapidamente el ojo izquierdo y derecho a la misma frecuencia, pero con un desplazamiento de fase de 90 grados.
RESUMEN
En general, esta divulgacion describe tecnicas para codificacion de video multicapa. En particular, esta divulgacion se refiere a la gestion de la memoria intermedia de imagenes decodificadas (DPB) para codificacion de video multicapa.
En uno o mas ejemplos de la divulgacion, puede configurarse un codificador de video (por ejemplo, un codificador de video o un decodificador de video) para realizar los siguientes procedimientos.
En un ejemplo de la divulgacion, un procedimiento de codificacion de datos de video comprende decodificar datos de video para producir una pluralidad de componentes de capa decodificada, almacenar los componentes de capa decodificada en una o mas sub-unidades de una DPB y realizar un proceso de gestion de la DPB en las una o mas sub-unidades, en el que el proceso de gestion de la DPB se gestiona por separado para cada una entre las una o mas sub-unidades.
En otro ejemplo de la divulgacion, un aparato configurado para codificar datos de video comprende un codificador de video configurado para decodificar datos de video para producir una pluralidad de componentes de capa decodificada, almacenar los componentes de capa decodificada en una o mas sub-unidades de una DPB, y realizar un proceso de gestion de la DPB en las una o mas sub-unidades, en el que el proceso de gestion de la DPB se gestiona por separado para cada una de las una o mas sub-unidades.
En otro ejemplo de la divulgacion, un aparato configurado para codificar datos de video comprende medios para decodificar datos de video para producir una pluralidad de componentes de capa decodificada, medios para almacenar los componentes de capa decodificada en una o mas sub-unidades de una DPB, y medios para realizar un proceso de gestion de la DPB en las una o mas sub-unidades, en el que el proceso de gestion de la DPB se
5
10
15
20
25
30
35
40
45
50
55
60
65
gestiona por separado para cada una de las una o mas sub-unidades.
En otro ejemplo, esta divulgacion describe un medio de almacenamiento legible por ordenador que almacena instrucciones que, al ejecutarse, hacen que uno o mas procesadores de un dispositivo configurado para codificar datos de video decodifiquen datos de video para producir una pluralidad de componentes de capa decodificada, almacenar los componentes de capa decodificada en una o mas sub-unidades de una DPB, y realizar un proceso de gestion de la DPB en las una o mas sub-unidades, en el que el proceso de gestion de la DPB se gestiona por separado para cada una de las una o mas sub-unidades.
Los detalles de uno o mas ejemplos se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caracterfsticas, objetivos y ventajas resultaran evidentes a partir de la descripcion, los dibujos y las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
La figura 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificacion y descodificacion de video que puede utilizar las tecnicas descritas en esta divulgacion.
La figura 2 es un diagrama conceptual que ilustra un orden ejemplar de descodificacion multi-vista.
La figura 3 es un diagrama conceptual que ilustra una estructura de prediccion ejemplar para codificacion multivista.
La figura 4 es un diagrama conceptual que ilustra capas ejemplares de codificacion de video ajustable a escala.
La figura 5 es un diagrama de bloques que ilustra un codificador de video ejemplar que puede implementar las tecnicas descritas en esta divulgacion.
La figura 6 es un diagrama de bloques que ilustra un decodificador de video ejemplar que puede implementar las tecnicas descritas en esta divulgacion.
La figura 7 es un diagrama conceptual que muestra una DPB ejemplar de acuerdo a un primer ejemplo de la divulgacion.
La figura 8 es un diagrama conceptual que muestra una DPB ejemplar de acuerdo a un segundo ejemplo de la divulgacion.
La figura 9 es un diagrama conceptual que muestra una DPB ejemplar de acuerdo a un tercer ejemplo de la divulgacion.
La figura 10 es un diagrama conceptual que muestra una DPB ejemplar de acuerdo a un cuarto ejemplo de la divulgacion.
La figura 11 es un diagrama de flujo que muestra un procedimiento ejemplar de acuerdo a las tecnicas de esta divulgacion.
DESCRIPCION DETALLADA
En general, esta divulgacion describe tecnicas para la gestion de imagenes decodificadas en la codificacion de video multicapa, donde diferentes capas pueden tener diferentes resoluciones espaciales. En el contexto de esta divulgacion, una capa puede ser una capa en un proceso de codificacion de video ajustable a escala (por ejemplo, el estandar H.264/SVC o extensiones ajustables a escala de la norma incipiente de codificacion de video de alta eficacia (HEVC)), una vista de texturas en codificacion de video multi-vista o tridimensional, o una vista en profundidad en la codificacion de video en 3 dimensiones. Como otro ejemplo, una capa puede corresponder a una unica vista que incluye tanto componentes de vista de textura como componentes de vista en profundidad. Por lo tanto, el termino “capa” puede usarse generalmente en esta divulgacion para referirse a una capa en el sentido de la SVC o una vista en el sentido de la MVC. Las tecnicas de esta divulgacion pueden aplicarse a cualquier escenario de codificacion de video de ese tipo, incluyendo extensiones de multi-vista, extensiones de video tridimensional y extensiones ajustables a escala de la HEVC y la H.264/AVC.
Las tecnicas que se describen a continuacion pueden aplicarse a la codificacion de video ajustable a escala, la de multi-vista y la tridimensional basada en codecs avanzados, incluyendo la codificacion de dos o mas vistas de una imagen con mapas de profundidad. Las normas de codificacion de video incluyen las ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (tambien conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificacion de video ajustable a escala (SVC) y de codificacion de video de multi-vista (MVC). Ademas, actualmente, un nuevo estandar de codificacion de video, concretamente, la codificacion de video de alta eficacia (HEVC), esta siendo desarrollado por el Equipo de
5
10
15
20
25
30
35
40
45
50
55
60
65
Colaboracion Conjunta en Codificacion de Video (JCT-VC) del Grupo de Expertos en Codificacion de Video (VCEG) de ITU-T y el Grupo de Expertos en Imagenes en Movimiento (MPEG) de ISO/IEC. Se describe un borrador de trabajo reciente de la HEVC en el documento JCTVC-K1003, “High Efficiency Video Coding (HEVC) text specification draft 9” [“Especificacion textual de la Codificacion de Video de Alta Eficacia, borrador 9”], 11" reunion: Shanghai, China, 10 al 19 de octubre de 2012, y a 17 de diciembre de 2012, esta disponible para su descarga en
http://phenix.int-evry.fr/jct/doc end user/documents/11 Shanghai/wg11/JCTVC-K1003-v12.zip, cuyo contenido en su totalidad se incorpora en el presente documento por referencia.
Se describe un borrador mas reciente de la HEVC en el documento ITU-T H.265, SERIE H: SISTEMAS AUDIOVISUALES Y DE MULTIMEDIOS, Infraestructura de Servicios Audiovisuales - Codificacion de Video en Movimiento, “Codificacion de Video de Alta Eficacia”, abril de 2013 (en lo sucesivo en el presente documento, la “HEVC”). La HEVC se incorpora por referencia en el presente documento en su totalidad. Se han propuesto diversas extensiones para la HEVC. Una de tales extensiones es la extension de rango de la HEVC, que se describe en el documento “Especificacion textual de Extensiones de Gama de la Codificacion de Video de Alta Eficacia (HEVC): Borrador 4”, jCtVC-N1005_v1, abril de 2013 (en lo sucesivo en el presente documento, “JCTVC-N1005”). Un borrador de trabajo (WD) reciente de la HEVC ajustable a escala (SHEVC), titulado “Extension ajustable a escala de la Codificacion de Video de Alta Eficacia (HEVC), borrador 3”, Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG 16 WP 3 y ISO/IEC JTC 1/SC 29/WG 11, 14" reunion: Viena, Austria, 25 de julio al 2 de agosto de 2013, y mencionado como SHEVC WD3 en lo sucesivo en el presente documento, esta disponible en
http://phenix.it-sudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1008-v3.zip, que se incorpora por referencia en el presente documento en su totalidad.
Las soluciones actuales para la gestion de memorias intermedias de imagenes decodificadas (DPB) se orientan unicamente a situaciones en las que se almacenan diferentes capas con la misma resolucion. Es decir, las tecnicas actuales para la gestion de las DPB suponen que cada capa incluye el mismo numero de pfxeles (es decir, resolucion), dando como resultado ineficacias cuando las capas tienen un numero diferentes de pfxeles. En vista de este inconveniente, esta divulgacion describe diversos procedimientos y tecnicas para la gestion de las DPB cuando han de almacenarse multiples componentes de capa decodificada con diferentes resoluciones.
La figura 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificacion y descodificacion de video 10 que puede utilizar las tecnicas para la gestion de memorias intermedias de imagenes decodificadas en una codificacion de video multicapa descrita en esta divulgacion. Como se muestra en la figura 1, el sistema 10 incluye un dispositivo de origen 12 que genera datos de video codificado a decodificar en un momento posterior por el dispositivo de destino 14. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de escritorio, ordenadores plegables (es decir, portatiles), ordenadores de tableta, descodificadores, equipos telefonicos de mano, tales como los denominados telefonos "inteligentes", los denominados paneles "inteligentes", televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmision de flujos de video, o similares. En algunos casos, el dispositivo de origen 12 o 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 a traves de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de video codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicacion para permitir que el dispositivo de origen 12 transmita datos de video codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de video codificados pueden modularse de acuerdo a un estandar de codificacion, tal como un protocolo de comunicacion inalambrica, y transmitirse 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 lfneas de transmision ffsica. 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 encaminadores, 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.
Como alternativa, los datos codificados pueden emitirse desde la interfaz de salida 22 a un dispositivo de almacenamiento 34. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento 34 mediante una interfaz de entrada. El dispositivo de almacenamiento 34 puede incluir cualquiera entre una diversidad de medios de almacenamiento de datos de acceso distribuido o local, tales como un disco duro, discos Blu-ray, DVD, CD-ROM, una memoria flash, una memoria volatil o no volatil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento 34 puede corresponder a un servidor de ficheros u otro dispositivo de almacenamiento intermedio que pueda contener el video codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a los datos de video almacenados desde el dispositivo de almacenamiento 34 mediante flujo de transmision o descarga. El servidor de ficheros puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y de transmitir esos datos de video codificados al dispositivo de destino 14. Los servidores de ficheros ejemplares incluyen un servidor de la Red (por ejemplo, para una sede de la Red), un servidor del FTP,
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivos de almacenamiento adosados a la red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de video codificados a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion de Wi-Fi), una conexion cableada (por ejemplo, de DSL, de modem por cable, etc.), o una combinacion de ambos que sea adecuada para acceder a los datos de video codificados almacenados en un servidor de ficheros. La transmision de datos de video codificados desde el dispositivo de almacenamiento 34 puede ser una transmision por flujo, una transmision de descarga o una combinacion de ambas.
Las tecnicas de esta divulgacion para la gestion de memorias intermedias de imagenes decodificadas en la decodificacion de video de multicapa no se limitan necesariamente a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video en apoyo 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 en flujo, por ejemplo, a traves de Internet, la codificacion de video digital para el almacenamiento en un medio de almacenamiento de datos, la decodificacion de video digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para prestar soporte a una transmision de video unidireccional o bidireccional para prestar soporte a aplicaciones tales como los flujos de transmision de video, la reproduccion de video, la difusion de video y/o la telefonfa de video.
En el ejemplo de la figura 1, el dispositivo de origen 12 incluye un origen de video 18, un codificador de video 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/demodulador (modem) y/o un transmisor. En el dispositivo de origen 12, el origen de video 18 puede incluir un origen tal como un dispositivo de captura de video, por ejemplo, una videocamara, un archivo de video que contiene video capturado previamente, una interfaz de suministro de video para recibir video desde un proveedor de contenidos de video y/o un sistema de graficos de ordenador para generar datos graficos de ordenador como el video de origen, o una combinacion de dichos orfgenes. Como un ejemplo, 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, las tecnicas descritas en esta divulgacion pueden aplicarse a la codificacion de video en general, y pueden aplicarse a aplicaciones inalambricas y/o cableadas.
El video grabado, pregrabado o generado por ordenador puede ser codificado por el codificador de video 20. Los datos de video codificados pueden transmitirse directamente al dispositivo de destino 14 a traves de una interfaz de salida 22 del dispositivo de origen 12. Los datos de video codificados tambien (o como alternativa) pueden almacenarse en el dispositivo de almacenamiento 34 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para decodificacion y/o reproduccion.
El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de video 30 y un dispositivo de visualizacion 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un modem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de video codificados por el enlace 16. Los datos de video codificados comunicados por el enlace 16, o proporcionados en el dispositivo de almacenamiento 34, pueden incluir una diversidad de elementos sintacticos generados por el codificador de video 20 para su uso por un decodificador de video, tal como el decodificador de video 30, en la decodificacion de los datos de video. Dichos elementos sintacticos pueden incluirse con los datos de video codificados transmitidos en un medio de comunicacion, almacenarse en un medio de almacenamiento o almacenarse en un servidor de ficheros.
El dispositivo de pantalla 32 puede integrarse con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualizacion integrado y tambien estar configurado para mantener interfaces con un dispositivo de visualizacion externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualizacion. En general, el dispositivo de visualizacion 32 muestra los datos de video descodificados a un usuario y puede comprender cualquiera entre una amplia variedad de dispositivos de visualizacion, tales como una pantalla de cristal lfquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
El codificador de video 20 y el decodificador de video 30 pueden funcionar de acuerdo a un estandar de compresion de video, tal como el estandar de codificacion de video de alta eficacia (HEVC), actualmente en desarrollo, y puede ser conforme al modelo de prueba de la HEVC (HM). En particular, en algunos ejemplos, el codificador de video 20 y el decodificador de video pueden funcionar de acuerdo a extensiones de la HEVC que presten soporte a la codificacion de video de multi-vista, o de multi-vista mas profundidad. En otros ejemplos, el codificador de video 20 y el decodificador de video 30 pueden funcionar de acuerdo a otros estandares patentados o industriales, tales como el estandar ITU-T H.264, alternativamente denominado MPEG-4, Parte 10, codificacion de video avanzada (AVC), o extensiones de dichos estandares, incluyendo el H.264/SVC. Sin embargo, las tecnicas de esta divulgacion no estan limitadas a ninguna norma de codificacion particular. Otros ejemplos de estandares de compresion de video incluyen el MPEG-2 y el ITU-T H.263. En particular, de acuerdo a las tecnicas de esta divulgacion, el codificador de video 20 y el decodificador de video 30 pueden funcionar de acuerdo a un estandar de codificacion de video con capacidad para codificacion 3DV y/o multi-vista (por ejemplo, el 3D-HEVC, el H.264/MVC, etc.).
5
10
15
20
25
30
35
40
45
50
55
60
65
Aunque no se muestra en la figura 1, en algunos aspectos el codificador de video 20 y el descodificador de video 30 pueden estar ambos integrados en un codificador y un descodificador de audio, y pueden incluir unidades adecuadas de multiplexacion y desmultiplexacion, u otro hardware y software, para gestionar la codificacion tanto de audio como de video en un flujo de datos comun o en flujos de datos diferentes. Si procede, en algunos ejemplos, las unidades de multiplexacion y desmultiplexacion pueden ser conformes al protocolo de multiplexacion ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador de video 20 y el descodificador de video 30 pueden implementarse como cualquiera entre una amplia variedad de sistemas de circuitos de codificacion adecuados, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especfficos de la aplicacion (ASIC), formaciones de compuertas programables en el terreno (FPGA), logica discreta, software, hardware, firmware o cualquier combinacion de los mismos. Cuando las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio no transitorio adecuado, legible por ordenador, y ejecutar las instrucciones en hardware usando uno o mas procesadores para realizar las tecnicas de esta divulgacion. Tanto el codificador de video 20 como el descodificador de video 30 pueden incluirse en uno o mas codificadores o descodificadores, donde cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador combinado (codec) en un dispositivo respectivo.
La siguiente seccion de la divulgacion proporcionara un antecedente del estandar de la HEVC. Los esfuerzos de la normalizacion de la HEVC se basaron en un modelo de evolucion de un dispositivo de codificacion de video denominado modelo de prueba de la HEVC (HM). El HM presupone varias capacidades adicionales de los dispositivos de codificacion de video con respecto a los dispositivos existentes de acuerdo, por ejemplo, a la ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modalidades de codificacion de intra- prediccion, el HM puede proporcionar hasta treinta y tres modalidades de codificacion de intra-prediccion.
En general, el modelo de trabajo del HM describe que una trama o imagen de video puede dividirse en una secuencia de bloques arbolados o unidades maximas de codificacion (LCU) que incluyen tanto muestras de luma como de croma. Un bloque arbolado tiene un fin similar al de un macrobloque del estandar H.264. Una tajada incluye un cierto numero de bloques arbolados consecutivos en orden de codificacion. Una trama o imagen de video puede dividirse en una o mas tajadas. Cada bloque arbolado puede dividirse en unidades de codificacion (CU) de acuerdo a un arbol cuadruple. Por ejemplo, un bloque arbolado, como un nodo rafz del arbol cuadruple, puede dividirse en cuatro nodos hijos, y cada nodo hijo puede ser, a su vez, un nodo padre y dividirse en otros cuatro nodos hijos. Un nodo hijo final no dividido, como un nodo de hoja del arbol cuadruple, comprende un nodo de codificacion, es decir, un bloque de video codificado. Los datos sintacticos asociados a un flujo de bits codificado pueden definir un numero maximo de veces en que un bloque arbolado puede dividirse, y tambien pueden definir un tamano mfnimo de los nodos de codificacion.
Una CU incluye un nodo de codificacion y unidades de prediccion (PU) y unidades de transformacion (TU) asociadas al nodo de codificacion. Un tamano de la CU corresponde generalmente a un tamano del nodo de codificacion y debe tener habitualmente forma cuadrada. El tamano de la CU puede variar desde 8 x 8 pfxeles hasta el tamano del bloque arbolado con un maximo de 64 x 64 pfxeles, o mas. Cada CU puede contener una o mas PU y una o mas TU. Los datos sintacticos asociados a una CU pueden describir, por ejemplo, el reparto de la CU en una o mas PU. Las modalidades de reparto pueden diferir entre si la CU se codifica en modalidad de omision o modalidad directa, si se codifica en modalidad de intra-prediccion o si se codifica en modalidad de inter-prediccion. Las PU pueden repartirse para que no tengan forma cuadrada. Los datos sintacticos asociados a una CU tambien pueden describir, por ejemplo, el reparto de la CU en una o mas TU de acuerdo a un arbol cuadruple. Una TU puede tener forma cuadrada o no cuadrada.
El estandar HEVC permite transformaciones de acuerdo a las TU, que pueden ser diferentes para diferentes CU. Las TU se dimensionan habitualmente en base al tamano de las PU dentro de una CU determinada definida para una LCU dividida, aunque esto puede no ser siempre el caso. Las TU son habitualmente del mismo tamano, o menores, que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades mas pequenas usando una estructura de arbol cuadruple conocida como "arbol cuadruple residual" (RQT). Los nodos de hoja del RQT pueden denominarse unidades de transformacion (TU). Los valores de diferencia de pfxeles asociados a las TU pueden transformarse para producir coeficientes de transformacion, que pueden cuantizarse.
En general, una PU incluye datos relacionados con el proceso de prediccion. Por ejemplo, cuando la PU esta codificada en la modalidad de intra-prediccion, la PU puede incluir datos que describen una modalidad de intra- prediccion para la PU. Como otro ejemplo, cuando la PU esta codificada en la modalidad de inter-prediccion, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolucion para el vector de movimiento (por ejemplo, una precision de un cuarto de pixel o una precision de un octavo de pixel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imagenes de referencia (por ejemplo, Lista 0, Lista 1 o Lista C) para el vector de movimiento, que puede ser indicada por una direccion de prediccion.
5
10
15
20
25
30
35
40
45
50
55
60
65
En general, se usa una TU para los procesos de transformacion y de cuantizacion. Una CU dada que tiene una o mas PU tambien puede incluir una o mas unidades de transformacion (TU). Tras la prediccion, el codificador de video 20 puede calcular los valores residuales del bloque de video identificado por el nodo de codificacion de acuerdo a la PU. Despues, el nodo de codificacion se actualiza para hacer referencia a los valores residuales, en lugar del bloque de video original. Los valores residuales comprenden valores de diferencia de pfxeles que pueden transformarse en coeficientes de transformacion, cuantificarse y explorarse usando las transformaciones y otra informacion de transformacion especificada en las TU para producir coeficientes de transformacion en serie para una codificacion por entropfa. El nodo de codificacion puede actualizarse de nuevo una vez mas para hacer referencia a estos coeficientes de transformacion en serie. Esta divulgacion usa habitualmente la expresion "bloque de video" para referirse a un nodo de codificacion de una CU. En algunos casos especfficos, esta divulgacion tambien puede usar la expresion "bloque de video" para referirse a un bloque arbolado, es decir, una LCU o una CU, que incluye un nodo de codificacion y las PU y TU.
Una secuencia de video incluye habitualmente una serie de tramas o imagenes de video. Un grupo de imagenes (GOP) comprende generalmente una serie de una o mas de las imagenes de video. Un GOP puede incluir datos sintacticos en la cabecera del GOP, una cabecera de una o mas de las imagenes o en otras ubicaciones, que indican un numero de imagenes incluidas en el GOP. Cada tajada de imagen puede incluir datos sintacticos de la tajada que describen una modalidad de codificacion para la respectiva tajada. Un codificador de video 20 actua habitualmente sobre bloques de video dentro de tajadas de video individuales, con el fin de codificar los datos de video. Un bloque de video puede corresponder a un nodo de codificacion dentro de una CU. Los bloques de video pueden tener tamanos fijos o variables y pueden tener un tamano diferente segun una norma de codificacion especffica.
Como ejemplo, el HM da soporte a la prediccion en diversos tamanos de PU. Suponiendo que el tamano de una CU particular sea 2N x 2N, el HM da soporte a la intra-prediccion en tamanos de PU de 2N x 2N o N x N, y a la inter- prediccion en tamanos de PU simetricas de 2N x 2N, 2N x N, N x 2N o N x N. El HM tambien da soporte al reparto asimetrico para la inter-prediccion en tamanos de PU de 2N x nU, 2N x nD, nL x 2N y nR x 2N. En el reparto asimetrico, una direccion de una CU no se reparte, mientras que la otra direccion se reparte entre el 25 % y el 75 %. La porcion de la CU correspondiente al reparto del 25 % se indica por una "n" seguida de una indicacion de "Arriba", "Abajo", "Izquierda" o "Derecha". Por lo tanto, por ejemplo, "2N x nU" se refiere a una CU de tamano 2N x 2N que se divide horizontalmente con una PU de tamano 2N x 0,5N en la parte superior y una PU de tamano 2N x 1,5N en la parte inferior.
En esta divulgacion, "N x N" y "N por N" pueden usarse de manera intercambiable para hacer referencia a las dimensiones de pfxeles de un bloque de video en lo que respecta a la dimension vertical y la dimension horizontal, por ejemplo, 16 x 16 pfxeles o 16 por 16 pfxeles. En general, un bloque de tamano 16 x 16 tendra 16 pfxeles en la direccion vertical (y = 16) y 16 pfxeles en la direccion horizontal (x = 16). Asimismo, un bloque de tamano N x N tiene generalmente N pfxeles en la direccion vertical y N pfxeles en la direccion horizontal, donde N representa un valor entero no negativo. Los pfxeles en un bloque pueden estar dispuestos en filas y columnas. Ademas, los bloques no necesitan tener necesariamente el mismo numero de pfxeles en la direccion horizontal y en la direccion vertical. Por ejemplo, los bloques pueden comprender N x M pfxeles, donde M no es necesariamente igual a N.
Tras una codificacion intra-predictiva o inter-predictiva, usando las PU de una CU, el codificador de video 20 puede calcular los datos residuales a los que se aplican las transformaciones especificadas por las TU de la CU. Los datos residuales pueden corresponder a diferencias de pfxeles entre pfxeles de la imagen no codificada y valores de prediccion correspondientes a las CU. El codificador de video 20 puede formar los datos residuales para la CU, y despues transformar los datos residuales para producir coeficientes de transformacion.
Tras cualquier transformacion para producir coeficientes de transformacion, el codificador de video 20 puede realizar una cuantizacion de los coeficientes de transformacion. La cuantizacion se refiere generalmente a un proceso en el que los coeficientes de transformacion se cuantizan para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresion adicional. El proceso de cuantizacion puede reducir la profundidad de bits asociada a algunos de, o a todos, los coeficientes. Por ejemplo, un valor de n bits puede redondearse por lo bajo a un valor de m bits durante la cuantizacion, donde n es mayor que m.
En algunos ejemplos, el codificador de video 20 puede utilizar un orden de exploracion predefinido para explorar los coeficientes de transformacion cuantizados para producir un vector en serie que pueda codificarse por entropfa. En otros ejemplos, el codificador de video 20 puede realizar una exploracion adaptativa. Despues de la exploracion de los coeficientes de transformacion cuantizados, para formar un vector unidimensional, el codificador de video 20 puede codificar por entropfa el vector unidimensional, por ejemplo, de acuerdo a una codificacion de longitud variable adaptativa segun el contexto (CAVLC), una codificacion aritmetica binaria adaptativa segun el contexto (CABAC), una codificacion aritmetica binaria adaptativa segun el contexto basada en la sintaxis (SBAC), una codificacion por entropfa de reparto del intervalo de probabilidad (PIPE) u otra metodologfa de codificacion por entropfa. El codificador de video 20 tambien puede codificar por entropfa elementos sintacticos asociados a los datos de video codificados para su uso por el decodificador de video 30 en la decodificacion de los datos de video.
5
10
15
20
25
30
35
40
45
50
55
60
65
Para realizar una CABAC, el codificador de video 20 puede asignar un contexto, dentro de un modelo de contexto, a un simbolo a transmitir. El contexto puede referirse, por ejemplo, a si los valores adyacentes del simbolo son distintos de cero o no. Para realizar una CAVLC, el codificador de video 20 puede seleccionar un codigo de longitud variable para un simbolo a transmitir. Las palabras clave en la VLC pueden construirse de tal forma que codigos relativamente mas cortos correspondan a sfmbolos mas probables, mientras que codigos mas largos correspondan a sfmbolos menos probables. De esta manera, el uso de la VLC puede conseguir un ahorro de bits, por ejemplo, sobre el uso de palabras de codigo de igual longitud para cada simbolo a transmitir. La determinacion de la probabilidad puede basarse en un contexto asignado al simbolo.
Las extensiones de la HEVC tambien estan actualmente en desarrollo en el JCT-3V y el JCT-VC. En el JCT-3V, se estan desarrollando dos extensiones de la HEVC, la extension multi-vista (MV-HEVC) y la extension de video tridimensional (3D-HEVC). Ademas, se estan desarrollando dos extensiones de la AVC, la MVC+D y la 3D-AVC.
Las ultimas versiones de los estandares en curso se enumeran como se indica a continuacion:
- T. Suzuki, M. M. Hannuksela, Y. Chen, S. Hattori, G. Sullivan, “Extension de la MVC para la inclusion de
Mapas de Profundidades, Texto Borrador 6”, JCT3V-C1001, Equipo de Colaboracion Conjunta sobre Desarrollo de Extensiones de Codificacion de Video Tridimensional de ITU-T SG 16 WP 3 e iSo/IEC JTC 1/SC 29/WG 11, 4a reunion, disponible en http ://phenix.int-evry.
fr/jct2/doc_end_user/documents/3_Geneva/wg11JCT3V-C1001-v3.zip.
- M. M. Hannuksela, Y. Chen, T. Suzuki, J.-R. Ohm, G. Sullivan, “AVC Tridimensional, Texto Borrador 8”, JCT3V-F1002, Equipo de Colaboracion Conjunta sobre Desarrollo de Extensiones de Codificacion de Video Tridimensional de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 6a reunion, disponible en
http://phenix.int-evry.fr/jct2/doc_end_user/documents/6_Geneva/wg11JCT3V-F1002-v3.zip.
- JCT3V-F1004, “MV-HEVC, Texto Borrador 6”, G. Tech, K. Wegner, Y. Chen, M. Hannuksela, Equipo de Colaboracion Conjunta sobre Desarrollo de Extensiones de Codificacion de Video Tridimensional de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 6a reunion, disponible en
http://phenix.int- evry.fr/jct2/doc_end_user/documents/6_Geneva/wg11JCT3V-F1004-v6.zip.
- Gerhard Tech, Krzysztof Wegner, Ying Chen, Sehoon Yea, “HEVC Tridimensional, Texto Borrador 2”, JCT3V- F1001, Equipo de Colaboracion Conjunta sobre Desarrollo de Extensiones de Codificacion de Video Tridimensional de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 6a reunion, disponible en
http://phenix.int-evry.fr/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1001-v2.
Ahora se analizaran tecnicas de codificacion de video multi-vista de extensiones del estandar H.264/codificacion de video avanzada (AVC). Sin embargo, las tecnicas de esta divulgacion pueden ser aplicables con cualquier estandar de codificacion de video que de soporte a la codificacion multi-vista y/o propuestas multi-vista de codificacion tridimensional para el estandar de HEVc incipiente (por ejemplo, HEVC multi-vista y HEVC tridimensional).
La codificacion de video multi-vista (MVC) es una extension de la H.264/AVC. Se muestra un orden tfpico de decodificacion de MVC (es decir, orden de flujo de bits) en la figura 2. La disposicion del orden de decodificacion se denomina codificacion con el tiempo primero. Observese que el orden de decodificacion de las unidades de acceso puede no ser identico al orden de salida o de visualizacion. En la figura 2, cada uno de S0 a S7 se refiere a diferentes vistas del video multi-vista. Cada uno de T0 a T8 representa una instancia de tiempo de salida. Una unidad de acceso puede incluir las imagenes codificadas de todas las vistas para una instancia de tiempo de salida. Por ejemplo, una primera unidad de acceso puede incluir todas las vistas S0 a S7 para una instancia de tiempo T0, una segunda unidad de acceso puede incluir todas las vistas S0 a S7 para la instancia de tiempo T1, etc.
Con fines de brevedad, la divulgacion puede usar las siguientes definiciones:
componente de vista: Una representation codificada de una vista en una unica unidad de acceso. Cuando una vista incluye tanto representaciones de textura como de profundidad codificadas, un componente de vista puede incluir un componente de vista de textura y un componente de vista de profundidad.
componente de vista de textura: Una representation codificada de la textura de una vista en una unica unidad de acceso.
componente de vista de profundidad: Una representation codificada de la profundidad de una vista en una unica unidad de acceso.
Como se ha analizado anteriormente, en el contexto de esta divulgacion, el componente de vista, el componente de vista de textura y el componente de vista de profundidad pueden mencionarse generalmente como una capa. En la figura 2, cada una de las vistas incluye conjuntos de imagenes. Por ejemplo, la vista S0 incluye un conjunto de
5
10
15
20
25
30
35
40
45
50
55
60
65
imageries 0, 8, 16, 24, 32, 40, 48, 56 y 64, la vista S1 incluye el conjunto de imageries 1, 9, 17, 25, 33, 41, 49, 57 y 65, etc. Cada conjunto incluye dos imagenes: una imagen se denomina un componente de vista de textura, y la otra imagen se denomina un componente de vista de profundidad. El componente de vista de textura y el componente de vista de profundidad dentro de un conjunto de imagenes de una vista pueden considerarse como correspondientes entre si. Por ejemplo, el componente de vista de textura dentro de un conjunto de imagenes de una vista se considera como correspondiente al componente de vista de profundidad en el conjunto de las imagenes de la vista, y viceversa (es decir, el componente de vista de profundidad corresponde a su componente de vista de textura en el conjunto, y viceversa). Como se usa en esta divulgacion, un componente de vista de textura que corresponde a un componente de vista de profundidad puede considerarse como el componente de vista de textura y el componente de vista de profundidad que son parte de una misma vista de una unica unidad de acceso.
El componente de vista de textura incluye el contenido de imagen real que se muestra. Por ejemplo, el componente de vista de textura puede incluir los componentes de luma (Y) y croma (Cb y Cr). El componente de vista de profundidad puede indicar profundidades relativas de los pfxeles en su componente de vista de textura correspondiente. Como un ejemplo, el componente de vista de profundidad es una imagen en escala de grises que incluye unicamente valores de luma. En otras palabras, el componente de vista de profundidad puede no transportar ningun contenido de imagen, sino, en cambio, proporcionar una medida de las profundidades relativas de los pfxeles en el componente de vista de textura.
Por ejemplo, un pixel puramente blanco en el componente de vista de profundidad indica que su pixel o pfxeles correspondientes en el componente de vista de textura correspondiente esta mas cerca desde la perspectiva del espectador, y un pixel puramente negro en el componente de vista de profundidad indica que su pixel o pfxeles correspondientes en el componente de vista de textura correspondiente esta mas alejado desde la perspectiva del espectador. Los diversos tonos de gris entre negro y blanco indican diferentes niveles de profundidad. Por ejemplo, un pixel muy gris en el componente de vista de profundidad indica que su pixel correspondiente en el componente de vista de textura esta mas alejado que un pixel ligeramente gris en el componente de vista de profundidad. Dado que unicamente es necesaria la escala de grises para identificar la profundidad de los pfxeles, el componente de vista de profundidad no necesita incluir componentes de croma, ya que los valores de color para el componente de vista de profundidad pueden no servir para ningun fin.
El componente de vista de profundidad que usa unicamente valores de luma (por ejemplo, valores de intensidad) para identificar la profundidad se proporciona con fines de ilustracion y no deberfa considerarse como limitante. En otros ejemplos, puede utilizarse cualquier tecnica para indicar las profundidades relativas de los pfxeles en el componente de vista de textura.
Una estructura de prediccion de MVC tfpica (incluyendo tanto la prediccion entre imagenes dentro de cada vista como la prediccion entre vistas) para una codificacion de video multi-vista se muestra en la figura 3. Las direcciones de prediccion se indican con flechas, usando el objeto al que apuntan el objeto desde el que se apunta como la referencia de prediccion. En la MVC, la prediccion entre vistas dispone de soporte por parte de la compensacion de movimiento de disparidad, que usa la sintaxis de la compensacion de movimiento de la H.264/AVC, pero permite que se use una imagen en una vista diferente como una imagen de referencia.
En el ejemplo de la figura 3, se ilustran seis vistas (que tienen los Identificadores de vista "S0" a "S5"), y se ilustran doce ubicaciones temporales ("T0" a "T11") para cada vista. Es decir, cada fila en la figura 3 corresponde a una vista, mientras que cada columna indica una ubicacion temporal.
Aunque la MVC tiene una vista denominada base, que es decodificable por decodificadores de la H.264/AVC, y los pares de vistas estereo tambien podrfan disponer de soporte por parte de la MVC, la ventaja de la MVC es que podrfa dar soporte a un ejemplo que usa mas de dos vistas como una entrada de video tridimensional y decodifica este video tridimensional representado por las multiples vistas. Un representador de un cliente que tiene un decodificador de MVC puede esperar contenido de video tridimensional con multiples vistas.
Las imagenes en la figura 3 se indican en la interseccion de cada fila y cada columna. El estandar H.264/AVC puede usar el termino 'trama' para representar una parte del video. Esta divulgacion puede usar el termino imagen y trama de forma intercambiable.
Las imagenes en la figura 3 se ilustran usando un bloque que incluye una letra, designando la letra si la imagen correspondiente esta intra-codificada (es decir, es una imagen I), o inter-codificada en una direccion (es decir, como una imagen P) o en multiples direcciones (es decir, como una imagen B). En general, las predicciones se indican con flechas, donde las imagenes a las que apuntan usan la imagen desde la que apuntan para la referencia de prediccion. Por ejemplo, la imagen P de la vista S2 en la ubicacion temporal T0 se predice a partir de la imagen I de la vista S0 en la ubicacion temporal T0.
Tal como con la codificacion de video de vista individual, las imagenes de una secuencia de video de codificacion de video multi-vista pueden codificarse de forma predictiva con respecto a imagenes en diferentes ubicaciones temporales. Por ejemplo, la imagen b de la vista S0 en la ubicacion temporal T1 tiene una flecha que le apunta
5
10
15
20
25
30
35
40
45
50
desde la imagen I de la vista S0 en la ubicacion temporal T0, indicando que la imagen b se predice a partir de la imagen I. Adicionalmente, sin embargo, en el contexto de una codificacion de video multi-vista, las imagenes pueden predecirse entre vistas. Es decir, un componente de vista puede usar los componentes de vista en otras vistas como referencia. En la MVC, por ejemplo, la prediccion entre vistas se realiza como si el componente de vista en otra vista fuese una referencia de inter-prediccion. Las referencias entre vistas potenciales se senalizan en la extension de MVC del conjunto de parametros de secuencia (SPS) y pueden ser modificadas por el proceso de construccion de la lista de imagenes de referencia, lo que permite un ordenamiento flexible de las referencias de inter-prediccion o de prediccion entre vistas. La prediccion entre vistas es tambien una caractenstica de la extension multi-vista propuesta de la HEVC, incluyendo la HEVC tridimensional (multi-vista mas profundidad).
La figura 3 proporciona diversos ejemplos de prediccion entre vistas. Las imagenes de la vista S1, en el ejemplo de la figura 3, se ilustran como predichas a partir de imagenes en diferentes ubicaciones temporales de la vista Si, asf como predichas entre vistas a partir de imagenes de las vistas S0 y S2 en las mismas ubicaciones temporales. Por ejemplo, la imagen b de la vista Si en la ubicacion temporal T1 se predice a partir de cada una de las imagenes B de la vista S1 en las ubicaciones temporales T0 y T2, asf como las imagenes b de las vistas S0 y S2 en la ubicacion temporal T1.
En algunos ejemplos, la figura 3 puede visualizarse como ilustrando los componentes de vista de textura. Por ejemplo, las imagenes I, P, B y b ilustradas en la figura 2 pueden considerarse como componentes de vista de textura para cada una de las vistas. De acuerdo a las tecnicas descritas en esta divulgacion, para cada uno de los componentes de vista de textura ilustrados en la figura 3, hay un componente de vista de profundidad correspondiente. En algunos ejemplos, los componentes de vista de profundidad pueden predecirse de una manera similar a la ilustrada en la figura 3 para los componentes de vista de textura correspondientes.
La codificacion de dos vistas tambien puede disponer de soporte por parte de la MVC. Una de las ventajas de la MVC es que un codificador de MVC puede tomar mas de dos vistas en forma de una entrada de video tridimensional y un decodificador de la MVC puede decodificar tal representacion multi-vista. Como tal, cualquier representador con un decodificador de MVC puede decodificar contenido de video tridimensional con mas de dos vistas.
Como se ha analizado anteriormente, en la MVC, se permite la prediccion entre vistas entre imagenes en la misma unidad de acceso (lo que significa, en algunos casos, con la misma instancia de tiempo). Al codificar una imagen en una de las vistas no de base, puede anadirse una imagen en una lista de imagenes de referencia, si esta en una vista diferente pero dentro de una misma instancia de tiempo. Una imagen de referencia de prediccion entre vistas puede ponerse en cualquier posicion de una lista de imagenes de referencia, tal como cualquier imagen de referencia de inter-prediccion. Como se muestra en la figura 3, un componente de vista puede usar los componentes de vista en otras vistas como referencia. En la MVC, la prediccion entre vistas se realiza como si el componente de vista en otra vista fuese una referencia de inter-prediccion.
En la MVC, se permite la prediccion entre vistas entre imagenes en la misma unidad de acceso (es decir, con la misma instancia de tiempo). Al codificar una imagen en una de las vistas no de base, puede anadirse una imagen en una lista de imagenes de referencia, si esta en una vista diferente pero con una misma instancia de tiempo. Una imagen de referencia de prediccion entre vistas puede ponerse en cualquier posicion de una lista de imagenes de referencia, tal como cualquier imagen de referencia de inter-prediccion.
Como se muestra en la figura 3, un componente de vista puede usar los componentes de vista en otras vistas como referencia. Esto se denomina prediccion entre vistas. En la MVC, la prediccion entre vistas se realiza como si el componente de vista en otra vista fuese una referencia de inter-prediccion. Sin embargo, las referencias potenciales entre vistas se senalizan en la extension de la MVC del conjunto de parametros de secuencia (SPS) (como se muestra en la Tabla 1) y pueden ser modificadas por el proceso de construccion de la lista de imagenes de referencia, lo que permite un ordenamiento flexible de las referencias de inter-prediccion o de prediccion entre vistas.
Tabla 1 - Tabla de sintaxis de la extension de la MVC del SPS
extension_mvc_conjunto_parametros_sec( ) {
Descriptor
num_vistas_menos1
ue(v)
for( i = 0; i <= num_vistas_menos1; i++ )
id_vista[ i ]
ue(v)
for( i = 1; i <= num_vistas_menos1; i++ ) {
num_refs_ancla_l0[ i ]
ue(v)
for( j = 0; j < num_refs_ancla_l0[ i ]; j++ )
ref_ancla_l0[ i ][ j ]
ue(v)
num_refs_ancla_l1[ i ]
ue(v)
for( j = 0; j < num_refs_ancla_l1 [ i ]; j++ )
5
10
15
20
25
30
35
ref_ancla_l1[ i ][ j ]
ue(v)
}
for( i = 1; i <= num_vistas_menos1; i++ ) {
num_refs_no_ancla_l0[ i ]
ue(v)
for( j = 0; j < num_refs_no_ancla_l0[ i ]; j++ )
ref_no_ancla_l0[ i ][ j ]
ue(v)
num_refs_no_ancla_l1[ i ]
ue(v)
for( j = 0; j < num_refs_no_ancla_l1[ i ]; j++ )
ref_no_ancla_l1[ i ][ j ]
ue(v)
}
num_nivel_valores_senalizados_menos1
ue(v)
for( i = 0; i <= num_nivel_valores_senalizados_menos1; i++ ) {
nivel_idc[ i ]
u(8)
num_ops_aplicables_menos1[ i ]
ue(v)
for(j = 0; j <= num_ops_aplicables_menos1[ i ]; j++) {
id_temporal_op_aplicable[ i ][ j ]
u(3)
op_aplicable_num_vistas_objetivo_menos1[ i ][ j ]
ue(v)
for( k = 0; k <= op aplicable num vistas obietivo menos1[ i ][ i ];k++)
op_aplicable_id_vista_objetivo[ i ][ j ][ k ]
ue(v)
op_aplicable_num_vistas_menos1[ i ][ j ]
ue(v)
}
}
}
En la extension de la MVC del SPS, para cada vista, se senalizan el numero de vistas que puede usarse para formar la lista 0 de imagenes de referencia y la lista 1 de imagenes de referencia. Las relaciones de prediccion para una imagen de anclaje, como se senaliza en la extension de la MVC del SPS, pueden ser diferentes de la relacion de prediccion para una imagen no de anclaje (senalizada en la extension de la MVC del SPS) de la misma vista.
La siguiente seccion analizara la codificacion de video multi-vista y tridimensional con respecto a la HEVC. En particular, las tecnicas ejemplares de esta divulgacion son aplicables al codificar dos o mas vistas, cada una con un componente de vista de textura y un componente de vista de profundidad. La pluralidad de imagenes de video para cada vista pueden denominarse componentes de vista de textura. Cada componente de vista de textura tiene un componente de vista de profundidad correspondiente. Los componentes de vista de textura incluyen contenido de video (por ejemplo, componentes de luma y croma de valores de pixel), y los componentes de vista de profundidad pueden indicar profundidades relativas de los pfxeles dentro de los componentes de vista de textura.
Las tecnicas de esta divulgacion se refieren a la codificacion de datos de video tridimensional, codificando datos de textura y de profundidad. En general, el termino "textura" se usa para describir valores de luminancia (es decir, brillo o "luma") de una imagen y valores de crominancia (es decir, color o "croma") de la imagen. En algunos ejemplos, una imagen de textura puede incluir un conjunto de datos de luminancia y dos conjuntos de datos de crominancia, para matices azules (Cb) y matices rojos (Cr). En ciertos formatos de croma, tales como 4:2:2 o 4:2:0, los datos de croma se sub-muestrean con respecto a los datos de luma. Es decir, la resolucion espacial de los componentes de crominancia es menor que la resolucion espacial de los componentes de luminancia correspondientes, por ejemplo, un medio o un cuarto de la resolucion de luminancia.
Los datos de profundidad generalmente describen valores de profundidad para los datos de textura correspondientes. Por ejemplo, una imagen de profundidad puede incluir un conjunto de pfxeles de profundidad que describen, cada uno, la profundidad para los datos de textura correspondientes. Los datos de profundidad pueden usarse para determinar la disparidad horizontal para los datos de textura correspondientes. Por lo tanto, un dispositivo que recibe los datos de textura y profundidad puede mostrar una primera imagen de textura para una vista (por ejemplo, una vista del ojo izquierdo) y usar los datos de profundidad para modificar la primera imagen de textura, para generar una segunda imagen de textura para la otra vista (por ejemplo, una vista del ojo derecho) desplazando valores de pixel de la primera imagen en los valores de disparidad horizontal determinados en base a los valores de profundidad. En general, la disparidad horizontal (o simplemente "disparidad") describe el desplazamiento espacial horizontal de un pixel en una primera vista con respecto a un pixel correspondiente en una segunda vista, donde los dos pfxeles corresponden a la misma parte del mismo objeto, como se representa en las dos vistas.
En otros ejemplos mas, los datos de profundidad pueden definirse para los pfxeles en una dimension z perpendicular
5
10
15
20
25
30
35
40
45
50
55
60
65
al plano de imagen, de tal forma que una profundidad asociada a un pixel dado se defina con respecto a un plano de disparidad nula definido para la imagen. Dicha profundidad puede usarse para crear disparidad horizontal para mostrar el pixel, de tal forma que el pixel se muestre de forma diferente para el ojo izquierdo y el derecho, segun el valor de profundidad de la dimension z del pixel con respecto al plano de disparidad nula. El plano de disparidad nula puede cambiar para diferentes partes de una secuencia de video, y la magnitud de la profundidad relativa al plano de disparidad nula tambien puede cambiar. Los pfxeles situados en el plano de disparidad nula pueden definirse de forma similar para el ojo izquierdo y el derecho. Los pfxeles situados delante del plano de disparidad nula pueden mostrarse en diferentes ubicaciones para el ojo izquierdo y el derecho (por ejemplo, con disparidad horizontal) para crear una percepcion de que el pixel parece salir de la imagen en la direccion z perpendicular al plano de imagen. Los pfxeles situados tras el plano de disparidad nula pueden mostrarse ligeramente borrosos, para presentar una ligera percepcion de profundidad, o pueden mostrarse en ubicaciones diferentes para el ojo izquierdo y derecho (por ejemplo, sin disparidad horizontal que este opuesta a la de los pfxeles situados delante del plano de disparidad nula). Tambien pueden usarse muchas otras tecnicas para transportar o definir datos de profundidad para una imagen.
Para cada pixel en el componente de vista de profundidad, puede haber uno o mas pfxeles correspondiente en el componente de vista de textura. Por ejemplo, si las resoluciones espaciales del componente de vista de profundidad y del componente de vista de textura son iguales, cada pixel en el componente de vista de profundidad corresponde a un pixel en el componente de vista de textura. Si la resolucion espacial del componente de vista de profundidad es menor que la del componente de vista de textura, entonces cada pixel en el componente de vista de profundidad corresponde a multiples pfxeles en el componente de vista de textura. El valor del pixel en el componente de vista de profundidad puede indicar la profundidad relativa de los uno o mas pfxeles correspondientes en la vista de textura.
En algunos ejemplos, un codificador de video senaliza los datos de video para los componentes de vista de textura y los componentes de vista de profundidad correspondientes para cada una de las vistas. Un decodificador de video utiliza tanto los datos de video de componentes de vista de textura como los componentes de vista de profundidad para decodificar el contenido de video de las vistas para la visualizacion. Despues, una pantalla muestra el video de multi-vista para producir video tridimensional.
Tambien se estan desarrollando extensiones ajustables a escala de la HEVC por parte del JCT-VC. La figura 4 es un diagrama conceptual que ilustra un ejemplo de codificacion de video ajustable a escala. Aunque la figura 4 se describe con respecto a la H.264/AVC y la SVC, deberfa entenderse que pueden codificarse capas similares usando otros esquemas de codificacion de video multicapa, incluyendo la extension ajustable a escala de la HEVC. El ejemplo de la figura 4 muestra capas codificadas usando el mismo codec. En otros ejemplos, las capas pueden codificarse usando un codec de multiples estandares. Por ejemplo, una capa base puede codificarse usando la H.264/AVC, mientras que una capa de realce puede codificarse usando una extension ajustable a escala para la HEVC. Por lo tanto, las referencias a la SVC a continuacion pueden aplicarse a la codificacion de video ajustable a escala en general, y no se restringen a la H.264/SVC.
En la SVC, la ajustabilidad a escala puede habilitarse en tres dimensiones incluyendo, por ejemplo, la espacial, la temporal y la de calidad (que se representa como una tasa de bits o relacion entre senal y ruido (SNR)). En general, normalmente puede conseguirse una mejor representacion por anadidura a una representacion en cualquier dimension. Por ejemplo, en el ejemplo de la figura 4, la capa 0 se codifica en un formato intermedio comun de un cuarto (QCIF) que tiene una velocidad de tramas de 7,5 Hz y una velocidad de bits de 64 kilo-octetos por segundo (KBPS). Ademas, la capa 1 se codifica en QCIF con una velocidad de tramas de 15 Hz y una velocidad de bits de 64 KBPS, la capa 2 se codifica en CIF con una velocidad de tramas de 15 Hz y una velocidad de bits de 256 KBPS, la capa 3 se codifica en QCIF con una velocidad de tramas de 7,5 Hz y una velocidad de bits de 512 KBPS, y la capa 4 se codifica en 4CIF que tiene una velocidad de tramas de 30 Hz y una velocidad de bits en Mega-octetos por segundo (MBPS). Se ha de apreciar que el numero particular, el contenido y la disposicion de las capas mostradas en la figura 4 se proporcionan unicamente con fines de ejemplo.
En cualquier caso, una vez que un codificador de video (tal como el codificador de video 20) ha codificado el contenido de tal manera ajustable a escala, un decodificador de video (tal como el decodificador de video 30) puede usar una herramienta extractora para adaptar el contenido entregado real de acuerdo a los requisitos de la aplicacion, lo que puede depender, por ejemplo, del cliente o del canal de transmision.
En la SVC, las imagenes que tienen la capa espacial y de calidad mas baja son tfpicamente compatibles con la H.264/AVC. En el ejemplo de la figura 4, las imagenes con la mas baja capa espacial y de calidad (imagenes en la capa 0 y la capa 1, con resolucion QCIF) pueden ser compatibles con la H.264/AVC. Entre ellas, aquellas imagenes con el mas bajo nivel temporal forman la capa base temporal (capa 0). Esta capa base temporal (capa 0) puede mejorarse con imagenes de niveles temporales mas altos (capa 1).
Ademas de la capa compatible con la H.264/AVC, pueden anadirse varias capas de mejora espacial y/o de calidad para proporcionar ajustabilidades a escala, espaciales y/o de calidad. Cada capa de mejora espacial o de calidad puede ser temporalmente ajustable a escala en sf misma, con la misma estructura de ajustabilidad temporal a escala
5
10
15
20
25
30
35
40
45
50
55
60
65
que la capa compatible con la H.264/AVC.
Una vez que se ha decodificado cada una de las capas, por ejemplo, mediante el decodificador de video 30 o el bucle de reconstruccion del codificador de video 20, la capa decodificada se almacena en una DPB. Una DPB es una memoria intermedia o memoria que se usa para almacenar imagenes y, en el ejemplo de esta divulgacion, las capas o imagenes decodificadas al usar tecnicas de codificacion de video multicapa. Las capas decodificadas almacenadas en la DPB pueden usarse como referencias para la inter-prediccion (incluyendo compensacion de movimiento, prediccion entre vistas y entre capas), para el reordenamiento de la salida y el retardo de la salida. En la HEVC, y otros estandares de codificacion de video, la operacion de la DPB a menudo se especifica con relacion a un decodificador de referencia hipotetico (HRD). El codificador de video 20 y el decodificador de video 30 pueden configurarse para gestionar la DPB para realizar diversas acciones, incluyendo marcar imagenes decodificadas almacenadas en la DPB como no usadas para referencia (es decir, incapacitadas para ser usadas como una imagen de referencia para un proceso de inter prediccion), marcar una imagen decodificada para su salida (por ejemplo, al dispositivo de visualizacion 32), y marcar una imagen para su eliminacion de la DPB (tambien denominada batacazo). Una imagen se elimina habitualmente (es decir, se despena) de la DPB cuando ya no es necesaria como una imagen de referencia para una inter-prediccion y ya no es necesaria para la salida.
Ya sea la codificacion usando tecnicas de codificacion de video ajustable a escala, multi-vista o tridimensional, las diferentes capas, vistas de textura y/o vistas de profundidad pueden tener diferentes resoluciones espaciales. Es decir, los componentes (por ejemplo, componentes de vista o componentes de capa, correspondientes a un mapa de imagenes o profundidades) de diferentes capas o vistas pueden tener diferentes resoluciones espaciales. En las tecnicas de gestion de DPB existentes, las operaciones relacionadas con la salida se realizan para cada vista o capa por separado. Esto significa que, para cada vista, el marcado para la salida o eliminacion de una imagen de referencia (de una capa/vista) se hace por separado, aunque pueden aplicarse restricciones o alineaciones.
Sin perdida de generalidad, en esta divulgacion, un componente de representacion de capa decodificada, o de vista de textura/profundidad decodificada, de una unidad de acceso tambien se denomina un componente de capa decodificada de la unidad de acceso. En la codificacion de video multicapa que implica multiples resoluciones espaciales en diferentes capas, en particular, cuando se aplica una decodificacion multi-bucle, y en la que al menos dos capas mas pueden ser completamente reconstruidas durante el proceso de decodificacion, serfa necesario el almacenamiento de los componentes de capa decodificada de diferentes capas en la memoria o memorias intermedias de imagenes decodificadas.
En la SVC, se aplica una decodificacion de bucle unico, por lo tanto, unicamente la capa mas alta puede reconstruirse completamente y unicamente puede ser necesario almacenar el componente de capa decodificada de la capa mas alta en cada unidad de acceso. En las tecnicas existentes para la MVC, aunque se aplique una decodificacion de multiples bucles, se requieren diferentes vistas para tener la misma resolucion espacial. Por lo tanto, aunque han de almacenarse multiples componentes de capa decodificada en cada unidad de acceso, todos tienen la misma resolucion. Actualmente, no hay ningun mecanismo para la gestion de la DPB cuando es necesario almacenar multiples componentes de capa decodificada con diferentes resoluciones.
En vista de estos inconvenientes, esta divulgacion describe diversos mecanismos y tecnicas para la gestion de la DPB cuando han de almacenarse multiples componentes de capa decodificada con diferentes resoluciones.
La figura 5 es un diagrama de bloques que ilustra un codificador de video ejemplar 20 que puede implementar las tecnicas para la gestion de la DPB descritas en esta divulgacion. El codificador de video 20 puede configurarse para codificar los datos de video de acuerdo a cualquier tecnica de codificacion de video, incluyendo la HEVC y la H.264/AVC, asf como extensiones ajustables a escala, de multi-vista y tridimensionales de dichos estandares. El ejemplo de la figura 5 se explicara con referencia a la HEVC. A este respecto, el bucle de codificacion de video mostrado en la figura 5 puede aplicarse a cada capa de un proceso de codificacion de video ajustable a escala (es decir, capas de base y capas de mejora), a cada vista de un proceso de codificacion de video multi-vista, o tanto a las vistas de textura como de profundidad de un proceso de codificacion de video tridimensional.
El codificador de video 20 puede realizar la intra-codificacion y la inter-codificacion de bloques de video dentro de las tajadas de video. La intra-codificacion se basa en la prediccion espacial para reducir o eliminar la redundancia espacial en video dentro de una trama o imagen de video determinadas. La inter-codificacion se basa en la prediccion temporal para reducir o eliminar la redundancia temporal en video dentro de tramas o imagenes adyacentes de una secuencia de video. La intra-modalidad (modalidad I) puede referirse a cualquiera de varias modalidades de compresion basadas en el espacio. Las inter-modalidades, tales como una prediccion unidireccional (modalidad P) o una bi-prediccion (modalidad B), pueden referirse a cualquiera de varias modalidades de compresion basadas en el tiempo. Ademas, el codificador de video 20 puede realizar una prediccion entre vistas y/o una prediccion entre capas, entre diferentes vistas o capas, como se ha descrito anteriormente.
En el ejemplo de la figura 5, el codificador de video 20 incluye una unidad de procesamiento de prediccion 41, una DPB 64, un sumador 50, una unidad de procesamiento de transformacion 52, una unidad de cuantizacion 54 y una unidad de codificacion por entropfa 56. La unidad de procesamiento de prediccion 41 incluye una unidad de
5
10
15
20
25
30
35
40
45
50
55
60
65
estimacion de movimiento y disparidad 42, una unidad de compensacion de movimiento y disparidad 44 y una unidad de procesamiento de intra-prediccion 46. Para la reconstruccion de bloques de video, el codificador de video 20 incluye ademas una unidad de cuantificacion 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 figura 5) para filtrar lfmites de bloques para eliminar distorsiones de formacion de bloques de un video reconstruido. Si se desea, el filtro de desbloqueo filtrara habitualmente la salida del sumador 62. Tambien pueden usarse filtros de bucle adicionales (en bucle o post-bucle) ademas del filtro de desbloqueo.
Como se muestra en la figura 5, el codificador de video 20 recibe datos de video y puede configurarse para repartir los datos en bloques de video. Este reparto tambien incluye repartir en tajadas, losas u otras unidades mas grandes, asf como el reparto de bloques de video, por ejemplo, de acuerdo a una estructura de arbol cuadruple de las LCU y CU. El codificador de video 20 ilustra generalmente los componentes que codifican bloques de video dentro de una tajada de video que se va a codificar. El fragmento puede dividirse en multiples bloques de video (y posiblemente en conjuntos de bloques de video denominados losas). La unidad de procesamiento de prediccion 41 puede seleccionar una entre una pluralidad de modalidades de codificacion posibles, tales como una entre una pluralidad de modalidades de intra-codificacion o una entre una pluralidad de modalidades de inter-codificacion o modalidades de codificacion entre vistas, para el bloque de video actual en base a resultados de error (por ejemplo, la velocidad de codificacion y el nivel de distorsion). La unidad de procesamiento de prediccion 41 puede proporcionar el bloque intra-codificado o inter-codificado resultante al sumador 50 para generar datos de bloques residuales, y al sumador 62 para reconstruir el bloque codificado para su uso como una imagen de referencia.
La unidad de procesamiento de intra-prediccion 46 dentro de la unidad de procesamiento de prediccion 41 puede realizar una codificacion intra-predictiva del bloque de video actual con respecto a uno o mas bloques vecinos en la misma trama o tajada que el bloque actual que se va a codificar para proporcionar compresion espacial. La unidad de estimacion de movimiento y disparidad 42 y la unidad de compensacion de movimiento y disparidad 44 en la unidad de procesamiento de prediccion 41 realizan la codificacion inter-predictiva y/o la codificacion entre vistas del bloque de video actual con respecto a uno o mas bloques predictivos en una o mas imagenes de referencia, capas de imagenes de referencia y/o vistas de referencia para proporcionar prediccion temporal y entre vistas.
La unidad de estimacion de movimiento y disparidad 42 puede configurarse para determinar la modalidad de inter- prediccion y/o la modalidad de prediccion entre vistas para una tajada de video de acuerdo a un patron predeterminado para una secuencia de video. El patron predeterminado puede designar tajadas de video en la secuencia como las tajadas P o las tajadas B. La unidad de estimacion de movimiento y disparidad 42 y la unidad de compensacion de movimiento y disparidad 44 pueden estar estrechamente integradas, pero se ilustran por separado con fines conceptuales. La estimacion de movimiento, llevada a cabo por la unidad de estimacion de movimiento y disparidad 42, es el proceso de generar vectores de movimiento, que estiman el movimiento para los bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de video en una trama o imagen de video actual con respecto a un bloque predictivo dentro de una imagen de referencia. La estimacion de la disparidad, realizada por la unidad de estimacion de movimiento y disparidad 42, es el proceso de generacion de vectores de disparidad, que pueden usarse para predecir un bloque actualmente codificado a partir de un bloque en una vista diferente.
Un bloque predictivo es un bloque del que se sabe que se corresponde estrechamente con la PU del bloque de video que va a codificarse, en lo que respecta a la diferencia de pfxeles, 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 fraccionarias de pfxeles de imagenes de referencia almacenadas en la DPB 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 pfxeles de la imagen de referencia. Por lo tanto, la unidad de estimacion de movimiento 42 puede llevar a cabo una busqueda de movimiento con respecto a las posiciones de pfxeles completos y las posiciones fraccionarias de pixel y proporcionar un vector de movimiento con precision fraccionaria de pfxeles.
La unidad de estimacion de movimiento y disparidad 42 calcula un vector de movimiento (para la prediccion compensada de movimiento) y/o un vector de disparidad (para la prediccion compensada de disparidad) para una PU de un bloque de video en una tajada predicha inter-codificada o de entre vistas, comparando la posicion de la PU con la posicion de un bloque predictivo de una imagen de referencia. 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 DPB 64. Para la prediccion entre vistas, la imagen de referencia esta en una vista diferente. La unidad de estimacion de movimiento y disparidad 42 envfa el vector de movimiento y/o el vector de disparidad calculado a la unidad de codificacion por entropfa 56 y a la unidad de compensacion de movimiento 44.
La compensacion de movimiento y/o la compensacion de disparidad, realizadas por la unidad de compensacion de movimiento y disparidad 44, pueden implicar coger o generar el bloque predictivo en base al vector de movimiento determinado por la estimacion de movimiento y/o la estimacion de disparidad, posiblemente, realizando interpolaciones con respecto a una precision de sub-pfxeles. Tras recibir el vector de movimiento y/o la disparidad
5
10
15
20
25
30
35
40
45
50
55
60
65
para la PU del bloque de video actual, la unidad de compensacion de movimiento y disparidad 44 puede localizar el bloque predictivo al que apunta el vector de movimiento y/o el vector de disparidad en una de las listas de imagenes de referencia. El codificador de video 20 forma un bloque de video residual restando los valores de pfxeles del bloque predictivo a los valores de pfxeles del bloque de video actual que esta codificandose, generando valores de diferencia de pfxeles. Los valores de diferencia de pfxeles forman datos residuales para el bloque, y pueden incluir tanto componentes de diferencia de luma como de croma. El sumador 50 representa el componente o los componentes que llevan a cabo esta operacion de sustraccion. La unidad de compensacion de movimiento y disparidad 44 tambien puede generar elementos sintacticos asociados a los bloques de video y a la tajada de video, para su uso por parte del descodificador de video 30 a la hora de descodificar los bloques de video de la tajada de video.
La unidad de procesamiento 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 y disparidad 42 y la unidad de compensacion de movimiento y disparidad 44, como se ha descrito anteriormente. En particular, la unidad de procesamiento de intra-prediccion 46 puede determinar una modalidad de intra-prediccion a usar para codificar un bloque actual. En algunos ejemplos, la unidad de procesamiento 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 procesamiento de intra-prediccion 46 (o la unidad de seleccion de modalidad 40, en algunos ejemplos) puede seleccionar una modalidad de intra-prediccion adecuada a usar, entre las modalidades probadas. Por ejemplo, la unidad de procesamiento de intra-prediccion 46 puede calcular valores de velocidad y distorsion usando un analisis de velocidad y distorsion para las diversas modalidades de intra-prediccion probadas, y seleccionar la modalidad de intra-prediccion que tenga las mejores caracterfsticas de velocidad-distorsion entre las modalidades probadas. El analisis de velocidad y distorsion determina generalmente una magnitud de distorsion (o error) entre un bloque codificado y un bloque original no codificado que se codifico para generar el bloque codificado, asf como una tasa de bits (es decir, el numero de bits) usada para generar el bloque codificado. La unidad de procesamiento de intra- prediccion 46 puede calcular razones a partir de las distorsiones y velocidades de los diversos bloques codificados para determinar que modalidad de intra-prediccion presenta el mejor valor de velocidad y distorsion para el bloque.
En cualquier caso, tras seleccionar una modalidad de intra-prediccion para un bloque, la unidad de procesamiento de intra-prediccion 46 puede proporcionar informacion que indica la modalidad de intra-prediccion seleccionada para el bloque a la unidad de codificacion por entropfa 56. La unidad de codificacion por entropfa 56 puede codificar la informacion que indica a la modalidad de intra-prediccion seleccionada de acuerdo a las tecnicas de esta divulgacion. 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.
Despues de que la unidad de procesamiento de prediccion 41 genere el bloque predictivo para el bloque de video actual mediante la inter-prediccion o la intra-prediccion, el codificador de video 20 forma un bloque de video residual restando el bloque predictivo del bloque de video actual. Los datos de video residuales en el bloque residual pueden incluirse en una o mas TU y se aplicarse a la unidad de procesamiento de transformacion 52. La unidad de procesamiento de transformacion 52 transforma los datos de video residuales en coeficientes de transformacion residuales usando una transformacion, tal como una transformacion de coseno discreta (DCT) o una transformacion conceptualmente similar. La unidad de procesamiento de transformacion 52 puede convertir los datos de video residuales de un dominio de pfxeles en un dominio de transformacion, tal como un dominio de frecuencia.
La unidad de procesamiento de transformacion 52 puede enviar los coeficientes de transformacion resultantes a la unidad de cuantizacion 54. La unidad de procesamiento 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 todos, los coeficientes. El grado de cuantizacion puede modificarse ajustando un parametro de cuantizacion. En algunos ejemplos, la unidad de cuantizacion 54 puede luego llevar a cabo una exploracion de la matriz, incluyendo los coeficientes de transformacion cuantizados. Como alternativa, la unidad de codificacion por entropfa 56 puede llevar a cabo la exploracion.
Tras la cuantizacion, la unidad de codificacion por entropfa 56 codifica por entropfa los coeficientes de transformacion cuantizados. Por ejemplo, la unidad de codificacion por entropfa 56 puede llevar a cabo una codificacion de longitud variable adaptable al contexto (CAVLC), una codificacion aritmetica binaria adaptable al contexto (CABAC), una codificacion aritmetica binaria adaptable al contexto y basada en la sintaxis (SBAc), una codificacion por entropfa de la division en intervalos de probabilidad (PIPE) u otra metodologfa o tecnica de codificacion por entropfa. Tras la codificacion por entropfa realizada por la unidad de codificacion por entropfa 56, el flujo de bits codificado puede transmitirse al descodificador de video 30 o archivarse para su posterior transmision o recuperacion por el descodificador de video 30. La unidad de codificacion por entropfa 56 tambien puede codificar por entropfa los vectores de movimiento y los otros elementos sintacticos para la tajada de video actual que se codifica.
5
10
15
20
25
30
35
40
45
50
55
60
65
La unidad de cuantizacion inversa 58 y la unidad de procesamiento de transformacion inversa 60 aplican una cuantizacion inversa y una transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio de pfxeles, para su uso posterior como un bloque de referencia de una imagen de referencia. Esta parte del codificador de video 20 a veces se denomina el bucle de reconstruccion, y decodifica eficazmente un bloque de video codificado para su uso como una imagen de referencia en la inter-prediccion. Las imagenes reconstruidas se almacenan en la DPB 64.
La unidad de compensacion de movimiento y disparidad 44 puede calcular un bloque de referencia anadiendo el bloque residual a un bloque predictivo de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. La unidad de compensacion de movimiento y disparidad 44 tambien puede aplicar uno o mas filtros de interpolacion al bloque residual reconstruido para calcular valores fraccionarios de pfxeles 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 referencia para su almacenamiento en la DPB 64. El bloque de referencia puede ser usado por la unidad de estimacion de movimiento y disparidad 42 y la unidad de compensacion de movimiento y disparidad 44 como un bloque de referencia para inter-predecir un bloque en una trama o imagen de video posterior. Como se analizara en mas detalle a continuacion, el codificador de video 20 puede configurarse para realizar las tecnicas de gestion de DPB de esta divulgacion que admiten el almacenamiento y la gestion de multiples capas de datos de video en la DPB a diferentes resoluciones.
La figura 6 es un diagrama de bloques que ilustra un decodificador de video ejemplar 30 que puede implementar las tecnicas de gestion de DPB descritas en esta divulgacion. En el ejemplo de la figura 6, el decodificador de video 30 incluye una unidad de decodificacion por entropfa 80, una unidad de procesamiento de prediccion 81, una unidad de cuantizacion inversa 86, una unidad de transformacion inversa 88, un sumador 90 y una DPB 92. La unidad de procesamiento de prediccion 81 incluye una unidad de compensacion de movimiento y disparidad 82 y una unidad de procesamiento de intra-prediccion 84. En algunos ejemplos, el descodificador de video 30 puede llevar a cabo una pasada de descodificacion generalmente recfproca a la pasada de codificacion descrita con respecto al codificador de video 20 de la figura 5.
Durante el proceso de decodificacion, el decodificador de video 30 recibe un flujo de bits de video codificado que representa bloques de video de una tajada de video codificado y elementos sintacticos asociados del codificador de video 20. La unidad de decodificacion por entropfa 80 del decodificador de video 30 decodifica por entropfa el flujo de bits para generar coeficientes cuantizados, vectores de movimiento, vectores de disparidad y otros elementos sintacticos. La unidad de decodificacion por entropfa 80 envfa los vectores de movimiento, los vectores de disparidad y otros elementos sintacticos a la unidad de procesamiento de prediccion 81. El decodificador de video 30 puede recibir los elementos sintacticos en el nivel de tajada de video y/o el nivel de bloque de video.
Cuando el fragmento de video se codifica como una tajada intra-codificado (I), la unidad de procesamiento de intra- prediccion 84 de la unidad de procesamiento de prediccion 81 puede generar datos de prediccion para un bloque de video de la tajada de video actual en base a una modalidad de intra-prediccion senalizada y a datos de bloques decodificados previamente de la trama o imagen actual. Cuando la trama de video se codifica como una tajada inter- codificada (es decir, B o P) o una tajada predicha entre vistas, la unidad de compensacion de movimiento y disparidad 82 de la unidad de procesamiento de prediccion 81 produce bloques predictivos para un bloque de video de la tajada de video actual, en base a los vectores de movimiento, los vectores de disparidad y otros elementos sintacticos recibidos desde la unidad de decodificacion por entropfa 80. Los bloques predictivos pueden producirse 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 tramas de referencia, Lista 0 y Lista 1, usando tecnicas de construccion por omision en base a las imagenes de referencia almacenadas en la DPB 92.
La unidad de compensacion de movimiento y disparidad 82 determina la informacion de prediccion para un bloque de video de la tajada de video actual, analizando sintacticamente los vectores de movimiento y otros elementos sintacticos, y usa la informacion de prediccion para producir los bloques predictivos para el bloque de video actual que se esta decodificando. Por ejemplo, la unidad de compensacion de movimiento y disparidad 82 usa algunos de los elementos sintacticos recibidos para determinar una modalidad de prediccion (por ejemplo, de intra-prediccion o de inter-prediccion) usada para codificar los bloques de video de la tajada de video, un tipo de tajada de inter- prediccion o prediccion entre vistas (por ejemplo, tajada B o tajada P), la informacion de construccion para una o mas de las listas de imagenes de referencia para la tajada, los vectores de movimiento y/o los vectores de disparidad para cada bloque de video inter-codificado de la tajada, un estado de inter-prediccion para cada bloque de video inter-codificado de la tajada y otra informacion para decodificar los bloques de video en la tajada de video actual.
La unidad de compensacion de movimiento y disparidad 82 tambien puede realizar interpolacion en base a filtros de interpolacion. La unidad de compensacion de movimiento 82 puede usar filtros de interpolacion como los usados por el codificador de video 20 durante la codificacion de los bloques de video para calcular valores interpolados para fracciones de pfxeles de bloques de referencia. En este caso, la unidad de compensacion de movimiento 82 puede
5
10
15
20
25
30
35
40
45
50
55
60
65
determinar los filtros de interpolacion usados por el codificador de video 20 para los elementos sintacticos recibidos y usar los filtros de interpolacion para producir bloques predictivos.
La unidad de cuantizacion inversa 86 cuantiza de manera inversa, es decir, des-cuantiza, los coeficientes de transformacion cuantizados proporcionados en el flujo de bits y descodificados por la unidad de descodificacion por entropfa 80. 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 la tajada de video para determinar un grado de cuantizacion y, asimismo, un grado de cuantizacion inversa que deberfa aplicarse. La unidad de procesamiento de transformacion inversa 88 aplica una transformacion inversa, por ejemplo, una DCT inversa, una transformacion entera inversa o un proceso de transformacion inversa conceptualmente similar, a los coeficientes de transformacion con el fin de generar bloques residuales en el dominio de pfxeles.
Despues de que la unidad de compensacion de movimiento y disparidad 82 genere el bloque predictivo para el bloque de video actual en base a los vectores de movimiento y/o los vectores de disparidad y otros elementos sintacticos, el decodificador de video 30 forma un bloque de video decodificado sumando los bloques residuales procedentes de la unidad de procesamiento de transformacion inversa 88 con los bloques predictivos correspondientes generados por la unidad de compensacion de movimiento 82. El sumador 90 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 a fin de eliminar las distorsiones por formacion de bloques. Tambien pueden usarse otros filtros de bucle (en el bucle de codificacion o bien despues del bucle de codificacion) para allanar las transiciones de pfxeles, o mejorar de otro modo la calidad del video.
Los bloques de video decodificados en una trama o imagen dadas se almacenan entonces en la DPB 92, que almacena las imagenes de referencia usadas para una compensacion de movimiento posterior. Como se describira en mas detalle a continuacion, el decodificador de video 30 puede configurarse para realizar las tecnicas de esta divulgacion para la gestion de las DPB al almacenar multiples capas de datos de video en la DPB a diferentes resoluciones. La DPB 92 almacena tambien video decodificado para su presentacion en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la figura 1.
Un codificador de video (por ejemplo, el codificador de video 20 o el decodificador de video 30) puede configurarse para realizar cualquier combinacion de las siguientes tecnicas para la gestion de las DPB. En general, cada una de las siguientes tecnicas muestra las siguientes caracterfsticas. El codificador de video 20 y/o el decodificador de video 30 pueden configurarse para decodificar (por ejemplo, en el bucle de reconstruccion para el codificador de video 20) datos de video para producir una pluralidad de componentes de capa decodificada. El codificador de video 20 y/o el decodificador de video 30 pueden configurarse para almacenar los componentes de capa decodificada en una o mas sub-unidades de una DPB. En este contexto, una "unidad" de la DPB es un area accesible por separado de la DPB, que contiene datos de video reconstruidos o decodificados que tienen alguna caracterfstica en comun. Ademas, una sub-unidad de una DPB puede considerarse un area accesible por separado de la DPB que se gestiona y se trata ella misma como una DPB individual.
El codificador de video 20 y/o el decodificador de video 30 pueden configurarse adicionalmente para realizar un proceso de gestion de las DPB en las una o mas sub-unidades, en donde el proceso de gestion de las DPB se gestiona por separado para cada una de las una o mas sub-unidades. Los procesos de gestion de las DPB pueden incluir uno o mas entre eliminar un componente de capa decodificada de la sub-unidad, o marcar un componente de capa decodificada en la sub-unidad como no usado para referencia. De esta manera, en algunos ejemplos, las capas decodificadas y/o reconstruidas que tienen diferentes caracterfsticas (por ejemplo, resolucion espacial, tipo de capa) pueden gestionarse por separado.
En ejemplos adicionales de la divulgacion, el codificador de video 20 y/o el decodificador de video 30 pueden configurarse para realizar el proceso de gestion de las DPB en las una o mas sub-unidades, realizando el proceso de gestion de las DPB en un primer componente de capa decodificada en una unidad de acceso, y realizando el mismo proceso de gestion de las DPB en otros componentes de capa decodificada en la misma unidad de acceso.
En un ejemplo de la divulgacion, un codificador de video puede configurarse para decodificar o reconstruir datos de video para producir una pluralidad de componentes de capa decodificada, y almacenar los componentes de capa decodificada en una unica sub-unidad de una DPB, de tal forma que la unica sub-unidad de la DPB contenga una union de componentes de capa decodificada para una capa completamente reconstruida dentro de una unidad de acceso. Es decir, en este ejemplo, la DPB consiste solamente en una unica sub-unidad.
En este ejemplo de la divulgacion, la unica sub-unidad de la DPB almacena la union de componentes de capa decodificada para una capa completamente reconstruida dentro de una unidad de acceso. En algunos ejemplos, la union de componentes de capa decodificada para una capa completamente reconstruida puede ser la union de tanto los componentes de vista de textura como los componentes de vista de profundidad, multiples componentes de vista de textura, o una capa de base y una o mas capas de mejora. Una unidad de acceso es un conjunto de unidades de capa de abstraccion de red (NAL) que son consecutivos en el orden de decodificacion y contienen una imagen codificada. El tamano de las sub-unidades individuales de la DPB puede determinarse por la suma de varias
5
10
15
20
25
30
35
40
45
50
55
60
65
muestras de todos los componentes en todos los componentes de capa decodificada. Es decir, el tamano de la sub- unidad individual de la DPB puede determinarse en base a las resoluciones de todos los componentes de capa decodificada almacenados en la sub-unidad. De esta manera, el codificador de video 20 y/o el decodificador de video 30 pueden configurarse para dimensionar de forma flexible la DPB de acuerdo a la resolucion de las capas que se codifican realmente.
La figura 7 es un diagrama conceptual que muestra una DPB 700 configurada para almacenar la union de componentes de capa decodificada de todas las capas completamente reconstruidas en una unidad de acceso. Cada una de las sub-unidades 710A a 710D representa una ubicacion de almacenamiento para la union de los componentes de capa decodificada. El codificador de video puede configurarse adicionalmente para eliminar un componente de capa decodificada de la DPB 700. En este ejemplo de la divulgacion, la eliminacion de un componente particular de capa decodificada de la DPB (por ejemplo, la eliminacion de un componente de vista de textura) tambien elimina toda una unidad de acceso decodificado relacionada con el componente de capa decodificada de la DPB (por ejemplo, tambien elimina otros componentes de vista de textura y/o componentes de vista de profundidad). El codificador de video puede configurarse adicionalmente para marcar un componente de capa decodificada en la DPB como no usado para referencia. Asimismo, en este ejemplo, el marcado de un componente particular de capa decodificada (por ejemplo, un componente de vista de textura) como no usado para referencia tambien marca toda una unidad de acceso decodificada, relacionada con el componente de capa decodificada (por ejemplo, marcando tambien otros componentes de vista de textura y/o componentes de vista de profundidad) como no usado para referencia.
En otro ejemplo de la divulgacion, un codificador de video (por ejemplo, el codificador de video 20 y/o el decodificador de video 30) puede configurarse para decodificar datos de video para producir una pluralidad de componentes de capa decodificada. En algunos casos, los componentes de capa decodificada tienen al menos dos resoluciones espaciales diferentes. El codificador de video puede configurarse adicionalmente para almacenar los componentes de capa decodificada en una entre una pluralidad de sub-unidades de una memoria intermedia de imagenes decodificadas (DPB), segun la resolucion espacial de los componentes de capa decodificada. Por ejemplo, cada una entre la pluralidad de sub-unidades se asocia a una resolucion espacial diferente. De esta manera, un codificador de video puede configurarse para almacenar los componentes de capa decodificada (por ejemplo, un componente de vista de textura, un componente de vista de profundidad, una capa de base, una capa de mejora, etc.) en ciertas sub-unidades en base a su resolucion. De esta manera, cada resolucion puede manipularse por separado.
La figura 8 es un diagrama conceptual que muestra una DPB 800 configurada para almacenar los componentes de capa decodificada a diferentes resoluciones en diferentes sub-unidades. Cada una de las sub-unidades 810A a 810D representa ubicaciones de almacenamiento para componentes de capa decodificada a diferentes resoluciones. Por ejemplo, cada una de las sub-unidades 810A a 810D esta disenada para el almacenamiento de una resolucion diferente 1 a 4. Cada una de las sub-unidades 810A a 810D contiene unidades separadas que estan configuradas para almacenar un componente de capa decodificada asociado a una imagen. Como una ilustracion ejemplar, un componente de vista de textura de una imagen puede almacenarse en una sub-unidad correspondiente a la resolucion del componente de vista de textura (por ejemplo, la sub-unidad 810A), mientras que un componente de vista de profundidad de la misma imagen puede almacenarse en diferentes sub-unidades correspondientes a la resolucion (habitualmente inferior) del componente de vista de profundidad (por ejemplo, la sub-unidad 810B).
El codificador de video puede configurarse adicionalmente para eliminar los componentes de capa decodificada de la pluralidad de sub-unidades 810A a 810D. En este ejemplo de la divulgacion, la eliminacion de los componentes de capa decodificada se gestiona por separado para cada sub-unidad. Por ejemplo, la eliminacion de un componente de vista de textura de la sub-unidad 810A no eliminara el componente de vista de profundidad asociado que tiene una resolucion diferente (por ejemplo, un componente de vista de profundidad asociado, almacenado en la sub- unidad 810B). Asimismo, el codificador de video puede configurarse adicionalmente para marcar los componentes de capa decodificada como no usados para referencia en la pluralidad de sub-unidades, donde el marcado se gestiona por separado para cada sub-unidad.
En un ejemplo adicional, el codificador de video tambien puede configurarse para eliminar un componente de capa decodificada de una entre la pluralidad de sub-unidades 810A a 810D, donde la eliminacion del componente de capa decodificada tambien elimina toda una unidad de acceso decodificado, relacionada con el componente de capa decodificada, de una entre la pluralidad de sub-unidades 810A a 810D. El codificador de video puede configurarse adicionalmente para marcar un componente de capa decodificada en una entre la pluralidad de sub-unidades como no usado para referencia, donde el marcado del componente de capa decodificada tambien marca toda una unidad de acceso decodificado, relacionada con el componente de capa decodificada, como no usado para referencia.
Si bien las sub-unidades ejemplares en el ejemplo de la figura 8 se categorizaron por resolucion espacial, otros ejemplos de la divulgacion pueden usar diferente categorizacion. Por ejemplo, cada una entre la pluralidad de sub- unidades puede asociarse a una resolucion espacial, formato de muestreo de croma o profundidad de bits diferente, o a cualquier combinacion de resolucion espacial, formato de muestreo de croma y profundidad de bits.
5
10
15
20
25
30
35
40
45
50
55
60
65
En otro ejemplo de la divulgacion, un codificador de video puede configurarse para decodificar datos de video para producir una pluralidad de componentes de capa decodificada. El codificador de video puede configurarse adicionalmente para almacenar los componentes de capa decodificada en una entre una pluralidad de sub-unidades, donde cada una entre la pluralidad de sub-unidades esta asociada a una capa completamente reconstruida diferente. Por ejemplo, para la codificacion de video tridimensional, puede usarse una sub-unidad para almacenar componentes de vista de textura, mientras que puede usarse otra sub-unidad para almacenar componentes de vista de profundidad. Dado que los componentes de vista de textura y los componentes de vista de profundidad habitualmente tienen diferentes resoluciones, tal tecnica permite la gestion independiente de capas decodificadas a diferentes resoluciones. Es decir, como el ejemplo de la figura 8, cada sub-unidad puede gestionarse por separado.
La figura 9 es un diagrama conceptual que muestra una DPB 900 configurada para almacenar diferentes componentes de capa decodificada en diferentes sub-unidades. Cada una de las sub-unidades 910A a 910D representa ubicaciones de almacenamiento para diferentes tipos de componentes de capa decodificada a diferentes resoluciones. Por ejemplo, la sub-unidad 910A puede usarse para almacenar componentes de vista de textura, mientras que la sub-unidad 910B puede usarse para almacenar componentes de vista de profundidad. De forma similar, la sub-unidad 910C puede usarse para almacenar las capas de base en un proceso de codificacion de video ajustable a escala, mientras que la sub-unidad 910D puede usarse para almacenar un nivel de capas de mejora en un proceso de codificacion de video ajustable a escala. Las sub-unidades adicionales pueden configurarse para el almacenamiento de niveles adicionales de capas de mejora o componentes adicionales de vista de textura. Cada una de las sub-unidades 910A a 910D contiene unidades individuales que estan configuradas para almacenar un componente de capa decodificada asociado a una imagen.
El codificador de video puede configurarse adicionalmente para eliminar los componentes de capa decodificada de la pluralidad de sub-unidades 910A a 910D, donde la eliminacion se gestiona por separado para cada sub-unidad. El codificador de video puede configurarse adicionalmente para marcar los componentes de capa decodificada como no usados para referencia en la pluralidad de sub-unidades 910A a 910D, donde el marcado se gestiona por separado para cada sub-unidad. El codificador de video puede configurarse adicionalmente para eliminar un componente de capa decodificada de una entre la pluralidad de sub-unidades 910A a 910D, donde la eliminacion del componente de capa decodificada tambien elimina la totalidad de una unidad de acceso decodificado, relacionada con el componente de capa decodificada, de una entre la pluralidad de sub-unidades 910A a 910D. El codificador de video puede configurarse adicionalmente para marcar un componente de capa decodificada, en una entre la pluralidad de sub-unidades 910A a 910D, como no usado para referencia, donde el marcado del componente de capa decodificada tambien marca toda la unidad de acceso decodificado, relacionada con el componente de capa decodificada, como no usada para referencia.
En otro ejemplo de la divulgacion, un codificador de video puede configurarse para decodificar datos de video para producir una pluralidad de componentes de capa decodificada, y almacenar los componentes de capa decodificada en una entre la pluralidad de sub-unidades de una memoria intermedia de imagenes decodificadas (DPB), de tal forma que cada sub-unidad de la DPB corresponda a un componente de capa decodificada que tenga la mas alta resolucion espacial. Es decir, el tamano de cada una de las sub-unidades de la DPB se configura para que sea igual al componente de capa decodificada que tenga la mas alta resolucion. Cada una entre la pluralidad de sub-unidades de la DPB puede almacenar un componente de capa decodificada, independientemente de la resolucion del componente de capa decodificada.
La figura 10 es un diagrama conceptual que muestra una DPB 1000 configurada para almacenar componentes de capa decodificada. Cada una de las sub-unidades 1010A a 1010D representa una ubicacion de almacenamiento para un componente de capa decodificada, correspondiendo el tamano de cada una de las sub-unidades a la resolucion espacial del componente de capa decodificada que tenga la mas alta resolucion. El codificador de video puede configurarse adicionalmente para eliminar un componente de capa decodificada de la DPB 1000, donde la eliminacion del componente de capa decodificada tambien elimina la totalidad de la unidad de acceso decodificado, relacionada con el componente de capa decodificada, de la DPB 1000. El codificador de video puede configurarse adicionalmente para marcar un componente de capa decodificada en la DPB 1000 como no usado para referencia, donde el marcado del componente de capa decodificada tambien marca la totalidad de la unidad de acceso decodificado, relacionada con el componente de capa decodificada, como no usada para referencia.
Para resumir, en un primer ejemplo de la divulgacion, una unica sub-unidad de una DPB almacena la union de los componentes de capa decodificada de todas las capas completamente reconstruidas dentro de una unidad de acceso. Este primer ejemplo puede incluir una o mas de las siguientes tecnicas y/o estructuras:
- El tamano de la sub-unidad individual de una DPB puede determinarse por la suma del numero de muestras de todos los componentes en todos los componentes de capa decodificada.
- La eliminacion de una imagen decodificada incluye la eliminacion de toda una unidad de acceso decodificada.
- El marcado de la imagen decodificada como "no usada para referencia" incluye el marcado de toda la unidad de acceso decodificada como "no usada para referencia".
5
10
15
20
25
30
35
40
45
50
55
60
65
En un segundo ejemplo de la divulgacion, la DPB puede incluir multiples sub-unidades, cada una de las cuales esta asociada a una resolucion espacial diferente. Los componentes de capa decodificada para cada capa se gestionan por separado (incluyendo tanto el marcado como la eliminacion). Ademas, durante la invocacion del proceso de gestion de las DPB para una unidad de acceso en una capa especffica, los componentes de capa decodificada de otras capas en la misma unidad de acceso pueden marcarse como "no usados para referenda" y eliminarse de las sub-unidades para esos componentes de capa decodificada. Como alternativa, ademas, cada sub-unidad puede asociarse a una combinacion diferente de resoluciones espaciales, formatos de muestreo de croma y profundidades de bits.
En un tercer ejemplo de la divulgacion, una DPB puede configurarse para incluir multiples sub-unidades, cada una de las cuales esta asociada a una capa completamente reconstruida diferente. Los componentes de capa decodificada para cada capa se gestionan por separado (incluyendo tanto el marcado como la eliminacion). Ademas, durante la invocacion del proceso de gestion de las DPB para una unidad de acceso en una capa especffica, los componentes de capa decodificada de otras capas en la misma unidad de acceso pueden marcarse como "no usados para referenda" y eliminarse de las sub-unidades para esos componentes de capa decodificada.
En un cuarto ejemplo de la divulgacion, cada sub-unidad en una DPB corresponde a un componente de capa decodificada de la capa con la mas alta resolucion. Cada sub-unidad se usa para almacenamiento de un componente de capa decodificada, independientemente de la resolucion del componente de capa decodificada. Ademas, durante la invocacion del proceso de gestion de las DPB para una unidad de acceso en una capa especffica, los componentes de capa decodificada de otras capas en la misma unidad de acceso pueden marcarse como "no usados para referenda" y eliminarse de la DPB.
La figura 11 es un diagrama de flujo que muestra un procedimiento ejemplar de acuerdo a las tecnicas de esta divulgacion. Las tecnicas de la figura 11 pueden ser ejecutadas por una o mas unidades funcionales del codificador de video 20 y/o del decodificador de video 30, incluyendo, por ejemplo, la DPB 64 y la DPB 92.
En un ejemplo de la divulgacion, el codificador de video 20 y/o el decodificador de video 30 pueden configurarse para decodificar datos de video para producir una pluralidad de componentes de capa decodificada (1100), almacenar los componentes de capa decodificada en una o mas sub-unidades de una DPB (1110) y realizar un proceso de gestion de la DPB en las una o mas sub-unidades, donde el proceso de gestion de la DPB se gestiona por separado para cada una de las una o mas sub-unidades (1120). En un ejemplo de la divulgacion, el proceso de gestion de la DPB comprende uno o mas entre eliminar un componente de capa decodificada de la sub-unidad o marcar un componente de capa decodificada en la sub-unidad como no usado para referencia. En otro ejemplo de la divulgacion, el codificador de video 20 y/o el decodificador de video 30 se configuran adicionalmente para realizar el proceso de gestion de la DPB en un primer componente de capa decodificada en una unidad de acceso, y realizar el mismo proceso de gestion de la DPB en otros componentes de capa decodificada en la misma unidad de acceso.
En un ejemplo de la divulgacion, los componentes de capa decodificada tienen al menos dos resoluciones espaciales diferentes. En este ejemplo, el codificador de video 20 y/o el decodificador de video 30 estan configurados adicionalmente para almacenar los componentes de capa decodificada en una de las una o mas sub- unidades de la DPB, en base a la resolucion especial de los componentes de capa decodificada, donde cada una de las una o mas sub-unidades esta asociada a una resolucion espacial diferente. En otro ejemplo, cada una de las una o mas sub-unidades esta asociada a una combinacion particular de resolucion espacial, formato de muestreo de croma y profundidad de bits.
En otro ejemplo de la divulgacion, los componentes de capa decodificada tienen al menos dos resoluciones espaciales diferentes, y cada una de las una o mas sub-unidades esta asociada a una capa completamente reconstruida diferente.
En otro ejemplo de la divulgacion, el codificador de video 20 y/o el decodificador de video 30 estan configurados adicionalmente para almacenar los componentes de capa decodificada en una de las una o mas de las sub- unidades de la DPB, de tal forma que cada sub-unidad de la DPB corresponda al componente de capa decodificada que tenga la mas alta resolucion espacial. En un ejemplo, cada una de las una o mas sub-unidades de la DPB almacena un componente de capa decodificada.
En otro ejemplo de la divulgacion, las una o mas sub-unidades comprenden una unica sub-unidad, y el codificador de video 20 y/o el decodificador de video 30 estan configurados adicionalmente para almacenar los componentes de capa decodificada en la unica sub-unidad de la DPB, de tal forma que la unica sub-unidad de la DPB contenga una union de componentes de capa decodificada para una capa completamente reconstruida dentro de una unidad de acceso. En otro ejemplo, un tamano de la unica sub-unidad de la DPB se determina por la suma de varias muestras de todos los componentes en todos los componentes de capa decodificada.
La siguiente seccion de la divulgacion describira una implementacion ejemplar de un decodificador de referencia hipotetico (HRD) (por ejemplo, para la HEVC, incluyendo extensiones ajustables a escala, de multi-vistas y
5
10
15
20
25
30
35
40
45
50
55
60
65
tridimensionales) para las primeras tecnicas ejemplares de esta divulgacion. Es decir, la siguiente seccion se aplica a las tecnicas de la divulgacion, por lo que la unica sub-unidad de una DPB almacena la union de los componentes de capa decodificada de todas las capas completamente reconstruidas dentro de una unidad de acceso. Las clausulas y sub-clausulas mencionadas en esta especificacion se refieren a la especificacion del HRD en el Anexo C de la HEVC WD9 precitada.
4.1.1 HRD: Decodificador de referencia hipotetico (Ejemplo N° 1)
A.1 Funcionamiento de la memoria intermedia de imagenes decodificadas (DPB)
Las especificaciones en esta sub-clausula se aplican independientemente a cada conjunto de parametros de DPB seleccionados como se especifica en la sub-clausula C.1.
La memoria intermedia de imagenes decodificadas contiene memorias intermedias de almacenamiento de imagenes. Cada una de las memorias intermedias de almacenamiento de imagenes puede contener una imagen decodificada que se marca como "usada para referencia" o se guarda para una salida futura. Antes de la inicializacion, la DPB esta vacfa (la plenitud de la DPB se fije en cero). Las siguientes etapas de las sub-clausulas de esta sub-clausula tienen lugar en la secuencia segun se enumera a continuacion.
Cada una de las memorias intermedias de almacenamiento de imagenes contiene todos los componentes de capa decodificada (tambien denominados como representaciones de capa en un codec ajustable a escala, todos los componentes de vista decodificados en la MV-HEVC o todos los componentes de vista de textura y de profundidad decodificados en la 3D-HEVC) de una unidad de acceso. Por lo tanto, cada imagen decodificada es la unidad de acceso decodificada. El tamano de memoria de una memoria intermedia de almacenamiento de imagenes corresponde a la unidad de acceso decodificada que requiere el tamano maximo de memoria intermedia para el almacenamiento de todos los componentes de capa decodificada entre todas las unidades de acceso en una secuencia de video codificada. Por ejemplo, si diferentes unidades de acceso tienen diferentes numeros de componentes de capa, entonces el tamano maximo de memoria intermedia puede ser necesario para el almacenamiento de las unidades de acceso que tengan, cada una, el numero maximo de componentes de capa entre todas las unidades de acceso.
Una imagen decodificada se marca como "usada para referencia" si y solo si uno o mas componentes de capa estan marcados como "usados para referencia".
Una imagen decodificada se marca como "no usada para referencia" si y solo si todos los componentes de capa estan marcados como "no usados para referencia".
Ademas, pueden tener aplicacion restricciones, como se describe en la seccion 4.1.3.
Como alternativa:
Una imagen decodificada se marca como "usada para referencia" si y solo si el componente de capa con el mayor valor de id_capa esta marcado como "usado para referencia".
Una imagen decodificada se marca como "no usada para referencia" si y solo si el componente de capa con el mayor valor de id_capa esta marcado como "no usado para referencia".
Ademas, pueden tener aplicacion restricciones, como se describe en la seccion 4.1.3.
En el caso en que los componentes de multiples capas de la misma unidad de acceso pueden tener diferentes estados de marcado, el estado de marcado de cada componente de capa se conoce despues de aplicar un proceso de marcado de imagen decodificada para cada componente de capa, de un modo similar al proceso de marcado de imagen decodificada en la HEVC.
En una alternativa, tambien pueden marcarse conjuntamente multiples componentes de capa; en este caso, se invoca un proceso similar al proceso de marcado de imagen decodificada en la HEVC para toda la unidad de acceso.
Una imagen es refresco de decodificador instantaneo (IDR) si todos los componentes de capa tienen tipo_unidad_nal igual a IDR_W_DLP o IDR_N_LP.
Una imagen es un acceso a enlace roto (BLA) si todos los componentes de capa tienen tipo_unidad_nal igual a BLA_W_LP, BLA_W_DLP o BLA_N_LP.
Cuando tipo_unidad_nal tiene un valor en el intervalo de 16 a 23, inclusive (imagen de acceso aleatorio (RAP)), el tipo_tajada sera igual a 2 para la capa base (con id_capa igual a 0), pero puede ser igual a otros valores si id_capa
5
10
15
20
25
30
35
40
45
50
55
60
65
es mayor que 0.
A.1.1 Eliminacion de imagenes de la DPB
La eliminacion de imagenes de la DPB antes de la decodificacion de la imagen actual (pero despues de analizar sintacticamente el encabezado de tajada de la primera tajada de la imagen actual) tiene lugar instantaneamente en el momento de la eliminacion de la CPB de la primera unidad de decodificacion de la unidad de acceso n (que contiene la imagen actual) y avanza como se indica a continuacion.
Se invoca el proceso de decodificacion para el conjunto de imagenes de referencia como se especifica en la sub- clausula 8.3.2.
Si la imagen actual es una imagen de IDR o una imagen de BLA, se aplica lo siguiente:
Cuando la imagen de IDR o BLA no es la primera imagen decodificada y el valor de ancho_imagen_en_muestras_luma o altura_imagen_en_muestras_luma o
sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] para cualquier capa de la unidad de acceso actual es diferente al valor del ancho de la imagen en muestras de luma o a la altura de la imagen en muestras de luma o a sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ], obtenidas al decodificar la unidad de acceso anterior, respectivamente, el HRD deduce que el indicador_n°_salida_de_imagenes_anteriores es igual a 1, independientemente del valor real del indicador_n°_salida_de_imagenes_anteriores.
Cuando el indicador_n°_salida_de_imagenes_anteriores es igual a 1 o se deduce que es igual a 1, todas las memorias intermedias de almacenamiento de imagenes en la DPB son vaciadas sin salida de las imagenes que contienen, y la plenitud de la DPB se fija en 0.
Todas las imagenes k en la DPB, para las que todas las siguientes condiciones son verdaderas, se eliminan de la DPB:
- la imagen k esta marcada como "no usada para referencia",
- la imagen k tiene IndicadorSalidalmagen igual a 0 o su hora de salida de la DPB es menor o igual a la hora de eliminacion de la CPB de la primera unidad de decodificacion (representada como unidad de decodificacion m) de la imagen actual n; es decir to,dpb( k ) <= tr( m )
Cuando una imagen se elimina de la DPB, la plenitud de la DPB se reduce en uno.
A.1.2 Salida de imagen
Lo siguiente sucede instantaneamente en el momento de eliminacion de la CPB de la unidad de acceso n, tr( n ). Cuando la imagen n tiene el IndicadorSalidalmagen igual a 1, su hora de salida de la DPB to,dpb( n ) se obtiene por to,dpb( n ) = tr( n ) + tc * retardo_salida_dpb_imagen( n ) (C 15)
donde retardo_salida_dpb_imagen( n ) es el valor de retardo_salida_dpb_imagen especificado en el mensaje SEI de temporizacion de imagen asociado a la unidad de acceso n.
La salida de la imagen actual se especifica como se indica a continuacion.
- Si IndicadorSalidaImagen es igual a 1 y to,dpb( n ) = tr( n ), la imagen actual se emite.
- Por el contrario, si IndicadorSalidaImagen es igual a 0, la imagen actual no se emite, sino que se almacenara en la DPB como se especifica en la sub-clausula C.3.4.
- De otro modo, (IndicadorSalidaImagen es igual a 1 y to,dpb( n ) > tr( n ) ), la imagen actual se emite posteriormente y se almacenara en la DPB (como se especifica en la sub-clausula C.3.4) y se emite en el momento to,dpb( n ), a menos que se indique que no se emita, por la decodificacion o la deduccion de que el indicador_n°_salida_de_imagenes_anteriores es igual a 1 en un momento que antecede a to,dpb( n ).
Al emitirse, la imagen se recortara, usando la ventana de recorte de conformidad especificada en el conjunto activo de parametros de secuencia.
Cuando la imagen n es una imagen que se emite y no es la ultima imagen del flujo de bits que se emite, el valor de Dto,dpb( n ) se define como:
5
10
15
20
25
30
35
40
45
50
55
60
65
Dto,dpb( n ) = to,dpb( nn ) - to,dpb( n ) (C 16)
donde nn indica la imagen que sigue a la imagen n en orden de salida y tiene el IndicadorSalidalmagen igual a 1. A.1.3 Marcado y almacenamiento de imagenes decodificadas actuales
Lo siguiente sucede instantaneamente en el momento de eliminacion de la CPB de la unidad de acceso n, tr( n ).
La imagen decodificada actual se almacena en la DPB en una memoria intermedia de almacenamiento de imagenes vacfa, la plenitud de la DPB se aumenta en uno y la imagen actual se marca como "no usada para referencia a corto plazo".
A.2 Conformidad del flujo de bits
Tienen aplicacion las especificaciones en la sub-clausula C.2.
A.3 Conformidad del decodificador A.3.1 General
Las especificaciones en C.5.1 tienen aplicacion con los siguientes agregados.
Cada una de las memorias intermedias de almacenamiento de imagenes contiene todos los componentes de capa decodificada (tambien denominados representaciones de capa en un codec ajustable a escala, todos los componentes de vista decodificados en la MV-HEVC o todos los componentes de vista de textura y de profundidad decodificados en la 3D-HEVC) de una unidad de acceso. Por lo tanto, cada imagen decodificada es la unidad de acceso decodificada. El tamano de memoria de una memoria intermedia de almacenamiento de imagenes corresponde a la unidad de acceso decodificada que requiere el tamano maximo de memoria intermedia para el almacenamiento de todos los componentes de capa decodificada entre todas las unidades de acceso en una secuencia de video codificada. Por ejemplo, si diferentes unidades de acceso tienen diferentes numeros de componentes de capa, entonces el tamano maximo de memoria intermedia puede ser necesario para el almacenamiento de las unidades de acceso que tengan, cada una, el numero maximo de componentes de capa entre todas las unidades de acceso.
Lo siguiente es un ejemplo de una alternativa para el estado de marcado de los componentes de capa. Una imagen decodificada se marca como "usada para referencia" si y solo si uno o mas componentes de capa estan marcados como "usados para referencia". Una imagen decodificada se marca como "no usada para referencia" si y solo si todos los componentes de capa estan marcados como "no usados para referencia". Ademas, pueden tener aplicacion restricciones, como se describe en la seccion 4.1.3.
Lo siguiente es un ejemplo de otra alternativa para el estado de marcado de los componentes de capa. Una imagen decodificada se marca como "usada para referencia" si y solo si el componente de capa con el mayor valor de id_capa esta marcado como "usado para referencia". Una imagen decodificada se marca como "no usada para referencia" si y solo si el componente de capa con el mayor valor de id_capa esta marcado como "no usado para referencia". Ademas, pueden tener aplicacion restricciones, como se describe en la seccion 4.1.3.
Una imagen es un IDR si todos los componentes de capa tienen tipo_unidad_nal igual a IDR_W_DLP o IDR_N_LP.
Una imagen es un BLA si todos los componentes de capa tienen tipo_unidad_nal igual a BLA_W_LP, BLA_W_DLP o BLA_N_LP.
Cuando tipo_unidad_nal tiene un valor en el intervalo de 16 a 23, inclusive (imagen RAP), el tipo_tajada sera igual a 2 para la capa base (con id_capa igual a 0), pero puede ser igual a otros valores si el Id_capa es mayor que 0.
A.3.2 Funcionamiento de la DPB de orden de salida
La memoria intermedia de imagenes decodificadas contiene memorias intermedias de almacenamiento de imagenes. Cada una de las memorias intermedias de almacenamiento de imagenes contiene una imagen decodificada que se marca como "usada para referencia" o se guarda para una salida futura. En el inicio del HRD, la DPB esta vacfa. Las siguientes etapas tienen lugar en el orden segun se enumera a continuacion.
A.3.3 Salida y eliminacion de imagenes de la DPB
La salida y eliminacion de imagenes de la DPB antes de la decodificacion de la imagen actual (pero despues de analizar sintacticamente el encabezado de tajada de la primera tajada de la imagen actual) tiene lugar instantaneamente cuando la primera unidad de decodificacion de la unidad de acceso que contiene la imagen actual
5
10
15
20
25
30
35
40
45
50
55
60
65
se elimina de la CPB, y avanza como se indica a continuacion.
Se invoca el proceso de decodificacion para el conjunto de imagenes de referencia como se especifica en la sub- clausula 8.3.2.
- Si la imagen actual es una imagen de IDR o una imagen de BLA, se aplica lo siguiente.
1. Cuando la imagen de IDR o de BLA no es la primera imagen decodificada y el valor de
ancho_imagen_en_muestras_luma o altura_imagen_en_muestras_luma o
sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] de cada capa de la unidad de acceso actual es diferente al valor del ancho de la imagen en muestras de luma o a la altura de la imagen en muestras de luma o a sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ], de cada capa obtenida para la anterior unidad de acceso, respectivamente, el HRD deduce que el indicador_n°_salida_de_imagenes_anteriores es igual a 1, independientemente del valor real del indicador_n°_salida_de_imagenes_anteriores.
2. NOTA - Las implementaciones del decodificador deberfan intentar manipular la imagen o cambios de
tamano de la DPB mas gentilmente que el HRD con respecto a cambios en
ancho_imagen_en_muestras_luma, altura_imagen_en_muestras_luma o
sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ].
3. Cuando el indicador_n°_salida_de_imagenes_anteriores es igual a 1 o se deduce que es igual a 1, todas las memorias intermedias de almacenamiento de imagenes en la DPB son vaciadas sin salida de las imagenes que contienen.
4. Cuando el indicador_n°_salida_de_imagenes_anteriores no es igual a 1 y no se deduce que sea igual a 1, las memorias intermedias de almacenamiento de imagenes que contienen una imagen que se marca como "no necesaria para la salida" y "no marcada para referencia" se vacfan (sin salida), y todas las memorias intermedias de almacenamiento de imagenes no vacfas en la DPB se vacfan invocando repetidamente el proceso de "batacazo" especificado en la sub-clausula C.5.3.1.
- De otro modo (la imagen actual no es una imagen de IDR o una imagen de BLA), las memorias intermedias de almacenamiento de imagenes que contienen una imagen que se marca como "no necesaria para la salida" y "no usada para referencia" se vacfan (sin salida). Cuando una o mas de las siguientes condiciones son verdaderas, el proceso de "batacazo" especificado en la sub-clausula C.5.3.1 se invoca repetidamente hasta que haya una memoria intermedia de almacenamiento de imagenes vacfa para almacenar la imagen decodificada actual.
1. El numero de imagenes en la DPB que se marcan como "necesarias para la salida" es mayor que sps_max_num_reordenamiento_imagenes [ MaximoTid ],
2. El numero de imagenes en la DPB es igual a sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ].
Ha de apreciarse que el ancho_imagen_en_muestras_luma o la altura_imagen_en_muestras_luma o la sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] de cada capa de una unidad de acceso puede senalizarse en los conjuntos de parametros de secuencia o bien en el conjunto de parametros de video activo mencionado por la unidad de acceso actual.
A.3.3.1 Proceso de "Batacazo"
El proceso de "batacazo" se invoca en los siguientes casos.
- La imagen actual es una imagen de IDR o una imagen de BLA y el indicador_n°_salida_de_imagenes_anteriores no es igual a 1 y no se deduce que sea igual a 1, como se especifica en la sub-clausula C.5.2.
- El numero de imagenes en la DPB que estan marcadas como "necesarias para salida" es mayor que sps_max_num_reordenamiento_imagenes [ IdTemporal ], como se especifica en la sub-clausula C.5.2.
- El numero de imagenes en la DPB con IdTemporal menor o igual que el IdTemporal de la imagen actual es igual a sps_max_imagen_dec_almacenamiento_temporal [ IdTemporal], como se especifica en la sub- clausula C.5.2.
El proceso de "batacazo" consiste en las siguientes etapas ordenadas:
1. La imagen que esta primero para la salida se selecciona como la unica que tiene el valor mas pequeno de
5
10
15
20
25
30
35
40
45
50
55
60
65
ValCntOrdenlmagen de todas las imageries en la DPB marcadas como "necesaria para la salida".
2. La imagen se recorta, usando el rectangulo de recorte especificado en el conjunto activo de parametros de secuencia para la imagen, la imagen recortada se emite y la imagen se marca como "no necesaria para la salida".
3. Si la memoria intermedia de almacenamiento de imagenes que inclufa la imagen que se recorto y se emitio contiene una imagen marcada como "no usada para referenda", la memoria intermedia de almacenamiento de imagenes se vacfa.
A.3.4 Decodificacion, marcado y almacenamiento de imagenes
Lo siguiente tiene lugar instantaneamente cuando la ultima unidad de decodificacion de la unidad de acceso n que contiene la imagen actual se elimina de la CPB.
La imagen actual se considera como decodificada despues de que se decodifique la ultima unidad de decodificacion de la imagen. La imagen decodificada actual se almacena en una memoria temporal vacfa de almacenamiento de imagenes en la DPB, y tiene aplicacion lo siguiente.
- Si la imagen decodificada actual tiene el IndicadorSalidalmagen igual a 1, se marca como "necesaria para la salida".
- De lo contrario (la imagen decodificada actual tiene el IndicadorSalidalmagen igual a 0), se marca como "no necesaria para la salida".
La imagen decodificada actual se marca como "utilizada para referencia a corto plazo".
4.1.2 Tamano maximo de imagen de luma en el Anexo A: Perfiles, escalones y niveles
MaxLumaPS, como se especifica en la Tabla A1, puede corresponder a la suma maxima del tamano de imagen de luma (AUMaxLumaPS) de cada capa en la unidad de acceso.
Como alternativa, puede usarse el mismo valor del nivel en la especificacion de base de la HEVC para indicar extensiones, donde una capa requiere el mismo nivel. En este caso, pueden tener aplicacion los siguientes dos aspectos:
- MaxLumaPS corresponde al tamano maximo de imagen de luma de la capa mas alta en una extension ajustable a escala o a la vista de textura con la mas alta resolucion espacial en una extension de multi-vista o 3DV;
- Un factor de ajuste a escala se introduce y se calcula en base al AUMaxLumaPS/MaxLumaPS y teniendo en cuenta al obtener, por ejemplo, el tamano de la DPB y otras restricciones relacionadas con el nivel.
Como se ha mencionado anteriormente, el factor de ajuste a escala puede obtenerse como la suma de numeros de muestra de todos los componentes de capa, dividida entre los numeros de muestra maximos de un componente de capa. Como alternativa, el factor de ajuste a escala puede calcularse teniendo en cuenta el formato de muestreo de croma y los valores de profundidad de bits tanto para los componentes de luma como para los de croma.
Pueden usarse diversos enfoques para definir el tamano de la DPB que puede estar relacionado con el factor de ajuste a escala.
En un enfoque, el "tamano de la DPB" es indicativo del tamano de la memoria ffsica y, por lo tanto, el factor de ajuste a escala rebaja en escala el numero de imagenes que pueden almacenarse.
Como alternativa, en un enfoque diferente, el "tamano de la DPB" es indicativo de cuantas AU pueden almacenarse; por lo tanto, el factor de ajuste a escala aumenta a escala el tamano de la memoria ffsica (en comparacion con tener solamente la capa de base).
4.1.3 Restricciones para marcar el estado de los componentes de capa del conjunto de imagenes de referencia
Alternativa N° 1
En una extension escalable de la HEVC, el conjunto de imagenes de referencia, excluyendo las imagenes que se generan durante la decodificacion de la misma unidad de acceso, de cada capa se restringe como se indica a continuacion:
5
10
15
20
25
30
35
40
45
50
55
60
65
El RPS de cada componente de capa i, representado como RPSi, es un superconjunto de cualquier RPSj, en el que el componente de capa j (de la misma unidad de acceso) tiene un id_capa mas pequeno, lo que significa que cualquier identificacion de imagen (POC) que se incluya en el RPSj tambien se incluira en el RPSi.
Como alternativa, ese RPS para cada componente de capa deberfa ser igual. En este caso, la senalizacion basada unicamente en la AU del RPS es necesaria para referencias de inter-prediccion. La senalizacion basada en la AU puede hacerse de manera que unicamente el componente de capa de base contenga los elementos sintacticos del RPS. Como alternativa, la senalizacion basada en la AU puede hacerse de manera que solamente cada componente de capa independiente contenga elementos sintacticos del RPS.
Ha de apreciarse que un conjunto de imagenes de referencia incluye RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter y RefPicSetStFoll.
De forma similar, en la MV-HEVC, el conjunto de imagenes de referencia, excluyendo las imagenes de referencia que se generaron durante la decodificacion de la misma unidad de acceso, de cada componente de vista se restringe como se indica a continuacion:
El RPS del componente de capa i, representado como RPSi, es un superconjunto de cualquier RPSj, donde el componente de capa j (de la misma unidad de acceso) tiene un id_capa mas pequeno, lo que significa que cualquier identificacion de imagen (POC) que este en el RPSj no se incluira en el RPSj.
Como alternativa, ese RPS para cada componente de capa deberfa ser igual. En este caso, la senalizacion basada unicamente en la AU del RPS es necesaria para referencias de inter-prediccion. La senalizacion basada en la AU puede hacerse de manera que solamente el componente de capa de base contenga los elementos sintacticos del RPS. Como alternativa, la senalizacion basada en la AU puede hacerse de manera que solamente cada componente de capa independiente contenga elementos sintacticos del RPS.
En la 3D-HEVC, pueden tener aplicacion las siguientes restricciones:
El RPS de cada componente de vista de textura i, representado como RPSi, es un superconjunto de cualquier RPSj, donde el componente de vista de textura j (de la misma unidad de acceso) tiene un id_capa mas pequeno.
El RPS de cada componente de vista de profundidad i, representado como RPSi, es un superconjunto de cualquier RPSj, donde el componente de vista de profundidad j (de la misma unidad de acceso) tiene un id_capa mas pequeno.
El RPS de un componente de vista de textura, representado como RPSt, es un superconjunto del RPSd, el RPS del componente de vista de profundidad de la misma vista.
Como alternativa, independientemente de si un componente de vista es de textura o profundidad, el RPS del componente de capa i, representado como RPSi, es un superconjunto de cualquier RPSj, en el que el componente de capa j (de la misma unidad de acceso) tiene un id_capa mas pequeno.
Alternativa N° 2
Todos los componentes de capa de la misma unidad de acceso comparten el mismo RPS.
Por ejemplo, el RPS para cada componente de capa deberfa ser igual. Ademas, como alternativa, solamente la senalizacion basada en la AU del RPS es necesaria para referencias de inter-prediccion. La senalizacion basada en la AU puede hacerse de manera que solamente el componente de capa de base contenga los elementos sintacticos del RPS. Como alternativa, la senalizacion basada en la AU puede hacerse de manera que solamente cada componente de capa independiente contenga elementos sintacticos del RPS.
La siguiente seccion de la divulgacion describira otra implementacion ejemplar del decodificador de referencia hipotetica (HRD) (por ejemplo, para la HEVC, incluyendo extensiones ajustables a escala, de multi-vista y tridimensionales) para las segundas tecnicas ejemplares de esta divulgacion. Es decir, la siguiente seccion se aplica a las tecnicas de la divulgacion, por las que la DPB consiste en multiples sub-DPB, cada una esta asociada a una resolucion espacial diferente y los componentes de capa decodificada para cada capa se gestionan por separado. Las clausulas y sub-clausulas mencionadas en esta especificacion se refieren a la especificacion del HRD en el Anexo C de la HeVC WD9 precitada.
4.2.1 HRD: Decodificador de referencia hipotetico (Ejemplo N° 2)
A.4 Funcionamiento de la memoria intermedia de imagenes decodificadas (DPB)
5
10
15
20
25
30
35
40
45
50
55
60
65
Las especificaciones en esta sub-clausula se aplican independientemente a cada conjunto de parametros de la DPB seleccionados como se especifica en la sub-clausula C.1.
La memoria intermedia de imagenes decodificadas contiene memorias intermedias de almacenamiento de imagenes. Cada una de las memorias intermedias de almacenamiento de imagenes puede contener un componente de capa decodificada que se marca como "usada para referenda" o se guarda para una salida futura.
La memoria intermedia de imagenes decodificadas consiste en una o mas sub-memorias intermedias de imagenes decodificadas (SDPB), cada una asociada a una resolucion espacial diferente. Antes de la inicializacion, cada SDPB esta vacfa (la plenitud de la SDPB se fija en cero).
Las siguientes etapas de las sub-clausulas de esta sub-clausula suceden en la secuencia como se indica a continuacion, y se invocan repetidamente, cada vez para una capa, en el orden de decodificacion, y durante la invocacion, "DPB" se reemplaza con "SDPB" y la "imagen decodificada" se reemplaza con el "componente de capa decodificada".
Una imagen es un IDR si todos los componentes de capa tienen el tipo_unidad_nal igual a IDR_W_DLP o a IDR_N_LP.
Una imagen es un BLA si todos los componentes de capa tienen el tipo_unidad_nal igual a BLA_W_LP, BLA_W_DLP o BLA_N_LP.
Cuando el tipo_unidad_nal tiene un valor en el intervalo de 16 a 23, inclusive (imagen RAP), el tipo_tajada sera igual a 2 para la capa base (con id_capa igual a 0), pero puede ser igual a otros valores si el id_capa es mayor que 0.
A.4.1 Eliminacion de imagenes de la DPB
La eliminacion de imagenes de la DPB antes de la decodificacion de la imagen actual (pero despues de analizar sintacticamente el encabezado de tajada de la primera tajada de la imagen actual) tiene lugar instantaneamente en el momento de la eliminacion de la CPB de la primera unidad de decodificacion de la unidad de acceso n (que contiene la imagen actual) y avanza como se indica a continuacion.
Se invoca el proceso de decodificacion para el conjunto de imagenes de referencia, como se especifica en la sub- clausula 8.3.2.
Si la imagen actual es una imagen de IDR o una imagen de BLA, tiene aplicacion lo siguiente:
1. Cuando la imagen de IDR o de BLA no es la primera imagen decodificada y el valor del ancho_imagen_en_muestras_luma o la altura_imagen_en_muestras_luma o la
sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] para cualquier capa de la unidad de acceso actual es diferente al valor del ancho_imagen_en_muestras_luma o de la altura_imagen_en_muestras_luma o del sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] que se obtienen al decodificar la unidad de acceso anterior, respectivamente, el HRD deduce que el indicador_n°_salida_de_imagenes_anteriores es igual a 1, independientemente del valor real del indicador_n°_salida_de_imagenes_anteriores.
NOTA - Las implementaciones del decodificador deberfan intentar manipular la imagen o los cambios de tamano de la DPB mas gentilmente que el HRD con respecto a cambios en el ancho_imagen_en_muestras_luma o la altura_imagen_en_muestras_luma o el
sps_max_imagen_dec_almacenamiento_temporal [ i ].
2. Cuando el indicador_n°_salida_de_imagenes_anteriores es igual a 1 o se deduce que es igual a 1, todas las memorias intermedias de almacenamiento de imagen en la DPB son vaciadas sin salida de las imagenes que contienen, y la plenitud de la DPB se fija en 0.
Todas las imagenes k en la DPB, para las cuales todas las siguientes condiciones son verdaderas, se eliminan de la DPB:
- la imagen k se marca como "no usada para referencia",
- la imagen k tiene el IndicadorSalidaImagen igual a 0 o su hora de salida de la DPB es menor o igual a la hora de eliminacion de la CPB de la primera unidad de decodificacion (representada como unidad de decodificacion m) de la imagen actual n; es decir to,dpb( k ) <= tr( m )
Cuando una imagen se elimina de la DPB, la plenitud de la DPB se reduce en uno.
5
10
15
20
25
30
35
40
45
50
55
60
65
A.4.2 Salida de imagenes
Lo siguiente sucede instantaneamente en el momento de la eliminacion de la CPB de la unidad de acceso n, tr( n ). Cuando la imagen n tiene el IndicadorSalidaImagen igual a 1, su hora de salida de la DPB to,dpb( n ) se obtiene por to,dpb( n ) = tr( n ) + tc * retardo_salida_dpb_imagen( n ) (C 15)
donde el retardo_salida_dpb_imagen( n ) es el valor del retardo_salida_dpb_imagen( n ) especificado en el mensaje SEI de temporizacion de imagen asociado a la unidad de acceso n.
La salida de la imagen actual se especifica como se indica a continuacion.
- Si IndicadorSalidaImagen es igual a 1 y to,dpb( n ) = tr( n ), la imagen actual se emite.
- Por el contrario, si IndicadorSalidaImagen es igual a 0, la imagen actual no se emite, sino que se almacenara en la DPB como se especifica en la sub-clausula C.3.4.
- De otro modo, (IndicadorSalidaImagen es igual a 1 y to,dpb( n ) > tr( n ) ), la imagen actual se emite posteriormente y se almacenara en la DPB (como se especifica en la sub-clausula C.3.4) y se emite en el momento to,dpb( n ), a menos que se indique que no se emita, por la decodificacion o la deduccion de que el indicador_n°_salida_de_imagenes_anteriores es igual a 1 en un momento que antecede a to,dpb( n ).
Al emitirse, la imagen se recortara, usando la ventana de recorte de conformidad especificada en el conjunto activo de parametros de secuencia.
Cuando la imagen n es una imagen que se emite y no es la ultima imagen del flujo de bits que se emite, el valor de Dto,dpb( n ) se define como:
Dto,dpb( n ) = to,dpb( nn ) - to,dpb( n ) (C 16)
donde nn indica la imagen que sigue a la imagen n en orden de salida y que tiene el IndicadorSalidaImagen igual a 1.
A.4.3 Marcado y almacenamiento de imagenes decodificadas actuales
Lo siguiente sucede instantaneamente en el momento de la eliminacion de la CPB de la unidad de acceso n, tr( n ).
La imagen decodificada actual se almacena en la DPB en una memoria intermedia vacfa de almacenamiento de imagenes, la plenitud de la DPB se aumenta en uno y la imagen actual se marca como "no usada para referencia a corto plazo".
A.5 Conformidad del flujo de bits
Se aplican las especificaciones en la sub-clausula C.2.
A.6 Conformidad del decodificador A.6.1. General
Las especificaciones en C.5.1 se aplican con los siguientes agregados.
La memoria intermedia de imagenes decodificadas contiene memorias intermedias de almacenamiento de imagenes. Cada una de las memorias intermedias de almacenamiento de imagenes puede contener un componente de capa decodificada que se marca como "usada para referencia" o se guarda para una salida futura.
La memoria intermedia de imagenes decodificadas puede incluir una o mas sub-memorias intermedias de imagenes decodificadas (SDPB), cada una asociada a una resolucion espacial diferente. Antes de la inicializacion, cada SDPB esta vacfa (la plenitud de la SDPB se fija en cero).
Las siguientes etapas de las sub-clausulas de esta sub-clausula suceden en la secuencia como se indica a continuacion, y se invocan repetidamente, cada vez para una capa, en el orden de decodificacion, y durante la invocacion, "DPB" se reemplaza con "SDPB" y la "imagen decodificada" se reemplaza con el "componente de capa decodificada".
Una imagen es un IDR si es un componente de capa que tiene el tipo_unidad_nal igual a IDR_W_DLP o a
5
10
15
20
25
30
35
40
45
50
55
60
65
IDR_N_LP.
Una imagen es un BLA si es un componente de capa que tiene el tipo_unidad_nal igual a BLA_W_LP, BLA_W_DLP o BLA_N_LP.
Cuando el tipo_unidad_nal tiene un valor en el intervalo de 16 a 23, inclusive (imagen RAP), el tipo_tajada sera igual a 2 para la capa base (con id_capa igual a 0), pero puede ser igual a otros valores si el id_capa es mayor que 0.
A.6.2 Funcionamiento de la DPB de orden de salida
La memoria intermedia de imagenes decodificadas contiene memorias intermedias de almacenamiento de imagenes. Cada una de las memorias intermedias de almacenamiento de imagenes contiene una imagen decodificada que se marca como "usada para referenda" o se guarda para una salida futura. En el inicio del HRD, la DPB esta vacfa. Las siguientes etapas tienen lugar en el orden segun se enumeran a continuacion.
A.6.3 Salida y eliminacion de imagenes de la DPB
La salida y eliminacion de imagenes de la DPB antes de la decodificacion de la imagen actual (pero despues de analizar sintacticamente el encabezado de tajada de la primera tajada de la imagen actual) tiene lugar instantaneamente cuando la primera unidad de decodificacion de la unidad de acceso que contiene la imagen actual se elimina de la CPB y avanza como se indica a continuacion.
Se invoca el proceso de decodificacion para el conjunto de imagenes de referencia, como se especifica en la sub- clausula 8.3.2.
- Si la imagen actual es una imagen de IDR o una imagen de BLA, tiene aplicacion lo siguiente.
1. Cuando la imagen de IDR o de BLA no es la primera imagen decodificada y el valor del ancho_imagen_en_muestras_luma o de la altura_imagen_en_muestras_luma o del sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] de cada capa de la unidad de acceso actual es diferente al valor del ancho_imagen_en_muestras_luma o de la altura_imagen_en_muestras_luma o del sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] de cada capa obtenida para la unidad de acceso anterior, respectivamente, el HRD deduce que el indicador_n°_salida_de_imagenes_anteriores es igual a 1, independientemente del valor real del indicador_n°_salida_de_imagenes_anteriores.
2. Cuando el indicador_n°_salida_de_imagenes_anteriores es igual a 1 o se deduce que es igual a 1, todas las memorias intermedias de almacenamiento de imagenes en la DPB son vaciadas sin salida de las imagenes que contienen.
3. Cuando el indicador_n°_salida_de_imagenes_anteriores no es igual a 1 y no se deduce que sea igual a 1, las memorias intermedias de almacenamiento de imagen que contienen una imagen que esta marcada como "no necesaria para la salida" y "no usada para referencia" se vacfan (sin salida), y todas las memorias intermedias no vacfas de almacenamiento de imagenes en la DPB se vacfan invocando repetidamente el proceso de "batacazo" especificado en la sub-clausula C.5.3.1.
- De otro modo (la imagen actual no es una imagen de IDR o una imagen de BLA), las memorias intermedias de almacenamiento de imagenes que contienen una imagen que esta marcada como "no necesaria para la salida" y "no usada para referencia" se vacfan (sin salida). Cuando una o mas de las siguientes condiciones son verdaderas, el proceso de "batacazo" especificado en la sub-clausula C.5.3.1 se invoca repetidamente hasta que haya una memoria intermedia vacfa de almacenamiento de imagenes para almacenar la imagen decodificada actual.
4. El numero de imagenes en la DPB que se marcan como "necesarias para la salida" es mayor que el sps_max_num_reordenamiento_imagenes [ MaximoTid ],
5. El numero de imagenes en la DPB es igual al sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ].
Ha de apreciarse que el ancho_imagen_en_muestras_luma o la altura_imagen_en_muestras_luma o el sps_max_imagen_dec_almacenamiento_temporal [ MaximoTid ] de cada capa de una unidad de acceso puede senalizarse en los conjuntos de parametros de secuencia o bien en el conjunto activo de parametros de video mencionado por la unidad de acceso anterior.
A.6.3.1 Proceso de "Batacazo"
El proceso de "batacazo" se invoca en los siguientes casos.
5
10
15
20
25
30
35
40
45
50
55
60
65
- La imagen actual es una imagen de IDR o una imagen de BLA y el indicador_n0_salida_de_imagenes_anteriores no es igual a 1 y no se deduce que sea igual a 1, como se especifica en la sub-clausula C.5.2.
- El numero de imagenes en la DPB que estan marcadas como "necesarias para salida" es mayor que el sps_max_num_reordenamiento_imagenes [ IdTemporal ], como se especifica en la sub-clausula C.5.2.
- El numero de imagenes en la DPB con IdTemporal menor o igual al IdTemporal de la imagen actual es igual a sps_max_imagen_dec_almacenamiento_temporal [ IdTemporal ], como se especifica en la sub-clausula C.5.2.
El proceso de "batacazo" puede incluir las siguientes etapas ordenadas:
1. La imagen que esta primera para la salida se selecciona como la unica que tiene el valor mas pequeno de ValCntOrdenImagen de todas las imagenes en la DPB marcadas como "necesaria para la salida".
2. La imagen se recorta, usando el rectangulo de recorte especificado en el conjunto activo de parametros de secuencia para la imagen, la imagen recortada se emite y la imagen se marca como "no necesaria para la salida".
3. Si la memoria intermedia de almacenamiento de imagenes que inclufa la imagen que se recorto y se emitio contiene una imagen marcada como "no usada para referenda", la memoria intermedia de almacenamiento de imagenes se vacfa.
A.6.4 Decodificacion, marcado y almacenamiento de imagenes
Lo siguiente tiene lugar instantaneamente cuando la ultima unidad de decodificacion de la unidad de acceso n que contiene la imagen actual se elimina de la CPB.
La imagen actual se considera como decodificada despues de que se decodifique la ultima unidad de decodificacion de la imagen. La imagen decodificada actual se almacena en una memoria vacfa de almacenamiento de imagenes en la DPB, y tiene aplicacion lo siguiente.
- Si la imagen decodificada actual tiene el IndicadorSalidaImagen igual a 1, se marca como "necesaria para la salida".
- De lo contrario (la imagen decodificada actual tiene el IndicadorSalidaImagen igual a 0), se marca como "no necesaria para la salida".
La imagen decodificada actual se marca como "utilizada para referencia a corto plazo".
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 de un lugar a otro, por ejemplo, segun un protocolo de comunicacion. De esta manera, los medios legibles por ordenador pueden corresponder, generalmente, a (1) medios de almacenamiento tangibles y legibles por ordenador, no transitorios, o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que puedan acceder 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 se denomina debidamente 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 lfnea de abonado digital (DSL) o tecnologfas inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologfas inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberfa entenderse que los medios de almacenamiento legibles por
5
10
15
20
25
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 opticamente con laseres. Las combinaciones de lo anterior tambien deben incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especfficos de la aplicacion (ASIC), formaciones logicas programables en el terreno (FPGA) u otros circuitos logicos equivalentes, integrados o discretos. 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 dedicado y/o modulos de software configurados para la codificacion y la descodificacion, o incorporarse en un codec combinado. Ademas, las tecnicas podrfan implementarse completamente en uno o mas circuitos o elementos logicos.
Las tecnicas de esta divulgacion se pueden implementar en una gran 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 descritas, pero no requieren necesariamente la realizacion mediante diferentes unidades de hardware. Mas bien, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de codec, o proporcionarse por una coleccion de unidades de hardware inter-operativas, incluyendo uno o mas procesadores como se ha descrito anteriormente, junto con el software y / o firmware adecuado.
Se han descrito varios ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.

Claims (12)

1.
10
15
2.
20
3.
25
30
4.
35
40
45
5.
50
6.
55
60
7.
REIVINDICACIONES
Un procedimiento de procesamiento de datos de video, comprendiendo el procedimiento:
decodificar (1100) datos de video para producir una pluralidad de componentes de capa decodificada, siendo cada componente de capa decodificada de un tipo, en el que los tipos de la pluralidad de componentes de capa decodificada incluyen al menos uno entre una vista de textura de datos de video de multi-vista, una vista en profundidad de datos de video de multi-vista, una capa base de datos de video ajustables a escala, o cada una de una o mas capas de mejora de datos de video ajustables a escala; caracterizado por
almacenar (1110) la pluralidad de componentes de capa decodificada en sub-unidades de una memoria intermedia de imagenes decodificadas (DPB), de tal forma que un tipo diferente de componente de capa decodificada se almacene en cada sub-unidad respectiva; y
realizar (1120) un proceso de gestion de la DPB en las sub-unidades, en el que el proceso de gestion de la DPB se gestiona independientemente para cada una de las sub-unidades.
El procedimiento de la reivindicacion 1, en el que el proceso de gestion de la DPB comprende uno o mas entre eliminar un componente de capa decodificada, entre la pluralidad de componentes de capa decodificada, de la sub-unidad respectiva y marcar un componente de capa decodificada, entre la pluralidad de componentes de capa decodificada en la sub-unidad respectiva, como no usado para referencia.
El procedimiento de la reivindicacion 2, en el que realizar el proceso de gestion de la DPB en las sub- unidades comprende:
realizar el proceso de gestion de la DPB en un primer componente de capa decodificada en una unidad de acceso; y
realizar el proceso de gestion de la DPB en otros componentes de capa decodificada en la unidad de acceso.
Un aparato configurado para procesar datos de video, comprendiendo el aparato: un decodificador de video configurado para:
decodificar datos de video para producir una pluralidad de componentes de capa decodificada, siendo cada componente de capa decodificada de un tipo, en el que los tipos de la pluralidad de componentes de capa decodificada incluyen al menos uno entre una vista de textura de datos de video de multi-vista, una vista en profundidad de datos de video de multi-vista, una capa base de datos de video ajustables a escala, y cada una de una o mas capas de mejora de datos de video ajustables a escala; caracterizado por almacenar la pluralidad de componentes de capa decodificada en sub-unidades de una memoria intermedia de imagenes decodificadas (DPB) de tal forma que un tipo diferente de componente de capa decodificada se almacene en cada sub-unidad respectiva; y
realizar un proceso de gestion de la DPB en las sub-unidades, en el que el proceso de gestion de la DPB se gestiona independientemente para cada una de las sub-unidades.
El aparato de la reivindicacion 4, en el que el proceso de gestion de la DPB comprende uno o mas entre eliminar un componente de capa decodificada, entre la pluralidad de componentes de capa decodificada, de la sub-unidad respectiva, o marcar un componente de capa decodificada, entre la pluralidad de componentes de capa decodificada, en la sub-unidad respectiva como no usado para referencia.
El aparato de la reivindicacion 5, en el que el codificador de video esta configurado adicionalmente para:
realizar el proceso de gestion de la DPB en un primer componente de capa decodificada en una unidad de acceso; y
realizar el proceso de gestion de la DPB en otros componentes de capa decodificada en la unidad de acceso.
Un aparato configurado para procesar datos de video, comprendiendo el aparato:
medios para decodificar datos de video para producir una pluralidad de componentes de capa decodificada, siendo cada componente de capa decodificada de un tipo, en el que los tipos de la pluralidad de componentes de capa decodificada incluyen al menos uno entre una vista de textura de
5
10
15
20
25
30
35
40
45
50
55
datos de video de multi-vista, una vista en profundidad de datos de video de multi-vista, una capa base de datos de video ajustables a escala, o cada una de una o mas capas de mejora de datos de video ajustables a escala; caracterizado por
medios para almacenar la pluralidad de componentes de capa decodificada en sub-unidades de una memoria intermedia de imagenes decodificadas (DPB), de tal forma que un tipo diferente de componente de capa decodificada se almacene en cada sub-unidad respectiva; y
medios para realizar un proceso de gestion de la DPB en las sub-unidades, en el que el proceso de gestion de la DPB se gestiona independientemente para cada una de las sub-unidades.
8. El aparato de la reivindicacion 7, en el que el proceso de gestion de la DPB comprende uno o mas entre eliminar un componente de capa decodificada de la pluralidad de componentes de capa decodificada de la sub-unidad respectiva y marcar un componente de capa decodificada de la pluralidad de componentes de capa decodificada en la sub-unidad respectiva como no usado para referencia.
9. El aparato de la reivindicacion 8, en el que los medios para realizar el proceso de gestion de la DPB en las sub-unidades comprenden:
medios para realizar el proceso de gestion de la DPB en un primer componente de capa decodificada en una unidad de acceso; y
medios para realizar el proceso de gestion de la DPB en otros componentes de capa decodificada en la unidad de acceso.
10. Un medio de almacenamiento legible por ordenador que almacena instrucciones que, al ejecutarse, hacen que uno o mas procesadores de un dispositivo configurado para procesar datos de video:
decodifiquen datos de video para producir una pluralidad de componentes de capa decodificada, siendo cada componente de capa decodificada de un tipo, en el que los tipos de la pluralidad de componentes de capa decodificada incluyen al menos uno entre una vista de textura de datos de video de multi-vista, una vista en profundidad de datos de video de multi-vista, una capa base de datos de video ajustables a escala, o cada una de una o mas capas de mejora de datos de video ajustables a escala; caracterizado por
almacenar la pluralidad de componentes de capa decodificada en sub-unidades de una memoria intermedia de imagenes decodificadas (DPB), de tal forma que un tipo diferente de componente de capa decodificada se almacene en cada sub-unidad respectiva; y
realizar un proceso de gestion de la DPB en las sub-unidades, en el que el proceso de gestion de la DPB se gestiona independientemente para cada una de las sub-unidades.
11. El medio de almacenamiento legible por ordenador de la reivindicacion 10, en el que el proceso de gestion de la DPB comprende uno o mas entre eliminar un componente de capa decodificada, entre la pluralidad de componentes de capa decodificada, de la sub-unidad y marcar un componente de capa decodificada, entre la pluralidad de componentes de capa decodificada en la sub-unidad, como no usado para referencia.
12. El medio de almacenamiento legible por ordenador de la reivindicacion 11, en el que las instrucciones hacen adicionalmente que los uno o mas procesadores:
realicen el proceso de gestion de la DPB en un primer componente de capa decodificada en una unidad de acceso; y
realicen el proceso de gestion de la DPB en otros componentes de capa decodificada en la unidad de acceso.
ES14702663.7T 2013-01-04 2014-01-03 Gestión de memoria intermedia de imágenes decodificadas de múltiple resolución para codificación de vídeo multi-capa Active ES2588314T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361749105P 2013-01-04 2013-01-04
US201361749105P 2013-01-04
US14/146,507 US20140192895A1 (en) 2013-01-04 2014-01-02 Multi-resolution decoded picture buffer management for multi-layer video coding
US201414146507 2014-01-02
PCT/US2014/010190 WO2014107583A1 (en) 2013-01-04 2014-01-03 Multi-resolution decoded picture buffer management for multi-layer coding

Publications (1)

Publication Number Publication Date
ES2588314T3 true ES2588314T3 (es) 2016-11-02

Family

ID=51060941

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14702663.7T Active ES2588314T3 (es) 2013-01-04 2014-01-03 Gestión de memoria intermedia de imágenes decodificadas de múltiple resolución para codificación de vídeo multi-capa

Country Status (12)

Country Link
US (1) US20140192895A1 (es)
EP (1) EP2941876B1 (es)
JP (2) JP2016506697A (es)
KR (1) KR101724222B1 (es)
CN (1) CN104885459B (es)
AP (1) AP2015008560A0 (es)
EC (1) ECSP15033857A (es)
ES (1) ES2588314T3 (es)
HU (1) HUE030129T2 (es)
MA (1) MA38230B1 (es)
SA (1) SA515360719B1 (es)
WO (1) WO2014107583A1 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
CN105191314B (zh) * 2013-01-10 2018-12-21 三星电子株式会社 用于对多层视频进行编码的方法和设备、用于对多层视频进行解码的方法和设备
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
UA115804C2 (uk) * 2013-04-07 2017-12-26 Долбі Інтернешнл Аб Сигналізація зміни наборів рівнів виведення
US10003813B2 (en) 2015-06-25 2018-06-19 Samsung Electronics Co., Ltd. Method and system for decoding by enabling optimal picture buffer management
US20170006303A1 (en) * 2015-06-30 2017-01-05 Intel Corporation Method and system of adaptive reference frame caching for video coding
EP3363195B1 (en) * 2015-10-19 2023-08-30 HFI Innovation Inc. Method and apparatus for decoded picture buffer management in video coding system using intra block copy
KR102476207B1 (ko) * 2015-11-12 2022-12-08 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
US11284080B2 (en) * 2016-12-30 2022-03-22 Telefonaktiebolaget Lm Ericsson (Publ) Decoded picture buffer management for handling cross-picture data prediction
US12022059B2 (en) * 2018-12-07 2024-06-25 Beijing Dajia Internet Information Technology Co., Ltd. Video coding using multi-resolution reference picture management
US11153583B2 (en) * 2019-06-07 2021-10-19 Qualcomm Incorporated Spatial scalability support in video encoding and decoding
WO2021054438A1 (ja) * 2019-09-20 2021-03-25 ソニー株式会社 画像処理装置および画像処理方法
EP4085622A1 (en) * 2019-12-31 2022-11-09 Koninklijke KPN N.V. Partial output of a decoded picture buffer in video coding

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10117346A (ja) * 1996-10-11 1998-05-06 Xing:Kk 情報供給装置、情報再生装置及び情報供給再生システム
US20060104356A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Timing for decoder buffer examination
KR20080066784A (ko) * 2005-10-11 2008-07-16 노키아 코포레이션 규모가변적 비디오 코딩을 위한 효율적 디코딩 화상 버퍼관리
JP2007184791A (ja) * 2006-01-06 2007-07-19 Victor Co Of Japan Ltd 動画像符号化データ再生装置
US8170116B2 (en) * 2006-03-27 2012-05-01 Nokia Corporation Reference picture marking in scalable video encoding and decoding
AU2007311489B2 (en) * 2006-10-20 2012-05-24 Nokia Technologies Oy Virtual decoded reference picture marking and reference picture list
WO2008084443A1 (en) * 2007-01-09 2008-07-17 Nokia Corporation System and method for implementing improved decoded picture buffer management for scalable video coding and multiview video coding
JP2009296078A (ja) * 2008-06-03 2009-12-17 Victor Co Of Japan Ltd 符号化データ再生装置、符号化データ再生方法、および符号化データ再生プログラム
JP4656190B2 (ja) * 2008-06-10 2011-03-23 ソニー株式会社 情報処理装置および方法
US9538176B2 (en) * 2008-08-08 2017-01-03 Dolby Laboratories Licensing Corporation Pre-processing for bitdepth and color format scalable video coding
JP2010157826A (ja) * 2008-12-26 2010-07-15 Victor Co Of Japan Ltd 画像復号装置、画像符復号方法およびそのプログラム
US20100218232A1 (en) * 2009-02-25 2010-08-26 Cisco Technology, Inc. Signalling of auxiliary information that assists processing of video according to various formats
JP2012028960A (ja) * 2010-07-22 2012-02-09 Jvc Kenwood Corp 画像復号装置、画像復号方法および画像復号プログラム
US20120230409A1 (en) * 2011-03-07 2012-09-13 Qualcomm Incorporated Decoded picture buffer management
US9516379B2 (en) * 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs
US9979961B2 (en) * 2011-03-18 2018-05-22 Sony Corporation Image processing device and image processing method

Also Published As

Publication number Publication date
AP2015008560A0 (en) 2015-06-30
JP2016506697A (ja) 2016-03-03
WO2014107583A1 (en) 2014-07-10
EP2941876B1 (en) 2016-05-25
ECSP15033857A (es) 2015-11-30
US20140192895A1 (en) 2014-07-10
KR20150103117A (ko) 2015-09-09
CN104885459B (zh) 2018-12-04
KR101724222B1 (ko) 2017-04-06
MA38230B1 (fr) 2017-05-31
EP2941876A1 (en) 2015-11-11
HUE030129T2 (en) 2017-04-28
CN104885459A (zh) 2015-09-02
JP2018042265A (ja) 2018-03-15
SA515360719B1 (ar) 2018-07-23

Similar Documents

Publication Publication Date Title
ES2588314T3 (es) Gestión de memoria intermedia de imágenes decodificadas de múltiple resolución para codificación de vídeo multi-capa
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
US20220159272A1 (en) Regional random access in pictures
ES2637515T3 (es) Indicación y activación de conjuntos de parámetros para codificación de vídeo
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
KR102106190B1 (ko) 비디오 코딩을 위한 디코딩된 화상 버퍼 오퍼레이션들
JP6208150B2 (ja) ビデオを符号化しビデオコンテンツを記憶する方法
ES2902675T3 (es) Diseño de señalización de entrada de muestra y de punto de operación en un formato de archivo de vídeo estratificado
TWI631851B (zh) 用於視訊寫碼之跨層平行處理與偏移延遲參數
ES2720662T3 (es) Diseños de formato de archivo de vídeo multicapa
ES2719768T3 (es) Activación de conjuntos de parámetros para la codificación de vídeo tridimensional (3DVC) compatible con codificación de vídeo de múltiples vistas (MVC)
TWI558178B (zh) 用於寫碼視訊資料之方法及器件及電腦可讀儲存媒體
ES2636967T3 (es) Vectores de disparidad derivados en codificación de vídeo 3D
JP5902300B2 (ja) マルチビュービデオコード化
ES2730876T3 (es) Capas de salida de destino en la codificación de vídeo
ES2834114T3 (es) Indicación de procesamiento en paralelo en codificación de vídeo
ES2745282T3 (es) Extensión del patrón de minicuñas para la intracodificación de profundidad
JP5908586B2 (ja) マルチビュービデオコード化
ES2703062T3 (es) Síntesis de visualización en vídeo 3D
ES2780686T3 (es) Tipo de dependencia entre vistas en MV-HEVC
ES2754056T3 (es) Sistemas y procedimientos para la derivación de RPS entre capas basada en la dependencia de predicción de referencia de subcapa