ES2837853T3 - Codificación de datos de vídeo para un conjunto de capas de salida - Google Patents

Codificación de datos de vídeo para un conjunto de capas de salida Download PDF

Info

Publication number
ES2837853T3
ES2837853T3 ES14723949T ES14723949T ES2837853T3 ES 2837853 T3 ES2837853 T3 ES 2837853T3 ES 14723949 T ES14723949 T ES 14723949T ES 14723949 T ES14723949 T ES 14723949T ES 2837853 T3 ES2837853 T3 ES 2837853T3
Authority
ES
Spain
Prior art keywords
layer
video data
layers
vps
sps
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14723949T
Other languages
English (en)
Inventor
Ye-Kui Wang
Ying Chen
Adarsh Krishnan Ramasubramonian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2837853T3 publication Critical patent/ES2837853T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

Un procedimiento de descodificación de datos de vídeo multicapa, comprendiendo el procedimiento: recibir desde un flujo de bits de vídeo codificado, datos de vídeo multicapa que comprenden: un primer conjunto de capas de salida (802) incluido en un conjunto de capas de los datos de vídeo multicapa, donde el primer conjunto de capas de salida representa un subconjunto del conjunto de capas de modo que el primer conjunto de capas de salida está asociado a una primera lista de capas de salida objetivo extraídas del flujo de bits de vídeo codificado; un segundo conjunto de capas de salida (804) incluido en el conjunto de capas de los datos de vídeo multicapa, donde el segundo conjunto de capas de salida representa un subconjunto del conjunto de capas de modo que el segundo conjunto de capas de salida está asociado a una segunda lista de capas de salida objetivo extraídas del flujo de bits de vídeo codificado; un conjunto de parámetros de secuencia, SPS, para los datos de vídeo multicapa, donde el SPS incluye parámetros de resolución espacial, profundidad de bits y formato de color solo para una capa base de los datos de vídeo multicapa; un conjunto de parámetros de vídeo, VPS, para los datos de vídeo multicapa, donde el VPS incluye parámetros de resolución espacial, profundidad de bits y formato de color solo para todas las capas de los datos de vídeo multicapa; una primera capa de los datos de vídeo multicapa, estando asociada la primera capa al SPS y al VPS; y una segunda capa de los datos de vídeo multicapa, teniendo la segunda capa un valor diferente de al menos uno de entre una resolución espacial, una profundidad de bits o un formato de color que la primera capa, y estando asociada al SPS y al VPS; descodificar (806) datos de vídeo codificados para al menos uno del primer conjunto de capas de salida o el segundo conjunto de capas de salida usando al menos la primera lista de capas de salida objetivo o la segunda lista de capas de salida objetivo, respectivamente; y descodificar datos de vídeo codificados para la primera capa y la segunda capa usando información incluida en el mismo SPS, y extrayendo del SPS información acerca de la resolución espacial, la profundidad de bits y el formato de color de la capa respectiva, cuando la capa respectiva es la capa base, y no aplicando información acerca de la resolución espacial, la profundidad de bits y el formato de color incluida en el SPS, y extrayendo del VPS información acerca de la resolución espacial, la profundidad de bits y el formato de color de la capa respectiva, cuando la capa respectiva no es la capa base.

Description

