ES2777214T3 - Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo - Google Patents

Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo Download PDF

Info

Publication number
ES2777214T3
ES2777214T3 ES14702671T ES14702671T ES2777214T3 ES 2777214 T3 ES2777214 T3 ES 2777214T3 ES 14702671 T ES14702671 T ES 14702671T ES 14702671 T ES14702671 T ES 14702671T ES 2777214 T3 ES2777214 T3 ES 2777214T3
Authority
ES
Spain
Prior art keywords
image
recovery point
poc value
video
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14702671T
Other languages
English (en)
Inventor
Ye-Kui Wang
Adarsh Krishnan Ramasubramonian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2777214T3 publication Critical patent/ES2777214T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

Un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento: recibir una pluralidad de imágenes de un flujo de bits de vídeo codificado; recibir, desde el flujo de bits de vídeo codificado, un mensaje de información de mejora suplementaria (SEI) del punto de recuperación incluido en una unidad de acceso (AU) que también incluye una primera imagen de la pluralidad de imágenes, incluyendo el mensaje SEI del punto de recuperación información que indica un valor de recuento de orden de imágenes (POC) de una imagen del punto de recuperación de un conjunto de imágenes de refresco gradual del descodificador (GDR) de la pluralidad de imágenes, estando disponible la imagen del punto de recuperación para la descodificación de acceso aleatorio de manera que las imágenes descodificadas en el punto de recuperación o posteriores al mismo en el orden de salida especificado en el mensaje SEI del punto de recuperación se indica que son correctas o aproximadamente correctas en contenido; basándose en una determinación de que una imagen, que sigue a una primera imagen en orden de descodificación, tiene un valor POC que es igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación, determinar que la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación es la imagen del punto de recuperación determinada que está disponible para la descodificación de acceso aleatorio y produce el contenido correcto o aproximadamente correcto, o basándose en la determinación de que ninguna imagen de la pluralidad de imágenes, que sigue a la primera imagen en orden de descodificación, tiene un valor POC que es igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación, determinar que la primera imagen en el orden de descodificación de la pluralidad de imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación es la imagen del punto de recuperación determinada que está disponible para la descodificación de acceso aleatorio, de tal manera que las imágenes descodificadas en o después del punto de recuperación en el orden de salida especificado en el mensaje SEI del punto de recuperación son correctas o aproximadamente correctas en contenido; y realizar la descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación determinado iniciando la descodificación desde la unidad de acceso asociada con el punto de recuperación determinado.

Description

