ES2872899T3 - Procedimiento y aparato para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros - Google Patents

Procedimiento y aparato para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros Download PDF

Info

Publication number
ES2872899T3
ES2872899T3 ES15734765T ES15734765T ES2872899T3 ES 2872899 T3 ES2872899 T3 ES 2872899T3 ES 15734765 T ES15734765 T ES 15734765T ES 15734765 T ES15734765 T ES 15734765T ES 2872899 T3 ES2872899 T3 ES 2872899T3
Authority
ES
Spain
Prior art keywords
video
vps
encoded
layer
layers
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
ES15734765T
Other languages
English (en)
Inventor
Ye-Kui Wang
Fnu Hendry
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 ES2872899T3 publication Critical patent/ES2872899T3/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento: acceder a un flujo de bits de vídeo codificado, codificado de acuerdo con la norma HEVC o una extensión de la misma, incluyendo el flujo de bits de vídeo codificado una o más capas de mejora y un conjunto de parámetros de vídeo (VPS) que define los parámetros del flujo de bits de vídeo codificado; determinar si un elemento de sintaxis VPS_num_video_signal_info_minus1 indicativo de un número de estructuras de sintaxis de información de señales de vídeo video_signal_info() proporcionado en el flujo de bits de vídeo codificado está presente en el VPS; cuando se determina que vps_num_video_signal_info_minus1 no está presente en el VPS; determinar si una capa base está incluida en el flujo de bits de vídeo codificado o si la capa base se va a recibir desde una fuente externa; caracterizado por determinar el número de estructuras de sintaxis de información de señales de vídeo video_signal_info() incluido en el VPS como un primer valor cuando se determina que la capa base está incluida en el flujo de bits de vídeo codificado, en el que el primer valor es igual a un número máximo de capas del flujo de bits de vídeo codificado, o un segundo valor cuando se determina que la capa base se va a recibir de la fuente externa, en el que el segundo valor es igual a un número máximo de capas del flujo de bits de vídeo codificado menos uno.

Description