DESCRIPCIÓN
Codificación de datos de vídeo para un conjunto de capas de salida
[0001] Esta solicitud reivindica el beneficio de la solicitud provisional de EE. UU. n.° 61/809,858, presentada el 8 de abril de 2013.
CAMPO TÉCNICO
[0002] Esta divulgación se refiere a la codificación de conjuntos de parámetros en la codificación de vídeo.
ANTECEDENTES
[0003] 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, tabletas electrónicas, 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 celulares 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 de Vídeo Avanzada (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.
[0004] 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. En 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 de un fragmento intercodificado (P o B) de una imagen pueden codificarse usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen, o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes se pueden denominar tramas, y las imágenes de referencia se pueden denominar tramas de referencia.
[0005] 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 a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que a continuación se pueden cuantificar. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, se pueden explorar para producir un vector unidimensional de coeficientes de transformada, y se puede aplicar codificación por entropía a los coeficientes de transformada para lograr más compresión.
El documento de Chen et al., AHG7: Target output views for MV-HEVC", JCT3V-C0059, propone un punto de operación con una lista asociada de vistas de salida objetivo, denominado punto de operación de salida, y señalizar las vistas de salida objetivo de cada punto de operación de salida en el VPS para MV-HEVC.
Los documentos de Chen et al., “AHG10: Video parameter set HEVC base specification", JCTVC-J0114 , y "AHG10: Video parameter set for HEVC extensions", JCTVC-J0124, proponen una sintaxis VPS modificada y cambios correspondientes en el SPS, que reducen el número de bits necesarios para la representación del SPS.
BREVE EXPLICACIÓN
[0006] La invención se define mediante las reivindicaciones adjuntas. En lo que sigue, los modos de realización que no estén dentro del alcance de estas reivindicaciones se considerarán ejemplos que no describen partes de la presente invención. Esta divulgación se refiere a técnicas para codificar conjuntos de parámetros de modo que se pueda codificar más de un conjunto de capas de salida para un conjunto de capas. En un ejemplo, un primer conjunto de capas de salida para un conjunto de capas y un segundo conjunto de capas de salida para el conjunto de capas se pueden usar para codificar datos de vídeo. Por ejemplo, los datos de vídeo se pueden codificar para el primer conjunto de capas de salida y para el segundo conjunto de capas de salida.
[0007] Esta divulgación se refiere a técnicas para codificar conjuntos de parámetros. Por ejemplo, un codificador de vídeo puede codificar toda la información de perfil, clase y/o nivel en el VPS, y la información de perfil, clase y nivel puede asociarse a cada conjunto de capas de salida señalizado por una estructura de sintaxis de perfil, clase y nivel en algunos ejemplos de manera que sea accesible sin descodificación por entropía. En un ejemplo, la divulgación describe técnicas para codificar estructuras de sintaxis de perfil, clase y nivel en la sintaxis de ampliación de un conjunto de parámetros, tal como la sintaxis de ampliación del conjunto de parámetros de vídeo (VPS), en algunos ejemplos en una posición dentro de la sintaxis de ampliación de conjunto de parámetros que es accesible sin codificación por entropía (es decir, antes de cualquier elemento de sintaxis codificado por entropía en la ampliación del conjunto de parámetros). Mientras que en algunos ejemplos, toda la información de perfil, clase y/o nivel del VPS puede ser accesible sin codificación por entropía, en otros ejemplos puede ser necesaria una cantidad reducida de codificación por entropía o alguna codificación por entropía limitada para parte de o toda la información de perfil, clase y/o nivel en el VPS.
[0008] En otro ejemplo, esta divulgación se refiere a técnicas para codificar información de dependencia de capa en datos de vídeo multicapa en un VPS de modo que sea accesible sin descodificación por entropía. Algunos ejemplos pueden codificar datos de vídeo multicapa, lo que incluye transmitir o recibir información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la sintaxis de ampliación de conjunto de parámetros que están codificados por entropía. La técnica puede incluir codificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. La información de dependencia de capa indica si una de las capas es una capa de referencia directa para otra de las capas.
[0009] En otro ejemplo, esta divulgación se refiere a técnicas para codificar conjuntos de parámetros. Por ejemplo, un codificador de vídeo puede codificar toda la información de perfil, clase y/o nivel en el VPS, y la información de perfil, clase y nivel puede asociarse a cada conjunto de capas de salida señalizado por una estructura de sintaxis de perfil, clase y nivel en algunos casos de manera que sea accesible sin descodificación por entropía. Mientras que en algunos ejemplos, toda la información de perfil, clase y/o nivel del VPS puede ser accesible sin codificación por entropía, en otros ejemplos puede ser necesaria una cantidad reducida de codificación por entropía o alguna codificación por entropía limitada para parte de o toda la información de perfil, clase y/o nivel en el VPS.
[0010] En otro ejemplo, esta divulgación se refiere a técnicas para codificar información de señal visual, tal como video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs, por capa en el VPS.
[0011] En otro ejemplo que está dentro del alcance de las reivindicaciones adjuntas, esta divulgación se refiere a técnicas para compartir un SPS entre capas de diferentes resoluciones espaciales, profundidad de bits o formatos de color.
[0012] En otro ejemplo, esta divulgación se refiere a técnicas de codificación de vídeo de modo que no se proporcione información de temporización en la Información de usabilidad de vídeo (VUI) de un conjunto de parámetros de secuencia (SPS) con un ID de capa (nuh_layer_id) mayor que 0.
[0013] En otro ejemplo, esta divulgación se refiere a técnicas de codificación de vídeo de modo que no se proporcione una señalización explícita de las capas de salida objetivo para los conjuntos de capas de salida predeterminados.
[0014] En otro ejemplo, esta divulgación se refiere a técnicas para evitar la señalización del número máximo de subcapas temporales que pueden estar presentes en cada secuencia de vídeo codificada (CVS) (sps_max_sub_layers_minus1) o de si la interpredicción está adicionalmente restringida para CVS (sps_temporal_id_nesting_flag), en SPS con ID de capa mayor que 0.
[0015] En otro ejemplo, esta divulgación se refiere a técnicas para que el elemento de sintaxis output_layer_set_idx[i] se pueda cambiar a output_layer_set_idx_minus1 [i] de acuerdo con las técnicas de esta divulgación.
[0016] La invención se define en las reivindicaciones independientes adjuntas. Características opcionales se definen en las reivindicaciones dependientes.
[0017] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y la siguiente descripción. Otros rasgos característicos, objetivos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
[0018]
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 esta 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 esta 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 esta divulgación.
La FIG. 4 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 5 es un diagrama de flujo que ilustra otro procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 6 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 10 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 11 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 12 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
La FIG. 13 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento.
DESCRIPCIÓN DETALLADA
[0019] Esta divulgación está relacionada, en general, con el campo de la codificación y la compresión de vídeo. Como ejemplo, la divulgación está relacionada con la norma de codificación de vídeo de alta eficiencia (HEVC), actualmente en desarrollo. El término "codificación" se refiere a codificación y descodificación, y las técnicas pueden aplicarse a la codificación, descodificación o tanto a la codificación como a la descodificación. Como se describe con más detalle, las técnicas pueden estar relacionadas con la intracodificación (por ejemplo, la intrapredicción) en la que se predice un bloque dentro de una imagen con respecto a otro bloque o bloques en la misma imagen (es decir, predicción espacial).
[0020] En los sistemas de codificación de vídeo anteriores, el acceso al perfil, clase y nivel para los conjuntos de capas requiere descodificación por entropía. De manera similar, la información de dependencia de capa no es accesible sin descodificación por entropía. La señalización de un conjunto de capas de salida también puede ser problemática e ineficaz.
[0021] Un ejemplo de los sistemas, procedimientos y dispositivos descritos en el presente documento proporciona un conjunto de estructuras de sintaxis profile_tier_level( ) que se señalizarán en la sintaxis de ampliación de conjunto de parámetros, tal como la sintaxis de ampliación del conjunto de parámetros de vídeo (VPS), posiblemente en una posición dentro de la sintaxis de ampliación que sea accesible sin codificación por entropía (por ejemplo, antes de los elementos codificados por entropía en la sintaxis de ampliación) y/o con alguna codificación por entropía reducida o limitada. La sintaxis de ampliación de VPS se describirá a lo largo de esta divulgación con fines de ejemplo. En un ejemplo, el VPS es una estructura de sintaxis que contiene elementos de sintaxis que se aplican a cero o más secuencias de vídeo codificadas (CVS) completas según se determina mediante el contenido de un elemento de sintaxis que se encuentra en el SPS al que hace referencia el elemento de sintaxis que se encuentra en el PPS al que hace referencia el elemento de sintaxis que se encuentra en cada cabecera de segmento de fragmento. En un ejemplo, una CVS es una secuencia de unidades de acceso que incluye, en el orden de descodificación, una unidad de acceso IRAP con NoRaslOutputFlag igual a 1, seguida de cero o más unidades de acceso que no son unidades de acceso IRAP con NoRaslOutputFIag igual a 1, incluidas todas las unidades de acceso posteriores hasta, pero sin incluir, una unidad de acceso posterior que sea una unidad de acceso IRAP con NoRaslOutputFlag igual a 1. Además, una estructura de sintaxis profile_tier_level( ) puede asociarse a un conjunto de capas de salida en lugar de un conjunto de capas, ya que un conjunto de capas puede corresponder a más de un conjunto de capas de salida, y diferentes conjuntos de capas de salida correspondientes a un conjunto de capas pueden ajustarse a diferentes niveles.
[0022] La estructura de sintaxis profile_tier_level( ) es una estructura de sintaxis que proporciona información de sintaxis relacionada con perfiles, clases y niveles. Los perfiles, clases y niveles especifican diferentes puntos de conformidad para implementar la norma HEVC o una norma de ampliación de HEVC de modo que sea interoperable entre diversas aplicaciones que puedan tener requisitos funcionales similares. En algunos ejemplos, un perfil puede definir un conjunto de herramientas o algoritmos de codificación que se pueden usar para generar un flujo de bits adecuado. En algunos ejemplos, un rango y un nivel pueden imponer restricciones en algunos de los parámetros del flujo de bits. En algunos ejemplos, estos parámetros pueden corresponder a la carga de procesamiento del descodificador y a las capacidades de memoria del descodificador. La información de nivel puede establecer restricciones en el procesamiento de datos. Por ejemplo, la información de nivel puede incluir una frecuencia máxima de muestreo, el tamaño máximo de una imagen, la velocidad máxima de transferencia de bits y una relación de compresión mínima. La información de nivel también puede incluir capacidades del búfer de imágenes descodificadas (DPB) y del búfer de imágenes codificadas (CPB). El CPB contiene datos comprimidos antes de su descodificación para fines de gestión de flujo de datos. El DPB contiene datos de imágenes descodificadas.
[0023] Otro ejemplo de los sistemas, procedimientos y dispositivos descritos en el presente documento proporciona una codificación de datos de vídeo multicapa, incluidas las capas de datos de vídeo. Estos sistemas, procedimientos y dispositivos pueden incluir transmitir o recibir una información de dependencia de capa codificada sin entropía en una posición dentro de una sintaxis de ampliación de conjunto de parámetros, tal como la sintaxis de ampliación de VPS, antes de elementos de sintaxis de la ampliación que están codificados por entropía. Además, los sistemas, procedimientos y dispositivos pueden descodificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. La información de dependencia de capa indica si una de las capas es una capa de referencia directa para otra de las capas. De nuevo, la sintaxis de ampliación de VPS se describirá a lo largo de esta divulgación con fines de ejemplo.
[0024] Como se describe con mayor detalle más adelante, en un ejemplo, se puede señalizar más de un conjunto de capas de salida para un conjunto de capas. Por ejemplo, como se describe en el presente documento, el elemento de sintaxis output_layer_flag[1sIdx][j] puede cambiarse a output_layer_flag [i][j], y la semántica relacionada se cambia en consecuencia.
[0025] Como se describe con mayor detalle más adelante, en otro ejemplo, la información de perfil, clase y nivel se puede señalizar en el VPS de manera que sea accesible sin descodificación por entropía. Esto se ilustra en una o más de tablas mostradas posteriormente con parámetros que tienen descriptores distintos a ue(v) (ue(v) indica codificación por entropía). Por ejemplo, los descriptores pueden indicar codificación de longitud fija, por ejemplo, u(n), donde n es un número entero 1 o mayor.
[0026] Como se describe con mayor detalle más adelante, en otro ejemplo, la información de dependencia de capa se puede señalizar en el VPS de manera que sea accesible sin entropía. Esto se ilustra en una o más de tablas mostradas posteriormente con parámetros que tienen descriptores distintos a ue(v). Por ejemplo, los descriptores pueden indicar codificación de longitud fija, por ejemplo, u(n), donde n es un número entero 1 o mayor.
[0027] Como se describe con mayor detalle posteriormente, en otro ejemplo, un formato de representación puede ser señalizado en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía o alguna codificación por entropía reducida o limitada. Por ejemplo, parámetros de formato de representación tales como chroma_format_vps_idc, separate_colour_plane_vps_flag, pic_width_vps_in_luma_samples, pic_height_vps_in_luma_samples, bit_depth_vps_luma_minus8 y bit_depth_vps_chroma_minus8 están señalizados en el VPS y no están codificados por entropía en algunos ejemplos. Esto se ilustra en una o más de las tablas mostradas posteriormente, donde estos parámetros tienen descriptores distintos a ue(v). Los parámetros de formato de representación pueden tener descriptores que indican que el parámetro particular es una codificación de longitud fija, por ejemplo, u(n), donde n es un número entero 1 o mayor. En algunos caso, la cadena de caracteres "_vps" se ha borrado de diversos nombres de parámetro; por ejemplo, chroma_format_vps_idc también puede mencionarse como chroma_format_idc, separate_colour_plane_vps_flag como separate_colour_plane_flag, pic_width_vps_in_luma_samples como pic_width_in_luma_samples, pic_heigh_vps_in_luma_samples como pic_height_in_luma_samples, bit_depth_vps_luma_minus8 como bit_depth_luma_minus8, y bit_depth_vps_chroma_minus8 como bit_depth_vps_chroma_minus8, así como otros parámetros.
[0028] Como se describe con mayor detalle posteriormente, en otro ejemplo, la información de señal visual, tal como video_format, video_full_range_flag, colour_primaries, transfer_characteristics o matrix_coeffs, puede ser señalizada por capa en el VPS. Como se describe en el presente documento, la información de señal visual, tal como format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs, puede ser un subconjunto de los parámetros de información de usabilidad de vídeo (VUI), como se especifica en el anexo E de la norma HEVC, por ejemplo. La VUI, y por tanto la información de señal visual, está en el VPS y puede ser señalizada por capa en el VPS.
[0029] Como se describe con más detalle posteriormente, en otro ejemplo, la compartición del conjunto de parámetros de secuencia (SPS) se puede realizar mediante capas con diferentes resoluciones espaciales, profundidad de bits o formatos de color. En un ejemplo, el SPS es una estructura de sintaxis que contiene elementos de sintaxis que se aplican a una capa en cero o más CVS completos según lo determinado por el contenido de un elemento de sintaxis que se encuentra en el PPS al que hace referencia un elemento de sintaxis que se encuentra en cada cabecera de segmento de fragmento. En algunos ejemplos, un procedimiento de descodificación de datos de vídeo multicapa puede incluir recibir un conjunto de parámetros de vídeo y un primer conjunto de parámetros de secuencia. El procedimiento también puede incluir recibir una primera capa que se refiere al primer conjunto de parámetros de secuencia, recibir una segunda capa que tiene un valor diferente de al menos uno de una resolución espacial, una profundidad de bits y un formato de color con respecto a la primera capa, y que se refiere al primer conjunto de parámetros de secuencia. Además, el procedimiento de ejemplo puede incluir descodificar datos de vídeo de la primera y segunda capas en base a información del conjunto de parámetros de vídeo y el primer conjunto de parámetros de secuencia.
[0030] Como se describe con mayor detalle posteriormente, en otro ejemplo, no se codifica información de temporización en la VUI de SPS con ID de capa (nuh_layer_id) mayor que 0. En algunos ejemplos, en cuanto a una capa que se refiere a un SPS con ID de capa mayor que 0, se usa la información de temporización señalizada en el VPS.
[0031] Como se describe con mayor detalle posteriormente, en otro ejemplo, no se usa ninguna señalización explícita de las capas de salida objetivo para los conjuntos de capas de salida predeterminados. Por ejemplo, puesto que multiple_output_layer_sets_in_layer_set_flag igual a 0 especifica que el VPS solo especifica un conjunto de capas de salida para cada conjunto de capas, siendo la capa más alta la única capa de salida objetivo, no es necesaria una señalización explícita de capas de salida objetivo para los conjuntos de capas de salida predeterminados. Por ejemplo, no es necesario señalizar qué capas van a proporcionarse cuando multiple_output_layer_sets_in_layer_set_flag es igual a 0 porque solo hay un conjunto de capas de salida para cada conjunto de capas y la capa más alta es la única capa de salida objetivo.
[0032] Como se describe con mayor detalle posteriormente, en otro ejemplo, sps_max_sub_layers_minus1 y sps_temporal_id_nesting_flag no se señalizan en el SPS. En algunos casos, esta señalización no se produce en el SPS cuando nuh_layer_id> 0.
[0033] Como se describe con mayor detalle posteriormente, en otro ejemplo, el elemento de sintaxis output_layer_set_idx[i] puede cambiarse a output_layer_set_idx_minus1[i]. Esto se debe a que el elemento de sintaxis layer_id_included_flag[i][j] usado para output_layer_set_idx[i] igual a 0 es para el conjunto de capas 0, mientras que para el conjunto de capas 0, layer_id_included_flag [i][j] no está definido. Además, la capa de salida objetivo para el conjunto de capas 0 es siempre la capa 0 (la capa base).
[0034] Varios ejemplos anteriores pueden incluir aspectos con diversos datos, parámetros, etc. que no están codificados por entropía. Debido a esto, los datos, parámetros, etc. pueden ser accesibles por dispositivos sin un codificador de entropía para realizar la codificación por entropía. Por ejemplo, en algunos casos, es posible que una entidad de red sensible a medios (MANE) no tenga un dispositivo de codificación por entropía, pero generalmente podría codificar (por ejemplo, descodificar) información codificada sin entropía, tales como datos, parámetros, etc.
[0035] Un borrador reciente de la norma de HEVC, denominado "HEVC Working Draft 10" o "WD10", se describe en el documento JCTVC-L1003v34, de Bross et al., titulado "High efficiency vídeo coding (HEVC) text specification draft 10 (for FDIS & Last Call)", Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12a conferencia: Ginebra, Suiza, del 14 al 23 de enero de 2013, que, a partir del 15 de octubre de 2013, puede descargarse desde: http://phenix.intevry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip
[0036] Otro borrador de trabajo (WD) reciente de HEVC, denominado “HEVC Working Draft 6” o “WD6”, se describe en el documento JCTVC-H1003, de Bross et al., titulado "High-Efficiency Video Coding (HEVC) text specification draft 6", Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, octava conferencia: San Jose, California, EE. UU., febrero de 2012, que, a partir del 15 de octubre de 2013, puede descargarse desde: http://phenix.intevry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip.
[0037] Otro borrador de trabajo (WD) reciente de HEVC, denominado “HEVC Working Draft 8” o “WD8”, se describe en el documento JCTVC-J1003, de Bross et a l titulado "High-Efficiency Video Coding (HEVC) text specification draft 8”, Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, décima conferencia: Estocolmo, Suecia, del 11 al 20 de julio de 2012, que, a partir del 15 de octubre de 2013, puede descargarse desde: http://phenix.intevry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip
[0038] Las ampliaciones de rango de HEVC se describen en el documento JCTVC-N1005_v3, Flynn et al., "High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 4", Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-Vc ) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 13a conferencia: Incheon, Corea, del 18 al 26 de abril de 2013, que, a partir del 15 de octubre de 2013, puede descargarse desde: http://phenix.it-sudparis.eu/jct/do_end_user/current_document.php?id=8139.
[0039] 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 esta divulgación. Como se ilustra en la FIG. 1, el sistema 10 incluye un codificador de vídeo 20 que genera datos de vídeo codificados que se descodificarán en un momento posterior mediante un descodificador de vídeo 30. 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 tipo notebook (es decir, portátiles), tabletas electrónicas, descodificadores, equipos telefónicos 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.
[0040] El dispositivo de destino 14 puede recibir datos de vídeo codificados que se van a descodificar por medio de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo que pueda transferir los datos de vídeo codificados desde el codificar de vídeo 20 al descodificador de vídeo 30. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para permitir al codificador de vídeo 20 transmitir datos de vídeo codificados directamente al descodificador de vídeo 30 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 al 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.
[0041] De forma alternativa, los datos codificados se pueden proporcionar desde una interfaz de salida 22 a un dispositivo de almacenamiento 34. De forma similar, una interfaz de entrada 28 puede acceder a los datos codificados del dispositivo de almacenamiento 34. El dispositivo de almacenamiento 34 puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso local o distribuido, 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 34 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que puede contener el vídeo codificado generado por el codificador de vídeo 20. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados en el dispositivo de almacenamiento 34 por medio de transmisión continua o descarga por medio de la interfaz de entrada 28. 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 descodificador de vídeo 30. Ejemplos de servidores de archivos incluyen un servidor web (por ejemplo, para un sitio web), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento conectado a redes (NAS) o una unidad de disco local. El descodificador de vídeo 30 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 cableada (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas cosas 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 34 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas cosas.
[0042] Las técnicas de esta divulgación no están limitadas 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 puede estar configurado 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.
[0043] 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 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. 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 vídeo previamente capturado, una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos de ordenador para generar datos de gráficos de ordenador como 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 esta 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.
[0044] El codificador de vídeo 20 codifica el vídeo capturado, precapturado o generado por ordenador recibido desde la fuente de vídeo 18. El vídeo capturado, precapturado o generado por ordenador puede formatearse de acuerdo con cualquiera de los formatos de muestra descritos anteriormente, incluidos los formatos de muestra 4:2:0, 4:2:2 o 4:4:4. El codificador de vídeo 20 puede realizar la codificación de vídeo en vídeo formateado de acuerdo con cualquiera de los formatos de muestra 4:2:0, 4:2:2 o 4:4:4. En algunos casos, el codificador de vídeo 20 puede muestrear de manera ascendente o descendente el vídeo capturado, precapturado o generado por ordenador como parte del proceso de codificación. Por ejemplo, el vídeo capturado puede formatearse de acuerdo con el formato de muestra 4:4:4, el codificador de vídeo 20 puede muestrear de manera descendente vídeo capturado al formato 4:2:2 y realizar la codificación de vídeo en el vídeo muestreado de manera descendente. 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 se pueden almacenar también (o de forma alternativa) en el dispositivo de almacenamiento 34 para un acceso posterior por parte del dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
[0045] El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. 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 a través del enlace 16. Los datos de vídeo codificados comunicados a través del enlace 16, o proporcionados en el dispositivo de almacenamiento 34, 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.
[0046] El dispositivo de visualización 32 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 interactuar 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 32 muestra los datos de vídeo descodificados a 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.
[0047] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una norma de compresión de vídeo, tal como la norma de codificación de vídeo de alta eficacia (HEVC), actualmente en desarrollo, y pueden cumplir, en términos generales, con el modelo de prueba de HEVC (HM) o con un HM futuro.
[0048] De forma alternativa, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con otras normas propietarias o industriales, tales como la norma ITU-T H.264, denominada, de forma alternativa, MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC), o revisiones o ampliaciones de dichas normas. Las técnicas de esta divulgación se describen como aplicables a las ampliaciones de HEVC, pero no están necesariamente limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de compresión de vídeo incluyen MPEG-2 e ITU-T H.263.
[0049] 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 gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos individuales. 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).
[0050] Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden implementar como cualquiera de una variedad de circuitos de codificador 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 esta divulgación. Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden incluir en uno o más codificadores o descodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0051] En el ejemplo ilustrado de la FIG. 1, un codificador de vídeo, tal como un codificador de vídeo 20 o un descodificador de vídeo 30, puede transmitir o recibir un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía. Por ejemplo, el codificador de vídeo 20 puede transmitir un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía y el descodificador de vídeo 30 puede recibir un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía, por ejemplo, enviado desde el vídeo. codificador 20.
[0052] El conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía puede estar en una posición dentro de una ampliación de VPS antes de otros elementos de sintaxis de la ampliación de VPS que están codificados por entropía. El codificador de vídeo (por ejemplo, el codificador de vídeo 20 o el descodificador de vídeo 30) puede hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida y descodificar datos de vídeo de uno de los conjuntos de capas de salida en base a información de la estructura de sintaxis de perfil, clase y nivel a la que se hace referencia para el conjunto de capas de salida. Por ejemplo, el codificador de vídeo 20 puede hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida y codificar datos de vídeo de uno de los conjuntos de capas de salida en base a información de la estructura de sintaxis de perfil, clase y nivel a la que se hace referencia para el conjunto de capas de salida. El descodificador de vídeo 30 puede hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida y descodificar datos de vídeo de uno de los conjuntos de capas de salida en base a información de la estructura de sintaxis de perfil, clase y nivel a la que se hace referencia para el conjunto de capas de salida.
[0053] En algunos ejemplos, el codificador de vídeo puede transmitir o recibir además un conjunto de parámetros de secuencia (SPS) con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo. El nuh_layer_id se puede usar para indicar una capa particular. Una capa puede ser un conjunto de unidades de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL) que tienen un valor particular de nuh_layer_id y las unidades NAL no VCL asociadas, o una de un conjunto de estructuras de sintaxis que tienen una relación jerárquica. nuh_layer_id será igual a 0 en un flujo de bits que contenga solo una capa. Otros valores de nuh_layer_id pueden aparecer en flujos de bits que contienen múltiples capas. En un ejemplo, una unidad NAL es una estructura de sintaxis que contiene una indicación del tipo de datos a seguir y octetos que contienen dichos datos en forma de carga útil de secuencia de octetos sin procesar (RBSP) entremezclada, según sea necesario, con octetos de prevención de emulación. En un ejemplo, una RBSP es una estructura de sintaxis que contiene un número entero de octetos que está encapsulada en una unidad NAL y que está vacía o tiene la forma de una cadena de bits de datos que contiene elementos de sintaxis seguidos de un bit de parada de RBSP y cero o más bits posteriores iguales a 0.
[0054] El codificador de vídeo 20 puede transmitir un SPS con un nuh_layer_id igual a 0, donde el SPS incluye la estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo. El descodificador de vídeo 30 puede recibir el SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo.
[0055] En algunos ejemplos, cuando una capa con nuh_layer_id mayor que 0 hace referencia al SPS, es posible que el descodificador de vídeo no descodifique los datos de vídeo de la capa con nuh_layer_id mayor que 0 usando la estructura de sintaxis de perfil, clase y nivel del SPS. Algunos ejemplos pueden vincular las estructuras de sintaxis de perfil, clase y nivel a las respectivas estructuras de los conjuntos de capas de salida. En consecuencia, una o más estructuras de sintaxis de perfil, clase y nivel específicas se pueden conectar a uno o más conjuntos específicos de capas de salida de modo que la una o más estructuras de sintaxis de perfil, clase y nivel específicas se puedan usar para codificar y/o descodificar uno o más conjuntos específicos de capas de salida. La vinculación puede incluir identificar cada uno de los conjuntos de capas de salida a los que se vincula cada una de las estructuras de sintaxis de perfil, clase y nivel en base a un elemento de sintaxis que representa un índice a las estructuras de sintaxis de perfil, clase y nivel. La descodificación de datos de vídeo puede incluir descodificar datos de vídeo de uno o más de los conjuntos de capas de salida en base a información de las estructuras de sintaxis de perfil, clase y nivel vinculadas a los respectivos conjuntos de capas de salida.
[0056] En un ejemplo que incluye múltiples capas, un flujo de bits de todas las capas puede dividirse en múltiples flujos de bits compatibles, por ejemplo, un flujo de bits para cada conjunto de capas. Cada uno de estos múltiples flujos de bits compatibles puede denominarse conjunto de capas. El conjunto de capas puede incluir una referencia a la capa particular y a cualquier capa de referencia de la que esa capa particular dependa para la descodificación.
Esto supone que hay capas de referencia de las que depende la capa particular. En consecuencia, un conjunto de capas es un flujo de bits compatible que puede incluir unidades NAL asociadas a la capa particular y unidades NAL para cualquier capa de referencia requerida para descodificar la capa particular.
[0057] Un conjunto de capas de salida es un conjunto de capas para el que se especifica la lista de capas de salida objetivo. Para un conjunto de capas no se especifica la lista de capas de salida objetivo. El conjunto de capas de salida puede ser para una o más capas particulares que están destinadas a proporcionarse para su visualización. En algunos ejemplos se puede señalizar más de un conjunto de capas de salida para un conjunto de capas.
[0058] En algunos ejemplos, el codificador de vídeo (por ejemplo, el codificador de vídeo 20 o descodificador de vídeo 30) puede transmitir o recibir, según corresponda, una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida. Por ejemplo, el codificador de vídeo 20 puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida. El descodificador de vídeo 30 puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida.
[0059] El codificador de vídeo (por ejemplo, el codificador de vídeo 20 o el descodificador de vídeo 30) también puede generar el conjunto de capas de salida en base a la bandera de capa de salida [i][j] especificando las capas correspondientes a la bandera de capa de salida [i][j] igual a 1 como la lista asociada de capas de salida objetivo. Por ejemplo, el codificador de vídeo 20 puede codificar el conjunto de capas de salida basándose en la bandera de capa de salida [i][j]. El descodificador de vídeo 30 puede descodificar el conjunto de capas de salida basándose en la bandera de capa de salida [i][j]. En el ejemplo ilustrado de la FIG. 1, un codificador de vídeo, tal como un codificador de vídeo 20 o un descodificador de vídeo 30, puede codificar datos de vídeo multicapa, que incluyen capas de datos de vídeo.
[0060] El codificador de vídeo (por ejemplo, el codificador de vídeo 20 o el descodificador de vídeo 30) puede transmitir o recibir una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía. Esto puede permitir que la información de dependencia de capa sea codificada o descodificada por dispositivos que no incluyen un codificador de entropía, por ejemplo, tal como una MANE. Además, también puede permitir que la información de dependencia de capa se codifique antes. Por ejemplo, la información de dependencia de capa se puede descodificar antes en el proceso de descodificación. Por ejemplo, el codificador de vídeo 20 puede transmitir una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía. El descodificador de vídeo 30 puede recibir una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía.
[0061] El codificador de vídeo (por ejemplo, el codificador de vídeo 20 o el descodificador de vídeo 30) puede codificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. Por ejemplo, el codificador de vídeo 20 puede codificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. El descodificador de vídeo 30 puede codificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. La información de dependencia de capa indica si una de las capas es una capa de referencia directa para otra de las capas.
[0062] En algunos ejemplos, la información de dependencia de capa incluye un direct_dependency_flag[i][j] que, cuando es igual a 0, especifica que una capa con índice j no es una capa de referencia directa para una capa con índice i, y cuando es igual a 1 especifica que la capa con índice j puede ser una capa de referencia directa para la capa con índice i.
[0063] Un ejemplo de los sistemas, procedimientos y dispositivos descritos en el presente documento proporciona un conjunto de estructuras de sintaxis profile_tier_level( ) que se señalizarán en la sintaxis de ampliación de VPS. En algunos ejemplos, el conjunto de estructuras de sintaxis profile_tier_level( ) se señaliza en la sintaxis de ampliación de VPS en una posición dentro de la sintaxis de ampliación de VPS que es accesible sin codificación por entropía, es decir, antes de los elementos codificados por entropía en la sintaxis de ampliación de VPS.
[0064] Algunos ejemplos proporcionan estructuras de sintaxis de perfil, clase y nivel antes de los elementos codificados por entropía de la sintaxis de ampliación de VPS. Estas estructuras de sintaxis se pueden vincular a conjuntos de capas de salida. En algunos ejemplos, el elemento de sintaxis vps_num_layer_sets_minus1 1 especifica el número de conjuntos de capas especificados por el VPS. Un conjunto de capas puede ser un conjunto que incluye una capa y cualquier otra capa (cero o más) de la que depende la capa. Por ejemplo, un conjunto de capas para la capa 2 en la codificación de vídeo escalable puede incluir la capa 0, la capa 1 y la capa 2. Para cada conjunto de capas se pueden especificar uno o más conjuntos de capas de salida. Cada conjunto de capas de salida está designado para tener un perfil, clase y nivel.
[0065] En un ejemplo de la divulgación, una parte de la sintaxis de VPS puede ser como la mostrada en la Tabla 1:
Tabla 1 - Parte de ejemplo de la sintaxis de VPS
Figure imgf000011_0001
[0066] Como se ilustra arriba en el ejemplo de la Tabla 1, vps_num_layer_sets_minus1 está codificado por entropía, como lo indica el descriptor ue(v), en el VPS, y hay otros elementos de sintaxis codificados por entropía antes de vps_num_layer_sets_minus1 en el VPS. En algunos ejemplos, la descodificación por entropía puede ser indeseable. Esto puede ser particularmente cierto para dispositivos de red intermedios que pueden realizar empalmes o adaptación de flujo (por ejemplo, velocidad temporal, calidad, adaptación espacial). Un descodificador (por ejemplo, un descodificador de vídeo 30) generalmente tendrá un descodificador de entropía. En muchos casos, sin embargo, puede ser deseable que un dispositivo de red intermedio no tenga un descodificador de entropía. Esto simplifica el dispositivo intermedio, lo que puede reducir el coste y el consumo de energía en algunos casos. Además, en cualquier caso, puede ser deseable acceder rápidamente a información de perfil, clase y nivel sin tener que realizar descodificación por entropía.
[0067] Para evitar descodificar por entropía las estructuras de sintaxis de perfil, clase y nivel (sintaxis profile_tier_level( )), en algunos ejemplos, esta divulgación propone presentar las estructuras de sintaxis de perfil, clase y nivel antes de cualquier elemento codificado por entropía en la sintaxis de ampliación de VPS, y ser accesibles sin analizar sintácticamente el elemento de sintaxis vps_num_layer_sets_minus1 codificado por entropía. En algunos casos, se pueden desarrollar ampliaciones para normas de codificación de vídeo, tales como las normas de codificación de vídeo HEVC. Estas ampliaciones pueden proporcionar funcionalidad adicional no proporcionada o no requerida por las normas de codificación de vídeo. Una sintaxis de ampliación es una sintaxis para una de estas ampliaciones de una norma de codificación de vídeo. Por ejemplo, la sintaxis de ampliación de VPS puede incluir la sintaxis de los mensajes usados para una ampliación de las normas de codificación de vídeo HEVC. Anteriormente, parece que se accedía a los mismos a medida que se accede a cada capa. Ahora, un sistema, procedimiento o dispositivo que implemente uno o más de los conceptos descritos en el presente documento puede acceder a todos ellos por adelantado y vincularlos posteriormente.
Tabla 2 - Sintaxis de ejemplo en la ampliación de VPS
Figure imgf000012_0001
[0068] Como se usa en la Tabla 2, vps_num_prof¡le_t¡er_level_minus1 1 especifica el número de estructuras de sintaxis profile_tier_level( ) en el VPS. Un vps_profile_present_flag[¡] igual a 1 especifica que la información de perfil y clase está presente en la i-ésima estructura de sintaxis profile_tier_level( ). Un vps_profile_present_flag[1sIdx] igual a 0 especifica que la información de perfil y clase no está presente en la iésima estructura de sintaxis profile_tier_level( ) y puede inferirse para la i-ésima estructura de sintaxis profile_tier_level( ).
[0069] El elemento de sintaxis profile_ref_minus1[i] especifica que puede inferirse que la información de perfil y clase para la i-ésima estructura de sintaxis profile_tier_level( ) es igual a la información de perfil y clase para la (prof¡le_ref_m¡nus1[¡]+1)-és¡ma estructura de sintaxis p rof i l e_t ie r_l eve l ( ). El valor de profile_ref_minus1[i]+1 puede ser menor que i.
[0070] Como se ilustra en la Tabla 2, en la sintaxis anterior, el descodificador o dispositivo de red intermedio recorre un conjunto de estructuras de sintaxis p rof i le_t ier_leve l ( ) para acceder a las mismas antes de analizar sintácticamente elementos de la sintaxis para los que se requiere codificación por entropía (más adelante en la sintaxis de ampliación de VPS). Estas estructuras de sintaxis también se pueden vincular a conjuntos de capas correspondientes con otro proceso de bucle. En particular, profileJeveLtierJdxp] especifica el índice, en el conjunto de estructuras de sintaxis profile_tier_level( ) del VPS, de la estructura de sintaxis p rof i le_t ier_leve l ( ) que se aplica al i-ésimo conjunto de capas de salida.
[0071] Para otro aspecto de ejemplo, los sistemas, procedimientos y dispositivos que implementan uno o más ejemplos descritos en el presente documento pueden usar output_layer_set_idx_minus1[i] para indicar el índice del conjunto de capas para las capas por encima de la capa 0 (la capa base).
[0072] Output_layer_set_¡dx_m¡nus1[¡] 1 especifica el índice (1 sIdx) del conjunto de capas para el i-ésimo conjunto de capas de salida. En un ejemplo, el valor de output_layer_set_idx_minus1 [i] puede estar en el intervalo de 0 a vps_num_layer_sets_minus1 - 1, ambos inclusive. La longitud del elemento de sintaxis output_layer_set_idx_minus1[i] es de Ceil(Log2(vps_num_layer_sets_minus1)) bits.
[0073] Otro ejemplo de los sistemas, procedimientos y dispositivos descritos en el presente documento proporciona una codificación de datos de vídeo multicapa, incluidas las capas de datos de vídeo. Estos sistemas, procedimientos y dispositivos pueden configurarse para realizar operaciones, que incluyen transmitir o recibir una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía. Además, los sistemas, procedimientos y dispositivos pueden descodificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. La información de dependencia de capa indica si una de las capas es una capa de referencia directa para otra de las capas.
[0074] De acuerdo con un ejemplo, un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar más de un conjunto de capas de salida para un conjunto de capas de acuerdo con las técnicas de esta divulgación. Por ejemplo, el codificador de vídeo 20 puede codificar más de un conjunto de capas de salida para un conjunto de capas. Los conjuntos de capas de salida codificados pueden señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. Los conjuntos de capas de salida codificados pueden descodificarse mediante el descodificador de vídeo 30.
[0075] De acuerdo con otro ejemplo, un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar toda la información de perfil, clase y/o nivel en el VPS, posiblemente de una manera que sea accesible sin descodificación por entropía de acuerdo con las técnicas de esta divulgación. Por ejemplo, el codificador de vídeo 20 puede codificar toda la información de perfil, clase y nivel en el VPS, posiblemente de manera que sea posiblemente accesible sin descodificación por entropía, es decir, sin codificar por entropía la información de perfil, clase y/o nivel. La información codificada de perfil, clase y/o nivel en el VPS puede señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. La información codificada de perfil, clase y/o nivel en el VPS puede descodificarse por el descodificador de vídeo 30, que puede ser un dispositivo que no incluye un descodificador de entropía, tal como una MANE. Algunos ejemplos pueden usar codificación por entropía reducida o limitada para la información de perfil, clase y nivel en el VPS. Por ejemplo, tal vez parte de la información de perfil, clase y nivel en el VPS esté codificada por entropía mientras que otra información de perfil, clase y nivel en el VPS no está codificada por entropía.
[0076] De acuerdo con otro ejemplo, un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar información de dependencia de capa en el VPS, de modo que sea accesible sin descodificación por entropía de acuerdo con las técnicas de esta divulgación. Por ejemplo, el codificador de vídeo 20 puede codificar información de dependencia de capa en el VPS de modo que sea accesible sin descodificación por entropía, es decir, sin codificar por entropía la información de dependencia de capa. La información codificada de dependencia de capa en el VPS puede señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. La información codificada de dependencia de capa en el VPS puede descodificarse por el descodificador de vídeo 30, que puede ser un dispositivo que no incluye un descodificador de entropía, tal como una MANE.
[0077] De acuerdo con otro ejemplo, un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar el formato de representación en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía de acuerdo con las técnicas de esta divulgación, y cada capa puede estar asociada a un formato de representación particular. Por ejemplo, el codificador de vídeo 20 puede codificar el formato de representación en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía, es decir, sin codificar por entropía el formato de representación en el VPS. El formato de representación codificado en el VPS puede señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. El formato de representación codificado en el VPS puede descodificarse por el descodificador de vídeo 30, que puede ser un dispositivo que no incluye un descodificador de entropía, tal como una MANE. Algunos ejemplos pueden usar descodificación por entropía reducida o limitada para la información de perfil, clase y nivel en el VPS. Por ejemplo, tal vez parte de la información de perfil, clase y nivel en el VPS esté descodificada por entropía mientras que otra información de perfil, clase y nivel en el VPS no esté descodificada por entropía (por ejemplo, porque parte de la información de perfil, clase y nivel en el VPS se codificó por entropía mientras otra información de perfil, clase y nivel en el VPS no se codificó por entropía).
[0078] De acuerdo con otro ejemplo, un codificador de vídeo, tal como un codificador de vídeo 20 o un descodificador de vídeo 30, puede codificar información de señal visual (video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs) por capa en el VPS de acuerdo con las técnicas de esta divulgación. Por ejemplo, el codificador de vídeo 20 puede codificar la información de señal visual por capa en el VPS. La información de señal visual codificada puede señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. La información de la señal visual codificada por capa en el VPS puede descodificarse mediante el descodificador de vídeo 30. En algunos ejemplos, el parámetro video_format indica un formato de representación de imágenes a codificar. El parámetro video_full_range_flag indica el nivel de negro y el rango de las señales de luma y croma. El parámetro colour_primaries indica las coordenadas de cromaticidad de las fuentes primarias. El parámetro transfer_characteristics indica la característica de transferencia optoelectrónica de la imagen fuente. El parámetro matrix_coeffs describe los coeficientes matriciales usados para obtener señales de luma y croma de los colores primarios verde, azul y rojo.
[0079] De acuerdo con otro ejemplo, un SPS puede ser compartido por capas con diferentes resoluciones espaciales, profundidad de bits o formatos de color de acuerdo con las técnicas de esta divulgación. Un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar el SPS. Por ejemplo, el codificador de vídeo 20 puede codificar el SPS. El SPS codificado puede señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. El SPS codificado puede descodificarse mediante el descodificador de vídeo 30.
[0080] De acuerdo con otro ejemplo, no se proporciona información de temporización en una VUI de SPS con ID de capa mayor que 0 de acuerdo con las técnicas de esta divulgación. Un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar el SPS con un ID de capa mayor que 0, que no incluye información de temporización en la VUI. Por ejemplo, el codificador de vídeo 20 puede codificar el SPS. El SPS codificado puede señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. El SPS codificado puede descodificarse mediante el descodificador de vídeo 30.
[0081] De acuerdo con otro ejemplo, no se proporciona una señalización explícita de capas de salida objetivo para los conjuntos de capas de salida predeterminados de acuerdo con las técnicas de esta divulgación. Un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar los conjuntos de capas de salida predeterminados, que no incluyen ninguna señalización explícita de las capas de salida objetivo para los conjuntos de capas de salida predeterminados. Por ejemplo, el codificador de vídeo 20 codifica los conjuntos de capas de salida predeterminados. Los conjuntos de capas de salida predeterminados codificados pueden señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. Los conjuntos de capas de salida predeterminados codificados pueden descodificarse mediante el descodificador de vídeo 30.
[0082] De acuerdo con otro ejemplo, la señalización del número máximo de subcapas temporales que pueden estar presentes (sps_max_sub_layers_minus1) y de si la interpredicción está adicionalmente restringida (sps_temporal_id_nesting_flag), está ausente en SPS con ID de capa (nuh_layer_id) mayor que 0. Un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar datos de vídeo sin codificar, en SPS con ID de capa mayor que 0, el número máximo de subcapas temporales que pueden estar presentes en cada CVS que hace referencia al SPS y sin codificar si la interpredicción está adicionalmente restringida para los CVS que hacen referencia al SPS. Por ejemplo, el codificador de vídeo 20 puede codificar datos de vídeo sin codificar, en SPS con ID de capa mayor que 0, el número máximo de subcapas temporales que pueden estar presentes en cada CVS que hace referencia al SPS y si la interpredicción está adicionalmente restringida para los CVS que hacen referencia al SPS. La información codificada puede señalizarse, transmitirse o transferirse de otro modo por la interfaz de salida 22 a través del enlace 16 o usando el dispositivo de almacenamiento 34, y recibirse por la interfaz de entrada 28. La información codificada puede descodificarse mediante el descodificador de vídeo 30.
[0083] De acuerdo con otro ejemplo, el elemento de sintaxis output_layer_set_idx[i] se puede cambiar a output_layer_set_idx_minus1 [i] de acuerdo con las técnicas de esta divulgación. Un codificador de vídeo, tal como el codificador de vídeo 20 o el descodificador de vídeo 30, puede codificar output_layer_set_idx_minus1[i] para indicar el índice del conjunto de capas que corresponde a un conjunto de capas de salida.
[0084] 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 esta divulgación. El codificador de vídeo 20 puede realizar la intracodificación y la 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 de un vídeo dentro de una trama o imagen de vídeo dada. La intercodificación se basa en la predicción temporal o entre capas para reducir o eliminar la redundancia temporal o la redundancia entre capas en el vídeo dentro de tramas o imágenes adyacentes en la misma capa o en diferentes capas 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.
[0085] En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una memoria de datos de vídeo 40, una unidad de procesamiento de predicción 41, una memoria de imágenes de referencia 64, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de procesamiento de cuantificación 54 y una unidad de procesamiento de codificación por entropía 56. La unidad de procesamiento de predicción 41 incluye una unidad de procesamiento de estimación de movimiento 42, una unidad de procesamiento 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 procesamiento de cuantificación inversa 58, una unidad de procesamiento de transformada inversa 60 y un sumador 62. También se puede incluir un filtro de eliminación de bloques (no mostrado en la FIG. 2) para filtrar los límites de bloque, para eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de eliminación de bloques filtrará típicamente la salida del sumador 62. También se pueden usar filtros de bucle adicionales (en bucle o tras un bucle), además del filtro de eliminación de bloques.
[0086] La memoria de datos de vídeo 40 puede almacenar datos de vídeo que se van a codificar mediante los componentes del codificador de vídeo 20. Los datos de vídeo almacenados en la memoria de datos de vídeo 40 se pueden obtener, por ejemplo, a partir de la fuente de vídeo 18. El búfer de imágenes descodificadas (DPB) puede ser una memoria de imágenes de referencia 64 que almacena datos de vídeo de referencia para su uso en la codificación de datos de vídeo mediante el codificador de vídeo 20, por ejemplo, en los modos de intracodificación o intercodificación. La memoria de datos de vídeo 40 y el DPB (por ejemplo, la memoria de imágenes de referencia 64) pueden estar formadas por cualquiera de una variedad de dispositivos de memoria, tales como memoria dinámica de acceso aleatorio (DRAM), que incluye DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La memoria de datos de vídeo 40 y el DPB (por ejemplo, la memoria de imágenes de referencia 64) se pueden proporcionar por el mismo dispositivo de memoria o por dispositivos de memoria individuales. En diversos ejemplos, la memoria de datos de vídeo 101 puede estar en un chip con otros componentes del codificador de vídeo 20, o fuera de chip relativo a esos componentes.
[0087] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe datos de vídeo, y la unidad de procesamiento de predicción 41 divide los datos en bloques de vídeo. En algunos casos, la unidad de procesamiento de predicción 41 puede dividir los datos de vídeo en base a un análisis de velocidad-distorsión. Los datos de vídeo recibidos pueden formatearse de acuerdo con cualquiera de los formatos de muestra descritos anteriormente. Por ejemplo, los datos de vídeo pueden formatearse de acuerdo con el formato de muestra 4:2:2. La división puede incluir la división de datos de vídeo en fragmentos, mosaicos u otras unidades mayores, así como la división en bloques de vídeo, por ejemplo, de acuerdo con una estructura de árbol cuaternario de LCU y CU.
[0088] 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 intracodificado 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.
[0089] La unidad de procesamiento de intrapredicción 46, situada en la unidad de procesamiento de predicción 41, puede realizar una codificación intrapredictiva del bloque de vídeo actual con respecto a 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 procesamiento de estimación de movimiento 42 y la unidad de procesamiento de compensación de movimiento 44 dentro de la unidad de procesamiento de predicción 41 realizan una 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.
[0090] La unidad de procesamiento 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 procesamiento de estimación de movimiento 42 y la unidad de procesamiento 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 procesamiento de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una unidad de predicción (PU) de un bloque de vídeo dentro de una trama o imagen de vídeo actual con respecto a un bloque predictivo dentro de una imagen de referencia.
[0091] Un bloque predictivo, para la intercodificación, puede ser un bloque 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 mediante una suma de diferencias absolutas (SAD), una suma de diferencias al cuadrado (SSD) u otras métricas de diferencia. De forma alternativa, un bloque predictivo, para la intracodificación, puede ser un bloque que se forma en base a la predicción espacial con respecto a los valores de píxel de uno o más bloques vecinos. En algunos ejemplos, para la interpredicción, el codificador de vídeo 20 puede calcular valores para posiciones de píxel fraccionario de imágenes de referencia almacenadas en la memoria de imágenes de referencia 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 de píxel fraccionario de la imagen de referencia. Por lo tanto, la unidad de procesamiento de estimación de movimiento 42 puede realizar una búsqueda de movimiento relativa a las posiciones de píxel completo y a las posiciones de píxel fraccionario, y proporcionar un vector de movimiento con una precisión de píxel fraccionario.
[0092] La unidad de procesamiento 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 (lista 0) de imágenes de referencia o de una segunda lista (lista 1) de imágenes de referencia, cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. La unidad de procesamiento de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de procesamiento de codificación por entropía 56 y a la unidad de procesamiento de compensación de movimiento 44.
[0093] La compensación de movimiento, realizada por la unidad de procesamiento de compensación de movimiento 44, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado mediante 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 procesamiento 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.
[0094] El codificador de vídeo 20 forma un bloque de vídeo residual, para intercodificación o intracodificación, 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 procesamiento de compensación de movimiento 44 también puede generar elementos de sintaxis asociados a los bloques de vídeo y al 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.
[0095] 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 procesamiento de estimación de movimiento 42 y la unidad de procesamiento 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 su uso en la codificación de 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 diversas pasadas de codificación, y la unidad de procesamiento de intrapredicción 46 (o una unidad de procesamiento de selección de modo, en algunos ejemplos) puede seleccionar un modo de intrapredicción adecuado a usar a partir de los modos probados.
[0096] Por ejemplo, la unidad de procesamiento de intrapredicción 46 puede calcular valores de velocidaddistorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción probados, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidad-distorsión entre los modos modelos probados. 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 bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de procesamiento de intrapredicción 46 puede calcular relaciones 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. Cabe destacar que el análisis de velocidad-distorsión se puede realizar en una combinación de componentes de color.
[0097] En cualquier caso, tras seleccionar un modo de intrapredicción para un bloque, la unidad de procesamiento de intrapredicción 46 puede proporcionar a la unidad de procesamiento de codificación por entropía 56 información indicativa del modo de intrapredicción seleccionado para el bloque. La unidad de procesamiento de codificación por entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado de acuerdo con las técnicas de esta 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 de modo de intrapredicción y una tabla de índices de modo de intrapredicción modificada para su uso para cada uno de los contextos. El flujo de bits puede almacenarse también (o de forma alternativa) en el dispositivo de almacenamiento 34 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
[0098] Después de que la unidad de procesamiento de predicción 41 genere el bloque predictivo para el bloque de vídeo actual, ya sea mediante interpredicción o 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 del bloque residual se pueden incluir en una o más unidades de transformada (TU) y aplicarse a la unidad de procesamiento de transformada 52. Cabe destacar que la unidad de procesamiento de transformada 52 se refiere a un componente, módulo, procesador o procesadores, o unidad funcional de codificador de vídeo 20, y no debe confundirse con una TU, que es una unidad básica de datos para el proceso de transformada y cuantificación. 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 a un dominio de transformada, tal como un dominio de frecuencia. La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de procesamiento de cuantificación 54.
[0099] En el ejemplo ilustrado en la FIG. 2, un codificador de vídeo 20 puede hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida y codificar datos de vídeo de uno de los conjuntos de capas de salida en base a información de la estructura de sintaxis de perfil, clase y nivel a la que se hace referencia para el conjunto de capas de salida.
[0100] El codificador de vídeo 20 puede transmitir un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía. El conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía puede estar en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía, de modo que un dispositivo de interconexión intermedio, un motor de empalme, un elemento de red sensible a medios o un descodificador puede analizar sintácticamente el conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía sin necesidad de codificación por entropía.
[0101] En algunos ejemplos, el codificador de vídeo 20 puede transmitir o recibir un SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo. Por ejemplo, el codificador de vídeo 20 puede enviar un SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo.
[0102] El codificador de vídeo 20 puede codificar el conjunto de capas de salida basándose en la bandera de capa de salida [i][j]. El codificador de vídeo 20 también puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida.
[0103] El codificador de vídeo 20 puede codificar sin entropía algunos datos de vídeo de una o más de las capas de datos de vídeo. Los datos de vídeo codificados sin entropía pueden incluir información de dependencia de capa. La información de dependencia de capa puede indicar si una de las capas es una capa de referencia directa para otra de las capas. En algunos ejemplos, la información de dependencia de capa incluye un direct_dependency_flag[i][j] que, cuando es igual a 0, especifica que una capa con índice j no es una capa de referencia directa para una capa con índice i, y cuando es igual a 1 especifica que la capa con índice j puede ser una capa de referencia directa para la capa con índice i.
[0104] El codificador de vídeo 20 puede transmitir la información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía.
[0105] De acuerdo con un ejemplo, el codificador de vídeo 20 puede codificar más de un conjunto de capas de salida para un conjunto de capas. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56.
[0106] De acuerdo con otro ejemplo, el codificador de vídeo 20 puede codificar toda la información de perfil, clase y nivel en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía, es decir, sin codificar por entropía la información de perfil, clase y/o nivel. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56, aunque sin codificación por entropía. Por consiguiente, la unidad de procesamiento de codificación por entropía puede realizar otros tipos de codificación además de la codificación por entropía.
[0107] De acuerdo con otro ejemplo, el codificador de vídeo 20 puede codificar información de dependencia de capa en el VPS de modo que sea accesible sin descodificación por entropía, es decir, sin codificar por entropía la información de dependencia de capa. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56, aunque sin codificación por entropía. Por consiguiente, la unidad de procesamiento de codificación por entropía puede realizar otros tipos de codificación además de la codificación por entropía.
[0108] De acuerdo con otro ejemplo, el codificador de vídeo 20 puede codificar el formato de representación en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía, es decir, sin codificar por entropía el formato de representación en el VPS. En algunos ejemplos, cada capa puede estar asociada a un formato de representación particular. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56, aunque sin codificación por entropía. Por consiguiente, la unidad de procesamiento de codificación por entropía puede realizar otros tipos de codificación además de la codificación por entropía. El codificador de vídeo 20 puede codificar el formato de representación en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía de acuerdo con las técnicas de esta divulgación, y cada capa puede estar asociada a un formato de representación particular.
[0109] De acuerdo con otro ejemplo, el codificador de vídeo 20 puede codificar información de señal visual (video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs) por capa en el VPS de acuerdo con las técnicas de esta divulgación. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56.
[0110] De acuerdo con otro ejemplo, un SPS puede ser compartido por capas con diferentes resoluciones espaciales, profundidad de bits o formatos de color de acuerdo con las técnicas de esta divulgación. El codificador de vídeo 20 puede codificar el SPS. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56.
[0111] De acuerdo con otro ejemplo, no se proporciona información de temporización en una VUI de SPS con ID de capa mayor que 0 de acuerdo con las técnicas de esta divulgación. El codificador de vídeo 20 puede codificar el SPS. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56.
[0112] De acuerdo con otro ejemplo, no se proporciona una señalización explícita de capas de salida objetivo para los conjuntos de capas de salida predeterminados de acuerdo con las técnicas de esta divulgación. El codificador de vídeo 20 puede codificar los conjuntos de capas de salida predeterminados. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56.
[0113] De acuerdo con otro ejemplo, la señalización del número máximo de subcapas temporales que pueden estar presentes (sps_max_sub_layers_minus1) y de si la interpredicción está adicionalmente restringida (sps_temporal_id_nesting_flag), se produce en un SPS solo cuando el nuh_layer_id_ es igual a 0, es decir, no se señaliza en SPS con ID de capa mayor que 0. El codificador de vídeo 20 puede codificar datos de vídeo sin codificar, en SPS con ID de capa mayor que 0, el número máximo de subcapas temporales que pueden estar presentes en cada CVS que hace referencia al SPS y si la interpredicción está adicionalmente restringida para los CVS que hacen referencia al SPS. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56.
[0114] De acuerdo con otro ejemplo, el elemento de sintaxis output_layer_set_idx[i] se puede cambiar a output_layer_set_idx_minusl[i] de acuerdo con las técnicas de esta divulgación. El codificador de vídeo 20 puede codificar el elemento de sintaxis output_layer_set_idx_minus1[i] para indicar el índice del conjunto de capas que corresponde al i-ésimo conjunto de capas de salida especificado por el VPS. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 56.
[0115] 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 esta divulgación. En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una memoria de datos de vídeo 78, una unidad de procesamiento de descodificación por entropía 80, una unidad de procesamiento de predicción 81, una unidad de procesamiento de cuantificación inversa 86, una unidad de procesamiento de transformación inversa 88, un sumador 90 y una memoria de imágenes de referencia 92. La unidad de procesamiento de predicción 81 incluye una unidad de procesamiento de compensación de movimiento 82 y una unidad de procesamiento de intrapredicción 84. En algunos ejemplos, el descodificador de vídeo 30 puede realizar una pasada de descodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 de la FIG. 2.
[0116] La memoria de datos de vídeo 78 puede almacenar datos de vídeo, tales como un flujo de bits de vídeo codificado, que los componentes del descodificador de vídeo 30 van a descodificar. Los datos de vídeo almacenados en la memoria de datos de vídeo 78 pueden obtenerse, por ejemplo, a partir de un medio legible por ordenador, por ejemplo, desde una fuente de vídeo local, tal como una cámara, por medio de comunicación de datos de vídeo por red cableada o inalámbrica, o accediendo a medios de almacenamiento físico de datos. La memoria de datos de vídeo 78 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 búfer de imágenes descodificadas (DPB) puede ser una memoria de imágenes de referencia 92 que almacena datos de vídeo de referencia para su uso en la descodificación de datos de vídeo mediante el descodificador de vídeo 30, por ejemplo, en los modos de intracodificación o intercodificación. La memoria de datos de vídeo 78 y el DPB pueden estar formados por cualquiera de una variedad de dispositivos de memoria, tales como memoria dinámica de acceso aleatorio (DRAM), que incluye DRAM síncrona (SDRAM), RAM magnetoresistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La memoria de datos de vídeo 78 y el DPB pueden ser proporcionados por el mismo dispositivo de memoria o por dispositivos de memoria independientes. En diversos ejemplos, la memoria de datos de vídeo 78 puede estar en un chip con otros componentes del descodificador de vídeo 30, o fuera de chip relativo a esos componentes.
[0117] Durante el proceso de descodificación, el descodificador de vídeo 30 recibe desde el codificador de vídeo 20 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. La unidad de procesamiento de descodificación por entropía 80 del descodificador de vídeo 30 descodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de procesamiento 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.
[0118] 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 basándose en un modo de intrapredicción señalizado, 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 procesamiento 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 predeterminadas en base a imágenes de referencia almacenadas en la memoria de imágenes de referencia 92.
[0119] La unidad de procesamiento de compensación de movimiento 82 determina 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 procesamiento de compensación de movimiento 82 usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, uno de una pluralidad de modos de 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.
[0120] La unidad de procesamiento de compensación de movimiento 82 también puede realizar interpolación en base a filtros de interpolación. La unidad de procesamiento 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 valores interpolados para píxeles fraccionarios de los bloques de referencia. En este caso, la unidad de procesamiento 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.
[0121] La unidad de procesamiento de cuantificación inversa 86 realiza la cuantificación inversa, es decir, descuantifica, los coeficientes de transformada cuantificados, proporcionados en el flujo de bits y descodificados por la unidad de procesamiento de descodificación por entropía 80. El proceso 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 del fragmento de vídeo para determinar un grado de cuantificación y, del mismo modo, un grado de cuantificación inversa que se debería aplicar.
[0122] La unidad de procesamiento de transformada inversa 88 recibe coeficientes de transformada y aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxel. En algunos ejemplos, la unidad de procesamiento de transformada inversa 88 puede recibir coeficientes de transformada que fueron generados por un codificador de vídeo en base a las técnicas de división en unidades de transformada.
[0123] Después de que la unidad de procesamiento de compensación de movimiento 82 o la unidad de procesamiento de intrapredicción 84 genere 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 procesamiento de compensación de movimiento 82. El sumador 90 representa el componente o los componentes que realizan esta operación de suma.
[0124] Si se desea, también se puede aplicar un filtro de eliminación de bloques para filtrar los bloques descodificados a fin de eliminar distorsiones de efecto pixelado. También se pueden usar otros filtros de bucle (bien en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones entre píxeles o mejorar de otro modo la calidad de vídeo. 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 subsiguiente. 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 32 de la FIG. 1.
[0125] En el ejemplo ilustrado de la FIG. 3, el descodificador de vídeo 30 puede recibir un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía.
[0126] El descodificador de vídeo 30 puede hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida y descodificar datos de vídeo de uno de los conjuntos de capas de salida en base a información de la estructura de sintaxis de perfil, clase y nivel a la que se hace referencia para el conjunto de capas de salida.
[0127] En algunos ejemplos, el codificador de vídeo puede transmitir o recibir un SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo. El descodificador de vídeo 30 puede recibir un SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo.
[0128] En algunos ejemplos, cuando una capa con un nuh_layer_id mayor que 0 hace referencia al SPS, el descodificador de vídeo 30 podría no descodificar los datos de vídeo de la capa con un nuh_layer_id mayor que 0 usando la estructura de sintaxis de perfil, clase y nivel del SPS.
[0129] El descodificador de vídeo 30 puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida.
[0130] El descodificador de vídeo 30 también puede generar el conjunto de capas de salida basándose en la bandera de capa de salida [i][j].
[0131] En el ejemplo ilustrado de la FIG. 3, el descodificador de vídeo 30 puede descodificar datos de vídeo multicapa, que incluyen capas de datos de vídeo.
[0132] El descodificador de vídeo 30 puede recibir una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía.
[0133] El descodificador de vídeo 30 puede codificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. La información de dependencia de capa indica si una de las capas puede ser una capa de referencia directa para otra de las capas.
[0134] En algunos ejemplos, la información de dependencia de capa incluye un direct_dependency_flag[i][j] que, cuando es igual a 0, especifica que una capa con índice j no es una capa de referencia directa para una capa con índice i, y cuando es igual a 1 especifica que la capa con índice j puede ser una capa de referencia directa para la capa con índice i.
[0135] En algunos ejemplos, esta divulgación describe procedimientos para diseños mejorados de VPS y SPS para ampliaciones de HEVC, incluidos cambios en la señalización de información de perfil, clase y nivel para conjuntos de capas de salida, la señalización de conjuntos de capas de salida y la señalización de dependencia de capa. En algunos ejemplos, esta divulgación también describe procedimientos para diseños mejorados de VPS y SPS para ampliaciones de HEVC, incluidos cambios en la señalización de la información acerca del formato de representación (resolución espacial, formato de color y profundidad de bits en la extensión de VPS) para la negociación de sesiones, así como en señalización eficaz de parámetros SPS con control individual de diferentes categorías.
[0136] En algunos ejemplos, los diseños actuales de VPS y SPS pueden estar asociados al menos a los siguientes problemas: (1) debido a que el elemento de sintaxis vps_num_layer_sets_minus1 está codificado con ue(v) y también hay otros elementos de sintaxis codificados con ue(v) antes del mismo, el acceso actual al perfil, clase y nivel de los conjuntos de capas necesita descodificación por entropía; (2) de manera similar, la información de dependencia de capa no es accesible sin descodificación por entropía; y (3) la señalización del conjunto de capas de salida es problemática y no eficiente, porque: (a) el elemento de sintaxis layer_id_included_flag[ ][ ] usado para output_layer_set_idx[i] igual a 0 es para el conjunto de capas 0, mientras que para el conjunto de capas 0 layer_id_included_flag[ ][ ]no está definido en la versión 1 de HEVC (es decir, HEVC WD10), (b) resulta evidente que la capa de salida objetivo para el conjunto de capas 0 es la capa 0 (la capa base) de todos modos, (c) actualmente se puede señalizar como máximo un conjunto de capas de salida para cada conjunto de capas y (d) actualmente, la sintaxis usa un bucle de ID de capa desde 0 hasta el ID de capa más grande posible en el VPS, lo cual es complejo.
[0137] En escenarios multivista, a menudo sucede que un conjunto de capas está asociado a múltiples conjuntos de diferentes capas de salida objetivo. Por lo tanto, el elemento de sintaxis output_layer_flag[1sIdx][j] se cambia a output_layer_flag[i][j], y la semántica relacionada se cambia en consecuencia y, como se mencionó anteriormente en el elemento (d), actualmente, la sintaxis usa un bucle de ID de capa desde 0 hasta el ID de capa más grande posible en el VPS, lo cual es complejo. Sería mucho más simple usar un bucle de las capas en el conjunto de capas, excluyendo la capa más alta del conjunto de capas, ya que esa capa es seguramente una capa de salida objetivo.
[0138] De acuerdo con un ejemplo, el descodificador de vídeo 30 puede descodificar más de un conjunto de capas de salida para un conjunto de capas. En algunos ejemplos, la descodificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 80.
[0139] De acuerdo con otro ejemplo, el descodificador de vídeo 30 puede descodificar toda la información de perfil, clase y nivel en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía. En algunos ejemplos, la descodificación puede realizarse mediante la unidad de procesamiento de descodificación por entropía 80, aunque sin descodificación por entropía. Por consiguiente, la descodificación también puede realizarse mediante dispositivos que no tengan un descodificador de entropía.
[0140] De acuerdo con otro ejemplo, el descodificador de vídeo 30 puede descodificar información de dependencia de capa del VPS de manera que sea accesible sin descodificación por entropía. En algunos ejemplos, la descodificación puede realizarse mediante la unidad de procesamiento de descodificación por entropía 80, aunque sin codificación por entropía. Por consiguiente, la descodificación también puede realizarse mediante dispositivos que no tengan un descodificador de entropía.
[0141] De acuerdo con otro ejemplo, el descodificador de vídeo 30 puede descodificar el formato de representación en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía, es decir, sin codificar por entropía el formato de representación en el VPS. En algunos ejemplos, la descodificación puede realizarse mediante la unidad de procesamiento de descodificación por entropía 80, aunque sin descodificación por entropía. Por consiguiente, la descodificación también puede realizarse mediante dispositivos que no tengan un descodificador de entropía. El descodificador de vídeo 30 puede descodificar el formato de representación del VPS, posiblemente sin descodificación por entropía de acuerdo con las técnicas de esta divulgación, y cada capa puede estar asociada a un formato de representación particular.
[0142] De acuerdo con otro ejemplo, el descodificador de vídeo 30 puede descodificar información de señal visual (video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs) por capa en el VPS de acuerdo con las técnicas de esta divulgación. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 80. En algunos ejemplos, el parámetro video_format indica un formato de representación de imágenes a codificar. El parámetro video_full_range_flag indica el nivel de negro y el rango de las señales de luma y croma. El parámetro colour_primaries indica las coordenadas de cromaticidad de las fuentes primarias. El parámetro transfer_characteristics indica la característica de transferencia optoelectrónica de la imagen fuente. El parámetro matrix_coeffs describe los coeficientes matriciales usados para obtener señales de luma y croma de los colores primarios verde, azul y rojo.
[0143] De acuerdo con otro ejemplo, un SPS puede ser compartido por capas con diferentes resoluciones espaciales, profundidad de bits o formatos de color de acuerdo con las técnicas de esta divulgación. El descodificador de vídeo 30 puede descodificar el SPS. En algunos ejemplos, la codificación puede realizarse mediante la unidad de procesamiento de codificación por entropía 80.
[0144] De acuerdo con otro ejemplo, no se proporciona información de temporización en una VUI de SPS con ID de capa mayor que 0 de acuerdo con las técnicas de esta divulgación. El descodificador de vídeo 30 puede descodificar el SPS. En algunos ejemplos, la descodificación puede realizarse mediante la unidad de procesamiento de descodificación por entropía 80.
[0145] De acuerdo con otro ejemplo, no se proporciona una señalización explícita de capas de salida objetivo para los conjuntos de capas de salida predeterminados de acuerdo con las técnicas de esta divulgación. El descodificador de vídeo 30 puede descodificar los conjuntos de capas de salida predeterminados. En algunos ejemplos, la descodificación puede realizarse mediante la unidad de procesamiento de descodificación por entropía 80.
[0146] De acuerdo con otro ejemplo, la señalización del número máximo de subcapas temporales que pueden estar presentes (sps_max_sub_layers_minus1) y de si la interpredicción está adicionalmente restringida (sps_temporal_id_nesting_flag) se produce en un SPS solo cuando nuh_layer_id es mayor que 0. El descodificador de vídeo 30 puede descodificar datos de vídeo sin codificar, en SPS con ID de capa mayor que 0, el número máximo de subcapas temporales que pueden estar presentes en cada CVS que hace referencia al SPS y si la interpredicción está adicionalmente restringida para los CVS que hacen referencia al SPS. En algunos ejemplos, la descodificación puede realizarse mediante la unidad de procesamiento de descodificación por entropía 80.
[0147] De acuerdo con otro ejemplo, el elemento de sintaxis output_layer_set_idx[i] se puede cambiar a output_layer_set_idx_minus1 [i] de acuerdo con las técnicas de esta divulgación. El descodificador de vídeo 30 puede descodificar el elemento de sintaxis output_layer_set_idx_minus1[i] para indicar el índice del conjunto de capas correspondiente al i-ésimo conjunto de capas de salida especificado por el VPS.
[0148] En los siguientes ejemplos, las etiquetas entre corchetes (por ejemplo, [INICIO DEL EJEMPLO A] y [FIN DEL EJEMPLO A]) se usarán para indicar el texto relacionado con el ejemplo indicado. Se pueden indicar cambios con respecto a una versión actual de la SHVC, que a partir del 2 de abril de 2013 se puede descargar desde: http://phenix.intevry.fr/ict/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1008-v1.zip, o de la norma MV-HEVC, que a partir del 2 de abril de 2013 se puede descargar desde: http://phenix.itsudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V-C 1004-v4.zip
[0149] Varios cambios en la señalización de la información de perfil, clase y nivel para conjuntos de capas, la señalización de los conjuntos de capas de salida y la señalización de la dependencia de capa, se indican mediante [INICIO DEL EJEMPLO A] y [FIN DEL EJEMPLO A], que se utilizarán en esta propuesta para indicar el ejemplo A incluido en el presente documento, de acuerdo con los aspectos de esta divulgación.
[0150] Debido al hecho de que el elemento de sintaxis vps_num_layer_sets_minus1 está codificado con ue(v) (es decir, codificado por entropía) y también hay otros elementos de sintaxis codificados con ue(v) antes del mismo, el acceso actual al perfil, clase y nivel para los conjuntos de capas necesita descodificación por entropía. Para que esta información sea accesible sin descodificación por entropía, se puede señalizar un conjunto de estructuras de sintaxis profile_tier_level( ) en una posición que sea accesible sin descodificación por entropía. El conjunto de estructuras de sintaxis profile_tier_level( ) puede entonces referenciarse para vincularse a conjuntos de capas de salida. Múltiples conjuntos de capas de salida del mismo conjunto de capas pueden necesitar diferentes tamaños de DPB y, por lo tanto, pueden adaptarse a diferentes niveles.
[0151] En algunos ejemplos, el elemento de sintaxis output_layer_set_idx[i] puede cambiarse a output_layer_set_idx_minus1[i], como se describe a continuación. Cuando un SPS con nuh_layer_id igual a 0 es referido por una capa con n u h ja y e rjd mayor que 0, la estructura de sintaxis profile_tier_level( ) en el SPS no se aplica para esa capa. Por la misma razón que anteriormente, la señalización de la dependencia de capa se desplaza hacia arriba para ser accesible sin descodificación por entropía. El cambio del elemento de sintaxis output_layer_set_idx[i] a output_layer_set_idx_minus1[i] se debe a las siguientes razones. El elemento de sintaxis layer_id_included_flag[ ][ ] usado para output_layer_set_idx[i] igual a 0 es para el conjunto de capas 0, mientras que para el conjunto de capas 0, layer_id_included_flag[ ][ ] no está definido. Está claro que la capa de salida objetivo para el conjunto de capas 0 es la capa 0 (la capa base).
[0152] En consecuencia, como puede observarse más arriba, cada capa debe hacer referencia a un SPS. Convencionalmente, dos capas cualesquiera que tengan valores diferentes de resoluciones espaciales, profundidades de bits o formatos de color deben hacer referencia a dos SPS diferentes, ya que estos parámetros de formato de representación se señalizan en el SPS. Sin embargo, cuando estos parámetros para todos los SPS, excepto aquellos con nuh_layer_id igual a 0, se mueven al VPS, y cuando se especifica que los parámetros del formato de representación en un SPS con nuh_layer_id igual a 0 al que hace referencia una capa con nuh_layer_id mayor que 0 se ignoran, es posible que capas con diferentes valores de resoluciones espaciales, profundidades de bits o formatos de color hagan referencia a los mismos SPS. En otras palabras, de acuerdo con algunos modos de realización de esta divulgación, las capas con diferentes valores de resoluciones espaciales, profundidades de bits o formatos de color pueden compartir los mismos SPS, al igual que otros SPS.
[0153] Algunos ejemplos descritos en el presente documento pueden cambiar la sintaxis y la semántica de la señalización del conjunto de capas de salida. En algunos casos, esto puede resolver uno o más de los siguientes problemas; el primer de ellos es que, actualmente, se puede señalizar como máximo un conjunto de capas de salida para cada conjunto de capas. En escenarios multivista, a menudo sucede que un conjunto de capas está asociado a múltiples conjuntos de diferentes capas de salida objetivo. Por tanto, el elemento de sintaxis output_layer_flag[1sIdx][j] puede cambiarse a output_layer_flag [i][j], y la semántica relacionada se cambia en consecuencia. En consecuencia, se puede señalizar más de un conjunto de capas de salida para un conjunto de capas. En segundo lugar, actualmente, la sintaxis usa un bucle de ID de capa desde 0 hasta el ID de capa más grande posible en el VPS, lo cual es complejo. En cambio, sería mucho más simple usar un bucle de las capas en el conjunto de capas, excluyendo la capa más alta del conjunto de capas, ya que esa capa es seguramente una capa de salida objetivo.
[0154] Los cambios en la señalización de información acerca de un formato de representación (resolución espacial, formato de color y profundidad de bits en la ampliación de VPS) para la negociación de sesiones se indican mediante etiquetas entre corchetes [INICIO DEL EJEMPLO B] y [FIN DEL EJEMPLO B] que se utilizarán en esta propuesta para indicar el ejemplo B. El formato de representación se señaliza para cada capa, incluida la capa base, a través de un índice a una lista de dicha información, y no se señaliza en SPS con nuh_layer_id mayor que 0, igual que para la estructura de sintaxis profile_tier_level( ). En consecuencia, esto también reduce el envío redundante de la misma información de formato de representación en diferentes SPS con nuh_layer_id mayor que 0. Cuando un SPS con nuh_layer_id igual a 0 es referido por una capa con un nuh_layer_id mayor que 0, los valores de los elementos de sintaxis chroma_format_idc, separate_colour_plane_flag, pic_width_in_luma_samples, pic_height_in_luma_samples, bit_depth_luma_minus8 y bit_depth_chroma_minus8 no se aplican para esa capa.
[0155] Cuando se realiza una señalización eficaz de parámetros SPS con control individual de diferentes categorías, los parámetros que pueden incluirse en los SPS se pueden clasificar en las seis categorías siguientes: (1) Cat1: información de perfil-capa-nivel, ya abordada en la codificación de vídeo de HEVC escalable (SHVC) WD1 y HEVC multivista (MV-HEVC) WD3 y anteriores, (2) Cat2: información de formato de representación, abordada anteriormente, (3) Cat3: información de subcapa (sps_max_sub_layers_minus1, sps_temporal_id_nesting_flag, sps_max_dec_pic_buffering_minus1 [i], sps_max_num_rcorder_pics[i] y sps_max_latency_increase_plus1[i]) (Estos cambios se indican mediante etiquetas entre corchetes [INICIO DEL EJEMPLO C] y [FIN DEL EJEMPLO C] que se utilizarán en esta propuesta para indicar el ejemplo C, al que también se hace referencia como Cat3), (4) Cat4: candidatos a conjunto de imágenes de referencia (RPS) a corto plazo (los cambios para esto se indican mediante etiquetas entre corchetes [INICIO DEL EJEMPLO D] y [FIN DEL EJEMPLO D], que se utilizarán en esta propuesta para indicar el ejemplo D, al que también se hace referencia como Cat4, (5) Cat5: Parámetros de información de usabilidad de vídeo (VUI) (los cambios para esto se indican mediante etiquetas entre corchetes [INICIO DEL EJEMPLO E] y [FIN DEL EJEMPLO E], que se utilizarán en esta propuesta para indicar el ejemplo E, al que también se hace referencia como Cat 5), y (6) Cat6: otros parámetros de SPS; los cambios para esto y los cambios comunes se indican mediante etiquetas entre corchetes [INICIO DEL EJEMPLO F] y [FIN DEL EJEMPLO F] que se utilizarán en esta propuesta para indicar el ejemplo F, al que también se hace referencia como Cat6.
[0156] Para capas de mejora o conjuntos de capas que involucran capas de mejora, la información de las categorías 3 a 6 puede heredarse del VPS activo o señalizarse directamente en el SPS, mientras que la información de las categorías 1 y 2 debe señalizarse en el VPS debido a la importancia para negociación de sesiones. En un SPS con un nuh_layer_id mayor que 0, como mínimo solo hay tres elementos de sintaxis para señalizar el ID de VPS, el ID de SPS y una bandera (para indicar si los datos de las categorías 3 a 6 (Cat3 a Cat6) están presentes en el SPS o se heredan del VPS activo). La función de un SPS ficticio de este tipo es simplemente pasar el ID de VPS activo a los conjuntos de parámetros de imagen (PPS) y, por tanto, indirectamente a las unidades de capa de abstracción de red (NAL) de capa de codificación de vídeo (VCL).
[0157] Los siguientes cambios están basados en MV-HEVC WD3 y SHVC WD1 y se identifican mediante diferentes códigos de color, es decir, resaltados en diferentes colores, como se indicó anteriormente, y las eliminaciones se muestran como textos tachados. Las partes que no se mencionan son las mismas que en MV-HEVC WD3 y SHVC WD1.
[0158] A continuación, en la Tabla 3, se ilustra una sintaxis de ejemplo para un conjunto de parámetros de vídeo (VPS) para la sintaxis y la semántica de la carga útil de secuencia de octetos sin procesar (RBSP). Esto es lo mismo que en SHVC WD1 y MV-HEVC WD3. La sintaxis se copia a continuación (en la Tabla 3) para mayor comodidad.
Tabla 3- Sintaxis de ejemplo para VPS para sintaxis y semántica de RBSP
Figure imgf000023_0001
Figure imgf000024_0001
[0159] La Tabla 4 ilustra un ejemplo de ampliación y semántica del conjunto de parámetros de vídeo.
Tabla 4 - Sintaxis y semántica de ampliación del conjunto de parámetros de vídeo
Figure imgf000024_0002
Figure imgf000025_0001
Figure imgf000026_0001
___________________________________________________________
[INICIO DEL EJEMPLO A]
[0160] El parámetro vps_num_profile_tier_level_minus1 1 especifica el número de estructuras de sintaxis profile_tier_level( ) en el VPS. El vps_profile_present_flag[i] igual a 1 especifica que la información de perfil y clase está presente en la i-ésima estructura de sintaxis profile_tier_level( ). vps_profile_present_flag [lsIdx] igual a 0 especifica que la información de perfil y clase no está presente en la i-ésima estructura de sintaxis profile_tier_level( ) y puede inferirse para la i-ésima estructura de sintaxis profile_tier_level( ).
[0161] El parámetro profile_minus1[i] especifica que puede inferirse que la información de perfil y clase para la iésima estructura de sintaxis profile_tier_level( ) es igual a la información de perfil y clase para la (profile_ref_minus1[i] 1)-ésima estructura de sintaxis profile_tier_level( ). El valor de profile_ref_minus1[i]+1 puede ser menor que i.
[0162] El parámetro direct_dependency_flag[i][j] igual a 0 especifica que la capa con índice j no es una capa de referencia directa para la capa con índice i. direct_dependency_flag[i][j] igual a 1 especifica que la capa con índice j puede ser una capa de referencia directa para la capa con índice i. Cuando direct_dependency_flag [i][j] no está presente para i y j en el intervalo de 0 a vps_max_layers_minus1, se puede inferir que es igual a 0.
[0163] Las variables NumDirectRefLayers[i] y RefLayerId[i][j] pueden obtenerse de la siguiente manera:
for(i = 1; i <= vps_max_layers_minus1; i++)
for(j = 0, NumDirectRefLayers[i] = 0; j < i; j++) if(direct_dependency_flag[i][j] = = 1) RefLayerId[i][NumDirectRefLayers[i]++] = layer_id_in_nuh[j] [FIN DEL EJEMPLO A]
[0164] [INICIO DEL EJEMPLO B] El parámetro vps_num_rep_formats especifica el número de las siguientes estructuras sintaxis rep_format( ) en el VPS. El vps_rep_format_idx[i] especifica el índice, en el conjunto de estructuras de sintaxis rep_format( ) en el VPS, de la estructura de sintaxis rep_format( ) que se aplica a la capa con nuh_layer_id igual a layer_id_in_nuh[i]. Cuando i es igual a 0 o vps_num_rep_formats es igual a 1, se puede inferir que el valor de vps_rep_format_idx[i] es igual a 0. El valor de vps_rep_format_idx[i] puede estar en el intervalo de 0 a vps_num_rep_formats - 1, ambos inclusive. [FIN DEL EJEMPLO B]
[0165] [INICIO DEL EJEMPLO C] max_sub_layers_vps_predict_flag[i] igual a 1 especifica que puede inferirse que max_sub_layers_vps_minus1[i] es igual a max_sub_layers_vps_minus1 [i-1] y que sub_layer_vps_ordering_predict_flag está presente. max_sub_layers_vps_predict_flag[i] igual a 0 especifica que max_sub_layers_vps_minus1[i] se señaliza explícitamente. Puede inferirse que el valor de max_sub_layers_vps_predict_flag[0] es igual a 0.
[0166] El parámetro max_sub_layers_vps_minus1[i] se usa para la inferencia del elemento de sintaxis de SPS sps_max_sub_layers_minus1. Cuando max_sub_layers_vps_predict_flag[i] es igual a 1, puede inferirse que max_sub_layers_vps_minus1[i] es igual a max_sub_layers_vps_minus1[i - 1]. Puede inferirse que el valor de max_sub_layers_vps_minus1[i] es igual a vps_max_sub_layers_minus1. [FIN DEL EJEMPLO C] [INICIO DEL EJEMPLO A] multiple_output_layer_sets_in_layer_set_flag igual a 1 especifica que el VPS puede especificar más de un conjunto de capas de salida para cada conjunto de capas. multiple_output_layer_sets_in_layer_set_flag igual a 0 especifica que el VPS solo especifica un conjunto de capas de salida para cada conjunto de capas, siendo la capa más alta la única capa de salida objetivo. En consecuencia, puesto que multiple_output_layer_sets_in_layer_set_flag igual a 0 especifica que el VPS solo especifica un conjunto de capas de salida para cada conjunto de capas, siendo la capa más alta la única capa de salida objetivo, no es necesaria una señalización explícita de capas de salida objetivo para los conjuntos de capas de salida predeterminados. Por ejemplo, no es necesario señalizar qué capas se van a proporcionar porque solo hay un conjunto de capas de salida para cada conjunto de capas.
[0167] El parámetro num_output_layer_sets_minus1 1 especifica el número de conjuntos de capas de salida especificados por el VPS. El valor de num_output_layer_sets_minus1 puede estar en el intervalo de 0 a 1023, ambos inclusive. [FIN DEL EJEMPLO A]
[0168] De forma alternativa, en lugar de num_output_layer_sets_minus1, se puede señalizar num_addn_output_layer_sets, que indica el número {de conjuntos de capas de salida además de vps_num_layers_sets_minus1 1 .
[0169] [INICIO DEL EJEMPLO A] El parámetro output_layer_set_idx_minus1[i] 1 especifica el índice del conjunto de capas para el i-ésimo conjunto de capas de salida. El valor de output_layer_set_idx_minus1[i] puede estar en el intervalo de 0 a vps_num_layer_sets_minus1 - 1, ambos inclusive. La longitud del elemento de sintaxis output_layer_set_idx_minusl[i] es de Ceil(Log2(vps_num_layer_sets_minus1)) bits
[0170] output_layer_flag[i][j] igual a 1 especifica que la j-ésima capa del conjunto de capas es una capa de salida objetivo del i-ésimo conjunto de capas de salida. output_layer_flag[i][j] igual a 0 especifica que la j-ésima capa en el conjunto de capas no es una capa de salida objetivo del i-ésimo conjunto de capas de salida.
[0171] Puede inferirse que el valor de output_layer_flag[i][NumLayersInIdList[lsIdx]-1] es igual a 1, donde lsldx es igual a output_layer_set_idx_minus1[i] 1. [FIN DEL EJEMPLO A]
[0172] De forma alternativa, se puede inferir que el valor de output_layer_flag[i][NumLayersInIdList[1sIdx]-1] es igual a 1, donde lsldx es igual a output_layer_set_idx_minus1[i] 1 e i está en el intervalo de 0 a vps_num_layer_sets_minus1, ambos inclusive, y puede inferirse que el valor de output_layer_flag[i][j] es igual a 0 para i en el intervalo de 0 a vps_num_layer_sets_minus1, ambos inclusive, y j en el intervalo de 0 a NumLayerIdInList[lsIdx] - 2, ambos inclusive, y lsIdx es igual a output_layer_set_idx_minus1[i] 1.
[0173] [INICIO DEL EJEMPLO A] El parámetro profile_level_tier_idx[i] especifica el índice, en el conjunto de estructuras de sintaxis profile_tier_level( ) del VPS, de la estructura de sintaxis profile_tier_level( ) que se aplica al i-ésimo conjunto de capas de salida. La longitud del elemento de sintaxis profile_level_tier_idx[i] puede ser de Ceil(Log2(vps_num_profile_tier_level_minus1 1)) bits. Puede inferirse que el valor de profile_level_tier_idx[0] es igual a 0. El valor de profile_level_tier_idx[i] puede estar en el intervalo de 0 a vps_num_profile_tier_level_minus1, ambos inclusive. [FIN DEL EJEMPLO A]
[0174] [INICIO DEL EJEMPLO F] El parámetro vps_num_other_sps_params especifica el número de las siguientes estructuras sintaxis other_sps_parameters( ) en el VPS. El valor de vps_num_other_sps_params puede estar en el intervalo de 0 a 15, ambos inclusive. [FIN DEL EJEMPLO F]
[0175] [INICIO DEL EJEMPLO D] El parámetro vps_num_st_rps_candidates especifica el número de las siguientes estructuras short_term_rps_candidates( ) en el VPS. El valor de vps_num_st_rps_candidates puede estar en el intervalo de 0 a 15, ambos inclusive. [FIN DEL EJEMPLO D]
[0176] [INICIO DEL EJEMPLO E] El parámetro vps_num_vui_params especifica el número de las siguientes estructuras sintaxis vui_parameters( ) en el VPS. El valor de vps_num_vui_params puede estar en el intervalo de 0 a 15, ambos inclusive. [FIN DEL EJEMPLO E]
[0177] [INICIO DEL EJEMPLO F] vps_other_sps_params_idx[i] especifica el índice, en el conjunto de estructuras de sintaxis other_sps_parameters( ) en el VPS, de la estructura de sintaxis other_sps_parameters( ) que se aplica a la capa con nuh_layer_id igual a layer_id_in_nuh[i]. La longitud del elemento de sintaxis vps_other_sps_params_idx[i] puede ser de Ceil(Log2(vps_num_other_sps_params)) bits. Cuando vps_num_other_sps_params es igual a 1, se puede inferir que el valor de vps_other_sps_params_idx[i] es igual a 0. El valor de vps_other_sps_params_idx[i] puede estar en el intervalo de 0 a vps_num_other_sps_params - 1, ambos inclusive. [FIN DEL EJEMPLO F]
[0178] [INICIO DEL EJEMPLO D] El parámetro vps_st_rps_idx[i] especifica el índice, en el conjunto de estructuras de sintaxis short_term_rps_candidates( ) en el VPS, de la estructura de sintaxis short_term_rps_candidates( ) que se aplica a la capa con nuh_layer_id igual a layer_id_in_nuh[i]. La longitud del elemento de sintaxis vps_st_rps_idx[i] puede ser de Ceil(Log2(vps_num_st_rps_candidates)) bits. Cuando vps_num_st_rps_candidates es igual a 1, se puede inferir que el valor de vps_st_rps_idx[i] es igual a 0. El valor de vps_st_rps_idx[i] puede estar en el intervalo de 0 a vps_num_st_rps_candidates - 1, ambos inclusive. [FIN DEL EJEMPLO D]
[0179] [INICIO DEL EJEMPLO E] El parámetro vps_vui_params_idx[i] especifica el índice, en el conjunto de estructuras de sintaxis vui_parameters( ) en el VPS, de la estructura de sintaxis vui_parameters( ) que se aplica a la capa con nuh_layer_id igual a layer_id_in_nuh[i]. La longitud del elemento de sintaxis vps_vui_params_idx[i] puede ser de Ceil(Log2(vps_num_vui_params)) bits. Cuando vps_num_vui_params es igual a 1, se puede inferir que el valor de vps_vui_params_idx[i] es igual a 0. El valor de vps_vui_params_idx[i] puede estar en el intervalo de 0 a vps_num_vui_params - 1, ambos inclusive. [FIN DEL EJEMPLO E]
[0180] [INICIO DEL EJEMPLO C] La variable MaxSubLayers[setId] para setId en el intervalo de 0 a num_output_layer_sets - 1, ambos inclusive, se obtiene de la siguiente manera:
for(setId = 0; setId < num_output_layer_sets; setId++) {
lsldx = outptut_layer_set_idx_minus1[setId] 1 // Índice de conjunto de capas highestLayerId =
LayerSetLayerIdList[lsId][NumLayersInIdList[lsIdx]-1]
}MaxSubLayers[setId] = (max_sub_layers_vps_minus1[highestLayerId]+ 1)
[0181] El parámetro max_sub_layers_vps_predict_flag[i] igual a 1 especifica que puede inferirse que max_sub_layers_vps_minus1[i] es igual a max_sub_layers_vps_minus1 [i-1] y que sub_layer_vps_ordering_predict_flag está presente. max_sub_layers_vps_predict_flag[i] igual a 0 especifica que max_sub_layers_vps_minus1[i] se señaliza explícitamente. Puede inferirse que el valor de max_sub_layers_vps_predict_flag[0] es igual a 0.
[0182] El parámetro sub_layer_vps_buf_info_predict_flag[i] igual a 1 especifica que puede inferirse que max_vps_dec_pic_buffering_minus1[i][j] es igual a max_vps_dec_pic_buffering_minus1[i-1][j] para cada valor de j. sub_layer_vps_buf_info_predict_flag[i] igual a 0 especifica que max_vps_dec_pic_buffering_minus1[i][j] para al menos un valor de j se señaliza explícitamente.
[0183] El parámetro sub_layer_vps_buf_info_present_flag[i] igual a 1 especifica que max_vps_dec_pic_buffering_minus1[i][j] está presente para las subcapas MaxSubLayers[i]. sub_layer_vps_buf_info_present_flag[i] igual a 0 especifica que los valores de max_vps_dec_pic_buffering_minus1[i][MaxSubLayers [i]-1] se aplican a todas las subcapas.
[0184] El parámetro max_vps_dec_pic_buffering_minus1[i][j] se usa para la inferencia de los valores de los elementos de sintaxis de SPS sps_max_dec_pic_buffering_minus1[j]. Cuando max_vps_dec_pic_buffering_minus1[i][j] no está presente para i en el intervalo de 0 a MaxSubLayers [i] - 2, ambos inclusive, debido a que sub_layer_vps_buf_info_present_flag [i] es igual a 0, se puede inferir que es igual a max_vps_dec_pic_buffering_minus1[i][MaxSubLayers[i]- 1].
[0185] Puede inferirse que el valor de max_vps_dec_pic_buffering_minus1[0][j] para cada valor de j es igual a vps_max_dec_pic_buffering_minus1 [j].
[0186] El parámetro sub_layer_vps_ordering_info_predict_flag[i] igual a 1 especifica que se infiere que los elementos de sintaxis sub_layer_vps_ordering_info_present_flag [i], max_vps_num_reorder_pics[i][j] y max_vps_latency_increase_plus1[i][j] son iguales a sub_layer_vps_ordering_info_present_flag[i-1], max_vps_num_reorder_pics[i-1][j] y max_vps_latency_increase_plus1[i-1][j] respectivamente. sub_layer_vps_ordering_info_predict_flag[i] igual a 0 indica que los elementos de sintaxis sub_layer_vps_ordering_info_present_flag[i], max_vps_num_reorder_pics[i][j] y max_vps_latency_increase_plus1[i][j] están explícitamente señalizados. Cuando no está presente, el valor de sub_layer_vps_ordering_info_predict_flag[i] es igual a 0.
[0187] El parámetro sub_layer_vps_ordering_info_present_flag[i] igual a 1 especifica que max_vps_num_reorder_pics[i][j] y max_vps_latency_increase_plus1[i][j] están presentes para max_sub_layers_vps_minus1 1 subcapas. sub_layer_vps_ordering_info_present_flag [i] igual a 0 especifica que los valores de max_vps_num_reorder_pics [i][vps_max_sub_layers_minus1] y max_vps_latency_increase_plus1[i][max_sub_layers_vps_minus] se aplican a todas las subcapas.
[0188] El parámetro max_vps_num_reorder_pics[i][j] se usa para la inferencia de los valores del elemento de sintaxis sps_max_num_reorder_pics[j] de SPS. Cuando max_vps_num_reorder_pics[i][j] no está presente para i en el intervalo de 0 a max_sub_layers_vps_minus1[i]-1, ambos inclusive, debido a que sub_layer_vps_ordering_info_present_flag[i] es igual a 0, se puede inferir que es igual a max_vps_num_reorder_pics[i][max_sub_layers_vps_minus1[i]].
[0189] El parámetro max_vps_latency_increase_plus1[i][j] se usa para la inferencia de los valores de los elementos de sintaxis de SPS sps_max_latency_increase_plus1[j]. Cuando max_vps_latency_increase_plus1[i][j] no está presente para i en el intervalo de 0 a max_sub_layers_vps_minus1[i]-1, ambos inclusive, debido a que sub_layer_vps_ordering_info_present_flag[i] es igual a 0, se puede inferir que es igual a max_vps_latency_increase_plus1[i][max_sub_layers_vps_minus1[i]]. [FIN DEL EJEMPLO C]
[INICIO DEL EJEMPLO B]
[0190] La Tabla 5 ilustra un ejemplo de un formato y una semántica representativos.
Tabla 5 - Sintaxis y semántica de formato de representación
Figure imgf000028_0001
Figure imgf000029_0001
____________________________________________________________
[0191] Los parámetros chroma_format_vps_idc, separate_colour_plane_vps_flag, pic_width_vps_in_luma_samples, pic_height_vps_in_luma_samples, bit_depth_vps_luma_minus8 y bit_depth_vps_chroma_minus8 se pueden usar para la inferencia de los valores de elementos de sintaxis de SPS chroma_format_idc, separate_colour_plane_flag, pic_width_in_luma_samples, pic_height_in_luma_samples, bit_depth_luma_minus8 y bit_depth_chroma_minus8, respectivamente, para cada SPS que hace referencia al VPS. Para cada uno de estos elementos de sintaxis, también se aplican todas las restricciones, si las hay, que se aplican al valor del elemento de sintaxis de SPS correspondiente. [FIN DEL EJEMPLO B] La información del formato de representación puede incluir, en general, profundidad de bits, formato de muestreo de croma, resolución de las secuencias, por ejemplo. Como se ilustra en el ejemplo de la Tabla 5, el formato de representación puede incluir chroma_format_vps_idc, separate_colour_plane_vps_flag, pic_width_vps_in_luma_samples, pic_height_vps_in_luma_samples, bit_depth_vps_luma_minus8 y bit_depth_vps_chroma_minus8. Además, como se ilustra en la Tabla 5, la señalización del formato de representación en el VPS se puede realizar de manera que el formato de representación, por ejemplo, chroma_format_vps_idc, separate_colour_plane_vps_flag, pic_width_vps_in_luma_samples, pic_height_vps_in_luma_samples, bit_depth_vps_luma_minus8 y bit_depth_vps_chroma_minus8, es accesible sin descodificación por entropía. En otras palabras, como se ilustra en la Tabla 5, chroma_format_vps_idc, separate_colour_plane_vps_flag, pic_width_vps_in_luma_samples, pic_height_vps_in_luma_samples, bit_depth_vps_luma_minus8 y bit_depth_vps_chroma_minus8 no están codificados por entropía, es decir, los descriptores no son ue(v). En algunos ejemplos, cada capa puede estar asociada a un formato de representación particular.
[0192] [INICIO DEL EJEMPLO F] La Tabla 6 ilustra un ejemplo de sintaxis y semántica de otros parámetros de SPS.
Tabla 6 - Sintaxis y semántica de otros parámetros de SPS
Figure imgf000029_0002
Figure imgf000030_0001
___________________________________________________________________
[0193] Para cada uno de los elementos de sintaxis siguientes, también se aplican todas las restricciones, si las hay, que se aplican al valor del elemento de sintaxis de SPS correspondiente:
conformance_window_vps_flag, conf_win_vps_left_offset, conf_win_vps_right_offset, conf_win_vps_top_offset, conf_win_vps_bottom_offset,
log 2_vps_m ax_p ic_o rd e r_c nt_l s b_m inus4,
log2_vps_min_luma_coding_block_size_minus3,
log 2_vps_d iff_m ax_m in_lum a_cod ing_b lock_s ize,
log2_vps_min_transform_block_size_minus2,
log2_vps_diff_max_min_transform_block_size,
max_vps_transform_hierarchy_depth_inter, max_vps_transform_hierarchy_depth_intra,
scaling_list_enabled_vps_flag, sps_scaling_list_data_present_vps_flag,
amp_enabled_vps_flag, sample_adaptive_offset_enabled_vps_flag,
pcm_enabled_vps_flag, pcm_vps_sample_bit_depth_luma_minus1,
pcm_vps_sample_bit_depth_chroma_minus1,
log2_vps_min_pcm_luma_coding_block_size_minus3,
log2_vps_diff_max_min_pcm_luma_coding_block_size,
pcm_vps_loop_filter_disabled_flag, long_term_ref_pics_present_vps_flag,
num_long_term_ref_pics_vps, lt_ref_pic_poc_lsb_vps[i],
used_by_curr_pic_lt_vps_flag[i], temporal_mvp_enabled_vps_flag, y
strong_intra_smoothing_enabled_vps_flag se pueden usar para la inferencia de los valores de la bandera de ventana de conformidad de elementos de sintaxis de SPS, conf_win_left_offset,
conf_win_right_offset, conf_win_top_offset, conf_win_bottom_offset,
log2_max_pic_order_cnt_lsb_minus4, log2_min_luma_coding_block_size_minus3,
log2_diff_max_min_luma_coding_block_size,
log2_min_transform_block_size_minus2, log2_diff_max_min_transform_block_size,
max_transform_hierarchy_depth_inter, max_transform_hierarchy_depth_intra,
scaling_list_enabled_flag, sps_scaling_list_data_present_flag, amp_enabled_flag,
sample_adaptive_offset_enabled_flag, pcm_enabled_flag,
pcm_sample_bit_depth_luma_minus1, pcm_sample_bit_depth_chroma_minus1, log2_min_pcm_luma_coding_block_size_minus3,
log2_diff_max_min_pcm_luma_coding_block_size, pcm_loop_filter_disabled_flag, long_term_ref_pics_present_flag, num_long_term_ref_pics_sps,
lt_ref_pic_poc_lsb_sps[i], used_by_curr_pic_lt_flag[i],
sps_temporal_mvp_enabled_flag y strong_intra_smoothing_enabled_flag, respectivamente. [FIN DEL EJEMPLO F]
[0194] [INICIO DEL EJEMPLO D] La Tabla 7 ilustra un ejemplo de sintaxis y semántica de candidatos a RPS a corto plazo.
Tabla 7 - Sintaxis y semántica de candidatos a RPS a corto plazo
Figure imgf000031_0001
[0195] El parámetro num_short_term_ref_pic_sets especifica el número de las siguientes estructuras de sintaxis short_term_ref_pic_set( ). El valor de num_short_term_ref_pic_sets puede estar en el intervalo entre 0 y 64, ambos inclusive.
[0196] NOTA 1 - Un descodificador debería asignar memoria para un número total de num_short_term_ref_pic_sets 1 estructuras de sintaxis short_term_ref_pic_set( ), ya que puede haber una estructura de sintaxis short_term_ref_pic_set( ) señalizada directamente en las cabeceras de fragmento de una imagen actual. Una estructura de sintaxis short_term_ref_pic_set( ) señalizada directamente en las cabeceras de fragmento de una imagen actual tiene un índice igual a num_short_term_ref_pic_sets.
[0197] El parámetro pred_st_rps_cand_idx_plus1 - 1 especifica el índice, en el conjunto de estructuras de sintaxis short_term_rps_candidates( ) en el VPS, de la estructura de sintaxis short_term_rps_candidates( ) que se usa para inferir al menos una estructura de sintaxis short_term_ref_pic_set( ) de la estructura de sintaxis short_term_rps_candidates( ) actual. Cuando no está presente, se puede inferir que pred_st_rps_cand_idx_plus1 es igual a 0. El valor de pred_st_rps_cand_idx_plus1 puede estar en el intervalo de 1 a vps_num_st_rps_candidates - 1, ambos inclusive.
[0198] Tener pred_from_rps_cand_list_flag[i] igual a 1 especifica que la i-ésima estructura de sintaxis short_term_ref_pic_set( ) de la estructura de sintaxis short_term_rps_candidates( ) actual no está presente y está configurada para ser una de las estructuras de sintaxis short_term_ref_pic_set( ) presentes en otra estructura de sintaxis short_term_rps_candidates( ). pred_from_rps_cand_list_flag [i] igual a 0 especifica la i-ésima estructura de sintaxis short_term_ref_pic_set( ) de la estructura de sintaxis short_term_rps_candidates( ) actual está presente. Cuando no está presente, se puede inferir que el valor de pred_from_rps_cand_list_flag[i] es igual a 0 [FIN DEL EJEMPLO D].
[0199] De forma alternativa, pred_from_rps_cand_list_flag[i] igual a 1 especifica que se deduce que las variables DeltaPocSO, DeltaPocS1, UsedByCurrPicS1, UsedByCurrPicSO, NumPositivePics, NumNegativePics y NumDeltaPocs correspondientes al i-ésimo short_ter_ref_pic_set( ) son iguales a las variables DeltaPocSO, DeltaPocS1, UsedByCurrPicS1, UsedByCurrPicSO, NumPositivePics, NumNegativePics y NumDeltaPocs, respectivamente, que corresponden a otra estructura short_term_rps_candidates( ).
[0200] [INICIO DEL EJEMPLO D] El parámetro idx_in_rps_cand[i] especifica el índice, en el conjunto de estructuras de sintaxis short_term_ref_pic_set( ) de la (pred_st_rps_cand_idx_plus1-1)-ésima estructura de sintaxis short_term_rps_candidates( ) en el VPS, de la estructura de sintaxis short_term_ref_pic_set( ) que es idéntica a la i-ésima estructura de sintaxis short_term_ref_pic_set( ) de short_term_rps_candidates( ) actual.
[0201] Cuando pred_from_rps_cand_list_flag[i] es igual a 1, la i-ésima estructura de sintaxis short_term_ref_pic_set( ) en la estructura de sintaxis short_term_rps_candidates( ) actual se establece para ser la misma que la (idx_in_rps_cand [i])-ésima estructura de sintaxis short_term_ref_pic_set( ) de la (pred_st_rps_cand_idx_plus1 - 1)-ésima estructura de sintaxis short_term_rps_candidates( ) en el VPS [FIN DEL EJEMPLO D].
[0202] De forma alternativa, cuando pred_from_rps_cand_list_flag[i] es igual a 1, las variables DeltaPocSO, DeltaPocS1, UsedByCurrPicS1, UsedByCurrPicSO, NumPositivePics, NumNegativePics y NumDeltaPocs correspondientes a la i-ésima estructura de sintaxis short_term_ref_pic_set( ) en la estructura sintáctica short_term_rps_candidates( ) actual es igual a las variables DeltaPocSO, DeltaPocS1, UsedByCurrPicS1, UsedByCurrPicSO, NumPositivePics, NumNegativePics y NumDeltaPocs, respectivamente, que corresponden a la idx_in_rps_cand[i]-ésima estructura de sintaxis short_term_ref_pic_set( ) de la (pred_st_rps_cand_idx_plus1 -1)-ésima estructura de sintaxis short_term_rps_candidates( ) en el VPS. La Tabla 8 ilustra un ejemplo de sintaxis y semántica de parámetros de VUI.
Tabla 8- Sintaxis y semántica de los parámetros de VUI
Figure imgf000032_0001
Figure imgf000033_0001
[0203] [INICIO DEL EJEMPLO E] Cuando timingParamsPresentFIag es igual a 0, se aplica lo siguiente: Los valores de vui_timing_info_present_flag, vui_num_units_in_tick, vui_time_scale, vui_poc_proportional_to_timing_flag y vui_num_ticks_poc_diff_one_minus1 se infieren para ser iguales a vps_timing_info_present_flag, vps_num_units_in_tick, vps_time_scale, vps_poc_proportional_to_timing_flag y vps_num_ticks_poc_diff_one_minus1, respectivamente. Puede inferirse que el valor de vui_hrd_parameters_present_flag es igual a 0.
[0204] El parámetro vui_parameters_present_flag igual a 1 especifica que hay más elementos de sintaxis en la estructura de sintaxis vui_parameters( ). vui_parameters_present_flag igual a 0 especifica que no hay más elementos de sintaxis en la estructura de sintaxis vui_parameters ().... [FIN DEL EJEMPLO E].
[0205] En un ejemplo, como puede verse en la Tabla 8, la información de señal visual (por ejemplo, video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs) es un subconjunto de los parámetros de VUI. Además, como se ilustra en el ejemplo de la Tabla 4, la VUI, y por lo tanto la información de señal visual, está en el VPS. Al combinar la información de la Tabla 4 y la Tabla 8, se muestra que la información de señal visual se señaliza por capa en el VPS.
[0206] La Tabla 9 ilustra un ejemplo de sintaxis y semántica de RBSP de conjunto de parámetros de secuencia.
Tabla 9 - Sintaxis y semántica de ampliación de RBSP de conjunto de parámetros de secuencia
Figure imgf000033_0002
Figure imgf000034_0001
Figure imgf000035_0001
[INICIO DEL EJEMPLO B]
[0207] Cuando nuh_layer_id del SPS es igual a 0, los valores de chroma_format_idc, separate_colour_plane_flag, p¡c_w¡dth_in_luma_samples, pic_height_in_luma_samples, bit_depth_luma_minus8 y bit_depth_chroma_minus8 pueden ser iguales a chroma_format_vps_idc, separate_colour_plane_vps_flag, pic_width_vps_in_luma_samples, pic_height_vps_in_luma_samples, bit_depth_vps_luma_minus8 y bit_depth_vps_chroma_minus8, respectivamente, de la 0-ésima estructura de sintaxis rep_format( ) en el VPS activo.
[0208] Para cada capa con nuh_layer_id mayor que 0 que hace referencia al SPS, donde layerIdx se establece igual al valor para el cual layer_id_in_nuh[layerIdx] es igual al nuh_layer_id de la capa, se aplica lo siguiente: [FIN DEL EJEMPLO B]
[0209] [INICIO DEL EJEMPLO A] Cuando nuh_layer_id del SPS es igual a 0, se ignora la estructura de sintaxis profile_tier_level( ) del SPS. [FIN DEL EJEMPLO A]
[0210] Como se ilustra en la Tabla 8 y la Tabla 9, no se señaliza información de temporización en una VUI de SPS, por ejemplo, para cualquier capa mayor que la capa 0.
- [INICIO DEL EJEMPLO B] Se infiere que los valores de chroma_format_idc, separate_colour_plane_flag, pic_width_in_luma_samples, pic_height_in_luma_samples, bit_depth_luma_minus8 y bit_depth_chroma_minus8 son iguales a chroma_format_vps_idc, separate_colour_plane_vps_flag, pic_width_vps_in_luma_samples, pic_height_vps_in_luma_samples, bit_depth_vps_luma_minus8 y bit_depth_vps_chroma_minus8, respectivamente, de la vps_rep_format_idx[layerIdx]-ésima estructura de sintaxis rep_format( ) en el VPS activo, independientemente de si estos elementos de sintaxis están presentes en el VPS. [FIN DEL EJEMPLO B]
[0211] [INICIO DEL EJEMPLO F] El parámetro inherit_sps_params_from_vps_flag igual a 1 especifica que, para la RBSP de SPS, los valores de todos los elementos de sintaxis y estructuras de sintaxis hasta el elemento de sintaxis sps_extension_flag, distintos de los elementos de sintaxis sps_video_parameter_set_id y sps_seq_parameter_set_id, pueden inferirse a partir del VPS activo. inherit_sps_params_from_vps_flag igual a 0 especifica que estos valores no se heredan del VPS activo. Cuando no está presente, se puede inferir que el valor de inherit_sps_params_from_vps_flag es igual a 0. Cuando vps_num_rep_formats, vps_num_other_sps_params, vps_num_st_rps_candidates o vps_num_vui_params es igual a 0, el valor de inherit_sps_params_from_vps_flag puede ser igual a 0. Cuando inherit_sps_params_from_vps_flag es igual a 1, se aplica lo siguiente: [FIN DEL EJEMPLO F]
[0212] [INICIO DEL EJEMPLO C] Puede inferirse que el valor de sps_max_sub_layers_minus1 para cada capa que hace referencia al SPS es igual a max_sub_layers_vps_minus1 [layerIdx], donde layerIdx es igual al valor para el cual layer_id_in_nuh[layerIdx] es igual a nuh_layer_id.
[0213] Puede inferirse que los valores de sps_max_dec_pic_buffering_minus1[i] para cada capa que hace referencia al SPS son iguales a max_vps_dec_pic_buffering_minus1[lsIdx][i] para i en el intervalo de 0 a MaxSubLayers[lxIdx]-1, ambos inclusive, donde lsldx está en el intervalo de 0 a vps_num_layer_sets_minus1, ambos inclusive, y denota el índice, en el conjunto de conjuntos de capas de salida especificado por el VPS, del conjunto de capas de salida para el cual la capa es la capa más alta y la única capa de salida objetivo.
[0214] Se infiere que los valores de sps_max_num_reorder_pics[i] y sps_max_latency_increase_plus1 [i] para cada capa que hace referencia al SPS son iguales a max_vps_num_reorder_pics[layerIdx][i] y max_vps_latency_increase_plus1[layerIdx][i], donde el valor de layerIdx es igual al valor para el cual layer_id_in_nuh[layerIdx] es igual al nuh_layer_id de la capa, para i en el intervalo de 0 a sps_max_sub_layers_minus1, ambos inclusive. Se puede inferir que el valor de sps_temporal_id_nesting_flag para cada capa que hace referencia al SPS es igual a vps_temporal_id_nesting_flag [FIN DEL EJEMPLO C].
[0215] Como se puede observar en el análisis anterior y en la Tabla 9, algunos ejemplos no señalizan sps_max_sub_layers_minus1 ni sps_temporal_id_nesting_flag cuando nuh_layer_id> 0.
[0216] [INICIO DEL EJEMPLO F] Se infiere que los valores de conformance_window_flag, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, conf_win_bottom_offset, log2_max_pic_order_cnt_lsb_minus4, log2_min_luma_coding_block_size_minus3, log2_diff_max_min_luma_coding_block_size, log2_min_transform_block_size_minus2, log2_diff_max_min_transform_block_size, max_transform_hierarchy_depth_inter, max_transform_hierarchy_depth_intra, scaling_list_enabled_flag, sps_scaling_list_data_present_flag, amp_enabled_flag, sample_adaptive_offset_enabled_flag, pcm_enabled_flag, pcm_sample_bit_depth_luma_minus1, pcm_sample_bit_depth_chroma_minus1, log2_min_pcm_luma_coding_block_size_minus3, log2_diff_max_min_pcm_luma_coding_block_size, pcm_loop_filter_disabled_flag, long_term_ref_pics_present_flag, num_long_term_ref_pics_sps, lt_ref_pic_poc_lsb_sps[i], used_by_curr_pic_lt_flag[i], sps_temporal_mvp_enabled_flag y strong_intra_smoothing_enabled_flag para cada capa que hace referencia al SPS son iguales a conformance_window_vps_flag, conf_win_vps_left_offset, conf_win_vps_right_offset, conf_win_vps_top_offset, conf_win_vps_bottom_offset, log2_vps_max_pic_order_cnt_lsb_minus4, log2_vps_min_luma_coding_block_size_minus3, log2_vps_diff_max_min_luma_coding_block_size, log2_vps_min_transform_block_size_minus2, log2_vps_diff_max_min_transform_block_size, max_vps_transform_hierarchy_depth_inter, max_vps_transform_hierarchy_depth_intra, scaling_list_enabled_vps_flag, sps_scaling_list_data_present_vps_flag, amp_enabled_vps_flag, sample_adaptive_offset_enabled_vps_flag, pcm_enabled_vps_flag, pcm_vps_sample_bit_depth_luma_minus1, pcm_vps_sample_bit_depth_chroma_minus1, log2_vps_min_pcm_luma_coding_block_size_minus3, log2_vps_diff_max_min_pcm_luma_coding_block_size, pcm_vps_loop_filter_disabled_flag, long_term_ref_pics_present_vps_flag, num_long_term_ref_pics_vps, lt_ref_pic_poc_lsb_vps[i], used_by_curr_pic_lt_vps_flag[i], temporal_mvp_enabled_vps_flag y strong_intra_smoothing_enabled_vps_flag, respectivamente, de la vps_other_sps_params_idx[layerIdx]-ésima estructura de sintaxis other_sps_parameters( ) en el VPS activo, donde layerIdx es igual al valor para el cual layer_id_in_nuh[layerIdx] es igual al nuh_layer_id de la capa.
[0217] Cuando sps_scaling_list_data_present_vps_flag es igual a 1, puede inferirse que el valor de la estructura de sintaxis scaling_list_data( ) para cada capa que hace referencia al SPS es igual a la estructura de sintaxis scaling_list_data( ) en la vps_other_sps_params_idx[layerIdx]-ésima estructura de sintaxis other_sps_parameters( ) en el VPS activo, donde layerIdx es igual al valor para el cual layer_id_in_nuh[layerIdx] puede ser igual al nuh_layer_id de la capa [FIN DEL EJEMPLO F].
[0218] [INICIO DEL EJEMPLO D] Puede inferirse que el valor de la estructura de sintaxis short_term_rps_candidates( ) para cada capa que hace referencia al SPS es igual a la vps_st_rps_idx[layerIdx]-ésima estructura de sintaxis short_term_rps_candidates( ) en el VPS activo, donde layerIdx es igual al valor para el cual layer_id_in_nuh[layerIdx] es igual al nuh_layer_id de la capa [FIN DEL EJEMPLO D].
[0219] [INICIO DEL EJEMPLO E] En algunos ejemplos, puede inferirse que el valor de la estructura de sintaxis vui_parameters( ) para cada capa que hace referencia al SPS es igual a la vps_vui_params_idx[layerIdx]-ésima estructura de sintaxis vui_parameters( ) en el VPS activo, donde layerIdx es igual al valor para el cual layer_id_innuh[layerIdx] es igual al nuh_layer_id de la capa [FIN DEL EJEMPLO E].
[0220] ...
[0221] Los parámetros conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset especifican las muestras de las imágenes en el flujo de vídeo codificado (CVS) que se proporcionan en el proceso de descodificación, en lo que respecta a una región rectangular especificada en las coordenadas de imagen para la salida. Cuando [INICIO DEL EJEMPLO F] inherit_sps_params_from_vps_flag es igual a 0 y [FIN DEL EJEMPLO F] conformance_window_flag es igual a 0, puede inferirse que los valores de conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset son iguales a 0.
[0222] La ventana de recorte de conformidad contiene las muestras de luminancia con coordenadas de imagen horizontales desde SubWidthC*conf_win_left_offset hasta pic_width_in_luma_samples (SubWidthC*conf_win_right_offset 1) y coordenadas de imagen verticales desde SubHeightC*conf_win_top_offset hasta pic_height_in_luma_samples -(SubHeightC*conf_win_bottom_offset 1), ambos inclusive.
[0223] El valor de SubWidthC*(conf_win_left_offset conf_win_right_offset) puede ser menor que pic_width_in_luma_samples, y el valor de SubHeightC*(conf_win_top_offset conf_win_bottom_offset) puede ser menor que pic_height_in_luma_samples.
[0224] Cuando ChromaArrayType no es igual a 0, las muestras especificadas correspondientes de las dos matrices de croma son las muestras que tienen coordenadas de imagen (x / SubWidthC, y / SubHeightC), donde (x, y) son las coordenadas de imagen de las muestras de luma especificadas.
[0225] NOTA 3 - Los parámetros de desplazamiento de ventana de recorte de conformidad solo se aplican en la salida. Todos los procesos de descodificación internos se aplican al tamaño de imagen sin recortar.
[0226] ...
[0227] El parámetro sps_sub_layer_ordering_info_present_flag igual a 1 [INICIO DEL EJEMPLO C], cuando inherit_sps_params_from_vps_flag es igual a 0, [FIN DEL EJEMPLO C] especifica que sps_max_dec_pic_buffering_minus1[i], sps_max_num_reorder_pics[i] y sps_max_latency_increase_plus1[i] están presentes para sps_max_sub_layers_minus1 1 subcapas. sps_sub_layer_ordering_info_present_flag igual a 0 [INICIO d El EJEMPLO C], cuando inherit_sps_params_from_vps_flag es igual a 0, [FIN DEL EJEMPLO C] especifica que los valores de sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1], sps_max_num_reorder_pics[sp s_m ax_s ub_laye rs_m inus1] y sps_max_latency_increase_plus1[sps_max_sub_layers_minus1] se aplican a todas las subcapas.
[0228] El parámetro sps_max_dec_pic_buffering_minus1[i] 1 especifica el tamaño máximo requerido del búfer de imágenes descodificadas para el CVS en unidades de búfers de almacenamiento de imágenes cuando HighestTid es igual a i. En algunos ejemplos, el valor de sps_max_dec_pic_buffering_minus1[i] puede estar en el intervalo de 0 a MaxDpbSize - 1 (como se especifica en la subcláusula A.4), ambos inclusive. Cuando i es mayor que 0, sps_max_dec_pic_buffering_minus1 [i] puede ser mayor que o igual a sps_max_dec_pic_buffering_minus1 [i - 1]. El valor de sps_max_dec_pic_buffering_minus1[i] puede ser menor que o igual a vps_max_dec_pic_buffering_minus1[i] para cada valor de i. Cuando [INICIO DEL EJEMPLO C] inherit_sps_params_from_vps_flag es igual a 0 y [FIN DEL EJEMPLO C] sps_max_dec_pic_buffering_minus1[i] no está presente para i en el intervalo de 0 a sps_max_sub_layers_minus1-1, ambos inclusive, debido a que sps_sub_layer_ordering_info_present_flag es igual a 0, puede inferirse que es igual a sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1].
[0229] El parámetro sps_max_num_reorder_pics[i] indica el número máximo permitido de imágenes que pueden preceder a cualquier imagen en la CVS en orden de descodificación y que suceden a esa imagen en orden de salida cuando HighestTid es igual a i. El valor de sps_max_num_reorder_pics[i] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1[i], ambos valores inclusive. Cuando i es mayor que 0, sps_max_num_reorder_pics[i] puede ser mayor que o igual a sps_max_num_reorder_pics[i-1]. El valor de sps_max_num_reorder_pics[i] puede ser menor que o igual a vps_max_num_reorder_pics[i] para cada valor de i. Cuando [INICIO DEL eJe m PLo C] inherit_sps_params_from_vps_flag es igual a 0 y [FIN DEL EJEMPLO C] sps_max_num_reorder_pics[i] no está presente para i en el intervalo de 0 a sps_max_sub_layers_minus1 - 1, ambos inclusive, debido a que sps_sub_layer_ordering_info_present_flag es igual a 0, puede inferirse que es igual a sps_max_num_reorder_pics[sps_max_sub_layers_minus1].
[0230] El parámetro sps_max_latency_increase_plus1[i] distinto de 0 se usa para calcular el valor de SpsMaxLatencyPictures[i], que especifica el número máximo de imágenes que pueden preceder a cualquier imagen en el CVS en orden de salida y seguir a esa imagen en orden de descodificación cuando HighestTid es igual a i.
[0231] Cuando sps_max_latency_increase_plus1[i] no es igual a 0, el valor de SpsMaxLatencyPictures[i] se especifica de la siguiente manera: SpsMaxLatencyPictures[i] = sps_max_num_reorder_pics[i] (7-9)
sps_max_latency_increase_plus1[i] - 1
[0232] Cuando sps_max_latency_increase_plus1[i] es igual a 0, no se expresa ningún límite correspondiente. En algunos ejemplos, el valor de sps_max_latency_increase_plus1 [i] puede estar en el intervalo de 0 a 232 - 2, ambos inclusive. En algunos ejemplos, cuando vps_max_latency_increase_plus1[i] no es igual a 0, el valor de sps_max_latency_increase_plus1[i] puede no ser igual a 0 y puede ser menor que o igual a vps_max_latency_increase_plus1[i] para cada valor de i. Cuando [INICIO DEL EJEMPLO C] inherit_sps_params_from_vps_flag es igual a 0 y [FIN DEL EJEMPLO C] sps_max_latency_increase_plus1[i] no está presente para i en el intervalo de 0 a sps_max_sub_layers_minus1-1, ambos inclusive, debido a que sps_sub_layer_ordering_info_present_flag es igual a 0, puede inferirse que es igual a sps_max_latency_increase_plus1[sps_max_sub_layers_minus1].
[0233] ...
[0234] El parámetro sps_scaling_list_data_present_flag igual a 1 especifica que los datos de lista de escalamiento están presentes en el SPS [INICIO DEL EJEMPLO F] o se hereden del VPS activo [FIN DEL EJEMPLO F]. En algunos ejemplos, sps_scaling_list_data_present_flag igual a 0 especifica que los datos de lista de escalamiento están presentes en el SPS [INICIO DEL EJEMPLO F] y no se heredan del VPS activo [FIN DEL EJEMPLO F].
Cuando [INICIO DEL EJEMPLO F] inherit_sps_params_from_vps_flag es igual a 0 y sps_scaling_list_data_present_flag [FIN DEL EJEMPLO F] no está presente, puede inferirse que el valor de sps_scaling_list_data_present_flag es igual a 0. Cuando scaling_list_enabled_flag es igual a 1 y sps_scaling_list_data_present_flag es igual a 0, los datos de lista de escalamiento predeterminados se usan para obtener la matriz ScalingFactor descrita en la semántica de datos de lista de escalamiento especificada en la subcláusula 7.4.5 de la norma HEVC.
[0235] El parámetro pcm_loop_filter_disabled_flag especifica si el proceso de filtro de bucle está inhabilitado en muestras reconstruidas en una unidad de codificación con pcm_flag igual a 1 como sigue: Si pcm_loop_filter_disabled_flag es igual a 1, el filtro de desbloqueo y los procesos de filtro de desfase adaptativo de muestra en las muestras reconstruidas en una unidad de codificación con pcm_flag igual a 1 están inhabilitados. De lo contrario (pcm_loop_filter_disabled_flag es igual a 0), el filtro de desbloqueo y los procesos de filtro de desfase adaptativo de muestra en las muestras reconstruidas en una unidad de codificación con pcm_flag igual a 1 no están inhabilitados.
[0236] Cuando [INICIO DEL EJEMPLO F] inherit_sps_params_from_vps_flag es igual a 0 y [FIN DEL EJEMPLO F] pcm_loop_filter_disabled_flag no está presente, se puede inferir que es igual a 0.
[INICIO DEL EJEMPLO D]
[0237] [FIN DEL EJEMPLO D]
[0238] ...
[0239] El parámetro lt_ref_pic_poc_lsb_sps[i] especifica el módulo de recuento de orden de imágenes MaxPicOrderCntLsb de la i-ésima imagen de referencia candidata a largo plazo especificada [INICIO DEL EJEMPLO F] por [FIN DEL EJEMPLO F] el SPS. El número de bits usados para representar lt_ref_pic_poc_lsb_sps[i] es igual a log2_max_pic_order_cnt_lsb_minus4 4.
[0240] El parámetro used_by_curr_pic_lt_sps_flag[i] igual a 0 especifica que la i-ésima imagen de referencia candidata a largo plazo especificada [INICIO DEL EJEMPLO F] por [FIN DEL EJEMPLO F] el SPS no se usa como referencia por una imagen que incluye en su RPS a largo plazo la i-ésima imagen de referencia a largo plazo candidata especificada [INICIO DEL EJEMPLO F] por [FIN DEL EJEMPLO F] el SPS.
[0241] ...
[INICIO DEL EJEMPLO E]
[0242] [FIN DEL EJEMPLO E]
[0243] La FIG. 4 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. En el ejemplo ilustrado de la FIG. 4, el descodificador de vídeo 30 puede recibir un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía (402). El conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía puede estar en una posición dentro de una ampliación de VPS antes de elementos de sintaxis de la ampliación de VPS que están codificados por entropía.
[0244] El descodificador de vídeo 30 puede hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida (404) y descodificar datos de vídeo de uno de los conjuntos de capas de salida en base a información de la estructura de sintaxis de perfil, clase y nivel a la que se hace referencia para el conjunto de capas de salida (406). Por ejemplo, el descodificador de vídeo 30 puede ignorar un conjunto de capas de salida si el perfil, la clase y el nivel del flujo de bits del conjunto de capas de salida indican que se necesita una capacidad mayor que la capacidad de descodificación del descodificador de vídeo 30, como la indicada por el perfil, la clase y el nivel del descodificador, para descodificar el flujo de bits. Cuando la capacidad de descodificación requerida, según lo indicado por el perfil, clase y nivel del flujo de bits del conjunto de capas de salida, no es mayor que la capacidad de descodificación del descodificador de vídeo 30, el descodificador de vídeo 30 descodifica el flujo de bits del conjunto de capas de salida usando los procesos de descodificación requeridos, indicados por el perfil, clase y nivel del flujo de bits.
[0245] En algunos ejemplos, el descodificador de vídeo 30 puede recibir un SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo.
[0246] En algunos ejemplos, el descodificador de vídeo 30 puede recibir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida. Por ejemplo, el codificador de vídeo 20 puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida. El descodificador de vídeo 30 puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida.
[0247] El descodificador de vídeo 30 también puede generar el conjunto de capas de salida basándose en la bandera de capa de salida [i][j]. Por ejemplo, el codificador de vídeo 20 también puede codificar el conjunto de capas de salida basándose en la bandera de capa de salida [i][j].
[0248] La FIG. 5 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. En el ejemplo ilustrado de la FIG. 5, el codificador de vídeo 20 puede generar un conjunto de capas de salida basándose en la bandera de la capa de salida [i][j]. Por ejemplo, el codificador de vídeo 20 puede hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida (502). El codificador de vídeo 20 también puede codificar el conjunto de capas de salida basándose en la bandera de capa de salida [i][j] (504).
[0249] El codificador de vídeo 20 puede codificar un VPS con ampliación de VPS que tiene un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía (506). En algunos ejemplos, el codificador de vídeo 20 puede transmitir, almacenar o hacer que se almacene el VPS y la ampliación del VPS que tiene un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía. El conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía puede estar en una posición dentro de una ampliación de VPS antes de elementos de sintaxis de la ampliación de VPS que están codificados por entropía. Por ejemplo, el codificador de vídeo 20 puede codificar datos de vídeo de acuerdo con un perfil, clase y nivel que se seleccione. El codificador de vídeo 20 también puede codificar la sintaxis de perfil, clase y nivel en el VPS para su uso por el descodificador.
[0250] En algunos ejemplos, el codificador de vídeo 20 puede codificar un SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo. Por ejemplo, el codificador de vídeo 20 puede enviar un SPS con un nuh_layer_id igual a 0, donde el SPS incluye una estructura de sintaxis de perfil, clase y nivel para una capa de datos de vídeo. Cuando un SPS con nuh_layer_id igual a 0 es referido por una capa con nuh_layer_id mayor que 0, la estructura de sintaxis profile_tier_level( ) en el SPS no se aplica para esa capa.
[0251] En consecuencia, como puede observarse más arriba, cada capa debe hacer referencia a un SPS. Convencionalmente, dos capas cualesquiera que tengan valores diferentes de resoluciones espaciales, profundidades de bits o formatos de color deben hacer referencia a dos SPS diferentes, ya que estos parámetros de formato de representación se señalizan en el SPS. Sin embargo, cuando estos parámetros para todos los SPS, excepto aquellos con nuh_layer_id igual a 0, se mueven al VPS, y cuando se especifica que los parámetros del formato de representación en un SPS con nuh_layer_id igual a 0 al que hace referencia una capa con nuh_layer_id mayor que 0 se ignoran, es posible que capas con diferentes valores de resoluciones espaciales, profundidades de bits o formatos de color hagan referencia a los mismos SPS. En otras palabras, de acuerdo con algunos modos de realización de esta divulgación, las capas con diferentes valores de resoluciones espaciales, profundidades de bits o formatos de color pueden compartir el mismo SPS, siempre que otros parámetros de SPS requeridos para las capas sean los mismos.
[0252] En algunos ejemplos, el codificador de vídeo 20 puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida. Por ejemplo, el codificador de vídeo 20 puede transmitir una bandera de capa de salida [i][j] que, cuando es igual a 1, especifica que una j-ésima capa del conjunto de capas es una capa de salida objetivo de un i-ésimo conjunto de capas de salida y, cuando es igual a 0, especifica que la j-ésima capa en el conjunto de capas no es la capa de salida objetivo del i-ésimo conjunto de capas de salida.
[0253] La FIG. 6 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. En el ejemplo ilustrado en la FIG. 6, un descodificador de vídeo 30 puede recibir una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de VPS antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía (602).
[0254] El descodificador de vídeo 30 puede descodificar la información de dependencia de capa codificada sin entropía antes de un elemento de sintaxis codificado por entropía (604). En un ejemplo, el descodificador de vídeo 30 puede descodificar la información de dependencia de capa codificada sin entropía antes de cualquier elemento de sintaxis codificado por entropía.
[0255] El descodificador de vídeo 30 puede descodificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía (606). La información de dependencia de capa puede indicar si una de las capas es una capa de referencia directa para otra de las capas. En algunos ejemplos, cuando la información de dependencia de capa indica si una de las capas es una capa de referencia directa para otra de las capas, la información de dependencia de capa también puede indicar cuál de las capas es una capa de referencia directa para otra de las capas. En otras palabras, la información de dependencia de capa puede indicar si una de las capas es una capa de referencia directa para otra de las capas e identificar la una de las capas que es una capa de referencia directa para otra de las capas. En algunos ejemplos, la información de dependencia de capa incluye un direct_dependency_flag[i][j] que, cuando es igual a 0, especifica que una capa con índice j no es una capa de referencia directa para una capa con índice i, y cuando es igual a 1, especifica que la capa con índice j puede ser una capa de referencia directa para la capa con índice i. Al descodificar una imagen, el descodificador de vídeo 30 puede obtener un conjunto de imágenes de referencia entre capas basándose en la información de dependencia de capa, entre otra información, y puede obtener además una lista de imágenes de referencia en base al conjunto de imágenes de referencia entre capas, entre otra información, y, a continuación, puede descodificar la imagen usando la predicción entre capas a partir de una imagen en una capa de referencia directa.
[0256] La FIG. 7 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. El codificador de vídeo 20 puede codificar datos de vídeo de una o más de las capas de datos de vídeo en base a una información de dependencia de capa codificada sin entropía (702). El codificador de vídeo 20 puede codificar una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de conjunto de parámetros de vídeo (VPS) antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía (704). Por ejemplo, el codificador de vídeo 20 puede codificar datos de vídeo de una o más de las capas de datos de vídeo en base a la información de dependencia de capa codificada sin entropía. La información de dependencia de capa puede indicar si una de las capas es una capa de referencia directa para otra de las capas. En algunos ejemplos, el codificador de vídeo 20 puede transmitir, almacenar o hacer que se almacene una información de dependencia de capa codificada sin entropía en una posición dentro de una ampliación de conjunto de parámetros de vídeo (VPS) antes de los elementos de sintaxis de la ampliación de VPS que están codificados por entropía.
[0257] En algunos ejemplos, la información de dependencia de capa incluye un direct_dependency_flag[i][j] que, cuando es igual a 0, especifica que una capa con índice j no es una capa de referencia directa para una capa con índice i, y cuando es igual a 1 especifica que la capa con índice j puede ser una capa de referencia directa para la capa con índice i.
[0258] La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. En el ejemplo de la FIG.
8, se puede señalizar más de un conjunto de capas de salida para un conjunto de capas. En consecuencia, si se señaliza más de un conjunto de capas de salida para un conjunto de capas, un descodificador de vídeo 30, por ejemplo, mediante la interfaz de entrada 28, puede recibir un primer conjunto de capas de salida para un conjunto de capas (802). El descodificador de vídeo 30 también puede recibir un segundo conjunto de capas de salida para el conjunto de capas (804). Además, aunque el ejemplo de la FIG. 8 ilustra dos conjuntos de capas de salida para un conjunto de capas, se entenderá que se pueden señalizar tres, cuatro o incluso más conjuntos de capas de salida para un conjunto de capas. El descodificador de vídeo 30 puede descodificar datos de vídeo para al menos uno del primer conjunto de capas de salida y el segundo conjunto de capas de salida (806).
[0259] La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. En el ejemplo de la FIG. 9, se puede señalizar más de un conjunto de capas de salida para un conjunto de capas. En consecuencia, el codificador de vídeo 20 puede codificar datos de vídeo para al menos uno de un primer conjunto de capas de salida y un segundo conjunto de capas de salida (902). En consecuencia, la interfaz de salida 22 puede transmitir datos codificados desde el codificador de vídeo 20. Los datos transmitidos pueden incluir el primer conjunto de capas de salida para un conjunto de capas (904) y el segundo conjunto de capas de salida para el conjunto de capas (906). En algunos ejemplos, la interfaz de salida 22 puede transmitir los datos a la interfaz de entrada 28. En otros ejemplos, la interfaz de salida 22 puede transmitir los datos al dispositivo de almacenamiento 34 para su almacenamiento.
[0260] La FIG. 10 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. El ejemplo de la FIG. 10 ilustra la señalización del formato de representación en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía. En otras palabras, un formato de representación en el VPS no está codificado por entropía. Por ejemplo, puede estar codificado con una longitud fija. Por consiguiente, el descodificador de vídeo 30 puede recibir un formato de representación codificado sin entropía dentro de un VPS, por ejemplo, a través de la interfaz de entrada 28 (1002). El formato de representación puede incluir uno o más de formato de croma, independientemente de que diferentes planos de color se codifiquen por separado, ancho de imagen, altura de imagen, profundidad de bits de luma y profundidad de bits de croma. El descodificador de vídeo 30 también puede descodificar datos de vídeo basándose en el formato de representación codificado sin entropía dentro del VPS (1004). Debido a que el formato de representación está en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía, los dispositivos que no realizan codificación por entropía pueden tener acceso al formato de representación; por ejemplo, en algunos casos, es posible que entidades de red sensibles a medios (MANE) no tengan un dispositivo de codificación por entropía. El descodificador de vídeo 30 puede descodificar el formato de representación del VPS, posiblemente sin descodificación por entropía de acuerdo con las técnicas de esta divulgación, y cada capa puede estar asociada a un formato de representación particular.
[0261] La FIG. 11 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. El ejemplo de la FIG. 11 ilustra la señalización del formato de representación en el VPS, posiblemente de manera que sea accesible sin descodificación por entropía. En otras palabras, un formato de representación en el VPS no está codificado por entropía. Por ejemplo, puede estar codificado con una longitud fija. En consecuencia, el codificador de vídeo 20 puede codificar datos de vídeo basándose en el formato de representación codificado sin entropía dentro del VPS (1102). El formato de representación puede incluir uno o más de formato de croma, independientemente de que diferentes planos de color se codifiquen por separado, ancho de imagen, altura de imagen, profundidad de bits de luma y profundidad de bits de croma. El codificador de vídeo 20 puede transmitir un formato de representación codificado sin entropía dentro de un VPS (1104). El codificador de vídeo 20 puede codificar el formato de representación en el VPS, de manera que sea accesible sin descodificación por entropía de acuerdo con las técnicas de esta divulgación, y cada capa puede estar asociada a un formato de representación particular.
[0262] La FIG. 12 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. El ejemplo de la FIG. 12 ilustra la señalización de información de señal visual, por ejemplo, video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs, por capa en el VPS. Por consiguiente, el descodificador de vídeo 30 puede recibir un VPS que incluye una serie de capas, incluyendo cada capa información de señal visual (1002). El descodificador de vídeo 30 también puede descodificar datos de vídeo en base a la información de señal visual recibida señalizada por capa en el VPS.
[0263] La FIG. 13 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con los sistemas y procedimientos descritos en el presente documento. El ejemplo de la FIG. 13 ilustra la señalización de información de señal visual, por ejemplo, video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs, por capa en el VPS. En consecuencia, el codificador de vídeo 20 puede codificar datos de vídeo basándose en la información de señal visual recibida señalizada por capa en el VPS (1302). El codificador de vídeo 20 puede transmitir el VPS que incluye una serie de capas, donde cada capa incluye información de señal visual para cada una de una serie de capas (1304).
[0264] 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 a través de 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, tales como medios de almacenamiento de datos, o medios de comunicación que incluyan 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 desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0265] 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 mediante 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. El término disco, como se usa en el presente documento, incluye 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 magnéticamente, mientras que otros discos reproducen datos ópticamente con láseres. Las combinaciones de lo anterior también se deben incluir dentro del alcance de los medios legibles por ordenador.
[0266] 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 pueden ejecutar instrucciones. 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 puede proporcionarse 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.
[0267] Las técnicas de esta 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 esta 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 mediante 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 incluyen uno o más procesadores, como los descritos anteriormente, junto con un software y/o firmware adecuados.
[0268] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (13)

REIVINDICACIONES
1. Un procedimiento de descodificación de datos de vídeo multicapa, comprendiendo el procedimiento:
recibir desde un flujo de bits de vídeo codificado, datos de vídeo multicapa que comprenden:
un primer conjunto de capas de salida (802) incluido en un conjunto de capas de los datos de vídeo multicapa, donde el primer conjunto de capas de salida representa un subconjunto del conjunto de capas de modo que el primer conjunto de capas de salida está asociado a una primera lista de capas de salida objetivo extraídas del flujo de bits de vídeo codificado;
un segundo conjunto de capas de salida (804) incluido en el conjunto de capas de los datos de vídeo multicapa, donde el segundo conjunto de capas de salida representa un subconjunto del conjunto de capas de modo que el segundo conjunto de capas de salida está asociado a una segunda lista de capas de salida objetivo extraídas del flujo de bits de vídeo codificado;
un conjunto de parámetros de secuencia, SPS, para los datos de vídeo multicapa, donde el SPS incluye parámetros de resolución espacial, profundidad de bits y formato de color solo para una capa base de los datos de vídeo multicapa;
un conjunto de parámetros de vídeo, VPS, para los datos de vídeo multicapa, donde el VPS incluye parámetros de resolución espacial, profundidad de bits y formato de color solo para todas las capas de los datos de vídeo multicapa;
una primera capa de los datos de vídeo multicapa, estando asociada la primera capa al SPS y al VPS; y
una segunda capa de los datos de vídeo multicapa, teniendo la segunda capa un valor diferente de al menos uno de entre una resolución espacial, una profundidad de bits o un formato de color que la primera capa, y estando asociada al SPS y al VPS;
descodificar (806) datos de vídeo codificados para al menos uno del primer conjunto de capas de salida o el segundo conjunto de capas de salida usando al menos la primera lista de capas de salida objetivo o la segunda lista de capas de salida objetivo, respectivamente; y
descodificar datos de vídeo codificados para la primera capa y la segunda capa usando información incluida en el mismo SPS, y extrayendo del SPS información acerca de la resolución espacial, la profundidad de bits y el formato de color de la capa respectiva, cuando la capa respectiva es la capa base, y no aplicando información acerca de la resolución espacial, la profundidad de bits y el formato de color incluida en el SPS, y extrayendo del VPS información acerca de la resolución espacial, la profundidad de bits y el formato de color de la capa respectiva, cuando la capa respectiva no es la capa base.
2. El procedimiento de la reivindicación 1, en el que el SPS incluye información de usabilidad de vídeo (VUI); y en el que información de temporización no está contenida en el SPS que incluye la VUI.
3. El procedimiento de la reivindicación 1, en el que una capa en el conjunto de capas es una capa de salida objetivo de uno del primer conjunto de capas de salida y del segundo conjunto de capas de salida, que es un conjunto de capas de salida predeterminado y en el que no hay señalización explícita de la capa de salida objetivo para el conjunto de capas de salida predeterminado.
4. El procedimiento de la reivindicación 1, que comprende además:
determinar, mediante el descodificador de vídeo, que un elemento de sintaxis layer_id_included_flag[ ][ ] para los datos de vídeo usados para output_layer_set_idx[i] igual a 0 es para el conjunto de capas 0; y
cambiar, mediante el descodificador de vídeo, el output_layer_set_idx[i] a un elemento de sintaxis output_layer_set_idx_minus1[i] en base a la determinación.
5. El procedimiento de la reivindicación 1, que comprende además
recibir, mediante el descodificador de vídeo, desde el flujo de bits de vídeo codificado, un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía en una ampliación de conjunto de parámetros de vídeo (VPS);
hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida que incluye el primer conjunto de capas de salida y el segundo conjunto de capas, donde la descodificación de los datos de vídeo codificados para el al menos uno del primer conjunto de capas de salida o el segundo conjunto de capas de salida se basa en información de la una o más de las estructuras de sintaxis de perfil, clase o nivel a las que se hace referencia para el conjunto de capas de salida respectivo del primer conjunto de capas de salida o el segundo conjunto de capas de salida.
6. Un procedimiento para codificar datos de vídeo multicapa en un flujo de bits codificado, comprendiendo el procedimiento:
codificar, en el flujo de bits codificado, datos de vídeo para al menos uno de un primer conjunto de capas de salida (902) y un segundo conjunto de capas de salida (904), donde los datos de vídeo incluyen al menos una de entre una primera lista de capas de salida objetivo asociadas al primer conjunto de capas de salida y una segunda lista de capas de salida objetivo asociadas al segundo conjunto de capas de salida, respectivamente,
estando incluidos el primer conjunto de capas de salida y el segundo conjunto de capas de salida en un único conjunto de capas de los datos de vídeo multicapa;
codificar, en el flujo de bits codificado, datos de vídeo para una primera capa de los datos de vídeo multicapa y una segunda capa de los datos de vídeo multicapa en un conjunto de parámetros de secuencia, SPS, asociado a los datos de vídeo multicapa, donde el SPS incluye la resolución espacial, profundidad de bits y formato de color solo para una capa base de los datos de vídeo multicapa; y codificar, en el flujo de bits codificado, datos de vídeo para la primera capa de los datos de vídeo multicapa y la segunda capa de los datos de vídeo multicapa en un conjunto de parámetros de vídeo, VPS, asociado a los datos de vídeo multicapa, con lo que el VPS incluye la resolución espacial, profundidad de bits y formato de color de todas las capas de los datos de vídeo multicapa; codificar, en el flujo de bits codificado:
el primer conjunto de capas de salida para el conjunto de capas;
el segundo conjunto de capas de salida;
el SPS asociado a los datos de vídeo multicapa; y
una primera capa de los datos de vídeo multicapa, estando asociada la primera capa al SPS; y una segunda capa de los datos de vídeo multicapa, teniendo la segunda capa un valor diferente de al menos uno de entre una resolución espacial, una profundidad de bits o un formato de color que la primera capa, y estando asociada al mismo SPS que la primera capa.
7. El procedimiento de la reivindicación 6,
en el que el SPS incluye información de usabilidad de vídeo (VUI); y
en el que información de temporización no está contenida en el SPS que incluye la VUI.
8. El procedimiento de la reivindicación 6, en el que una capa en el conjunto de capas es una capa de salida objetivo de uno del primer conjunto de capas de salida y del segundo conjunto de capas de salida, que es un conjunto de capas de salida predeterminado y en el que no hay señalización explícita de la capa de salida objetivo para el conjunto de capas de salida predeterminado.
9. El procedimiento de la reivindicación 6, que comprende además:
determinar, mediante el codificador de vídeo, que un elemento de sintaxis layer_id_included_flag[ ][ ] para los datos de vídeo usados para output_layer_set_idx[i] igual a 0 es para el conjunto de capas 0; y cambiar, mediante el codificador de vídeo, el output_layer_set_idx[i] a un elemento de sintaxis output_layer_set_idx_minus1[i] en base a la determinación.
10. El procedimiento de la reivindicación 6, que comprende además
codificar, mediante el codificador de vídeo, en el flujo de bits de vídeo codificado, un conjunto de estructuras de sintaxis de perfil, clase y nivel codificadas sin entropía en una ampliación de conjunto de parámetros de vídeo (VPS); y
hacer referencia a una de las estructuras de sintaxis de perfil, clase y nivel para cada uno de una pluralidad de conjuntos de capas de salida que incluye el primer conjunto de capas de salida y el segundo conjunto de capas de salida,
en el que la codificación de los datos de vídeo para el al menos uno del primer conjunto de capas de salida o el segundo conjunto de capas de salida comprende codificar, mediante el codificador de vídeo, los datos de vídeo para el al menos uno del primer conjunto de capas de salida o el segundo conjunto de capas de salida en base a información de la una o más de las estructura de sintaxis de perfil, clase o nivel a las que se hace referencia para el conjunto de capas de salida respectivo del primer conjunto de capas de salida o el segundo conjunto de capas de salida.
11. Un aparato para descodificar datos de vídeo, que comprende:
medios para recibir desde un flujo de bits de vídeo codificado, datos de vídeo multicapa que comprenden:
un primer conjunto de capas de salida incluido en un conjunto de capas de los datos de vídeo multicapa, donde el primer conjunto de capas de salida representa un subconjunto del conjunto de capas de modo que el primer conjunto de capas de salida está asociado una primera lista de capas de salida objetivo extraídas del flujo de bits de vídeo codificado;
un segundo conjunto de capas de salida incluido en el conjunto de capas de los datos de vídeo multicapa, donde el segundo conjunto de capas de salida representa un subconjunto del conjunto de capas de modo que el segundo conjunto de capas de salida está asociado a una segunda lista de capas de salida objetivo extraídas del flujo de bits de vídeo codificado;
un conjunto de parámetros de secuencia, SPS, para los datos de vídeo multicapa, donde el SPS incluye parámetros de resolución espacial, profundidad de bits y formato de color solo para una capa base de los datos de vídeo multicapa;
un conjunto de parámetros de vídeo, VPS, para los datos de vídeo multicapa, donde el VPS incluye parámetros de resolución espacial, profundidad de bits y formato de color solo para todas las capas de los datos de vídeo multicapa;
una primera capa de los datos de vídeo multicapa, estando asociada la primera capa al SPS y al VPS; y
una segunda capa de los datos de vídeo multicapa, teniendo la segunda capa un valor diferente de al menos uno de entre una resolución espacial, una profundidad de bits o un formato de color que la primera capa, y estando asociada al SPS y al VPS;
medios para descodificar medio datos de vídeo codificados para al menos uno del primer conjunto de capas de salida y el segundo conjunto de capas de salida usando al menos la primera lista de capas de salida objetivo o la segunda lista de capas de salida objetivo, respectivamente; y
medios para descodificar datos de vídeo codificados para la primera capa y la segunda capa usando información incluida en el mismo SPS, y extrayendo del SPS información acerca de la resolución espacial, la profundidad de bits y el formato de color de la capa respectiva, cuando la capa respectiva es la capa base, y no aplicando información acerca de la resolución espacial, la profundidad de bits y el formato de color incluida en el SPS, y extrayendo del VPS información acerca de la resolución espacial, la profundidad de bits y el formato de color de la capa respectiva, cuando la capa respectiva no es la capa base.
12. Un aparato para codificar datos de vídeo, que comprende:
medios para codificar, en el flujo de bits codificado, datos de vídeo para al menos uno de un primer conjunto de capas de salida y un segundo conjunto de capas de salida, donde los datos de vídeo incluyen al menos una de entre una primera lista de capas de salida objetivo asociadas al primer conjunto de capas de salida y una segunda lista de capas de salida objetivo asociadas al segundo conjunto de capas de salida, respectivamente,
estando incluidos el primer conjunto de capas de salida y el segundo conjunto de capas de salida en un único conjunto de capas de los datos de vídeo multicapa;
medios para codificar, en el flujo de bits codificado, datos de vídeo para una primera capa de los datos de vídeo multicapa y una segunda capa de los datos de vídeo multicapa en un conjunto de parámetros de secuencia, SPS, asociado a los datos de vídeo multicapa, donde el SPS incluye la resolución espacial, profundidad de bits y formato de color solo para una capa base de los datos de vídeo multicapa; y
medios para codificar, en el flujo de bits codificado, datos de vídeo para la primera capa de los datos de vídeo multicapa y la segunda capa de los datos de vídeo multicapa en un conjunto de parámetros de vídeo, VPS, asociado a los datos de vídeo multicapa, con lo que el VPS incluye la resolución espacial, profundidad de bits y formato de color de todas las capas de los datos de vídeo multicapa; medios para codificar, en el flujo de bits codificado:
el primer conjunto de capas de salida para el conjunto de capas;
el segundo conjunto de capas de salida;
el SPS asociado a los datos de vídeo multicapa; y
una primera capa de los datos de vídeo multicapa, estando asociada la primera capa al SPS; y una segunda capa de los datos de vídeo multicapa, teniendo la segunda capa un valor diferente de al menos uno de entre una resolución espacial, una profundidad de bits o un formato de color que la primera capa, y estando asociada al mismo SPS que la primera capa.
13. Un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones que, al ejecutarse mediante uno o más procesadores, hacen que el uno o más procesadores realicen un procedimiento de acuerdo con cualquiera de las reivindicaciones 1-10.
ES14723949T 2013-04-08 2014-04-08 Codificación de datos de vídeo para un conjunto de capas de salida Active ES2837853T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361809858P 2013-04-08 2013-04-08
US14/247,110 US9473771B2 (en) 2013-04-08 2014-04-07 Coding video data for an output layer set
PCT/US2014/033367 WO2014168965A1 (en) 2013-04-08 2014-04-08 Coding video data for an output layer set