DESCRIPCIÓN
Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo
CAMPO TÉCNICO
[0001] Esta divulgación se refiere a la codificación de vídeo y, más particularmente, a técnicas para codificar vídeo de acuerdo con el refresco gradual de descodificación (GDR, gradual decoding refresh).
ANTECEDENTES
[0002] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, que incluye televisores digitales, sistemas de radiodifusión digital directa, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, tabletas electrónicas, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, parte 10, codificación de vídeo avanzada (AVC), la norma de codificación de vídeo de alta eficacia (HEVC) actualmente en desarrollo 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 con más eficacia implementando dichas técnicas de compresión de vídeo.
[0003] Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (entre imágenes) 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 (por ejemplo, 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 muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo de un fragmento intercodificado (P o B) de una imagen pueden 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 pueden denominarse tramas, y las imágenes de referencia pueden denominarse tramas de referencia.
[0004] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con una modalidad de intracodificación y datos residuales. Para una mayor compresión, los datos residuales pueden transformarse desde el dominio del píxel a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que a continuación se pueden cuantificar. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una formación bidimensional, pueden escanearse con el fin de producir un vector unidimensional de coeficientes de transformada, y puede aplicarse codificación por entropía para lograr más compresión.
SUMARIO
[0005] En general, esta divulgación describe técnicas para codificar flujos de bits de vídeo adaptables temporalmente a escala mientras que admite operaciones de refresco gradual de descodificación (GDR).
[0006] En un ejemplo, un procedimiento para descodificar datos de vídeo incluye recibir una pluralidad de imágenes de un flujo de bits de vídeo codificado, recibir, del flujo de bits de vídeo codificado, un mensaje asociado con una primera imagen de la pluralidad de imágenes, información que indica un valor de recuento de orden de imagen (POC) de una imagen del punto de recuperación de un conjunto de refresco gradual del descodificador (GDR), cuando una imagen que sigue a la primera imagen en el orden de descodificación tiene el valor POC igual a un valor POC de la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una imagen del punto de recuperación, y cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al valor POC de la imagen del punto de recuperación, identificar una de las imágenes que tienen un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0007] En otro ejemplo, un dispositivo para descodificar datos de vídeo incluye una memoria configurada para almacenar datos de vídeo codificados y un descodificador de vídeo. En este ejemplo, el descodificador de vídeo está configurado para recibir una pluralidad de imágenes de los datos de vídeo codificados, recibir, en un mensaje asociado con una primera imagen de la pluralidad de imágenes, información que indica un valor POC de una imagen del punto de recuperación de un conjunto de refresco gradual de descodificador (GDR), cuando una imagen que sigue a la primera imagen en el orden de descodificación tiene el valor POC igual a un valor POC de la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una imagen del punto de recuperación, y cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al valor POC de la imagen del punto de recuperación, identificar una de las imágenes que tenga un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0008] En otro ejemplo, un medio de almacenamiento legible por ordenador ha almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que un procesador de un dispositivo informático reciba una pluralidad de imágenes de un flujo de bits de vídeo codificado, reciba, del flujo de bits de vídeo codificado, un mensaje asociado con un primera imagen de la pluralidad de imágenes, información que indica un valor POC de una imagen del punto de recuperación de un conjunto de refresco gradual del descodificador (GDR), cuando una imagen que sigue a la primera imagen en el orden de descodificación tiene el valor POC igual a un valor POC de la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una imagen del punto de recuperación, y cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al valor POC de la imagen del punto de recuperación, identificar una de las imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0009] En otro ejemplo, un dispositivo para descodificar datos de vídeo incluye medios para recibir una pluralidad de imágenes de un flujo de bits de vídeo codificado, medios para recibir, desde el flujo de bits de vídeo codificado un mensaje asociado con una primera imagen de la pluralidad de imágenes, información que indica un valor POC de una imagen del punto de recuperación de un conjunto de refresco gradual del descodificador (GDR), medios para identificar, cuando una imagen que sigue a la primera imagen en el orden de descodificación tiene el valor POC igual a un valor POC de la imagen del punto de recuperación, la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una imagen del punto de recuperación, y medios para identificar, cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al valor POC del punto de recuperación imagen, una de las imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0010] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción y de los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0011]
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 implementar una o más 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 una o más 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 una o más técnicas descritas en esta divulgación.
La FIG. 4 es un diagrama conceptual que ilustra un conjunto de refresco gradual de descodificación (GDR) de ejemplo que incluye una imagen del punto de recuperación, de acuerdo con uno o más aspectos de esta divulgación.
La FIG. 5 es un diagrama conceptual que ilustra un conjunto de refresco gradual de descodificación (GDR) de ejemplo del que se ha eliminado una imagen del punto de recuperación debido a la adaptabilidad temporal a escala, de acuerdo con uno o más aspectos de esta divulgación.
La FIG. 6 es un diagrama de flujo que ilustra un proceso de ejemplo, que un descodificador de vídeo y/o sus componentes pueden realizar para descodificar los datos de vídeo codificados, de acuerdo con uno o más aspectos de esta divulgación.
La FIG. 7 es un diagrama de flujo que ilustra un proceso de ejemplo, que el descodificador de vídeo y/o sus componentes pueden realizar para descodificar los datos de vídeo codificados, de acuerdo con uno o más aspectos de esta divulgación.
DESCRIPCIÓN DETALLADA
[0012] En general, las técnicas de esta divulgación están orientadas a la codificación de datos de vídeo usando el refresco gradual de descodificación (GDR), admitiendo al mismo tiempo la adaptabilidad temporal a escala de los datos de vídeo codificados. De acuerdo con diversos ejemplos de esta divulgación, un dispositivo de codificación de vídeo puede utilizar los mensajes proporcionados por el mecanismo de información de mejora suplementaria (SEI), admitidos por ambos estándares AVC y HEVC, para permitir operaciones de GDR, admitiendo al mismo tiempo la adaptabilidad temporal a escala. De esta manera, las técnicas de esta divulgación pueden ofrecer la ventaja potencial de permitir que los dispositivos de codificación de vídeo hagan uso de las infraestructuras existentes de hardware, software y comunicación, mejorando al mismo tiempo la codificación basada en GDR para admitir la adaptabilidad temporal a escala.
[0013] Un borrador reciente de la norma de HEVC, denominado "HEVC Working Draft 10 [Borrador de trabajo 10 de HEVC]" o "WD10", se describe en el documento JCTVC-H1003v34, de Bross y otros, titulado "High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call) [Especificación textual de la codificación de vídeo de alta eficiencia (HEVC), Borrador 10 (para FDIS y Última Llamada)]", Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12a conferencia: Ginebra, Suiza, 14 al 23 de enero de 2013, que, a partir del 6 de junio de 2013 puede descargarse desde: http://phenix.intevrv.fr/ict/doc end user/documents/12 Geneva/wg11/JCTVC-L1003-v34.zip. Sin embargo, este documento fue publicado después de la fecha anterior más temprana.
[0014] El estándar AVC (UIT-T) H.264 se describe en la Recomendación UIT-T H.264, Codificación de Vídeo Avanzada para servicios audiovisuales genéricos, del Grupo de Estudio de la UIT-T, y con fecha de marzo de 2005, que se puede denominar en el presente documento el estándar H.264 o la especificación H.264, o el estándar o especificación H.264/AVC. El equipo de vídeo conjunto (JVT) continúa trabajando en extensiones para H.264/MPEG-4 AVC.
[0015] Un borrador de trabajo (WD) reciente de HEVC y denominado HEVC WD9 en adelante en el presente documento, está disponible en http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCT-VC-K1003-v8.zip. El docum ento HEVC WD9 (BROSS y otros, "High efficiency video coding (HEVC) text specification draft 9 [Especificación textual de codificación de vídeo de alta eficiencia (HEVC) Borrador 9]", Documento JCTVC-K1003_v7, 11a reunión: Shanghái, CN, 10-19 de octubre de 2012, 290 págs.) es otra versión de este documento.
[0016] El documento HEVC WD9 describe operaciones de codificación para admitir la codificación de datos de vídeo usando GDR. GDR puede permitir a un dispositivo codificar un conjunto de imágenes, tal como una secuencia o serie de imágenes dispuestas en orden de descodificación. Dicha secuencia de imágenes se denomina en el presente documento "conjunto de imágenes GDR" o "conjunto GDR". Al atravesar todo el conjunto GDR (por ejemplo, al llegar al final del conjunto GDR), el dispositivo de codificación de vídeo puede acceder aleatoriamente a una o más imágenes codificadas que siguen al conjunto, en orden de descodificación. En varios ejemplos, el dispositivo de codificación de vídeo puede descodificar de manera correcta o precisa la totalidad de la última imagen del conjunto GDR. En tales ejemplos, la primera imagen del conjunto GDR puede representar una "imagen GDR" y la última imagen en el conjunto GDR puede representar una "imagen del punto de recuperación". Una imagen del punto de recuperación puede, a su vez, representar una imagen en la que la imagen completa se incluye en una región "refrescada" o "primer plano". Por lo tanto, la imagen se refresca gradualmente sobre una serie de imágenes en el conjunto GDR hasta que, en la imagen del punto de recuperación, la imagen se ha refrescado por completo. El dispositivo de codificación de vídeo puede determinar los límites del conjunto GDR, así como otra información perteneciente al conjunto GDR, usando mensajes SEI particulares, tales como un mensaje SEI de "punto de recuperación" y/o un mensaje SEI de "información de refresco de región".
[0017] Además, ambos estándares AVC y HEVC admiten la adaptabilidad temporal a escala de flujos de bits de vídeo. La adaptabilidad temporal a escala puede permitir a un dispositivo de codificación de vídeo determinar que un subconjunto de datos de vídeo codificados se puede extraer de un flujo de bits completo de datos de vídeo codificados. Un subconjunto de ese tipo de datos de vídeo codificados (por ejemplo, imágenes codificadas), extraídos de un flujo de bits completo, según la adaptabilidad temporal a escala, puede denominarse un "subconjunto temporal." A su vez, la adaptabilidad temporal a escala, según el soporte prestado por los estándares AVC y HEVC, puede permitir a un dispositivo de codificación de vídeo determinar múltiples subconjuntos temporales a partir de un flujo de bits completo, de manera que los diferentes subconjuntos temporales incluyan números variables de imágenes codificadas. Un subconjunto temporal inferior, o “más aproximado”, puede incluir un número menor de imágenes codificadas a partir del flujo de bits completo, y puede representar una velocidad inferior de imágenes o una velocidad inferior de tramas. A la inversa, un subconjunto temporal superior, o “más fino”, puede incluir un mayor número de imágenes codificadas a partir del flujo de bits completo, y puede representar una velocidad superior de imágenes o una velocidad superior de tramas. El documento borrador del 3GPP; S4-121322 Descripción general de la sintaxis de alto nive1HEVC y la gestión de imágenes de referencia, R. Sjoberg y otros describe algunos escenarios en los que se eliminan algunas unidades de NAL y capas temporales.
[0018] Los dispositivos de codificación de vídeo configurados para aplicar las implementaciones existentes de la codificación basada en GDR de flujos de bits adaptables temporalmente a escala pueden encontrarse con, o presentar, una o más inexactitudes potenciales con respecto al conjunto GDR. Por ejemplo, de acuerdo con las implementaciones existentes de GDR, un elemento de sintaxis incluido en el mensaje SEI del punto de recuperación puede indicar una cantidad de imágenes codificadas consecutivas, siguiendo a la imagen GDR en orden de descodificación, que forman el conjunto GDR. En consecuencia, en casos en los que un codificador señaliza un subconjunto temporal, el número de imágenes codificadas consecutivas en el conjunto GDR, según lo indicado por el elemento sintáctico del mensaje SEI del punto de recuperación, puede ser inexacto. Por ejemplo, debido a que el subconjunto temporal representa un número menor de imágenes codificadas que el flujo de bits completo u otra capa temporal superior, una o más imágenes codificadas del conjunto GDR original pueden estar ausentes del subconjunto temporal que realmente recibe el descodificador. El subconjunto temporal puede ser extraído, por ejemplo, por un elemento de red intermedio que recibe un conjunto temporal completo. El elemento de red intermedio proporciona el subconjunto temporal extraído a un dispositivo cliente que incluye un descodificador. Como otro ejemplo, un servidor puede extraer subconjuntos temporales o almacenar múltiples subconjuntos temporales para la entrega a un dispositivo cliente que incluye un descodificador.
[0019] Sin embargo, el elemento sintáctico que indica el número de imágenes en el conjunto GDR no se puede actualizar dinámicamente para reflejar el número reducido de imágenes codificadas en el conjunto GDR correspondiente del subconjunto temporal extraído. En consecuencia, puede haber un desajuste entre el número de imágenes codificadas consecutivas, que forman el conjunto GDR para la capa temporal superior, y el número de imágenes codificadas consecutivas en un conjunto GDR correspondiente de una capa temporal inferior extraído de las mismas. Por ejemplo, la imagen del punto de recuperación indicada por el mensaje SEI del punto de recuperación puede haberse descartado durante la extracción del subconjunto temporal que constituye la capa temporal inferior. En este ejemplo, la imagen del punto de recuperación indicada puede "no existir" con respecto a la capa temporal inferior que constituye el flujo de bits de vídeo codificado señalizado recibido por el descodificador. Como resultado, debido a la ausencia de una o más imágenes en un conjunto GDR en el caso de extracción temporal de subflujo de bits, las operaciones GDR pueden no funcionar correctamente en el lado del descodificador.
[0020] Para aliviar o potencialmente eliminar tales imprecisiones de la codificación basada en GDR con respecto a los flujos de bits adaptables temporalmente a escala, las técnicas de esta divulgación pueden permitir que un dispositivo de codificación de vídeo identifique una imagen del punto de recuperación, independientemente de si la imagen del punto de recuperación que se indica en el mensaje SEI del punto de recuperación existe en el flujo de bits de vídeo codificado realmente recibido por el descodificador. Por ejemplo, el dispositivo de descodificación de vídeo puede determinar si un flujo de bits de vídeo codificado incluye una imagen codificada que tiene el valor POC de una imagen del punto de recuperación, donde el valor POC se indica en un mensaje SEI del punto de recuperación incluido en el flujo de bits. Si el dispositivo de codificación de vídeo detecta una imagen codificada en el flujo de bits con el valor POC indicado en el mensaje SEI del punto de recuperación, el dispositivo de codificación de vídeo puede identificar la imagen detectada como la imagen del punto de recuperación. Además, en este ejemplo, el dispositivo de codificación de vídeo puede determinar que la imagen del punto de recuperación identificada también forma la última imagen del conjunto GDR.
[0021] Por otro lado, si un dispositivo de codificación de vídeo, que implementa las técnicas descritas en el presente documento, no detecta una imagen en el flujo de bits recibido que tiene el valor POC indicado en el mensaje SEI del punto de recuperación (es decir, el valor POC de la imagen del punto de recuperación), el dispositivo de codificación de vídeo puede identificar, como la imagen del punto de recuperación, una imagen recibida por el descodificador que tiene un valor POC mayor que el valor POC indicado en el mensaje SEI del punto de recuperación. Por ejemplo, el dispositivo de codificación de vídeo puede identificar la imagen del punto de recuperación como la primera imagen del flujo de bits, en orden de descodificación, que tiene un valor POC mayor que el valor POC indicado en el mensaje SEI del punto de recuperación. Además, en este escenario, el dispositivo de codificación de vídeo puede identificar una imagen que se recibe en el flujo de bits y que precede inmediatamente a la imagen del punto de recuperación identificada como la última imagen en el conjunto GDR. Por ejemplo, la imagen del flujo de bits que precede inmediatamente a la imagen del punto de recuperación identificada puede ser la imagen que tiene un valor POC que es menor y más cercano al valor POC de la imagen del punto de recuperación identificada.
[0022] En otras palabras, en este escenario, el dispositivo de codificación de vídeo puede identificar dos imágenes diferentes como la última imagen en el conjunto GDR y la imagen del punto de recuperación. Por ejemplo, en este escenario, la última imagen en el conjunto GDR y la imagen del punto de recuperación pueden ser dos imágenes consecutivas, en orden de descodificación, incluidas en el flujo de bits de vídeo codificado. De esta manera, una o más técnicas de esta divulgación pueden permitir que un dispositivo de codificación de vídeo descodifique un conjunto de imágenes recibidas de acuerdo con GDR, mientras que también admite flujos de bits de vídeo adaptables a escala temporalmente. Por ejemplo, al identificar la imagen del punto de recuperación como una imagen que sigue a la imagen identificada originalmente en orden de descodificación, el dispositivo de codificación de vídeo puede seleccionar una imagen que está completamente refrescada, ya que la imagen seleccionada se coloca posteriormente a una imagen completamente refrescada del flujo de bits generado originalmente.
[0023] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo 10 de ejemplo que puede utilizar las técnicas descritas en la presente divulgación. 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 momento posterior. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluidos ordenadores de escritorio, ordenadores plegables (es decir, portátiles), ordenadores de tableta, 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.
[0024] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se van a descodificar por medio de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de transferir los datos de vídeo codificados desde el dispositivo de origen 12 hasta el 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ámbrica o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global, tal como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 hasta el dispositivo de destino 14.
[0025] De forma alternativa, los datos codificados se pueden emitir desde la interfaz de salida 22 a un dispositivo de almacenamiento 31. De forma similar, una interfaz de entrada puede acceder a los datos codificados del dispositivo de almacenamiento 31. El dispositivo de almacenamiento 31 puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso distribuido o local, tales como una unidad de disco duro, discos Blu-ray, DVD, CD-ROM, una memoria flash, una 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 31 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 31 a través de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectados en red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión wifi), una conexión por cable (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento 31 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas cosas.
[0026] Las técnicas de la presente divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo como apoyo a 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, a través 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 prestar soporte a una transmisión de vídeo unidireccional o bidireccional, a fin de prestar soporte a aplicaciones tales como la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo y/o la videotelefonía.
[0027] 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 captación de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene vídeo captado previamente, una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen, o una combinación de dichas fuentes. En un ejemplo, si la fuente de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o por cable.
[0028] El vídeo captado, precaptado o generado por ordenador puede ser codificado por el codificador de vídeo 20. 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 de forma adicional (o alternativa) en el dispositivo de almacenamiento 31 para un posterior acceso por el dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
[0029] El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificados a través del enlace 16. Los datos de vídeo codificados transmitidos a través del enlace 16, o proporcionados en el dispositivo de almacenamiento 31, pueden incluir una diversidad de elementos sintácticos 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 sintácticos se pueden incluir con los datos de vídeo codificados, transmitidos en un medio de comunicación, almacenados en un medio de almacenamiento o almacenados en un servidor de archivos.
[0030] El dispositivo de visualización 32 se puede integrar con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también estar configurado para 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 visualiza los datos de vídeo descodificados ante un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0031] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una norma de compresión de vídeo, tal como la norma de codificación de vídeo de alta eficacia (HEVC), actualmente en desarrollo, y pueden cumplir con el modelo de prueba de HEVC (HM). De forma alternativa, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con otras normas privadas o industriales, tales como la norma ITU-T H.264, denominada de forma alternativa MPEG-4, parte 10, codificación avanzada de vídeo (AVC), o extensiones de dichas normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de compresión de vídeo incluyen MPEG-2 e ITU-T H.263.
[0032] Aunque no se muestra en la figura 1, en algunos aspectos, tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden 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 pueden ajustarse al protocolo de multiplexor ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0033] Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden implementar como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio legible por ordenador, y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden incluir en uno o más codificadores o descodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0034] El JCT-VC está trabajando en el desarrollo de la norma HEVC. Los esfuerzos de normalización de la HEVC se basan en un modelo en evolución de un dispositivo de codificación de vídeo, denominado modelo de prueba de la HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo respecto a los dispositivos existentes, de acuerdo con, por ejemplo, la norma ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificación mediante intrapredicción, e1HM puede proporcionar hasta treinta y tres modos de codificación mediante intrapredicción.
[0035] 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 luminancia como de crominancia. 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 puede dividirse en uno o más fragmentos. Cada bloque de árbol puede dividirse en unidades de codificación (CU) de acuerdo con un árbol cuaternario. Por ejemplo, un bloque de árbol, tal como un nodo raíz del árbol cuaternario, puede dividirse en cuatro nodos hijo, y cada nodo hijo puede, a su vez, ser un nodo padre y dividirse en otros cuatro nodos hijo. Un nodo hijo final, no dividido, tal como un nodo hoja del árbol cuaternario, comprende un nodo de codificación, es decir, un bloque de vídeo codificado. Los datos sintácticos asociados a un flujo de bits codificado pueden definir un número máximo de veces que puede dividirse un bloque de árbol, y también pueden definir un tamaño mínimo de los nodos de codificación.
[0036] Una CU puede incluir un bloque de codificación de luma y dos bloques de codificación de croma. La CU puede tener unidades de predicción (PU) y unidades de transformación (TU) asociadas. Cada una de las PU puede incluir un bloque de predicción de luma y dos bloques de predicción de croma, y cada una de las TU puede incluir un bloque de transformación de luma y dos bloques de transformación de croma. Cada uno de los bloques de codificación puede dividirse en uno o más bloques de predicción que comprenden bloques para muestras a las que se aplica la misma predicción. Cada uno de los bloques de codificación también puede dividirse en uno o más bloques de transformación que comprenden bloques de muestra, sobre los que se aplica la misma transformación.
[0037] 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 definir una o más PU y una o más TU. Los datos sintácticos incluidos en una CU pueden describir, por ejemplo, la división del bloque de codificación en uno o más bloques de predicción. 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. Los bloques de predicción pueden dividirse para que tengan forma cuadrada o no cuadrada. Los datos sintácticos incluidos en una CU también pueden describir, por ejemplo, la división del bloque de codificación en uno o más bloques de transformación, de acuerdo con un árbol cuaternario. Los bloques de transformación pueden dividirse para que tengan forma cuadrada o no cuadrada.
[0038] La norma HEVC admite 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 no sea siempre así. Las TU son típicamente del mismo tamaño o de un tamaño más pequeño que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades más pequeñas usando una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos de hoja del RQT pueden representar las TU. Los valores de diferencias de píxeles asociados a las TU pueden transformarse para generar coeficientes de transformada, que pueden cuantificarse.
[0039] 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.
[0040] En general, se usa una TU para los procedimientos de transformada y cuantificación. Una CU dada que tiene una o más PU también puede incluir una o más TU. Después de la predicción, el codificador 20 de vídeo 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 luego 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 en serie para la codificación por entropía. El nodo de codificación puede, una vez más, actualizarse para referirse a estos coeficientes de transformada en serie. Esta divulgación usa típicamente el término "bloque de vídeo" para referirse 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.
[0041] 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 sintácticos en una cabecera del GOP, una cabecera de una o más de las imágenes, o en otras ubicaciones, que describen una serie de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintácticos de fragmento que describen un modo de codificación para el fragmento respectivo. El codificador de vídeo 20 actúa típicamente en bloques de vídeo dentro de fragmentos de vídeo individuales a fin de 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.
[0042] En un ejemplo, el HM admite la predicción en diversos tamaños de PU. Si se supone que el tamaño de una CU particular es 2Nx2N, el HM admite la intrapredicción en tamaños de PU de 2Nx2N o NxN, así como la interpredicción en tamaños de PU simétricas de 2Nx2N, 2NxN, Nx2N o NxN. E1HM 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 entre un 25 % y un 75 %. La parte de la CU correspondiente a la división del 25 % está indicada por una "n" seguida de una indicación de "arriba", "abajo", "izquierda" o "derecha". Así pues, por ejemplo, "2NxnU" se refiere a una CU de tamaño 2Nx2N que está dividida horizontalmente, con una PU de tamaño 2Nx0,5N encima y una PU de tamaño 2Nx1,5N debajo.
[0043] En la presente divulgación, "NxN" y "N por N" se pueden usar de manera intercambiable para hacer referencia a las dimensiones de píxeles de un bloque de vídeo en términos de 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 tamaño 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.
[0044] Tras la codificación intrapredictiva o interpredictiva, usando las PU de una CU, el codificador 20 de vídeo puede calcular datos residuales a los que se apliquen 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 20 de vídeo puede formar los datos residuales para la CU, y a continuación transformar los datos residuales para producir coeficientes de transformada.
[0045] Seguidamente a 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 unos 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 con algunos, o la totalidad, de los coeficientes. Por ejemplo, un valor de n bits puede redondearse a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0046] 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 en serie que se pueda 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 la sintaxis (SBAC), la codificación por entropía de división de intervalos de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador de vídeo 20 también puede realizar la codificación por entropía de los elementos sintácticos 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.
[0047] 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 codificación CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo 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 forma, el uso de la VLC puede lograr 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.
[0048] El codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden implementar las técnicas de esta divulgación para codificar datos de vídeo de acuerdo con el refresco gradual de descodificación (GDR), admitiendo al mismo tiempo flujos de bits adaptables temporalmente a escala. El codificador de vídeo 20 puede estar configurado, o ser accionable de otra manera, para codificar una serie o secuencia de imágenes para formar un conjunto GDR. Por ejemplo, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden determinar que cada imagen del conjunto GDR se refresque gradualmente a través de la intracodificación de una parte respectiva de la imagen. A medida que se intrarefrescan sucesivamente diferentes partes en la serie de imágenes que forman el conjunto GDR, se puede refrescar por completo una última imagen del conjunto GDR (y una o más imágenes posteriores). A su vez, el codificador de vídeo 20 puede señalizar el conjunto GDR, como parte de un flujo de bits de vídeo codificado, al descodificador de vídeo 30.
[0049] Uno o ambos del codificador de vídeo 20 y el descodificador de vídeo 30 pueden identificar el conjunto GDR como una secuencia de imágenes que comienza en una primera imagen GDR, e incluye una o más imágenes que siguen a la primera imagen GDR en orden de descodificación. Además, para identificar el conjunto GDR, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden identificar la imagen GDR como una imagen asociada con un mensaje SEI del punto de recuperación. Por ejemplo, el codificador de vídeo 20 puede generar el mensaje SEI del punto de recuperación para incluir un elemento de sintaxis "recovery_poc_cnt". El codificador de vídeo 20 puede generar el elemento de sintaxis recovery_poc_cnt para tener un valor que indique una diferencia, o delta, entre el valor POC de la primera imagen GDR y la imagen del punto de recuperación asociada con el mismo conjunto GDR. La imagen del punto de recuperación típicamente será la última imagen en el conjunto GDR original preparado por el codificador de vídeo 20.
[0050] El codificador de vídeo 20 también puede generar y señalizar un mensaje SEI de información de refresco de región que incluye información sobre regiones de imágenes refrescadas y no refrescadas en el conjunto GDR, de acuerdo con GDR. Por ejemplo, el codificador de vídeo 20 puede señalizar un mensaje SEI de información de refresco de región con respecto a cada imagen codificada del conjunto GDR. A su vez, el descodificador de vídeo 30 puede descodificar cada mensaje SEI de información de refresco de región para determinar una región refrescada de la imagen correspondiente. Por ejemplo, el codificador de vídeo 20 puede señalizar un respectivo mensaje SEI de información de refresco de región en la AU correspondiente a cada imagen del conjunto GDR. En varios ejemplos, el descodificador de vídeo 30 puede descodificar el mensaje SEI de información de refresco de región correspondiente a la última imagen en el conjunto GDR para determinar que la imagen completa corresponde a una región refrescada. En otras palabras, en tales ejemplos, el descodificador de vídeo 30 puede determinar que la última imagen en el conjunto GDR está "completamente refrescada", basándose en la descodificación del mensaje SEI de información de refresco de región señalizado en la misma AU que la imagen por el codificador de vídeo 20. En la Tabla 1 a continuación, se ilustra una visión general de los mensajes SEI, tal como se admite en un borrador de trabajo de la HEVC (por ejemplo, "WD9").
Tabla 1. Visión general de Mensajes SEI
Figure imgf000010_0001
[0051] En la tabla de sintaxis 1 a continuación se ilustran la sintaxis y la semántica para el mensaje SEI del punto de recuperación, tal como se admite en el documento HEVC WD9.
Tabla de sintaxis 1
Figure imgf000011_0002
[0052] En la tabla de sintaxis 2 a continuación se ilustran la sintaxis y la semántica para el mensaje SEI de refresco de región, tal como se admite en el documento HEVC WD9.
Tabla de sintaxis 2
Figure imgf000011_0001
[0053] El descodificador de vídeo 30 puede detectar el inicio de un conjunto GDR basado en la detección del mensaje SEI del punto de recuperación en el flujo de bits de vídeo codificado recibido. Además, el descodificador de vídeo 30 puede identificar la imagen codificada asociada con el mensaje SEI del punto de recuperación como la primera imagen GDR. Por ejemplo, el mensaje SEI del punto de recuperación puede asociarse con una imagen particular en virtud de estar incluido en la misma unidad de acceso (AU) que la imagen. A su vez, el descodificador de vídeo 30 puede aplicar el valor del elemento sintáctico recovery_poc_cnt al valor POC de la imagen GDR, para determinar el valor POC de la imagen del punto de recuperación. Al detectar la imagen del punto de recuperación aplicando el valor POC obtenido, el descodificador de vídeo 30 puede determinar que la imagen del punto de recuperación es una imagen completamente refrescada, y que la imagen del punto de recuperación, así como una o más imágenes que siguen a la imagen del punto de recuperación en orden de descodificación, puede descodificarse (por ejemplo, intradescodificarse) correctamente o aproximadamente correctamente.
[0054] Además, el descodificador de vídeo 30 puede descodificar uno o más mensajes SEI de información de refresco de región señalizados en el flujo de bits, para obtener información sobre regiones de imágenes refrescadas y no refrescadas en el conjunto GDR. Por ejemplo, el descodificador de vídeo 30 puede descodificar un mensaje SEI de información de refresco de región separado con respecto a cada imagen en el conjunto GDR. Como ejemplo, el descodificador de vídeo 30 puede descodificar un mensaje SEI de información de refresco de región respectivo incluido en cada AU que incluye una imagen correspondiente del conjunto GDR. A su vez, el descodificador de vídeo 30 puede determinar una región refrescada (y/o viceversa, una región no refrescada) de una imagen particular, en base a los datos obtenidos de la descodificación de un mensaje SEI de información de refresco de región correspondiente a la imagen particular. Al descodificar un mensaje SEI de información de refresco de región que indica que la totalidad de la imagen asociada corresponde a una región refrescada, el descodificador de vídeo 30 puede determinar que la imagen asociada está completamente refrescada. Por ejemplo, el descodificador de vídeo 30 puede determinar que la imagen completamente refrescada forma una última imagen en el conjunto GDR. Basándose en la determinación de que una imagen es la última imagen en el conjunto GDR, y determinando así que la imagen está completamente refrescada, el descodificador de vídeo 30 puede determinar que la última imagen en el conjunto GDR, así como una o más imágenes que siguen a la última imagen en el conjunto GDR en orden de descodificación, se puede descodificar (por ejemplo, intradescodificar) correctamente o aproximadamente correctamente. Típicamente, el descodificador de vídeo 30 determina que una imagen del punto de recuperación identificada por el mensaje SEI del punto de recuperación es igual que una última imagen en el mismo conjunto GDR, como se identifica por un mensaje SEI de información de refresco de región correspondiente que indica un estado completamente refrescado.
[0055] Además, según el documento HEVC WD9, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden admitir la adaptabilidad temporal a escala de flujos de bits de vídeo codificado. Por ejemplo, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden admitir diferentes velocidades de imagen (o "velocidades de tramas") proporcionadas por los diferentes flujos de bits de vídeo codificado. Por ejemplo, el codificador de vídeo 20 puede señalizar un flujo de bits de vídeo codificado completo que representa una capa temporal superior. Para admitir una velocidad de imagen temporal más baja que un flujo de bits de vídeo codificado completo, el descodificador de vídeo 30 o un dispositivo intermedio colocado entre el codificador de vídeo 20 y el descodificador de vídeo 30, tal como un servidor o elemento de red intermedio, pueden extraer un subconjunto temporal del flujo de bits de vídeo codificado completo. En un ejemplo específico, el dispositivo intermedio puede extraer un subconjunto de las imágenes codificadas incluidas en el flujo de bits de vídeo codificado completo, y transmitir el subconjunto extraído al descodificador de vídeo 30. En otras palabras, el subconjunto de imágenes codificadas realmente recibidas en el descodificador de vídeo 30 puede incluir el flujo de bits de vídeo codificado completo que fue originalmente generado por el codificador de vídeo 20, o en el caso de adaptabilidad a escala temporal, al menos una imagen codificada menos, en comparación con el flujo de bits de vídeo codificado completo que fue originalmente generado por el codificador de vídeo 20. Un subconjunto de imágenes codificadas, recibidas por el descodificador de vídeo 30 para admitir una velocidad de imagen inferior, se denomina en el presente documento un "subconjunto temporal", o un "subflujo de bits".
[0056] El descodificador de vídeo 30 puede recibir diferentes subconjuntos temporales, según diferentes velocidades de imagen proporcionadas mediante la adaptabilidad temporal a escala de flujos de bits de vídeo codificado. En un ejemplo, el descodificador de vídeo 30 puede admitir una baja velocidad de imagen, al recibir y descodificar un primer subconjunto temporal del flujo completo de bits de vídeo codificado, señalizado originalmente por el codificador de vídeo 20. De acuerdo con este ejemplo, el descodificador de vídeo 30 puede admitir una velocidad de imagen intermedia, al recibir y descodificar un segundo subconjunto temporal, que incluye al menos una imagen codificada más que el primer subconjunto temporal, pero al menos una imagen codificada menos que el flujo completo de bits de vídeo codificado. En este ejemplo, el descodificador de vídeo 20 puede admitir una velocidad de imagen más alta posible al recibir y descodificar la totalidad (por ejemplo, el conjunto completo de imágenes codificadas) del flujo completo de bits de vídeo codificado, originalmente señalizado por el codificador de vídeo 20.
[0057] Sin embargo, en algunos casos donde el descodificador de vídeo 30 recibe un conjunto GDR como parte de un subconjunto temporal, de acuerdo con el documento HEVC WD9, la imagen del punto de recuperación puede haberse descartado durante la extracción del subconjunto temporal, y no transmitirse al descodificador, de modo que la imagen del punto de recuperación real del flujo de bits codificado originalmente puede no existir en el flujo de bits de vídeo codificado recibido por el descodificador de vídeo 30. Como resultado, en estos ejemplos, el descodificador de vídeo 30 puede ser incapaz de localizar la imagen del punto de recuperación aplicando el valor del elemento de sintaxis recovery_poc_cnt incluido en el mensaje SEI del punto de recuperación. En otras palabras, el descodificador de vídeo 30 puede no ser capaz de identificar una imagen al final del conjunto GDR que esté completamente refrescado de acuerdo con GDR. Como resultado, la operación GDR en el descodificador 30 puede no funcionar correctamente.
[0058] Para mitigar o eliminar las inexactitudes potenciales descritas anteriormente con respecto a los conjuntos GDR adaptables temporalmente a escala, el descodificador de vídeo 30 pueden implementar una o más técnicas de esta divulgación. En algunas implementaciones de las técnicas descritas en el presente documento, el descodificador de vídeo 30 puede determinar si la imagen del punto de recuperación, tal como se identifica por el elemento de sintaxis recovery_poc_cnt en el mensaje SEI del punto de recuperación, se incluye o no en el flujo de bits de vídeo codificado recibido. Si el descodificador de vídeo 30 determina, basándose en el cálculo de un valor POC a partir del valor del elemento de sintaxis recovery_poc_cnt, que la imagen del punto de recuperación está incluida en el flujo de bits de vídeo codificado, el descodificador de vídeo 30 puede identificar dicha imagen como la imagen del punto de recuperación. A partir de entonces, el descodificador 30 puede usar la imagen del punto de recuperación y las imágenes posteriores como imágenes completamente refrescadas. Por ejemplo, el descodificador de vídeo 30 puede descodificar la imagen del punto de recuperación y una o más imágenes posteriores en orden de descodificación realizando un acceso aleatorio. Además, en este caso, el descodificador de vídeo 30 también puede identificar la imagen del punto de recuperación como la última imagen en el conjunto GDR. La última imagen en el conjunto GDR, como se identifica por el descodificador de vídeo 30, se puede denominar en el presente documento como una variable indicada por ''lastPicInSet''. En los ejemplos en los que lastPicInSet es la imagen del punto de recuperación identificada en el mensaje SEI del punto de recuperación, el descodificador de vídeo 30 puede determinar que lastPicInSet está refrescada por completo de acuerdo con GDR.
[0059] Por otro lado, si el descodificador de vídeo 30 no puede localizar una imagen con el valor POC obtenido del valor del elemento de sintaxis recovery_poc_cnt, el descodificador de vídeo 30 puede implementar una o más técnicas de esta divulgación para identificar una imagen de punto de recuperación alternativa. En algunos ejemplos, el descodificador de vídeo 30 puede identificar la imagen del punto de recuperación como la primera imagen, en orden de descodificación, que tiene un valor POC mayor que el valor POC obtenido del elemento de sintaxis recovery_poc_cnt. Por ejemplo, el descodificador de vídeo puede obtener el valor POC de la imagen del punto de recuperación identificada al agregar el valor del elemento de sintaxis recovery_poc_cnt al valor POC de la primera imagen GDR. Además, en estos ejemplos, el descodificador de vídeo 30 puede determinar que lastPicInSet es la imagen que precede inmediatamente a la imagen del punto de recuperación identificada. Por ejemplo, lastPicInSet puede ser la última imagen, en orden de descodificación, que tiene un valor POC menor que el valor POC obtenido del elemento de sintaxis recovery_poc_cnt, mientras que el punto de recuperación puede ser la primera imagen, en orden de descodificación, que tiene un POC valor mayor que el valor POC obtenido del elemento de sintaxis recovery_poc_cnt. Por lo tanto, en los ejemplos en los que la imagen del punto de recuperación identificada por el mensaje SEI del punto de recuperación se ha descartado durante la adaptabilidad temporal a escala, el descodificador de vídeo 30 puede implementar técnicas de esta divulgación para identificar dos imágenes separadas, que son consecutivas en orden de descodificación, como lastPicInSet e imagen del punto de recuperación, respectivamente.
[0060] A su vez, en este ejemplo, el descodificador de vídeo 30 puede realizar una descodificación de acceso aleatorio con respecto a una o más imágenes que siguen el conjunto GDR en orden de descodificación. Por lo tanto, en un caso, si una imagen que tiene el valor POC de la imagen del punto de recuperación está presente en el flujo de bits recibido por el descodificador 30, el descodificador selecciona esa imagen como la imagen del punto de recuperación y la última imagen del conjunto GDR pertinente. En el otro caso, si una imagen que tiene el valor POC de la imagen del punto de recuperación no está presente en el flujo de bits recibido por el descodificador 30, el descodificador selecciona una imagen como la imagen del punto de recuperación y una imagen diferente como la última imagen del conjunto GDR pertinente, como se describió anteriormente. En este segundo caso, la imagen del punto de recuperación seleccionada es la primera imagen en el flujo de bits recibido, en orden de descodificación, que tiene un valor POC mayor que el valor POC obtenido del elemento de sintaxis recovery_poc_cnt, y la última imagen seleccionada en el conjunto GDR es la última imagen en el flujo de bits recibido, en orden de descodificación, que tiene un valor POC menor que el valor POC obtenido del elemento de sintaxis recovery_poc_cnt, es decir, la imagen que precede inmediatamente a la imagen del punto de recuperación seleccionada. Además, en este segundo caso, el descodificador de vídeo 30 puede seleccionar, como la última imagen en el conjunto GDR, una imagen que el mensaje SEI de información de refresco de región correspondiente indica que no está completamente refrescada (por ejemplo, una imagen que incluye tanto regiones refrescadas como no refrescadas).
[0061] En algunos ejemplos, el descodificador de vídeo 30 puede implementar las técnicas de esta divulgación con respecto a uno o más mensajes SEI de refresco de región asociados con lastPicInSet del conjunto GDR. Por ejemplo, si el descodificador de vídeo 30 determina que lastPicInSet es también la imagen del punto de recuperación, entonces el descodificador de vídeo 30 puede determinar que el mensaje SEI de refresco de región correspondiente a la imagen indica que toda la imagen pertenece a la región refrescada de la imagen. Como se describió anteriormente, en varios ejemplos, el descodificador de vídeo 30 puede determinar que lastPicInSet es también la imagen del punto de recuperación si el descodificador de vídeo 30 detecta una imagen en el conjunto GDR que tiene el valor POC para la imagen del punto de recuperación, como lo indica el mensaje SEI del punto de recuperación.
[0062] En uno de tales ejemplos, el descodificador de vídeo 30 puede determinar que el mensaje SEI de refresco de región incluye un elemento de sintaxis de indicador de región refrescada que se establece en un valor de 1, y está asociado con el primer segmento de fragmento de la AU que incluye la imagen. De acuerdo con este ejemplo, basado en el elemento de sintaxis de indicador de región refrescada para el primer segmento de fragmento de la AU que se establece en 1, el descodificador de vídeo 30 puede determinar que los elementos de sintaxis refreshed_region_flag para los segmentos de fragmento restantes de la AU también se establecen en un valor de 1. De esta manera, el descodificador de vídeo 30 puede determinar que cuando lastPicInSet es también la imagen del punto de recuperación, lastPicInSet es una imagen completamente refrescada.
[0063] Una ventaja potencial de las técnicas descritas en el presente documento es que el descodificador de vídeo 30 puede admitir GDR para flujos de bits adaptados temporalmente a escala, sin requerir cambios en la infraestructura de hardware existente. Además, en algunos ejemplos, las técnicas descritas en el presente documento no requieren que el codificador de vídeo 20 implemente ningún cambio con respecto a generar el mensaje SEI del punto de recuperación o el mensaje SEI de refresco de región. En cambio, el descodificador de vídeo 30 puede implementar las técnicas para procesar la información incluida en el mensaje SEI del punto de recuperación y/o el mensaje SEI de refresco de región para admitir GDR con respecto a los flujos de bits adaptables temporalmente a escala. En otras palabras, en algunos ejemplos, las técnicas de esta divulgación pueden introducir cambios en la semántica del mensaje SEI del punto de recuperación y/o el mensaje SEI de refresco de región, sin introducir ningún cambio en la sintaxis de ninguno de estos mensajes SEI.
[0064] De esta manera, el dispositivo de destino 14 puede ser un ejemplo de un dispositivo para descodificar datos de vídeo, que comprende una memoria configurada para almacenar datos de vídeo codificados y un descodificador de vídeo, a saber, el descodificador de vídeo 30. Además, de acuerdo con las técnicas descritas anteriormente, el descodificador de vídeo 30 puede ser un ejemplo de un descodificador de vídeo configurado para recibir una pluralidad de imágenes, recibir, en un mensaje asociado con una primera imagen de la pluralidad de imágenes, información que indica un valor POC de una imagen de punto de recuperación de un conjunto de refresco gradual del descodificador (GDR), cuando una imagen que sigue a la primera imagen en orden de descodificación tiene el valor POC igual a un valor POC de la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una imagen del punto de recuperación, y cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al valor POC de la imagen del punto de recuperación, identificar una de las imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0065] Además, en algunos ejemplos, el descodificador de vídeo 30 puede configurarse, además, para, en respuesta a identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual a el valor POC de la imagen del punto de recuperación como una última imagen del conjunto GDR y, en respuesta a la identificación de la imagen que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación, identificar una de los imágenes que tienen un valor POC menor que el valor POC de la imagen del punto de recuperación como la última imagen del conjunto GDR. En algunos ejemplos, el valor POC de la imagen que tiene un valor POC menor que el valor POC de la imagen del punto de recuperación es mayor que un valor POC de la primera imagen. En algunos ejemplos, el mensaje comprende un mensaje de información de mejora suplementaria (SEI). En uno de tales ejemplos, el mensaje SEI comprende un mensaje SEI del punto de recuperación.
[0066] En algunos ejemplos, la información que indica el valor POC de la imagen del punto de recuperación comprende información que indica una diferencia entre un valor POC de la primera imagen y el valor POC de la imagen del punto de recuperación. En algunos ejemplos, la información que indica el valor POC de la imagen del punto de recuperación comprende el valor POC de la imagen del punto de recuperación. De acuerdo con algunos ejemplos, el codificador de vídeo está configurado, además, para descodificar una o más imágenes del conjunto GDR de acuerdo con GDR. De acuerdo con un ejemplo de este tipo, el codificador de vídeo está configurado, además, para realizar una descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación identificada y una o más imágenes que siguen la imagen del punto de recuperación identificada en orden de descodificación.
[0067] Además, de acuerdo con las técnicas descritas anteriormente, el dispositivo de destino puede ser un ejemplo de un dispositivo para descodificar datos de vídeo que incluye una memoria que almacena datos de vídeo codificados y un codificador de vídeo. En estos ejemplos, el descodificador de vídeo 30 puede ser un ejemplo de un codificador de vídeo configurado para recibir, en un mensaje asociado con una imagen de los datos de vídeo codificados, información que indica una región refrescada de la imagen, determinar si la imagen comprende una última imagen en un conjunto de refresco gradual del descodificador (GDR), determinar si la imagen comprende una imagen del punto de recuperación y, en respuesta a la determinación de que la imagen comprende la última imagen del conjunto GDR y la imagen del punto de recuperación, determinar que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen. En algunos ejemplos, el mensaje comprende un mensaje de información de mejora suplementaria (SEI). En uno de tales ejemplos, el mensaje SEI comprende un mensaje SEI de refresco de región.
[0068] En algunos ejemplos, para determinar que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen, el codificador de vídeo puede configurarse para determinar que un elemento de sintaxis de indicador de región refrescada asociado con el mensaje SEI de refresco de región tiene un valor de 1. En uno de esos ejemplos, el elemento de sintaxis de indicador de región refrescada se asocia con un primer segmento de fragmento de una unidad de acceso (AU) que incluye la imagen, y para determinar que toda la imagen pertenece a la región refrescada, el codificador de vídeo está configurado para determinar que cada segmento de fragmento de la UA diferente del primer segmento de fragmento de la UA está asociado con un elemento de sintaxis refreshed_region_flag correspondiente.
[0069] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo del codificador de vídeo 20 que puede implementar las técnicas de codificación de datos de vídeo de acuerdo con uno o más aspectos de 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 adyacentes de una secuencia de vídeo. Intramodo (modo I) se puede referir a cualquiera de varios modos de codificación de base espacial. Los intermodos, tales como la predicción unidireccional (modo P) o la predicción bidireccional (modo B), se pueden referir a cualquiera de varios modos de codificación de base temporal.
[0070] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo que se va a codificar. En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de procesamiento de predicciones 40, una memoria de tramas de referencia 64, un sumador 50, una unidad de procesamiento de transformación 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. A su vez, la unidad 41 de procesamiento de predicciones incluye la unidad 44 de compensación de movimiento, la unidad 42 de estimación de movimiento, la unidad 46 de intrapredicción y la unidad 48 de división. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye también una unidad de cuantificación inversa 58, una unidad de transformada inversa 60 y un sumador 62. También se puede incluir un filtro de eliminación de bloques (no mostrado en la FIG. 2) para filtrar los límites de bloque, para eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de eliminación de bloques filtrará típicamente la salida del sumador 62. También se pueden usar filtros adicionales (en el bucle o tras el bucle), además del filtro de eliminación de bloques. Dichos filtros no se muestran por razones de brevedad, pero, si se desea, pueden filtrar la salida del sumador 62 (como un filtro en el bucle).
[0071] Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o un fragmento de vídeo que se va a codificar. La trama o el fragmento pueden ser divididos en múltiples bloques de vídeo por la unidad de procesamiento de predicciones 41. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 realizan la codificación interpredictiva del bloque de vídeo recibido con respecto a uno o más bloques en una o más tramas de referencia para proporcionar predicción temporal. La unidad de intrapredicción 46, de forma alternativa, puede llevar a cabo la codificación intrapredictiva del bloque de vídeo recibido con respecto a uno o más bloques vecinos en la misma trama o fragmento que el bloque que se va a codificar para proporcionar predicción espacial. El codificador de vídeo 20 puede realizar múltiples pases de codificación, por ejemplo, para seleccionar un modo adecuado de codificación para cada bloque de datos de vídeo.
[0072] Además, la unidad de división 48 puede dividir bloques de datos de vídeo en subbloques, basándose en la evaluación de los esquemas de división previos en los pases de codificación previos. Por ejemplo, la unidad de división 48 puede dividir inicialmente una trama o un fragmento en varias LCU, y dividir cada una de las LCU en varias subCU, basándose en un análisis de velocidad-distorsión (por ejemplo, una optimización de velocidad-distorsión). La unidad de procesamiento de predicciones 40 puede producir, además, una estructura de datos de árbol cuaternario que indica la división de una LCU en varias subCU. Las CU de nodos hojas del árbol cuaternario pueden incluir una o más PU y una o más TU.
[0073] La unidad 40 de procesamiento de predicciones puede seleccionar una de las modalidades de codificación, intracodificación o intercodificación, por ejemplo, en base a los resultados de errores, y proporciona 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 trama de referencia. La unidad 40 de procesamiento de predicciones proporciona, además, elementos sintácticos, tales como vectores de movimiento, indicadores de modalidad intra, información de división y otra información sintáctica de este tipo, a la unidad 56 de codificación por entropía. La unidad 40 de procesamiento de predicciones puede seleccionar una o más modalidades inter usando el análisis de velocidad-distorsión.
[0074] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado con propósitos conceptuales. La estimación 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, con respecto a un bloque predictivo dentro de una trama de referencia (u otra unidad codificada), con respecto al bloque actual que se está codificando dentro de la trama actual (u otra unidad codificada). Un bloque predictivo es un bloque que se encuentra como estrechamente coincidente con el bloque que se va a codificar, en lo que respecta a la diferencia de píxeles, lo cual se puede determinar mediante la suma de diferencia absoluta (SAD), la suma de diferencia al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones fraccionarias de píxeles de imágenes de referencia almacenadas en la memoria de tramas de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento con respecto a las posiciones de píxel completo y las posiciones de píxel fraccionario, y enviar un vector de movimiento con una precisión de píxeles fraccionaria.
[0075] 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 puede seleccionarse a partir de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de tramas de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
[0076] La compensación de movimiento, llevada a cabo por la unidad de compensación de movimiento 44, puede implicar obtener o generar el bloque predictivo basado en el vector de movimiento determinado por la unidad de estimación de movimiento 42. De nuevo, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 se pueden integrar funcionalmente, en algunos ejemplos. 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 sumador 50 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, generando valores de diferencias de píxel, como se analiza más adelante. En general, la unidad 42 de estimación de movimiento lleva a cabo la estimación de movimiento con respecto a los bloques de codificación de luma, y la unidad 44 de compensación de movimiento usa los vectores de movimiento calculados en base a los bloques de codificación de luma, tanto para los bloques de codificación de croma como para los bloques de codificación de luma. La unidad 40 de procesamiento de predicciones también puede generar elementos sintácticos asociados a los bloques de vídeo y al fragmento de vídeo, para su uso por parte del descodificador 30 de vídeo en la descodificación de los bloques de vídeo del fragmento de vídeo.
[0077] La unidad de intrapredicción 46 puede intrapredecir un bloque actual, como alternativa a la interpredicción llevada a cabo por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de intrapredicción 46 puede determinar un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intrapredicción puede codificar un bloque actual usando varias modalidades de intrapredicción, por ejemplo, durante diferentes pasadas de codificación, y la unidad 46 de intrapredicción (o la unidad 40 de procesamiento de predicciones, en algunos ejemplos) puede seleccionar una modalidad adecuada de intrapredicción a usar, entre las modalidades probadas.
[0078] Por ejemplo, la unidad de intrapredicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción sometidos a prueba, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidad-distorsión entre los modos sometidos a prueba. El análisis de velocidad-distorsión determina, en general, una cantidad de distorsión (o de errores) entre un bloque codificado y un bloque original, no codificado, que se codificó para producir el bloque codificado, así como una velocidad de transferencia de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de 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.
[0079] Después de seleccionar un modo de intrapredicción para un bloque, la unidad de intrapredicción 46 puede proporcionar información, indicativa del modo de intrapredicción seleccionado para el bloque, a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado. El 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 del modo de intrapredicción y una pluralidad de tablas de índices del modo de intrapredicción modificadas (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índices del modo de intrapredicción y una tabla de índices del modo de intrapredicción modificada, a usar para cada uno de los contextos.
[0080] El codificador de vídeo 20 forma un bloque de vídeo residual restando los datos de predicción de la unidad de selección de modo 40 del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de procesamiento de transformada 52 aplica una transformada, tal como una transformada discreta de coseno (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficientes de transformada residuales. La unidad de procesamiento de transformada 52 puede realizar otras transformadas que son conceptualmente similares a la DCT. También se podrían usar transformadas de ondículas, transformadas de números enteros, transformadas de subbandas u otros tipos de transformadas. En cualquier caso, la unidad de procesamiento de transformada 52 aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residuales. La transformada puede convertir la información residual desde un dominio de valores 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 transferencia de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con 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.
[0081] Tras la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede llevar a cabo la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa el contexto (CABAC), la codificación aritmética binaria adaptativa el contexto basada en sintaxis (SBAC), la codificación por entropía por división en intervalos de probabilidad (PIPE) u otra técnica de codificación por entropía. En el caso de la codificación por entropía basada en el contexto, el contexto se puede basar en bloques vecinos. Tras la codificación por entropía por parte de la unidad de codificación por entropía 56, el flujo de bits codificado se puede transmitir a otro dispositivo (por ejemplo, el descodificador de vídeo 30) o archivar para su posterior transmisión o recuperación.
[0082] La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican la cuantificación inversa y la transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel, por ejemplo, para su uso posterior como bloque 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 tramas de la memoria de tramas de referencia 64. 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, generado por la unidad de compensación de movimiento 44, para generar un bloque de vídeo reconstruido para su almacenamiento en la memoria de tramas de referencia 64. El bloque de vídeo reconstruido 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 intercodificar un bloque en una trama de vídeo posterior.
[0083] Diversos componentes del codificador de vídeo 20 pueden estar configurados para implementar una o más de las técnicas de esta divulgación, para codificar datos de vídeo de acuerdo con GDR, admitiendo al mismo tiempo la adaptabilidad temporal a escala de flujos de bits de vídeo. Por ejemplo, el codificador de vídeo 20 puede implementar una o más de las técnicas para generar y señalizar uno o más mensajes de información de mejora suplementaria (SEI), de modo que el mensaje SEI permita que un dispositivo receptor (por ejemplo, un descodificador de vídeo o componentes del mismo) identifique imágenes en un conjunto GDR. Por ejemplo, el dispositivo receptor puede usar datos incluidos en los mensajes SEI generados por el codificador de vídeo 20 para identificar una imagen GDR que es la primera imagen, en orden de descodificación, en el conjunto GDR, una última imagen, en orden de descodificación, del conjunto GDR y una imagen del punto de recuperación. En algunos ejemplos, un descodificador en el dispositivo receptor puede determinar que la última imagen ("lastPicInSet") del conjunto GDR es la misma que la imagen del punto de recuperación, mientras que, en otros ejemplos, el descodificador en el dispositivo receptor puede determinar que lastPicInSet y la imagen del punto de recuperación son imágenes diferentes. En un ejemplo, la unidad de procesamiento de predicciones 40 puede estar configurada para generar un mensaje SEI del punto de recuperación y/o un mensaje SEI de información de refresco de región, de acuerdo con uno o más aspectos de esta divulgación.
[0084] El codificador de vídeo 20 puede estar configurado con varias características, de acuerdo con el documento HEVC WD 9, o a otra norma de codificación de vídeo, para incluir metadatos en un flujo de bits de vídeo codificado. En diversos ejemplos, el codificador de vídeo 20 puede incluir metadatos que no son requeridos por un descodificador para descodificar el flujo señalizado de bits de vídeo codificado. Como algunos ejemplos, el codificador de vídeo 20 puede señalizar metadatos que permiten a un descodificador de vídeo determinar la temporización de salida de imágenes, determinar la información de visualización asociada a una o más imágenes, detectar la información de pérdidas y ocultar y/o remediar las pérdidas detectadas.
[0085] Además, el codificador de vídeo 20 puede generar cualquier número de unidades de la capa de abstracción de red (NAL) de SEI en una unidad de acceso (AU) particular señalizada en el flujo de bits de vídeo codificado. A su vez, el codificador de vídeo 20 puede incluir cualquier número de mensajes SEI en una unidad particular de NAL de SEI. Como un ejemplo, la tabla 1 anterior enumera varios mensajes SEI que el codificador de vídeo 20 puede generar, y los correspondientes usos/propósitos de los mensajes SEI enumerados, de acuerdo con el documento HEVC WD9.
[0086] El codificador de vídeo 20 puede configurarse, o estar operativo de otro modo, para generar y señalizar conjuntos GDR en un flujo de bits de vídeo codificado. La codificación basada en GDR puede permitir que el dispositivo receptor realice un acceso aleatorio desde una imagen no intra. Además, de acuerdo con los datos de vídeo codificados de acuerdo con GDR, después de una o más imágenes en orden de descodificación, toda la región de la imagen se puede descodificar correctamente en una posición (por ejemplo, en el punto de recuperación) en el flujo de bits y luego en orden de visualización/salida. GDR puede proporcionar accesibilidad aleatoria y una mayor capacidad de recuperación ante errores.
[0087] Como se describe con respecto a la FIG. 1, un conjunto GDR, por ejemplo, de acuerdo con el documento HEVC WD9, puede incluir una secuencia de imágenes codificadas en orden de descodificación. En algunos ejemplos, la secuencia de imágenes codificadas en el conjunto GDR también puede estar dispuesta de acuerdo con el orden de salida. El codificador de vídeo 20 puede señalizar un mensaje SEI del punto de recuperación para indicar el límite inicial del conjunto GDR. Como se ilustra en la tabla de sintaxis 1 anterior, el codificador de vídeo 20 puede, como un ejemplo de acuerdo con el documento HEVC WD9, incluir elementos de sintaxis tales como recovery_poc_cnt, exact_match_flag y broken_link_flag en el mensaje SEI del punto de recuperación. De acuerdo con el documento HEVC WD9, el codificador de vídeo 20 puede establecer el valor del elemento de sintaxis recove ry_poc_cnt para representar una diferencia entre el recuento de POC de la imagen GDR y la imagen del punto de recuperación. Además, el codificador de vídeo 20 puede señalizar el mensaje SEI del punto de recuperación en la misma unidad de acceso (AU) que la imagen GDR. De esta manera, el codificador de vídeo 20 puede permitir que el dispositivo receptor identifique el límite inicial del conjunto GDR (por ejemplo, la primera imagen GDR, que se incluye en la misma AU que el mensaje SEI del punto de recuperación), y el límite final del conjunto GDR (por ejemplo, al agregar el valor del elemento de sintaxis recovery_poc_cnt al valor POC de la imagen GDR para identificar la imagen del punto de recuperación). De esta manera, el codificador de vídeo 20 puede permitir que el dispositivo receptor aproveche una o más ventajas potenciales proporcionadas por GDR, tales como accesibilidad aleatoria y resistencia mejorada a los errores.
[0088] Además, el codificador de vídeo 20 puede señalizar un mensaje SEI de información de refresco de región con respecto a cada imagen del conjunto GDR. Por ejemplo, el codificador de vídeo 20 puede incluir un mensaje SEI de información de refresco de región en cada AU que incluye una imagen del conjunto GDR. El codificador de vídeo 20 puede generar cada mensaje SEI de información de refresco de región para incluir datos que indican regiones refrescadas y/o no refrescadas de la imagen correspondiente. Al señalizar los mensajes SEI de refresco de región de esta manera, el codificador de vídeo 20 puede permitir que el dispositivo receptor determine la proporción de una imagen que se ha refrescado de acuerdo con GDR. Por ejemplo, el codificador de vídeo 20 puede señalizar un mensaje SEI de información de refresco de región en la misma AU que la imagen a la que corresponde el mensaje SEI de información de refresco de región. Al señalizar el mensaje SEI de información de refresco de región de esta manera, el codificador de vídeo 20 puede permitir que el dispositivo receptor determine a qué imagen GDR corresponde un mensaje SEI de información de refresco de región particular (en este ejemplo, la imagen que se incluye en la misma AU como el mensaje SEI de información de refresco de región). Además, el dispositivo receptor puede usar los datos incluidos en el mensaje SEI de información de refresco de región señalizado por el codificador de vídeo 20 para identificar regiones refrescadas y/o no refrescadas de la imagen correspondiente.
[0089] Como se ha descrito, el codificador de vídeo 20 y/o los componentes del mismo pueden configurarse para soportar la adaptabilidad temporal a escala de flujos de bits de vídeo codificado, tal como según el documento HEVC WD9. Por ejemplo, el codificador de vídeo 20 puede generar un flujo completo de bits de vídeo codificado, del que un dispositivo de recepción, tal como un dispositivo de descodificación o un dispositivo intermedio, puede extraer un subflujo de bits. Por ejemplo, un dispositivo intermedio, como por ejemplo un servidor de flujos de transmisión, o un elemento de red consciente de los medios ("MANE"), puede extraer un subconjunto temporal de imágenes codificadas del conjunto completo de imágenes codificadas, incluidas en el flujo completo de bits de vídeo codificado, y entregar el subflujo de bits extraído a un dispositivo cliente que tiene un descodificador de vídeo. En algunos ejemplos, el subconjunto temporal puede representar un verdadero subconjunto del conjunto completo de imágenes codificadas incluidas en el flujo completo de bits de vídeo codificado. De acuerdo con estos ejemplos, el flujo completo de bits de vídeo codificado puede incluir cada imagen codificada del subconjunto temporal, y al menos una imagen codificada adicional que no esté incluida en el subconjunto temporal.
[0090] Para admitir diversas velocidades de imagen según la adaptabilidad temporal a escala, un dispositivo intermedio puede estar configurado para extraer subconjuntos temporales de diferentes recuentos de imágenes, del conjunto completo de imágenes codificadas incluidas en el flujo completo de bits de vídeo codificado. Cada subconjunto temporal diferente, extraído por el dispositivo intermedio (por ejemplo, para admitir diferentes velocidades de imagen), puede representar un subconjunto temporal, o subflujo de bits, independientemente descodificable. En otras palabras, un descodificador de vídeo que recibe un subflujo de bits temporalmente adaptado a escala, extraído del flujo completo de bits de vídeo codificado, puede descodificar el subconjunto temporal de imágenes codificadas sin ningún dato adicional, tal como la información incluida en el flujo completo de bits de vídeo codificado, pero excluida del subflujo de bits.
[0091] Un flujo completo de bits de vídeo codificado, generado por el codificador de vídeo 20, según el documento HEVC WD9, puede incluir varias subcapas temporales. Además, cada unidad de NAL generada por el codificador de vídeo 20 puede pertenecer a una subcapa específica, según lo indicado por un valor correspondiente de "TemporalId". Por ejemplo, el codificador de vídeo 20 puede establecer el valor del TemporalId de una unidad de NAL igual al valor del correspondiente elemento sintáctico "temporal_id_plus1", menos uno. Además, el codificador de vídeo 20 puede determinar que todas las unidades de NAL de VCL de una sola imagen pertenecen a una sola subcapa (es decir, la misma subcapa). En otras palabras, el codificador de vídeo 20 puede codificar una imagen, de tal manera que la propia imagen codificada pertenezca a la subcapa específica correspondiente a las unidades de NAL asociadas a la imagen codificada.
[0092] Por ejemplo, según el documento HEVC WD9, el codificador de vídeo 20 puede generar un flujo de bits de vídeo codificado de tal manera que un proceso de descodificación de una subcapa inferior del flujo de bits no dependa de los datos en una subcapa superior del flujo de bits. Además, el dispositivo intermedio puede generar un subflujo de bits a partir de un flujo de bits completo, que sea conforme al documento HEVC WD9, mediante la eliminación, del flujo completo de bits, de todas las unidades de NAL asociadas a un valor de TemporalId que sea superior a un valor específico. A su vez, el subflujo de bits generado de esta manera puede representar por sí mismo un flujo de bits conforme al documento HEVC WD9. El codificador de vídeo 20 y/o uno o más componentes del mismo pueden garantizar que se cumplan todas las condiciones para la conformidad del flujo de bits (por ejemplo, restricciones de almacenamiento temporal), con respecto al documento HEVC WD9, para el flujo completo de bits de vídeo codificado, y para cualquier subcapa determinada del mismo.
[0093] Como se ha descrito, al adaptar temporalmente a escala un flujo completo de bits de vídeo codificado, el dispositivo intermedio puede extraer un subconjunto temporal de imágenes codificadas del flujo completo de bits de vídeo codificado. Por ejemplo, el subconjunto temporal puede ser un verdadero subconjunto de las imágenes codificadas señalizadas en el flujo completo de bits de vídeo codificado y, por lo tanto, el dispositivo intermedio puede eliminar una o más imágenes codificadas del flujo completo de bits codificado para generar el subflujo de bits. En ejemplos, el dispositivo intermedio puede descartar la imagen del punto de recuperación identificada por el elemento de sintaxis recovery_poc_cnt del mensaje SEI del punto de recuperación. Sin embargo, en estos ejemplos, el dispositivo intermedio puede no estar configurado para actualizar los datos señalizados en el mensaje SEI del punto de recuperación, para reflejar el cambio (es decir, la eliminación) del mensaje del punto de recuperación indicado originalmente. En otras palabras, el dispositivo intermedio puede señalizar potencialmente un subconjunto temporal que incluye un mensaje SEI del punto de recuperación, pero no incluye la imagen del punto de recuperación correspondiente. A su vez, al comunicar un subconjunto temporal que incluye el mensaje SEI del punto de recuperación, pero no incluye la imagen del punto de recuperación identificada, el dispositivo intermedio puede identificar, al descodificador de vídeo, una imagen del punto de recuperación que no existe en el subconjunto temporal recibido.
[0094] Para mitigar o eliminar posibles problemas causados por la adaptabilidad temporal a escala de un flujo de bits codificado que incluye un conjunto GDR, las técnicas de esta divulgación pueden permitir que un dispositivo de descodificación de vídeo procese los datos incluidos en los mensajes SEI señalizados para cumplir con GDR, al tiempo que admite la adaptabilidad temporal a escala. Por ejemplo, las técnicas pueden introducir cambios en una o más semánticas asociadas con el mensaje SEI del punto de recuperación y/o el mensaje SEI de información de refresco de región. Los cambios en la semántica asociados con el mensaje SEI del punto de recuperación y/o el mensaje SEI de información de refresco de región de acuerdo con las técnicas de esta divulgación se describen con más detalle a continuación.
[0095] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo del descodificador de vídeo 30 que puede implementar las técnicas de descodificación de datos de vídeo, según uno o más aspectos de 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 70, una unidad de compensación de movimiento 72, una unidad de intrapredicción 74, una unidad de cuantificación inversa 76, una unidad de transformada inversa 78, un sumador 80 y una memoria de imágenes de referencia 82. En el ejemplo de la FIG. 2, el descodificador 30 de vídeo incluye la unidad de predicción 71, la cual, a su vez, incluye la unidad de compensación de movimiento 72 y la unidad de intrapredicción 74. En algunos ejemplos, el descodificador de vídeo 30 puede realizar un pase de descodificación, en general, recíproco al pase de codificación descrito con respecto al codificador de vídeo 20 (FIG. 2). La unidad de compensación de movimiento 72 puede generar datos de predicción basados en vectores de movimiento recibidos desde la unidad de descodificación por entropía 70, mientras que la unidad de intrapredicción 74 puede generar datos de predicción basados en indicadores de modalidad de intrapredicción recibidos desde la unidad de descodificación por entropía 70.
[0096] En la implementación ilustrada en la FIG. 3, el descodificador de vídeo 30 está acoplado a un elemento de red 68. En diversos ejemplos, el elemento de red 68 puede incluir, ser, o formar parte de, una amplia variedad de dispositivos, tales como un elemento de red consciente de los medios (o "MANE"), un servidor de flujos de transmisión o un dispositivo de cabecera de red. Por ejemplo, el elemento de red 68 puede estar configurado para recibir un flujo de bits de vídeo codificado, señalizado por el codificador de vídeo 20, y adaptar temporalmente a escala el flujo de bits de vídeo codificado. En este ejemplo, el elemento de red 68 puede retransmitir el flujo de bits, adaptado temporalmente a escala, al descodificador de vídeo 30. Mientras se ilustra externamente al descodificador de vídeo 30 en el ejemplo de la FIG. 3, en varios ejemplos, elemento de red 68
[0097] Como ejemplo, el elemento de red 68 puede extraer un subconjunto temporal de imágenes codificadas provenientes del conjunto completo de imágenes codificadas, incluidas en el flujo de bits de vídeo codificado recibido. El flujo de bits de vídeo codificado, recibido por el elemento de red 68, puede denominarse en el presente documento un "flujo completo de bits de vídeo codificado". Además, el subconjunto temporal extraído por el elemento de red 68 puede representar un verdadero subconjunto del conjunto completo de imágenes codificadas incluidas en el flujo completo de bits de vídeo codificado. En otras palabras, el flujo completo de bits de vídeo codificado, recibido por el elemento de red 68, puede incluir cada imagen codificada del subconjunto temporal, y al menos una imagen codificada adicional que no esté incluida en el subconjunto temporal.
[0098] Para admitir diversas velocidades de imagen, según la adaptabilidad temporal a escala, el elemento de red 68 puede estar configurado para extraer subconjuntos temporales de diferentes recuentos de imágenes, a partir del conjunto completo de imágenes codificadas incluidas en el flujo completo de bits de vídeo codificado. Cada subconjunto temporal diferente, extraído por el elemento de red 68 (por ejemplo, para admitir diferentes velocidades de imagen), puede representar un subconjunto, o subflujo de bits, temporal, independientemente descodificable. En otras palabras, un dispositivo, tal como el descodificador de vídeo 30, que recibe un subflujo de bits adaptado temporalmente a escala, extraído por el elemento de red 68, puede descodificar el subconjunto temporal de imágenes codificadas sin ningún dato adicional, tal como la información incluida en el flujo completo de bits de vídeo codificado, pero excluida del subflujo de bits.
[0099] El elemento de red 68 puede determinar que un flujo completo de bits de vídeo codificado, señalizado por el codificador de vídeo 20, según el documento HEVC WD9, incluye varias subcapas temporales. Además, el elemento de red 68 puede determinar que cada unidad de NAL señalizada por el codificador de vídeo 20 pertenece a una subcapa específica, según lo indicado por un valor correspondiente de "TemporalId". Por ejemplo, el elemento de red 68 puede determinar que el valor de TemporalId de una unidad de NAL es igual al valor del correspondiente elemento sintáctico "temporal_id_plus1", menos uno. Además, en este ejemplo, el elemento de red 68 puede determinar que todas las unidades de NAL de VCL de una sola imagen pertenecen a una sola subcapa (es decir, la misma subcapa). En otras palabras, el elemento de red 68 puede determinar que una propia imagen específica codificada pertenece a la subcapa específica correspondiente a las unidades de NAL asociadas a la imagen codificada.
[0100] Por ejemplo, según el documento HEVC WD9, el codificador de vídeo 20 puede generar un flujo de bits de vídeo codificado de tal manera que un proceso de descodificación de una subcapa inferior del flujo de bits (por ejemplo, según lo extraído por el elemento de red 68) no dependa de los datos en una subcapa superior del flujo de bits. El elemento de red 68 puede extraer un subflujo de bits a partir de un flujo de bits completo, que es conforme al documento HEVC WD9, mediante la eliminación, del flujo de bits completo, de todas las unidades de NAL asociadas a un valor de TemporalId que es mayor que un valor específico. A su vez, el subflujo de bits, extraído por el elemento de red 68 de esta manera, puede representar por sí mismo un flujo de bits conforme al documento HEVC WD9. El codificador de vídeo 20 y/o uno o más componentes del mismo pueden garantizar que todas las condiciones para la conformidad del flujo de bits (por ejemplo, restricciones de almacenamiento temporal) con respecto al documento HEVC WD9 se cumplan para cada subflujo de bits.
[0101] Como se ha descrito, en la adaptabilidad temporal a escala de un flujo completo de bits de vídeo codificado, el elemento de red 68 puede extraer un subconjunto temporal de imágenes codificadas a partir del flujo completo de bits de vídeo codificado. Por ejemplo, el subconjunto temporal puede ser un verdadero subconjunto de las imágenes codificadas señalizadas en el flujo completo de bits de vídeo codificado y, por lo tanto, el elemento de red 68 puede eliminar una o más imágenes codificadas del flujo completo de bits codificado para generar el subflujo de bits. En los ejemplos, el elemento de red 68 puede eliminar una o más imágenes codificadas que se incluyen en un conjunto GDR. En uno de tales ejemplos, el elemento de red 68 puede descartar una imagen del punto de recuperación identificada por un mensaje SEI del punto de recuperación.
[0102] Sin embargo, en uno de esos ejemplos, el elemento de red 68 puede no descartar la imagen GDR que forma la primera imagen del conjunto GDR. En este ejemplo, el elemento de red 68 puede proporcionar al descodificador de vídeo 30 un mensaje SEI del punto de recuperación, ya que el mensaje SEI del punto de recuperación puede incluirse en la misma AU que la imagen GDR. Sin embargo, en este ejemplo, el elemento de red 68 puede no proporcionar la imagen del punto de recuperación identificada en el mensaje SEI del punto de recuperación al descodificador de vídeo 30, ya que la imagen del punto de recuperación originalmente identificada se descartó durante la adaptabilidad temporal a escala. A su vez, el descodificador de vídeo 30 puede recibir una indicación de un conjunto GDR, pero puede no ser capaz de localizar la imagen del punto de recuperación del conjunto GDR en el subflujo de bits recibido.
[0103] Durante el proceso de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado, que representa bloques de vídeo de un fragmento de vídeo codificado y elementos sintácticos asociados, desde el codificador de vídeo 20. La unidad de descodificación por entropía 70 del descodificador de vídeo 30 descodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intrapredicción y otros elementos sintácticos. La unidad de descodificación por entropía 70 reenvía los vectores de movimiento y otros elementos sintácticos a la unidad de compensación de movimiento 72. El descodificador de vídeo 30 puede recibir los elementos sintácticos a nivel de fragmento de vídeo y/o a nivel de bloque de vídeo.
[0104] Cuando el fragmento de vídeo se codifica como un fragmento intracodificado (I), la unidad de intrapredicción 74 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual basado en un modo de intrapredicción señalizado y en datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un fragmento intercodificado (es decir, B, P o GPB), la unidad de compensación de movimiento 72 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 sintácticos recibidos desde la unidad de descodificación por entropía 70. 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, Lista 0 y Lista 1, usando técnicas de construcción predeterminadas, basándose en imágenes de referencia almacenadas en la memoria de imágenes de referencia 82.
[0105] La unidad de compensación de movimiento 72 determina la información de predicción para un bloque de vídeo del fragmento de vídeo actual, analizando sintácticamente los vectores de movimiento y otros elementos sintácticos, 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 72 usa algunos de los elementos sintácticos recibidos para determinar un modo de predicción (por ejemplo, intrapredicción o interpredicción) usado para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, un fragmento B, un fragmento P o un fragmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del fragmento, el estado de interpredicción para cada bloque de vídeo intercodificado del fragmento y otra información para descodificar los bloques de vídeo en el fragmento de vídeo actual.
[0106] La unidad de compensación de movimiento 72 también puede realizar la interpolación en base a filtros de interpolación. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles fraccionarios de los bloques de referencia. En este caso, la unidad de compensación de movimiento 72 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos sintácticos recibidos y usar los filtros de interpolación para producir bloques predictivos.
[0107] La unidad 76 de cuantificación inversa cuantifica de manera inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad 70 de descodificación por entropía. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPY, calculado por el descodificador 30 de vídeo de cada bloque de vídeo en el fragmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que debería aplicarse.
[0108] La unidad de transformada inversa 78 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de enteros inversa, o un procedimiento de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxel.
[0109] Después de que la unidad de compensación de movimiento 72 genere el bloque predictivo para el bloque de vídeo actual basándose en los vectores de movimiento y otros elementos sintácticos, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad de transformada inversa 78 a los bloques predictivos correspondientes generados por la unidad de compensación de movimiento 72. El sumador 80 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 bloques para filtrar los bloques descodificados, a fin de eliminar distorsiones de efecto pixelado. También se pueden usar otros filtros de bucle (bien en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo descodificados en una trama o imagen dada se almacenan a continuación en la memoria de imágenes de referencia 82, que almacena imágenes de referencia usadas para una compensación de movimiento posterior. La memoria de imágenes de referencia 82 también denominada memoria intermedia de imágenes descodificadas (DPB), también almacena vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1.
[0110] El descodificador de vídeo 30, y varios componentes del mismo, pueden implementar las técnicas de esta divulgación para descodificar una secuencia de vídeo codificado, de acuerdo con GDR, admitiendo al mismo tiempo los flujos de bits de vídeo adaptables temporalmente a escala. Como ejemplo, la unidad de descodificación por entropía 70 puede implementar una o más funcionalidades descritas en el presente documento con respecto al descodificador de vídeo 30. Como se ha descrito, el descodificador de vídeo 30 puede recibir un flujo de bits de vídeo codificado, señalizado por un codificador de vídeo. En diversos ejemplos, el descodificador de vídeo 30 puede recibir un flujo completo de bits de vídeo codificado, o un subflujo de bits, que el elemento de red 68 puede extraer, según la adaptabilidad temporal a escala. Más específicamente, un subflujo de bits adaptado temporalmente a escala puede incluir un subconjunto de imágenes codificadas extraídas del conjunto de imágenes codificadas incluidas en el flujo completo de bits de vídeo codificado. Un subconjunto de imágenes, extraído por el elemento de red 68, según la adaptabilidad temporal a escala, puede ser mencionado en el presente documento como un "subconjunto temporal." En algunos ejemplos, el subconjunto temporal extraído por el elemento de red 68 puede representar un verdadero subconjunto de las imágenes codificadas en el flujo completo de bits de vídeo codificado. En otras palabras, de acuerdo con estos ejemplos, el flujo completo de bits de vídeo codificado puede incluir cada imagen codificada del subconjunto temporal, y al menos una imagen codificada adicional que no esté incluida en el subconjunto temporal.
[0111] Además, según la norma HEVC WD 9, la norma AVC u otras normas de codificación de vídeo, el descodificador de vídeo 30 puede estar configurado, o ser operativo de otra manera, para descodificar los metadatos incluidos en el flujo de bits de vídeo codificado recibido. En varios ejemplos, según el documento HEVC WD9, el descodificador de vídeo 30 puede descodificar metadatos que no son necesarios para la descodificación de las imágenes codificadas señalizadas en el flujo de bits codificado. En diversos ejemplos, el descodificador de vídeo 30 puede descodificar los metadatos para determinar una o más entre las temporizaciones de salida de imágenes, y mostrar información asociada a una o más imágenes. En estos y otros ejemplos, el descodificador de vídeo 30 puede descodificar metadatos para detectar información de pérdidas, y para ocultar y/o remediar una o más pérdidas detectadas.
[0112] En algunos ejemplos, por ejemplo, según el documento HEVC WD9, el descodificador de vídeo 30 puede descodificar una o más unidades de la capa de abstracción de red (NAL) de información de mejora suplementaria (SEI) en una determinada unidad de acceso (AU) señalizada en el flujo de bits de vídeo codificado recibido. Además, el descodificador de vídeo 30 puede descodificar uno o más mensajes SEI incluidos en una única unidad de NAL de SEI que se señaliza en el flujo de bits de vídeo codificado recibido. La tabla 1 anterior enumera ejemplos de diversos mensajes SEI que el descodificador de vídeo 30 puede recibir y descodificar (por ejemplo, utilizando la unidad de descodificación por entropía 70), y los correspondientes usos/propósitos de los mensajes SEI enumerados, según el documento HEVC WD9.
[0113] Además, el descodificador de vídeo 30 puede estar configurado, o ser operativo de otra manera, para descodificar conjuntos GDR señalizados en un flujo de bits de vídeo codificado recibido. Más específicamente, el descodificador de vídeo 30 puede descodificar un conjunto GDR recibido de acuerdo con GDR. Como se describe con respecto a la FIG. 1, un conjunto GDR, de acuerdo con el documento HEVC WD9, puede incluir una secuencia de imágenes codificadas en orden de descodificación. En algunos ejemplos, la secuencia de imágenes codificadas en el conjunto GDR también puede estar dispuesta de acuerdo con el orden de salida. En varios ejemplos, la última imagen del conjunto GDR puede representar una imagen del punto de recuperación, en la que la imagen completa pertenece a una región refrescada.
[0114] El descodificador de vídeo 30 puede descodificar un mensaje SEI del punto de recuperación, como mediante la implementación de una o más funcionalidades proporcionadas por la unidad de descodificación por entropía 70. Basándose en el mensaje SEI del punto de recuperación descodificado, el descodificador de vídeo 30 puede detectar el límite inicial del conjunto GDR, tal como la primera imagen GDR. En varios ejemplos, la primera imagen GDR puede ser una imagen codificada que se incluye en la misma AU que el mensaje SEI del punto de recuperación. Como se ilustra en la tabla de sintaxis 1 anterior, el descodificador de vídeo 30 puede, según el documento HEVC WD9, descodificar los elementos sintácticos recovery_poc_cnt, exact_match_flag y broken_link_flag en el mensaje SEI del punto de recuperación señalizado.
[0115] De acuerdo con el documento HEVC WD9, el descodificador de vídeo 30 puede determinar que el conjunto GDR continúe, hasta que el descodificador de vídeo 30 detecte la imagen del punto de recuperación identificada por el mensaje SEI del punto de recuperación. Por ejemplo, el descodificador de vídeo 30 puede agregar el valor del elemento de sintaxis recovery_poc_cnt descodificado al valor POC de la imagen GDR para determinar el valor POC de la imagen del punto de recuperación identificada. Además, el descodificador de vídeo 30 puede determinar que la imagen del punto de recuperación identificada de esta manera forma la última imagen, en orden de descodificación, del conjunto GDR. La última imagen de un conjunto GDR se denota en el presente documento por ''lastPicInSet''.
[0116] Como se ha descrito, el descodificador de vídeo 30 y/o los componentes del mismo pueden configurarse para admitir la adaptabilidad temporal a escala de flujos de bits de vídeo codificado, como según el documento HEVC WD9. Por ejemplo, el descodificador de vídeo 30 puede recibir un subflujo de bits que el elemento de red 68 extrae de un flujo completo de bits de vídeo codificado, y comunica al descodificador de vídeo 30. En este ejemplo, el elemento de red 68 puede extraer un subconjunto temporal de imágenes codificadas del conjunto completo de imágenes codificadas incluidas en el flujo completo de bits de vídeo codificado, y proporcionar el subconjunto temporal como parte del subflujo de bits al descodificador de vídeo 30. Por ejemplo, el subconjunto temporal puede representar un verdadero subconjunto del conjunto completo de imágenes codificadas incluidas en el flujo completo de bits de vídeo codificado. En escenarios donde el subconjunto temporal representa un verdadero subconjunto del conjunto completo de imágenes codificadas, el flujo completo de bits de vídeo codificado puede incluir datos para cada imagen codificada del subconjunto temporal, y datos para al menos una imagen codificada adicional que no se incluya en el subconjunto temporal.
[0117] Para admitir diversas velocidades temporales de imagen, según la adaptabilidad temporal a escala, el descodificador de vídeo 30 puede estar configurado para recibir y descodificar subflujos de bits de diferentes velocidades de imagen, tales como diversos subflujos de bits que el elemento de red 68 puede extraer del flujo completo de bits de vídeo codificado. Más específicamente, los diferentes subflujos de bits que incluyen subconjuntos temporales de recuentos variables de imágenes pueden representar diferentes velocidades de imagen. Para admitir la adaptabilidad temporal a escala, el descodificador de vídeo 30 puede descodificar cualquier subflujo de bits, independientemente de la velocidad de imágenes, como un flujo de bits descodificable independientemente. En otras palabras, el descodificador de vídeo 30 puede descodificar un subconjunto temporal particular de imágenes codificadas sin ningún dato adicional, tal como la información incluida en el flujo completo de bits de vídeo codificado, pero excluida del subflujo específico de bits.
[0118] En ejemplos donde el descodificador de vídeo 30 recibe un flujo completo de bits de vídeo codificado, señalizado mediante un dispositivo de codificación de vídeo, el flujo completo de bits de vídeo codificado puede incluir una o más subcapas temporales. Además, cada unidad de NAL recibida y/o descodificada por el descodificador de vídeo 30 puede pertenecer a una subcapa específica, según lo indicado por un valor "TemporalId" correspondiente. Más específicamente, el descodificador de vídeo 30 puede determinar que el valor TemporalId de una unidad de NAL es igual al valor del correspondiente elemento sintáctico "temporal_id_plus1" señalizado, menos uno. Además, el descodificador de vídeo 30 puede determinar que todas las unidades señalizadas de NAL de VCL de una sola imagen pertenecen a una sola subcapa (es decir, la misma subcapa). En otras palabras, el descodificador de vídeo 30 puede descodificar una imagen codificada, basándose en una determinación de que la propia imagen codificada pertenece a la subcapa específica correspondiente a las unidades de NAL asociadas a la imagen codificada.
[0119] Por ejemplo, según el documento HEVC WD9, el descodificador de vídeo 30 puede descodificar un flujo señalizado de bits de vídeo codificado, de manera que un proceso de descodificación de una subcapa inferior del flujo de bits no dependa de los datos en una subcapa superior del flujo de bits. El elemento de red 68 puede generar un subflujo de bits a partir de un flujo de bits completo, mediante la eliminación, del flujo de bits completo, de todas las unidades de NAL asociadas a un valor de TemporalId que sea superior a un valor específico. El dispositivo de codificación de vídeo puede garantizar que todas las condiciones para la conformidad del flujo de bits (por ejemplo, restricciones de almacenamiento temporal) con respecto al documento HEVC WD9, se cumplen con respecto al flujo de bits completo y, por lo tanto, para cada subflujo de bits que el elemento de red 68 pueda extraer del flujo completo de bits. A su vez, en algunos ejemplos, el descodificador de vídeo 30 puede descodificar cualquier subflujo de bits señalizado sin ningún cambio en el proceso de descodificación, y sin que sea necesario ningún cambio en la infraestructura de hardware y/o software. En otras palabras, el descodificador de vídeo 30 puede descodificar un subflujo de bits señalizado, admitiendo al mismo tiempo la adaptabilidad temporal a escala, según el documento HEVC WD9, de manera correspondiente a la descodificación de un flujo completo de bits de vídeo codificado.
[0120] Como se ha descrito, en el ajuste temporal a escala de un flujo completo de bits de vídeo codificado, el elemento de red 68 puede extraer un subconjunto temporal de imágenes codificadas a partir del flujo completo de bits de vídeo codificado. Por ejemplo, el subconjunto temporal puede ser un verdadero subconjunto de las imágenes codificadas señalizadas en el flujo completo de bits de vídeo codificado y, por lo tanto, el elemento de red 68 puede eliminar una o más imágenes codificadas del flujo completo de bits codificado para generar el subflujo de bits. En algunos ejemplos, el elemento de red 68 puede eliminar la imagen del punto de recuperación identificada por el mensaje SEI del punto de recuperación. En estos ejemplos, el descodificador de vídeo 30 puede recibir un mensaje SEI del punto de recuperación que identifica los límites de un conjunto GDR, pero puede no recibir la imagen del punto de recuperación que forma la lastPicInSet del conjunto GDR. Al descodificar y aplicar el valor del elemento de sintaxis recovery_poc_cnt, el descodificador de vídeo 30 puede determinar el recuento de POC de la imagen del punto de recuperación identificada, pero puede ser incapaz de localizar la imagen del punto de recuperación identificada en el subconjunto temporal recibido.
[0121] Para mitigar o eliminar posibles problemas causados por la adaptabilidad temporal a escala de un conjunto GDR que descarta una imagen de punto de recuperación identificada, el descodificador de vídeo 30 y/o sus componentes, como la unidad de descodificación por entropía 70, pueden implementar una o más técnicas de esta divulgación. De acuerdo con algunas implementaciones de las técnicas, el descodificador de vídeo 30 puede descodificar el mensaje SEI del punto de recuperación para obtener información que indica el valor del recuento de orden de imágenes (POC) de la última imagen del punto de recuperación identificada originalmente. Además, el descodificador de vídeo 30 puede implementar una o más técnicas de esta divulgación para determinar si el flujo de bits codificado recibido incluye o no una imagen codificada con el valor POC obtenido del mensaje SEI del punto de recuperación.
[0122] De acuerdo con las técnicas descritas en el presente documento, el descodificador de vídeo 30 puede, en lugar de definir la imagen del punto de recuperación únicamente como la imagen codificada con el valor POC identificado en el mensaje SEI del punto de recuperación, definir la imagen del punto de recuperación de acuerdo con una determinación de múltiples etapas. Por ejemplo, si el descodificador de vídeo 30 identifica que una imagen ("picA") sigue a la imagen actual (por ejemplo, la imagen GDR asociada con el mensaje SEI actual) en orden de descodificación en el flujo de bits recibido, y que tiene un valor POC ("PicOrderCntVal") igual al PicOrderCntVal de la imagen GDR más el valor del elemento de sintaxis recovery_poc_cnt, entonces el descodificador de vídeo 30 puede identificar picA como la imagen del punto de recuperación. Por otro lado, si el descodificador de vídeo 30 no identifica una imagen picA que satisfaga las condiciones descritas anteriormente, el descodificador de vídeo 30 puede identificar una imagen que sigue inmediatamente a la imagen picA en orden de salida como la imagen del punto de recuperación. El descodificador de vídeo 30 también puede determinar que la imagen del punto de recuperación no precede a la primera imagen GDR en el orden de descodificación (por ejemplo, el descodificador de vídeo 30 puede no identificar una primera imagen como la imagen del punto de recuperación, si la primera imagen tiene un valor POC menor que el valor POC de la imagen GDR). Una imagen GDR también se puede denominar en el presente documento como una imagen "actual".
[0123] Además, de acuerdo con uno o más aspectos de esta divulgación, el descodificador de vídeo 30 puede, en lugar de definir el conjunto GDR ("gdrPicSet") como un conjunto de imágenes que comienzan desde una primera imagen GDR hasta la imagen del punto de recuperación, definir gdrPicSet de acuerdo con la siguiente determinación de múltiples etapas. Si el descodificador de vídeo 30 identifica, en el flujo de bits recibido, una imagen que sigue a la imagen GDR en orden de descodificación en el flujo de bits recibido (o secuencia de vídeo codificada) y que tiene PicOrderCntVal igual al PicOrderCntVal de la imagen GDR más el valor del elemento de sintaxis recovery_poc_cnt descodificado señalizado en el mensaje SEI del punto de recuperación, el descodificador de vídeo 30 puede establecer la imagen indicada por la variable lastPicInSet como la imagen del punto de recuperación. De lo contrario, si el descodificador de vídeo 30 no detecta una imagen en la secuencia de vídeo codificada que satisfaga las condiciones enumeradas anteriormente, el descodificador de vídeo 30 puede establecer lastPicInSet en la imagen que precede inmediatamente a la imagen del punto de recuperación en orden de salida.
[0124] Además, el descodificador de vídeo 30 puede determinar que la imagen lastPicInSet no precede a la imagen GDR en orden de descodificación. En estos ejemplos, el descodificador de vídeo 30 puede establecer gdrPicSet para que sea el conjunto de imágenes que comienzan desde una primera imagen GDR y terminan en la imagen lastPicInSet, ambas imágenes incluidas, en orden de salida. Como resultado, en algunos ejemplos, la región refrescada en lastPicInSet puede o no cubrir la imagen completa. Por ejemplo, si el descodificador de vídeo 30 no localiza la imagen del punto de recuperación originalmente identificada, el descodificador de vídeo 30 puede establecer lastPicInSet en una imagen que preceda a la imagen del punto de recuperación identificada originalmente y, por lo tanto, determinar un límite final del conjunto GDR. A su vez, lastPicInSet puede ser una imagen no completamente refrescada, ya que lastPicInSet precede a la imagen del punto de recuperación identificada originalmente en orden de descodificación. En estos ejemplos, el descodificador de vídeo 30 puede identificar una imagen que sigue inmediatamente a lastPicInSet identificada como la imagen del punto de recuperación con respecto al conjunto GDR.
[0125] Como se describe, en algunos ejemplos, las técnicas de esta divulgación pueden no requerir cambios en la sintaxis existente del mensaje SEI del punto de recuperación o del mensaje SEI de información de refresco de región. Las técnicas pueden, en varios ejemplos, introducir cambios en la semántica existente del mensaje SEI del punto de recuperación y/o el mensaje SEI de información de refresco de región en WD9. La semántica asociada con el mensaje SEI del punto de recuperación se describe a continuación, y se resaltan los cambios introducidos en la semántica existente por las técnicas descritas en el presente documento.
[0126] El mensaje SEI del punto de recuperación ayuda al descodificador de vídeo 30 a determinar cuándo el proceso de descodificación producirá imágenes aceptables para su visualización después de que el descodificador de vídeo 30 inicie el acceso aleatorio o después de que el codificador de vídeo 20 indique un enlace roto en la secuencia de vídeo codificada. Cuando el descodificador de vídeo 30 comienza el proceso de descodificación con la AU en el orden de descodificación asociado con el mensaje SEI del punto de recuperación, todas las imágenes descodificadas en o después del punto de recuperación en el orden de salida especificado en este mensaje SEI se indican como correctas o aproximadamente correctas en contenido. Las imágenes descodificadas producidas por acceso aleatorio en o antes de la imagen asociada con el mensaje SEI del punto de recuperación no necesitan ser correctas en contenido hasta el punto de recuperación indicado o la siguiente imagen en el orden de salida, y la operación del proceso de descodificación que comienza en la imagen asociada con el mensaje SEI del punto de recuperación puede contener referencias a imágenes no disponibles en una memoria intermedia de imágenes descodificadas y/o memoria de imágenes de referencia 82.
[0127] Además, mediante el uso del elemento de sintaxis broken_link_flag, el codificador de vídeo 20 puede usar el mensaje SEI del punto de recuperación para indicar al descodificador de vídeo 30 la ubicación de una o más imágenes en el flujo de bits que pueden resultar potencialmente en artefactos visuales cuando se muestran, incluso cuando el proceso de descodificación se inició en la ubicación de una AU de punto de acceso aleatorio (RAP) previa, en orden de descodificación. El codificador de vídeo 20 puede usar el elemento de sintaxis broken_link_flag para indicar la ubicación de un punto después del cual el proceso de descodificación para la descodificación de una o más imágenes puede causar referencias a imágenes que, aunque están disponibles para su uso por el descodificador de vídeo 30 en el proceso de descodificación, no son imágenes que se usaron como referencia cuando el codificador de vídeo 20 codificó originalmente el flujo de bits (por ejemplo, debido a una operación de empalme realizada por el codificador de vídeo 20 durante la generación del flujo de bits).
[0128] En los ejemplos en los que el descodificador de vídeo 30 realiza un acceso aleatorio para comenzar a descodificar desde la AU asociada con el mensaje SEI del punto de recuperación, el descodificador de vídeo 30 puede determinar que la imagen asociada es la primera imagen en el flujo de bits, y las variables prevPicOrderCntLsb y prevPicOrderCntMsb usadas en la obtención de PicOrderCntVal de la imagen del punto de recuperación están configurados para ser iguales a 0. En los ejemplos en los que el descodificador de vídeo 30 determina que la información del descodificador de referencia hipotética (HRD) está presente en el flujo de bits recibido, el descodificador de vídeo 30 puede determinar que un mensaje SEI de período de almacenamiento intermedio está asociado con la AU asociada con el mensaje SEI del punto de recuperación para establecer la inicialización del modelo de almacenamiento intermedio de HRD después de un acceso aleatorio.
[0129] Cualquier secuencia o conjunto de parámetros de imagen RBSP al que se refiera una imagen asociada con un mensaje SEI del punto de recuperación o cualquier imagen que siga a dicha imagen en orden de descodificación puede estar disponible para el descodificador de vídeo 30 durante el proceso de descodificación antes de su activación, independientemente de si el descodificador de vídeo 30 inicia o no el proceso de descodificación al comienzo del flujo de bits o con la AU, en orden de descodificación, que está asociada con el mensaje SEI del punto de recuperación.
[0130] El elemento de sintaxis recovery_poc_cnt puede especificar, para el descodificador de vídeo 30, el punto de recuperación de las imágenes de salida en el orden de salida. Si el descodificador de vídeo 30 determina que hay una imagen picA que sigue a la imagen actual (por ejemplo, la imagen asociada con el mensaje SEI actual) en orden de descodificación en la secuencia de vídeo codificada, y que tiene PicOrderCntVal igual al PicOrderCntVal de la imagen actual más el valor de recuento del punto de recuperación, el descodificador de vídeo 30 puede referirse a la imagen picA como la imagen del punto de recuperación; de lo contrario, el descodificador de vídeo 30 puede referirse a la imagen que sigue inmediatamente a picA en orden de salida como la imagen del punto de recuperación. El descodificador de vídeo 30 puede determinar que la imagen del punto de recuperación no precede a la imagen actual en el orden de descodificación. El descodificador de vídeo 30 puede indicar que todas las imágenes descodificadas en orden de salida son correctas o aproximadamente correctas en contenido comenzando en la posición de orden de salida de la imagen del punto de recuperación. El descodificador de vídeo 30 puede determinar que el valor de recovery_poc_cnt está en el rango de -MaxPicOrderCntLsb / 2 to MaxPicOrderCntLsb / 2 - 1.
[0131] El elemento de sintaxis exact_match_flag indica al descodificador de vídeo 30 si una o más imágenes descodificadas en y después del punto de recuperación especificado en el orden de salida obtenido al iniciar el proceso de descodificación en la AU asociada con el mensaje SEI del punto de recuperación será una coincidencia exacta con una o más imágenes que serían producidas por el descodificador de vídeo 30 comenzando el proceso de descodificación en la ubicación de una AU de RAP previa, si la hubiera, en el flujo de bits recibido. Un valor de 0 asociado con exact_match_flag indica al descodificador de vídeo 30 que la coincidencia puede no ser exacta, y un valor de 1 indica que la coincidencia será exacta. Cuando exact_match_flag es igual a 1, es un requisito de conformidad de flujo de bits que las imágenes descodificadas en y posteriores al punto de recuperación especificado en el orden de salida obtenido por el descodificador de vídeo 30 al iniciar el proceso de descodificación en la AU asociada con el mensaje SEI del punto de recuperación son una coincidencia exacta con las imágenes que se producirían al iniciar el proceso de descodificación en la ubicación de una AU de RAP anterior, si la hubiera, en el flujo de bits.
[0132] Cuando se realiza acceso aleatorio, el descodificador de vídeo 30 puede inferir todas las referencias a imágenes no disponibles como referencias a imágenes que contienen solo bloques de intracodificación y que tienen valores de muestra dados por Y igual a (1 << (BitDepthy - 1)), Cb y Cr ambos iguales a (1 << (BitDepthC - 1)) (gris de nivel medio), independientemente del valor del indicador de coincidencia exacta. Cuando exact_match_flag es igual a 0, el codificador de vídeo 20 elige la calidad de la aproximación en el punto de recuperación durante el proceso de codificación.
[0133] El elemento de sintaxis broken_link_flag indica al descodificador de vídeo 30 la presencia o ausencia de un enlace roto en el flujo de la unidad de NAL en la ubicación del mensaje SEI del punto de recuperación y se le asigna semántica adicional de la siguiente manera: Si el indicador de enlace roto es igual a 1, las imágenes producidas por el descodificador de vídeo 30 al iniciar el proceso de descodificación en la ubicación de una AU de RAP anterior pueden contener artefactos visuales no deseables en la medida en que un dispositivo no debe mostrar imágenes descodificadas en y después de la unidad de acceso asociada con el mensaje SEI del punto de recuperación en orden de descodificación hasta el punto de recuperación especificado en orden de salida. De lo contrario (por ejemplo, el descodificador de vídeo 30 detecta que broken_link_flag es igual a 0), no se da ninguna indicación con respecto a cualquier posible presencia de artefactos visuales.
[0134] En los ejemplos en los que la imagen actual es una imagen de acceso de enlace roto (BLA), el descodificador de vídeo 30 puede detectar que el valor de broken_link_flag es igual a 1. Independientemente del valor de broken_link_flag, el decodificador de vídeo 30 puede determinar que las imágenes posteriores al punto de recuperación especificado en el orden de salida se especifican como correctas o aproximadamente correctas en contenido.
[0135] La semántica asociada con el mensaje SEI de información de refresco de región se describe a continuación, y se resaltan los cambios introducidos en la semántica existente en WD9 por las técnicas descritas en el presente documento.
[0136] El mensaje SEI de información de refresco de región indica al descodificador de vídeo 30 si los segmentos del fragmento a los que se aplica el mensaje SEI actual pertenecen a una región refrescada de la imagen actual (como se describe a continuación). Una AU que no es una AU de RAP y que contiene un mensaje SEI del punto de recuperación se denomina en el presente documento una AU de refresco gradual de descodificación (GDR), y su imagen correspondiente se denomina imagen GDR. La AU correspondiente a la imagen del punto de recuperación indicada se denomina en el presente documento como la AU del punto de recuperación.
[0137] El descodificador de vídeo 30 puede determinar que, si hay una imagen que sigue a la imagen GDR en orden de descodificación en la secuencia de vídeo codificada y que tiene PicOrderCntVal igual al PicOrderCntVal de la imagen GDR más el valor de recovery poc cnt en el mensaje SEI del punto de recuperación, que la variable lastPicInSet es la imagen del punto de recuperación; de lo contrario, lastPicInSet es la imagen que precede inmediatamente a la imagen del punto de recuperación en el orden de salida. El descodificador de vídeo 30 puede determinar que la imagen lastPicInSet no precede a la imagen GDR en orden de descodificación.
[0138] El descodificador de vídeo 30 puede determinar que gdrPicSet es el conjunto de imágenes que comienzan desde una imagen GDR hasta la imagen lastPicInSet, inclusive, en orden de salida. Cuando el descodificador de vídeo 30 inicia el proceso de descodificación desde una AU de GDR, la región refrescada en cada imagen de gdrPicSet se indica como la región de la imagen que es correcta o aproximadamente correcta en contenido, y, cuando lastPicInSet es el punto de recuperación, la región refrescada en lastPicInSet cubre toda la imagen.
[0139] El descodificador de vídeo 30 puede determinar que los segmentos de fragmento a los que se aplica un mensaje SEI de información de refresco de región consisten en todos los segmentos de fragmento dentro de la AU que sigue a la unidad de NAL de SEI que contiene el mensaje SEI de información de refresco de región y preceden a la siguiente unidad de NAL de SEI que contiene un mensaje SEI de información de refresco de región, si lo hay, en orden de descodificación. Estos segmentos de fragmento se denominan en el presente documento segmentos de fragmento asociados con el mensaje SEI de información de refresco de región.
[0140] Además, el descodificador de vídeo 30 puede determinar que gdrAuSet es el conjunto de unidades de acceso correspondientes a gdrPicSet. Un gdrAuSet y el gdrPicSet correspondiente se contemplan en el presente documento como asociados con el mensaje SEI del punto de recuperación contenido en la unidad de acceso GDR. El descodificador de vídeo 30 también puede determinar que los mensajes SEI de información de refresco de región no estarán presentes en una AU a menos que la AU esté incluida en un gdrAuSet asociado con un mensaje SEI del punto de recuperación. Además, el descodificador de vídeo 30 puede determinar que, cuando cualquier AU que esté incluida en un gdrAuSet contenga uno o más mensajes SEI de información de refresco de región, todas las unidades de acceso en el gdrAuSet contendrán uno o más mensajes SEI de información de refresco de región.
[0141] Si el elemento de sintaxis refreshed_region_flag es igual a 1, el descodificador de vídeo 30 puede determinar que el elemento de sintaxis refreshed_region_flag indica que los segmentos de fragmento asociados con el mensaje SEI actual pertenecen a la región refrescada en la imagen actual. Si el descodificador de vídeo 30 determina que el elemento de sintaxis refreshed_region_flag es igual a 0, entonces el descodificador de vídeo 30 puede determinar que el elemento de sintaxis refreshed_region_flag indica que los segmentos de fragmento asociados con el mensaje SEI actual pueden no pertenecer a la región refrescada en la imagen actual.
[0142] En los casos en los que el descodificador de vídeo 30 detecta que uno o más mensajes SEI de información de refresco de región están presentes en una AU, y el primer segmento de fragmento de la AU en orden de descodificación no tiene un mensaje SEI de información de refresco de región asociado, el descodificador de vídeo 30 puede inferir que el valor del elemento de sintaxis refreshed_region_flag para los segmentos de fragmento que preceden al primer mensaje SEI de información de refresco de región es igual a 0.
[0143] Cuando lastPicInSet es la imagen del punto de recuperación y cualquier mensaje SEI de refresco de región está incluida en una unidad de acceso del punto de recuperación, el descodificador de vídeo 30 puede determinar que el primer segmento del fragmento de la AU en orden de descodificación tiene un mensaje SEI de refresco de región asociado, y el valor de refreshed_region_flag será igual a 1 en todos los mensajes SEI de refresco de región en la AU. En ejemplos en los que el descodificador de vídeo 30 determina que uno o más mensajes SEI de información de refresco de región están presentes en una AU, el descodificador de vídeo 30 puede determinar que la región refrescada de la imagen se especifica como el conjunto de CTU en todos los segmentos del fragmento de la AU que están asociados con los mensajes SEI de información de refresco de región que tienen el refreshed_region_flag igual a 1. El descodificador de vídeo 30 puede determinar que otros segmentos de fragmento pertenecen a la región no refrescada de la imagen.
[0144] Un requisito de conformidad de flujo de bits es que, cuando un segmento de fragmento dependiente pertenece a la región refrescada, el segmento de fragmento anterior en orden de descodificación también debe pertenecer a la región refrescada. En ejemplos, el descodificador de vídeo 30 puede determinar que gdrRefreshedSliceSegmentSet es el conjunto de todos los segmentos de fragmento que pertenecen a las regiones refrescadas en el gdrPicSet. Cuando el descodificador de vídeo 30 determina que un gdrAuSet contiene uno o más mensajes SEI de información de refresco de región, es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones:
• La región refrescada en la primera imagen incluida en el gdrPicSet correspondiente en orden de descodificación que contiene cualquier región refrescada contendrá solo unidades de codificación (CU) que están codificadas en un modo de intracodificación.
• Para cada imagen incluida en gdrPicSet, los elementos de sintaxis en gdrRefreshedSliceSegmentSet estarán restringidos de manera que no se utilicen valores de muestras o de vectores de movimiento fuera de gdrRefreshedSliceSegmentSet para la interpredicción en el proceso de descodificación de cualquier muestra dentro de gdrRefreshedSliceSegmentSet.
• Para cualquier imagen que siga a la imagen lastPicInSet en orden de salida, los elementos de sintaxis en los segmentos del fragmento de la imagen estarán restringidos de manera que no haya valores de muestras o de vectores de movimiento fuera de gdrRefreshedSliceSegmentSet que se utilicen para la interpredicción en el proceso de descodificación de la imagen que no sean los de las otras imágenes que siguen a la imagen lastPicInSet en orden de salida.
[0145] Como se describe con respecto a la FIG. 3, el descodificador de vídeo 30 y/o sus componentes pueden realizar un procedimiento de descodificación de datos de vídeo, incluyendo el procedimiento recibir una pluralidad de imágenes desde un flujo de bits de vídeo codificado, recibir, desde el flujo de bits de vídeo codificado, un mensaje asociado con una primera imagen de la pluralidad de imágenes, información que indica un valor de recuento de orden de imagen (POC) de una imagen del punto de recuperación de un conjunto de refresco gradual del descodificador (GDR), cuando una imagen que sigue a la primera imagen en orden de descodificación tiene el valor POC que es igual a un valor POC de la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una imagen del punto de recuperación, y cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al POC valor de la imagen del punto de recuperación, identificar una de las imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0146] De acuerdo con algunas implementaciones de ejemplo del procedimiento descrito anteriormente con respecto al descodificador de vídeo 30, el procedimiento incluye, además, en respuesta a la identificación de la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una última imagen del conjunto GDR y, en respuesta a la identificación de la imagen que tiene el valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación, identificar una de las imágenes que tiene un valor POC menor que el valor POC de la imagen del punto de recuperación como la última imagen del conjunto GDR. En algunas implementaciones de ejemplo, el valor POC de la imagen que tiene un valor POC menor que el valor POC de la imagen del punto de recuperación es mayor que un valor POC de la primera imagen. De acuerdo con algunas implementaciones de ejemplo, el mensaje comprende un mensaje de información de mejora suplementaria (SEI). En una implementación de ejemplo de este tipo, el mensaje SEI comprende un mensaje SEI del punto de recuperación.
[0147] En algunas implementaciones de ejemplo del procedimiento descrito anteriormente con respecto al descodificador de vídeo 30, la información que indica el valor POC de la imagen del punto de recuperación comprende información que indica una diferencia entre un valor POC de la primera imagen y el valor POC de la imagen del punto de recuperación. De acuerdo con algunas implementaciones de ejemplo, la información que indica el valor POC de la imagen del punto de recuperación comprende el valor POC de la imagen del punto de recuperación. En algunas implementaciones de ejemplo, el procedimiento descrito anteriormente con respecto al descodificador de vídeo 30 incluye, además, descodificar una o más imágenes del conjunto GDR de acuerdo con GDR. De acuerdo con una implementación de ejemplo de este tipo, el procedimiento incluye, además, realizar una descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación identificada y una o más imágenes que siguen a la imagen del punto de recuperación identificada en orden de descodificación.
[0148] Además, el descodificador de vídeo 30 y/o sus componentes pueden realizar un procedimiento de descodificación de datos de vídeo, incluyendo el procedimiento recibir, en un mensaje asociado con una imagen, información que indica una región refrescada de la imagen, determinar si la imagen comprende una última imagen en un conjunto de refresco gradual del descodificador (GDR), determinar si la imagen comprende una imagen del punto de recuperación y responde a la determinación de que la imagen comprende la última imagen del conjunto GDR y la imagen del punto de recuperación, determinar que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen. En algunas implementaciones de ejemplo del procedimiento descrito anteriormente con respecto al descodificador de vídeo 30, el mensaje comprende un mensaje de información de mejora suplementaria (SEI). En una implementación de ejemplo de este tipo, el mensaje SEI comprende un mensaje SEI de refresco de región.
[0149] En algunas implementaciones de ejemplo del procedimiento descrito anteriormente con respecto al descodificador de vídeo 30, determinar que el mensaje indica que la imagen completa pertenece a la región refrescada de la imagen comprende determinar que un elemento de sintaxis refreshed_region_flag asociado con el mensaje SEI de refresco de región tiene un valor de 1. En una implementación de ejemplo de este tipo, el elemento de sintaxis refreshed_region_flag está asociado con un primer segmento de fragmento de una unidad de acceso (AU) que incluye la imagen, y determinar que toda la imagen pertenece a la región refrescada comprende, además, determinar que cada segmento de fragmento de la AU diferente del primer segmento de fragmento de la AU está asociado con un elemento de sintaxis refreshed_region_flag correspondiente.
[0150] En diversos ejemplos, el descodificador de vídeo 30 puede estar incluido en un dispositivo para codificar datos de vídeo, tal como un ordenador de sobremesa, un ordenador plegable (es decir, portátil), un ordenador de tipo tableta, un descodificador, un equipo telefónico portátil tal como un denominado teléfono “inteligente”, un denominado panel “inteligente”, un televisor, una cámara, un dispositivo de visualización, un reproductor de medios digitales, una consola de videojuegos, un dispositivo de transmisión de vídeo o similares. En ejemplos, un dispositivo de este tipo para la codificación de datos de vídeo puede incluir uno o más de un circuito integrado, un microprocesador y un dispositivo de comunicación que incluye el descodificador de vídeo 30.
[0151] La FIG. 4 es un diagrama conceptual que ilustra un ejemplo de conjunto de refresco gradual de descodificación (GDR) 90 que incluye una primera imagen GDR 90A, imágenes de conjunto GDR 90B, 90C, etc., y una imagen del punto de recuperación 90N, de acuerdo con uno o más aspectos de esta divulgación. Aunque las técnicas descritas en el presente documento con respecto al conjunto GDR 90 se pueden realizar mediante una variedad de dispositivos, solo para facilitar el análisis, la FIG. 4 se describe en el presente documento con respecto al descodificador de vídeo 30 de las FIGS. 1 y 3. El descodificador de vídeo 30 puede detectar que una unidad de acceso (AU) que incluye la imagen GDR 90A también incluye un mensaje SEI de punto de recuperación. Basándose en la detección del mensaje SEI del punto de recuperación asociado con la imagen GDR 90A, el descodificador de vídeo 30 puede determinar que la imagen GDR 90A forma la primera imagen de un conjunto GDR señalizado en el flujo de bits de vídeo codificado recibido.
[0152] Además, el descodificador de vídeo 30 puede aplicar el valor de un elemento de sintaxis recovery_poc_cnt incluido en el mensaje SEI del punto de recuperación para obtener el recuento POC de la imagen del punto de recuperación 90N. Por ejemplo, el descodificador de vídeo 30 puede agregar el valor del elemento de sintaxis recovery_poc_cnt al valor de recuento de orden de imagen (POC) de la imagen GDR 90A, para obtener el valor POC de la imagen del punto de recuperación 90N. En el ejemplo del conjunto GDR 90, el descodificador de vídeo 30 puede localizar una imagen, concretamente la imagen del punto de recuperación 90N, que tiene el valor POC obtenido por el descodificador de vídeo 30 del elemento de sintaxis recovery_poc_cnt. Por ejemplo, incluso si el conjunto GDR 90 está incluido en un subconjunto temporal extraído por el elemento de red 68, el conjunto GDR todavía puede incluir la imagen del punto de recuperación 90N identificada por el mensaje SEI del punto de recuperación. En otras palabras, en el ejemplo del conjunto GDR 90, la imagen del punto de recuperación 90N no se descartó debido a la adaptabilidad temporal a escala.
[0153] Basándose en la detección de la imagen del punto de recuperación 90N que utiliza el valor del elemento de sintaxis recovery_poc_cnt, el descodificador de vídeo 30 puede implementar técnicas de esta divulgación para determinar que la totalidad de la imagen del punto de recuperación 90N pertenece a una región refrescada, y que la imagen del punto de recuperación 90N es la lastPicInSet con respecto al conjunto GDR 90.
[0154] La FIG. 5 es un diagrama conceptual que ilustra un conjunto 94 de refresco gradual de descodificación (GDR) del que se ha eliminado una imagen del punto de recuperación 94N debido a la adaptabilidad temporal a escala, de acuerdo con uno o más aspectos de esta divulgación. El conjunto GDR 94 incluye la primera imagen GDR 94A, la imagen del conjunto GDR 94B, una o más imágenes adicionales del conjunto GDR y una última imagen del conjunto GDR 94M. Las letras utilizadas para etiquetar las imágenes del conjunto GDR no pretenden indicar un número particular de imágenes en el conjunto g Dr , sino que sirven como etiquetas. Aunque las técnicas descritas en el presente documento con respecto al conjunto GDR 90 se pueden realizar mediante una variedad de dispositivos, solo para facilitar el análisis, la FIG. 4 se describe en el presente documento con respecto al descodificador de vídeo 30 de las FIGS. 1 y 3. En el ejemplo del conjunto GDR 94, el elemento de red 68 puede haber descartado la imagen del punto de recuperación identificada en el mensaje SEI del punto de recuperación (por ejemplo, la imagen 94N del punto de recuperación identificada por SEI) durante la adaptabilidad temporal a escala. La imagen 94N del punto de recuperación identificada por SEI se ilustra con bordes de línea discontinua para indicar que la imagen 94N del punto de recuperación identificada por SEI estaba presente en una capa temporal superior, pero no existe en la capa temporal inferior recibida por el descodificador de vídeo 30.
[0155] En el ejemplo de la secuencia de vídeo codificada 92 de la FIG. 5, el descodificador de vídeo 30 puede usar recovery_poc_cnt para determinar que el mensaje SEI del punto de recuperación identifica la imagen 94N del punto de recuperación identificada por SEI como la imagen del punto de recuperación del conjunto GDR 94. Sin embargo, debido a que la imagen 94N del punto de recuperación identificada por SEI ha sido descartada durante la adaptabilidad temporal a escala, el descodificador de vídeo 30 puede ser incapaz de localizar la imagen 94N del punto de recuperación identificada por SEI en el subconjunto temporal recibido. A su vez, el descodificador de vídeo 30 puede implementar una o más técnicas de esta divulgación para admitir la descodificación basada en GDR del conjunto GDR 94, mientras que admite flujos de bits adaptables temporalmente a escala.
[0156] Por ejemplo, el descodificador de vídeo 30 puede ubicar la primera imagen, en orden de descodificación, de la secuencia de vídeo codificada 92, que tiene un valor POC mayor que el valor POC obtenido con respecto a la imagen 94N del punto de recuperación identificada por SEI. Además, el descodificador de vídeo 30 puede implementar una o más técnicas descritas en el presente documento para identificar la imagen localizada como la imagen del punto de recuperación con respecto al conjunto GDR 94. En el ejemplo de la FIG. 5, el descodificador de vídeo 30 puede identificar la imagen 96 del punto de recuperación como la primera imagen de la secuencia de vídeo codificada 92 que tiene un valor POC mayor que el valor POC de la imagen 94N del punto de recuperación identificada por SEI. Por ejemplo, al identificar la imagen 96 del punto de recuperación como la imagen del punto de recuperación con respecto al conjunto GDR 94, el descodificador de vídeo 30 puede determinar que la totalidad de la imagen 96 del punto de recuperación pertenece a una región refrescada, para acceso aleatorio y resistencia a errores en la descodificación de la secuencia de vídeo codificada 92.
[0157] Además, el descodificador de vídeo 30 puede identificar la imagen que precede inmediatamente a la imagen del punto de recuperación 96 en la secuencia de vídeo codificada 92, como la lastPicInSet del conjunto GDR 94. Por ejemplo, en respuesta a la imposibilidad de localizar la imagen 94N del punto de recuperación identificada por SEI en la secuencia de vídeo codificada 92, el descodificador de vídeo 30 puede implementar técnicas de esta divulgación para identificar last_picture_in_GDR_set 94M como la lastPicInSet del conjunto GDR 94. En este ejemplo, el descodificador de vídeo 30 puede identificar dos imágenes separadas, que son consecutivas en orden de descodificación dentro de la secuencia de vídeo codificada 92, como lastPicInSet (94M) y la imagen del punto de recuperación (96) con respecto al conjunto GDR 94. Además, en este ejemplo, la imagen del punto de recuperación identificada por el descodificador de vídeo 30 puede no estar incluida en el conjunto GDR 94. La FIG. 5 ilustra un ejemplo en el que el descodificador de vídeo 30 puede implementar técnicas de esta divulgación para identificar lastPicInSet y una imagen del punto de recuperación para el conjunto GDR 94, incluso si la imagen 94N del punto de recuperación identificada por SEI se descartó debido a la adaptabilidad temporal a escala. De esta manera, la FIG. 5 ilustra un ejemplo en el que el descodificador de vídeo 30 puede implementar técnicas de esta divulgación para descodificar el conjunto GDR 94 de acuerdo con GDR como se describe en el documento HEVC WD9, mientras admite la adaptabilidad temporal a escala de los flujos de bits de vídeo codificados.
[0158] La FIG. 6 es un diagrama de flujo que ilustra un proceso 100 de ejemplo, que el descodificador de vídeo 30 y/o los componentes del mismo pueden realizar para descodificar los datos de vídeo codificado, según uno o más aspectos de esta divulgación. El proceso 100 puede comenzar cuando el descodificador de vídeo 30 detecta un mensaje SEI del punto de recuperación en un flujo de bits de vídeo codificado (102) recibido. Por ejemplo, el descodificador de vídeo 30 puede detectar el mensaje SEI del punto de recuperación en una unidad de acceso GDR, que también incluye datos asociados con una imagen GDR codificada, tal como la primera imagen GDR del conjunto GDR. Basándose en la detección del mensaje SEI del punto de recuperación en la unidad de acceso GDR, el descodificador de vídeo 30 puede determinar que la imagen GDR incluida en la unidad de acceso GDR forma la primera imagen de un conjunto GDR.
[0159] Además, el descodificador de vídeo 30 puede determinar si una imagen del punto de recuperación identificada en el mensaje SEI del punto de recuperación está incluida en el flujo de bits de vídeo codificado (104) recibido. Por ejemplo, el descodificador de vídeo 30 puede agregar un valor de un elemento de sintaxis recovery_poc_cnt del mensaje SEI del punto de recuperación al valor POC de la imagen GDR, para obtener el valor POC de la imagen del punto de recuperación identificada por SEI. En un ejemplo, el descodificador de vídeo puede usar el valor POC obtenido para atravesar la secuencia de vídeo codificada recibida, para determinar si una imagen de la secuencia tiene el valor POC obtenido. Por ejemplo, el descodificador de vídeo 30 puede atravesar la secuencia de vídeo codificada en orden de descodificación. En este ejemplo, si el descodificador de vídeo 30 alcanza una imagen con el valor POC obtenido, el descodificador de vídeo 30 puede determinar que la imagen del punto de recuperación identificada por SEI se incluye en la secuencia de vídeo codificada recibida. Por otro lado, en este ejemplo, si el descodificador de vídeo 30 alcanza una imagen con un valor POC mayor que el valor POC obtenido, pero aún no ha localizado una imagen con el valor POC obtenido, entonces el descodificador de vídeo 30 puede determinar que la imagen del punto de recuperación identificada por SEI no está incluida en el flujo de bits de vídeo codificado recibido.
[0160] Si el descodificador de vídeo 30 determina que la imagen del punto de recuperación identificada por SEI está incluida en el flujo de bits recibido (rama 'SÍ' de 104), el descodificador de vídeo puede identificar la imagen del punto de recuperación identificada por SEI como la última imagen en el conjunto GDR (lastPicInSet) y como la imagen del punto de recuperación para el conjunto GDR (106). En este escenario, el descodificador de vídeo 30 puede determinar que lastPicInSet y la imagen del punto de recuperación son la misma imagen, y que la imagen del punto de recuperación está incluida en el conjunto GDR.
[0161] Por otro lado, si el descodificador de vídeo 30 determina que la imagen del punto de recuperación identificada por SEI no está incluida en el flujo de bits de vídeo recibido (rama 'NO' de 104), entonces el descodificador de vídeo 30 puede identificar una imagen que sigue a la imagen del punto de recuperación identificada por SEI, como la imagen del punto de recuperación para el conjunto GDR (108). Por ejemplo, el descodificador de vídeo 30 puede identificar la imagen de recuperación como la primera imagen, en orden de descodificación, del flujo de bits de vídeo recibido que tiene un valor POC mayor que el valor POC obtenido con respecto a la imagen del punto de recuperación identificada por SEI.
[0162] Además, en este escenario, el descodificador de vídeo 30 puede identificar una imagen de la secuencia de vídeo codificada recibida que precede inmediatamente a la imagen del punto de recuperación identificada en orden de descodificación, es decir, la última imagen que tiene un valor POC menor que el valor POC obtenido con respecto a la imagen del punto de recuperación identificada por SEI, como la lastPicInSet del conjunto GDR (110). En este ejemplo, el descodificador de vídeo 30 puede identificar dos imágenes separadas, que son consecutivas en orden de descodificación, como lastPicInSet y la imagen del punto de recuperación con respecto al conjunto GDR. Además, en este ejemplo, el descodificador de vídeo 30 puede determinar que lastPicInSet está incluido en el conjunto GDR, y que la imagen del punto de recuperación no está incluida en el conjunto GDR. Por ejemplo, el descodificador de vídeo 30 puede determinar que la imagen del punto de recuperación es la primera imagen, en orden de descodificación, que sigue al conjunto GDR en el flujo de bits de vídeo codificado recibido.
[0163] De esta manera, el descodificador de vídeo 30 puede ser un ejemplo de un dispositivo para descodificar datos de vídeo, incluyendo el dispositivo medios para recibir una pluralidad de imágenes desde un flujo de bits de vídeo codificado, medios para recibir, desde el flujo de bits de vídeo codificado un mensaje asociado con una primer imagen de la pluralidad de imágenes, indicando la información un valor POC de una imagen de punto de recuperación de un conjunto de refresco gradual del descodificador (GDR), medios para identificar, cuando una imagen que sigue a la primera imagen en orden de descodificación tiene el valor POC igual a un valor POC de la imagen del punto de recuperación, teniendo la imagen el valor POC igual al valor POC de la imagen del punto de recuperación, como una imagen del punto de recuperación, y medios para identificar, cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al valor POC de la imagen del punto de recuperación, una de las imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0164] En algunos ejemplos, el dispositivo puede incluir, además, medios para, en respuesta a la identificación de la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación, como la imagen del punto de recuperación, identificar la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una última imagen del conjunto GDR, y medios para, en respuesta a la identificación de la imagen que tiene el valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación, identificar una de las imágenes que tiene un valor POC menor que el valor POC de la imagen del punto de recuperación como la última imagen del conjunto GDR. De acuerdo con algunos ejemplos, el valor POC de la imagen que tiene el valor POC menor que el valor POC de la imagen del punto de recuperación es mayor que un valor POC de la primera imagen.
[0165] En algunos ejemplos, el mensaje comprende un mensaje de información de mejora suplementaria (SEI) del punto de recuperación. De acuerdo con algunos ejemplos, el valor POC de la imagen que tiene el valor POC menor que el valor POC de la imagen del punto de recuperación es mayor que un valor POC de la primera imagen. De acuerdo con algunos ejemplos, la información que indica el valor POC de la imagen del punto de recuperación comprende información que indica una diferencia entre un valor POC de la primera imagen y el valor POC de la imagen del punto de recuperación. De acuerdo con algunos ejemplos, la información que indica el valor POC de la imagen del punto de recuperación comprende el valor POC de la imagen del punto de recuperación. En algunos ejemplos, el dispositivo puede incluir, además, medios para realizar la descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación identificada y una o más imágenes que siguen a la imagen del punto de recuperación identificada en orden de descodificación.
[0166] Además, de esta manera, el dispositivo de destino 14 de la FIG. 1 puede ser un ejemplo de un dispositivo informático que incluye o está acoplado a un medio de almacenamiento legible por ordenador que tiene almacenadas instrucciones que, cuando se ejecutan, hacen que un procesador del dispositivo informático reciba una pluralidad de imágenes de un flujo de bits de vídeo codificado, reciba, del flujo de bits de vídeo codificado, un mensaje asociado con una primera imagen de la pluralidad de imágenes, indicando la información un valor POC de una imagen del punto de recuperación de un conjunto de refresco gradual del descodificador (GDR), cuando una imagen que sigue a la primera imagen en orden de descodificación tiene el valor POC igual a un valor POC de la imagen del punto de recuperación, identifique la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como una imagen del punto de recuperación, y cuando ninguna de las imágenes que siguen a la primera imagen tiene el valor POC igual al valor POC de la imagen del punto de recuperación, identifique una de las imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación.
[0167] En algunos ejemplos, el medio de almacenamiento legible por ordenador puede haber almacenado instrucciones que, cuando se ejecutan, provocan, además, que el procesador del dispositivo informático, en respuesta a la identificación de la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación, identifique la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como la última imagen del conjunto GDR, y en respuesta a la identificación de la imagen que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación como la imagen del punto de recuperación, identifique una de las imágenes que tiene un valor POC menor que el valor POC de la imagen del punto de recuperación como la última imagen del conjunto GDR. En algunos ejemplos, el mensaje comprende un mensaje de información de mejora suplementaria (SEI) del punto de recuperación. De acuerdo con algunos ejemplos, el valor POC de la imagen que tiene el valor POC menor que el valor POC de la imagen del punto de recuperación es mayor que un valor POC de la primera imagen.
[0168] En algunos ejemplos, el mensaje comprende un mensaje de información de mejora suplementaria (SEI). En uno de tales ejemplos, el mensaje SEI comprende un mensaje SEI de refresco de región. De acuerdo con algunos ejemplos, la información que indica el valor POC de la imagen del punto de recuperación comprende información que indica una diferencia entre un valor POC de la primera imagen y el valor POC de la imagen del punto de recuperación. De acuerdo con algunos ejemplos, la información que indica el valor POC de la imagen del punto de recuperación comprende el valor POC de la imagen del punto de recuperación. En algunos ejemplos, el medio de almacenamiento legible por ordenador puede haber almacenado instrucciones que, cuando se ejecutan, hacen, que el procesador del dispositivo informático, además, realice una descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación identificada y una o más imágenes que siguen a la imagen del punto de recuperación en orden de descodificación.
[0169] La FIG. 7 es un diagrama de flujo que ilustra un proceso 120 de ejemplo, que el descodificador de vídeo 30 y/o los componentes del mismo pueden realizar para descodificar los datos de vídeo codificado, según uno o más aspectos de esta divulgación. El proceso 120 puede comenzar cuando el descodificador de vídeo 30 recibe un conjunto de una o más imágenes codificadas en un flujo de bits de vídeo codificado (122). En varios ejemplos, el conjunto recibido de imágenes codificadas puede incluir, ser o ser parte de, un conjunto GDR.
[0170] El descodificador de vídeo 30 puede detectar que una imagen actual del conjunto recibido es tanto la lastPicInSet del conjunto GDR como una imagen del punto de recuperación (124). Como ejemplo, el descodificador de vídeo 30 puede determinar que la imagen actual tiene un valor POC que coincide con el valor POC indicado por un mensaje SEI del punto de recuperación recibido más recientemente en el flujo de bits de vídeo codificado. En este ejemplo, basándose en el valor POC de la imagen actual que coincide con el valor POC indicado en el mensaje SEI del punto de recuperación recibido más recientemente, el descodificador de vídeo 30 puede determinar que la imagen actual es tanto la lastPicInSet del conjunto GDR, como también una imagen del punto de recuperación.
[0171] Además, el descodificador de vídeo 30 puede determinar que el mensaje SEI de refresco de región recibida incluye un refreshed_region_flag establecido a un valor de 1, para un primer segmento de fragmento de la AU que incluye la imagen actual (126). Por ejemplo, el descodificador de vídeo 30 puede descodificar el mensaje SEI de refresco de región asociado con la imagen actual para obtener un refreshed_region_flag correspondiente a cada segmento de fragmento de la imagen actual. En algunos ejemplos, el descodificador de vídeo 30 puede descodificar el mensaje SEI de refresco de región para obtener los refreshed_region_flag de la AU en orden de fragmento secuencial, es decir, comenzando con la descodificación del primer fragmento de la AU, luego descodificando el segundo fragmento de la AU, y así sucesivamente. Como resultado, en ejemplos de obtención secuencial de los refreshed_region_flag de la AU, el descodificador de vídeo 30 puede obtener el refreshed_region_flag para el primer segmento de fragmento antes de obtener los refreshed_region_flag para los segmentos de fragmento restantes de la AU.
[0172] Basándose en la determinación de que la imagen actual es la lastPicInSet y una imagen del punto de recuperación (124), y que refreshed_region_flag para el primer fragmento de la AU se establece en un valor de 1 (126), el descodificador de vídeo 30 puede determinar que el mensaje SEI de refresco de región incluye los refreshed_region_flag establecidos en un valor de 1 para todos los fragmentos restantes de la AU (128). Por ejemplo, basándose en el primer fragmento de la AU que se establece en el valor de 1, y basándose en la determinación de que la imagen actual es la lastPicInSet y una imagen del punto de recuperación, el descodificador de vídeo 30 puede determinar que la imagen actual es una imagen completamente refrescada. En otras palabras, en este ejemplo, el descodificador de vídeo 30 puede determinar que la totalidad de la imagen actual pertenece a la región refrescada de la imagen actual. A su vez, basándose en la determinación de que la imagen actual es una imagen completamente refrescada, el descodificador de vídeo 30 puede inferir los valores de los refreshed_region_flag correspondientes a todos los fragmentos de la AU que se establecerán en un valor de 1.
[0173] De esta manera, el descodificador de vídeo 30 puede implementar las técnicas de esta divulgación para determinar que los valores de todos los refreshed_region_flag incluidos en el mensaje SEI de refresco de región (para la AU que incluye la imagen actual) se establecen en un valor de 1, en casos donde el vídeo el descodificador 30 determina que la imagen actual está completamente refrescada. Por ejemplo, el descodificador de vídeo puede descodificar el refreshed_region_flag para el primer fragmento de la AU para obtener un valor de 1. Basándose en el valor del refreshed_region_flag para el primer fragmento que tiene un valor de 1, y siendo la imagen actual el últimoPicInSet y una imagen del punto de recuperación, el descodificador de vídeo 30 puede inferir los valores de los refreshed_region_flag de los fragmentos restantes de la AU para tener valores de 1, lo que representa una imagen completamente refrescada. Al inferir que los valores de los refreshed_region_flag restantes tienen valores de 1 en el caso de una imagen completamente refrescada, el descodificador de vídeo 30 puede conservar los recursos informáticos en el proceso de descodificación, mientras mantiene la precisión de la descodificación con respecto a la imagen completamente refrescada.
[0174] De esta manera, el descodificador de vídeo 30 puede ser un ejemplo de un dispositivo para descodificar datos de vídeo, incluyendo el dispositivo medios para recibir, en un mensaje asociado con una imagen, información que indica una región refrescada de la imagen, medios para determinar si la imagen comprende una última imagen en un conjunto de refresco gradual del descodificador (GDR), medios para determinar si la imagen comprende una imagen del punto de recuperación, medios para, en respuesta a la determinación de que la imagen comprende la última imagen en el conjunto GDR y la imagen del punto de recuperación, determinar que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen, y medios para descodificar la imagen basándose en la determinación de que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen. En algunos ejemplos, el mensaje comprende un mensaje de información de mejora suplementaria (SEI). En uno de tales ejemplos, el mensaje SEI comprende un mensaje SEI de refresco de región.
[0175] En algunos ejemplos, los medios para determinar que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen incluyen medios para determinar que un elemento de sintaxis refreshed_region_flag asociado con el mensaje SEI de refresco de región tiene un valor de 1. En uno de estos ejemplos, el elemento de sintaxis refreshed_region_flag está asociado con un primer segmento de fragmento de una unidad de acceso (AU) que incluye la imagen, y los medios para determinar que toda la imagen pertenece a la región refrescada incluyen, además, medios para determinar que cada segmento de fragmento de la AU diferente del primer segmento de fragmento de la AU está asociado con un elemento de sintaxis refreshed_region_flag correspondiente.
[0176] Además, de esta manera, el dispositivo de destino 14 de la FIG. 1 puede ser un ejemplo de un dispositivo informático que incluye o está acoplado a un medio de almacenamiento legible por ordenador que tiene almacenadas instrucciones que, cuando se ejecutan, hacen que un procesador del dispositivo informático reciba, en un mensaje asociado con una imagen, información que indica una región refrescada de la imagen, determine si la imagen comprende una última imagen en un conjunto de refresco gradual del descodificador (GDR), determine si la imagen comprende una imagen del punto de recuperación, en respuesta a determinar que la imagen comprende la última imagen en el conjunto GDR y la imagen del punto de recuperación, determine que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen y descodifique la imagen basándose en la determinación de que el mensaje indica que toda la imagen pertenece a la región refrescada de la imagen. En algunos ejemplos, el mensaje comprende un mensaje de información de mejora suplementaria (SEI). En uno de tales ejemplos, el mensaje SEI comprende un mensaje SEI de refresco de región.
[0177] En algunos ejemplos, las instrucciones que hacen que el procesador del dispositivo informático determine que el mensaje indica que la imagen completa pertenece a la región refrescada de la imagen incluyen instrucciones que hacen que el procesador del dispositivo informático determine que un elemento de sintaxis refreshed_region_flag asociado con el mensaje SEI de refresco de región tiene un valor de 1. En uno de estos ejemplos, el elemento de sintaxis refreshed_region_flag está asociado con un primer segmento de fragmento de una unidad de acceso (AU) que incluye la imagen y las instrucciones que hacen que el procesador del dispositivo informático determine que toda la imagen pertenece a la región refrescada incluye, además, instrucciones que hacen que el procesador del dispositivo informático determine que cada segmento de fragmento de la AU diferente del primer segmento de fragmento de la AU está asociado con un elemento de sintaxis refreshed_region_flag correspondiente.
[0178] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en o transmitir a través de un medio legible por ordenador como una o más instrucciones o código, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como medios de almacenamiento de datos, diversos dispositivos de almacenamiento legibles por ordenador, o medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles legibles por ordenador que son no transitorios o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en la presente divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0179] 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 de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda usar para almacenar 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 adecuadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se debe entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en cambio, se refieren a medios de almacenamiento tangibles no transitorios. El término disco, como se usa en el presente documento, incluye el disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde algunos discos normalmente reproducen datos magnéticamente, mientras que otros discos reproducen datos ópticamente con láseres. Las combinaciones de lo anterior se deberían incluir también dentro del alcance de los medios legibles por ordenador.
[0180] 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 en módulos de hardware y/o de software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0181] Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (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 por diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, incluidos uno o más procesadores como los descritos anteriormente, junto con software y/o firmware adecuados.
[0182] Se han descrito diversos ejemplos. No obstante, el alcance está definido por las reivindicaciones siguientes.

Claims (12)

REIVINDICACIONES
1. Un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento:
recibir una pluralidad de imágenes de un flujo de bits de vídeo codificado;
recibir, desde el flujo de bits de vídeo codificado, un mensaje de información de mejora suplementaria (SEI) del punto de recuperación incluido en una unidad de acceso (AU) que también incluye una primera imagen de la pluralidad de imágenes, incluyendo el mensaje SEI del punto de recuperación información que indica un valor de recuento de orden de imágenes (POC) de una imagen del punto de recuperación de un conjunto de imágenes de refresco gradual del descodificador (GDR) de la pluralidad de imágenes, estando disponible la imagen del punto de recuperación para la descodificación de acceso aleatorio de manera que las imágenes descodificadas en el punto de recuperación o posteriores al mismo en el orden de salida especificado en el mensaje SEI del punto de recuperación se indica que son correctas o aproximadamente correctas en contenido;
basándose en una determinación de que una imagen, que sigue a una primera imagen en orden de descodificación, tiene un valor POC que es igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación, determinar que la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación es la imagen del punto de recuperación determinada que está disponible para la descodificación de acceso aleatorio y produce el contenido correcto o aproximadamente correcto, o
basándose en la determinación de que ninguna imagen de la pluralidad de imágenes, que sigue a la primera imagen en orden de descodificación, tiene un valor POC que es igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación, determinar que la primera imagen en el orden de descodificación de la pluralidad de imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación es la imagen del punto de recuperación determinada que está disponible para la descodificación de acceso aleatorio, de tal manera que las imágenes descodificadas en o después del punto de recuperación en el orden de salida especificado en el mensaje SEI del punto de recuperación son correctas o aproximadamente correctas en contenido; y
realizar la descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación determinado iniciando la descodificación desde la unidad de acceso asociada con el punto de recuperación determinado.
2. El procedimiento según la reivindicación 1, que comprende, además, una entre:
en respuesta a la determinación de que la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es la imagen del punto de recuperación que está completamente refrescada y disponible para la descodificación de acceso aleatorio, determinar que la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es una última imagen, en orden de descodificación, del conjunto GDR, o
en respuesta a la determinación de que la siguiente imagen en el orden de descodificación que tiene el valor POC mayor que el valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es la imagen del punto de recuperación, determinar que una última imagen en el orden de descodificación de la pluralidad de imágenes que tiene un valor POC menor que el valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es la última imagen, en orden de descodificación, del conjunto GDR.
3. El procedimiento según la reivindicación 2, en el que el valor POC de la última imagen, en orden de descodificación, del conjunto GDR es mayor que un valor POC de la primera imagen.
4. El procedimiento según la reivindicación 1, en el que la información que indica el valor POC de la imagen del punto de recuperación comprende información que indica una diferencia entre un valor POC de la primera imagen de la pluralidad de imágenes y el valor POC de la imagen del punto de recuperación que está completamente refrescada y disponible para descodificación de acceso aleatorio.
5. El procedimiento según la reivindicación 1, en el que la información que indica el valor POC de la imagen del punto de recuperación comprende el valor POC de la imagen del punto de recuperación.
6. Un dispositivo para descodificar datos de vídeo, comprendiendo el dispositivo:
medios para recibir una pluralidad de imágenes de un flujo de bits de vídeo codificado;
medios para recibir, desde el flujo de bits de vídeo codificado, un mensaje de información de mejora suplementaria (SEI) del punto de recuperación incluido en una unidad de acceso (AU) que también incluye una primera imagen de la pluralidad de imágenes, incluyendo el mensaje SEI del punto de recuperación información que indica un valor POC de una imagen del punto de recuperación de un conjunto de imágenes de refresco gradual del descodificador (GDR) de la pluralidad de imágenes, estando la imagen del punto de recuperación completamente refrescada y disponible para la descodificación de acceso aleatorio; y
medios para determinar, basándose en una determinación de que una imagen que sigue a una primera imagen en orden de descodificación, que tiene un valor POC que es igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación, que la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación es la imagen del punto de recuperación que está completamente refrescada y disponible para la descodificación de acceso aleatorio, o
medios para determinar, basándose en la determinación de que ninguna imagen de la pluralidad de imágenes, que sigue a la primera imagen en orden de descodificación, tiene un valor POC que es igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación, que la primera imagen en el orden de descodificación de la pluralidad de imágenes que tiene un valor POC mayor que el valor POC de la imagen del punto de recuperación es la imagen del punto de recuperación que está completamente refrescada y disponible para la descodificación de acceso aleatorio, y para realizar la descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación determinada iniciando la descodificación desde la unidad de acceso asociada con el punto de recuperación determinado.
7. El dispositivo según la reivindicación 9, configurado, además, para realizar uno de:
en respuesta a la determinación de que la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es la imagen del punto de recuperación, determinar que la imagen que tiene el valor POC igual al valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es la última imagen, en orden de descodificación, del conjunto GDR, o
en respuesta a la determinación de que la siguiente imagen en el orden de descodificación que tiene el valor POC mayor que el valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es la imagen del punto de recuperación, determinar que la última imagen en el orden de descodificación de la pluralidad de imágenes que tiene un valor POC menor que el valor POC de la imagen del punto de recuperación como se indica en el mensaje SEI del punto de recuperación es la última imagen, en orden de descodificación, del conjunto GDR.
8. El dispositivo según la reivindicación 7, en el que el valor POC de la última imagen, en orden de descodificación, del conjunto GDR es mayor que un valor POC de la primera imagen.
9. El dispositivo según la reivindicación 7, en el que la información que indica el valor POC de la imagen del punto de recuperación comprende información que indica una diferencia entre un valor POC de la primera imagen y el valor POC de la imagen del punto de recuperación que está completamente refrescada y disponible para la descodificación de acceso aleatorio.
10. El dispositivo según la reivindicación 7, en el que la información que indica el valor POC de la imagen del punto de recuperación comprende el valor POC de la imagen del punto de recuperación.
11. El dispositivo según la reivindicación 10, configurado, además, para realizar la descodificación de acceso aleatorio con respecto a la imagen del punto de recuperación y una o más imágenes que siguen la imagen del punto de recuperación identificada en orden de descodificación.
12. Un medio de almacenamiento legible por ordenador que tiene instrucciones almacenadas en el mismo que, cuando se ejecutan, hacen que un procesador de un dispositivo de descodificación de vídeo lleve a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 6:
ES14702671T 2013-01-07 2014-01-07 Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo Active ES2777214T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361749880P 2013-01-07 2013-01-07
US14/147,973 US9571847B2 (en) 2013-01-07 2014-01-06 Gradual decoding refresh with temporal scalability support in video coding
PCT/US2014/010482 WO2014107721A1 (en) 2013-01-07 2014-01-07 Gradual decoding refresh with temporal scalability support in video coding

Publications (1)

Publication Number Publication Date
ES2777214T3 true ES2777214T3 (es) 2020-08-04

Family

ID=51060942

Family Applications (2)

Application Number Title Priority Date Filing Date
ES14702671T Active ES2777214T3 (es) 2013-01-07 2014-01-07 Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo
ES14702672T Active ES2833149T3 (es) 2013-01-07 2014-01-07 Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES14702672T Active ES2833149T3 (es) 2013-01-07 2014-01-07 Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo

Country Status (10)

Country Link
US (2) US9398293B2 (es)
EP (2) EP2941878B1 (es)
JP (2) JP6239650B2 (es)
KR (2) KR101841333B1 (es)
CN (2) CN104885460B (es)
DK (2) DK2941879T3 (es)
ES (2) ES2777214T3 (es)
HU (2) HUE049430T2 (es)
TW (2) TWI566585B (es)
WO (2) WO2014107721A1 (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9398293B2 (en) 2013-01-07 2016-07-19 Qualcomm Incorporated Gradual decoding refresh with temporal scalability support in video coding
WO2015104451A1 (en) * 2014-01-07 2015-07-16 Nokia Technologies Oy Method and apparatus for video coding and decoding
US20170013274A1 (en) * 2015-07-09 2017-01-12 Microsoft Technology Licensing, Llc Intra-refresh for video streaming
WO2020032049A1 (ja) * 2018-08-06 2020-02-13 シャープ株式会社 動画像復号装置、および動画像符号化装置
US10630976B2 (en) * 2018-08-17 2020-04-21 Qualcomm Incorporated Display refresh blocks determination for video coding
GB201817784D0 (en) * 2018-10-31 2018-12-19 V Nova Int Ltd Methods,apparatuses, computer programs and computer-readable media
JP2022508244A (ja) * 2018-11-27 2022-01-19 オーピー ソリューションズ, エルエルシー 明示的信号伝達および暗黙的信号伝達を用いた、使用不可参照フレームの適応ブロック更新
CN111279694A (zh) * 2018-11-28 2020-06-12 深圳市大疆创新科技有限公司 Gdr码流编码方法、终端设备、机器可读存储介质
US10972755B2 (en) * 2018-12-03 2021-04-06 Mediatek Singapore Pte. Ltd. Method and system of NAL unit header structure for signaling new elements
SG11202106524PA (en) 2018-12-20 2021-07-29 Ericsson Telefon Ab L M Normative indication of recovery point
KR20210134390A (ko) * 2019-03-11 2021-11-09 후아웨이 테크놀러지 컴퍼니 리미티드 인코더, 디코더 및 대응 방법
KR20200110213A (ko) * 2019-03-12 2020-09-23 현대자동차주식회사 영상 부호화 및 복호화 방법 및 장치
PL3910952T3 (pl) 2019-04-23 2023-10-30 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Sposób dekodowania obrazu, dekoder i nośnik danych
CN113796085A (zh) 2019-05-06 2021-12-14 华为技术有限公司 用于逐步解码刷新的假想参考解码器
CN114128264A (zh) * 2019-05-22 2022-03-01 弗劳恩霍夫应用研究促进协会 用于独立编码区域的无漂移填充和哈希的编码器和解码器,编码方法和解码方法
US11457242B2 (en) * 2019-06-24 2022-09-27 Qualcomm Incorporated Gradual random access (GRA) signalling in video coding
JP7304419B2 (ja) * 2019-09-06 2023-07-06 株式会社ソニー・インタラクティブエンタテインメント 送信装置、送信方法及びプログラム
MX2022003553A (es) * 2019-09-24 2022-06-02 Huawei Tech Co Ltd Señalización de encabezado de imagen en codificación de video.
JP7405990B2 (ja) 2019-12-26 2023-12-26 バイトダンス インコーポレイテッド コーディングされたピクチャ内における復号順を実装する技術
US11758171B2 (en) 2019-12-27 2023-09-12 Alibaba Group Holding Limited Methods and systems for performing gradual decoding refresh processing on pictures
WO2021177794A1 (ko) * 2020-03-05 2021-09-10 엘지전자 주식회사 혼성 nal 유닛 타입에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021188451A1 (en) 2020-03-16 2021-09-23 Bytedance Inc. Random access point access unit in scalable video coding
WO2021201559A1 (ko) * 2020-04-01 2021-10-07 엘지전자 주식회사 Gdr에 대한 리커버리 포인트 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
KR20220165256A (ko) * 2020-04-11 2022-12-14 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
WO2021236903A1 (en) * 2020-05-21 2021-11-25 Bytedance Inc. Signaling of gradual decoding refresh and reference picture lists
WO2023132623A1 (ko) * 2022-01-05 2023-07-13 주식회사 케이티 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260827A1 (en) 2003-06-19 2004-12-23 Nokia Corporation Stream switching based on gradual decoder refresh
JP4578326B2 (ja) * 2005-05-31 2010-11-10 京セラ株式会社 地上波デジタル放送受信機
EP1908300B1 (en) * 2005-07-25 2018-05-16 Thomson Licensing DTV Method and apparatus for the concealment of missing video frames
CN101321284B (zh) 2007-06-10 2012-01-04 华为技术有限公司 一种编解码方法、设备及系统
JP4935746B2 (ja) 2008-04-07 2012-05-23 富士通株式会社 動画像符号化装置、動画像復号化装置及びその符号化、復号化方法
US20100189182A1 (en) 2009-01-28 2010-07-29 Nokia Corporation Method and apparatus for video coding and decoding
US20100246683A1 (en) * 2009-03-27 2010-09-30 Jennifer Lois Harmon Webb Error Resilience in Video Decoding
TW201210325A (en) 2010-07-21 2012-03-01 Nokia Corp Method and apparatus for indicating switching points in a streaming session
US20130170561A1 (en) 2011-07-05 2013-07-04 Nokia Corporation Method and apparatus for video coding and decoding
WO2013030458A1 (en) 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding
CN108933943B (zh) * 2012-07-02 2020-12-25 太阳专利托管公司 图像编码方法及图像编码装置
US9398293B2 (en) 2013-01-07 2016-07-19 Qualcomm Incorporated Gradual decoding refresh with temporal scalability support in video coding

Also Published As

Publication number Publication date
TWI538485B (zh) 2016-06-11
EP2941879B1 (en) 2020-08-26
JP6242913B2 (ja) 2017-12-06
US20140192896A1 (en) 2014-07-10
KR101741348B1 (ko) 2017-05-29
US9398293B2 (en) 2016-07-19
ES2833149T3 (es) 2021-06-14
HUE051865T2 (hu) 2021-05-28
EP2941878A1 (en) 2015-11-11
US20140192897A1 (en) 2014-07-10
KR101841333B1 (ko) 2018-03-22
CN104904216A (zh) 2015-09-09
EP2941878B1 (en) 2019-12-11
HUE049430T2 (hu) 2020-09-28
KR20150105374A (ko) 2015-09-16
KR20150105373A (ko) 2015-09-16
CN104885460A (zh) 2015-09-02
TW201444348A (zh) 2014-11-16
JP2016509403A (ja) 2016-03-24
CN104904216B (zh) 2018-12-04
DK2941878T3 (da) 2020-02-17
WO2014107721A1 (en) 2014-07-10
JP6239650B2 (ja) 2017-11-29
TW201444347A (zh) 2014-11-16
US9571847B2 (en) 2017-02-14
WO2014107723A1 (en) 2014-07-10
EP2941879A1 (en) 2015-11-11
TWI566585B (zh) 2017-01-11
CN104885460B (zh) 2019-05-03
DK2941879T3 (da) 2020-09-28
JP2016509404A (ja) 2016-03-24

Similar Documents

Publication Publication Date Title
ES2777214T3 (es) Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo
CA2884352C (en) Supplemental enhancement information message coding
ES2884723T3 (es) Señalización de regiones de interés y actualización de decodificación gradual en la codificación de video
KR101672152B1 (ko) 비디오 코딩에서의 시간 스케일러빌리티 지원에 의한 점진적 개선
ES2701786T3 (es) Procesamiento de memoria intermedia de imágenes descodificadas para imágenes de punto de acceso aleatorio en secuencias de vídeo
ES2765038T3 (es) Modelo de almacenamiento intermedio de bajo retardo en codificación de vídeo
DK2941886T3 (en) SIGNALIZATION OF CLOCK TICK DIFFERENCE INFORMATION FOR VIDEO TIMING IN VIDEO CODING
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para 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
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa