ES2693683T3 - Extracción de flujo de bits en vídeo tridimensional - Google Patents

Extracción de flujo de bits en vídeo tridimensional Download PDF

Info

Publication number
ES2693683T3
ES2693683T3 ES13709661.6T ES13709661T ES2693683T3 ES 2693683 T3 ES2693683 T3 ES 2693683T3 ES 13709661 T ES13709661 T ES 13709661T ES 2693683 T3 ES2693683 T3 ES 2693683T3
Authority
ES
Spain
Prior art keywords
list
display
nal unit
displays
depth
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
ES13709661.6T
Other languages
English (en)
Inventor
Ying Chen
Ye-Kui Wang
Marta Karczewicz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2693683T3 publication Critical patent/ES2693683T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

Un procedimiento para extraer un sub-flujo de bits de un vídeo tridimensional, 3DV, flujo de bits que incluye componentes de visualización de textura codificados y componentes de visualización de profundidad codificados, comprendiendo el procedimiento: determinar una primera lista que indica visualizaciones en el flujo de bits 3DV, con las visualizaciones indicadas por la primera lista que tienen componentes de visualización de textura que son necesarios para descodificar imágenes en una pluralidad de visualizaciones de objetivos, con la pluralidad de visualizaciones de objetivos que comprende un subconjunto de las visualizaciones en el flujo de bits 3DV que se puede descodificar a partir del sub-flujo de bits; determinar una segunda lista independiente que indica visualizaciones en el flujo de bits 3DV, con las visualizaciones indicadas por la segunda lista que tienen componentes de visualización de profundidad que son necesarios para descodificar imágenes en la pluralidad de visualizaciones de objetivos, con la primera lista y la segunda lista que indican subconjuntos diferentes de la visualizaciones en el flujo de bits 3DV; y determinar el sub-flujo de bits basándose al menos en parte en la primera lista y la segunda lista.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Extraccion de flujo de bits en video tridimensional CAMPO TECNICO
[0001] Esta divulgacion se refiere a la codificacion de video (es decir, codificacion y/o descodificacion de datos de video).
ANTECEDENTES
[0002] Las capacidades del video digital pueden incorporarse a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusion digital directa, sistemas de radiodifusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados "telefonos inteligentes", dispositivos de videoconferencia, dispositivos de transmision de flujo de video y similares. Los dispositivos de video digitales 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 Avanzada de Video (AVC), el estandar de Codificacion de Video de Alta Eficiencia (HEVC) actualmente en desarrollo y las extensiones de dichos estandares. Los dispositivos de video pueden transmitir, recibir, codificar, descodificar y/o almacenar informacion de video digital mas eficazmente, implementando dichas tecnicas de compresion de video.
[0003] Las tecnicas de compresion de video llevan a cabo la prediccion espacial (intraimagen) y/o la prediccion temporal (interimagen) para reducir o eliminar la redundancia intrinseca en las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (es decir, una trama de video o una parte de una trama de video) puede dividirse en bloques de video. Los bloques de video en un fragmento intracodificado (I) de una imagen se codifican mediante prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen. Los bloques de video en un fragmento intercodificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen, o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas, y las imagenes de referencia pueden denominarse tramas de referencia.
[0004] La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de pixeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificacion y los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio del pixel a un dominio de transformacion, dando como resultado coeficientes residuales, los cuales pueden cuantificarse posteriormente. Los coeficientes cuantificados, inicialmente dispuestos en una matriz bidimensional, pueden escanearse para producir un vector unidimensional de coeficientes, y la codificacion por entropia puede aplicarse a los coeficientes cuantificados escaneados para lograr una compresion aun mayor.
[0005] Puede generarse un flujo de bits de multiples visualizaciones mediante la codificacion de visualizaciones por ejemplo, de multiples camaras a color. Para ampliar aun mas la flexibilidad del video de multiples visualizaciones, se han desarrollado estandares de video tridimensionales (3D). Un flujo de bits de video 3D puede contener no solo las visualizaciones correspondientes a multiples camaras, concretamente visualizaciones de textura, sino tambien visualizaciones de profundidad asociadas con al menos una o mas visualizaciones de textura. Por ejemplo, cada visualizacion puede consistir en una visualizacion de textura y una visualizacion de profundidad.
SUMARIO
[0006] La invencion se define mediante las reivindicaciones adjuntas. En general, esta divulgacion describe tecnicas para extraer un flujo de bits de datos de video a partir de un flujo de bits de video tridimensional (3DV). Mas especificamente, un dispositivo determina una lista de visualizaciones de objetivos de textura que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en una pluralidad de visualizaciones de objetivos. Las visualizaciones de objetivos son un subconjunto de las visualizaciones en el flujo de bits que se van a descodificar desde el sub-flujo de bits. Ademas, el dispositivo determina una lista de visualizaciones de objetivos de profundidad que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos. El dispositivo determina el sub-flujo de bits basandose, al menos en parte, en la lista de visualizaciones de objetivos de textura y en la lista de visualizaciones de objetivos de profundidad.
[0007] De acuerdo con las tecnicas de esta divulgacion, una visualizacion de la profundidad puede excluirse de la lista de visualizaciones de objetivos de profundidad incluso si la visualizacion de textura asociada a la visualizacion de la
5
10
15
20
25
30
35
40
45
50
55
60
65
profundidad se encuentra en la lista de visualizaciones de objetivos de textura. De manera similar, las tecnicas de esta divulgacion pueden permitir que una visualizacion de textura, cuando este disponible, sea excluida de la lista de visualizaciones de objetivos de textura incluso si la visualizacion de profundidad asociada con la visualizacion de textura, cuando esta disponible, esta en la lista de visualizaciones de objetivos de profundidad. Una visualizacion de textura y una visualizacion de profundidad se pueden considerar asociadas si corresponden a la misma ubicacion de camara, es decir, en codecs de video 3D como MVC + D o 3D-AVC, que tienen el mismo valor de identificador de visualizacion (view_id).
[0008] En un ejemplo, esta divulgacion describe un procedimiento de extraer un sub-flujo de bits de un flujo de bits 3DV que incluye componentes de visualizacion de textura codificados y componentes de visualizacion profundidad codificados. El procedimiento comprende determinar una lista de visualizaciones de objetivos de textura que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en una pluralidad de visualizaciones de objetivos. Ademas, el procedimiento comprende determinar una lista de visualizaciones de objetivos de profundidad que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos. Ademas, el procedimiento comprende determinar el sub-flujo de bits basandose, al menos en parte, en la lista de visualizaciones de objetivos de textura y en la lista de visualizaciones de objetivos de profundidad.
[0009] En otro ejemplo, esta divulgacion describe un dispositivo que comprende uno o mas procesadores configurados para determinar una lista de visualizaciones de objetivos de textura que indica visualizaciones en un flujo de bits 3DV que tienen componentes de visualizacion de textura que se requieren para la descodificacion de imagenes en una pluralidad de visualizaciones de objetivos, con el flujo de bits 3DV que incluye componentes de visualizacion de textura codificados y componentes de visualizacion de profundidad codificados. El uno o mas procesadores tambien estan configurados para determinar una lista de visualizaciones de objetivos de profundidad que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos. Ademas, el uno o mas procesadores pueden determinar el sub-flujo de bits basandose al menos en parte en la lista de visualizaciones de objetivos de textura y en la lista de visualizaciones de objetivos de profundidad.
[0010] En otro ejemplo, esta divulgacion describe un dispositivo que comprende medios para determinar una lista de visualizaciones de objetivos de textura que indica visualizaciones en un flujo de bits 3DV que tienen componentes de visualizacion de textura que se requieren para la descodificacion de imagenes en una pluralidad de visualizaciones de objetivos, el flujo de bits 3DV incluyendo componentes de visualizacion de textura codificados y componentes de visualizacion de profundidad codificados. El dispositivo tambien comprende medios para determinar una lista de visualizaciones de objetivos de profundidad que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos. Ademas, el dispositivo comprende medios para determinar el sub-flujo de bits basandose, al menos en parte, en la lista de visualizaciones de objetivos de textura y la lista de visualizaciones de objetivos de profundidad.
[0011] En otro ejemplo, esta divulgacion describe un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando son ejecutadas por uno o mas procesadores de un dispositivo, configuran el dispositivo para determinar una lista visualizacion de objetivos de textura que indica visualizaciones en un flujo de bits 3DV que tiene componentes de visualizacion de textura que son necesarios para descodificar imagenes en una pluralidad de visualizaciones de objetivos, con el flujo de bits 3DV que incluye componentes de visualizacion de textura codificados y componentes de visualizacion de profundidad codificados. Ademas, las instrucciones configuran el dispositivo para determinar una lista de visualizaciones de objetivos de profundidad que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos. Ademas, las instrucciones configuran el dispositivo para determinar el sub- flujo de bits basandose, al menos en parte, en la lista de visualizaciones de objetivos de textura y en la lista de visualizaciones de objetivos de profundidad.
[0012] La informacion de uno o mas ejemplos de la divulgacion se exponen en los dibujos adjuntos y la descripcion siguiente. Otras caracteristicas, objetivos y ventajas resultaran evidentes a partir de la descripcion, de los dibujos y de las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
[0013]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion de video de ejemplo que puede utilizar
las tecnicas descritas en esta divulgacion.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de codificador de video que puede implementar las
tecnicas descritas en esta divulgacion.
5
10
15
20
25
30
35
40
45
50
55
60
65
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de descodificador de video que puede implementar las tecnicas descritas en esta divulgacion.
La FIG. 4 es un diagrama de flujo que ilustra un ejemplo de operacion de extraccion de sub-flujo de bits, de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 5 es un diagrama de flujo que ilustra un ejemplo de proceso de extraccion de sub-flujo de bits en video tridimensional (3DV) compatible con codificacion de multiples visualizaciones (MVC), de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 6 es un diagrama de flujo que ilustra una continuacion del proceso de extraccion de sub-flujo de bits de ejemplo de la FIG. 5.
La FIG. 7 es un diagrama de flujo que ilustra una operacion de ejemplo para determinar identificadores de visualizacion de componentes de visualizacion de textura de anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 8 es un diagrama de flujo que ilustra una operacion de ejemplo para determinar identificadores de visualizacion de componentes de visualizacion de profundidad de anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 9 es un diagrama de flujo que ilustra una operacion de ejemplo para determinar identificadores de visualizacion de componentes de visualizacion de textura sin anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 10 es un diagrama de flujo que ilustra una operacion de ejemplo para determinar identificadores de visualizacion de componentes de visualizacion de profundidad sin anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 11 es un diagrama de flujo que ilustra una primera operacion de ejemplo para marcar unidades de capa de acceso de red (VLC) de capa de codificacion de video (NAL) y unidades NAL de datos de relleno para ser eliminadas de un flujo de bits, de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 12 es un diagrama de flujo que ilustra una segunda operacion de ejemplo para marcar unidades VCL NAL y unidades NAL de datos de relleno como para ser eliminadas de un flujo de bits, de acuerdo con una o mas tecnicas de esta divulgacion.
La FIG. 13 es un diagrama conceptual que ilustra un ejemplo de orden de descodificacion MVC.
La FIG. 14 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion entre visualizaciones y temporal de MVC.
DESCRIPCION DETALLADA
[0014] Un flujo de bits puede incluir datos de video de codificacion de video de multiples visualizaciones (MVC) codificados. Los datos de video MVC pueden incluir datos que definen multiples visualizaciones de una escena. Para soportar video tridimensional (3DV), usando multiples visualizaciones mas codificacion de profundidad de datos de video tridimensionales (3D), al menos algunas de las visualizaciones pueden incluir un componente de textura y un componente de profundidad. Un ejemplo de un proceso de codificacion de profundidad mas multiples visualizaciones esta en desarrollo como una extension de MVC bajo el estandar ITU-T H.264. Esta extension se conoce como la extension 3DV de H.264/AVC. Un descodificador de video puede descodificar el flujo de bits para dar salida a 3DV. El flujo de bits puede comprender una serie de unidades de capa de abstraccion de red (NAL), cada una de las cuales contiene partes de los datos de video MVC codificados. La inclusion de visualizaciones adicionales en los datos de video de multiples visualizaciones codificados puede aumentar significativamente la velocidad de transmision de bits del flujo de bits.
[0015] Algunos dispositivos informaticos que solicitan el flujo de bits no estan configurados para manejar todas las visualizaciones incluidas en los datos de video de multiples visualizaciones. Ademas, puede haber ancho de banda insuficiente para transmitir el flujo de bits completo a un dispositivo informatico que solicita el flujo de bits. En consecuencia, cuando un dispositivo informatico solicita el flujo de bits, un dispositivo intermedio, tal como un dispositivo en una red de suministro de contenido (CDN), puede extraer un sub-flujo de bits del flujo de bits. En otras palabras, el dispositivo intermedio puede realizar un proceso de extraccion de sub-flujo de bits para extraer el sub- flujo de bits del flujo de bits original. En algunos ejemplos, el dispositivo intermedio extrae el sub-flujo de bits al eliminar selectivamente unidades NAL del flujo de bits original. En otras palabras, la extraccion es un proceso en el que las unidades NAL se eliminan y descartan, y las unidades NAL restantes no eliminadas son un sub-flujo de bits. Como resultado, el sub-flujo de bits puede incluir menos visualizaciones que el flujo de bits original. Las visualizaciones que
5
10
15
20
25
30
35
40
45
50
55
60
65
se incluiran en el sub-flujo de bits se pueden denominar en el presente documento "visualizaciones de objetivos". Para extraer el sub-flujo de bits, el dispositivo intermedio puede eliminar algunas visualizaciones del flujo de bits original, produciendo asi el sub-flujo de bits con las visualizaciones restantes. Ademas, dado que las visualizaciones se eliminan del flujo de bits, la velocidad de transmision de bits del sub-flujo de bits puede ser menor que la velocidad de transmision de bits del flujo de bits original, consumiendo menos ancho de banda cuando se envia a traves del CDN al dispositivo que solicita el flujo de bits.
[0016] En algunos casos, cada unidad de acceso de los datos de video puede incluir un componente de visualizacion de textura y un componente de visualizacion de la profundidad de cada una de las visualizaciones. En esta divulgacion, un componente de visualizacion de textura puede corresponder a un componente de visualizacion de profundidad, o viceversa, si el componente de visualizacion de textura y el componente de visualizacion de profundidad estan en la misma visualizacion y estan en la misma unidad de acceso. Si el dispositivo intermedio determina durante el proceso de extraccion de sub-flujo de bits que se requiere un componente de visualizacion de textura para descodificar una imagen en una visualizacion de objetivos, el dispositivo intermedio no elimina unidades NAL asociadas con el componente de visualizacion de textura o el componente de visualizacion de profundidad correspondiente. De forma similar, si el dispositivo intermedio determina durante el proceso de extraccion de sub-flujo de bits que se requiere un componente de visualizacion de profundidad para descodificar una imagen en una visualizacion de objetivos, el dispositivo intermedio no elimina unidades NAL asociadas con el componente de visualizacion de profundidad o el componente de visualizacion de textura correspondiente.
[0017] Sin embargo, hay casos donde se requiere un componente de visualizacion de textura para descodificar una imagen de una visualizacion de objetivos, pero no se requiere la correspondiente componente de visualizacion profundidad para descodificar cualquier imagen de cualquier visualizacion de objetivos. De forma similar, hay casos en los que se requiere un componente de visualizacion de profundidad para descodificar una imagen de una visualizacion de objetivos, pero no se requiere el componente de visualizacion de textura correspondiente para descodificar ninguna imagen de ninguna visualizacion de objetivos. En tales casos, la inclusion tanto del componente de visualizacion de textura como del componente de visualizacion de profundidad correspondiente puede ser ineficaz en el ancho de banda. Por consiguiente, puede ser deseable eliminar adicionalmente del flujo de bits original un componente de visualizacion de profundidad que esta asociado con un componente de visualizacion de textura pero no es necesario descodificar una imagen de una visualizacion de objetivos o, de forma alternativa, eliminar adicionalmente del flujo de bits original un componente de visualizacion de textura que esta asociado con un componente de visualizacion de profundidad, pero no es necesario para descodificar una imagen de una visualizacion de objetivos.
[0018] Las tecnicas de esta divulgacion estan relacionadas con codificacion de video MVC y 3D basada en la extension MVC de H.264/AVC, denominada extension 3DV de H.264/AVC. Mas especificamente, las tecnicas de esta divulgacion se refieren a la extraccion de sub-flujos de un flujo de bits 3DV. El flujo de bits 3DV puede incluir componentes de visualizacion de textura codificados y componentes de visualizacion de profundidad codificados. Las tecnicas de esta divulgacion pueden abordar problemas que ocurren en MVC y 3DV, y ambas pueden requerir que tanto el componente de visualizacion de textura como el componente de visualizacion de profundidad correspondiente para una visualizacion determinada se envien independientemente de si el componente de visualizacion de textura y el componente de visualizacion de profundidad para la visualizacion dada son realmente necesarios para descodificar una imagen de una visualizacion de objetivos.
[0019] De acuerdo con las tecnicas de esta divulgacion, un dispositivo puede mantener, durante un proceso de extraccion de sub-flujo de bits, listas de visualizaciones de objetivos independientes para componentes de visualizacion de textura y componentes de visualizacion profundidad. La lista de visualizaciones de objetivos para componentes de visualizacion de textura puede identificar visualizaciones que tienen componentes de visualizacion de textura que son necesarios para descodificar una imagen en una visualizacion de objetivos. La lista de visualizaciones de objetivos para los componentes de visualizacion de profundidad puede identificar las visualizaciones que tienen componentes de visualizacion de profundidad que son necesarios para descodificar una imagen en una visualizacion de objetivos. El dispositivo puede determinar el sub-flujo de bits basandose al menos en parte en las listas de visualizaciones de objetivos para componentes de visualizacion de textura y profundidad. Por ejemplo, el dispositivo puede eliminar de la capa de codificacion de video de flujo de bits (VCL) las unidades NAL que contienen fragmentos codificados de componentes de visualizacion de textura que pertenecen a visualizaciones no enumeradas en la lista de visualizaciones de objetivos para componentes de visualizacion de textura. Asimismo, en este ejemplo, el dispositivo puede eliminar del flujo de bits las unidades VCL NAL que contienen fragmentos codificados de componentes de visualizacion de profundidad que pertenecen a visualizaciones no enumeradas en la lista de visualizaciones de objetivos para componentes de visualizacion de profundidad.
[0020] Los dibujos adjuntos ilustran ejemplos. Los elementos indicados mediante numeros de referencia en los dibujos adjuntos corresponden a elementos indicados mediante numeros de referencia similares en la siguiente descripcion. En esta divulgacion, los elementos que tienen nombres que comienzan con palabras ordinales (por ejemplo, "primero", "segundo", "tercero", etc.) no necesariamente implican que los elementos tienen un orden particular. Mas bien, dichas palabras ordinales se usan simplemente para referirse a diferentes elementos de un mismo tipo o similar.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0021] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion de video 10 de ejemplo que puede utilizar las tecnicas de esta divulgacion. Tal como se utiliza en el presente documento, el termino "codificador de video" se refiere genericamente tanto a codificadores de video como a descodificadores de video. En esta divulgacion, los terminos "codificacion de video" o "codificacion" pueden referirse genericamente a la codificacion de video o la descodificacion de video.
[0022] Como se muestra en la FIG. 1, el sistema de codificacion de video 10 incluye un dispositivo de origen 12, un dispositivo de destino 14 y un dispositivo de red de suministro de contenido (CDN) 16. El dispositivo de origen 12 genera un flujo de bits que incluye datos de video codificados. En consecuencia, el dispositivo de origen 12 puede denominarse dispositivo de codificacion de video o aparato de codificacion de video. El dispositivo CDN 16 puede extraer un sub-flujo de bits del flujo de bits generado por el dispositivo de origen 12 y puede transmitir el sub-flujo de bits al dispositivo de destino 14. El dispositivo de destino 14 puede descodificar los datos de video codificados en el sub-flujo de bits. En consecuencia, el dispositivo de destino 14 puede denominarse dispositivo de descodificacion de video o aparato de descodificacion de video. El dispositivo de origen 12 y el dispositivo de destino 14 pueden ser ejemplos de dispositivos de codificacion de video o aparatos de codificacion de video.
[0023] El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender una amplia variedad de dispositivos, incluyendo ordenadores de sobremesa, dispositivos informaticos moviles, notebooks (es decir, portatiles), ordenadores tipo tablet, descodificadores, equipos telefonicos portatiles tales como los denominados telefonos "inteligentes", televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, ordenadores de coche o similares. El dispositivo CDN 16 puede incluir varios tipos de dispositivos informaticos, tales como dispositivos de servidor, dispositivos informaticos personales, dispositivos de red intermedios (por ejemplo, routers inteligentes, conmutadores, etc.), etc. El dispositivo CDN 16 puede ser parte de una red de suministro de contenido que suministra contenido de video a dispositivos de descodificacion de video, tal como el dispositivo de destino 14. Aunque esta divulgacion describe un dispositivo CDN como que implementa las tecnicas de esta divulgacion, las tecnicas de esta divulgacion pueden implementarse sin el uso de una cDn. Ademas, las tecnicas de esta divulgacion pueden implementarse en otros tipos de dispositivos. Por ejemplo, las tecnicas de esta divulgacion pueden implementarse en el dispositivo de origen 12, el dispositivo destino 14 u otro dispositivo informatico.
[0024] El dispositivo CDN 16 puede recibir un flujo de bits desde el dispositivo de origen 12 a traves de un canal 17A. El dispositivo de destino 14 puede recibir un sub-flujo de bits desde el dispositivo CDN 16 a traves de un canal 17B. Esta divulgacion puede referirse colectivamente a los canales 17A y 17B como "canales 17". Cada uno de los canales 17 puede comprender uno o mas medios o dispositivos capaces de mover datos de video codificados desde un dispositivo informatico a otro dispositivo informatico. En un ejemplo, uno o ambos canales 17 pueden comprender uno o mas medios de comunicacion que permiten a un dispositivo transmitir datos de video codificados directamente a otro dispositivo en tiempo real. En este ejemplo, un dispositivo puede modular los datos de video codificados de acuerdo con un estandar de comunicacion, tal como un protocolo de comunicacion alambrico o inalambrico, y puede transmitir los datos de video modulados a otro dispositivo. Los uno o mas medios de comunicacion pueden incluir medios de comunicacion inalambricos y/o alambricos, tales como un espectro de radiofrecuencia (RF) o una o mas lineas de transmision fisica. Los uno o mas medios de comunicacion pueden formar parte de una red basada en paquetes, tal como una red de area local, una red de area extensa o una red global (por ejemplo, Internet). El uno o mas medios de comunicacion pueden incluir routers, conmutadores, estaciones base u otros equipos que facilitan la comunicacion.
[0025] En otro ejemplo, uno o ambos de los canales 17 puede incluir un medio de almacenamiento que almacene datos de video codificados. En este ejemplo, el dispositivo CDN 16 y/o el dispositivo de destino 14 pueden acceder al medio de almacenamiento a traves del acceso al disco o el acceso a la tarjeta. El medio de almacenamiento puede incluir varios medios de almacenamiento de datos de acceso local, tales como discos Blu-ray, DVD, CD-ROM, memoria flash u otros medios adecuados de almacenamiento digital para almacenar datos de video codificados.
[0026] En un ejemplo adicional, cualquiera o ambos de los canales 17 puede incluir un servidor de archivos u otro dispositivo de almacenamiento intermedio que almacene datos de video codificados. En este ejemplo, el dispositivo CDN 16 y/o el dispositivo de destino 14 pueden acceder a los datos de video codificados almacenados en el servidor de archivos u otro dispositivo de almacenamiento intermedio mediante transmision o descarga. El servidor de ficheros puede ser un tipo de servidor capaz de almacenar datos de video codificados y transmitir los datos de video codificados al dispositivo de destino 14. Entre los ejemplos de servidores de ficheros se incluyen servidores de la Red (por ejemplo, para una sede de la Red), servidores del protocolo de transferencia de ficheros (FTP), dispositivos de almacenamiento conectados a red (NAS) y unidades de disco local.
[0027] El dispositivo CDN 16 y/o el dispositivo de destino 14 pueden acceder a los datos de video codificados a traves de una conexion de datos estandar, tal como una conexion a Internet. Entre los ejemplos de tipos de conexiones de datos pueden incluirse canales inalambricos (por ejemplo, conexiones de Wi-Fi), conexiones cableadas (por ejemplo, DSL, modem de cable, etc.), o combinaciones de ambos que sean adecuadas para acceder a datos de video codificados almacenados en un servidor de ficheros. La transmision de datos de video codificados desde el servidor de ficheros puede ser una transmision continua, una transmision de descarga o una combinacion de ambas.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0028] Las tecnicas de esta divulgacion no estan limitadas a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video, en soporte de una diversidad de aplicaciones multimedia, tales como radiodifusiones de television por el aire, radiodifusiones de television por cable, transmisiones de television por satelite, transmisiones de video en continuo, por ejemplo, mediante Internet, codificacion de datos de video para su almacenamiento en un medio de almacenamiento de datos, descodificacion de datos de video almacenados en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema de codificacion de video 10 puede configurarse para soportar la transmision de video unidireccional o bidireccional para soportar aplicaciones tales como la transmision de video, la reproduccion de video, la radiodifusion de video y/o la videotelefonia.
[0029] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de video 18, un codificador de video 20 y una interfaz de salida 22. En algunos ejemplos, la interfaz de salida 22 puede incluir un modulador/desmodulador (modem) y/o un transmisor. La fuente de video 18 puede incluir un dispositivo de captura de video, por ejemplo, una camara de video, un archivo de video que contiene datos de video previamente capturados, una interfaz de alimentacion de video para recibir datos de video de un proveedor de contenido de video y/o un sistema de graficos por ordenador para generar datos de video, una combinacion de tales fuentes de datos de video u otra fuente o fuentes de datos de video.
[0030] El codificador de video 20 puede codificar datos de video de la fuente de video 18. En algunos ejemplos, el dispositivo de origen 12 transmite directamente los datos de video codificados a traves de la interfaz de salida 22. En otros ejemplos, los datos de video codificados tambien pueden almacenarse en un medio de almacenamiento o un servidor de ficheros para un acceso posterior mediante el dispositivo de destino 14 para su descodificacion y/o reproduccion.
[0031] En el ejemplo de la FIG. 1, el dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de video 30 y un dispositivo de visualizacion 32. En algunos ejemplos, la interfaz de entrada 28 incluye un receptor y/o un modem. La interfaz de entrada 28 puede recibir datos de video codificados a traves del canal 17B. El dispositivo de visualizacion 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En general, el dispositivo de visualizacion 32 muestra datos de video descodificados. El dispositivo de visualizacion 32 puede comprender varios dispositivos de visualizacion, tales como una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
[0032] En algunos ejemplos, el codificador de video 20 y el descodificador de video 30 funcionan de acuerdo con un estandar de compresion de video, tal como ISO/IEC MPEG-4 Visual e ITU-T H.264 (tambien conocida como ISO/IEC MPEG-4 AVC), incluidas sus extensiones de codificacion de video escalable (SVC) y codificacion de video de multiples visualizaciones (MVC). A partir del 26 de febrero de 2013, se puede descargar un borrador reciente de la extension MVC de H.264/AVC en
http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zip. Otro borrador conjunto de MVC se describe en "Advanced Video Coding for Generic Audiovisual Services [Codificacion de video avanzada para servicios audiovisuales genericos]", Recomendacion ITU-T H.264, marzo de 2010. Ademas, hay un estandar de codificacion de video, como una extension del estandar MVC, concretamente "MVV basado en 3DV", descrito en Suzuki et al., "WD of MVC extension for inclusion of depth maps [Extension WD de MVC para la inclusion de mapas de profundidad]", ISO/IEC/JTCl/SC29/WG11/N12351, diciembre de 2011 (en adelante, "documento MPEG w12351").
[0033] En otros ejemplos, el codificador de video 20 y el descodificador de video 30 puede funcionar de acuerdo con otros estandares de compresion de video, incluyendo el estandar H.265/de codificacion de video de alta eficiencia (HEVC). Un borrador del siguiente estandar H.265/HEVC, denominado “Borrador de Trabajo 9 de la HEVC” se describe en el documento de Bross et al. "High Efficiency Video Coding (HEVC) text specification draft 9 [Borrador 9 de Memoria Descriptiva Textual de Codificacion de Video de Alta Eficacia (HEVC)]", Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 11.a reunion: Shanghai, China, octubre de 2012, que, desde el 26 de febrero de 2013, se puede descargar en:
http://phenix.int- evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v8.zip. Entre otros estandares de codificacion de video de ejemplo se incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU- T H.263 e ISO/IEC MPEG-4 Visual. Aunque las tecnicas de esta divulgacion se describen con respecto a H.264/AVC, y como ejemplo, con la extension 3DV de H.264/AVC usando MVC mas tecnicas de profundidad, tales tecnicas tambien se pueden aplicar a otros estandares de codificacion que hacen uso de tecnicas de MVC mas profundidad, y no estan limitadas a ningun estandar o tecnica de codificacion en particular.
[0034] La FIG. 1 es meramente un ejemplo y las tecnicas de esta divulgacion pueden aplicarse a ajustes de codificacion de video (por ejemplo, codificacion de video o descodificacion de video) que no incluyen necesariamente ninguna comunicacion de datos entre los dispositivos de codificacion y descodificacion. En otros ejemplos, los datos se recuperan de una memoria local, se transmiten por flujo a traves de una red o similar. Un dispositivo de codificacion de video puede codificar y almacenar datos en la memoria, y/o un dispositivo de descodificacion de video puede recuperar y descodificar datos desde la memoria. En muchos ejemplos, la codificacion y descodificacion se realiza mediante dispositivos que no se comunican entre si, sino que simplemente codifican datos en la memoria y/o recuperan y descodifican datos desde la memoria.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0035] El codificador de video 20, el descodificador de video 30 y el dispositivo CDN 16 pueden implementarse como cualquiera de una variedad de circuitos adecuados, tales como uno o mas microprocesadores, procesadores de senal digital (DSP), circuitos integrados especificos de la aplicacion (ASIC) , matrices de puertas programables sobre el terreno (FPGA), logica discreta, hardware o cualquier combinacion de los mismos. Si las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado de almacenamiento no transitorio legible por ordenador, y puede ejecutar las instrucciones en hardware usando uno o mas procesadores para realizar las tecnicas de esta divulgacion. Cualquiera de los anteriores (incluyendo hardware, software, una combinacion de hardware y software, etc.) puede considerarse como uno o mas procesadores. Cada uno del codificador de video 20 y el descodificador de video 30 pueden estar incluidos en uno o mas codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo.
[0036] Esta divulgacion puede referirse en general al codificador de video 20 que "senala" cierta informacion a otro dispositivo, tal como el descodificador de video 30. El termino "indicar" puede referirse en general a la comunicacion de elementos sintacticos y/u otros datos usados para descodificar los datos de video comprimidos. Dicha comunicacion puede producirse en tiempo real o casi real. De forma alternativa, dicha comunicacion puede producirse durante un tramo de tiempo, tal como podria ocurrir cuando se almacenan elementos sintacticos en un medio de almacenamiento legible por ordenador en un flujo de bits codificado en el momento de la codificacion, que a continuacion un dispositivo de descodificacion puede recuperar en cualquier momento tras haber sido almacenado en este medio. Por consiguiente, la senalizacion puede referirse en general a la provision de informacion en un flujo de bits codificado para uso en el procesamiento y/o la descodificacion del flujo de bits codificado.
[0037] Una secuencia de video incluye tipicamente una serie de tramas de video. Un grupo de imagenes (GOP) comprende en general una serie de una o mas tramas de video. Un GOP puede incluir datos sintacticos en una cabecera del GOP, una cabecera de una o mas tramas del GOP o en otras ubicaciones, que indican el numero de tramas incluidas en el GOP. Cada trama puede incluir datos sintacticos de trama que describen un modo de codificacion para la respectiva trama. Un codificador de video 20 actua tipicamente sobre unidades de video de tramas de video individuales con el fin de codificar los datos de video. En H.264/AVC, una unidad de video puede corresponder a un macrobloque o una particion de un macrobloque. Un MB es un bloque 16x16 de muestras de luma y dos bloques correspondientes de muestras de croma de una imagen que tiene tres matrices de muestras, o un bloque 16x16 de muestras de una imagen monocromatica o una imagen que se codifica mediante tres planos de color independientes. Una particion de MB es un bloque de muestras de luma y dos bloques correspondientes de muestras de croma resultantes de una particion de un macrobloque para la prediccion inter para una imagen que tiene tres matrices de muestras o un bloque de muestras de luma resultante de una particion de un macrobloque para prediccion inter de una imagen monocromatica o una imagen que se codifica mediante tres planos de color independientes. En H.265/HEVC, una unidad de video puede corresponder a una unidad de prediccion (PU). Una PU puede ser un bloque de prediccion de muestras de luma, dos bloques de prediccion correspondientes de muestras de croma de una imagen y estructuras sintacticas usadas para predecir las muestras de bloques de prediccion. Un bloque de prediccion puede ser un bloque rectangular de muestras (por ejemplo, MxN) en el que se aplica la misma prediccion. Los bloques de unidades de video pueden tener tamanos fijos o variables, y pueden diferir en tamano de acuerdo con un estandar de codificacion especifico.
[0038] Cuando el codificador de video 20 codifica una unidad de video actual, el codificador de video 20 puede generar bloques predictivos que se corresponden con la unidad de video actual. El codificador de video 20 puede realizar prediccion intra o prediccion inter para generar los bloques predictivos. Cuando el codificador de video 20 realiza la prediccion intra para una unidad de video actual, el codificador de video 20 puede generar, basandose en muestras de la misma imagen que la unidad de video actual, bloques predictivos para la unidad de video actual. Cuando el codificador de video 20 realiza prediccion inter para generar bloques predictivos para una unidad de video actual, el codificador de video 20 puede generar los bloques predictivos basandose en muestras de una o mas imagenes de referencia. Las imagenes de referencia pueden ser imagenes distintas de la imagen que contiene la unidad de video actual.
[0039] Una vez que el codificador de video 20 ha generado bloques predictivos para una unidad de video actual, el codificador de video 20 puede generar bloques residuales para la unidad de video actual. Cada muestra de un bloque residual puede basarse en una diferencia entre unas muestras correspondientes de un bloque de luma o croma de la unidad de video actual y un bloque predictivo para la unidad de video actual. El codificador de video 20 puede aplicar una transformacion a unas muestras de un bloque residual para generar un bloque de coeficientes de transformacion. El codificador de video 20 puede aplicar varias transformaciones al bloque residual. Por ejemplo, el codificador de video 20 puede aplicar una transformacion tal como una transformacion de coseno discreta (DCT), una transformacion de numero entero, una transformacion de tren de ondas o una transformacion conceptualmente similar al bloque residual. El codificador de video 20 puede cuantificar los bloques de coeficientes de transformacion para reducir aun mas el numero de bits usados para representar la unidad de video actual. Despues de cuantificar un bloque de coeficientes de transformacion, el codificador de video 20 puede codificar por entropia los elementos sintacticos que representan los coeficientes de transformacion en el bloque de coeficientes de transformacion y otros elementos sintacticos asociados con la unidad de video actual. Por ejemplo, el codificador de video 20 puede realizar codificacion aritmetica binaria adaptable al contexto (CABAC), codificacion de longitud variable adaptable al contexto (CAVLC),
5
10
15
20
25
30
35
40
45
50
55
60
65
codificacion de Golomb exponencial u otro tipo de codificacion por entropia en los elementos sintacticos. El codificador de video 20 puede emitir un flujo de bits que incluye los elementos sintacticos codificados por entropia asociados con la unidad de video actual.
[0040] El flujo de bits puede incluir una secuencia de bits que forma una representacion de imagenes codificadas y datos asociados. El flujo de bits puede comprender una secuencia de unidades de capa de abstraccion de red (NAL). Cada una de las unidades de NAL incluye una cabecera de la unidad NAL y encapsula una carga util de secuencia de octetos sin procesar (RBSP). La cabecera de la unidad NAL puede incluir un elemento sintactico que indica un codigo de tipo de unidad NAL. El codigo de tipo de unidad NAL especificado por la cabecera de unidad NAL de una unidad NAL indica el tipo de la unidad NAL. Una RBSP puede ser una estructura sintactica que contiene un numero entero de bytes que se encapsula dentro de una unidad NAL. En algunos casos, una RBSP incluye cero bits.
[0041] Diferentes tipos de unidades NAL pueden encapsular diferentes tipos de RBSP. Por ejemplo, un primer tipo de unidad NAL puede encapsular una RBSP para un conjunto de parametros de imagen (PPS), un segundo tipo de unidad NAL puede encapsular una RBSP para un fragmento codificado, un tercer tipo de unidad NAL puede encapsular una RBSP para informacion de realce complementaria (SEI), etc. Las unidades NAL que encapsulan las RBSP para datos de codificacion de video (a diferencia de las RBSP para conjuntos de parametros y mensajes SEI) pueden denominarse unidades NAL de la capa de codificacion de video (VCL). Una unidad NAL que encapsula un fragmento codificado puede denominarse unidad NAL de fragmento codificado.
[0042] El descodificador de video 30 puede recibir un flujo de bits que incluye una representacion codificada de datos de video. Por ejemplo, el descodificador de video 30 puede analizar el flujo de bits para extraer elementos sintacticos del flujo de bits. Como parte de la extraccion de los elementos sintacticos del flujo de bits, el descodificador de video 30 puede realizar la descodificacion por entropia de partes del flujo de bits. El descodificador de video 30 puede realizar, basandose al menos en parte en los elementos sintacticos asociados con una unidad de video actual (por ejemplo, una particion MB o MB), prediccion inter o intra para generar bloques predictivos para la unidad de video actual. Ademas, el descodificador de video 30 puede cuantificar inversamente los coeficientes de transformacion de los bloques de coeficientes de transformacion asociados con la unidad de video actual y puede aplicar una o mas transformaciones inversas a los bloques de coeficientes de transformacion para generar bloques residuales para la unidad de video actual. El descodificador de video 30 puede entonces reconstruir los bloques de luma y croma de la unidad de video actual basandose, al menos en parte, en los bloques residuales y los bloques predictivos. De este modo, mediante la reconstruccion de los bloques de luma y croma de cada unidad de video de una imagen, el descodificador de video 30 puede reconstruir la imagen.
[0043] Como se ha mencionado anteriormente, el codificador de video 20 puede llevar a cabo la prediccion inter para generar bloques predictivos para una unidad de video particular. Mas especificamente, el codificador de video 20 puede realizar una prediccion inter unidireccional o una prediccion inter bidireccional para generar los bloques predictivos.
[0044] Cuando el codificador de video 20 realiza prediccion inter unidireccional para una unidad de video actual (por ejemplo, un MB o particion MB), el codificador de video 20 pueden buscar un bloque de referencia dentro de imagenes de referencia en una unica lista de imagenes de referencia. El bloque de referencia puede ser un bloque de muestras de luma y unos bloques correspondientes de muestras de croma que son similares a los bloques de luma y croma de la unidad de video actual. Ademas, cuando el codificador de video 20 realiza una prediccion inter unidireccional, el codificador de video 20 puede generar informacion de movimiento para el bloque de video particular. La informacion de movimiento para la unidad de video particular puede incluir un vector de movimiento y un indice de referencia. El vector de movimiento puede indicar un desplazamiento espacial entre una posicion de la imagen actual de los bloques de la unidad de video actual y una posicion de la imagen de referencia del bloque de referencia. El indice de referencia indica una posicion de la lista de imagenes de referencia de la imagen de referencia que contiene el bloque de referencia. Las muestras de los bloques predictivos para la unidad de video actual pueden ser iguales a unas muestras correspondientes del bloque de referencia.
[0045] Cuando el codificador de video 20 realiza prediccion inter bidireccional para una unidad de video actual (por ejemplo, un MB o particion MB), el codificador de video 20 puede buscar un primer bloque de referencia dentro de imagenes de referencia en una primera lista de imagenes de referencia ( "lista 0") y puede buscar un segundo bloque de referencia dentro de imagenes de referencia en una segunda lista de imagenes de referencia ("lista 1"). El codificador de video 20 puede generar, basandose al menos en parte en el primer y el segundo bloques de referencia, los bloques predictivos para la unidad de video actual. Ademas, el codificador de video 20 puede generar un primer vector de movimiento que indica un desplazamiento espacial entre los bloques de la unidad de video actual y el primer bloque de referencia. El codificador de video 20 tambien puede generar un primer indice de referencia que identifica una ubicacion de la primera lista de imagenes de referencia de la imagen de referencia que contiene el primer bloque de referencia. Ademas, el codificador de video 20 puede generar un segundo vector de movimiento que indica un desplazamiento espacial entre los bloques de la unidad de video actual y el segundo bloque de referencia. El codificador de video 20 tambien puede generar un segundo indice de referencia que identifica una ubicacion de la segunda lista de imagenes de referencia de la imagen de referencia que incluye el segundo bloque de referencia.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0046] Cuando el codificador de video 20 realiza prediccion inter unidireccional para una unidad de video actual (por ejemplo, un MB o particion MB), el descodificador de video 30 puede usar la informacion de movimiento de la unidad de video actual para identificar el bloque de referencia de la unidad de video actual. El descodificador de video 30 puede generar a continuacion los bloques predictivos para la unidad de video actual basandose en el bloque de referencia de la unidad de video actual. Cuando el codificador de video 20 realiza la prediccion inter bidireccional para la unidad de video actual, el descodificador de video 30 puede utilizar la informacion de movimiento para la unidad de video actual para identificar los dos bloques de referencia de la unidad de video actual. El descodificador de video 30 puede generar los bloques predictivos de la unidad de video actual basandose en los dos bloques de referencia de la unidad de video actual.
[0047] La codificacion de video de multiples visualizaciones (MVC) es una extension del estandar H.264/AVC. La divulgacion describe tecnicas para video tridimensional (3DV), usando codificacion MVC mas profundidad de datos de video tridimensionales (3D), como en la extension 3DV de H.264/AVC. Ahora se presentara un breve analisis de MVC. En la extension de MVC para H.264, puede haber multiples visualizaciones de la misma escena desde diferentes visualizaciones. El termino "unidad de acceso" se usa para referirse al conjunto de componentes de visualizacion que corresponden a la misma instancia de tiempo. Un "componente de visualizacion" puede ser una representacion codificada de una visualizacion en una unica unidad de acceso. Asi, los datos de video pueden conceptualizarse como una serie de unidades de acceso que se producen a lo largo del tiempo. En esta divulgacion, una "visualizacion" puede referirse a una secuencia de componentes de visualizacion asociadas con el mismo identificador de visualizacion. Las unidades VCL NAL que contienen fragmentos codificados de componentes de visualizacion que pertenecen a la misma visualizacion especifican el mismo identificador de visualizacion. Un "indice de orden de visualizacion" es un indice que indica el orden de descodificacion de componentes de visualizacion en una unidad de acceso.
[0048] MVC soporta prediccion entre visualizaciones. La prediccion entre visualizaciones es similar a la prediccion inter utilizada en H.264/AVC y puede usar los mismos elementos sintacticos. Sin embargo, cuando un codificador de video realiza prediccion entre visualizaciones en una unidad de video actual, el codificador de video 20 puede usar, como una imagen de referencia, una imagen que esta en la misma unidad de acceso que la unidad de video actual, pero en una visualizacion diferente. En contraste, la prediccion inter convencional solo usa imagenes en diferentes unidades de acceso como imagenes de referencia. En MVC, una visualizacion se denomina "visualizacion basica" si un descodificador de video (por ejemplo, descodificador de video 30) puede descodificar cada imagen de la visualizacion sin referencia a imagenes de ninguna otra visualizacion. Al codificar una imagen en una de las visualizaciones no basicas, un codificador de video puede agregar una imagen en una lista de imagenes de referencia si la imagen esta en una visualizacion diferente pero dentro de una misma instancia de tiempo (es decir, unidad de acceso) que la imagen que el codificador de video actualmente esta codificando. Al igual que otras imagenes de referencia de prediccion inter, el codificador de video puede insertar una imagen de referencia de prediccion entre visualizaciones en cualquier posicion de una lista de imagenes de referencia. En MVC, la prediccion entre visualizaciones puede ser soportada por la compensacion de movimiento de disparidad. La compensacion de movimiento de disparidad usa la sintaxis de la compensacion de movimiento H.264/AVC, pero puede permitir que una imagen en una visualizacion diferente se use como una imagen de referencia. La codificacion de dos o mas visualizaciones puede ser soportada por MVC. Una de las ventajas de MVC es que un codificador MVC puede usar mas de dos visualizaciones como una entrada de video 3D y un descodificador MVC puede descodificar dicha representacion de multiples visualizaciones. Como resultado, los descodificadores de video que soportan MVC pueden procesar contenido de video 3D con mas de dos visualizaciones.
[0049] Ademas, como se menciono anteriormente, hay una extension 3DV compatible con MVC emergente de H.264/AVC. 3DV compatible con MVC esta disenada para permitir mejoras 3D manteniendo la compatibilidad MVC. 3DV compatible con MVC proporciona mapas de profundidad. En consecuencia, se puede hacer referencia a 3DV compatible con MVC como "MVC mas profundidad", "MVC + D" o como "extension compatible con MVC que incluye profundidad". Un borrador reciente de 3DV compatible con MVC se proporciona en Suzuki et al., "WD on MVC extensions for inclusion of depth maps [WD en extensiones MVC para la inclusion de mapas de profundidad]", ISO/IEC/JTC1/SC29/WG11/N12351, diciembre de 2011, es un borrador de 3DV compatible con MVC. Suzuki et al., "WD en extensiones MVC para la inclusion de mapas de profundidad", ISO/IEC/JTC1/SC29/WG11/N12544, febrero de 2012(en lo sucesivo denominado "documento N12544").
[0050] Un componente de visualizacion de profundidad incluye un mapa de profundidad. Los mapas de profundidad son imagenes cuyos valores de pixel representan las profundidades tridimensionales de los objetos que se muestran en las correspondientes imagenes de "textura". En algunos ejemplos, los valores de pixeles mas brillantes en un mapa de profundidad pueden corresponder a objetos que estan mas cerca de una camara y los valores de pixeles mas oscuros en un mapa de profundidad pueden corresponder a objetos que estan mas alejados de la camara. Las imagenes del componente de "textura" pueden ser imagenes H.264/AVC normales.
[0051] En esta divulgacion, se puede aplicar la terminologia de 3DV compatible con MVC. Por ejemplo, la parte de textura de una visualizacion se puede denominar una "visualizacion de textura" y la parte de profundidad de una visualizacion se puede denominar una "visualizacion de profundidad". La parte de textura de una visualizacion en una unidad de acceso, es decir, una visualizacion de textura en una unidad de acceso, se puede denominar "componente de visualizacion de textura". La parte de profundidad de una visualizacion en una unidad de acceso, es decir, una
5
10
15
20
25
visualizacion de profundidad en una unidad de acceso, se puede denominar un "components de visualizacion de profundidad". El termino "componente de visualizacion" puede usarse para referirse a una visualizacion en una unidad de acceso y colectivamente tanto al componente de visualizacion de textura como al componente de visualizacion de profundidad de la misma unidad de acceso.
[0052] El codificador de video 20 puede usar la renderizacion basada en la imagen de profundidad (DIBR) para generar, basandose en los componentes de visualizacion de textura y profundidad disponibles, un componente de visualizacion de textura sintetica. Un componente de visualizacion de textura sintetica puede ser un componente de visualizacion de textura que se sintetiza basandose en un mapa de profundidad y uno o mas componentes de visualizacion de textura. Por ejemplo, un componente de visualizacion de textura particular puede ser un componente de visualizacion de textura de ojo izquierdo y el codificador de video 20 puede usar DIBR para generar un componente de visualizacion de textura de ojo derecho para la reproduccion de video tridimensional. En algunos casos, se puede usar un componente de visualizacion de textura sintetica como una imagen de referencia para la prediccion de la unidad entre accesos o la prediccion entre visualizaciones. Los componentes de visualizacion de textura sintetica que se usan como imagenes de referencia se pueden denominar imagenes de referencia de sintesis de visualizacion (VSRP). Los codificadores de video pueden incluir VSRP en listas de imagenes de referencia.
[0053] Como se ha analizado anteriormente, un componente de visualizacion puede utilizar los componentes de visualizacion en otras visualizaciones para referencia; esto se llama prediccion entre visualizaciones. En MVC (y 3DV compatible con MVC), la prediccion entre visualizaciones puede implementarse como si el componente de visualizacion en otra visualizacion fuera una imagen de referencia entre predicciones. Las posibles imagenes de referencia entre visualizaciones pueden senalarse en una extension SPS para MVC (es decir, una extension SPS MVC). La Tabla 1, a continuacion, muestra una sintaxis de ejemplo para la extension SPS MVC para H.264.
TABLA 1
1 1
conjunto de parametros seq extension mvc() { Descriptor
2 1
num_views_minus1 ue(v)
3 1
for(i = 0; i <= num_views_minus1; i++ )
4 I
view_id[ i ] ue(v)
5 1
for(i = 1; i <= num_views_minus1; i++) {
6 1
num_anchor_refs_l0[ i ] ue(v)
7 |
for(j = 0; j < num anchor refs 10[ i ]; j++)
8 |
anchor_ref_l0[ i ][ j ] ue(v)
9 |
num_anchor_refs_l1[ i ] ue(v)
10
for(j = 0; j < num anchor refs l1[i];j++)
11
anchor_ref_l1[i][j] ue(v)
12
}
13
for(i = 1; i <= num views minus 1; i++) {
14
num_non_anchor_refs_l0[ i ] ue(v)
15
for(j = 0; j < num non anchor_ refs_ l0[ i ]; j++ )
16
non_anchor_ref_l0[ i ][ j ] ue(v)
17
num_non_anchor_refs_l1[ i ] ue(v)
18
for(j = 0; j < num_non_anchor_refs_]1[ i ]; j++ )
19
non_anchor_ref_l1[ i ][ j ] ue(v)
20
}
21
num_level_values_signalled_minus1 ue(v)
22
for(i = 0; i <= num_level_values_signalled_minus1; i++) {
23
level_idc[i ] u(8)
24
num_applicable_ops_minus1[ i ] ue(v)
25
for(j = 0; j <= num_applicable_ops_minus1[i]; j++) {
5
10
15
20
25
30
35
40
45
50
1 1
conjunto de parametros seq extension mvc() { Descriptor
26
applicable_op_temporal_id[i ][ j ] u(3)
27
applicable_op_num_target_views_minus1[i ][ j ] ue(v)
28
for(k = 0; k <= applicable_op_num_target_views_minus1[ i ][ j ]; k++ )
29
applicable_op_target_view_id[i ][ j ][ k ] ue(v)
30
applicable_op_num_views_minus1[ i ][ j ] ue(v)
31
}
32
}
33
}
[0054] En la Tabla 1 anterior y en otras tablas sintacticas de esta divulgacion, los elementos sintacticos con descriptor de tipo ue(v) pueden ser numeros enteros de longitud variable sin signo codificados utilizando codificacion Golomb exponencial (Exp-golomb) de orden 0 con el bit izquierdo primero. En el ejemplo de la Tabla 1 y las siguientes tablas, un elemento sintactico que tiene un descriptor de la forma u(n), donde n es un entero no negativo, son valores sin signo de longitud n. Los elementos sintacticos con los descriptores de tipo u(3) y u(8) pueden ser enteros sin signo con 3 y 8 bits, respectivamente.
[0055] Como se muestra en las lineas 3 y 4 de la Tabla 1, la extension SPS MVC puede especificar identificadores de visualizacion (por ejemplo, view_id[i]) de visualizaciones aplicables. Ademas, el codificador de video 20 puede, en la extension SPS MVC de la Tabla 1, senalar, para cada visualizacion, el numero de visualizaciones que pueden usarse para formar la lista de imagenes de referencia 0 y la lista de imagenes de referencia 1. Por ejemplo, los elementos sintacticos num_anchor_refs_l0[/] y num_non_anchor_refs_l0[/] en las lineas 6 y 14 de la Tabla 1 pueden especificar el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial 0 en la descodificacion de componentes de visualizacion de anclaje y sin anclaje, respectivamente, con indice de orden de visualizacion igual a /. Los elementos sintacticos num_anchor_refs_l1[/] y num_non_anchor_refs_l1[/] en las lineas 9 y 17 de la Tabla 1 pueden especificar el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial 1 en la descodificacion de componentes de visualizacion de anclaje y sin anclaje, respectivamente , con indice de orden de visualizacion igual a /.
[0056] La extension SPS MVC puede especificar posibles dependencias entre visualizaciones y visualizar componentes aplicables al SPS. Por ejemplo, en el ejemplo de la Tabla 1, la extension SPS MVC puede incluir elementos sintacticos denotados anchor_ref_l0[/][/], anchor_ref_l1 [/][/], non_anchor_ref_l0[i][/] y non_anchor_ref_l1 [/][/]. Anchor_ref_l10[/][/] especifica el identificador de visualizacion (identificacion de visualizacion) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 en la descodificacion de componentes de visualizacion de anclaje con indice de orden de visualizacion (VOIdx) igual a i. Anchor_ref_l1[/][/] especifica el identificador de visualizacion (view_id) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 en la descodificacion de componentes de visualizacion de anclaje con indice de orden de visualizacion (VOIdx) igual a /. Non_anchor_ref_l0[/][/] especifica el identificador de visualizacion (view_id) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 en la descodificacion de componentes de visualizacion sin anclaje con indice de orden de visualizacion (VOIdx) igual a /. Anchor ref l1 [/][/] especifica el identificador de visualizacion (view_id) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 en la descodificacion de componentes de visualizacion sin anclaje con el indice de orden de visualizacion (VOIdx) igual a /. De esta forma, la extension SPS MVC puede especificar las posibles relaciones de prediccion (es decir, dependencias) entre los componentes de visualizacion de anclaje y las posibles imagenes de referencia entre visualizaciones. Ademas, de esta forma, la extension SPS MVC puede especificar las posibles relaciones de prediccion (es decir, dependencias) entre componentes de visualizacion sin anclaje y posibles imagenes de referencia entre visualizaciones.
[0057] Una relacion de prediccion para una imagen de anclaje, tal como se senala en la extension de la MVC del SPS, puede ser diferente a la relacion de prediccion para una imagen sin anclaje (senalada en la extension de la MVC del SPS) de la misma visualizacion. Las listas de imagenes de referencia pueden modificarse durante el proceso de construccion de la lista de imagenes de referencia para permitir el ordenamiento flexible de las imagenes de referencia de prediccion inter o prediccion entre visualizaciones en las listas de imagenes de referencia.
[0058] En MVC (y 3DV compatible con MVC), una unidad NAL puede incluir una cabecera de unidad NAL de un byte y una extension de cabecera de unidad MVC NAL de tres bytes si la unidad NAL es una unidad NAL prefijo o una unidad MVC VCL NAL. La cabecera de la unidad NAL de un byte puede incluir un tipo de unidad NAL y un elemento sintactico nal_ref_idc. El elemento sintactico nal_ref_idc especifica si la unidad NAL contiene un SPS, una extension
5
10
15
20
25
30
35
40
45
50
SPS, un subconjunto SPS, un PPS, un fragmento de una imagen de referenda, una particion de datos de fragmento de una imagen de referencia o una unidad NAL prefijo que precede a un fragmento de una imagen de referencia. Una unidad NAL de prefijo en MVC (y 3DV compatible con MVC) puede contener solo una cabecera de unidad NAL y la extension de cabecera de unidad MVC NAL. La Tabla 2 siguiente indica una estructura sintactica de ejemplo para la extension de cabecera de unidad MVC NAL (nal_unit_header_mvc_extension).
TABLA 2
nal_unit_header_mvc_extension() {
C Descriptor
non_idr_flag
Todos u(1)
priority_id
Todos u(6)
view_id
Todos u(10)
id_temporal
Todos u(3)
anchor_pic_flag
Todos u(1)
inter _view_flag
Todos u(1)
reserved_one_bit
Todos u(1)
}
[0059] En la estructura sintactica de ejemplo de la Tabla 2, la non_idr_flag indica si la unidad NAL pertenece a una unidad NAL de actualizacion de descodificacion instantanea (IDR) que puede ser utilizada como un punto de acceso aleatorio GOP cerrado. Un punto de acceso aleatorio es una imagen que incluye solo I fragmentos. El elemento sintactico priority_id se puede usar para adaptacion de una via, en el que la adaptacion se puede hacer simplemente comprobando priority_id. El elemento sintactico view_id puede indicar un identificador de visualizacion de una visualizacion actual. La unidad NAL puede encapsular una representacion codificada de un fragmento de un componente de visualizacion de la visualizacion actual. El elemento sintactico temporal_id puede indicar un nivel temporal de la unidad NAL. El nivel temporal puede indicar una velocidad de trama asociada con la unidad NAL. El elemento sintactico anchor_pic_flag puede indicar si la unidad NAL pertenece a una imagen de anclaje que se puede usar como punto de acceso aleatorio GOP abierto. Una imagen de anclaje es una imagen codificada en la que todos los fragmentos solo pueden hacer referencia a los fragmentos en la misma unidad de acceso. Es decir, la prediccion entre visualizaciones se puede usar para codificar una imagen de anclaje, pero la prediccion inter no se puede usar para codificar la imagen de anclaje. El elemento sintactico inter_view_flag indica si un componente de visualizacion actual se utiliza para prediccion entre visualizaciones para unidades NAL en otras visualizaciones. La unidad NAL puede encapsular una representacion codificada de un fragmento del componente de visualizacion actual.
[0060] La solicitud de patente de Estados Unidos 13/414 515, presentada el 7 de marzo 2012introduce un elemento sintactico depth_to_view_flag en la cabecera de unidad NAL para indicar si el componente de visualizacion actual, si se trata de un componente de visualizacion de textura, no se utiliza para predecir cualquier componente de visualizacion profundidad. En otras palabras, si la unidad NAL encapsula un fragmento codificado de un componente de visualizacion de textura, un elemento sintactico depth to_view_flag en la cabecera de unidad NAL de la unidad NAL indica si el componente de visualizacion de textura se usa para predecir un componente de visualizacion de profundidad.
[0061] Con la aparicion de las redes de distribucion de contenidos (CDN) para el suministro de contenido de 3D de multiples visualizaciones a traves de Internet u otras redes de datos, 3DV compatible con MVC se ha adaptado para facilitar el suministro de los flujos de bits de datos de video que incluyen todas las diversas visualizaciones a los CDN. Por ejemplo, un servidor de biblioteca de video central (u otros dispositivos) puede codificar datos de video de multiples visualizaciones como un solo flujo de bits y puede suministrar este flujo de bits unico a un CDN que sirve a varios dispositivos cliente. Los dispositivos, como el dispositivo CDN 16, en el CDN pueden almacenar localmente el flujo de bits para su suministro a dispositivos cliente, como el dispositivo de destino 14.
[0062] El dispositivo CDN 16 puede realizar un proceso denominado extraccion de sub-flujo de bits a fin de extraer sub-flujos de bits de un flujo de bits (es decir, el flujo de bits original). El flujo de bits original puede incluir representaciones codificadas de una pluralidad de visualizaciones. Los sub-flujos de bits pueden incluir representaciones codificadas de un subconjunto de las visualizaciones del flujo de bits original. En algunos ejemplos, el dispositivo CDN 16 puede extraer un sub-flujo de bits del flujo de bits original extrayendo selectivamente unidades NAL particulares del flujo de bits original. Las unidades NAL extraidas forman el sub-flujo de bits.
[0063] El dispositivo CDN 16 puede extraer diferentes sub-flujos de bits basandose en las capacidades de diferentes dispositivos cliente y/o anchos de banda de transmision asociados con diferentes dispositivos cliente. Por ejemplo, una o mas de las multiples visualizaciones en el flujo de bits original pueden designarse para dispositivos cliente que
5
10
15
20
25
30
35
40
45
50
55
60
65
tienen pantallas mas pequenas, como telefonos moviles (donde esta visualizacion puede ser la visualizacion central descrita anteriormente, que comunmente es la unica visualizacion requerida para visualizar contenido 3D en una pantalla mas pequena que normalmente es visualizada por una sola persona). En respuesta a la determinacion de que el dispositivo cliente que solicita el flujo de bits original es un telefono movil, el dispositivo CDN 16 puede extraer un sub-flujo de bits particular del flujo de bits original y suministrar el flujo de bits particular al telefono movil. En este ejemplo, el sub-flujo de bits particular puede incluir una representacion codificada solo para una de las visualizaciones en el flujo de bits original.
[0064] Para 3DV compatible con MVC, el proceso de extraccion de flujo de bits puede ser descrito de la siguiente manera con respecto al documento anteriormente mencionado N12544. La referencia a las subclausulas siguiente se refiere a las subclausulas del documento N12544 u otros documentos relacionados con la extension 3DV de H.264/AVC, a los que se puede hacer referencia en el documento N12544. A continuacion se reproducen o se mencionan varias subclausulas del documento N12544 y se describe el proceso de extraccion del flujo de bits. El proceso de extraccion de sub-flujo de bits se describe de la siguiente manera.
[0065] Especificacion de subconjuntos de flujo de bits: Se aplican las especificaciones de la subclausula H.8.5 del anexo H de H.264.
[0066] Lo siguiente se aplica al proximo Anexo I de H.264.
[0067] I.8.5.1 Proceso de obtencion para componentes de visualizacion de anclaje requeridos: La especificacion de la subclausula H.8.5.1 se aplica con la sustitucion de "componente de visualizacion" por "componente de visualizacion de profundidad" o "componente de visualizacion de textura" y "visualizacion" por "visualizacion de profundidad" o "visualizacion de textura".
[0068] I.8.5.2 Proceso de obtencion para componentes de visualizacion sin anclaje requeridos: La especificacion de la subclausula H.8.5.2 se aplica con la sustitucion de "componente de visualizacion" por "componente de visualizacion de profundidad" o "componente de visualizacion de textura" y "visualizacion" por "visualizacion de profundidad" o "visualizacion de textura".
[0069] I.8.5.3 Proceso de extraccion de sub-flujo de bits: Es un requisito de la conformidad del flujo de bits que cualquier sub-flujo de bits que sea la salida del proceso especificado en esta subclausula con pIdTarget igual a cualquier valor en el rango de 0 a 63, inclusive, tIdTarget igual a cualquier valor en el rango de 0 a 7, inclusive, viewIdTargetList consistente en uno o mas valores de viewIdTarget que identifican las visualizaciones en el flujo de bits, se ajustara a esta Recomendacion | Estandar internacional. NOTa 1 - Un flujo de bits conforme contiene una o mas unidades NAL de fragmento codificado con priority_id igual a 0 y temporal_id igual a 0. NOTA 2 - Tambien es posible que no todos los puntos de operacion de los sub-flujos de bits resultantes del proceso de extraccion de sub- flujo de bits tengan un level_idc o level_idc[i] aplicables. En este caso, cada secuencia de video codificada en un flujo de bits puede cumplir con uno o mas de los perfiles especificados en el Anexo A, Anexo H y Anexo I, en ITU-T H.264, pero puede no cumplir con las restricciones de nivel especificadas en los apartados A.3, H.10.2 e I.10.2, respectivamente.
[0070] Las entradas a este proceso de extraccion de sub-flujo de bits incluyen: 1) una variable depthPresentFlagTarget (cuando esta presente), 2) una variable pIdTarget (cuando esta presente), 3) una variable tIdTarget (cuando esta presente), y 4) una lista viewIdTargetList que consta de uno o mas valores de viewIdTarget (cuando esta presente). Las salidas de este proceso son un sub-flujo de bits y una lista de valores VOIdx VOIdxList. Ademas, cuando depthPresentFlagTarget no esta presente como entrada a esta subclausula, se infiere que depthPresentFlagTarget es igual a 0. Cuando pIdTarget no esta presente como entrada a esta subclausula, se infiere que pIdTarget es igual a 63. Cuando tIdTarget no esta presente como entrada a esta subclausula, tIdTarget se infiere que es igual a 7. Cuando viewIdTargetList no esta presente como entrada en esta subclausula, debe haber un valor de viewIdTarget inferido en viewIdTargetList y el valor de viewIdTarget se infiere que es igual a view_id de la visualizacion base.
[0071] El sub-flujo de bits se obtiene mediante la aplicacion de las siguientes operaciones en orden secuencial:
1. Deje que VOIdxList este vacio y minVOIdx sea el valor VOIdx de la visualizacion base.
2. Para cada valor de viewIdTarget incluido en viewIdTargetList, invoque el proceso especificado en la subclausula H.8.5.1 para visualizaciones de textura con viewIdTarget como entrada.
3. Si depthPresentFlagTarget es igual a 1, para cada valor de viewIdTarget incluido en viewIdTargetList, invoque el proceso especificado en la subclausula H.8.5.1 para visualizaciones de profundidad con viewIdTarget como entrada.
4. Para cada valor de viewIdTarget incluido en viewIdTargetList, invoque el proceso especificado en la subclausula H.8.5.2 para visualizaciones de textura con el valor de viewIdTarget como entrada.
5
10
15
20
25
30
35
40
45
50
55
60
65
5. Si depthPresentFlagTarget es igual a 1, para cada valor de viewIdTarget incluido en viewIdTargetList, invoque el proceso especificado en la subclausula H.8.5.2 para visualizaciones de profundidad con viewIdTarget como entrada.
6. Marque todas las unidades VCL NAL y las unidades NAL de datos de relleno para las cuales cualquiera de las siguientes condiciones son verdaderas como "para eliminar del flujo de bits":
a) priority_id es mayor que pIdTarget,
b) temporal_id es mayor que tIdTarget,
c) anchor_pic_flag es igual a 1 y view id no esta marcado como "requerido para el anclaje"
d) anchor_pic_flag es igual a 0 y view_id no esta marcado como "requerido para sin anclaje"
e) nal_ref_idc es igual a 0 e inter_view_flag es igual a 0 y view_id no es igual a ningun valor en la lista viewIdTargetList,
f) nal_unit_type es igual a 21 y depthPresentFlagTarget es igual a 0.
7. Elimine todas las unidades de acceso para las cuales todas las unidades VCL NAL estan marcadas como "para eliminar del flujo de bits".
8. Elimine todas las unidades VCL NAL y las unidades NAL de datos de relleno que estan marcadas como "para eliminar del flujo de bits".
9. Cuando VOIdxList contiene solo un valor de VOIdx que es igual a minVOIdx, elimine las siguientes unidades NAL:
a) todas las unidades NAL con nal_unit_type igual a 14 o 15,
b) todas las unidades NAL con nal_unit_type igual a 6 en las que el primer mensaje SEI tiene un tipo de carga util en el rango de 36 a 44, inclusive.
Cuando VOIdxList contiene solo un valor de VOIdx igual a minVOIdx, el sub-flujo de bits contiene solo la visualizacion base o solo un subconjunto temporal de la visualizacion base.
10. Cuando depthPresentFlagTarget es igual a 0, elimine todas las unidades NAL con nal_unit_type igual a 6 en las que el primer mensaje SEI tenga payloadType en el rango de 45 a 47, inclusive.
11. Deje que maxTId sea el temporal_id maximo de todas las unidades VCL NAL restantes. Elimine todas las unidades NAL con nal_unit_type igual a 6 que solo contengan mensajes SEI que son parte de un mensaje SEI de agrupamiento escalable MVC con cualquiera de las siguientes propiedades:
a) operation_point_flag es igual a 0 y todos los componentes de visualizacion -in-au-flag son iguales a 0 y ninguno de sei_view_id[i] para todos los i en el rango de 0 a num_view_components_minus1, inclusive, corresponde a un valor VOIdx incluido en VOIdxList,
b) operation_point_flag es igual a 1 y sei_op_temporal_id es mayor que maxTId o la lista de sei_op_view_id[i] para todos los i en el rango de 0 a num_view_components_op_minus1, inclusive, no es un subconjunto de viewIdTargetList (es decir, no es cierto que sei_op_view_id[i] para cualquier i en el rango de 0 a num view components_op_minus1, inclusive, es igual a un valor en viewIdTargetList).
12. Elimine cada mensaje SEI de informacion de escalabilidad de visualizacion y cada mensaje SEI no presente en punto de operacion, cuando este presente.
13. Cuando VOIdxList no contiene un valor de VOIdx igual a minVOIdx, la visualizacion con VOIdx igual al valor minimo de VOIdx incluido en VOIdxList se convierte en la visualizacion base del sub-flujo de bits extraido. Un procedimiento informativo que describe los pasos clave del proceso para crear una visualizacion base se describe en la subclausula I.8.5.6. Cuando VOIdxList no contiene un valor de VOIdx igual a minVOIdx, el sub-flujo de bits resultante de acuerdo con los pasos de operacion 1 -9 anteriores no contiene una visualizacion base que se ajuste a uno o mas perfiles especificados en el Anexo A. En este caso, en este paso de operacion, la visualizacion restante con el nuevo valor VOIdx minimo se convierte en la nueva visualizacion base que se ajusta a uno o mas perfiles especificados en el Anexo A y el Anexo H.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0072] En la realizacion de este proceso de extraccion de sub-flujo de bits, el dispositivo CDN 16 puede reducir los requisitos de ancho de banda de salida del CDN a un dispositivo cliente, tal como el dispositivo de destino 14. Para facilitar esta reduccion del ancho de banda, 3DV compatible con MVC presenta una serie de tecnicas de codificacion de video que facilitan el proceso de extraccion de sub-flujo de bits. Por ejemplo, 3DV compatible con MVC proporciona prediccion inter no solo dentro de una visualizacion sino a traves de visualizaciones. La prediccion entre visualizaciones en general se permite en 3DV compatible con MVC entre imagenes en la misma unidad de acceso, pero entre imagenes en diferentes unidades de acceso. A este respecto, la descodificacion de un componente de visualizacion particular en una unidad de acceso dada puede requerir la descodificacion de uno o mas componentes de visualizacion diferentes en la unidad de acceso dada u otras unidades de acceso. En otras palabras, el componente de visualizacion particular puede depender de uno o mas componentes de visualizacion diferentes en la unidad de acceso dada u otras unidades de acceso. Las estructuras 3DV compatibles con MVC acceden a unidades y conjuntos de parametros (por ejemplo, conjuntos de parametros de secuencia, conjuntos de parametros de imagen, etc.) de modo que los dispositivos CDN, como el dispositivo CDN 16, puedan determinar las dependencias entre componentes de visualizacion sin tener que descodificar ninguna visualizacion de componentes. Por el contrario, los dispositivos CDN pueden determinar las dependencias entre los componentes de visualizacion basandose en listas de visualizaciones de objetivos senaladas en conjuntos de parametros de secuencia.
[0073] Las dependencias entre componentes de visualizacion (que tambien pueden denominarse "relaciones de prediccion") pueden ser diferentes para imagenes de anclaje y sin anclaje. Una imagen de anclaje es una imagen codificada en la que todos los fragmentos de la imagen codificada hacen referencia solo a los fragmentos dentro de la misma unidad de acceso. Consecuentemente, la prediccion entre visualizaciones se puede usar en una imagen de anclaje, pero no se usa prediccion inter (es decir, la prediccion de la unidad de acceso inter) en la imagen de anclaje. Todas las imagenes codificadas que siguen una imagen de anclaje en orden de salida no usan prediccion inter de ninguna imagen antes de la imagen codificada en orden de descodificacion. Una imagen sin anclaje se refiere a cualquier imagen distinta a una imagen de anclaje.
[0074] Tipicamente, las imagenes de anclaje se utilizan de manera periodica dentro del flujo de bits para permitir la descodificacion oportuna del contenido. Por ejemplo, el codificador de video 20 puede insertar periodicamente una imagen de anclaje en el flujo de bits para que un descodificador de video, tal como un descodificador de video 30, pueda descodificar el uno o mas componentes de visualizacion sin tener que almacenar en memoria intermedia una cantidad significativa de imagenes adicionales. Por esta razon, las imagenes de anclaje pueden facilitar los cambios de canal reduciendo los tiempos de descodificacion a un limite de tiempo maximo conocido tolerable por un consumidor de dicho contenido.
[0075] Para soportar el proceso de extraccion de sub-flujo de bits, 3DV compatible con MVC proporciona diferentes reglas para formar sub-flujos de bits con respecto a imagenes de anclaje y sin anclaje sin distinguir entre los diferentes componentes de visualizacion de cualquiera de las imagenes de anclaje y sin anclaje. Es decir, una visualizacion codificada en general incluye no solo un componente de visualizacion de textura sino tambien un componente de visualizacion de profundidad para que se pueda realizar video en 3D. En algunos casos, el componente de visualizacion de profundidad requiere que el componente de visualizacion de textura se descodifique apropiadamente, mientras que en otros casos, el componente de visualizacion de profundidad no requiere que el componente de visualizacion de textura se descodifique apropiadamente. Por lo tanto, el 3DV compatible con MVC como se propone actualmente puede extraer ciertos componentes de visualizacion de textura del flujo de bits cuando se forma el sub- flujo de bits a pesar de que tales componentes de visualizacion de textura pueden no ser necesarios para descodificar el componente de visualizacion de profundidad. En otras palabras, para cada conjunto de valores de view_id seleccionados para salida, una vez que se identifica una visualizacion de profundidad o de textura para ser utilizada por una imagen de anclaje o una imagen sin anclaje para prediccion entre visualizaciones, todas las unidades VCL NAL de esa visualizacion , independientemente de si pertenecen a un componente de visualizacion de textura o un componente de visualizacion de profundidad, se incluyen en el sub-flujo de bits extraido. La no extraccion de los componentes innecesarios de la visualizacion de textura del flujo de bits (es decir, incluidos los componentes innecesarios de la visualizacion de textura en el sub-flujo de bits) puede dar como resultado ineficiencias en el ancho de banda.
[0076] De acuerdo con las tecnicas de esta divulgacion, el dispositivo CDN 16 puede mantener listas de visualizaciones de objetivos independientes para el componente de visualizacion de textura y el componente de visualizacion de la profundidad en lugar de mantener una unica lista para una imagen codificada, independientemente de su componente de visualizacion profundidad y componentes de visualizacion de textura. Manteniendo estas listas por separado, el dispositivo CDN 16 puede identificar cuando extraer un componente de visualizacion de textura y un componente de visualizacion de profundidad y no siempre envia ambos cuando solo se requiere uno u otro. Este cambio en la forma en que se mantienen las listas de visualizaciones de objetivos puede aplicarse tanto a las listas de visualizaciones de objetivos de anclaje como a las listas de visualizaciones de objetivos sin anclaje.
[0077] Para extraer un sub-flujo de bits de un flujo de bits 3DV, el dispositivo CDN 16 puede determinar una lista visualizaciones de objetivos de textura para un componente de visualizacion de textura de una visualizacion en el flujo de bits 3DV. La lista de visualizaciones de objetivos de textura puede indicar una o mas partes del flujo de bits 3DV utilizado para predecir el componente de visualizacion de textura. Ademas, el dispositivo CDN 16 puede determinar
5
10
15
20
25
30
35
40
45
50
55
60
65
una lista de visualizaciones de objetivos de profundidad para un componente de visualizacion de profundidad de la unidad NAL de la visualizacion en el flujo de bits 3DV. Esta lista de visualizaciones de objetivos de profundidad puede indicar una o mas partes del flujo de bits 3DV utilizado para predecir el componente de visualizacion de profundidad. El dispositivo CDN 16 puede determinar el sub-flujo de bits basandose al menos en parte en la lista de visualizaciones de objetivos de textura y la lista de visualizaciones de objetivos de profundidad. Debido a que la lista de visualizaciones de objetivos de textura puede incluir identificadores de visualizacion diferentes a la lista de visualizaciones de objetivos de profundidad, el dispositivo CDN 16 puede extraer un componente de visualizacion de textura sin extraer el componente de visualizacion de profundidad asociado. Asimismo, el dispositivo CDN 16 puede extraer un componente de visualizacion de profundidad sin extraer el componente de visualizacion de textura asociado. Un componente de visualizacion de textura y un componente de visualizacion de profundidad se pueden considerar asociados si corresponden a la misma ubicacion de camara (es decir, la misma visualizacion).
[0078] Como se indica anteriormente, un SPS puede especificar posibles dependencias entre visualizaciones y componentes de visualizacion aplicables a la SPS. El dispositivo CDN 16 puede determinar, basandose al menos en parte en la pluralidad de visualizaciones de objetivos y las posibles dependencias especificadas por el SPS, la lista de visualizaciones de objetivos de textura. Asimismo, el dispositivo CDN 16 puede determinar, basandose al menos en parte en la pluralidad de visualizaciones de objetivos y las posibles dependencias especificadas por el SPS, la lista de visualizaciones de objetivos de profundidad.
[0079] En algunos casos, las cabeceras de unidades NAL en el flujo de bits pueden incluir elementos sintacticos depth_to_view, como se describe anteriormente. De acuerdo con las tecnicas de esta divulgacion, la semantica del elemento sintactico depth_to_view_flag se puede extender para indicar si un componente de visualizacion de profundidad se puede descodificar con exito sin descodificar el componente de visualizacion de textura asociado. Es decir, el elemento sintactico depth_to_view_flag de una unidad NAL puede indicar si un fragmento codificado de un componente de visualizacion de profundidad encapsulado por la unidad NAL hace referencia a un componente de visualizacion de textura. De esta manera, incluso cuando el componente de visualizacion de textura no esta en la lista de visualizaciones de objetivos a extraer para textura, si el elemento sintactico depth_to_view_flag de una unidad NAL esta establecido en 1 y el componente de visualizacion de profundidad correspondiente esta en la lista de visualizaciones de objetivos para extraer para profundidad, se pueden extraer las unidades VCL NAL del componente de visualizacion de textura.
[0080] De forma alternativa, un elemento sintactico (use_texture_flag) de indicador de textura de uso se puede introducir en las cabeceras de unidad NAL. El elemento sintactico de indicador de textura de uso puede indicar si un componente de visualizacion de profundidad puede descodificarse con exito sin descodificar el componente de visualizacion de textura asociado. En otras palabras, el elemento sintactico de indicador de textura de uso de una unidad NAL puede indicar si un componente de visualizacion de profundidad encapsulado por la unidad NAL es descodificable sin descodificar un componente de visualizacion de textura que corresponde al componente de visualizacion de profundidad. El elemento sintactico de indicador de textura de uso puede establecerse en 0 para componentes de visualizacion de textura y puede establecerse en 1 para componentes de visualizacion de profundidad cuando el componente de visualizacion de profundidad requiere el componente de visualizacion de textura correspondiente para una descodificacion correcta. El elemento sintactico de indicador de textura de uso puede establecerse en 0 para un componente de visualizacion de profundidad cuando el componente de visualizacion de profundidad no es necesario para el componente de visualizacion de textura correspondiente para una descodificacion correcta.
[0081] El uso de estos indicadores puede facilitar, en el dispositivo CDN 16, la realizacion mas eficiente del proceso de extraccion de sub-flujo de bits cuando se estan utilizando tanto la lista de visualizaciones de objetivos de textura como las listas de visualizaciones de objetivos de profundidad.
[0082] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de codificador de video 20 que puede implementar las tecnicas descritas en esta divulgacion. La FIG. 2 se proporciona con fines explicativos y no deberia considerarse limitadora de las tecnicas tales como las ampliamente ejemplificadas y descritas en esta divulgacion. Con fines explicativos, esta divulgacion describe el codificador de video 20 en el contexto de la codificacion H.264/AVC. Sin embargo, las tecnicas de esta divulgacion pueden ser aplicables a otros estandares o procedimientos de codificacion.
[0083] En el ejemplo de la FIG. 2, el codificador de video 20 incluye una unidad de procesamiento de prediccion 100, una unidad de generacion residual 102, una unidad de procesamiento de transformacion 104, una unidad de cuantificacion 106, una unidad de cuantificacion inversa 108, una unidad de procesamiento de transformacion inversa 110, una unidad de reconstruccion 112, una unidad de filtro 113, una memoria intermedia de imagenes descodificadas 114, y una unidad de codificacion por entropia 116. La unidad de procesamiento de prediccion 100 incluye una unidad de procesamiento de prediccion inter 121 y una unidad de procesamiento de prediccion intra 126. La unidad de procesamiento de prediccion inter 121 incluye una unidad de estimacion de movimiento 122 y una unidad de compensacion de movimiento 124. En otros ejemplos, el codificador de video 20 puede incluir mas, menos o diferentes componentes funcionales.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0084] El codificador de video 20 recibe datos de video. Para codificar los datos de video, el codificador de video 20 puede codificar cada fragmento de cada imagen de los datos de video. Como parte de la codificacion de un fragmento, el codificador de video 20 puede codificar unidades de video del fragmento.
[0085] La unidad de procesamiento de prediccion inter 121 puede generar datos predictivos para una unidad de video actual realizando una prediccion inter. Los datos predictivos para la unidad de video actual pueden incluir bloques predictivos e informacion de movimiento para la unidad de video actual.
[0086] Los fragmentos pueden ser fragmentos I, fragmentos P, fragmentos SP, o fragmentos B. La unidad de estimacion de movimiento 122 y la unidad de compensacion de movimiento 124 pueden realizar diferentes operaciones para una unidad de video dependiendo de si la unidad de video esta en un fragmento I, un fragmento P, un fragmento SP o un fragmento B. En un fragmento I, todas las unidades de video estan predecibles. Por lo tanto, si la unidad de video esta en un fragmento I, la unidad de estimacion de movimiento 122 y la unidad de compensacion de movimiento 124 no realizan una prediccion inter en la unidad de video. Un fragmento SP es un fragmento que puede codificarse mediante prediccion intra o prediccion inter con cuantificacion de las muestras de prediccion usando como maximo un vector de movimiento e indice de referencia para predecir los valores de muestra de cada bloque. Un fragmento SP puede codificarse de modo que sus muestras descodificadas se puedan construir de forma identica a otro fragmento SP o un fragmento SI. Un fragmento SI es un fragmento que se codifica mediante prediccion intra solo y mediante cuantificacion de las muestras de prediccion. Un fragmento SI puede codificarse de modo que sus muestras descodificadas se puedan construir de forma identica a un fragmento SP.
[0087] La unidad de procesamiento de prediccion inter 121 puede realizar un proceso de construccion de la lista de imagenes de referencia al comienzo de la codificacion de cada fragmento P, SP o B. Si la unidad de procesamiento de prediccion inter 121 esta codificando un fragmento P o SP, la unidad de procesamiento de prediccion inter 121 puede generar una primera lista de imagenes de referencia (por ejemplo, lista 0). Si la unidad de procesamiento de prediccion inter 121 codifica un fragmento B, la unidad de procesamiento de prediccion inter 121 puede generar la primera lista de imagenes de referencia (por ejemplo, lista 0) y tambien generar una segunda lista de imagenes de referencia (por ejemplo, lista 1).
[0088] Como se menciono anteriormente, la extension de cabecera de unidad de MVC NAL incluye un elemento sintactico non_idr_flag. Si el elemento sintactico non_idr_flag indica que la unidad NAL encapsula un fragmento codificado de una imagen IDR (por ejemplo, el elemento sintactico non_idr_flag es igual a 0), la unidad de procesamiento de prediccion inter 121 puede generar la lista 0 (y la lista 1 si el fragmento codificado es un fragmento B codificado) de manera que todas las entradas no indiquen ninguna imagen de referencia. De lo contrario, si el elemento sintactico non_idr_flag indica que la unidad NAL encapsula un fragmento codificado de una imagen que no es IDR, la unidad de procesamiento de prediccion inter 121 puede generar una version inicial de la lista 0 y, para un fragmento B, una version inicial de la lista 1 como se describe en la seccion 8.2.4.1 del estandar H.264/AVC.
[0089] Ademas, despues de la generacion de la version inicial de la lista 0 y, para un fragmento B, la version inicial de la lista 1, la unidad de procesamiento de prediccion inter 121 puede agregar componentes de referencia entre visualizaciones o componentes solo de referencia entre visualizaciones a la version inicial de la lista 0 y, para un fragmento B, la version inicial de la lista 1. Despues de agregar los componentes de referencia entre visualizaciones o componentes de referencia entre visualizaciones solamente, la unidad de procesamiento de prediccion inter 121 puede realizar un proceso de modificacion de lista de imagenes de referencia para generar una version final de la lista 0 y, para un fragmento B, una version final de la lista 1.
[0090] Para agregar los componentes de referencia entre visualizaciones a la lista 0 y la lista 1, la unidad de procesamiento de prediccion inter 121 puede primero determinar si el fragmento codificado encapsulado por la unidad NAL (es decir, el fragmento actual) es parte de una imagen de anclaje. Como se describio anteriormente, la extension de cabecera de la unidad MVC NAL puede incluir el elemento sintactico anchor_pic_flag. El elemento sintactico anchor_pic_flag de la unidad NAL puede indicar si el fragmento actual es parte de una imagen de anclaje. Si el fragmento actual es parte de una imagen de anclaje, la unidad de procesamiento de prediccion inter 121 puede agregar a la lista X (donde X es 0 o 1) cada imagen de referencia entre visualizaciones que pertenece a la misma unidad de acceso que el fragmento actual y se especifica para imagenes de anclaje en el SPS aplicable. Por lo tanto, las unicas imagenes de referencia entre visualizaciones en la lista X pertenecen a la misma unidad de acceso que el fragmento actual.
[0091] Por ejemplo, como se indico anteriormente, la extension MVC SPS puede incluir elementos sintacticos num_anchor_refs_l0[i], elementos sintacticos num_anchor_refs_l1, elementos sintacticos anchor_ref_l0[i][j] y
elementos sintacticos anchor_ref_l1 [i][j]. En este ejemplo, si el fragmento actual tiene anchor_pic_flag igual a 1, la
unidad de procesamiento de prediccion inter 121 puede, para cada valor del indice de visualizacion de referencia j de 0 a num_anchor_refs_l0[i] - 1, inclusive, en orden ascendente de j, agregar a la lista 0 la referencia de prediccion entre visualizaciones con id de la visualizacion igual a anchor_ref_l0[i][j] desde la misma unidad de acceso que el fragmento actual. De forma similar, si el fragmento actual tiene anchor_pic_flag igual a 1, la unidad de procesamiento de prediccion inter 121 puede, para cada valor del indice de visualizacion de referencia j de 0 a num_anchor_refs_l1[i] -
5
10
15
20
25
30
35
40
45
50
55
60
65
1, inclusive, en orden ascendente de j, agregar a la lista 1 la referencia de prediccion entre visualizaciones con id de la visualizacion igual a anchor_ref_l1 [i][j] desde la misma unidad de acceso que el fragmento actual.
[0092] De lo contrario, si el fragmento actual no es parte de una imagen de anclaje, la unidad de procesamiento de prediccion inter 121 puede agregar a la lista X (donde X es 0 o 1) cada imagen de referencia entre visualizaciones que pertenece a la misma unidad de acceso como el fragmento actual y se especifica para las imagenes sin anclaje en el SPS aplicable. Por lo tanto, las unicas imagenes de referencia entre visualizaciones en la lista X pertenecen a la misma unidad de acceso que el fragmento actual.
[0093] Por ejemplo, como se indico anteriormente, la extension MVC SPS puede incluir elementos sintacticos num_non_anchor_refs_l0[i], elementos sintacticos num_non_anchor_refs_l1, elementos sintacticos non_anchor_ref_l0[i][j], y elementos sintacticos non_anchor_ref_l1[i][j]. En este ejemplo, si el fragmento actual tiene anchor_pic_flag igual a 0, la unidad de procesamiento de prediccion inter 121 puede, para cada valor del indice de visualizacion de referencia j de 0 a num_non_anchor_refs_l0[i] - 1, inclusive, en orden ascendente de j, agregar a la lista 0 la referencia de prediccion entre visualizaciones con view_id igual a non_anchor_ref_l0[i][j] desde la misma unidad de acceso que el fragmento actual. De manera similar, si el fragmento actual tiene anchor_pic_flag igual a 0, la unidad de procesamiento de prediccion inter 121 puede, para cada valor del indice de visualizacion de referencia j de 0 a num_non_anchor_refs_l1[i] - 1, inclusive, en orden ascendente de j, agregar a la lista 1 la referencia de prediccion entre visualizaciones con id de la visualizacion igual a non_anchor_ref_l1[i][j] desde la misma unidad de acceso que el fragmento actual.
[0094] Si la unidad de video actual esta en un fragmento P, la unidad de estimacion de movimiento 122 puede buscar las imagenes de referencia de una lista de imagenes de referencia (por ejemplo, lista 0) para un bloque de referencia para la unidad de video actual. El bloque de referencia de la unidad de video puede incluir un bloque de luma y los correspondientes bloques de croma que se corresponden mas estrechamente con los bloques de luma y croma de la unidad de video actual. La unidad de estimacion de movimiento 122 puede usar una variedad de metricas para determinar con que exactitud los bloques de referencia en una imagen de referencia corresponden a los bloques de luma y croma de la unidad de video actual. Por ejemplo, la unidad de estimacion de movimiento 122 puede determinar con que exactitud un bloque de referencia en una imagen de referencia corresponde a los bloques de luma y croma de la unidad de video actual mediante una suma de diferencias absolutas (SAD), suma de diferencias cuadradas (SSD) u otra metricas de diferencia.
[0095] La unidad de estimacion de movimiento 122 puede generar un indice de referencia que indica la imagen de referencia de la lista 0 que contiene un bloque de referencia de una unidad de video actual (por ejemplo, una particion MB o MB) en un fragmento P y un vector de movimiento que indica un desplazamiento espacial entre los bloques de la unidad de video actual y el bloque de referencia. La unidad de estimacion de movimiento 122 puede emitir el indice de referencia y el vector de movimiento como la informacion de movimiento de la unidad de video. La unidad de compensacion de movimiento 124 puede generar los bloques predictivos de luma y croma para la unidad de video actual basandose en los bloques de luma y croma del bloque de referencia indicado por la informacion de movimiento de la unidad de video actual.
[0096] Si la unidad de video actual esta en un fragmento B, la unidad de estimacion de movimiento 122 puede llevar a cabo prediccion inter unidireccional o prediccion inter bidireccional para la unidad de video actual. Para realizar una prediccion inter unidireccional para la unidad de video actual, la unidad de estimacion de movimiento 122 puede buscar las imagenes de referencia de la lista 0 o una segunda lista de imagenes de referencia (por ejemplo, lista 1) para un bloque de referencia para la unidad de video. En ejemplos donde el codificador de video 20 usa MVC o 3DV, la lista 0 y/o la lista 1 pueden incluir imagenes de referencia entre visualizaciones. La unidad de estimacion de movimiento 122 puede generar un indice de referencia que indique una posicion en la lista 0 o lista 1 de la imagen de referencia que contiene un bloque de referencia. Ademas, la unidad de estimacion de movimiento 122 puede determinar un vector de movimiento que indique un desplazamiento espacial entre los bloques de la unidad de video actual y el bloque de referencia. La unidad de estimacion de movimiento 122 tambien puede generar un indicador de direccion de prediccion que indica si la imagen de referencia esta en la lista 0 o en la lista 1.
[0097] Para realizar prediccion inter bidireccional para una unidad de video actual (por ejemplo, un MB o particion MB), la unidad de estimacion de movimiento 122 puede buscar las imagenes de referencia de la lista 0 para un bloque de referencia y tambien puede buscar las imagenes de referencia de la lista 1 para otro bloque de referencia. La unidad de estimacion de movimiento 122 puede generar indices de referencia que indiquen posiciones en la lista 0 y lista 1 de las imagenes de referencia que contienen los bloques de referencia. Ademas, la unidad de estimacion de movimiento 122 puede determinar vectores de movimiento que indican desplazamientos espaciales entre los bloques de referencia y los bloques de la unidad de video actual. La informacion de movimiento de la unidad de video actual puede incluir los indices de referencia y los vectores de movimiento de la unidad de video actual. La unidad de compensacion de movimiento 124 puede generar bloques predictivos de luma y croma para la unidad de video actual basandose en los bloques de referencia indicados por la informacion de movimiento de la unidad de video actual.
[0098] La unidad de procesamiento de prediccion intra 126 puede generar datos predictivos para una unidad de video actual mediante la realizacion de prediccion intra. Los datos predictivos para la unidad de video actual pueden incluir
5
10
15
20
25
30
35
40
45
50
55
60
65
bloques predictivos para la unidad de video actual y varios elementos sintacticos. La unidad de procesamiento de prediccion intra 126 puede realizar la prediccion intra para unidades de video en fragmentos I, fragmentos P, fragmentos SP y fragmentos B.
[0099] Para llevar a cabo la prediccion intra en una unidad de video actual, la unidad de procesamiento de prediccion intra 126 puede utilizar multiples modos de prediccion intra para generar multiples conjuntos de datos predictivos para la unidad de video actual. Para usar un modo de prediccion intra para generar un conjunto de datos predictivos para la unidad de video actual, la unidad de procesamiento de prediccion intra 126 puede extender muestras de bloques contiguos a traves de los bloques de la unidad de video actual en una direccion asociada con el modo de prediccion intra. Los bloques contiguos pueden estar arriba, arriba y a la derecha, arriba y a la izquierda, o a la izquierda de los bloques de la unidad de video actual, suponiendo un orden de codificacion de arriba a abajo, de izquierda a derecha para unidades de video. En algunos ejemplos, el numero de modos de prediccion intra puede depender del tamano de los bloques de la unidad de video actual. La unidad de procesamiento de prediccion intra 126 selecciona uno de los modos de prediccion intra para seleccionar los bloques predictivos para la unidad de video actual.
[0100] La unidad de procesamiento de prediccion 100 puede seleccionar los datos predictivos para una unidad de video actual entre los datos predictivos generados por la unidad de procesamiento de prediccion inter 121 para la unidad de video actual o los datos predictivos generados por la unidad de procesamiento de prediccion 126 para la unidad de video actual. En algunos ejemplos, la unidad de procesamiento de prediccion 100 selecciona los datos predictivos para la unidad de video actual basandose en las metricas de velocidad/distorsion de los conjuntos de datos predictivos.
[0101] La unidad de generacion residual 102 puede generar bloques residuales de luma y croma restando las muestras de los bloques predictivos de luma y croma de las muestras correspondientes de los bloques de luma y croma de la unidad de video actual. La unidad de procesamiento de transformacion 104 puede generar bloques de coeficientes de transformacion para cada bloque residual aplicando una o mas transformaciones al bloque residual. La unidad de procesamiento de transformacion 104 puede aplicar diversas transformaciones a un bloque residual. Por ejemplo, la unidad de procesamiento de transformacion 104 puede aplicar una transformacion de coseno discreta (DCT), una transformacion direccional o una transformacion conceptualmente similar al bloque residual.
[0102] La unidad de cuantificacion 106 puede cuantificar los coeficientes de transformacion en un bloque de coeficientes de transformacion. El proceso de cuantificacion puede reducir la profundidad de bits asociada a algunos o a la totalidad de los coeficientes de transformacion. Por ejemplo, un coeficiente de transformacion de n bits puede redondearse hacia abajo a un coeficiente de transofrmacion de m bits durante la cuantificacion, donde n es mayor que m. La unidad de cuantificacion 106 puede cuantificar un bloque de coeficientes de transformacion basandose en un valor de parametro de cuantificacion (QP). El codificador de video 20 puede ajustar el grado de cuantificacion aplicado a los bloques de coeficientes de transformacion ajustando el valor de QP.
[0103] La unidad de cuantificacion inversa 108 y la unidad de procesamiento de transformacion inversa 110 pueden aplicar cuantificacion inversa y transformaciones inversas a un bloque de coeficientes de transformacion, respectivamente, para reconstruir un bloque residual a partir del bloque de coeficientes. La unidad de reconstruccion 112 agrega muestras en bloques residuales reconstruidos a muestras correspondientes de uno o mas bloques predictivos generados por la unidad de procesamiento de prediccion 100 para producir bloques reconstruidos. La unidad de filtro 113 puede realizar una operacion de desbloqueo para reducir las distorsiones de bloqueo en los bloques reconstruidos. La memoria intermedia de imagenes descodificadas 114 puede almacenar los bloques reconstruidos despues de que la unidad de filtro 113 realice la una o mas operaciones de desbloqueo en los bloques reconstruidos. La unidad de estimacion de movimiento 122 y la unidad de compensacion de movimiento 124 pueden usar una imagen de referencia que contiene los bloques reconstruidos para realizar la prediccion inter para unidades de video de imagenes posteriores. Ademas, la unidad de procesamiento de prediccion intra 126 puede usar bloques reconstruidos en la memoria intermedia de imagenes descodificadas 114 para realizar la prediccion intra.
[0104] La unidad de codificacion por entropia 116 puede recibir datos de otros componentes funcionales del codificador de video 20. Por ejemplo, la unidad de codificacion por entropia 116 puede recibir bloques de coeficientes de la unidad de cuantificacion 106 y puede recibir elementos sintacticos de la unidad de procesamiento de prediccion 100. La unidad de codificacion por entropia 116 puede realizar una o mas operaciones de codificacion por entropia en los datos para generar datos codificados por entropia. Por ejemplo, el codificador de video 20 puede realizar una operacion CAVLC, una operacion CABAC, una operacion de codificacion de longitud variable a variable (V2V), una operacion de codificacion aritmetica binaria adaptable al contexto basada en sintaxis (SBAC), una operacion de codificacion por entropia de particion de intervalo de probabilidad (PIPE), una operacion de codificacion Exponential- Golomb u otro tipo de operacion de codificacion por entropia en los datos.
[0105] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de descodificador de video 30 que puede implementar las tecnicas descritas en esta divulgacion. La FIG. 3 se proporciona con fines explicativos y no se limita a las tecnicas como las ampliamente ejemplificadas y descritas en esta divulgacion. Con fines explicativos, esta divulgacion describe el descodificador de video 30 en el contexto de la codificacion H.264/AVC. Sin embargo, las tecnicas de esta divulgacion pueden ser aplicables a otros estandares o procedimientos de codificacion.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0106] En el ejemplo de la FIG. 3, el descodificador de video 30 incluye una unidad de descodificacion por entropia 150, una unidad de procesamiento de prediccion 152, una unidad de cuantificacion inversa 154, una unidad de procesamiento de transformacion inversa 156, una unidad de reconstruccion 158, una unidad de filtro 159 y una memoria intermedia de imagenes descodificadas 160. La unidad de procesamiento de prediccion 152 incluye una unidad de compensacion de movimiento 162 y la unidad de procesamiento de prediccion intra 164. En otros ejemplos, el descodificador de video 30 puede incluir mas, menos o diferentes componentes funcionales.
[0107] El descodificador de video 30 recibe un flujo de bits. La unidad de descodificacion por entropia 150 puede analizar el flujo de bits para extraer elementos sintacticos del flujo de bits. Como parte del analisis del flujo de bits, la unidad de descodificacion por entropia 150 puede descodificar por entropia de elementos sintacticos codificados por entropia en el flujo de bits. La unidad de procesamiento de prediccion 152, la unidad de cuantificacion inversa 154, la unidad de procesamiento de transformacion inversa 156, la unidad de reconstruccion 158 y la unidad de filtro 159 pueden generar datos de video descodificados (es decir, reconstruir los datos de video) basandose en los elementos sintacticos extraidos del flujo de bits. Los elementos sintacticos extraidos del flujo de bits pueden incluir elementos sintacticos que representan bloques de coeficientes de transformacion.
[0108] La unidad de cuantificacion inversa 154 puede cuantificar inversamente, es decir, descuantificar, transformar bloques de coeficientes. La unidad de cuantificacion inversa 154 puede usar un valor de QP para determinar un grado de cuantificacion y, del mismo modo, un grado de cuantificacion inversa para la aplicacion de la unidad de cuantificacion inversa 154. Despues de que la unidad de cuantificacion inversa 154 cuantifica inversamente un bloque de coeficientes de transformacion, la unidad de procesamiento de transformacion inversa 156 puede aplicar una o mas transformaciones inversas al bloque de coeficientes de transformacion para generar un bloque residual. Por ejemplo, la unidad de procesamiento de transformacion inversa 156 puede aplicar una DCT inversa, una transformacion entera inversa, una transformacion de Karhunen-Loeve (KLT) inversa, una transformacion de rotacion inversa, una transformacion direccional inversa u otra transformacion inversa al bloque de coeficientes de transformacion.
[0109] Si una unidad de video actual (por ejemplo, una particion de MB o MB) se codifica utilizando la prediccion intra, la unidad de procesamiento de la prediccion intra 164 puede realizar la prediccion intra para generar bloques predictivos de luma y croma para la unidad de video actual. Por ejemplo, la unidad de procesamiento de prediccion intra 164 puede determinar un modo de prediccion intra para la unidad de video actual basada al menos en parte en elementos sintacticos en el flujo de bits. La unidad de procesamiento de prediccion intra 164 puede usar el modo de prediccion intra para generar los bloques predictivos para la unidad de video actual basandose en bloques contiguos espacialmente.
[0110] La unidad de procesamiento de prediccion 152 puede construir una primera lista de imagenes de referencia (lista 0) y una segunda lista de imagenes de referencia (lista 1) basandose en los elementos sintacticos extraidos del flujo de bits. En los ejemplos en los que el flujo de bits esta codificado utilizando 3DV compatible con MVC o MVC, la lista 0 y/o la lista 1 pueden incluir imagenes de referencia entre visualizaciones. La unidad de procesamiento de prediccion 152 puede construir las listas de imagenes de referencia de la misma manera que la descrita anteriormente con referencia a la unidad de procesamiento de prediccion inter 121 de la FIG. 2.
[0111] Ademas, si una unidad de video actual (por ejemplo, una particion de MB o MB) se codifica utilizando la prediccion inter, la unidad de descodificacion por entropia 150 puede extraer, del flujo de bits, informacion de movimiento para la unidad de video actual. La unidad de compensacion de movimiento 162 puede determinar, basandose al menos en parte en la informacion de movimiento de la unidad de video actual, uno o mas bloques de referencia para la unidad de video actual. La unidad de compensacion de movimiento 162 puede generar, basandose al menos en parte en uno o mas bloques de referencia para la unidad de video actual, bloques predictivos para la unidad de video actual.
[0112] La unidad de reconstruccion 158 puede reconstruirse, basandose al menos en parte en los bloques residuales de luma y croma para la unidad de video actual y los bloques predictivos de luma y croma de la unidad de video actual, bloques de luma y croma para la unidad de video actual. En particular, la unidad de reconstruccion 158 puede anadir muestras (por ejemplo, componentes de luma o croma) de los bloques residuales a las muestras correspondientes de los bloques predictivos para reconstruir los bloques de luma y croma de la unidad de video actual. La unidad de filtro 159 puede realizar una operacion de desbloqueo para reducir las distorsiones de bloqueo asociadas con los bloques reconstruidos de la unidad de video actual. El descodificador de video 30 puede almacenar los bloques reconstruidos en la memoria intermedia de imagenes descodificadas 160. La memoria intermedia de imagenes descodificadas 160 puede proporcionar imagenes de referencia para la posterior compensacion de movimiento, la prediccion intra y la presentacion en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la FIG. 1. Por ejemplo, el descodificador de video 30 puede realizar, basandose en los bloques de la memoria intermedia de imagenes descodificadas 160, operaciones de prediccion intra o de prediccion inter en las PU de otras CU.
[0113] La FIG. 4 es un diagrama de flujo que ilustra un ejemplo de operacion de extraccion de sub-flujo de bits 200, de acuerdo con una o mas tecnicas de esta divulgacion. El diagrama de flujo de la FIG. 4 y los diagramas de flujo de
5
10
15
20
25
30
35
40
45
50
55
60
65
las siguientes figuras se proporcionan como ejemplos. En otros ejemplos, las tecnicas de esta divulgacion se pueden implementar usando mas, menos, o diferentes pasos que los mostrados en el ejemplo de la FIG. 4 y las siguientes figuras.
[0114] Como se ilustra en el ejemplo de la FIG. 4, el dispositivo CDN 16 puede determinar una lista de visualizaciones de objetivos de textura que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en una pluralidad para unas visualizaciones de objetivos (202). Las visualizaciones de objetivos pueden ser un subconjunto de las visualizaciones en el flujo de bits 3DV que se pueden descodificar desde el sub-flujo de bits. Ademas, el dispositivo CDN 16 puede determinar una lista de visualizaciones de objetivos de profundidad que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos (204). El dispositivo CDN 16 puede determinar el sub-flujo de bits basandose, al menos en parte, en la lista de visualizaciones de objetivos de textura y la lista de visualizaciones de objetivos de profundidad (206).
[0115] En algunos ejemplos, la lista de visualizaciones de objetivos de textura incluye identificadores de visualizacion que identifican las visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos. Ademas, la lista de visualizaciones de objetivos de profundidad puede incluir identificadores de visualizacion que identifiquen las visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos. La lista de visualizaciones de objetivos de textura puede incluir uno o mas identificadores de visualizacion que son diferentes a los identificadores de visualizacion en la lista de visualizaciones de objetivos de profundidad.
[0116] Como se describio anteriormente, el flujo de bits 3DV puede comprender una serie de unidades NAL. En algunos ejemplos, el dispositivo CDN 16 puede determinar, basandose al menos en parte en si la lista de visualizaciones de objetivos de textura o la lista de visualizaciones de objetivos de profundidad especifica un identificador de visualizacion de una unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV.
[0117] La FIG. 5 es un diagrama de flujo que ilustra un ejemplo de proceso de extraccion de sub-flujo de bits 298 en 3DV compatible con MVC, de acuerdo con una o mas tecnicas de esta divulgacion. El proceso de extraccion de sub- flujo de bits 298 puede ser un ejemplo mas especifico del proceso de extraccion de sub-flujo de bits 200 de la FIG. 4. En el ejemplo de la FIG. 5, la lista de visualizaciones de objetivos para los componentes de visualizacion de textura (por ejemplo, la lista de visualizaciones de objetivos de textura) esta dividida en dos partes: una lista de visualizaciones requeridas para la textura de anclaje y una lista de visualizaciones requeridas para una textura sin anclaje. De manera similar, en el ejemplo de la FIG. 5, la lista de visualizaciones de objetivos para los componentes de visualizacion de profundidad (por ejemplo, la lista de visualizaciones de objetivos de profundidad) esta dividida en dos partes: una lista de visualizaciones requeridas para profundidad de anclaje y una lista de visualizaciones requeridas para profundidad sin anclaje.
[0118] El proceso de extraccion de sub-flujo de bits 298 puede tomar varias variables como entradas. Estas entradas pueden incluir un objetivo de indicador presente de profundidad (depthPresentFlagTarget), una variable pIdTarget, una variable tIdTarget y una lista de objetivos de identificador de visualizacion (viewIdTargetList). La lista de objetivos de identificador de visualizacion puede consistir en uno o mas valores de viewIdTarget. Los valores de viewIdTarget pueden incluir los identificadores de visualizacion de las visualizaciones que se incluiran en el sub-flujo de bits objetivo (es decir, el sub-flujo de bits extraido mediante el proceso de extraccion de sub-flujo de bits 298). El depthPresentFlagTarget puede indicar si las visualizaciones de profundidad estan incluidas en el sub-flujo de bits objetivo. Cuando depthPresentFlagTarget no esta presente como entrada, el dispositivo CDN 16 puede inferir (es decir, determinar automaticamente) que depthPresentFlagTarget es igual a 0. pIdTarget puede identificar un nivel de prioridad objetivo. Cuando pIdTarget no esta presente como entrada, el dispositivo CDN 16 puede inferir que pIdTarget es igual a 63. tIdTarget puede identificar un nivel temporal objetivo. Cuando tIdTarget no esta presente como entrada, el dispositivo CDN 16 puede inferir que tIdTarget es igual a 7. Cuando viewIdTargetList no esta presente como entrada, el dispositivo CDN 16 puede inferir que hay un valor de viewIdTarget en viewIdTargetList y que el valor de viewIdTarget es igual al identificador de visualizacion (view id) de la visualizacion base.
[0119] Las salidas de proceso de extraccion de sub-flujo de bits 298 pueden incluir un sub-flujo de bits y una lista de valores de indice de orden de visualizacion (VOIdxList). En algunos ejemplos, puede ser un requisito de la conformidad del flujo de bits que cualquier sub-flujo de bits que sea el resultado del proceso de extraccion de sub-flujo de bits 298 con pIdTarget sea igual a cualquier valor en el rango de 0 a 63, inclusive, tIdTarget sea igual a cualquier valor en el rango de 0 a 7, inclusive, donde viewIdTargetList consiste en uno o mas valores de viewIdTarget que identifica la visualizacion en el flujo de bits conforme al estandar H.264/AVC. Un flujo de bits conforme contiene una o mas
unidades NAL de fragmentos codificados con priority_id igual a 0 y temporal_id igual a 0. Es posible que no todos los
puntos de operacion de un sub-flujo de bits resultante del proceso de extraccion de sub-flujo de bits 298 tengan un level_idc o level_idc[i] aplicable. En este caso, cada secuencia de video codificada en un sub-flujo de bits puede (o debe) seguir cumpliendo con uno o mas de los perfiles especificados en el Anexo A, Anexo H y Anexo I del estandar H.264/AVC, pero puede no satisfacer las restricciones de nivel especificadas en los apartados A.3, H.1.0.2 e I.1.0.2, respectivamente, del estandar H.264/AVC.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0120] En el ejemplo de la FIG. 5, el dispositivo CDN 16 puede generar una lista de indices de orden de visualizacion vacia (VOIdxList) y puede inicializar un indice de orden de visualizacion minimo (minVOIdx) para ser el indice de orden de visualizacion de una visualizacion base (300). Es decir, el dispositivo CDN 16 puede dejar que VOIdxList este vacio y puede dejar que minVOIdx sea el valor VOIdx de la visualizacion base.
[0121] Ademas, el dispositivo CDN 16 puede generar una lista de visualizaciones de objetivos de textura de anclaje (302). La lista de visualizaciones de objetivos de textura de anclaje puede ser una lista de visualizaciones que tienen componentes de visualizacion de textura requeridos para descodificar imagenes de anclaje de las visualizaciones de objetivos. Esta divulgacion puede referirse a las visualizaciones en la lista de visualizaciones de objetivos de textura de anclaje como visualizaciones marcadas como "requeridas para la textura de anclaje". Cuando el dispositivo CDN 16 genera la lista de visualizaciones de objetivos de textura de anclaje, el dispositivo CDN 16 puede incluir en la lista de indices de orden de visualizacion (VOIdxList) los indices de orden de visualizacion de las visualizaciones marcadas como "requeridas para textura de anclaje". Como se describe en otra parte en esta divulgacion, el dispositivo CDN 16 puede determinar, basandose al menos en parte en la lista de visualizaciones de objetivos de textura de anclaje, unidades VCL NAL y unidades NAL de datos de relleno para eliminar del flujo de bits. En diversos ejemplos, el dispositivo CDN 16 puede generar la lista de visualizaciones de objetivos de textura de anclaje de diversas maneras. Por ejemplo, el dispositivo CDN 16 puede, para cada valor de viewIdTarget incluido en viewIdTargetList, invocar un proceso de obtencion de la lista de visualizaciones de objetivos de textura de anclaje con viewIdTarget como entrada. La FIG. 7, que se describe en detalle mas adelante en esta divulgacion, es un diagrama de flujo de un ejemplo de proceso de obtencion de la lista de visualizaciones de objetivos de textura de anclaje.
[0122] Despues de generar la lista de visualizaciones de objetivos de textura de anclaje, el dispositivo CDN 16 puede determinar si los componentes de visualizacion de profundidad deben incluirse en el sub-flujo de bits (304). En el ejemplo de la FIG. 5, el dispositivo CDN 16 puede determinar, basandose en depthPresentFlagTarget, si los componentes de visualizacion de profundidad se incluiran en el sub-flujo de bits. En respuesta a la determinacion de que los componentes de visualizacion de profundidad deben incluirse en el sub-flujo de bits ("SI" de 304), el dispositivo CDN 16 puede generar una lista de visualizaciones de objetivos de profundidad de anclaje (306). La lista de visualizaciones de objetivos de profundidad de anclaje puede ser una lista de visualizaciones que tienen componentes de visualizacion de profundidad requeridos para descodificar imagenes de anclaje de las visualizaciones de objetivos. Esta divulgacion puede referirse a las visualizaciones en la lista de visualizaciones de objetivos de profundidad de anclaje como visualizaciones que estan marcadas como "requeridas para la profundidad de anclaje". Cuando el dispositivo CDN 16 genera la lista de visualizaciones de objetivos de profundidad de anclaje, el dispositivo CDN 16 puede incluir en la lista de indices de orden de visualizacion (VOIdxList) los indices de orden de visualizacion de las visualizaciones marcadas como "requeridas para la profundidad de anclaje". Como se describe en otra parte en esta divulgacion, el dispositivo CDN 16 puede determinar, basandose al menos en parte en la lista de visualizaciones de objetivos de profundidad de anclaje, unidades VCL NAL y unidades NAL de datos de relleno para eliminar del flujo de bits. En diversos ejemplos, el dispositivo CDN 16 puede generar la lista de visualizaciones de objetivos de profundidad de anclaje de diversas maneras. Por ejemplo, si depthPresentFlagTarget es igual a 1, el dispositivo CDN 16 puede, para cada viewIdTarget en viewIdTargetList, realizar un proceso de obtencion de la lista de visualizaciones de objetivos de profundidad de anclaje con viewIdTarget como entrada. La FIG. 8, que se describe en detalle mas adelante en esta divulgacion, es un diagrama de flujo de un ejemplo de proceso de obtencion de la lista de visualizaciones de objetivos de profundidad de anclaje.
[0123] Despues de generar la lista de visualizaciones de objetivos de profundidad de anclaje o en respuesta a determinar que los componentes de visualizacion de profundidad no deben incluirse en el sub-flujo de bits ("NO" de 304), el dispositivo CDN 16 puede generar una lista de visualizaciones de objetivos de textura sin anclaje (308). La lista de visualizaciones de objetivos de textura sin anclaje puede ser una lista de visualizaciones que tienen componentes de visualizacion de textura requeridos para descodificar imagenes sin anclaje de las visualizaciones de objetivos. Esta divulgacion puede referirse a las visualizaciones en la lista de visualizaciones de objetivos de textura sin anclaje como visualizaciones que estan marcadas como "requeridas para texturas sin anclaje". Cuando el dispositivo CDN 16 genera la lista de visualizaciones de objetivos de textura sin anclaje, el dispositivo CDN 16 puede incluir en la lista de indices de orden de visualizacion (VOIdxList) los indices de orden de visualizacion de las visualizaciones marcadas como "requeridas para textura sin anclaje". Como se describe en otra parte en esta divulgacion, el dispositivo CDN 16 puede determinar, basandose al menos en parte en la lista de visualizaciones de objetivos de textura sin anclaje, unidades VCL NAL y unidades NAL de datos de relleno para eliminar del flujo de bits. En varios ejemplos, el dispositivo CDN 16 puede generar la lista de visualizaciones de objetivos de textura sin anclaje de varias maneras. Por ejemplo, el dispositivo CDN 16 puede, para cada valor de viewIdTarget incluido en viewIdTargetList, invocar un proceso de obtencion de la lista de visualizaciones de objetivos de textura sin anclaje con el viewIdTarget como entrada. La FIG. 9, que se describe en detalle mas adelante en esta divulgacion, es un diagrama de flujo de un ejemplo de proceso de obtencion de la lista de visualizaciones de objetivos de textura sin anclaje.
[0124] Ademas, el dispositivo CDN 16 puede determinar si los componentes de visualizacion de profundidad deben incluirse en el sub-flujo de bits (310). En respuesta a la determinacion de que los componentes de visualizacion de profundidad deben incluirse en el sub-flujo de bits ("SI" de 310), el dispositivo CDN 16 puede generar una lista de visualizaciones de objetivos de profundidad sin anclaje (312). La lista de visualizaciones de objetivos de profundidad
5
10
15
20
25
30
35
40
45
50
55
60
65
sin anclaje puede ser una lista de visualizaciones que tienen componentes de visualizacion de profundidad requeridos para descodificar imagenes sin anclaje de las visualizaciones de objetivos. Esta divulgacion puede referirse a las visualizaciones en la lista de visualizaciones de objetivos de profundidad sin anclaje como visualizaciones que estan marcadas como "requeridas para profundidad sin anclaje". Cuando el dispositivo CDN 16 genera la lista de visualizaciones de objetivos de profundidad sin anclaje, el dispositivo CDN 16 puede incluir en la lista de indices de orden de visualizacion (VOIdxList) los indices de orden de visualizacion de las visualizaciones que estan marcadas como "requeridas para profundidad sin anclaje". Como se describe en otra parte en esta divulgacion, el dispositivo CDN 16 puede determinar, basandose al menos en parte en la lista de visualizaciones de objetivos de profundidad sin anclaje, unidades VCL NAL y unidades NAL de datos de relleno para eliminar del flujo de bits. En diversos ejemplos, el dispositivo CDN 16 puede generar la lista de visualizaciones de objetivos de profundidad sin anclaje de varias maneras. Por ejemplo, si depthPresentFlagTarget es igual a 1, el dispositivo CDN 16 puede, para cada valor de viewIdTarget incluido en viewIdTargetList, invocar un proceso de obtencion de la lista de visualizaciones de objetivos de profundidad sin anclaje con viewIdTarget como entrada. La FIG. 10, que se describe en detalle mas adelante en esta divulgacion, es un diagrama de flujo de un ejemplo de proceso de obtencion de la lista de visualizaciones de objetivos de textura sin anclaje.
[0125] Despues de generar la lista de visualizaciones de objetivos de profundidad sin anclaje o en respuesta a determinar que los componentes de visualizacion de profundidad no deben incluirse en el sub-flujo de bits ("NO" de 310), el dispositivo CDN 16 puede marcar unidades VCL NAL aplicables y las unidades NAL de datos de relleno como "que se eliminaran del flujo de bits" (314). El dispositivo CDN 16 puede determinar las unidades NAL de datos de relleno y VAL aplicables de diversas maneras. Por ejemplo, el dispositivo CDN 16 puede determinar las unidades NAL de datos de relleno y VAL aplicables, realizando la operacion de ejemplo de la FIG. 11 o la operacion de ejemplo de la FIG. 12. Las FIGs. 11 y 12 se describen en detalle mas adelante en esta divulgacion.
[0126] A continuacion, el dispositivo CDN 16 puede eliminar, del flujo de bits, cada unidad de acceso para la cual todas las unidades VCL NAL de la unidad de acceso estan marcadas como "para ser eliminadas del flujo de bits" (316). Ademas, el dispositivo CDN 16 puede eliminar, del flujo de bits, todas las unidades VCL NAL y todas las unidades NAL de datos de relleno que estan marcadas como "para ser eliminadas del flujo de bits" (318).
[0127] El dispositivo CDN 16 puede entonces determinar si la lista de indices de orden de visualizacion (VOIdxList) contiene solo un indice de orden de visualizacion (VOIdx) que es igual al indice de orden de visualizacion minimo (minVOIdx) (320). Como se indico anteriormente, la lista de indices de orden de visualizacion puede incluir los indices de orden de visualizacion de las visualizaciones marcadas como "requeridas para la textura del anclaje", "requeridas para la profundidad del anclaje", "requeridas para textura sin anclaje" y "requeridas para profundidad de anclaje". Cuando VOIdxList contiene solo un valor de VOIdx igual a minVOIdx, el sub-flujo de bits contiene solo la visualizacion base o solo un subconjunto temporal de la visualizacion base.
[0128] En respuesta a determinar que la lista de indices de orden de visualizacion (VOIdxList) contiene solo un indice de orden de visualizacion (VOIdx) que es igual al indice minimo de orden de visualizacion (minVOIdx) ("SI" de 320), el dispositivo CDN 16 puede eliminar , del flujo de bits, todas las unidades NAL de prefijo y todas las unidades NAL de conjunto de parametros de secuencia de subconjunto (es decir, unidades NAL con nal_unit_type igual a 14 o 15, respectivamente) (322).
[0129] Ademas, el dispositivo CDN 16 puede eliminar, del flujo de bits, cada unidad SEI NAL (es decir, unidades NAL con nal_unit_type igual a 6) en la que un primer mensaje SEI de la unidad SEI NAL tiene un tipo de carga util en el rango de 36 a 44, inclusive (324). De esta forma, cuando VOIdxList contiene solo un valor de VOIdx que es igual a minVOIdx, el dispositivo CDN 16 puede eliminar las siguientes unidades NAL: todas las unidades NAL con nal_unit_type igual a 14 o 15 y todas las unidades NAL con nal_unit_type igual a 6 en las que el primer mensaje SEI tiene payloadType en el rango de 36 a 44, inclusive.
[0130] Los mensajes SEI que tienen un tipo de carga util 36 incluyen informacion de descodificacion paralela. Los mensajes SEI que tienen un tipo de carga util 37 incluyen informacion de agrupamiento escalable MVC. Los mensajes SEI que tienen un tipo de carga 38 incluyen informacion de escalabilidad de visualizacion. Los mensajes SEI que tienen el tipo de carga util 39 incluyen informacion de escena de multiples visualizaciones. Los mensajes SEI que tienen un tipo de carga util 40 incluyen informacion de adquisicion de multiples visualizaciones. Los mensajes SEI que tienen el tipo de carga util 41 incluyen informacion de componente de visualizacion no requerida. Los mensajes SEI que tienen el tipo de carga util 42 incluyen informacion de cambio de dependencia de visualizacion. Los mensajes SEI que tienen el tipo de carga util 43 incluyen informacion de puntos de operacion no presentes. Los mensajes SEI que tienen el tipo de carga util 44 incluyen informacion de descodificador de referencia hipotetica temporal (HRD) de visualizacion base.
[0131] Despues de eliminar cada unidad SEI NAL en la que un primer mensaje SEI de la unidad SEI NAL tiene un tipo de carga util en el rango de 36 a 44 o en respuesta a determinar que la lista de indices de orden de visualizacion (VOIdxList) no contiene solo un indice de orden de visualizacion (VOIdx) que es igual al indice de orden de visualizacion minimo (minVOIdx) ("NO" de 320), el dispositivo CDN 16 puede determinar si los componentes de visualizacion de profundidad deben incluirse en el sub-flujo de bits (326). En respuesta a la determinacion de que los
5
10
15
20
25
30
35
40
45
50
55
60
65
componentes de visualizacion de profundidad no deben incluirse en el sub-flujo de bits ("NO" de 326), el dispositivo CDN 16 puede eliminar, del flujo de bits, cada unidad SEI NAL (es decir, cada unidad NAL que tiene nal_unit_type igual a 6) en el que un primer mensaje SEI tiene un tipo de carga util en el rango de 45 a 47, inclusive (328). Por ejemplo, cuando depthPresentFlagTarget es igual a 0, el dispositivo CDN 16 puede eliminar todas las unidades NAL con nal_unit_type igual a 6 en las que el primer mensaje SEI tiene un tipo de carga util en el rango de 45 a 47, inclusive. Los mensajes SEI que tienen un tipo de carga util 45 incluyen informacion de agrupamiento escalable 3DV. Los mensajes SEI que tienen el tipo de carga util 46 incluyen informacion de escalabilidad de visualizacion 3D. Los mensajes SEI que tienen el tipo de carga util 47 incluyen informacion de adquisicion 3DV.
[0132] Despues de eliminar cada unidad SEI NAL que tiene un primer mensaje SEI que tiene un tipo de carga util en el rango de 45 a 47 (328) o en respuesta a determinar que componentes de visualizacion de profundidad deben ser incluidos en el sub-flujo de bits ("SI "de 326), el dispositivo CDN 16 puede llevar a cabo la continuacion del proceso de extraccion de sub-flujo de bits 298 mostrado en la FIG. 6.
[0133] La FIG. 6 es un diagrama de flujo que ilustra una continuacion del proceso de extraccion de sub-flujo de bits 298 de la FIG. 5. Como se muestra en el ejemplo de la FIG. 6, el dispositivo CDN 16 puede eliminar, del flujo de bits, todas las unidades SEI NAL (es decir, unidades NAL con nal_unit_type igual a 6) que contienen solo mensajes SEI que son parte de un mensaje de agrupamiento escalable MVC aplicable (330). Un mensaje de agrupamiento escalable de MVC puede ser un mensaje de agrupamiento escalable de MVC aplicable si un elemento sintactico operation_point_flag del mensaje de agrupamiento escalable de MVC es igual a 0, un elemento sintactico all_view_components_in_au_flag del mensaje de agrupamiento escalable de MVC es 0 y ninguno de los elementos sintacticos sei_view_id[i] del mensaje de agrupamiento escalable de MVC, para todos los i que estan en el rango de 0 a num_view_components_minus1, inclusive, corresponden a un indice de orden de visualizacion (VOIdx) incluido en la lista de indices de orden de visualizacion (VOIdxList). Ademas, un mensaje de agrupamiento escalable de MVC puede ser un mensaje de agrupamiento escalable de MVC aplicable si un elemento sintactico operation_point_flag del mensaje de agrupamiento escalable de MVC es igual a 1 y un elemento sintactico sei_op_temporal_id del mensaje de agrupamiento escalable de MVC es mayor que maxTId o la lista de sei_op_view_id[i] especificada en el mensaje de agrupamiento escalable de MVC para todos los i en el rango de 0 a num_view_components_op_minus1, inclusive, no es un subconjunto de viewIdTargetList. MaxTId puede ser el temporal_id maximo de todas las unidades VCL NAL restantes. En otras palabras, un mensaje de agrupamiento escalable MVC puede ser un mensaje de agrupamiento escalable MVC aplicable si un operation_point_flag del mensaje de agrupamiento escalable MVC es igual a 1 y no es cierto que sei_op_view_id[i] para cualquier i en el rango de 0 a num_view_components_minus1 , inclusive, es igual a un valor en viewIdTargetList.
[0134] De esta manera, el dispositivo CDN 16 puede dejar que maxTId sea el temporal_id maximo de todas las unidades VCL NAL restantes. Ademas, el dispositivo CDN 16 puede eliminar todas las unidades NAL con nal_unit_type igual a 6 que solo contienen mensajes SEI que son parte de un mensaje SEI de agrupamiento escalable MVC con cualquiera de las siguientes propiedades:
■ operation_point_flag es igual a 0 y all_view components_in_au_flag es igual a 0 y ninguno de sei_view_id[i] para todos los i en el rango de 0 a num_view_components_minus1, inclusive, corresponde a un valor VOIdx incluido en VOIdxList,
■ operation_point_flag es igual a 1 y sei_op_temporal_id es mayor que maxTId o la lista de sei_op_view_id[i] para todos los i en el rango de 0 a num view components_op_minus1, inclusive, no es un subconjunto de viewIdTargetList (es decir, no es cierto que sei_op_view_id[i] para cualquier i en el rango de 0 a num view components_op_minus1, inclusive, es igual a un valor en viewIdTargetList).
[0135] A continuacion, el dispositivo CDN 16 puede eliminar, de cada unidad NAL SEI en el flujo de bits, cada mensaje SEI de informacion de escalabilidad de visualizacion y cada mensaje SEI no presente de punto de operacion, cuando esta presente (332). Ademas, el dispositivo CDN 16 puede determinar si la lista de indices de orden de visualizacion (VOIdxList) contiene un indice de orden de visualizacion igual al indice minimo de orden de visualizacion (minVOIdx) (334). En respuesta a determinar que la lista de indices de orden de visualizacion contiene un indice de orden de visualizacion igual al indice de orden de visualizacion minimo ("SI" de 334), el dispositivo CDN 16 puede finalizar el proceso de extraccion de sub-flujo de bits 298. Por otro lado, en respuesta a determinar que la lista de indices de orden de visualizacion no contiene un indice de orden de visualizacion igual al indice de orden de visualizacion minimo ("NO" de 334), el dispositivo CDN 16 puede convertir la visualizacion con indice de orden de visualizacion igual al indice de orden de visualizacion minimo en la visualizacion base del sub-flujo de bits extraido (336). Despues de convertir la visualizacion, el dispositivo CDN 16 puede finalizar el proceso de extraccion de sub-flujo de bits 298. Los datos restantes en el flujo de bits son un sub-flujo de bits que el dispositivo CDN 16 puede reenviar a otro dispositivo, tal como el dispositivo de destino 14. Por lo tanto, cuando VOIdxList no contiene un valor de VOIdx igual a minVOIdx, la visualizacion con VOIdx igual al valor minimo de VOIdx incluido en VOIdxList se convierte en la visualizacion base del sub-flujo de bits extraido. En la sub-clausula I.8.5.6 de 3DV compatible con MVC se describe un procedimiento informativo que describe los pasos clave de procesamiento para crear una visualizacion base.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0136] Cuando la lista de indices visualizacion orden no contiene un indice de orden visualizacion igual al indice de orden de visualizacion minimo, el sub-flujo de bits resultante generado por el proceso de extraccion de sub-flujo de bits 298 no puede contener una visualizacion base que se ajusta a uno o mas perfiles especificados en el anexo A del estandar H.264/AVC. Por lo tanto, cuando la lista de indices de orden de visualizacion no contiene un indice de orden de visualizacion igual al indice de orden de visualizacion minimo, la visualizacion restante con el nuevo valor de indice de orden de visualizacion minimo puede convertirse en la accion 336 para ser la nueva visualizacion base que se ajusta a uno o mas perfiles especificados en el Anexo A y el Anexo H del estandar H.264/AVC.
[0137] La FIG. 7 es un diagrama de flujo que ilustra una operacion de ejemplo 350 para determinar los identificadores de visualizacion de los componentes de visualizacion de textura de anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion. Como se describio anteriormente con respecto a la accion 302 de la FIG. 5, el dispositivo CDN 16 puede determinar los identificadores de visualizacion que estan marcados como "requeridos para la textura de anclaje". El dispositivo CDN 16 puede determinar la lista de identificadores de visualizacion que estan marcados como "requeridos para la textura de anclaje" invocando la operacion 350 con un parametro de entrada que especifica un identificador de visualizacion actual. En el contexto de la FIG. 7, esta divulgacion puede referirse al indice de orden de visualizacion que corresponde al identificador de visualizacion actual como el "vOIdx actual" o simplemente "vOIdx". La operacion 350 puede ser similar al proceso descrito en la seccion H.8.5.1 del estandar H.264/AVC, sustituyendo el termino "componente de visualizacion" por "componente de visualizacion de textura" y sustituyendo "requerido para el anclaje" por "requerido para la textura de anclaje".
[0138] Como se ilustra en el ejemplo de la FIG. 7, el dispositivo CDN 16 puede determinar que el identificador de visualizacion actual es requerido para descodificar un componente de visualizacion de textura de anclaje (352). Por ejemplo, el dispositivo CDN 16 puede marcar el identificador de visualizacion actual como "requerido para la textura de anclaje".
[0139] Ademas, el dispositivo CDN 16 puede determinar si tanto el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 y el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es igual a 0 (354). En respuesta a determinar que tanto el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 como el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual son iguales a 0 ("SI" de 354), el dispositivo CDN 16 puede finalizar la operacion 350.
[0140] Por otro lado, en respuesta a la determinacion de que el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual no es 0 o que el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es igual a 0 ("NO" de 354), el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 (356).
[0141] En respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 ("SI" de 356), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de componentes de visualizacion de textura de anclaje que son necesarios para la descodificacion de cada componente de visualizacion de textura de anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual (358). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 350 para cada componente de visualizacion de textura de anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo CDN 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de textura de anclaje como entrada a la operacion 350 cuando realiza de forma recursiva la operacion 350 para el componente de visualizacion de textura de anclaje.
[0142] Por ejemplo, cuando num_anchor_refs_l0[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 350 para cada componente de visualizacion de textura en anchor_ref_l0[vOIdx][/] para todos los i en el rango de 0 a num_anchor_l0[vOidx] - 1, inclusive, en orden ascendente de i. num_anchor_refs_l0[/] y anchor_ref_l0[/][y] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_anchor_refs_l0[/] especifica el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en la descodificacion de componentes de visualizacion de anclaje con indices de orden de visualizacion iguales a i. En otras palabras, num_anchor_refs_l0[/] indica cuantos componentes de visualizacion inicialmente en la lista 0 se usan para la prediccion entre visualizaciones de componentes de visualizacion de anclaje con indices de orden de visualizacion iguales a i. num_anchor_refs_l0[/] especifica cuantos anchor_ref_l0[/][y] especifican el identificador de visualizacion (view_id) del y-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en la descodificacion de los componentes de visualizacion de anclaje con indice de orden de visualizacion igual a i.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0143] De lo contrario, en respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 356) o despues de realizar la accion 358, el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 (360). En respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 360), el dispositivo CDN 16 puede finalizar la operacion 350.
[0144] Sin embargo, en respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 ("SI" de 360), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de los componentes de visualizacion de textura de anclaje que son necesarios para la descodificacion de cada componente de visualizacion de textura de anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual (362). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 350 para cada componente de visualizacion de textura de anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo CDN 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de textura de anclaje como entrada a la operacion 350 cuando realiza de forma recursiva la operacion 350 para el componente de visualizacion de textura de anclaje.
[0145] Por ejemplo, cuando num_anchor_refs_l1[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 448 para cada componente de visualizacion de textura en anchor_ref_l1[vOIdx][/] para todos los i en el rango de 0 a num_anchor_l1 [vOidx] - 1, inclusive, en orden ascendente de i. num_anchor_refs_l1[/] y anchor_ref_l1 [/][/] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_anchor_refs_l1[/] especifica el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 (es decir, lista 1) en la descodificacion de componentes de visualizacion de anclaje con indices de orden de visualizacion iguales a i. anchor_ref_l1[/][/] especifica el identificador de visualizacion (view_id) del y-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 (es decir, lista 1) en la descodificacion de componentes de visualizacion de anclaje con indice de orden de visualizacion igual a i. Despues de realizar la accion 362, el dispositivo CDN 16 puede finalizar la operacion 350.
[0146] La FIG. 8 es un diagrama de flujo que ilustra una operacion de ejemplo 400 para determinar los identificadores de visualizacion de los componentes de visualizacion de profundidad de anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion. Como se describio anteriormente con respecto a la accion 306 de la FIG. 5, el dispositivo CDN 16 puede determinar los identificadores de visualizacion que estan marcados como "requeridos para profundidad de anclaje". El dispositivo CDN 16 puede determinar la lista de identificadores de visualizacion que estan marcados como "requeridos para profundidad de anclaje" invocando la operacion 400 con un parametro de entrada que especifica un identificador de visualizacion actual. En el contexto de la FIG. 8, esta divulgacion puede referirse al indice de orden de visualizacion que corresponde al identificador de visualizacion actual como el "vOIdx actual" o simplemente "vOIdx". La operacion 400 puede ser similar al proceso descrito en la seccion H.8.5.1 del estandar H.264/AVC, sustituyendo el termino "componente de visualizacion" por "componente de visualizacion de profundidad" y sustituyendo "requerido para el anclaje" por "requerido para profundidad de anclaje".
[0147] Como se ilustra en el ejemplo de la FIG. 8, el dispositivo CDN 16 puede determinar que el identificador de visualizacion actual es requerido para descodificar un componente de visualizacion de profundidad de anclaje (402). Por ejemplo, el dispositivo CDN 16 puede marcar el identificador de visualizacion actual como "requerido para profundidad de anclaje".
[0148] Ademas, el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 y el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es igual a 0 (404). En respuesta a la determinacion de que tanto el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 y el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es igual a 0 ("SI" de 404), el dispositivo CDN 16 puede finalizar la operacion 400.
[0149] Por otro lado, en respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual no es igual a 0 o que el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es igual a 0 ("NO" de 404), el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 (406).
[0150] En respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor
5
10
15
20
25
30
35
40
45
50
55
60
65
que 0 ("SI" de 406), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de componentes de visualizacion de profundidad de anclaje que son necesarios para la descodificacion de cada componente de visualizacion de profundidad de anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual (408). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 400 para cada componente de visualizacion de profundidad de anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo CDN 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de profundidad de anclaje como entrada a la operacion 400 cuando realiza recursivamente la operacion 400 para el componente de visualizacion de profundidad de anclaje.
[0151] Por ejemplo, cuando num_anchor_refs_l0[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 400 para cada componente de visualizacion de profundidad en anchor_ref_l0[vOIdx][/] para todos los i en el rango de 0 a num_anchor_l0[vOidx] - 1, inclusive, en orden ascendente de i. num_anchor_refs_l0[/] y anchor_ref_l0[/][/] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_anchor_refs_l0[/] especifica el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en los componentes de visualizacion de anclaje de descodificacion con indices de orden de visualizacion iguales a i. anchor_ref_l0[/][/] especifica el identificador de visualizacion (view_id) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en la descodificacion de componentes de visualizacion de anclaje con indice de orden de visualizacion igual a i.
[0152] De lo contrario, en respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 406) o despues de realizar la accion 408, el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 (410). En respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 410), el dispositivo CDN 16 puede finalizar la operacion 400.
[0153] Sin embargo, en respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones de anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 ("SI" de 410), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de los componentes de visualizacion de textura de anclaje que son necesarios para la descodificacion de cada componente de visualizacion de profundidad de anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual (412). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 400 para cada componente de visualizacion de profundidad de anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo CDN 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de profundidad de anclaje como entrada a la operacion 400 cuando realiza recursivamente la operacion 400 para el componente de visualizacion de profundidad de anclaje.
[0154] Por ejemplo, cuando num_anchor_refs_l1[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 400 para cada componente de visualizacion de profundidad en anchor_ref_l1[vOIdx][/] para todos los i en el rango de 0 a num_anchor_l1[vOidx] - 1, inclusive, en orden ascendente de i. num_anchor_refs_l1[/] y anchor_ref_l1[/][/] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_anchor_refs_l1[/] especifica el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 (es decir, lista 1) en la descodificacion de componentes de visualizacion de anclaje con indices de orden de visualizacion iguales a i. anchor_ref_l1[/][j] especifica el identificador de visualizacion (view_id) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 (es decir, lista 1) en la descodificacion de componentes de visualizacion de anclaje con indice de orden de visualizacion igual a i. Despues de realizar la accion 412, el dispositivo CDN 16 puede finalizar la operacion 400.
[0155] La FIG. 9 es un diagrama de flujo que ilustra una operacion de ejemplo 450 para determinar identificadores de visualizacion de componentes de visualizacion de textura sin anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion. Como se describio anteriormente con respecto a la accion 308 de la FIG. 5, el dispositivo CDN 16 puede determinar los identificadores de visualizacion que estan marcados como "requeridos para textura sin anclaje". El dispositivo CDN 16 puede determinar la lista de identificadores de visualizacion que estan marcados como "requeridos para textura sin anclaje" invocando la operacion 450 con un parametro de entrada que especifica un identificador de visualizacion actual. En el contexto de la FIG. 9, esta divulgacion puede referirse al indice de orden de visualizacion que corresponde al identificador de visualizacion actual como el "vOIdx actual" o simplemente "vOIdx". La operacion 450 puede ser similar al proceso descrito en la seccion H.8.5.2 del estandar H.264/AVC, sustituyendo el termino "componente de visualizacion" por "componente de visualizacion de textura" y sustituyendo "requerido para sin anclaje" por "requerido para textura sin anclaje".
[0156] Como se ilustra en el ejemplo de la FIG. 9, el dispositivo CDN 16 puede determinar que el identificador de visualizacion actual es requerido para descodificar un componente de visualizacion de textura sin anclaje (452). Por
5
10
15
20
25
30
35
40
45
50
55
60
65
ejemplo, el dispositivo CDN 16 puede marcar el identificador de visualizacion actual como "requerido para textura sin anclaje".
[0157] Ademas, el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje de la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 y el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es igual a 0 (454). En respuesta a la determinacion de que tanto el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje de la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 y el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje de la lista 1 que estan asociados con el indice de orden de visualizacion actual es igual a 0 ("SI" de 454), el dispositivo CDN 16 puede finalizar la operacion 450.
[0158] Por otro lado, en respuesta a la determinacion de que el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual no es igual a 0 o que el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es igual a 0 ("NO" de 454), el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 (456).
[0159] En respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje de la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 ("SI" de 456), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de componentes de visualizacion de textura sin anclaje que son necesarios para la descodificacion de cada componente de visualizacion de textura sin anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual (458). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 450 para cada componente de visualizacion de textura sin anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo CDN 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de textura sin anclaje como entrada a la operacion 450 cuando realiza recursivamente la operacion 450 para el componente de visualizacion de textura sin anclaje.
[0160] Por ejemplo, cuando num_non_anchor_refs_l0[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 450 para cada componente de visualizacion de textura en non_anchor_ref_l0[vOIdx][/] para todos los i en el rango de 0 a num_non_anchor_l0[vOidx] -1, inclusive, en orden ascendente de i. num_non_anchor_refs_l0[i] y non_anchor_ref_l0[/][y] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_non_anchor_refs_l0[/] especifica el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en la descodificacion de componentes de visualizacion sin anclaje con indices de orden de visualizacion iguales a i. non_anchor_ref_l0[/][y] especifica el identificador de visualizacion (view_id) del y-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en la descodificacion de componentes de visualizacion sin anclaje con indice de orden de visualizacion igual a i.
[0161] De lo contrario, en respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 456) o despues de realizar una accion 458, el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje de la lista 1 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 (460). En respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 460), el dispositivo CDN 16 puede finalizar la operacion 450.
[0162] Sin embargo, en respuesta a determinar que el numero de componentes de visualizacion de textura entre visualizaciones sin anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 ("SI" de 460), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de componentes de visualizacion de textura sin anclaje que son necesarios para la descodificacion de cada componente de visualizacion de textura sin anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual (462). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 450 para cada componente de visualizacion de textura sin anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo cDn 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de textura sin anclaje como entrada a la operacion 450 cuando realiza recursivamente la operacion 450 para el componente de visualizacion de textura sin anclaje.
[0163] Por ejemplo, cuando num_non_anchor_refs_l1[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 450 para cada componente de visualizacion de textura en non_anchor_ref_l1[vOIdx][/] para todos los i en el rango de 0 a num_non_anchor _l1[vOidx] - 1, inclusive, en orden ascendente de i. num_non_anchor_refs_l1[/] y non_anchor_ref_l1[/][y] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_non_anchor_refs_l1[/] especifica el numero de componentes de visualizacion para la prediccion entre
5
10
15
20
25
30
35
40
45
50
55
60
65
visualizaciones en la lista de imageries de referencia inicial RefPicListI (es decir, lista 1) en la descodificacion de componentes de visualizacion sin anclaje con indices de orden de visualizacion iguales a i, non_anchor_ref_l1[/][/] especifica el identificador de visualizacion (id de la visualizacion) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 (es decir, lista 1) en la descodificacion de componentes de visualizacion sin anclaje con indice de orden de visualizacion igual a i. Despues de realizar la accion 462, el dispositivo CDN 16 puede finalizar la operacion 450.
[0164] La FIG. 10 es un diagrama de flujo que ilustra una operacion de ejemplo 500 para determinar identificadores de visualizacion de componentes de visualizacion de profundidad sin anclaje requeridos, de acuerdo con una o mas tecnicas de esta divulgacion. Como se describio anteriormente con respecto a la accion 312 de la FIG. 5, el dispositivo CDN 16 puede determinar los identificadores de visualizacion que estan marcados como "requeridos para profundidad sin anclaje". El dispositivo CDN 16 puede determinar la lista de identificadores de visualizacion que estan marcados como "requeridos para profundidad sin anclaje" invocando la operacion 500 con un parametro de entrada que especifica un identificador de visualizacion actual. En el contexto de la FIG. 10, esta divulgacion puede referirse al indice de orden de visualizacion que corresponde al identificador de visualizacion actual como el "vOIdx actual" o simplemente "vOIdx". La operacion 500 puede ser similar al proceso descrito en la seccion H.8.5.2 del estandar H.264/AVC, sustituyendo el termino "componente de visualizacion" por "componente de visualizacion de profundidad" y sustituyendo "requerido para sin anclaje" por "requerido para profundidad sin anclaje".
[0165] Como se ilustra en el ejemplo de la FIG. 10, el dispositivo CDN 16 puede determinar que el identificador de visualizacion actual es requerido para descodificar un componente de visualizacion de profundidad sin anclaje (502). Por ejemplo, el dispositivo CDN 16 puede marcar el identificador de visualizacion actual como "requerido para profundidad sin anclaje".
[0166] Ademas, el dispositivo CDN 16 puede determinar si tanto el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 y el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual es igual a 0 (504). En respuesta a determinar que tanto el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es igual a 0 y el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje de la lista 1 que estan asociados con el indice de orden de visualizacion actual es igual a 0 ("SI" de 504), el dispositivo CDN 16 puede finalizar la operacion 500.
[0167] Por otro lado, en respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje de la lista 0 que estan asociados con el indice de orden de visualizacion actual no es igual a 0 o que el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es igual a 0 ("NO" de 504), el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 (506).
[0168] En respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 ("SI" de 506), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de componentes de visualizacion de profundidad sin anclaje que son necesarios para la descodificacion de cada componente de visualizacion de profundidad sin anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual (508). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 500 para cada componente de visualizacion de profundidad sin anclaje en la lista 0 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo CDN 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de profundidad sin anclaje como entrada a la operacion 500 cuando realiza recursivamente la operacion 500 para el componente de visualizacion de profundidad sin anclaje.
[0169] Por ejemplo, cuando num_non_anchor_refs_l0[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 500 para cada componente de visualizacion de profundidad en non_anchor_ref_l0[vOIdx][/] para todos los ien el rango de 0 a num_non_anchor_10[vOidx] - 1, inclusive, en orden ascendente de i, num_non_anchor_refs_10[/] y non_anchor_ref_l0[/][/] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_non_anchor_refs_l0[/] especifica el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en la descodificacion de componentes de visualizacion sin anclaje con indices de orden de visualizacion iguales a i, non_anchor_ref_l0[/][/] especifica el identificador de visualizacion (view_id) del /-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList0 (es decir, lista 0) en la descodificacion de componentes de visualizacion sin anclaje con indice de orden de visualizacion igual a i,
[0170] De lo contrario, en respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 0 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 506) o despues de realizar la accion 508, el dispositivo CDN 16 puede determinar si el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 1 que estan asociados
5
10
15
20
25
30
35
40
45
50
55
60
65
con el indice de orden de visualizacion actual es mayor que 0 (510). En respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje en la lista 1 que estan asociados con el indice de orden de visualizacion actual no es mayor que 0 ("NO" de 510), el dispositivo CDN 16 puede finalizar la operacion 500.
[0171] Sin embargo, en respuesta a determinar que el numero de componentes de visualizacion de profundidad entre visualizaciones sin anclaje de la lista 1 que estan asociados con el indice de orden de visualizacion actual es mayor que 0 ("SI" de 510), el dispositivo CDN 16 puede determinar los identificadores de visualizacion de componentes de visualizacion de textura sin anclaje que son necesarios para la descodificacion de cada componente de visualizacion de profundidad sin anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual (512). En algunos ejemplos, el dispositivo CDN 16 puede hacerlo ejecutando recursivamente la operacion 500 para cada componente de visualizacion de profundidad sin anclaje en la lista 1 que esta asociado con el indice de orden de visualizacion actual. En dichos ejemplos, el dispositivo CDN 16 puede proporcionar el identificador de visualizacion de un componente de visualizacion de profundidad sin anclaje como entrada a la operacion 500 cuando realiza recursivamente la operacion 500 para el componente de visualizacion de profundidad sin anclaje.
[0172] Por ejemplo, cuando num_non_anchor_refs_l1[vOIdx] no es igual a 0, el dispositivo CDN 16 puede invocar la operacion 500 para cada componente de visualizacion de profundidad en non_anchor_ref_l1[vOIdx][/] para todos los i en el rango de 0 a num_non_anchor_l1[vOidx] -1, inclusive, en orden ascendente de i. num_non_anchor_refs_l1[/] y non_anchor_ref_l1[/][y] son conjuntos de elementos sintacticos en una extension de SPS MVC. num_non_anchor_refs_l1[/] especifica el numero de componentes de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 (es decir, lista 1) en la descodificacion de componentes de visualizacion sin anclaje con indices de orden de visualizacion iguales a i. non_anchor_ref_l1[/][y] especifica el identificador de visualizacion (id de la visualizacion) del y-esimo componente de visualizacion para la prediccion entre visualizaciones en la lista de imagenes de referencia inicial RefPicList1 (es decir, lista 1) en la descodificacion de componentes de visualizacion sin anclaje con indice de orden de visualizacion igual a i. Despues de realizar la accion 512, el dispositivo CDN 16 puede finalizar la operacion 500.
[0173] La FIG. 11 es un diagrama de flujo que ilustra una primera operacion de ejemplo 550 para marcar las unidades VCL NAL y las unidades NAL de datos de relleno de manera que se eliminen de un flujo de bits, de acuerdo con una o mas tecnicas de esta divulgacion. El dispositivo CDN 16 puede realizar la operacion de la FIG. 11 como al menos parte de la realizacion de la accion 316 en el ejemplo de la FIG. 5. La siguiente descripcion de la FIG. 11 puede ser aplicable a unidades VCL NAL y unidades NAL de datos de relleno.
[0174] Como se ilustra en el ejemplo de la FIG. 11, el dispositivo CDN 16 puede determinar si un identificador de
prioridad (priority_id) de la unidad NAL es mayor que pIdTarget (552). Como se analizo anteriormente, la extension de cabecera de la unidad MVC NAL de la unidad nAl puede incluir el elemento sintactico de id de prioridad. pIdTarget es un parametro que se proporciona al proceso de extraccion de sub-flujo de bits, tal como el proceso de extraccion de sub-flujo de bits 298 de la FIG. 5. pIdTarget puede identificar un nivel de prioridad objetivo. En respuesta a determinar que el identificador de prioridad de la unidad NAL es mayor que pIdTarget ("SI" de 552), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar todas las unidades VCL NAL y las unidades NAl de datos de relleno como "para eliminar del flujo de bits" donde los elementos sintacticos priority_id de las unidades NAL son mayores que pIdTarget.
[0175] Por otra parte, en respuesta a determinar que el identificador de prioridad de la unidad NAL no es mayor que pIdTarget ("NO" de 552), el dispositivo CDN 16 puede determinar si un identificador temporal (temporal_id) de la unidad NAL es mayor que tIdTarget (556). Como se analizo anteriormente, la extension de cabecera de la unidad MVC NAL de la unidad NAL puede incluir el elemento sintactico id temporal y tIdTarget es un parametro que se proporciona al proceso de extraccion de sub-flujo de bits, tal como el proceso de extraccion de sub-flujo de bits 298. tIdTarget puede identificar un nivel temporal objetivo. En respuesta a la determinacion de que el identificador temporal de la unidad NAL es mayor que tIdTarget ("SI" de 556), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar todas las unidades VCL NAL y las unidades NAL de datos de relleno como "para eliminar del flujo de bits" donde los elementos sintacticos temporal_id de las unidades NAL son mayores que tIdTarget.
[0176] En respuesta a la determinacion de que el identificador temporal de la unidad NAL no es mayor que tIdTarget ("NO" de 556), el dispositivo CDN 16 puede, de acuerdo con las tecnicas de esta divulgacion, determinar si la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece a un tipo de unidad NAL distinto a un tipo de unidad NAL de componente de visualizacion de profundidad, y un identificador de visualizacion (view_id) de la unidad NAL no esta marcado como "requerido para textura de anclaje" (558). El dispositivo CDN 16 puede determinar, basandose en un indicador de imagen de anclaje (anchor_pic_flag) de la unidad NAL, si la unidad NAL pertenece a una imagen de anclaje. Las unidades NAL que pertenecen al tipo de unidad NAL del componente de visualizacion de profundidad pueden incluir extensiones de fragmentos codificados para los componentes de visualizacion de profundidad. En algunos ejemplos, las unidades NAL que tienen nal_unit_type igual a 21 pertenecen al tipo de unidad NAL de componente de visualizacion de profundidad.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0177] En respuesta a determinar que la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece a un tipo de unidad NAL distinto al tipo de unidad NAL de componente de visualizacion de profundidad, y el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para textura de anclaje" ("SI" de 558), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para eliminar del flujo de bits" si el anchor_pic_flag de la unidad NAL es igual a 1, el nal_unit_type de la unidad NAL no es 21, y el view_id de la unidad NAL no esta marcado como "requerido para textura de anclaje".
[0178] Los identificadores de visualizacion marcados como "requeridos para textura de anclaje" estan en la lista de visualizaciones de objetivos de textura de anclaje. Asi, el dispositivo CDN 16 puede determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece a un tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de textura de anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV, en la que las unidades NAL que pertenecen al tipo de unidad NAL de componente de visualizacion de profundidad encapsulan extensiones de fragmentos codificados para componentes de visualizacion de profundidad. Por ejemplo, el dispositivo CDN 16 puede determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando un elemento sintactico de indicador de imagen de anclaje en una cabecera de la unidad NAL es igual a 1, un elemento sintactico de tipo de unidad NAL en la cabecera de la unidad NAL no es igual a 21, y un elemento sintactico identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de textura de anclaje.
[0179] Sin embargo, en respuesta a determinar que la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, o el identificador de visualizacion de la unidad NAL esta marcado como "requerido para textura de anclaje" ("NO" de 558), el dispositivo CDN 16 puede, de acuerdo con las tecnicas de esta divulgacion, determinar si la unidad NAL pertenece a una imagen sin anclaje, el tipo de unidad NAL pertenece a un tipo de unidad NAL distinto al tipo de unidad NAL de componente visualizacion de profundidad y un identificador de visualizacion (id de la visualizacion) de la unidad NAL no estan marcados como "requeridos para una textura sin anclaje" (560).
[0180] En respuesta a determinar que la unidad NAL pertenece a una imagen sin anclaje, la unidad NAL pertenece a un tipo de unidad NAL distinto al tipo de unidad NAL de componente de visualizacion de profundidad, y el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para textura sin anclaje" ("SI" de 560), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para eliminar del flujo de bits" si anchor_pic_flag de la unidad NAL es igual a 0, nal_unit_type de la unidad NAL no es 21, y el view_id de la unidad NAL no esta marcado como "requerido para textura sin anclaje".
[0181] Los identificadores de visualizacion marcados como "requeridos para textura sin anclaje" estan en la lista de objetivos de la visualizacion de textura sin anclaje. Asi, el dispositivo CDN 16 puede determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de textura sin anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV. Por ejemplo, el dispositivo CDN 16 puede determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando el elemento sintactico de indicador de imagen de anclaje en la cabecera de la unidad NAL es igual a 0, el elemento sintactico de tipo de unidad NAL en la cabecera de la unidad NAL no es igual a 21, y el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de textura sin anclaje.
[0182] En respuesta a determinar que la unidad NAL no pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, o el identificador de visualizacion de la unidad NAL esta marcado como "requerido para textura sin anclaje" ("NO" de 560), el dispositivo CDN 16 puede determinar si la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y un identificador de visualizacion (view_id) de la unidad NAL no esta marcado como "requerido para profundidad del anclaje" (562).
[0183] En respuesta a determinar que la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para profundidad de anclaje" ("SI" de 562), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para eliminar del flujo de bits" si anchor_pic_flag de la unidad NAL es igual a 1, nal_unit_type de la unidad NAL es 21, y la id de la visualizacion de la unidad NAL no esta marcada como "requerida para la profundidad del anclaje".
[0184] Los identificadores de visualizacion marcados como "requeridos para profundidad de anclaje" se encuentran en la lista de visualizaciones de objetivos de profundidad de anclaje. Asi, el dispositivo CDN 16 puede determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece a
5
10
15
20
25
30
35
40
45
50
55
60
65
un tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de profundidad de anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV, en la que las unidades NAL que pertenecen al tipo de unidad NAL de componente de visualizacion de profundidad encapsulan extensiones de fragmentos codificados para componentes de visualizacion de profundidad. Por ejemplo, el dispositivo CDN 16 puede determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando un elemento sintactico de indicador de imagen de anclaje en una cabecera de la unidad NAL es igual a 1, un elemento sintactico de tipo de unidad NAL en la cabecera de la unidad NAL es igual a 21, y un elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de profundidad de anclaje.
[0185] Ademas, en respuesta a determinar que la unidad NAL no pertenece a una imagen de anclaje, la unidad NAL no pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, o el identificador de visualizacion de la unidad NAL esta marcado como "requerido para profundidad de anclaje" (“NO" de 562), el dispositivo CDN 16 puede determinar si la unidad NAL pertenece a una imagen sin anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad y un identificador de visualizacion (identificacion de visualizacion) de la unidad NAL no esta marcada como "requerida para la profundidad sin anclaje" (564).
[0186] En respuesta a determinar que la unidad NAL pertenece a una imagen sin anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para profundidad sin anclaje" (“SI" de 564), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para eliminar del flujo de bits" si anchor_pic_flag de la unidad NAL es igual a 0, nal_unit_type de la unidad NAL es 21, y view_id de la unidad NAL no esta marcado como "requerido para profundidad sin anclaje".
[0187] Los identificadores de visualizacion marcados como "requeridos para profundidad sin anclaje" son identificadores de visualizacion en la lista de visualizaciones de objetivos de profundidad sin anclaje. Asi, el dispositivo CDN 16 puede determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de profundidad sin anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV. Por ejemplo, el dispositivo CDN 16 puede determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando el elemento sintactico de indicador de imagen de anclaje en la cabecera de la unidad NAL es igual a 0, el elemento sintactico de tipo de unidad NAL en la cabecera de la unidad NAL es igual a 21, y el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de profundidad sin anclaje.
[0188] En respuesta a determinar que la unidad NAL no pertenece a una imagen sin anclaje, la unidad NAL no pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, o el identificador de visualizacion de la unidad NAL esta marcado como "requerido para profundidad sin anclaje ("NO" de 564), el dispositivo CDN 16 puede determinar si un indicador de referencia NAL (nal_ref_idc) de la unidad NAL es igual a 0, un indicador entre visualizaciones (indicador entre visualizaciones) de la unidad NAL es igual a 0, y un identificador de visualizacion de la unidad NAL es igual a cualquier valor en la lista de objetivos de identificador de visualizacion (viewIdTargetList) (566).
[0189] En respuesta a la determinacion de que el indicador de referencia NAL de la unidad NAL es igual a 0, un indicador entre visualizaciones de la unidad NAL es igual a 0, y un identificador de visualizacion de la unidad NAL es igual a cualquier valor en la lista de objetivos de identificador de visualizacion ("SI" de 566), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para ser eliminada del flujo de bits" si el nal_ref_idc de la unidad NAL es igual a 0, el indicador inter_view es igual a 0 y la id de visualizacion de la unidad NAL no es igual a ningun valor en la lista viewIdTargetList.
[0190] Asi, el dispositivo CDN 16 puede determinar que una unidad NAL debe eliminarse de un flujo de bits 3DV cuando un elemento sintactico de indicador de imagen de anclaje en una cabecera de la unidad NAL es igual a 1, un elemento sintactico de tipo unidad NAL en la cabecera de la unidad NAL es igual a 21, y un elemento sintactico identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de profundidad de anclaje. Ademas, el dispositivo CDN 16 puede determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando el elemento sintactico de indicador de imagen de anclaje en la cabecera de la unidad NAL es igual a 0, el elemento sintactico tipo unidad NAL en la cabecera del NAL unidad es igual a 21, y el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de profundidad sin anclaje.
[0191] Por otro lado, en respuesta a la determinacion de que el indicador de referencia NAL de la unidad NAL no es igual a 0, el indicador entre visualizaciones de la unidad NAL no es igual a 0, o el identificador de visualizacion de la unidad NAL no es igual a ningun valor en la lista de objetivos de identificador de visualizacion ("NO" de 566), el dispositivo CDN 16 puede determinar si el tipo de unidad NAL de la unidad NAL es igual a 21 y un objetivo de indicador
5
10
15
20
25
30
35
40
45
50
55
60
65
presente de profundidad (depthPresentFlagTarget) es igual a 0 (568). En respuesta a la determinacion de que el tipo de unidad NAL de la unidad NAL es igual a 21 y el objetivo de indicador de profundidad presente es igual a 0 ("Sr de 568), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (554). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para ser eliminada del flujo de bits" si nal_unit_type de la unidad NAL es igual a 21 y depthPresentFlagTarget es igual a 0.
[0192] En respuesta a determinar que el tipo de unidad NAL de la unidad NAL no es igual a 21 o el objetivo de indicador de profundidad presente no es igual a 0 ("NO" de 568), el dispositivo CDN 16 puede determinar si el objetivo de indicador presente de profundidad es igual a 1 (570). En respuesta a la determinacion de que el objetivo del indicador presente de profundidad es igual a 1 ("SP de 570), el dispositivo CDN 16 puede marcar a la unidad NAL como "para ser eliminada del flujo de bits" (554). De lo contrario, en respuesta a determinar que el indicador presente de profundidad no es igual a 1 ("NO" de 570), el dispositivo CDN 16 puede no marcar la unidad NAL como "para ser eliminada del flujo de bits" (572). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para ser eliminada del flujo de bits" si depthPresentFlagTarget es igual a 1.
[0193] La FIG. 12 es un diagrama de flujo que ilustra una segunda operacion de ejemplo 600 para marcar las unidades VCL NAL y las unidades NAL de datos de relleno como para ser eliminadas de un flujo de bits, de acuerdo con una o mas tecnicas de esta divulgacion. El dispositivo CDN 16 puede realizar la operacion de ejemplo de la FIG. 12 en lugar de realizar la operacion de ejemplo de la FIG. 11. La operacion 600 puede tomar en consideracion el elemento sintactico del indicador sintactico de uso (use_texture_flag) . Es decir, cuando el dispositivo CDN 16 realiza una operacion de extraccion de sub-flujo de bits que usa la operacion 600 para determinar unidades VCL NAL y unidades NAL de datos de relleno para eliminar del flujo de bits, el dispositivo CDN puede determinar, basandose al menos en parte en un elemento sintactico de indicador de textura de uso en una cabecera de una unidad NAL, si eliminar la unidad NAL de un flujo de bits 3DV. Como se indico previamente, el elemento sintactico de indicador de textura de uso puede indicar si un componente de visualizacion de profundidad encapsulado por la unidad NAL es descodificable sin descodificar un componente de visualizacion de textura que corresponde al componente de visualizacion de profundidad. El dispositivo CDN 16 puede realizar la operacion de la FIG. 12 como al menos parte de la realizacion de la accion 316 en el ejemplo de la FIG. 5. La siguiente descripcion de la FIG. 12 puede ser aplicable a unidades VCL NAL y unidades NAL de datos de relleno.
[0194] Como se ilustra en el ejemplo de la FIG. 12, el dispositivo CDN 16 puede determinar si un identificador de prioridad (priority_id) de la unidad NAL es mayor que pIdTarget (602). Como se analizo anteriormente, la extension de cabecera de la unidad MVC NAL de la unidad nAl incluye el elemento sintactico de id de prioridad. pIdTarget es un parametro que se proporciona al proceso de extraccion de sub-flujo de bits, tal como el proceso de extraccion de sub- flujo de bits 298 de la FIG. 5. pIdTarget puede identificar un nivel de prioridad objetivo. En respuesta a determinar que el identificador de prioridad de la unidad NAL es mayor que pIdTarget ("SP de 602), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para ser eliminada del flujo de bits" si la id de prioridad de la unidad NAL es mayor que pIdTarget.
[0195] Por otra parte, en respuesta a determinar que el identificador de prioridad de la unidad NAL no es mayor que pIdTarget ("NO" de 602), el dispositivo CDN 16 puede determinar si un identificador temporal (temporaljd) de la unidad NAL es mayor que tIdTarget (606). Como se analizo anteriormente, la extension de cabecera de la unidad MVC NAL de la unidad NAL incluye el elemento sintactico temporaljd y la tIdTarget es un parametro que se proporciona al proceso de extraccion de sub-flujo de bits, como el proceso de extraccion de sub-flujo de bits 298. tIdTarget puede identificar un nivel temporal de objetivo. En respuesta a la determinacion de que el identificador temporal de la unidad NAL es mayor que tIdTarget ("Sr de 606), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para ser eliminada del flujo de bits" si el temporaljd de la unidad NAL es mayor que tIdTarget.
[0196] En respuesta a determinar que el identificador temporal de la unidad NAL no es mayor que tIdTarget ("NO" de 606), el dispositivo CDN 16 puede, de acuerdo con las tecnicas de esta divulgacion, determinar si la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece a un tipo de unidad NAL distinto al tipo de unidad NAL de componente de visualizacion de profundidad, un identificador de visualizacion (id_view) de la unidad NAL no esta marcado como "requerido para textura de anclaje" y el indicador de textura de uso (use_texture_flag ) es 0 o el identificador de visualizacion no esta marcado como "requerido para profundidad de anclaje" (608). El dispositivo CDN 16 puede determinar, basandose en un indicador de imagen de anclaje (anchor_pic_flag) de la unidad NAL, si la unidad NAL pertenece a una imagen de anclaje. Las unidades NAL que pertenecen al tipo de unidad NAL del componente de visualizacion de profundidad pueden incluir extensiones de fragmentos codificados para los componentes de visualizacion de profundidad. En algunos ejemplos, las unidades NAL que tienen nal_unit_type igual a 21 pertenecen al tipo de unidad NAL de componente de visualizacion de profundidad.
[0197] En respuesta a determinar que la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece a un tipo de unidad NAL distinto al tipo de unidad NAL de componente de visualizacion de profundidad, el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para textura de anclaje", y el indicador de textura de uso (use_texture_flag) es 0 o el identificador de visualizacion no esta marcado como "requerido para profundidad
5
10
15
20
25
30
35
40
45
50
55
60
65
de anclaje" ("SI "de 608), el dispositivo CDN 16 puede marcar la unidad NAL como "para eliminar del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para eliminar del flujo de bits" si anchor_pic_flag de la unidad NAL es igual a 1, nal_unit_type de la unidad NAL no es 21, y las dos condiciones siguientes se cumplen: el view_id de la unidad NAL no esta marcado como "requerido para textura del anclaje" y use_texture_flag es 0 o la id de la visualizacion de la unidad NAL no esta marcada como "requerido para la profundidad del anclaje".
[0198] Sin embargo, en respuesta a determinar que la unidad NAL no pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, el identificador de visualizacion de la unidad NAL esta marcado como "requerido para textura de anclaje", o el indicador de textura de uso no es 0 y el identificador de visualizacion esta marcado como "requerido para profundidad de anclaje" ("NO" de 608), el dispositivo CDN 16 puede, de acuerdo con las tecnicas de esta divulgacion, determinar si la unidad NAL pertenece a una imagen sin anclaje, la unidad NAL pertenece a un tipo de unidad NAL distinto al tipo de unidad NAL de componente de visualizacion de profundidad, un identificador de visualizacion (id de visualizacion) de la unidad NAL no esta marcado como "requerido para textura sin anclaje" y el indicador de textura de uso es 0 o el identificador de visualizacion no esta marcado como "requerido para profundidad sin anclaje "(610).
[0199] En respuesta a determinar que la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece a un tipo de unidad NAL distinto al tipo de unidad NAL de componente de visualizacion de profundidad, el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para textura sin anclaje”, y el indicador de textura de uso es 0 o el identificador de visualizacion no esta marcado como" requerido para profundidad sin anclaje" ("SI" de 610), el dispositivo CDN 16 puede marcar la unidad NAL como "para eliminar del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para eliminar del flujo de bits" si anchor_pic_flag de la unidad NAL es igual a 0, nal_unit_type de la unidad NAL no es 21, y se cumplen las dos condiciones siguientes: view_id de la unidad NAL no esta marcado como "requerido para textura sin anclaje" y use_texture_flag es 0 o la id de la visualizacion de la unidad NAL no esta marcada como "requerida para profundidad sin anclaje".
[0200] En respuesta a determinar que la unidad NAL no pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, el identificador de visualizacion de la unidad NAL esta marcado como "requerido para textura sin anclaje", o el indicador de textura de uso no es 1 y el identificador de visualizacion esta marcado como "requerido para profundidad sin anclaje" ("NO" de 610), el dispositivo CDN 16 puede determinar si la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y un identificador de visualizacion (id de la visualizacion) de la unidad NAL no esta marcado como "requerido para profundidad de anclaje" (612).
[0201] En respuesta a determinar que la unidad NAL pertenece a una imagen de anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para profundidad de anclaje" ("SI" de 612), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar una unidad VCL NAL o una unidad NAL de datos de relleno como "para eliminar del flujo de bits" si anchor_pic_flag de la unidad NAL es igual a 1, nal_unit_type de la unidad NAL es 21, y el view_id de la unidad NAL no esta marcado como "requerido para profundidad del anclaje".
[0202] Asi, el dispositivo CDN 16 puede determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando un elemento sintactico de indicador de imagen de anclaje en una cabecera de la unidad NAL es igual a 1, un elemento sintactico de tipo unidad NAL en la cabecera de la unidad NAL es igual a 21, un elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL no es igual a un identificador de visualizacion de cualquier visualizacion en la lista de objetivos de textura de anclaje, y el elemento sintactico de indicador de textura de uso en la cabecera de la unidad NAL es igual a 0 o el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL no es igual a un identificador de visualizacion de cualquier visualizacion en la lista de objetivos de profundidad de anclaje.
[0203] Ademas, en respuesta a determinar que la unidad NAL no pertenece a una imagen de anclaje, la unidad NAL no pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, o el identificador de visualizacion de la unidad NAL esta marcado como "requerido para profundidad de anclaje" ("NO "de 612), el dispositivo CDN 16 puede determinar si la unidad NAL pertenece a una imagen sin anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad y un identificador de visualizacion (identificacion de visualizacion) de la unidad NAL no esta marcada como "requerida para la profundidad sin anclaje" (614).
[0204] En respuesta a determinar que la unidad NAL pertenece a una imagen sin anclaje, la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y el identificador de visualizacion de la unidad NAL no esta marcado como "requerido para profundidad sin anclaje" ("SI" de 614), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar todas las unidades VCL NAL y unidades NAL de datos de relleno para las cuales el indicador de imagen de anclaje de la unidad NAL es igual a 0, nal_unit_type de la unidad NAL es igual a 21 y el identificador de visualizacion de la
5
10
15
20
25
30
35
40
45
50
55
60
65
unidad NAL no esta marcado como "requerido para la profundidad sin anclaje" como "para ser eliminadas del flujo de bits".
[0205] Asf, el dispositivo CDN 16 puede determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando el elemento sintactico de indicador de imagen de anclaje en la cabecera de la unidad NAL es igual a 0, el elemento sintactico de tipo de unidad NAL en la cabecera de la unidad NAL es igual a 21, el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL no es igual a un identificador de visualizacion de cualquier visualizacion en la lista de objetivos de textura de anclaje, y el elemento sintactico de indicador de textura de uso en la cabecera de la unidad NAL es igual a 0 o el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL no es igual a un identificador de visualizacion de cualquier visualizacion en la lista de objetivos de profundidad sin anclaje.
[0206] En respuesta a determinar que la unidad NAL no esta en una imagen sin anclaje, la unidad NAL no pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, o el identificador de visualizacion de la unidad NAL esta marcado como "requerido para profundidad sin anclaje ("NO" de 614), el dispositivo CDN 16 puede determinar si un indicador de referencia NAL (nal_ref_idc) de la unidad NAL es igual a 0, un indicador entre visualizaciones (indicador entre visualizaciones) de la unidad NAL es igual a 0, y un identificador de visualizacion de la unidad NAL es igual a cualquier valor en la lista de objetivos de identificador de visualizacion (viewIdTargetList) (616). En respuesta a determinar que el indicador de referencia NAL de la unidad NAL es igual a 0, un indicador entre visualizaciones de la unidad NAL es igual a 0, y un identificador de visualizacion de la unidad NAL es igual a cualquier valor en la lista de objetivos de identificador de visualizacion ("SI" de 616), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar todas las unidades VCL NAL y unidades NAL de datos de relleno para las cuales el indicador de referencia NAL de la unidad NAL es igual a 0, un indicador entre visualizaciones de la unidad NAL es igual a 0, y un identificador de visualizacion de la unidad NAL es igual a cualquier valor en la lista de objetivos de identificador de visualizacion como "para ser eliminadas del flujo de bits".
[0207] Por otro lado, en respuesta a la determinacion de que el indicador de referencia NAL de la unidad NAL no es igual a 0, el indicador entre visualizaciones de la unidad NAL no es igual a 0, o el identificador de visualizacion de la unidad NAL no es igual a ningun valor en la lista de objetivos de identificador de visualizacion ("NO" de 616), el dispositivo CDN 16 puede determinar si el tipo de unidad NAL de la unidad NAL es igual a 21 y un objetivo de indicador presente de profundidad (depthPresentFlagTarget) es igual a 0 (618). En respuesta a la determinacion de que el tipo de unidad nAl de la unidad NAL es igual a 21 y el objetivo de indicador de profundidad presente es igual a 0 ("SI" de 618), el dispositivo CDN 16 puede marcar la unidad NAL como "para ser eliminada del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar todas las unidades VCL NAL y unidades NAL de datos de relleno para las cuales el tipo de unidad NAL de la unidad NAL es igual a 21 y el objetivo de indicador presente de profundidad es igual a 0 "para ser eliminadas del flujo de bits".
[0208] En respuesta a determinar que el tipo de unidad NAL de la unidad NAL no es igual a 21 o el objetivo de indicador de profundidad presente no es igual a 0 ("NO" de 618), el dispositivo CDN 16 puede determinar si el objetivo de indicador presente de profundidad es igual a 1 (620). En respuesta a la determinacion de que el objetivo del indicador presente de profundidad es igual a 1 ("SI" de 620), el dispositivo CDN 16 puede marcar a la unidad NAL como "para ser eliminada del flujo de bits" (604). De esta forma, el dispositivo CDN 16 puede marcar todas las unidades VCL NAL y las unidades NAL de datos de relleno para las cuales depthPresentFlagTarget es igual a 1 como "para ser eliminadas del flujo de bits". De lo contrario, en respuesta a determinar que el indicador presente de profundidad no es igual a 1 ("NO" de 620), el dispositivo CDN 16 puede no marcar la unidad NAL como "para ser eliminada del flujo de bits" (622).
[0209] En otros ejemplos, las cabeceras de unidad NAL no incluyen elementos sintacticos use_texture_flag. En dichos ejemplos, el dispositivo CDN 16 puede usar elementos sintacticos depth_to_view_flag de componentes de visualizacion de textura para obtener el valor de use_texture_flag. En otras palabras, use_texture_flag no se senala en la cabecera de la unidad NAL y depth_to_view_flag en el componente de visualizacion de textura se usa para obtener el valor de use_texture_flag. En algunos ejemplos, use_texture_flag se obtiene para ser igual a dept h_to_view_f l ag.
[0210] La FIG. 13 es un diagrama conceptual que ilustra un ejemplo de orden de descodificacion MVC. En el ejemplo de la FIG. 13, cada cuadrado corresponde a un componente de visualizacion. Cada uno de los componentes de visualizacion puede incluir un componente de visualizacion de textura y un componente de visualizacion de profundidad. Las columnas de cuadrados corresponden a las unidades de acceso. Cada unidad de acceso puede definirse para contener las imagenes codificadas de todas las visualizaciones de un instante de tiempo. Las filas de cuadrados corresponden a las visualizaciones. En el ejemplo de la FIG. 13, las unidades de acceso estan etiquetadas T0 ... T7 y las visualizaciones estan etiquetadas S0 ... S7. Debido a que cada componente de visualizacion de una unidad de acceso se descodifica antes de cualquier componente de visualizacion de la siguiente unidad de acceso, el orden de descodificacion de la FIG. 13 puede denominarse codificacion primera en el tiempo. Como se muestra en el ejemplo de la FIG. 13, el orden de descodificacion de las unidades de acceso puede no ser identico al orden de salida o visualizacion de las visualizaciones.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0211] Como se menciona anteriormente, un indice de orden de visualizacion es un indice que indica el orden de descodificacion de los componentes de visualizacion en una unidad de acceso. Por lo tanto, en el ejemplo de la FIG. 13, el indice de orden de visualizacion de los componentes de visualizacion en la visualizacion S0 puede ser 0, el indice de orden de visualizacion de los componentes de visualizacion en la visualizacion S1 puede ser 1, el indice de orden de visualizacion de los componentes de visualizacion en la visualizacion S2 puede ser 2, etc.
[0212] La FIG. 14 es un diagrama conceptual que ilustra un ejemplo de estructura de prediccion entre visualizaciones y temporal de MVC. Una estructura de prediccion MVC tipica (que incluye tanto la prediccion entre imagenes dentro de cada visualizacion como la prediccion entre visualizaciones) para la codificacion de video de multiples visualizaciones se muestra en la FIG. 14. En el ejemplo de la FIG. 14, cada cuadrado corresponde a un componente de visualizacion. Cada uno de los componentes de visualizacion puede incluir un componente de visualizacion de textura y un componente de visualizacion de profundidad. Los cuadrados etiquetados como "I" son componentes de visualizacion sometidas a prediccion intra. Los cuadrados etiquetados como "P" son componentes de visualizacion con prediccion inter unidireccional. Los cuadrados etiquetados "B" y "b" son componentes de visualizacion con prediccion inter bidireccional. Los cuadrados etiquetados como "b" pueden usar cuadrados etiquetados como "B" como imagenes de referencia. Las predicciones se indican con flechas, con el objeto que apunta que usa el objeto apuntado para referencia de prediccion. Por ejemplo, una flecha que apunta desde un primer cuadrado a un segundo cuadrado indica que el primer cuadrado esta disponible en la prediccion inter como imagen de referencia para el segundo cuadrado. Como se indica por las flechas verticales en la FIG. 14, los componentes de visualizacion en diferentes visualizaciones de la misma unidad de acceso pueden estar disponibles como imagenes de referencia. El uso de un componente de visualizacion de una unidad de acceso como imagen de referencia para otra componente de visualizacion de la misma unidad de acceso puede denominarse prediccion entre visualizaciones.
[0213] Un codificador de video puede realizar un proceso de construccion de lista de imagenes de referencia para disponer de manera flexible referencias de prediccion temporales y de visualizacion. La realizacion del proceso de construccion de la lista de imagenes de referencia puede proporcionar no solo posibles ganancias de eficiencia de codificacion sino tambien capacidad de recuperacion de errores, ya que las secciones de imagen de referencia y los mecanismos de imagen redundantes se pueden extender a la dimension de visualizacion.
[0214] La construccion de la lista de imagenes de referencia puede incluir los siguientes pasos. En primer lugar, el codificador de video puede aplicar el proceso de inicializacion de la lista de imagenes de referencia para imagenes de referencia temporales (dentro de las visualizaciones) como se especifica en un estandar H.264/AVC, sin el uso de imagenes de referencia de otras visualizaciones. En segundo lugar, el codificador de video puede agregar las imagenes de referencia entre visualizaciones al final de la lista en el orden en que aparecen las imagenes de referencia entre visualizaciones en la extension SPS MVC. En tercer lugar, el codificador de video aplica el proceso de modificacion de la lista de imagenes de referencia (RPLM) para imagenes de referencia tanto centro de las visualizaciones como entre visualizaciones. El codificador de video puede identificar imagenes de referencia entre visualizaciones en comandos RPLM por sus valores de indice como se especifica en la extension MVC SPS.
[0215] En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de estos. Si se implementan en software, las funciones pueden almacenarse en o transmitirse a traves de, como una o mas instrucciones o codigo, un medio legible por ordenador o 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 unos medios de almacenamiento de datos o unos medios de comunicacion que incluyen cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en esta divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
[0216] A modo de ejemplo, y no de limitacion, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda utilizarse para almacenar un codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion recibe debidamente la denominacion de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra optica, un par trenzado, una linea de abonado digital (DSL) o tecnologias inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologias inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberia entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El termino disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco laser, un disco optico, un disco
5
10
15
20
25
versatil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente emiten datos magneticamente, mientras que otros discos emiten datos opticamente con laseres. Las combinaciones de los anteriores tambien deben incluirse dentro del alcance de los medios legibles por ordenador.
[0217] Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especificos de la aplicacion (ASIC), matrices logicas programables in situ (FPGA) u otros circuitos logicos integrados o discretos equivalentes. Por consiguiente, el termino «procesador», como se utiliza en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de modulos de hardware y/o software dedicados configurados para la codificacion y la descodificacion, o incorporarse en un codec combinado. Asimismo, las tecnicas podrian implementarse por completo en uno o mas circuitos o elementos logicos.
[0218] Las tecnicas de esta divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un telefono inalambrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, modulos o unidades se describen en esta divulgacion para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente su realizacion mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de codec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, que incluyen uno o mas procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuados.
[0219] Se han descrito varios ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.

Claims (11)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    Un procedimiento para extraer un sub-flujo de bits de un video tridimensional, 3DV, flujo de bits que incluye componentes de visualizacion de textura codificados y componentes de visualizacion de profundidad codificados, comprendiendo el procedimiento:
    determinar una primera lista que indica visualizaciones en el flujo de bits 3DV, con las visualizaciones indicadas por la primera lista que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en una pluralidad de visualizaciones de objetivos, con la pluralidad de visualizaciones de objetivos que comprende un subconjunto de las visualizaciones en el flujo de bits 3DV que se puede descodificar a partir del sub-flujo de bits; determinar una segunda lista independiente que indica visualizaciones en el flujo de bits 3DV, con las visualizaciones indicadas por la segunda lista que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos, con la primera lista y la segunda lista que indican subconjuntos diferentes de la visualizaciones en el flujo de bits 3DV; y
    determinar el sub-flujo de bits basandose al menos en parte en la primera lista y la segunda lista.
    El procedimiento segun la reivindicacion 1, en el que:
    la primera lista incluye identificadores de visualizacion que identifican las visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos,
    la segunda lista incluye identificadores de visualizacion que identifican las visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos, y
    la primera lista incluye uno o mas identificadores de visualizacion que son diferentes a los identificadores de visualizacion en la lista de visualizaciones de objetivos de profundidad.
    El procedimiento segun la reivindicacion 1, en el que:
    un conjunto de parametros de secuencia, SPS, especifica las posibles dependencias entre las visualizaciones y los componentes de visualizacion aplicables al SPS;
    determinar la primera lista comprende determinar, basandose al menos en parte en la pluralidad de visualizaciones de objetivos y las posibles dependencias especificadas por el SPS, la primera lista; y
    determinar la segunda lista comprende determinar, basandose al menos en parte en la pluralidad de visualizaciones de objetivos y las posibles dependencias especificadas por el SPS, la segunda lista.
    El procedimiento segun la reivindicacion 1, en el que el flujo de bits 3DV comprende una serie unidades de capa de abstraccion de red, NAL, y la determinacion del sub-flujo de bits comprende determinar, basandose al menos en parte en si la primera lista o la segunda lista especifica un identificador de visualizacion de una unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV.
    El procedimiento segun la reivindicacion 4, en el que determinar la primera lista y la segunda lista comprende:
    determinar una lista de visualizaciones de objetivos de textura de anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para la descodificacion de imagenes de anclaje en la pluralidad de visualizaciones de objetivos;
    determinar una lista de visualizaciones de objetivos de textura sin anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes sin anclaje en la pluralidad de visualizaciones de objetivos;
    determinar una lista de visualizaciones de objetivos de profundidad de anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar las imagenes de anclaje en la pluralidad de visualizaciones de objetivos; y
    determinar una lista de visualizaciones de objetivos de profundidad sin anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar las imagenes sin anclaje en la pluralidad de visualizaciones de objetivos.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
  2. 6. El procedimiento segun la reivindicacion 5, en el que determinar si se elimina la unidad NAL del flujo de bits 3DV comprende:
    determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece a un tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de textura de anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV, en el que las unidades NAL que pertenecen al tipo de unidad NAL de componente de visualizacion de profundidad encapsulan extensiones de fragmentos codificados para componentes de visualizacion de profundidad; y
    determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de textura sin anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV.
  3. 7. El procedimiento segun la reivindicacion 6, en el que determinar si se elimina la unidad NAL del flujo de bits 3DV comprende:
    determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando un elemento sintactico de indicador de imagen de anclaje en una cabecera de la unidad NAL es igual a 1, un elemento sintactico de tipo de unidad NAL en la cabecera de la unidad NAL no es igual a 21, y un elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de textura de anclaje; y
    determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando el elemento sintactico de indicador de imagen de anclaje en la cabecera de la unidad NAL es igual a 0, el elemento sintactico del tipo de unidad NAL en la cabecera de la unidad NAL no es igual a 21, y el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de textura sin anclaje.
  4. 8. El procedimiento segun la reivindicacion 5, en el que determinar si se elimina la unidad NAL del flujo de bits 3DV comprende:
    determinar, basandose al menos en parte, en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece a un tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de profundidad de anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3Dv, en el que las unidades NAL que pertenecen al tipo de unidad NAL de componente de visualizacion de profundidad encapsulan extensiones de fragmentos codificados para componentes de visualizacion de profundidad; y
    determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de profundidad sin anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV.
  5. 9. El procedimiento segun la reivindicacion 8, en el que determinar si se elimina la unidad NAL del flujo de bits 3DV comprende:
    determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando un elemento sintactico de indicador de imagen de anclaje en una cabecera de la unidad NAL es igual a 1, un elemento sintactico de tipo de unidad NAL en la cabecera de la unidad NAL es igual a 21, y un elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de profundidad de anclaje; y
    determinar que la unidad NAL debe eliminarse del flujo de bits 3DV cuando el elemento sintactico de indicador de imagen de anclaje en la cabecera de la unidad NAL es igual a 0, el elemento sintactico del tipo de unidad NAL en la cabecera de la unidad NAL es igual a 21, y el elemento sintactico de identificador de visualizacion en la cabecera de la unidad NAL es igual a un identificador de visualizacion de una visualizacion en la lista de objetivos de profundidad sin anclaje.
  6. 10. El procedimiento segun la reivindicacion 1, en el que el procedimiento se realiza mediante un dispositivo de red de suministro de contenido, CDN.
  7. 11. Un dispositivo que comprende:
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    medios para determinar una primera lista que indica visualizaciones en un flujo de bits de video tridimensional, 3DV, con las visualizaciones indicadas por la primera lista que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en una pluralidad de visualizaciones de objetivos, con la pluralidad de visualizaciones de objetivos que comprende un subconjunto de las visualizaciones en el flujo de bits 3DV que se pueden descodificar desde el sub-flujo de bits, con el flujo de bits 3DV que incluye componentes de visualizacion de textura codificados y componentes de visualizacion de profundidad codificados;
    medios para determinar una segunda lista independiente que indica visualizaciones en el flujo de bits 3DV, con las visualizaciones indicadas por la segunda lista que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos, con la primera lista y la segunda lista que indican subconjuntos diferentes de las visualizaciones en el flujo de bits 3DV; y
    medios para determinar el sub-flujo de bits basandose al menos en parte en la primera lista y la segunda lista.
  8. 12. El dispositivo de la reivindicacion 11, en el que el flujo de bits 3DV comprende una serie de unidades de capa de abstraccion de red, NAL, y los medios para determinar el sub-flujo de bits comprenden medios para determinar, basandose al menos en parte en si la primera lista o la segunda lista especifica un identificador de visualizacion de una unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV.
  9. 13. El dispositivo segun la reivindicacion 12, en el que los medios para determinar la primera lista comprenden:
    medios para determinar una lista de visualizaciones de objetivos de textura de anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para la descodificacion de imagenes de anclaje en la pluralidad de visualizaciones de objetivos;
    medios para determinar una lista de visualizaciones de objetivos de textura sin anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes sin anclaje en la pluralidad de visualizaciones de objetivos;
    medios para determinar una lista de visualizaciones de objetivos de profundidad de anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para descodificar las imagenes de anclaje en la pluralidad de visualizaciones de objetivos; y
    medios para determinar una lista de visualizaciones de objetivos de profundidad sin anclaje que indica visualizaciones en el flujo de bits 3DV que tienen componentes de visualizacion de profundidad que son necesarios para la descodificacion de las imagenes sin anclaje en la pluralidad de visualizaciones de objetivos.
  10. 14. El dispositivo segun la reivindicacion 13, en el que los medios para determinar si eliminar la unidad NAL del flujo de bits 3DV comprenden:
    medios para determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece a un tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de textura de anclaje especifica el identificador de visualizacion de la unidad NAL, si se debe eliminar la unidad NAL del flujo de bits 3DV, en el que las unidades NAL que pertenecen al tipo de unidad NAL de componente de visualizacion de profundidad encapsulan extensiones de fragmentos codificados para componentes de visualizacion de profundidad; y
    medios para determinar, basandose al menos en parte en si la unidad NAL pertenece a una imagen de anclaje, si la unidad NAL pertenece al tipo de unidad NAL de componente de visualizacion de profundidad, y si la lista de visualizaciones de objetivos de textura sin anclaje especifica el identificador de visualizacion de la unidad NAL, si eliminar la unidad NAL del flujo de bits 3DV.
  11. 15. Un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando son ejecutadas por uno o mas procesadores de un dispositivo, configuran el dispositivo para:
    determinar una primera lista que indique visualizaciones en un flujo de bits 3DV, con las visualizaciones indicadas por la primera lista que tienen componentes de visualizacion de textura que son necesarios para descodificar imagenes en una pluralidad de visualizaciones de objetivos, con la pluralidad de visualizaciones de objetivos que comprende un subconjunto de las visualizaciones en el flujo de bits 3DV que se puede descodificar a partir del sub-flujo de bits, con el flujo de bits 3DV que incluye componentes de visualizacion de textura codificados y componentes de visualizacion de profundidad codificados;
    determinar una segunda lista independiente que indique visualizaciones en el flujo de bits 3DV, con las visualizaciones indicadas por la segunda lista que tienen componentes de visualizacion de profundidad que son necesarios para descodificar imagenes en la pluralidad de visualizaciones de objetivos, con la primera lista y la segunda lista que indican diferentes subconjuntos de las visualizaciones en el flujo de bits 3DV; y
    determinar el sub-flujo de bits basandose al menos en parte en la primera lista y la segunda lista.
ES13709661.6T 2012-02-29 2013-02-27 Extracción de flujo de bits en vídeo tridimensional Active ES2693683T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261605136P 2012-02-29 2012-02-29
US201261605136P 2012-02-29
US201313777785 2013-02-26
US13/777,785 US20130222537A1 (en) 2012-02-29 2013-02-26 Bitstream extraction in three-dimensional video
PCT/US2013/028050 WO2013130631A1 (en) 2012-02-29 2013-02-27 Bitstream extraction in three-dimensional video

Publications (1)

Publication Number Publication Date
ES2693683T3 true ES2693683T3 (es) 2018-12-13

Family

ID=49002436

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13709661.6T Active ES2693683T3 (es) 2012-02-29 2013-02-27 Extracción de flujo de bits en vídeo tridimensional

Country Status (8)

Country Link
US (1) US20130222537A1 (es)
EP (1) EP2820854B1 (es)
JP (1) JP6138835B2 (es)
KR (1) KR101968376B1 (es)
CN (1) CN104303513B (es)
ES (1) ES2693683T3 (es)
HU (1) HUE040443T2 (es)
WO (1) WO2013130631A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
US9930378B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Signaling of operation points for carriage of HEVC extensions
US10769818B2 (en) * 2017-04-09 2020-09-08 Intel Corporation Smart compression/decompression schemes for efficiency and superior results
CN109963176B (zh) * 2017-12-26 2021-12-07 中兴通讯股份有限公司 视频码流处理方法、装置、网络设备和可读存储介质
CN113065009B (zh) * 2021-04-21 2022-08-26 上海哔哩哔哩科技有限公司 视图加载方法及装置
WO2023053623A1 (ja) * 2021-09-30 2023-04-06 株式会社デンソー データ通信システム、センター装置、マスタ装置、更新データ配置プログラム及び更新データ取得プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1946563A2 (en) * 2005-10-19 2008-07-23 Thomson Licensing Multi-view video coding using scalable video coding
BRPI0924045A2 (pt) * 2009-01-07 2017-07-11 Thomson Licensing Estimação de profundidade conjunta
JP5614901B2 (ja) * 2009-05-01 2014-10-29 トムソン ライセンシングThomson Licensing 3dvの参照ピクチャ・リスト
US20110032332A1 (en) * 2009-08-07 2011-02-10 Darren Neuman Method and system for multiple progressive 3d video format conversion
US8976871B2 (en) 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
US10200708B2 (en) * 2011-11-30 2019-02-05 Qualcomm Incorporated Sequence level information for multiview video coding (MVC) compatible three-dimensional video coding (3DVC)
US20130202194A1 (en) * 2012-02-05 2013-08-08 Danillo Bracco Graziosi Method for generating high resolution depth images from low resolution depth images using edge information

Also Published As

Publication number Publication date
JP6138835B2 (ja) 2017-05-31
JP2015513261A (ja) 2015-04-30
CN104303513B (zh) 2018-04-10
KR101968376B1 (ko) 2019-04-11
EP2820854B1 (en) 2018-08-08
CN104303513A (zh) 2015-01-21
WO2013130631A1 (en) 2013-09-06
US20130222537A1 (en) 2013-08-29
EP2820854A1 (en) 2015-01-07
HUE040443T2 (hu) 2019-03-28
KR20140131360A (ko) 2014-11-12

Similar Documents

Publication Publication Date Title
TWI523492B (zh) 在視訊寫碼中之非巢套式補充增強資訊訊息
ES2686699T3 (es) Procedimiento y dispositivo para descodificar datos de vídeo de múltiples capas determinando la capacidad del descodificador basándose en el perfil, grado y nivel asociados con la partición que contiene una o más capas
ES2727814T3 (es) Estructura sintáctica de parámetros de descodificador hipotético de referencia
ES2716852T3 (es) Formato de archivo para datos de vídeo
JP6700176B2 (ja) マルチレイヤビデオコーデックのためのマルチモード抽出のサポート
ES2637515T3 (es) Indicación y activación de conjuntos de parámetros para codificación de vídeo
ES2634100T3 (es) Extensión de vídeo tridimensional de cabecera de fragmento para predicción de cabecera de fragmento
ES2650729T3 (es) Construcción de la lista de imágenes de referencia para codificación de vídeo de múltiples visualizaciones y tridimensional
ES2693683T3 (es) Extracción de flujo de bits en vídeo tridimensional
TW201507441A (zh) 假設的參考解碼器模型及跨層隨機存取跳過圖像之一致性
JP6199320B2 (ja) 3次元ビデオコーディングのためのネットワーク抽象化レイヤ(nal)ユニットヘッダ設計
ES2874073T3 (es) Flujo de transporte para el transporte de extensiones de codificación de vídeo
ES2711892T3 (es) Señalización de puntos de operación para el transporte de extensiones de la HEVC