ES2913456T3 - Tiempos de llegada y de extracción nominal en memoria intermedia de imágenes codificadas en la codificación de vídeo - Google Patents
Tiempos de llegada y de extracción nominal en memoria intermedia de imágenes codificadas en la codificación de vídeo Download PDFInfo
- Publication number
- ES2913456T3 ES2913456T3 ES13774009T ES13774009T ES2913456T3 ES 2913456 T3 ES2913456 T3 ES 2913456T3 ES 13774009 T ES13774009 T ES 13774009T ES 13774009 T ES13774009 T ES 13774009T ES 2913456 T3 ES2913456 T3 ES 2913456T3
- Authority
- ES
- Spain
- Prior art keywords
- cpb
- current
- subpicture
- level
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Un procedimiento para descodificar datos de vídeo usando una memoria intermedia de imágenes codificadas, CPB, comprendiendo los datos de vídeo una o más unidades de acceso, AU, comprendiendo cada una de las una o más AU una o más unidades de descodificación, DU, comprendiendo el procedimiento: determinar un valor de un primer indicador, donde el valor del primer indicador señaliza o bien que hay parámetros de retardo de extracción de memoria intermedia de imágenes codificadas, CPB, de subimágenes en mensajes de información de mejora suplementaria, SEI, de temporización de imágenes y que no hay ningún mensaje SEI de temporización de subimágenes, o bien que hay parámetros de retardo de extracción de CPB a nivel de subimagen en mensajes SEI de temporización de subimágenes y que los mensajes SEI de temporización de imágenes no incluyen parámetros de retardo de extracción de CPB a nivel de subimagen, en el que el primer indicador es un indicador de nivel de secuencia; determinar un valor de un segundo indicador, funcionando la CPB a nivel de AU cuando el valor del segundo indicador es 0 y funcionando la CPB a nivel de subimagen cuando el valor del segundo indicador es 1; independientemente del valor determinado del segundo indicador, obtener (560) un tiempo de llegada a CPB de una AU actual y un tiempo de extracción nominal de CPB de la AU actual a nivel de AU, en el que la AU actual incluye dos o más DU que incluyen una DU actual que no es la última DU en el orden de descodificación de la AU actual; y si el valor del segundo indicador es igual a 1: i) si el primer indicador indica que los parámetros de retardo de extracción de CPB a nivel de subimagen no están presentes en los mensajes SEI de temporización de imágenes, obtener un valor de retardo de extracción de CPB para la DU actual a partir de uno o más parámetros de retardo de extracción de CPB en un mensaje SEI de temporización de subimágenes asociado a la DU actual y establecer (562) un tiempo de extracción nominal de la DU actual igual al tiempo de extracción nominal de la AU actual menos la duración de un pulso de reloj de subimágenes multiplicado por el valor de retardo de extracción de CPB, ii) si el primer indicador indica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes en los mensajes SEI de temporización de imágenes, obtener un valor de retardo de extracción de CPB para la DU actual a partir de uno o más parámetros de retardo de extracción de CPB en un mensaje SEI de temporización de imágenes asociado a la DU actual y establecer (562) el tiempo de extracción nominal de la DU actual igual a un tiempo de extracción nominal de una DU inmediatamente posterior en el orden de descodificación menos la duración de un pulso de reloj de subimágenes multiplicado por el valor de retardo de extracción de CPB, iii) establecer un tiempo de extracción de CPB de la DU actual en el tiempo de extracción de CPB nominal de la DU actual, en el que low_delay_hrd_flag es igual a cero o el tiempo de extracción nominal de la DU actual es mayor que o igual a un tiempo de llegada a CPB final de la DU actual, y en el tiempo de extracción de CPB de la DU actual, descodificar (564) la DU actual y extraer la DU actual de la CPB.
Description
DESCRIPCIÓN
Tiempos de llegada y de extracción nominal en memoria intermedia de imágenes codificadas en la codificación de vídeo
CAMPO TÉCNICO
Esta divulgación se refiere a la codificación de vídeo.
ANTECEDENTES
Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, que incluyen televisores digitales, sistemas de radiodifusión digital directa, sistemas de radiodifusión inalámbrica, asistentes personales digitales (PDA), ordenadores portátiles o de escritorio, ordenadores tipo tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos de radio móviles o por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, parte 10, Codificación Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta Eficacia (HEVC) y las ampliaciones de dichas normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de compresión de vídeo.
Las técnicas de compresión de vídeo realizan una predicción espacial (intraimagen) y/o una predicción temporal (interimagen) para reducir o eliminar la redundancia intrínseca a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (es decir, una trama de vídeo o una parte de una trama de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un fragmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a unas muestras de referencia de bloques vecinos de la misma imagen. Los bloques de vídeo de un fragmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a unas muestras de referencia de bloques vecinos de la misma imagen o predicción temporal con respecto a unas muestras de referencia de otras imágenes de referencia. Las imágenes se pueden denominar tramas, y las imágenes de referencia se pueden denominar tramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo y de acuerdo con los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales se pueden transformar desde el dominio de píxel a un dominio de transformada, dando como resultado unos coeficientes de transformada residuales que, a continuación, se pueden cuantificar. Se puede hacer un barrido de los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, para producir un vector unidimensional de coeficientes de transformada, y se puede aplicar codificación entrópica para lograr aún más compresión.
En el documento US 2010/246662 A1 de Koto Shinichiro et al., un procedimiento de codificación de imágenes en movimiento incluye proporcionar datos codificados que comprenden una secuencia de código de imagen correspondiente a los fragmentos de una imagen en movimiento y primera información de temporización que indica los tiempos en los que se deben descodificar los fragmentos.
SUMARIO
En general, las técnicas descritas en esta divulgación están relacionadas con la señalización y la obtención de tiempos de extracción de la memoria intermedia de imágenes codificadas en la codificación de vídeo.
De acuerdo con un primer aspecto, se proporciona un dispositivo para descodificar datos de vídeo como se expone en la reivindicación 2.
De acuerdo con otro aspecto, se proporciona un procedimiento para descodificar datos de vídeo como se expone en la reivindicación 1.
Las técnicas descritas en el presente documento también incluyen un ejemplo de un medio de almacenamiento legible por ordenador que tiene instrucciones almacenadas en el mismo que, al ejecutarse, hacen que un procesador lleve a cabo el procedimiento descrito anteriormente.
Estas técnicas de ejemplo pueden implementarse juntas o por separado. Las técnicas de esta divulgación también se describen en lo que respecta a aparatos configurados para implementar las técnicas, así como a medios de almacenamiento legibles por ordenador que almacenan instrucciones que hacen que uno más procesadores realicen las técnicas.
Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y la siguiente descripción. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar las técnicas descritas en esta divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que puede implementar las técnicas descritas en esta divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que puede implementar las técnicas descritas en esta divulgación.
La FIG. 4 es un diagrama conceptual que ilustra dos unidades de acceso (AU) en orden de descodificación consecutivo que pueden tener tiempos de descodificación determinados de acuerdo con las técnicas descritas en esta divulgación. La FIG. 5 es un diagrama de flujo que ilustra un procedimiento para determinar un tiempo de extracción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de descodificación (DU) en una AU en base al tiempo de extracción de CPB para una segunda DU de la AU de acuerdo con las técnicas descritas en esta divulgación. La FIG. 6 es un diagrama de flujo que ilustra otro procedimiento para determinar un tiempo de extracción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de descodificación en una unidad de acceso en base al tiempo de extracción de CPB para una segunda unidad de descodificación de la unidad de acceso de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento para obtener un tiempo de extracción de CPB de la primera DU en base a, al menos en parte, el mensaje SEI de temporización de subimágenes de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 8 es un diagrama de flujo que ilustra otro procedimiento para obtener un tiempo de extracción de CPB de la primera DU en base a, al menos en parte, la codificación de un mensaje SEI de temporización de subimágenes de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento para descodificar un indicador de nivel de secuencia para un parámetro de memoria intermedia de imágenes codificadas a nivel de subimagen de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 10 es un diagrama de flujo que ilustra un procedimiento para codificar un indicador de nivel de secuencia para un parámetro de memoria intermedia de imágenes codificadas a nivel de subimagen de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 11 es un diagrama de flujo que ilustra un procedimiento para descodificar una DU que tiene una definición ampliada de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 12 es un diagrama de flujo que ilustra un procedimiento para codificar una DU que tiene una definición ampliada de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 13 es un diagrama de flujo que ilustra un procedimiento para descodificar períodos de almacenamiento en memoria intermedia de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 14 es un diagrama de flujo que ilustra un procedimiento para codificar períodos de almacenamiento en memoria intermedia de acuerdo con las técnicas descritas en esta divulgación.
La FIG 15 es un diagrama de flujo que ilustra un procedimiento para descodificar tiempos de extracción nominales y de llegada a memoria intermedia de imágenes codificadas de acuerdo con las técnicas descritas en esta divulgación. La FIG. 16 es un diagrama de flujo que ilustra un procedimiento para codificar tiempos de extracción nominales y de llegada a memoria intermedia de imágenes codificadas de acuerdo con las técnicas descritas en esta divulgación.
DESCRIPCIÓN DETALLADA
Esta divulgación describe técnicas para una señalización y obtención eficientes y a prueba de errores de los tiempos de extracción de memoria intermedia de imágenes codificadas (CPB) de las unidades de datos codificados en la codificación de vídeo. Los tiempos de extracción de CPB también se conocen como tiempos de descodificación. La divulgación proporciona técnicas para determinar un tiempo de extracción de CPB para una unidad de descodificación (DU) de una unidad de acceso (AU) que es independiente de los tiempos de extracción de cualquier otra AU. Por ejemplo, los tiempos de extracción de CPB para una DU actual de una AU se señalizarán en base a una duración entre un tiempo de extracción de CPB de una DU siguiente en un orden de descodificación en la AU y la DU actual o una duración entre el tiempo de extracción de CPB de la última DU en la AU y la DU actual. En otro ejemplo, la obtención del tiempo de extracción de CPB se especifica de tal manera que utiliza información transportada en mensajes de información de mejora suplementaria (SEI) de temporización de subimágenes. Se señaliza la duración entre la extracción de CPB de la última DU en la AU en orden de descodificación y la DU asociada a un mensaje SEI de temporización de subimágenes.
Además, se proporcionan técnicas para incluir un indicador de nivel de secuencia que puede señalizarse para indicar si los parámetros de CPB de subimágenes presiden solo en uno de los mensajes SEI de temporización de imágenes o en los mensajes SEI de temporización de subimágenes, pero nunca en ambos, de acuerdo con las técnicas descritas en el presente documento. El indicador igual a 1 indica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes en los mensajes SEI de temporización de imágenes y que no hay ningún mensaje SEI de temporización de subimágenes. El indicador igual a 0 indica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes en los mensajes SEI de temporización de subimágenes y que los mensajes SEI de temporización de imágenes no incluyen parámetros de retardo de extracción de CPB a nivel de subimagen.
Esta divulgación también proporciona técnicas para expandir una definición de una unidad de descodificación. Esta divulgación proporciona además técnicas para restringir los mensajes SEI en el período de almacenamiento en memoria intermedia y los mensajes SEI en el punto de recuperación, de modo que no pueden asociarse a AU con una variable, TemporalId, mayor que 0. La variable TemporalId se obtiene de un elemento de sintaxis asociado a cada AU. Esta divulgación también proporciona técnicas para proporcionar un indicador para indicar si se deben obtener tiempos de extracción de CPB a nivel de AU o a nivel de subimagen.
Las técnicas descritas en el presente documento pueden aplicarse a varias normas de codificación de vídeo. 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).
Además, existe una nueva norma de codificación de vídeo, a saber, la Codificación de Vídeo de Alta Eficiencia (HEVC), que se está desarrollando por el Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC. Un borrador de trabajo (WD) reciente de HEVC es el borrador de trabajo 8, denominado más adelante en el presente documento HEVC w D8. El Borrador 8 de Memoria Descriptiva Textual de la Codificación de Vídeo de Alta Eficiencia (HEVC), de Bross et al., julio de 2012, Estocolmo, está disponible a fecha de 2 de mayo de 2013 en http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.
El WD8 de HEVC se incorpora como referencia en su totalidad en el presente documento. Además, aunque las técnicas descritas en esta divulgación se describen con respecto a la norma HEVC, los aspectos de esta divulgación no están limitados a esto y pueden ampliarse a otras normas de codificación de vídeo, así como a las técnicas de codificación de vídeo patentadas.
Un codificador de vídeo puede generar un flujo de bits que incluye datos de vídeo codificados. El flujo de bits puede comprender una serie de unidades de capa de abstracción de red (NAL). Las unidades NAL del flujo de bits pueden incluir unidades NAL de capa de codificación de vídeo (VCL) y unidades NAL no VCL. Las unidades NAL VCL pueden incluir fragmentos codificados de imágenes. Una unidad n A l no VCL puede incluir un conjunto de parámetros de vídeo (VPS), un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS), información de mejora suplementaria (SEI) u otros tipos de datos. Un VPS es una estructura de sintaxis que puede contener elementos de sintaxis que se aplican a cero o más secuencias de vídeo codificadas completas. Un SPS es una estructura de sintaxis que puede contener elementos de sintaxis que se aplican a cero o más secuencias de vídeo codificadas completas. Un único VPS se puede aplicar a múltiples SPS. Un PPS es una estructura de sintaxis que puede contener elementos de sintaxis que se aplican a cero o más imágenes codificadas completas. Un único SPS se puede aplicar a múltiples PPS. Diversos aspectos del VPS, SPS y PPS se pueden formar, en general, según se define mediante la norma HEVC.
Las unidades NAL pueden incluir un elemento de sintaxis que es indicativo del valor de la variable temporalId. La variable temporalId de una unidad NAL especifica un identificador temporal de la unidad NAL. Si el identificador temporal de una primera unidad NAL es menor que el identificador temporal de una segunda unidad NAL, los datos encapsulados por la primera unidad NAL se pueden descodificar sin hacer referencia a los datos encapsulados por la segunda unidad NAL.
Cada norma de codificación de vídeo incluye, en general, una especificación de un modelo de almacenamiento en memoria intermedia de vídeo. En AVC y HEVc , el modelo de almacenamiento en memoria intermedia se conoce como un descodificador de referencia hipotético (HRD) que describe cómo los datos se almacenarán en memoria intermedia para su descodificación y cómo los datos descodificados se almacenarán en memoria intermedia para su salida. El HRD incluye un modelo de almacenamiento en memoria intermedia, tanto de la memoria intermedia de imágenes codificadas (CPB) como de la memoria intermedia de imágenes descodificadas (DPB). La CPB es una memoria intermedia de primero en entrar primero en salir que contiene unidades de acceso en el orden de descodificación especificado por el HRD. La DPB es una memoria intermedia que contiene imágenes descodificadas para referencia, reordenamiento de salida o retardo de salida especificados por el HRD. Los parámetros de descodificador de referencia hipotético especifican matemáticamente los comportamientos de la CPB y la DPB. E1HRD puede imponer directamente restricciones en diferentes parámetros, incluyendo temporizaciones, tamaños de memoria intermedia y velocidades de transmisión de bits, y puede imponer indirectamente restricciones en características y estadísticas de flujos de bits. En algunos ejemplos, un conjunto completo de parámetros HRD puede incluir cinco parámetros básicos:
el retardo de extracción de CPB inicial, el tamaño de la CPB, la velocidad de transmisión de bits, el retardo de salida de DPB inicial y el tamaño de DPB.
En la AVC y en la HEVC, la conformidad del flujo de bits y la conformidad del descodificador se especifican como partes de la memoria descriptiva del HRD. Aunque el nombre del descodificador de referencia hipotético se refiere a un tipo de descodificador, el HRD se necesita típicamente en el lado de codificador para la conformidad del flujo de bits, mientras que no se necesita necesariamente en el lado de descodificador. Sin embargo, los aspectos de esta divulgación no están limitados a esto, y el HRD también puede ser parte del lado de descodificador. AVC y HEVC pueden especificar dos tipos de flujo de bits o conformidad de HRD, esto es, Tipo I y Tipo II. AVC y HEVC también especifican dos tipos de conformidad de descodificador: la conformidad de descodificador de temporización de salida y la conformidad de descodificador en orden de salida.
En los modelos HRD de AVC y de HEVC, la descodificación o la extracción de CPB está basada en unidades de acceso, y las normas suponen que la descodificación de imágenes es instantánea. En aplicaciones prácticas, si un descodificador en conformidad sigue estrictamente los tiempos de descodificación señalizados (por ejemplo, en los mensajes de información de mejora suplementaria (SEI)) para iniciar la descodificación de unidades de acceso, entonces el tiempo más temprano posible para proporcionar una imagen descodificada particular es igual al tiempo de descodificación de esa imagen particular más el tiempo necesario para descodificar esa imagen particular. Es decir, el tiempo más temprano para proporcionar la imagen descodificada es el tiempo de descodificación más el tiempo para descodificar la imagen. Sin embargo, el tiempo necesario para descodificar una imagen en aplicaciones prácticas no puede ser igual a cero.
En HEVC WD8, el descodificador de referencia hipotético (HRD) se especifica en el Anexo C. E1HRD se basa en los parámetros HRD, que pueden proporcionarse en el flujo de bits en la estructura de sintaxis hrd_parameters() (en el conjunto de parámetros de vídeo (VPS) y/o el conjunto de parámetros de secuencia (SPS)), los mensajes SEI de período de almacenamiento en memoria intermedia y el mensaje SEI de temporización de imágenes. La solicitud provisional de EE. UU. n.° 61/705.102, presentada el 24 de septiembre de 2012, propone una señalización y selección mejoradas de los parámetros HRD.
Puede haber problemas asociados a los procedimientos existentes para la señalización y la obtención de los tiempos de extracción de CPB, también conocidos como tiempos de descodificación. A continuación se describen algunos de estos problemas.
Los tiempos de extracción de CPB de unidades de descodificación pueden no ser a prueba de errores cuando los tiempos de extracción de CPB para las unidades de descodificación dentro de una unidad de acceso dependen de la información de temporización de una unidad de acceso anterior. Una unidad de acceso puede comprender una o más unidades de descodificación. Se puede determinar un tiempo de extracción para cada DU en una AU. Se puede señalizar un tiempo de extracción de CPB para la AU y para una o más DU dentro de la AU. Un mensaje SEI para una AU puede incluir un tiempo de extracción de CPB para la propia AU, que también corresponde al tiempo de extracción de CPB para la última DU dentro de la AU.
La memoria intermedia de imágenes codificadas puede funcionar en dos niveles: un nivel de unidad de acceso y un nivel de subimagen. Cuando la CPB funciona a nivel de subimagen (es decir, cuando SubPicCpbFlag es igual a 1), la señalización y la obtención de los tiempos de extracción de CPB de unidades de descodificación (DU) que se basan en los mensajes SEI de temporización de imágenes pueden no ser a prueba de errores en circunstancias donde la información se pierde de una AU anterior en orden de descodificación. Por ejemplo, la información de temporización que se señaliza para una AU actual incluye una duración entre un tiempo de extracción de CPB para una primera DU en la AU actual y una última DU en una AU anterior. Por lo tanto, si la información de temporización para la última DU en la AU anterior se pierde, entonces el descodificador no puede determinar el tiempo de extracción para la primera DU en la AU actual porque el tiempo de extracción para la primera DU depende de la información de temporización perdida.
En otras palabras, la señalización de la duración entre los tiempos de extracción de CPB de la primera unidad de descodificación en una AU actual y la última DU en la AU anterior en orden de descodificación, así como el uso de dicha señalización en la obtención de tiempos de extracción de CPB, hace que el sistema o el codificador sea vulnerable a la información de temporización perdida. Por ejemplo, si se pierde la información de extracción de CPB (es decir, el mensaje SEI de temporización de imágenes) de la AU anterior, entonces no se puede obtener correctamente el tiempo de extracción de CPB de la primera DU en la AU actual. Además, a excepción de la última DU de la AU actual, para la cual el tiempo de extracción de CPB se obtiene igual al de la AU actual, cada uno de los tiempos de extracción de CPB de todas las demás DU en la AU actual se basa en el tiempo de extracción de CPB de la DU anterior en orden de descodificación. Por lo tanto, si se produce la pérdida anterior, el tiempo de extracción de CPB de cada DU en la AU actual, a excepción de la última DU, no puede obtenerse correctamente.
Por el contrario, en el presente documento se describen técnicas que pueden reducir la vulnerabilidad del sistema o del codificador a la información de temporización perdida. Por ejemplo, se proporcionan técnicas para determinar un tiempo de extracción de memoria intermedia de imágenes codificadas para una DU de una AU que es independiente
de los tiempos de extracción de cualquier otra unidad de acceso. Por ejemplo, un codificador de vídeo señalizará, en el mensaje SEI de temporización de imágenes, los tiempos de extracción de CPB para que una DU de una AU se reciba en un descodificador de vídeo, basándose en la duración de tiempo entre una DU actual y el tiempo de extracción de CPB de una DU siguiente en un orden de descodificación en la AU o un tiempo de extracción de CPB de la última DU en la AU. Por lo tanto, esta divulgación describe técnicas para una señalización y obtención más eficientes y a prueba de errores de los tiempos de extracción de CPB de unidades de datos codificadas en la codificación de vídeo, ya que la información de temporización para cada DU en una AU no depende de la información de temporización de otra A u diferente.
Otro problema asociado a los procedimientos existentes de señalización y obtención de los tiempos de extracción de CPB es que la información de temporización en los mensajes SEI de temporización de subimágenes no se puede utilizar aunque esté presente. Por ejemplo, puede haber mensajes SEI de temporización de subimágenes, que transportan información de retardo de extracción de CPB de DU. Sin embargo, el funcionamiento de una CPB a nivel de subimagen se especifica de manera que el descodificador de vídeo siempre utiliza mensajes SEI de temporización de imágenes y nunca utiliza mensajes SEI de temporización de subimágenes. Por lo tanto, los bits usados para representar los mensajes SEI de temporización de subimágenes pueden desperdiciarse. Además, el retardo de extracción de CPB de Du señalizado en un mensaje SEI de temporización de subimágenes es la diferencia entre el tiempo de extracción de CPB de la DU asociada y el tiempo de extracción de CPB de la primera DU de la AU anterior asociada a un mensaje SEI de período de almacenamiento en memoria intermedia. Si bien esto puede ser a prueba de errores, también puede no ser eficiente, ya que la diferencia de tiempo puede ser un valor significativo.
Sin embargo, en esta divulgación se proporcionan técnicas para especificar la obtención de tiempos de extracción de CPB de una manera que puede utilizar la información transportada en los mensajes de información de mejora suplementaria (SEI) de temporización de subimágenes. Por ejemplo, la obtención de tiempos de extracción de CPB se especifica de una manera que puede utilizar información transportada en mensajes SEI de temporización de subimágenes, y el codificador de vídeo puede señalizar la duración entre la extracción de CPB de la última DU en la AU en el orden de descodificación y la DU asociada a un mensaje SEI de temporización de subimágenes, lo cual hace que la señalización del codificador y la obtención del descodificador sean más eficientes y a prueba de errores.
Otro problema asociado a los procedimientos existentes para la señalización y la obtención de los tiempos de extracción de CPB es que los parámetros de CPB a nivel de subimagen en los mensajes SEI de temporización de imágenes y los mensajes SEI de temporización de subimágenes pueden estar presentes para la misma funcionalidad. Esa funcionalidad puede proporcionarse para admitir un funcionamiento de CPB basado en subimágenes. Duplicar estos parámetros para la misma funcionalidad puede ser ineficiente. Puede ser posible que solo un conjunto de parámetros de CPB a nivel de subimagen, en cualquiera de los tipos de mensajes SEI, sea suficiente. En el presente documento se describen técnicas que configuran un codificador de vídeo para proporcionar un indicador de nivel de secuencia que puede señalizarse para indicar la presencia de parámetros de CPB de subimágenes en solo uno de los mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes, pero no en ambas opciones. Usando este indicador de nivel de secuencia, un descodificador de vídeo determina si encontrar parámetros de CPB de subimagen, tales como los parámetros de retardo de extracción de CPB a nivel de subimagen, en un mensaje SEI de temporización de imágenes o en un mensaje SEI de temporización de subimágenes.
Otro problema asociado a los procedimientos existentes para la señalización y la obtención de los tiempos de extracción de CPB es que la definición de unidades de descodificación no consideró unidades NAL no v Cl con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47, o en el intervalo de UNSPEC48 a UNSPEC63. Por lo tanto, cuando algunas de estas unidades NAL no VCL están presentes, puede producirse un comportamiento inesperado de CPB a nivel de subimagen. Por el contrario, esta divulgación proporciona técnicas para ampliar una definición de una unidad de descodificación para incluir unidades NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47, o en el intervalo de UNSPEC48 a UNSPEC63.
Otro posible problema asociado a los procedimientos existentes para la señalización y la obtención de tiempos de extracción de CPB es que el mensaje SEI de período de almacenamiento en memoria intermedia y el mensaje SEI de punto de recuperación pueden estar asociados a las AU con cualquier valor de un valor de identificación temporal (TemporalId). Por lo tanto, el codificador puede inicializar el HRD en una AU con TemporalId mayor que 0. En este caso, cuando se admite escalabilidad temporal, el tiempo de extracción de CPB de una AU con un valor de TemporalId más pequeño, en el mismo período de almacenamiento en memoria intermedia, puede depender de la información en la AU con un valor de TemporalId más grande. Sin embargo, para que la escalabilidad temporal funcione, el proceso de descodificación de cualquier AU puede no depender de otra AU con un TemporalId mayor. Esta divulgación proporciona además técnicas para restringir los mensajes SEI de período de almacenamiento en memoria intermedia y los mensajes SEI de punto de recuperación, de modo que no puedan asociarse a AU con TemporalId mayor que 0.
El valor de identificación temporal (TemporalId) puede ser un valor jerárquico que indica qué imágenes se pueden usar para la codificación de la imagen actual. En general, una imagen con un valor de TemporalId particular puede ser posiblemente una imagen de referencia para imágenes con valores de TemporalId iguales o mayores, pero no al revés.
Por ejemplo, una imagen con un valor de TemporalId de 1 puede ser posiblemente una imagen de referencia para imágenes con valores de TemporalId de 1, 2, 3,..., pero no para una imagen con un valor de TemporalId de 0.
El valor más bajo de TemporalId también puede indicar la velocidad de visualización más baja. Por ejemplo, si un descodificador de vídeo solo descodifica imágenes con valores de TemporalId de 0, la velocidad de visualización puede ser de 7,5 imágenes por segundo. Si el descodificador de vídeo solo descodifica imágenes con valores de T emporalId de 0 y 1, la velocidad de visualización puede ser de 15 imágenes por segundo, y así sucesivamente.
Otro posible problema asociado a los procedimientos existentes para señalizar y obtener tiempos de extracción de CPB está en el proceso de obtención de tiempos de extracción de CPB; cuando sub_pic_cpb_params_present_flag es igual a 1, la obtención de tiempos de extracción de CPB usa los tiempos de llegada finales y los tiempos de extracción nominales para ambos casos con SubPicCpbFlag igual a 0 (cuando la CPB funciona a nivel de AU) y con SubPicCpbFlag igual a 1 (cuando la CPB funciona al nivel de subimagen). Sin embargo, los valores usados para los tiempos de llegada finales y los tiempos de extracción nominales solo se pueden obtener para uno de los dos casos (por ejemplo, ya sea para SubPicCPBFlag igual a 0 o para SubPicCPBFlag igual a 1), y, por lo tanto, no están disponibles para el otro caso. Las técnicas descritas en el presente documento proporcionan un indicador para señalizar si el descodificador debe obtener tiempos de extracción de CPB a nivel de AU o a nivel de subimagen. Por ejemplo, el descodificador obtiene los tiempos de llegada a CPB y los tiempos de extracción nominales tanto a nivel de AU como a el nivel de subimagen, independientemente del valor de SubPicCpbFlag, mientras que el descodificador obtiene los tiempos de extracción de CPB solo a nivel de AU cuando SubPicCpbFlag es igual a 0 y solo a nivel de subimagen cuando SubPicCpbFlag es igual a 1, de acuerdo con las técnicas descritas en el presente documento. Como se describe en el presente documento, un tiempo de extracción nominal de CPB puede ser un valor predeterminado para el tiempo de extracción de CPB. En algunos ejemplos con condiciones típicas, el tiempo de extracción de CPB es igual al tiempo de extracción nominal de CPB. Sin embargo, bajo determinadas condiciones, son diferentes y el tiempo de extracción de CPB puede ser ligeramente diferente del valor predeterminado.
Las técnicas siguientes, descritas en esta divulgación, pueden abordar las cuestiones descritas anteriormente. Por ejemplo, las técnicas descritas en esta divulgación pueden proporcionar una mejor determinación a prueba de errores del tiempo de extracción de memoria intermedia de imágenes codificadas. Adicionalmente, además de mejorar la resistencia a los errores, las técnicas pueden ofrecer una eficacia de señalización que reduce el ancho de banda y la sobrecarga de señalización y que aumenta la eficacia de codificación. Además, las técnicas descritas en esta divulgación pueden permitir una escalabilidad temporal adecuada.
Dichas técnicas pueden incluir, por ejemplo, determinar un tiempo de extracción de memoria intermedia de imágenes codificadas para una unidad de descodificación (DU) de una unidad de acceso (AU) que es independiente de los tiempos de extracción de cualquier otra unidad de acceso. Por ejemplo, los tiempos de extracción de CPB para una DU de una AU se señalizarán en base a la duración entre una DU actual y el tiempo de extracción de CPB de una DU siguiente en un orden de descodificación en la AU o un tiempo de extracción de CPB de la última DU en la AU. Las técnicas también pueden incluir la señalización de un indicador de nivel de secuencia para controlar la presencia de parámetros de CPB de subimágenes en solo uno de los mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes de acuerdo con las técnicas descritas en el presente documento. Las técnicas también pueden incluir la ampliación de una definición de una unidad de descodificación. Técnicas adicionales restringen que mensajes SEI de período de almacenamiento en memoria intermedia y mensajes SEI de punto de recuperación puedan asociarse a A u con una variable, TemporalId, mayor que 0. Las técnicas también pueden incluir proporcionar un indicador para señalizar si se deben obtener tiempos de extracción de CPB a nivel de AU o a nivel de subimagen.
Los detalles para la implementación de estas técnicas se describen con más detalle a continuación. Otras partes no mencionadas pueden ser las mismas que en el WD8 de HEVC.
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo 10 de ejemplo que puede utilizar las técnicas descritas en esta divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera datos de vídeo codificados que un dispositivo de destino 14 va a descodificar en un tiempo posterior. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de entre una amplia gama de dispositivos, incluidos ordenadores de escritorio, ordenadores tipo notebook (por ejemplo, portátiles), tabletas electrónicas, descodificadores, equipos telefónicos de mano 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 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captura de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contenga un vídeo capturado previamente, una interfaz de alimentación de vídeo para recibir un vídeo desde un proveedor de contenido de vídeo
y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen, o una combinación de dichas fuentes. Como ejemplo, si la fuente de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, las técnicas descritas en esta divulgación pueden aplicarse a la codificación de vídeo en general y pueden aplicarse a aplicaciones inalámbricas y/o alámbricas.
El codificador de vídeo 20 puede codificar el vídeo captado, precaptado o generado por ordenador. Los datos de vídeo codificados se pueden transmitir directamente al dispositivo de destino 14 por medio de la interfaz de salida 22 del dispositivo de origen 12. Los datos de vídeo codificados se pueden almacenar también (o de forma alternativa) en un dispositivo de almacenamiento 32 para un acceso posterior por parte del dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificados a través de un enlace 16. Los datos de vídeo codificados comunicados a través del enlace 16, o proporcionados en el dispositivo de almacenamiento 32, pueden incluir una variedad de elementos de sintaxis generados por el codificador de vídeo 20 para su uso por un descodificador de vídeo, tal como el descodificador de vídeo 30, en la descodificación de los datos de vídeo. Dichos elementos de sintaxis se pueden incluir con los datos de vídeo codificados transmitidos en un medio de comunicación, almacenar en un medio de almacenamiento o almacenar en un servidor de archivos.
El dispositivo de visualización 32 puede estar integrado en, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también estar configurado para interconectarse con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 32 muestra los datos de vídeo descodificados a un usuario y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de matriz de puntos, una pantalla de diodos orgánicos emisores de luz (OLED), tinta electrónica u otro tipo de dispositivo de visualización.
El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se van a descodificar por medio del enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo que pueda transferir los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para permitir que el dispositivo de origen 12 transmita datos de vídeo codificados directamente a un dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se pueden modular de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrico o alámbrico, tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global, tal como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
De forma alternativa, los datos codificados se pueden proporcionar desde la interfaz de salida 22 a un dispositivo de almacenamiento 32. De forma similar, una interfaz de entrada puede acceder a los datos codificados del dispositivo de almacenamiento 32. El dispositivo de almacenamiento 32 puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso local o distribuido, tales como una unidad de disco duro, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento 32 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que puede contener el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados en el dispositivo de almacenamiento 32 a través de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. 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 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluida 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 opciones que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento 32 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
Las técnicas de esta divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo, por ejemplo, por medio de Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado
en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede estar configurado para admitir una transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una norma de compresión de vídeo, tal como la norma de Codificación de Vídeo de Alta Eficacia (HEVC), actualmente en fase de desarrollo por parte del Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC. El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con el WD8 de HEVC. De forma alternativa, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con otras normas patentadas o de la industria, tales como 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), incluyendo sus ampliaciones de codificación de vídeo escalable (SVC) y de codificación de vídeo de múltiples vistas (MVC), o ampliaciones de dichas normas. Sin embargo, las técnicas de esta divulgación no se limitan a ninguna norma de codificación particular.
En algunos ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 puede estar integrados con un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si procede, en algunos ejemplos, las unidades MUX-DEMUX se pueden ajustar al protocolo de multiplexación iTu H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden implementar como cualquiera de una variedad de circuitos de codificador adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio legible por ordenador y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
El JCT-VC está trabajando en la elaboración de la norma HEVC. Los trabajos de normalización de HEVC se basan en un modelo en evolución de un dispositivo de codificación de vídeo denominado modelo de prueba de HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo en relación con los dispositivos existentes de acuerdo con, por ejemplo, ITU-T H.264/AVC. Por ejemplo, mientras que H.264 proporciona nueve modos de codificación por intrapredicción, el HM puede proporcionar hasta treinta y tres modos de codificación por intrapredicción.
En general, el modelo de trabajo del HM describe que una trama o imagen de vídeo se puede dividir en una secuencia de bloques de árbol o unidades de codificación más grandes (LCU), que incluyen tanto muestras de luma como de croma. Un bloque de árbol tiene un propósito similar al de un macrobloque de la norma H.264. Un fragmento incluye un número de bloques de árbol consecutivos en orden de codificación. Una trama o imagen de vídeo se puede dividir en uno o más fragmentos. Cada bloque de árbol se puede dividir en unidades de codificación (CU) de acuerdo con un árbol cuaternario. Por ejemplo, un bloque de árbol, como un nodo raíz del árbol cuaternario, se puede dividir en cuatro nodos hijo, y cada nodo hijo puede ser, a su vez, un nodo padre y dividirse en otros cuatro nodos hijo. Un nodo hijo final, no dividido, como un nodo hoja del árbol cuaternario, comprende un nodo de codificación, es decir, un bloque de vídeo codificado. Los datos de sintaxis asociados a un flujo de bits codificado pueden definir un número máximo de veces que se puede dividir un bloque de árbol, y también pueden definir un tamaño mínimo de los nodos de codificación.
Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas al nodo de codificación. Un tamaño de la CU corresponde, en general, a un tamaño del nodo de codificación y es típicamente de forma cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque de árbol, con un máximo de 64x64 píxeles o más. Cada CU puede contener una o más PU y una o más TU. 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 entre si la CU está codificada en modo directo o de salto, 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 un árbol cuaternario. Una TU puede tener una conformación cuadrada o no cuadrada.
La norma HEVC permite transformaciones de acuerdo con las TU, que pueden ser diferentes para CU diferentes. El tamaño de las TU se basa típicamente en el tamaño de las PU dentro de una CU dada definida para una LCU dividida, aunque puede que este no sea siempre el caso. Las TU son típicamente del mismo tamaño o más pequeñas 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 se pueden denominar unidades de transformada (TU). Los valores de diferencias de píxeles asociados a las TU se pueden transformar para producir coeficientes de transformada, que se pueden cuantificar.
En general, una PU incluye datos relacionados con el proceso de predicción. Por ejemplo, cuando la PU se codifica en intramodo, la PU puede incluir datos que describen un modo de intrapredicción para la PU. Como otro ejemplo, cuando la PU se codifica en intermodo, 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, una componente horizontal del vector de movimiento, una 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.
En general, una TU se usa para los procesos de transformada y cuantificación. Una CU dada que tiene una o más PU también puede incluir una o más unidades de transformada (TU). Después de la predicción, el codificador de vídeo 20 puede calcular unos valores residuales a partir del bloque de vídeo identificado por el nodo de codificación de acuerdo con la PU. El nodo de codificación se actualiza posteriormente para hacer referencia a los valores residuales, en lugar del bloque de vídeo original. Los valores residuales comprenden valores de diferencias de píxeles que pueden transformarse en coeficientes de transformada, cuantificarse y explorarse usando las transformadas y otra información de transformada especificada en las TU, para producir coeficientes de transformada serializados para la codificación por entropía. El nodo de codificación puede, una vez más, actualizarse para hacer referencia a estos coeficientes de transformación serializados. Esta divulgación usa típicamente el término "bloque de vídeo" para hacer referencia a un nodo de codificación de una CU. En algunos casos específicos, esta divulgación también puede usar el término "bloque de vídeo" para referirse a un bloque de árbol, es decir, una LCU o una CU, que incluye un nodo de codificación y unas PU y TU.
Una secuencia de vídeo incluye típicamente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende, en general, una serie de una o más de las imágenes de vídeo. Un GOP puede incluir datos de sintaxis en una cabecera del GOP, una cabecera de una o más de las imágenes, u otras ubicaciones, que describen un número de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos de sintaxis de fragmento que describen un modo de codificación para el fragmento respectivo. El codificador de vídeo 20 funciona típicamente en bloques de vídeo dentro de fragmentos de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
En un ejemplo, el HM admite predicción en diversos tamaños de PU. Suponiendo que el tamaño de una CU particular es 2Nx2N, el HM admite intrapredicción en tamaños de PU de 2Nx2N o NxN, e interpredicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM también admite la división asimétrica para la interpredicción en tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la división asimétrica, una dirección de una CU no está dividida, mientras que la otra dirección está dividida en un 25 % y un 75 %. La parte de la CU correspondiente a la división en un 25 % se indica mediante una "n" seguida de una indicación de "arriba" (Up), "abajo" (Down), "izquierda" (Left) o "derecha" (Right). Por tanto, por ejemplo, "2NxnU" se refiere a una CU de 2Nx2N que está dividida horizontalmente, con una p U de 2Nx0,5N encima y una PU de 2Nx1,5N debajo.
En esta divulgación, "NxN" y "N por N" se pueden usar de manera intercambiable para hacer referencia a las dimensiones de píxel de un bloque de vídeo en lo que respecta a dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Asimismo, un bloque de NxN tiene, en general, N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles de un bloque se pueden disponer en filas y columnas. Además, no es necesario que los bloques tengan necesariamente el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
Tras la codificación intrapredictiva o interpredictiva, usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales a los que se aplican las transformadas especificadas por las TU de la CU. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y valores de predicción correspondientes a las CU. El codificador de vídeo 20 puede formar los datos residuales para la CU y, a continuación, transformar los datos residuales para producir coeficientes de transformada.
Después de cualquier transformada para producir coeficientes de transformada, el codificador de vídeo 20 puede realizar la cuantificación de los coeficientes de transformada. La cuantificación se refiere, en general, a un proceso en el que coeficientes de transformada se cuantifican para reducir, posiblemente, la cantidad de datos usados para representar los coeficientes, proporcionando una compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos, o la totalidad, de los coeficientes. Por ejemplo, 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.
En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados para producir un vector señalizado que se puede codificar por entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar una exploración adaptativa. Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede realizar la codificación por entropía del vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), la codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), la codificación por entropía mediante división en intervalos de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador de vídeo 20 también puede codificar por entropía elementos de sintaxis asociados a los datos de vídeo codificados para su uso por el descodificador de vídeo 30 en la descodificación de los datos de vídeo.
Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto, dentro de un modelo de contexto, a un símbolo que se va a transmitir. El contexto se puede referir, por ejemplo, a si los valores vecinos del símbolo son distintos de cero o no. Para realizar la CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo que se va a transmitir. Las palabras de código en la VLC se pueden construir de modo que los códigos relativamente más cortos correspondan a símbolos más probables, mientras que los códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de la VLC puede conseguir un ahorro en bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se va a transmitir. La determinación de la probabilidad se puede basar en un contexto asignado al símbolo.
En algunos ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden configurarse para implementar una o más de las técnicas de ejemplo descritas en esta divulgación. El codificador de vídeo 20 puede codificar datos de vídeo en forma de una unidad de acceso que se divide en una o más unidades de descodificación. Estas unidades de acceso pueden almacenarse temporalmente en una memoria intermedia de imágenes codificadas. El descodificador de vídeo 30 puede extraer las DU para su descodificación en un orden de descodificación en base a la información de temporización incluida en los elementos de sintaxis para la AU o DU respectiva.
De acuerdo con las técnicas descritas en esta divulgación, el término "unidad de descodificación" se puede definir como sigue. Unidad de descodificación es una unidad de acceso o un subconjunto de una unidad de acceso. Si el elemento de sintaxis SubPicCpbFlag es igual a 0, una unidad de descodificación es una unidad de acceso. De lo contrario, una DU incluye una o más unidades NAL VCL en una AU y las unidades NAL no VCL asociadas. Si una unidad NAL no VCL tiene nal_unit_type igual a UNSPECO, EOS_Nu T, EOB_NUT, FD_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47, o en el intervalo de UNSPEC48 a UNSPEC63, la unidad NAL no VCL está asociada a la unidad NAL VCL anterior más reciente en orden de descodificación; de lo contrario, la unidad NAL no VCL está asociada a la primera unidad NAL VCL posterior en orden de descodificación. Para considerar correctamente las unidades NAL no VLC de acuerdo con las técnicas descritas en el presente documento, se puede definir la DU para considerar las unidades NAL no VCL con nal_unit_type igual a Un Sp ECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
De acuerdo con las técnicas descritas en esta divulgación, el término "punto de operación" se puede definir como sigue. Un punto de operación se identifica mediante un conjunto de valores nuh_reserved_zero_6bits (denotado como OpLayerIdSet) y un valor de TemporalId (denotado como OpTid) y el subconjunto de flujo de bits asociado obtenido como la salida del proceso de extracción de subflujo de bits como se especifica en la subcláusula 10.1 del WD8 de HEVC. Los elementos de sintaxis OpTid y OpLayerIdSet pueden funcionar como entradas y descodificarse de forma independiente.
Algunos ejemplos de flujos de bits generados de acuerdo con las técnicas descritas en el presente documento pueden tener un nivel de conformidad de flujo de bits. La subcláusula 10.1 del WD8 de HEVC describe que puede ser un requisito de conformidad con el flujo de bits que cualquier subflujo de bits incluido en la salida del proceso especificado en la subcláusula 10.1 con tIdTarget igual a cualquier valor en el intervalo de 0 a 6, ambos inclusive, y con targetDecLayerIdSet que contiene el valor 0 pueda ajustarse a HEVC.
En algunos ejemplos, un flujo de bits en conformidad puede contener una o más unidades NAL de fragmentos codificados con nuh_reserved_zero_6bits igual a 0 y TemporalId igual a 0.
Las entradas al proceso descrito en el presente documento pueden ser una variable tIdTarget y una lista targetDecLayerIdSet. Las salidas incluyen un subflujo de bits. El subflujo de bits se puede obtener eliminando del flujo de bits todas las unidades NAL con TemporalId mayor que tIdTarget o nuh_reserved_zero_6bits distinto de los valores en targetDecLayerIdSet.
Cada unidad NAL puede estar asociada a información de cabecera. En cuanto a la semántica de la cabecera de las unidades NAL, se puede especificar lo siguiente. Durante la descodificación, el descodificador 30 puede ignorar (por ejemplo, eliminar del flujo de bits y descartar) el contenido de todas las unidades NAL que utilizan valores reservados de nal_unit_type. En las operaciones de HRD especificadas en el Anexo C del WD8 de HEVC, dependiendo del punto de operación seleccionado bajo prueba, las unidades NAL con valores reservados de nal_unit_type pueden
considerarse en la obtención de los tiempos de llegada y extracción de CPB, pero durante la descodificación pueden ignorarse con seguridad (eliminarse y descartarse).
Durante la descodificación, los descodificadores pueden ignorar (por ejemplo, eliminar del flujo de bits y descartar) todas las unidades NAL con valores de nuh_reserved_zero_6bits que no sean iguales a 0. En las operaciones de HRD especificadas en el Anexo C del WD8 de HEVC, dependiendo del punto de operación seleccionado bajo prueba, las unidades NAL con valores reservados de nuh_reserved_zero_6bits pueden considerarse como una obtención de temporización de llegada y extracción de CPB, pero durante la descodificación pueden ignorarse de forma segura (eliminarse y descartarse).
Los tiempos de llegada y extracción de memoria intermedia de imágenes codificadas pueden basarse en dos niveles: un nivel de unidad de acceso y un nivel de subimagen. Un codificador de vídeo (por ejemplo, el codificador de vídeo 20 o el descodificador de vídeo 30) puede configurarse para obtener un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB tanto a nivel de unidad de acceso como a nivel de subimagen, independientemente de un valor de un elemento de sintaxis que define si una DU es una AU (por ejemplo, si la AU incluye solo una DU). El elemento de sintaxis puede ser SubPicCpbFlag, que se señalizaría para cada AU. Como se analizó anteriormente, cuando SubPicCpbFlag es igual a 0, una DU constituye la AU completa. De lo contrario, cuando SubPicCpbFlag es igual a un valor distinto de cero, una DU incluye una o más unidades NAL VCL en una AU y las unidades NAL no VCL asociadas. En algunos ejemplos, el codificador de vídeo puede configurarse para obtener también tiempos de extracción de CPB a nivel de AU cuando el elemento de sintaxis indica que la DU es una AU. En algunos de estos ejemplos, el codificador de vídeo puede estar configurado para obtener los tiempos de extracción de CPB solo a nivel de AU cuando el elemento de sintaxis indica que la DU es una AU.
En algunos ejemplos, el codificador de vídeo (por ejemplo, el codificador de vídeo 20 o el descodificador de vídeo 30) puede configurarse para obtener también los tiempos de extracción de CPB a nivel de subimagen cuando el elemento de sintaxis indica que la DU no es una AU. En algunos de estos ejemplos, el codificador de vídeo puede configurarse para obtener los tiempos de extracción de CPB solo a nivel de subimagen cuando el elemento de sintaxis indica que la DU no es una AU.
El codificador de vídeo puede estar configurado para obtener el tiempo de llegada a CPB y el tiempo de extracción nominal de CPB cuando un segundo elemento de sintaxis especifica que hay parámetros de retardo de extracción de CPB a nivel de subimagen y que la CPB puede funcionar a nivel de Au o nivel de subimagen. El segundo elemento de sintaxis puede ser un sub_pic_cpb_params_present_flag. Cuando sub_pic_cpb_params_present_flag es igual a 1, los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes y la CPB puede funcionar a nivel de unidad de acceso o a nivel de subimagen, y cuando sub_pic_cpb_params_present_flag es igual a 0 los parámetros de retardo de extracción de CPB a nivel de subimagen no están presentes y la CPB funciona a nivel de unidad de acceso.
En algunos de los ejemplos donde sub_pic_cpb_params_present_flag es igual a 1, el codificador de vídeo puede estar configurado para establecer la variable subPicParamsPresentFlag igual a 0 y obtener los tiempos de llegada inicial y final de una AU. A continuación, el codificador de vídeo puede estar configurado para establecer la variable subPicParamsPresentFlag igual a 1 y obtener los tiempos de llegada inicial y final de DU para las DU dentro de la AU.
Además, en algunos ejemplos, un codificador de vídeo (por ejemplo, codificador de vídeo 20 o descodificador de vídeo 30) puede estar configurado para codificar (por ejemplo, codificar o descodificar) una duración de tiempo entre la extracción de CPB de una primera unidad de descodificación en una unidad de acceso y una segunda DU en la unidad de acceso. En este ejemplo, la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la DU. El codificador de vídeo puede estar configurado para determinar un tiempo de extracción de la primera DU basándose al menos en la duración codificada. En algunas técnicas, el codificador de vídeo puede determinar el tiempo de extracción de la primera DU sin codificar el retardo y el desfase de extracción de CPB inicial. En algunos ejemplos, la segunda DU es inmediatamente posterior a la primera DU en la unidad de acceso. En algunos ejemplos, la segunda DU es la última DU en la unidad de acceso en orden de descodificación.
El codificador de vídeo (por ejemplo, el codificador de vídeo 20 o el descodificador de vídeo 30) también puede estar configurado para codificar parámetros de CPB a nivel de subimagen. En estos ejemplos, el codificador de vídeo puede determinar el tiempo de extracción de la primera DU basándose en al menos uno de la duración codificada y los parámetros de CPB a nivel de subimagen. Por ejemplo, los parámetros de CPB a nivel de subimagen pueden ser un mensaje SEI de temporización de subimágenes que está asociado a la primera DU. En algunos ejemplos, el codificador de vídeo puede codificar la duración entre el tiempo de extracción de la última DU en la AU en el orden de descodificación y la primera DU en el mensaje SEI de subimágenes. En algunos ejemplos, el codificador de vídeo puede codificar un indicador de nivel de secuencia para indicar la presencia de los parámetros de CPB a nivel de subimagen ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes.
Por ejemplo, el codificador de vídeo 20 puede estar configurado para codificar una duración de tiempo entre la extracción de CPB de una primera DU en una AU y una segunda DU en la AU. El codificador de vídeo 20 puede
codificar parámetros de CPB a nivel de subimagen, tales como parámetros de retardo de extracción de CPB a nivel de subimagen, en uno de un mensaje SEI de temporización de imágenes o un mensaje SEI de temporización de subimágenes. El codificador de vídeo 20 puede codificar un indicador, sub_pic_cpb_params_in_pic_timing_sei_flag, para indicar si los parámetros de CPB a nivel de subimagen están presentes en el mensaje SEI de temporización de imágenes o un mensaje SEI de temporización de subimágenes.
Por ejemplo, el descodificador de vídeo 30 puede descodificar una duración de tiempo entre la extracción de CPB de una primera DU en una AU y una segunda DU en la AU. El descodificador de vídeo 30 puede estar configurado para determinar un tiempo de extracción de la primera DU basándose al menos en la duración descodificada. En algunas técnicas, el codificador de vídeo puede determinar el tiempo de extracción de la primera DU sin descodificar el retardo y el desfase de extracción de CPB inicial. El descodificador de vídeo 30 puede descodificar los parámetros de CPB a nivel de subimagen de un mensaje SEI de temporización de imágenes o un mensaje SEI de temporización de subimágenes recibido desde el codificador de vídeo 20. El descodificador de vídeo 30 puede determinar el mensaje SEI en el que buscar los parámetros de CPB a nivel de subimagen basándose en la presencia del indicador, sub_pic_cpb_params_in_pic_timing_sei_flag.
En algunas de las técnicas de ejemplo descritas en esta divulgación, el valor de identificación temporal (TemporalId) de la segunda DU puede no ser mayor que Temporalld de la primera DU. En algunos ejemplos, Temporalld de la segunda DU puede no ser mayor que cero.
Por ejemplo, las técnicas descritas en esta divulgación pueden proporcionar una mejor determinación a prueba de errores del tiempo de extracción de memoria intermedia de imágenes codificadas. Adicionalmente, además de mejorar la resistencia a los errores, las técnicas pueden ofrecer una eficacia de señalización que reduce el ancho de banda y la sobrecarga de señalización y que aumenta el tiempo de codificación. Además, las técnicas descritas en esta divulgación pueden permitir una mejor escalabilidad temporal.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo 20 de ejemplo que puede implementar las técnicas descritas en esta divulgación. El codificador de vídeo 20 puede realizar la intracodificación y la intercodificación de bloques de vídeo dentro de fragmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial de un vídeo dentro de una trama o imagen de vídeo dada. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal de un vídeo dentro de tramas o imágenes contiguas de una secuencia de vídeo. El intramodo (modo I) se puede referir a cualquiera de varios modos de compresión de base espacial. Los intermodos, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), se pueden referir a cualquiera de varios modos de compresión de base temporal.
En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de división 35, una unidad de procesamiento de predicción 41, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. La unidad de procesamiento de predicción 41 incluye una unidad de estimación de movimiento 42, una unidad de compensación de movimiento 44 y una unidad de procesamiento de intrapredicción 46. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye además una unidad de cuantificación inversa 58, una unidad de procesamiento de transformada inversa 60, un sumador 62, una unidad de filtro 64 y una memoria intermedia de imágenes descodificadas (DPB) 66. La memoria intermedia de imágenes descodificadas 66 también se puede denominar memoria de imágenes referencia. En otros ejemplos, el codificador de vídeo 20 puede incluir más, menos o diferentes componentes funcionales.
Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe datos de vídeo y la unidad de división 35 divide los datos en bloques de vídeo. Esta división de los datos de vídeo también puede incluir la división de los datos de vídeo en fragmentos, mosaicos u otras unidades más grandes, así como la división de bloques de vídeo, por ejemplo, de acuerdo con una estructura de árbol cuaternario de LCU y CU. El codificador de vídeo 20 ilustra, en general, los componentes que codifican los bloques de vídeo dentro de un fragmento de vídeo que se va a codificar. El fragmento se puede dividir en múltiples bloques de vídeo (y, posiblemente, en conjuntos de bloques de vídeo denominados mosaicos).
La unidad de procesamiento de predicción 41 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intracodificación, o uno de una pluralidad de modos de intercodificación, para el bloque de vídeo actual en base a resultados de error (por ejemplo, la velocidad de codificación y el nivel de distorsión). La unidad de procesamiento de predicción 41 puede proporcionar el bloque 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.
La unidad de procesamiento de intrapredicción 46, situada dentro de la unidad de procesamiento de predicción 41, puede realizar la codificación intrapredictiva del bloque de vídeo actual con respecto a uno o más bloques vecinos en la misma trama o fragmento que el bloque actual que se va a codificar, para proporcionar compresión espacial. La unidad de 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.
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 integradas, pero se ilustran por separado con fines conceptuales. La estimación del movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual relativa a un bloque predictivo dentro de una imagen de referencia.
Un bloque predictivo es un bloque que se determina que coincide estrechamente con la PU del bloque de vídeo que se va a codificar en términos de diferencia de píxeles, que se puede determinar mediante una suma de diferencias absolutas (SAD), una suma de diferencias al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxel fraccionario de las imágenes de referencia almacenadas en la memoria intermedia de imágenes descodificadas 66. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxel fraccionario de la imagen de referencia. Por lo tanto, la unidad de 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.
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 entre 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 intermedia de imágenes descodificadas 66. 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.
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 de las listas de imágenes de referencia. El codificador de vídeo 20 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se esté codificando, formando valores de diferencia de píxeles. Los valores de diferencia de píxeles 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 a los bloques de vídeo y al fragmento de vídeo para su uso por el descodificador de vídeo 30 en la descodificación de los bloques de vídeo del fragmento de vídeo.
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 diferentes pasadas de codificación, y la unidad de procesamiento de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo apropiado de intrapredicción a usar a partir de los modos sometidos a prueba. Por ejemplo, la unidad de procesamiento de intrapredicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción sometidos a prueba, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidaddistorsió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.
En cualquier caso, tras seleccionar un modo de intrapredicción para un bloque, la unidad de procesamiento de intrapredicción 46 puede proporcionar a la unidad de codificación por entropía 56 información indicativa del modo de intrapredicción seleccionado para el bloque. La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado de acuerdo con las técnicas de esta divulgación. El codificador de vídeo 20 puede incluir, en el flujo de bits transmitido, datos de configuración que pueden incluir una pluralidad de tablas de índices de modo de intrapredicción y una pluralidad de tablas de índices de modo de intrapredicción modificadas (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para
diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índices de modo de intrapredicción y una tabla de índices de modo de intrapredicción modificada para su uso en cada uno de los contextos.
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 codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo al bloque de vídeo actual. Los datos de vídeo residuales del bloque residual se pueden incluir en una o más 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 frecuencia.
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 más la velocidad de transmisión 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.
Tras la cuantificación, la unidad de codificación por entropía 56 puede realizar la codificación por entropía de los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar una codificación de longitud variable adaptativa al contexto (CAVLC), una codificación aritmética binaria adaptativa al contexto (CABAC), una codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAc ), una codificación por entropía mediante división en intervalos de probabilidad (PIPE) u otra metodología o técnica de codificación por entropía. Después de la codificación por entropía realizada por la unidad de codificación por entropía 56, el flujo de bits codificado se puede transmitir al descodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación por el descodificador de vídeo 30. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los otros elementos de sintaxis para el fragmento de vídeo actual que se esté codificando.
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 de las listas de imágenes de referencia. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles fraccionarios, para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento, producido por la unidad de compensación de movimiento 44, para producir un bloque de referencia para su almacenamiento en la memoria intermedia de imágenes descodificadas 66. 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 posterior.
El descodificador de vídeo 20 también incluye una unidad de filtro 64 que puede filtrar los límites de bloque para eliminar distorsiones de pixelado del vídeo reconstruido. Es decir, la unidad de filtro 64 puede realizar una o más operaciones de eliminación de pixelado para reducir las distorsiones de pixelado en los bloques de codificación asociados a una CU. La unidad de filtro 64 puede ser un filtro de eliminación de pixelado y filtra la salida del sumador 62. También se pueden usar filtros de bucle adicionales (en bucle o tras un bucle), además de la unidad de filtro 64.
La memoria intermedia de imágenes descodificadas 66 puede almacenar los bloques de codificación reconstruidos después de que la unidad de filtro 64 realice las una o más operaciones de eliminación de pixelado en los bloques de codificación reconstruidos. La unidad de procesamiento de predicción 41 puede usar una imagen de referencia que contenga los bloques de codificación reconstruidos para realizar la interpredicción en las PU de otras imágenes. Además, la unidad de procesamiento de intrapredicción 46 puede usar bloques de codificación reconstruidos de la memoria intermedia de imágenes descodificadas 66 para realizar una intrapredicción en otras PU de la misma imagen que la CU.
El codificador de vídeo 20 puede generar elementos de sintaxis relacionados con los tiempos de extracción de CPB de las DU dentro de una AU de acuerdo con las técnicas descritas en el presente documento. Una vez que se generan estos elementos de sintaxis, el codificador de vídeo 20 los codifica en uno o más flujos de bits y proporciona los flujos de bits.
De acuerdo con esta divulgación, la unidad de procesamiento de predicción 41 representa una unidad de ejemplo para realizar las funciones de ejemplo descritas anteriormente. En otros ejemplos, una unidad distinta a la unidad de procesamiento de predicción 41 puede implementar los ejemplos descritos anteriormente. En algunos ejemplos
diferentes, la unidad de procesamiento de predicción 41, junto con una o más unidades diferentes de codificador de vídeo 20, puede implementar los ejemplos descritos anteriormente. En algunos ejemplos diferentes más, un procesador o unidad de codificador de vídeo 20 puede, por sí solo o junto con otras unidades de codificador de vídeo 20, implementar los ejemplos descritos anteriormente.
La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo 30 de ejemplo que puede implementar las técnicas descritas en esta divulgación. En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una 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 transformación inversa 88, un sumador 90 y una memoria intermedia de imágenes descodificadas (DPB) 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. Una memoria intermedia de imágenes codificadas (CPB) 94 se muestra como entrada en el descodificador de vídeo 30. Sin embargo, en algunos ejemplos, la CPB 94 puede ser parte del descodificador de vídeo 30. En algunos ejemplos, el descodificador de vídeo 30 puede realizar una pasada de descodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 de la FIG. 2.
Durante el proceso de descodificación, el descodificador de vídeo 30 recibe desde el codificador de vídeo 20 un flujo de bits de vídeo codificado que representa bloques de vídeo de un fragmento de vídeo codificado y elementos de sintaxis asociados. Los bloques de vídeo del fragmento de vídeo codificado y los elementos de sintaxis asociados del codificador de vídeo 20 pueden extraerse de la memoria intermedia de imágenes codificadas 94. El vídeo codificado de la CPB 94 puede incluir, por ejemplo, unidades de acceso (AU) que comprenden unidades de descodificación (DU). Los elementos de sintaxis pueden incluir variables e indicadores indicativos de los tiempos de extracción de CPB para las unidades de acceso y las unidades de descodificación.
La unidad de descodificación por entropía 80 del descodificador de vídeo 30 descodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de descodificación por entropía 80 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de procesamiento de predicción 81. El descodificador de vídeo 30 puede recibir los elementos de sintaxis a nivel de fragmento de vídeo y/o a nivel de bloque de vídeo.
Cuando el fragmento de vídeo se codifica como un fragmento intracodificado (I), la unidad de procesamiento de intrapredicción 84 de la unidad de procesamiento de predicción 81 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual en base a un modo de intrapredicción señalizado y datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un fragmento intercodificado (es decir, B, 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 generar a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador de vídeo 30 puede construir las listas de tramas de referencia, 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 intermedia de imágenes descodificadas 92.
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 usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra- o interpredicción) usado para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, un fragmento B, un fragmento P o un fragmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del fragmento, un estado de interpredicción para cada bloque de vídeo intercodificado del fragmento y otra información para descodificar los bloques de vídeo del fragmento de vídeo actual.
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 los usados por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles fraccionarios de bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
La unidad de cuantificación inversa 86 cuantifica de forma inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 80. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de vídeo 20 para cada bloque de vídeo del fragmento de vídeo para determinar un grado de cuantificación y, del mismo modo, un grado de cuantificación inversa que se debería aplicar. La unidad de procesamiento de transformada inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una
transformada de enteros inversa o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para generar bloques residuales en el dominio de píxel.
Después de que la unidad de compensación de movimiento 82 genere el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y a otros elementos de sintaxis, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales 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 puede aplicar un filtro de eliminación de pixelado para filtrar los bloques descodificados para eliminar distorsiones de pixelado. También se pueden usar otros filtros de bucle (bien en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones entre píxeles o mejorar de otro modo la calidad de vídeo. Los bloques de vídeo descodificados en una trama o imagen dada son a continuación almacenados en una DPB 92, que almacena imágenes de referencia usadas para la posterior compensación de movimiento. La DPB 92 almacena también vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1.
De acuerdo con esta divulgación, la unidad de procesamiento de predicción 81 representa una unidad de ejemplo para realizar las funciones de ejemplo descritas anteriormente. En otros ejemplos, una unidad distinta a la unidad de procesamiento de predicción 81 puede implementar los ejemplos descritos anteriormente. En algunos ejemplos diferentes, la unidad de procesamiento de predicción 841, junto con una o más unidades diferentes de descodificador de vídeo 30, puede implementar los ejemplos descritos anteriormente. En algunos ejemplos diferentes más, un procesador o unidad de descodificador de vídeo 30 puede, por sí solo o junto con otras unidades de descodificador de vídeo 30, implementar los ejemplos descritos anteriormente.
El descodificador de vídeo 30 puede almacenar datos de vídeo recibidos en forma de flujo de bits, incluidas las AU y las DU, en la memoria intermedia de imágenes codificadas (CPB) 94. El descodificador de vídeo 30 puede extraer las DU y las AU de la CPB 94, en los tiempos de extracción determinados por el descodificador de vídeo de elementos de sintaxis 30, recibidas en el flujo de bits. Los indicadores y las variables presentes en los mensajes SEI pueden informar al descodificador de vídeo 30 cuándo se deben extraer las DU de la CPB 94. En el tiempo de extracción determinado para una DU actual, el descodificador de vídeo 30 extrae la DU actual de la CPB 94 y descodifica la DU. En algunos ejemplos, el descodificador de vídeo 30 también extrae una AU cuando la DU actual es la última DU de la AU.
A continuación se describe el funcionamiento de la CPB 94. Esta descripción puede aplicarse de forma independiente a cada uno de los parámetros de CPB que está presente y a los puntos de conformidad de Tipo I y Tipo II mostrados en la Figura C-1 en el WD8 de HEVC, donde el conjunto de parámetros de CPB se selecciona como se especifica en la subcláusula C.1 del WD8 de HEVC. El funcionamiento de la CPB 94 puede incluir la temporización de la llegada de flujos de bits y la temporización de la extracción de unidades de descodificación, así como la descodificación de unidades de descodificación. Cada aspecto se describe de uno en uno.
En primer lugar se describirá la temporización de la llegada de flujos de bits. En la temporización de la llegada de flujos de bits, antes de la inicialización del HRD, la CPB 94 está vacía. En algunos ejemplos, después de la inicialización, el HRD puede no inicializarse de nuevo mediante los posteriores mensajes SEI de período de almacenamiento en memoria intermedia.
En los ejemplos descritos en esta divulgación, cada unidad de acceso se denomina unidad de acceso "n", donde el número "n" identifica la unidad de acceso particular. La unidad de acceso que se asocia al mensaje SEI de período de almacenamiento en memoria intermedia que inicializa la CPB 94 puede denominarse unidad de acceso 0. El valor de n puede aumentarse en 1 para cada unidad de acceso posterior en el orden de descodificación.
Cada unidad de descodificación se denomina unidad de descodificación "m", donde el número "m" identifica la unidad de descodificación particular. La primera unidad de descodificación en orden de descodificación en la unidad de acceso 0 se denomina unidad de descodificación 0. El valor de m se aumenta en 1 para cada unidad de descodificación posterior en orden de descodificación.
Cuando sub_pic_cpb_params_present_flag es igual a 1, primero se invoca el siguiente proceso, con la variable subPicParamsPresentFlag establecida igual a 0, para la obtención de los tiempos de llegada inicial y final de unidades de acceso (AU) para la unidad de acceso n. A continuación, se invoca el siguiente proceso, con subPicParamsPresentFlag establecido igual a 1, para la obtención de los tiempos de llegada inicial y final de unidades de descodificación para las unidades de descodificación en la unidad de acceso n.
Las variables InitCpbRemovalDelay[ SchedSelIdx ] e InitCpbRemovalDelayOffset[ SchedSelIdx ] se pueden establecer de la siguiente manera: Si una de las tres condiciones siguientes es verdadera, InitCpbRemovalDelay[ SchedSelIdx ] e InitCpbRemovalDelayOffset[ SchedSelIdx ] se establecen en los valores de initial_alt_cpb_removal_delay[ SchedSelIdx ] e initial_alt_cpb_removal_delay_offset[ SchedSelIdx ], correspondientes a NalHrdModeFlag, respectivamente, en el mensaje SEI de período de almacenamiento en memoria intermedia. La primera condición
puede darse cuando la unidad de acceso 0 es una unidad de acceso de enlace roto (BLA) para la cual la imagen codificada tiene nal_unit_type igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_params_present_flag del mensaje SEI de período de almacenamiento en memoria intermedia es igual a 1. La segunda condición puede ser que DefaultInitCpbParamsFlag sea igual a 0. La tercera condición puede ser que subPicParamsPresentFlag sea igual a 1. Cabe señal que, en algunos ejemplos, cuando sub_pic_cpb_params_present_flag es igual a 1, la secuencia de vídeo codificada puede no tener imágenes de acceso aleatorio libre (CRA) o BLA y, por lo tanto, las dos primeras condiciones pueden ser falsas.
De lo contrario, si ninguna de las tres condiciones anteriores es verdadera, InitCpbRemovalDelay[ SchedSelIdx ] e InitCpbRemovalDelayOffset[ SchedSelIdx ] se establecen en los valores de initial_cpb_removal_delay[ SchedSelIdx ] e initial_cpb_removal_delay_offset[ SchedSelIdx ] correspondientes a NalHrdModeFlag, respectivamente, en el mensaje SEI de período de almacenamiento en memoria intermedia asociado seleccionado como se especifica en la subcláusula C.1 del WD8 de HEVC.
En los ejemplos descritos en el presente documento, el tiempo en el que el primer bit de la unidad de descodificación m comienza a entrar en la CPB 94 se denomina tiempo de llegada inicial ta i(m). El tiempo de llegada inicial de la unidad de descodificación m se obtiene como sigue. Si la unidad de descodificación es la unidad descodificación 0 (es decir, m = 0), entonces tai(0) = 0. Es decir, la primera unidad de descodificación llega en el tiempo 0. De lo contrario, para descodificar unidades después de la primera unidad de descodificación (unidad de descodificación m con m> 0), se aplica lo siguiente.
Si cbr_flag[ SchedSelldx ] es igual a 1, el tiempo de llegada inicial para la unidad de descodificación m es igual al tiempo de llegada final (ta i, que se obtiene a continuación) de la unidad de descodificación m-1, la unidad de descodificación anterior. La Ecuación 1 proporciona una relación:
De otro modo (por ejemplo, cbr_flag[ SchedSelldx ] es igual a 0), el tiempo de llegada inicial para la unidad de descodificación m (por ejemplo, para m > 0) se obtiene mediante la Ecuación ("Ecuación") 2:
El tiempo de llegada de unidades de descodificación tai.eariiest se obtiene como sigue. Si la unidad de descodificación m no es la primera unidad de descodificación de un período de almacenamiento en memoria intermedia posterior, taieariiest se obtiene como se muestra en la Ecuación 3:
cai,earliest (m ) (3
= tr,n(w0 ) InitCpbRemovalDelay [SchedSelldx] InitCpbRemovalDelayOffset[Schec
90000
Siendo tr,n (m) el tiempo de extracción nominal de la unidad de descodificación m de la CPB 94.
El tiempo de llegada final para la unidad de descodificación m se obtiene con la Ecuación 4:
b (m) (4)
taf ( m ) = tai (m ) —
BitRate [SchedSelldx]
donde b(m) es el tamaño, en bits, de la unidad de descodificación m. Si se aplica el punto de conformidad de Tipo I, b(m) incluye contar los bits de las unidades NAL VCL y las unidades NAL de datos de relleno. Si se aplica el punto de conformidad de Tipo II, b(m) incluye contar todos los bits del flujo de bits de Tipo II para el punto de conformidad de Tipo II. Los puntos de conformidad de Tipo I y de Tipo II se muestran en la Figura C-1 del Anexo C del WD8 de HEVC.
Los valores de SchedSelIdx, BitRate [SchedSelIdx] y CpbSize[SchedSelIdx] están limitados como sigue. Si el contenido de las estructuras de sintaxis hrd_parameters() seleccionadas para la AU que contienen la unidad de descodificación m y la anterior en el orden de descodificación AU (en el orden de descodificación) difiere, un planificador de entrega (HSS) selecciona un valor SchedSelIdx1 de SchedSelIdx entre los valores de SchedSelIdx proporcionados en la estructura de sintaxis hrd_parameters() seleccionada para la unidad de acceso que contiene la unidad de descodificación m que da como resultado un BitRate[SchedSelIdx1] o CpbSize[SchedSelIdx1] para la unidad de acceso que contiene la unidad de descodificación m. El valor de BitRate[SchedSelIdx1] o CpbSize[SchedSelIdx1] puede diferir del valor de BitRate[SchedSelIdx0] o CpbSize[SchedSelIdx0] para el valor SchedSelIdx0 de SchedSelIdx que se usó para la unidad de acceso anterior. De lo contrario, si el contenido de las
estructuras de sintaxis hrd_parameters() seleccionadas para las dos AU es el mismo, e1HSS seguirá realizando operaciones con los valores anteriores de SchedSelIdx, BitRate[SchedSelIdx] y CpbSize[SchedSelIdx].
Cuando el HSS selecciona valores de BitRate[SchedSelIdx] o CpbSize[SchedSelIdx] que difieren de los de la unidad de acceso anterior, se aplica lo siguiente. La variable BitRate[SchedSelIdx] entra en vigor en el tiempo ta(m). La variable CpbSize[SchedSelIdx] entra en vigor en determinadas condiciones.
Si el nuevo valor de CpbSize[SchedSelIdx] es mayor que el tamaño de CPB anterior, CpbSize[SchedSelIdx] entra en vigor en el tiempo ta(m). De lo contrario, si el nuevo valor de CpbSize[SchedSelIdx] es menor que o igual al tamaño de CPB anterior, el nuevo valor de CpbSize[SchedSelIdx] entra en vigor en el tiempo de extracción de CPB de la última unidad de descodificación de la unidad de acceso que contiene la unidad de descodificación m.
Cuando SubPicCpbFlag es igual a 1, el tiempo de llegada a CPB inicial de la unidad de acceso n, ta(n), se establece en el tiempo de llegada a CPB inicial de la primera unidad de descodificación en la unidad de acceso n. El tiempo de llegada a CPB final de la unidad de acceso n, ta(n), se establece en el tiempo de llegada a CPB final de la última unidad de descodificación en la unidad de acceso n. Cuando SubPicCpbFlag es igual a 0, cada DU es una AU, de tal forma que los tiempos de llegada a CPB inicial y final de la unidad de acceso n son los tiempos de llegada a CPB inicial y final de la unidad de descodificación n.
A continuación, esta divulgación describe el funcionamiento de la CPB 94 con respecto a la temporización de extracción de unidades de descodificación y a la descodificación de unidades de descodificación.
Las variables InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se usan para los tiempos de extracción de DU. Estas dos variables se establecen como sigue. Si alguna de las dos condiciones es verdadera, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se establecen, en un mensaje SEI de período de almacenamiento en memoria intermedia, en los valores de Initial_alt_cpb_removal_delay[SchedSelIdx] e Initial_alt_cpb_removal_delay_offset[SchedSelIdx] correspondientes a NalHrdModeFlag, respectivamente. La primera condición es que la unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene nal_unit_type igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_params_present_flag del mensaje SEI de período de almacenamiento en memoria intermedia es igual a 1. La segunda condición es que DefaultInitCpbParamsFlag sea igual a 0.
Si ninguna de estas dos condiciones es verdadera, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de initial_cpb_removal_delay[SchedSelIdx] e initial_cpb_removal_delay_offset[SchedSelIdx] correspondientes a NalHrdModeFlag, respectivamente, en el mensaje SEI asociado de período de almacenamiento en memoria intermedia seleccionado como se especifica en la subcláusula C.1 del Anexo C del WD8 de HEVC.
La variable CpbRemovalDelay(m), relevante para el tiempo de retardo de extracción de la unidad de descodificación m de la CPB 94, puede obtenerse como sigue cuando sub_pic_cpb_params_present_flag es igual a 1. Si sub_pic_cpb_params_in_pic_timing_sei_flag es igual a 0, CpbRemovalDelay(m) se establece en du_spt_cpb_removal_delay en el mensaje SEI de temporización de subimágenes asociado a la unidad de descodificación m. El mensaje SEI de temporización de subimágenes se puede seleccionar como se especifica en la subcláusula C.1 del Anexo C del WD8 de HEVC.
Si du_common_cpb_removal_delay_flag es igual a 0, la variable CpbRemovalDelay(m) se establece en el valor de du_cpb_removal_delay_minus1[ i ] 1 para la unidad de descodificación m en el mensaje SEI de temporización de imágenes, seleccionado como se especifica en la subcláusula C.1 del Anexo C del WD8 de HEVC, asociado a la unidad de acceso que contiene la unidad de descodificación m. El valor de i es 0 para las primeras num_nalus_in_du_minus1[ 0 ] 1 unidades de descodificación consecutivas en la unidad de acceso que contiene la unidad de descodificación m, 1 para las num_nalus_in_du_minus1[ 1 ] 1 unidades de descodificación posteriores en la misma unidad de acceso, 2 para las num_nalus_in_du_minus1[ 2 ]+ 1 unidades de descodificación posteriores en la misma unidad de acceso, etc.
De lo contrario, si ni sub_pic_cpb_params_present_flag es igual a 1 ni du_common_cpb_removal_delay_flag es igual a 0, CpbRemovalDelay(m) se establece en el valor de du_common_cpb_removal_delay_minus1 1 en el mensaje SEI de temporización de imágenes, seleccionado como se especifica en la subcláusula C.1 del Anexo C del WD8 de HEVC, asociado a la unidad de acceso que contiene la unidad de descodificación m.
El tiempo de extracción nominal de la unidad de acceso n de CPB 94 también se puede determinar como sigue. Si la unidad de acceso n es la unidad de acceso 0 (es decir, la unidad de acceso que inicializa e1HRD), el tiempo de extracción nominal de la unidad de acceso 0, de la CPB 94, tr,n(0), se especifica mediante la Ecuación 5:
De lo contrario, para la unidad de acceso n donde n no es cero o no ha inicializado e1HRD, se aplica lo siguiente. Cuando la unidad de acceso n es la primera unidad de acceso de un período de almacenamiento en memoria intermedia que no inicializa el HRD, el tiempo de extracción nominal de la unidad de acceso n de la CPB 94, tr,n(n), se especifica mediante la Ecuación 6:
trn(n) = fr,n(n6) " ( au_cpd_removal_delay_minusl{n ) 1) (6)
donde tr,n(nb) es el tiempo de extracción nominal de la primera unidad de acceso del período anterior de almacenamiento en memoria intermedia, y au_cpd_removal_delay_minus1(n) es el valor de au_cpd_removal_delay_plus1 en el mensaje SEI de temporización de imágenes, seleccionado como se especifica en el WD8 de HEVC, Anexo C, subcláusula C.1, asociado a la unidad de acceso n. Cuando la unidad de acceso n es la primera unidad de acceso de un período de almacenamiento en memoria intermedia, nb se establece igual a n en el tiempo de extracción nominal tr,n(n) de la unidad de acceso n. Cuando la unidad de acceso n no es la primera unidad de acceso de un período de almacenamiento en memoria intermedia, tr,n(n) viene dado por la Ecuación 6, donde tr,n(n¿) es el tiempo de extracción nominal de la primera unidad de acceso del período actual de almacenamiento en memoria intermedia.
Cuando sub_pic_cpb_params_present_flag es igual a 1, el tiempo de extracción nominal para extraer la unidad de descodificación m de la CPB 94 se especifica como sigue, donde tr,n(n) es el tiempo de extracción nominal de la unidad de acceso n: Si la unidad de descodificación m es la última unidad de descodificación en la unidad de acceso n, el tiempo de extracción nominal de la unidad de descodificación m tr,n(m) se establece en tr,n(n). Es decir, la unidad de acceso y su última unidad de descodificación se extraen de la CPB 94 aproximadamente al mismo tiempo. De lo contrario, (es decir, la unidad de descodificación m no es la última unidad de descodificación en la unidad de acceso n), el tiempo de extracción nominal de la unidad de descodificación m, tr,n(m), se obtiene como se muestra en la Ecuación 7, donde tr,n(n) es el tiempo de extracción nominal de la unidad de acceso n.
if (sub_pic_cpb_params_in_pic_timing_sci_flag)
trn(jn) = tr,n(.m + 1) - fc_su6 ' CpdRemovalDelay(m )
(7)
else
trn (m) = trn(ri) — tc sub ■ CpdRemovalDelay(m )
El tiempo de extracción de la unidad de acceso n de la CPB 94 se especifica como sigue en la Ecuación 8, donde taf(m) y tr,n(m) son el tiempo de llegada final y el tiempo de extracción nominal, respectivamente, de la última unidad de descodificación en la unidad de acceso n.
Cuando SubPicCpbFlag es igual a 1, el tiempo de extracción de la unidad de descodificación m de la CPB 94 se especifica como sigue. Si low_delay_hrd_flag es igual a 0 o tr,n(m) > taf(m), el tiempo de extracción de la unidad de descodificación m se especifica mediante la Ecuación 9:
tr(in) — trrL (tn) (9)
De lo contrario, si la unidad de descodificación m no es la última unidad de descodificación de la unidad de acceso n, el tiempo de extracción de la unidad de descodificación m se especifica mediante la Ecuación 10:
De lo contrario, si la unidad de descodificación m es la última unidad de descodificación de la unidad de acceso n, el tiempo de extracción de la unidad de descodificación m se especifica mediante la Ecuación 11:
tr (i7i) — t r n (n ) ( 11)
En algunos ejemplos, cuando low_delay_hrd_flag es igual a 1 y tr,n(m) < taf(m), el tamaño de la unidad de descodificación m, b(m), es tan grande que impide la extracción en el tiempo de extracción nominal.
En el tiempo de extracción de CPB de la unidad de descodificación m, la unidad de descodificación se descodifica inmediatamente. La imagen n se considera descodificada después de descodificarse la última unidad de descodificación de la imagen.
Las siguientes tablas ilustran la sintaxis y la semántica que se pueden usar para implementar las técnicas de ejemplo descritas en esta divulgación. La Tabla 1 proporciona ejemplos de sintaxis y semántica para un mensaje SEI de período de almacenamiento en memoria intermedia. La Tabla 2 proporciona ejemplos de sintaxis y semántica para un mensaje SEI de temporización de imágenes. La funcionalidad de la CPB 94 se puede determinar mediante la sintaxis y la semántica de los mensajes SEI. Por ejemplo, el descodificador de vídeo 30 extrae las DU de la CPB 94 basándose, al menos en parte, en el período de almacenamiento en memoria intermedia y los mensajes SEI de temporización de imágenes.
Un mensaje de información de mejora suplementaria (SEI) de período de almacenamiento en memoria intermedia proporciona información acerca del retardo de extracción de CPB inicial y el desfase en el retardo de extracción de CPB inicial. La sintaxis de mensajes SEI de período de almacenamiento en memoria intermedia puede ser la misma que la sintaxis de mensajes SEI de período de almacenamiento en memoria intermedia de la solicitud provisional de EE. UU. n.° 61/705.102, presentada el 24 de septiembre de 2012, y la semántica se modifica como sigue. La sintaxis de mensajes SEI de período de almacenamiento en memoria intermedia se proporciona en la Tabla 1, que se muestra a continuación.
T l 1: in xi m n EI rí lm n mi n n m m ri in rm i
(continuación)
Un período de almacenamiento en memoria intermedia se especifica como el conjunto de unidades de acceso entre dos instancias consecutivas del mensaje SEI de período de almacenamiento en memoria intermedia en orden de descodificación.
Lo siguiente se aplica a la sintaxis y a la semántica de los mensajes SEI de período de almacenamiento en memoria intermedia. El flujo de bits (o una parte del mismo) se refiere al subconjunto de flujo de bits (o una parte del mismo) asociado a cualquiera de los puntos de operación a los que se aplica el mensaje SEI de período de almacenamiento en memoria intermedia.
Para un mensaje SEI de período de almacenamiento en memoria intermedia, los elementos de sintaxis initial_cpb_removal_delay_length_minus1 y sub_pic_cpb_params_present_flag, y las variables NalHrdBpPresentFlag, VclHrdBpPresentFlag, CpbSize[ SchedSelIdx ], BitRate[ SchedSelIdx ] y CpbCnt se encuentran en o se obtienen a partir de los elementos de sintaxis encontrados en la estructura de sintaxis hrd_parameters() y la estructura de sintaxis sub_layer_hrd_parameters() que son aplicables a cualquiera de los puntos de operación a los que se aplica el mensaje SEI de período de almacenamiento en memoria intermedia.
Un mensaje SEI de período de almacenamiento en memoria intermedia puede tener dos puntos de operación con diferentes valores de OpTid (tIdA y tIdB). Tener dos puntos de operación cualesquiera con diferentes valores de OpTid indica que los valores de cpb_cnt_minus1[ tIdA ] y cpb_cnt_minus1[ tIdB ] codificados en la(s) estructura(s) de sintaxis hrd_parameters(), aplicable(s) a los respectivos puntos de operación, son idénticos. Además, el mensaje SEI de período de almacenamiento en memoria intermedia puede tener dos puntos de operación en el mensaje SEI de período de almacenamiento en memoria intermedia que tienen diferentes valores de OpLayerIdSet (layerIdSetA y layerIdSetB). Tener dos puntos de operación cualesquiera con diferentes valores de OpLayerIdSet indica que los valores de nal_hrd_parameters_present_flag y vcl_hrd_parameters_present_flag, para dos estructuras de sintaxis hrd_parameters() aplicables a los dos puntos de operación, respectivamente, son idénticos.
Si NalHrdBpPresentFlag o VclHrdBpPresentFlag son iguales a 1, un mensaje SEI de período de almacenamiento en memoria intermedia aplicable a los puntos de operación especificados puede estar presente en cualquier AU con TemporalId igual a 0 en la secuencia de vídeo codificada, y el mensaje SEI de período de almacenamiento en memoria intermedia aplicable a los puntos de operación especificados puede estar presente en cada AU de punto de acceso aleatorio (RAP) en cada AU asociada a un mensaje SEI de punto de recuperación. De lo contrario (NalHrdBpPresentFlag y VclHrdBpPresentFlag son iguales a 0), ninguna unidad de acceso en la secuencia de vídeo codificada puede tener un mensaje SEI de período de almacenamiento en memoria intermedia aplicable a los puntos de operación especificados.
En algunas aplicaciones, la presencia frecuente de un mensaje SEI de período de almacenamiento en memoria intermedia puede ser deseable.
Cuando hay una unidad NAL SEI que contiene un mensaje SEI de período de almacenamiento en memoria intermedia y tiene nuh_reserved_zero_6bits igual a 0, la unidad NAL SEI debe preceder, en orden de descodificación, a la primera unidad NAL VCL en la AU.
La unidad de acceso asociada a un mensaje SEI de período de almacenamiento en memoria intermedia puede tener Temporalld igual a 0.
La variable CpbCnt se obtiene para que sea igual a cpb_cnt_minus1[ tId ] 1, donde cpb_cnt_minus1[ tId ] se codifica en la estructura de sintaxis hrd_parameters() que es aplicable a cualquiera de los puntos de operación a los que se aplica el mensaje SEI de período de almacenamiento en memoria intermedia y que tienen OpTid igual a tId.
Los siguientes elementos de sintaxis y variables en los mensajes SEI de período de almacenamiento en memoria intermedia se pueden definir como sigue: seq_parameter_set_id se refiere al conjunto activo de parámetros de secuencia. El valor de seq_parameter_set_id puede ser igual al valor de seq_parameter_set_id en el conjunto de parámetros de imagen ("PPS") al que se hace referencia mediante la imagen codificada asociada al mensaje SEI de período de almacenamiento en memoria intermedia. El valor de seq_parameter_set_id puede estar en el intervalo entre 0 y 31, ambos inclusive.
El indicador rap_cpb_params_present_flag igual a 1 especifica la presencia de los elementos de sintaxis initial_alt_cpb_removal_delay[ SchedSelldx ] e initial_alt_cpb_removal_delay_offset[ SchedSelldx ]. Cuando no está presente, se puede deducir que el valor de rap_cpb_params_present_flag es igual a 0. Cuando la imagen asociada no es ni una imagen CRA ni una imagen BLA, el valor de rap_cpb_params_present_flag puede ser igual a 0.
Los elementos de secuencia initial_cpb_removal_delay[ SchedSelIdx ] e initial_alt_cpb_removal_delay[ SchedSelIdx ] especifican los retardos de extracción de CPB iniciales predeterminado y alternativo, respectivamente, para la SchedSelIdx-ésima CPB. Los elementos de sintaxis tienen una longitud en bits dada por initial_cpb_removal_delay_length_minus1 1 y están en unidades de un reloj de 90 kHz, por ejemplo. Los valores de los elementos de sintaxis pueden no ser iguales a 0 y pueden ser menores que o iguales a
CpbSize[SchedSelldx]
valores de elemento de sintaxis < 90000 ( 12) BitRate[SchedSelldx]
que es el equivalente en tiempo del tamaño de CPB en unidades de reloj de 90 kHz.
Los elementos de sintaxis initial_cpb_removal_delay_offset[ SchedSelIdx ] e initial_alt_cpb_removal_delay_offset[ SchedSelIdx ] especifican los desfases de extracción de CPB iniciales predeterminado y alternativo, respectivamente, para la SchedSelIdx-ésima CPB. Los elementos de sintaxis tienen una longitud en bits dada por initial_cpb_removal_delay_length_minus1 1 y están en unidades de un reloj de 90 kHz. Estos elementos de sintaxis pueden no ser usados por los descodificadores y solo pueden ser necesarios para el planificador de entrega (HSS) especificado en el Anexo C del WD8 de HEVC.
A lo largo de toda la secuencia de vídeo codificada, la suma de initial_cpb_removal_delay[ SchedSelIdx ] e initial_cpb_removal_delay_offset[ SchedSelIdx ] puede ser constante para cada valor de SchedSelIdx, y la suma de initial_alt_cpb_removal_delay[ SchedSelIdx ] e initial_alt_cpb_removal_delay_offset[ SchedSelIdx ] puede ser constante para cada valor de SchedSelldx.
El mensaje SEI de temporización de imágenes proporciona información acerca del retardo de extracción de CPB y del retardo de salida de d Pb para la unidad de acceso asociada al mensaje SEI. Un ejemplo de la sintaxis y la semántica de los mensajes SEI de temporización de imágenes se muestra en la Tabla 2.
Tabla 2: Sintaxis semántica de mensaes SEI de tem orización de imá enes
Lo siguiente se aplica a la sintaxis y semántica de los mensajes SEI de temporización de imágenes. Los elementos de sintaxis sub_pic_cpb_params_present_flag, sub_pic_cpb_params_in_pic_timing_sei_flag, cpb_removal_delay_length_minus1, dpb_output_delay_length_minus1 y du_cpb_removal_delay_length_minus1 y la variable CpbDpbDelaysPresentFlag se encuentran en o se obtienen a partir de los elementos de sintaxis que se encuentran en la estructura de sintaxis hrd_parameters() y la estructura de sintaxis sub_layer_hrd_parameters() aplicables a cualquiera de los puntos de operación a los que se aplica el mensaje SEI de temporización de imágenes.
El flujo de bits (o una parte del mismo) se refiere al subconjunto de flujo de bits (o una parte del mismo) asociado a cualquiera de los puntos de operación a los que se aplica el mensaje SEI de temporización de imágenes. Sin embargo,
cabe señalar que la sintaxis del mensaje SEI de temporización de imágenes puede depender del contenido de las estructuras de sintaxis hrd_parameters() aplicables a los puntos de operación a los que se aplica el mensaje SEI de temporización de imágenes. Estas estructuras de sintaxis hrd_parameters() pueden estar en el conjunto de parámetros de vídeo y/o en el conjunto de parámetros de secuencia que están activos para la imagen codificada asociada al mensaje SEI de temporización de imágenes. Cuando el mensaje SEI de temporización de imágenes está asociado a una unidad de acceso CRA que es la primera unidad de acceso en el flujo de bits, a una unidad de acceso IDR o a una unidad de acceso BLA, a menos que esté precedida por un mensaje SEI de período de almacenamiento en memoria intermedia dentro de la misma unidad de acceso, la activación del conjunto de parámetros de vídeo y del conjunto de parámetros de secuencia (y, para imágenes IDR o BLA que no son la primera imagen en el flujo de bits, la determinación de que la imagen codificada es una imagen IDR o una imagen BLA) no se produce hasta la descodificación de la primera unidad NAL de fragmento codificado de la imagen codificada. Dado que la unidad NAL de fragmento codificado de la imagen codificada sigue al mensaje SEI de temporización de imágenes en el orden de unidades NAL, puede haber casos en los que sea necesario que un descodificador almacene una carga útil de secuencia de octetos sin procesar (RBSP) que contiene el mensaje SEI de temporización de imágenes hasta la determinación del conjunto de parámetros de vídeo activo y/o del conjunto de parámetros de secuencia activo, y después realizar el análisis sintáctico del mensaje SEI de temporización de imágenes.
La presencia de un mensaje SEI de temporización de imágenes en el flujo de bits se especifica como sigue. Si CpbDpbDelaysPresentFlag es igual a 1, un mensaje SEI de temporización de imágenes aplicable a los puntos de operación especificados puede estar presente en cada unidad de acceso de la secuencia de vídeo codificada. De lo contrario, por ejemplo, si CpbDpbDelaysPresentFlag es igual a 0, ningún mensaje SEI de temporización de imágenes aplicable a los puntos de operación especificados puede estar presente en ninguna unidad de acceso de la secuencia de vídeo codificada.
Cuando hay una unidad NAL SEI que contiene un mensaje SEI de temporización de imágenes y tiene nuh_reserved_zero_6bits igual a 0, la unidad NAL SEI puede preceder, en orden de descodificación, a la primera unidad NAL VCL en la unidad de acceso.
El elemento de sintaxis au_cpb_removal_delay_minus1 más 1 especifica cuántos pulsos de reloj hay que esperar después de la extracción de la unidad de acceso asociada al mensaje SEI más reciente de período de almacenamiento en memoria intermedia en una unidad de acceso anterior de la CPB, tal como la CPB 94, antes de extraer de la CPB 94 la unidad de acceso asociada al mensaje SEI de temporización de imágenes. Este valor también se puede usar para calcular el tiempo de llegada más temprano posible de datos de unidad de acceso a la CPB para e1HSS. El elemento de sintaxis es un código de longitud fija cuya longitud en bits viene dada por cpb_removal_delay_length_minus1 1.
El valor de cpb_removal_delay_length_minus1 que determina la longitud (en bits) del elemento de sintaxis au_cpb_removal_delay_minus1 es el valor de cpb_removal_delay_length_minus1 codificado en el conjunto de parámetros de vídeo o el conjunto de parámetros de secuencia que está activo para la imagen codificada asociada al mensaje SEI de temporización de imágenes, aunque au_cpb_removal_delay_minus1 más 1 especifica un número de pulsos de reloj relativos al tiempo de extracción de la unidad de acceso anterior que contiene un mensaje SEI de período de almacenamiento en memoria intermedia, que puede ser una unidad de acceso de una secuencia de vídeo codificada diferente.
El elemento de sintaxis pic_dpb_output_delay se usa para calcular el tiempo de salida de DPB de la imagen. pic_dpb_output_delay especifica el número de pulsos de reloj que hay que esperar después de la extracción de la última unidad de descodificación de una unidad de acceso de la c Pb antes de que la imagen descodificada se proporcione desde una DPB. Una imagen puede no extraerse de la DPB en su tiempo de salida cuando la imagen todavía está marcada como "utilizada como referencia a corto plazo" o "utilizada como referencia a largo plazo". En algunos ejemplos, solo se especifica un pic_dpb_output_delay para una imagen descodificada.
La longitud del elemento de sintaxis pic_dpb_output_delay viene dada en bits por dpb_output_delay_length_minus1 1. Cuando sps_max_dec_pic_buffering[ minTid ] es igual a 1, donde minTid es el mínimo de los valores OpTid de todos los puntos de operación a los que se aplica el mensaje SEI de temporización de imágenes, pic_dpb_output_delay será igual a 0. El tiempo de salida obtenido de pic_dpb_output_delay de cualquier imagen proporcionada por un descodificador en conformidad con la temporización de salida puede preceder al tiempo de salida obtenido de pic_dpb_output_delay de todas las imágenes en cualquier secuencia de vídeo codificada posterior en el orden de descodificación. El orden de salida de imágenes establecido por los valores de este elemento de sintaxis será el mismo orden establecido por los valores de PicOrderCntVal (es decir, valores POC que indican el orden de salida o de visualización de las imágenes).
En cuanto a las imágenes que no se transmiten mediante el proceso de "agitación" porque preceden, en orden de descodificación, a una imagen de actualización de descodificación instantánea (IDR) o a una imagen de acceso de enlace roto (BLA) con no_output_of_prior_pics_flag igual a 1 o que se infiere como igual a 1, los tiempos de salida obtenidos de pic_dpb_output_delay pueden estar aumentando con el valor creciente de PicOrderCntVal con respecto a todas las imágenes dentro de la misma secuencia de vídeo codificada.
El elemento de sintaxis num_decoding_units_minus1 más 1 especifica el número de unidades de descodificación en la unidad de acceso asociada al mensaje SEI de temporización de imágenes. El valor de num_decoding_units_minus1 puede estar en el intervalo de 0 a PicSizeInCtbsY-1, ambos inclusive. Cuando el indicador du_common_cpb_removal_delay_flag es igual a 1, especifica que el elemento de sintaxis du_common_cpb_removal_delay_minus1 está presente. Cuando du_common_cpb_removal_delay_flag es igual a 0, especifica que el elemento de sintaxis du_common_cpb_removal_delay_minus1 no está presente.
El elemento de sintaxis du_common_cpb_removal_delay_minus1 más 1 especifica la duración, en unidades de pulsos de reloj de subimágenes (véase la subcláusula E.2.1 del WD8 de HEVC), entre la extracción de una CPB, tal como la CPB 94, de dos unidades de descodificación consecutivas cualesquiera en orden de descodificación en la unidad de acceso asociada al mensaje SEI de temporización de imágenes. Este valor también se usa para calcular el tiempo de llegada más temprano posible de datos de unidad de descodificación a la CPB para e1HSS, como se especifica en el WD8 de HEVC, Anexo C. El elemento de sintaxis es un código de longitud fija cuya longitud en bits viene dada por du_cpb_removal_delay_length_minus1 1.
El elemento de sintaxis num_nalus_in_du_minus1[ i ] más 1 especifica el número de unidades NAL en la i-ésima DU de la AU asociada al mensaje SEI de temporización de imágenes. El valor de num_nalus_in_du_minus1[ i ] estará en el intervalo de 0 a PicSizeInCtbsY-1, ambos inclusive. Por ejemplo, el descodificador de vídeo 30 puede determinar cuántas unidades NAL hay en una DU actual basándose en la descodificación del elemento de sintaxis num_nalus_in_du_minus1[ i ] más 1 del mensaje SEI de temporización de imágenes.
La primera DU de la AU puede incluir las primeras num_nalus_in_du_minus1[0] 1 unidades NAL consecutivas en el orden de descodificación en la AU. La i-ésima (con i mayor que 0) DU de la AU consiste en las num_nalus_in_du_minus1[ i ] 1 unidades NAL consecutivas inmediatamente posteriores a la última unidad NAL en la DU anterior de la AU, en orden de descodificación. Puede haber al menos una unidad NAL VCL en cada DU. Todas las unidades NAL no VCL asociadas a una unidad NAL VCL se incluirán en la misma DU que la unidad NAL VCL. El descodificador de vídeo 30 determina las unidades NAL en una DU basándose en la descodificación de elementos de sintaxis tales como num_nalus_in_du_minus1[ i ].
El elemento de sintaxis du_cpb_removal_delay_minus1[ i ] más 1 especifica la duración, en unidades de pulsos de reloj de subimágenes, entre la extracción de CPB, tal como la CPB 94, de la (i 1)-ésima DU y la i-ésima DU, en orden de descodificación, en la AU asociada al mensaje SEI de temporización de imágenes. Este valor también se puede usar para calcular el tiempo de llegada más temprano posible de datos de DU a la CPB para e1HSS, como se especifica en el WD8 de HEVC, Anexo C. El elemento de sintaxis es un código de longitud fija cuya longitud en bits viene dada por du_cpb_removal_delay_length_minus1 1.
En algunos ejemplos, aunque la longitud del elemento de sintaxis es la misma que du_common_cpb_removal_delay_minus1, el valor puede haberse especificado en relación con el tiempo de extracción de CPB de la A u del inicio del período de almacenamiento en memoria intermedia. Por ejemplo, el descodificador de vídeo 30 puede determinar el valor de un elemento de sintaxis en relación con un tiempo de extracción de CPB descodificado. En algunos ejemplos, puede ser posible que esto sea incoherente con la semántica de du_common_cpb_removaldelay_minus1. Por ejemplo, esto podría entrar en conflicto con la Ecuación 7 (Ecuación C-10 en el WD8 de HEVC, Anexo C), que define que si sub_pic_cpb_params_in_pic_timing_sei_flag está indicado, entonces tr,n(m) = tr,n(m + 1)- tc_sub ' CpdRemovalDelay(m).
En algunos ejemplos, du_cpb_removal_delay_minus1[ i ] más 1 especifica, de forma alternativa, la duración, en unidades de pulsos de reloj de subimágenes, entre la extracción de CPB de la AU asociada al mensaje SEI de temporización de imágenes y la i-ésima DU en la AU asociada al mensaje SEI de temporización de imágenes. En este caso, se puede evitar la señalización del valor de la última DU en la AU. Por lo tanto, el descodificador de vídeo 30 no tiene que determinar un valor de la última DU en la AU a partir del mensaje SEI de temporización de imágenes porque el tiempo de extracción para la última DU es el mismo que el tiempo de extracción para la AU correspondiente.
De forma alternativa, en la semántica de au_cpb_removal_delay_minus1, du_common_cpb_removal_delay_minus1 y du_cpb_removal_delay_minus1[ i ] especifican el retardo/diferencia/duración entre "tiempos de extracción de CPB nominales" en lugar de "tiempos de extracción de CPB".
La Tabla 3 siguiente proporciona un ejemplo de sintaxis de mensaje SEI de temporización de subimágenes. El mensaje SEI de temporización de subimágenes proporciona información de retardo de extracción de CPB para la unidad de descodificación asociada al mensaje SEI. A continuación se muestra un ejemplo de sintaxis y semántica de mensajes SEI de temporización de subimágenes.
T l : in xi m n EI m riz i n im nes
(continuación)
Lo siguiente se aplica a la sintaxis y a la semántica de mensajes SEI de temporización de subimágenes. Los elementos de sintaxis sub_pic_cpb_params_present_flag, sub_pic_cpb_params_in_pic_timing_sei_flag y cpb_removal_delay_length_minus1 y la variable CpbDpbDelaysPresentFlag se encuentran en o se obtienen a partir de elementos de sintaxis encontrados en la estructura de sintaxis hrd_parameters() y la estructura de sintaxis sub_layer_hrd_parameters() aplicable a cualquiera de los puntos de operación a los que se aplica el mensaje SEI de temporización de subimágenes. El flujo de bits (o una parte del mismo) se refiere al subconjunto de flujo de bits (o una parte del mismo) asociado a cualquiera de los puntos de operación a los que se aplica el mensaje SEI de temporización de subimágenes.
La presencia del mensaje SEI de temporización de subimágenes en el flujo de bits se especifica como sigue. Si CpbDpbDelaysPresentFlag es igual a 1, sub_pic_cpb_params_present_flag es igual a 1 y sub_pic_cpb_params_in_pic_timing_sei_flag es igual a 0, un mensaje SEI de temporización de subimágenes aplicable a los puntos de operación especificados puede estar presente en cada unidad de descodificación en la secuencia de vídeo codificada. En caso contrario, en la secuencia de vídeo codificada no habrá mensajes SEI de temporización de subimágenes aplicables a los puntos de operación especificados. Por lo tanto, si el descodificador de vídeo 30 descodifica los indicadores y determina que los valores son los establecidos anteriormente, el descodificador de vídeo 30 determina que no hay mensajes SEI de temporización de subimágenes aplicables a los puntos de operación especificados.
La unidad de descodificación asociada a un mensaje SEI de temporización de subimágenes consiste, en orden de descodificación, en la unidad NAL SEI que contiene el mensaje SEI de temporización de subimágenes, seguida de una o más unidades NAL que no contienen un mensaje SEI de temporización de subimágenes, incluidas todas las unidades NAL subsiguientes en la AU hasta, pero sin incluir, cualquier unidad NAL SEI posterior que contenga un mensaje SEI de temporización de subimágenes. Puede haber al menos una unidad NAL VCL en cada DU. Todas las unidades NAL no v Cl asociadas a una unidad NAL VCL pueden incluirse en la misma DU que la unidad NAL VCL.
En algunos ejemplos, el elemento de sintaxis du_spt_cpb_removal_delay especifica la duración, en unidades de pulsos de reloj de subimágenes (véase la subcláusula E.2.1 del WD8 de HEVC), entre la extracción de CPB de la última unidad de descodificación en el orden de descodificación en la unidad de acceso actual que contiene el mensaje SEI de temporización de subimágenes y la unidad de descodificación asociada al mensaje SEI de temporización de subimágenes. Este valor también se puede usar para calcular el tiempo de llegada más temprano posible de los datos de unidad de descodificación a la c Pb para el HSS, como se especifica en el WD8 de HEVc , Anexo C. El elemento de sintaxis se representa mediante un código de longitud fija cuya longitud en bits viene dada por du_cpb_removal_delay_length_minus1 1. Cuando la DU asociada al mensaje SEI de temporización de subimágenes es la última DU en la Au actual, el valor de du_spt_cpb_removal_delay será igual a 0.
De forma alternativa, en otros ejemplos, el elemento de sintaxis du_spt_cpb_removal_delay especifica la duración, en unidades de pulsos de reloj de subimágenes (véase la subcláusula E.2.1 del WD8 de HEVC), entre la extracción en la CPB 94 de la DU siguiente en el orden de descodificación en la AU actual que contiene el mensaje SEI de temporización de subimágenes y la DU asociada al mensaje SEI de temporización de subimágenes. Este valor también se puede usar para calcular el tiempo de llegada más temprano posible de datos de la unidad de descodificación a la CPB 94 para el HSS, como se especifica en el WD8 de HEVC, Anexo C. El elemento de sintaxis se representa mediante un código de longitud fija cuya longitud en bits viene dada por du_cpb_removal_delay_length_minus1 1. Cuando la unidad de descodificación asociada al mensaje SEI de temporización de subimágenes es la última unidad de descodificación en la unidad de acceso actual, el valor de du_spt_cpb_removal_delay será igual a 0. De forma alternativa, ningún mensaje SEI de temporización de subimágenes se asocia a la última unidad de descodificación en cada unidad de acceso.
En algunos ejemplos, el elemento de sintaxis du_spt_cpb_removal_delay se codifica de forma alternativa como du_spt_cpb_removal_delay_minus1. El elemento de sintaxis du_spt_cpb_removal_delay_minus1 más 1 especifica la cantidad de pulsos de reloj de subimágenes que hay que esperar después de que el descodificador de vídeo 30 extraiga de la CPB 94 la última DU en la AU asociada al mensaje SEI de período de almacenamiento en memoria intermedia más reciente de una AU anterior antes de extraer de la CPB 94 la DU asociada al mensaje SEI de temporización de subimágenes. Este valor también se puede usar para calcular el tiempo de llegada más temprano posible de los datos de unidad de descodificación a la CPB para el HSS, como se especifica en el WD8 de HEVC, Anexo C. El elemento de sintaxis se representa mediante un código de longitud fija cuya longitud en bits viene dada por cpb_removal_delay_length_minus1 1.
La Tabla 4, que se proporciona a continuación, describe un ejemplo de la sintaxis y la semántica de parámetros HRD. En cuanto a los elementos de sintaxis cuya semántica no se incluye a continuación, su semántica es la misma que en la solicitud provisional de EE. UU. n.° 61/705.102, presentada el 24 de septiembre de 2012. La sintaxis y la semántica de los parámetros HRD pueden ser como sigue.
T l 4: in xi m ni r m r HRD
El elemento de sintaxis sub_pic_cpb_params_in_pic_timing_sei_flag igual a 1 especifica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes en los mensajes SEI de temporización de imágenes y que no hay ningún mensaje SEI de temporización de subimágenes. sub_pic_cpb_params_in_pic_timing_sei_flag igual a 0 especifica que parámetros de retardo de extracción de CPB a nivel de subimagen están presentes en los mensajes SEI de temporización de subimágenes y que los mensajes SEI de temporización de imágenes no incluyen parámetros de retardo de extracción de CPB a nivel de subimagen.
El elemento de sintaxis sub_pic_cpb_params_present_flag igual a 1 especifica que hay parámetros de retardo de extracción de CPB a nivel de subimagen y que la CPB puede funcionar a nivel de unidad de acceso o a nivel de subimagen. sub_pic_cpb_params_present_flag igual a 0 especifica que no hay parámetros de retardo de extracción de CPB a nivel de subimagen y que la CPB funciona a nivel de unidad de acceso. Cuando sub_pic_cpb_params_present_flag no está presente, se puede inferir que su valor es igual a 0.
La FIG. 4 es un diagrama conceptual que ilustra dos unidades de acceso 100 y 102 en orden de descodificación consecutivo que pueden tener tiempos de descodificación de acuerdo con las técnicas descritas en esta divulgación. Los tiempos de extracción de memoria intermedia de imágenes codificadas de ejemplo se analizarán en relación con las AU 100 y 102, así como elementos de sintaxis y variables para mensajes SEI asociados a las AU 100 y 102. La FIG. 4 también ilustra una línea de tiempo 130.
Como se describe en el presente documento, la AU 100 es una unidad de acceso n y la AU 102 es una unidad de acceso n 1, donde n es anterior en el tiempo, en orden de descodificación, a n 1. La A u 100 incluye cuatro unidades de descodificación 110-1, 110-2, 110-3 y 110-4 (denominadas conjuntamente "unidades de descodificación 110"). Como se describe en el presente documento, la DU 110-1 puede denominarse DU-M, la DU 110-2 puede denominarse DU-M+1, la DU 110-3 puede denominarse DU-M+2 y la Du 110-4 puede denominarse DU-M+3, por ejemplo. La AU 102 incluye cuatro unidades de descodificación 112-1, 112-2, 112-3 y 112-4 (denominadas conjuntamente "unidades de descodificación 112").
De forma similar, como se describe en el presente documento, la DU 112-1 puede denominarse DU-M, la DU 112-2 puede denominarse DU-M+1, la DU 112-3 puede denominarse DU-M+2 y la DU 112-4 puede denominarse DU-M+3, por ejemplo. Sin embargo, cualquier unidad de acceso puede ser una "unidad de acceso n" y cualquier unidad de descodificación puede ser una "unidad de descodificación m". En otros ejemplos, las AU 100 y 102 pueden tener diferentes números de DU 110 y 112, respectivamente. Cualquier DU 110 o 112 puede ser una unidad de capa de abstracción de red (NAL) que no es de capa de codificación de vídeo (VCL) con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
En este ejemplo, las unidades de acceso 100 y 102 se almacenan en una memoria intermedia de imágenes codificadas, por ejemplo, la CPB 94 de la FIG. 3. El descodificador de vídeo 30 extrae las unidades de descodificación 110 y 112 y las unidades de acceso 100 y 102 de la CPB 94 para su descodificación en tiempos determinados. Los tiempos para extraer una AU o DU de la CPB 94 se denominan tiempos de extracción de CPB. Como se muestra en la FIG. 4, los tiempos de extracción de CPB para las DU 110 en AU 100 son tiempos de extracción de CPB 140-1, 140-2, 140-3 y 140-4 (denominados conjuntamente "tiempos de extracción de CPB 140"). Del mismo modo, los tiempos de extracción de CPB para las DU 112 en la AU 102 son los tiempos de extracción de CPB 142-1, 142-2, 142 3 y 142-4 (denominados conjuntamente "tiempos de extracción de CPB 142"). El tiempo de extracción de CPB de una AU puede ser el mismo que el tiempo de extracción de CPB de la última DU de la AU. Por ejemplo, el tiempo de extracción de CPB de la AU 100 es aproximadamente el mismo que el tiempo de extracción de CPB de la DU 110-4 (el tiempo de extracción de CPB 140-4).
En un ejemplo, para cada DU 112 en la AU 102, se señaliza la duración entre los tiempos de extracción de CPB de la siguiente DU 112 en orden de descodificación en la AU 102 y la DU 112 particular. Por ejemplo, la DU 112-2 es una DU actual, en orden de descodificación, que se extraerá de la CPB 94 y se descodificará mediante el descodificador de vídeo 30. Una duración de tiempo 132 entre el tiempo de extracción de CPB 142-2 para la DU 112-2 y el tiempo de extracción de CPB 142-3 para la DU 112-3, la DU siguiente en orden de descodificación, se señaliza, por ejemplo, en un mensaje SEI asociado a la unidad de acceso 102. El descodificador de vídeo 30 determina el tiempo de extracción de CPB 142-2 para la DU 112-2 basándose en la duración del tiempo señalizada 132. Es decir, el descodificador de vídeo 30 puede obtener el tiempo de extracción de CPB para cada Du 112 en la unidad de acceso 102 basándose en los tiempos de extracción para la DU 112 dentro de la AU 102 y no en los tiempos de extracción para otras DU dentro de otras AU, como la AU 100 anterior, en orden de descodificación. Por lo tanto, el descodificador de vídeo 30 puede haber mejorado la señalización y la resistencia a los errores para los tiempos de extracción de CPB de las DU y AU.
El tiempo de extracción de CPB para la DU 112-2 de la AU 102 se puede señalizar de una manera alternativa. Por ejemplo, en un mensaje SEI asociado a la AU 102, se señaliza una duración de tiempo 134 entre el tiempo de extracción de CPB 142-2 para la DU 112-2 y el tiempo de extracción de CPB 142-4 para la última DU en la AU 102 (la DU 112-4). El descodificador de vídeo 30 determina el tiempo de extracción de CPB 142-2 para la DU 112-2 basándose en el tiempo de extracción de CPB señalizado 142-4 de la DU 112-4.
En cualquiera de los ejemplos anteriores, el descodificador de vídeo 30 determina los tiempos de extracción de CPB para las DU de otras Du dentro de la misma AU. De esta manera, los tiempos de extracción de CPB para cualquier DU no dependen de ninguna otra AU además de la AU de la DU particular. La pérdida de la información de temporización de extracción de CPB en la AU anterior no ocasionaría una obtención incorrecta de los tiempos de extracción de CPB de una AU actual. Por ejemplo, la pérdida de los tiempos de extracción de CPB 140 para la AU 100 no afectaría a la determinación de los tiempos de extracción de CPB 142 para la AU 102. Por lo tanto, el descodificador de vídeo 30 puede haber mejorado la señalización y la resistencia a los errores para determinar los tiempos de extracción de CPB de las DU y las AU.
El descodificador de vídeo 30 también puede determinar los tiempos de extracción de CPB basándose, al menos en parte, en los parámetros de CPB a nivel de subimagen transportados en mensajes SEI de temporización de subimágenes. En un ejemplo de este tipo, la señalización de los tiempos de extracción de CPB y la obtención de los
tiempos de extracción de CPB son tanto eficientes como a prueba de errores. Un indicador de nivel de secuencia puede señalizarse para controlar la presencia de parámetros de CPB a nivel de subimagen ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes, pero nunca en ambos. El indicador de nivel de secuencia puede ser sub_pic_cpb_params_present_flag, descrito anteriormente. El indicador también puede controlar el uso de los parámetros de c Pb a nivel de subimagen a partir de un tipo concreto de mensaje SEI para las operaciones de CPB a nivel de subimagen. Cuando sub_pic_cpb_params_present_flag es igual a 1, se señalizan los tiempos de llegada a CPB y los tiempos de extracción de CPB tanto a nivel de AU como a nivel de subimagen, independientemente del valor de SubPicCpbFlag.
En algunos ejemplos, si una AU, tal como la AU 100, tiene un TemporalId mayor que 0, un mensaje SEI que no es de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación pueden asociarse a la AU 100.
La FIG. 5 es un diagrama de flujo que ilustra un procedimiento para determinar el tiempo de extracción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de descodificación en una unidad de acceso en base al tiempo de extracción de CPB para una segunda unidad de descodificación de la unidad de acceso de acuerdo con las técnicas descritas en esta divulgación. Un descodificador de vídeo puede realizar el procedimiento de la FIG.
5. El descodificador de vídeo puede ser el descodificador de vídeo 30 de la FIG. 1 o la FIG. 3, por ejemplo.
El procedimiento de la FIG. 5 incluye la descodificación de una duración entre la extracción de CPB de una primera DU en una AU y la extracción de CPB de una segunda DU, en el que la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU (200). La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en orden de descodificación. De forma alternativa, la segunda DU puede ser una última DU en la AU en orden de descodificación. Por ejemplo, el descodificador de vídeo 30 puede recibir el flujo de bits desde el codificador de vídeo 20 y almacenar las AU y sus respectivas DU en la CPB 94 para su extracción en los tiempos de extracción determinados. Por ejemplo, el descodificador de vídeo 30 puede descodificar una duración entre la extracción de CPB de una primera DU en una AU de la CPB 94 y la extracción de CPB de una segunda DU de la CPB 94, en el que la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU.
El procedimiento incluye además determinar un tiempo de extracción de la primera DU en base a, al menos en parte, la duración codificada (202). Por ejemplo, el descodificador de vídeo 30 puede determinar un tiempo de extracción de CPB para la primera DU basándose en la duración descodificada entre la extracción de CPB de la primera DU en una AU y la extracción de CPB de la segunda DU. El descodificador de vídeo 30 puede extraer la DU de la CPB 94 aproximadamente en el tiempo de extracción de CPB determinado.
En algunos ejemplos, el procedimiento de la FIG. 5 incluye además la descodificación de parámetros de CPB a nivel de subimagen, en el que determinar el tiempo de extracción de la primera DU comprende determinar el tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada y los parámetros de CPB a nivel de subimagen. La descodificación de parámetros de CPB a nivel de subimagen puede incluir la descodificación de un mensaje de información de mejora suplementaria (SEI) de temporización de subimágenes que está asociado a la primera DU.
En los ejemplos en los que la segunda DU es una última DU en la AU en orden de descodificación, la codificación del mensaje SEI de subimágenes incluye la descodificación de la duración entre el tiempo de extracción de la última DU y el tiempo de extracción de la primera DU en el mensaje SEI de temporización de subimágenes. En algunos ejemplos, un indicador de nivel de secuencia se descodifica para determinar la presencia de los parámetros de CPB a nivel de subimagen ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes. Por ejemplo, en respuesta a la descodificación del indicador de nivel de secuencia y la determinación de que los parámetros de CPB a nivel de subimagen están presentes en un mensaje SEI de temporización de imágenes, el descodificador de vídeo 30 puede descodificar el mensaje SEI de temporización de imágenes para analizar sintácticamente los parámetros de CPB a nivel de subimagen. Del mismo modo, en respuesta a la descodificación del indicador de nivel de secuencia y la determinación de que los parámetros de CPB a nivel de subimagen están presentes en un mensaje SEI de temporización de subimágenes, el descodificador de vídeo 30 puede descodificar el mensaje SEI de temporización de subimágenes para analizar sintácticamente los parámetros de CPB a nivel de subimagen.
En algunos ejemplos, determinar el tiempo de extracción de la primera DU incluye determinar el tiempo de extracción de la primera DU sin descodificar un retardo y un desfase de extracción de CPB iniciales. Cuando la AU tiene un Temporalld menor que o igual a 0, el procedimiento puede incluir además la descodificación de al menos uno de un mensaje SEI de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU.
Las unidades de descodificación descritas en el presente documento pueden ser cualquier unidad de descodificación, así como una unidad de capa de abstracción de red (NCL) que no es de capa de codificación de vídeo (VCL) con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el
intervalo de UNSPEC48 a UNSPEC63. Por lo tanto, el descodificador de vídeo 30 puede descodificar una DU de acuerdo con las técnicas descritas en esta divulgación, incluidas las unidades NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
En otro ejemplo, el procedimiento incluye obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU. Por ejemplo, el descodificador de vídeo 30 obtiene el tiempo de llegada a CPB o el tiempo de extracción nominal de CPB para la AU tanto en los niveles de unidad de acceso como en los niveles de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU.
En algunos ejemplos, el procedimiento incluye obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU. El procedimiento puede incluir obtener tiempos de extracción de CPB a nivel de AU cuando el elemento de sintaxis indica que la primera DU es una AU. Obtener los tiempos de extracción de CPB a nivel de AU puede incluir obtener los tiempos de extracción de CPB solo a nivel de AU cuando el elemento de sintaxis indica que la DU es una AU.
El elemento de sintaxis puede ser SubPicCpbFlag, en el que cuando SubPicCpbFlag es igual a 0, una DU es una AU; de lo contrario, una DU incluye una o más unidades de capa de abstracción de red (NAL) de capa codificación de vídeo (VCL) en una AU y las unidades NAL no VCL asociadas. En algunos ejemplos, el elemento de sintaxis incluye un primer elemento de sintaxis, y en el que obtener el tiempo de llegada a c Pb y el tiempo de extracción nominal de CPB comprende obtener el tiempo de llegada a CPB y el tiempo de extracción nominal de CPB cuando un segundo elemento de sintaxis especifica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes y la CPB puede funcionar a nivel de unidad de acceso o a nivel de subimagen.
El segundo elemento de sintaxis puede ser sub_pic_cpb_params_present_flag, en el que cuando sub_pic_cpb_params_present_flag es igual a 1, los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes y la CPB puede funcionar a nivel de unidad de acceso o a nivel de subimagen, y cuando sub_pic_cpb_params_present_flag es igual a 0, los parámetros de retardo de extracción de CPB a nivel de subimagen no están presentes y la CPB funciona a nivel de unidad de acceso. El segundo elemento de sintaxis especifica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes y que la CPB puede funcionar a nivel de AU o a nivel de subimagen, y el procedimiento puede incluir además determinar que la variable subPicParamsPresentFlag es igual a 0, obtener un tiempo de llegada inicial de AU y un tiempo de llegada final de AU, determinar que la variable subPicParamsPresentFlag es igual a 1, y obtener un tiempo de llegada inicial de DU y un tiempo de llegada final de DU para descodificar unidades dentro de la unidad de acceso.
Los tiempos de extracción de CPB a nivel de subimagen también pueden obtenerse cuando el elemento de sintaxis indica que la DU no es una AU. Obtener los tiempos de extracción de CPB a nivel de subimagen puede incluir obtener los tiempos de extracción de CPB solo a nivel de subimagen cuando el elemento de sintaxis indica que la DU no es una AU. Por ejemplo, el descodificador de vídeo 30 puede obtener los tiempos de extracción de CPB a nivel de subimagen cuando el elemento de sintaxis indica que la DU no es una AU.
La FIG. 6 es un diagrama de flujo que ilustra otro procedimiento para determinar un tiempo de extracción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de descodificación en una unidad de acceso en base al tiempo de extracción de CPB para una segunda unidad de descodificación de la unidad de acceso de acuerdo con las técnicas descritas en esta divulgación. Un codificador de vídeo puede realizar el procedimiento de la FIG. 6.
El codificador de vídeo puede ser el codificador de vídeo 20 de la FIG. 1 o la FIG. 2, por ejemplo.
El procedimiento incluye determinar, para una AU que incluye una primera unidad de descodificación, DU, un tiempo de extracción de CPB de una segunda DU, en el que la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU (210). La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en orden de descodificación. De forma alternativa, la segunda DU puede ser una última DU en la AU en orden de descodificación. En algunos ejemplos, el codificador de vídeo 20 planifica un tiempo de extracción de CPB para la AU. En algunos ejemplos, los tiempos de extracción de CPB están planificados por un dispositivo externo al codificador de vídeo 20 y la planificación se proporciona al codificador de vídeo 20.
El tiempo de extracción de CPB para la AU puede ser el mismo que el tiempo de extracción de CPB para la última DU en la AU. Por lo tanto, el codificador de vídeo 20 puede determinar el tiempo de extracción de CPB de la segunda DU basándose en el tiempo de extracción de CPB planificado de la AU. En algunos ejemplos, determinar el tiempo de extracción de CPB de la segunda DU en base al tiempo de extracción de CPB planificado de la AU incluye determinar cuántas DU están incluidas en la AU y determinar un tiempo planificado para cada CPB. Por ejemplo, el codificador de vídeo 20 puede determinar, para una AU que incluye una primera unidad de descodificación, Du , un tiempo de extracción de CPB de una segunda DU, en el que la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU, de acuerdo con las técnicas descritas en el presente documento.
El procedimiento incluye además determinar una duración entre el tiempo de extracción de CPB de la primera DU y el tiempo de extracción de CPB determinado de la segunda DU (212). Por ejemplo, el codificador de vídeo 20 puede determinar la duración entre el tiempo de extracción de CPB para la primera DU basándose en un tiempo de extracción de CPB planificado de la AU y en el número de DU en la AU. En algunos ejemplos, el codificador de vídeo 20 determina la duración basándose en los tiempos de extracción de CPB planificados para cada DU en la AU.
El procedimiento incluye además codificar la duración determinada (214). El codificador de vídeo 20 puede codificar la duración determinada como un elemento de sintaxis, por ejemplo, en un conjunto de parámetros de CPB a nivel de subimagen. Por ejemplo, el procedimiento puede incluir además codificar parámetros de CPB a nivel de subimagen, en el que la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros de CPB a nivel de subimagen. La codificación de parámetros de CPB a nivel de subimagen puede incluir codificar un mensaje de información de mejora suplementaria (SEI) de temporización de subimágenes que está asociado a la primera DU. En un ejemplo, la codificación de la duración determinada como uno o más parámetros de CPB a nivel de subimagen comprende además codificar la duración determinada en el mensaje SEI de temporización de subimágenes.
En los ejemplos en los que la segunda DU es una última DU en la AU en orden de descodificación, la codificación del mensaje SEI de subimágenes incluye codificar la duración entre el tiempo de extracción de la última DU y el tiempo de extracción de la primera DU en el mensaje SEI de temporización de subimágenes. En algunos ejemplos, un indicador de nivel de secuencia se codifica para indicar la presencia de los parámetros de CPB a nivel de subimagen ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes. En algunos ejemplos, determinar el tiempo de extracción de la primera DU incluye determinar el tiempo de extracción de la primera DU sin codificar un retardo y desfase de extracción de CPB iniciales.
Cuando la AU tiene un Temporalld menor que o igual a 0, el procedimiento puede incluir además codificar al menos uno de un mensaje SEI de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU.
Las DU descritas en el presente documento pueden ser cualquier tipo de DU, así como una unidad de capa de abstracción de red (NAL) que no es de capa de codificación de vídeo (VCL) con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63. El codificador de vídeo 20 puede codificar cualquier DU de acuerdo con las técnicas descritas en esta divulgación, incluidas las DU que son unidades NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
En otro ejemplo, el procedimiento incluye obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU.
En algunos ejemplos, el procedimiento incluye obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU. El procedimiento puede incluir obtener tiempos de extracción de CPB a nivel de AU cuando el elemento de sintaxis indica que la primera DU es una AU. Obtener los tiempos de extracción de CPB a nivel de AU puede incluir obtener los tiempos de extracción de CPB solo a nivel de AU cuando el elemento de sintaxis indica que la DU es una AU.
El elemento de sintaxis puede ser SubPicCpbFlag, en el que cuando SubPicCpbFlag es igual a 0, una DU es una AU; de lo contrario, una DU incluye una o más unidades de capa de abstracción de red (NAL) de capa codificación de vídeo (VCL) en una AU y las unidades NAL no VCL asociadas. En algunos ejemplos, el elemento de sintaxis incluye un primer elemento de sintaxis, y en el que obtener el tiempo de llegada a c Pb y el tiempo de extracción nominal de CPB comprende obtener el tiempo de llegada a CPB y el tiempo de extracción nominal de CPB cuando un segundo elemento de sintaxis especifica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes y la CPB puede funcionar a nivel de unidad de acceso o a nivel de subimagen.
El segundo elemento de sintaxis puede ser sub_pic_cpb_params_present_flag, en el que cuando sub_pic_cpb_params_present_flag es igual a 1, los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes y la CPB puede funcionar a nivel de unidad de acceso o a nivel de subimagen, y cuando sub_pic_cpb_params_present_flag es igual a 0, los parámetros de retardo de extracción de CPB a nivel de subimagen no están presentes y la CPB funciona a nivel de unidad de acceso. El segundo elemento de sintaxis especifica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes y que la CPB puede funcionar a nivel de AU o a nivel de subimagen, y el procedimiento puede incluir además configurar la variable subPicParamsPresentFlag igual a 0, obtener un tiempo de llegada inicial de AU y un tiempo de llegada final de AU, establecer la variable subPicParamsPresentFlag igual a 1, y obtener un tiempo de llegada inicial de DU y un tiempo de llegada final de DU para descodificar unidades dentro de la unidad de acceso.
Los tiempos de extracción de CPB a nivel de subimagen también pueden obtenerse cuando el elemento de sintaxis indica que la DU no es una AU. Obtener los tiempos de extracción de CPB a nivel de subimagen puede incluir obtener los tiempos de extracción de CPB solo a nivel de subimagen cuando el elemento de sintaxis indica que la DU no es una AU. Por ejemplo, el codificador de vídeo 20 puede obtener tiempos de extracción de CPB a nivel de subimagen cuando el elemento de sintaxis indica que la DU no es una AU.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento para obtener un tiempo de extracción de CPB de la primera DU en base a, al menos en parte, el mensaje SEI de temporización de subimágenes de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de descodificación de vídeo. El dispositivo de descodificación de vídeo puede ser el descodificador de vídeo 30 de las FIGS. 1 y 3, por ejemplo.
El procedimiento incluye descodificar un mensaje SEI de temporización de subimágenes asociado a una primera unidad de descodificación de una unidad de acceso (300). Por ejemplo, el descodificador de vídeo 30 puede descodificar un flujo de bits que incluye datos codificados y elementos de sintaxis correspondientes y el mensaje SEI de temporización de subimágenes asociado a una primera DU de una AU, de acuerdo con las técnicas descritas en el presente documento. El descodificador de vídeo 30 puede almacenar las AU y sus respectivas DU en la CPB 94 para su extracción en determinados tiempos de extracción. Por ejemplo, el descodificador de vídeo 30 puede descodificar el mensaje SEI de temporización de subimágenes asociado a una primera DU de una AU.
En algunos ejemplos, el procedimiento incluye descodificar un indicador de nivel de secuencia para determinar la presencia de parámetros de CPB a nivel de subimagen ya sea en el mensaje SEI de temporización de subimágenes o en un mensaje SEI de temporización de imágenes asociado a la primera DU. El procedimiento puede incluir además descodificar los parámetros de CPB a nivel de subimagen, en el que la determinación del tiempo de extracción de CPB de la primera DU se basa además, al menos en parte, en los parámetros de CPB a nivel de subimagen. En respuesta a la recepción de un flujo de bits codificado, el descodificador de vídeo 30 puede descodificar un indicador de nivel de secuencia y determinar, a partir del valor del indicador de nivel de secuencia, si hay parámetros de CPB a nivel de subimagen en el mensaje SEI de temporización de subimágenes o el mensaje s E i de temporización de imágenes. Basándose en el valor del indicador de nivel de secuencia, el descodificador de vídeo 30 puede descodificar el mensaje SEI de temporización de subimágenes o el mensaje SEI de temporización de imágenes para descodificar los parámetros de CPB a nivel de subimagen.
En los ejemplos en los que el indicador de nivel de secuencia indica que los parámetros de CPB a nivel de subimagen deben estar presentes en el mensaje SEI de temporización de subimágenes, la descodificación de los parámetros de CPB a nivel de subimagen puede incluir descodificar el mensaje SEI de temporización de subimágenes asociado a la primera DU. En los ejemplos en los que la segunda DU es una última DU en la AU en orden de descodificación, la descodificación del mensaje SEI de subimágenes puede comprender además descodificar la duración entre un tiempo de extracción de la última DU y el tiempo de extracción de la primera DU en el mensaje SEI de temporización de subimágenes.
El procedimiento incluye además descodificar una duración entre la extracción de memoria intermedia de imágenes codificadas (CPB) de una segunda DU de la AU en el orden de descodificación y la extracción de CPB de la primera DU en el mensaje SEI de subimágenes, en el que la duración está en el mensaje SEI de temporización de subimágenes (302). Por ejemplo, a partir de un flujo de bits recibido, el descodificador de vídeo 30 puede descodificar la duración entre la extracción de memoria intermedia de imágenes codificadas (CPB) de una segunda DU de la AU en orden de descodificación y la extracción de CPB de la primera DU en el mensaje SEI de subimágenes.
El procedimiento también incluye obtener un tiempo de extracción de CPB de la primera DU en base a, al menos en parte, el mensaje SEI de temporización de subimágenes (304). El descodificador de vídeo 30 puede extraer de la CPB 94 la primera DU para su descodificación en el tiempo de extracción de CPB determinado.
En algunos ejemplos, la segunda DU es una última DU en la AU en orden de descodificación. La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en orden de descodificación. En algunos ejemplos, determinar el tiempo de extracción de la primera DU comprende determinar el tiempo de extracción de la primera DU sin codificar un retardo y un desfase de extracción de CPB iniciales.
La DU puede ser cualquier tipo de unidad de descodificación, incluida una unidad de capa de abstracción de red (NAL) que no es de capa de codificación de vídeo (VCL) con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
Las técnicas descritas en el presente documento pueden proporcionar una mejor determinación a prueba de errores del tiempo de extracción de memoria intermedia de imágenes codificadas. Adicionalmente, además de mejorar la resistencia a los errores, las técnicas pueden ofrecer una eficacia de señalización que reduce el ancho de banda y la sobrecarga de señalización y que aumenta el tiempo de codificación. Además, las técnicas descritas en esta divulgación pueden permitir una escalabilidad temporal adecuada.
Dichas técnicas pueden incluir, por ejemplo, determinar un tiempo de extracción de memoria intermedia de imágenes codificadas para una DU de una AU que es independiente de los tiempos de extracción de cualquier otra unidad de acceso. Por ejemplo, los tiempos de extracción de CPB para una DU de una AU se señalizarán en base a la duración entre un tiempo de extracción de CPB de una DU siguiente en un orden de descodificación en la AU o una duración entre el tiempo de extracción de CPB de la última DU en la AU. Las técnicas también pueden incluir la señalización de un indicador de nivel de secuencia para controlar la presencia de parámetros de CPB de subimágenes en solo uno de los mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes de acuerdo con las técnicas descritas en el presente documento. Las técnicas también pueden incluir la ampliación de una definición de una unidad de descodificación. Técnicas adicionales restringen que mensajes SEI de período de almacenamiento en memoria intermedia y mensajes SEI de punto de recuperación puedan asociarse a AU con una variable, TemporalId, mayor que 0. Las técnicas también pueden incluir proporcionar un indicador para señalizar si se deben obtener tiempos de extracción de CPB a nivel de A u o a nivel de subimagen.
La FIG. 8 es un diagrama de flujo que ilustra otro procedimiento para obtener un tiempo de extracción de CPB de la primera DU en base a, al menos en parte, la codificación de un mensaje SEI de temporización de subimágenes de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de codificación de vídeo. El dispositivo de codificación de vídeo puede ser el codificador de vídeo 20 de las FIGS. 1 y 2, por ejemplo.
El procedimiento incluye determinar la duración entre el tiempo de extracción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de descodificación (DU) en una unidad de acceso (AU) y el tiempo de extracción de CPB de una segunda DU en la AU (310). La duración se puede determinar, por ejemplo, restando un tiempo de extracción de CPB planificado para la primera DU a un tiempo de extracción de CPB planificado para la segunda DU.
El procedimiento incluye además codificar la duración en un mensaje de información de mejora suplementaria (SEI) de temporización de subimágenes asociado a la AU (312). Por ejemplo, el codificador de vídeo 20 puede codificar una duración entre la extracción de memoria intermedia de imágenes codificadas (CPB) de una segunda DU de la AU en orden de descodificación y la extracción de CPB de la primera DU en el mensaje SEI de subimágenes en un flujo de bits. Por ejemplo, el codificador de vídeo 20 puede codificar un flujo de bits que incluye datos codificados y elementos de sintaxis correspondientes, un mensaje SEI de temporización de subimágenes asociado a una primera DU de una AU, de acuerdo con las técnicas descritas en el presente documento.
En algunos ejemplos, el procedimiento de la FIG. 8 incluye codificar un indicador de nivel de secuencia para indicar la presencia de parámetros de CPB a nivel de subimagen ya sea en el mensaje SEI de temporización de subimágenes o en un mensaje SEI de temporización de imágenes asociado a la primera DU. El procedimiento puede incluir además codificar los parámetros de CPB a nivel de subimagen, en el que la determinación del tiempo de extracción de CPB de la primera DU se basa además, al menos en parte, en los parámetros de CPB a nivel de subimagen. Por ejemplo, el codificador de vídeo 20 puede codificar un indicador de nivel de secuencia para indicar la presencia de parámetros de CPB a nivel de subimagen ya sea en el mensaje SEI de temporización de subimágenes o en un mensaje SEI de temporización de imágenes asociado a la primera DU en un flujo de bits. El codificador de vídeo 20 puede codificar además los parámetros de CPB a nivel de subimagen en el flujo de bits.
En los ejemplos en los que el indicador de nivel de secuencia indica que los parámetros de CPB a nivel de subimagen deben estar presentes en el mensaje SEI de temporización de subimágenes, la codificación de los parámetros de CPB a nivel de subimagen puede incluir codificar el mensaje SEI de temporización de subimágenes asociado a la primera DU. En los ejemplos en los que la segunda DU es una última DU en la AU en orden de descodificación, la codificación del mensaje SEI de subimágenes puede comprender además codificar la duración entre el tiempo de extracción de la última DU y el tiempo de extracción de la primera DU en el mensaje SEI de temporización de subimágenes.
En algunos ejemplos, la segunda DU es una última DU en la AU en orden de descodificación. La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en orden de descodificación. En algunos ejemplos, determinar el tiempo de extracción de la primera DU comprende determinar el tiempo de extracción de la primera DU sin codificar un retardo y un desfase de extracción de CPB iniciales.
La DU puede ser cualquier tipo de unidad de descodificación, incluida una unidad de capa de abstracción de red (NAL) que no es de capa de codificación de vídeo (VCL) con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento para descodificar un indicador de nivel de secuencia para un parámetro de memoria intermedia de imágenes codificadas a nivel de subimagen de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de descodificación de vídeo. El dispositivo de descodificación de vídeo puede ser el descodificador de vídeo 30 de las FIGS. 1 y 3, por ejemplo.
El procedimiento incluye descodificar un indicador de nivel de secuencia para determinar la presencia de uno o más parámetros de CPB a nivel de subimagen para una DU de una AU ya sea en un mensaje SEI de temporización de
imágenes o un mensaje SEI de temporización de subimágenes asociado a la DU (400). Por ejemplo, el descodificador de vídeo 30 descodifica un indicador de nivel de secuencia para determinar la presencia de uno o más parámetros de CPB a nivel de subimagen. El descodificador de vídeo 30 también descodifica el indicador de nivel de secuencia para determinar la ubicación del uno o más parámetros de CPB a nivel de subimagen. El indicador de nivel de secuencia puede ser sub_pic_cpb_params_present_flag. En algunos ejemplos, el uno o más parámetros de CPB a nivel de subimagen solo están presentes en uno del mensaje SEI de temporización de imágenes o el mensaje SEI de temporización de subimágenes.
El procedimiento puede incluir además la descodificación del uno o más parámetros de CPB a nivel de subimagen del mensaje SEI de temporización de imágenes o el mensaje SEI de temporización de subimágenes en base al indicador de nivel de secuencia (402). Por ejemplo, en respuesta al indicador de nivel de secuencia que indica que uno o más parámetros de CPB a nivel de subimagen están presentes en el mensaje SEI de temporización de imágenes, el descodificador de vídeo 30 descodifica el mensaje SEI de temporización de imágenes para determinar el uno o más parámetros de CPB a nivel de subimagen. Del mismo modo, en respuesta al indicador de nivel de secuencia que indica que uno o más parámetros de CPB a nivel de subimagen están presentes en el mensaje SEI de temporización de subimágenes, el descodificador de vídeo 30 descodifica el mensaje SEI de temporización de subimágenes para determinar el uno o más parámetros de CPB a nivel de subimagen.
El procedimiento puede incluir además determinar un tiempo de extracción de CPB de la DU en base a, al menos en parte, el uno o más parámetros de CPB a nivel de subimagen. En algunos ejemplos, determinar el tiempo de extracción de CPB de la DU comprende determinar el tiempo de extracción de CPB de la DU sin descodificar un retardo y un desfase de extracción de CPB iniciales.
En un ejemplo en el que el indicador de nivel de secuencia indica que los parámetros de CPB a nivel de subimagen están presentes en el mensaje SEI de temporización de subimágenes, la descodificación de los parámetros de CPB a nivel de subimagen puede incluir descodificar el mensaje SEI de temporización de subimágenes asociado a la DU. En otro ejemplo, el procedimiento puede incluir obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de unidad de acceso como a nivel de subimagen independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU. Es decir, el descodificador de vídeo 30 puede obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de unidad de acceso como a nivel de subimagen.
En otro ejemplo, la DU es una primera DU, y el procedimiento incluye además obtener un tiempo de extracción de CPB de la primera DU en base a, al menos en parte, los parámetros de CPB a nivel de subimagen y descodificar una duración entre el tiempo de extracción de CPB de una segunda DU de la AU en orden de descodificación y el tiempo de extracción de CPB de la primera DU. El procedimiento puede incluir además descodificar datos de vídeo de la primera DU en base a, al menos en parte, los tiempos de extracción de CPB. En algunos ejemplos, la segunda DU es una última DU en la AU en orden de descodificación o inmediatamente posterior a la primera DU en la AU en orden de descodificación.
La DU puede ser cualquier DU, incluida una unidad NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC12.
En los ejemplos en los que la AU tiene un Temporalld igual a 0, el procedimiento puede incluir además descodificar al menos uno de un mensaje SEI de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU. Por ejemplo, el descodificador de vídeo 30 puede descodificar al menos uno del mensaje SEI de período de almacenamiento en memoria intermedia o el mensaje SEI de punto de recuperación asociado a la AU que tiene un valor de TemporalId igual a 0.
La FIG. 10 es un diagrama de flujo que ilustra un procedimiento para codificar un indicador de nivel de secuencia para un parámetro de memoria intermedia de imágenes codificadas a nivel de subimagen de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de codificación de vídeo. El dispositivo de codificación de vídeo puede ser el codificador de vídeo 20 de las FIGS. 1 y 2, por ejemplo.
El procedimiento incluye codificar uno o más parámetros de memoria intermedia de imágenes codificadas (CPB) a nivel de subimagen para una unidad de descodificación (DU) de una unidad de acceso (AU) en un mensaje SEI de temporización de imágenes o un mensaje SEI de temporización de subimágenes (410). El codificador de vídeo 20 puede codificar el mensaje SEI de temporización de imágenes en el uno o más parámetros de CPB a nivel de subimagen. De forma alternativa, el codificador de vídeo 20 puede codificar el mensaje SEI de temporización de subimágenes en el uno o más parámetros de CPB a nivel de subimagen.
El procedimiento incluye además codificar un indicador de nivel de secuencia para indicar la presencia de uno o más parámetros de CPB a nivel de subimagen para una DU de una AU ya sea en el mensaje SEI de temporización de imágenes o en el mensaje SEI de temporización de subimágenes asociado a la DU (412). Por ejemplo, el codificador de vídeo 20 codifica un indicador de nivel de secuencia para indicar la presencia y ubicación de uno o más parámetros de CPB a nivel de subimagen. El indicador de nivel de secuencia puede ser sub_pic_cpb_params_present_flag. En
algunos ejemplos, el codificador de vídeo 20 codifica el uno o más parámetros de CPB a nivel de subimagen en solo uno del mensaje SEI de temporización de imágenes o el mensaje SEI de temporización de subimágenes.
El procedimiento puede incluir además determinar un tiempo de extracción de CPB de la DU en base a, al menos en parte, el uno o más parámetros de CPB a nivel de subimagen. En algunos ejemplos, determinar el tiempo de extracción de CPB de la DU comprende determinar el tiempo de extracción de CPB de la DU sin codificar un retardo y un desfase de extracción de CPB iniciales.
En un ejemplo, la codificación del uno o más parámetros de CPB a nivel de subimagen comprende además codificar el uno o más parámetros de CPB a nivel de subimagen en el mensaje SEI de temporización de subimágenes asociado a la DU. En un ejemplo de este tipo, el codificador de vídeo 20 codifica el indicador de nivel de secuencia para indicar que los parámetros de CPB a nivel de subimagen están presentes en el mensaje SEI de temporización de subimágenes. En otro ejemplo, la codificación del uno o más parámetros de CPB a nivel de subimagen comprende además codificar el uno o más parámetros de CPB a nivel de subimagen en el mensaje SEI de temporización de imágenes asociado a la DU. En ese ejemplo, el codificador de vídeo 20 codifica el indicador de nivel de secuencia para indicar que los parámetros de CPB a nivel de subimagen están presentes en el mensaje SEI de temporización de imágenes.
En otro ejemplo, la DU es una primera DU, y el procedimiento incluye además obtener un tiempo de extracción de CPB de la primera DU en base a, al menos en parte, los parámetros de CPB a nivel de subimagen y codificar una duración entre el tiempo de extracción de CPB de una segunda DU de la AU en orden de descodificación y el tiempo de extracción de CPB de la primera DU. El procedimiento puede incluir además codificar datos de vídeo de la primera DU en base a, al menos en parte, los tiempos de extracción de CPB. En algunos ejemplos, la segunda DU es una última DU en la AU en orden de descodificación o inmediatamente posterior a la primera DU en la AU en orden de descodificación.
La DU puede ser cualquier DU, incluida una unidad NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC12.
En los ejemplos en los que la AU tiene un Temporalld igual a 0, el procedimiento puede incluir además codificar al menos uno de un mensaje SEI de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU. Por ejemplo, el codificador de vídeo 20 puede codificar al menos uno del mensaje SEI de período de almacenamiento en memoria intermedia o el mensaje SEI de punto de recuperación asociado a la AU que tiene un valor de TemporalId igual a 0.
La FIG. 11 es un diagrama de flujo que ilustra un procedimiento para descodificar una DU que tiene una definición ampliada de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de descodificación de vídeo. El dispositivo de descodificación de vídeo puede ser el descodificador de vídeo 30 de las FIGS. 1 y 3, por ejemplo.
El procedimiento incluye descodificar una duración entre la extracción de memoria intermedia de imágenes codificadas (CPB) de un primera unidad de descodificación (DU) en una unidad de acceso (AU) y la extracción de CPB de una segunda DU, en el que la primera DU comprende una unidad de capa de abstracción de red (NAL) que no es de capa de codificación de vídeo (VCL) con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63 (500). Es decir, el descodificador de vídeo 30 puede descodificar las DU que son una unidad de capa de abstracción de red (NAL) que no es de capa de codificación de vídeo (VCL) con nal_unit_type igual a UNSPECO, EOS_NUT, Eo B_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63, además de otros tipos de DU definidos en el WD8 de HEVC.
En algunos ejemplos, la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU. La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en orden de descodificación. En otros ejemplos, la segunda DU es una última DU en la AU en orden de descodificación.
El procedimiento también incluye determinar un tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada (502). El procedimiento incluye además descodificar datos de vídeo de la primera Du en base a, al menos en parte, el tiempo de extracción (504). Por ejemplo, el descodificador de vídeo 30 determina un tiempo de extracción de la primera Du basándose, en parte, en la duración descodificada y, a continuación, descodifica los datos de vídeo de la primera DU basándose en el tiempo de extracción.
En un ejemplo, el procedimiento puede incluir además descodificar uno o más parámetros de CPB a nivel de subimagen, en el que determinar el tiempo de extracción de la primera DU comprende determinar el tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada y los parámetros de CPB a nivel de subimagen. La descodificación del uno o más parámetros de CPB a nivel de subimagen puede incluir además descodificar un mensaje de información de mejora suplementaria (SEI) de temporización de subimágenes que está asociado a la primera DU.
En otro ejemplo donde la segunda DU es una última DU en la AU en el orden de descodificación, la descodificación del mensaje SEI de subimágenes incluye descodificar la duración entre el tiempo de extracción de la última DU y el tiempo de extracción de la primera DU en el mensaje SEI de temporización de subimágenes. En algunos ejemplos, el descodificador de vídeo 30 descodifica un indicador de nivel de secuencia para determinar la presencia de los parámetros de CPB a nivel de subimagen, ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes.
En otro ejemplo, cuando la AU tiene un TemporalId igual a 0, el descodificador de vídeo 30 puede descodificar al menos uno de un mensaje SEI de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU. El procedimiento también puede incluir obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de la unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU.
La FIG. 12 es un diagrama de flujo que ilustra un procedimiento para codificar una DU que tiene una definición ampliada de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de codificación de vídeo. El dispositivo de codificación de vídeo puede ser el codificador de vídeo 20 de las FiGs . 1 y 2, por ejemplo.
El procedimiento incluye determinar, para una AU que incluye una primera DU, un tiempo de extracción de CPB de una segunda DU, en el que la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU, y en el que la primera DU comprende una unidad de capa de abstracción de red (NAL) que no es de capa de codificación de vídeo (VCL), con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63 (510). Es decir, el codificador de vídeo 20 puede codificar las DU que son unidades NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63, además de otros tipos de DU definidos en el WD8 de HEVC. La segunda DU puede ser posterior, incluso inmediatamente posterior, a la primera DU en orden de descodificación y en la misma Au que la primera DU. En otros ejemplos, la segunda DU es una última DU en la AU en orden de descodificación.
El procedimiento también incluye determinar una duración entre el tiempo de extracción de CPB de la primera DU y el tiempo de extracción de CPB determinado de la segunda DU (512). La determinación de la duración entre el tiempo de extracción de CPB de la primera DU y el tiempo de extracción de CPB determinado de la segunda DU puede basarse en un tiempo de extracción de CPB planificado de la AU. El procedimiento incluye además codificar la duración determinada (514). Por ejemplo, el codificador de vídeo 20 determina una duración de tiempo entre la extracción de CPB de la primera DU y una segunda DU y, a continuación, codifica la duración determinada como un elemento de sintaxis.
En un ejemplo, el procedimiento puede incluir además codificar uno o más parámetros de CPB a nivel de subimagen, en el que determinar la duración determinada de la primera DU comprende determinar el tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada y los parámetros de CPB a nivel de subimagen. La codificación del uno o más parámetros de CPB a nivel de subimagen puede incluir además codificar un mensaje SEI de temporización de subimágenes que está asociado a la primera DU.
En otro ejemplo donde la segunda DU es una última DU en la AU en orden de descodificación, la codificación del mensaje SEI de subimágenes incluye codificar la duración entre el tiempo de extracción de la última DU y el tiempo de extracción de la primera DU en el mensaje SEI de temporización de subimágenes. En algunos ejemplos, el codificador de vídeo 20 codifica un indicador de nivel de secuencia para indicar la presencia de los parámetros de CPB a nivel de subimagen, ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes.
En otro ejemplo donde la AU tiene un TemporalId igual a 0, el codificador de vídeo 20 puede codificar al menos uno de un mensaje SEI de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU. El procedimiento también puede incluir obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de la unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU.
La FIG. 13 es un diagrama de flujo que ilustra un procedimiento para descodificar períodos de almacenamiento en memoria intermedia y mensajes SEI de punto de recuperación de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de descodificación de vídeo. El dispositivo de descodificación de vídeo puede ser el descodificador de vídeo 30 de las FIGS. 1 y 3, por ejemplo.
El procedimiento incluye descodificar un mensaje SEI de período de almacenamiento en memoria intermedia asociado a una AU (530). La AU tiene un temporalId igual a o menor que 0. Es decir, el mensaje SEI de período de almacenamiento en memoria intermedia está restringido de modo que no puede asociarse a una AU que tenga un temporalId mayor que 0.
El procedimiento incluye además descodificar una duración entre la extracción de CPB de una primera DU en la AU y la extracción de CPB de una segunda DU del mensaje SEI de período de almacenamiento en memoria intermedia (532). La segunda DU puede estar en la misma AU que la primera DU. La segunda DU puede ser posterior, incluso inmediatamente posterior, a la primera DU en orden de descodificación. En otros ejemplos, la segunda DU puede ser la última DU en orden de descodificación en la AU. Las DU pueden ser cualquier tipo de DU aceptado en el WD8 de HEVC y, además, puede ser una unidad NAL VCL con nal_unit_type igual a Un Sp Ec O, EOS_n Ut , EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
El procedimiento puede incluir además determinar un tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada (534). En algunos ejemplos, el descodificador de vídeo 30 puede descodificar uno o más parámetros de CPB a nivel de subimagen. La determinación del tiempo de extracción de la primera DU puede incluir además determinar el tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada y los parámetros de CPB a nivel de subimagen. La descodificación del uno o más parámetros de CPB a nivel de subimagen puede incluir además descodificar un mensaje SEI de temporización de subimágenes que está asociado a la primera DU.
El procedimiento puede incluir además descodificar datos de vídeo de la primera DU en base a, al menos en parte, el tiempo de extracción (536). En los ejemplos en los que la segunda DU es una última DU en la AU en el orden de descodificación, la descodificación del mensaje SEI de subimágenes incluye además descodificar la duración entre el tiempo de extracción de la última DU y el tiempo de extracción de la primera DU en el mensaje SEI de temporización de subimágenes.
El procedimiento puede incluir además descodificar un indicador de nivel de secuencia para determinar la presencia de los parámetros de CPB a nivel de subimagen, ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes. El procedimiento también puede incluir obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de la unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU.
La FIG. 14 es un diagrama de flujo que ilustra un procedimiento para codificar mensajes SEI de período de almacenamiento en memoria intermedia de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de codificación de vídeo. El dispositivo de codificación de vídeo puede ser el codificador de vídeo 20 de las FIGS. 1 y 2, por ejemplo.
El procedimiento incluye codificar un mensaje de información de mejora suplementaria (SEI) de período de almacenamiento en memoria intermedia asociado a una unidad de acceso (AU), en el que la duración se codifica dentro de al menos uno del mensaje SEI de período de almacenamiento en memoria intermedia o el mensaje SEI de punto de recuperación (540). Debido a que la AU tiene un temporalld igual a o menor que 0, el mensaje SEI de período de almacenamiento en memoria intermedia está restringido de modo que no puede asociarse a una AU que tenga un temporalld mayor que 0.
El procedimiento también puede incluir codificar una duración entre el tiempo de extracción de CPB de una primera DU en la AU y el tiempo de extracción de CPB de una segunda DU del mensaje SEI de período de almacenamiento en memoria intermedia, en el que la AU tiene un temporalId igual a 0 (542). El procedimiento puede incluir además determinar un tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada (544). Además, el procedimiento puede incluir codificar datos de vídeo de la primera Du (546).
El procedimiento puede incluir, además, determinar una duración entre la extracción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de descodificación (DU) en una unidad de acceso (AU) y la extracción de CPB de una segunda DU en la AU, en el que la AU tiene un TemporalId igual a 0. La segunda DU puede estar en la misma AU que la primera DU. La segunda DU puede ser posterior, incluso inmediatamente posterior, a la primera DU en orden de descodificación. En otros ejemplos, la segunda DU puede ser la última DU en orden de descodificación en la AU. Las DU pueden ser cualquier tipo de DU aceptado en el WD8 de HEVC y, además, puede ser una unidad NAL VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_n Vc L44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
En un ejemplo, determinar la duración entre la extracción de CPB de la primera DU puede incluir determinar un tiempo de extracción de la primera y la segunda DU. El tiempo de extracción de la primera DU se puede restar al tiempo de extracción de la segunda DU para determinar la duración.
En algunos ejemplos, el codificador de vídeo 20 puede codificar uno o más parámetros de CPB a nivel de subimagen. La determinación del tiempo de extracción de la primera DU puede incluir además determinar el tiempo de extracción de la primera DU en base a, al menos en parte, la duración codificada y los parámetros de CPB a nivel de subimagen. La codificación del uno o más parámetros de CPB a nivel de subimagen puede incluir además codificar un mensaje SEI de temporización de subimágenes que está asociado a la primera DU.
El procedimiento puede incluir además codificar datos de vídeo de la primera DU. La codificación de los datos de vídeo de la primera DU puede basarse, al menos en parte, en el tiempo de extracción. En los ejemplos en los que la segunda DU es una última DU en la AU en orden de descodificación, la codificación del mensaje s Ei de subimágenes incluye además codificar la duración entre el tiempo de extracción de la última DU y el tiempo de extracción de la primera Du en el mensaje SEI de temporización de subimágenes.
El procedimiento puede incluir además codificar un indicador de nivel de secuencia para indicar la presencia de los parámetros de CPB a nivel de subimagen ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes. El procedimiento también puede incluir obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para la AU tanto a nivel de la unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si la primera DU es la AU.
La FIG. 15 es un diagrama de flujo que ilustra un procedimiento para descodificar tiempos de extracción nominales y de llegada a memoria intermedia de imágenes codificadas de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de descodificación de vídeo. El dispositivo de codificación de vídeo puede ser el descodificador de vídeo 30 de las FIGS. 1 y 3, por ejemplo.
El procedimiento incluye obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para una AU tanto a nivel de unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si una DU es la AU completa. La DU puede estar asociada a la AU (560). El procedimiento puede incluir que el descodificador de vídeo 30 determine un valor del elemento de sintaxis. El elemento de sintaxis puede tener la forma de SubPicCpbFlag. En respuesta a que el elemento de sintaxis tenga un valor verdadero (por ejemplo, SubPicCpbFlag es 1), el procedimiento puede incluir obtener un tiempo de extracción de CPB solo a nivel de AU. En respuesta a que el elemento de sintaxis tenga un valor falso (por ejemplo, SubPicCpbFlag es 0), se obtiene un tiempo de extracción de CPB solo a nivel de subimagen. En algunos ejemplos, al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB se obtienen solo cuando un indicador de sintaxis que indica que los parámetros de CPB están presentes tiene un valor verdadero.
El procedimiento puede incluir además determinar un tiempo de extracción de la AU en base a, al menos en parte, uno de los tiempos de llegada a CPB y un tiempo de extracción nominal de CPB (562). El procedimiento incluye además descodificar datos de vídeo de la AU en base a, al menos en parte, el tiempo de extracción (564).
El procedimiento puede incluir además descodificar una duración entre la extracción de CPB de una primera DU en la AU y la extracción de CPB de una segunda DU, determinar un tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada, y descodificar datos de vídeo de la primera DU en base a, al menos en parte, al menos uno del tiempo de extracción, el tiempo de llegada a CPB y el tiempo de extracción nominal de CPB. En algunos ejemplos, la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU. El procedimiento puede incluir además descodificar uno o más parámetros de CPB a nivel de subimagen, en el que determinar el tiempo de extracción de la primera DU comprende determinar el tiempo de extracción de la primera DU en base a, al menos en parte, la duración descodificada y los parámetros de CPB a nivel de subimagen.
En algunos ejemplos, el procedimiento también incluye descodificar un indicador de nivel de secuencia para determinar la presencia de parámetros de CPB a nivel de subimagen ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes.
Las DU pueden ser cualquier tipo de DU descrito en el WD8 de HEVC, incluidas unidades NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
En otro ejemplo donde la AU tiene un Temporalld no mayor que 0, el procedimiento incluye además descodificar al menos uno de un mensaje de información de mejora suplementaria (SEI) de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU.
La FIG. 16 es un diagrama de flujo que ilustra un procedimiento para codificar tiempos de extracción nominales y de llegada a memoria intermedia de imágenes codificadas de acuerdo con las técnicas descritas en esta divulgación. El procedimiento puede realizarse mediante un dispositivo de codificación de vídeo. El dispositivo de codificación de vídeo puede ser el codificador de vídeo 20 de las FIGS. 1 y 2, por ejemplo.
El procedimiento incluye obtener al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB para una AU tanto a nivel de unidad de acceso como a nivel de subimagen, independientemente del valor de un elemento de sintaxis que define si una DU es la AU completa. La DU puede estar asociada a la AU (570). El procedimiento puede incluir un codificador de vídeo 20 que determina un valor del elemento de sintaxis. El elemento de sintaxis puede tener la forma de SubPicCpbFlag. En respuesta a que el elemento de sintaxis tenga un valor verdadero (por ejemplo, SubPicCpbFlag es 1), el codificador de vídeo 20 puede obtener un tiempo de extracción de
CPB solo a nivel de AU. En respuesta a que el elemento de sintaxis tenga un valor falso (por ejemplo, SubPicCpbFlag es 0), el codificador de vídeo 20 puede obtener un tiempo de extracción de CPB solo a nivel de subimagen. En algunos ejemplos, al menos uno de un tiempo de llegada a CPB y un tiempo de extracción nominal de CPB se obtienen solo cuando un indicador de sintaxis que indica que los parámetros de CPB están presentes tiene un valor verdadero.
El procedimiento puede incluir además determinar un tiempo de extracción de la AU en base a, al menos en parte, uno de los tiempos de llegada a CPB y un tiempo de extracción nominal de CPB (572). El procedimiento incluye además descodificar el tiempo de extracción determinado (574). En algunos ejemplos, la codificación del tiempo de extracción puede incluir codificar una duración entre la extracción de CPB de una primera DU en la AU y la extracción de CPB de una segunda DU, determinar un tiempo de extracción de la primera DU en base a, al menos en parte, la duración codificada, y codificar datos de vídeo de la primera DU en base a, al menos en parte, al menos uno del tiempo de extracción, el tiempo de llegada a CPB y el tiempo de extracción nominal de CPB. En algunos ejemplos, la segunda DU es posterior a la primera DU en orden de descodificación y en la misma AU que la primera DU. El procedimiento puede incluir además codificar uno o más parámetros de CPB a nivel de subimagen, en el que la determinación del tiempo de extracción de la primera DU comprende determinar el tiempo de extracción de la primera DU en base a, al menos en parte, la duración codificada y los parámetros de CPB a nivel de subimagen. El procedimiento puede incluir además codificar una duración entre la extracción de CPB de una primera DU en la AU y la extracción de CPB de una segunda DU, en el que codificar el tiempo de extracción comprende además codificar la duración.
En algunos ejemplos, el procedimiento también incluye codificar un indicador de nivel de secuencia para indicar la presencia de parámetros de CPB a nivel de subimagen ya sea en mensajes SEI de temporización de imágenes o en mensajes SEI de temporización de subimágenes.
Las DU pueden ser cualquier tipo de DU descritas en el WD8 de HEVC, incluidas unidades NAL no VCL con nal_unit_type igual a UNSPECO, EOS_NUT, EOB_NUT, en el intervalo de RSV_NVCL44 a RSV_NVCL47 o en el intervalo de UNSPEC48 a UNSPEC63.
En otro ejemplo donde la AU tiene un Temporalld no mayor que 0, el procedimiento incluye además codificar al menos uno de un mensaje SEI de período de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado a la AU.
En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o en cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en, o transmitir a través de, un medio legible por ordenador como una o más instrucciones o código, y ejecutar mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador que corresponden a un medio tangible, tales como unos medios de almacenamiento de datos, o unos medios de comunicación que incluyen cualquier medio que facilita la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) unos medios de almacenamiento tangibles legibles por ordenador que no son transitorios o a (2) un medio de comunicación tal como una señal u onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda usar para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador. Además, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, debe entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en cambio, se refieren a medios de almacenamiento tangibles no transitorios. El término disco, como se usa en el presente documento, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde unos discos normalmente reproducen datos magnéticamente y otros discos reproducen datos ópticamente con láseres. Las combinaciones de lo anterior también se deben incluir dentro del alcance de los medios legibles por ordenador.
Uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes pueden ejecutar las instrucciones. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las
estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos dedicados de hardware y/o de software configurados para la codificación y la descodificación, o se puede incorporar en un códec combinado. Asimismo, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización mediante unidades de hardware diferentes. En cambio, como se describe anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores descritos anteriormente, junto con software y/o firmware adecuados.
Claims (5)
1. Un procedimiento para descodificar datos de vídeo usando una memoria intermedia de imágenes codificadas, CPB, comprendiendo los datos de vídeo una o más unidades de acceso, AU, comprendiendo cada una de las una o más AU una o más unidades de descodificación, DU, comprendiendo el procedimiento:
determinar un valor de un primer indicador, donde el valor del primer indicador señaliza o bien que hay parámetros de retardo de extracción de memoria intermedia de imágenes codificadas, CPB, de subimágenes en mensajes de información de mejora suplementaria, SEI, de temporización de imágenes y que no hay ningún mensaje SEI de temporización de subimágenes, o bien que hay parámetros de retardo de extracción de CPB a nivel de subimagen en mensajes SEI de temporización de subimágenes y que los mensajes SEI de temporización de imágenes no incluyen parámetros de retardo de extracción de CPB a nivel de subimagen, en el que el primer indicador es un indicador de nivel de secuencia;
determinar un valor de un segundo indicador, funcionando la CPB a nivel de AU cuando el valor del segundo indicador es 0 y funcionando la CPB a nivel de subimagen cuando el valor del segundo indicador es 1; independientemente del valor determinado del segundo indicador, obtener (560) un tiempo de llegada a CPB de una AU actual y un tiempo de extracción nominal de CPB de la AU actual a nivel de AU, en el que la AU actual incluye dos o más DU que incluyen una DU actual que no es la última DU en el orden de descodificación de la AU actual; y si el valor del segundo indicador es igual a 1:
i) si el primer indicador indica que los parámetros de retardo de extracción de CPB a nivel de subimagen no están presentes en los mensajes SEI de temporización de imágenes, obtener un valor de retardo de extracción de CPB para la DU actual a partir de uno o más parámetros de retardo de extracción de CPB en un mensaje SEI de temporización de subimágenes asociado a la DU actual y establecer (562) un tiempo de extracción nominal de la DU actual igual al tiempo de extracción nominal de la AU actual menos la duración de un pulso de reloj de subimágenes multiplicado por el valor de retardo de extracción de CPB,
ii) si el primer indicador indica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes en los mensajes SEI de temporización de imágenes, obtener un valor de retardo de extracción de CPB para la DU actual a partir de uno o más parámetros de retardo de extracción de CPB en un mensaje SEI de temporización de imágenes asociado a la DU actual y establecer (562) el tiempo de extracción nominal de la DU actual igual a un tiempo de extracción nominal de una DU inmediatamente posterior en el orden de descodificación menos la duración de un pulso de reloj de subimágenes multiplicado por el valor de retardo de extracción de CPB,
iii) establecer un tiempo de extracción de CPB de la DU actual en el tiempo de extracción de CPB nominal de la DU actual, en el que low_delay_hrd_flag es igual a cero o el tiempo de extracción nominal de la DU actual es mayor que o igual a un tiempo de llegada a CPB final de la DU actual, y
en el tiempo de extracción de CPB de la DU actual, descodificar (564) la DU actual y extraer la DU actual de la CPB.
2. Un dispositivo (14) para descodificar datos de vídeo usando una memoria intermedia de imágenes codificadas, CPB, comprendiendo los datos de vídeo una o más unidades de acceso, AU, comprendiendo cada una de las una o más AU una o más unidades de descodificación, DU, comprendiendo el dispositivo:
medios para determinar un valor de un primer indicador, donde el valor del primer indicador señaliza o bien que hay parámetros de retardo de extracción de memoria intermedia de imágenes codificadas, CPB, de subimágenes en mensajes de información de mejora suplementaria, SEI, de temporización de imágenes y que no hay ningún mensaje SEI de temporización de subimágenes, o bien que hay parámetros de retardo de extracción de CPB a nivel de subimagen en mensajes SEI de temporización de subimágenes y que los mensajes SEI de temporización de imágenes no incluyen parámetros de retardo de extracción de CPB a nivel de subimagen, en el que el primer indicador es un indicador de nivel de secuencia;
medios para determinar un valor de un segundo indicador, funcionando la CPB a nivel de AU cuando el valor del segundo indicador es 0 y funcionando la CPB a nivel de subimagen cuando el valor del segundo indicador es 1; medios para, independientemente del valor determinado del segundo indicador, obtener un tiempo de llegada a CPB de una AU actual y un tiempo de extracción nominal de CPB de la AU actual a nivel de AU, en el que la AU actual incluye dos o más DU que incluyen una DU actual que no es la última DU en el orden de descodificación de la AU actual; y
medios para, si el valor del segundo indicador es igual a 1:
i) si el primer indicador indica que los parámetros de retardo de extracción de CPB a nivel de subimagen no están presentes en los mensajes SEI de temporización de imágenes, obtener un valor de retardo de extracción de CPB para la DU actual a partir de uno o más parámetros de retardo de extracción de CPB en un mensaje SEI de temporización de subimágenes asociado a la DU actual y establecer (562) un tiempo de extracción nominal de la DU actual igual al tiempo de extracción nominal de la AU actual menos la duración de un pulso de reloj de subimágenes multiplicado por el valor de retardo de extracción de CPB,
ii) si el primer indicador indica que los parámetros de retardo de extracción de CPB a nivel de subimagen están presentes en los mensajes SEI de temporización de imágenes, obtener un valor de retardo de extracción de CPB para
la DU actual a partir de uno o más parámetros de retardo de extracción de CPB en un mensaje SEI de temporización de imágenes asociado a la DU actual y establecer (562) el tiempo de extracción nominal de la DU actual igual a un tiempo de extracción nominal de una DU inmediatamente posterior en el orden de descodificación menos la duración de un pulso de reloj de subimágenes multiplicado por el valor de retardo de extracción de CPB,
iii) establecer un tiempo de extracción de CPB de la DU actual en el tiempo de extracción nominal de la DU actual, en el que low_delay_hrd_flag es igual a cero o el tiempo de extracción nominal de la DU actual es mayor que o igual a un tiempo de llegada a CPB final de la DU actual, y
iv) en el tiempo de extracción de CPB de la DU actual, descodificar la DU actual y extraer la DU actual de la CPB.
3. El dispositivo de la reivindicación 2, en el que el dispositivo se implementa en uno o más circuitos integrados.
4. El dispositivo de la reivindicación 2, en el que el dispositivo es un ordenador de escritorio, un ordenador tipo notebook, una tableta electrónica, un descodificador, un auricular telefónico, un televisor, una cámara, un reproductor de medios digitales, una consola de videojuegos o un dispositivo de transmisión continua de vídeo.
5. Un medio de almacenamiento legible por ordenador que tiene instrucciones almacenadas en el mismo que, al ejecutarse, hacen que un procesador de un dispositivo lleve a cabo el procedimiento de acuerdo con la reivindicación 1.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261705119P | 2012-09-24 | 2012-09-24 | |
US201261708475P | 2012-10-01 | 2012-10-01 | |
US14/033,348 US9503753B2 (en) | 2012-09-24 | 2013-09-20 | Coded picture buffer arrival and nominal removal times in video coding |
PCT/US2013/061229 WO2014047586A1 (en) | 2012-09-24 | 2013-09-23 | Coded picture buffer arrival and nominal removal times in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2913456T3 true ES2913456T3 (es) | 2022-06-02 |
Family
ID=50338852
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13771729T Active ES2885527T3 (es) | 2012-09-24 | 2013-09-23 | Tiempos de eliminación del almacenamiento temporal de las imágenes codificadas independientes de la unidad de acceso en la codificación de vídeo |
ES13774006T Active ES2855129T3 (es) | 2012-09-24 | 2013-09-23 | Indicador de nivel de secuencia para parámetros de búfer de imágenes codificadas a nivel de subimagen |
ES13774009T Active ES2913456T3 (es) | 2012-09-24 | 2013-09-23 | Tiempos de llegada y de extracción nominal en memoria intermedia de imágenes codificadas en la codificación de vídeo |
ES13770826T Active ES2884724T3 (es) | 2012-09-24 | 2013-09-23 | Definición de unidad de decodificación ampliada |
ES13774005T Active ES2739225T3 (es) | 2012-09-24 | 2013-09-23 | Momentos de eliminación de memoria intermedia de imágenes codificadas señalados en los mensajes de información de mejora complementaria de temporización de imágenes y sub-imágenes |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13771729T Active ES2885527T3 (es) | 2012-09-24 | 2013-09-23 | Tiempos de eliminación del almacenamiento temporal de las imágenes codificadas independientes de la unidad de acceso en la codificación de vídeo |
ES13774006T Active ES2855129T3 (es) | 2012-09-24 | 2013-09-23 | Indicador de nivel de secuencia para parámetros de búfer de imágenes codificadas a nivel de subimagen |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13770826T Active ES2884724T3 (es) | 2012-09-24 | 2013-09-23 | Definición de unidad de decodificación ampliada |
ES13774005T Active ES2739225T3 (es) | 2012-09-24 | 2013-09-23 | Momentos de eliminación de memoria intermedia de imágenes codificadas señalados en los mensajes de información de mejora complementaria de temporización de imágenes y sub-imágenes |
Country Status (22)
Country | Link |
---|---|
US (6) | US9648352B2 (es) |
EP (6) | EP2898687B1 (es) |
JP (6) | JP2015533056A (es) |
KR (6) | KR102244410B1 (es) |
CN (6) | CN104662916B (es) |
AR (3) | AR093239A1 (es) |
AU (6) | AU2013317761B2 (es) |
BR (6) | BR112015006486B1 (es) |
CA (6) | CA2884298C (es) |
DK (2) | DK2898685T3 (es) |
ES (5) | ES2885527T3 (es) |
HU (4) | HUE058715T2 (es) |
IL (6) | IL237680B (es) |
MX (1) | MX341441B (es) |
MY (6) | MY172354A (es) |
PH (6) | PH12015500479B1 (es) |
RU (6) | RU2641475C2 (es) |
SG (7) | SG11201501580RA (es) |
TW (6) | TWI555382B (es) |
UA (2) | UA116997C2 (es) |
WO (6) | WO2014047577A1 (es) |
ZA (4) | ZA201502382B (es) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011199396A (ja) | 2010-03-17 | 2011-10-06 | Ntt Docomo Inc | 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム |
WO2013119325A1 (en) * | 2012-02-08 | 2013-08-15 | Thomson Licensing | Method and apparatus for using an ultra-low delay mode of a hypothetical reference decoder |
CA2876110C (en) * | 2012-06-25 | 2020-06-02 | Nec Corporation | Video encoding/decoding device, method, and program |
US9716892B2 (en) | 2012-07-02 | 2017-07-25 | Qualcomm Incorporated | Video parameter set including session negotiation information |
US10051311B2 (en) * | 2012-07-06 | 2018-08-14 | Sharp Kabushiki Kaisha | Electronic devices for signaling sub-picture based hypothetical reference decoder parameters |
US9351005B2 (en) | 2012-09-24 | 2016-05-24 | Qualcomm Incorporated | Bitstream conformance test in video coding |
US9648352B2 (en) | 2012-09-24 | 2017-05-09 | Qualcomm Incorporated | Expanded decoding unit definition |
US9374585B2 (en) * | 2012-12-19 | 2016-06-21 | Qualcomm Incorporated | Low-delay buffering model in video coding |
MY173433A (en) * | 2013-04-07 | 2020-01-24 | Sharp Kk | Signaling change in output layer sets |
US9591321B2 (en) | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
US9609339B2 (en) * | 2013-04-08 | 2017-03-28 | Arris Enterprises, Inc. | Individual buffer management in video coding |
US9565437B2 (en) | 2013-04-08 | 2017-02-07 | Qualcomm Incorporated | Parameter set designs for video coding extensions |
US9402083B2 (en) * | 2014-04-24 | 2016-07-26 | Vidyo, Inc. | Signaling conformance points using profile space |
WO2021201617A1 (ko) * | 2020-03-31 | 2021-10-07 | 엘지전자 주식회사 | 레이어간 정렬된 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
US10432951B2 (en) | 2014-06-24 | 2019-10-01 | Qualcomm Incorporated | Conformance and inoperability improvements in multi-layer video coding |
US11595652B2 (en) * | 2019-01-28 | 2023-02-28 | Op Solutions, Llc | Explicit signaling of extended long term reference picture retention |
US10623755B2 (en) * | 2016-05-23 | 2020-04-14 | Qualcomm Incorporated | End of sequence and end of bitstream NAL units in separate file tracks |
CN107612953B (zh) * | 2016-07-12 | 2020-10-27 | 中国电信股份有限公司 | 增强信息生成和获取方法、装置、终端设备、平台和系统 |
US10999605B2 (en) * | 2017-01-10 | 2021-05-04 | Qualcomm Incorporated | Signaling of important video information in file formats |
US10521880B2 (en) * | 2017-04-17 | 2019-12-31 | Intel Corporation | Adaptive compute size per workload |
US10595268B2 (en) * | 2017-04-27 | 2020-03-17 | Samsung Electronics Co., Ltd. | Network slice-available area information acquisition method |
CN119052469A (zh) * | 2019-01-28 | 2024-11-29 | Op方案有限责任公司 | 扩展长期参考图片保留的在线和离线选择 |
BR112021017426A2 (pt) * | 2019-03-01 | 2022-01-18 | Fraunhofer Ges Forschung | Decodificador de referência hipotético |
CN114097245B (zh) * | 2019-06-18 | 2024-06-14 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法和解码方法 |
US12096032B2 (en) * | 2019-06-24 | 2024-09-17 | Interdigital Vc Holdings, Inc. | Method and apparatus for signaling decoding data using high level syntax elements |
KR20220023341A (ko) * | 2019-06-25 | 2022-03-02 | 인텔 코포레이션 | 레벨 도출이 있는 서브-픽처 및 서브-픽처 세트 |
BR112021026353A2 (pt) * | 2019-06-27 | 2022-02-08 | Huawei Tech Co Ltd | Decodificador de referência hipotético para v-pcc |
WO2021033774A1 (en) * | 2019-08-21 | 2021-02-25 | Sharp Kabushiki Kaisha | Systems and methods for signaling buffering period information in video coding |
WO2021049644A1 (ja) * | 2019-09-11 | 2021-03-18 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
MX2022003221A (es) * | 2019-09-17 | 2022-04-26 | Huawei Tech Co Ltd | Se?alizacion de id de subimagenes en codificacion de video basada en subimagenes. |
KR20220063260A (ko) | 2019-09-24 | 2022-05-17 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 시간적 스케일러빌러티를 위한 픽처 타이밍 및 디코딩 단위 정보 |
WO2021061495A1 (en) | 2019-09-24 | 2021-04-01 | Futurewei Technologies, Inc. | Scalable nesting for suffix sei messages |
KR20220062659A (ko) | 2019-09-24 | 2022-05-17 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 코딩에서 서브레이어에 대한 오류 완화 |
EP4028994A4 (en) | 2019-10-07 | 2023-01-18 | Huawei Technologies Co., Ltd. | VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC) COMPONENT SYNCHRONIZATION |
US11509938B2 (en) | 2019-11-05 | 2022-11-22 | Hfi Innovation Inc. | Method and apparatus of signaling subpicture information in video coding |
WO2021112036A1 (en) * | 2019-12-05 | 2021-06-10 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture timing and decoding unit information in video coding |
WO2021133721A1 (en) | 2019-12-26 | 2021-07-01 | Bytedance Inc. | Techniques for implementing a decoding order within a coded picture |
JP7427176B2 (ja) * | 2019-12-27 | 2024-02-05 | 国立研究開発法人情報通信研究機構 | 無線通信情報更新システム及び無線通信情報更新方法 |
BR112022013594A2 (pt) * | 2020-01-09 | 2022-09-13 | Bytedance Inc | Método e aparelho de processamento de vídeo, método para armazenar um fluxo de bits, e, mídia legível por computador |
WO2021160171A1 (en) | 2020-02-14 | 2021-08-19 | Beijing Bytedance Network Technology Co., Ltd. | Subpicture information signaling in video bitstreams |
BR112022016130A2 (pt) * | 2020-02-14 | 2022-10-04 | Beijing Bytedance Network Tech Co Ltd | Método e aparelho para processar dados de vídeo, e, meio de armazenamento e de gravação legível por computador não transitório |
EP4307677A3 (en) | 2020-02-24 | 2024-04-17 | ByteDance Inc. | Interaction between subpicture and tile row signaling |
WO2021178501A1 (en) | 2020-03-03 | 2021-09-10 | Bytedance Inc. | Controlling a scaling process using slice header signaling |
JP7415035B2 (ja) | 2020-03-17 | 2024-01-16 | バイトダンス インコーポレイテッド | 映像コーディングにおけるピクチャ出力フラグの指示 |
KR20220161427A (ko) * | 2020-03-31 | 2022-12-06 | 엘지전자 주식회사 | 픽처 분할 정보 및 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
US11706428B2 (en) | 2020-04-06 | 2023-07-18 | Tencent America LLC | Method for signaling picture header in coded video stream |
KR20230015390A (ko) | 2020-05-22 | 2023-01-31 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브픽처 서브-비트스트림 추출 프로세스에서의 스케일링 윈도우 |
CN115668931A (zh) | 2020-05-22 | 2023-01-31 | 字节跳动有限公司 | 生成一致性输出子比特流的技术 |
EP4144093A4 (en) | 2020-05-22 | 2023-08-23 | ByteDance Inc. | SIGNALING OF IMAGE INFORMATION IN ACCESS UNITS |
CN115917978A (zh) * | 2020-06-08 | 2023-04-04 | 字节跳动有限公司 | 对解码图片缓冲器的约束 |
WO2021252545A1 (en) | 2020-06-09 | 2021-12-16 | Bytedance Inc. | Signaling constraints in non-scalable nested video syntax elements |
JP7564249B2 (ja) | 2020-06-09 | 2024-10-08 | バイトダンス インコーポレイテッド | 映像コーディングにおける補足強化情報の制約 |
JP7511680B2 (ja) * | 2020-06-09 | 2024-07-05 | バイトダンス インコーポレイテッド | サブピクチャサブビットストリーム抽出プロセスにおける補足エンハンスメント情報の処理 |
BR112022025149A2 (pt) | 2020-06-09 | 2022-12-27 | Bytedance Inc | Método e aparelho de processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios |
US11930295B2 (en) | 2020-09-17 | 2024-03-12 | Lemon Inc. | Handling of non-VCL NAL units in picture unit construction |
EP3972278A1 (en) | 2020-09-17 | 2022-03-23 | Lemon Inc. | Subpicture tracks in coded video |
GB2599171B (en) * | 2020-09-29 | 2024-12-11 | Canon Kk | Method and apparatus for encapsulating video data into a file |
US12041386B2 (en) | 2020-09-29 | 2024-07-16 | Lemon Inc. | Dependent random access point indication in video bitstreams |
US20220109865A1 (en) * | 2020-10-02 | 2022-04-07 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture buffer information for intra random access point picture sub-bitstreams in video coding |
US12143604B2 (en) | 2021-04-15 | 2024-11-12 | Lemon Inc. | Level indicator for sub-picture entity group |
US11695965B1 (en) | 2022-10-13 | 2023-07-04 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video coding using a coded picture buffer |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000046995A1 (en) * | 1999-02-05 | 2000-08-10 | Sony Corporation | Encoding system, encoding method, decoding system, decoding method, multiplexing device, multiplexing method, display system and display method |
RU2229176C2 (ru) * | 2000-06-14 | 2004-05-20 | Жуков Николай Анатольевич | Тепловыделяющая сборка с микротвэлами |
RU2273109C2 (ru) * | 2000-09-07 | 2006-03-27 | Сони Корпорейшн | Способ и устройство обработки информации, программа и носитель записи |
PL358643A1 (en) * | 2001-03-08 | 2004-08-09 | Sony Corporation | Data recorder |
US7532670B2 (en) * | 2002-07-02 | 2009-05-12 | Conexant Systems, Inc. | Hypothetical reference decoder with low start-up delays for compressed image and video |
US7257162B2 (en) | 2002-07-02 | 2007-08-14 | Conexant Systems, Inc. | Hypothetical reference decoder for compressed image and video |
JP4002878B2 (ja) * | 2003-01-17 | 2007-11-07 | 松下電器産業株式会社 | 画像符号化方法 |
US20060153463A1 (en) * | 2003-01-20 | 2006-07-13 | Youji Notoya | Image encoding method |
WO2005055606A1 (en) * | 2003-12-01 | 2005-06-16 | Samsung Electronics Co., Ltd. | Method and apparatus for scalable video encoding and decoding |
US8351514B2 (en) | 2004-01-16 | 2013-01-08 | General Instrument Corporation | Method, protocol, and apparatus for transporting advanced video coding content |
US20050201471A1 (en) * | 2004-02-13 | 2005-09-15 | Nokia Corporation | Picture decoding method |
US8406293B2 (en) | 2004-06-27 | 2013-03-26 | Apple Inc. | Multi-pass video encoding based on different quantization parameters |
JP4091582B2 (ja) | 2004-09-06 | 2008-05-28 | 株式会社東芝 | 動画像符号化装置、及び動画像符号化方法 |
US20060104356A1 (en) | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Timing for decoder buffer examination |
US20060143678A1 (en) | 2004-12-10 | 2006-06-29 | Microsoft Corporation | System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model |
WO2006108917A1 (en) * | 2005-04-13 | 2006-10-19 | Nokia Corporation | Coding, storage and signalling of scalability information |
JP4311570B2 (ja) | 2005-07-01 | 2009-08-12 | 株式会社ソニー・コンピュータエンタテインメント | 再生装置、ビデオ復号装置および同期再生方法 |
WO2007042914A1 (en) | 2005-10-11 | 2007-04-19 | Nokia Corporation | Efficient decoded picture buffer management for scalable video coding |
US7477692B2 (en) | 2005-12-16 | 2009-01-13 | Tut Systems, Inc. | Video encoding for seamless splicing between encoded video streams |
KR100809301B1 (ko) | 2006-07-20 | 2008-03-04 | 삼성전자주식회사 | 엔트로피 부호화/복호화 방법 및 장치 |
US8559510B2 (en) | 2006-08-10 | 2013-10-15 | Canon Kabushiki Kaisha | Image decoding apparatus |
JP2008109637A (ja) | 2006-09-25 | 2008-05-08 | Toshiba Corp | 動画像符号化装置及びその方法 |
MY162367A (en) | 2007-01-05 | 2017-06-15 | Thomson Licensing | Hypothetical reference decoder for scalable video coding |
CN102984544A (zh) | 2007-01-08 | 2013-03-20 | 汤姆森特许公司 | 用于视频流拼接的方法及装置 |
MX2009007696A (es) * | 2007-01-18 | 2009-09-04 | Nokia Corp | Carro de mensajes de informacion de mejoramiento suplementario en formato de carga util de protocolo de transporte en tiempo real. |
BR122012021801A2 (pt) | 2007-10-05 | 2015-08-04 | Thomson Licensing | Aparelho para incorporar informação de usabilidade de vídeo (vui) em um sistema de codificação de vídeo de múltiplas visualizações (mvc) |
JP4577357B2 (ja) * | 2007-12-27 | 2010-11-10 | ソニー株式会社 | 符号化装置及び方法、並びにプログラム |
US8345774B2 (en) * | 2008-01-11 | 2013-01-01 | Apple Inc. | Hypothetical reference decoder |
WO2010021665A1 (en) * | 2008-08-20 | 2010-02-25 | Thomson Licensing | Hypothetical reference decoder |
US8136736B2 (en) * | 2008-12-09 | 2012-03-20 | Vasco Data Security, Inc. | Slim electronic device with detector for unintentional activation |
US20110026593A1 (en) | 2009-02-10 | 2011-02-03 | New Wei Lee | Image processing apparatus, image processing method, program and integrated circuit |
JP5072893B2 (ja) | 2009-03-25 | 2012-11-14 | 株式会社東芝 | 画像符号化方法および画像復号化方法 |
JP4957823B2 (ja) | 2009-04-08 | 2012-06-20 | ソニー株式会社 | 再生装置および再生方法 |
US8948241B2 (en) * | 2009-08-07 | 2015-02-03 | Qualcomm Incorporated | Signaling characteristics of an MVC operation point |
US8731053B2 (en) * | 2009-11-18 | 2014-05-20 | Tektronix, Inc. | Method of multiplexing H.264 elementary streams without timing information coded |
US9992456B2 (en) | 2010-02-24 | 2018-06-05 | Thomson Licensing Dtv | Method and apparatus for hypothetical reference decoder conformance error detection |
US8724710B2 (en) * | 2010-02-24 | 2014-05-13 | Thomson Licensing | Method and apparatus for video encoding with hypothetical reference decoder compliant bit allocation |
US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
CN102055981B (zh) * | 2010-12-31 | 2013-07-03 | 北京大学深圳研究生院 | 用于视频编码器的去块滤波器及其实现方法 |
US9021119B2 (en) * | 2011-01-06 | 2015-04-28 | Sonic Ip, Inc. | Systems and methods for performing adaptive bitrate streaming based upon the delay of each stream and the channel rate |
US9706227B2 (en) * | 2011-03-10 | 2017-07-11 | Qualcomm Incorporated | Video coding techniques for coding dependent pictures after random access |
US9069893B2 (en) | 2011-03-23 | 2015-06-30 | International Business Machines Corporation | Automatic verification of determinism for parallel programs |
US20130170561A1 (en) * | 2011-07-05 | 2013-07-04 | Nokia Corporation | Method and apparatus for video coding and decoding |
US8768079B2 (en) * | 2011-10-13 | 2014-07-01 | Sharp Laboratories Of America, Inc. | Tracking a reference picture on an electronic device |
WO2013109178A1 (en) | 2012-01-20 | 2013-07-25 | Telefonaktiebolaget L M Ericsson (Publ) | Sub-bitstream extraction |
AU2013254214C1 (en) * | 2012-04-23 | 2017-03-02 | Sun Patent Trust | Encoding method, decoding method, encoding apparatus, decoding apparatus, and encoding and decoding apparatus |
ES2703543T3 (es) | 2012-06-25 | 2019-03-11 | Huawei Tech Co Ltd | Método para señalizar una imagen de acceso de capa temporal gradual |
CN115442626A (zh) * | 2012-06-29 | 2022-12-06 | Ge视频压缩有限责任公司 | 视频数据流、编码器、编码视频内容的方法以及解码器 |
IN2015MN00077A (es) | 2012-07-06 | 2015-10-16 | Samsung Electronics Co Ltd | |
US10051311B2 (en) | 2012-07-06 | 2018-08-14 | Sharp Kabushiki Kaisha | Electronic devices for signaling sub-picture based hypothetical reference decoder parameters |
US9648352B2 (en) | 2012-09-24 | 2017-05-09 | Qualcomm Incorporated | Expanded decoding unit definition |
US9351005B2 (en) | 2012-09-24 | 2016-05-24 | Qualcomm Incorporated | Bitstream conformance test in video coding |
-
2013
- 2013-09-20 US US14/033,308 patent/US9648352B2/en active Active
- 2013-09-20 US US14/033,348 patent/US9503753B2/en active Active
- 2013-09-20 US US14/033,141 patent/US9479773B2/en active Active
- 2013-09-20 US US14/033,329 patent/US9479774B2/en active Active
- 2013-09-20 US US14/033,264 patent/US9654802B2/en active Active
- 2013-09-20 US US14/033,191 patent/US9491456B2/en active Active
- 2013-09-23 HU HUE13774009A patent/HUE058715T2/hu unknown
- 2013-09-23 RU RU2015115513A patent/RU2641475C2/ru active
- 2013-09-23 ES ES13771729T patent/ES2885527T3/es active Active
- 2013-09-23 AU AU2013317761A patent/AU2013317761B2/en active Active
- 2013-09-23 HU HUE13771729A patent/HUE055800T2/hu unknown
- 2013-09-23 BR BR112015006486-8A patent/BR112015006486B1/pt active IP Right Grant
- 2013-09-23 BR BR112015006492-2A patent/BR112015006492B1/pt active IP Right Grant
- 2013-09-23 MY MYPI2015700753A patent/MY172354A/en unknown
- 2013-09-23 WO PCT/US2013/061217 patent/WO2014047577A1/en active Application Filing
- 2013-09-23 WO PCT/US2013/061220 patent/WO2014047580A1/en active Application Filing
- 2013-09-23 SG SG11201501580RA patent/SG11201501580RA/en unknown
- 2013-09-23 JP JP2015533251A patent/JP2015533056A/ja active Pending
- 2013-09-23 AU AU2013317767A patent/AU2013317767B2/en active Active
- 2013-09-23 AU AU2013317758A patent/AU2013317758B2/en active Active
- 2013-09-23 JP JP2015533255A patent/JP6092398B2/ja active Active
- 2013-09-23 HU HUE13774005 patent/HUE044912T2/hu unknown
- 2013-09-23 KR KR1020157010472A patent/KR102244410B1/ko active Active
- 2013-09-23 CA CA2884298A patent/CA2884298C/en active Active
- 2013-09-23 UA UAA201503911A patent/UA116997C2/uk unknown
- 2013-09-23 WO PCT/US2013/061224 patent/WO2014047583A1/en active Application Filing
- 2013-09-23 EP EP13774009.8A patent/EP2898687B1/en active Active
- 2013-09-23 CA CA2884302A patent/CA2884302C/en active Active
- 2013-09-23 WO PCT/US2013/061222 patent/WO2014047582A1/en active Application Filing
- 2013-09-23 MY MYPI2015700749A patent/MY182448A/en unknown
- 2013-09-23 ES ES13774006T patent/ES2855129T3/es active Active
- 2013-09-23 KR KR1020157010476A patent/KR101760195B1/ko active Active
- 2013-09-23 EP EP13774006.4A patent/EP2898685B1/en active Active
- 2013-09-23 AU AU2013317763A patent/AU2013317763B2/en active Active
- 2013-09-23 RU RU2015115465A patent/RU2627098C2/ru active
- 2013-09-23 JP JP2015533257A patent/JP6121539B2/ja active Active
- 2013-09-23 MY MYPI2015700756A patent/MY169387A/en unknown
- 2013-09-23 HU HUE13774006A patent/HUE052209T2/hu unknown
- 2013-09-23 ES ES13774009T patent/ES2913456T3/es active Active
- 2013-09-23 CN CN201380049737.6A patent/CN104662916B/zh active Active
- 2013-09-23 SG SG11201501576RA patent/SG11201501576RA/en unknown
- 2013-09-23 MX MX2015003694A patent/MX341441B/es active IP Right Grant
- 2013-09-23 RU RU2015115518A patent/RU2628215C2/ru active
- 2013-09-23 UA UAA201503908A patent/UA114930C2/uk unknown
- 2013-09-23 EP EP13770826.9A patent/EP2898681B1/en active Active
- 2013-09-23 SG SG11201501519QA patent/SG11201501519QA/en unknown
- 2013-09-23 EP EP13774008.0A patent/EP2898686B1/en active Active
- 2013-09-23 CA CA2884447A patent/CA2884447C/en active Active
- 2013-09-23 BR BR112015006479-5A patent/BR112015006479B1/pt active IP Right Grant
- 2013-09-23 SG SG10201707888PA patent/SG10201707888PA/en unknown
- 2013-09-23 ES ES13770826T patent/ES2884724T3/es active Active
- 2013-09-23 KR KR1020157010471A patent/KR101788416B1/ko active Active
- 2013-09-23 MY MYPI2015700748A patent/MY181707A/en unknown
- 2013-09-23 MY MYPI2015700755A patent/MY181871A/en unknown
- 2013-09-23 AU AU2013317764A patent/AU2013317764B2/en active Active
- 2013-09-23 KR KR1020157010477A patent/KR102149072B1/ko active Active
- 2013-09-23 EP EP13771729.4A patent/EP2898683B1/en active Active
- 2013-09-23 JP JP2015533252A patent/JP6239626B2/ja active Active
- 2013-09-23 BR BR112015006481-7A patent/BR112015006481B1/pt active IP Right Grant
- 2013-09-23 EP EP13774005.6A patent/EP2898684B1/en active Active
- 2013-09-23 SG SG11201501520YA patent/SG11201501520YA/en unknown
- 2013-09-23 WO PCT/US2013/061229 patent/WO2014047586A1/en active Application Filing
- 2013-09-23 ES ES13774005T patent/ES2739225T3/es active Active
- 2013-09-23 JP JP2015533254A patent/JP6239627B2/ja active Active
- 2013-09-23 CA CA2884286A patent/CA2884286C/en active Active
- 2013-09-23 BR BR112015006488-4A patent/BR112015006488B1/pt active IP Right Grant
- 2013-09-23 MY MYPI2015700750A patent/MY171506A/en unknown
- 2013-09-23 SG SG11201501578QA patent/SG11201501578QA/en unknown
- 2013-09-23 CN CN201380049577.5A patent/CN104704840B/zh active Active
- 2013-09-23 RU RU2015115463A patent/RU2628196C2/ru active
- 2013-09-23 CN CN201380049555.9A patent/CN104662915B/zh active Active
- 2013-09-23 RU RU2015115521A patent/RU2646378C2/ru active
- 2013-09-23 WO PCT/US2013/061226 patent/WO2014047584A1/en active Application Filing
- 2013-09-23 AU AU2013317765A patent/AU2013317765B2/en active Active
- 2013-09-23 KR KR1020157010478A patent/KR101773268B1/ko active Active
- 2013-09-23 CA CA2883898A patent/CA2883898C/en active Active
- 2013-09-23 CN CN201380049749.9A patent/CN104662917B/zh active Active
- 2013-09-23 CN CN201380049788.9A patent/CN104662919B/zh active Active
- 2013-09-23 JP JP2015533253A patent/JP6224109B2/ja active Active
- 2013-09-23 DK DK13774006.4T patent/DK2898685T3/da active
- 2013-09-23 KR KR1020157010470A patent/KR101743850B1/ko active Active
- 2013-09-23 DK DK13771729.4T patent/DK2898683T3/da active
- 2013-09-23 CN CN201380049782.1A patent/CN104662918B/zh active Active
- 2013-09-23 BR BR112015006480-9A patent/BR112015006480B1/pt active IP Right Grant
- 2013-09-23 CA CA2884289A patent/CA2884289C/en active Active
- 2013-09-23 SG SG11201501518XA patent/SG11201501518XA/en unknown
- 2013-09-23 RU RU2015115466A patent/RU2630374C2/ru active
- 2013-09-24 TW TW102134380A patent/TWI555382B/zh active
- 2013-09-24 AR ARP130103425A patent/AR093239A1/es active IP Right Grant
- 2013-09-24 TW TW102134377A patent/TWI530197B/zh active
- 2013-09-24 TW TW102134384A patent/TWI574549B/zh active
- 2013-09-24 AR ARP130103422A patent/AR093286A1/es active IP Right Grant
- 2013-09-24 TW TW102134378A patent/TWI581611B/zh active
- 2013-09-24 AR ARP130103423A patent/AR093287A1/es active IP Right Grant
- 2013-09-24 TW TW102134382A patent/TWI569626B/zh active
- 2013-09-24 TW TW102134379A patent/TWI524779B/zh active
-
2015
- 2015-03-05 PH PH12015500479A patent/PH12015500479B1/en unknown
- 2015-03-09 PH PH12015500511A patent/PH12015500511B1/en unknown
- 2015-03-09 PH PH12015500510A patent/PH12015500510B1/en unknown
- 2015-03-11 IL IL237680A patent/IL237680B/en active IP Right Grant
- 2015-03-11 IL IL237682A patent/IL237682A/en active IP Right Grant
- 2015-03-11 IL IL237681A patent/IL237681B/en active IP Right Grant
- 2015-03-11 IL IL237679A patent/IL237679A/en active IP Right Grant
- 2015-03-12 IL IL237697A patent/IL237697A/en active IP Right Grant
- 2015-03-12 IL IL237696A patent/IL237696A/en active IP Right Grant
- 2015-03-12 PH PH12015500537A patent/PH12015500537B1/en unknown
- 2015-03-17 PH PH12015500580A patent/PH12015500580B1/en unknown
- 2015-03-18 PH PH12015500593A patent/PH12015500593B1/en unknown
- 2015-04-09 ZA ZA201502382A patent/ZA201502382B/en unknown
- 2015-04-14 ZA ZA2015/02492A patent/ZA201502492B/en unknown
- 2015-04-14 ZA ZA2015/02491A patent/ZA201502491B/en unknown
- 2015-04-20 ZA ZA2015/02641A patent/ZA201502641B/en unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2913456T3 (es) | Tiempos de llegada y de extracción nominal en memoria intermedia de imágenes codificadas en la codificación de vídeo | |
CA2884560C (en) | Error resilient decoding unit association | |
ES2884723T3 (es) | Señalización de regiones de interés y actualización de decodificación gradual en la codificación de video | |
ES2707892T3 (es) | Operaciones de almacenamiento en memoria intermedia de vídeo para acceso aleatorio en la codificación de vídeo | |
ES2856099T3 (es) | Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo | |
BR112015006440B1 (pt) | Indicação e ativação de conjuntos de parâmetros para codificação de vídeo |