DESCRIPCIÓN
Procedimiento y aparato para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros
CAMPO
[0001] La presente divulgación se refiere en general a la codificación de vídeo, y más específicamente a técnicas y sistemas para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros.
ANTECEDENTES
[0002] Muchos dispositivos y sistemas permiten que los datos de vídeo sean procesados y emitidos para su consumo. Los datos de vídeo digital incluyen grandes cantidades de datos para satisfacer las demandas de los consumidores y proveedores de vídeo. Por ejemplo, los consumidores de datos de vídeo desean vídeo de la máxima calidad, con alta fidelidad, altas resoluciones y velocidades de trama y similares. Como resultado, la gran cantidad de datos de vídeo que se requieren para satisfacer estas demandas supone una carga para las redes y dispositivos de comunicación que procesan y almacenan los datos de vídeo.
[0003] Se pueden usar diversas técnicas de codificación de vídeo para comprimir datos de vídeo. La codificación de vídeo se realiza de acuerdo con una o más normas de codificación de vídeo. Por ejemplo, las normas de codificación de vídeo incluyen codificación de vídeo de alta eficacia (HEVC), codificación de vídeo avanzada (AVC), codificación del grupo de expertos en imágenes en movimiento (MPEG), o similares. La codificación de vídeo utiliza, en general, procedimientos de predicción (por ejemplo, interpredicción, intrapredicción o similares) que aprovechan la redundancia presente en las imágenes o secuencias de vídeo. Un objetivo importante de las técnicas de codificación de vídeo es comprimir los datos de vídeo en una forma que use una velocidad de transmisión de bits más baja, mientras se evitan o minimizan las degradaciones en la calidad de vídeo. Con la disponibilidad de servicios de vídeo en constante evolución, se necesitan técnicas de codificación con una mejor eficacia de codificación.
[0004] El documento YE-KUI WANG ETAL: ”AHG10 output text”, EQUIPO COLABORATIVO CONJUNTO DE CODIFICACIÓN DE VÍDEO (JCT-VC) DE ITU-T SG 16 WP 3 E ISO/IEC JTC 1, vol. JCTVC-ROO10v1-JCT3V-I0010v1, 14 de junio de 2014, divulga la sintaxis de extensión escalable HEVC del conjunto de parámetros de vídeo y la extensión del conjunto de parámetros de vídeo.
BREVE EXPLICACIÓN
[0005] De acuerdo con la invención, se proporciona un procedimiento de descodificación como se expone en la reivindicación 1 adjunta, así como un aparato correspondiente como se expone en la reivindicación 8 adjunta. BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0006] A continuación, se describen en detalle modos de realización ilustrativos de la presente invención con referencia a las siguientes figuras de dibujos:
La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de un dispositivo de codificación y un dispositivo de descodificación, de acuerdo con algunos modos de realización.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de conjuntos de capas definidos en una parte de base y una parte de extensión de un conjunto de parámetros, de acuerdo con algunos modos de realización. La FIG. 3 es un ejemplo de una estructura de sintaxis de un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 4 es otro ejemplo de una estructura de sintaxis de un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 5 es otro ejemplo de una estructura de sintaxis de un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 6 es otro ejemplo de una estructura de sintaxis de un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 7 es un diagrama de flujo que ilustra un modo de realización de un proceso de codificación de datos de vídeo para señalizar información para conjuntos de capas en un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 8 es un diagrama de flujo que ilustra un modo de realización de un proceso de descodificación de datos de vídeo incluyendo información señalizada para conjuntos de capas en un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 9A es otro ejemplo de una estructura de sintaxis de un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 9B es otro ejemplo de una estructura de sintaxis de un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 10 es un diagrama de flujo que ilustra un modo de realización de un proceso de codificación de datos de vídeo para señalizar parámetros de descodificador de referencia hipotéticos en un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 11 es un diagrama de bloques que ilustra un entorno con un dispositivo de codificación para proporcionar datos de vídeo codificados con múltiples capas, de acuerdo con algunos modos de realización.
La FIG. 12 es un diagrama de bloques que ilustra un entorno con múltiples dispositivos de codificación para proporcionar datos de vídeo codificados con múltiples capas, de acuerdo con algunos modos de realización.
La FIG. 13 es un ejemplo de un conjunto de parámetros con información de señales de vídeo para múltiples capas de datos de vídeo codificados, de acuerdo con algunos modos de realización.
La FIG. 14 es un diagrama de flujo que ilustra un modo de realización de un proceso de codificación de datos de vídeo para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 15 es un diagrama de flujo que ilustra un modo de realización de un proceso de descodificación de datos de vídeo para inferir diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros, de acuerdo con algunos modos de realización.
La FIG. 16 es un diagrama de bloques que ilustra un dispositivo de codificación de vídeo de ejemplo, de acuerdo con algunos modos de realización.
La FIG. 17 es un diagrama de bloques que ilustra un dispositivo de descodificación de vídeo de ejemplo, de acuerdo con algunos modos de realización.
DESCRIPCIÓN DETALLADA
[0007] En la siguiente descripción se ofrecen detalles específicos para proporcionar un entendimiento exhaustivo de los modos de realización. Sin embargo, un experto en la técnica entenderá que los modos de realización se pueden llevar a la práctica sin estos detalles específicos. Por ejemplo, circuitos, sistemas, redes, procesos y otros componentes se pueden mostrar como componentes en forma de diagrama de bloques para no oscurecer los modos de realización con detalles innecesarios. En otros casos, circuitos, procesos, algoritmos, estructuras y técnicas ampliamente conocidos se pueden mostrar sin detalles innecesarios para no oscurecer los modos de realización.
[0008] Además, cabe destacar que los modos de realización individuales se pueden describir como un proceso que se representa como un organigrama, un diagrama de flujo, un diagrama de flujo de datos, un diagrama de estructura o un diagrama de bloques. Aunque un diagrama de flujo puede describir los funcionamientos como un proceso secuencial, muchos de los funcionamientos se pueden realizar en paralelo o simultáneamente. Además, el orden de los funcionamientos se puede reorganizar. Un proceso se termina cuando se completan sus funcionamientos, pero podría tener etapas adicionales no incluidos en una figura. Un proceso puede corresponder a un procedimiento, una función, una subrutina, un subprograma, etc. Cuando un proceso corresponde a una función, su terminación puede corresponder al retorno de la función a la función de llamada o a la función principal.
[0009] La expresión "medio legible por ordenador" incluye, pero no se limita a, dispositivos de almacenamiento portátiles o no portátiles, dispositivos de almacenamiento óptico y otros diversos medios que puedan almacenar, contener o transportar instrucciones y/o datos. Un medio legible por ordenador puede incluir un medio no transitorio en el que se pueden almacenar datos y que no incluye ondas portadoras y/o señales electrónicas transitorias que se propagan de forma inalámbrica o por conexiones por cable. Ejemplos de un medio no transitorio pueden incluir, pero no se limitan a, un disco o cinta magnéticos, medios de almacenamiento óptico tales como un disco compacto (CD) o un disco versátil digital (DVD), memoria flash, memoria o dispositivos de memoria. Un medio legible por ordenador puede tener almacenado en el mismo código y/o instrucciones ejecutables por máquina que pueden representar un procedimiento, una función, un subprograma, un programa, una rutina, una subrutina, un módulo, un paquete de programa informático, una clase o cualquier combinación de instrucciones, estructuras de datos o sentencias de programa. Un segmento de código se puede acoplar a otro segmento de código o a un circuito de hardware pasando y/o recibiendo información, datos, argumentos, parámetros o contenido de memoria. Se pueden pasar, reenviar o transmitir información, argumentos, parámetros, datos, etc. por medio de cualquier medio adecuado, incluyendo compartición de memoria, paso de mensajes, paso de testigos, transmisión por red o similares.
[0010] Además, los modos de realización se pueden implementar mediante hardware, programa informático, firmware, middleware, microcódigo, lenguajes de descripción de hardware o cualquier combinación de los mismos. Cuando se implementan en programa informático, firmware, middleware o microcódigo, el código de programa o los segmentos de código para realizar las tareas necesarias (por ejemplo, un producto de programa informático) se pueden almacenar en un medio legible por ordenador o legible por máquina. Un(os) procesador(es) puede(n) realizar las tareas necesarias.
[0011] En el presente documento se describen varios sistemas y procedimientos de codificación de vídeo usando codificadores y descodificadores de vídeo. Por ejemplo, uno o más sistemas y procedimientos de codificación están dirigidos a mejorar la señalización de información diferente en un conjunto de parámetros, como el conjunto de parámetros de vídeo (VPS) descrito en la norma de codificación de vídeo de alta eficacia (HEVC).
[0012] A medida que más dispositivos y sistemas ofrecen a los consumidores la capacidad de consumir datos de vídeo digital, la necesidad de técnicas de codificación de vídeo eficaces se vuelve más importante. La codificación de vídeo es necesaria para reducir los requisitos de almacenamiento y transmisión necesarios para manejar las grandes cantidades de datos presentes en los datos de vídeo digital. Se pueden usar diversas técnicas de codificación de vídeo para comprimir los datos de vídeo en una forma que use una velocidad de transmisión de bits más baja mientras mantiene una alta calidad de vídeo.
[0013] La FIG.1 es un diagrama de bloques que ilustra un ejemplo de un sistema 100 que incluye un dispositivo de codificación 104 y un dispositivo de descodificación 112. El dispositivo de codificación 104 puede ser parte de un dispositivo de origen, y el dispositivo de descodificación 112 puede ser parte de un dispositivo de recepción. El dispositivo de origen y/o el dispositivo de recepción pueden incluir un dispositivo electrónico, tal como un teléfono móvil o estacionario (por ejemplo, teléfono inteligente, teléfono celular o similar), un ordenador de escritorio, un ordenador portátil o notebook, una tableta electrónica, un descodificador, un televisor, una cámara, un dispositivo de visualización, un reproductor de medios digitales, una consola de videojuegos, un dispositivo de transmisión continua de vídeo o cualquier otro dispositivo electrónico adecuado. En algunos ejemplos, el dispositivo de origen y el dispositivo de recepción pueden incluir uno o más transceptores inalámbricos para comunicaciones inalámbricas. Las técnicas de codificación descritas en el presente documento son aplicables a la codificación de vídeo en diversas aplicaciones multimedia, incluidas las transmisiones continuas de vídeo (por ejemplo, a través de Internet), radiodifusiones o transmisiones de televisión, codificación de vídeo digital para 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 100 puede prestar soporte a una transmisión de vídeo unidireccional o bidireccional para prestar soporte a aplicaciones tales como videoconferencia, la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo y/o la videotelefonía.
[0014] El dispositivo de codificación 104 (o codificador) se puede usar para codificar datos de vídeo usando una norma o un protocolo de codificación de vídeo para generar un flujo de bits de vídeo codificado. Las normas de codificación de vídeo incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluidas sus ampliaciones de Codificación de Vídeo Escalable (SVC) y de Codificación de Vídeo Multivista (MVC). Se ha completado una norma de codificación de vídeo más reciente, la Codificación de Vídeo de Alta Eficacia (HEVC), por parte del Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y del Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC. El JCT-VC está desarrollando también diversas ampliaciones de HEVC que se ocupan de la codificación de vídeo multicapa, incluida la ampliación multivista de HEVC, denominada MV-HEVC, y la ampliación escalable de HEVC, denominada SHVC, o cualquier otro protocolo de codificación adecuado.
[0015] Muchos modos de realización descritos en el presente documento describen ejemplos usando la norma HEVC o ampliaciones de la misma. Sin embargo, las técnicas y sistemas descritos en el presente documento también pueden ser aplicables a otras normas de codificación, tales como AVC, MPEG, ampliaciones de las mismas u otras normas de codificación adecuadas. En consecuencia, aunque las técnicas y sistemas descritos en el presente documento se pueden describir con referencia a una norma de codificación de vídeo particular, un experto en la técnica apreciará que la descripción no se debe interpretar para que se aplique solo a esa norma particular.
[0016] Una fuente de vídeo 102 puede proporcionar los datos de vídeo al dispositivo de codificación 104. La fuente de vídeo 102 puede ser parte del dispositivo de origen, o puede ser parte de un dispositivo que no sea el dispositivo de origen. La fuente de vídeo 102 puede incluir un dispositivo de captura de vídeo (por ejemplo, una videocámara, un teléfono con cámara, un videoteléfono o similar), un archivo de vídeo que contiene vídeo almacenado, un servidor de vídeo o proveedor de contenido que proporciona datos de vídeo, una interfaz de alimentación de vídeo que recibe vídeo desde un servidor de vídeo o proveedor de contenido, un sistema de gráficos de ordenador para generar datos de vídeo de gráficos de ordenador, una combinación de dichas fuentes o cualquier otra fuente de vídeo adecuada.
[0017] Los datos de vídeo de la fuente de vídeo 102 pueden incluir una o más tramas o imágenes de entrada. Una imagen o trama es una imagen fija que forma parte de un vídeo. El motor codificador 106 (o codificador) del dispositivo de codificación 104 codifica los datos de vídeo para generar un flujo de bits de vídeo codificado. Un flujo de bits HEVC, por ejemplo, puede incluir una secuencia de unidades de datos denominadas unidades de capa de abstracción de red (NAL). Existen dos clases de unidades NAL en la norma HEVC, incluyendo unidades NAL de capa de codificación de vídeo (VCL) y unidades NAL no VCL. Una unidad NAL VCL incluye un fragmento o segmento de fragmento (descrito a continuación) de datos de imagen codificados, y una unidad NAL no VCL incluye información de control que se refiere a múltiples imágenes codificadas. Una imagen codificada y unidades NAL no VCL (si existen) correspondientes a la imagen codificada se denominan unidad de acceso (AU).
[0018] Las unidades NAL pueden contener una secuencia de bits que forman una representación codificada de los datos de vídeo (el flujo de bits de vídeo codificado), tales como representaciones codificadas de imágenes en un vídeo. El motor codificador 106 genera representaciones codificadas de imágenes dividiendo cada imagen en múltiples fragmentos. Un fragmento es independiente de otros fragmentos, de modo que la información en el fragmento se codifica independientemente de los datos de otros fragmentos dentro de la misma imagen. Un fragmento incluye uno o más segmentos de fragmento que incluyen un segmento de fragmento independiente y, si están presentes, uno o más segmentos de fragmento dependientes que dependen de segmentos de fragmento previos. Los fragmentos se dividen a continuación en bloques de árbol de codificación (CTB) de muestras de luma y muestras de croma. Un CTB de muestras de luma y uno o más CTB de muestras de croma, junto con la sintaxis de las muestras, se denominan unidad de árbol de codificación (CTU). Una CTU es la unidad de procesamiento básica para la codificación HEVC. Una CTU se puede dividir en múltiples unidades de codificación (CU) de diferentes tamaños. Una CU contiene matrices de muestras de luma y croma que se denominan bloques de codificación (CB).
[0019] Los CB de luma y croma se pueden dividir adicionalmente en bloques de predicción (PB). Un PB es un bloque de muestras de luma o un componente de croma que usa los mismos parámetros de movimiento para la interpredicción. El PB de luma y uno o más PB de croma, junto con la sintaxis asociada, forman una unidad de predicción (PU). Un conjunto de parámetros de movimiento se señaliza en el flujo de bits para cada PU y se usa para la interpredicción del PB de luma y de los uno o más PB de croma. Un CB también se puede dividir en uno o más bloques de transformada (TB). Un TB representa un bloque cuadrado de muestras de un componente de color en el que se aplica la misma transformada bidimensional para codificar una señal residual de predicción. Una unidad de transformada (TU) representa los TB de las muestras de luma y croma, y elementos de sintaxis correspondientes.
[0020] El tamaño de una CU corresponde al tamaño del nodo de codificación, y es de conformación cuadrada. Por ejemplo, el tamaño de una CU puede ser de 8 x 8 muestras, 16 x 16 muestras, 32 x 32 muestras, 64 x 64 muestras, o cualquier otro tamaño apropiado hasta el tamaño de la CTU correspondiente. La expresión "N x N" se usa en el presente documento para referirse a las dimensiones en píxeles de un bloque de vídeo en términos de dimensiones verticales y horizontales (por ejemplo, 8 píxeles x 8 píxeles). Los píxeles de un bloque se pueden disponer en filas y columnas. En algunos modos de realización, no es necesario que los bloques tengan el mismo número de píxeles en una dirección horizontal y en una dirección vertical. Los datos de sintaxis asociados a una CU pueden describir, por ejemplo, la división de la CU en una o más PU. Los modos de división pueden diferir en si la CU está codificada en modo de intrapredicción o codificada en modo de interpredicción. Las PU se pueden dividir para tener una conformación no cuadrada. Los datos de sintaxis asociados a una CU también pueden describir, por ejemplo, la división de la CU en una o más TU de acuerdo con una CTU. Una TU puede tener una conformación cuadrada o no cuadrada.
[0021] De acuerdo con la norma HEVC, las transformaciones se pueden realizar usando unidades de transformada (TU). Las TU pueden variar para diferentes CU. Las TU se pueden dimensionar en base al tamaño de las PU dentro de una CU dada. Las TU pueden ser del mismo tamaño o de un tamaño más pequeño que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU se pueden subdividir en unidades más pequeñas usando una estructura de árbol cuaternario conocida como árbol cuaternario residual (RQT). Los nodos hoja del RQT pueden corresponder a las TU. Los valores de diferencia de píxeles asociados a las TU se pueden transformar para producir coeficientes de transformada. A continuación, los coeficientes de transformada pueden ser cuantificados por el motor codificador 106.
[0022] Una vez que las imágenes de los datos de vídeo se dividen en CU, el motor codificador 106 predice cada PU usando un modo de predicción. A continuación, la predicción se resta de los datos de vídeo originales para obtener valores residuales (descritos a continuación). Para cada CU, se puede señalizar un modo de predicción dentro del flujo de bits usando datos de sintaxis. Un modo de predicción puede incluir intrapredicción (o predicción intraimagen) o interpredicción (o predicción interimagen). Usando la intrapredicción, cada PU se predice a partir de datos de imagen vecinos en la misma imagen usando, por ejemplo, predicción DC para encontrar un valor promedio para la PU, predicción plana para ajustar una superficie plana a la PU, predicción de dirección para extrapolar a partir de los datos vecinos, o cualquier otro tipo adecuado de predicción. Usando la interpredicción, cada PU se predice usando predicción de compensación de movimiento a partir de los datos de imagen en una o más imágenes de referencia (antes o después de la imagen actual en orden de salida).
[0023] Una PU puede incluir datos relacionados con el proceso de predicción. Por ejemplo, cuando la PU se codifica usando intrapredicción, la PU puede incluir datos que describen un modo de intrapredicción para la PU. Como otro ejemplo, cuando la PU se codifica usando interpredicción, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, lista 0, lista 1 o lista C) para el vector de movimiento.
[0024] El dispositivo de codificación 104 puede a continuación realizar la transformación y cuantificación. Por ejemplo, tras la predicción, el motor codificador 106 puede calcular valores residuales correspondientes a la PU. Los valores residuales pueden comprender valores de diferencia de píxeles. Cualquier dato residual que pueda quedar después de que se lleve a cabo la predicción se transforma usando una transformada de bloque, que se puede basar en una transformada de coseno discreta, una transformada de seno discreta, una transformada de número entero, una transformada de ondas pequeñas u otra función de transformada adecuada. En algunos casos, una o más transformadas de bloque (por ejemplo, tamaños de 32 x 32, 16 x 16, 8 x 8, 4 x 4 o similares) se pueden aplicar a los datos residuales en cada CU. En algunos modos de realización, se puede usar una TU para los procesos de transformada y cuantificación implementados por el motor codificador 106. Una CU dada que tiene una o más PU también puede incluir una o más TU. Como se describe con más detalle a continuación, los valores residuales se pueden transformar en coeficientes de transformada usando las transformadas de bloque, y a continuación se pueden cuantificar y explorar usando TU para producir coeficientes de transformada serializados para la codificación por entropía.
[0025] En algunos modos de realización, tras la codificación de intrapredicción o interpredicción usando las PU de una CU, el motor codificador 106 puede calcular los datos residuales para las TU de la CU. Las PU pueden comprender datos de píxel en el dominio espacial (o dominio de píxel). Las TU pueden comprender coeficientes en el dominio de transformada después de la aplicación de una transformada de bloque. Como se ha observado previamente, los datos residuales pueden corresponder a valores de diferencia de píxeles entre píxeles de la imagen no codificada y valores de predicción correspondientes a las PU. El motor codificador 106 puede formar las TU, incluyendo los datos residuales para la CU y, a continuación, transformar las TU para producir coeficientes de transformada para la CU.
[0026] El motor codificador 106 puede realizar la cuantificación de los coeficientes de transformada. La cuantificación proporciona una compresión adicional al cuantificar los coeficientes de transformada para reducir la cantidad de datos usados para representar los coeficientes. Por ejemplo, la cuantificación puede reducir la profundidad de bits asociada a algunos o todos los coeficientes. En un ejemplo, un coeficiente con un valor de n bits se puede redondear a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0027] Una vez que se lleva a cabo la cuantificación, el flujo de bits de vídeo codificado incluye coeficientes de transformada cuantificados, información de predicción (por ejemplo, modos de predicción, vectores de movimiento o similares), información de división, y cualesquiera otros datos adecuados, tales como otros datos de sintaxis. Los diferentes elementos del flujo de bits codificado pueden ser codificados por entropía por el motor codificador 106. En algunos ejemplos, el motor codificador 106 puede utilizar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados para producir un vector serializado que se pueda codificar por entropía. En algunos ejemplos, el motor codificador 106 puede realizar una exploración adaptativa. Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el motor codificador 106 puede codificar por entropía el vector unidimensional. Por ejemplo, el motor codificador 106 puede usar codificación de longitud variable adaptativa al contexto, codificación aritmética binaria adaptativa al contexto, codificación aritmética binaria adaptativa el contexto basada en sintaxis, codificación por entropía por división en intervalos de probabilidad u otra técnica de codificación por entropía adecuada.
[0028] Como se describe previamente, un flujo de bits HEVC incluye un grupo de unidades NAL. Una secuencia de bits que forman el flujo de bits de vídeo codificado está presente en las unidades NAL VCL. Las unidades NAL no VCL pueden contener conjuntos de parámetros con información de alto nivel relacionada con el flujo de bits de vídeo codificado, además de otra información. Por ejemplo, un conjunto de parámetros puede incluir un conjunto de parámetros de vídeo (VPS), un conjunto de parámetros de secuencia (SPS) y un conjunto de parámetros de imagen (PPS). El objetivo de los conjuntos de parámetros es la eficacia de la velocidad de transmisión de bits, la resistencia a los errores y el suministro de interfaces de capa de sistemas. Cada fragmento hace referencia a un único PPS, SPS y VPS activo para acceder a la información que el dispositivo de descodificación 112 puede usar para descodificar el fragmento. Se puede codificar un identificador (ID) para cada conjunto de parámetros, incluyendo un ID de VPS, un ID de SPS y un ID de PPS. Un SPS incluye un ID de SPS y un ID de v Ps . Un PPS incluye un ID de PPS y un ID de SPS. Cada cabecera de fragmento incluye un ID de PPS. Usando los ID, se pueden identificar conjuntos de parámetros activos para un fragmento dado.
[0029] Un PPS incluye información que se aplica a todos los fragmentos en una imagen dada. Debido a esto, todos los fragmentos en una imagen se refieren al mismo PPS. Los fragmentos en diferentes imágenes también se pueden referir al mismo PPS. Un SPS incluye información que se aplica a todas las imágenes en una misma secuencia de vídeo codificada o flujo de bits codificado. Una secuencia de vídeo codificada es una serie de unidades de acceso que comienza con una imagen de punto de acceso aleatorio (por ejemplo, una imagen de refresco de descodificación instantánea (IDR) o una imagen de acceso de enlace roto (BLA) u otra imagen de punto de acceso aleatorio apropiada) e incluye todas las unidades de acceso hasta, pero sin incluir, la siguiente imagen de punto de acceso aleatorio (o el final del flujo de bits). La información en un SPS no cambia típicamente de una imagen a otra dentro de una secuencia de vídeo codificada. Todas las imágenes en una secuencia de vídeo codificada usan el mismo SPS. El VPS incluye información que se aplica a todas las capas dentro de una secuencia de vídeo codificada o flujo de bits codificado. El VPS incluye una estructura de sintaxis con elementos de sintaxis que se aplican a secuencias de vídeo codificadas completas. En algunos modos de realización, el VPS, el SPS o el PPS se pueden transmitir en banda con el flujo de bits codificado. En algunos modos de realización, el VPS, el SPS o el PPS se pueden transmitir fuera de banda en una transmisión separada respecto de las unidades NAL que contienen datos de vídeo codificados.
[0030] La salida 110 del dispositivo de codificación 104 puede enviar las unidades NAL que componen los datos de vídeo codificados a través del enlace de comunicaciones 120 al dispositivo de descodificación 112 del dispositivo de recepción. La entrada 114 del dispositivo de descodificación 112 puede recibir las unidades NAL. El enlace de comunicaciones 120 puede incluir una señal transmitida usando una red inalámbrica, una red alámbrica o una combinación de una red alámbrica e inalámbrica. Una red inalámbrica puede incluir cualquier interfaz inalámbrica o combinación de interfaces inalámbricas y puede incluir cualquier red inalámbrica adecuada (por ejemplo, Internet u otra red de área amplia, una red basada en paquetes, W iFi™, radiofrecuencia (RF), UWB, WiFi-Direct, celular, Evolución a Largo Plazo (LTE), WiMax™ o similar). Una red por cable puede incluir cualquier interfaz por cable (por ejemplo, fibra, ethernet, ethernet de línea eléctrica, ethernet sobre cable coaxial, línea de señal digital (DSL) o similares). Las redes por cable y/o inalámbricas se pueden implementar usando diversos equipos, tales como estaciones base, enrutadores, puntos de acceso, puentes, pasarelas, conmutadores o similares. 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 recepción.
[0031] En algunos ejemplos, el dispositivo de codificación 104 puede almacenar datos de vídeo codificados en el almacenamiento 108. La salida 110 puede recuperar los datos de flujo de bits de vídeo codificado del motor codificador 106 o del almacenamiento 108. El almacenamiento 108 puede incluir cualquiera de una variedad de medios de almacenamiento de datos distribuidos o de acceso local. Por ejemplo, el almacenamiento 108 puede incluir un disco duro, un disco de almacenamiento, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados.
[0032] La entrada 114 recibe los datos de vídeo codificados y puede proporcionar los datos de vídeo al motor descodificador 116 o al almacenamiento 118 para su uso posterior por parte del motor descodificador 116. El motor descodificador 116 puede descodificar los datos de vídeo codificados mediante descodificación por entropía (por ejemplo, usando un descodificador por entropía) y extrayendo los elementos de la secuencia de vídeo codificada que forma los datos de vídeo codificados. A continuación, el motor descodificador 116 puede reescalar y realizar una transformada inversa en los datos de vídeo codificados. A continuación, los datos residuales se trasfieren a una fase de predicción del motor descodificador 116. A continuación, el motor descodificador 116 predice un bloque de píxeles (por ejemplo, una PU). En algunos ejemplos, la predicción se añade a la salida de la transformada inversa.
[0033] El dispositivo de descodificación 112 puede emitir el vídeo descodificado a un dispositivo de destino de vídeo 122, que puede incluir una pantalla de visualización u otro dispositivo de salida para mostrar los datos de vídeo descodificados a un consumidor del contenido. En algunos aspectos, el dispositivo de destino de vídeo 122 puede ser parte del dispositivo de recepción que incluye el dispositivo de descodificación 112. En algunos aspectos, el dispositivo de destino de vídeo 122 puede ser parte de un dispositivo separado que no sea el dispositivo de recepción.
[0034] En algunos modos de realización, el dispositivo de codificación de vídeo 104 y/o el dispositivo de descodificación de vídeo 112 pueden estar integrados con un dispositivo de codificación de audio y un dispositivo de descodificación de audio, respectivamente. El dispositivo de codificación de vídeo 104 y/o el dispositivo de descodificación de vídeo 112 también pueden incluir otro hardware o programa informático que sea necesario para implementar las técnicas de codificación descritas anteriormente, 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, programa informático, hardware, firmware o cualquier combinación de los mismos. El dispositivo de codificación de vídeo 104 y el dispositivo de descodificación de vídeo 112 se pueden integrar como parte de un codificador/descodificador (códec) combinado en un dispositivo respectivo. A continuación, se describe un ejemplo de detalles específicos del dispositivo de codificación 104 con referencia a la FIG. 16. A continuación, se describe un ejemplo de detalles específicos del dispositivo de descodificación 112 con referencia a la FIG. 17.
[0035] Como se indica anteriormente, las ampliaciones de la norma HEVC incluyen la ampliación de codificación de vídeo multivista, denominada MV-HEVC, y la ampliación de codificación de vídeo escalable, denominada SHVC. Las ampliaciones MV-HEVC y SHVC comparten el concepto de codificación en capas, con diferentes capas incluidas en el flujo de bits de vídeo codificado. Cada capa en una secuencia de vídeo codificada se direcciona mediante un identificador (ID) de capa único. Un ID de capa puede estar presente en una cabecera de una unidad NAL para identificar una capa con la cual está asociada la unidad NAL. En MV-HEVC, diferentes capas representan normalmente diferentes vistas de la misma escena en el flujo de bits de vídeo. En SHVC, se proporcionan diferentes capas escalables que representan el flujo de bits de vídeo en diferentes resoluciones espaciales (o resolución de imagen) o en diferentes fidelidades de reconstrucción. Las capas escalables pueden incluir una capa base (con ID de capa = 0) y una o más capas de mejora (con ID de capa = 1,2, ... n). La capa base se puede ajustar a un perfil de la primera versión de HEVC y representa la capa más baja disponible en un flujo de bits. Las capas de mejora tienen una resolución espacial, resolución temporal o velocidad de trama, y/o fidelidad de reconstrucción (o calidad) incrementadas en comparación con la capa base. Las capas de mejora están organizadas jerárquicamente y pueden (o no) depender de capas inferiores. En algunos ejemplos, las diferentes capas se pueden codificar usando un códec de norma única (por ejemplo, todas las capas se codifican usando HEVC, SHVC u otra norma de codificación). En algunos ejemplos, diferentes capas se pueden codificar usando un códec de múltiples normas. Por ejemplo, una capa base se puede codificar usando AVC, mientras que una o más capas de mejora se pueden codificar usando las ampliaciones SHVC y/o MV-HEVC de la norma HEVC.
[0036] En general, una capa incluye un conjunto de unidades NAL VCL y un conjunto correspondiente de unidades NAL no VCL. A cada una de las unidades NAL se le asigna un valor de ID de capa particular. Las capas pueden ser jerárquicas en el sentido de que una capa puede depender de una capa inferior. Un conjunto de capas se refiere a un conjunto de capas representadas dentro de un flujo de bits que son independientes, lo cual significa que las capas dentro de un conjunto de capas pueden depender de otras capas en el conjunto de capas en el proceso de descodificación, pero no depender de ninguna otra capa para la descodificación. En consecuencia, las capas en un conjunto de capas pueden formar un flujo de bits independiente que puede representar el contenido de vídeo. El conjunto de capas en un conjunto de capas se puede obtener de otro flujo de bits mediante el funcionamiento de un proceso de extracción de subflujo de bits. Un conjunto de capas puede corresponder al conjunto de capas que se va a descodificar cuando un descodificador desea funcionar de acuerdo con ciertos parámetros.
[0037] Al codificar una secuencia de vídeo, es beneficioso tener control sobre el estado de la memoria intermedia del descodificador para muchas aplicaciones. Esto se aplica a comunicaciones y/o radiodifusión. El codificador debe proporcionar los datos transmitidos de manera que estén disponibles en el descodificador en un tiempo de descodificación de la imagen correspondiente. Además, el codificador debe proporcionar que el flujo de bits no sobrepase la memoria intermedia de flujo de bits de entrada del descodificador, así como la memoria intermedia de imágenes en la que se almacenan las imágenes descodificadas.
[0038] Se proporciona un descodificador de referencia hipotético (HRD) para someter a prueba el control sobre una secuencia de vídeo codificada. El HRD puede funcionar en general con secuencias de vídeo codificadas de acuerdo con una norma de compresión de vídeo. Los parámetros para la configuración y el funcionamiento del descodificador de referencia hipotético se pueden proporcionar en un conjunto de parámetros de vídeo (VPS) y/o en un conjunto de parámetros de secuencia (SPS). Los parámetros HRD se pueden proporcionar para múltiples puntos de funcionamiento para el flujo de bits, como se detalla a continuación. Esto proporciona información sobre las características del flujo de bits después de un procesamiento adicional (por ejemplo, extracción de subflujo de bits). El HRD se puede aplicar en codificadores para controlar el flujo de bits producido y también se puede aplicar para verificar la conformidad de un flujo de bits dado con los requisitos de especificación de las normas. Además, la conformidad de la implementación del descodificador en cuestión se puede someter a prueba frente a los requisitos de rendimiento y temporización definidos por el HRD. Un codificador puede omitir selectivamente algunas o todas las señalizaciones de los parámetros HRD para un flujo de bits, o para algunas o todas las capas de un flujo de bits. Esto puede proporcionar algunas limitaciones relacionadas con la verificación de la conformidad del flujo de bits con una norma de compresión de vídeo.
[0039] Se proporcionan conjuntos de parámetros HRD (por ejemplo, en una secuencia o conjunto de parámetros de vídeo, o en otros mensajes) para permitir la funcionalidad multicapa, con cada conjunto de parámetros correspondiente a un punto de funcionamiento. Un punto de funcionamiento define los parámetros usados para la extracción de subflujo de bits e incluye una lista de capas objetivo (un conjunto de capas para ese punto de funcionamiento) y una capa temporal más alta objetivo. Se pueden aplicar múltiples puntos de funcionamiento a un flujo de bits dado. Un punto de funcionamiento puede incluir todas las capas en un conjunto de capas o puede ser un flujo de bits formado como un subconjunto del conjunto de capas. Por ejemplo, un punto de funcionamiento de un flujo de bits puede estar asociado con un conjunto de identificadores de capa y un identificador temporal. Se puede usar una lista de identificadores de capa para identificar las capas que se van a incluir en el punto de funcionamiento. La lista de identificadores de capa se puede incluir en un conjunto de parámetros (por ejemplo, un VPS). La lista de identificadores de capa puede incluir una lista de valores de identificadores de capa (ID) (por ejemplo, indicados por un elemento de sintaxis nuh_layer_id). En algunos casos, los valores de ID de capa pueden incluir números enteros no negativos, y cada capa puede estar asociada con un valor de ID de capa único de modo que cada valor de ID de capa identifica una capa particular. Se puede usar un ID temporal más alto (por ejemplo, identificado por una variable TemporalId) para definir un subconjunto temporal. En algunos modos de realización, una lista de identificadores de capa y un ID temporal más alto objetivo se pueden usar como entradas para extraer un punto de funcionamiento de un flujo de bits. Por ejemplo, cuando una unidad NAL tiene un identificador de capa que está incluido en un conjunto de identificadores de capa asociado con un punto de funcionamiento y el identificador temporal de la unidad NAL es menor que o igual al identificador temporal del punto de funcionamiento, la unidad NAL está asociada con el punto de funcionamiento. Una capa de salida objetivo es una capa que se va a emitir y un conjunto de capas de salida es un conjunto de capas que está asociado con un conjunto de capas de salida objetivo. Un conjunto de capas de salida es un conjunto de capas que incluye las capas de un conjunto de capas especificado, donde una o más capas en el conjunto de capas se indica que serán capas de salida. Un punto de funcionamiento de salida corresponde a un conjunto de capas de salida particular. Por ejemplo, un punto de funcionamiento de salida puede incluir un flujo de bits que se crea a partir de un flujo de bits de entrada mediante el funcionamiento de un proceso de extracción de subflujo de bits con el flujo de bits de entrada, un identificador temporal más alto objetivo (Temporal-Id) y una lista de identificadores de capa objetivo como entradas, y que está asociado con un conjunto de capas de salida.
[0040] Como se describió previamente, los conjuntos de parámetros se proporcionan con un flujo de bits de vídeo codificado (por ejemplo, en una o más unidades NAL no VCL). Los conjuntos de parámetros contienen información de sintaxis de alto nivel que define diversos parámetros del flujo de bits de vídeo codificado. Un ejemplo de un conjunto de parámetros incluye un conjunto de parámetros de vídeo (VPS). El VPS puede tener dos partes, incluyendo una parte base (o VPS base) y una parte de extensión (o extensión VPS). El VPS base se define en la primera edición de la norma HEVC y la extensión VPS se define en una edición posterior de la norma HEVC. El VPS base puede contener información relacionada con la capa base HEVC (o capa compatible). El VPS base puede también contener información de escalabilidad temporal, incluyendo el número máximo de capas temporales. Se pueden definir uno o más conjuntos de capas en el VPS base. Por ejemplo, el VPS base puede definir un conjunto de capas 0 que corresponde a un conjunto de capas que incluye la capa base. La extensión VPS contiene información relacionada con una o más capas adicionales más allá de la capa base. Por ejemplo, se pueden definir uno o más conjuntos de capas adicionales en la extensión VPS, que no están definidos en la parte base.
[0041] La FIG. 2 ilustra un ejemplo de conjuntos de capas definidos en una parte base (VPS base 202) y una parte de extensión (extensión VPS 204) de un conjunto de parámetros de vídeo. El VPS base 202 define el conjunto de capas 0, el conjunto de capas 1, el conjunto de capas 2 y el conjunto de capas 3. El conjunto de capas 0 incluye la capa 0. El conjunto de capas 1 incluye la capa 0 y la capa 1. El conjunto de capas 2 incluye la capa 0, la capa 1 y la capa 2. El conjunto de capas 3 incluye la capa 0, la capa 1, la capa 2 y la capa 3. La extensión VPS 204 define conjuntos de capas adicionales que no están definidos en el VPS base 202. Los conjuntos de capas adicionales incluyen el conjunto de capas 4 y el conjunto de capas 5. El conjunto de capas adicionales 4 incluye la capa 4, y el conjunto de capas adicionales 5 incluye la capa 5 y la capa 6. En algunos ejemplos, la capa 0 puede ser una capa base y las capas 1, 2, 3, 4, 5 y 6 pueden ser capas de mejora. Por ejemplo, la capa 0 puede ser una capa base con un identificador (ID) de capa igual a 0. La capa base también se puede denominar capa compatible. La capa base se puede ajustar a un perfil de la primera versión de HEVC y representa la capa más baja disponible en un flujo de bits. Las capas 1, 2, 3, 4, 5 y 6 pueden incluir capas de mejora que tienen los correspondientes ID de capa. Por ejemplo, la capa 1 tiene un ID de capa igual a 1, la capa 2 tiene un ID de capa igual a 2, la capa 3 tiene un ID de capa igual a 3, la capa 4 tiene un ID de capa igual a 4, la capa 5 tiene un ID de capa igual a 5, y la capa 6 tiene un ID de capa igual a 6. Las capas de mejora tienen una resolución espacial, resolución temporal o velocidad de trama, y/o fidelidad de reconstrucción (o calidad) incrementadas en comparación con la capa base. En algunos ejemplos, la capa 0 puede tener una velocidad de trama de 7,5 Hz y una velocidad de transmisión de bits de 64 kilobytes por segundo, la capa 1 puede tener una velocidad de trama de 15 Hz y una velocidad de transmisión de bits de 128 kilobytes por segundo, la capa 2 puede tener una velocidad de trama de 15 Hz y una velocidad de transmisión de bits de 256 kilobytes por segundo, la capa 3 puede tener una velocidad de trama de 30 Hz y una velocidad de transmisión de bits de 512 kilobytes por segundo, la capa 4 puede tener una velocidad de trama de 30 Hz y una velocidad de transmisión de bits de 1 megabyte por segundo, la capa 5 puede tener una velocidad de trama de 60 Hz y una velocidad de transmisión de bits de 1,5 megabytes por segundo, y la capa 6 puede tener una velocidad de trama de 60 Hz y una velocidad de transmisión de bits de 2 megabytes por segundo. En algunos ejemplos, las velocidades de trama también se pueden denominar velocidades de imagen y, por tanto, las diferentes capas 0, 1, 2, 3, 4, 5 y 6 también pueden tener diferentes velocidades de imagen. Un experto en la técnica apreciará que estos números se proporcionan solo como ejemplo y que las capas pueden tener otras velocidades de trama y velocidades de transmisión de bits de acuerdo con la implementación particular.
[0042] La información de señalización se proporciona en el VPS que define las características de uno o más conjuntos de capas definidos en el VPS base 202. En algunos ejemplos, la información de señalización puede definir información de velocidad para los uno o más conjuntos de capas. La información de velocidad incluye, por ejemplo, información de velocidad de transmisión de bits, información de velocidad de imagen u otra información de velocidad adecuada que se aplica a las capas en un conjunto de capas dado. En un ejemplo, la información de velocidad de transmisión de bits para un conjunto de capas dado puede incluir una velocidad de transmisión de bits promedio o una velocidad de imagen promedio de las capas del conjunto de capas dado. En otro ejemplo, la información de velocidad de transmisión de bits puede incluir una velocidad de transmisión de bits máxima de las capas de un conjunto de capas dado. A continuación se proporcionan otros ejemplos de información de velocidad. En algunos ejemplos, la información de señalización puede incluir información de salida objetivo que indica si una capa en un conjunto de capas es una capa de salida objetivo de un conjunto de capas de salida. Por ejemplo, la información de salida objetivo puede incluir un elemento de sintaxis output_layer_flag[i][j]. Como se usa en el presente documento, las variables [i] y [j] se refieren a la j-ésima capa del i-ésimo conjunto de capas. La información de velocidad y la información de salida objetivo se deben indicar para todos los conjuntos de capas (definidos en las partes de base y extensión VPS), incluyendo los conjuntos de capas y los conjuntos de capas adicionales, ya que los clientes pueden optar por solicitar o consumir un conjunto de capas adicionales en base a dicha información. Sin embargo, con el esquema de señalización actual definido en la norma HEVC, la información de señalización solo se señaliza para los conjuntos de capas que se definen en la parte base del VPS.
[0043] El número de conjuntos de capas que se señalizan en el VPS base (por ejemplo, el VPS base 202) se indica mediante un elemento de sintaxis del VPS. Por ejemplo, la FIG. 3 ilustra un ejemplo de una estructura de sintaxis 300 de una extensión VPS. La entrada 302 incluye el elemento de sintaxis 306, marcado vps_num_layer_sets_mmus1, que indica el número de conjuntos de capas que están señalizados en el VPS base. El elemento de sintaxis 304, marcado output_layer_flag [i][j], indica si una capa en un conjunto de capas es una capa de salida objetivo de un conjunto de capas de salida. Debido a que el elemento de sintaxis 306 vps_num_layer-sets_minus1 indica el número de conjuntos de capas señalizados en el VPS base (y no los conjuntos de capas adicionales señalizados en la extensión VPS), el elemento de sintaxis 304 output_layer_flag[i][j] solo se señaliza para esos conjuntos de capas definidos en el VPS base.
[0044] El número total de conjuntos de capas que se señalizan en el VPS base y la extensión VPS (incluyendo los conjuntos de capas adicionales señalizados en la extensión VPS, si están presentes) se indica mediante una variable NumLayerSets que se deriva en base a elementos de sintaxis del VPS. Los modos de realización descritos en el presente documento incluyen actualizar la señalización de la información en el VPS relacionada con los conjuntos de capas para que la información de señalización (por ejemplo, información de velocidad e información de salida objetivo) se señalice para todos los conjuntos de capas, incluyendo los conjuntos de capas adicionales definidos en la extensión VPS 204. Por ejemplo, como se ilustra en la FIG. 4, el elemento de sintaxis 306 vps_num_layer_sets_minus1 se puede eliminar de la extensión VPS y se puede añadir una variable 406 NumLayerSets a la entrada 302 para crear una nueva estructura de sintaxis 400. Debido a que la variable 406 NumLayerSets indica el número total de conjuntos de capas que se señalizan en el VPS base y la extensión VPS, el elemento de sintaxis 304 output_layer_flag[i][j]se señaliza para los conjuntos de capas definidos en el VPS base y los conjuntos de capas adicionales definidos en la extensión VPS.
[0045] La FIG. 5 ilustra otro ejemplo de una estructura de sintaxis 500 de un VPS. La estructura de sintaxis 500 es parte de una parte de información de usabilidad de vídeo (VUI) de la extensión VPS, que se puede denominar en el presente documento como VUI VPS. La estructura de sintaxis de VUI VPS contiene información que es útil para preparar el vídeo descodificado para su salida y visualización. La VUI VPS puede incluir información relacionada con el vídeo codificado, tal como información de velocidad, proporción de aspecto de muestra, el espacio de color original y representación del vídeo codificado, información de temporización de imagen u otra información. La inclusión de diferentes partes en la estructura de sintaxis de VUI es opcional y se puede decidir como lo requiera una implementación o aplicación en particular. En algunos ejemplos, se pueden especificar valores predeterminados para algunos o todos los parámetros VUI para los casos en los que no se han proporcionado los parámetros VUI correspondientes.
[0046] En el ejemplo de la FIG. 5, la estructura de sintaxis 500 de la VUI VPS incluye un elemento de sintaxis 504 bit_rate_present_flag[i][j] que incluye un indicador que indica si la información de velocidad de transmisión de bits está disponible para uno o más conjuntos de capas señalizados en el VPS. Por ejemplo, un valor de 0 o 1 para el indicador puede indicar que la información de velocidad de transmisión de bits está disponible para los uno o más conjuntos de capas. La estructura de sintaxis 500 de la VUI VPS incluye además el elemento de sintaxis 506 pic_rate_present_flag[i][j] que incluye un indicador que indica si la información de velocidad de imagen está disponible para uno o más conjuntos de capas señalizados en el VPS. Por ejemplo, un valor de 0 o 1 para el indicador puede indicar que la información de velocidad de imagen está disponible para los uno o más conjuntos de capas. La estructura de sintaxis 500 de la VUI VPS también incluye un elemento de sintaxis 508 avg_b it_rate [i][j] que indica una velocidad de transmisión de bits promedio para cada conjunto de capas de los uno o más conjuntos de capas señalizados en el VPS. La estructura de sintaxis 500 de la VUI VPS incluye además un elemento de sintaxis 510 max_bit_rate que indica una velocidad de transmisión de bits máxima para cada conjunto de capas de los uno o más conjuntos de capas señalizados en el VPS. La estructura de sintaxis 500 de la VUI VPS también incluye un elemento de sintaxis 512 constant_pic_rate_idc[i][j] que indica si un conjunto de capas de los uno o más conjuntos de capas señalizados en el VPS tiene una velocidad de imagen constante. La estructura de sintaxis 500 de la VUI VPS incluye además un elemento de sintaxis 514 avg_pic_rate[i][j] que indica una velocidad de imagen promedio para cada conjunto de capas de los uno o más conjuntos de capas señalizados en el VPS. Un experto en la técnica apreciará que los elementos de sintaxis 504-514 son ejemplos y que pueden estar presentes más o menos conjuntos de información de señalización en la estructura de sintaxis 500 de la VUI VPS.
[0047] La información proporcionada en los elementos de sintaxis 504-514 se señaliza para los conjuntos de capas que se definen en la extensión VPS, que se proporciona en la entrada 502 de la estructura de sintaxis 500. La entrada 502 incluye un elemento de sintaxis que indica el número de conjuntos de capas que están señalizados. La entrada 502 mostrada en la FIG. 5 incluye el elemento de sintaxis 516 vps_num_layer_sets_minus1, que indica el número de conjuntos de capas señalizados en el VPS base (y no los conjuntos de capas adicionales señalizados en la extensión VPS). En consecuencia, los elementos de sintaxis de información de velocidad 504-514 solo se señalizan para aquellos conjuntos de capas definidos en el VPS base. La FIG. 6 ilustra un ejemplo de una estructura de sintaxis 600 de la VUI VPS con información de señalización actualizada que se refiere a todos los conjuntos de capas, incluyendo los conjuntos de capas adicionales definidos en la extensión VPS. En el ejemplo de la FIG. 6, el elemento de sintaxis 516 vps_num_layer_sets_minus1 se elimina de la VUI VPS y se añade una variable 616 NumLayerSets a la entrada 502 para crear la nueva estructura de sintaxis 600. Debido a que la variable 616 NumLayerSets indica el número total de conjuntos de capas que se señalizan en el VPS base y la extensión VPS, la información de velocidad señalizada en los elementos de sintaxis 504-514 se señaliza para los conjuntos de capas definidos en el VPS base y los conjuntos de capas adicionales definidos en la extensión VPS.
[0048] La FIG. 7 ilustra un modo de realización de un proceso 700 de codificación de datos de vídeo. El proceso 700 se implementa para señalizar información para conjuntos de capas (incluyendo conjuntos de capas adicionales) definidos en un conjunto de parámetros, tales como un conjunto de parámetros de vídeo. En algunos aspectos, el proceso 700 se puede realizar mediante un dispositivo informático o un aparato, tal como el dispositivo de codificación 104 mostrado en la FIG. 1 o FIG. 16. Por ejemplo, el dispositivo o aparato informático puede incluir un codificador, o un procesador, microprocesador, microordenador u otro componente de un codificador que esté configurado para llevar a cabo las etapas del proceso 700.
[0049] El proceso 700 se ilustra como un diagrama de flujo lógico, cuyo funcionamiento representa una secuencia de funcionamientos que se pueden implementar en hardware, instrucciones informáticas o una combinación de los mismos. En el contexto de instrucciones informáticas, los funcionamientos representan instrucciones ejecutables por ordenador almacenadas en uno o más medios de almacenamiento legibles por ordenador que, cuando se ejecutan por uno o más procesadores, realizan los funcionamientos enumerados. En general, las instrucciones ejecutables por ordenador incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares que realizan funciones particulares o implementan tipos de datos particulares. El orden en el que se describen los funcionamientos no se debe interpretar como una limitación, y cualquier número de los funcionamientos descritos se puede combinar en cualquier orden y/o en paralelo para implementar los procesos.
[0050] Adicionalmente, el proceso 700 se puede realizar bajo el control de uno o más sistemas informáticos configurados con instrucciones ejecutables y se pueden implementar como código (por ejemplo, instrucciones ejecutables, uno o más programas informáticos, o una o más aplicaciones) ejecutándose colectivamente en uno o más procesadores, mediante hardware o combinaciones de los mismos. Como se indica anteriormente, el código se puede almacenar en un medio de almacenamiento legible por ordenador o legible por máquina, por ejemplo, en forma de un programa informático que comprende una pluralidad de instrucciones ejecutables por uno o más procesadores. El medio de almacenamiento legible por ordenador o legible por máquina puede no ser transitorio.
[0051] En 702, el proceso 700 de codificación de datos de vídeo incluye generar un flujo de bits de vídeo codificado que comprende uno o más conjuntos de capas y uno o más conjuntos de capas adicionales. Cada uno de un conjunto de capas y un conjunto de capas adicionales incluye una o más capas, como se describe anteriormente. El flujo de bits de vídeo codificado incluye un conjunto de parámetros de vídeo que define los parámetros del flujo de bits de vídeo codificado. Los uno o más conjuntos de capas se definen en una parte base del conjunto de parámetros de vídeo, y los uno o más conjuntos de capas adicionales se definen en una parte de extensión del conjunto de parámetros de vídeo. El flujo de bits de vídeo codificado se puede codificar usando una técnica de codificación HEVC u otra técnica de codificación adecuada. En un ejemplo, los uno o más conjuntos de capas definidos en la parte base del conjunto de parámetros de vídeo (VPS) incluyen el conjunto de capas 0, el conjunto de capas 1, el conjunto de capas 2 y el conjunto de capas 3 definidos en el VPS base 202 mostrado en la FIG. 2, y los uno o más conjuntos de capas adicionales incluyen el conjunto de capas 4 y el conjunto de capas 5 definidos en la extensión VPS 204 mostrada en la FIG. 2. Un experto en la técnica apreciará que los uno o más conjuntos de capas y/o los uno o más conjuntos de capas adicionales pueden incluir otros conjuntos de capas que los mostrados en los ejemplos de la FIG. 2.
[0052] En 704, el proceso 700 incluye proporcionar, en el conjunto de parámetros de vídeo, uno o más elementos de sintaxis para señalizar información relacionada con los uno o más conjuntos de capas y los uno o más conjuntos de capas adicionales. La información incluye información de velocidad para los uno o más conjuntos de capas definidos en la parte base del conjunto de parámetros de vídeo y para los uno o más conjuntos de capas adicionales definidos en la parte de extensión del conjunto de parámetros de vídeo. En consecuencia, la información de velocidad se señaliza tanto para los conjuntos de capas definidos en el VPS base como para los conjuntos de capas adicionales definidos en la extensión VPS. Por ejemplo, la información de velocidad puede ser señalizada para los uno o más conjuntos de capas definidos en la parte base del conjunto de parámetros de vídeo y para los uno o más conjuntos de capas adicionales insertando la variable 616 NumLayerSets en la entrada 502 de la VUI VPS. En algunos modos de realización, se señaliza información de velocidad diferente para cada conjunto de capas diferente de los uno o más conjuntos de capas y de los uno o más conjuntos de capas adicionales. Por ejemplo, se puede señalizar un primer conjunto de información de velocidad para el conjunto de capas 0 definido en el VPS base 202, y se puede señalizar un segundo conjunto de información de velocidad para el conjunto de capas 4 definido en la extensión VPS 204.
[0053] En algunos modos de realización, la información de velocidad incluye información de velocidad de transmisión de bits. En algunos modos de realización, la información de velocidad incluye información de velocidad de imagen. En algunos ejemplos, la información de velocidad se puede incluir en cualquiera de los elementos de sintaxis 504-514 mostrados en la FIG. 5 y FIG. 6. Por ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un indicador que indica si la información de velocidad de transmisión de bits está disponible para un conjunto de capas adicionales. El indicador se puede establecer en un valor de 0 o 1 para indicar que la información de velocidad de transmisión de bits está disponible para el conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un indicador que indique si la información de velocidad de transmisión de bits está disponible para un conjunto de capas definido en la parte base del VPS. Un ejemplo de dicho indicador es el elemento de sintaxis 504 bit_rate_present_flag[i][j] mostrado en la FIG. 5 y FIG. 6.
[0054] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un indicador que indica si la información de velocidad de imagen está disponible para un conjunto de capas adicionales. El indicador se puede establecer en un valor de 0 o 1 para indicar que la información de velocidad de imagen está disponible para el conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un indicador que indique si la información de velocidad de imagen está disponible para un conjunto de capas definido en el parte base del VPS. Un ejemplo de dicho indicador es el elemento de sintaxis 506 pic_rate_present_flag[i][j] mostrado en la FIG. 5 y FIG. 6.
[0055] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica una velocidad de transmisión de bits promedio para un conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indique una velocidad de transmisión de bits promedio para un conjunto de capas definido en la parte base del VPS. Un ejemplo de tal elemento de sintaxis es el elemento de sintaxis 508 avg_bit_rate[i][j] mostrado en la FIG.
5 y FIG. 6.
[0056] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica una velocidad de transmisión de bits máxima para un conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indique una velocidad de transmisión de bits máxima para un conjunto de capas definido en la parte base del VPS. Un ejemplo de dicho elemento de sintaxis es el elemento de sintaxis 510 max_bit_rate[i][j] mostrado en la FIG. 5 y FIG. 6.
[0057] En otro ejemplo, los uno o más elementos de sintaxis del conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica si un conjunto de capas adicionales tiene una velocidad de imagen constante. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indique si un conjunto de capas definido en la parte base del VPS tiene una velocidad de imagen constante. Un ejemplo de un elemento de sintaxis de este tipo es el elemento de sintaxis 512 constant_pic_rate_idc[i][j] mostrado en la FIG. 5 y FIG. 6.
[0058] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica una velocidad de imagen promedio para un conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indique una velocidad de imagen promedio para un conjunto de capas definido en la parte base del VPS. Un ejemplo de tal elemento de sintaxis es el elemento de sintaxis 514 avg_pic_rate[i][j] mostrado en la FIG. 5 y FIG. 6.
[0059] En algunos modos de realización, los uno o más elementos de sintaxis pueden señalizar información de salida objetivo para los conjuntos de capas definidos en el VPS base y para los conjuntos de capas adicionales definidos en la extensión VPS. Por ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un indicador que indica si una capa en un conjunto de capas adicionales es una capa de salida objetivo de un conjunto de capas de salida. El indicador se puede establecer en un valor de 0 o 1 para indicar que la capa en el conjunto de capas adicionales es una capa de salida objetivo de un conjunto de capas de salida. Los uno o más elementos de sintaxis también pueden incluir un indicador similar que indique si una capa en un conjunto de capas definido en el VPS base es una capa de salida objetivo de un conjunto de capas de salida. Un ejemplo de dicho indicador es el elemento de sintaxis 304 output_layer_flag[i][j] mostrado en la FIG. 3 y FIG. 4.
[0060] La FIG. 8 ilustra un modo de realización de un proceso 800 de descodificación de datos de vídeo. El proceso 800 se implementa para recibir y descodificar información de señalización para conjuntos de capas (incluyendo conjuntos de capas adicionales) definidos en un conjunto de parámetros, tal como un conjunto de parámetros de vídeo. En algunos aspectos, el proceso 800 se puede realizar mediante un dispositivo informático o un aparato, tal como el dispositivo de descodificación 112 mostrado en la FIG. 1 o en la FIG. 17. Por ejemplo, el dispositivo o aparato informático puede incluir un descodificador, o un procesador, microprocesador, microordenador u otro componente de un descodificador que esté configurado para llevar a cabo las etapas del proceso 800.
[0061] El proceso 800 se ilustra como un diagrama de flujo lógico, cuyo funcionamiento representa una secuencia de funcionamientos que se pueden implementar en hardware, instrucciones informáticas o una combinación de los mismos. En el contexto de instrucciones informáticas, los funcionamientos representan instrucciones ejecutables por ordenador almacenadas en uno o más medios de almacenamiento legibles por ordenador que, cuando se ejecutan por uno o más procesadores, realizan los funcionamientos enumerados. En general, las instrucciones ejecutables por ordenador incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares que realizan funciones particulares o implementan tipos de datos particulares. El orden en el que se describen los funcionamientos no se debe interpretar como una limitación, y cualquier número de los funcionamientos descritos se puede combinar en cualquier orden y/o en paralelo para implementar los procesos.
[0062] Adicionalmente, el proceso 800 se puede realizar bajo el control de uno o más sistemas informáticos configurados con instrucciones ejecutables y se pueden implementar como código (por ejemplo, instrucciones ejecutables, uno o más programas informáticos, o una o más aplicaciones) ejecutándose colectivamente en uno o más procesadores, mediante hardware o combinaciones de los mismos. Como se indica anteriormente, el código se puede almacenar en un medio de almacenamiento legible por ordenador o legible por máquina, por ejemplo, en forma de un programa informático que comprende una pluralidad de instrucciones ejecutables por uno o más procesadores. El medio de almacenamiento legible por ordenador o legible por máquina puede no ser transitorio.
[0063] En 802, el proceso 800 de descodificación de datos de vídeo incluye obtener un flujo de bits de vídeo codificado que comprende uno o más conjuntos de capas y uno o más conjuntos de capas adicionales. Cada uno de un conjunto de capas y un conjunto de capas adicionales incluye una o más capas. El flujo de bits de vídeo codificado incluye un conjunto de parámetros de vídeo que define los parámetros del flujo de bits de vídeo codificado. Los uno o más conjuntos de capas se definen en una parte base del conjunto de parámetros de vídeo, y los uno o más conjuntos de capas adicionales se definen en una parte de extensión del conjunto de parámetros de vídeo. El flujo de bits de vídeo codificado se puede codificar usando una técnica de codificación HEVC u otra técnica de codificación adecuada. En un ejemplo, los uno o más conjuntos de capas definidos en la parte base del conjunto de parámetros de vídeo (VPS) incluyen el conjunto de capas 0, el conjunto de capas 1, el conjunto de capas 2 y el conjunto de capas 3 definidos en el VPS base 202 mostrado en la FIG. 2, y los uno o más conjuntos de capas adicionales incluyen el conjunto de capas 4 y el conjunto de capas 5 definidos en la extensión VPS 204 mostrada en la FIG. 2. Un experto en la técnica apreciará que los uno o más conjuntos de capas y/o los uno o más conjuntos de capas adicionales pueden incluir otros conjuntos de capas que los mostrados en los ejemplos de la FIG. 2.
[0064] En 804, el proceso 800 incluye descodificar uno o más elementos de sintaxis del conjunto de parámetros de vídeo. Los uno o más elementos de sintaxis incluyen información de velocidad para los uno o más conjuntos de capas definidos en la parte base del conjunto de parámetros de vídeo y para los uno o más conjuntos de capas adicionales definidos en la parte de extensión del conjunto de parámetros de vídeo. En algunos modos de realización, los uno o más elementos de sintaxis incluyen información de velocidad diferente para cada conjunto de capas diferente de los uno o más conjuntos de capas y los uno o más conjuntos de capas adicionales. Por ejemplo, se puede señalizar un primer conjunto de información de velocidad para el conjunto de capas 0 definido en el VPS base 202, y se puede señalizar un segundo conjunto de información de velocidad para el conjunto de capas 1 definido en la extensión VPS 204.
[0065] En algunos modos de realización, la información de velocidad incluye información de velocidad de transmisión de bits. En algunos modos de realización, la información de velocidad incluye información de velocidad de imagen. En algunos ejemplos, la información de velocidad se puede incluir en cualquiera de los elementos de sintaxis 504-514 mostrados en la FIG. 5 y FIG. 6. Por ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un indicador que indica si la información de velocidad de transmisión de bits está disponible para un conjunto de capas adicionales. El indicador se puede establecer en un valor de 0 o 1 para indicar que la información de velocidad de transmisión de bits está disponible para el conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un indicador que indique si la información de velocidad de transmisión de bits está disponible para un conjunto de capas definido en la parte base del VPS. Un ejemplo de dicho indicador es el elemento de sintaxis 504 bit_rate_present flag[i][j] mostrado en la FIG. 5 y FIG. 6.
[0066] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un indicador que indica si la información de velocidad de imagen está disponible para un conjunto de capas adicionales. El indicador se puede establecer en un valor de 0 o 1 para indicar que la información de velocidad de imagen está disponible para el conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un indicador que indique si la información de velocidad de imagen está disponible para un conjunto de capas definido en el parte base del VPS. Un ejemplo de dicho indicador es el elemento de sintaxis 506 pic_rate_present_flag[i][j] mostrado en la FIG. 5 y FIG. 6.
[0067] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica una velocidad de transmisión de bits promedio para un conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indique una velocidad de transmisión de bits promedio para un conjunto de capas definido en la parte base del VPS. Un ejemplo de dicho elemento de sintaxis es el elemento de sintaxis 508 avg_bit_rate[i][j] mostrado en la FIG. 5 y FIG. 6.
[0068] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica una velocidad de transmisión de bits máxima para un conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indique una velocidad de transmisión de bits máxima para un conjunto de capas definido en la parte base del VPS. Un ejemplo de dicho elemento de sintaxis es el elemento de sintaxis 510 max_bit_rate[i][j] mostrado en la FIG. 5 y FIG. 6.
[0069] En otro ejemplo, los uno o más elementos de sintaxis del conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica si un conjunto de capas adicionales tiene una velocidad de imagen constante. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indique si un conjunto de capas definido en la parte base del VPS tiene una velocidad de imagen constante. Un ejemplo de dicho elemento de sintaxis es el elemento de sintaxis 512 constant_pic_rate_idc[i][j] mostrado en la FIG. 5 y FIG. 6.
[0070] En otro ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un elemento de sintaxis que indica una velocidad de imagen promedio para un conjunto de capas adicionales. Los uno o más elementos de sintaxis también pueden incluir un elemento de sintaxis similar que indica una velocidad de imagen promedio para un conjunto de capas definido en la parte base del VPS. Un ejemplo de dicho elemento de sintaxis es el elemento de sintaxis 512 avg_pic_rate[i][j] mostrado en la FIG. 5 y FIG. 6.
[0071] En algunos modos de realización, los uno o más elementos de sintaxis pueden señalizar información de salida objetivo para los conjuntos de capas definidos en el VPS base y para los conjuntos de capas adicionales definidos en la extensión VPS. Por ejemplo, los uno o más elementos de sintaxis en el conjunto de parámetros de vídeo incluyen un indicador que indica si una capa en un conjunto de capas adicionales es una capa de salida objetivo de un conjunto de capas de salida. El indicador se puede establecer en un valor de 0 o 1 para indicar que la capa en el conjunto de capas adicionales es una capa de salida objetivo de un conjunto de capas de salida. Los uno o más elementos de sintaxis también pueden incluir un indicador similar que indique si una capa en un conjunto de capas definido en el VPS base es una capa de salida objetivo de un conjunto de capas de salida. Un ejemplo de dicho indicador es el elemento de sintaxis 304 output_layer_flag[i][j] mostrado en la FIG. 3 y FIG. 4.
[0072] Usando las técnicas descritas anteriormente de información de señalización para conjuntos de capas (incluidos conjuntos de capas adicionales) definidos en un conjunto de parámetros, la información de velocidad y la información de salida objetivo se señalizan para los conjuntos de capas definidos en el VPS base y también para los conjuntos de capas adicionales definidos en la extensión VPS.
[0073] En otros modos de realización, se describen técnicas y sistemas para señalizar parámetros de descodificador de referencia hipotéticos en un conjunto de parámetros solo en determinadas condiciones. Los parámetros de descodificador de referencia hipotéticos se proporcionan en un conjunto de parámetros para permitir la funcionalidad multicapa. Diferentes conjuntos de parámetros de descodificador de referencia hipotéticos corresponden a diferentes puntos de funcionamiento. Los parámetros de descodificador de referencia hipotéticos se pueden usar de diversas formas. Por ejemplo, una verificación de conformidad de flujo de bits puede incluir la realización de una prueba normativa usando parámetros de descodificador de referencia hipotéticos. La prueba normativa usa los parámetros de descodificador de referencia hipotéticos para verificar que un flujo de bits o subflujo de bits puede ser descodificado por un descodificador de referencia hipotético que está conectado conceptualmente a la salida de un codificador y que incluye una memoria intermedia de imágenes codificadas, un descodificador y una memoria intermedia de imágenes descodificadas. El codificador debe asegurar que se cumplan diversas restricciones al crear un flujo de bits para cumplir con la conformidad, incluido asegurarse de que las herramientas usadas en el flujo de bits coincidan con las señalizadas en los conjuntos de parámetros, asegurándose de que la memoria intermedia de imágenes codificadas del descodificador de referencia hipotético no se desborde o subdesborde, asegurándose de que las imágenes marcadas como usadas para referencia no se usen posteriormente como referencia u otros requisitos. Se produce un desbordamiento de la memoria intermedia cuando existen demasiadas unidades de datos codificados para la memoria intermedia del descodificador. El subdesbordamiento ocurre cuando es el momento para que el descodificador procese algunas unidades de datos codificados pero la memoria intermedia está vacía.
[0074] Los parámetros de descodificador de referencia hipotéticos pueden ser señalizados en el VPS y en la extensión VPS (por ejemplo, en la VUI VPS) para diferentes puntos de funcionamiento y conjuntos de capas asociados. La señalización de los parámetros de descodificador de referencia hipotéticos en la VUI VPS se puede controlar mediante un indicador de compuerta. El valor de este indicador se puede establecer en 1 o 0 independientemente por los codificadores. En un ejemplo, es posible que los parámetros de descodificador de referencia hipotéticos no se señalicen en la VUI VPS cuando un valor del indicador de compuerta se establece en 0. En otro ejemplo, los parámetros de descodificador de referencia hipotéticos se pueden señalizar en la VUI VPS cuando un valor del indicador de compuerta se establece en 1. Un experto en la técnica apreciará que los parámetros de descodificador de referencia hipotéticos pueden no ser señalizados cuando el valor se establece en 1, y que los parámetros de descodificador de referencia hipotéticos se pueden señalizar cuando el valor se establece en 0.
[0075] En el presente documento se describen modos de realización para señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS cuando se señaliza determinada información en el VPS y/o la VUI VPS. Por ejemplo, los parámetros de descodificador de referencia hipotéticos dependen de la información de temporización proporcionada en la VUI VPS, en la parte base del VPS, o tanto en la VUI VPS como en el VPS base. Se proporciona información de temporización para permitir una velocidad de reproducción correcta de una secuencia de vídeo descodificada. La estructura de sintaxis para los parámetros de descodificador de referencia hipotéticos se coloca en la sección de información de temporización de la VUI VPS. En algunos casos, la información de temporización define los parámetros necesarios para instalar un esquema de temporización para un proceso de descodificación, tal como una velocidad de reloj y la duración de un pulso de reloj. La información de temporización puede incluir además un indicador que indica que un recuento del orden de imágenes (que define una relación de las imágenes en términos de orden y distancia si se usa para la predicción) es proporcional al tiempo de salida de la imagen con respecto al comienzo de la secuencia de vídeo codificado (por ejemplo, una imagen de acceso intraaleatorio (IRAP), tal como una imagen de refresco de descodificación instantánea (IDR) en la que se restablece el recuento de orden de imágenes). Usando la indicación proporcionada por el indicador, la temporización de salida de imagen se puede derivar directamente del recuento de orden de imágenes.
[0076] La señalización de información de descodificador de referencia hipotética cuando la información de temporización no está presente en el VPS es un uso ineficaz de bits, dando lugar a un desperdicio de procesamiento y uso de los recursos de red. En consecuencia, los parámetros de descodificador de referencia hipotéticos se pueden señalizar en la VUI VPS cuando la información de temporización también se señaliza en el VPS o la VUI VPS. De forma similar, los parámetros de descodificador de referencia hipotéticos pueden no ser señalizados en la VUI VPS cuando no se señaliza información de temporización en el VPS o la VUI VPS. En algunos aspectos, un codificador (u otro dispositivo, tal como un editor, empalmador o similar) puede condicionar el indicador de compuerta para que dependa de un valor de un elemento de sintaxis que indica si la información de temporización está presente en el VPS o en la VUI VPS.
[0077] En un ejemplo, el indicador de compuerta se puede señalizar o no, dependiendo de la presencia de la información de temporización. La FIG. 9A ilustra un ejemplo de una estructura de sintaxis 900 de una VUI VPS con un elemento de sintaxis de información de temporización 902, marcado vps_timing_info_present_flag. El elemento de sintaxis de información de temporización 902 indica si la información de temporización está incluida en el VPS o en la VUI VPS. La estructura de sintaxis 900 incluye además el elemento de sintaxis de indicador de compuerta 904, marcado vps_vui_bsp_hrd_present_flag. La presencia del elemento de sintaxis de indicador de compuerta 904 depende del valor del elemento de sintaxis de información de temporización 902. Cuando el elemento de sintaxis de información de temporización 902 se establece en un valor de 0 (indicando que no existe información de temporización presente), el elemento de sintaxis de indicador de compuerta 904 puede no ser señalizado en la VUI VPS (en cuyo caso la estructura de sintaxis 900 no incluye el elemento de sintaxis de indicador de compuerta 904 cuando la VUI VPS se envía al descodificador). En un ejemplo de este tipo, el codificador determina que el valor del elemento de sintaxis de indicador de compuerta 904 es un valor de 0, indicando que no se deben señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS. En consecuencia, el codificador (u otro dispositivo, tal como un editor, un empalmador o similar) puede determinar no señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS. Este ejemplo se ilustra en la FIG. 9A mediante la inclusión de la condición 906 con el elemento de sintaxis de información de temporización 902 en la estructura de sintaxis. Por ejemplo, cuando el elemento de sintaxis de información de temporización 902 se establece en un valor de 0 (indicando que no existe información de temporización presente), el codificador (u otro dispositivo, tal como un editor, empalmador o similar) puede determinar no señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS. El codificador (u otro dispositivo) puede eliminar a continuación el elemento de sintaxis de indicador de compuerta 904 de la estructura de sintaxis 900. Cuando el descodificador (u otro dispositivo que recibe la VUI VPS) recibe la VUI VPS, el descodificador infiere que el valor del indicador de compuerta es un valor de 0 en base a la ausencia del elemento de sintaxis de indicador de compuerta 904. A continuación, el descodificador determina que no se señalizan parámetros de descodificador de referencia hipotéticos en la VUI VPS en base al valor inferido de 0 para el indicador de compuerta.
[0078] En otro ejemplo, un valor del indicador de compuerta puede depender de la presencia de la información de temporización. Por ejemplo, se puede añadir una restricción para expresar que cuando el elemento de sintaxis de información de temporización 902 es igual a 0, el valor del elemento de sintaxis de indicador de compuerta 904 también será igual a 0. Este ejemplo se ilustra en la FIG. 9B por la ausencia de la condición 906 de la estructura de sintaxis 900. En este ejemplo, un elemento de sintaxis de información de temporización que indica si la información de temporización está presente en el VPS o en la VUI VPS se señaliza antes en el VPS o en la VUI VPS (no mostrado en la FIG. 9). Cuando el elemento de sintaxis de información de temporización (no mostrado en la FIG. 9) se establece en un valor de 0 (indicando que no existe información de temporización presente), el codificador (u otro dispositivo, tal como un editor, empalmador o similar) puede ser forzado a establecer el elemento de sintaxis de indicador de compuerta 904 en un valor de 0, indicando que no se señalizan parámetros de descodificador de referencia hipotéticos en la VUI VPS. Como resultado, el codificador (u otro dispositivo, tal como un editor, un empalmador o similar) puede determinar no señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS. Cuando el descodificador recibe la VUI VPS (u otro dispositivo que recibe la VUI VPS), el descodificador determina que el valor del elemento de sintaxis de indicador de compuerta 904 se establece en un valor de 0 para saber que no se señalizan parámetros de descodificador de referencia hipotéticos en la VUI VPS.
[0079] La FIG. 10 ilustra un modo de realización de un proceso 1000 de codificación de datos de vídeo. El proceso 1000 se implementa para señalizar parámetros de descodificador de referencia hipotéticos en un conjunto de parámetros solo en determinadas situaciones. En algunos aspectos, el proceso 1000 se puede realizar mediante un dispositivo informático o un aparato, tal como el dispositivo de codificación 104 mostrado en la FIG. 1 o en la FIG. 16. Por ejemplo, el dispositivo o aparato informático puede incluir un codificador, o un procesador, microprocesador, microordenador u otro componente de un codificador que esté configurado para llevar a cabo las etapas del proceso 1000.
[0080] El proceso 1000 se ilustra como un diagrama de flujo lógico, cuyo funcionamiento representa una secuencia de funcionamientos que se pueden implementar en hardware, instrucciones informáticas o una combinación de los mismos. En el contexto de instrucciones informáticas, los funcionamientos representan instrucciones ejecutables por ordenador almacenadas en uno o más medios de almacenamiento legibles por ordenador que, cuando se ejecutan por uno o más procesadores, realizan los funcionamientos enumerados. En general, las instrucciones ejecutables por ordenador incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares que realizan funciones particulares o implementan tipos de datos particulares. El orden en el que se describen los funcionamientos no se debe interpretar como una limitación, y cualquier número de los funcionamientos descritos se puede combinar en cualquier orden y/o en paralelo para implementar los procesos.
[0081] Adicionalmente, el proceso 1000 se puede realizar bajo el control de uno o más sistemas informáticos configurados con instrucciones ejecutables y se pueden implementar como código (por ejemplo, instrucciones ejecutables, uno o más programas informáticos, o una o más aplicaciones) ejecutándose colectivamente en uno o más procesadores, mediante hardware o combinaciones de los mismos. Como se indica anteriormente, el código se puede almacenar en un medio de almacenamiento legible por ordenador o legible por máquina, por ejemplo, en forma de un programa informático que comprende una pluralidad de instrucciones ejecutables por uno o más procesadores. El medio de almacenamiento legible por ordenador o legible por máquina puede no ser transitorio.
[0082] En 1002, el proceso 1000 de codificación de datos de vídeo incluye generar un flujo de bits de vídeo codificado que comprende múltiples capas. El flujo de bits de vídeo codificado incluye un conjunto de parámetros de vídeo que define los parámetros del flujo de bits de vídeo codificado. El conjunto de parámetros de vídeo incluye información de usabilidad de vídeo, que se puede denominar VUI VPS. El flujo de bits de vídeo codificado se puede codificar usando una técnica de codificación HEVC u otra técnica de codificación adecuada.
[0083] En 1004, el proceso 1000 incluye determinar si la información de temporización se señaliza en la información de usabilidad de vídeo del conjunto de parámetros de vídeo. En algunos modos de realización, determinar si la información de temporización se señaliza en la información de usabilidad de vídeo del conjunto de parámetros de vídeo incluye determinar un valor de un primer indicador en la información de usabilidad de vídeo. El primer indicador indica si la información de temporización se señaliza en la información de usabilidad de vídeo (u otra parte del conjunto de parámetros de vídeo). Por ejemplo, el primer indicador puede incluir un elemento de sintaxis de información de temporización (por ejemplo, elemento de sintaxis de información de temporización 902). El elemento de sintaxis de información de temporización se puede verificar para determinar si la información de temporización está señalizada. Por ejemplo, un valor de 0 puede indicar que la información de temporización no está señalizada. En otro ejemplo, un valor de 1 puede indicar que la información de temporización no está señalizada.
[0084] En 1006, el proceso 1000 incluye determinar si señalizar parámetros de descodificador de referencia hipotéticos en la información de usabilidad de vídeo del conjunto de parámetros de vídeo en base a si la información de temporización se señaliza en la información de usabilidad de vídeo (u otra parte del conjunto de parámetros de vídeo). En algunos ejemplos, el proceso 1000 incluye señalizar los parámetros de descodificador de referencia hipotéticos en la información de usabilidad de vídeo cuando la información de temporización se señaliza en la información de usabilidad de vídeo (u otra parte del conjunto de parámetros de vídeo). El proceso 1000 incluye además no señalizar los parámetros de descodificador de referencia hipotéticos en la información de usabilidad de vídeo cuando la información de temporización no está señalizada en la información de usabilidad de vídeo (u otra parte del conjunto de parámetros de vídeo). Por ejemplo, un codificador u otro dispositivo de red puede tomar la determinación de no señalizar los parámetros de descodificador de referencia hipotéticos en la información de usabilidad de vídeo cuando la información de temporización está ausente.
[0085] En algunos modos de realización, el proceso 1000 incluye determinar un valor de un segundo indicador en la información de usabilidad de vídeo en base al valor del primer indicador. El segundo indicador define si los parámetros de descodificador de referencia hipotéticos se señalizan en la información de usabilidad de vídeo. Por ejemplo, el segundo indicador puede incluir un elemento de sintaxis de indicador de compuerta (por ejemplo, elemento de sintaxis de indicador de compuerta 904).
[0086] En algunos modos de realización, el proceso 1000 incluye proporcionar, en la información de usabilidad de vídeo, uno o más elementos de sintaxis para señalizar información relacionada con el flujo de bits de vídeo codificado, incluyendo la información una condición de que el valor del segundo indicador depende del valor del primer indicador. Por ejemplo, en referencia a la FIG. 9, cuando el elemento de sintaxis de información de temporización 902 se establece en un valor de 0 (indicando que no existe información de temporización presente), el elemento de sintaxis de indicador de compuerta 904 puede no ser señalizado en la VUI VPS (en cuyo caso la estructura de sintaxis 900 no incluye el elemento de sintaxis de indicador de compuerta 904). El codificador infiere a continuación que el valor del elemento de sintaxis de indicador de compuerta 904 es un valor de 0, indicando que no se deben señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS. El codificador puede tomar la determinación de no señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS.
[0087] En algunos modos de realización, el proceso 1000 incluye proporcionar, en la información de usabilidad de vídeo, uno o más elementos de sintaxis para señalizar información relacionada con el flujo de bits de vídeo codificado, incluyendo la información una restricción de que el valor del segundo indicador se debe establecer en cero cuando el valor del primer indicador es igual a cero. Por ejemplo, como se ilustra en la FIG. 9, la condición 906 con el elemento de sintaxis de indicador de compuerta 904 se puede añadir a la estructura de sintaxis 900. En base a la condición 906, cuando el elemento de sintaxis de información de temporización 902 se establece en un valor de 0 (indicando que no existe información de temporización presente), el codificador puede establecer el elemento de sintaxis de indicador de compuerta 904 en un valor de 0, indicando que no se señalizan parámetros de descodificador de referencia hipotéticos en la VUI VPS. Como resultado, el codificador puede determinar no señalizar parámetros de descodificador de referencia hipotéticos en la VUI VPS.
[0088] Las técnicas descritas anteriormente evitan la señalización de información de descodificador de referencia hipotética cuando la información de temporización no está presente. La señalización de dicha información cuando no existe información de temporización presente es un uso ineficaz de recursos, desperdiciando valiosos recursos de procesamiento y de red. El codificador (u otro dispositivo, tal como un editor, empalmador o similar) puede determinar de forma inteligente cuándo señalizar parámetros de descodificador de referencia hipotéticos en base a la presencia o ausencia de información de temporización.
[0089] En otros modos de realización, se describen técnicas y sistemas para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros. Por ejemplo, en el presente documento se describen modos de realización para determinar un número de estructuras de sintaxis de información de señales de vídeo para señalizar en el conjunto de parámetros en base a si la capa base está incluida en un flujo de bits de vídeo codificado o para proporcionar a un dispositivo de descodificación desde una fuente externa.
[0090] La FIG. 11 ilustra un entorno 1100 de ejemplo en el que un dispositivo de codificación genera diversas capas de un flujo de bits de vídeo codificado, incluyendo una capa base. El entorno 1100 incluye un dispositivo de codificación HEVC 1102 que genera un flujo de bits de vídeo codificado usando la norma de codificación de vídeo HEVC. Un experto en la técnica apreciará que las técnicas descritas en el presente documento se aplican a otros dispositivos de codificación que pueden usar normas de codificación diferentes a la norma HEVC, tales como una o más de las normas AVC y MPEG. El dispositivo de codificación HEVC 1102 puede generar un flujo de bits de vídeo compatible con HEVC que incluye una capa base y una o más capas de mejora. Por ejemplo, el dispositivo de codificación HEVC 1102 puede generar la capa base 0 y la capa de mejora 1 a la capa n. La capa n se refiere al hecho de que el dispositivo de codificación HEVC 1102 puede generar cualquier número de capas de mejora, como se determine por la implementación o aplicación particular y como lo limite la norma HEVC.
[0091] El dispositivo de descodificación HEVC 1104 del dispositivo de recepción 1110 puede recibir las capas base y de mejora del dispositivo de codificación HEVC 1102. En el ejemplo de la FIG. 11, la capa base se proporciona al dispositivo de descodificación HEVC 1104 en el flujo de bits HEVC. El dispositivo de codificación HEVC 1102 también puede enviar conjuntos de parámetros, tales como un VPS, al dispositivo de descodificación HEVC 1104 con información que permite que el dispositivo de descodificación HEVC 1104 descodifique correctamente el flujo de bits de vídeo codificado. La información puede incluir información de señales de vídeo, como se describe a continuación.
[0092] La FIG. 12 ilustra un entorno 1200 de ejemplo en el que un dispositivo de codificación genera diversas capas de mejora de un flujo de bits de vídeo codificado, pero no una capa base. El entorno 1200 incluye un dispositivo de codificación HEVC 1202 y un dispositivo de codificación AVC 1206 que generan flujos de bits de vídeo codificado usando diferentes normas de codificación de vídeo. Un experto en la técnica apreciará que las técnicas descritas en el presente documento se aplican a otros dispositivos de codificación que pueden usar normas de codificación diferentes de HEVC o AVC. El dispositivo de codificación HEVC 1202 puede generar un flujo de bits de vídeo compatible con HEVC que incluye una o más capas de mejora pero ninguna capa base. Por ejemplo, el dispositivo de codificación HEVC 1202 puede generar una capa de mejora 1 a la capa n. El dispositivo de codificación AVC 1206 puede generar un flujo de bits de vídeo compatible con AVC que incluye solo una capa base, incluyendo la capa base 0. Cuando el dispositivo de codificación HEVC 1202 genera las una o más capas de mejora, la capa base generada por el dispositivo de codificación AVC 1206 se puede usar para referencia de predicción entre capas.
[0093] En un ejemplo, el dispositivo de descodificación HEVC 1204 puede recibir las capas de mejora del dispositivo de codificación HEVC 1202, y el dispositivo de descodificación AVC 1208 puede recibir la capa base del dispositivo de codificación AVC 1206. En otro ejemplo, una primera entidad de red (por ejemplo, un editor o empalmador) puede empalmar las capas de mejora del dispositivo de codificación HEVC 1202 junto con la capa base del dispositivo de codificación AVC 1206. La primera entidad de red puede realizar el empalme de manera sincrónica oportuna siendo añadida la información de la hora del sistema (por ejemplo, en un formato de archivo de acuerdo con el formato de archivo de medios base ISO). Una segunda entidad de red (por ejemplo, un receptor, tal como un dispositivo de recepción 1210, un analizador de formato de archivo u otra entidad de red) puede pasar el flujo de bits de las una o más capas de mejora al dispositivo de descodificación HEVC 1204 y el flujo de bits de la capa base al dispositivo de descodificación AVC 1208. En cualquier ejemplo, el flujo de bits de la capa base no se proporciona al dispositivo de descodificación HEVC 1204. En su lugar, las imágenes descodificadas de la capa base se proporcionan al dispositivo de descodificación HEVC 1204 (desde el dispositivo de descodificación AVC 1208) para referencia de predicción entre capas. Desde el punto de vista del dispositivo de descodificación HEVC 1204, la capa base la proporciona externamente una fuente externa. En algunos modos de realización, el dispositivo de descodificación HEVC 1204 y el dispositivo de descodificación AVC 1208 son descodificadores separados. En algunos modos de realización, el dispositivo de descodificación HEVC 1204 y el dispositivo de descodificación AVC 1208 son parte de un descodificador multinorma que puede descodificar flujos de bits HEVC y AVC.
[0094] Un dispositivo de codificación HEVC puede proporcionar un conjunto de parámetros de vídeo (VPS) con un flujo de bits de vídeo compatible con HEVC (por ejemplo, en una o más unidades NAL no VCL). Una estructura de sintaxis de información de señales de vídeo se señaliza en el VPS para cada capa de un flujo de bits de vídeo codificado multicapa, señalándose una estructura de sintaxis de información de señales de vídeo separada para cada capa. Las estructuras de sintaxis de información de señales de vídeo se pueden señalizar en la VUI VPS de la extensión VPS y se pueden usar para preparar el vídeo descodificado para su salida y visualización. La información de señales de vídeo contenida en una estructura de sintaxis de información de señales de vídeo puede incluir características de color, tales como colores primarios, características de transferencia, coeficientes de matriz de conversión de color usado u otra información de color adecuada. La información de señales de vídeo también puede incluir información sobre el tipo de señal de vídeo que indica el formato original del vídeo de origen (por ejemplo, NTSC, PAL, componente, SECAM, MAC, no especificado u otro formato de vídeo adecuado) y, en algunos casos, una definición de formato de color correspondiente. y especificación de formato. En algunos casos, la información de señales de vídeo puede indicar localizaciones de muestras de croma en relación con localizaciones de muestras de luma, que se pueden usar para presentar una presentación de color correcta durante la visualización.
[0095] La FIG. 13 ilustra un ejemplo de un VPS 1302 que puede ser enviado por un dispositivo de codificación HEVC junto con el flujo de bits de vídeo compatible con HEVC. El VPS 1302 incluye información de señales de vídeo para múltiples capas de un flujo de bits de vídeo codificado. La información de señales de vídeo puede estar contenida en una o más estructuras de sintaxis de información de señales de vídeo de una parte de VUI VPS del VPS 1302. Por ejemplo, el VPS 1302 incluye una estructura de sintaxis de información de señales de vídeo 1304 para una capa con ID de capa = 0 (correspondiente a una capa base), una estructura de sintaxis de información de señales de vídeo 1306 para una capa de mejora con ID de capa = 1, y una estructura de sintaxis de información de señales de vídeo 1308 para una capa de mejora con ID de capa = n.
[0096] En algunos casos, un número de estructuras de sintaxis de información de señales de vídeo que se va a incluir (o que se incluyen) en el VPS 1302 no se señaliza explícitamente. Por ejemplo, un elemento de sintaxis (por ejemplo, vps_num_video_signal_info_minus1) que indica el número de estructuras de sintaxis de información de señales de vídeo a incluir en el VPS 1302 puede no estar presente. En estos casos, el número de estructuras de sintaxis de información de señales de vídeo a incluir en el VPS 1302 se infiere que es igual al número total de capas en el flujo de bits (independientemente de si la capa base se proporciona externamente o se incluye en el flujo de bits de vídeo codificado HEVC), dando lugar a que se señalice una estructura de sintaxis de información de señales de vídeo para cada valor de ID de capa, y se asigne cada capa a una estructura de sintaxis de información de señales de vídeo señalizada de acuerdo con su valor de ID de capa. Cuando la capa base se proporciona externamente (por ejemplo, mediante un dispositivo de codificación AVC, como se muestra en la FIG.12), se envía una estructura de sintaxis de estructura de información de señal que es inútil con respecto al descodificador HEVC porque el descodificador HEVC no necesita la estructura de sintaxis de información de señales para la capa base.
[0097] Se describen técnicas para actualizar la señalización de las estructuras de sintaxis de información de señales de vídeo en el VPS (por ejemplo, en la VUI VPS) para proporcionar datos de manera más eficaz en el VPS. Por ejemplo, se determina un número de estructuras de sintaxis de información de señales de vídeo a señalizar en el VPS en base a si la capa base está incluida en el flujo de bits de vídeo codificado o si se va a proporcionar a un dispositivo de descodificación HEVC desde una fuente externa. La señalización de la información de señales de vídeo en el VPS se puede actualizar cuando el número de estructuras de sintaxis de información de señales de vídeo en la VUI VPS no se señaliza explícitamente (por ejemplo, cuando un elemento de sintaxis, tal como vps_num_video_signal_info_minus1, no está presente en el VPS o la VUI VPS). Por ejemplo, se infiere que el número de estructuras de sintaxis de información de señales de vídeo señalizado en el VPS es igual al número máximo de capas del flujo de bits si la capa base está en el flujo de bits HEVC (no proporcionada externamente como se muestra en la FIG. 11). En modos de realización en los que la capa base se proporciona externamente (como se muestra en la FIG. 12), se infiere que el número de estructuras de sintaxis de información de señales de vídeo señalizado en el VPS es igual al número máximo de capas del flujo de bits menos uno. En consecuencia, cuando la capa base se proporciona desde una fuente externa, el número de estructuras de sintaxis de información de señales de vídeo en el VPS se reduce en uno.
[0098] En algunos modos de realización, los ID de capa de las capas se mapean a estructuras de sintaxis de información de señales de vídeo en un índice para indicar qué estructuras de sintaxis se aplicarán a las diferentes capas. En dichos modos de realización, cuando el número de estructuras de sintaxis de información de señales de vídeo en el VPS no se señaliza explícitamente, el mapeo entre el ID de capa al índice de estructuras de sintaxis de información de señales de vídeo se actualiza de modo que no se asigne ninguna estructura de sintaxis de información de señales de vídeo a la capa base. En consecuencia, se asigna una estructura de sintaxis de información de señales de vídeo a cada una de las capas incluidas en el flujo de bits de vídeo codificado en HEVC, y no se asigna ninguna estructura de sintaxis de información de señales de vídeo a la capa base que se va a proporcionar al descodificador desde la fuente externa.
[0099] Los cambios a la norma HEVC para implementar las técnicas descritas anteriormente para actualizar la señalización de las estructuras de sintaxis de información de señales de vídeo en el VPS pueden incluir:
video_signal_info_idx_present_flag igual a 1 especifica que los elementos de sintaxis vps_num_video_signal_info_minus1, y vps_video_signal_info_idx[i] están presentes. video_signal_info_idx_present_flag igual a 0 especifica que los elementos de sintaxis vps_num_video_signal_info_minus1, y vps_video_signal_info_idx[i] no están presentes.
vps_num_video_signal_info_minus1 plus 1 especifica el número de las siguientes estructuras de sintaxis video_signal_info() en el VPS. Cuando no está presente, se infiere que el valor de vps_num_video_signal_info_minus1 es igual a MaxLayersMinus1 -(vps_base_layer_internal_flag ? 0: 1).
vps_video_signal_info_idx[i] especifica el índice, en la lista de estructuras de sintaxis video_signal_info() en el VPS, de la estructura de sintaxis video_signal_info() que se aplica a la capa con nuh_layer_id igual a layer_id_in_nuh[i]. Cuando vps_video_signal_info_idx[i] no está presente, se infiere que vps_video_signal_info_idx[i] es igual a (video_signal_info_idx_present_flag ? 0 : i). El valor de vps_video_signal_info_idx[i] estará en el intervalo de 0 a vps_num_video_signal_info_minus1, ambos inclusive.
Cuando no está presente, el valor de vps_video_signal_info_idx[i] se infiere como sigue:
Si video_signal_info_idx_present_flag es igual a 1, se infiere que vps_video_signal_info_idx[i] es igual a 0.
De otro modo, se infiere que vps_video_signal_info_idx[i] es igual a i -(vps_base_layer_internal_flag ? 0: 1
vps_vui_bsp_hrd_present_flag igual a 0 especifica que no existen parámetros HRD de partición de flujo de bits presentes en la VUI VPS. vps_vui_bsp_hrd_present_flag igual a 1 especifica que los parámetros HRD de partición de flujo de bits están presentes en la VUI VPS. Cuando no está presente, se infiere que vps_vui_bsp_hrd_present_flag es igual a 0.
[0100] La FIG. 14 ilustra un modo de realización de un proceso 1400 de codificación de datos de vídeo. El proceso 1400 se implementa para actualizar la señalización de las estructuras de sintaxis de información de señales de vídeo en el VPS señalizando selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en el VPS. En algunos aspectos, el proceso 1400 se puede realizar mediante un dispositivo informático o un aparato, tal como el dispositivo de codificación 104 mostrado en la FIG. 1 o en la FIG.
16. Por ejemplo, el dispositivo o aparato informático puede incluir un codificador, o un procesador, microprocesador, microordenador u otro componente de un codificador que esté configurado para llevar a cabo las etapas del proceso 1400.
[0101] El proceso 1400 se ilustra como un diagrama de flujo lógico, cuyo funcionamiento representa una secuencia de funcionamientos que se pueden implementar en hardware, instrucciones informáticas o una combinación de los mismos. En el contexto de instrucciones informáticas, los funcionamientos representan instrucciones ejecutables por ordenador almacenadas en uno o más medios de almacenamiento legibles por ordenador que, cuando se ejecutan por uno o más procesadores, realizan los funcionamientos enumerados. En general, las instrucciones ejecutables por ordenador incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares que realizan funciones particulares o implementan tipos de datos particulares. El orden en el que se describen los funcionamientos no se debe interpretar como una limitación, y cualquier número de los funcionamientos descritos se puede combinar en cualquier orden y/o en paralelo para implementar los procesos.
[0102] Adicionalmente, el proceso 1400 se puede realizar bajo el control de uno o más sistemas informáticos configurados con instrucciones ejecutables y se pueden implementar como código (por ejemplo, instrucciones ejecutables, uno o más programas informáticos, o una o más aplicaciones) ejecutándose colectivamente en uno o más procesadores, mediante hardware o combinaciones de los mismos. Como se indica anteriormente, el código se puede almacenar en un medio de almacenamiento legible por ordenador o legible por máquina, por ejemplo, en forma de un programa informático que comprende una pluralidad de instrucciones ejecutables por uno o más procesadores. El medio de almacenamiento legible por ordenador o legible por máquina puede no ser transitorio.
[0103] En 1402, el proceso 1400 de codificación de datos de vídeo incluye generar un flujo de bits de vídeo codificado de acuerdo con un primer protocolo de codificación. El flujo de bits de vídeo codificado incluye una o más capas de mejora y un conjunto de parámetros de vídeo que define los parámetros del flujo de bits de vídeo codificado. En algunos modos de realización, el flujo de bits de vídeo codificado se puede codificar usando una técnica de codificación HEVC u otra técnica de codificación adecuada.
[0104] En 1404, el proceso 1400 incluye determinar que un elemento de sintaxis indicativo de un número de estructuras de sintaxis de información de señales de vídeo proporcionado en el flujo de bits de vídeo codificado no está presente en el conjunto de parámetros de vídeo. Por ejemplo, un codificador puede determinar que un elemento de sintaxis (por ejemplo, vps_num_video_signal_info_minus1) que indica que el número de estructuras de sintaxis de información de señales de vídeo a incluir en el conjunto de parámetros de vídeo no está presente en el conjunto de parámetros de vídeo (por ejemplo, el VPS o la VUI VPS).
[0105] En 1406, el proceso 1400 incluye determinar el número de estructuras de sintaxis de información de señales de vídeo a incluir en el conjunto de parámetros de vídeo cuando el elemento de sintaxis indicativo del número de estructuras de sintaxis de información de señales de vídeo proporcionado en el flujo de bits de vídeo codificado no está presente en el conjunto de parámetros de vídeo. El número se determina como un primer valor o un segundo valor en base a si se incluye una capa base en el flujo de bits de vídeo codificado o si se va a proporcionar a un descodificador desde una fuente externa. En algunos modos de realización, el número de estructuras de sintaxis de información de señales de vídeo a incluir en el conjunto de parámetros de vídeo se determina como el primer valor cuando se determina que la capa base está incluida en el flujo de bits de vídeo codificado, en cuyo caso el primer valor es igual a un número máximo de capas del flujo de bits de vídeo codificado.
[0106] En algunos modos de realización, el número de estructuras de sintaxis de información de señales de vídeo a incluir en el conjunto de parámetros de vídeo se determina como el segundo valor cuando se determina que la capa base se va a proporcionar al descodificador desde la fuente externa, en cuyo caso el segundo valor es igual a un número máximo de capas del flujo de bits de vídeo codificado menos uno. En algunos modos de realización, se asigna una estructura de sintaxis de información de señales de vídeo a cada una de las capas incluidas en el flujo de bits de vídeo codificado, y no se asigna ninguna estructura de sintaxis de información de señales de vídeo a la capa base que se va a proporcionar al descodificador desde la fuente externa. En algunos modos de realización, la capa base proporcionada por la fuente externa se codifica de acuerdo con un segundo protocolo de codificación, siendo el segundo protocolo de codificación diferente del primer protocolo de codificación. En algunos ejemplos, el primer protocolo de codificación incluye un protocolo de codificación de vídeo de alta eficacia y el segundo protocolo de codificación incluye un protocolo de codificación de vídeo avanzada.
[0107] La FIG. 15 ilustra un modo de realización de un proceso 1500 de descodificación de datos de vídeo. El proceso 1500 se implementa para inferir un número de estructuras de sintaxis de información de señales de vídeo en el VPS. En algunos aspectos, el proceso 1500 se puede realizar mediante un dispositivo informático o un aparato, tal como el dispositivo de descodificación 112 mostrado en la FIG. 1 o FIG. 17. Por ejemplo, el dispositivo 0 aparato informático puede incluir un descodificador, o un procesador, microprocesador, microordenador u otro componente de un descodificador que esté configurado para llevar a cabo las etapas del proceso 1500.
[0108] El proceso 1500 se ilustra como un diagrama de flujo lógico, cuyo funcionamiento representa una secuencia de funcionamientos que se pueden implementar en hardware, instrucciones informáticas o una combinación de los mismos. En el contexto de instrucciones informáticas, los funcionamientos representan instrucciones ejecutables por ordenador almacenadas en uno o más medios de almacenamiento legibles por ordenador que, cuando se ejecutan por uno o más procesadores, realizan los funcionamientos enumerados. En general, las instrucciones ejecutables por ordenador incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares que realizan funciones particulares o implementan tipos de datos particulares. El orden en el que se describen los funcionamientos no se debe interpretar como una limitación, y cualquier número de los funcionamientos descritos se puede combinar en cualquier orden y/o en paralelo para implementar los procesos.
[0109] Adicionalmente, el proceso 1500 se puede realizar bajo el control de uno o más sistemas informáticos configurados con instrucciones ejecutables y se pueden implementar como código (por ejemplo, instrucciones ejecutables, uno o más programas informáticos, o una o más aplicaciones) ejecutándose colectivamente en uno o más procesadores, mediante hardware o combinaciones de los mismos. Como se indica anteriormente, el código se puede almacenar en un medio de almacenamiento legible por ordenador o legible por máquina, por ejemplo, en forma de un programa informático que comprende una pluralidad de instrucciones ejecutables por uno o más procesadores. El medio de almacenamiento legible por ordenador o legible por máquina puede no ser transitorio.
[0110] En 1502, el proceso 1500 de descodificación de datos de vídeo incluye acceder a un flujo de bits de vídeo codificado, codificado de acuerdo con un primer protocolo de codificación. El flujo de bits de vídeo codificado incluye una o más capas de mejora y un conjunto de parámetros de vídeo que define los parámetros del flujo de bits de vídeo codificado. En algunos modos de realización, el flujo de bits de vídeo codificado se puede codificar usando una técnica de codificación HEVC u otra técnica de codificación adecuada.
[0111] En 1504, el proceso 1500 incluye determinar que un elemento de sintaxis indicativo de un número de estructuras de sintaxis de información de señales de vídeo proporcionado en el flujo de bits de vídeo codificado no está presente en el conjunto de parámetros de vídeo. Por ejemplo, un descodificador puede determinar que un elemento de sintaxis (por ejemplo, vps_num_video_signal_info_minus1) que indica el número de estructuras de sintaxis de información de señales de vídeo a incluir en el conjunto de parámetros de vídeo no está presente en el conjunto de parámetros de vídeo. En 1506, el proceso 1500 incluye determinar si se incluye una capa base en el flujo de bits de vídeo codificado o se va a recibir desde una fuente externa. Por ejemplo, la determinación de si una capa base está incluida en el flujo de bits de vídeo codificado o si se va a recibir de una fuente externa se puede basar en una indicación proporcionada a un descodificador. La indicación se puede transmitir a través de un elemento de sintaxis del VPS. En un ejemplo, una estructura de sintaxis del VPS puede incluir un indicador con un valor (por ejemplo, 1 o 0) que indica al descodificador que la capa base está incluida en el flujo de bits de vídeo codificado. En otro ejemplo, una estructura de sintaxis del VPS puede incluir un indicador con un valor (por ejemplo, 1 o 0) que indica al descodificador que la capa base se va a recibir de una fuente externa.
[0112] En 1508, el proceso 1500 incluye determinar el número de estructuras de sintaxis de información de señales de vídeo incluido en el conjunto de parámetros de vídeo para que sea un primer valor o un segundo valor en base a si la capa base está incluida en el flujo de bits de vídeo codificado o se va a recibir desde la fuente externa. En algunos modos de realización, el proceso 1500 incluye determinar el número de estructuras de sintaxis de la información de señales de vídeo para que sea el primer valor cuando se determina que la capa base está incluida en el flujo de bits de vídeo codificado, en cuyo caso el primer valor es igual a un número máximo de capas del flujo de bits de vídeo codificado.
[0113] En algunos modos de realización, el proceso 1500 incluye determinar el número de estructuras de sintaxis de información de señales de vídeo para que sea el segundo valor cuando se determina que la capa base se va a recibir de la fuente externa, en cuyo caso el segundo valor es igual a un número máximo de capas de flujo de bits de vídeo codificado menos uno. En algunos modos de realización, se asigna una estructura de sintaxis de información de señales de vídeo a cada una de las capas incluidas en el flujo de bits de vídeo codificado, y no se asigna ninguna estructura de sintaxis de información de señales de vídeo a la capa base que se va a recibir desde la fuente externa. En algunos modos de realización, la capa base proporcionada por la fuente externa se codifica de acuerdo con un segundo protocolo de codificación, siendo el segundo protocolo de codificación diferente del primer protocolo de codificación. En algunos ejemplos, el primer protocolo de codificación incluye un protocolo de codificación de vídeo de alta eficacia, y en el que el segundo protocolo de codificación incluye un protocolo de codificación de vídeo avanzada.
[0114] En algunos aspectos, el proceso 1500 se puede ejecutar en un dispositivo de comunicación inalámbrica. El dispositivo de comunicación inalámbrica puede incluir una memoria configurada para almacenar los datos de vídeo. La memoria puede incluir el almacenamiento 118 mostrado en la FIG. 1. El dispositivo de comunicación inalámbrica también puede incluir un procesador configurado para ejecutar instrucciones para procesar los datos de vídeo almacenados en la memoria. El procesador puede incluir el motor descodificador 116 mostrado en la FIG.
1, u otro procesador adecuado para procesar datos de vídeo. El dispositivo de comunicación inalámbrica también incluye un receptor configurado para recibir el flujo de bits de vídeo codificado. El receptor puede ser un receptor inalámbrico (no mostrado) del dispositivo de descodificación 112, o puede ser parte de un transceptor inalámbrico (no mostrado) del dispositivo de descodificación 112. En algunos aspectos, el dispositivo de comunicación inalámbrica es un teléfono celular y el flujo de bits de vídeo codificado se modula de acuerdo con una norma de comunicación celular. Por ejemplo, el flujo de bits de vídeo codificado se puede modular usando un modulador (por ejemplo, un modulador por desplazamiento de fase en cuadratura, un modulador de multiplexación por división de frecuencia ortogonal o cualquier otro modulador adecuado, o una combinación de los mismos).
[0115] Las técnicas descritas anteriormente evitan la señalización de estructuras de sintaxis de información de señales de vídeo superfluas cuando la capa base la proporciona una fuente externa. La señalización de dicha información incluso cuando la capa base está codificada de acuerdo con un protocolo separado da lugar a ineficacias porque las estructuras de sintaxis de información de señales de vídeo adicionales no son necesarias.
[0116] Las técnicas de codificación analizadas en el presente documento se pueden implementar en un sistema de codificación y descodificación de vídeo de ejemplo (por ejemplo, el sistema 100). Un sistema incluye un dispositivo de origen que proporciona datos de vídeo codificados que se van a descodificar en un momento posterior mediante un dispositivo de destino. En particular, el dispositivo de origen proporciona los datos de vídeo al dispositivo de destino por medio de un medio legible por ordenador. El dispositivo de origen y el dispositivo de destino pueden comprender cualquiera de una amplia gama de dispositivos, incluyendo ordenadores de escritorio, notebooks (es decir, ordenadores portátiles), tabletas electrónicas, descodificadores, teléfonos tales como los denominados teléfonos "inteligentes", los denominados paneles "inteligentes", televisores, 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 y el dispositivo de destino pueden estar equipados para la comunicación inalámbrica.
[0117] El dispositivo de destino puede recibir los datos de vídeo codificados que se van a descodificar por medio del medio legible por ordenador. El medio legible por ordenador puede comprender cualquier tipo de medio o dispositivo capaz de mover los datos de vídeo codificados desde el dispositivo de origen al dispositivo de destino. En un ejemplo, el medio legible por ordenador puede comprender un medio de comunicación para habilitar el dispositivo de origen para transmitir datos de vídeo codificados directamente al dispositivo de destino 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. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, 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 enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen hasta el dispositivo de destino.
[0118] En algunos ejemplos, se pueden emitir datos codificados desde la interfaz de salida hasta un dispositivo de almacenamiento. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una variedad de medios de almacenamiento de datos, distribuidos o de acceso local, tales como un 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 codificado. En otro ejemplo, el dispositivo de almacenamiento puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que pueda almacenar el vídeo codificado generado por el dispositivo de origen. El dispositivo de destino puede acceder a datos de vídeo almacenados desde el dispositivo de almacenamiento por medio de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino. Servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectado a red (NAS) o una unidad de disco local. El dispositivo de destino 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 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 puede ser una transmisión continua, una transmisión de descarga o una combinación de las mismas.
[0119] 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 como soporte de cualquiera de una variedad de aplicaciones de multimedia, tales como radiodifusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continua de vídeo por internet, tales como la transmisión continua adaptativa dinámica por HTTP (DASH), vídeo digital que se codifica 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 puede estar configurado para prestar soporte a una transmisión de vídeo unidireccional o bidireccional, para prestar soporte a aplicaciones tales como la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo y/o la videotelefonía.
[0120] En un ejemplo, el dispositivo de origen incluye una fuente de vídeo, un codificador de vídeo y una interfaz de salida. El dispositivo de destino puede incluir una interfaz de entrada, un descodificador de vídeo y un dispositivo de visualización. El codificador de vídeo del dispositivo de origen se puede configurar para aplicar las técnicas divulgadas en el presente documento. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen puede recibir datos de vídeo desde una fuente de vídeo externa, tal como una cámara externa. Del mismo modo, el dispositivo de destino puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0121] El sistema de ejemplo anterior es simplemente un ejemplo. Las técnicas para el procesamiento de datos de vídeo en paralelo se pueden realizar mediante cualquier dispositivo de codificación y/o de descodificación de vídeo digital. Aunque, en general, las técnicas de esta divulgación se realizan mediante un dispositivo de codificación de vídeo, las técnicas también se pueden realizar mediante un codificador/descodificador de vídeo, denominado típicamente "CÓDEC". Además, las técnicas de esta divulgación también se pueden realizar mediante un preprocesador de vídeo. El dispositivo de origen y el dispositivo de destino son simplemente ejemplos de dichos dispositivos de codificación en los que el dispositivo de origen genera datos de vídeo codificados para su transmisión al dispositivo de destino. En algunos ejemplos, los dispositivos de origen y destino pueden funcionar de manera sustancialmente simétrica, de modo que cada uno de los dispositivos incluye componentes de codificación y de descodificación de vídeo. De ahí que los sistemas de ejemplo puedan prestar soporte a la transmisión de vídeo unidireccional o bidireccional entre los dispositivos de vídeo, por ejemplo, para la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo o la videotelefonía.
[0122] La fuente de vídeo puede incluir un dispositivo de captura de vídeo, tal como una videocámara, un archivo de vídeo que contiene vídeo capturado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenidos de vídeo. Como otra alternativa, la fuente de vídeo puede generar datos basados en gráficos de ordenador como el vídeo de origen, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si la fuente de vídeo es una videocámara, el dispositivo de origen y el dispositivo de destino pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, como se menciona anteriormente, 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 alámbricas. En cada caso, el codificador de vídeo puede codificar el vídeo capturado, precapturado o generado por ordenador. A continuación, la información de vídeo codificada puede ser proporcionada por la interfaz de salida a un medio legible por ordenador.
[0123] Como se ha indicado, el medio legible por ordenador puede incluir medios transitorios, tales como una radiodifusión inalámbrica o una transmisión de red por cable, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, una unidad de memoria flash, un disco compacto, un disco de vídeo digital, un disco Blu-ray u otros medios legibles por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo de origen y proporcionar los datos de vídeo codificados al dispositivo de destino, por ejemplo, por medio de una transmisión en red. De forma similar, un dispositivo informático de una unidad de producción de medios, tal como una unidad de grabación de discos, puede recibir datos de vídeo codificados desde el dispositivo de origen y producir un disco que contiene los datos de vídeo codificados. Por lo tanto, se puede entender que el medio legible por ordenador incluye uno o más medios legibles por ordenador de diversas formas, en diversos ejemplos.
[0124] La interfaz de entrada del dispositivo de destino recibe información del medio legible por ordenador. La información del medio legible por ordenador puede incluir información de sintaxis definida por el codificador de vídeo, que también es usada por el descodificador de vídeo, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupos de imágenes (GOP). Un dispositivo de visualización muestra los datos de vídeo descodificados a un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), 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. Se han descrito diversos modos de realización de la invención.
[0125] Los detalles específicos del dispositivo de codificación 104 y del dispositivo de descodificación 112 se muestran en la FIG. 16 y la FIG. 17, respectivamente. La FIG. 16 es un diagrama de bloques que ilustra un dispositivo de codificación 104 de ejemplo que puede implementar una o más de las técnicas descritas en esta divulgación. El dispositivo de codificación 104 puede, por ejemplo, generar las estructuras de sintaxis descritas en el presente documento (por ejemplo, las estructuras de sintaxis de un VPS, SPS, PPS u otros elementos de sintaxis). El dispositivo de codificación 104 puede realizar codificación de intrapredicción e interpredicción de bloques de vídeo dentro de fragmentos de vídeo. Como se describe previamente, la intracodificación se basa, al menos en parte, en la predicción espacial para reducir o eliminar la redundancia espacial en una imagen o trama de vídeo dada. La intercodificación se basa, al menos en parte, en la predicción temporal para reducir o eliminar la redundancia temporal en las tramas contiguas o circundantes 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 predicción bidireccional (modo B), se pueden referir a cualquiera de varios modos de compresión con base temporal.
[0126] El dispositivo de codificación 104 incluye una unidad de división 35, una unidad de procesamiento de predicción 41, una unidad de filtro 63, una memoria de imágenes 64, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. La unidad de procesamiento de predicción 41 incluye una unidad de estimación de movimiento 42, una unidad de compensación de movimiento 44 y una unidad de procesamiento de intrapredicción 46. Para la reconstrucción de bloques de vídeo, el dispositivo de codificación 104 incluye también una unidad de cuantificación inversa 58, una unidad de procesamiento de transformada inversa 60 y un sumador 62. La unidad de filtro 63 pretende representar uno o más filtros de bucle tales como un filtro de desbloqueo, un filtro de bucle adaptativo (ALF) y un filtro de desplazamiento adaptativo de muestras (SAO). Aunque la unidad de filtro 63 se muestra en la FIG. 16 como un filtro de bucle, en otras configuraciones la unidad de filtro 63 se puede implementar como un filtro de bucle posterior. Un dispositivo de procesamiento posterior 57 puede realizar un procesamiento adicional en los datos de vídeo codificados generados por el dispositivo de codificación 104. Las técnicas de esta divulgación se pueden implementar, en algunos casos, mediante el dispositivo de codificación 104. En otros casos, sin embargo, una o más de las técnicas de esta divulgación se pueden implementar mediante el dispositivo de procesamiento posterior 57.
[0127] Como se muestra en la FIG. 16, el dispositivo de codificación 104 recibe datos de vídeo, y la unidad de división 35 divide los datos en bloques de vídeo. La división también puede incluir la división en fragmentos, segmentos de fragmento, 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. El dispositivo de codificación 104 ilustra, en general, los componentes que codifican 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 codificación de intrapredicción, o uno de una pluralidad de modos de codificación de interpredicció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, o similares). 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.
[0128] La unidad de procesamiento de intrapredicción 46 dentro de la unidad de procesamiento de predicción 41, puede realizar la codificación de intrapredicción 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 estimación de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad de procesamiento de predicción 41 realizan la codificación interpredictiva del bloque de vídeo actual en relación con uno o más bloques predictivos en una o más imágenes de referencia, para proporcionar compresión temporal.
[0129] La unidad de estimación de movimiento 42 se puede configurar para determinar el modo de interpredicción para un fragmento de vídeo de acuerdo con un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar fragmentos de vídeo en la secuencia como fragmentos P, fragmentos B o fragmentos GPB. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado con propósitos conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una 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.
[0130] Un bloque predictivo es un bloque que se encuentra que coincide estrechamente con la PU del bloque de vídeo que se va a codificar en términos de diferencia de píxel, que se puede determinar mediante una suma de diferencia absoluta (SAD), una suma de diferencia al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el dispositivo de codificación 104 puede calcular los valores para las posiciones de píxel subenteros de imágenes de referencia almacenadas en la memoria de imágenes 64. Por ejemplo, el dispositivo de codificación 104 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 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.
[0131] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un fragmento intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de imágenes 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
[0132] La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado 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 compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una lista de imágenes de referencia. El dispositivo de codificación 104 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel. Los valores de diferencia de píxel forman datos residuales para el bloque, y pueden incluir componentes de diferencia tanto de luma como de croma. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de compensación de movimiento 44 también puede generar elementos de sintaxis asociados con los bloques de vídeo y al fragmento de vídeo para su uso mediante el dispositivo de descodificación 112 en la descodificación de los bloques de vídeo del fragmento de vídeo.
[0133] La unidad de procesamiento de intrapredicción 46 puede intrapredecir un bloque actual, como una alternativa a la interpredicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se describe anteriormente. En particular, la unidad de procesamiento de intrapredicción 46 puede determinar un modo de intrapredicción para 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 pasadas de codificación independientes, y la unidad de procesamiento de intrapredicción 46 puede seleccionar un modo de intrapredicción adecuado para su uso a partir de los modos sometidos a prueba. Por ejemplo, la unidad de procesamiento de intrapredicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción sometidos a prueba, y puede seleccionar el modo de intrapredicción que tenga las mejores características de velocidad-distorsión entre los modos sometidos a prueba. El análisis de velocidad-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original, no codificado, que se codificó para producir el bloque codificado, así como una velocidad de transmisión de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de procesamiento de intrapredicción 46 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados para determinar qué modo de intrapredicción presenta el mejor valor de velocidad-distorsión para el bloque.
[0134] En cualquier caso, tras seleccionar un modo de intrapredicción para un bloque, la unidad de procesamiento de intrapredicción 46 puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado. El dispositivo de codificación 104 puede incluir en la configuración de flujo de bits transmitido definiciones de datos de contextos de codificación para diversos bloques, así como 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 a usar para cada uno de los contextos. Los datos de configuración de flujo de bits 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).
[0135] 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 por medio de interpredicción o intrapredicción, el dispositivo de codificación 104 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 TU y aplicarse a la unidad de procesamiento de transformada 52. La unidad de procesamiento de transformada 52 transforma los datos de vídeo residuales en coeficientes de transformada residuales usando una transformada, tal como una transformada discreta del coseno (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 la frecuencia.
[0136] La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir además la velocidad de transferencia de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos, o la totalidad, de los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede realizar, a continuación, una exploración de la matriz que incluye los coeficientes de transformada cuantificados. De forma alternativa, la unidad de codificación por entropía 56 puede realizar la exploración.
[0137] Después de la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede llevar a cabo la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa el contexto (CABAC), la codificación aritmética binaria adaptativa el contexto basada en sintaxis (SBAC), la codificación por entropía por división en intervalos de probabilidad (PIPE) u otra técnica de codificación por entropía. Seguidamente a la codificación por entropía mediante la unidad de codificación por entropía 56, el flujo de bits codificado se puede transmitir al dispositivo de descodificación 112, o archivarse para su posterior transmisión o recuperación mediante el dispositivo de descodificación 112. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los otros elementos de sintaxis para el fragmento de vídeo actual que se esté codificando.
[0138] La unidad de cuantificación inversa 58 y la unidad de procesamiento de transformada inversa 60 aplican una cuantificación inversa y una transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel para su uso posterior como bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una lista de imágenes de referencia. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxel subenteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque predictivo con compensación de movimiento generado por la unidad de compensación de movimiento 44 para generar un bloque de referencia para su almacenamiento en la memoria de imágenes 64. El bloque de referencia puede ser usado por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como bloque de referencia para realizar una interpredicción de un bloque en una trama o imagen de vídeo subsiguiente.
[0139] De esta manera, el dispositivo de codificación 104 de la FIG. 16 representa un ejemplo de un codificador de vídeo configurado para generar sintaxis para un flujo de bits de vídeo codificado. El dispositivo de codificación 104 puede, por ejemplo, generar conjuntos de parámetros VPS, SPS y PPS como se describe anteriormente. El dispositivo de codificación 104 puede realizar cualquiera de las técnicas descritas en el presente documento, incluyendo los procesos descritos anteriormente con respecto a las FIGS. 7, 8, 10, 14 y 15. Las técnicas de esta divulgación se han descrito, en general, con respecto al dispositivo de codificación 104, pero como se mencionó anteriormente, algunas de las técnicas de esta divulgación también se pueden implementar mediante el dispositivo de procesamiento posterior 57.
[0140] La FIG. 17 es un diagrama de bloques que ilustra un dispositivo de descodificación 112 de ejemplo. El dispositivo de descodificación 112 incluye una unidad de descodificación por entropía 80, una unidad de procesamiento de predicción 81, una unidad de cuantificación inversa 86, una unidad de procesamiento de transformada inversa 88, un sumador 90, una unidad de filtro 91 y una memoria de imágenes 92. La unidad de procesamiento de predicción 81 incluye una unidad de compensación de movimiento 82 y una unidad de procesamiento de intrapredicción 84. El dispositivo de descodificación 112 puede, en algunos ejemplos, realizar una pasada de descodificación que, en general, es recíproca a la pasada de codificación descrita con respecto al dispositivo de codificación 104 de la FIG. 16.
[0141] Durante el proceso de descodificación, el dispositivo de descodificación 112 recibe un flujo de bits de vídeo codificado, que representa los bloques de vídeo de un fragmento de vídeo codificado y elementos de sintaxis asociados, enviados por el dispositivo de codificación 104. En algunos modos de realización, el dispositivo de descodificación 112 puede recibir el flujo de bits de vídeo codificado desde el dispositivo de codificación 104. En algunos modos de realización, el dispositivo de descodificación 112 puede recibir el flujo de bits de vídeo codificado desde una entidad de red 79, tal como un servidor, un elemento de red sensible a los medios (MANE), un editor/empalmador de vídeo u otro dispositivo similar configurado para implementar una o más de las técnicas descritas anteriormente. La entidad de red 79 puede incluir o no el dispositivo de codificación 104. La entidad de red 79 puede implementar algunas de las técnicas descritas en esta divulgación, antes de que la entidad de red 79 transmita el flujo de bits de vídeo codificado al dispositivo de descodificación 112. En algunos sistemas de descodificación de vídeo, la entidad de red 79 y el dispositivo de descodificación 112 pueden formar parte de dispositivos independientes, mientras que, en otros casos, el mismo dispositivo que comprende el dispositivo de descodificación 112 puede realizar la funcionalidad descrita con respecto a la entidad de red 79.
[0142] La unidad de descodificación por entropía 80 del dispositivo de descodificación 112 descodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de descodificación por entropía 80 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de procesamiento de predicción 81. El dispositivo de descodificación 112 puede recibir los elementos de sintaxis a nivel de fragmento de vídeo y/o a nivel de bloque de vídeo. La unidad de descodificación por entropía 80 puede procesar y analizar sintácticamente elementos de sintaxis de longitud fija y elementos de sintaxis de longitud variable en uno o más conjuntos de parámetros, tales como un VPS, SPS y p Ps .
[0143] 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 en 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, P o GPB), la unidad de compensación de movimiento 82 de la unidad de procesamiento de predicción 81 genera bloques predictivos para un bloque de vídeo del fragmento de vídeo actual basándose en los vectores de movimiento y en otros elementos de sintaxis recibidos desde la unidad de descodificación por entropía 80. Los bloques predictivos se pueden producir a partir de una de las imágenes de referencia dentro de una lista de imágenes de referencia. El dispositivo de descodificación 112 puede construir las listas de tramas de referencia, la Lista 0 y la Lista 1, usando técnicas de construcción predeterminadas, en base a las imágenes de referencia almacenadas en la memoria de imágenes 92.
[0144] La unidad 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 compensación de movimiento 82 puede usar uno o más elementos de sintaxis de un conjunto de parámetros para determinar un modo de predicción (por ejemplo, intrapredicción o interpredicción) usado para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, un fragmento B, un fragmento P o un fragmento GPB), información de construcción para una o más 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.
[0145] La unidad de compensación de movimiento 82 también puede realizar interpolación basándose en filtros de interpolación. La unidad de compensación de movimiento 82 puede usar filtros de interpolación como se usan mediante el dispositivo de codificación 104 durante la codificación de los bloques de vídeo, para calcular valores interpolados para píxeles subenteros de los bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el dispositivo de codificación 104 a partir de los elementos de sintaxis recibidos y puede usar los filtros de interpolación para producir bloques predictivos.
[0146] La unidad de cuantificación inversa 86 cuantifica inversamente, o descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 80. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el dispositivo de codificación 104 para cada bloque de vídeo del fragmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que se debería aplicar. La unidad de procesamiento de transformada inversa 88 aplica una transformada inversa (por ejemplo una DCT inversa u otra transformada inversa adecuada), una transformada entera inversa o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para generar bloques residuales en el dominio de píxel.
[0147] Una vez que la unidad de compensación de movimiento 82 ha generado el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y a otros elementos de sintaxis, el dispositivo de descodificación 112 forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad de procesamiento de transformada inversa 88 a los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 82. El sumador 90 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se pueden usar filtros de bucle (ya sea en el bucle de codificación o después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad de vídeo. La unidad de filtro 91 pretende representar uno o más filtros de bucle tales como un filtro de desbloqueo, un filtro de bucle adaptativo (ALF) y un filtro de desviación adaptativa de muestras (SAO). Aunque la unidad de filtro 91 se muestra en la FIG. 17 siendo un filtro de bucle, en otras configuraciones la unidad de filtro 91 se puede implementar como un filtro de bucle posterior. Los bloques de vídeo descodificados en una trama o imagen dada se almacenan, a continuación, en la memoria de imágenes 92, que almacena imágenes de referencia usadas para la posterior compensación de movimiento. La memoria de imágenes 92 también almacena vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de destino de vídeo 122 mostrado en la FIG. 1.
[0148] En la descripción anterior, se describen aspectos de la aplicación con referencia a modos de realización específicos de la misma, pero los expertos en la técnica reconocerán que la invención no está limitada a los mismos. Por tanto, mientras que en el presente documento se han descrito en detalle modos de realización ilustrativos de la solicitud, se debe entender que los conceptos de la invención se pueden realizar de otro modo de diversas formas. La memoria descriptiva y los dibujos, en consecuencia, se deben considerar en un sentido ilustrativo, en lugar de en un sentido restrictivo. Para fines de ilustración, los procedimientos se han descrito en un orden particular. Se debe apreciar que en modos de realización alternativos, los procedimientos se pueden realizar en un orden diferente al descrito.
[0149] Cuando los componentes se describen como "configurados para" realizar determinados funcionamientos, dicha configuración se puede lograr, por ejemplo, mediante el diseño de circuitos electrónicos u otro hardware para realizar el funcionamiento, mediante la programación de circuitos electrónicos programables (por ejemplo, microprocesadores u otros circuitos electrónicos adecuados) para realizar el funcionamiento, o cualquier combinación de lo anterior.
[0150] Los diversos bloques lógicos, módulos, circuitos y etapas de algoritmo ilustrativos descritos en relación con los modos de realización divulgados en el presente documento se pueden implementar como hardware electrónico, programa informático, firmware o combinaciones de los mismos. Para ilustrar claramente esta intercambiabilidad de hardware y programa informático, anteriormente se han descrito en general diversos componentes, bloques, módulos, circuitos y etapas ilustrativos desde el punto de vista de su funcionalidad. Que dicha funcionalidad se implemente como hardware o programa informático depende de la aplicación y las restricciones de diseño en particular impuestas al sistema global.
[0151] Las técnicas descritas en el presente documento también se pueden implementar en hardware electrónico, programa informático, firmware o en cualquier combinación de los mismos. Dichas técnicas se pueden implementar en cualquiera entre una variedad de dispositivos tales como ordenadores de propósito general, dispositivos manuales de comunicación inalámbrica o dispositivos de circuitos integrados que tienen múltiples usos, incluida su aplicación en dispositivos manuales de comunicación inalámbrica y otros dispositivos. Todos los rasgos característicos descritos como módulos o componentes se pueden implementar juntos en un dispositivo lógico integrado o por separado, como dispositivos lógicos discretos pero interoperables. Si se implementan en programa informático, las técnicas se pueden realizar, al menos en parte, por un medio de almacenamiento de datos legible por ordenador que comprenda código de programa que incluya instrucciones que, cuando se ejecuten, realicen uno o más de los procedimientos descritos anteriormente. El medio de almacenamiento de datos legible por ordenador puede formar parte de un producto de programa informático, que puede incluir materiales de embalaje. El medio legible por ordenador puede comprender memoria o medios de almacenamiento de datos, tales como memoria de acceso aleatorio (RAM), tal como memoria de acceso aleatorio dinámica síncrona (SDRAM), memoria de solo lectura (ROM), memoria de acceso aleatorio no volátil (NVRAM), memoria de solo lectura programable y borrable eléctricamente (EEPROM), memoria FLASH, medios de almacenamiento de datos magnéticos u ópticos, y similares. De forma adicional o alternativa, las técnicas se pueden realizar, al menos en parte, por un medio de comunicación legible por ordenador que transporta o comunica código de programa en forma de instrucciones o estructuras de datos y al que se puede acceder, leer y/o ejecutar mediante un ordenador, tales como señales u ondas propagadas.
[0152] El código de programa se puede ejecutar por un procesador, que puede incluir 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 de puertas programables en el terreno (FPGA) u otros circuitos lógicos equivalentes, integrados o discretos. Un procesador de este tipo puede estar configurado para realizar cualquiera de las técnicas descritas en esta divulgación. Un procesador de propósito general puede ser un microprocesador pero, de forma alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también se puede implementar como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo. Por consiguiente, el término "procesador", como se usa en el presente documento, se puede referir a cualquier estructura anterior, cualquier combinación de la estructura anterior, o cualquier otra estructura o aparato adecuados para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de programa informático o módulos de hardware dedicados configurados para la codificación y la descodificación, o incorporados en un codificador-descodificador de vídeo combinado (CÓDEC).
[0153] La invención se expone en las reivindicaciones adjuntas.

Claims (11)

REIVINDICACIONES
1. Un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento:
acceder a un flujo de bits de vídeo codificado, codificado de acuerdo con la norma HEVC o una extensión de la misma, incluyendo el flujo de bits de vídeo codificado una o más capas de mejora y un conjunto de parámetros de vídeo (VPS) que define los parámetros del flujo de bits de vídeo codificado; determinar si un elemento de sintaxis VPS_num_video_signal_info_minus1 indicativo de un número de estructuras de sintaxis de información de señales de vídeo video_signal_info() proporcionado en el flujo de bits de vídeo codificado está presente en el VPS;
cuando se determina que vps_num_video_signal_info_minus1 no está presente en el VPS; determinar si una capa base está incluida en el flujo de bits de vídeo codificado o si la capa base se va a recibir desde una fuente externa; caracterizado por
determinar el número de estructuras de sintaxis de información de señales de vídeo video_signal_info() incluido en el VPS como un primer valor cuando se determina que la capa base está incluida en el flujo de bits de vídeo codificado, en el que el primer valor es igual a un número máximo de capas del flujo de bits de vídeo codificado, o un segundo valor cuando se determina que la capa base se va a recibir de la fuente externa, en el que el segundo valor es igual a un número máximo de capas del flujo de bits de vídeo codificado menos uno.
2. El procedimiento de la reivindicación 1, en el que se asigna una estructura de sintaxis de información de señales de vídeo video_signal_info() a cada una de las capas incluidas en el flujo de bits de vídeo codificado, y en el que no se asigna una estructura de sintaxis de información de señales de vídeo video_signal_info() a la capa base que se va a recibir de la fuente externa.
3. El procedimiento de la reivindicación 1, en el que la capa base proporcionada desde la fuente externa se codifica de acuerdo con una segunda norma que es diferente de la norma HEVC o una extensión de la misma.
4. El procedimiento de la reivindicación 3, en el que la segunda norma incluye la norma AVC de codificación de vídeo avanzada.
5. El procedimiento de la reivindicación 1, siendo el procedimiento ejecutable en un dispositivo de comunicación inalámbrica, en el que el dispositivo de comunicación inalámbrica comprende:
una memoria configurada para almacenar los datos de vídeo;
un procesador configurado para ejecutar instrucciones para procesar los datos de vídeo almacenados en la memoria; y
un receptor configurado para recibir el flujo de bits de vídeo codificado.
6. El procedimiento de la reivindicación 5, en el que el dispositivo de comunicación inalámbrica es un teléfono celular y el flujo de bits de vídeo codificado se modula de acuerdo con una norma de comunicación celular.
7. Un medio legible por ordenador que tiene instrucciones almacenadas en el mismo que, cuando se ejecutan, realizan el procedimiento de una cualquiera de las reivindicaciones 1 a 6.
8. Un aparato para descodificar datos de vídeo, comprendiendo el aparato:
medios para acceder a un flujo de bits de vídeo codificado, codificado de acuerdo con la norma HEVC o una extensión de la misma, incluyendo el flujo de bits de vídeo codificado una o más capas de mejora y un conjunto de parámetros de vídeo (VPS) que define los parámetros del flujo de bits de vídeo codificado; medios para determinar si un elemento de sintaxis VPS_num_video_signal_info_minus1 indicativo de un número de estructuras de sintaxis de información de señales de vídeo video_signal_info() proporcionado en el flujo de bits de vídeo codificado está presente en el VPS;
medios para determinar si una capa base está incluida en el flujo de bits de vídeo codificado o si la capa base se recibe de una fuente externa, cuando se determina que vps_num_video_signal_info_minus1 no está presente en el VPS; el aparato caracterizado por comprender
medios para determinar el número de estructuras de sintaxis de información de señales de vídeo video_signal_info() incluido en el VPS como un primer valor cuando se determina que la capa base está incluida en el flujo de bits de vídeo codificado, en el que el primer valor es igual a un número máximo de capas del flujo de bits de vídeo codificado, o un segundo valor cuando se determina que la capa base se va a recibir de la fuente externa, en el que el segundo valor es igual a un número máximo de capas del flujo de bits de vídeo codificado menos uno.
9. El aparato de la reivindicación 8, en el que se asigna una estructura de sintaxis de información de señales de vídeo video_signal_info() a cada una de las capas incluidas en el flujo de bits de vídeo codificado, y en el que no se asigna una estructura de sintaxis de información de señales de vídeo video_signal_info() a la capa base que se va a recibir de la fuente externa.
10. El aparato de la reivindicación 8, en el que la capa base proporcionada por la fuente externa está codificada de acuerdo con una segunda norma, siendo la segunda norma diferente de la norma HEVC o una extensión de la misma.
11. El aparato de la reivindicación 10, en el que la segunda norma incluye la norma AVC de codificación de vídeo avanzada.
ES15734765T 2014-06-20 2015-06-19 Procedimiento y aparato para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros Active ES2872899T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462015285P 2014-06-20 2014-06-20
US14/743,613 US20150373376A1 (en) 2014-06-20 2015-06-18 Systems and methods for selectively signaling different numbers of video signal information syntax structures in a parameter set
PCT/US2015/036615 WO2015196035A1 (en) 2014-06-20 2015-06-19 Systems and methods for selectively signaling different numbers of video signal information syntax structures in a parameter set

Publications (1)

Publication Number Publication Date
ES2872899T3 true ES2872899T3 (es) 2021-11-03

Family

ID=54870862

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15734765T Active ES2872899T3 (es) 2014-06-20 2015-06-19 Procedimiento y aparato para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros

Country Status (8)

Country Link
US (4) US9930342B2 (es)
EP (3) EP3158765B1 (es)
JP (3) JP6538727B2 (es)
KR (3) KR102004030B1 (es)
CN (3) CN106416260B (es)
CA (3) CA2952458C (es)
ES (1) ES2872899T3 (es)
WO (3) WO2015196031A1 (es)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075735B2 (en) * 2013-07-14 2018-09-11 Sharp Kabushiki Kaisha Video parameter set signaling
WO2015125489A1 (en) * 2014-02-24 2015-08-27 Sharp Kabushiki Kaisha Restrictions on signaling
JP2015185897A (ja) * 2014-03-20 2015-10-22 パナソニックIpマネジメント株式会社 画像符号化方法及び画像符号化装置
US9930342B2 (en) 2014-06-20 2018-03-27 Qualcomm Incorporated Systems and methods for signaling hypothetical reference decoder parameters in a parameter set
CA3104173C (en) * 2015-09-04 2023-06-27 Sharp Kabushiki Kaisha Method for signaling caption asset information and device for signaling caption asset information
CN109417650A (zh) * 2016-07-11 2019-03-01 夏普株式会社 视频信号转换装置、视频信号转换方法、视频信号转换***、控制程序以及记录介质
EP3721625A1 (en) * 2017-12-06 2020-10-14 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
US10779006B2 (en) * 2018-02-14 2020-09-15 Qualcomm Incorporated Signaling 360-degree video information
WO2020171224A1 (ja) * 2019-02-21 2020-08-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
KR20210135621A (ko) * 2019-04-10 2021-11-15 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서 슬라이스 엔트리 포인트
CA3143885A1 (en) 2019-06-20 2020-12-24 Nokia Technologies Oy An apparatus, a method and a computer program for video encoding and decoding
EP3977745A4 (en) * 2019-06-28 2022-08-10 Huawei Technologies Co., Ltd. STILL IMAGE AND VIDEO CODING METHOD AND APPARATUS
CN114303377A (zh) * 2019-09-11 2022-04-08 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
EP4022930A4 (en) * 2019-09-24 2022-11-02 Huawei Technologies Co., Ltd. OLS FOR SPATIAL AND SNR Scalability
CN114424556B (zh) * 2019-09-24 2023-11-10 华为技术有限公司 对ols的hrd一致性测试
JPWO2021117813A1 (es) * 2019-12-13 2021-06-17
WO2021134011A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of slice type and video layers
JP7425878B2 (ja) 2019-12-26 2024-01-31 バイトダンス インコーポレイテッド レイヤ化されたビデオにおける復号ピクチャバッファパラメータのシグナリング
EP4066386A4 (en) 2019-12-27 2023-01-25 ByteDance Inc. SIGNALING SUBPICTURES IN VIDEO ENCODING
JP7451723B2 (ja) 2020-01-09 2024-03-18 バイトダンス インコーポレイテッド ビデオビットストリームにおける値範囲に対する制約
US11272214B2 (en) * 2020-01-27 2022-03-08 Tencent America LLC Method for picture output with output layer set
CN111355981B (zh) * 2020-03-06 2022-07-12 Oppo广东移动通信有限公司 视频数据播放方法、装置、存储介质及电子设备
WO2021230629A1 (ko) * 2020-05-12 2021-11-18 엘지전자 주식회사 영상/비디오 코딩 시스템에서 단일 레이어 비트스트림 내 파라미터 세트의 참조를 처리하는 방법 및 장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100583977C (zh) * 2005-09-27 2010-01-20 韩国电子通信研究院 用于高质量视频服务的传送和接收数字多媒体广播的设备
JP4921488B2 (ja) * 2005-12-22 2012-04-25 ヴィドヨ,インコーポレーテッド スケーラブルなビデオ符号化を用いて、またスケーラブルなテレビ会議サーバを複合してテレビ会議を行うためのシステムおよび方法
US9571856B2 (en) * 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8948241B2 (en) * 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
US8254443B2 (en) * 2009-08-28 2012-08-28 Ericsson Television, Inc. Latency rate distortion optimisation
US9172963B2 (en) 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
WO2013063982A1 (en) * 2011-10-31 2013-05-10 Mediatek Inc. Apparatus and method for buffering context arrays referenced for performing entropy decoding upon multi-tile encoded picture and related entropy decoder
EP2838262A4 (en) 2012-04-16 2016-01-06 Samsung Electronics Co Ltd METHOD FOR MULTIPLE VIEW VIDEO CODING BASED ON A TREE STRUCTURE CODING UNIT AND DEVICE THEREFOR AND METHOD FOR MULTIPLE VIDEO VIDEO DECODING BASED ON A TREE STRUCTURE CODING UNIT AND DEVICE THEREFOR
WO2013162454A1 (en) * 2012-04-24 2013-10-31 Telefonaktiebolaget L M Ericsson (Publ) Identifying a parameter set for decoding a multi-layer video representation
US9838688B2 (en) * 2012-06-22 2017-12-05 Mediatek Inc. Method and apparatus of adaptive intra prediction for inter-layer and inter-view coding
US9992490B2 (en) * 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
CN108696756B (zh) 2012-09-28 2020-12-11 夏普株式会社 图像编码装置
US20140092978A1 (en) 2012-10-01 2014-04-03 Nokia Corporation Method and apparatus for video coding
AU2014231403A1 (en) * 2013-03-12 2015-07-16 Hfi Innovation Inc. Inter-layer motion vector scaling for scalable video coding
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
KR102327617B1 (ko) 2013-04-08 2021-11-17 지이 비디오 컴프레션, 엘엘씨 효율적인 다-시점/계층 코딩을 허용하는 코딩 개념
EP4373092A1 (en) 2013-07-15 2024-05-22 GE Video Compression, LLC Layer id signaling using extension mechanism
WO2015052942A1 (en) * 2013-10-11 2015-04-16 Sharp Kabushiki Kaisha Signaling information for coding
CN105594215B (zh) * 2013-10-11 2019-04-23 夏普株式会社 颜色信息和色度信令
US20150264099A1 (en) 2014-03-14 2015-09-17 Sharp Laboratories Of America, Inc. Systems and methods for constraining a bitstream
WO2015194179A1 (en) * 2014-06-17 2015-12-23 Sharp Kabushiki Kaisha Bitstream partitions operation
US9930342B2 (en) 2014-06-20 2018-03-27 Qualcomm Incorporated Systems and methods for signaling hypothetical reference decoder parameters in a parameter set

Also Published As

Publication number Publication date
WO2015196031A1 (en) 2015-12-23
CA2952460A1 (en) 2015-12-23
US20150373376A1 (en) 2015-12-24
US20180176575A1 (en) 2018-06-21
CN106537921B (zh) 2019-07-30
CA2952458A1 (en) 2015-12-23
CN106416260A (zh) 2017-02-15
KR102069416B1 (ko) 2020-01-22
JP2017523679A (ja) 2017-08-17
CN106464920A (zh) 2017-02-22
CA2952459A1 (en) 2015-12-23
CN106416260B (zh) 2019-05-28
KR102310009B1 (ko) 2021-10-06
EP3158765B1 (en) 2024-03-27
EP3158764B1 (en) 2023-09-06
JP2017519445A (ja) 2017-07-13
KR20170020791A (ko) 2017-02-24
CN106537921A (zh) 2017-03-22
EP3158756B1 (en) 2021-02-24
CA2952460C (en) 2023-03-07
US9930342B2 (en) 2018-03-27
JP6545722B2 (ja) 2019-07-17
BR112016029856A2 (pt) 2017-08-22
EP3158764A1 (en) 2017-04-26
US20150373337A1 (en) 2015-12-24
KR102004030B1 (ko) 2019-07-25
EP3158764C0 (en) 2023-09-06
KR20170020790A (ko) 2017-02-24
US20150373375A1 (en) 2015-12-24
KR20170020785A (ko) 2017-02-24
BR112016029790A2 (pt) 2017-08-22
EP3158765A1 (en) 2017-04-26
JP6538727B2 (ja) 2019-07-03
US10250884B2 (en) 2019-04-02
JP6441968B2 (ja) 2018-12-19
CA2952459C (en) 2019-10-08
WO2015196035A1 (en) 2015-12-23
BR112016029790A8 (pt) 2021-07-13
BR112016029762A2 (pt) 2017-08-22
JP2017523675A (ja) 2017-08-17
WO2015196033A1 (en) 2015-12-23
EP3158756A1 (en) 2017-04-26
CA2952458C (en) 2021-01-05
CN106464920B (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
ES2872899T3 (es) Procedimiento y aparato para señalizar selectivamente diferentes números de estructuras de sintaxis de información de señales de vídeo en un conjunto de parámetros
ES2774664T3 (es) Sistemas y procedimientos para copia intrabloque
KR102372120B1 (ko) 멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용
JP2019515572A (ja) ビデオピクチャのための領域ネスティングメッセージを生成するための方法およびシステム
BR112014026745B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivo de decodificação de vídeo para decodificar dados de vídeo e memória legível por computador
PH12014502598B1 (en) Signaling data for long term reference pictures for video coding
US9807419B2 (en) Recovery point SEI message in multi-layer video codecs
CN113892271A (zh) 用于在视频编码中发送信号通知假想参考解码器参数的***和方法
KR20220124168A (ko) 비디오 코딩을 위한 비디오 데이터의 저장 및 전달
TW202203650A (zh) 解碼圖片緩衝器(dpb)操作和存取單元定界符(aud)
TW202341731A (zh) 自我調整膠片顆粒合成
KR20240121225A (ko) 적응형 필름 그레인 합성
BR112016029790B1 (pt) Método para decodificar dados de vídeo, aparelho e memória legível por computador
BR112016029856B1 (pt) Método e aparelho para codificar dados de vídeo
BR112016029762B1 (pt) Método e aparelho de decodificação de dados de vídeo, e, memória legível por computador