ES2681502T3 - Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas - Google Patents

Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas Download PDF

Info

Publication number
ES2681502T3
ES2681502T3 ES15716623.2T ES15716623T ES2681502T3 ES 2681502 T3 ES2681502 T3 ES 2681502T3 ES 15716623 T ES15716623 T ES 15716623T ES 2681502 T3 ES2681502 T3 ES 2681502T3
Authority
ES
Spain
Prior art keywords
sei
sei message
image
video
layer
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
ES15716623.2T
Other languages
English (en)
Inventor
Fnu HENDRY
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 ES2681502T3 publication Critical patent/ES2681502T3/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Landscapes

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

Abstract

Un dispositivo para asociar la semántica de la información de codificación de vídeo asociada con una unidad de acceso con un conjunto de capas o un conjunto de puntos de operación de un flujo de bits de múltiples capas, que comprende: medios para almacenar información de vídeo asociada con el flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje de información de mejora suplementaria (SEI); y medios para determinar, basándose en un identificador del mensaje SEI, si el mensaje SEI pertenece a uno de una primera categoría de mensajes SEI que incluye mensajes SEI de período de almacenamiento temporal, mensajes SEI de temporización de imagen o mensajes SEI de información de la unidad de descodificación y de una segunda categoría de mensajes SEI que incluye mensajes SEI diferentes de los mensajes SEI de periodo de almacenamiento temporal, mensajes SEI de temporización de imágenes y mensajes SEI de información de la unidad de descodificación; medios para determinar cuándo el mensaje SEI se aplica al conjunto de puntos de operación y cuando el mensaje SEI se aplica al conjunto de capas; medios para aplicar cada semántica del mensaje SEI independientemente a cada punto de operación del conjunto de puntos de operación en respuesta al mensaje SEI que pertenece a la primera categoría de mensajes SEI y que se aplica al conjunto de puntos de operación a los que se aplica el mensaje SEI; medios para aplicar cada semántica del mensaje SEI al conjunto de capas de acuerdo con uno o más indicadores del mensaje SEI en respuesta al mensaje SEI que pertenece a la primera categoría de mensajes SEI, que están anidados, y que se aplica al conjunto de capas; y medios para aplicar cada semántica del mensaje SEI independientemente a cada capa del conjunto de capas a las que se aplica el mensaje SEI en respuesta a que el mensaje SEI pertenece a una segunda categoría de mensajes SEI y que se aplica al conjunto de capas.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas CAMPO TÉCNICO
[1] Esta divulgación se refiere al campo de codificación y compresión de vídeo, y particularmente a mensajes de información de mejora suplementaria (SEI) para codificación de múltiples capas.
ANTECEDENTES
Descripción de la técnica relacionada
[2] Las capacidades de vídeo digital pueden incorporarse a una amplia gama de dispositivos, incluidos televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, dispositivos de videoconferencia 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 el Grupo de expertos en imágenes en movimiento 2 (MPEG-2), MPEG-4, el Sector de normalización de las telecomunicaciones de la unión internacional de telégrafos (ITU-T) H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta Eficacia (HEVC) y las extensiones de tales normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente, implementando tales técnicas de codificación de vídeo.
SUMARIO
[3] Cada uno de los sistemas, procedimientos y dispositivos de la divulgación tiene varios aspectos innovadores, ninguno de los cuales es el único responsable de los atributos deseables divulgados en el presente documento. En un aspecto, un dispositivo puede incluir una memoria configurada para almacenar información de vídeo asociada con un flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje SEI y un procesador operativamente acoplado a la memoria. El procesador está configurado para determinar si el mensaje SEI pertenece a una primera categoría de mensajes SEI o a una segunda categoría de mensajes SEI basándose en un identificador del mensaje SEI. El procesador está configurado, además, para determinar si el mensaje SEI se aplica a los puntos de operación o a las capas y, en respuesta al mensaje SEI que es de la primera categoría de mensajes SEI y que se aplica a los puntos de operación, asocia cada semántica del mensaje SEI con cada punto de operación entre los puntos de operación.
[4] En otro aspecto, un procedimiento para asociar semántica de información de codificación de vídeo con capas o puntos de operación de un flujo de bits de múltiples capas comprende almacenar información de vídeo asociada con el flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje SEI. El procedimiento comprende, además, determinar si el mensaje SEI pertenece a una primera categoría de mensajes SEI o a una segunda categoría de mensajes SEI basándose en un identificador del mensaje SEI y determinar si el mensaje SEI se aplica a los puntos de operación o a las capas. El procedimiento comprende, además, en respuesta al mensaje SEI que es de la primera categoría de mensajes SEI y que se aplica a los puntos operativos independientemente, asociar cada semántica del mensaje SEI con cada punto de operación entre los puntos de operación independientemente.
[5] En otro aspecto, un dispositivo para asociar semántica de información de codificación de vídeo con capas o puntos de operación de un flujo de bits de múltiples capas comprende medios para almacenar información de vídeo asociada con el flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje SEI, medios para determinar si el mensaje SEI pertenece a una primera categoría de mensajes SEI o a una segunda categoría de mensajes SEI basándose en un identificador del mensaje SEI, medios para determinar si el mensaje SEI se aplica a los puntos de operación o a las capas, y medios para asociar cada semántica del mensaje SEI con cada punto de operación entre los puntos de operación en respuesta a que el mensaje SEI es de la primera categoría de mensajes SEI y que se aplica a los puntos de operación.
[6] En un aspecto adicional, un medio de almacenamiento legible por ordenador no transitorio que tiene almacenadas en el mismo instrucciones que, cuando se ejecutan, hacen que un procesador de un dispositivo almacene información de vídeo asociada con el flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje SEI, determina si el mensaje SEI pertenece a una primera categoría de mensajes SEI o a una segunda categoría de mensajes SEI basándose en un identificador del mensaje SEI, determina si el mensaje SEI se aplica a los puntos de operación o a las capas, y en respuesta a que el mensaje SEI es de la primera categoría de mensajes SEI y se aplica a los puntos de operación, asociar cada semántica del mensaje SEI con cada punto de operación entre los puntos de operación.
5
10
15
20
25
30
35
40
45
50
55
60
65
BREVE DESCRIPCION DE LOS DIBUJOS
[7] A continuación se describirán los aspectos mencionados anteriormente, así como otras características, aspectos y ventajas de la presente tecnología en relación con diversos modos de realización, con referencia a los dibujos adjuntos. Los modos de realización ilustrados, sin embargo, son simplemente ejemplos y no pretenden ser limitativos. En todos los dibujos, los símbolos similares identifican típicamente componentes similares, a menos que el contexto dicte lo contrario.
La FIG. 1A es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo a modo de ejemplo que puede utilizar técnicas según los aspectos descritos en esta divulgación.
La FIG. 1B es un diagrama de bloques que ilustra otro sistema de codificación y descodificación de vídeo a modo de ejemplo que puede llevar a cabo técnicas según los aspectos descritos en esta divulgación.
La FIG. 2A es un diagrama de bloques que ilustra un codificador de vídeo a modo de ejemplo que puede implementar técnicas según los aspectos descritos en esta divulgación.
La FIG. 2B es un diagrama de bloques que ilustra un codificador de vídeo a modo de ejemplo que puede implementar técnicas según los aspectos descritos en esta divulgación.
La FIG. 3A es un diagrama de bloques que ilustra un descodificador de vídeo a modo de ejemplo que puede implementar técnicas según los aspectos descritos en esta divulgación.
La FIG. 3B es un diagrama de bloques que ilustra un descodificador de vídeo a modo de ejemplo que puede implementar técnicas según los aspectos descritos en esta divulgación.
La FIG. 4A es un diagrama de flujo que ilustra la asociación de la semántica de un mensaje SEI con cada punto de operación entre los puntos de operación o cada capa entre las capas.
La FIG. 4B es un diagrama de bloques que ilustra la asociación entre un mensaje SEI que se aplica a puntos de operación de acuerdo con un modo de realización de la presente divulgación.
La FIG. 4C es un diagrama de bloques que ilustra la asociación entre un mensaje SEI que se aplica a las capas y una pluralidad de imágenes de acuerdo con un modo de realización de la presente divulgación.
La FIG. 5 muestra la sintaxis que puede usarse para comunicar la semántica de los mensajes SEI de conjuntos de parámetros activos.
La FIG. 6 es un diagrama de bloques que ilustra la asociación entre uno o más mensajes SEI de actualización de región y una o más imágenes de un flujo de bits de múltiples capas de acuerdo con un modo de realización de la presente divulgación.
La FIG. 7 muestra la sintaxis que puede usarse para comunicar la semántica de los mensajes SEI de información de actualización de región.
La FIG. 8 muestra un diagrama de flujo de un procedimiento para asociar la semántica de la información de codificación de vídeo con capas o puntos de operación de un flujo de bits de múltiples capas que comprende almacenar información de vídeo asociada con el flujo de bits de múltiples capas.
La FIG. 9 muestra un diagrama de flujo de un procedimiento para determinar si se inicia un acceso aleatorio durante la descodificación de la información de vídeo de un flujo de bits de múltiples capas.
DESCRIPCIÓN DETALLADA
[8] En general, esta divulgación se refiere a mensajes SEI, conjuntos de parámetros de secuencia (SPS), mensajes SEI de punto de recuperación y mensajes SEI de actualización de información para codificación de vídeo de múltiples capas en el contexto de códecs de vídeo avanzados, tales como HEVC. Más específicamente, la presente divulgación se refiere a sistemas y procedimientos para mayor claridad del alcance de los mensajes SEI y la asociación de SPS señalizados en el mensaje SEI de conjuntos de parámetros activos con capas a las que se refieren en extensiones multivista y escalables de HEVC, a saber MV-HEVC (multivista) y SHVC (escalable). La presente divulgación también se refiere a un sistema y procedimientos para mayor claridad al establecer semánticas de recuento de orden de imagen asociadas con mensajes SEI de punto de recuperación y relaciones entre información de actualización de región y restricciones de interpredicción en las extensiones multivista y escalable de HEVC, concretamente MV-HEVC y SHVC.
5
10
15
20
25
30
35
40
45
50
55
60
65
[9] En la descripción a continuación, se describen técnicas H.264/AVC relacionadas con ciertos modos de realización; también se analizan la norma HEVC y las técnicas relacionadas. En particular, algunos esquemas de codificación de vídeo incluyen un mensaje SEI que puede proporcionar varias semánticas que se aplican a una de las unidades de acceso, puntos de operación, capas o imágenes para usar cuando se descodifica mediante el descodificador. En esquemas de codificación convencionales de una sola capa (por ejemplo, HEVC), cada mensaje SEI solo podría aplicarse a una sola capa y, por lo tanto, a una única unidad de acceso que contiene únicamente una única imagen en un momento dado. En consecuencia, la semántica del mensaje SEI en estos esquemas convencionales era clara en cuanto a lo que era aplicable, ya sea una capa, una unidad de acceso, una imagen o un punto de operación. Sin embargo, como se analiza con mayor detalle a continuación, en flujos de bits de múltiples capas, un mensaje SEI puede aplicarse a una o más imágenes, capas, puntos de operación o unidades de acceso en un momento dado porque el flujo de bits contiene múltiples capas en cualquier momento dado. Por lo tanto, los esquemas de codificación convencionales de una sola capa no tienen la semántica requerida para definir el alcance de los mensajes SEI para un comportamiento preciso y consistente de los codificadores/descodificadores de vídeo que se ajustan a los esquemas de codificación de múltiples capas.
[10] Esta divulgación también se refiere a la señalización de múltiples SPS por un solo mensaje SEI de conjunto de parámetros activos y a la resolución de ambigüedades en cuanto a qué capas se aplica cada uno de los conjuntos de parámetros de secuencia cuando hay un número desigual de capas y SPS. En algunas implementaciones, las restricciones para restringir el número de SPS a "1" pueden flexibilizarse para permitir que el mensaje SEI de conjunto de parámetros activos introduzca múltiples SPS y proporcione un mecanismo para asociar uno o más SPS a una o más capas del flujo de bits de múltiples capas. La semántica adicional tanto en el mensaje SEI de conjunto de parámetros activos o en un mensaje SEI alternativo permite la codificación de un flujo de bits de múltiples capas para asociar inequívocamente más de un SPS con una o más capas específicas. El funcionamiento de los codificadores de vídeo/descodificadores de vídeo que conforman (es decir, operan de acuerdo con o se configuran de acuerdo con) esta divulgación ha mejorado la coherencia operativa con respecto a los esquemas de codificación convencionales.
[11] Esta divulgación se refiere, además, al cálculo o a la obtención de un POC con el fin de evitar valores POC incorrectos o poco claros para una o más imágenes del flujo de bits de múltiples capas. En un flujo de bits de múltiples capas, después de un evento de acceso aleatorio, cuando comienza la descodificación desde una unidad de acceso que contiene un mensaje SEI de punto de recuperación, una o más semánticas del mensaje SEI de punto de recuperación restablecen a cero uno o más valores que identifican los campos POC para la imagen actual. Esto puede crear un problema cuando hay una imagen picA en la misma capa que la imagen asociada con el mensaje SEI de punto de recuperación (y que tiene los valores POC restablecidos a cero) cuando la imagen picA sigue a la imagen actual en orden de descodificación y tiene un valor relacionado con el POC señalizado. Por lo tanto, los esquemas de codificación convencionales de una sola capa no tienen la semántica requerida para definir cómo se manejarán los mensajes SEI de punto de recuperación para el comportamiento preciso y consistente de los codificadores/descodificadores de vídeo que se ajustan a los esquemas de codificación de múltiples capas. Se proponen modificaciones del mensaje SEI de punto de recuperación para permitir la obtención del valor POC de una imagen que está asociada con un mensaje SEI de punto de recuperación en lugar de restablecer el valor POC cuando se descodifica después de un acceso aleatorio con un mensaje de punto de recuperación. Además, en el presente documento se divulgan restricciones para gobernar la presencia de mensajes SEI de punto de recuperación en una unidad de acceso o la asociación de mensajes SEI de punto de recuperación con una imagen.
[12] Esta divulgación se refiere adicionalmente a la semántica para esquemas de codificación de múltiples capas que resuelven cualquier ambigüedad asociada con los mensajes SEI de información de actualización de región. En algunas implementaciones, un mensaje SEI de información de actualización de región indica que se actualiza una región de una imagen de una capa de referencia (o de mejora). En flujos de bits de múltiples capas, dicho mensaje SEI de información de actualización de región puede configurarse para tener en cuenta las limitaciones de la predicción entre capas, de modo que cuando una primera imagen se basa en que otra imagen se actualice antes de que la primera imagen se actualice completamente, tal dependencia (o correspondencia) se tiene en cuenta en las predicciones de actualización de la región entre capas.
[13] Aunque ciertos modos de realización se describen en el presente documento en el contexto de las normas HEVC y/o H.264, un experto en la técnica puede apreciar que los sistemas y procedimientos divulgados en este documento pueden aplicarse a cualquier norma de codificación de vídeo adecuado. Por ejemplo, los modos de realización divulgados en el presente documento pueden ser aplicables a una o más de las siguientes normas: H.261 del Sector de estandarización de telecomunicaciones (ITU-T) de la Unión internacional de telecomunicaciones (ITU), MPEG-1 Visual de la Organización Internacional de Normalización/Comisión Electrotécnica Internacional (ISO/IEC), ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocido como ISO/IEC MPEG-4 AVC), incluidas las extensiones escalables y multivista.
5
10
15
20
25
30
35
40
45
50
55
60
65
[14] HEVC, en general, sigue el marco de las normas de codificación de vídeo anteriores en muchos aspectos. La unidad de predicción en HEVC es diferente de las unidades de predicción (por ejemplo, macrobloques) en ciertas normas anteriores de codificación de vídeo. De hecho, el concepto de un macrobloque no existe en HEVC como se entiende en ciertas normas anteriores de codificación de vídeo. Un macrobloque se reemplaza por una estructura jerárquica basada en un esquema de árbol cuaternario, que puede proporcionar una gran flexibilidad, entre otros beneficios posibles. Por ejemplo, dentro del esquema HEVc, se definen tres tipos de bloques, unidad de codificación (CU), unidad de predicción (PU) y unidad de transformación (TU). La CU puede referirse a la unidad básica de división de la región. La CU puede considerarse análoga al concepto de macrobloque, pero HEVC no limita el tamaño máximo de la CU y puede permitir la división recursiva en cuatro CU de igual tamaño para mejorar la adaptabilidad del contenido. La PU puede considerarse la unidad básica de inter/intrapredicción, y una única PU puede contener múltiples particiones de forma arbitraria para codificar de manera efectiva patrones de imagen irregulares. La TU se puede considerar como la unidad básica de transformación. La TU se puede definir independientemente de la PU; sin embargo, el tamaño de una TU puede estar limitado al tamaño de la CU a la que pertenece la TU. Esta separación de la estructura de bloques en tres conceptos diferentes puede permitir optimizar cada unidad de acuerdo con su función respectiva de la unidad, lo que puede resultar en una mejora de la eficacia de codificación.
[15] Para fines de ilustración solamente, ciertos modos de realización divulgados en el presente documento se describen con ejemplos que incluyen solo dos capas (por ejemplo, una capa inferior tal como la capa base y una capa superior tal como la capa de mejora) de datos de vídeo. Una "capa" de datos de vídeo puede referirse, en general, a una secuencia de imágenes que tiene al menos una característica común, tal como una vista, una velocidad de trama, una resolución o similar. Por ejemplo, una capa puede incluir datos de vídeo asociados con una vista particular (por ejemplo, perspectiva) de datos de vídeo de múltiples vistas. Como otro ejemplo, una capa puede incluir datos de vídeo asociados con una capa particular de datos de vídeo escalables. Por lo tanto, esta divulgación puede referirse indistintamente a una capa y a una vista de datos de vídeo. Es decir, una vista de datos de vídeo puede denominarse una capa de datos de vídeo, y una capa de datos de vídeo puede denominarse una vista de datos de vídeo. Además, un códec de múltiples capas (también denominado codificador de vídeo de múltiples capas o descodificador de vídeo de múltiples capas) puede referirse conjuntamente a un códec de múltiples vistas o a un códec escalable (por ejemplo, un códec configurado para codificar y/o descodificar datos de vídeo utilizando MV-HEVC, 3D-HEVC, SHVc u otra técnica de codificación de múltiples capas). La codificación de vídeo y la descodificación de vídeo pueden, en general, denominarse codificación de vídeo. Debe entenderse que dichos ejemplos pueden ser aplicables a configuraciones que incluyen múltiples capas base y/o de mejora. Además, para facilitar la explicación, la siguiente divulgación incluye los términos "tramas" o "bloques" con referencia a ciertos modos de realización. Sin embargo, estos términos no pretenden ser limitativos. Por ejemplo, las técnicas descritas a continuación se pueden usar con cualquier unidad de vídeo adecuada, como bloques (por ejemplo, CU, PU, TU, macrobloques, etc.), fragmentos, tramas, etc.
Normas de codificación de vídeo
[16] Una imagen digital, como una imagen de vídeo, una imagen de TV, una imagen fija o una imagen generada por una grabadora de vídeo o un ordenador puede consistir en píxeles o muestras dispuestas en líneas horizontales y verticales. La cantidad de píxeles en una sola imagen suele ser de decenas de miles. Cada píxel típicamente contiene información de luminancia y crominancia. Sin compresión, la gran cantidad de información que se transmitirá desde un codificador de imágenes a un descodificador de imágenes haría imposible la transmisión de imágenes en tiempo real. Para reducir la cantidad de información a transmitir, se han desarrollado varios procedimientos de compresión diferentes, como las normas JPEG, MPEG y H.263.
[17] Entre las normas de codificación de vídeo se incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones escalable y multivista.
[18] Además, se ha desarrollado una norma de codificación de vídeo, denominada HEVC, por el Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y MPEG de ISO/IEC. La cita completa del borrador 10 de HEVC es el documento JCTVC- L1003, de Bross y otros, titulado "High Efficiency Video Coding (HEVC) Text Specification Draft 10” [Especificación textual de la Codificación de Vídeo de Alta Eficacia (HEVC), Borrador 10] JCT-VC de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12a reunión: Ginebra, Suiza, del 14 de enero de 2013 al 23 de enero de 2013. La extensión multivista para HEVC, llamada MV-HEVC, y la extensión escalable para HEVC, llamada SHVC, también están siendo desarrolladas por el JCT-3V (Equipo de colaboración conjunta ITU-T/ISO/IEC en desarrollo de extensión de codificación de vídeo 3D) y JCT-VC, respectivamente.
Sistema de codificación de vídeo
[19] Diversos aspectos de los sistemas, aparatos y procedimientos novedosos se describen de aquí en adelante con más detalle en referencia a los dibujos adjuntos. Sin embargo, la presente divulgación puede
5
10
15
20
25
30
35
40
45
50
55
60
65
realizarse de muchas formas diferentes y no debería interpretarse como limitada a cualquier estructura o función específica presentada a lo largo de la presente divulgación. En cambio, estos aspectos se proporcionan para que la presente divulgación sea exhaustiva y completa, y transmitirá por completo el alcance de la divulgación a los expertos en la materia. Basándose en las enseñanzas del presente documento, un experto en la materia debería apreciar que el alcance de la divulgación pretende abarcar cualquier aspecto de los sistemas, aparatos y procedimientos novedosos divulgados en el presente documento, ya sean implementados de forma independiente de, o en combinación con, cualquier otro aspecto de la presente divulgación. Por ejemplo, un aparato puede implementarse, o un procedimiento puede llevarse a la práctica, usando cualquier número de los aspectos expuestos en el presente documento. Además, el alcance de la presente divulgación pretende abarcar dicho aparato o procedimiento que se lleva a la práctica usando otra estructura, funcionalidad o estructura y funcionalidad, además, o aparte, de los diversos aspectos de la presente divulgación expuestos en el presente documento. Debería entenderse que cualquier aspecto divulgado en el presente documento puede realizarse mediante uno o más elementos de una reivindicación.
[20] Aunque en el presente documento se describan aspectos particulares, muchas variaciones y permutaciones de estos aspectos caen dentro del alcance de la divulgación. Aunque se mencionan algunos beneficios y ventajas de los aspectos preferidos, el alcance de la divulgación no está previsto que se limite a beneficios, usos u objetivos particulares. En cambio, los aspectos de la divulgación pretenden aplicarse ampliamente a diferentes tecnologías inalámbricas, configuraciones de sistema, redes y protocolos de transmisión, algunos de los cuales se ilustran a modo de ejemplo en las figuras y en la siguiente descripción de los aspectos preferidos. La descripción detallada y los dibujos son meramente ilustrativos de la divulgación en lugar de limitarla, definiéndose el alcance de la divulgación por las reivindicaciones adjuntas y los equivalentes de las mismas.
[21] Los dibujos adjuntos ilustran ejemplos. Los elementos indicados mediante números de referencia en los dibujos adjuntos corresponden a elementos indicados mediante números de referencia similares en la siguiente descripción. En esta divulgación, los elementos que tienen nombres que comienzan con palabras ordinales (por ejemplo, "primero", "segundo", "tercero", etc.) no necesariamente implican que los elementos tienen un orden particular. Más bien, dichas palabras ordinales se usan simplemente para referirse a diferentes elementos de un mismo tipo o similar.
[22] La FIG. 1A es un diagrama de bloques que ilustra un sistema de codificación de vídeo 10 a modo de ejemplo que puede utilizar técnicas de acuerdo con esta divulgación. Tal como se utiliza en el presente documento, el término "codificador de vídeo" se refiere genéricamente tanto a codificadores de vídeo como a descodificadores de vídeo. En esta divulgación, los términos "codificación de vídeo" o "codificación" pueden referirse genéricamente a codificación de vídeo y descodificación de vídeo. Además de los codificadores de vídeo y descodificadores de vídeo, los aspectos descritos en la presente solicitud pueden extenderse a otros dispositivos relacionados, tales como transcodificadores (por ejemplo, dispositivos que pueden descodificar un flujo de bits y recodificar otro flujo de bits) y cajas intermedias (por ejemplo, dispositivos que pueden modificar, transformar y/o manipular de otro modo un flujo de bits).
[23] Como se muestra en la FIG. 1A, el sistema de codificación de vídeo 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. En el ejemplo de la FIG. 1A, el dispositivo de origen 12 y el dispositivo de destino 14 forman dispositivos independientes. Sin embargo, se observa que el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar en o ser parte del mismo dispositivo, como se muestra en el ejemplo de la FlG. 1B.
[24] Con referencia una vez más a la FlG. 1A, el dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender respectivamente cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, equipos telefónicos 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, un dispositivo de transmisión de flujo de vídeo o similares. En algunos modos de realización, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
[25] El dispositivo de destino 14 puede recibir, a través del enlace 16, los datos de vídeo codificados a descodificar. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En el ejemplo de la FlG. 1A, el enlace 16 puede comprender un medio de comunicación para permitir al dispositivo de origen 12 transmitir los datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados pueden modularse de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. 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
5
10
15
20
25
30
35
40
45
50
55
60
65
de comunicación puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[26] De forma alternativa, los datos codificados pueden ser emitidos desde una interfaz de salida 22 a un dispositivo de almacenamiento 31 (opcionalmente presente). De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento 31 mediante la interfaz de entrada 28, por ejemplo, del dispositivo de destino 14. El dispositivo de almacenamiento 31 puede incluir cualquiera de una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco duro, memoria flash, memoria volátil o no volátil u otros medios cualesquiera de almacenamiento digital adecuados 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 pueda retener el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados del dispositivo de almacenamiento 31, mediante transmisión 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. Los ejemplos de servidores de archivos incluyen un servidor de la red (por ejemplo, para una página de la red), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento anexos a la red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados mediante cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión inalámbrica de red de área local (WLAN)), una conexión cableada (por ejemplo, una línea de abonado digital (DSL), un módem de cable, etc.), o una combinación de ambos que sea adecuada para acceder a los 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 en continuo, una transmisión de descarga o una combinación de ambas.
[27] Las técnicas de esta divulgación no están limitadas a aplicaciones o configuraciones inalámbricas. Las técnicas pueden aplicarse a la codificación de vídeo, para admitir cualquiera de una diversidad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo en continuo, por ejemplo, a través de Internet (por ejemplo, transmisión adaptativa dinámica sobre protocolo de transferencia de hipertexto (HTTP), etc.), 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 de codificación de vídeo 10 puede configurarse para admitir la transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como la radiodifusión de vídeo, la reproducción de vídeo, la radiodifusión de vídeo y/o la videotelefonía.
[28] En el ejemplo de la FIG. 1A, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captura de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene vídeo previamente capturado, una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos de ordenador para generar datos de gráficos de ordenador como el vídeo de origen, o una combinación de tales fuentes. Como 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 de cámara" o "videoteléfonos", tal como se ilustra en el ejemplo de la FIG. 1B. Sin embargo, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o cableadas.
[29] El vídeo capturado, pre-capturado o generado por ordenador puede ser codificado por el codificador de vídeo 20. Los datos de vídeo codificados pueden ser transmitidos al dispositivo de destino 14 mediante la interfaz de salida 22 del dispositivo de origen 12. Los datos de vídeo codificados pueden almacenarse también (o de forma alternativa) en el dispositivo de almacenamiento 31 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción. El codificador de vídeo 20 ilustrado en la FIG. 1A y 1B puede comprender el codificador de vídeo 20 ilustrado en la FIG. 2A, el codificador de vídeo 23 ilustrado en la FIG. 2B, o cualquier otro codificador de vídeo descrito en el presente documento.
[30] En el ejemplo de la FIG. 1A, 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 puede recibir los datos de vídeo codificado a través del enlace 16 y/o desde el dispositivo de almacenamiento 31. Los datos de vídeo codificados, comunicados 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 pueden incluirse 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. El descodificador de vídeo 30 ilustrado en la FIG. 1A y 1B puede comprender el descodificador de
5
10
15
20
25
30
35
40
45
50
55
60
65
vídeo 30 ilustrado en la FIG. 3A, el descodificador de vídeo 33 ilustrado en la FIG. 3B, o cualquier otro descodificador de vídeo descrito en el presente documento.
[31] El dispositivo de visualización 32 puede estar integrado 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 muestra 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.
[32] En aspectos relacionados, la FIG. 1B muestra un sistema de codificación de vídeo 10' a modo de ejemplo en el que el dispositivo de origen 12 y el dispositivo de destino 14 están en o son parte de un dispositivo 11. El dispositivo 11 puede ser un equipo telefónico, tal como un teléfono "inteligente" o similar. El dispositivo 11 puede incluir un dispositivo controlador/procesador 13 (opcionalmente presente) en comunicación operativa con el dispositivo de origen 12 y el dispositivo de destino 14. El sistema de codificación de vídeo 10' de la FIG. 1B, y sus componentes, son por lo demás similares al sistema de codificación de vídeo 10 de la FIG. 1A, y sus componentes.
[33] 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 HEVC, y pueden ajustarse a un modelo de prueba 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 de la industria, tales como la norma ITU-T H.264, denominado de forma alternativa MPEG-4, Parte 10, AVC, o ampliaciones 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.
[34] Aunque no se muestra en los ejemplos de las FIGs. 1A y 1B, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar integrados con un codificador y un descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro hardware y software, para gestionar la codificación, tanto de audio como de vídeo, en un flujo de datos común o en flujos de datos diferentes. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden ajustarse al protocolo de multiplexado ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[35] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse cada uno como cualquiera de una variedad de circuitos de 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 mediante uno o más procesadores para realizar las técnicas de esta divulgación. Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
Proceso de codificación de vídeo
[36] Como se ha mencionado brevemente anteriormente, el codificador de vídeo 20 codifica los datos de vídeo. Los datos de vídeo pueden comprender una o más imágenes. Cada una de las imágenes es una imagen fija que forma parte de un vídeo. En algunos casos, una imagen puede denominarse una "trama" de vídeo. Cuando el codificador de vídeo 20 codifica los datos de vídeo, el codificador de vídeo 20 puede generar un flujo de bits. El flujo de bits puede incluir una secuencia de bits que forma una representación codificada de los datos de vídeo. El flujo de bits puede incluir imágenes codificadas y datos asociados. Una imagen codificada es una representación codificada de una imagen.
[37] Para generar el flujo de bits, el codificador de vídeo 20 puede llevar a cabo operaciones de codificación en cada imagen en los datos de vídeo. Cuando el codificador de vídeo 20 realiza operaciones de codificación en las imágenes, el codificador de vídeo 20 puede generar una serie de imágenes codificadas y datos asociados. Los datos asociados pueden incluir conjuntos de parámetros de vídeo (VPS), SPS, conjuntos de parámetros de imagen (PPS), conjuntos de parámetros de adaptación (APS) y otras estructuras sintácticas. Un SPS puede contener parámetros aplicables a cero o más secuencias de imágenes. Un PPS puede contener parámetros aplicables a cero o más imágenes. Un APS puede contener parámetros aplicables a cero o más imágenes. Los parámetros en un APS pueden ser parámetros que tienen más probabilidades de cambiar que los parámetros en el PPS.
5
10
15
20
25
30
35
40
45
50
55
60
65
[38] Para generar una imagen codificada, el codificador de vídeo 20 puede dividir una imagen en bloques de vídeo de igual tamaño. Un bloque de vídeo puede ser una matriz bidimensional de muestras. Cada uno de los bloques de vídeo está asociado con un bloque de árbol. En algunos casos, un bloque de árbol también puede denominarse una unidad de codificación más grande (LCU). Los bloques de árbol de HEVC pueden ser aproximadamente análogos a los macrobloques de normas anteriores, tales como la H.264/AVC. Sin embargo, un bloque de árbol no está limitado necesariamente a un tamaño particular y puede incluir una o más unidades de codificación (CU). El codificador de vídeo 20 puede usar la división en árbol cuaternario para dividir los bloques de vídeo de bloques de árbol en bloques de vídeo asociados con las CU, de ahí el nombre "bloques de árbol".
[39] En algunos ejemplos, el codificador de vídeo 20 puede dividir una imagen en una pluralidad de fragmentos. Cada uno de los fragmentos puede incluir un número entero de CU. En algunos casos, un fragmento comprende un número entero de bloques de árbol. En otros casos, un límite de un fragmento puede estar dentro de un bloque de árbol.
[40] Como parte de realizar una operación de codificación en una imagen, el codificador de vídeo 20 puede realizar operaciones de codificación en cada fragmento de la imagen. Cuando el codificador de vídeo 20 realiza una operación de codificación en un fragmento, el codificador de vídeo 20 puede generar datos codificados asociados con el fragmento. Los datos codificados asociados con el fragmento pueden denominarse un "fragmento codificado".
[41] Para generar un fragmento codificado, el codificador de vídeo 20 puede llevar a cabo operaciones de codificación en cada bloque de árbol en un fragmento. Cuando el codificador de vídeo 20 realiza una operación de codificación en un bloque de árbol, el codificador de vídeo 20 puede generar un bloque de árbol codificado. El bloque de árbol codificado puede comprender datos que representan una versión codificada del bloque de árbol.
[42] Cuando el codificador de vídeo 20 genera un fragmento codificado, el codificador de vídeo 20 puede realizar operaciones de codificación en (por ejemplo, codificar) los bloques de árbol en el fragmento de acuerdo con una orden de escaneo de trama. Por ejemplo, el codificador de vídeo 20 puede codificar los bloques de árbol del fragmento en un orden que avanza de izquierda a derecha en la fila más alta de bloques de árbol en el fragmento, luego de izquierda a derecha en la siguiente fila inferior de bloques de árbol, y así sucesivamente hasta que el codificador de vídeo 20 ha codificado cada uno de los bloques de árbol del fragmento.
[43] Como resultado de codificar los bloques de árbol de acuerdo con el orden de escaneo de trama, los bloques de árbol de arriba y a la izquierda de un bloque de árbol determinado pueden haber sido codificados, pero los bloques de árbol de debajo y a la derecha del bloque de árbol determinado aún no han sido codificados. En consecuencia, el codificador de vídeo 20 puede tener acceso a la información generada por la codificación de los bloques de árbol de arriba y a la izquierda del bloque de árbol determinado cuando codifica el bloque de árbol determinado. Sin embargo, el codificador de vídeo 20 puede no ser capaz de acceder a la información generada por la codificación de los bloques de árbol de debajo y a la derecha del bloque de árbol determinado al codificar el bloque de árbol determinado.
[44] Para generar un bloque de árbol codificado, el codificador de vídeo 20 puede llevar a cabo de forma recursiva la división en árbol cuaternario en el bloque de vídeo del bloque de árbol para dividir el bloque de vídeo en bloques de vídeo progresivamente más pequeños. Cada uno de los bloques de vídeo más pequeños puede estar asociado con una CU diferente. Por ejemplo, el codificador de vídeo 20 puede dividir el bloque de vídeo de un bloque de árbol en cuatro sub-bloques de igual tamaño, dividir uno o más de los sub-bloques en cuatro sub- sub-bloques de igual tamaño, etc. Una CU dividida puede ser una CU cuyo bloque de vídeo está dividido en bloques de vídeo asociados con otras CU. Una CU no dividida puede ser una CU cuyo bloque de vídeo no esté dividido en bloques de vídeo asociados con otras CU.
[45] Uno o más elementos sintácticos en el flujo de bits pueden indicar un número máximo de veces que el codificador de vídeo 20 puede dividir el bloque de vídeo de un bloque de árbol. Un bloque de vídeo de una CU puede tener forma cuadrada. El tamaño del bloque de vídeo de una CU (es decir, el tamaño de la CU) puede variar desde 8x8 píxeles hasta el tamaño de un bloque de vídeo de un bloque de árbol (es decir, el tamaño del bloque de árbol) con un máximo de 64x64 píxeles o mayor.
[46] El codificador de vídeo 20 puede realizar operaciones de codificación en (por ejemplo, codificar) cada CU de un bloque de árbol de acuerdo con un orden de escaneo z. En otras palabras, el codificador de vídeo 20 puede codificar una CU superior izquierda, una CU superior derecha, una CU inferior izquierda y luego una CU inferior derecha, en ese orden. Cuando el codificador de vídeo 20 realiza una operación de codificación en una UC dividida, el codificador de vídeo 20 puede codificar CU asociadas con subbloques del bloque de vídeo de la CU dividida de acuerdo con el orden de escaneo z. En otras palabras, el codificador de vídeo 20 puede codificar una CU asociada con un subbloque superior izquierdo, una CU asociada con un subbloque superior derecho, una CU asociada con un subbloque inferior izquierdo, y luego una CU asociada con un subbloque inferior derecho, en ese orden.
5
10
15
20
25
30
35
40
45
50
55
60
65
[47] Como resultado de la codificación de las CU de un bloque de árbol de acuerdo con un orden de escaneo z, las CU anteriores, arriba y a la izquierda, arriba y a la derecha, izquierda y abajo y a la izquierda de una CU determinada pueden haber sido codificadas. Las Cu de abajo y a la derecha de la CU determinada todavía no han sido codificadas. En consecuencia, el codificador de vídeo 20 puede ser capaz de acceder a la información generada codificando algunas CU que se encuentran próximas a la CU determinada cuando codifica la CU determinada. Sin embargo, el codificador de vídeo 20 puede ser incapaz de acceder a la información generada codificando otras CU que se encuentran junto a la CU determinada cuando codifica la CU determinada.
[48] Cuando el codificador de vídeo 20 codifica una CU no dividida, el codificador de vídeo 20 puede generar una o más unidades de predicción (PU) para la CU. Cada una de las PU de la CU puede estar asociada con un bloque de vídeo diferente dentro del bloque de vídeo de la CU. El codificador de vídeo 20 puede generar un bloque de vídeo predicho para cada PU de la CU. El bloque de vídeo predicho de una PU puede ser un bloque de muestras. El codificador de vídeo 20 puede usar intrapredicción o interpredicción para generar el bloque de vídeo predicho para una PU.
[49] Cuando el codificador de vídeo 20 utiliza la intrapredicción para generar el bloque de vídeo predicho de una PU, el codificador de vídeo 20 puede generar el bloque de vídeo predicho de la PU basado en muestras descodificadas de la imagen asociada con la PU. Si el codificador de vídeo 20 utiliza la intrapredicción para generar bloques de vídeo predichos de las PU de una CU, la CU es una CU intrapredicha. Si el codificador de vídeo 20 utiliza la interpredicción para generar el bloque de vídeo predicho de la PU, el codificador de vídeo 20 puede generar el bloque de vídeo predicho de la PU basándose en muestras descodificadas de una o más imágenes distintas a la imagen asociada con la PU. Si el codificador de vídeo 20 utiliza la interpredicción para generar bloques de vídeo predichos de las PU de una CU, la CU es una CU interpredicha.
[50] Además, cuando el codificador de vídeo 20 utiliza la interpredicción para generar un bloque de vídeo predicho para una PU, el codificador de vídeo 20 puede generar información de movimiento para la PU. La información de movimiento para una PU puede indicar uno o más bloques de referencia de la PU. Cada bloque de referencia de la PU puede ser un bloque de vídeo dentro de una imagen de referencia. La imagen de referencia puede ser una imagen distinta de la imagen asociada con la PU. En algunos casos, un bloque de referencia de una PU también puede denominarse la "muestra de referencia" de la PU. El codificador de vídeo 20 puede generar el bloque de vídeo predicho para la PU en base a los bloques de referencia de la PU.
[51] Después de que el codificador de vídeo 20 genere bloques de vídeo predichos para una o más PU de una CU, el codificador de vídeo 20 puede generar datos residuales para la CU basándose en los bloques de vídeo predichos para las PU de la CU. Los datos residuales para la CU pueden indicar diferencias entre muestras en los bloques de vídeo predichos para las PU de la CU y el bloque de vídeo original de la CU.
[52] Además, como parte de la realización de una operación de codificación en una CU no dividida, el codificador de vídeo 20 puede realizar la división recursiva en árbol cuaternario en los datos residuales de la CU para dividir los datos residuales de la CU en uno o más bloques de datos residuales (es decir, bloques de vídeo residuales) asociados con las TU de la CU. Cada TU de una CU puede estar asociada con un bloque de vídeo residual diferente.
[53] El codificador de vídeo 20 puede aplicar una o más transformaciones a bloques de vídeo residuales asociados con las TU para generar bloques de coeficientes de transformación (por ejemplo, bloques de coeficientes de transformación) asociados con las TU. Conceptualmente, un bloque de coeficientes de transformación puede ser una matriz bidimensional (2D) de coeficientes de transformación.
[54] Después de generar un bloque de coeficientes de transformación, el codificador de vídeo 20 puede realizar un proceso de cuantificación en el bloque de coeficientes de transformación. La cuantificación se refiere, en general, a un proceso en el que los coeficientes de transformación se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes de transformación, proporcionando una compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos o a la totalidad de los coeficientes de transformación. Por ejemplo, un coeficiente de transformación de n bits puede redondearse a la baja hasta un coeficiente de transformación de m bits durante la cuantificación, donde n es mayor que m.
[55] El codificador de vídeo 20 puede asociar cada CU con un valor de parámetro de cuantificación (QP). El valor QP asociado con una CU puede determinar cómo el codificador de vídeo 20 cuantifica los bloques de coeficientes de transformación asociados con la CU. El codificador de vídeo 20 puede ajustar el grado de cuantificación aplicado a los bloques de coeficientes de transformación asociados con una CU ajustando el valor QP asociado con la CU.
[56] Después de que el codificador de vídeo 20 cuantifica un bloque de coeficientes de transformación, el codificador de vídeo 20 puede generar conjuntos de elementos de sintaxis que representan los coeficientes de transformación en el bloque de coeficientes de transformación cuantificado. El codificador de vídeo 20 puede
5
10
15
20
25
30
35
40
45
50
55
60
65
aplicar operaciones de codificación de entropía, tales como operaciones de codificación aritmética binaria adaptativa al contexto (CABAC), a algunos de estos elementos de sintaxis. También podrían usarse otras técnicas de codificación de entropía, tales como la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación de entropía de partición de intervalo de probabilidad (PIPE) u otra codificación aritmética binaria.
[57] El flujo de bits generado por el codificador de vídeo 20 puede incluir una serie de unidades de capa de abstracción de red (NAL). Cada una de las unidades NAL puede ser una estructura sintáctica que contiene una indicación de un tipo de datos en la unidad NAL y los bytes que contienen los datos. Por ejemplo, una unidad NAL puede contener datos que representan un conjunto de parámetros de vídeo, un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un fragmento codificado, SEI, un delimitador de unidad de acceso, datos de relleno u otro tipo de datos. Los datos en una unidad NAL pueden incluir varias estructuras sintácticas.
[58] El descodificador de vídeo 30 puede recibir el flujo de bits generado por el codificador de vídeo 20. El flujo de bits puede incluir una representación codificada de los datos de vídeo codificados por el codificador de vídeo 20. Cuando el descodificador de vídeo 30 recibe el flujo de bits, el descodificador de vídeo 30 puede realizar una operación de análisis sintáctico en el flujo de bits. Cuando el descodificador de vídeo 30 realiza la operación de análisis sintáctico, el descodificador de vídeo 30 puede extraer elementos sintácticos del flujo de bits. El descodificador de vídeo 30 puede reconstruir las imágenes de los datos de vídeo basándose en los elementos sintácticos extraídos del flujo de bits. El proceso para reconstruir los datos de vídeo basados en los elementos sintácticos puede ser, en general, recíproco al proceso realizado por el codificador de vídeo 20 para generar los elementos sintácticos.
[59] Después de que el descodificador de vídeo 30 extraiga los elementos sintácticos asociados con una CU, el descodificador de vídeo 30 puede generar bloques de vídeo predichos para las PU de la CU basándose en los elementos sintácticos. Además, el descodificador de vídeo 30 puede invertir bloques de coeficientes de transformación cuantificados asociados con las TU de la CU. El descodificador de vídeo 30 puede realizar transformaciones inversas en los bloques de coeficientes de transformación para reconstruir los bloques de vídeo residuales asociados con las TU de la CU. Después de generar los bloques de vídeo predichos y reconstruir los bloques de vídeo residuales, el descodificador de vídeo 30 puede reconstruir el bloque de vídeo de la CU basándose en los bloques de vídeo predichos y los bloques de vídeo residuales. De esta manera, el descodificador de vídeo 30 puede determinar los bloques de vídeo de las CU basándose en los elementos sintácticos del flujo de bits.
Codificador de vídeo
[60] La FIG. 2A es un diagrama de bloques que ilustra un codificador de vídeo 20 a modo de ejemplo que puede implementar técnicas de acuerdo con aspectos descritos en esta divulgación. El codificador de vídeo 20 puede configurarse para procesar una sola capa de una trama de vídeo, tal como para HEVC. Además, el codificador de vídeo 20 puede configurarse para realizar cualquiera o todas las técnicas de esta divulgación. En algunos ejemplos, las técnicas descritas en esta divulgación pueden compartirse entre los diversos componentes del codificador de vídeo 20. En algunos ejemplos, adicionalmente o de forma alternativa, un procesador (no mostrado) puede configurarse para realizar cualquiera o todas las técnicas descritas en esta divulgación.
[61] Con fines de explicación, esta divulgación describe el codificador de vídeo 20 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación. El ejemplo ilustrado en la FIG. 2A es para un códec de capa única. Sin embargo, como se describirá adicionalmente con respecto a la FIG. 2B, parte o todo el codificador de vídeo 20 puede duplicarse para el procesamiento de un códec de múltiples capas.
[62] 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 apoya en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama o imagen de vídeo determinada. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas o imágenes adyacentes de una secuencia de vídeo. La intramodalidad (modalidad I) puede referirse a cualquiera de varias modalidades de codificación de base espacial. Las intermodalidades, tales como la predicción unidireccional (modalidad P) o la predicción bidireccional (modalidad B), pueden referirse a cualquiera de varias modalidades de codificación de base temporal.
[63] En el ejemplo de la FIG. 2A, el codificador de vídeo 20 incluye una pluralidad de componentes funcionales. Los componentes funcionales del codificador de vídeo 20 incluyen una unidad de procesamiento de predicción 100, una unidad de generación residual 102, una unidad de procesamiento de transformada 104, una unidad de cuantificación 106, una unidad de cuantificación inversa 108, una unidad de transformada inversa 110, una unidad de reconstrucción 112, una unidad de filtro 113, una memoria intermedia de imágenes descodificadas 114, y una unidad de codificación por entropía 116. La unidad de procesamiento de predicción 100 incluye una
5
10
15
20
25
30
35
40
45
50
55
60
65
unidad de interpredicción 121, una unidad de estimación de movimiento 122, una unidad de compensación de movimiento 124, una unidad de intrapredicción 126 y una unidad de predicción entre capas 128. En otros ejemplos, el codificador de vídeo 20 puede incluir más, menos o diferentes componentes funcionales. Además, la unidad de estimación de movimiento 122 y la unidad de compensación de movimiento 124 pueden estar altamente integrados, pero están representados en el ejemplo de la FIG. 2A por separado con fines de explicación.
[64] El codificador de vídeo 20 puede recibir datos de vídeo. El codificador de vídeo 20 puede recibir los datos de vídeo de diversas fuentes. Por ejemplo, el codificador de vídeo 20 puede recibir los datos de vídeo de la fuente de vídeo 18 (por ejemplo, mostrada en la FIG. 1A o 1B) u otra fuente. Los datos de vídeo pueden representar una serie de imágenes. Para codificar los datos de vídeo, el codificador de vídeo 20 puede realizar una operación de codificación en cada una de las imágenes. Como parte de realizar la operación de codificación en una imagen, el codificador de vídeo 20 puede realizar operaciones de codificación en cada fragmento de la imagen. Como parte de realizar una operación de codificación en un fragmento, el codificador de vídeo 20 puede realizar operaciones de codificación en bloques de árbol en el fragmento.
[65] Como parte de realizar una operación de codificación en un bloque de árbol, la unidad de procesamiento de predicción 100 puede realizar la división en árbol cuaternario en el bloque de vídeo del bloque de árbol para dividir el bloque de vídeo en bloques de vídeo progresivamente más pequeños. Cada uno de los bloques de vídeo más pequeños puede estar asociado con una CU diferente. Por ejemplo, la unidad de procesamiento de predicción 100 puede dividir un bloque de vídeo de un bloque de árbol en cuatro sub-bloques de igual tamaño, dividir uno o más de los sub-bloques en cuatro sub-sub-bloques de igual tamaño, etc.
[66] Los tamaños de los bloques de vídeo asociados con las CU pueden variar desde muestras de 8x8 hasta el tamaño del bloque de árbol, con un máximo de muestras de 64x64 o mayores. En esta divulgación, "NxN" y "N por N" pueden usarse indistintamente para hacer referencia a las dimensiones de muestras de un bloque de vídeo en términos de dimensiones verticales y horizontales, por ejemplo, muestras de 16x16 o muestras de 16 por 16. En general, un bloque de vídeo de 16x16 tiene dieciséis muestras en una dirección vertical (y = 16) y dieciséis muestras en una dirección horizontal (x = 16). Asimismo, un bloque NxN presenta, en general, N muestras en una dirección vertical y N muestras en una dirección horizontal, donde N representa un valor entero no negativo.
[67] Además, como parte de la realización de la operación de codificación en un bloque de árbol, la unidad de procesamiento de predicción 100 puede generar una estructura de datos jerárquica en árbol cuaternario para el bloque de árbol. Por ejemplo, un bloque de árbol puede corresponder a un nodo raíz de la estructura de datos en árbol cuaternario. Si la unidad de procesamiento de predicción 100 divide el bloque de vídeo del bloque de árbol en cuatro sub-bloques, el nodo raíz tiene cuatro nodos secundarios en la estructura de datos en árbol cuaternario. Cada uno de los nodos secundarios corresponde a una CU asociada con uno de los sub-bloques. Si la unidad de procesamiento de predicción 100 divide uno de los sub-bloques en cuatro sub-sub-bloques, el nodo correspondiente a la CU asociada con el sub-bloque puede tener cuatro nodos secundarios, cada uno de los cuales corresponde a una CU asociada con uno de los sub-sub-bloques.
[68] Cada nodo de la estructura de datos en árbol cuaternario puede contener datos sintácticos (por ejemplo, elementos sintácticos) para el bloque de árbol o CU correspondiente. Por ejemplo, un nodo en el árbol cuaternario puede incluir un indicador de división, que indica si el bloque de vídeo de la CU correspondiente al nodo está dividido (es decir, partido) en cuatro sub-bloques. Los elementos sintácticos para una CU pueden definirse de manera recursiva y pueden depender de si el bloque de vídeo de la CU está dividido en sub-bloques. Una CU cuyo bloque de vídeo no está dividido puede corresponder a un nodo hoja en la estructura de datos en árbol cuaternario. Un bloque de árbol codificado puede incluir datos basados en la estructura de datos en árbol cuaternario para un bloque de árbol correspondiente.
[69] El codificador de vídeo 20 puede realizar operaciones de codificación en cada CU no dividida de un bloque de árbol. Cuando el codificador de vídeo 20 realiza una operación de codificación en una CU no dividida, el codificador de vídeo 20 genera datos que representan una representación codificada de la CU no dividida.
[70] Como parte de la realización de una operación de codificación en una CU, la unidad de procesamiento de predicción 100 puede dividir el bloque de vídeo de la CU entre una o más PU de la CU. El codificador de vídeo 20 y el descodificador de vídeo 30 pueden admitir varios tamaños de PU. Suponiendo que el tamaño de una CU particular sea 2Nx2N, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden admitir tamaños de PU de 2Nx2N o NxN e interpredicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, nLx2N, nRx2N o similares. El codificador de vídeo 20 y el descodificador de vídeo 30 también pueden admitir divisiones asimétricas para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En algunos ejemplos, la unidad de procesamiento de predicción 100 puede realizar una división geométrica para dividir el bloque de vídeo de una CU entre las PU de la CU a lo largo de un límite que no coincide con los lados del bloque de vídeo de la CU en ángulos rectos.
5
10
15
20
25
30
35
40
45
50
55
60
65
[71] La unidad de interpredicción 121 puede realizar una interpredicción en cada PU de la CU. La interpredicción puede proporcionar compresión temporal. Para realizar la interpredicción en una PU, la unidad de estimación de movimiento 122 puede generar información de movimiento para la PU. La unidad de compensación de movimiento 124 puede generar un bloque de vídeo predicho para la PU basado en la información de movimiento y las muestras descodificadas de imágenes distintas a la imagen asociada con la CU (por ejemplo, imágenes de referencia). En esta divulgación, un bloque de vídeo predicho generado por la unidad de compensación de movimiento 124 se puede referir como un bloque de vídeo interpredicho.
[72] Los fragmentos pueden ser fragmentos I, fragmentos P o fragmentos B. El módulo de estimación de movimiento 122 y la unidad de compensación de movimiento 124 pueden realizar diferentes operaciones para una PU de una Cu dependiendo de si la PU está en un fragmento I, un fragmento P o un fragmento B. En un fragmento en I, todas las PU son intrapredichas. Por lo tanto, si la PU está en un fragmento I, la unidad de estimación de movimiento 122 y la unidad de compensación de movimiento 124 no realizan la interpredicción en la PU.
[73] Si la PU está en un fragmento P, la imagen que contiene la PU está asociada con una lista de imágenes de referencia denominada "lista 0". Cada una de las imágenes de referencia en la lista 0 contiene muestras que pueden usarse para la interpredicción de otras imágenes. Cuando la unidad de estimación de movimiento 122 realiza la operación de estimación de movimiento con respecto a una PU en un fragmento P, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia en la lista 0 para un bloque de referencia para la PU. El bloque de referencia de la PU puede ser un conjunto de muestras, por ejemplo, un bloque de muestras, que se corresponde más estrechamente con las muestras del bloque de vídeo de la PU. La unidad de estimación de movimiento 122 puede usar una variedad de métricas para determinar cuán estrechamente un conjunto de muestras en una imagen de referencia se corresponde con las muestras del bloque de vídeo de una PU. Por ejemplo, la unidad de estimación de movimiento 122 puede determinar cuán estrechamente un conjunto de muestras en una imagen de referencia se corresponde con las muestras en el bloque de vídeo de una PU por la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) u otra diferencia métrica.
[74] Después de identificar un bloque de referencia de una PU en un fragmento P, la unidad de estimación de movimiento 122 puede generar un índice de referencia que indica la imagen de referencia de la lista 0 que contiene el bloque de referencia y un vector de movimiento que indica un desplazamiento espacial entre la PU y el bloque de referencia. En varios ejemplos, la unidad de estimación de movimiento 122 puede generar vectores de movimiento con diferentes grados de precisión. Por ejemplo, la unidad de estimación de movimiento 122 puede generar vectores de movimiento con una precisión de un cuarto de muestra, una precisión de un octavo de muestra o una precisión de otra fracción de muestra. En el caso de la precisión de la fracción de muestra, los valores del bloque de referencia pueden interpolarse a partir de valores de muestra de posición de entero en la imagen de referencia. La unidad de estimación de movimiento 122 puede emitir el índice de referencia y el vector de movimiento como la información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar el bloque de vídeo predicho de la PU basándose en el bloque de referencia indicado por la información de movimiento de la PU.
[75] Si la PU está en un fragmento B, la imagen que contiene la PU puede estar asociada con dos listas de imágenes de referencia, denominadas "lista 0" y "lista 1." En algunos ejemplos, una imagen que contiene un fragmento B puede estar asociada con una combinación de listas que es una combinación de la lista 0 y la lista 1.
[76] Además, si la PU está en un fragmento B, la unidad de estimación de movimiento 122 puede llevar a cabo la predicción unidireccional o la predicción bidireccional para la PU. Cuando la unidad de estimación de movimiento 122 realiza la predicción unidireccional para la PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia de la lista 0 o la lista 1 para un bloque de referencia para la PU. La unidad de estimación de movimiento 122 puede entonces generar un índice de referencia que indica la imagen de referencia en la lista 0 o la lista 1 que contiene el bloque de referencia y un vector de movimiento que indica un desplazamiento espacial entre la PU y el bloque de referencia. La unidad de estimación de movimiento 122 puede emitir el índice de referencia, un indicador de la dirección de predicción y el vector de movimiento como la información de movimiento de la PU. El indicador de dirección de predicción puede indicar si el índice de referencia indica una imagen de referencia en la lista 0 o la lista 1. La unidad de compensación de movimiento 124 puede generar el bloque de vídeo predicho de la PU basándose en el bloque de referencia indicado por la información de movimiento de la PU.
[77] Cuando la unidad de estimación de movimiento 122 realiza la predicción bidireccional para una PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia de la lista 0 para un bloque de referencia para la PU y también puede buscar las imágenes de referencia de la lista 1 para otro bloque de referencia para la PU. La unidad de estimación de movimiento 122 puede entonces generar índices de referencia que indican las imágenes de referencia en la lista 0 y la lista 1 que contienen los bloques de referencia y los vectores de movimiento que indican desplazamientos espaciales entre los bloques de referencia y la PU. La
5
10
15
20
25
30
35
40
45
50
55
60
65
unidad de estimación de movimiento 122 puede emitir los índices de referencia y los vectores de movimiento de la PU como la información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar el bloque de vídeo predicho de la PU basándose en los bloques de referencia indicados por la información de movimiento de la PU.
[78] En algunos casos, la unidad de estimación de movimiento 122 no emite un conjunto completo de información de movimiento para una PU a la unidad de codificación por entropía 116. En lugar de eso, la unidad de estimación de movimiento 122 puede señalar la información de movimiento de una PU con referencia a la información de movimiento de otra PU. Por ejemplo, la unidad de estimación de movimiento 122 puede determinar que la información de movimiento de la PU es suficientemente similar a la información de movimiento de una PU próxima. En este ejemplo, la unidad de estimación de movimiento 122 puede indicar, en una estructura sintáctica asociada con la PU, un valor que indica al descodificador de vídeo 30 que la PU tiene la misma información de movimiento que la PU próxima. En otro ejemplo, la unidad de estimación de movimiento 122 puede identificar, en una estructura sintáctica asociada con la PU, una PU próxima y una diferencia de vectores de movimiento (MVD). La diferencia de vectores de movimiento indica una diferencia entre el vector de movimiento de la PU y el vector de movimiento de la PU próxima indicada. El descodificador de vídeo 30 puede utilizar el vector de movimiento de la PU próxima indicada y la diferencia de vectores de movimiento para determinar el vector de movimiento de la PU. Haciendo referencia a la información de movimiento de una primera PU cuando se señala la información de movimiento de una segunda PU, el codificador de vídeo 20 puede ser capaz de señalar la información de movimiento de la segunda PU usando menos bits.
[79] Como parte de la realización de una operación de codificación en una CU, la unidad de intrapredicción 126 puede llevar a cabo la intrapredicción en las PU de la CU. La intrapredicción puede proporcionar compresión espacial. Cuando la unidad de intrapredicción 126 realiza la intrapredicción en una PU, la unidad de intrapredicción 126 puede generar datos de predicción para la PU basados en muestras descodificadas de otras PU en la misma imagen. Los datos de predicción para la PU pueden incluir un bloque de vídeo predicho y varios elementos sintácticos. La unidad de intrapredicción 126 puede realizar la intrapredicción en PU en fragmentos I, fragmentos P y fragmentos B.
[80] Para realizar la intrapredicción en una PU, la unidad de intrapredicción 126 puede usar múltiples modos de intrapredicción para generar múltiples conjuntos de datos predichos para la PU. Cuando la unidad de intrapredicción 126 utiliza un modo de intrapredicción para generar un conjunto de datos de predicción para la PU, la unidad de intrapredicción 126 puede extender muestras de bloques de vídeo de PU próximas a través del bloque de vídeo de la PU en una dirección y/o gradiente asociada con el modo de intrapredicción. Las PU contiguas pueden estar arriba, arriba y a la derecha, arriba y a la izquierda o a la izquierda de la PU, suponiendo un orden de codificación de arriba a abajo, de izquierda a derecha para las PU, CU y bloques de árbol. La unidad de intrapredicción 126 puede usar varios números de modos de intrapredicción, por ejemplo, 33 modos de intrapredicción direccional, dependiendo del tamaño de la PU.
[81] La unidad de predicción 100 puede seleccionar los datos de predicción para una PU entre los datos de predicción generados por la unidad de compensación de movimiento 124 para la PU o los datos de predicción generados por la unidad de intrapredicción 126 para la PU. En algunos ejemplos, la unidad de procesamiento de predicción 100 selecciona los datos de predicción para la PU basándose en las métricas de velocidad/distorsión de los conjuntos de datos de predicción.
[82] Si la unidad de procesamiento de predicción 100 selecciona datos de predicción generados por la unidad de intrapredicción 126, la unidad de procesamiento de predicción 100 puede señalar el modo de intrapredicción que se utilizó para generar los datos de predicción para la PU, es decir, el modo de intrapredicción seleccionado. La unidad de procesamiento de predicción 100 puede señalar el modo de intrapredicción seleccionado de varias maneras. Por ejemplo, es probable que el modo de intrapredicción seleccionado sea el mismo que el modo de intrapredicción de una PU próxima. En otras palabras, el modo de intrapredicción de la PU próxima puede ser el modo más probable para la PU actual. De este modo, la unidad de procesamiento de predicción 100 puede generar un elemento sintáctico para indicar que el modo de intrapredicción seleccionado es el mismo que el modo de intrapredicción de la PU próxima.
[83] Como se analizó anteriormente, el codificador de vídeo 20 puede incluir la unidad de predicción entre capas 128. La unidad de predicción entre capas 128 está configurada para predecir un bloque actual (por ejemplo, un bloque actual en la capa de mejora) usando una o más capas diferentes que están disponibles en SHVC (por ejemplo, una capa base o de referencia/mejora). Dicha predicción se puede denominar predicción entre capas. La unidad de predicción entre capas 128 utiliza procedimientos de predicción para reducir la redundancia entre capas, mejorando de ese modo la eficacia de codificación y reduciendo los requisitos de recursos informáticos. Algunos ejemplos de predicción entre capas incluyen la intrapredicción entre capas, la predicción de movimiento entre capas y la predicción residual entre capas. La intrapredicción entre capas utiliza la reconstrucción de bloques ubicados conjuntamente en la capa base para predecir el bloque actual en la capa de mejora. La predicción de movimiento entre capas usa la información de movimiento de la capa base para
5
10
15
20
25
30
35
40
45
50
55
60
65
predecir el movimiento en la capa de mejora. La predicción residual entre capas usa el residuo de la capa base para predecir el residuo de la capa de mejora.
[84] Después de que la unidad de procesamiento de predicción 100 seleccione los datos de predicción para las PU de una CU, la unidad de generación residual 102 puede generar datos residuales para la CU restando (por ejemplo, indicado por el signo menos) los bloques de vídeo predichos de las PU de la CU del bloque de vídeo de la CU. Los datos residuales de una CU pueden incluir bloques de vídeo residuales en 2D que corresponden a diferentes componentes de muestra de las muestras en el bloque de vídeo de la CU. Por ejemplo, los datos residuales pueden incluir un bloque de vídeo residual que corresponde a diferencias entre componentes de luminancia de muestras en los bloques de vídeo predichos de las PU de la CU y componentes de luminancia de muestras en el bloque de vídeo original de la CU. Además, los datos residuales de la CU pueden incluir bloques de vídeo residuales que corresponden a las diferencias entre componentes de crominancia de muestras en los bloques de vídeo predichos de las PU de la CU y los componentes de crominancia de las muestras en el bloque de vídeo original de la CU.
[85] La unidad de procesamiento de predicción 100 puede realizar la división en árbol cuaternario para dividir los bloques de vídeo residuales de una CU en sub-bloques. Cada bloque de vídeo residual no dividido puede estar asociado con una TU diferente de la CU. Los tamaños y posiciones de los bloques de vídeo residuales asociados con las TU de una CU pueden o no basarse en los tamaños y posiciones de los bloques de vídeo asociados con las PU de la CU. Una estructura en árbol cuaternario conocida como "árbol cuaternario residual" (RQT) puede incluir nodos asociados con cada uno de los bloques de vídeo residuales. Las TU de una CU pueden corresponder a nodos de hoja del RQT.
[86] La unidad de procesamiento de transformación 104 puede generar uno o más bloques de coeficientes de transformación para cada TU de una CU aplicando una o más transformaciones a un bloque de vídeo residual asociado con la TU. Cada uno de los bloques de coeficientes de transformación puede ser una matriz en 2D de coeficientes de transformación. La unidad de procesamiento de transformación 104 puede aplicar varias transformaciones al bloque de vídeo residual asociado con una TU. Por ejemplo, la unidad de procesamiento de transformación 104 puede aplicar una transformación de coseno discreta (DCT), una transformación direccional o una transformación conceptualmente similar al bloque de vídeo residual asociado con una TU.
[87] Después de que la unidad de procesamiento de transformación 104 genere un bloque de coeficientes de transformación asociado con una TU, la unidad de cuantificación 106 puede cuantificar los coeficientes de transformación en el bloque de coeficientes de transformación. La unidad de cuantificación 106 puede cuantificar un bloque de coeficientes de transformación asociado con una TU de una CU basándose en un valor de QP asociado con la CU.
[88] El codificador de vídeo 20 puede asociar un valor QP con una CU de varias maneras. Por ejemplo, el codificador de vídeo 20 puede realizar un análisis de velocidad-distorsión en un bloque de árbol asociado con la CU. En el análisis de velocidad-distorsión, el codificador de vídeo 20 puede generar múltiples representaciones codificadas del bloque de árbol realizando una operación de codificación varias veces en el bloque de árbol. El codificador de vídeo 20 puede asociar diferentes valores de QP con la CU cuando el codificador de vídeo 20 genera diferentes representaciones codificadas del bloque de árbol. El codificador de vídeo 20 puede señalar que un valor QP determinado está asociado con la CU cuando el valor QP determinado está asociado con la CU en una representación codificada del bloque de árbol que tiene una velocidad de bits y una métrica de distorsión más bajas.
[89] La unidad de cuantificación inversa 108 y la unidad de transformación inversa 110 pueden aplicar la cuantificación inversa y las transformaciones inversas al bloque de coeficientes de transformación, respectivamente, para reconstruir un bloque de vídeo residual a partir del bloque de coeficientes de transformación. La unidad de reconstrucción 112 puede añadir el bloque de vídeo residual reconstruido a las muestras correspondientes de uno o más bloques de vídeo predichos generados por la unidad de procesamiento de predicción 100 para producir un bloque de vídeo reconstruido asociado con una TU. Mediante la reconstrucción de bloques de vídeo para cada TU de una CU de esta manera, el codificador de vídeo 20 puede reconstruir el bloque de vídeo de la CU.
[90] Después de que la unidad de reconstrucción 112 reconstruya el bloque de vídeo de una CU, la unidad de filtro 113 puede realizar una operación de desbloqueo para reducir los artefactos de bloqueo en el bloque de vídeo asociado con la CU. Después de realizar las una o más operaciones de desbloqueo, la unidad de filtro 113 puede almacenar el bloque de vídeo reconstruido de la CU en la memoria intermedia de imágenes descodificadas 114. La unidad de estimación de movimiento 122 y la unidad de compensación de movimiento 124 pueden utilizar una imagen de referencia que contiene el bloque de vídeo reconstruido para realizar la interpredicción en las PU de las imágenes posteriores. Además, la unidad de intrapredicción 126 puede usar bloques de vídeo reconstruidos en la memoria intermedia de imágenes descodificadas 114 para realizar la intrapredicción en otras PU en la misma imagen que la CU.
5
10
15
20
25
30
35
40
45
50
55
60
65
[91] La unidad de codificación por entropía 116 puede recibir datos de otros componentes funcionales del codificador de vídeo 20. Por ejemplo, la unidad de codificación por entropía 116 puede recibir bloques de coeficientes de la unidad de cuantificación 106 y puede recibir elementos sintácticos de la unidad de procesamiento de predicción 100. Cuando la unidad de codificación por entropía 116 recibe los datos, la unidad de codificación por entropía 116 puede realizar una o más operaciones de codificación por entropía para generar datos codificados por entropía. Por ejemplo, el codificador de vídeo 20 puede realizar una operación de CAVLC, una operación de CABAC, una operación de codificación de longitud variable a variable (V2V), una operación de codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), una operación de codificación PIPE u otro tipo de operación de codificación por entropía en los datos. La unidad de codificación por entropía 116 puede emitir un flujo de bits que incluye los datos codificados por entropía.
[92] Como parte de la realización de una operación de codificación por entropía en los datos, la unidad de codificación por entropía 116 puede seleccionar un modelo de contexto. Si la unidad de codificación por entropía 116 está realizando una operación CABAC, el modelo de contexto puede indicar las estimaciones de las probabilidades de que un bin particular tenga unos valores particulares. En el contexto de CABAC, el término "bin" se utiliza para referirse a un bit de una versión binarizada de un elemento sintáctico.
Codificador de vídeo de múltiples capas
[93] La FIG. 2B es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo de múltiples capas 23 (también denominado simplemente codificador de vídeo 23) que puede implementar técnicas de acuerdo con los aspectos descritos en esta divulgación. El codificador de vídeo 23 puede configurarse para procesar tramas de vídeo de múltiples capas, como por ejemplo para SHVC y MV-HEVC. Además, el codificador de vídeo 23 puede configurarse para realizar cualquiera o todas las técnicas de esta divulgación.
[94] El codificador de vídeo 23 incluye un codificador de vídeo 20A y un codificador de vídeo 20B, cada uno de los cuales puede configurarse como el codificador de vídeo 20 y puede realizar las funciones descritas anteriormente con respecto al codificador de vídeo 20. Además, como se indica por la reutilización de los números de referencia, los codificadores de vídeo 20A y 20B pueden incluir, al menos, algunos de los sistemas y subsistemas como el codificador de vídeo 20. Aunque el codificador de vídeo 23 se ilustra como que incluye dos codificadores de vídeo 20A y 20B, el codificador de vídeo 23 no está limitado como tal y puede incluir cualquier número de capas de codificador de vídeo 20. En algunos modos de realización, el codificador de vídeo 23 puede incluir un codificador de vídeo 20 para cada imagen o trama en una unidad de acceso. Por ejemplo, una unidad de acceso que incluye cinco imágenes puede ser procesada o codificada por un codificador de vídeo que incluye cinco capas de codificador. En algunos modos de realización, el codificador de vídeo 23 puede incluir más capas de codificador que tramas en una unidad de acceso. En algunos de dichos casos, algunas de las capas del codificador de vídeo pueden estar inactivas al procesar algunas unidades de acceso.
[95] Además de los codificadores de vídeo 20A y 20B, el codificador de vídeo 23 puede incluir una unidad de remuestreo 90. La unidad de remuestreo 90 puede, en algunos casos, interpolar una capa base de una trama de vídeo recibida para, por ejemplo, crear una capa de mejora. La unidad de remuestreo 90 puede interpolar la información particular asociada con la capa base recibida de una trama, pero no otra información. Por ejemplo, la unidad de remuestreo 90 puede interpolar el tamaño espacial o el número de píxeles de la capa base, pero el número de fragmentos o el recuento de orden de las imágenes puede permanecer constante. En algunos casos, la unidad de remuestreo 90 puede no procesar el vídeo recibido y/o puede ser opcional. Por ejemplo, en algunos casos, la unidad de procesamiento de predicción 100 puede realizar una interpolación. En algunos modos de realización, la unidad de remuestreo 90 está configurada para interpolar una capa y reorganizar, redefinir, modificar o ajustar uno o más fragmentos para cumplir con un conjunto de reglas de límite de fragmento y/o reglas de escaneo de trama. Aunque se describe principalmente como una interpolación de una capa base o de una capa inferior en una unidad de acceso, en algunos casos, la unidad de remuestreo 90 puede diezmar [to downsample] una capa. Por ejemplo, si durante la transmisión de un vídeo se reduce el ancho de banda, una trama puede ser diezmada [downsampled] en lugar de interpolada [upsampled].
[96] La unidad de remuestreo 90 puede configurarse para recibir una imagen o trama (o información de imagen asociada con la imagen) desde la memoria intermedia de imágenes descodificadas 114 del codificador de capa inferior (por ejemplo, el codificador de vídeo 20A) y para interpolar la imagen (o la información de imagen recibida). Esta imagen interpolada puede entonces proporcionarse a la unidad de procesamiento de predicción 100 de un codificador de capa superior (por ejemplo, el codificador de vídeo 20B) configurado para codificar una imagen en la misma unidad de acceso que el codificador de capa inferior. En algunos casos, el codificador de capa superior es una capa eliminada del codificador de capa inferior. En otros casos, puede haber uno o más codificadores de capa superior entre el codificador de vídeo de capa 0 y el codificador de capa 1 de la
FIG. 2B.
[97] En algunos casos, la unidad de remuestreo 90 se puede omitir o anular. En dichos casos, la imagen de la memoria intermedia de imágenes descodificadas 114 del codificador de vídeo 20A se puede proporcionar directamente, o al menos sin proporcionarse a la unidad de remuestreo 90, a la unidad de procesamiento de
5
10
15
20
25
30
35
40
45
50
55
60
65
predicción 100 del codificador de vídeo 20B. Por ejemplo, si los datos de vídeo proporcionados al codificador de vídeo 20B y la imagen de referencia de la memoria intermedia de imágenes descodificadas 114 del codificador de vídeo 20a son del mismo tamaño o resolución, la imagen de referencia puede proporcionarse al codificador de vídeo 20B sin ningún remuestreo.
[98] En algunos modos de realización, el codificador de vídeo 23 diezma los datos de vídeo a proporcionar al codificador de capa inferior usando la unidad de diezmado 94 antes de proporcionar los datos de vídeo al codificador de vídeo 20A. De forma alternativa, la unidad de diezmado 94 puede ser una unidad de remuestreo 90 capaz de interpolar o diezmar los datos de vídeo. En otros modos de realización más, la unidad de diezmado 94 puede omitirse.
[99] Como se ilustra en la FIG. 2B, el codificador de vídeo 23 puede incluir, además, un multiplexor (o mux) 98. El mux 98 puede emitir un flujo de bits combinado desde el codificador de vídeo 23. El flujo de bits combinado se puede crear tomando un flujo de bits de cada uno de los codificadores de vídeo 20A y 20B y alternando qué flujo de bits se emite en un momento determinado. Mientras que en algunos casos los bits de los dos (o más en el caso de más de dos capas de codificador de vídeo) flujos de bits pueden alternarse un bit a la vez, en muchos casos los flujos de bits se combinan de manera diferente. Por ejemplo, el flujo de bits de salida puede crearse alternando el flujo de bits seleccionado un bloque a la vez. En otro ejemplo, el flujo de bits de salida se puede crear emitiendo una proporción de bloques diferente a 1:1 de cada uno de los codificadores de vídeo 20A y 20B. Por ejemplo, pueden emitirse dos bloques desde el codificador de vídeo 20B para cada salida de bloque del codificador de vídeo 20A. En algunos modos de realización, el flujo de salida del mux 98 puede preprogramarse. En otros modos de realización, el mux 98 puede combinar los flujos de bits de los codificadores de vídeo 20A, 20B en base a una señal de control recibida desde un sistema externo al codificador de vídeo 23, tal como desde un procesador en un dispositivo de origen que incluye el dispositivo de origen 12. La señal de control puede generarse en base a la resolución o velocidad de bits de un vídeo desde la fuente de vídeo 18, en base al ancho de banda del enlace 16, en base a una suscripción asociada a un usuario (por ejemplo, una suscripción de pago frente a una suscripción gratuita) o en base a cualquier otro factor para determinar una salida de resolución deseada del codificador de vídeo 23.
Descodificador de vídeo
[100] La FIG. 3A es un diagrama de bloques que ilustra un descodificador de vídeo 30 a modo de ejemplo que puede implementar las técnicas de acuerdo con los aspectos descritos en esta divulgación. El descodificador de vídeo 30 puede configurarse para procesar una sola capa de una trama de vídeo, tal como para HEVC. Además, el descodificador de vídeo 30 se puede configurar para realizar cualquiera o todas las técnicas de esta divulgación. En algunos ejemplos, las técnicas descritas en esta divulgación pueden compartirse entre los diversos componentes del descodificador de vídeo 30. En algunos ejemplos, adicionalmente o de forma alternativa, un procesador (no mostrado) puede configurarse para realizar cualquiera o todas las técnicas descritas en esta divulgación.
[101] Con fines de explicación, esta divulgación describe el descodificador de vídeo 30 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación. El ejemplo ilustrado en la FIG. 3A es para un códec de capa única. Sin embargo, como se describirá adicionalmente con respecto a la FIG. 3B, parte o todo el descodificador de vídeo 30 puede duplicarse para el procesamiento de un códec de múltiples capas.
[102] En el ejemplo de la FIG. 3A, el descodificador de vídeo 30 incluye una pluralidad de componentes funcionales. Los componentes funcionales del descodificador de vídeo 30 incluyen una unidad de descodificación por entropía 150, una unidad de procesamiento de predicción 152, una unidad de cuantificación inversa 154, una unidad de transformada inversa 156, una unidad de reconstrucción 158, una unidad de filtro 159 y una memoria intermedia de imágenes descodificadas 160. La unidad de procesamiento de predicción 152 incluye la unidad de compensación de movimiento 162, una unidad de intrapredicción 164 y una unidad de predicción entre capas 166. En algunos ejemplos, el descodificador de vídeo 30 puede realizar una pasada de descodificación en general recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 de la FIG. 2A. En otros ejemplos, el descodificador de vídeo 30 puede incluir más, menos o diferentes componentes funcionales.
[103] El descodificador de vídeo 30 puede recibir un flujo de bits que comprende datos de vídeo codificados. El flujo de bits puede incluir una pluralidad de elementos sintácticos. Cuando el descodificador de vídeo 30 recibe el flujo de bits, la unidad de descodificación por entropía 150 puede realizar una operación de análisis sintáctico en el flujo de bits. Como resultado de realizar la operación de análisis sintáctico en el flujo de bits, la unidad de descodificación por entropía 150 puede extraer elementos sintácticos del flujo de bits. Como parte de la realización de la operación de análisis sintáctico, la unidad de descodificación por entropía 150 puede realizar la descodificación por entropía de elementos sintácticos sometidos a codificación por entropía en el flujo de bits. La unidad de procesamiento de predicción 152, la unidad de cuantificación inversa 154, la unidad de transformación inversa 156, la unidad de reconstrucción 158 y la unidad de filtro 159 pueden realizar una operación de
5
10
15
20
25
30
35
40
45
50
55
60
65
reconstrucción que genera datos de vídeo descodificados basados en los elementos sintácticos extraídos del flujo de bits.
[104] Como se analizó anteriormente, el flujo de bits puede comprender una serie de unidades NAL. Las unidades NAL del flujo de bits pueden incluir unidades NAL de conjunto de parámetros de vídeo, unidades NAL de conjunto de parámetros de secuencia, unidades NAL de conjunto de parámetros de imagen, unidades NAL SEI, etc. Como parte de realizar la operación de análisis sintáctico en el flujo de bits, la unidad de descodificación por entropía 150 puede realizar operaciones de análisis sintáctico que extraen y descodifican por entropía conjuntos de parámetros de secuencia a partir de unidades NAL de conjuntos de parámetros de secuencia, conjuntos de parámetros de imagen a partir de unidades NAL de conjuntos de parámetros de imagen, datos SEI a partir de unidades NAL SEI, etc.
[105] Además, las unidades NAL del flujo de bits pueden incluir unidades NAL de fragmentos codificados. Como parte de realizar la operación de análisis sintáctico en el flujo de bits, la unidad de descodificación por entropía 150 puede realizar operaciones de análisis sintáctico que extraen y descodifican por entropía fragmentos codificados a partir de las unidades de NAL de fragmentos codificados. Cada uno de los fragmentos codificados puede incluir una cabecera de fragmento y datos de fragmento. La cabecera de fragmento puede contener elementos sintácticos pertenecientes a un fragmento. Los elementos sintácticos en la cabecera del fragmento pueden incluir un elemento sintáctico que identifica un conjunto de parámetros de imagen asociado con una imagen que contiene el fragmento. La unidad de descodificación por entropía 150 puede realizar operaciones de descodificación por entropía, tales como operaciones de descodificación de CABAC, en los elementos sintácticos de la cabecera del fragmento codificada para recuperar la cabecera del fragmento.
[106] Como parte de extraer los datos del fragmento de unidades NAL de fragmentos codificados, la unidad de descodificación por entropía 150 puede realizar operaciones de análisis sintáctico que extraen los elementos sintácticos de las CU codificadas en los datos del fragmento. Los elementos sintácticos extraídos pueden incluir elementos sintácticos asociados con bloques de coeficientes de transformación. La unidad de descodificación por entropía 150 puede entonces realizar operaciones de descodificación CABAC en algunos de los elementos sintácticos.
[107] Después de que la unidad de descodificación por entropía 150 realice una operación de análisis sintáctico en una CU no dividida, el descodificador de vídeo 30 puede realizar una operación de reconstrucción en la CU no dividida. Para realizar la operación de reconstrucción en una CU no dividida, el descodificador de vídeo 30 puede realizar una operación de reconstrucción en cada TU de la CU. Realizando la operación de reconstrucción para cada TU de la CU, el descodificador de vídeo 30 puede reconstruir un bloque de vídeo residual asociado con la CU.
[108] Como parte de la realización de una operación de reconstrucción en una TU, la unidad de cuantificación inversa 154 puede cuantificar de forma inversa, es decir, descuantificar, un bloque de coeficientes de transformación asociado con la TU. La unidad de cuantificación inversa 154 puede cuantificar de forma inversa el bloque de coeficientes de transformación de una manera similar a los procesos de cuantificación inversa propuestos para HEVC o definidos por la norma de descodificación H.264. La unidad de cuantificación inversa 154 puede utilizar un parámetro de cuantificación QP calculado por el codificador de vídeo 20 para una CU del bloque de coeficientes de transformación para determinar un grado de cuantificación y, del mismo modo, un grado de cuantificación inversa para la unidad de cuantificación inversa 154 a aplicar.
[109] Después de que la unidad de cuantificación inversa 154 cuantifique de forma inversa un bloque de coeficientes de transformación, la unidad de transformación inversa 156 puede generar un bloque de vídeo residual para la TU asociada con el bloque de coeficientes de transformación. La unidad de transformación inversa 156 puede aplicar una transformación inversa al bloque de coeficientes de transformación para generar el bloque de vídeo residual para la TU. Por ejemplo, la unidad de transformación inversa 156 puede aplicar una DCT inversa, una transformación de número entero inversa, una transformación de Karhunen-Loeve (KLT) inversa, una transformación de rotación inversa, una transformación direccional inversa u otra transformación inversa al bloque de coeficientes de transformación. En algunos ejemplos, la unidad de transformación inversa 156 puede determinar una transformación inversa para aplicar al bloque de coeficientes de transformación basándose en la señalización del codificador de vídeo 20. En dichos ejemplos, la unidad de transformación inversa 156 puede determinar la transformación inversa basada en una transformación señalada en el nodo raíz de un árbol cuaternario para un bloque de árbol asociado con el bloque de coeficientes de transformación. En otros ejemplos, la unidad de transformación inversa 156 puede inferir la transformación inversa a partir de una o más características de codificación, tales como tamaño de bloque, modo de codificación o similares. En algunos ejemplos, la unidad de transformación inversa 156 puede aplicar una transformación inversa en cascada.
[110] En algunos ejemplos, la unidad de compensación de movimiento 162 puede refinar el bloque de vídeo predicho de una PU mediante la realización de interpolación basándose en filtros de interpolación. Los identificadores para los filtros de interpolación que van a usarse para la compensación de movimiento con una precisión de submuestra pueden incluirse en los elementos sintácticos. La unidad de compensación de
5
10
15
20
25
30
35
40
45
50
55
60
65
movimiento 162 puede usar los mismos filtros de interpolación usados por el codificador de vídeo 20 durante la generación del bloque de vídeo predicho de la PU para calcular valores interpolados para muestras de subenteros de un bloque de referencia. La unidad de compensación de movimiento 162 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 de acuerdo con la información sintáctica recibida y usar los filtros de interpolación para producir el bloque de vídeo predicho.
[111] Si se codifica una PU usando intrapredicción, la unidad de intrapredicción 164 puede realizar la intrapredicción para generar un bloque de vídeo predicho para la PU. Por ejemplo, la unidad de intrapredicción 164 puede determinar un modo de intrapredicción para la PU basándose en los elementos sintácticos del flujo de bits. El flujo de bits puede incluir elementos sintácticos que la unidad de intrapredicción 164 puede usar para predecir el modo de intrapredicción de la PU.
[112] En algunos casos, los elementos sintácticos pueden indicar que la unidad de intrapredicción 164 tiene que utilizar el modo de intrapredicción de otra PU para determinar el modo de intrapredicción de la PU actual. Por ejemplo, puede ser probable que el modo de intrapredicción de la PU actual sea el mismo que el modo de intrapredicción de una PU próxima. En otras palabras, el modo de intrapredicción de la PU próxima puede ser el modo más probable para la PU actual. Por lo tanto, en este ejemplo, el flujo de bits puede incluir un elemento sintáctico pequeño que indica que el modo de intrapredicción de la PU es el mismo que el modo de intrapredicción de la PU próxima. La unidad de intrapredicción 164 puede entonces utilizar el modo de intrapredicción para generar datos de predicción (por ejemplo, muestras predichas) para la PU basándose en los bloques de vídeo de las PU espacialmente próximas.
[113] Como se analizó anteriormente, el descodificador de vídeo 30 también puede incluir la unidad de predicción entre capas 166. La unidad de predicción entre capas 166 está configurada para predecir un bloque actual (por ejemplo, un bloque actual en la capa de mejora) usando una o más capas diferentes que están disponibles en SHVC (por ejemplo, una capa base o de referencia/mejora). Dicha predicción se puede denominar predicción entre capas. La unidad de predicción entre capas 166 utiliza procedimientos de predicción para reducir la redundancia entre capas, mejorando así la eficacia de codificación y reduciendo los requisitos de recursos informáticos. Algunos ejemplos de predicción entre capas incluyen la intrapredicción entre capas, la predicción de movimiento entre capas y la predicción residual entre capas. La intrapredicción entre capas utiliza la reconstrucción de bloques ubicados conjuntamente en la capa base para predecir el bloque actual en la capa de mejora. La predicción de movimiento entre capas usa la información de movimiento de la capa base para predecir el movimiento en la capa de mejora. La predicción residual entre capas usa el residuo de la capa base para predecir el residuo de la capa de mejora. Cada uno de los esquemas de predicción entre capas se analiza a continuación con mayor detalle.
[114] La unidad de reconstrucción 158 puede utilizar los bloques de vídeo residuales asociados con las TU de una CU y los bloques de vídeo predichos de las PU de la CU, es decir, datos de intrapredicción o datos de interpredicción, según corresponda, para reconstruir el bloque de vídeo de la CU. De este modo, el descodificador de vídeo 30 puede generar un bloque de vídeo predicho y un bloque de vídeo residual basándose en los elementos sintácticos en el flujo de bits y puede generar un bloque de vídeo basándose en el bloque de vídeo predicho y el bloque de vídeo residual.
[115] Después de que la unidad de reconstrucción 158 reconstruya el bloque de vídeo de la CU, la unidad de filtro 159 puede realizar una operación de desbloqueo para reducir los artefactos de bloqueo asociados con la CU. Después de que la unidad de filtro 159 realiza una operación de desbloqueo para reducir los artefactos de bloqueo asociados con la CU, el descodificador de vídeo 30 puede almacenar el bloque de vídeo de la CU en la memoria intermedia de imágenes descodificadas 160. La memoria intermedia de imágenes descodificadas 160 puede proporcionar imágenes de referencia para una posterior compensación de movimiento, intrapredicción y presentación en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1A o 1B. Por ejemplo, el descodificador de vídeo 30 puede realizar, basándose en los bloques de vídeo de la memoria intermedia de imágenes descodificadas 160, operaciones de intrapredicción o de interpredicción en las PU de otras CU.
Descodificador de múltiples capas
[116] La FIG. 3B es un diagrama de bloques que ilustra un ejemplo de descodificador 33 de vídeo de múltiples capas (también denominado simplemente descodificador de vídeo 33) que puede implementar técnicas de acuerdo con los aspectos descritos en esta divulgación. El descodificador de vídeo 33 puede configurarse para procesar tramas de vídeo de múltiples capas, como por ejemplo para codificación SHVC y multivista. Además, el descodificador de vídeo 33 se puede configurar para realizar cualquiera o todas las técnicas de esta divulgación.
[117] El descodificador de vídeo 33 incluye un descodificador de vídeo 30A y un descodificador de vídeo 30B, cada uno de los cuales puede configurarse como el descodificador de vídeo 30 y puede realizar las funciones descritas anteriormente con respecto al descodificador de vídeo 30. Además, como se indica por la reutilización
5
10
15
20
25
30
35
40
45
50
55
60
65
de los números de referencia, los descodificadores de vídeo 30A y 30B pueden incluir al menos algunos de los sistemas y subsistemas como el descodificador de vídeo 30. Aunque el descodificador de vídeo 33 se ilustra como que incluye dos descodificadores de vídeo 30A y 30B, el descodificador de vídeo 33 no está limitado como tal y puede incluir cualquier número de capas de descodificador de vídeo 30. En algunos modos de realización, el descodificador de vídeo 33 puede incluir un descodificador de vídeo 30 para cada imagen o trama en una unidad de acceso. Por ejemplo, una unidad de acceso que incluye cinco imágenes puede procesarse o descodificarse mediante un descodificador de vídeo que incluye cinco capas de descodificador. En algunos modos de realización, el descodificador de vídeo 33 puede incluir más capas de descodificador que tramas en una unidad de acceso. En algunos de dichos casos, algunas de las capas del descodificador de vídeo pueden estar inactivas al procesar algunas unidades de acceso.
[118] Además de los descodificadores de vídeo 30A y 30B, el descodificador de vídeo 33 puede incluir una unidad de interpolación 92. En algunos modos de realización, la unidad de interpolación 92 puede interpolar una capa base de una trama de vídeo recibido para crear una capa mejorada para ser añadida a la lista de imágenes de referencia para la trama o la unidad de acceso. Esta capa mejorada se puede almacenar en la memoria intermedia de imágenes descodificadas 160. En algunos modos de realización, la unidad de interpolación 92 puede incluir algunos o todos los modos de realización descritos con respecto a la unidad de remuestreo 90 de la FIG. 2A. En algunos modos de realización, la unidad de interpolación 92 está configurada para interpolar una capa y reorganizar, redefinir, modificar o ajustar uno o más fragmentos para cumplir con un conjunto de reglas de límite de fragmento y/o reglas de escaneo de trama. En algunos casos, la unidad de interpolación 92 puede ser una unidad de remuestreo configurada para interpolar y/o diezmar una capa de una trama de vídeo recibida.
[119] La unidad de interpolación 92 puede estar configurada para recibir una imagen o trama (o información de imagen asociada a la imagen) de la memoria intermedia de imágenes descodificadas 160 del descodificador de capa inferior (por ejemplo, el descodificador de vídeo 30A) y para interpolar la imagen (o la información de imagen recibida). Esta imagen interpolada puede entonces proporcionarse a la unidad de procesamiento de predicción 152 de un descodificador de capa superior (por ejemplo, el descodificador de vídeo 30B) configurado para descodificar una imagen en la misma unidad de acceso que el descodificador de capa inferior. En algunos casos, el descodificador de capa superior es una capa eliminada del descodificador de capa inferior. En otros casos, puede haber uno o más descodificadores de capa superior entre el descodificador de capa 0 y el descodificador de capa 1 de la FIG. 3B.
[120] En algunos casos, la unidad de interpolación 92 se puede omitir o anular. En dichos casos, la imagen de la memoria intermedia de imágenes descodificadas 160 del descodificador de vídeo 30A se puede proporcionar directamente, o al menos sin proporcionarse a la unidad de interpolación 92, a la unidad de procesamiento de predicción 152 del descodificador de vídeo 30B. Por ejemplo, si los datos de vídeo proporcionados al descodificador de vídeo 30B y la imagen de referencia de la memoria intermedia de imágenes descodificadas 160 del descodificador de vídeo 30A son del mismo tamaño o resolución, la imagen de referencia puede proporcionarse al descodificador de vídeo 30B sin interpolación. Además, en algunos modos de realización, la unidad de interpolación 92 puede ser una unidad de remuestreo 90 configurada para interpolar o diezmar la imagen de referencia recibida de la memoria intermedia de imágenes descodificadas 160 del descodificador de vídeo 30A.
[121] Como se ilustra en la FIG. 3B, el descodificador de vídeo 33 puede incluir, además, un demultiplexor (o demux) 99. El demultiplexor 99 puede dividir un flujo de bits de vídeo codificado en múltiples flujos de bits con cada flujo de bits emitido por el demultiplexor 99 que se proporciona a un descodificador de vídeo diferente 30A y 30B. Los múltiples flujos de bits pueden crearse al recibir un flujo de bits y cada uno de los descodificadores de vídeo 30A y 30B recibe una porción del flujo de bits en un momento determinado. Mientras que en algunos casos los bits del flujo de bits recibidos en el demultiplexor 99 pueden alternarse un bit a la vez entre cada uno de los descodificadores de vídeo (por ejemplo, los descodificadores de vídeo 30A y 30B en el ejemplo de la FIG. 3B), en muchos casos el flujo de bits se divide de manera diferente. Por ejemplo, el flujo de bits se puede dividir alternando qué descodificador de vídeo recibe el flujo de bits un bloque a la vez. En otro ejemplo, el flujo de bits puede dividirse por una proporción de bloques diferente a 1:1 a cada uno de los descodificadores de vídeo 30A y 30B. Por ejemplo, pueden proporcionarse dos bloques al descodificador de vídeo 30B por cada bloque proporcionado al descodificador de vídeo 30A. En algunos modos de realización, la división del flujo de bits por el demultiplexor 99 puede preprogramarse. En otros modos de realización, el demultiplexor 99 puede dividir el flujo de bits en base a una señal de control recibida desde un sistema externo al descodificador de vídeo 33, tal como desde un procesador en un dispositivo de destino que incluye el dispositivo de destino 14. La señal de control puede generarse en función de la resolución o velocidad de bits de un vídeo desde la interfaz de entrada 28, en base al ancho de banda del enlace 16, en base a una suscripción asociada a un usuario (por ejemplo, una suscripción de pago frente a una suscripción gratuita) o en base a cualquier otro factor para determinar una resolución obtenible por el descodificador de vídeo 33.
Imágenes de punto de acceso intraaleatorio (IRAP)
5
10
15
20
25
30
35
40
45
50
55
60
65
[122] Algunos esquemas de codificación de vídeo pueden proporcionar diversos puntos de acceso aleatorios en todo el flujo de bits de manera que el flujo de bits puede descodificarse comenzando desde cualquiera de esos puntos de acceso aleatorios sin necesidad de descodificar ninguna imagen que preceda esos puntos de acceso aleatorios en el flujo de bits. En dichos esquemas de codificación de vídeo, todas las imágenes que siguen a un punto de acceso aleatorio en orden de descodificación, excepto las imágenes destacadas omitidas de acceso aleatorio (RASL), pueden descodificarse correctamente sin usar ninguna imagen que preceda al punto de acceso aleatorio. Por ejemplo, incluso si una parte del flujo de bits se pierde durante la transmisión o durante la descodificación, un descodificador puede reanudar la descodificación del flujo de bits comenzando desde el próximo punto de acceso aleatorio. La compatibilidad con el acceso aleatorio puede facilitar, por ejemplo, servicios dinámicos de transmisión, operaciones de búsqueda, cambio de canal, etc.
[123] En algunos esquemas de codificación, dichos puntos de acceso aleatorio pueden proporcionarse mediante imágenes que se denominan imágenes de punto de acceso intraaleatorias (IRAP). Por ejemplo, un punto de acceso aleatorio asociado con una imagen IRAP de capa de mejora en una capa de mejora ("capaA") que está contenida en una unidad de acceso ("auA") puede proporcionar acceso aleatorio específico de capa tal que para cada capa de referencia/mejora ("capaB") de la capaA (por ejemplo, una capa de referencia que es una capa que se usa para predecir la capaA) que tiene un punto de acceso aleatorio asociado con una imagen contenida en una unidad de acceso ("auB") que está en la capaB y precede a la auA en orden de descodificación (o un punto de acceso aleatorio contenido en la auA), las imágenes en la capaA que siguen a la auA en el orden de descodificación (incluidas las imágenes ubicadas en la auA), se pueden descodificar correctamente sin necesidad de descodificar ninguna imagen en la capaA que preceda a la auA.
[124] Las imágenes IRAP pueden codificarse usando la intrapredicción (por ejemplo, codificada sin hacer referencia a otras imágenes) y/o la predicción entre capas, y pueden incluir, por ejemplo, imágenes instantáneas de actualización del descodificador (IDR), imágenes de acceso aleatorio limpio (CRA) e imágenes de acceso de enlace roto (BLA). Cuando hay una imagen IDR en el flujo de bits, todas las imágenes que preceden a la imagen IDR en orden de descodificación no se utilizan para la predicción mediante las imágenes que siguen a la imagen IDR. Cuando hay una imagen de CRA en el flujo de bits, las imágenes que siguen a la imagen de CRA pueden o no usar imágenes que preceden a la imagen de CRA en orden de descodificación para la predicción. Dichas imágenes que siguen a la imagen de CRA en orden de descodificación, pero usan imágenes que preceden a la imagen de CRA en el orden de descodificación, pueden denominarse imágenes RASL. Otro tipo de imagen que puede seguir a una imagen de IRAP en el orden de descodificación y que preceden a la imagen de IRAP en el orden de salida es una imagen destacada descodificable de acceso aleatorio (RADL), que puede no contener referencias a ninguna imagen que preceda a la imagen de IRAP en el orden de descodificación. Las imágenes RASL pueden ser descartadas por el descodificador si las imágenes que preceden a la imagen de CRA no están disponibles. Una imagen de bLa indica al descodificador que las imágenes que preceden a la imagen de BLA pueden no estar disponibles para el descodificador (por ejemplo, porque dos flujos de bits están unidos entre sí y la imagen de BLA es la primera imagen del segundo flujo de bits en el orden de descodificación). Una unidad de acceso (por ejemplo, un grupo de imágenes que consisten en todas las imágenes codificadas asociadas con el mismo tiempo de salida en las múltiples capas) que contiene una imagen de capa base (por ejemplo, que tiene un valor de identificador (ID) de capa de 0) que es una imagen de IRAP se puede denominar una unidad de acceso de IRAP.
Mensajes SEI
[125] Algunos esquemas de codificación de vídeo pueden incluir mensajes SEI. Un mensaje SEI puede comprender información adicional que puede insertarse en el flujo de bits para mejorar los datos o el uso de imágenes codificadas dentro del flujo de bits. Sin embargo, como el mensaje SEI es opcional, el mensaje SEI no contiene ninguna información que sea necesaria para descodificar las imágenes codificadas del flujo de bits. Por ejemplo, el mensaje SEI puede comprender metadatos, información que puede ayudar en la descodificación o pistas sobre cómo mostrar mejor los datos en el flujo de bits. Los mensajes SEI pueden ser mensajes de tipo prefijo o sufijo.
[126] En los esquemas de codificación convencionales de una sola capa (por ejemplo, HEVC), cada unidad de acceso contiene de forma exclusiva una sola imagen para la capa única. Dado que cada unidad de acceso de los esquemas de codificación de una sola capa contiene una sola imagen, los términos "unidad de acceso" e "imagen" se pudieron usar indistintamente en el contexto de esquemas de codificación de una sola capa. Por ejemplo, con respecto a la utilización y aplicación de mensajes SEI, estaba claro que un mensaje SEI asociado con una unidad de acceso también estaba asociado con la imagen contenida dentro de la unidad de acceso.
[127] Sin embargo, las unidades de acceso de esquemas de codificación de múltiples capas (por ejemplo, SHVC/MV-HEVC) pueden incluir una imagen separada para cada capa del flujo de bits. En otras palabras, en un flujo de bits de múltiples capas, una única unidad de acceso puede contener (es decir, incluir o comprender) una pluralidad de imágenes que tienen el mismo valor POC. Dado que en esquemas de codificación convencionales de una sola capa los mensajes SEI están asociados con la imagen única de la unidad de acceso, estos esquemas de codificación de una sola capa pueden no tener la semántica requerida para definir cómo un
5
10
15
20
25
30
35
40
45
50
55
60
65
mensaje SEI se aplica con precisión a más de un punto de operación o capa de un esquema de codificación de múltiples capas. Esta ambigüedad relacionada con los mensajes SEI en esquemas de codificación de múltiples capas permite implementaciones de codificadores o descodificadores de vídeo para asociar los mensajes SEI con las imágenes de entre la posible pluralidad de imágenes dentro de una unidad de acceso de un esquema de codificación de múltiples capas sin restricción. En consecuencia, las asociaciones de los mensajes SEI con imágenes, puntos de operación o capas en esquemas de codificación de múltiples capas pueden no ser siempre correctos o apropiados. En consecuencia, el comportamiento de estos codificadores y descodificadores de vídeo con respecto a los mensajes SEI que se aplican a más de un punto de operación, capa y/o imagen no es predecible y puede variar entre diferentes implementaciones de modo que estas diferentes implementaciones pueden no codificar/descodificar una secuencia de vídeo consistentemente. Por ejemplo, en algunos casos puede no estar claro si el mensaje SEI debe asociarse con una imagen, un subconjunto de imágenes o todas las imágenes de la unidad de acceso correspondiente, y el mensaje SEI manejado sin la semántica apropiada puede ser asociado incorrectamente. Para abordar este problema, CHEN Y OTROS hizo una propuesta en " MV- HEVC/SHVC HLS: On multimode bitstream extraction”, [“MV-HEVC/SHVC HLS: Sobre la extracción de flujos de bits multimodo"], 6. REUNIÓN JCT-3V; a ; GINEBRA; (EQUIPO DE COLABORACIÓN CONJUNTA EN DESARROLLO DE EXTENSIONES DE CODIFICACIÓN DE VÍDEO EN 3D DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16); URL:
HTTP://PHENIX.INT-EVRY.FR/JCT2/, no. JCT3V-F0091, 15 de octubre de 2013. Propusieron emplear una semántica de mensaje SEI anidada escalable para proporcionar un mecanismo para asociar mensajes SEI con subconjuntos de flujos de bits correspondientes a varios puntos de operación de un flujo de bits MV-HEVC o SHVC.
[128] De forma alternativa, o adicionalmente, los mensajes SEI que no están anidados se pueden aplicar al punto de operación que tiene el identificador temporal (Tid) que es el Tid máximo para el flujo de bits y contiene todas las capas del flujo de bits.
[129] Por consiguiente, un objeto de la presente divulgación es clarificar la semántica de los mensajes SEI de modo que un alcance del mensaje SEI pueda asociarse sin ambigüedades con una o más imágenes de una unidad de acceso dentro de un esquema de codificación de múltiples capas cuando se aplica el mensaje SEI a más de un punto de operación o capa. Adicionalmente, un objetivo de la presente divulgación es clarificar los alcances de persistencia de los mensajes SEI, ya que los alcances de persistencia de los mensajes SEI que usan la semántica de los mensajes SEI de los esquemas de codificación de capa única pueden no especificarse claramente en cuanto a qué imagen o imágenes de la posible pluralidad de imágenes dentro de la unidad de acceso se aplica un alcance de persistencia particular.
[130] De acuerdo con la presente divulgación, el mensaje SEI implementado en un esquema de codificación de múltiples capas puede asociarse y/o aplicarse a una o más imágenes de una unidad de acceso, uno o más puntos de operación y/o una o más capas. Cuando el mensaje SEI se aplica a más de un punto de operación o capa, la semántica de los mensajes SEI se puede modificar o clarificar de manera que los mensajes SEI puedan asociarse de forma no ambigua con una imagen o imágenes específicas de una unidad de acceso, punto o puntos de operación, y/o capa o capas dentro del esquema de codificación de múltiples capas. Al clarificar la semántica de acuerdo con la presente divulgación, el comportamiento de los codificadores/descodificadores de vídeo es más predecible y, por lo tanto, el tratamiento de los mensajes SEI entre diferentes implementaciones de estos codificadores/descodificadores de vídeo es más consistente que en los esquemas de codificación de múltiples capas que utilizan la semántica de los esquemas de codificación de una sola capa. Las técnicas/esquemas de la presente divulgación pueden ser compatibles "hacia atrás" o compatibles "hacia abajo" de modo que las técnicas/esquemas de la presente divulgación pueden ser empleados por dispositivos heredados que emplean esquemas de codificación de vídeo de una sola capa. Además, las técnicas/esquemas de la presente divulgación pueden utilizarse con diversos mensajes SEI que pueden aplicarse a una o más imágenes, uno o más puntos de operación, y/o una o más capas dentro de la unidad de acceso de múltiples capas.
[131] Los mensajes SEI en esquemas de codificación de múltiples capas pueden aplicarse a unidades de acceso de manera diferente dependiendo del tipo de mensaje SEI y a qué se aplica el mensaje SEI. Por ejemplo, los mensajes SEI pueden configurarse para aplicarse a una capa de un conjunto de capas o a un punto de operación de un conjunto de puntos de operación. Un punto de operación puede comprender una lista de capas en un intervalo de uno o más ID temporales específicos para esas capas. Por ejemplo, el punto de operación puede comprender una lista de tres capas (capas 0, 1 y 2) en un intervalo de 2 ID temporales (ID de 0 y 1), y cada una de las tres capas se considerará (codificada) en cada uno de los ID temporales 0 y 1. En consecuencia, el punto de operación puede comprender un subconjunto de flujos de bits de todo el flujo de bits de la información de vídeo a descodificar/codificar.
[132] Por ejemplo, cuando el mensaje SEI para una unidad de acceso de un flujo de bits de múltiples capas es uno de un mensaje SEI de período de almacenamiento temporal, un mensaje SEI de temporización de imagen y un mensaje SEI de información de la unidad de descodificación y el mensaje SEI se aplica a un conjunto de puntos de operación (por ejemplo, cuando el mensaje SEI se aplica a un conjunto de puntos de operación en lugar de a un conjunto de capas), entonces la semántica del mensaje SEI se puede aplicar
5
10
15
20
25
30
35
40
45
50
55
60
65
independientemente a cada punto de operación del conjunto de puntos de operación al que se aplica el mensaje SEI. Esto significa que cada una de la semántica del mensaje SEI se puede aplicar a cada uno de los puntos de operación del conjunto de puntos de operación de manera independiente, y no se puede dividir entre un subconjunto de puntos de operación del conjunto de puntos de operación. Por lo tanto, la semántica de uno de los mensajes sEi del periodo de almacenamiento temporal, de temporización de imagen y de información de la unidad de descodificación puede aplicarse cada uno independientemente a cada una de las capas de la lista de capas hasta el identificador temporal máximo para cada uno de los puntos de operación a los que el mensaje SEI se aplica. Por ejemplo, si un primer mensaje SEI se aplica a un conjunto de puntos de operación y tiene un valor tipoCargaÚtil igual a 0, 1 o 130, entonces la semántica del primer mensaje SEI se aplica independientemente a cada punto de operación del conjunto de puntos de operación indicados en el primer mensaje SEI. Adicionalmente, una o más semánticas del mensaje SEI pueden redefinirse para aplicarse a un flujo de bits apropiado de cada punto de operación del conjunto de puntos de operación.
[133] La aplicación de modo independiente del mensaje SEI a los puntos de operación con los que está asociado el mensaje SEI significa que si el mensaje SEI se aplica a tres puntos de operación 0, 1 y 2 (OP 0, 1 y 2), se aplica la semántica del mensaje SEI para cada OP 0, OP 1 y OP 2 independientemente. Cuando se modifica o clarifica la semántica de los mensajes SEI como se divulga en el presente documento, las referencias en la norma SHVC/MV-HEVC pueden modificarse y/o clarificarse de manera similar. Por ejemplo, cuando el mensaje SEI se aplica independientemente a cada punto de operación en el conjunto de puntos de operación, como se describió anteriormente, la frase "el mensaje SEI actual" en la norma SHVC/MV-HEVC debe leerse como uno de los mensajes SEI disponibles tales que todo lo que se aplica a ese mensaje SEI se aplica al mensaje SEI actual. De manera similar, la frase "punto de operación actual" en MV-HEVC puede leerse para indicar uno de los puntos de operación disponibles y todo lo que se aplica a ese punto de operación de los puntos de operación disponibles se aplica al punto de operación actual. Los términos "unidad de acceso" y "secuencia de vídeo codificada (CVS)" pueden aplicarse a la unidad de acceso definida por el punto de operación actual (es decir, FlujodebitsADescodificar). Por ejemplo, si un flujo de bits tiene cuatro capas (capas 0, 1, 2 y 3) pero el punto de operación actual solo contiene tres capas (capas 0, 1 y 3), entonces la "unidad de acceso" se refiere a la unidad de acceso que contiene las imágenes del punto de operación actual, en otras palabras, las imágenes de las capas 0, 1 y 3. Esto se debe a que cuando se realiza la descodificación en una operación particular, las capas que no están incluidas en el conjunto de capas de ese punto de operación no se incluirán en FlujodebitsADescodificar.
[134] La FIG. 4A es un diagrama de flujo 400 que ilustra un procedimiento para asociar la semántica de un mensaje SEI independientemente con cada punto de operación de un conjunto de puntos de operación o cada capa de un conjunto de capas, de acuerdo con un modo de realización a modo de ejemplo. Las etapas o bloques del diagrama de flujo 400 pueden ser realizados por cualquiera de los controladores, procesadores u otros componentes de los sistemas de codificación y descodificación descritos anteriormente en relación con las Figs. 1-3B.
[135] En el bloque 410, el procedimiento comienza determinando si un mensaje SEI actual es un mensaje SEI no anidado que tiene un tipo de carga útil de 0, 1 o 130 (que indica que el mensaje SEI no anidado es un mensaje SEI de período de almacenamiento temporal, de temporización de imagen o de información de la unidad de descodificación, respectivamente). Si el mensaje SEI es un mensaje SEI no anidado que tiene el tipo de carga útil de 0, 1 o 130 (por ejemplo, si el mensaje SEI es un mensaje SEI de período de almacenamiento temporal, de temporización de imagen o de información de la unidad de descodificación no anidado), entonces el procedimiento avanza hasta el bloque 412. Sin embargo, si el mensaje SEI no es un mensaje SEI no anidado que tiene un tipo de carga útil de 0, 1 o 130 (por ejemplo, un mensaje SEI de período de almacenamiento temporal, temporización de imagen o de información de la unidad de descodificación no anidado), entonces el procedimiento avanza al bloque 414. En el bloque 412, el procedimiento aplica la semántica del mensaje SEI al punto de operación que tiene el Tid que es un Tid máximo para el flujo de bits y contiene todas las capas del flujo de bits.
[136] En el bloque 414, el procedimiento determina si el mensaje SEI es uno de un mensaje de período de memoria temporal, un mensaje SEI de temporización de imagen o un mensaje SEI de información de la unidad de descodificación. Esta determinación se realiza identificando el valor de un campo (o semántica) del mensaje SEI. En algunos modos de realización, este campo puede ser el campo tipoCargaÚtil. En algunos modos de realización, el campo tipoCargaÚtil puede ser un número entero u otro campo de tipo de datos, en el que el valor almacenado en el campo indica el tipo de mensaje SEI. Por ejemplo, cuando el valor del campo tipoCargaÚtil del mensaje SEI es igual a 0, 1 o 130, entonces el mensaje SEI puede ser los mensajes SEI de período de almacenamiento temporal, de temporización de imagen o de información de la unidad de descodificación, respectivamente. En algunos modos de realización, los mensajes SEI del período de almacenamiento temporal, de temporización de imagen y de la unidad de descodificación pueden aplicarse a un conjunto de puntos de operación, comprendiendo el conjunto uno o más puntos de operación. Si el campo tipoCargaÚtil tiene un valor igual a cualquier valor excepto {0, 1, 130}, entonces el mensaje SEI puede aplicarse a uno o más puntos de operación o capas y puede no ser uno de un mensaje SEI de período de almacenamiento temporal, de temporización de imagen y de información de unidad de descodificación. En consecuencia, en el bloque 414, si
5
10
15
20
25
30
35
40
45
50
55
60
65
el tipoCargaÚtil del mensaje SEI es igual a uno de {0, 1, 130}, entonces el procedimiento procede al bloque 418. Si el tipoCargaÚtil no es igual a uno de {0, 1, 130}, entonces el procedimiento procede al bloque 416. En el bloque 416, la semántica del mensaje SEI que no tiene un tipoCargaÚtil de uno de {0, 1, 130} se aplica cada uno independientemente a cada capa de un conjunto de capas a las que se aplica el mensaje SEI.
[137] En el bloque 418, el procedimiento determina si el mensaje SEI se aplica a puntos de operación o a capas. Si el mensaje SEI se aplica a puntos de operación, entonces el procedimiento avanza al bloque 420; si el mensaje SEI se aplica a capas, entonces el procedimiento avanza al bloque 422. En el bloque 420, la semántica del mensaje SEI se aplica independientemente a todos los puntos de operación a los que se aplica el mensaje SEI. Por lo tanto, si el mensaje SEI se identifica como aplicable a dos puntos de operación, entonces cada una de las semánticas del mensaje SEI se aplica independientemente a cada uno de los dos puntos de operación (y a las capas correspondientes). En el bloque 422, cuando el mensaje SEI se aplica a las capas (por ejemplo, a un solo punto de operación), la semántica del mensaje SEI puede aplicarse al conjunto de capas de acuerdo con el mensaje SEI y/o la semántica. Por ejemplo, cada mensaje SEI puede comprender un campo (o semántica) que indica a qué capa o capas se aplica el mensaje SEI. La semántica del mensaje SEI se puede aplicar de acuerdo con esas indicaciones.
[138] En algunos modos de realización, la presencia y asociación de los mensajes SEI particulares puede depender de diversas condiciones. Por ejemplo, como se describió anteriormente, en algunos modos de realización, la sintaxis y la semántica de un mensaje SEI pueden determinar las asociaciones de uno o más mensajes SEI. En algunos modos de realización, la información encontrada en una cabecera del fragmento puede modificar o clarificar la presencia de mensajes SEI. Por ejemplo, la presencia del mensaje SEI del período de almacenamiento temporal para un punto de operación puede depender de la unidad de acceso a la que se aplica el mensaje SEI de período de almacenamiento temporal. Si la unidad de acceso tiene al menos una imagen que no puede descartarse intencionadamente sin afectar la capacidad de descodificar una o más imágenes diferentes, entonces la unidad de acceso puede tener un mensaje SEI de período de almacenamiento temporal asociado. En tal caso, el campo indicador_descartable (un campo en la cabecera del fragmento) que indica la descartabilidad de la imagen asociada puede ser igual a "1", lo que indica que la imagen asociada no es descartable sin afectar a la capacidad de descodificación de otra imagen. De forma alternativa, cuando el campo indicador_descartable contiene un valor de "0", la imagen asociada puede descartarse sin afectar a la capacidad de descodificar otra imagen. Otros mensajes SEI pueden tener condiciones similares o diferentes sobre la presencia del mensaje SEI en asociación con una unidad de acceso, imagen, punto de operación o capa determinados.
[139] La FIG. 4B es un diagrama de bloques que ilustra la asociación entre un mensaje SEI que se aplica a puntos de operación de acuerdo con un modo de realización de la presente divulgación. El flujo de bits de múltiples capas 450 (también referido simplemente como flujo de bits 450) de la FIG. 4B incluye una capa base 470A (BL 470A que tiene un identificador "ID" igual a "0"), una primera capa de mejora 470B (El 470B que tiene un identificador "ID" igual a "1") y una segunda capa de mejora 470C (EL 470C que tiene un identificador "ID" igual a "2"). Aunque el flujo de bits 450 de la FIG. 4B se ilustra como que contiene la capa base BL 470A y las capas de mejora EL 470B y 470C, el flujo de bits 450 puede incluir más o menos capas de mejora. En algunos modos de realización, las capas de mejora se pueden codificar basándose en la codificación de la capa de base 470A. En algunos modos de realización, las capas de mejora pueden comprender diferentes vistas a las de la capa base 470A. Un ejemplo de un flujo de bits multivista es un flujo de bits de vídeo tridimensional (3D) que incluye una capa de vista de ojo izquierdo y una capa de vista de ojo derecho.
[140] Haciendo de nuevo referencia a la FIG. 4B, el flujo de bits 450 incluye una pluralidad de puntos de operación (OP) 452 a 460. Cada punto de operación corresponde a un momento temporal (que tiene un ID temporal) para las capas BL 470A y EL 470B y 470C. En algunos modos de realización, uno o más de los puntos de operación representados pueden corresponder a un intervalo de momentos temporales, por ejemplo, el punto de operación 454 que comprende los identificadores temporales 0 y 1. En algunos modos de realización, cada una de las capas puede comprender una o más imágenes en el identificador temporal determinado del punto de operación correspondiente. En algunos modos de realización, un punto de operación puede comprender más de un identificador temporal, tal como un intervalo de puntos temporales, aunque no se muestra en esta figura. En el modo de realización de la FIG. 4B, un mensaje sEi 451 representa un mensaje SEI que se aplica a un conjunto de uno o más puntos de operación (por ejemplo, cuando el mensaje SEI comprende uno de los mensajes SEI de periodo de almacenamiento temporal, de temporización de la imagen y de información de la unidad de descodificación). Como se muestra mediante la representación del mensaje SEI 451 junto con la descripción anterior, la semántica del mensaje SEI 451 se puede aplicar independientemente a cada punto de operación del conjunto de puntos de operación a los que se aplica el mensaje SEI 451, es decir, los puntos de operación OP 452 y OP 454. Por lo tanto, como se muestra en la FIG. 4B, el mensaje SEI 451 se aplica independientemente a cada uno del punto de operación OP 452, como se indica mediante la flecha 461, y el punto de operación OP 454, como se indica mediante la flecha 462.
[141] Como se describió anteriormente, el mensaje SEI puede aplicarse a una o más capas de un conjunto de capas (por ejemplo, en lugar de uno o más puntos de operación de un conjunto de uno o más puntos de
5
10
15
20
25
30
35
40
45
50
55
60
65
operación). En consecuencia, la semántica del mensaje SEI puede aplicarse a cada capa del conjunto de capas que tiene un identificador que corresponde a un valor de un campo objetivo del mensaje SEI. Por ejemplo, si un segundo mensaje SEI se aplica a un conjunto de una o más capas, entonces la semántica del segundo mensaje SEI puede aplicarse independientemente a cada capa que tenga un valor identificador igual al valor del campo objetivo del segundo mensaje SEI, en el que cada capa pertenece al conjunto de una o más capas.
[142] La FIG. 4C es un diagrama de bloques que ilustra la asociación entre un mensaje SEI que se aplica a capas y a una pluralidad de imágenes de acuerdo con un modo de realización de la presente divulgación. El flujo de bits de múltiples capas 480 (también denominado simplemente flujo de bits 480) de la FIG. 4C es similar al de la FIG. 4B excepto que la FIG. 4C comprende imágenes y unidades de acceso en lugar de puntos de operación asociados con cada capa, mientras que la FIG. 4B comprende identificadores temporales asociados con cada capa. En consecuencia, cada AU 482 a 488 incluye una imagen de cada capa. Por ejemplo, AU 482 incluye la imagen 472A de BL 470A, la imagen 472B de EL 470B y la imagen 472C de EL 470C.
[143] Además, como se muestra en la FIG. 4C son dos mensajes SEI. Los dos mensajes SEI pueden ser mensajes SEI de punto de recuperación y, por lo tanto, pueden tener un valor de tipoCargaÚtil de "6". Por lo tanto, los dos mensajes SEI de punto de recuperación pueden aplicarse al menos a una capa de un conjunto de capas, y los dos mensajes SEI de punto de recuperación pueden incluir cada uno una semántica identificadorCapaObjetivo que comprende los valores de "1" y "2", respectivamente. Por lo tanto, los mensajes SEI de punto de recuperación pueden aplicarse respectivamente a las capas particulares que tienen el valor de id_capa_nuh de "1" y "2". En el modo de realización ilustrado en la FIG. 4C, la imagen 472C puede ser indicada como la imagen del punto de recuperación del mensaje SEI del punto de recuperación que tiene el valor identificadorCapaObjetivo "2" mientras que la imagen 476B puede ser indicada como la imagen del punto de recuperación del mensaje SEI del punto de recuperación que tiene el valor identificadorCapaObjetivo "1".
[144] En algunos modos de realización, cuando el mensaje SEI es uno de un mensaje SEI de rectángulo de barrido panorámico, de inicio de segmento de refinamiento progresivo, de características del grano de la película, de información de correlación de tonos, de disposición de empaquetado de trama y de orientación de visualización, la semántica del mensaje SEI relacionado con el alcance de persistencia se puede clarificar para que sea específico de la capa. Por ejemplo, los mensajes de SEI enumerados anteriormente pueden incluir una sintaxis que especifique la persistencia de la capa actual. La sintaxis para cada mensaje SEI listado puede incluir un valor indicador_persistencia (es decir, un indicador_persistencia_características_grano_película o indicador_persistencia_correlación_tonos). La sintaxis del indicador de persistencia puede indicar la persistencia para la capa actual hasta que comience una CVS nueva, hasta que termine el flujo de bits actual, o hasta que otra imagen de la capa actual que tiene otro mensaje SEI del mismo tipo que se aplica a la capa actual comience a descodificarse. En consecuencia, la semántica del mensaje SEI correspondiente puede aplicarse solo para la capa actual o a una o más capas especificadas, como se indica por el mensaje SEI. Por ejemplo, con referencia a los mensajes SEI analizados anteriormente, cuando se indica que uno de los mensajes SEI se aplica a la segunda capa (por ejemplo, el valor del identificadorCapaObjetivo es 2), entonces la semántica de ese mensaje SEI (por ejemplo, un indicador_cancelación_características_grano_película y un indicador_persistencia_características_grano_película de un mensaje SEI de característica del grano de la película del mensaje SEI de características del grano de la película) puede aplicarse a la segunda capa, y así puede especificar que la semántica relacionada con la persistencia asociada se aplique a esa capa (es decir, la capa 2). Estas semánticas relacionadas con la persistencia pueden aplicarse hasta que comience una CVS nueva, el flujo de bits finalice, u otra imagen en la capa 2 tenga un mensaje SEI de características del grano de la película aplicable a la capa 2 y que tenga un mayor valor de POC que comience a descodificarse.
[145] En algunos modos de realización, un mensaje SEI de índice cero de subcapa temporal puede proporcionar información que se puede usar para ayudar a un descodificador a detectar la ausencia de imágenes codificadas. El mensaje SEI de índice cero de subcapa temporal puede proporcionar un índice a una imagen con Tid igual a 0, de modo que el descodificador puede saber si ve una imagen con Tid igual a 0, pero su índice tiene un espacio de una imagen anterior que tiene Tid igual a 0. El espacio generalmente ocurre si se pierde la imagen. Por lo tanto, este SEI podrá ayudar al descodificador a comprender que falta una imagen. Sin embargo, puede haber un problema cuando una imagen con Tid igual a 0 también es una imagen descartable (es decir, su indicador_descartable es igual a 0). Cuando la imagen descartable tiene Tid igual a 0 y es descartada (eliminada) del flujo de bits (por una entidad, por ejemplo, enrutador inteligente) antes de llegar al descodificador, el descodificador puede pensar erróneamente que falta una imagen cuando en realidad no se perdió, sino que fue intencionalmente eliminada.
[146] El mensaje SEI de índice cero de la subcapa temporal puede incluir un elemento sintáctico índice_cero_subcapa_temporal que indica el índice cero de la subcapa temporal para la imagen actual cuando la imagen actual tiene un identificador temporal (Tid) igual a cero. De forma alternativa, el elemento sintáctico índice_cero_subcapa_temporal puede indicar el índice cero de la subcapa temporal para la imagen anterior en la capa actual en orden de descodificación con un Tid igual a 0. En algunos modos de realización, la semántica del mensaje SEI de índice cero de subcapa temporal puede clarificarse para considerar un valor de un elemento indicador_descartable de la cabecera del fragmento, por ejemplo, de una imagen. Por ejemplo, el elemento
5
10
15
20
25
30
35
40
45
50
55
60
65
índice_cero_subcapa_temporal puede estar restringido de manera que el valor del elemento solo se incrementa cuando la imagen actual es una imagen de anclaje que no puede descartarse intencionalmente sin afectar la capacidad de descodificar otra imagen. Por ejemplo, si la imagen actual tiene un Tid mayor que 0 o el valor de indicador_descartable de la imagen actual es 0, lo que indica que la imagen actual es descartable, entonces el valor índice_cero_subcapa_temporal no se incrementará. En consecuencia, cuando se modifica o asigna un valor al elemento índice_cero_subcapa_temporal, la semántica del mensaje SEI de índice cero de la subcapa temporal se modifica para considerar el valor del elemento indicador_descartable de la cabecera de división para las imágenes asociadas.
Conjuntos de parámetros de secuencia (SPS)
[147] Algunos esquemas de codificación de vídeo pueden incluir, además, conjuntos de parámetros tales como un SPS. Un conjunto de parámetros puede llevar ciertos parámetros de control comunes al descodificador ya que pertenecen a uno o más fragmentos codificados. Tener los parámetros contenidos dentro del conjunto de parámetros transmitidos independientemente de los fragmentos codificados puede mejorar la eficiencia, ya que la información que se aplica a los múltiples fragmentos codificados puede enviarse una sola vez en lugar de enviarse individualmente para cada fragmento codificado. En algunos modos de realización, el SPS puede comprender uno o más parámetros que son comunes a una secuencia de vídeo. Por ejemplo, el SPS puede comprender información con respecto al tamaño de una trama de vídeo o restricciones del descodificador, tal como el número máximo de tramas de referencia. Además, cada SPS puede comprender un identificador único identificado dentro del SPS. El SPS puede permanecer "inactivo" hasta que se active mediante un PPS que esté activado, efectivamente, una unidad de acceso de actualización del descodificador instantánea (IDR). El SPS puede permanecer activo hasta que se complete el procesamiento de la secuencia de vídeo codificada a la que se aplica el SPS.
[148] En los esquemas de codificación convencionales de una sola capa (por ejemplo, HEVC), una secuencia de vídeo contiene una secuencia de unidades de acceso que contienen cada una, una sola imagen. Dado que cada unidad de acceso de la secuencia de vídeo contiene una sola imagen, se sabe que el SPS asociado con la secuencia de vídeo está asociado con las imágenes individuales dentro de las unidades de acceso. Por ejemplo, se envía un SPS0 al comienzo de una secuencia de vídeo. La secuencia de vídeo puede comprender un iDR0 que active SPS0, seguido de múltiples fragmentos. El descodificador puede usar los parámetros de SPS0 hasta que un IDR1 posterior active un SPS1 comunicado posteriormente. Por lo tanto, el descodificador utiliza los parámetros de SPS0 para descodificar los múltiples fragmentos entre el IDR0 y el IDR1. Además, en los esquemas de una sola capa convencionales, solo se puede señalizar un SPS en un conjunto de parámetros activo.
[149] Sin embargo, como se analizó anteriormente, las unidades de acceso de los esquemas de codificación de múltiples capas pueden incluir una imagen separada para cada capa del flujo de bits. En otras palabras, como también se analizó anteriormente, en un flujo de bits de múltiples capas, una única unidad de acceso puede contener (es decir, incluir o comprender) una pluralidad de imágenes en una pluralidad de capas. Dado que en los esquemas de codificación convencionales de una sola capa los SPS están asociados con la única capa que tiene la imagen individual, estos esquemas de codificación de una sola capa pueden no tener la semántica requerida para definir cómo uno o más SPS se relacionan con precisión con una o más capas entre la pluralidad posible de capas dentro de un esquema de codificación de múltiples capas. Por lo tanto, un problema o ambigüedad puede desarrollarse cuando el número de SPS es menor que el número de capas en el flujo de bits o cuando el número de SPS es mayor que el número de capas en el flujo de bits, ya que la asociación de SPS a las capas puede ser poco clara.
[150] Esta ambigüedad relacionada con el SPS en esquemas convencionales permite implementaciones de codificadores o descodificadores de vídeo para asociar múltiples SPS con una capa de entre la posible pluralidad de capas dentro de una unidad de acceso de un esquema de codificación de múltiples capas sin restricción. En consecuencia, el comportamiento de estos codificadores y descodificadores de vídeo con respecto al SPS múltiple no es predecible y puede variar entre diferentes implementaciones de manera que estas diferentes implementaciones pueden no codificar/descodificar una secuencia de vídeo de forma consistente. Como tal, otro objeto de la presente divulgación es introducir un mecanismo para correlacionar o señalizar cómo múltiples SPS deben asociarse de forma no ambigua con múltiples capas en un conjunto de parámetros activos del mensaje SEI dentro de un esquema de codificación de múltiples capas. Además, las restricciones en el número de SPS que pueden señalizarse en un mensaje SEI de conjunto de parámetros activos se pueden flexibilizar para permitir que se señale más de un SPS en un único mensaje SEI de conjunto de parámetros activos.
[151] El mecanismo para señalizar la manera en la que los SPS múltiples deberían asociarse sin ambigüedades con múltiples capas mediante un mensaje SEI de conjunto de parámetros activos puede indicar la capa a la que se debe aplicar cada SPS. El mecanismo puede asignar una capa específica a cada SPS específico de modo que se entienda que el SPS está asociado con la capa específica. En algunos modos de realización, el mecanismo puede asignar un SPS específico a cada capa específica de modo que se entiende que la capa está asociada con el SPS específico. Dentro del mecanismo, o además del mecanismo, las
5
10
15
20
25
30
35
40
45
50
55
60
65
restricciones existentes que limitan el número de SPS señalados en un mensaje SEI de conjunto de parámetros activos pueden eliminarse para permitir que múltiples SPS sean señalados por un solo mensaje SEI de conjunto de parámetros activos.
[152] En algunos modos de realización, el mecanismo puede comprender instituir una asociación de bucle de manera que para cada SPS específico, se asigne una capa particular al SPS. Por ejemplo, en el mensaje SEI de conjuntos de parámetros activos analizado anteriormente, se puede agregar una nueva semántica que representa un campo que incluye un valor que indica la capa a la que se aplica un SPS particular. Dentro del mensaje SEI de conjuntos de parámetros activos, a un primer SPS que tenga un identificador se le asignará una capa específica como se indica en la nueva semántica (es decir, id_capa_nuh_objetivo[i]). Por lo tanto, para cada SPS identificado por el mensaje SEI de conjuntos de parámetros activos, una capa particular se asignará como la capa asociada, en la forma de asociación de bucle, hasta que cada SPS tenga una capa asignada. De forma alternativa, o adicionalmente, el mensaje SEI de conjuntos de parámetros activos (o un SEI recientemente definido u otro mensaje) puede asociar cada capa de una pluralidad de capas con uno o más SPS. De forma similar a la descrita anteriormente, un bucle de asociación puede asignar a cada capa uno o más SPS específicos con una manera de asociación de bucle hasta que cada capa tenga uno o más SPS asignados.
[153] La FIG. 5 muestra una sintaxis 500 que puede usarse para comunicar la semántica del mensaje SEI de conjuntos de parámetros activos. Esta sintaxis 500 puede comunicarse en el mensaje SEI de una unidad de acceso o imagen y puede estar destinada a proporcionar la información necesaria con respecto al tipo de mensaje SEI, el tamaño del mensaje SEI y varios otros aspectos de la semántica del mensaje SEI. Aunque la actual FIG. 5 representa muchos elementos del mensaje SEI de conjuntos de parámetros activos, la sintaxis 500 puede incluir más o menos componentes que los ilustrados en la FIG. 5. Además, o de forma alternativa, se pueden usar sintaxis iguales o similares a la sintaxis 500 para comunicar la semántica del mensaje SEI para otros tipos de mensajes SEI (por ejemplo, mensajes SEI de temporización de la imagen, de información de la unidad de descodificación, de características del grano de la película, de instantáneas de imágenes y de información de la escena, entre otros). En consecuencia, no todas las semánticas (o campos) de la sintaxis 500 se pueden definir en el presente documento. Tal falta de definición no debe interpretarse como representativa de la importancia de la función. Como se muestra, la sintaxis 500 incluye un muestreo de campos (o semántica) útil para describir características destacadas de implementaciones dentro del alcance de las reivindicaciones y puede incluir uno o más campos adicionales que no se muestran o pueden incluir uno o más campos que pueden no ser utilizados en todos los modos de realización.
[154] La sintaxis 500 puede incluir la semántica tipoCargaÚtil 502 y tamañoCargaÚtil 504, al igual que todas las demás sintaxis de los mensajes SEI. El tipoCargaÚtil 502 tiene una longitud de un byte, y puede incluir valores que indican el tipo de mensaje SEI con el que está asociada la sintaxis 500. Por ejemplo, el tipoCargaÚtil 502 puede incluir un valor de 0 o 1 que indica un mensaje SEI de período de almacenamiento temporal o de temporización de imágenes. Con un tamaño de un byte, el tipoCargaÚtil 502 puede indicar uno de los 256 mensajes SEI diferentes. La sintaxis 500 incluye, además, una semántica de tamaño de carga útil 504. El tamañoCargaÚtil 504 puede ser de tamaño variable especificado en bytes y puede ser igual al número de bytes de carga útil de secuencia de bytes sin formato en la carga útil del mensaje sEi.
[155] La sintaxis 500 incluye, además, una semántica id_conjunto_parámetros_vídeo_activos 506 que tiene
una longitud de cuatro bits. El id_conjunto_parámetros_vídeo_activos 506 puede indicar un valor de identificación de un conjunto de parámetros de vídeo (VPS) al que hacen referencia las unidades asociadas con el mensaje SEI. En algunos modos de realización, el valor de id_conjunto_parámetros_vídeo_activos 506 puede estar en el intervalo de 0 a 15, inclusive. La sintaxis 500 incluye, además, una semántica indicador_cvs_autónoma 508 que tiene una longitud de un bit y un indicador_no_actualización_conjunto_parámetros 510 que tiene una longitud de un bit. El indicador_cvs_autónoma 508 indica que cada conjunto de parámetros referenciado por una unidad precede a cualquier unidad que haga referencia al conjunto de parámetros, mientras que el indicador_no_actualización_conjunto_parámetros 510 indica que no es necesario actualizar ningún conjunto de parámetros. La sintaxis 500 incluye, además, una semántica id_num_sps_menos1 512 que tiene una longitud de un tipo de datos variable e indica el número de SPS a los que se hace referencia por unidades de la unidad de acceso asociadas con el mensaje SEI de conjuntos de parámetros activos. Además, se incluye una semántica id_conjunto_parámetros_secuencia_activos[i] 514 en la sintaxis 500. El
id_conjunto_parámetros_secuencia_activos[i] 514 puede indicar el valor que identifica el SPS al que hacen referencia las unidades que tienen un id_capa_nuh en el intervalo de id_capa_nuh_objeto[i] de la unidad de acceso asociada con el mensaje SEI. Finalmente, la sintaxis 500 como se muestra puede incluir una semántica id_capa_nuh_objetivo[i] 516 que se puede configurar para especificar el identificadorCapaObjetivo asociado con el id_conjunto_parámetros_secuencia_activos[i]. El mecanismo mencionado anteriormente puede hacer un uso particular del id_conjunto_parámetros_secuencia_activos[i] y el id_capa_nuh_objetivo[i] en el bucle de asociación.
Mensajes SEI de punto de recuperación y obtenciones de POC
5
10
15
20
25
30
35
40
45
50
55
60
65
[156] En algunos esquemas de codificación de vídeo, es posible comenzar a descodificar el flujo de bits entre imágenes de IRAP. Esto puede permitir un retorno más rápido a un flujo de vídeo descodificado apropiadamente cuando, por ejemplo, una parte del flujo de bits se pierde durante la transmisión o durante la descodificación, o para un inicio más rápido de la descodificación de un vídeo transmitido en tiempo real. Sin embargo, al iniciar la descodificación de un flujo de vídeo en un punto de acceso aleatorio entre imágenes de IRAP, la transmisión del vídeo descodificado puede no tener una calidad aceptable para mostrar debido a la dependencia del proceso de descodificación en imágenes que preceden al punto de acceso aleatorio en orden de descodificación.
[157] Como se mencionó previamente, algunos esquemas de codificación de vídeo incluyen un mensaje SEI de punto de recuperación que puede ayudar a un descodificador a determinar cuándo el proceso de descodificación producirá imágenes aceptables para su visualización. Cuando el descodificador inicia un acceso aleatorio o reinicia la descodificación después de un enlace roto, el descodificador puede ser capaz de determinar cuándo las imágenes descodificadas son aceptables para mostrar en función de un mensaje SEI de punto de recuperación incluido en el flujo de bits. El mensaje SEI del punto de recuperación especifica un punto de recuperación en orden de salida de imágenes descodificadas que indica que, cuando los procesos de descodificación se inician desde la unidad de acceso que contiene el mensaje SEI del punto de recuperación, todas las imágenes descodificadas, descodificadas en el punto de recuperación o posteriormente en el orden de salida pueden ser correctas o aproximadamente correctas en contenido. Dichos mensajes SEI de punto de recuperación no requieren que las imágenes descodificadas producidas en base a la descodificación del flujo de bits después de un acceso aleatorio y/o antes de la imagen asociada al punto de recuperación estén en el orden correcto para que las imágenes descodificadas después del punto de recuperación tengan el contenido descodificado correcto o aproximadamente correcto. Además, los mensajes SEI del punto de recuperación pueden no requerir que estén disponibles las imágenes a las que se hace referencia mediante la descodificación del flujo de bits después de un acceso aleatorio y/o antes de la imagen asociada con el punto de recuperación.
[158] En los esquemas de codificación de una sola capa convencionales (por ejemplo, HEVC), cada unidad de acceso contiene únicamente una sola imagen. Dado que cada unidad de acceso contiene una sola imagen, los términos "unidad de acceso" e "imagen" se pueden usar indistintamente en el contexto de esquemas de codificación de una sola capa, por ejemplo, con respecto a la utilización de mensajes SEI de punto de recuperación. Sin embargo, las unidades de acceso de los esquemas de codificación de múltiples capas pueden incluir una imagen separada para cada capa del flujo de bits. En otras palabras, en un flujo de bits de múltiples capas, una sola unidad de acceso puede contener (es decir, incluir o comprender) una pluralidad de imágenes. Dado que en esquemas de codificación convencionales de una sola capa los mensajes SEI de punto de recuperación están asociados con una unidad de acceso, estos esquemas de codificación de una sola capa pueden no tener la semántica requerida para definir cómo un mensaje SEI de punto de recuperación se refiere con precisión a una o más imágenes de entre una pluralidad posible de imágenes dentro de una unidad de acceso de un esquema de codificación de múltiples capas. Esta ambigüedad relacionada con los mensajes SEI del punto de recuperación en esquemas convencionales permite implementaciones de codificadores o descodificadores de vídeo para asociar los mensajes SEI de punto de recuperación con las imágenes de entre la posible pluralidad de imágenes dentro de una unidad de acceso de un esquema de codificación de múltiples capas sin restricción. Por consiguiente, el comportamiento de estos codificadores y descodificadores de vídeo con respecto a los mensajes SEI de punto de recuperación no es predecible y puede variar entre diferentes implementaciones de manera que estas diferentes implementaciones pueden no codificar/descodificar una secuencia de vídeo de forma consistente.
[159] Adicionalmente, en los esquemas de codificación de una sola capa, una unidad de acceso que comprende un mensaje SEI de punto de recuperación puede restablecer el valor del POC a cero en el mensaje SEI del punto de recuperación. Además, otros valores de la imagen o descodificador pueden reiniciarse o señalizarse para establecerse en un valor especificado en base al mensaje SEI del punto de recuperación. Por ejemplo, un valor de un recuento de orden de imagen anterior puede reiniciarse a 0 o una semántica poc_msb (el bit más significativo del recuento de orden de imagen) también puede establecerse en 0 en el mensaje SEI del punto de recuperación.
[160] En SHVC/MV-HEVC, el POC para una imagen actual que tiene el mensaje SEI del punto de recuperación puede calcularse basándose en el poc_msb señalizado en la cabecera del fragmento para la imagen actual. En general, cuando no se establece mediante el mensaje SEI del punto de recuperación, el valor poc_msb para la imagen actual puede basarse en el poc_msb de la imagen anterior. Por lo tanto, cuando se señala poc_msb en la cabecera del fragmento de la imagen actual, el poc_msb de la imagen actual se puede establecer en el poc_msb señalizado. Sin embargo, dado que el poc_msb de la imagen asociada con el mensaje SEI del punto de recuperación se pone a cero, cuando el poc_msb de la imagen actual (es decir, siguiendo a la imagen, en orden de descodificación, asociada con el mensaje SEI del punto de recuperación que tenía el poc_msb establecido a cero) se establezca de acuerdo con el valor señalado, existe un problema porque el valor señalado y el valor obtenido pueden no coincidir.
[161] En esquemas de codificación de múltiples capas, hay un mecanismo para señalar el valor de poc_msb. Los valores de poc_msb de las imágenes pueden señalizarse en las cabeceras del fragmento. En algunos
5
10
15
20
25
30
35
40
45
50
55
60
modos de realización, bajo tal mecanismo, cuando se descodifica una imagen actual que tiene un valor de poc_msb señalizado en la cabecera del fragmento, el valor de poc_msb para la imagen actual no debe calcularse en base a la semántica de la imagen anterior, sino más bien, el valor del poc_msb señalado en la cabecera del fragmento solo debe utilizarse como el valor de poc_msb para la imagen actual. Se produce un problema porque, bajo el esquema de codificación de una sola capa, un acceso aleatorio a una imagen que tiene un mensaje SEI de punto de recuperación restablece el poc_msb (establece el poc_msb a 0) y el pOc. Sin embargo, en los esquemas de codificación de múltiples capas, si el poc_msb para la imagen actual simplemente se establece a cero como lo designan los esquemas de codificación existentes, pero la imagen siguiente tiene un valor poc_msb señalizado (como un valor distinto de 0) en la cabecera del fragmento, se genera un conflicto, porque las imágenes siguientes no pueden obtener correctamente el valor poc_msb debido al valor poc_msb señalizado y al valor cero anterior. Por ejemplo, una imagen, picA, está en la misma capa que la imagen asociada con el mensaje SEI del punto de recuperación y sigue a la imagen asociada con el mensaje SEI del punto de recuperación en orden de descodificación. picA tiene un valor de obtención de recuento de orden de imagen señalizado (por ejemplo, poc_msb_val). En consecuencia, la obtención del POC de picA puede ser poco clara o incorrecta.
[162] Por lo tanto, cuando se descodifica una imagen que tiene el mensaje SEI del punto de recuperación, la semántica del POC no se debe reiniciar simplemente a 0 o señalizar a otro valor. En cambio, la semántica del mensaje SEI del punto de recuperación debe modificarse para proporcionar una obtención de un valor del POC de la imagen que está asociada con el mensaje SEI del punto de recuperación cuando el proceso de descodificación comienza desde una capa que está asociada al mensaje SEI del punto de recuperación. En algunos modos de realización, esto puede implicar inferir uno o más valores de la semántica POC. Adicionalmente, la semántica del mensaje SEI del punto de recuperación puede modificarse para introducir restricciones que rigen la presencia de mensajes SEI del punto de recuperación en una unidad de acceso o la asociación de un mensaje SEI del punto de recuperación con una imagen. Por consiguiente, en esquemas de codificación de múltiples capas, cuando se realiza un acceso aleatorio y la descodificación comienza desde la unidad de acceso que contiene el mensaje SEI del punto de recuperación, el valor poc_msb puede no establecerse a cero, sino que el valor poc_msb puede recalcularse en base al mecanismo definido en la norma para calcular poc_msb. Por lo tanto, cuando se realiza el acceso aleatorio y la descodificación comienza desde la unidad de acceso que contiene el mensaje SEI del punto de recuperación, el descodificador puede operar como si la unidad de acceso asociada fuera la primera unidad de acceso en el flujo de bits en orden de descodificación. Además, si la semántica que indica que el valor poc_msb está presente para la imagen actual es igual a 1 (el indicador_val_poc_msb de la imagen actual = 1), entonces la variable PicOrderCntMsb puede calcularse como val_poc_msb * MaxPicOrderCntLsb. Si el indicador_val_poc_msb = 0, entonces RecOrdImaAnt[id_capa_nuh] se establece en 0.
[163] De forma alternativa, o adicionalmente, se pueden establecer varias restricciones para gobernar la presencia de un mensaje SEI de punto de recuperación en una unidad de acceso o la asociación de un mensaje SEI de punto de recuperación con una imagen. Por ejemplo, en algunos modos de realización, pueden requerirse las siguientes condiciones para que un mensaje SEI de punto de recuperación se aplique a una capa actual:
• Cuando una capa, la capaA, tiene al menos una capa de referencia y una o más imágenes que pertenecen a la capaA y su al menos una capa de referencia en una unidad de acceso particular tienen semántica que indica que el valor poc_msb está presente en la cabecera SEI igual a 0 (por ejemplo, el indicador_presente_val_poc_msb igual a 0) y tiene una semántica que indica que el indicador de restablecimiento POC es igual a 0 (por ejemplo, poc_reset_idc igual a 0), entonces esa unidad de acceso particular no puede contener un mensaje SEI de punto de recuperación que se aplica a un conjunto de capas que contienen solo la capaA y sus capas de referencia.
De forma alternativa, o adicionalmente, cuando una capa, la capaA, tiene una semántica de identificador de capa mayor que cero (por ejemplo, id_capa_nuh > 0) y una imagen de la capaA en una unidad de acceso particular tiene una semántica que indica que el valor poc_msb está presente en la cabecera SEI igual a 0 (por ejemplo, el indicador_present_val_poc_msb igual a 0) y tiene una semántica que indica que el indicador de restablecimiento POC es igual a 0 (por ejemplo, poc_reset_idc igual a 0), entonces esa unidad de acceso no puede contener un mensaje SEI de punto de recuperación que se aplica solo a la capaA.
De forma alternativa, o adicionalmente, cuando una imagen, picA, perteneciente a una capa que tiene una semántica de identificación de capa igual a 0 (por ejemplo, id_capa_nuh = 0) y cualquier imagen que sucede, en orden de descodificación, a la imagen picA y que precede, en orden de descodificación, a la siguiente imagen de IRAP con NoRaslOutputFlag igual a 1 e ID de capa igual a 0, incluyendo picA y la siguiente imagen de IRAP, tiene una longitud_extension_cabecera_segmento_fragmento mayor que 0, indicador_presente_val_poc_msb igual a 0 y poc_reset_idc igual a 0, entonces la unidad de acceso que
5
10
15
20
25
30
35
40
45
50
55
60
65
contiene picA puede no contiene un mensaje SEI de punto de recuperación que se aplica solo a la capa que tiene el identificador de capa igual a 0.
[164] De forma alternativa, se pueden añadir las siguientes condiciones:
• Si el mensaje SEI del punto de recuperación está anidado y se aplica a más de una capa, entonces todas las imágenes de las capas a las que se aplica el mensaje SEI del punto de recuperación en la unidad de acceso actual pueden tener una semántica que indique que el valor poc_msb está presente en la cabecera SEI igual a 1 (por ejemplo, el indicador_presente_val_poc_msb igual a 1) o tiene una semántica que indica que el indicador de restablecimiento POC es igual a 0 (por ejemplo, poc_reset_idc igual a 0).
• De lo contrario, si el mensaje SEI del punto de recuperación (anidado o no anidado) solo se aplica a una capa con el identificador de capa mayor que 0 (id_capa_nuh > 0), entonces la imagen de la capa que pertenece a la unidad de acceso actual puede tener una semántica que indica que el valor poc_msb está presente en la cabecera SEI igual a 1 (por ejemplo, el indicador_presente_val_poc_msb igual a 1) o puede tener una semántica que indique que el indicador de restablecimiento POC es igual a 0 (por ejemplo, poc_reset_idc igual a 0).
• De lo contrario (el mensaje SEI del punto de recuperación solo se aplica a la capa con el identificador de capa igual a 0 (id_capa_nuh = 0)), cuando hay al menos una imagen que sucede, en orden de descodificación, a la imagen actual y que precede, en orden de descodificación, a la siguiente imagen de IRAP con NoRaslOutputFlag igual a 1, que incluye la imagen actual y la siguiente imagen de IRAP, con el valor del elemento sintáctico longitud_extension_cabecera_segmento_framento mayor que 0, la imagen actual de la capa que pertenece a la unidad de acceso actual puede tener una semántica que indique que el valor poc_msb está presente en la cabecera SEI igual a 1 (por ejemplo, el indicador_presente_valor_poc_msb igual a 1) o puede tener una semántica que indique que el indicador de restablecimiento POC es igual a 0 (por ejemplo, poc_reset_idc igual a 0).
[165] De forma alternativa, se pueden añadir las siguientes restricciones:
• Si hay alguna imagen en cualquiera de las capas a las que se aplica el mensaje SEI actual en una unidad de acceso que sigue, en orden de descodificación, la unidad de acceso actual tiene presente el indicador_presente_val_poc_msb, cada imagen en cualquiera de las capas a las que se aplica el mensaje SEI actual puede tener una semántica que indique que el valor poc_msb está presente en la cabecera SEI igual a 1 (por ejemplo, el indicador_presente_valor_poc_msb igual a 1) o puede tener una semántica que indique que el indicador de restablecimiento POC es igual a 0 (por ejemplo, poc_reset_idc igual a 0.
[166] De forma alternativa, se pueden aplicar las siguientes restricciones:
• Si hay alguna imagen en cualquiera de las capas a las que se aplica el mensaje SEI actual en una unidad de acceso que sigue a la unidad de acceso actual en orden de descodificación tiene el indicador_presente_val_poc_msb presente, cada imagen en cualquiera de las capas a la que se aplica los mensajes SEI actuales puede tener el indicador_presente_val_poc_msb igual a 1.
[167] De forma alternativa, se pueden aplicar las siguientes restricciones:
• Si el SEI actual se aplica solo a una capa con el identificador de capa mayor que 0 (id_capa_nuh > 0), la imagen actual puede tener una semántica que indique que el valor poc_msb está presente en la cabecera SEI igual a 1 (por ejemplo, el indicador_presente_val_poc_msb igual a 1).
• De lo contrario, si el SEI actual se aplica a más de una capa, incluida la capa base, todas las imágenes de la unidad de acceso actual en todas las capas a las que se aplica el punto de recuperación SEI pueden tener una semántica que indique que el valor poc_msb está presente en la cabecera SEI igual a 1 (por ejemplo, el indicador_presente_val_poc_msb igual a 1). •
• De lo contrario, si la longitud de la extensión de la cabecera del segmento del fragmento es mayor que 0 y una semántica que indica que el valor poc_msb está presente en la cabecera SEI es igual a 0 (por ejemplo, el indicador_presente_val_poc_msb igual a 0) para la imagen actual, el mensaje SEI del punto de recuperación puede no estar presente.
Mensajes SEI de información de actualización de región
[168] Algunos esquemas de codificación de vídeo incluyen, además, mensajes SEI de información de
actualización de región (también denominados mensajes SEI de actualización de región). Un mensaje SEI de
actualización de región, que está asociado a un mensaje SEI de punto de recuperación, indica si las regiones
5
10
15
20
25
30
35
40
45
50
55
60
65
(por ejemplo, segmentos de fragmento) de una imagen actual, a las que corresponde/se aplica el mensaje SEI de actualización de región actual, pertenecen a una región actualizada (o región no actualizada) de la imagen actual. En otras palabras, un SEI de actualización de región incluye información que indica si los fragmentos individuales de una imagen correspondiente son correctos o aproximadamente correctos en contenido después de la descodificación. El mensaje SEI de actualización de región se usa en combinación con el mensaje SEI del punto de recuperación. Los mensajes SEI de actualización de región indican que si se comienza a descodificar desde la imagen que tiene el mensaje SEI del punto de recuperación, desde la siguiente imagen después de la imagen que tiene el mensaje SEI del punto de recuperación hasta la imagen del punto de recuperación, el número de regiones que están descodificadas correctamente para cada imagen entre la imagen del mensaje SEI del punto de recuperación y la imagen del punto de recuperación cambiarán hasta que todo se descodifique correctamente (o se descodifique de forma sustancial o aproximadamente correcta) en la imagen del punto de recuperación.
[169] Como se describió anteriormente, en los esquemas de codificación de vídeo convencionales, una unidad de acceso está asociada de manera única con una imagen. Como tal, en estos esquemas convencionales, los mensajes SEI de información de actualización de región están asociados con una unidad de acceso y, por lo tanto, están asociados de manera única con una imagen. Además, en esquemas de codificación convencionales, las limitaciones y/o predicciones entre capas pueden no ser una preocupación porque puede no haber imágenes en otras capas para asociarlas. Sin embargo, en los esquemas de codificación de múltiples capas, una unidad de acceso puede contener más de una imagen. Además, el mensaje SEI de actualización de región asociado con el mensaje SEI del punto de recuperación y las restricciones de predicción usadas para definir la semántica del mensaje SEI de actualización de la región pueden no tener en cuenta las restricciones de predicción entre capas. Esto puede causar un problema en el HEVC de múltiples capas (por ejemplo, SHVC/MV- HEVC).
[170] Al descodificar capas que no son la capa base, se puede considerar la predicción entre capas, lo que significa que una imagen que está en una capa distinta de la capa base puede basarse en una imagen correspondiente, y esa dependencia se puede considerar para determinar si una región está actualizada. Por ejemplo, una región de una determinada imagen en una capa de referencia puede actualizarse cuando la imagen determinada se basa en una imagen correspondiente en la capa base y tanto la imagen correspondiente (o al menos la región correspondiente de la imagen correspondiente) en la capa base y la imagen determinada se han actualizado. Por lo tanto, cualquier imagen o región referenciada por otra imagen o región que se considere actualizada también puede haberse actualizado.
[171] La semántica de los esquemas de codificación de vídeo convencionales no necesariamente tiene en cuenta tales dependencias entre capas o restricciones de predicción. En consecuencia, otro objeto de la presente divulgación es aclarar la semántica de los mensajes SEI de información de actualización de región de manera que se consideren las dependencias entre capas y/o las limitaciones de predicción cuando se identifican regiones actualizadas.
[172] En esquemas de codificación de múltiples capas, los mensajes SEI de información de actualización de región (asociados con un mensaje SEI de punto de recuperación) que proporcionan información de actualización de región para imágenes en capas de referencia pueden representar restricciones de predicción entre capas e intracapa. Por ejemplo, en algunos modos de realización, si una región de una imagen se declara actualizada, esa región puede haber sido intrapredicha, lo que significa que fue descodificada sin dependencia de otras regiones, o está interpredicha, lo que significa que fue descodificada dependiendo de otras regiones que ya se actualizaron ellas mismas.
[173] Por ejemplo, la descodificación de una primera imagen en una capa de referencia (o cualquier capa)
puede basarse en la información de una o más segundas imágenes en una capa base. En algunos modos de realización, la segunda imagen en la que se basa la primera imagen está en la misma unidad de acceso o en una unidad de acceso diferente que la primera imagen. Por lo tanto, cuando un mensaje SEI de actualización de
región indica si una o más regiones de la primera imagen se actualizan, el mensaje SEI de actualización de
región debería considerar el hecho de que la primera imagen se basa en la información de una o más segundas
imágenes. Si la una o más regiones de la primera imagen indicadas por el mensaje SEI de actualización de
región como actualizado, se basan en una o más regiones de las segunda imagen o imágenes que no se hayan actualizado, entonces la información de actualización de la región de la primera imagen puede no ser exacta. Esto se debe a que si la información en la que se basa la primera imagen no se actualiza, entonces la primera imagen puede no considerarse actualizada adecuadamente.
[174] En algunos modos de realización, el mensaje SEI de actualización de región puede configurarse para tener en cuenta cualquier predicción o restricción entre capas de las imágenes a las que se aplica. Por ejemplo, el mensaje SEI de actualización de región puede identificar una lista de capas objetivo (por ejemplo, una lista de las capas a las que se aplica el mensaje SEI de actualización de región) y puede especificar cualquier relación (o asociación) entre el mensaje SEI de actualización de región y un mensaje SEI de punto de recuperación. En algunos modos de realización, el mensaje SEI de actualización de región también puede definir algunas
5
10
15
20
25
30
35
40
45
50
55
60
65
restricciones de conformidad con respecto al uso de la predicción entre capas para imágenes que están asociadas con el mensaje SEI de actualización de región. En algunos modos de realización, el mensaje SEI de actualización de región puede estar asociado o relacionado con un mensaje SEI de punto de recuperación que se aplica a una capa que está incluida en la lista de capas objetivo del mensaje SEI de actualización de región. El mensaje SEI de actualización de región puede asociarse, de forma alternativa, con un mensaje SEI de punto de recuperación que se aplica a la lista de capas objetivo y que no se aplica a ninguna otra capa o el mensaje SEI de actualización de región puede asociarse con cualquier mensaje SEI de punto de recuperación que se aplique a las capas objetivo.
[175] En algunos modos de realización, la lista de capas objetivo descrita anteriormente puede obtenerse de la siguiente manera: si el mensaje SEI de información de actualización de región se aplica a la capa actual y a todas las capas de referencia, entonces la lista de capas objetivo puede contener el identificado de capa (id_capa_nuh) de la capa actual y de todas las capas de referencia. De lo contrario, la lista de capas objetivo puede contener el identificador de capa (id_capa_nuh) de la capa actual.
[176] La FIG. 6 es un diagrama de bloques que ilustra la asociación entre uno o más mensajes SEI de actualización de región y una o más imágenes de un flujo de bits de múltiples capas de acuerdo con un modo de realización de la presente divulgación. La FIG. 6 incluye un flujo de bits 600 de múltiples capas (también denominado simplemente flujo de bits 600) que es similar al flujo de bits 480 en relación con la FIG. 4C. Mostrado en la fIg. 6 está un primer mensaje SEI de punto de recuperación asociado con BL 472A y el punto de recuperación correspondiente está asociado con BL 480A. En la FIG. 6, el sombreado cruzado pretende indicar que las imágenes correspondientes para cada uno de los mensajes SEI del punto de recuperación están asociados con los respectivos mensajes SEI del punto de recuperación y una o más mensajes SEI de actualización de región. Una pluralidad de imágenes que siguen y en una misma capa que una imagen asociada con un mensaje SEI de punto de recuperación pueden denominarse, en general, imágenes de actualización gradual de descodificación (GDR). Una imagen GDR puede asociarse con un conjunto de imágenes GDR que incluye imágenes que comienzan en la imagen asociada con el mensaje SEI del punto de recuperación hasta la última imagen del conjunto de imágenes GDR configuradas en el orden de salida. El conjunto de imágenes GDR está asociado con un mensaje SEI del punto de recuperación correspondiente. Además, un mensaje SEI de actualización de región puede asociarse con una imagen GDR. En la FIG. 6, cada una de las imágenes de la BL 472A a 480A de la capa base 470A se ilustra incluyendo tres fragmentos de contenido separados, mientras que cada una de las imágenes de la EL 472B a 480B de la capa de mejora 470B también se ilustran incluyendo tres segmentos de contenido separados. Sin embargo, en otros modos de realización, las imágenes de la capa base BL 470A y/o la capa de mejora EL 470B, respectivamente, pueden dividirse en más o menos fragmentos que los mostrados en la FIG. 6. En algunas implementaciones de la presente divulgación, un mensaje SEI de actualización de región solo está asociado con una imagen cuando la imagen está incluida en un conjunto de imágenes GDR. Las secciones de las imágenes de la BL 472A a 480A de la capa base 470A y en las imágenes de la EL 472B a 480B de la capa de mejora 470B se denominarán fragmentos superior, medio e inferior en el presente documento para referirse a los fragmentos correspondientes en función de su orientación en la figura.
[177] El mensaje SEI de actualización de región de la imagen de la BL 474A de la FIG. 6 indica que el fragmento inferior de la imagen de la BL 474A será correcto o aproximadamente correcto en el contenido descodificado por la imagen 474A de la BL como se ilustra por la representación punteada. De manera similar, el mensaje SEI de actualización de región de la imagen 476A de BL indica que el fragmento medio correspondiente (es decir, el fragmento medio de la imagen de la BL 476A) será correcta o aproximadamente correcta en contenido por la imagen de la BL 476A. De manera similar, el mensaje SEI de actualización de región de la imagen de la BL 480A indica que el fragmento superior de la imagen de la BL 480B será correcto o aproximadamente correcto en contenido por la imagen de la BL 480A. Como tal, los mensajes SEI de información de actualización de región incluyen información que define, además, cuándo cada fragmento de la imagen asociada será correcto o aproximadamente correcto en contenido descodificado cuando comienza el acceso aleatorio en o antes de una imagen asociada con el mensaje SEI de punto de recuperación correspondiente (por ejemplo, la imagen asociada con el mensaje SEI del punto de recuperación que está asociado con el conjunto de imágenes GDR). Además, dado que las imágenes 474A-480A son imágenes de la capa base BL 470A, la información de actualización de región de los mensajes SEI puede no necesitar considerar ninguna restricción de predicción entre capas o ninguna dependencia de estas imágenes de otras imágenes. Por lo tanto, la información de recuperación de región de los mensajes SEI de recuperación de región puede aceptarse como correcta y precisa.
[178] Sin embargo, el mensaje SEI de información de actualización de región de la imagen de la EL 476B que indica que el fragmento inferior será correcto o aproximadamente correcto en contenido por la imagen de la EL 476B puede necesitar considerar restricciones de predicción entre capas porque el fragmento inferior de la imagen de la EL 476B puede actualizarse solo cuando la región correspondiente de la imagen correspondiente de la capa base BL 476A se actualiza. Sin embargo, como se muestra en la FIG. 6, dado que el fragmento inferior correspondiente de la imagen de la BL correspondiente 476A se actualiza, el mensaje SEI de información de actualización de región de la imagen de la EL 476B puede considerarse correcto. Sin embargo, el mensaje SEI de información de actualización de región de la imagen 474B de EL que indica que el fragmento superior
5
10
15
20
25
30
35
40
45
50
55
60
65
será correcto o aproximadamente correcto en contenido mediante la imagen 474B de EL puede considerarse incorrecto, ya que el fragmento superior correspondiente de la imagen correspondiente 474A de BL no está indicada como actualizada por el mensaje SEI de actualización de región correspondiente de la imagen 474A de BL. Por lo tanto, el fragmento superior de la imagen 474B de EL puede no ser correcto o aproximadamente correcto en contenido por EL 474B.
[179] La FIG. 7 muestra una sintaxis 700 que puede usarse para comunicar la semántica de los mensajes SEI de información de actualización de región. Esta sintaxis 700 puede comunicarse en el mensaje SEI de una unidad de acceso o imagen y puede estar destinada a proporcionar la información necesaria con respecto al tipo de mensaje SEI, el tamaño del mensaje SEI y varios otros aspectos de la semántica del mensaje SEI. Aunque la actual FlG. 7 representa muchos elementos del mensaje SEI de información de actualización de región, la sintaxis 700 puede incluir más o menos componentes que los ilustrados en la FIG. 7. Además, o de forma alternativa, se pueden usar sintaxis iguales o similares a la sintaxis 700 para comunicar la semántica de los mensajes SEI para otros tipos de mensajes SEI (por ejemplo, mensajes sEi de temporización de imágenes, de información de la unidad de descodificación, de características del grano de la película, de instantáneas de imágenes y de información de escena, entre otros). En consecuencia, no todas las semánticas (o campos) de la sintaxis 700 pueden definirse en el presente documento. Tal falta de definición no debe interpretarse como representativa de la importancia de la función. Como se muestra, la sintaxis 700 incluye un muestreo de campos (o semántica) útil para describir las características destacadas de las implementaciones dentro del alcance de las reivindicaciones y puede incluir uno o más campos adicionales que no se muestran o pueden incluir uno o más campos que pueden no ser utilizados en todos los modos de realización.
[180] La sintaxis 700 puede incluir la semántica tipoCargaÚtil 702 y tamañoCargaÚtil 704, al igual que todas las demás sintaxis de mensajes SEI, como se describió anteriormente. tipoCargaÚtil 702 tiene una longitud de un byte y puede incluir valores que indican el tipo de mensaje SEI con el que está asociada la sintaxis 700. Por ejemplo, tipoCargaÚtil 702 puede incluir un valor de 0 o 1 que indica un mensaje SEI de período de almacenamiento temporal o de temporización de imágenes, respectivamente. Con un tamaño de un byte, tipoCargaÚtil 702 puede indicar uno de los 256 mensajes SEI diferentes. La sintaxis 700 incluye, además, una semántica de tamaño de carga 704. tamañoCargaÚtil 704 puede ser de tamaño variable especificado en bytes y puede ser igual al número de bytes de carga útil de secuencia de bytes sin formato en la carga útil del mensaje SEI.
[181] La sintaxis 700 incluye, además, una semántica de indicador_región_actualizada 706 que tiene una longitud de un bit. El indicador_región_actualizada 706 puede indicar que el fragmento asociado con el mensaje SEI actual pertenece a la región actualizada en la imagen actual (es decir, que el fragmento se actualiza). Un valor de 0 puede indicar que el fragmento no se actualiza, mientras que un valor de 1 puede indicar que el fragmento se actualiza. La sintaxis 700 incluye, además, una semántica de listaldCapaObjetivo 708 que tiene una longitud de un byte. La listaldCapaObjetivo 708 puede contener una lista de todos los identificadores de capa (id_capa_nuh) para todas las capas a las que se aplica la información de actualización de región del SEI de información de actualización de región. Además, el mensaje SEI de actualización de región puede asociarse con un mensaje SEI de punto de recuperación que se aplica a capas que tienen valores id_capa_nuh iguales a aquellos en la listaldCapaObjetivo.
Mensaje SEI de orientación de la visualización
[182] En los flujos de bits de capa única HEVC convencionales, puede haber solo una capa y esa capa se puede considerar una capa de salida. Sin embargo, en los flujos de bits de múltiples capas SHVC/MV-HEVC, puede haber un conjunto de capas de salida que describa qué capas son capas de salida y qué capas no son capas de salida. Como una o más capas pueden ser una capa de salida no objetivo de cualquier conjunto de capas de salida, cuando una capa no es una capa de salida objetivo, puede no haber un mensaje SEI de orientación de visualización asociado con imágenes en esa capa. Tal restricción falta en la semántica de HEVC convencional.
[183] Actualmente, los flujos de bits de múltiples capas SHVC/MV-HEVC admiten una característica de proceso de salida alternativa. De acuerdo con la característica, cuando una imagen de una capa de salida no está presente en una unidad de acceso particular, una imagen de una capa que no es de salida en la unidad de acceso particular, en la que la capa de no salida es más baja que la capa de salida (por ejemplo, tiene un valor de identificador de imagen más bajo o la capa de salida hace referencia a él), puede utilizarse como imagen alternativa para emitirse en la capa de salida. Por ejemplo, la imagen picA pertenece a una capaA de capa no de salida, y la imagen picB, que puede o no estar presente, pertenece a una capaB de capa de salida. El valor de id_capa_nuh de la capaB es mayor que el valor del id_capa_nuh de la capaA. Tanto picA como picB, si están presentes, están contenidas en la misma unidad de acceso. Los siguientes problemas pueden presentarse cuando se permite un proceso de salida alternativo:
5
10
15
20
25
30
35
40
45
50
55
60
65
a) Si hay dos mensajes SEI de orientación de visualización y cada mensaje SEI de orientación de visualización se aplica a la capaA y la capaB, respectivamente, los dos mensajes SEI de orientación de visualización no son idénticos y picB no está presente cuando se invoca el proceso de salida alternativo y picA es emitida en lugar de picB, puede haber ambigüedad con respecto a cuál de los dos mensajes sEi de orientación de visualización se aplicará al picB.
b) De forma alternativa, o adicionalmente, si solo hay un mensaje SEI de orientación de visualización y se aplica a la capaB y picB no está presente, cuando se invoca el proceso de salida alternativo y se emite picA en lugar de picB, puede haber ambigüedad con respecto a si el mensaje SEI de orientación de visualización se aplicará a picA.
[184] Para abordar tales problemas en flujos de bits de múltiples capas, se puede agregar una restricción para el mensaje SEI de orientación de visualización de modo que cuando una capa no se indique como capa de salida objetivo en cualquier conjunto de capas de salida, no habrá ningún mensaje SEI de orientación de visualización asociado con las imágenes de esa capa.
a) En consecuencia, cuando una imagen picA que no está en la capa actual se utiliza como salida alternativa para una imagen de la capa actual, el mensaje SEI de orientación de visualización que se aplica a la capa actual, si lo hay, se aplicará a la picA emitida.
b) De forma alternativa, o adicionalmente, se puede especificar una restricción de modo que cuando se permita el proceso de salida alternativo para la capa actual, no se asocie ningún mensaje SEI de orientación de visualización con imágenes de la capa actual.
c) De forma alternativa, o adicionalmente, se puede especificar una restricción de manera que cuando se permita el proceso de salida alternativo y se emita una imagen picA desde una capa que no sea de salida como sustituto de una imagen no presente en una capa de salida, la orientación de visualización de la imagen de salida será de acuerdo con el mensaje SEI de orientación de visualización, si está presente, que se aplica a la capa de salida.
Diagramas de flujo de ejemplo
[185] La FIG. 8 muestra un diagrama de flujo de un procedimiento 800 para asociar la semántica de la información de codificación de vídeo con capas o puntos de operación de un flujo de bits de múltiples capas que comprende almacenar información de vídeo asociada con el flujo de bits de múltiples capas. El procedimiento 800 de la FIG. 8 puede realizarse por medio de uno o más de los componentes de las FIGs. 1A-3B, por ejemplo un descodificador de vídeo 30. El procedimiento 800 comienza en el bloque 805, que comprende almacenar información de vídeo asociada con el flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje SEI. Por ejemplo, la información de vídeo puede almacenarse en una memoria, tal como el dispositivo de almacenamiento 31 de la FIG. 1A, o en un medio similar. Una vez que se almacena la información de vídeo, el procedimiento avanza al bloque 810. En el bloque 810, se muestra el procedimiento que determina si el mensaje SEI pertenece a una primera categoría de mensajes SEI o a una segunda categoría de mensajes SEI basándose en un identificador del mensaje SEI. En algunos modos de realización, la determinación puede realizarse por medio de un procesador o controlador, tal como el dispositivo procesador/controlador 13 de la FIG. 1B o uno o más componentes del descodificador de vídeo 30 o un procesador no mostrado en las FIGs. 3A o 3B. Una vez que se determina la categoría del mensaje SEI en el bloque 810, el procedimiento 800 avanza al bloque 815, donde el procedimiento determina si el mensaje SEI se aplica a los puntos de operación o a las capas. Esta determinación puede hacerse mediante un procesador o controlador, tal como el dispositivo procesador/controlador 13 de la FIG. 1B o uno o más componentes del descodificador de vídeo 30 o un procesador no mostrado en las FIGs. 3A o 3B. En algunos modos de realización, el dispositivo procesador/controlador 13 o un procesador ahora mostrado puede comprender medios para determinar. El procedimiento 800 avanza luego al bloque 820, donde se muestra el procedimiento, en respuesta a que el mensaje SEI sea de la primera categoría de mensajes SEI y se aplique a los puntos de operación, asociando cada semántica del mensaje SEI con cada punto de operación entre los puntos de operación. Esta asociación puede ser realizada por un procesador o controlador, tal como el dispositivo procesador/controlador 13 de la FIG. 1B o uno o más componentes del descodificador de vídeo 30 o un procesador no mostrado en las FIGs. 3A o 3B. En algunos modos de realización, el dispositivo procesador/controlador 13 o un procesador ahora mostrado puede comprender medios para asociarse.
[186] La FIG. 9 muestra un diagrama de flujo de un procedimiento 900 para determinar si se inicia un acceso aleatorio durante la descodificación de la información de vídeo de un flujo de bits de múltiples capas. El procedimiento 900 de la FIG. 9 puede realizarse mediante uno o más de los componentes de las FIGs. 1A-3B, por ejemplo un descodificador de vídeo 30. El procedimiento 900 comienza en el bloque 905, que comprende almacenar información de vídeo que incluye al menos un mensaje SEI de punto de recuperación. Por ejemplo, la información de vídeo puede almacenarse en una memoria, tal como el dispositivo de almacenamiento 31 de la FIG. 1A, o en un medio similar. Una vez que se almacena la información del vídeo, el procedimiento 900 avanza
5
10
15
20
25
30
al bloque 910. En el bloque 910, se muestra el procedimiento que determina si el al menos un mensaje SEI de punto de recuperación comprende una indicación para reiniciar un valor semántico POC. En algunos modos de realización, la determinación puede realizarse por medio de un procesador o controlador, tal como el dispositivo procesador/controlador 13 de la FIG. 1B o uno o más componentes del descodificador de vídeo 30 o un procesador no mostrado en las FIGs. 3A o 3B. Una vez que se determina que el al menos un mensaje SEI de punto de recuperación comprende una indicación para restablecer el valor POC en el bloque 910, el procedimiento 900 avanza al bloque 915, donde el procedimiento identifica al menos uno de una primera restricción con respecto a si el mensaje SEI del punto de recuperación está presente en una unidad de acceso, una segunda restricción con respecto a una asociación del mensaje SEI del punto de recuperación con una imagen, o una tercera restricción con respecto a una aplicación del mensaje SEI del punto de recuperación a un conjunto de capas. Esta identificación puede hacerse mediante un procesador o controlador, tal como un dispositivo procesador/controlador 13 de la FIG. 1B o uno o más componentes del descodificador de vídeo 30 o un procesador no mostrado en las FIGs. 3A o 3B. En algunos modos de realización, el dispositivo procesador/controlador 13 o un procesador ahora mostrado puede comprender medios para determinar. El procedimiento 900 avanza luego al bloque 920, donde se muestra el procedimiento que determina si se inicia el acceso aleatorio y la descodificación desde la unidad de acceso basándose en al menos una de la primera restricción o la segunda restricción. Esta determinación puede ser realizada por un procesador o controlador, tal como un dispositivo procesador/controlador 13 de la FIG. 1B o uno o más componentes del descodificador de vídeo 30 o un procesador no mostrado en las FIGs. 3A o 3B. En algunos modos de realización, el dispositivo procesador/controlador 13 o un procesador ahora mostrado puede comprender uno o más de un medio para determinar, un medio para identificar, un medio para asociar, un medio para derivar y un medio para la codificación.
Ejemplos de implementación o implementaciones
[187] Algunos modos de realización de la presente divulgación se resumen y describen a continuación. Cuando ciertas partes de la especificación SHVC/MV-HEVC se reproducen para ilustrar las adiciones y eliminaciones que pueden incorporarse para implementar uno o más de los procedimientos descritos en el presente documento, tales adiciones se muestran mediante subrayado y las eliminaciones se muestran en.
Tabla 1 - Modificaciones de MV-HEVC al texto de estándares
Cambie las siguientes definiciones en la cláusula 3 de la siguiente manera: 3.X unidad de acceso: Un conjunto de unidades NAL que están asociadas entre sí de acuerdo con una regla de clasificación especificada, son consecutivas en orden de descodificación y contienen las unidades NAL VCL de todas las imágenes codificadas asociadas con el mismo tiempo de salida y sus unidades NAL no VCL asociadas. NOTA - Las imágenes en la misma unidad de acceso están asociadas con el mismo recuento de orden de imagen.
Agregue las siguientes definiciones a la cláusula 3:
3.X
partición del flujo de bits base: Una partición del flujo de bits que también es un flujo de bits conforme.
3.X
partición del flujo de bits: Una secuencia de bits, en forma de un flujo de unidad NAL o un flujo de bytes, que es un subconjunto de un flujo de bits de acuerdo con una partición.
3.X
capa de salida: Una capa de un conjunto de capas de salida que se emite cuando TargetOptLayerSetIdx es igual al índice del conjunto de capas de salida.
3.X
conjunto de capas de salida: Un conjunto de capas que consta de las capas de uno de los conjuntos de capas especificados, donde se indica que una o más capas del conjunto de capas serán capas de salida.
3.X
punto de operación de salida: Un flujo de bits que se crea a partir de otro fluio de bits mediante la operación del proceso de extracción del flujo de bits con otro flujo de bits, un IdTemporal mayor objetivo y una lista de identificador de capa de destino como
Agregue las siguientes definiciones a la cláusula 3:
entradas, y que está asociado con un conjunto de capas de salida de destino.
3.X unidad de imagen: Un conjunto de unidades NAL
que están asociadas entre sí de acuerdo con una regla de clasificación específica, son consecutivas en orden de descodificación, y contienen las unidades NAL VCL de una imagen codificada y sus unidades NAL no VCL asociadas.
3.X capa de salida de destino: Una capa que se va a
emitir y es una de las capas de salida del conjunto de capa de salida con el índice olsIdx de forma que TargetOptLayerSetIdx sea igual a olsldx.
3.X conjunto de capas de salida objetivo: Un conjunto
de capas de salida asociado con la variable TargetOptLayerSetIdx que especifica una lista de identificador de capa de un punto de operación de salida en uso y un conjunto de capas de salida objetivo.
Agregue lo siguiente a la subcláusula D.3.1:
En las siguientes subcláusulas de este anexo, cuando un mensaje SEI particular se aplica a un conjunto de una o más capas (en lugar de un conjunto de puntos de operación), es decir, cuando el valor de tipoCargaÚtil no es igual a uno de 0 (período de almacenamiento temporal), 1 (temporización de imagen) y 130 (información
de la unidad de descodificación), se aplica lo siguiente:
- La semántica se aplica independientemente a cada capa particular con identificador de capa nuh igual a identificadorCapaObjetivo de las capas a las que se aplica el mensaje SEI particular
- El mensaje SEI actual se refiere al mensaje SEI particular
- La unidad de acceso actual se refiere a la unidad de acceso que contiene el mensaje SEI actual
- La capa actual se refiere a la capa con id capa nuh igual a identicadorCapaObjetivo.
- La imagen actual o la imagen descodificada actual se refiere a la imagen con id capa nuh igual a identificadorCapaObjetivo (es decir, en la capa actual) en la unidad de acceso actual.
- Las capas de referencia directa e indirecta de la capa actual se conocen como las capas de referencia de la capa actual
En las siguientes subcláusulas de este anexo, cuando un mensaje SEI particular se aplica a un conjunto de uno o más puntos de operación (en lugar de a un conjunto de una o más capas), es decir, cuando el valor tipoCargaÚtil es igual a 0 (período de almacenamiento temporal), 1 (temporización de imagen), o 130 (información de la unidad de descodificación), se aplica lo siguiente:
- La semántica se aplica independientemente a cada punto de operación particular del conjunto de puntos de operación a los cuales se aplica el mensaje SEI particular
- El mensaje SEI actual se refiere al mensaje SEI particular
- El punto de operación actual se refiere al punto de operación particular.
- Los términos "unidad de acceso" y "CVS" se aplican al flujo de bits FlujodebitsADescodificar que es el subflujo de bits del punto de operación particular.
Modificar la subcláusula D.3.2 de la siguiente manera:
La presencia de mensajes SEI del período de almacenamiento temporal para un punto de operación se especifica de la siguiente manera:
- Si NalHrdBpPresentFlag es igual a 1 o VclHrdBpPresentFlag es igual a 1, se aplica lo siguiente para cada unidad de acceso en el CVS:
- Si la unidad de acceso es una unidad de acceso de IRAP, un mensaje SEI del período de almacenamiento temporal aplicable al punto de operación se asociará con la unidad de acceso.
- De lo contrario, si se aplican las dos condiciones siguientes, un mensaje SEI de período de almacenamiento temporal aplicable al punto de operación puede o no estar presente para la unidad de acceso:
- La unidad de acceso tiene IdTemporal igual a 0.
Modificar la subcláusula D.3.2 de la siguiente manera:
- La unidad de acceso tiene al menos una imagen que tiene un indicador descartable igual a 1 y no es una imagen RASL, RADL o de subcapa sin referencia.
- De lo contrario, la unidad de acceso no se asociará con un mensaje SEI de período de almacenamiento temporal aplicable al punto de operación.
- De lo contrario (NalHrdBpPresentFlag y VclHrdBpPresentFlag son ambos iguales a 0), ninguna unidad de acceso en la CVS se asociará con un mensaje SEI de período de almacenamiento temporal aplicable al punto de operación.
NOTA 1 - Para algunas aplicaciones, puede ser deseable la presencia frecuente de mensajes SEI de período de almacenamiento temporal (por ejemplo, para acceso aleatorio en una imagen de IRAP o una imagen no IRAP o para empalmes de flujo de bits).
Modificar la subcláusula D.3.4 de la siguiente manera:
indicador_cancelar_rectángulo_barrido_panorámico igual a 1 indica que el mensaje SEI cancela la persistencia de cualquier mensaje SEI de rectángulo de barrido panorámico previo en el orden de salida que se aplica a la capa actual. indicador_cancelar_rectángulo_barrido_panorámico igual a 0 indica que sigue la información del rectángulo de barrido panorámico.
indicador_persistencia_rectangular_barrido_panorámico especifica la persistencia del mensaje SEI del rectángulo de barrido panorámico para la capa actual.
indicador_persistencia_rectángulo_barrido_panorámico igual a 0 especifica que la información del rectángulo de barrido panorámico se aplica únicamente a la imagen descodificada actual.
Supongamos que picA es la imagen actual. indicador_persistencia_rectángulo_barrido_panorámico igual a 1 especifica que la información del rectángulo de barrido panorámico persiste para la capa actual en orden de salida hasta que cualquiera de las siguientes condiciones sea verdadera:
- Comienza una nueva CVS.
- El flujo de bits termina.
- Se emite una imagen picB de la capa actual en una unidad de acceso que contiene un mensaje SEI de rectángulo de barrido panorámico con el mismo valor de identificador_rectángulo_barrido_panorámico y aplicable a la capa actual para la que PicOrderCnt(picB) es mayor que PicOrderCnt(picA), donde PicOrderCnt(picB) y PicOrderCnt(picA) son los valores PicOrderCntVal de picB y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picB.
Modificar la subcláusula D.3.8 de la siguiente manera:
El mensaje SEI del punto de recuperación ayuda a un descodificador a determinar cuándo el proceso de descodificación producirá imágenes aceptables en la capa actual para su visualización después de que el descodificador inicie el acceso aleatorio o la conmutación ascendente de la capa, o después de que el codificador indique un enlace interrumpido.
Cuando el mensaje SEI de punto de recuperación se aplica a la capa actual y a todas las capas de referencia de la capa actual, la imagen actual presente en la unidad de acceso que contiene el mensaje SEI del punto de recuperación se indica como una imagen de acceso aleatorio de capa. Cuando el mensaje SEI del punto de recuperación se aplica a la capa actual pero no a todas las capas de referencia de la capa actual, la imagen actual que está presente en la unidad de acceso que contiene el mensaje SEI del punto de recuperación se indica como una imagen de conmutación ascendente de la capa.
Las imágenes descodificadas en la capa actual producidas por acceso aleatorio o conmutación ascendente de capa en o antes de la unidad de acceso actual no necesitan ser correctas en contenido hasta el punto de recuperación indicado, y la operación del proceso de descodificación que comienza en Ja unidad de acceso actual puede contener referencias a imágenes no disponibles en la memoria temporal de la imagen descodificada.
Además, mediante el uso del indicador_enlace_roto, el mensaje SEI del punto de recuperación puede indicar al descodificador la ubicación de algunas imágenes en la capa actual en el flujo de bits que puede dar lugar a artefactos visuales graves cuando se muestran, incluso cuando el proceso de descodificación se inició en la ubicación de una unidad de acceso IRAP anterior en orden de descodificación que contiene imágenes IRAP en todas las capas.
NOTA 2 - El indicador_enlace_roto puede ser utilizado por los codificadores para indicar la ubicación de un punto después del cual el proceso de descodificación para la descodificación de algunas imágenes en la capa actual puede causar referencias a imágenes que, aunque están disponibles para su uso en el proceso de descodificación, no son las imágenes que se utilizaron como referencia cuando el flujo de bits se codificó originalmente (por ejemplo, debido a una operación de empalme realizada durante la generación del flujo de bits).
Se cumplirán las siguientes condiciones para un punto de recuperación que sea aplicable a la capa actual:
- Cuando una capa capaA tiene al menos una capa de referencia y las imágenes pertenecientes a la capaA y todas sus capas de referencia en una unidad de acceso particular tienen el indicador presente val poc msb igual a 0 y el poc reset idc igual a 0, la unidad de acceso no contendrá una unidad NAL SEI que contenga un mensaje SEI de punto de recuperación que se aplica al conjunto de capas que contiene solo la capaA y todas sus capas de referencia
- Cuando una capa capaA tiene id capa nuh mayor que 0 y una imagen de la capaA en una unidad de acceso particular tiene el indicador presente val poc msb igual a 0 y el poc reset idc igual a 0, la unidad de acceso no contendrá una unidad NAL SEI que contenga un mensaje SEI de punto de recuperación que se aplique solo para la capaA.
- Cuando una imagen picA perteneciente a la capa con id capa nuh igual a 0 y cualquier imagen que siga, en orden de descodificación, a la imagen picA y que precede, en orden de descodificación, a la siguiente imagen de IRAP con NoRaslOutputFlag igual a 1 e id capa nuh igual a 0, incluyendo picA y la siguiente imagen de IRAP, tiene longitud extension cabecera segmento framento mayor que 0, indicador presente val poc msb igual a 0 y poc reset idc igual a 0, entonces esa unidad de acceso que contiene picA no contendrá una unidad NAL SEI que contenga un mensaje SEI de punto de recuperación que se aplique solo al capa con id capa nuh igual a 0.
De forma alternativa, se agregan las siguientes condiciones.
- Si el mensaje SEI del punto de recuperación está anidado y se aplica a más de una capa, todas las imágenes de las capas a las que se aplica el mensaje SEI del punto de recuperación en la unidad de acceso actual deberán tener pock msb val present flag igual a 1 o tener poc reset idc mayor que 0
- De lo contrario, si el mensaje SEI del punto de recuperación (anidado o no anidado) solo se aplica a una capa que tiene id capa nuh mayor que 0, entonces la imagen de la capa que pertenece a la unidad de acceso actual tendrá indicador presente val poc msb igual a 1 o tendrá poc reset idc mayor que 0.
- De lo contrario (el mensaje SEI del punto de recuperación solo se aplica a la capa con id capa nuh igual a 0), cuando hay al menos una imagen que sigue, en orden de descodificación, a la imagen actual y precede, en orden de descodificación, a la siguiente imagen IRAP con NoRaslOutputFlag igual a 1, incluyendo la imagen actual y la siguiente imagen IRAP, con el valor del elemento sintáctico longitud extension cabecera segmento framento mayor que 0, la imagen actual de la capa que pertenece a la unidad de acceso actual tendrá indicador presente val poc msb igual a 1 o tendrá poc reset idc mayor que 0
de forma alternativa, se agregan las siguientes restricciones.
- Si hay alguna imagen en cualquiera de las capas a las que se aplica el mensaje SEI actual en una unidad de acceso que sigue, en orden de descodificación, la unidad de acceso actual tiene presente el indicador presente val poc msb, cada imagen en cualquiera de las capas a las que se aplican los mensajes SEI actuales tendrá el indicador_presente_val_poc_msb igual a 1 o poc_reset_idc mayor que 0. recovery_poc_cnt especifica el punto de recuperación de las imágenes descodificadas en la capa actual en orden de salida. Si hay una imagen picB en la capa actual que sigue a la imagen actual picA pero precede a una unidad de acceso que contiene una imagen IRAP en la capa actual en orden de descodificación y PicOrderCnt(picB) es igual a PicOrderCnt(picA) más el valor de recovery_poc_cnt, donde PicOrderCnt(picA) y PicOrderCnt(picB) son los valores PicOrderCntVal de picA y picB, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picB, la imagen picB se denomina imagen de punto de recuperación. De lo contrario, la primera imagen picC de la capa actual en orden de salida para la cual PicOrderCnt(picC) es mayor que PicOrderCnt(picA) más el valor de recovery_poc_cnt se conoce como la imagen del punto de recuperación, donde PicOrderCnt(picA) y PicOrderCnt(picC) son los valores de PicOrderCntVal de picA y picC, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picC. La imagen del punto de recuperación no debe preceder a la imagen actual en orden de descodificación. Se indica que todas las imágenes descodificadas en la capa actual 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 valor de recovery_poc_cnt estará dentro del intervalo de -MaxPicOrderCntLsb / 2 a MaxPicOrderCntLsb / 2 - 1, inclusive.
indicador_coincidencia_exacta indica si las imágenes descodificadas en la capa actual en y después del punto de recuperación especificado en el orden de salida derivado iniciando el proceso de descodificación en la unidad de acceso que contiene el mensaje SEI del punto de recuperación serán una coincidencia exacta con las imágenes en la capa actual que se producirían comenzando el
proceso de descodificación en la ubicación de una unidad de acceso previa donde la imagen de la capa en Ja capa actual y las imágenes de todas las capas de referencia directa e indirecta son imágenes IRAP, si las hay, en el flujo de bits. El valor 0 indica que la coincidencia puede no ser exacta y el valor 1 indica que la coincidencia será exacta. Cuando indicador_coincidencia_exacta es igual a 1, es requisito de conformidad del flujo de bits que las imágenes descodificadas en la capa actual en y después del punto de recuperación especificado en el orden de salida derivado iniciando el proceso de descodificación en la unidad de acceso que contiene el mensaje SEI del punto de recuperación serán una coincidencia exacta con las imágenes en la capa actual que se produciría
Se cumplirán las siguientes condiciones para un punto de recuperación que sea aplicable a la capa actual:
iniciando el proceso de descodificación en la ubicación de una unidad de acceso previa donde la imagen de la capa en la capa actual y las imágenes de todas las capas de referencia directa e indirecta son imágenes IRAP, si las hay, en el flujo de bits.
El indicador_enlace_roto indica la presencia o ausencia de un enlace roto en la capa de la capa actual 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_enlace_roto es igual a 1, las imágenes de la capa actual se producen iniciando el proceso de descodificación en la ubicación de una unidad de acceso anterior donde la imagen de la capa de la capa actual y las imágenes de todas las capas de referencia directa e indirecta son IRAP pueden contener artefactos visuales no deseados en la medida en que las imágenes descodificadas de la capa actual en y después de la unidad de acceso que contiene el mensaje SEI del punto de recuperación en orden de descodificación no se muestren hasta el punto de recuperación especificado en orden de salida.
- De lo contrario (el indicador_enlace_roto es igual a 0), no se indica ninguna posible presencia de artefactos visuales.
Cuando la imagen actual es una imagen de BLA, el valor del indicador_enlace_roto será igual a 1.
Independientemente del valor de indicador_enlace_roto, las imágenes de la capa actual posterior al punto de recuperación especificado en el orden de salida se especifican como correctas o aproximadamente correctas en contenido.
Modificar la subcláusula D.3.11 de la siguiente manera:
El mensaje SEI de inicio del segmento de refinamiento progresivo especifica el comienzo de un conjunto de imágenes codificadas consecutivas en la capa actual en orden de descodificación que consiste en la imagen actual y una secuencia de una o más imágenes subsiguientes en la capa actual que refinan la calidad de la imagen actual, en lugar de una representación de una escena en movimiento continuo.
Supongamos que picA es la imagen actual. El conjunto etiquetado de imágenes codificadas refinementPicSet de la capa actual comienza desde la siguiente imagen de la capa actual después de la imagen actual en orden de descodificación y continúa hasta que se cumple una de las siguientes condiciones:
- Comienza una nueva CVS.
- El flujo de bits termina.
- pic_order_cnt_delta es mayor que 0 y PicOrderCntVal del siguiente fragmento, que pertenece a la imagen picB en la capa actual a descodificar, es decir, PicOrderCnt(picB), es mayor que PicOrderCnt(picA) más pic_order_cnt_delta, donde PicOrderCnt(picB) y PicOrderCnt(picA) son los valores PicOrderCntVal de picB y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picB.
- Un mensaje SEI de final de segmento de refinamiento progresivo que tiene el mismo id_refinamiento_progresivo que el de este mensaje SEI y también se aplica a la capa actual que se descodifica.
El orden de descodificación de las imágenes dentro de refinementPicSet debe ser el mismo que su
orden de salida.
pic_order_cnt_delta especifica la última imagen en refinementPicSet en el orden de descodificación de la siguiente manera:
- Si pic_order_cnt_delta es igual a 0, la última imagen inrefinementPicSet en orden de descodificación es la siguiente imagen:
- Si la CVS contiene una o más imágenes en la capa actual que siguen a la imagen actual en orden de descodificación y están asociadas con un mensaje SEI de fin de segmento de refinamiento progresivo que tiene el mismo id_refinamiento_progresivo y también se aplica a la capa actual, la última imagen en refinementPicSet es la primera de estas imágenes en orden de descodificación.
- De lo contrario, la última imagen en refinementPicSet es la última imagen en la capa actual dentro de la CVS en orden de descodificación.
- De lo contrario, la última imagen en refinementPicSet en orden de descodificación es la siguiente imagen:
- Si la CVS contiene una o más imágenes en la capa actual que siguen a la imagen actual en orden de descodificación, se asocian con un mensaje SEI de fin de segmento de refinamiento progresivo con el mismo id_refinamiento_progresivo y aplicable a la capa actual, y preceden a cualquier imagen picC en el capa actual en la CVS para la cual PicOrderCnt(picC) es mayor que PicOrderCnt(picA) más pic_order_cnt_delta, donde PicOrderCnt(picC) y PicOrderCnt(picA) son los valores PicOrderCntVal de picC y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picC, la última imagen en refinementPicSet en orden de descodificación es la primera de estas imágenes en
Modificar la subcláusula D.3.11 de la siguiente manera: orden de descodificación.
- De lo contrario, si la CVS contiene una o más imágenes picD en la capa actual que siguen a la imagen actual en orden de descodificación para las cuales PicOrderCnt(picD) es mayor que PicOrderCnt(picA) más pic_order_cnt_delta, donde PicOrderCnt(picD) y PicOrderCnt(picA) son los valores PicOrderCntVal de picD y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picD, la última imagen de refinementPicSet en orden de descodificación es la última imagen de la capa actual que precede a la primera de estas imágenes en orden de descodificación.
- De lo contrario, la última imagen en refinementPicSet en orden de descodificación es la última imagen en la capa actual dentro de la CVS en orden de descodificación.
Modificar la subcláusula D.3.13 de la siguiente manera:
El indicador_cancelar_características_grano_película igual a 1 indica que el mensaje SEI cancela la persistencia de cualquier mensaje SEI de características del grano de la película anterior en orden de salida que se aplica a la capa actual. indicador_cancelar_características_grano_película igual a 0 indica que la información del modelo de grano de la película sigue.
El indicador_persistencia_características_grano_película especifica la persistencia del mensaje SEI de
características del grano de la película para____la____capa____actual. El
indicador_persistencia_características_grano_película igual a 0 especifica que el mensaje SEI de las características del grano de la película se aplica únicamente a la imagen descodificada actual. Supongamos que picA es la imagen actual. El indicador_persistencia_características_grano_película igual a 1 especifica que el mensaje SEI de características del grano de la película persiste para la capa actual en orden de salida hasta que se cumpla cualquiera de las siguientes condiciones:
- Comienza una nueva CVS.
- El flujo de bits termina.
- Se emite una imagen picB de la capa actual en una unidad de acceso que contiene un mensaje SEI de características del grano de la película que es aplicable a la capa actual, para la cual PicOrderCnt(picB) es mayor que PicOrderCnt(picA), donde PicOrderCnt(picB) y PicOrderCnt(picA) son los valores de PicOrderCntVal de picB y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picB.
Modificar la subcláusula D.3.15 de la siguiente manera:
El indicador_cancelar_correlación_tonos igual a 1 indica que el mensaje SEI de información de correlación de tonos cancela la persistencia de cualquier mensaje SEI de información de correlación de tonos anterior en orden de salida que se aplica a la capa actual. El indicador_cancelar_correlación_tonos igual a 0 indica que sigue la información de correlación de tonos.
El indicador_persistencia_correlación_tonos especifica la persistencia del mensaje SEI de información de correlación de tonos para la capa actual.
indicador_persistencia_correlación_tonos igual a 0 especifica que la información de correlación de tonos se aplica solo a la imagen descodificada actual.
Supongamos que picA es la imagen actual. El indicador_persistencia_correlación_tonos igual a 1 especifica que la información de correlación de tonos persiste para la capa actual en orden de salida hasta que cualquiera de las siguientes condiciones sea verdadera:
- Comienza una nueva CVS.
- Una imagen picB de la capa actual en una unidad de acceso que contiene un mensaje SEI de información de correlación de tonos con el mismo valor de id_correlación_tonos y aplicable a la capa actual, es la salida para la cual PicOrderCnt(picB) es mayor que PicOrderCnt(picA), donde PicOrderCnt(picB) y PicOrderCnt(picA) son los valores de PicOrderCntVal de picB y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picB.
Modificar la subcláusula D.3.16 de la siguiente manera:
El indicador_cancelar_disposición_empaquetado_tramas igual a 1 indica que el mensaje SEI de la disposición de empaquetado de tramas cancela la persistencia de cualquier mensaje SEI de disposición de empaquetado de tramas anterior en el orden de salida que se aplica a la capa actual. El indicador_cancelar_disposición_empaquetado_tramas igual a 0 indica que sigue la información de la disposición de empaquetado de tramas.
El indicador_persistencia_disposición_empaquetado_tramas especifica la persistencia del mensaje SEI de disposición de empaquetado de tramas para la capa actual.
Modificar la subcláusula D.3.16 de la siguiente manera:
El indicador_persistencia_disposición_empaquetado_tramas igual a 0 especifica que el mensaje SEI de disposición de empaquetado de tramas se aplica únicamente a la trama descodificada actual.
Supongamos que picA es la imagen actual. El indicador_persistencia_disposición_empaquetado_tramas igual a 1 especifica que el mensaje SEI de disposición de empaquetado de tramas persiste para la capa actual en orden de salida hasta que cualquiera de las siguientes condiciones sea verdadera:
- Comienza una nueva CVS.
- El flujo de bits termina.
- Se emite una trama picB de la capa actual en una unidad de acceso que contiene un mensaje SEI de disposición de empaquetado de tramas con el mismo valor de id_disposición_empaquetado_tramas y aplicable a la capa actual para el cual PicOrderCnt(picB) es mayor que PicOrderCnt(picA), donde PicOrderCnt(picB) y PicOrderCnt(picA) son los valores de PicOrderCntVal de picB y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picB.
Modificar la subcláusula D.3.17 de la siguiente manera:
Cuando la capa actual no se indica como una capa de salida en cualquier conjunto de capas de salida, no debe haber un mensaje SEI de orientación visual aplicable a la capa actual.
NOTA 1 - Cuando una imagen picA que no está en la capa actual se usa como salida alternativa para una imagen en la capa actual, el mensaje SEI de orientación de visualización que se aplica a la capa actual, si corresponde, se aplicará a picA de salida.
El indicador_persistencia_orientación_visualización especifica la persistencia del mensaje SEI de orientación de visualización para la capa actual.
El indicador_persistencia_orientación_visualización igual a 0 especifica que el mensaje SEI de orientación de visualización se aplica únicamente a la imagen descodificada actual.
Supongamos que picA es la imagen actual. El indicador_persistencia_orientación_visualización igual a 1 especifica que el mensaje SEI de orientación de visualización persiste para la capa actual en orden de salida hasta que una o más de las siguientes condiciones sean verdaderas:
- Comienza una nueva CVS.
- El flujo de bits termina.
- Se emite una imagen picB en la capa actual en una unidad de acceso que contiene un mensaje SEI de orientación de visualización que es aplicable a la capa actual, para la cual PicOrderCnt(picB) es mayor que PicOrderCnt(picA), donde PicOrderCnt(picB) y PicOrderCnt(picA) son los valores de PicOrderCntVal de picB y picA, respectivamente, inmediatamente después de la invocación del proceso de descodificación para el recuento de orden de imagen para picB.
Modificar la subcláusula D.3.18 de la siguiente manera:
La estructura del mensaje SEI de información de imágenes proporciona información para una lista de entradas, algunas de las cuales corresponden a una serie de imágenes en orden de descodificación en la capa actual en la CVS.
La primera entrada en la estructura del mensaje SEI de información de imágenes corresponde a la imagen actual. Cuando hay una imagen en la capa actual que tiene PicOrderCntVal igual a la variable entryPicOrderCnt[i] como se especifica a continuación, la entrada i corresponde a la imagen. El orden de descodificación de las imágenes en la capa actual en la CVS que corresponde a las entradas en la estructura del mensaje SEI de información de imágenes corresponde a valores crecientes de i en la lista de entradas.
Cualquier imagen de la capa actual en la CVS que tenga PicOrderCntVal igual a entryPicOrderCnt[i] para cualquier i en el intervalo de 0 a num_entries_in_sop_minus1, inclusive, corresponderá a una entrada en la lista de entradas.
La estructura del mensaje SEI de información de imágenes no estará presente en una CVS y será aplicable para una capa para la cual el SPS activo tiene long_term_ref_pics_present_flag igual a 1 o num_short_term_ref_pic_sets igual a 0.
La estructura del mensaje SEI de información de imágenes no debe estar presente en ninguna unidad de acceso que tenga IdTemporal mayor que 0 o contenga un RASL. Imagen RADL o de subcapa de no referencia en la capa actual. Cualquier imagen de la capa actual en la CVS que corresponde a una entrada diferente a la primera entrada descrita en la estructura del mensaje SEI de información de imágenes no será una imagen IRAP.
Modificar la subcláusula D.3.19 de la siguiente manera:
Este mensaje proporciona un troceo para cada componente de color de la imagen descodificada actual,
Modificar la subcláusula D.3.19 de la siguiente manera: NOTA 1 - El mensaje SEI de troceo de imaaen descodificada es un mensaje SEI de sufijo y no puede estar contenido en un mensaje SEI de anidamiento escalable.
Modificar la subcláusula D.2.20 como sigue:
conjuntos de parámetros activos (tamañoCaraaÚtil)
{Descriptor
identificador de conjunto de parámetros activos
u(4)
de vídeo
indicador cvs autónoma
u(1)
indicador no actualización de conjunto de
u(1)
parámetros
identificadores número de sps menos1
ue(v)
for(i = 0: i <= id_num_sps_menos1: i++) {
id conjunto parámetros secuencia activosíil
ue(v)
id capa nuh objetivo[i]
u(6)
}
}
num_id_sps_menos1 más 1 indica y será igual al número de SPS a los que hacen referencia las unidades NAL de VCL de la unidad de acceso asociada con el mensaje SEI de los conjuntos de parámetros activos. Lo valores de id_num_sps_menos1 estarán dentro del intervalo de 0 y 15, inclusive. id_conjunto_parámetros_secuencia_activos[i] indica y debe ser igual al valor de id conjunto parámetros sec sps del SPS al que hacen referencia las unidades NAL de VCL con id capa nuh en el intervalo de id capa nuh objetivoíil a id capa nuh objetivoíi + 1l - 1. inclusive, de la unidad de acceso asociada
con el mensaje SEI. El valor de id_conjunto_parámetros_secuencia_activosji] estará en el intervalo entre 0 y 15, inclusive. id capa nuh objetivo[il especifica el identificadorCapaObjetivo asociado con
id conjunto parámetros secuencia activosíil. El valor de id capa nuh objetivoíil está en el intervalo de 0 a 62,
inclusive para i en el intervalo de 0 a id num sps menos1, inclusive. El valor de
id conjunto parámetros secuencia activosíil se establece para que sea iaual a 63.
Cuando este mensaje SEI esté presente, se aplicarán las siguientes condiciones de flujo de bits:
- el valor de id capa nuh objetivoí0l será 0
tivoíkl donde j no es igual a k, no será el mismo.
- el valor de id capa nuh objetivoíjl y id capa nuh obje
- el valor de id capa nuh objetivoíjl debe ser menor que el valor de id capa nuh objetivoíkl donde j es menor
que k. Modificar la subcláusula D.3.22 de la siguiente manera: El mensaje SEI del índice cero de la subcapa tem descodificador a detectar imágenes codificadas ausen ambas iguales a 0 y no son imágenes RASL, imágenes F Cuando un mensaje SEI de índice cero de subcapa tem aplica a la capa actual y la imagen actual no es una imac temporal que se aplica a la capa actual también debe es descodificación con IdTemporal igual a 0 y que contiene índice_cero_sub_capa_temporal indica un índice cero - Si el IdTemporal de la imagen actual es igual a 0, ín< subcapa temporal para la imagen actual. - De lo contrario, índice_cero_subcapa_temporal indica anterior en la capa actual en orden de descodificación co
iporal proporciona información que puede ayudar al tes que tienen IdTemporal y el indicador descartable
?ADL o imágenes de subcapa de no referencia. iporal está presente en la unidad de acceso actual y se ^en de IRAP, un mensaje SEI de índice cero de subcapa tar presente en la unidad de acceso anterior en orden de una imagen en la capa actual. de subcapa temporal de la siguiente manera: :lice_cero_subcapa_temporal indica el índice cero de la el índice cero de la subcapa temporal de la imagen n IdTemporal igual a 0.
Modificar la subcláusula D.3.22 de la siguiente manera: Cuando el flujo de bits contiene una unidad de acceso anterior en orden de descodificación que tiene IdTemporal igual a 0 y la imagen contenida en la capa actual tiene indicador descartable igual a 0 y no es una imagen RASL,
Modificar la subcláusula D.3.22 de la siguiente manera: una imagen RADL o una imagen de subcapa de no referencia
, y esa unidad de acceso anterior contiene un mensaje SEI de índice cero de subcapa temporal que se aplica a la capa actual, la variable prevTsl0Idx se establece igual al valor de índice_cero_subcapa_temporal de ese mensaje SEI.
Las siguientes restricciones se aplican al valor de índice_cero_subcapa_temporal:
- Si la imagen actual es una imagen de IRAP, índice_cero_subcapa_temporal será igual a 0.
- De lo contrario, se aplica lo siguiente:
- Si la imagen actual tiene IdTemporal y el indicador descartable ambos iguales a 0 y no es una imagen RASL, una imagen RADL, o una imagen de subcapa de no referencia, índice_cero_subcapa_temporal será igual a (prevTsl0Idx + 1) % 256.
- De lo contrario, índice_cero_subcapa_temporal será igual a prevTsl0Idx.
irap_pic_id es un identificador de imagen de IRAP para la capa actual. Cuando la imagen actual no es la primera imagen de la capa actual en el flujo de bits en orden de descodificación y la imagen de IRAP anterior de la capa actual en orden de descodificación tiene un mensaje asociado SEI de índice cero de subcapa temporal, las siguientes restricciones se aplican al valor de irap_pic_id:
- Si la imagen actual es una imagen de IRAP, irap_pic_id diferirá en valor del valor de irap_pic_id del mensaje SEI de índice cero de subcapa temporal asociado con la imagen de IRAP anterior de la capa actual en orden de descodificación.
NOTA - Se sugiere que el valor de irap_pic_id se establezca en un valor aleatorio (sujeto a las restricciones especificadas en el presente documento), para minimizar la probabilidad de que aparezcan valores duplicados en la capa a en el flujo de bits debido a pérdidas de imagen u operaciones de empalme.
Modificar la subcláusula D.2.20 de la siguiente manera:
- De lo contrario, irap_pic_id será igual al valor de irap_pic_id del mensaje SEI de índice cero de subcapa temporal asociado con la imagen de IRAP anterior en la capa actual en orden de descodificación.
Modificar la subcláusula D.3.24 de la siguiente manera:
El mensaje SEI de información de actualización de región indica si los segmentos del fragmento a los que se aplica el mensaje SEI actual pertenecen a una región actualizada de la imagen actual.
La variable listaIdCapaObjetivo se obtiene como sigue:
- Si el mensaje SEI de información de actualización de región se aplica a la capa actual y a todas las capas de referencia, listaIdCapaObjetivo contiene el id capa nuh de la capa actual y todas las capas de referencia
- De lo contrario, listaIdCapaObjetivo contiene id capa nuh de la capa actual.
El mensaje SEI de actualización de región está asociado con un mensaje SEI de punto de recuperación que se aplica a listaIdCapaObjetivo.
De forma alternativa, el mensaje SEI de actualización de región está asociado con un mensaje SEI de punto de recuperación que se aplica a listaIdCapaObjetivo y que no se aplica a ninguna otra capa.
De forma alternativa, el mensaje SEI de actualización de región puede asociarse con cualquier mensaje SEI de punto de recuperación que se aplique a listaIdCapaObjetivo.
Una imagen que pertenece a una capa con id capa nuh mayor que 0 o una imagen que no es una imagen de IRAP y pertenece a la capa con id capa nuh igual a 0, que está contenida en una unidad de acceso que contiene un mensaje SEI punto de recuperación donde el mensaje SEI de punto de recuperación se aplica a esa capa se denomina imagen de actualización de descodificación gradual (GDR), y la unidad de acceso que contiene la imagen se denomina unidad de acceso GDR. La unidad de acceso correspondiente a la imagen de punto de recuperación indicada se denomina unidad de acceso de punto de recuperación.
Si hay una imagen picB en la capa actual que sigue a la imagen GDR picA en la capa actual en orden de descodificación en la CVS y PicOrderCnt(picB) es igual a PicOrderCnt(picA) más el valor de recovery_poc_cnt en el mensaje SEI del punto de recuperación, donde PicOrderCnt(picA) y PicOrderCnt(picB) son los valores PicOrderCntVal de picA y picB, respectivamente, inmediatamente después de la invocación del proceso de descodificación
para el recuento de orden de imagen para picB, supongamos que la variable lastPicInSet es la imagen del punto de recuperación. De lo contrario, supongamos que lastPicInSet es la imagen en listaIdCapaObjetivo que precede inmediatamente a la imagen del punto de recuperación en el orden de salida. La imagen lastPicInSet no debe preceder a la unidad de acceso GDR en orden de descodificación.
Modificar la subcláusula D.3.24 de la siguiente manera:
Supongamos que gdrPicSet es el conjunto de imágenes en listaldCapaObietivo desde una unidad de acceso GDR a la unidad de acceso que contiene lastPiclnSet, inclusive, en orden de salida. Cuando se inicia el proceso de descodificación para la capa actual desde una unidad de acceso GDR, la región actualizada en cada imagen de gdrPicSet se indica como la región de la imagen que es correcta o aproximadamente correcta en contenido, y, cuando lastPiclnSet está contenido en la unidad de acceso del punto de recuperación, la región actualizada en lastPiclnSet cubre toda la imagen.
Los segmentos del fragmento de la imagen actual a los que se aplica un mensaje SEI de información de actualización de región consisten en todos los segmentos del fragmento dentro de la imagen que siguen a la unidad NAL SEI que contiene el mensaje SEI de información de actualización de región y que preceden a la siguiente unidad NAL SEI, en orden de descodificación, que contiene un mensaje SEI de información de actualización de región (si existe) que tiene la misma listaIdCapaObjetivo que el mensaje SEI actual. Estos segmentos del fragmento se denominan segmentos de fragmento asociados con el mensaje SEI de información de actualización de región.
Los mensajes SEI de información de actualización de región no estarán presentes en una unidad de acceso a menos que la unidad de acceso esté incluida en un gdrAuSet asociado con un mensaje SEI de punto de recuperación. Cuando cualquier imagen que se incluye en un gdrPicSet está asociada con uno o más mensajes SEI de información de actualización de región, todas las imágenes del gdrPicSet estarán asociadas con uno o más mensajes SEI de información de actualización región.
Cuando uno o más mensajes SEI de información de actualización de región están asociados con una imagen que pertenece a gdrPicSet y el primer segmento del fragmento de la imagen en orden de descodificación no tiene un mensaje SEI de información de actualización de región asociado, el valor de indicador_región_actualizada para los segmentos del fragmento de la imagen que precede al primer mensaje SEI de información de actualización de la región, se deduce que es igual a 0.
Cuando lastPicInSet es la imagen del punto de recuperación y cualquier mensaje SEI de actualización de región está asociada a la unidad de acceso del punto de recuperación, el primer segmento del fragmento de la imagen en orden de descodificación tendrá un mensaje SEI de actualización de región asociado, y el valor de indicador_region_actualizada será igual a 1 en todos los mensajes de actualización de región asociados con la imagen.
Cuando uno o más mensajes SEI de información de actualización de región están asociados con una imagen, la región actualizada de la imagen se especifica como el conjunto de CTU en todos los segmentos del fragmento de la imagen que están asociados con los mensajes SEI de información de actualización de región que tienen el indicador_región_actualizada igual a 1. Otros segmentos del fragmento pertenecen a la región no actualizada de la imagen.
Supongamos que gdrRefreshedSliceSegmentSet es el conjunto de todos los segmentos del fragmento que pertenece a las regiones actualizadas en gdrPicSet. La variable upSwitchingRefreshedSliceSegmentSet se obtiene de la siguiente manera:
- Si listaIdCapaObjetivo contiene solo un id capa nuh distinto de cero, upSwitchingRefreshedSliceSegmentSet se define como el conjunto que incluye lo siguiente:
- todos los segmentos del fragmento de todas las imágenes de las capas de referencia que preceden, en orden de descodificación, a la imagen actual y que pueden usarse como referencia por la imagen actual o las imágenes posteriores de las capas de referencia.
- todos los segmentos del fragmento de todas las imágenes de las capas de referencia posteriores, en orden de descodificación, a la imagen actual y que pertenecen a gdrAuSet.
- De lo contrario, upSwitchingRefreshedSliceSegmentSet se define como un conjunto vacío.
Cuando gdrPicSet contiene una o más imágenes asociadas con los mensajes SEI de información de actualización de región
, es un requisito de la conformidad del flujo de bits que se apliquen todas las siguientes restricciones:
- Para cada capa en listaIdCapaObjetivo, la región actualizada en la primera imagen en orden de descodificación, que pertenece a la capa y que está incluida en gdrPicSet que contiene cualquier región actualizada, debe contener solo unidades de codificación que están codificadas en un modo intracodificación o de predicción entre capas de segmentos del fragmento que pertenecen a la unión de gdrRefreshedSliceSegmentSet y upSwitchingRefreshedSliceSegmentSet.
- Para cada imagen incluida en gdrPicSet, los elementos sintácticos en gdrRefreshedSliceSegmentSet estarán restringidos de manera que no se utilicen muestras o valores de vectores de movimiento fuera de la unión de gdrRefreshedSliceSegmentSet y upSwitchingRefreshedSliceSegmentSet para la interpredicción o predicción entre capas 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 sintácticos en los
5
10
15
20
25
30
35
Modificar la subcláusula D.3.24 de la siguiente manera:
segmentos del fragmento de la imagen estarán restringidos de manera que no haya muestras o valores de vectores de movimiento fuera de la unión de gdrRefreshedSliceSegmentSet y upSwitchingRefreshedSliceSegmentSet que se utilicen para la interpredicción o la predicción entre capas en el proceso de descodificación de la imagen que no sean las de las otras imágenes que siguen a la imagen lastPicInSet en orden de salida.
F.3 Definiciones
A los efectos del presente anexo, las siguientes definiciones se aplican además de las definiciones en la cláusula 3. Estas definiciones no están presentes en la cláusula 3 o reemplazan las definiciones en la cláusula 3.
F.3.3 capa de salida alternativa: Una capa que es una capa de referencia directa o una capa de referencia indirecta de una capa de salida y que puede incluir una imagen que puede emitirse cuando no hay una imagen de la capa de salida presente en la unidad de acceso que contiene la imagen.
F.7.4.3.1 Semántica RBSP del conjunto de parámetros de vídeo
Las especificaciones en la subcláusula 7.4.3.1 se aplican con las siguientes modificaciones y adiciones:
- layerSetLayerIdList es reemplazada por LayerSetLayerIdList.
- numLayersInIdList es reemplazada por NumLayersInIdList.
- Reemplazar "Cada punto de operación se identifica por la lista de identificador de la capa asociada, denominada OpLayerIdList, que consiste en la lista de valores id_capa_nuh de todas las unidades NAL incluidas en el punto de operación, en orden creciente de valores id_capa_nuh, y una variable OpTid, que es igual al mayor IdTemporal de todas las unidades NAL incluidas en el punto de operación". por "Cada punto de operación se identifica por la lista de identificador de capa asociada, designada como OpLayerIdList, que consiste en la lista de valores id capa nuh de todas las unidades NAL incluidas en el punto de operación, en orden creciente de valores id_capa_nuh, y una variable OpTid, que es igual al mayor IdTemporal de todas las unidades NAL incluidas en el punto de operación. Cada punto de operación de salida está asociado con un punto de operación e identificado por una lista de valores id_capa_nuh de todas las imágenes que se van a emitir, en orden creciente de valores id_capa_nuh, indicada como OptLayerIdList, y e] OpTid del punto de operación asociado. OpLayerIdList del punto de operación asociado con un punto de operación de salida también se denomina OpLayerIdList del punto de operación de salida.
Otras Consideraciones
[188] La información y las señales divulgadas en el presente documento pueden representarse usando cualquiera de varias tecnologías y técnicas diferentes. Por ejemplo, los datos, las instrucciones, los comandos, la información, las señales, los bits, los símbolos y los elementos que puedan haber sido mencionados a lo largo de la descripción anterior pueden representarse mediante voltajes, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos, o cualquier combinación de los mismos.
[189] Los diversos bloques lógicos y etapas de algoritmo ilustrativos descritos en conexión con los modos de realización divulgados en el presente documento pueden implementarse como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, anteriormente se han descrito, en general, diversos componentes, bloques y etapas ilustrativas en términos de su funcionalidad. Si dicha funcionalidad se implementa como hardware o software depende de la aplicación particular y de las restricciones de diseño impuestas al sistema global. Los expertos en la materia pueden implementar la funcionalidad descrita de varias maneras para cada aplicación particular, pero no se debería interpretar que dichas decisiones de implementación suponen apartarse del alcance de la presente divulgación.
[190] Las técnicas descritas en el presente documento pueden implementarse en hardware, software, firmware o en cualquier combinación de lo anterior. Dichas técnicas pueden implementarse en cualquiera de una variedad de dispositivos tales como ordenadores de propósito general, equipos de dispositivos de comunicación inalámbrica o dispositivos de circuitos integrados que tienen múltiples usos, incluyendo su aplicación en equipos de dispositivos de comunicación inalámbrica y otros dispositivos. Cualesquiera características descritas como dispositivos o componentes pueden implementarse juntas en un dispositivo lógico integrado o por separado, como dispositivos lógicos discretos pero interoperables. Si se implementan en software, las técnicas pueden realizarse al menos en parte mediante un medio de almacenamiento de datos legible por ordenador que comprende código de programa que incluye instrucciones que, cuando se ejecutan, realizan uno o más de los procedimientos descritos anteriormente. El medio de almacenamiento de datos legible por ordenador puede formar parte de un producto de programa informático, que puede incluir materiales de empaquetado. El medio legible por ordenador puede comprender memoria o medios de almacenamiento de datos, tales como memoria de acceso aleatorio (RAM) tal como memoria de acceso aleatorio dinámica síncrona (SDRAM), memoria de sólo lectura (ROM), memoria de acceso aleatorio no volátil (NVRAM), memoria de sólo lectura programable y borrable eléctricamente (EEPROM), memoria flash, medios de almacenamiento de datos magnéticos u ópticos y
5
10
15
20
25
30
35
40
similares. Las técnicas se pueden realizar adicionalmente, o de forma alternativa, al menos en parte por un medio de comunicación legible por ordenador que lleva o comunica código de programa en forma de instrucciones o estructuras de datos y al que se puede acceder, leer y/o ejecutar por medio de un ordenador, tales como señales u ondas propagadas.
[191] El código de programa puede ser ejecutado por un procesador, que puede incluir uno o más procesadores, tales como uno o más DSP, microprocesadores de propósito general, ASIC, FPGA u otro circuito lógico integrado o discreto equivalente. Un procesador de este tipo puede estar configurado para realizar cualquiera de las técnicas descritas en esta divulgación. Un procesador de propósito general puede ser un microprocesador, pero, como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo. Por consiguiente, el término "procesador", como se usa en el presente documento puede referirse a cualquier estructura anterior, cualquier combinación de la estructura anterior, o cualquier otra estructura o aparato adecuados para la aplicación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de software o hardware dedicados configurados para la codificación y la descodificación, o incorporados en un codificador-descodificador de vídeo combinado (CODEC). Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
[192] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Varios componentes o unidades se describen en esta divulgación para enfatizar los aspectos funcionales de los dispositivos configurados para realizar las técnicas divulgadas, pero no necesariamente requieren la realización de diferentes unidades de hardware. Más bien, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por una colección de unidades de hardware interoperativas, incluyendo uno o más procesadores como se describe anteriormente, junto con el software y/o firmware adecuados.
[193] Aunque lo anterior ha sido descrito en conexión con diversos modos de realización diferentes, las características o elementos de un modo de realización se pueden combinar con otros modos de realización sin apartarse de las enseñanzas de esta divulgación. Por ejemplo, un mensaje SEI de punto de recuperación de anidamiento escalable puede asociarse con una pluralidad de imágenes en una unidad de acceso y un único mensaje SEI de punto de recuperación puede estar asociado adicionalmente con una de las imágenes de la misma unidad de acceso. El mensaje SEI de punto de recuperación único puede asociarse con una de las mismas imágenes que está asociada con el mensaje SEI de punto de recuperación de anidamiento escalable o una imagen no asociada diferente. También se contemplan combinaciones similares de características que incluyen la adición de un mensaje SEI de información de actualización de región con una imagen asociada con un mensaje SEI de punto de recuperación; sin embargo, las combinaciones de características entre los respectivos modos de realización no están necesariamente limitadas a esto.
[194] Se han descrito diversos modos de realización de la divulgación. Estos y otros modos de realización están dentro del alcance de las siguientes reivindicaciones.

Claims (15)

10
15
20
25
30
2.
35
3.
40
4.
45
5.
50
6.
55
7.
60
8.
REIVINDICACIONES
Un dispositivo para asociar la semántica de la información de codificación de vídeo asociada con una unidad de acceso con un conjunto de capas o un conjunto de puntos de operación de un flujo de bits de múltiples capas, que comprende:
medios para almacenar información de vídeo asociada con el flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje de información de mejora suplementaria (SEI); y
medios para determinar, basándose en un identificador del mensaje SEI, si el mensaje SEI pertenece a uno de una primera categoría de mensajes SEI que incluye mensajes SEI de período de almacenamiento temporal, mensajes SEI de temporización de imagen o mensajes SEI de información de la unidad de descodificación y de una segunda categoría de mensajes SEI que incluye mensajes SEI diferentes de los mensajes SEI de periodo de almacenamiento temporal, mensajes SEI de temporización de imágenes y mensajes SEI de información de la unidad de descodificación;
medios para determinar cuándo el mensaje SEI se aplica al conjunto de puntos de operación y cuando el mensaje SEI se aplica al conjunto de capas;
medios para aplicar cada semántica del mensaje SEI independientemente a cada punto de operación del conjunto de puntos de operación en respuesta al mensaje SEI que pertenece a la primera categoría de mensajes SEI y que se aplica al conjunto de puntos de operación a los que se aplica el mensaje SEI;
medios para aplicar cada semántica del mensaje SEI al conjunto de capas de acuerdo con uno o más indicadores del mensaje SEI en respuesta al mensaje SEI que pertenece a la primera categoría de mensajes SEI, que están anidados, y que se aplica al conjunto de capas; y
medios para aplicar cada semántica del mensaje SEI independientemente a cada capa del conjunto de capas a las que se aplica el mensaje SEI en respuesta a que el mensaje SEI pertenece a una segunda categoría de mensajes SEI y que se aplica al conjunto de capas.
El dispositivo según la reivindicación 1, en el que cada punto de operación del conjunto de puntos de operación está asociado con una unidad de acceso que comprende un subconjunto de flujos de bits del flujo de bits de múltiples capas, en el que el subconjunto de flujos de bits comprende al menos una de las capas indicadas por cada punto de operación.
El dispositivo según la reivindicación 1, en el que el otro mensaje SEI comprende un mensaje SEI de índice cero de subcapa temporal, estando el mensaje SEI de índice cero de subcapa temporal configurado para considerar si una imagen es descartable al determinar si falta una imagen.
El dispositivo según la reivindicación 1, en el que el otro mensaje SEI está configurado para comprender más de un conjunto de parámetros de secuencia (SPS).
El dispositivo según la reivindicación 1, en el que cada punto de operación entre el conjunto de puntos de operación está asociado con una secuencia de vídeo codificada (CVS) que comprende una o más unidades de acceso, donde la una o más unidades de acceso comprenden un subconjunto de flujos de bits del flujo de bits de múltiples capas, y en el que el subconjunto de flujos de bits comprende al menos una de las capas según lo indicado por la CVS.
El dispositivo según la reivindicación 1, configurado además para codificar la información de codificación de vídeo del conjunto de puntos de operación o el conjunto de capas basándose, al menos en parte, en el identificador del mensaje SEI.
El dispositivo según la reivindicación 1, en el que el mensaje SEI que pertenece a la primera categoría de mensajes SEI incluye el mensaje SEI de período de almacenamiento temporal si al menos una imagen de la unidad de acceso a la que se aplica el mensaje SEI no puede descartarse intencionadamente sin afectar a la capacidad de descodificación de otra imagen.
El dispositivo según la reivindicación 1, en el que el mensaje SEI perteneciente a la segunda categoría de mensajes SEI proporciona información para ayudar a un codificador a detectar las imágenes codificadas que faltan, en el que un valor de una sintaxis del mensaje SEI aumenta solo cuando una imagen asociada con el mensaje SEI es una imagen de anclaje que no puede descartarse intencionalmente sin afectar la capacidad de descodificabilidad de otra imagen.
5
10
15
20
25
30
35
40
45
50
55
60
65
9. El dispositivo según la reivindicación 1, en el que la segunda categoría de mensajes SEI incluye mensajes SEI de rectángulo de barrido panorámico, mensajes SEI de inicio de segmento de refinamiento progresivo, mensajes SEI de características del grano de la película, mensajes SEI de información de correlación de tonos, mensajes SEI de disposición de empaquetado de tramas y mensajes SEI de orientación de visualización.
10. El dispositivo según la reivindicación 9, en el que la semántica de persistencia del mensaje SEI que pertenece a la segunda categoría de mensajes SEI está asociada a una capa a la que se aplica el mensaje SEI de la segunda categoría de mensajes SEI.
11. El dispositivo según la reivindicación 4, en el que cada SPS de más de un SPS está asociado con al menos uno del conjunto de capas, en el que el mensaje SEI que pertenece a la segunda categoría de mensajes SEI es preferiblemente un mensaje SEI de conjunto de parámetros activos, comprendiendo el mensaje SEI de conjunto de parámetros activos un mecanismo para correlacionar cada SPS de más de un SPS al menos a uno del conjunto de capas, y en el que el mensaje SEI de conjunto de parámetros activos preferentemente comprende además una semántica que especifica una capa entre el conjunto de capas asociadas con la SPS.
12. El dispositivo según la reivindicación 1, en el que el dispositivo es un dispositivo de comunicación inalámbrica, que comprende además un receptor configurado para recibir datos de vídeo codificados, comprendiendo los datos de vídeo codificados la unidad de acceso del flujo de bits de múltiples capas, en el que el dispositivo es preferentemente un teléfono celular y el vídeo codificado es recibido por el receptor y modulado de acuerdo con un estándar de comunicación celular.
13. Un procedimiento para asociar la semántica de la información de codificación de vídeo asociada con una unidad de acceso con un conjunto de capas o un conjunto de puntos de operación de un flujo de bits de múltiples capas, que comprende:
almacenar información de vídeo asociada con el flujo de bits de múltiples capas, comprendiendo la información de vídeo almacenada un mensaje (SEI) de información de mejora suplementaria;
determinar, basándose en un identificador del mensaje SEI, si el mensaje SEI pertenece a una de una primera categoría de mensajes SEI que incluye mensajes SEI de período de almacenamiento temporal, mensajes SEI de temporización de imagen o mensajes SEI de información de la unidad de descodificación y una segunda categoría de mensajes SEI que incluye un mensaje SEI diferente de los mensajes SEI de período de almacenamiento temporal, mensajes SEI de temporización de imagen y mensajes SEI de información de la unidad de descodificación;
determinar cuándo el mensaje SEI se aplica al conjunto de puntos de operación y cuándo el mensaje SEI se aplica al conjunto de capas;
en respuesta al mensaje SEI perteneciente a la primera categoría de mensajes SEI, estando anidado y aplicado al conjunto de puntos de operación, aplicando cada semántica del mensaje SEI independientemente a cada punto de operación del conjunto de puntos de operación al que se aplica el mensaje SEI;
en respuesta a que el mensaje SEI que pertenece a la primera categoría de mensajes SEI, que está anidado y que se aplica al conjunto de capas, aplicando la semántica del mensaje SEI al conjunto de capas de acuerdo con uno o más indicadores de los mensajes SEI;
y
en respuesta a que el mensaje SEI pertenece a una segunda categoría de mensajes SEI y que se aplica al conjunto de capas, aplicando cada semántica del mensaje SEI independientemente a cada capa del conjunto de capas a las que se aplica el mensaje SEI.
14. El procedimiento según la reivindicación 13, que comprende además asociar cada punto de operación del conjunto de puntos de operación con:
una unidad de acceso que comprende un subconjunto de flujos de bits del flujo de bits de múltiples capas, donde el subconjunto de flujos de bits comprende al menos una de las capas como se indica por cada punto de operación; o,
una secuencia de vídeo codificada (CVS) que comprende una o más unidades de acceso, donde la una o más unidades de acceso comprenden un subconjunto de flujos de bits del flujo de bits de
múltiples capas, y donde el subconjunto de flujos de bits comprende al menos una de las capas como lo indica la CVS.
15. Un medio de almacenamiento legible por ordenador no transitorio que tiene instrucciones almacenadas en 5 el mismo que, cuando son ejecutadas, hacen que un procesador de un dispositivo realice el
procedimiento de acuerdo con las reivindicaciones 13 o la reivindicación 14.
ES15716623.2T 2014-03-24 2015-03-23 Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas Active ES2681502T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461969798P 2014-03-24 2014-03-24
US201461969798P 2014-03-24
US201514664699 2015-03-20
US14/664,699 US10136152B2 (en) 2014-03-24 2015-03-20 Use of specific HEVC SEI messages for multi-layer video codecs
PCT/US2015/022005 WO2015148374A1 (en) 2014-03-24 2015-03-23 Use of specific hevc sei messages for multi-layer video codecs

Publications (1)

Publication Number Publication Date
ES2681502T3 true ES2681502T3 (es) 2018-09-13

Family

ID=54143332

Family Applications (2)

Application Number Title Priority Date Filing Date
ES15714379T Active ES2697426T3 (es) 2014-03-24 2015-03-23 Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas
ES15716623.2T Active ES2681502T3 (es) 2014-03-24 2015-03-23 Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES15714379T Active ES2697426T3 (es) 2014-03-24 2015-03-23 Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas

Country Status (9)

Country Link
US (2) US10136152B2 (es)
EP (2) EP3123723B1 (es)
JP (2) JP6510553B2 (es)
KR (2) KR101969631B1 (es)
CN (2) CN106165426B (es)
ES (2) ES2697426T3 (es)
HU (2) HUE038322T2 (es)
MX (2) MX359086B (es)
WO (2) WO2015148380A2 (es)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102223751B1 (ko) * 2013-07-12 2021-03-05 소니 주식회사 재생 장치, 재생 방법, 및 기록 매체
US10136152B2 (en) 2014-03-24 2018-11-20 Qualcomm Incorporated Use of specific HEVC SEI messages for multi-layer video codecs
WO2016171508A1 (ko) * 2015-04-23 2016-10-27 엘지전자 주식회사 방송 신호 송수신 방법 및 장치
FR3049142A1 (fr) * 2016-03-16 2017-09-22 Orange Acquisition d'extraits d'un flux multimedia sur un terminal
US10834153B2 (en) * 2016-08-24 2020-11-10 Qualcomm Incorporated System level signaling of SEI tracks for media data streaming
US10979729B2 (en) * 2016-11-30 2021-04-13 Qualcomm Incorporated Systems and methods for signaling and constraining a high dynamic range (HDR) video system with dynamic metadata
JP7077396B2 (ja) 2017-04-21 2022-05-30 ゼニマックス メディア インク. ビデオエンコードの延期されたポストプロセスのためのシステムおよび方法
US10630994B2 (en) * 2017-06-28 2020-04-21 Agora Lab, Inc. Specific operation prediction in video compression
CN109194966B (zh) * 2018-08-03 2021-04-27 广州酷狗计算机科技有限公司 Sei消息的有效载荷获取方法、装置和存储介质
GB2594803B (en) * 2018-10-03 2022-10-19 V Nova Int Ltd Weighted downsampling and weighted transformations for signal coding
WO2020094010A1 (en) 2018-11-05 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Prediction precision improvements video coding
CN113366843A (zh) 2018-12-20 2021-09-07 瑞典爱立信有限公司 恢复点的规范指示
US11889118B2 (en) * 2019-02-24 2024-01-30 Sharp Kabushiki Kaisha Systems and methods for signaling types of pictures and associated information in video coding
WO2020185957A1 (en) * 2019-03-11 2020-09-17 Futurewei Technologies, Inc. Gradual decoding refresh in video coding
EP3970380A4 (en) * 2019-05-16 2023-04-05 Nokia Technologies Oy APPARATUS, METHOD AND COMPUTER PROGRAM FOR HANDLING RANDOM ACCESS IMAGES IN VIDEO ENCODING
CN113994704B (zh) * 2019-06-18 2024-05-17 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
US20220256194A1 (en) * 2019-06-20 2022-08-11 Sony Semiconductor Solutions Corporation Image processing apparatus and method
GB2587365B (en) * 2019-09-24 2023-02-22 Canon Kk Method, device, and computer program for coding and decoding a picture
CN114514747A (zh) * 2019-09-24 2022-05-17 华为技术有限公司 用于ols的可伸缩嵌套式sei消息
CN114424527B (zh) * 2019-09-24 2023-07-11 华为技术有限公司 所有层可伸缩嵌套式sei消息的设置方法和装置
KR20220063273A (ko) * 2019-09-24 2022-05-17 후아웨이 테크놀러지 컴퍼니 리미티드 다층 비디오 비트스트림에 대한 dpb 파라미터의 시그널링 기법
EP4062640A4 (en) 2019-12-26 2023-01-11 ByteDance Inc. PROFILE, ROW AND LAYER INDICATION IN VIDEO CODING
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
WO2021134055A1 (en) * 2019-12-27 2021-07-01 Bytedance Inc. Subpicture signaling in parameter sets
US11343524B2 (en) * 2019-12-27 2022-05-24 Tencent America LLC Method for adaptation parameter set reference and constraints in coded video stream
US11356698B2 (en) * 2019-12-30 2022-06-07 Tencent America LLC Method for parameter set reference constraints in coded video stream
JP7457130B2 (ja) * 2020-01-09 2024-03-27 バイトダンス インコーポレイテッド 異なるseiメッセージのデコーディング順序
WO2021235411A1 (ja) * 2020-05-19 2021-11-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
KR20230013051A (ko) 2020-05-22 2023-01-26 바이트댄스 아이엔씨 코딩된 비디오의 nal 유닛의 순서
WO2021246841A1 (ko) * 2020-06-06 2021-12-09 엘지전자 주식회사 레이어 정보 시그널링 기반 영상 코딩 장치 및 방법
EP4154542A4 (en) 2020-06-09 2023-10-11 ByteDance Inc. CONSTRAINTS ON ADDITIONAL ENHANCEMENT INFORMATION IN VIDEO CODING
WO2021252978A1 (en) * 2020-06-12 2021-12-16 Bytedance Inc. Constraints on picture output ordering in a video bitstream
CN115804091A (zh) * 2020-06-22 2023-03-14 抖音视界有限公司 访问单元分隔符,以及视频编解码中的通用约束信息
US11962936B2 (en) 2020-09-29 2024-04-16 Lemon Inc. Syntax for dependent random access point indication in video bitstreams
US11930222B1 (en) * 2021-03-30 2024-03-12 Amazon Technologies, Inc. Encoding video for film grain synthesis
JP2024514323A (ja) * 2021-04-12 2024-04-01 テレフオンアクチーボラゲット エルエム エリクソン(パブル) メッセージ参照
US11936913B2 (en) * 2021-06-28 2024-03-19 Tencent America LLC Warping-based decoded picture resampling supplementary enhancement information message
US11785239B2 (en) * 2021-06-29 2023-10-10 Tencent America LLC Independent coded region output supplementary enhancement information message
WO2024039723A1 (en) * 2022-08-17 2024-02-22 Bytedance Inc. Presence and relative decoding order of neural-network post-filter sei messages

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0610398B1 (pt) * 2005-04-13 2019-07-02 Nokia Technologies Oy Método e aparelho
US20100189182A1 (en) * 2009-01-28 2010-07-29 Nokia Corporation Method and apparatus for video coding and decoding
US9113172B2 (en) 2011-01-14 2015-08-18 Vidyo, Inc. Techniques for describing temporal coding structure
US9706227B2 (en) * 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
JP2012249137A (ja) 2011-05-30 2012-12-13 Sony Corp 記録装置、記録方法、再生装置、再生方法、プログラム、および記録再生装置
WO2013030458A1 (en) * 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding
US20140218473A1 (en) * 2013-01-07 2014-08-07 Nokia Corporation Method and apparatus for video coding and decoding
KR20140122200A (ko) * 2013-04-05 2014-10-17 삼성전자주식회사 멀티 레이어 비디오의 복호화 방법 및 장치, 멀티 레이어 비디오의 부호화 방법 및 장치
US20150103895A1 (en) * 2013-10-13 2015-04-16 Sharp Laboratories Of America, Inc. Electronic devices for signaling multiple initial buffering parameters
CN106416250B (zh) * 2013-12-02 2020-12-04 诺基亚技术有限公司 视频编码和解码
CN104754358B (zh) * 2013-12-27 2019-02-19 中兴通讯股份有限公司 码流的生成和处理方法、装置及系统
US10136152B2 (en) 2014-03-24 2018-11-20 Qualcomm Incorporated Use of specific HEVC SEI messages for multi-layer video codecs

Also Published As

Publication number Publication date
EP3123723A1 (en) 2017-02-01
BR112016022251A2 (pt) 2017-08-15
CN106165427B (zh) 2019-02-15
BR112016022253A8 (pt) 2021-07-13
MX2016012049A (es) 2017-01-19
KR20160135788A (ko) 2016-11-28
MX361285B (es) 2018-12-03
KR20160135793A (ko) 2016-11-28
BR112016022251A8 (pt) 2021-07-13
MX2016012128A (es) 2017-01-19
US10136152B2 (en) 2018-11-20
WO2015148380A3 (en) 2015-12-03
JP2017513373A (ja) 2017-05-25
ES2697426T3 (es) 2019-01-23
JP6510553B2 (ja) 2019-05-08
EP3123722A2 (en) 2017-02-01
EP3123723B1 (en) 2018-04-25
BR112016022253A2 (pt) 2017-08-15
KR102014587B1 (ko) 2019-08-26
KR101969631B1 (ko) 2019-04-16
CN106165426B (zh) 2019-03-12
HUE038322T2 (hu) 2018-10-29
CN106165426A (zh) 2016-11-23
WO2015148374A1 (en) 2015-10-01
HUE040006T2 (hu) 2019-02-28
US10880565B2 (en) 2020-12-29
US20150271513A1 (en) 2015-09-24
JP6534681B2 (ja) 2019-06-26
MX359086B (es) 2018-09-03
US20150271525A1 (en) 2015-09-24
JP2017514363A (ja) 2017-06-01
WO2015148380A2 (en) 2015-10-01
CN106165427A (zh) 2016-11-23
EP3123722B1 (en) 2018-08-15

Similar Documents

Publication Publication Date Title
ES2681502T3 (es) Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas
ES2951060T3 (es) Señalización de identificadores de subimágenes en la codificación de vídeo
ES2854274T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
ES2744201T3 (es) Dispositivo y procedimiento para la codificación escalable de información de vídeo
ES2879635T3 (es) Vaciado de imágenes e inferencia de parámetros de búfer de imágenes decodificadas para flujos de bits multicapa
ES2727814T3 (es) Estructura sintáctica de parámetros de descodificador hipotético de referencia
KR101776448B1 (ko) 비디오 코딩에 있어서의 비-네스팅된 sei 메시지들
ES2889976T3 (es) Derivación de información de anidación de ID temporal de SPS para flujos de datos multicapa
ES2724925T3 (es) Modelo hipotético de descodificador de referencia y conformidad para imágenes omitidas de acceso aleatorio de capa cruzada
ES2778463T3 (es) Inferencia mejorada de indicador de no emisión de imagen previa en codificación de video
ES2748561T3 (es) Unidades de acceso IRAP y conmutación y empalme de flujos de bits
ES2613003T3 (es) Señalización de información de obtención de pulso de reloj para la temporización de vídeo en la codificación de vídeo
ES2795682T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
EP3090551B1 (en) Support of base layer of a different codec in multi-layer video coding
BR112016015893B1 (pt) Método de decodificação de informações de vídeo, aparelho configurado para decodificar informações de vídeo e memória legível por computador
ES2834481T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
ES2887369T3 (es) Método y dispositivo para decodificar un conjunto de instantáneas de referencia inter capa (RPS) en decodificación multicapa
BR112016029611B1 (pt) Aparelho e método para codificar informações de vídeo em codificação de vídeo de alta eficiência, e, memória legível por computador
ES2944451T3 (es) Señalización de identificaciones de subimagen en codificación de vídeo basada en subimagen
BR112016022253B1 (pt) Dispositivo para associar semânticas de informações de comunicação de vídeo, método para associar semânticas de informações de codificação de vídeo e memória
BR112016022251B1 (pt) Uso de mensagens de sei de hevc específicas para codecs de vídeo de multicamada
BR112016015560B1 (pt) Método e aparelho para codificar informações de vídeo de um fluxo de bits de múltiplas camadas e memória legível por computador
BR112016015560A2 (pt) Método para codificar um conjunto de imagem de referência (rps) em codificação multicamada