Publications (1)

Publication Number Publication Date
ES2837853T3 true ES2837853T3 (es) 2021-07-01

Family

ID=51654435

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14723949T Active ES2837853T3 (es) 2013-04-08 2014-04-08 Codificación de datos de vídeo para un conjunto de capas de salida

Country Status (7)

Country Link
US (5) US20140307803A1 (es)
EP (2) EP2984843B1 (es)
JP (2) JP6370879B2 (es)
KR (2) KR101787864B1 (es)
CN (2) CN105103561B (es)
ES (1) ES2837853T3 (es)
WO (5) WO2014168976A1 (es)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
KR20130116782A (ko) 2012-04-16 2013-10-24 한국전자통신연구원 계층적 비디오 부호화에서의 계층정보 표현방식
US9602827B2 (en) 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
EP2868092A4 (en) * 2012-07-02 2016-05-04 Nokia Technologies Oy METHOD AND DEVICE FOR VIDEO CODING
US20140307803A1 (en) 2013-04-08 2014-10-16 Qualcomm Incorporated Non-entropy encoded layer dependency information
EP3056007A4 (en) * 2013-10-11 2017-05-24 Sharp Kabushiki Kaisha Color information and chromaticity signaling
EP3056005A4 (en) * 2013-10-11 2017-05-17 Sharp Kabushiki Kaisha Signaling information for coding
KR102246546B1 (ko) * 2013-10-12 2021-04-30 삼성전자주식회사 멀티 레이어 비디오 부호화 방법 및 장치, 멀티 레이어 비디오 복호화 방법 및 장치
WO2015060699A1 (ko) * 2013-10-26 2015-04-30 삼성전자 주식회사 멀티 레이어 비디오 부호화 방법 및 장치, 멀티 레이어 비디오 복호화 방법 및 장치
JP6472449B2 (ja) * 2014-01-02 2019-02-20 シャープ株式会社 ビデオシーケンスを復号するための方法
WO2015102042A1 (en) * 2014-01-02 2015-07-09 Sharp Kabushiki Kaisha Parameter set signaling
US10171823B2 (en) * 2014-05-26 2019-01-01 Sharp Kabushiki Kaisha Image decoding device and image coding device
CN104093028B (zh) * 2014-06-25 2019-02-01 中兴通讯股份有限公司 一种设备能力协商的方法和装置
US10123028B2 (en) * 2014-09-17 2018-11-06 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
JP6530854B2 (ja) 2015-07-16 2019-06-12 ドルビー ラボラトリーズ ライセンシング コーポレイション Hdrおよび広色域の信号のための信号整形および符号化
WO2018037985A1 (ja) * 2016-08-22 2018-03-01 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
EP3577899A4 (en) * 2017-01-31 2020-06-17 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SCALING TRANSFORM COEFFICIENT LEVEL VALUES
JP2020515169A (ja) * 2017-03-20 2020-05-21 シャープ株式会社 メディアアプリケーションフォーマットでスケーラブル動画像をシグナリングするためのシステム及び方法
CN107241325A (zh) * 2017-06-05 2017-10-10 威创集团股份有限公司 一种ip视频超低延时传输方法及装置
CN108769681B (zh) * 2018-06-20 2022-06-10 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、计算机设备和存储介质
US20220210403A1 (en) * 2019-04-15 2022-06-30 Lg Electronics Inc. Scaling list parameter-based video or image coding
US11432004B2 (en) * 2019-04-25 2022-08-30 Hfi Innovation Inc. Method and apparatus of constraining merge flag signaling in video coding
KR20210149867A (ko) * 2019-06-11 2021-12-09 엘지전자 주식회사 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩
US11109069B2 (en) * 2019-09-20 2021-08-31 Tencent America LLC Signaling of scalability parameters in video bitstream
US11375223B2 (en) * 2019-09-20 2022-06-28 Tencent America LLC Method for signaling output layer set with sub-picture
BR112022005466A2 (pt) * 2019-09-24 2022-06-14 Huawei Tech Co Ltd Dispositivos de codificação, e de decodificação de vídeo, e de produto de computador, e métodos associados
WO2021061530A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Ols for spatial and snr scalability
WO2021061394A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Simulcast layers for multiview in video coding
BR112022005370A2 (pt) 2019-09-24 2022-06-14 Huawei Tech Co Ltd Sinalização de parâmetros de dpb para fluxos de bits de vídeo de múltiplas camadas
JP7381731B2 (ja) * 2019-09-24 2023-11-15 華為技術有限公司 マルチレイヤービデオビットストリームにおける不要なレイヤーの禁止
BR112022005485A2 (pt) * 2019-09-24 2022-06-14 Huawei Tech Co Ltd Ols para escalabilidade múltiplas visualizações
WO2021063419A1 (en) 2019-10-05 2021-04-08 Beijing Bytedance Network Technology Co., Ltd. Downsampling filter type for chroma blending mask generation
CN114514751B (zh) * 2019-10-07 2024-03-15 华为技术有限公司 避免多层视频码流中的冗余指示
EP4026094A4 (en) * 2019-10-07 2022-11-09 Huawei Technologies Co., Ltd. VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC) TIME INFORMATION
MX2022004193A (es) * 2019-10-07 2022-05-02 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.
CN114631317B (zh) 2019-10-18 2024-03-15 北京字节跳动网络技术有限公司 子图片的参数集信令中的语法约束
US11245903B2 (en) 2019-11-22 2022-02-08 Tencent America LLC Method and apparatus for quantization, adaptive block partitioning and codebook coding for neural network model compression
JP7337950B2 (ja) * 2019-11-22 2023-09-04 テンセント・アメリカ・エルエルシー ニューラルネットワークモデル圧縮のための量子化、適応ブロック分割、及びコードブック符号化の方法及び装置、並びにコンピュータープログラム
US11671110B2 (en) 2019-11-22 2023-06-06 Tencent America LLC Method and apparatus for neural network model compression/decompression
US20210168406A1 (en) * 2019-11-29 2021-06-03 Tencent America LLC Signaling of video coding tools supporting various chroma formats
WO2021134015A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Profile, tier and layer indication in video coding
EP4062634A4 (en) 2019-12-26 2022-12-28 ByteDance Inc. LIMITATIONS ON SIGNALING HYPOTHETICAL REFERENCE DECODER PARAMETERS IN VIDEO BITSTREAMS
WO2021129866A1 (en) 2019-12-27 2021-07-01 Beijing Bytedance Network Technology Co., Ltd. Signaling of slice types in video pictures headers
WO2021128295A1 (en) * 2019-12-27 2021-07-01 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for inter prediction
EP4066386A4 (en) 2019-12-27 2023-01-25 ByteDance Inc. SIGNALING SUBPICTURES IN VIDEO ENCODING
CN117395441A (zh) 2020-01-09 2024-01-12 字节跳动有限公司 视频流中的填充数据单元的处理
US11272214B2 (en) * 2020-01-27 2022-03-08 Tencent America LLC Method for picture output with output layer set
MX2022011208A (es) * 2020-03-17 2022-09-19 Bytedance Inc Uso de conjunto de parametros de video en codificacion de video.
CA3173179A1 (en) * 2020-03-24 2021-09-30 Biao Wang An encoder, a decoder and corresponding methods for video or picture bitstream
US11297350B1 (en) * 2020-03-27 2022-04-05 Tencent America LLC Method for output layer set for multilayered video stream
US11228776B1 (en) * 2020-03-27 2022-01-18 Tencent America LLC Method for output layer set mode in multilayered video stream
WO2021201663A1 (ko) * 2020-04-03 2021-10-07 엘지전자 주식회사 Sps를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021218890A1 (en) * 2020-04-30 2021-11-04 Mediatek Inc. Method and apparatus for imposing bitstream constraints in video coding
KR20220037382A (ko) 2020-09-17 2022-03-24 레몬 인크. 디코더 구성 레코드에서의 픽처 치수 표시
US11792433B2 (en) * 2020-09-28 2023-10-17 Sharp Kabushiki Kaisha Systems and methods for signaling profile and level information in video coding
WO2022139260A1 (ko) * 2020-12-21 2022-06-30 엘지전자 주식회사 미디어 파일을 생성하고 처리하는 방법 및 장치
KR20240039139A (ko) * 2021-07-09 2024-03-26 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 코딩을 위한 잔여 및 계수 코딩
US20230098691A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for constraint flag signaling for range extension with extended precision

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100393138C (zh) 1996-11-06 2008-06-04 松下电器产业株式会社 图象解码方法
US6094443A (en) 1997-10-30 2000-07-25 Advanced Micro Devices, Inc. Apparatus and method for detecting a prescribed pattern in a data stream by selectively skipping groups of nonrelevant data bytes
JP3990011B2 (ja) 1997-10-31 2007-10-10 沖電気工業株式会社 復号画像変換回路および復号画像変換装置
US6301428B1 (en) 1997-12-09 2001-10-09 Lsi Logic Corporation Compressed video editor with transition buffer matcher
US6445776B1 (en) 1998-12-31 2002-09-03 Nortel Networks Limited Abstract interface for media and telephony services
US6651252B1 (en) 1999-10-27 2003-11-18 Diva Systems Corporation Method and apparatus for transmitting video and graphics in a compressed form
JP2001309372A (ja) 2000-04-17 2001-11-02 Mitsubishi Electric Corp 符号化装置
US7302490B1 (en) 2000-05-03 2007-11-27 Microsoft Corporation Media file format to support switching between multiple timeline-altered media streams
JP2002010261A (ja) 2000-06-16 2002-01-11 Nec Corp 画像符号化方式変換装置
US7548565B2 (en) 2000-07-24 2009-06-16 Vmark, Inc. Method and apparatus for fast metadata generation, delivery and access for live broadcast program
US20040006575A1 (en) 2002-04-29 2004-01-08 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files
EP1385337A1 (en) 2002-07-22 2004-01-28 Deutsche Thomson-Brandt Gmbh Method and apparatus for storing and transmitting audio-visual data
US6661358B1 (en) 2002-09-17 2003-12-09 Enroute, Inc. Decoding variable length codes without conditional branching
WO2004030369A1 (en) 2002-09-27 2004-04-08 Videosoft, Inc. Real-time video coding/decoding
US7373005B2 (en) 2003-04-10 2008-05-13 Micron Technology, Inc. Compression system for integrated sensor devices
US7724818B2 (en) 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
US8582659B2 (en) 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
WO2005081532A1 (en) 2004-01-21 2005-09-01 Koninklijke Philips Electronics N.V. Method of spatial and snr fine granular scalable video encoding and transmission
US6989773B2 (en) 2004-02-13 2006-01-24 Hewlett-Packard Development Company, L.P. Media data encoding device
CN101095348B (zh) 2004-03-03 2014-08-13 分组视频网络技术方案有限公司 用于从网络节点取回数字多媒体内容的系统和方法
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
KR20050113501A (ko) 2004-05-29 2005-12-02 삼성전자주식회사 에이치 264 비디오 디코더를 위한 구문 분석기
KR100662350B1 (ko) 2004-08-23 2007-01-02 엘지전자 주식회사 영상 전송 장치 및 방법
US9560367B2 (en) 2004-09-03 2017-01-31 Nokia Technologies Oy Parameter set and picture header in video coding
DE102004042819A1 (de) 2004-09-03 2006-03-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen eines codierten Multikanalsignals und Vorrichtung und Verfahren zum Decodieren eines codierten Multikanalsignals
JP4727342B2 (ja) 2004-09-15 2011-07-20 ソニー株式会社 画像処理装置、画像処理方法、画像処理プログラム及びプログラム格納媒体
US20060098001A1 (en) 2004-10-26 2006-05-11 Lai Jimmy K L System and method for effectively preventing image tearing artifacts in displayed image data
CN100593332C (zh) 2004-12-10 2010-03-03 美国博通公司 有线电视通信系统中的上行信道绑定
WO2006075901A1 (en) 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
RU2377736C2 (ru) 2005-04-13 2009-12-27 Нокиа Корпорейшн Кодирование, хранение и передача информации о масштабируемости
US20060233247A1 (en) 2005-04-13 2006-10-19 Visharam Mohammed Z Storing SVC streams in the AVC file format
WO2006111845A2 (en) 2005-04-22 2006-10-26 Nortel Networks Limited Session initiation from application servers in an ip multimedia subsystem
US20060239563A1 (en) 2005-04-25 2006-10-26 Nokia Corporation Method and device for compressed domain video editing
US7974341B2 (en) 2005-05-03 2011-07-05 Qualcomm, Incorporated Rate control for multi-layer video design
US8457203B2 (en) 2005-05-26 2013-06-04 Ntt Docomo, Inc. Method and apparatus for coding motion and prediction weighting parameters
US8208564B2 (en) 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
WO2007042914A1 (en) * 2005-10-11 2007-04-19 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
US20070177671A1 (en) 2006-01-12 2007-08-02 Lg Electronics Inc. Processing multiview video
EP1999967A2 (en) 2006-03-29 2008-12-10 Thomson Licensing Multi-view video coding method and device
AU2007232607B2 (en) 2006-03-30 2010-09-16 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
US8358704B2 (en) 2006-04-04 2013-01-22 Qualcomm Incorporated Frame level multimedia decoding with frame information table
US7535383B2 (en) * 2006-07-10 2009-05-19 Sharp Laboratories Of America Inc. Methods and systems for signaling multi-layer bitstream data
EP1985121A4 (en) 2006-11-17 2010-01-13 Lg Electronics Inc METHOD AND DEVICE FOR DECODING / CODING A VIDEO SIGNAL
EP2418851A3 (en) 2006-12-21 2012-05-23 Thomson Licensing Methods and apparatus for improved signaling using high level syntax for multi-view video coding and decoding
EP1994721A4 (en) 2007-01-12 2013-09-25 Univ Kyung Hee Univ Ind Coop Group PACKET FORMAT OF A NETWORK ABSTRACTION LAYER UNIT, ALGORITHM AND VIDEO ENCODING AND DECODING APPARATUS USING THE SAME, QOS CONTROL ALGORITHM AND IPV6 LABEL SWITCHING APPARATUS USING THE FORMAT
CN101669367A (zh) 2007-03-02 2010-03-10 Lg电子株式会社 用于解码/编码视频信号的方法及设备
US8548261B2 (en) 2007-04-11 2013-10-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding multi-view image
US20080253467A1 (en) 2007-04-13 2008-10-16 Nokia Corporation System and method for using redundant pictures for inter-layer prediction in scalable video coding
US20090003431A1 (en) 2007-06-28 2009-01-01 Lihua Zhu Method for encoding video data in a scalable manner
PL2528341T3 (pl) 2007-04-18 2017-10-31 Dolby Int Ab System kodowania, stosujący uzupełniający zestaw parametrów sekwencyjnych do skalowalnego kodowania wideo lub kodowania wielowidokowego
KR101365596B1 (ko) 2007-09-14 2014-03-12 삼성전자주식회사 영상 부호화장치 및 방법과 그 영상 복호화장치 및 방법
EP2198620A2 (en) 2007-10-05 2010-06-23 Thomson Licensing Methods and apparatus for incorporating video usability information (vui) within a multi-view video (mvc) coding system
US8891619B2 (en) 2008-06-16 2014-11-18 Dolby Laboratories Licensing Corporation Rate control model adaptation based on slice dependencies for video coding
JP5462259B2 (ja) 2008-07-16 2014-04-02 シズベル インターナショナル エス.アー. トラックおよびトラックサブセットグループ化の方法および装置
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
US20100091841A1 (en) 2008-10-07 2010-04-15 Motorola, Inc. System and method of optimized bit extraction for scalable video coding
US20100132007A1 (en) 2008-11-25 2010-05-27 Cisco Technology, Inc. Accelerating channel change time with external picture property markings
US8683515B2 (en) 2008-11-25 2014-03-25 Cisco Technology, Inc. Receiver for accelerating channel change time
EP2392138A4 (en) 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
US8760492B2 (en) 2009-01-30 2014-06-24 Polycom, Inc. Method and system for switching between video streams in a continuous presence conference
KR101710619B1 (ko) 2009-02-04 2017-02-28 삼성전자주식회사 단계적인 영상 부호화, 복호화 방법 및 장치
US9036705B2 (en) 2009-03-13 2015-05-19 Telefonaktiebolaget L M Ericsson (Publ) Technique for bringing encoded data items into conformity with a scalable coding protocol
KR20120013966A (ko) 2009-05-01 2012-02-15 톰슨 라이센싱 3dv를 위한 기준 화상 리스트
US9774882B2 (en) 2009-07-04 2017-09-26 Dolby Laboratories Licensing Corporation Encoding and decoding architectures for format compatible 3D video delivery
KR101504887B1 (ko) 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
US8462797B2 (en) 2009-11-30 2013-06-11 Alcatel Lucent Method of priority based transmission of wireless video
US8520958B2 (en) 2009-12-21 2013-08-27 Stmicroelectronics International N.V. Parallelization of variable length decoding
US9094658B2 (en) 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9131033B2 (en) * 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US20120063515A1 (en) 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
US20120124633A1 (en) 2010-11-15 2012-05-17 International Business Machines Corporation Wireless Video Streaming Quality Management for Bandwidth Constrained Cellular Network
JP5752268B2 (ja) 2011-01-14 2015-07-22 ヴィディオ・インコーポレーテッド 時間スケーラビリティのための高いレイヤのシンタックス
US9113172B2 (en) 2011-01-14 2015-08-18 Vidyo, Inc. Techniques for describing temporal coding structure
US9706227B2 (en) * 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
CN103416002B (zh) 2011-03-10 2015-04-01 维德约股份有限公司 视频位流中的渲染定向信息
CA2829335A1 (en) 2011-03-10 2012-09-13 Vidyo, Inc. Parameter set maintenance in video coding
WO2012122246A1 (en) * 2011-03-10 2012-09-13 Vidyo, Inc. Dependency parameter set for scalable video coding
US9635355B2 (en) 2011-07-28 2017-04-25 Qualcomm Incorporated Multiview video coding
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US8787688B2 (en) 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US20130114694A1 (en) 2011-11-08 2013-05-09 Qualcomm Incorporated Parameter set groups for coded video data
TWI556629B (zh) * 2012-01-03 2016-11-01 杜比實驗室特許公司 規定視覺動態範圍編碼操作及參數
WO2013106521A2 (en) 2012-01-10 2013-07-18 Vidyo, Inc. Techniques for layered video encoding and decoding
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
EP2838264A4 (en) 2012-04-23 2016-01-06 Samsung Electronics Co Ltd METHOD FOR ENCODING MULTIVUE VIDEO USING A MULTIVUE VIDEO PREDICTION REFERENCE LIST AND DEVICE THEREFOR, AND METHOD FOR DECODING MULTIVUE VIDEO USING A MULTIVUE VIDEO PREDICTION REFERENCE LIST AND DEVICE THEREOF
US9602827B2 (en) 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US9654802B2 (en) 2012-09-24 2017-05-16 Qualcomm Incorporated Sequence level flag for sub-picture level coded picture buffer parameters
US20150245063A1 (en) 2012-10-09 2015-08-27 Nokia Technologies Oy Method and apparatus for video coding
WO2014103606A1 (ja) 2012-12-26 2014-07-03 シャープ株式会社 画像復号装置
US20140218473A1 (en) 2013-01-07 2014-08-07 Nokia Corporation Method and apparatus for video coding and decoding
US20140307803A1 (en) 2013-04-08 2014-10-16 Qualcomm Incorporated Non-entropy encoded layer dependency information

