ES2839148T3 - Codificación de vídeo multicapa - Google Patents
Codificación de vídeo multicapa Download PDFInfo
- Publication number
- ES2839148T3 ES2839148T3 ES15734798T ES15734798T ES2839148T3 ES 2839148 T3 ES2839148 T3 ES 2839148T3 ES 15734798 T ES15734798 T ES 15734798T ES 15734798 T ES15734798 T ES 15734798T ES 2839148 T3 ES2839148 T3 ES 2839148T3
- Authority
- ES
- Spain
- Prior art keywords
- fragment
- unit
- video
- type
- access unit
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/187—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un procedimiento de codificación de datos de vídeo de codificación de vídeo de alta eficacia, HEVC, multicapa, comprendiendo el procedimiento: generar (160) una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento; generar (162) una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y generar (164) una unidad de NAL de delimitador de unidad de acceso (AUD) para la unidad de acceso, caracterizado por que generar (164) la unidad de NAL de AUD se basa en el primer y segundo tipos de fragmento, en el que un elemento de sintaxis de tipo de imagen de la unidad de NAL de AUD indica un tipo de imagen para todas las imágenes en la unidad de acceso, en el que el tipo de imagen tiene un conjunto asociado de tipos de fragmento que comprende el primer tipo de fragmento y el segundo tipo de fragmento.
Description
DESCRIPCIÓN
Codificación de vídeo multicapa
CAMPO TÉCNICO
[0001] La presente divulgación se refiere a la codificación y compresión de vídeo y a la señalización de datos asociados con vídeo comprimido en un flujo de bits.
ANTECEDENTES
[0002] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisiones digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos móviles o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, parte 10, Codificación Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta Eficacia (HEVC) y las ampliaciones de dichas normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de compresión de vídeo.
[0003] Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia intrínseca a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (es decir, una trama de vídeo o una parte de una trama de vídeo) se puede dividir en bloques de vídeo, que también se pueden denominar bloques en árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un fragmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un fragmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia de bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia.
[0004] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales se pueden transformar desde el dominio de píxel en un dominio de transformada, dando como resultado coeficientes de transformada residuales, que a continuación se pueden cuantificar. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, se pueden explorar para producir un vector unidimensional de coeficientes de transformada, y se puede aplicar la codificación por entropía para lograr aún más compresión.
[0005] El documento de estandarización JVT-W201: "Joint Draft 10 of SVC Amendment" por el Equipo Conjunto de Vídeo (JVT) de ISO/IEC MPEG e ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 e ITU-T SG16 Q.6), 23.a Conferencia: San José, California, EE. UU., 21-27 de abril de 2007 divulga en la Sección 7.4.2.4 la semántica de RBSP del delimitador de unidad de acceso. El delimitador de unidad de acceso se puede usar para indicar el tipo de fragmentos presentes en una imagen codificada primaria y para simplificar la detección del límite entre las unidades de acceso. No existe ningún proceso de descodificación informativo asociado con el delimitador de unidad de acceso. Primary_pic_type indica que los valores de slice_type para todos los fragmentos de la imagen codificada primaria son miembros del conjunto enumerado en la tabla 7-5 para el valor dado de primary_pic_type.
BREVE EXPLICACIÓN
[0006] La presente divulgación presenta técnicas relacionadas con la codificación de vídeo multicapa y, más en particular, técnicas relacionadas con aspectos de la codificación de vídeo multicapa que incluyen un formato de representación para capas no base independientes (INBL). La presente divulgación también presenta técnicas para determinar qué SPS o PPS se usa para la interpretación de determinados mensajes de SEI y para acceder a los delimitadores de unidades.
[0007] En un ejemplo, un procedimiento de codificación de datos de vídeo multicapa incluye generar una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento; generar una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y generar una unidad de NAL de delimitador de unidad de
acceso (AUD) en base al primer y segundo tipos de fragmento.
[0008] En otro ejemplo, un aparato para codificar datos de vídeo multicapa incluye medios para generar una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento; medios para generar una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y medios para generar una unidad de NAL de delimitador de unidad de acceso (AUD) en base al primer y segundo tipos de fragmento.
[0009] En otro ejemplo, un medio de almacenamiento legible por ordenador almacena instrucciones que cuando se ejecutan por uno o más procesadores hacen que el uno o más procesadores generen una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento; generar una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y generar una unidad de NAL de delimitador de unidad de acceso (AUD) en base al primer y segundo tipos de fragmento.
[0010] En un ejemplo, un dispositivo para procesar datos de vídeo incluye una memoria configurada para almacenar al menos una parte de un flujo de bits de datos de vídeo multicapa y uno o más procesadores configurados para generar una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento; generar una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y generar una unidad de NAL de delimitador de unidad de acceso (AUD) en base al primer y segundo tipos de fragmento.
[0011] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y en la descripción a continuación. Otros rasgos característicos, objetivos y ventajas resultarán evidentes a partir de la descripción, los dibujos y las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0012]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar las técnicas descritas en la presente divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 4 es un diagrama de bloques que ilustra una red de ejemplo en la que se podrían implementar uno o más aspectos de la presente divulgación.
La FIG. 5 es un diagrama de flujo que muestra un procedimiento de ejemplo de acuerdo con las técnicas de la presente divulgación.
La FIG. 6 es un diagrama de flujo que muestra un procedimiento de ejemplo de acuerdo con las técnicas de la presente divulgación.
La FIG. 7 es un diagrama de flujo que muestra un procedimiento de ejemplo de acuerdo con las técnicas de la presente divulgación.
La FIG. 8 es un diagrama de flujo que muestra un procedimiento de ejemplo de acuerdo con las técnicas de la presente divulgación.
DESCRIPCIÓN DETALLADA
[0013] La presente divulgación presenta técnicas relacionadas con la codificación de vídeo multicapa y, más en particular, técnicas relacionadas con aspectos de la codificación de vídeo multicapa que incluyen un formato de representación para capas no base independientes (INBL). La presente divulgación también presenta técnicas para determinar qué SPS o PPS se usa para la interpretación de determinados mensajes de SEI y para acceder a los delimitadores de unidades.
[0014] La presente divulgación incluye técnicas para aplicar mensajes de información de mejora complementaria
(SEI) que se definen en la norma de codificación de vídeo de alta eficacia (HEVC) en un contexto multicapa. En algunos casos, las técnicas se pueden realizar con ampliaciones multicapa a la norma HEVC, tales como una ampliación de codificación de vídeo multivista a HEVC (MV-HEVC) o una ampliación de codificación de vídeo escalable (SVC) a HEVC (SHVC), como se señala a continuación. Si bien las técnicas de la presente divulgación en general se describirán usando terminología de HEVC, las técnicas de la presente divulgación no se limitan necesariamente a ninguna norma de codificación de vídeo particular y se pueden usar adicionalmente o de forma alternativa con otras ampliaciones de HEVC, otras normas de codificación multivista y/u otras normas de codificación de vídeo multicapa. Adicionalmente, a menos que se establezca de otro modo, se debe suponer que las técnicas de la presente divulgación, como se describe a continuación, se pueden aplicar independientemente o en combinación.
[0015] Una "capa" de datos de vídeo se puede referir, en general, a una secuencia de imágenes que tiene al menos una característica común, tal como una vista, una resolución, una fidelidad, una representación auxiliar o similares. Por ejemplo, una capa puede incluir datos de vídeo asociados con una vista particular (por ejemplo, perspectiva) de datos de vídeo multivista. Como otro ejemplo, una capa puede incluir datos de vídeo asociados con una capa particular de datos de vídeo escalables. Por tanto, la presente divulgación se puede referir de manera intercambiable a una capa y a una vista de datos de vídeo. Es decir, una vista de datos de vídeo se puede denominar capa de datos de vídeo, y viceversa, y una pluralidad de vistas o una pluralidad de capas escalables se pueden denominar, de manera similar, múltiples capas, por ejemplo, en un sistema de codificación multicapa. Además, un códec multicapa (también denominado codificador de vídeo multicapa o codificador-descodificador multicapa) se puede referir a un códec multivista o un códec escalable (por ejemplo, un códec configurado para codificar y/o descodificar datos de vídeo usando MV-HEVC, SHVC u otra técnica de codificación multicapa).
[0016] Una imagen puede ser una trama o bien un campo, donde un campo se refiere a filas alternativas (por ejemplo, filas pares o filas impares) de una trama, y donde una trama se refiere a la composición de dos campos, tal como un campo par (también denominado como campo superior) y un campo impar (también denominado campo inferior). Aunque la presente divulgación describirá, en general, técnicas con referencia a imágenes o tramas, se debe entender que, a menos que se establezca explícitamente de otro modo, las técnicas descritas también pueden ser aplicables a los campos.
[0017] La norma HEVC, en general, define una capa como un conjunto de unidades de capa de abstracción de red (NAL) que tienen todas un valor particular de id de capa nuh y las unidades de NAL de no capa de codificación de vídeo (VCL) asociadas, o una de un conjunto de estructuras sintácticas que tiene una relación jerárquica. La norma HEVC, en general, define una unidad de NAL como una estructura de sintaxis que contiene una indicación del tipo de datos incluidos en la unidad de NAL y octetos que contienen esos datos en forma de carga útil de secuencia de octetos sin procesar (RBSP). El elemento de sintaxis "nuh_layer_id" identifica la capa a la que pertenecen las unidades de NAL.
[0018] Un flujo de bits multicapa puede incluir una capa base y una o más capas no base, por ejemplo, en SHVC, o una pluralidad de vistas, por ejemplo, en MV-HEVC. En un flujo de bits escalable, la capa base típicamente puede tener un identificador de capa (por ejemplo, nuh_layer_id) que es igual a cero. Una capa no base puede tener un identificador de capa que es mayor que cero y puede proporcionar datos de vídeo adicionales que no están incluidos en la capa base. Por ejemplo, una capa no base de datos de vídeo multivista puede incluir una vista adicional de datos de vídeo. Una capa no base de datos de vídeo escalables puede incluir una capa adicional de datos de vídeo escalables. Una capa no base se puede denominar de manera intercambiable capa de mejora.
[0019] Una unidad de acceso (a veces abreviada AU) de un flujo de bits multicapa es, en general, una unidad de datos que incluye todos los componentes de capa (por ejemplo, todas las unidades de NAL) para una instancia temporal común. Los componentes de capa de una unidad de acceso típicamente están destinados a emitirse conjuntamente (es decir, emitidos sustancialmente de forma simultánea), donde emitir una imagen, en general, implica transferir imágenes desde un búfer de imágenes descodificadas (DPB) (por ejemplo, almacenar imágenes desde el DPB a una memoria externa, enviar las imágenes desde el DPB a una pantalla o similares). La norma HEVC, incluyendo las ampliaciones SHVC y MV-HEVC, en general define una unidad de acceso como un conjunto de unidades de NAL que están asociadas entre sí de acuerdo con una regla de clasificación específica, son consecutivas en orden de descodificación y contienen como máximo una imagen codificada con cualquier valor específico de nuh_layer_id. Además de contener las unidades de NAL de VCL de las imágenes codificadas, una unidad de acceso también puede contener unidades de NAL distintas de VCL. La descodificación de una unidad de acceso da como resultado como máximo una imagen descodificada con cualquier valor específico de nuh_layer_id. Una determinada secuencia de unidades de acceso se puede denominar secuencia de vídeo codificada (CVS).
[0020] Un flujo de bits que contiene una representación codificada de datos de vídeo puede incluir una serie de unidades de NAL. Las unidades de NAL pueden incluir unidades de NAL de VCL y unidades de NAL distintas de VCL. Las unidades de NAL de VCL pueden incluir fragmentos codificados de imágenes. Una unidad de NAL distinta de VCL, por ejemplo, puede encapsular otra información, tal como un conjunto de parámetros de vídeo (VPS), un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS), uno o más mensajes
de SEI u otros tipos de datos.
[0021] Las unidades de NAL del flujo de bits pueden estar asociadas con diferentes capas del flujo de bits. En SHVC, como se indica anteriormente, las capas distintas de una capa base se pueden denominar "capas de mejora" y pueden incluir datos que mejoran la calidad de reproducción de los datos de vídeo. En la codificación multivista y la codificación de vídeo tridimensional (3DV), tal como MV-HEVC, las capas pueden incluir datos asociados con diferentes vistas. Cada capa del flujo de bits está asociada con un identificador de capa diferente.
[0022] Además, las unidades de NAL pueden incluir identificadores temporales. Cada punto de operación de un flujo de bits tiene un conjunto de identificadores de capa y un identificador temporal. Si una unidad de NAL especifica un identificador de capa en el conjunto de identificadores de capa para un punto de operación y el identificador temporal de la unidad de NAL es menor que o igual al identificador temporal del punto de operación, la unidad de NAL está asociada con el punto de operación.
[0023] El mecanismo de SEI admitido tanto en H.264/AVC como en HEVC posibilita que los codificadores de vídeo incluyan dichos metadatos en el flujo de bits que no se requieren para una descodificación correcta, por un descodificador de vídeo u otro dispositivo, de los valores de muestra de las imágenes de salida, pero se pueden usar para otros propósitos diversos, tales como la temporización de salida de imágenes, la visualización, así como la detección y el ocultamiento de pérdidas. Una unidad de NAL que encapsula uno o más mensajes de SEI se denomina en el presente documento unidad de NAL de SEI. Un tipo de mensaje de SEI es un mensaje de SEI de anidado escalable. Un mensaje de SEI de anidado escalable es un mensaje de SEI que contiene uno o más mensajes de SEI adicionales. El mensaje de SEI de anidado escalable se puede usar para indicar si un mensaje de SEI se aplica a capas particulares o subcapas temporales de un flujo de bits multicapa. Un mensaje de SEI que no está contenido en un mensaje de SEI de anidado escalable se denomina en el presente documento mensaje de SEI no anidado.
[0024] Determinados tipos de mensajes de SEI contienen información que solo es aplicable a puntos de operación particulares. Un punto de operación de un flujo de bits está asociado con un conjunto de identificadores de capa y un identificador temporal. Una representación de punto de operación puede incluir cada unidad de NAL que está asociada con un punto de operación. Una representación de punto de operación puede tener una velocidad de trama y/o velocidad de transferencia de bits diferente a la de un flujo de bits original. Esto se debe a que la representación de punto de operación puede no incluir algunas imágenes y/o algunos de los datos del flujo de bits original.
[0025] La presente divulgación incluye además técnicas relacionadas con las unidades de NAL de delimitador de unidad de acceso (AUD). De acuerdo con la norma HEVC, se puede usar una unidad de NAL de AUD para indicar el tipo de fragmentos presentes en una imagen codificada y para simplificar la detección del límite entre las unidades de acceso. No existe ningún proceso de descodificación normativo asociado con el delimitador de unidad de acceso.
[0026] Como se explicará con mayor detalle a continuación, indicar el formato de representación de los datos de vídeo, determinar qué SPS o PPS se usa para la interpretación de determinados mensajes de SEI, y la interpretación de las unidades de NAL de AUD presenta varios desafíos en un vídeo multicapa que no están presentes en un vídeo de capa única. La presente divulgación presenta técnicas que pueden abordar esos desafíos.
[0027] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo 10 de ejemplo que puede utilizar las técnicas descritas en la presente divulgación. El sistema 10 se puede configurar para codificar, encapsular, transmitir, desencapsular y descodificar datos de vídeo multicapa. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera los datos de vídeo codificados que se van a descodificar en un momento posterior por un dispositivo de destino 14. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia gama de dispositivos, incluyendo ordenadores de escritorio, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, equipos telefónicos tales inalámbricos/móviles tales como los denominados teléfonos "inteligentes", los denominados paneles "inteligentes", televisiones, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión continua de vídeo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
[0028] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se vayan a descodificar por medio de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo que pueda mover los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para posibilitar que el dispositivo de origen 12 transmita los datos de vídeo codificados directamente a un dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se pueden modular de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir a un dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas
físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global, tal como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14. El medio de comunicación también puede formar parte de una red celular o móvil, y el dispositivo de origen 12 y el dispositivo de destino 14 se pueden configurar para comunicarse usando una norma de comunicación celular tal como una red GSM, red CDMA, red LTE u otra red similar.
[0029] De forma alternativa, los datos codificados se pueden emitir desde la interfaz de salida 22 a un dispositivo de almacenamiento 32. De forma similar, se puede acceder del dispositivo de almacenamiento 32 a los datos codificados por una interfaz de entrada. El dispositivo de almacenamiento 32 puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso local o distribuidos, tales como una unidad de disco duro, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento 32 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que puede contener el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados del dispositivo de almacenamiento 32 por medio de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectados en red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento 32 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
[0030] Las técnicas de la presente divulgación no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo, por ejemplo, por medio de Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 se puede configurar para admitir una transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0031] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20, una unidad de encapsulación 21 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captura de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contenga un vídeo capturado previamente, una interfaz de alimentación de vídeo para recibir un vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen, o una combinación de dichas fuentes. Como ejemplo, si la fuente de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, las técnicas descritas en la presente divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o por cable.
[0032] El vídeo captado, precaptado o generado por ordenador se puede codificar por el codificador de vídeo 20. La unidad de encapsulación 21 puede formar una o más representaciones del contenido de multimedios, donde cada una de las representaciones puede incluir una o más capas. En algunos ejemplos, el codificador de vídeo 20 puede codificar cada capa de diferentes maneras, por ejemplo, con diferentes velocidades de trama, diferentes velocidades de transferencia de bits, diferentes resoluciones u otras de dichas diferencias. Por tanto, la unidad de encapsulación 21 puede formar diversas representaciones que tienen diversas características, por ejemplo, velocidad de transferencia de bits, velocidad de tramas, resolución y similares.
[0033] Cada una de las representaciones puede corresponder a flujos de bits respectivos que se pueden recuperar por el dispositivo de destino 14. La unidad de encapsulación 21 puede proporcionar una indicación de una gama de identificadores de vista (view_ids) para vistas incluidas en cada representación, por ejemplo, dentro de una estructura de datos de descripción de presentación de medios (MPD) para el contenido de multimedios. Por ejemplo, la unidad de encapsulación 21 puede proporcionar una indicación de un identificador de vista máximo y un identificador de vista mínimo para las vistas de una representación. La MPD puede proporcionar además indicaciones de números máximos de vistas seleccionadas para su salida para cada una de una pluralidad de representaciones del contenido de multimedios. La MPD o los datos de la misma se pueden almacenar, en algunos
ejemplos, en un manifiesto para la(s) representación/representaciones.
[0034] Los datos de vídeo codificados se pueden transmitir directamente al dispositivo de destino 14 por medio de la interfaz de salida 22 del dispositivo de origen 12. Los datos de vídeo codificados también (o de forma alternativa) se pueden almacenar en el dispositivo de almacenamiento 32 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
[0035] El dispositivo de destino 14 incluye una interfaz de entrada 28, la unidad de desencapsulación 29, un descodificador de vídeo 30 y un dispositivo de visualización 31. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificados sobre el enlace 16. Los datos de vídeo codificados comunicados sobre el enlace 16, o proporcionados en el dispositivo de almacenamiento 32, pueden incluir una variedad de elementos de sintaxis generados por el codificador de vídeo 20 para su uso por un descodificador de vídeo, tal como el descodificador de vídeo 30, en la descodificación de los datos de vídeo. Dichos elementos de sintaxis se pueden incluir con los datos de vídeo codificados transmitidos en un medio de comunicación, almacenar en un medio de almacenamiento o almacenar en un servidor de archivos.
[0036] La unidad de desencapsulación 29 del dispositivo de destino 14 puede representar una unidad que desencapsula mensajes de SEI de un flujo de bits (o un subconjunto de un flujo de bits denominado un punto de operación en el contexto de codificación multicapa). La unidad de desencapsulación 29 puede realizar operaciones en un orden inverso a las realizadas por la unidad de encapsulación 21 para desencapsular datos del flujo de bits codificado y encapsulado, tales como mensajes de SEI.
[0037] El dispositivo de visualización 31 se puede integrar con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también estar configurado para interconectarse con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 31 visualiza los datos de vídeo descodificados ante un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0038] El codificador de vídeo 20 y el descodificador de vídeo 30 se pueden implementar cada uno como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio legible por ordenador y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de la presente divulgación. Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 se pueden incluir en uno o más codificadores o descodificadores, de los que cualquiera se puede integrar como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0039] Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el descodificador de vídeo 30 se pueden integrar cada uno con un codificador y un descodificador de audio, y pueden incluir unidades MUX-DEMUX apropiadas, u otro hardware y software, para manejar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si procede, en algunos ejemplos, las unidades MUX-DEMUX se pueden ajustar al protocolo de multiplexación ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0040] La presente divulgación se puede referir, en general, al codificador de vídeo 20 que "señaliza" determinada información a otro dispositivo, tal como el descodificador de vídeo 30. El término "señalizar" se puede referir, en general, a la comunicación de elementos de sintaxis y/o a otros datos usados para descodificar los datos de vídeo comprimidos. Dicha comunicación se puede producir en tiempo real o casi real. De forma alternativa, dicha comunicación se puede producir durante un período de tiempo, tal como se podría producir cuando se almacenan elementos de sintaxis en un medio de almacenamiento legible por ordenador en un flujo de bits codificado en el momento de la codificación, que, a continuación, se pueden recuperar por un dispositivo de descodificación en cualquier momento después de almacenarse en este medio.
[0041] En algunos ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 funcionan de acuerdo con una norma de compresión de vídeo, tal como ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo su ampliación de codificación de vídeo escalable (SVC), ampliación de codificación de vídeo multivista (MVC) y ampliación 3DV basada en MVC. En otros ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con HEVC elaborada por el Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC.
[0042] Además, actualmente se están dedicando esfuerzos continuos para producir codificación de vídeo escalable, codificación multivista y ampliaciones 3DV para HEVC. La ampliación de codificación de vídeo escalable de HEVC se puede denominar s Hv C. Un borrador de trabajo (WD) reciente de SHVC (denominado SHVC WD5 o el SHVC WD actual a continuación en el presente documento), se describe en Chen et al., "High Efficiency Video Coding (HEVC) scalable extension draft 5", Equipo Colaborativo Conjunto en Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, documento JCTVC-P1008_v4, 16.a Conferencia, San José, enero de 2014. Un borrador de trabajo (WD) reciente de MV-HEVC (denominado MV-HEVC WD7 o el MV-HEVC WD actual a continuación en el presente documento) se describe en Tech et al., "MV-HEVC Draft Text 7", Equipo Colaborativo Conjunto en Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, documento JCTVC-G1004_v7, 16.a Conferencia, San José, enero de 2014.
[0043] En HEVC y otras especificaciones de codificación de vídeo, una secuencia de vídeo incluye típicamente una serie de imágenes. Las imágenes también se pueden denominar "tramas". Una imagen puede incluir tres matrices de muestras, indicadas como Sl, SCb y SCr. Sl es una matriz bidimensional (es decir, un bloque) de muestras de luma. SCb es una matriz bidimensional de muestras de crominancia Cb. SCr es una matriz bidimensional de muestras de crominancia Cr. Las muestras de crominancia también se pueden denominar en el presente documento muestras de "croma". En otros casos, una imagen puede ser monocromática y puede incluir solo una matriz de muestras de luma.
[0044] Para generar una representación codificada de una imagen, el codificador de vídeo 20 puede generar un conjunto de unidades de árbol de codificación (CTU). Cada una de las CTU puede comprender un bloque de árbol de codificación de muestras de luma, dos bloques de árbol de codificación correspondientes de muestras de croma y estructuras de sintaxis usadas para codificar las muestras de los bloques de árbol de codificación. En imágenes monocromáticas o imágenes que tengan tres planos de color separados, una CTU puede comprender un único bloque de árbol de codificación y unas estructuras de sintaxis usadas para codificar las muestras del bloque de árbol de codificación. Un bloque de árbol de codificación puede ser un bloque de muestras NxN. Una CTU también se puede denominar "bloque de árbol" o "unidad de codificación de máximo tamaño" (LCU). Las CTU de HEVC pueden ser ampliamente análogas a los macrobloques de otras normas, tales como H.264/AVC. Sin embargo, una CTU no se limita necesariamente a un tamaño particular y puede incluir una o más unidades de codificación (CU). Un fragmento puede incluir un número entero de CTU ordenadas consecutivamente en un orden de exploración de barrido.
[0045] Para generar una CTU codificada, el codificador de vídeo 20 puede realizar de forma recursiva una división de árbol cuaternario en los bloques de árbol de codificación de una CTU para dividir los bloques de árbol de codificación en bloques de codificación, de ahí el nombre "unidades de árbol de codificación". Un bloque de codificación puede ser un bloque de muestras NxN. Una CU puede comprender un bloque de codificación de muestras de luma y dos bloques de codificación correspondientes de muestras de croma de una imagen que tiene una matriz de muestras de luma, una matriz de muestras Cb y una matriz de muestras Cr y estructuras de sintaxis usadas para codificar las muestras de los bloques de codificación. En imágenes monocromáticas o imágenes que tengan tres planos de color separados, una CU puede comprender un único bloque de codificación y estructuras de sintaxis usadas para codificar las muestras del bloque de codificación.
[0046] El codificador de vídeo 20 puede dividir un bloque de codificación de una CU en uno o más bloques de predicción. Un bloque de predicción es un bloque rectangular (es decir, cuadrado o no cuadrado) de muestras en las que se aplica la misma predicción. Una unidad de predicción (PU) de una CU puede comprender un bloque de predicción de muestras de luma, dos bloques de predicción correspondientes de muestras de croma y estructuras de sintaxis usadas para predecir los bloques de predicción. En imágenes monocromáticas o imágenes que tengan tres planos de color separados, una PU puede comprender un único bloque de predicción y estructuras de sintaxis usadas para predecir el bloque de predicción. El codificador de vídeo 20 puede generar bloques predictivos de luma, Cb y Cr para bloques de predicción de luma, Cb y Cr de cada PU de la CU.
[0047] El codificador de vídeo 20 puede usar intrapredicción o interpredicción para generar los bloques predictivos para una PU. Si el codificador de vídeo 20 usa intrapredicción para generar los bloques predictivos de una PU, el codificador de vídeo 20 puede generar los bloques predictivos de la PU en base a muestras descodificadas de la imagen asociada con la PU. Si el codificador de vídeo 20 usa interpredicción para generar los bloques predictivos de una PU, el codificador de vídeo 20 puede generar los bloques predictivos de la PU en base a muestras descodificadas de una o más imágenes distintas a la imagen asociada con la PU.
[0048] Después de que el codificador de vídeo 20 genere bloques predictivos de luma, Cb y Cr para una o más PU de una CU, el codificador de vídeo 20 puede generar un bloque residual de luma para la CU. Cada muestra en el bloque residual de luma de la CU indica una diferencia entre una muestra de luma en uno de los bloques predictivos de luma de la CU y una muestra correspondiente en el bloque de codificación de luma original de la CU. Además, el codificador de vídeo 20 puede generar un bloque residual de Cb para la CU. Cada muestra en el bloque residual de Cb de la CU puede indicar una diferencia entre una muestra de Cb en uno de los bloques predictivos de Cb de la CU y una muestra correspondiente en el bloque de codificación de Cb original de la CU. El codificador de vídeo 20 también puede generar un bloque residual de Cr para la CU. Cada muestra en el bloque
residual de Cr de la CU puede indicar una diferencia entre una muestra de Cr en uno de los bloques predictivos de Cr de la CU y una muestra correspondiente en el bloque de codificación de Cr original de la CU.
[0049] Además, el codificador de vídeo 20 puede usar una división de árbol cuaternario para descomponer los bloques residuales de luma, Cb y Cr de una CU en uno o más bloques de transformada de luma, Cb y Cr. Un bloque de transformada es un bloque rectangular (por ejemplo, cuadrado o no cuadrado) de muestras a las que se aplica la misma transformada. Una unidad de transformada (TU) de una CU puede comprender un bloque de transformada de muestras de luma, dos bloques correspondientes de transformada de muestras de croma y estructuras de sintaxis usadas para transformar las muestras de bloques de transformada. Por tanto, cada TU de una CU puede estar asociada con un bloque de transformada de luma, un bloque de transformada de Cb y un bloque de transformada de Cr. El bloque de transformada de luma asociado con la TU puede ser un subbloque del bloque residual de luma de la CU. El bloque de transformada de Cb puede ser un subbloque del bloque residual de Cb de la CU. El bloque de transformada de Cr puede ser un subbloque del bloque residual de Cr de la CU. En imágenes monocromáticas o imágenes que tengan tres planos de color separados, una TU puede comprender un único bloque de transformada y estructuras de sintaxis usadas para transformar las muestras del bloque de transformada.
[0050] El codificador de vídeo 20 puede aplicar una o más transformadas a un bloque de transformada de luma de una TU para generar un bloque de coeficientes de luma para la TU. Un bloque de coeficientes puede ser una matriz bidimensional de coeficientes de transformada. Un coeficiente de transformada puede ser una cantidad escalar. El codificador de vídeo 20 puede aplicar una o más transformadas a un bloque de transformada de Cb de una TU para generar un bloque de coeficientes de Cb para la TU. El codificador de vídeo 20 puede aplicar una o más transformadas a un bloque de transformada de Cr de una TU para generar un bloque de coeficientes de Cr para la TU.
[0051] Después de generar un bloque de coeficientes (por ejemplo, un bloque de coeficientes de luma, un bloque de coeficientes de Cb o un bloque de coeficientes de Cr), el codificador de vídeo 20 puede cuantificar el bloque de coeficientes. La cuantificación se refiere, en general, a un proceso en el que coeficientes de transformada se cuantifican para reducir, posiblemente, la cantidad de datos usados para representar los coeficientes de transformada, proporcionando compresión adicional. Después de que el codificador de vídeo 20 cuantifique un bloque de coeficientes, el codificador de vídeo 20 puede codificar por entropía elementos de sintaxis que indiquen los coeficientes de transformada cuantificados. Por ejemplo, el codificador de vídeo 20 puede realizar una codificación aritmética binaria adaptativa al contexto (CABAC) en los elementos de sintaxis que indiquen los coeficientes de transformada cuantificados.
[0052] El codificador de vídeo 20 puede emitir un flujo de bits que incluya una secuencia de bits que forme una representación de imágenes codificadas y datos asociados. El flujo de bits puede comprender una secuencia de unidades de NAL. Una unidad de NAL es una estructura de sintaxis que contiene una indicación del tipo de datos en la unidad de NAL y octetos que contienen los datos en forma de una RBSP entremezclada como sea necesario con bits de prevención de emulación. Cada una de las unidades de NAL incluye una cabecera de unidad de NAL y encapsula una RBSP. La cabecera de unidad de NAL puede incluir un elemento de sintaxis que indique un código de tipo de unidad de NAL. El código de tipo de unidad de NAL especificado por la cabecera de unidad de NAL de una unidad de NAL indica el tipo de la unidad de NAL. Una RBSP puede ser una estructura de sintaxis que contenga un número entero de octetos que esté encapsulado dentro de una unidad de NAL. En algunos casos, una RBSP incluye cero bits.
[0053] Diferentes tipos de unidades de NAL pueden encapsular diferentes tipos de RBSP. Por ejemplo, un primer tipo de unidad de NAL puede encapsular una RBSP para un PPS, un segundo tipo de unidad de NAL puede encapsular una RBSP para un fragmento codificado, un tercer tipo de unidad de NAL puede encapsular una RBSP para mensajes de SEI y así sucesivamente. Las unidades de NAL que encapsulan RBSP para los datos de codificación de vídeo (a diferencia de RBSP para conjuntos de parámetros y mensajes de SEI) se pueden denominar unidades de NAL de VCL.
[0054] El descodificador de vídeo 30 puede recibir un flujo de bits generado por el codificador de vídeo 20. Además, el descodificador de vídeo 30 puede analizar sintácticamente el flujo de bits para obtener elementos de sintaxis del flujo de bits. El descodificador de vídeo 30 puede reconstruir las imágenes de los datos de vídeo en base a, al menos en parte, los elementos de sintaxis obtenidos a partir del flujo de bits. El procedimiento para reconstruir los datos de vídeo puede ser, en general, recíproco al procedimiento realizado por el codificador de vídeo 20. Además, el descodificador de vídeo 30 puede realizar una cuantificación inversa de los bloques de coeficientes asociados con TU de una CU actual. El descodificador de vídeo 30 puede realizar transformadas inversas en los bloques de coeficientes para reconstruir los bloques de transformada asociados con las TU de la CU actual. El descodificador de vídeo 30 puede reconstruir los bloques de codificación de la CU actual añadiendo las muestras de los bloques predictivos para las PU de la CU actual a las muestras correspondientes de los bloques de transformada de las TU de la CU actual. Reconstruyendo los bloques de codificación para cada CU de una imagen, el descodificador de vídeo 30 puede reconstruir la imagen.
[0055] En la codificación multivista, puede haber múltiples vistas de la misma escena desde diferentes puntos de vista. Como se indica anteriormente, una unidad de acceso incluye un conjunto de imágenes que corresponden a la misma instancia de tiempo. Por tanto, los datos de vídeo se pueden conceptualizar como una serie de unidades de acceso que se producen a lo largo del tiempo. Un "componente de vista" puede ser una representación codificada de una vista en una única unidad de acceso. En la presente divulgación, una "vista" se puede referir a una secuencia de componentes de vista asociados con el mismo identificador de vista. Los tipos de ejemplo de componente de vista incluyen componentes de vista de textura y componentes de vista de profundidad.
[0056] La codificación multivista admite la predicción entre vistas. La predicción entre vistas es similar a la interpredicción usada en HEVC y puede usar los mismos elementos de sintaxis. Sin embargo, cuando un codificador de vídeo realiza una predicción entre vistas en una unidad de vídeo actual (tal como una PU), el codificador de vídeo 20 puede usar, como imagen de referencia, una imagen que está en la misma unidad de acceso que la unidad de vídeo actual, pero en una vista diferente. Por el contrario, la interpredicción convencional solo usa imágenes en diferentes unidades de acceso como imágenes de referencia.
[0057] En la codificación multivista, una vista se puede denominar "vista de base" si un descodificador de vídeo (por ejemplo, el descodificador de vídeo 30) puede descodificar imágenes en la vista sin referencia a imágenes en ninguna otra vista. Cuando se codifica una imagen en una de las vistas no de base, un codificador de vídeo (tal como el codificador de vídeo 20 o el descodificador de vídeo 30) puede añadir una imagen a una lista de imágenes de referencia si la imagen está en una vista diferente pero dentro de una misma instancia de tiempo (es decir, unidad de acceso) que la imagen que el codificador de vídeo está codificando actualmente. Al igual que otras imágenes de referencia de interpredicción, el codificador de vídeo puede insertar una imagen de referencia de predicción entre vistas en cualquier posición de una lista de imágenes de referencia.
[0058] El mecanismo de SEI admitido tanto en H.264/AVC como en HEVC posibilita que los codificadores de vídeo (por ejemplo, el codificador de vídeo 20) incluyan dichos metadatos en el flujo de bits que no se requieren para una descodificación correcta de los valores de muestra de las imágenes de salida, pero que se pueden usar para otros propósitos diversos, tales como la temporización de salida de imágenes, la visualización, así como la detección y el ocultamiento de pérdidas. El codificador de vídeo 20 puede usar mensajes de SEI para incluir, en el flujo de bits, metadatos que no se requieren para la descodificación correcta de los valores de muestra de las imágenes. Sin embargo, el descodificador de vídeo 30 u otros dispositivos pueden usar los metadatos incluidos en los mensajes de SEI para otros propósitos diversos. Por ejemplo, el descodificador de vídeo 30 u otro dispositivo puede usar los metadatos en los mensajes de SEI para la temporización de salida de imágenes, la visualización de la imagen, la detección de pérdidas y ocultación de errores.
[0059] El codificador de vídeo 20 puede generar una o más unidades de NAL de SEI para su inclusión en una unidad de acceso. En otras palabras, cualquier número de unidades de NAL de SEI puede estar asociado con una unidad de acceso. Además, cada unidad de NAL de SEI puede contener uno o más mensajes de SEI. Es decir, los codificadores de vídeo pueden incluir cualquier número de unidades de NAL de SEI en una unidad de acceso, y cada unidad de NAL de SEI puede contener uno o más mensajes de SEI. Una unidad de NAL de SEI puede incluir una cabecera y una carga útil de unidad de NAL. La cabecera de la unidad de NAL de la unidad de NAL de SEI incluye al menos un primer elemento de sintaxis y un segundo elemento de sintaxis. El primer elemento de sintaxis especifica un identificador de capa de la unidad de NAL de SEI. El segundo elemento de sintaxis especifica un identificador temporal de la unidad de NAL de SEI.
[0060] Un mensaje de SEI anidado se refiere a un mensaje de SEI que está contenido en un mensaje de SEI de anidado escalable. Un mensaje de SEI no anidado se refiere a un mensaje de SEI que no está contenido en un mensaje de SEI de anidado escalable. La carga útil de la unidad de NAL de SEI puede comprender un mensaje de SEI anidado o un mensaje de SEI no anidado.
[0061] La norma HEVC describe la sintaxis y la semántica para diversos tipos de mensajes de SEI. Sin embargo, la norma HEVC no describe el manejo de los mensajes de SEI porque los mensajes de SEI no afectan al proceso de descodificación normativa. Un motivo para tener mensajes de SEI en la norma HEVC es posibilitar que los datos complementarios se interpreten de manera idéntica en diferentes sistemas que usen HEVC. Las especificaciones y sistemas que usan HEVC pueden requerir codificadores de vídeo para generar determinados mensajes de SEI o pueden definir el manejo específico de tipos particulares de mensajes de SEI recibidos.
[0062] La tabla 1, a continuación, enumera los mensajes de SEI especificados en HEVC y describe en resumen sus propósitos:
TABLA 1 - Visión general de mensajes de SEI
[0063] Como se presentó anteriormente, la presente divulgación presenta técnicas relacionadas con la codificación de vídeo multicapa y, más en particular, con técnicas relacionadas con aspectos de la codificación de vídeo multicapa, incluyendo el formato de representación de capas no base independientes (INBL), con SPS o PPS que se usa para la interpretación de determinados mensajes de SEI, y el procesamiento de unidades de NAL de AUD.
[0064] El codificador de vídeo 20 se puede configurar para generar datos de vídeo multicapa y el descodificador de vídeo 30 se puede configurar para descodificar datos de vídeo multicapa. Los datos de vídeo multicapa pueden incluir una capa base así como una o más capas no base. Las capas no base pueden incluir tanto capas base dependientes, que dependen de otras capas para la descodificación, como INBL, que no dependen de otras capas para la descodificación. Las implementaciones existentes de INBL en la codificación de vídeo multicapa incluyen algunos problemas potenciales.
[0065] Como ejemplo de un problema potencial con las implementaciones existentes, una capa con un identificador de capa (por ejemplo, nuh_layer_id) mayor que 0, independientemente de si la capa es un INBL, usa el formato de representación señalado en el VPS. El formato de representación incluye parámetros tales como ancho, alto, profundidad de bits y formato de color. Si una INBL que se refiere a un SPS con V1 CompatibleSPSFlag igual a 1 o nuh_layer_id igual a 0 se va a reescribir para que sea una capa base compatible con HEVC versión 1, por ejemplo, como se especifica en el texto de salida AHG10 en JCTVC-R0010v3/JCT3V-I0010v3 (http://phenix.intevry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R0010-v3.zip), cuando el formato de representación usado del VPS es diferente del formato de representación (para cualquiera de los parámetros) señalados en el SPS, entonces el proceso de reescritura necesita cambiar el SPS de modo que el formato de representación sea el mismo que el formato de representación usado del VPS. Este requisito puede necesitar la reescritura de todo el SPS, lo que puede hacer que todo el proceso de reescritura de la INBL en una capa base compatible con HEVC versión 1 sea significativamente más complicado.
[0066] Cuando VICompatibleSPSFlag es igual a 1, entonces el SPS es compatible con la sintaxis de SPS especificada en HEVC versión 1 y se puede analizar sintácticamente por descodificadores de HEVC heredados implementados de acuerdo con HEVC versión 1. Cuando VICompatibleSPSFlag es igual a 0, entonces el SPS no es compatible con la sintaxis de SPS especificada en HEVC versión 1 y no se puede analizar sintácticamente por descodificadores de HEVC heredados implementados de acuerdo con HEVC versión 1.
[0067] La presente divulgación presenta varias técnicas que pueden abordar el problema descrito anteriormente. Como ejemplo, el codificador de vídeo 20 se puede configurar para codificar vídeo multicapa de modo que el formato de representación usado del VPS y el formato de representación señalado en el SPS para la INBL sean idénticos. Adicionalmente o de forma alternativa, para una INBL que está contenida en una división de flujo de bits que incluye solo la INBL, el formato de representación especificado es el formato de representación señalado en el SPS activo. Adicionalmente o de forma alternativa, para cualquier INBL, el formato de representación especificado puede ser el formato de representación señalado en el SPS activo para la capa.
[0068] Como otro ejemplo de un problema potencial con las implementaciones existentes de vídeo multicapa, un mensaje de SEI se puede aplicar a múltiples capas o un punto de operación (de salida) asociado con un conjunto de capas (de salida) que contiene múltiples capas, por ejemplo, cuando el mensaje de SEI está anidado. En un caso de este tipo, puede haber múltiples SPS activos y múltiples PPS activos. Por ejemplo, puede haber un SPS activo y un PPS activo para cada capa, lo que puede hacer que no quede claro a qué PPS o SPS se aplican algunos mensajes de SEI.
[0069] Por ejemplo, los indicadores "general_progressive_source_flag" y "general_interlaced_source_flag" se mencionan en la semántica de ffinfo_source_scan_type en un mensaje de SEI de información de campo de trama. Estos dos indicadores están localizados en la estructura de sintaxis de perfil, grado y nivel (PTL), que puede estar en cada uno de los SPS activos y también pueden estar presentes múltiples instancias de los indicadores en el VPS. Por lo tanto, se debe aclarar qué estructura de sintaxis PTL que contiene los dos indicadores se aplica cuando el mensaje de SEI de información de campo de trama se aplica a múltiples capas. Existen problemas similares para el indicador SPS "field_seq_flag" que se usa en la semántica de ffinfo_pic_struct y ffinfo_duplicate_flag en el mensaje de SEI de información de campo de trama.
[0070] Para resolver potencialmente el problema descrito anteriormente, la presente divulgación presenta una restricción de codificación que puede requerir que el valor de field_seq_flag sea el mismo para todos los SPS activos para las capas a las que se aplica el mensaje de SEI de información de campo de trama. Adicionalmente o de forma alternativa, la presente divulgación presenta una restricción de codificación que puede requerir que el mensaje de SEI de información de campo de trama que se aplica a un conjunto de capas no esté presente si el valor de field_seq_flag no es el mismo para todos los SPS activos para las capas. En HEVC, field_seq_flag igual a 1 indica que la CVS transmite imágenes que representan campos, y especifica que un mensaje de SEI de temporización de imagen estará presente en cada unidad de acceso de la CVS actual. En HEVC, field_seq_flag igual a 0 indica que la CVS transmite imágenes que representan tramas y que un mensaje de SEI de temporización de imagen puede estar presente o no en cualquier unidad de acceso de la CVS actual.
[0071] De modo similar, para los indicadores "general_progressive_source_flag" y "general_interlaced_source_flag", la presente divulgación presenta una restricción de codificación que puede requerir que los indicadores sean idénticos, respectivamente, para todas las estructuras de sintaxis PTL que se aplican a las divisiones de flujo de bits que contienen las capas a las que se aplica el mensaje de SEI de información
de campo de trama. De acuerdo con HEVC, el general_progressive_source_flag y el general_interlaced_source_flag se interpretan como sigue:
- Si general_progressive_source_flag es igual a 1 y general_interlaced_source_flag es igual a 0, el tipo de exploración de origen de las imágenes en la CVS se debe interpretar solo como progresivo.
- De otro modo, si general_progressive_source_flag es igual a 0 y general_interlaced_source_flag es igual a 1, el tipo de exploración de origen de las imágenes en la CVS se debe interpretar solo como intercalado.
- De otro modo, si general_progressive_source_flag es igual a 0 y general_interlaced_source_flag es igual a 0, el tipo de exploración de origen de las imágenes en la CVS se debe interpretar como desconocido o no especificado.
[0072] De otro modo (general_progressive_source_flag es igual a 1 y general_interlaced_source_flag es igual a 1), el tipo de exploración de origen de cada imagen en la CVS se indica a nivel de imagen usando el elemento de sintaxis source_scan_type en un mensaje de SEI de temporización de imagen. También se pueden aplicar restricciones similares para elementos de sintaxis de otros mensajes de SEI. Para cualquier mensaje de SEI seiA que se aplica a múltiples capas o múltiples conjuntos de capas (de salida), cuando múltiples instancias de cualquier elemento de sintaxis que no es parte de seiA están implicadas en la semántica de cualquier elemento de sintaxis que es parte de seiA, se requiere que el valor del elemento de sintaxis que no sea parte de seiA sea el mismo para todas las instancias. Por lo tanto, si el codificador de vídeo 20 determina que un mensaje de SEI se aplica a más de una capa de datos de vídeo multicapa y determina que el mensaje de SEI hace referencia a un elemento de sintaxis que tiene múltiples instancias asociadas con las más de una capa de los datos de vídeo multicapa; a continuación, el codificador de vídeo 20 establece todas las instancias múltiples en un mismo valor. El elemento de sintaxis puede ser cualquiera de un elemento de sintaxis field_seq_flag, un elemento de sintaxis general_progressive_source_flag, un elemento de sintaxis general_interlaced_source_flag, o cualquier otro elemento de sintaxis de este tipo descrito en el presente documento.
[0073] Como se presentó anteriormente, la presente divulgación también presenta varias técnicas relacionadas con las unidades de NAL de AUD, que como se implementan actualmente tienen algunas deficiencias potenciales cuando se usan junto con vídeo multicapa. La semántica del elemento de sintaxis "pic_type" en una unidad de NAL de AUD puede no ser clara en contextos multicapa tales como en un flujo de bits multicapa. Una unidad de acceso en un contexto multicapa puede contener una o más imágenes codificadas, aunque la semántica de pic_type diga que se puede usar para indicar el tipo de fragmentos presentes en "una imagen codificada". Por lo tanto, en el contexto de vídeo multicapa, donde potencialmente hay más de una imagen en una unidad de acceso, la semántica actual no está clara.
[0074] Para abordar esta deficiencia potencial, la presente divulgación propone cambiar la semántica de la unidad de NAL de AUD como sigue. La semántica de RBSP del delimitador de unidad de acceso se cambia como sigue (añadiéndose texto subrayado y eliminándose [[texto entre corchetes]].
El delimitador de unidad de acceso se puede usar para indicar el tipo de fragmentos presentes en [[a]] todas las imágenes codificadas en la unidad de acceso que contiene la unidad de NAL del delimitador de unidad de acceso y para simplificar la detección del límite entre las unidades de acceso. No existe ningún proceso de descodificación normativo asociado con el delimitador de unidad de acceso.
pic_type indica que los valores de slice_type para todos los fragmentos de las imágenes codificadas en la unidad de acceso que contiene la unidad de NAL del delimitador de unidad de acceso son miembros del conjunto enumerado en la tabla 7-2 para el valor dado de pic_type. El valor de pic_type será igual a 0, 1 o 2 en flujos de bits que se ajusten a esta versión de esta Especificación. Otros valores de pic_type están reservados para su uso futuro por ITU-T | ISO/IEC. Los descodificadores que se ajusten a esta versión de esta Especificación ignorarán los valores reservados de pic_type. El valor de pic_type será igual a 0, 1 o 2 en flujos de bits que se ajusten a esta versión de esta Especificación. Otros valores de pic_type están reservados para su uso futuro por ITU-T | ISO/IEC. Los descodificadores que se ajusten a esta versión de esta Especificación ignorarán los valores reservados de pic_type.
Tabla 7-2- Interpretación de pic_type
[0075] De forma alternativa, se puede modificar la semántica de pic_type de modo que el valor de pic_type indique que los valores de slice_type para todos los fragmentos de la imagen codificada en la unidad de acceso con nuh_layer_id igual al nuh_layer_id de la unidad de NAL del delimitador de unidad de acceso son miembros del conjunto enumerado en la tabla 7-2 para el valor dado de pic_type.
[0076] Las implementaciones existentes de codificación de vídeo multicapa también tienen algunos problemas potenciales relacionados con el procesamiento de la unidad de NAL de AUD con nuh_layer_id igual a otro distinto de 0. Por ejemplo, la especificación de HEVC versión 1 tiene la siguiente restricción:
Cuando esté presente una unidad de NAL del delimitador de unidad de acceso, será la primera unidad de NAL. Habrá como máximo una unidad de NAL del delimitador de unidad de acceso en cualquier unidad de acceso.
[0077] Esta restricción se aplica a la especificación de HEVC versión 1. Sin embargo, cuando un flujo de bits multicapa contiene unidades de NAL de AUD con nuh_layer_id mayor que 0, dichas unidades de NAL de AUD no se deben considerar como el comienzo de una nueva unidad de acceso por un descodificador de versión 1. De no hacerlo, el descodificador vería unidades de acceso vacías, ya que no reconocería ninguna unidad de NAL que tenga nuh_layer_id mayor que 0 y consideraría que el flujo de bits no se ajusta, aunque la capa base de un flujo de bits multicapa de este tipo podría ser descodificable de otro modo.
[0078] De acuerdo con una técnica de la presente divulgación, la restricción de la unidad de NAL de AUD se puede modificar como sigue (añadiéndose texto subrayado):
Cuando esté presente una unidad de NAL del delimitador de unidad de acceso con un nuh layer id igual a 0, será la primera unidad de NAL. Habrá como máximo una unidad de NAL del delimitador de unidad de acceso con nuh layer id igual a 0 en cualquier unidad de acceso.
[0079] De forma alternativa, la restricción se modifica como sigue:
[0080] Cuando esté presente una unidad de NAL del delimitador de unidad de acceso con nuh layer id igual a 0, será la primera unidad de NAL. Habrá como máximo una unidad de NAL del delimitador de unidad de acceso en cualquier unidad de acceso. Por tanto, de acuerdo con las técnicas de la presente divulgación, el codificador de vídeo 20 puede generar, para una primera unidad de acceso, una primera unidad de NAL de AUD que tiene un valor de identificador de capa (por ejemplo, nuh_layer_id) igual a cero y generar, para la primera unidad de acceso, unidades de NAL de AUD posteriores que tienen identificadores de capa mayores que cero. El descodificador de vídeo 30 puede recibir, para una primera unidad de acceso, una primera unidad de NAL de AUD con un identificador de capa igual a 0 y puede recibir, para la primera unidad de acceso, unidades de NAL de AUD posteriores que tienen identificadores de capa mayores que cero. En la primera unidad de acceso, la segunda unidad de NAL de AUD sigue a la primera unidad de NAL de AUD y al menos una unidad de NAL de VCL.
[0081] La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo 20 de ejemplo que puede implementar las técnicas descritas en la presente divulgación. La FIG. 2 se proporciona con propósitos explicativos y no se debería considerar limitante de las técnicas ampliamente ejemplificadas y descritas en la presente divulgación. Con propósitos explicativos, la presente divulgación describe un codificador de vídeo 20 en el contexto de la codificación HEVC. Sin embargo, las técnicas de la presente divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0082] El codificador de vídeo 20 se puede configurar para emitir vídeo a la entidad de posprocesamiento 27, que es otro dispositivo de ejemplo que puede implementar las técnicas descritas en la presente divulgación. La entidad de posprocesamiento 27 pretende representar un ejemplo de una entidad de vídeo, tal como un elemento de red consciente de medios (MANE), un dispositivo de empalme/edición u otro dispositivo intermedio que pueda procesar datos de vídeo codificados del codificador de vídeo 20. En algunos casos, la entidad de posprocesamiento 27 puede ser un ejemplo de una entidad de red. En algunos sistemas de codificación de vídeo, la entidad de posprocesamiento 27 y el codificador de vídeo 20 pueden ser partes de dispositivos separados, mientras que en otros casos, la funcionalidad descrita con respecto a la entidad de posprocesamiento 27 se puede realizar por el mismo dispositivo que comprende el codificador de vídeo 20.
[0083] El codificador de vídeo 20 puede realizar intracodificación e intercodificación de bloques de vídeo dentro de fragmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en un vídeo dentro de una trama o imagen de vídeo dada. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en un vídeo dentro de tramas o imágenes contiguas de una secuencia de vídeo. El intramodo (modo I) se puede referir a cualquiera de varios modos de compresión de base espacial. Los intermodos, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), se pueden referir a cualquiera de varios modos de compresión de base temporal.
[0084] En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una memoria de datos de vídeo 33, una
unidad de división 35, una unidad de procesamiento de predicción 41, una unidad de filtro 63, un búfer de imágenes decodificadas (DPB) 64, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. La unidad de procesamiento de predicción 41 incluye una unidad de estimación de movimiento 42, una unidad de compensación de movimiento 44 y una unidad de procesamiento de intrapredicción 46. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 también incluye una unidad de cuantificación inversa 58, una unidad de procesamiento de transformada inversa 60 y un sumador 62. La unidad de filtro 63 pretende representar uno o más filtros de bucle tales como un filtro de eliminación de bloques, un filtro de bucle adaptativo (ALF) y un filtro de desviación adaptativa de muestras (SAO). Aunque la unidad de filtro 63 se muestra en la FIG. 2 como un filtro de bucle, en otras configuraciones la unidad de filtro 63 se puede implementar como un filtro posbucle.
[0085] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe datos de vídeo y almacena los datos de vídeo recibidos en la memoria de datos de vídeo 33. La memoria de datos de vídeo 33 puede almacenar los datos de vídeo que se van a codificar por los componentes del codificador de vídeo 20. Los datos de vídeo almacenados en la memoria de datos de vídeo 33 se pueden obtener, por ejemplo, a partir de la fuente de vídeo 18. El DPB 64 puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para su uso en la codificación de datos de vídeo por el codificador de vídeo 20, por ejemplo, en modos de intra o intercodificación. La memoria de datos de vídeo 33 y el DPB 64 pueden estar formados por cualquiera de una variedad de dispositivos de memoria, tales como memoria dinámica de acceso aleatorio (DRAM), incluyendo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La memoria de datos de vídeo 33 y el DPB 64 se pueden proporcionar por el mismo dispositivo de memoria o por dispositivos de memoria separados. En diversos ejemplos, la memoria de datos de vídeo 33 puede estar en un chip con otros componentes del codificador de vídeo 20, o fuera del chip en relación con esos componentes.
[0086] La unidad de división 35 recupera los datos de vídeo de la memoria de datos de vídeo 33 y divide los datos de vídeo en bloques de vídeo. Esta división también puede incluir la división en fragmentos, mosaicos u otras unidades más grandes, así como la división en bloques de vídeo, por ejemplo, de acuerdo con una estructura en árbol cuaternario de LCU y CU. El codificador de vídeo 20 ilustra, en general, los componentes que codifican los bloques de vídeo dentro de un fragmento de vídeo que se va a codificar. El fragmento se puede dividir en múltiples bloques de vídeo (y, posiblemente, en conjuntos de bloques de vídeo denominados mosaicos). La unidad de procesamiento de predicción 41 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intracodificación, o uno de una pluralidad de modos de intercodificación, para el bloque de vídeo actual en base a resultados de error (por ejemplo, la velocidad de codificación y el nivel de distorsión). La unidad de procesamiento de predicción 41 puede proporcionar el bloque intra o intercodificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso como imagen de referencia.
[0087] La unidad de procesamiento de intrapredicción 46, dentro de la unidad de procesamiento de predicción 41, puede realizar la codificación intrapredictiva del bloque de vídeo actual en relación con uno o más bloques vecinos en la misma trama o fragmento que el bloque actual que se va a codificar para proporcionar compresión espacial. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad de procesamiento de predicción 41 realizan la codificación interpredictiva del bloque de vídeo actual en relación con uno o más bloques predictivos en una o más imágenes de referencia para proporcionar compresión temporal.
[0088] La unidad de estimación de movimiento 42 se puede configurar para determinar el modo de interpredicción para un fragmento de vídeo de acuerdo con un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar fragmentos de vídeo en la secuencia como fragmentos P o fragmentos B. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado para propósitos conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual en relación con un bloque predictivo dentro de una imagen de referencia.
[0089] Un bloque predictivo es un bloque que se encuentra que coincide estrechamente con la PU del bloque de vídeo que se va a codificar en términos de diferencia de píxel, que se puede determinar por una suma de diferencia absoluta (SAD), una suma de diferencia al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxeles fraccionarios de las imágenes de referencia almacenadas en el DPB 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento en relación con las posiciones de píxel completo y a las posiciones de píxel fraccionario, y emitir un vector de movimiento con una precisión de píxel fraccionario.
[0090] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de
vídeo en un fragmento intercodificado, comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar de una primera lista de imágenes de referencia (lista 0) o una segunda lista de imágenes de referencia (lista 1), cada una de las que identifica una o más imágenes de referencia almacenadas en el DPB 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
[0091] La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado por la estimación de movimiento, realizando posiblemente interpolaciones con una precisión de subpíxel. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El codificador de vídeo 20 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se esté codificando, formando valores de diferencia de píxel. Los valores de diferencia de píxel forman datos residuales para el bloque, y pueden incluir componentes de diferencia tanto de luma como de croma. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de compensación de movimiento 44 también puede generar elementos de sintaxis asociados con los bloques de vídeo y el fragmento de vídeo para su uso por el descodificador de vídeo 30 en la descodificación de los bloques de vídeo del fragmento de vídeo.
[0092] La unidad de procesamiento de intrapredicción 46 puede intrapredecir un bloque actual, como una alternativa a la interpredicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se describe anteriormente. En particular, la unidad de procesamiento de intrapredicción 46 puede determinar un modo de intrapredicción para usar para codificar un bloque actual. En algunos ejemplos, la unidad de procesamiento de intrapredicción 46 puede codificar un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pases de codificación separados, y la unidad de procesamiento de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo apropiado de intrapredicción para usar a partir de los modos sometidos a prueba. Por ejemplo, la unidad de procesamiento de intrapredicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción sometidos a prueba, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidad-distorsión entre los modos modelos sometidos a prueba. El análisis de velocidad-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que se codificó para producir el bloque codificado, así como una velocidad de transferencia de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de procesamiento de intrapredicción 46 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intrapredicción presenta el mejor valor de velocidad-distorsión para el bloque.
[0093] En cualquier caso, después de seleccionar un modo de intrapredicción para un bloque, la unidad de procesamiento de intrapredicción 46 puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información indicando el modo de intrapredicción seleccionado de acuerdo con las técnicas de la presente divulgación. El codificador de vídeo 20 puede incluir, en el flujo de bits transmitido, datos de configuración, que pueden incluir una pluralidad de tablas de índices de modo de intrapredicción y una pluralidad de tablas de índices de modo de intrapredicción modificadas (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índices del modo de intrapredicción y una tabla de índices del modo de intrapredicción modificada para su uso para cada uno de los contextos.
[0094] Después de que la unidad de procesamiento de predicción 41 genera el bloque predictivo para el bloque de vídeo actual, por medio de interpredicción o bien intrapredicción, el codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo al bloque de vídeo actual. Los datos de vídeo residuales en el bloque residual se pueden incluir en una o más TU y aplicarse a la unidad de procesamiento de transformada 52. La unidad de procesamiento de transformada 52 transforma los datos de vídeo residuales en coeficientes de transformada residuales usando una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar. La unidad de procesamiento de transformada 52 puede convertir los datos de vídeo residuales de un dominio de píxel en un dominio de transformada, tal como un dominio de frecuencia.
[0095] La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir adicionalmente la velocidad de transferencia de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos, o con la totalidad, de los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede realizar a continuación una exploración de la matriz que incluye los coeficientes de transformada cuantificados. De forma alternativa, la unidad de codificación por entropía 56 puede realizar la exploración.
[0096] Seguidamente a la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar una codificación de longitud variable adaptativa al contexto (CAVLC), una codificación aritmética binaria adaptativa al contexto (CABAC), una codificación aritmética binaria adaptativa al contexto basada en la sintaxis (SBAC), una codificación por entropía por división de intervalos de probabilidad (PIPE) u otra metodología o técnica de codificación por entropía. Seguidamente a la codificación por entropía por la unidad de codificación por entropía 56, el flujo de bits codificado se puede transmitir al descodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación por el descodificador de vídeo 30. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los otros elementos de sintaxis para el fragmento de vídeo actual que se esté codificando.
[0097] La unidad de cuantificación inversa 58 y la unidad de procesamiento de transformada inversa 60 aplican una cuantificación inversa y una transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel para su uso posterior como bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles fraccionarios, para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento producido por la unidad de compensación de movimiento 44 para producir un bloque de referencia para su almacenamiento en el DPB 64. El bloque de referencia se puede usar por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como bloque de referencia para interpredecir un bloque en una trama o imagen de vídeo posterior.
[0098] De acuerdo con aspectos de la presente divulgación, el codificador de vídeo 20 se puede configurar para determinar que un mensaje de información de mejora complementaria (SEI) se aplica a más de una capa de los datos de vídeo multicapa y determinar que el mensaje de SEI hace referencia a un elemento de sintaxis que tiene múltiples instancias asociadas con las más de una capa de los datos de vídeo multicapa. En dichos casos, el codificador de vídeo 20 puede establecer la totalidad de las múltiples instancias en un mismo valor.
[0099] De acuerdo con aspectos de la presente divulgación, el codificador de vídeo 20 también se puede configurar para generar una primera unidad de NAL de VCL para una primera imagen de una unidad de acceso. La primera unidad de NAL de VCL incluye un primer tipo de fragmento. El codificador de vídeo 20 puede generar una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso. La segunda unidad de NAL de VCL incluye un segundo tipo de fragmento. El codificador de vídeo 20 puede generar una unidad de NAL de AUD en base al primer y segundo tipos de fragmento.
[0100] La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo 30 de ejemplo que puede implementar las técnicas descritas en la presente divulgación. La FIG. 3 se proporciona con propósitos explicativos y no se limita a las técnicas como se ejemplifica y describe ampliamente en la presente divulgación. Con propósitos explicativos, la presente divulgación describe un descodificador de vídeo 30 en el contexto de la codificación HEVC. Sin embargo, las técnicas de la presente divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0101] En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una unidad de descodificación por entropía 80, una unidad de procesamiento de predicción 81, una unidad de cuantificación inversa 86, una unidad de procesamiento de transformada inversa 88, un sumador 90, una unidad de filtro 91 y una memoria de imágenes de referencia 92. La unidad de procesamiento de predicción 81 incluye la unidad de compensación de movimiento 82 y la unidad de procesamiento de intrapredicción 84. En algunos ejemplos, el descodificador de vídeo 30 puede realizar un pase de descodificación, en general, recíproco al pase de codificación descrito con respecto al codificador de vídeo 20 de la FIG. 2.
[0102] Durante el procedimiento de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un fragmento de vídeo codificado y elementos de sintaxis asociados, desde el codificador de vídeo 20. El descodificador de vídeo 30 puede recibir el flujo de bits de vídeo codificado desde una entidad de red 78. La entidad de red 78 puede ser, por ejemplo, un servidor, un MANE, un editor/empalmador de vídeo u otro dispositivo de este tipo configurado para implementar una o más de las técnicas descritas anteriormente. La entidad de red 78 puede incluir o no un codificador de vídeo, tal como el codificador de vídeo 20. Algunas de las técnicas descritas en la presente divulgación se pueden implementar por la entidad de red 78 antes de que la entidad de red 78 transmita el flujo de bits de vídeo codificado al descodificador de vídeo 30. En algunos sistemas de descodificación de vídeo, la entidad de red 78 y el descodificador de vídeo 30 pueden ser partes de dispositivos separados, mientras que, en otros casos, la funcionalidad descrita con respecto a la entidad de red 78 se puede realizar por el mismo dispositivo que comprende el descodificador de vídeo 30.
[0103] Durante el procedimiento de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo
codificado que representa bloques de vídeo de un fragmento de vídeo codificado y elementos de sintaxis asociados, desde el codificador de vídeo 20. El descodificador de vídeo 30 almacena el flujo de bits de vídeo codificado recibido en la memoria de datos de vídeo 79. La memoria de datos de vídeo 79 puede almacenar los datos de vídeo, tales como un flujo de bits de vídeo codificado, que se van a descodificar por los componentes del descodificador de vídeo 30. Los datos de vídeo almacenados en la memoria de datos de vídeo 79 se pueden obtener, por ejemplo, por medio del enlace 16, de un dispositivo de almacenamiento 26 o de una fuente de vídeo local, tal como una cámara, o accediendo a medios físicos de almacenamiento de datos. La memoria de datos de vídeo 79 puede formar un búfer de imágenes codificadas (CPB) que almacena datos de vídeo codificados a partir de un flujo de bits de vídeo codificado. El DPB 94 puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para su uso en la descodificación de datos de vídeo por el descodificador de vídeo 30, por ejemplo, en modos de intra o intercodificación. La memoria de datos de vídeo 79 y el DPB 94 pueden estar formados por cualquiera de una variedad de dispositivos de memoria, tales como DRAM, SDRAM, MRAM, RRAM u otros tipos de dispositivos de memoria. La memoria de datos de vídeo 79 y el DPB 94 se pueden proporcionar por el mismo dispositivo de memoria o por dispositivos de memoria separados. En diversos ejemplos, la memoria de datos de vídeo 79 puede estar en un chip con otros componentes del descodificador de vídeo 30, o fuera del chip en relación con esos componentes.
[0104] La unidad de descodificación por entropía 80 del descodificador de vídeo 30 descodifica por entropía los datos de vídeo almacenados en la memoria de datos de vídeo 79 para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de descodificación por entropía 80 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de procesamiento de predicción 81. El descodificador de vídeo 30 puede recibir los elementos de sintaxis a nivel de fragmento de vídeo y/o a nivel de bloque de vídeo.
[0105] Cuando el fragmento de vídeo se codifica como un fragmento intracodificado (I), la unidad de procesamiento de intrapredicción 84 de la unidad de procesamiento de predicción 81 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual en base a un modo de intrapredicción señalado y datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un fragmento intercodificado (es decir, B o P), la unidad de compensación de movimiento 82 de la unidad de procesamiento de predicción 81 produce bloques predictivos para un bloque de vídeo del fragmento de vídeo actual en base a los vectores de movimiento y otros elementos de sintaxis recibidos desde la unidad de descodificación por entropía 80. Los bloques predictivos se pueden producir a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador de vídeo 30 puede construir las listas de tramas de referencia, lista 0 y lista 1, usando técnicas de construcción por defecto en base a imágenes de referencia almacenadas en la memoria de imágenes de referencia 92.
[0106] La unidad de compensación de movimiento 82 determina la información de predicción para un bloque de vídeo del fragmento de vídeo actual analizando sintácticamente los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se está descodificando. Por ejemplo, la unidad de compensación de movimiento 82 usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) usado para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, fragmento B o fragmento P), información de construcción para una o más de las listas de imágenes de referencia para el fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del fragmento, el estado de interpredicción para cada bloque de vídeo intercodificado del fragmento y otra información para descodificar los bloques de vídeo en el fragmento de vídeo actual.
[0107] La unidad de compensación de movimiento 82 también puede realizar la interpolación en base a filtros de interpolación. La unidad de compensación de movimiento 82 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular los valores interpolados para píxeles fraccionarios de los bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
[0108] La unidad de cuantificación inversa 86 cuantifica inversamente, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 80. El procedimiento de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de vídeo 20 para cada bloque de vídeo en el fragmento de vídeo para determinar un grado de cuantificación y, del mismo modo, un grado de cuantificación inversa que se debe aplicar. La unidad de procesamiento de transformada inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa o un procedimiento de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxel.
[0109] Después de que la unidad de compensación de movimiento 82 genera el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y a otros elementos de sintaxis, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales procedentes de la unidad de procesamiento de transformada inversa 88 a los correspondientes bloques predictivos generados por la unidad de
compensación de movimiento 82. El sumador 90 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se pueden usar filtros de bucle (en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad de vídeo.
[0110] La unidad de filtro 91 pretende representar uno o más filtros de bucle tales como un filtro de eliminación de bloques, un filtro de bucle adaptativo (ALF) y un filtro de desviación adaptativa de muestras (SAO). Aunque la unidad de filtro 91 se muestra en la FIG. 3 como un filtro de bucle, en otras configuraciones la unidad de filtro 91 se puede implementar como un filtro posbucle. Los bloques de vídeo descodificados en una trama o imagen dada se almacenan a continuación en la memoria de imágenes de referencia 92, que almacena imágenes de referencia usadas para una compensación de movimiento posterior. La memoria de imágenes de referencia 92 también almacena vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 31 de la FIG. 1.
[0111] De acuerdo con aspectos de la presente divulgación, el descodificador de vídeo 30 se puede configurar para recibir datos de vídeo codificados que comprenden una pluralidad de capas que incluye una no INBL) y una INBL. El descodificador de vídeo 30 puede recibir VPS asociado con los datos de vídeo codificados que incluye primeros parámetros de formato de representación y recibir un SPS asociado con la INBL que incluye segundos parámetros de formato de representación. El descodificador de vídeo 30 puede descodificar la no INBL en base a los primeros parámetros de formato de representación; y descodificar la INBL en base a los segundos parámetros de formato de representación.
[0112] La FIG. 4 es un diagrama de bloques que ilustra un conjunto de dispositivos de ejemplo que forman parte de la red 120. En este ejemplo, la red 120 incluye los dispositivos de encaminamiento 124A, 124B (dispositivos de encaminamiento 124) y el dispositivo de transcodificación 126. Los dispositivos de encaminamiento 124 y el dispositivo de transcodificación 126 están concebidos para representar un pequeño número de dispositivos que pueden formar parte de la red 120. Otros dispositivos de red, tales como conmutadores, concentradores, pasarelas, cortafuegos, puentes y otros dispositivos de este tipo también pueden estar incluidos dentro de la red 120. Además, se pueden proporcionar dispositivos de red adicionales a lo largo de un trayecto de red entre un dispositivo servidor 122 y un dispositivo cliente 128. El dispositivo servidor 122 puede corresponder al dispositivo de origen 12 (FIG.
1), mientras que el dispositivo cliente 128 puede corresponder al dispositivo de destino 14 (FIG. 1), en algunos ejemplos.
[0113] En general, los dispositivos de encaminamiento 124 implementan uno o más protocolos de encaminamiento para intercambiar datos de red a través de la red 120. En algunos ejemplos, los dispositivos de encaminamiento 124 se pueden configurar para realizar operaciones de proxy o de caché. Por lo tanto, en algunos ejemplos, los dispositivos de encaminamiento 124 se pueden denominar dispositivos proxy. En general, los dispositivos de encaminamiento 124 ejecutan protocolos de encaminamiento para descubrir rutas a través de la red 120. Al ejecutar dichos protocolos de encaminamiento, un dispositivo de encaminamiento 124B puede descubrir una ruta de red desde sí mismo hasta el dispositivo servidor 122 por medio del dispositivo de encaminamiento 124A. Uno o más de los dispositivos de encaminamiento 124 pueden comprender un MANE que usa uno o más aspectos de la presente divulgación.
[0114] Por ejemplo, el MANE se puede configurar para recibir datos de vídeo codificados que incluyen una pluralidad de capas que incluyen una no INBL y una INBL. El MANE puede recibir un VPS asociado con los datos de vídeo codificados que incluyen primeros parámetros de formato de representación. El MANE puede recibir un SPS asociado con la INBL que incluye segundos parámetros de formato de representación. El MANE puede procesar la no INBL en base a los primeros parámetros de formato de representación y procesar la INBL en base a los segundos parámetros de formato de representación. Como parte del procesamiento de la INBL en base a los segundos parámetros de formato de representación que comprende, el MANE puede reescribir la INBL para que sea una capa base en base a los segundos parámetros de formato de representación. Como parte del proceso de reescritura, el MANE transcodifica (o transforma) la INBL en una capa base que es, por ejemplo, compatible con HEVC versión 1. El MANE recibe la INBL como entrada y transmite la salida a un descodificador de HEVC versión 1.
[0115] Las técnicas de la presente divulgación se pueden implementar por dispositivos de red tales como los dispositivos de encaminamiento 124 y el dispositivo de transcodificación 126, pero también se pueden implementar por el dispositivo cliente 128. De esta manera, los dispositivos de encaminamiento 124, el dispositivo de transcodificación 126 y el dispositivo cliente 128 representan ejemplos de dispositivos configurados para realizar las técnicas de la presente divulgación. Además, los dispositivos de la FIG. 1 y el codificador 20 ilustrado en la FIG. 2 y el descodificador de vídeo 30 ilustrado en la FIG. 3 también son dispositivos ejemplares que se pueden configurar para realizar las técnicas de la presente divulgación.
[0116] La FIG. 5 es un diagrama de flujo que muestra un procedimiento de procesamiento de datos de vídeo multicapa de acuerdo con las técnicas de la presente divulgación. Las técnicas de la FIG. 5 se describirán con respecto a un dispositivo de procesamiento de vídeo genérico. El dispositivo de procesamiento de vídeo puede corresponder, por ejemplo, a un dispositivo de procesamiento de vídeo tal como la entidad de posprocesamiento
27, la entidad de red 78, el descodificador de vídeo 30, los dispositivos de encaminamiento 124 o el dispositivo de transcodificación 126. El dispositivo de procesamiento de vídeo recibe datos de vídeo codificados que incluyen una no INBL y una INBL (140). Los dispositivos de procesamiento de vídeo reciben, para los datos de vídeo codificados, un VPS que incluye primeros parámetros de formato de representación (142). Los dispositivos de procesamiento de vídeo reciben un SPS asociado con la INBL que incluye segundos parámetros de formato de representación (144). El dispositivo de procesamiento de vídeo procesa la no INBL en base a los primeros parámetros de formato de representación (146) y procesa la INBL en base a los segundos parámetros de formato de representación (148). Al menos un valor de un parámetro de formato de representación de los primeros parámetros de formato de representación puede ser diferente de al menos un valor de un parámetro de formato de representación de los segundos parámetros de formato de representación.
[0117] Si el dispositivo de procesamiento de vídeo es un MANE, el dispositivo de procesamiento de vídeo puede procesar la INBL en base a los segundos parámetros de formato de representación reescribiendo la INBL para que sea una capa base en base a los segundos parámetros de formato de representación. La INBL puede tener una identificación de capa (por ejemplo, id de capa nuh) mayor que cero, y como parte de la reescritura de la INBL, el dispositivo de procesamiento de vídeo puede establecer una identificación de capa de la INBL en 0, creando, por tanto, una capa base con una identificación de capa igual a 0. La capa base reescrita a partir de la INBL puede ser descodificable por un descodificador de HEVC versión 1 que no admite vídeo multicapa.
[0118] Si el dispositivo de procesamiento de vídeo es un descodificador de vídeo, el dispositivo de procesamiento de vídeo puede procesar la INBL en base a los segundos parámetros de formato de representación descodificando la INBL. Después de descodificar la INBL, el descodificador de vídeo puede emitir o visualizar vídeo descodificado en base a la INBL y la no INBL.
[0119] La FIG. 6 es un diagrama de flujo que muestra un procedimiento de codificación de datos de vídeo multicapa de acuerdo con las técnicas de la presente divulgación. Las técnicas de la FIG. 6 se describirán con respecto al codificador de vídeo 20. El codificador de vídeo 20 determina que un mensaje de SEI se aplica a más de una capa de los datos de vídeo multicapa (150). El codificador de vídeo 20 determina que el mensaje de SEI hace referencia a un elemento de sintaxis que tiene múltiples instancias asociadas con las más de una capa de los datos de vídeo multicapa (152). En respuesta al mensaje de SEI que hace referencia a un elemento de sintaxis que tiene múltiples instancias asociadas con las más de una capa de los datos de vídeo multicapa, el codificador de vídeo 20 establece la totalidad de las múltiples instancias en un mismo valor (154). Las múltiples instancias del elemento de sintaxis pueden incluir una primera instancia del elemento de sintaxis en un primer conjunto de parámetros de secuencia asociado con una primera capa de los datos de vídeo multicapa y una segunda instancia del elemento de sintaxis en un segundo conjunto de parámetros de secuencia asociado con una segunda capa de los datos de vídeo multicapa. El elemento de sintaxis puede ser cualquiera de un elemento de sintaxis field_seq_flag, un elemento de sintaxis general_progressive_source_flag o un elemento de sintaxis general_interlaced_source_flag.
[0120] La FIG. 7 es un diagrama de flujo que muestra un procedimiento de codificación de datos de vídeo multicapa de acuerdo con las técnicas de la presente divulgación. Las técnicas de la FIG. 7 se describirán con respecto al codificador de vídeo 20. El codificador de vídeo 20 genera una primera unidad de NAL de VCL para una primera imagen de una unidad de acceso (160). La primera unidad de NAL de VCL incluye un primer tipo de fragmento. El codificador de vídeo 20 genera una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso (162). La segunda unidad de NAL de VCL incluye un segundo tipo de fragmento. El codificador de vídeo 20 genera una unidad de NAL de AUD en base al primer y segundo tipos de fragmento (164).
[0121] El codificador de vídeo 20 puede generar la unidad de NAL de AUD indicando en la unidad de NAL de AUD un elemento de sintaxis de tipo de imagen que indica que la unidad de acceso incluye tanto el primer tipo de fragmento como el segundo tipo de fragmento. La primera unidad de NAL de AUD se puede usar para identificar un límite entre la unidad de acceso y una unidad de acceso precedente. La unidad de NAL de AUD se puede usar adicionalmente o de forma alternativa para indicar un tipo de imagen para todas las imágenes en la unidad de acceso. El primer tipo de fragmento y el segundo tipo de fragmento se pueden seleccionar del grupo que consiste en un fragmento I, un fragmento P y un fragmento B, o el primer tipo de fragmento y el segundo tipo de fragmento se pueden seleccionar del grupo que consiste en un fragmento I y un fragmento P.
[0122] La FIG. 8 es un diagrama de flujo que muestra un procedimiento de codificación de datos de vídeo multicapa de acuerdo con las técnicas de la presente divulgación. Las técnicas de la FIG. 8 se describirán con respecto al descodificador de vídeo 30. El descodificador de vídeo 30 recibe una primera unidad de NAL de AUD para una primera unidad de acceso (170). Un identificador de capa para la primera unidad de NAL de AUD es igual a cero. El descodificador de vídeo 30 recibe una segunda unidad de NAL de AUD para la primera unidad de acceso (172). Un identificador de capa para la segunda unidad de NAL de AUD es mayor que cero. El descodificador de vídeo 30 descodifica la primera unidad de acceso (174).
[0123] La segunda unidad de NAL de AUD en la primera unidad de acceso puede seguir, en orden de descodificación, la primera unidad de NAL de AUD y al menos una unidad de NAL de la capa de codificación de
vídeo (VCL) en la primera unidad de acceso. La primera unidad de NAL de AUD puede ser una primera unidad de NAL, en orden de descodificación, en la primera unidad de acceso. La primera unidad de NAL de AUD puede identificar un límite entre la primera unidad de acceso y una unidad de acceso precedente. En algunos ejemplos, ninguna otra unidad de NAL de AUD en la primera unidad de acceso distinta de la primera unidad de NAL de AUD puede tener un identificador de capa igual a cero.
[0124] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o en cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en o transmitir sobre un medio legible por ordenador como una o más instrucciones o código, y ejecutarse por una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que correspondan a un medio tangible tal como medios de almacenamiento de datos, o medios de comunicación incluyendo cualquier medio que facilite la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles legibles por ordenador que sean no transitorios o a (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder por uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en la presente divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0125] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda usar para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder por un ordenador. Además, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se debe entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en cambio, se refieren a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde unos discos reproducen normalmente los datos de forma magnética, mientras que otros discos reproducen los datos de forma óptica con láseres. Las combinaciones de lo anterior también se deben incluir dentro del alcance de los medios legibles por ordenador.
[0126] Las instrucciones se pueden ejecutar por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de hardware y/o de software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0127] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización por diferentes unidades de hardware. En cambio, como se describe anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar por un grupo de unidades de hardware interoperativas, que incluya uno o más procesadores como se describe anteriormente, junto con software y/o firmware adecuados.
Claims (13)
1. Un procedimiento de codificación de datos de vídeo de codificación de vídeo de alta eficacia, HEVC, multicapa, comprendiendo el procedimiento:
generar (160) una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento;
generar (162) una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y
generar (164) una unidad de NAL de delimitador de unidad de acceso (AUD) para la unidad de acceso, caracterizado por que generar (164) la unidad de NAL de AUD se basa en el primer y segundo tipos de fragmento, en el que un elemento de sintaxis de tipo de imagen de la unidad de NAL de AUD indica un tipo de imagen para todas las imágenes en la unidad de acceso, en el que el tipo de imagen tiene un conjunto asociado de tipos de fragmento que comprende el primer tipo de fragmento y el segundo tipo de fragmento.
2. El procedimiento de la reivindicación 1, en el que el primer tipo de fragmento y los segundos tipos de fragmento se seleccionan del grupo que consiste en un fragmento I, un fragmento P y un fragmento B.
3. El procedimiento de la reivindicación 1, en el que el primer tipo de fragmento y el segundo tipo de fragmento se seleccionan del grupo que consiste en un fragmento I y un fragmento P.
4. El procedimiento de la reivindicación 1, en el que la primera unidad de NAL de AUD identifica un límite entre la unidad de acceso y una unidad de acceso precedente.
5. Un dispositivo para procesar datos de vídeo de codificación de vídeo de alta eficacia, HEVC, multicapa, comprendiendo el dispositivo:
una memoria configurada para almacenar al menos una parte de un flujo de bits de datos de vídeo multicapa; y
uno o más procesadores configurados para:
generar una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento;
generar una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y generar una unidad de NAL de delimitador de unidad de acceso (AUD) para la unidad de acceso, caracterizada por que generar la unidad de NAL de AUD se basa en el primer y segundo tipos de fragmento, en el que un elemento de sintaxis de tipo de imagen de la unidad de NAL de AUD indica un tipo de imagen para todas las imágenes en la unidad de acceso, en el que el tipo de imagen tiene un conjunto asociado de tipos de fragmento que comprende el primer tipo de fragmento y el segundo tipo de fragmento
6. El dispositivo de la reivindicación 5, en el que el primer tipo de fragmento y el segundo tipo de fragmento se seleccionan del grupo que consiste en un fragmento I, un fragmento P y un fragmento B.
7. El dispositivo de la reivindicación 5, en el que el primer tipo de fragmento y el segundo tipo de fragmento se seleccionan del grupo que consiste en un segmento I y un segmento P o en el que la primera unidad de NAL de AUD identifica un límite entre la unidad de acceso y una unidad de acceso precedente.
8. El dispositivo de la reivindicación 7, en el que el dispositivo es un dispositivo de comunicación inalámbrica, que comprende además; un transmisor configurado para transmitir los datos de vídeo multicapa.
9. El dispositivo de la reivindicación 8, en el que el dispositivo de comunicación inalámbrica comprende un teléfono móvil, y en el que el transmisor se configura para transmitir los datos de vídeo multicapa como datos modulados de acuerdo con una norma de comunicación celular.
10. Un medio de almacenamiento legible por ordenador que almacena instrucciones para codificar datos de vídeo de codificación de vídeo de alta eficacia, HEVC, multicapa que, cuando se ejecutan por uno o más
procesadores, hacen que los uno o más procesadores:
generen una primera unidad de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) para una primera imagen de una unidad de acceso, comprendiendo la primera unidad de NAL de VCL un primer tipo de fragmento;
generen una segunda unidad de NAL de VCL para una segunda imagen de la unidad de acceso, comprendiendo la segunda unidad de NAL de VCL un segundo tipo de fragmento; y
generen una unidad de NAL de delimitador de unidad de acceso (AUD) para la unidad de acceso, caracterizado por que generar la unidad de NAL de AUD se basa en el primer y segundo tipos de fragmento, en el que un elemento de sintaxis de tipo de imagen de la unidad de NAL de AUD indica un tipo de imagen para todas las imágenes en la unidad de acceso, en el que el tipo de imagen tiene un conjunto asociado de tipos de fragmento que comprende el primer tipo de fragmento y el segundo tipo de fragmento.
11. El medio de almacenamiento legible por ordenador de la reivindicación 10, en el que el primer tipo de fragmento y el segundo tipo de fragmento se seleccionan del grupo que consiste en un segmento I, un segmento P y un segmento B.
12. El medio de almacenamiento legible por ordenador de la reivindicación 10, en el que el primer tipo de fragmento y el segundo tipo de fragmento se seleccionan del grupo que consiste en un fragmento I y un fragmento P.
13. El medio de almacenamiento legible por ordenador de la reivindicación 10, en el que la primera unidad de NAL de AUD identifica un límite entre la unidad de acceso y una unidad de acceso precedente.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462017120P | 2014-06-25 | 2014-06-25 | |
US14/749,544 US9819945B2 (en) | 2014-06-25 | 2015-06-24 | Multi-layer video coding |
PCT/US2015/037787 WO2015200694A1 (en) | 2014-06-25 | 2015-06-25 | Multi-layer video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2839148T3 true ES2839148T3 (es) | 2021-07-05 |
Family
ID=54931997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES15734798T Active ES2839148T3 (es) | 2014-06-25 | 2015-06-25 | Codificación de vídeo multicapa |
Country Status (9)
Country | Link |
---|---|
US (4) | US9819945B2 (es) |
EP (4) | EP3162070A1 (es) |
JP (4) | JP2017525252A (es) |
KR (4) | KR102388861B1 (es) |
CN (4) | CN106537922B (es) |
BR (1) | BR112016030044B1 (es) |
CA (4) | CA2951499C (es) |
ES (1) | ES2839148T3 (es) |
WO (4) | WO2015200694A1 (es) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9819945B2 (en) | 2014-06-25 | 2017-11-14 | Qualcomm Incorporated | Multi-layer video coding |
WO2016027375A1 (ja) | 2014-08-22 | 2016-02-25 | パイオニア株式会社 | ダンパ及びスピーカ装置 |
KR102264028B1 (ko) | 2016-08-25 | 2021-06-11 | 엘지전자 주식회사 | 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치 |
CN110506421B (zh) * | 2017-03-20 | 2023-11-07 | 夏普株式会社 | 用于以媒体应用程序格式发信号通知可伸缩视频的***和方法 |
US11532128B2 (en) * | 2017-03-23 | 2022-12-20 | Qualcomm Incorporated | Advanced signaling of regions of interest in omnidirectional visual media |
CN107360433B (zh) * | 2017-07-20 | 2020-06-19 | 北京奇艺世纪科技有限公司 | 一种帧间预测编码方法和装置 |
CN110933440B (zh) | 2018-09-19 | 2023-08-29 | 北京字节跳动网络技术有限公司 | 用于视频处理的方法、装置和非暂时性计算机可读介质 |
AU2020234972A1 (en) * | 2019-03-11 | 2021-09-30 | Vid Scale, Inc. | Sub-picture bitstream extraction and reposition |
US11166033B2 (en) * | 2019-06-06 | 2021-11-02 | Qualcomm Incorporated | Adaptation parameter set in access unit in video coding |
US11825121B2 (en) | 2019-09-23 | 2023-11-21 | Tencent America LLC | Method for access unit delimiter signaling |
EP4026338A4 (en) * | 2019-09-24 | 2022-11-02 | Huawei Technologies Co., Ltd. | ERROR MITIGATION FOR SUB-LAYERS IN VIDEO CODING |
WO2021130054A1 (en) * | 2019-12-26 | 2021-07-01 | Nokia Technologies Oy | Method, apparatus, and computer program product for gradual decoding refresh for video encoding and decoding |
US11706428B2 (en) * | 2020-04-06 | 2023-07-18 | Tencent America LLC | Method for signaling picture header in coded video stream |
WO2021257529A1 (en) * | 2020-06-17 | 2021-12-23 | Bytedance Inc. | Decoded picture buffer management and subpictures in video coding |
EP3972273A1 (en) | 2020-09-17 | 2022-03-23 | Lemon Inc. | Handling of non-vcl nal units in picture unit construction |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0937258A2 (en) | 1996-10-29 | 1999-08-25 | Fred Hutchinson Cancer Research Center, Inc. | Cell stress regulated human mhc class i gene |
EP2182521A1 (en) | 2004-04-28 | 2010-05-05 | Panasonic Corporation | Moving picture stream generation apparatus, moving picture coding apparatus, moving picture multiplexing apparatus and moving picture decoding apparatus |
US7852353B1 (en) | 2005-03-31 | 2010-12-14 | Apple Inc. | Encoding a transparency (alpha) channel in a video bitstream |
EP1902368B1 (en) | 2005-07-12 | 2015-10-14 | International Business Machines Corporation | Method and system for reconfiguring functional capabilities in a data processing system with dormant resources |
EP1928184B1 (en) * | 2005-09-20 | 2017-09-27 | Mitsubishi Electric Corporation | Image encoding apparatus, image encoding method |
EP1949701A1 (en) * | 2005-10-11 | 2008-07-30 | Nokia Corporation | Efficient decoded picture buffer management for scalable video coding |
KR100889745B1 (ko) * | 2006-01-09 | 2009-03-24 | 한국전자통신연구원 | 날 유닛 타입 표시방법 및 그에 따른 비트스트림 전달장치및 리던던트 슬라이스 부호화 장치 |
US8767836B2 (en) | 2006-03-27 | 2014-07-01 | Nokia Corporation | Picture delimiter in scalable video coding |
US20070230564A1 (en) * | 2006-03-29 | 2007-10-04 | Qualcomm Incorporated | Video processing with scalability |
JP4947389B2 (ja) * | 2009-04-03 | 2012-06-06 | ソニー株式会社 | 画像信号復号装置、画像信号復号方法、および画像信号符号化方法 |
CN101924944B (zh) * | 2009-06-15 | 2013-06-05 | 华为技术有限公司 | 可伸缩视频编码操作点选择方法、信息提供方法及设备 |
EP3145189B1 (en) * | 2010-01-06 | 2019-06-19 | Dolby Laboratories Licensing Corporation | Complexity-adaptive scalable decoding and streaming for multi-layered video systems |
JP2012114575A (ja) * | 2010-11-22 | 2012-06-14 | Sony Corp | 画像データ送信装置、画像データ送信方法、画像データ受信装置および画像データ受信方法 |
US9215473B2 (en) * | 2011-01-26 | 2015-12-15 | Qualcomm Incorporated | Sub-slices in video coding |
US9338476B2 (en) * | 2011-05-12 | 2016-05-10 | Qualcomm Incorporated | Filtering blockiness artifacts for video coding |
US9967583B2 (en) * | 2012-07-10 | 2018-05-08 | Qualcomm Incorporated | Coding timing information for video coding |
WO2014052292A1 (en) | 2012-09-27 | 2014-04-03 | Dolby Laboratories Licensing Corporation | Inter-layer reference picture processing for coding standard scalability |
US9479782B2 (en) | 2012-09-28 | 2016-10-25 | Qualcomm Incorporated | Supplemental enhancement information message coding |
US9479779B2 (en) * | 2012-10-01 | 2016-10-25 | Qualcomm Incorporated | Sub-bitstream extraction for multiview, three-dimensional (3D) and scalable media bitstreams |
CN104704835B (zh) * | 2012-10-03 | 2017-11-24 | 联发科技股份有限公司 | 视频编码中运动信息管理的装置与方法 |
CN109982078B (zh) | 2012-12-14 | 2023-03-28 | Lg 电子株式会社 | 编码视频的方法、解码视频的方法以及使用其的装置 |
US20140218473A1 (en) * | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
US20150358633A1 (en) | 2013-01-17 | 2015-12-10 | Samsung Electronics Co., Ltd. | Method for encoding video for decoder setting and device therefor, and method for decoding video on basis of decoder setting and device therefor |
CN105284115B (zh) | 2013-04-05 | 2018-11-23 | 三星电子株式会社 | 用于对多层视频进行解码的方法和设备以及用于对多层视频进行编码的方法和设备 |
WO2014163456A1 (ko) | 2013-04-05 | 2014-10-09 | 삼성전자 주식회사 | 멀티 레이어 비디오의 복호화 방법 및 장치, 멀티 레이어 비디오의 부호화 방법 및 장치 |
WO2014168890A1 (en) | 2013-04-08 | 2014-10-16 | General Instrument Corporation | Individual buffer management in video coding |
WO2015007753A1 (en) | 2013-07-15 | 2015-01-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Network device and error handling |
CN105612745A (zh) * | 2013-10-08 | 2016-05-25 | 夏普株式会社 | 图像解码装置、图像编码装置以及编码数据 |
EP3055999A1 (en) | 2013-10-11 | 2016-08-17 | Telefonaktiebolaget LM Ericsson (publ) | Layer switching in video coding |
US20150103895A1 (en) | 2013-10-13 | 2015-04-16 | Sharp Laboratories Of America, Inc. | Electronic devices for signaling multiple initial buffering parameters |
CN104754347B (zh) | 2013-12-26 | 2019-05-17 | 中兴通讯股份有限公司 | 视频图像序号的编码、解码方法及装置、电子设备 |
CN104754358B (zh) | 2013-12-27 | 2019-02-19 | 中兴通讯股份有限公司 | 码流的生成和处理方法、装置及*** |
CN105874804A (zh) | 2014-01-02 | 2016-08-17 | Vid拓展公司 | 针对hevc扩展的子比特流提取过程 |
US9819945B2 (en) | 2014-06-25 | 2017-11-14 | Qualcomm Incorporated | Multi-layer video coding |
-
2015
- 2015-06-24 US US14/749,544 patent/US9819945B2/en active Active
- 2015-06-24 US US14/749,534 patent/US9729887B2/en active Active
- 2015-06-24 US US14/749,561 patent/US9838697B2/en active Active
- 2015-06-24 US US14/749,526 patent/US10244242B2/en active Active
- 2015-06-25 ES ES15734798T patent/ES2839148T3/es active Active
- 2015-06-25 CN CN201580033254.6A patent/CN106537922B/zh active Active
- 2015-06-25 JP JP2016575159A patent/JP2017525252A/ja active Pending
- 2015-06-25 CN CN201580033471.5A patent/CN106464924B/zh active Active
- 2015-06-25 WO PCT/US2015/037787 patent/WO2015200694A1/en active Application Filing
- 2015-06-25 KR KR1020167035760A patent/KR102388861B1/ko active IP Right Grant
- 2015-06-25 CA CA2951499A patent/CA2951499C/en active Active
- 2015-06-25 CN CN201580031821.4A patent/CN106537919B/zh active Active
- 2015-06-25 KR KR1020167035759A patent/KR102388860B1/ko active IP Right Grant
- 2015-06-25 JP JP2016575192A patent/JP6585096B2/ja active Active
- 2015-06-25 WO PCT/US2015/037788 patent/WO2015200695A1/en active Application Filing
- 2015-06-25 JP JP2016575160A patent/JP6542271B2/ja active Active
- 2015-06-25 KR KR1020167035757A patent/KR20170021794A/ko active IP Right Grant
- 2015-06-25 CA CA2952829A patent/CA2952829A1/en active Pending
- 2015-06-25 EP EP15734796.4A patent/EP3162070A1/en not_active Withdrawn
- 2015-06-25 EP EP15734799.8A patent/EP3162058A1/en not_active Ceased
- 2015-06-25 CA CA2952821A patent/CA2952821A1/en not_active Abandoned
- 2015-06-25 WO PCT/US2015/037757 patent/WO2015200676A1/en active Application Filing
- 2015-06-25 EP EP15734798.0A patent/EP3162057B1/en active Active
- 2015-06-25 KR KR1020167035758A patent/KR102388859B1/ko active IP Right Grant
- 2015-06-25 CA CA2952826A patent/CA2952826C/en active Active
- 2015-06-25 CN CN201580031854.9A patent/CN106576177A/zh active Pending
- 2015-06-25 JP JP2016575195A patent/JP6728074B2/ja active Active
- 2015-06-25 EP EP15734797.2A patent/EP3162071A1/en not_active Withdrawn
- 2015-06-25 WO PCT/US2015/037744 patent/WO2015200666A1/en active Application Filing
- 2015-06-25 BR BR112016030044-0A patent/BR112016030044B1/pt active IP Right Grant
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2839148T3 (es) | Codificación de vídeo multicapa | |
KR102353659B1 (ko) | 멀티계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용 | |
ES2765462T3 (es) | Diseños de formato de archivo de vídeo multicapa | |
US9807419B2 (en) | Recovery point SEI message in multi-layer video codecs | |
BR112016030194B1 (pt) | Codificação de vídeo de multi-camada |