Also Published As

Publication number Publication date
US9565437B2 (en) 2017-02-07
CN105103561B (zh) 2019-10-18
CN105075262A (zh) 2015-11-18
EP2984833A1 (en) 2016-02-17
EP2984843B1 (en) 2024-04-24
WO2014168965A1 (en) 2014-10-16
KR20150139945A (ko) 2015-12-14
WO2014168976A1 (en) 2014-10-16
EP2984833B1 (en) 2020-09-23
WO2014168982A1 (en) 2014-10-16
KR20150139946A (ko) 2015-12-14
EP2984843C0 (en) 2024-04-24
US9473771B2 (en) 2016-10-18
JP2016514931A (ja) 2016-05-23
WO2014168971A1 (en) 2014-10-16
US20140301441A1 (en) 2014-10-09
US20140301483A1 (en) 2014-10-09
JP6386532B2 (ja) 2018-09-05
US20140301484A1 (en) 2014-10-09
WO2014168978A1 (en) 2014-10-16
US20140307803A1 (en) 2014-10-16
KR101787864B1 (ko) 2017-10-18
US20140301469A1 (en) 2014-10-09
CN105103561A (zh) 2015-11-25
US9467700B2 (en) 2016-10-11
EP2984843A1 (en) 2016-02-17
US9485508B2 (en) 2016-11-01
CN105075262B (zh) 2019-04-05
KR102220258B1 (ko) 2021-02-24
BR112015025643A2 (pt) 2017-07-18
JP6370879B2 (ja) 2018-08-08
JP2016519510A (ja) 2016-06-30

Similar Documents

Publication Publication Date Title
ES2837853T3 (es) Codificación de datos de vídeo para un conjunto de capas de salida
KR102353191B1 (ko) 멀티­계층 코덱들을 위한 hevc 디코딩된 픽처 해시 sei 메시지들의 이용
ES2780688T3 (es) Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo
ES2839148T3 (es) Codificación de vídeo multicapa
ES2877048T3 (es) Diseño de valor de Poc para codificación de vídeo multicapa
JP6701100B2 (ja) マルチレイヤビデオコーデック内の回復点seiメッセージ
BR112021004662A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112016008240B1 (pt) Sistemas e métodos para definir separadamente dependências para previsão de camada intermediária com base em subcamada
ES2711892T3 (es) Señalización de puntos de operación para el transporte de extensiones de la HEVC
BR112015025643B1 (pt) Codificação de dados de vídeo para um conjunto de camada de saída
BR112016030194B1 (pt) Codificação de vídeo de multi-camada