ES2895442T3 - Dispositivo y método para la codificación escalable de información de video - Google Patents

Dispositivo y método para la codificación escalable de información de video Download PDF

Info

Publication number
ES2895442T3
ES2895442T3 ES14789950T ES14789950T ES2895442T3 ES 2895442 T3 ES2895442 T3 ES 2895442T3 ES 14789950 T ES14789950 T ES 14789950T ES 14789950 T ES14789950 T ES 14789950T ES 2895442 T3 ES2895442 T3 ES 2895442T3
Authority
ES
Spain
Prior art keywords
image
poc
video
reset
picture
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
ES14789950T
Other languages
English (en)
Inventor
Adarsh Krishnan Ramasubramonian
Ying Chen
Ye-Kui Wang
Fnu Hendry
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 ES2895442T3 publication Critical patent/ES2895442T3/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/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
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/136Incoming video signal characteristics or properties
    • 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/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/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
    • 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/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • 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/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un aparato (30) configurado para decodificar información de video, el aparato comprende: una unidad de memoria configurada para almacenar información de video asociada con una primera capa de video que tiene una primera imagen; y un procesador en comunicación con la unidad de memoria, el procesador está configurado para: procesar (805) información de derivación de recuento de orden de imágenes (POC) contenida en uno de un mensaje de información de mejora complementaria (SEI) asociado con la primera imagen, en donde la información de derivación de POC comprende al menos un valor de POC de una segunda imagen codificada en la primera capa de video, en donde la segunda imagen está asociada con una instrucción de reinicio del valor de POC y precede a la primera imagen en el orden de decodificación; realizar la instrucción de reinicio del valor de POC asociada con la segunda imagen, para reiniciar el valor de POC de la segunda imagen y para reiniciar el valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en el orden de decodificación, si la segunda la imagen está disponible; o reiniciar, en base al valor de POC de la segunda imagen incluida en la información de derivación de POC asociada con la primera imagen, un valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en el orden de decodificación, si la segunda imagen no está disponible.

Description

DESCRIPCIÓN
Dispositivo y método para la codificación escalable de información de video
CAMPO TÉCNICO
La presente divulgación se refiere al campo de la codificación y compresión de video, en particular a la codificación de video escalable (SVC), la codificación de video de múltiples vistas (MVC) o la codificación de video 3D (3DV). ANTECEDENTES
Las capacidades de video digital se pueden incorporar en una amplia gama de dispositivos, incluidos televisores digitales, sistemas de transmisión digital directa, sistemas de transmisión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos celulares o satelitales, dispositivos de video teleconferencia y similares. Los dispositivos de video digital implementan técnicas de comprensión de video, como las descritas en los estándares definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de video avanzada (AVC), el estándar de Codificación de video de alta eficiencia (HEVC) actualmente en desarrollo, y extensiones de dichos estándares. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar y/o almacenar información de video digital de manera más eficiente implementando tales técnicas de codificación de video.
Las técnicas de compresión de video realizan predicciones espaciales (intraimagen) y/o predicciones temporales (interimagen) para reducir o eliminar la redundancia inherente a las secuencias de video. Para la codificación de video basada en bloques, un segmento de video (por ejemplo, una trama de video, una parte de una trama de video, etc.) se puede dividir en bloques de video, que también pueden denominarse bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de video en un segmento intracodificado (I) de una imagen se codifican utilizando la predicción espacial con respecto a las muestras de referencia en los bloques vecinos en la misma imagen. Los bloques de video en un segmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse tramas y las imágenes de referencia pueden denominarse tramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para la codificación de un bloque. Los datos residuales representan las diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica según un modo de intracodificación y los datos residuales. Para una compresión adicional, los datos residuales pueden transformarse del dominio de píxeles a un dominio de transformación, lo que resulta en coeficientes de transformada residuales, que luego pueden cuantificarse. Los coeficientes de transformación cuantificados, dispuestos inicialmente en una matriz bidimensional, se pueden escanear para producir un vector unidimensional de coeficientes de transformación, y se puede aplicar codificación de entropía para lograr una compresión aún mayor.
JCT3 V-E0075 propone incluir un indicador en el encabezado de un segmento para especificar si el valor de POC debe reiniciarse para la imagen. Cuando se indicador es igual a 1, el valor de POC de la imagen actual se establece en 0 y los valores de POC de las imágenes en DPB que pertenecen a la misma capa se cambian en consecuencia. SUMARIO
La codificación de video escalable (SVC) se refiere a la codificación de video en la que se utilizan una capa base (BL), a veces denominada capa de referencia (RL), y una o más capas de mejora escalables (EL). En SVC, la capa base puede transportar datos de video con un nivel básico de calidad. Una o más capas de mejora pueden transportar datos de video adicionales para admitir, por ejemplo, niveles más altos espaciales, temporales y/o de señal a ruido (SNR). Las capas de mejora pueden definirse en relación con una capa previamente codificada. Por ejemplo, una capa inferior puede servir como BL, mientras que una capa superior puede servir como EL. Las capas intermedias pueden servir como EL o RL, o ambas. Por ejemplo, una capa intermedia (por ejemplo, una capa que no es ni la capa más baja ni la capa más alta) puede ser una eL para las capas debajo de la capa intermedia, como la capa base o cualquier capa de mejora intermedia, y al mismo tiempo sirven como RL para una o más capas de mejora por encima de la capa intermedia. De manera similar, en la extensión multivista o 3D del estándar HEVC, puede haber múltiples vistas, y la información de una vista se puede utilizar para codificar (por ejemplo, codificar o decodificar) la información de otra vista (por ejemplo, estimación de movimiento, predicción de vector de movimiento y/u otras redundancias).
En SVC, se puede utilizar un recuento de orden de imágenes (POC) para indicar el orden en el que se emitirán o visualizarán las imágenes. Además, en algunas implementaciones, el valor de POC puede reiniciarse (por ejemplo, establecerse en cero, establecerse en algún valor señalado en el flujo de bits o derivado de la información incluida en el flujo de bits) siempre que aparezcan ciertos tipos de imágenes en el flujo de bits. Por ejemplo, cuando aparecen ciertas imágenes de puntos de acceso aleatorios en el flujo de bits, el POC puede reiniciarse. Cuando se reinicia el POC de una imagen en particular, los POC de cualquier imagen que preceda a la imagen en particular en el orden de decodificación también pueden reiniciarse, por ejemplo, para mantener el orden relativo en el que esas imágenes deben ser emitidas o visualizadas.
Un reinicio de POC de este tipo puede producir un resultado no deseado cuando no se requiere que las imágenes de IRAP estén alineadas en diferentes capas. Por ejemplo, cuando una imagen ("imagenA") es una imagen de IRAP y otra imagen ("imagenB") en la misma unidad de acceso no es una imagen de IRAP, el valor de POC de una imagen ("imagenC") que precede a la imagenA en la misma capa puede ser diferente del valor de POC de una imagen ("imagenD") que precede a la imagenB en la misma capa y está en la misma unidad de acceso que la imagenC, ya que el valor de POC de la imagenC se reinicia debido a que la imagenA es una imagen de IRAP mientras el valor de POC de la imagenD no se reinicia. Esto hace que la imagenC y la imagenD, que están en la misma unidad de acceso y, por lo tanto, deberían tener los mismos valores de POC, tengan diferentes valores de POC.
Por lo tanto, se desea un método de codificación mejorado para derivar los valores de POC cuando las imágenes de acceso aleatorio no están alineadas en múltiples capas.
La invención se define en las reivindicaciones independientes adjuntas.
Las características opcionales se definen en las reivindicaciones dependientes.
Las realizaciones o ejemplos descritos en la presente, que no están comprendidos dentro del alcance de las reivindicaciones adjuntas, no forman parte de la presente invención, pero son útiles para la comprensión.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La figura 1A es un diagrama de bloques que ilustra un sistema de codificación y decodificación de video de ejemplo que puede utilizar las técnicas según los aspectos descritos en la presente divulgación.
La figura 1B es un diagrama de bloques que ilustra otro sistema de codificación y decodificación de video de ejemplo que puede realizar las técnicas según los aspectos descritos en la presente divulgación.
La figura 2A es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación.
La figura 2B es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación.
La figura 3A es un diagrama de bloques que ilustra un ejemplo de un decodificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación.
La figura 3B es un diagrama de bloques que ilustra un ejemplo de un decodificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación.
La figura 4 es un diagrama de bloques que ilustra una configuración de ejemplo de imágenes en diferentes capas, según una realización de la presente divulgación.
La figura 5 es una tabla que ilustra los valores de POC de imágenes en diferentes capas, según una realización de la presente divulgación.
La figura 6 es un diagrama de bloques que ilustra una configuración de ejemplo de imágenes en diferentes capas, según una realización de la presente divulgación.
La figura 7 es una tabla que ilustra los valores de POC de imágenes en diferentes capas, según una realización de la presente divulgación.
La figura 8 es un diagrama de flujo que ilustra un método de codificación de información de video, según una realización de la presente divulgación.
La figura 9 es un diagrama de flujo que ilustra un método de codificación de información de video, según una realización de la presente divulgación.
La figura 10 es un diagrama de flujo que ilustra un método de codificación de información de video, según una realización de la presente divulgación.
La figura 11 es un diagrama de flujo que ilustra un método de codificación de información de video, según una realización de la presente divulgación.
La figura 12 es un diagrama de flujo que ilustra un método de codificación de información de video, según una realización de la presente divulgación.
DESCRIPCIÓN DETALLADA
Ciertas realizaciones descritas en la presente se refieren a la predicción intercapa para la codificación de video escalable en el contexto de códecs de video avanzados, como HEVC (Codificación de video de alta eficiencia). Más específicamente, la presente divulgación se refiere a sistemas y métodos para el rendimiento mejorado de la predicción intercapa en la extensión de codificación de video escalable (SVC) de HEVC.
En la siguiente descripción, se describen técnicas H.264/AVC relacionadas con determinadas realizaciones; también se analizan el estándar HEVC y las técnicas relacionadas. Si bien ciertas realizaciones se describen en la presente en el contexto de los estándares HEVC y/o H.264, un experto en la técnica puede apreciar que los sistemas y métodos divulgados en la presente pueden ser aplicables a cualquier estándar de codificación de video adecuado. Por ejemplo, las realizaciones divulgadas en la presente pueden aplicarse a uno o más de los siguientes estándares: 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 conocido como ISO/IEC MPEG-4 AVC), incluidas sus extensiones de Codificación de video escalable (SVC) y Codificación de video de múltiples vistas (MVC).
HEVC generalmente sigue el marco de los estándares de codificación de video anteriores en muchos aspectos. La unidad de predicción en HEVC es diferente de la de ciertos estándares de codificación de video anteriores (por ejemplo, macrobloque). De hecho, el concepto de macrobloque no existe en HEVC, como se entiende en ciertos estándares de codificación de video anteriores. Un macrobloque es reemplazado por una estructura jerárquica basada en un esquema de árbol cuaternario, que puede proporcionar una alta flexibilidad, entre otros posibles beneficios. 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 regiones. La CU puede considerarse análoga al concepto de macrobloque, pero HEVC no restringe el tamaño máximo de las 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/intra predicción, y una sola PU puede contener múltiples particiones de formas arbitrarias para codificar eficazmente patrones de imagen irregulares. La TU puede considerarse 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 que cada unidad se optimice según la función respectiva de la unidad, lo que puede resultar en una eficiencia de codificación mejorada.
Solo con fines ilustrativos, ciertas realizaciones divulgadas en la presente se describen con ejemplos que incluyen solo dos capas (por ejemplo, una capa inferior como la capa base y una capa superior como la capa de mejora). Debe entenderse que tales ejemplos pueden ser aplicables a configuraciones que incluyen múltiples capas de base y/o de mejora. Además, para facilitar la explicación, la siguiente descripción incluye los términos "tramas" o "bloques" con referencia a determinadas realizaciones. Sin embargo, estos términos no pretenden ser restrictivos. Por ejemplo, las técnicas descritas a continuación se pueden usar con cualquier unidad de video adecuada, como bloques (por ejemplo, CU, PU, TU, macrobloques, etc.), segmentos, tramas, etc.
Estándares de codificación de video
Una imagen digital, como una imagen de video, una imagen de televisión, una imagen fija o una imagen generada por una grabadora de video o una computadora, puede consistir en píxeles o muestras dispuestas en líneas horizontales y verticales. El número de píxeles en una sola imagen suele ser de decenas de miles. Cada píxel normalmente contiene información de luminancia y crominancia. Sin compresión, la gran cantidad de información que se transmite desde un codificador de imágenes a un decodificador 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 métodos de compresión diferentes, como los estándares JPEG, MPEG y H.263.
Los estándares de codificación de video 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 conocido como ISO/IEC MPEG-4 AVC), incluidas sus extensiones Codificación de video escalable (SVC) y Codificación de video de múltiples vistas (MVC).
Además, un nuevo estándar de codificación de video, a saber, codificación de video de alta eficiencia (HEVC), es desarrollado por el equipo de colaboración conjunta sobre codificación de video (JCTVC) del grupo de expertos en codificación de video ITU-T (VCEG) y el grupo de expertos en imágenes en movimiento ISO/IEC (MPEG). La cita completa para el borrador 10 de HEVC es el documento JCTVC-L1003, Bross et al., "Borrador 10 de la especificación de texto de codificación de video de alta eficiencia (HEVC)", Equipo colaborativo conjunto sobre codificación de video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12° reunión: Ginebra, Suiza, lunes, 14 de enero de 2013 al miércoles, 23 de enero de 2013. La extensión de múltiples vistas para HEVC, a saber, MV-HEVC, y la extensión escalable para HEVC, denominada SHVC, también están siendo desarrolladas por JCT-3V (Equipo colaborativo conjunto ITU-T/ISO/IEC sobre el desarrollo de extensiones de codificación de video 3D) y JCT­ VC, respectivamente.
Varios aspectos de los nuevos sistemas, aparatos y métodos se describen con mayor detalle a continuación con referencia a los dibujos adjuntos. Sin embargo, esta divulgación puede realizarse de muchas formas diferentes y no debe interpretarse como limitada a ninguna estructura o función específica presentada a lo largo de esta divulgación. Por el contrario, estos aspectos se proporcionan manera que esta divulgación sea exhaustiva y completa, y transmitirá completamente el alcance de la divulgación a los expertos en la técnica. Con base en las enseñanzas de la presente, un experto en la técnica debe apreciar que el alcance de la divulgación está destinado a cubrir cualquier aspecto de los nuevos sistemas, aparatos y métodos divulgados en la presente, ya sea implementado independientemente o en combinación con cualquier otro aspecto de la presente divulgación. Por ejemplo, se puede implementar un aparato o se puede llevar a la práctica un método usando cualquier número de los aspectos establecidos en la presente. Además, el alcance de la presente divulgación está destinado a cubrir tal aparato o método que se practica usando otra estructura, funcionalidad o estructura y funcionalidad además de los diversos aspectos de la presente divulgación expuestos en la presente o distintos de ellos. Debe entenderse que cualquier aspecto divulgado en la presente puede estar incluido en uno o más elementos de una reivindicación.
Aunque en la presente se describen aspectos particulares, muchas variaciones y permutaciones de estos aspectos están 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 pretende limitarse a beneficios, usos u objetivos particulares. Más bien, se pretende que los aspectos de la divulgación sean ampliamente aplicables a diferentes tecnologías inalámbricas, configuraciones de sistemas, 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 más que limitativos, el alcance de la divulgación está definido por las reivindicaciones adjuntas y equivalentes de las mismas.
Los dibujos adjuntos ilustran ejemplos. Los elementos indicados por números de referencia en los dibujos adjuntos corresponden a elementos indicados por 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 implican necesariamente que los elementos tengan un orden particular. Más bien, estas palabras ordinales se utilizan meramente para referirse a diferentes elementos de un tipo igual o similar.
Sistema de codificación de video
La figura 1A es un diagrama de bloques que ilustra un ejemplo del sistema de codificación de video 10 que puede utilizar las técnicas según los aspectos descritos en la presente divulgación. Como se usa en la presente, el término "codificador de video" se refiere genéricamente tanto a codificadores de video como a decodificadores de video. En esta divulgación, los términos "codificación de video" o "codificación" pueden referirse genéricamente a la codificación y decodificación de video. Además de los codificadores de video y los decodificadores de video, los aspectos descritos en la presente solicitud pueden extenderse a otros dispositivos relacionados tales como transcodificadores (por ejemplo, dispositivos que pueden decodificar un flujo de bits y volver a codificar otro flujo de bits) y cajas intermedias (por ejemplo, dispositivos que pueden modificar, transformar y/o manipular de otro modo un flujo de bits).
Como se muestra en la figura 1A, el sistema de codificación de video 10 incluye un módulo de origen 12 que genera datos de video codificados que se decodificarán en un momento posterior mediante un módulo de destino 14. En el ejemplo de la figura 1A, el módulo de origen 12 y el módulo de destino 14 están en dispositivos separados -específicamente, el módulo de origen 12 es parte de un dispositivo de origen y el módulo de destino 14 es parte de un dispositivo de destino. Sin embargo, se observa que los módulos de origen y destino 12, 14 pueden estar en o ser parte del mismo dispositivo, como se muestra en el ejemplo de la figura 1B.
Nuevamente con referencia a la figura 1A, el módulo de origen 12 y el módulo de destino 14 pueden comprender cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de escritorio, ordenadores portátiles (por ejemplo, ordenadores portátiles), tabletas, decodificadores, aparatos telefónicos con microteléfono como los denominados teléfonos "inteligentes", los denominados teclados "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión de video o similares. En algunos casos, el módulo de origen 12 y el módulo de destino 14 pueden estar equipados para comunicación inalámbrica.
El módulo de destino 14 puede recibir los datos de video codificados para decodificarlos a través de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de mover los datos de video codificados desde el módulo de origen 12 al módulo de destino 14. En el ejemplo de la figura 1A, el enlace 16 puede comprender un medio de comunicación para permitir que el módulo de origen 12 transmita datos de video codificados directamente al módulo de destino 14 en tiempo real. Los datos de video codificados pueden modularse según un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al módulo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o cableada, como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. El medio de comunicación puede formar parte de una red basada en paquetes, como una red de área local, una red de área amplia o una red global como Internet. El medio de comunicación puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el módulo de origen 12 al módulo de destino 14.
Alternativamente, los datos codificados pueden salir desde una interfaz de salida 22 a un dispositivo de almacenamiento 31 opcional. De manera similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento 31 mediante una interfaz de entrada 28. El dispositivo de almacenamiento 31 puede incluir cualquiera de una variedad de medios de almacenamiento de datos distribuidos o de acceso local, tales como un disco duro, memoria rápida, memoria volátil o no volátil, o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento 31 puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede contener el video codificado generado por el módulo de origen 12. El módulo de destino 14 puede acceder a los datos de video almacenados desde el dispositivo de almacenamiento 31 mediante transmisión o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al módulo de destino 14. Ejemplos de los servidores de archivos incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectados a la red (NAS) o una unidad de disco local. El módulo de destino 14 puede acceder a los datos de video codificados a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, DSL, módem por cable, etc.) o una combinación de ambos que sea adecuada para acceder a datos de video codificados almacenados en un servidor de archivos. La transmisión de datos de video 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.
Las técnicas de esta divulgación no se limitan a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de video para respaldar cualquiera de una variedad de aplicaciones multimedia, como transmisiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de video, por ejemplo, a través de Internet (por ejemplo, transmisión adaptativa dinámica sobre HTTP (DASH), etc.), codificación de video digital para almacenamiento en un medio de almacenamiento de datos, decodificación de video digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema de codificación de video 10 puede configurarse para admitir transmisión de video unidireccional o bidireccional para admitir aplicaciones tales como transmisión de video, reproducción de video, difusión de video y/o telefonía de video.
En el ejemplo de la figura 1A, el módulo de origen 12 incluye una fuente de video 18, un codificador de video 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/demodulador (módem) y/o un transmisor. En el módulo de origen 12, la fuente de video 18 puede incluir una fuente tal como un dispositivo de captura de video, por ejemplo, una cámara de video, un archivo de video que contiene un video capturado previamente, una interfaz de alimentación de video para recibir videos desde un proveedor de contenido de videos y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el video de origen, o una combinación de tales fuentes. Como ejemplo, si la fuente de video 18 es una cámara de video, el módulo de origen 12 y el módulo de destino 14 pueden formar los llamados "teléfonos con cámara" o "teléfonos con video", como se ilustra en el ejemplo de la figura 1B. Sin embargo, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de video en general, y pueden aplicarse a aplicaciones inalámbricas y/o cableadas.
El video capturado, precapturado o generado por ordenador puede ser codificado por el codificador de video 20. Los datos de video codificados pueden transmitirse directamente al módulo de destino 14 a través de la interfaz de salida 22 del módulo de origen 12. Los datos de video codificados también pueden (o alternativamente) almacenarse en el dispositivo de almacenamiento 31 para un acceso posterior por el módulo de destino 14 u otros dispositivos, para la decodificación y/o reproducción. El codificador de video 20 ilustrado en la figura 1A y 1B pueden comprender el codificador de video 20 ilustrado en la figura 2A, el codificador de video 23 ilustrado en la figura 2B, o cualquier otro codificador de video descrito en la presente.
En el ejemplo de la figura 1A, el módulo de destino 14 incluye una interfaz de entrada 28, un decodificador de video 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 módulo de destino 14 puede recibir los datos de video codificados a través del enlace 16. Los datos de video codificados comunicados a través del enlace 16, o proporcionados en el dispositivo de almacenamiento 31, pueden incluir una variedad de elementos de sintaxis generados por el codificador de video 20 para su uso por un decodificador de video, como el decodificador de video 30, al decodificar los datos de video. Tales elementos de sintaxis pueden incluirse con los datos de video codificados transmitidos en un medio de comunicación, almacenados en un medio de almacenamiento o almacenados en un servidor de archivos. El decodificador de video 30 ilustrado en la figura 1A y 1B pueden comprender el decodificador de video 30 ilustrado en la figura 3A, el decodificador de video 33 ilustrado en la figura 3B, o cualquier otro decodificador de video descrito en la presente.
El dispositivo de visualización 32 puede estar integrado o ser externo al módulo de destino 14. En algunos ejemplos, el módulo de destino 14 puede incluir un dispositivo de visualización integrado y también estar configurado para interactuar con un dispositivo de visualización externo. En otros ejemplos, el módulo de destino puede ser un dispositivo de visualización 14. En general, el dispositivo de visualización 32 muestra los datos de video decodificados a un usuario y puede comprender cualquiera de una variedad de dispositivos de visualización tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodo emisor de luz orgánica (OLED), u otro tipo de dispositivo de visualización.
En aspectos relacionados, la figura 1B muestra un sistema de codificación y decodificación de video 10 de ejemplo en donde los módulos de origen y destino 12, 14 están en o son parte de un dispositivo o dispositivo de usuario 11. El dispositivo 11 puede ser un auricular de teléfono, como un teléfono "inteligente" o similar. El dispositivo 11 puede incluir un módulo controlador/procesador 13 opcional en comunicación operativa con los módulos de origen y destino 12, 14. El sistema 10' de la figura 1B puede incluir además una unidad de procesamiento de video 21 entre el codificador de video 20 y la interfaz de salida 22. En algunas implementaciones, la unidad de procesamiento de video 21 es una unidad separada, como se ilustra en la figura 1B; sin embargo, en otras implementaciones, la unidad de procesamiento de video 21 puede implementarse como una parte del codificador de video 20 y/o el módulo procesador/controlador 13. El sistema 10' también puede incluir un rastreador 29 opcional, que puede rastrear un objeto de interés en una secuencia de video. El objeto o interés que se va a rastrear puede segmentarse mediante una técnica descrita en relación con uno o más aspectos de la presente divulgación. En aspectos relacionados, el seguimiento puede ser realizado por el dispositivo de visualización 32, solo o junto con el rastreador 29. El sistema 10' de la figura 1B, y sus componentes, son por lo demás similares al sistema 10 de la figura 1A y componentes del mismo.
El codificador de video 20 y el decodificador de video 30 pueden funcionar según un estándar de compresión de video, como el estándar de codificación de video de alta eficiencia (HEVC) actualmente en desarrollo, y pueden ajustarse al modelo de prueba HEVC (HM). Alternativamente, el codificador de video 20 y el decodificador de video 30 pueden funcionar de acuerdo con otros estándares de propiedad o de la industria, como el estándar ITU-T H.264, también conocido como MPEG-4, Parte 10, Codificación de video avanzada (AVC) o extensiones de tales estándares. Las técnicas de esta divulgación, sin embargo, no se limitan a ningún estándar de codificación particular. Otros ejemplos de estándares de compresión de video incluyen MPEG-2 e ITU-T H.263.
Aunque no se muestra en los ejemplos de las figuras 1A y 1B, el codificador de video 20 y el decodificador de video 30 pueden estar integrados cada uno con un codificador y decodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro hardware y software, para manejar la codificación de audio y video en un flujo de datos común o flujos de datos separados. Si corresponde, en algunos ejemplos, las unidades MUX-DEMUx pueden ajustarse al protocolo multiplexor ITU H.223 u otros protocolos como el protocolo de datagramas de usuario (UDP). El codificador de video 20 y el decodificador de video 30 pueden implementarse cada uno como cualquiera de una variedad de circuitos de codificador adecuados, como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de aplicación específica (ASIC), matrices de puertas programables en campo (FPGA), lógica discreta, software, hardware, microprograma 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 legible por ordenador adecuado y no transitorio y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada codificador de video 20 y decodificador de video 30 se puede incluir en uno o más codificadores o decodificadores, cualquiera de los cuales puede integrarse como parte de un codificador/decodificador combinado (CÓDEC) en un dispositivo respectivo.
Proceso de codificación de video
Como se mencionó brevemente con anterioridad, el codificador de video 20 codifica datos de video. Los datos de video pueden comprender una o más imágenes. Cada una de las imágenes es una imagen fija que forma parte de un video. En algunos casos, una imagen puede denominarse "trama" de video. Cuando el codificador de video 20 codifica los datos de video, el codificador de video 20 puede generar un flujo de bits. El flujo de bits puede incluir una secuencia de bits que forman una representación codificada de los datos de video. El tren de bits puede incluir imágenes codificadas y datos asociados. Una imagen codificada es una representación codificada de una imagen. Para generar el flujo de bits, el codificador de video 20 puede realizar operaciones de codificación en cada imagen en los datos de video. Cuando el codificador de video 20 realiza operaciones de codificación en las imágenes, el codificador de video 20 puede generar una serie de imágenes codificadas y datos asociados. Los datos asociados pueden incluir conjuntos de parámetros de video (VPS), conjuntos de parámetros de secuencia, conjuntos de parámetros de imagen, conjuntos de parámetros de adaptación y otras estructuras de sintaxis. Un conjunto de parámetros de secuencia (SPS) puede contener parámetros aplicables a cero o más secuencias de imágenes. Un conjunto de parámetros de imagen (PPS) puede contener parámetros aplicables a cero o más imágenes. Un conjunto de parámetros de adaptación (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 un PPS.
Para generar una imagen codificada, el codificador de video 20 puede dividir una imagen en bloques de video de igual tamaño. Un bloque de video puede ser una matriz bidimensional de muestras. Cada uno de los bloques de video está asociado con un bloque de árbol. En algunos casos, un bloque de árbol puede denominarse unidad de codificación más grande (LCU). Los bloques de árbol de HEVC pueden ser ampliamente análogos a los macrobloques de estándares anteriores, como H.264/AVC. Sin embargo, un bloque de árbol no está necesariamente limitado a un tamaño particular y puede incluir una o más unidades de codificación (CU). El codificador de video 20 puede usar la partición de árbol cuaternario para dividir los bloques de video de los bloques de árbol en bloques de video asociados con las CU, de ahí el nombre "bloques de árbol".
En algunos ejemplos, el codificador de video 20 puede dividir una imagen en una pluralidad de segmentos. Cada uno de los segmentos puede incluir un número entero de CU. En algunos casos, una segmento comprende un número entero de bloques de árboles. En otros casos, el límite de un segmento puede estar dentro de un bloque de árbol.
Como parte de llevar a cabo una operación de codificación en una imagen, el codificador de video 20 puede realizar operaciones de codificación en cada segmento de la imagen. Cuando el codificador de video 20 realiza una operación de codificación en un segmento, el codificador de video 20 puede generar datos codificados asociados con el segmento. Los datos codificados asociados con el segmento pueden denominarse "segmento codificado". Para generar un segmento codificado, el codificador de video 20 puede realizar operaciones de codificación en cada bloque de árbol en un segmento. Cuando el codificador de video 20 realiza una operación de codificación en un bloque de árbol, el codificador de video 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.
Cuando el codificador de video 20 genera un segmento codificado, el codificador de video 20 puede realizar operaciones de codificación en (por ejemplo, codificar) los bloques de árbol en el segmento según un orden de exploración de trama. Por ejemplo, el codificador de video 20 puede codificar los bloques de árbol del segmento en un orden que proceda de izquierda a derecha a través de una fila superior de bloques de árbol en el segmento, luego de izquierda a derecha a través de la siguiente fila inferior de bloques de árbol, y así sucesivamente hasta el codificador de video 20 haya codificado cada uno de los bloques de árbol en el segmento.
Como resultado de la codificación de los bloques de árboles según el orden de exploración de trama, los bloques de árboles arriba y a la izquierda de un bloque de árboles determinado pueden haber sido codificados, pero los bloques de árboles debajo y a la derecha del bloque de árboles determinado aún no se han codificado. Por consiguiente, el codificador de video 20 puede acceder a la información generada codificando bloques de árbol que se encuentran arriba y a la izquierda del bloque de árbol determinado cuando se codifica el bloque de árbol determinado. Sin embargo, es posible que el codificador de video 20 no pueda acceder a la información generada codificando los bloques de árbol que se encuentran debajo y a la derecha del bloque de árbol determinado cuando se codifica el bloque de árbol determinado.
Para generar un bloque de árbol codificado, el codificador de video 20 puede realizar de forma recursiva una división de árbol cuaternario en el bloque de video del bloque de árbol para dividir el bloque de video en bloques de video progresivamente más pequeños. Cada uno de los bloques de video más pequeños puede estar asociado con una CU diferente. Por ejemplo, el codificador de video 20 puede dividir el bloque de video de un bloque de árbol en cuatro subbloques de igual tamaño, dividir uno o más de los subbloques en cuatro sub-subbloques de igual tamaño, y así sucesivamente. Una CU dividida puede ser una CU cuyo bloque de video está dividido en bloques de video asociados con otras CU. Una CU no dividida puede ser una CU cuyo bloque de video no está dividido en bloques de video asociados con otras CU.
Uno o más elementos de sintaxis en el flujo de bits pueden indicar un número máximo de veces que el codificador de video 20 puede dividir el bloque de video de un bloque de árbol. Un bloque de video de una CU puede tener forma cuadrada. El tamaño del bloque de video de una Cu (por ejemplo, el tamaño de la CU) puede variar de 8x8 píxeles hasta el tamaño de un bloque de video de un bloque de árbol (por ejemplo, el tamaño del bloque de árbol) con un máximo de 64x64 píxeles o superior.
El codificador de video 20 puede realizar operaciones de codificación (por ejemplo, codificar) en cada CU de un bloque de árbol según un orden de exploración z. En otras palabras, el codificador de video 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 video 20 realiza una operación de codificación en una CU dividida, el codificador de video 20 puede codificar las CU asociadas con subbloques del bloque de video de la CU dividida según el orden de exploración z. En otras palabras, el codificador de video 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.
Como resultado de la codificación de las CU de un bloque de árbol según un orden de exploración z, se pueden haber codificado las CU de arriba, arriba y hacia la izquierda, arriba y hacia la derecha, izquierda y abajo y hacia la izquierda de una CU determinada. Las CU que se encuentran debajo y a la derecha de la CU determinada aún no se han codificado. Por consiguiente, el codificador de video 20 puede acceder a la información generada codificando algunas CU vecinas a la CU determinada al codificar la CU determinada. Sin embargo, el codificador de video 20 no puede acceder a la información generada codificando otras CU vecinas a la CU determinada al codificar la CU determinada.
Cuando el codificador de video 20 codifica una CU no dividida, el codificador de video 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 video diferente dentro del bloque de video de la CU. El codificador de video 20 puede generar un bloque de video predicho para cada PU de la CU. El bloque de video predicho de una PU puede ser un bloque de muestras. El codificador de video 20 puede usar intrapredicción o interpredicción para generar el bloque de video predicho para una PU.
Cuando el codificador 20 de video usa intrapredicción para generar el bloque de video predicho de una PU, el codificador 20 de video puede generar el bloque de video predicho de la PU basándose en muestras decodificadas de la imagen asociada con la PU. Si el codificador de video 20 usa intrapredicción para generar bloques de video predichos de las PU de una CU, la CU es una CU intrapredicha. Cuando el codificador de video 20 usa la interpredicción para generar el bloque de video predicho de la PU, el codificador de video 20 puede generar el bloque de video predicho de la PU basándose en muestras decodificadas de una o más imágenes distintas de la imagen asociada con la PU. Si el codificador de video 20 usa interpredicción para generar bloques de video predichos de las PU de una CU, la CU es una CU interpredicha.
Además, cuando el codificador de video 20 usa la interpredicción para generar un bloque de video predicho para una PU, el codificador de video 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 video 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 "muestra de referencia" de la PU. El codificador de video 20 puede generar el bloque de video predicho para la PU basándose en los bloques de referencia de la PU.
Después de que el codificador de video 20 genera bloques de video predichos para una o más PU de una CU, el codificador de video 20 puede generar datos residuales para la CU basándose en los bloques de video predichos para las PU de la CU. Los datos residuales para la CU pueden indicar diferencias entre las muestras en los bloques de video predichos para las PU de la CU y el bloque de video original de la CU.
Además, como parte de llevar a cabo una operación de codificación en una CU no dividida, el codificador de video 20 puede realizar divisiones recursivas de árbol cuaternario sobre los datos residuales de la CU para dividir los datos residuales de la CU en uno o más bloques de datos residuales (por ejemplo, bloques de video residuales) asociados con unidades de transformación (TU) de la CU. Cada TU de una CU puede estar asociada con un bloque de video residual diferente.
El codificador de video 20 puede aplicar una o más transformaciones a bloques de video 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 coeficiente de transformación puede ser una matriz bidimensional (2D) de coeficientes de transformación.
Después de generar un bloque de coeficiente de transformación, el codificador de video 20 puede realizar un proceso de cuantificación en el bloque de coeficiente de transformación. La cuantificación generalmente se refiere a un proceso en el que los coeficientes de transformación se cuantifican para posiblemente reducir la cantidad de datos utilizados para representar los coeficientes de transformación, proporcionando una mayor compresión. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes de transformación. Por ejemplo, un coeficiente de transformación de n-bits puede redondearse hacia abajo a un coeficiente de transformación de m-bits durante la cuantificación, donde n es mayor que m.
El codificador de video 20 puede asociar cada CU con un valor de parámetro de cuantificación (QP). El valor de QP asociado con una CU puede determinar cómo el codificador de video 20 cuantifica los bloques de coeficientes de transformación asociados con la CU. El codificador de video 20 puede ajustar el grado de cuantificación aplicado a los bloques de coeficientes de transformación asociados con una CU ajustando el valor de QP asociado con la CU. Después de que el codificador de video 20 cuantifique un bloque de coeficientes de transformación, el codificador de video 20 puede generar conjuntos de elementos de sintaxis que representan los coeficientes de transformación en el bloque de coeficientes de transformación cuantificados. El codificador de video 20 puede 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, como la codificación de longitud variable adaptativa de contenido (CAVLC), la codificación de entropía de división de intervalo de probabilidad (PIPE) u otra codificación aritmética binaria.
El flujo de bits generado por el codificador de video 20 puede incluir una serie de unidades de capa de abstracción de red (NAL). Cada una de las unidades de NAL puede ser una estructura sintáctica que contiene una indicación de un tipo de datos en la unidad de NAL y bytes que contienen los datos. Por ejemplo, una unidad de NAL puede contener datos que representan un conjunto de parámetros de video, un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un segmento codificado, información de mejora complementaria (SEI), un delimitador de la unidad de acceso, datos de relleno u otro tipo de datos. Los datos en una unidad de NAL pueden incluir varias estructuras de sintaxis.
El decodificador de video 30 puede recibir un flujo de bits generado por el codificador de video 20. El flujo de bits puede incluir una representación codificada de los datos de video codificados por el codificador de video 20. Cuando el decodificador de video 30 recibe el flujo de bits, el decodificador de video 30 puede realizar una operación de análisis sintáctico en el flujo de bits. Cuando el decodificador de video 30 lleva a cabo la operación de análisis sintáctico, el decodificador de video 30 puede extraer elementos de sintaxis del flujo de bits. El decodificador de video 30 puede reconstruir las imágenes de los datos de video basándose en los elementos de sintaxis extraídos del flujo de bits. El proceso para reconstruir los datos de video basándose en los elementos de sintaxis puede ser generalmente recíproco al proceso realizado por el codificador de video 20 para generar los elementos de sintaxis. Después de que el decodificador de video 30 extrae los elementos de sintaxis asociados con una CU, el decodificador de video 30 puede generar bloques de video predichos para las PU de la CU basándose en los elementos de sintaxis. Además, el decodificador de video 30 puede cuantificar de forma inversa los bloques de coeficientes de transformación asociados con las TU de la CU. El decodificador de video 30 puede realizar transformaciones inversas en los bloques de coeficientes de transformación para reconstruir los bloques de video residuales asociados con las TU de la CU. Después de generar los bloques de video predichos y reconstruir los bloques de video residuales, el decodificador de video 30 puede reconstruir el bloque de video de la CU basándose en los bloques de video predichos y los bloques de video residuales. De esta manera, el decodificador de video 30 puede reconstruir los bloques de video de las CU basándose en los elementos de sintaxis en el flujo de bits.
Codificador de video
La figura 2A es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación. El codificador de video 20 puede configurarse para procesar una sola capa de una trama de video, como para HEVC. Además, el codificador de video 20 puede configurarse para realizar cualquiera o todas las técnicas de esta divulgación. Como ejemplo, la unidad de procesamiento de predicción 100 puede configurarse para realizar cualquiera o todas las técnicas descritas en esta divulgación. En otra realización, el codificador de video 20 incluye una unidad de predicción intercapa 128 opcional que está configurada para realizar cualquiera o todas las técnicas descritas en esta divulgación. En otras realizaciones, la predicción intercapa se puede realizar mediante la unidad de procesamiento de predicciones 100 (por ejemplo, la unidad de interpredicción 121 y/o la unidad de intrapredicción 126), en cuyo caso la unidad 128 de predicción intercapa se puede omitir. Sin embargo, los aspectos de esta divulgación no están tan limitados. En algunos ejemplos, las técnicas descritas en la presente divulgación pueden compartirse entre los diversos componentes del codificador de video 20. En algunos ejemplos, de manera adicional o alternativa, un procesador (no mostrado) puede configurarse para realizar alguna o todas las técnicas descritas en esta divulgación.
A efectos explicativos, esta divulgación describe el codificador de video 20 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otros estándares o métodos de codificación. El ejemplo representado en la figura 2A es para un códec de una sola capa. Sin embargo, como se describirá adicionalmente con respecto a la figura 2B, algunos o todos los codificadores de video 20 pueden duplicarse para el procesamiento de un códec de múltiples capas.
El codificador de video 20 puede realizar intra- e intercodificación de bloques de video dentro de segmentos de video. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el video dentro de una trama o imagen de video determinado. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el video dentro de tramas o imágenes adyacentes de una secuencia de video. El intramodo (modo I) puede referirse a cualquiera de varios modos de codificación basados en el espacio. Los intermodos, como la predicción unidireccional (modo P) o la predicción bidireccional (modo B), pueden referirse a cualquiera de varios modos de codificación basados en el tiempo.
En el ejemplo de la figura 2A, el codificador de video 20 incluye una pluralidad de componentes funcionales. Los componentes funcionales del codificador de video 20 incluyen una unidad de procesamiento de predicción 100, una unidad de generación residual 102, una unidad de procesamiento de transformación 104, una unidad de cuantificación 106, una unidad de cuantificación inversa 108, una unidad de transformación inversa 110, una unidad de reconstrucción 112, una unidad de filtro 113, una memoria intermediaria de imágenes decodificadas 114 y una unidad de codificación de entropía 116. La unidad de procesamiento de predicción 100 incluye una 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 intercapa 128. En otros ejemplos, el codificador de video 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 muy integradas, pero están representadas en el ejemplo de la figura 2A por separado a fines explicativos.
El codificador de video 20 puede recibir datos de video. El codificador de video 20 puede recibir los datos de video desde varias fuentes. Por ejemplo, el codificador de video 20 puede recibir los datos de video desde la fuente de video 18 (por ejemplo, mostrada en la figura 1A o 1B) u otra fuente. Los datos de video pueden representar una serie de imágenes. Para codificar los datos de video, el codificador de video 20 puede realizar una operación de codificación en cada una de las imágenes. Como parte de llevar a cabo una operación de codificación en una imagen, el codificador de video 20 puede realizar operaciones de codificación en cada segmento de la imagen. Como parte de llevar a cabo una operación de codificación en un segmento, el codificador de video 20 puede realizar operaciones de codificación en bloques de árbol en el segmento.
Como parte de llevar a cabo una operación de codificación en un bloque de árbol, la unidad de procesamiento de predicción 100 puede realizar una partición de árbol cuaternario en el bloque de video del bloque de árbol para dividir el bloque de video en bloques de video progresivamente más pequeños. Cada uno de los bloques de video 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 video de un bloque de árbol en cuatro subbloques de igual tamaño, dividir uno o más de los subbloques en cuatro subsubbloques de igual tamaño, y así sucesivamente.
Los tamaños de los bloques de video asociados con las CU pueden variar desde muestras de 8x8 hasta el tamaño del bloque de árbol con un máximo de 64x64 muestras o más. En esta descripción, "NxN" y "N por N" pueden usarse indistintamente para referirse a las dimensiones de muestra de un bloque de video en términos de dimensiones verticales y horizontales, por ejemplo, muestras de 16 x 16 o muestras de 16 por 16. En general, un bloque de video de 16x16 tiene dieciséis muestras en dirección vertical (y = 16) y dieciséis muestras en dirección horizontal (x = 16). Asimismo, un bloque NxN generalmente tiene N muestras en una dirección vertical y N muestras en una dirección horizontal, donde N representa un valor entero no negativo.
Además, como parte de llevar a cabo 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 de árbol cuaternario jerárquico para el bloque de árbol. Por ejemplo, un bloque de árbol puede corresponder a un nodo raíz de la estructura de datos de árbol cuaternario. Si la unidad de procesamiento de predicción 100 divide el bloque de video del bloque de árbol en cuatro subbloques, el nodo raíz tiene cuatro nodos secundarios en la estructura de datos de árbol cuaternario. Cada uno de los nodos secundarios corresponde a una CU asociada con uno de los subbloques. Si la unidad de procesamiento de predicción 100 divide uno de los subbloques en cuatro subbloques, el nodo correspondiente a la CU asociada con el subbloque puede tener cuatro nodos secundarios, cada uno de los cuales corresponde a una CU asociada con uno de las subsubbloques.
Cada nodo de la estructura de datos de árbol cuaternario puede contener datos de sintaxis (por ejemplo, elementos de sintaxis) 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 video de la CU correspondiente al nodo está particionado (por ejemplo, dividido) en cuatro subbloques. Los elementos de sintaxis para una CU pueden definirse de forma recursiva y pueden depender de si el bloque de video de la CU está dividido en subbloques. Una CU cuyo bloque de video no está dividido puede corresponder a un nodo hoja en la estructura de datos de árbol cuaternario. Un bloque de árbol codificado puede incluir datos basados en la estructura de datos de árbol cuaternario para un bloque de árbol correspondiente.
El codificador de video 20 puede realizar operaciones de codificación en cada CU no dividida de un bloque de árbol. Cuando el codificador de video 20 realiza una operación de codificación en una CU no dividida, el codificador de video 20 genera datos que representan una representación codificada de la CU no dividida.
Como parte de llevar a cabo una operación de codificación en una CU, la unidad de procesamiento de predicción 100 puede dividir el bloque de video de la CU entre una o más PU de la CU. El codificador de video 20 y el decodificador de video 30 pueden admitir varios tamaños de PU. Suponiendo que el tamaño de una CU particular es 2Nx2N, el codificador de video 20 y el decodificador de video 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 similar. El codificador de video 20 y el decodificador de video 30 también pueden admitir particiones 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 divisiones geométricas para dividir el bloque de video 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 video de la CU en ángulos rectos.
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 video predicho para la PU basándose en la información de movimiento y muestras decodificadas de imágenes distintas de la imagen asociada con la CU (por ejemplo, imágenes de referencia). En esta divulgación, un bloque de video predicho generado por la unidad de compensación de movimiento 124 puede denominarse bloque de video interpredicho.
Los segmentos pueden ser segmentos I, segmentos P o segmentos B. La unidad 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 segmento I, un segmento P o un segmento B. En un segmento I, todas las PU están intrapredichas. Por lo tanto, si la PU está en un segmento I, la unidad de estimación de movimiento 122 y la unidad de compensación de movimiento 124 no realizan interpredicción en la PU.
Si la PU está en un segmento P, la imagen que contiene la PU se asocia 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 segmento 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 en el bloque de video de la PU. La unidad de estimación de movimiento 122 puede usar una variedad de métricas para determinar qué tan cerca un conjunto de muestras en una imagen de referencia se corresponde con las muestras en el bloque de video de una PU. Por ejemplo, la unidad de estimación de movimiento 122 puede determinar qué tan cerca un conjunto de muestras en una imagen de referencia corresponde a las muestras en el bloque de video de una PU por suma de diferencia absoluta (SAD), suma de diferencia cuadrada (SSD) u otras métricas de diferencia.
Después de identificar un bloque de referencia de una PU en un segmento P, la unidad de estimación de movimiento 122 puede generar un índice de referencia que indica la imagen de referencia en 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 diversos 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, precisión de un octavo de muestra u otra precisión de muestra fraccionada. En el caso de la precisión fraccional de la muestra, los valores del bloque de referencia pueden interpolarse a partir de los valores de la muestra de posición entera 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 información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar un bloque de video predicho de la PU basándose en el bloque de referencia identificado por la información de movimiento de la PU.
Si la PU está en un segmento B, la imagen que contiene la PU puede asociarse con dos listas de imágenes de referencia, denominadas "lista 0" y "lista 1". En algunos ejemplos, una imagen que contiene un segmento B puede asociarse con una combinación de lista que es una combinación de la lista 0 y la lista 1.
Además, si la PU está en un segmento B, la unidad de estimación de movimiento 122 puede realizar una predicción unidireccional o una predicción bidireccional para la PU. Cuando la unidad de estimación de movimiento 122 realiza una predicción unidireccional para la PU, la unidad de estimación de movimiento 122 puede buscar en las imágenes de referencia de la lista 0 o la lista 1 un bloque de referencia para la PU. La unidad de estimación de movimiento 122 puede luego 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 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 en la lista 1. La unidad de compensación de movimiento 124 puede generar el bloque de video predicho de la PU basándose en el bloque de referencia indicado por la información de movimiento de la PU.
Cuando la unidad de estimación de movimiento 122 realiza una predicción bidireccional para una PU, la unidad de estimación de movimiento 122 puede buscar en las imágenes de referencia en la lista 0 un bloque de referencia para la PU y también puede buscar en las imágenes de referencia en la lista 1 otro bloque de referencia para la PU. La unidad de estimación de movimiento 122 puede luego 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 los desplazamientos espaciales entre los bloques de referencia y la PU. La unidad de estimación de movimiento 122 puede emitir los índices de referencia y los vectores de movimiento de la PU como información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar el bloque de video predicho de la PU basándose en los bloques de referencia indicados por la información de movimiento de la PU.
En algunos casos, la unidad de estimación de movimiento 122 no genera un conjunto completo de información de movimiento para una PU a la unidad de codificación de entropía 116. Más bien, 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 vecina. En este ejemplo, la unidad de estimación de movimiento 122 puede indicar, en una estructura de sintaxis asociada con la PU, un valor que indica al decodificador de video 30 que la PU tiene la misma información de movimiento que la PU vecina. En otro ejemplo, la unidad de estimación de movimiento 122 puede identificar, en una estructura de sintaxis asociada con la PU, una PU vecina y una diferencia de vector de movimiento (MVD). La diferencia del vector de movimiento indica una diferencia entre el vector de movimiento de la PU y el vector de movimiento de la PU vecina indicada. El decodificador de video 30 puede utilizar el vector de movimiento de la PU vecina indicada y la diferencia del vector de movimiento para determinar el vector de movimiento de la PU. Haciendo referencia a la información de movimiento de una primera PU al señalizar la información de movimiento de una segunda PU, el codificador de video 20 puede ser capaz de señalizar la información de movimiento de la segunda PU utilizando menos bits.
Como se analiza con mayor detalle a continuación con referencia a las figuras 8 y -12, la unidad de procesamiento de predicción 100 puede configurarse para codificar (por ejemplo, codificar o decodificar) la PU (o cualquier otra capa de referencia y/o bloques de capa de mejora o unidades de video) al llevar a cabo los métodos ilustrados en las figuras 8 y -12. Por ejemplo, la unidad de interpredicción 121 (por ejemplo, a través de la unidad de estimación de movimiento 122 y/o la unidad de compensación de movimiento 124), la unidad de intrapredicción 126 o la unidad de predicción intercapa 128 pueden configurarse para realizar los métodos ilustrados en las figuras 8-12, ya sea juntos o por separado.
Como parte de llevar a cabo una operación de codificación en una CU, la unidad de intrapredicción 126 puede realizar intrapredicción en las PU de la CU. La intrapredicción puede proporcionar compresión espacial. Cuando la unidad de intrapredicción 126 realiza una intrapredicción en una PU, la unidad de intrapredicción 126 puede generar datos de predicción para la PU basándose en muestras decodificadas de otras PU en la misma imagen. Los datos de predicción para la PU pueden incluir un bloque de video predicho y varios elementos de sintaxis. La unidad de intrapredicción 126 puede realizar una intrapredicción en las PU en los segmentos I, los segmentos P y los segmentos B.
Para realizar una 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 de predicción para la PU. Cuando la unidad de intrapredicción 126 usa un modo de intrapredicción para generar un conjunto de datos de predicción para la PU, la unidad intrapredicción 126 puede extender muestras de bloques de video de PU vecinas a través del bloque de video de la PU en una dirección y/o gradiente asociado con el modo de intrapredicción. Las PU vecinas pueden estar arriba, arriba y a la derecha, arriba y a la izquierda, o a la izquierda de la PU, asumiendo un orden de codificación de izquierda a derecha, de arriba a abajo para las PU, CU y bloques de árbol. La unidad de intrapredicción 126 puede utilizar varios números de modos de intrapredicción, por ejemplo, 33 modos de intrapredicción direccional, dependiendo del tamaño de la PU.
La unidad de procesamiento de predicción 100 puede seleccionar los datos de predicción para una PU de 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 métricas de velocidad/distorsión de los conjuntos de datos de predicción.
Si la unidad de procesamiento de predicción 100 selecciona datos de predicción generados por la unidad de predicción interna 126, la unidad de procesamiento de predicción 100 puede señalar el modo de intrapredicción que se usó para generar los datos de predicción para las PU, por ejemplo, el modo de intrapredicción seleccionado. La unidad de procesamiento de predicción 100 puede señalar el modo de intrapredicción seleccionado de diversas formas. Por ejemplo, puede ser probable que el modo de intrapredicción seleccionado sea el mismo que el modo de intrapredicción de una PU vecina. En otras palabras, el modo de predicción intra de la PU vecina puede ser el modo más probable para la PU actual. Por lo tanto, la unidad de procesamiento de predicción 100 puede generar un elemento de sintaxis para indicar que el modo de intrapredicción seleccionado es el mismo que el modo de intrapredicción de la PU vecina.
Como se analizó anteriormente, el codificador de video 20 puede incluir una unidad de predicción intercapa 128. La unidad de predicción intercapa 128 está configurada para predecir un bloque actual (por ejemplo, un bloque actual en el EL) usando una o más capas diferentes que están disponibles en SVC (por ejemplo, una capa base o de referencia). Tal predicción puede denominarse predicción intercapa. La unidad de predicción intercapa 128 utiliza métodos de predicción para reducir la redundancia intercapa, mejorando así la eficiencia de la codificación y reduciendo los requisitos de recursos computacionales. Algunos ejemplos de predicción intercapa incluyen la predicción intercapa e intracapa, la predicción del movimiento intercapa y la predicción residual intercapa. La predicción intercapa utiliza la reconstrucción de bloques coubicados en la capa base para predecir el bloque actual en la capa de mejora. La predicción de movimiento intercapa utiliza información de movimiento de la capa base para predecir el movimiento en la capa de mejora. La predicción residual intercapa utiliza el residuo de la capa base para predecir el residuo de la capa de mejora. Cada uno de los esquemas de predicción intercapa se analiza a continuación con mayor detalle.
Después de que la unidad de procesamiento de predicción 100 selecciona 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, según se indica por el signo menos) los bloques de video predichos de las PU de la CU del bloque de video de la CU. Los datos residuales de una CU pueden incluir bloques de video residuales 2D que corresponden a diferentes componentes de muestra de las muestras en el bloque de video de la CU. Por ejemplo, los datos residuales pueden incluir un bloque de video residual que corresponde a las diferencias entre los componentes de luminancia de las muestras en los bloques de video predichos de las PU de la CU y los componentes de luminancia de las muestras en el bloque de video original de la CU. Además, los datos residuales de la CU pueden incluir bloques de video residuales que corresponden a las diferencias entre los componentes de crominancia de las muestras en los bloques de video predichos de las PU de la CU y los componentes de crominancia de las muestras en el bloque de video original de la CU.
La unidad de procesamiento de predicción 100 puede realizar divisiones de árbol cuaternario para dividir los bloques de video residuales de una CU en subbloques. Cada bloque de video residual no dividido puede estar asociado con una TU diferente de la CU. Los tamaños y posiciones de los bloques de video residuales asociados con las TU de una CU pueden o no basarse en los tamaños y posiciones de los bloques de video asociados con las PU de la CU. Una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT) puede incluir nodos asociados con cada uno de los bloques de video residuales. Las TU de una CU pueden corresponder a los nodos hoja del RQT.
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 video residual asociado con la TU. Cada uno de los bloques de coeficientes de transformación puede ser una matriz 2D de coeficientes de transformación. La unidad de procesamiento de transformación 104 puede aplicar varias transformaciones al bloque de video 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 video residual asociado con una TU.
Después de que la unidad de procesamiento de transformación 104 genera un bloque de coeficiente de transformación asociado con una TU, la unidad de cuantificación 106 puede cuantificar los coeficientes de transformación en el bloque de coeficiente de transformación. La unidad de cuantificación 106 puede cuantificar un bloque de coeficiente de transformación asociado con una TU de una CU basándose en un valor de QP asociado con la CU.
El codificador de video 20 puede asociar un valor de QP con una CU de varias formas. Por ejemplo, el codificador de video 20 puede realizar un análisis de distorsión de velocidad en un bloque de árbol asociado con la CU. En el análisis de la distorsión de velocidad, el codificador de video 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 video 20 puede asociar diferentes valores de QP con la CU cuando el codificador de video 20 genera diferentes representaciones codificadas del bloque de árbol. El codificador de video 20 puede señalar que un valor de QP determinado está asociado con la CU cuando el valor de QP determinado está asociado con la CU en una representación codificada del bloque de árbol que tiene una métrica de distorsión y tasa de bits más baja.
La unidad de cuantificación inversa 108 y la unidad de transformación inversa 110 pueden aplicar cuantificación inversa y transformaciones inversas al bloque de coeficiente de transformación, respectivamente, para reconstruir un bloque de video residual a partir del bloque de coeficiente de transformación. La unidad de reconstrucción 112 puede agregar el bloque de video residual reconstruido a las muestras correspondientes de uno o más bloques de video predichos generados por la unidad de procesamiento de predicción 100 para producir un bloque de video reconstruido asociado con una TU. Al reconstruir bloques de video para cada TU de una CU de esta manera, el codificador de video 20 puede reconstruir el bloque de video de la CU.
Después de que la unidad de reconstrucción 112 reconstruye el bloque de video 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 video asociado con la CU. Después de llevar a cabo una o más operaciones de desbloqueo, la unidad de filtro 113 puede almacenar el bloque de video reconstruido de la CU en la memoria intermediaria de imágenes decodificadas 114. La unidad de estimación de movimiento 122 y la unidad de compensación de movimiento 124 pueden usar una imagen de referencia que contiene el bloque de video reconstruido para realizar interpredicción en PU de imágenes posteriores. Además, la unidad de intrapredicción 126 puede utilizar bloques de video reconstruidos en la memoria intermediaria de imágenes decodificadas 114 para realizar intrapredicción en otras PU en la misma imagen que la CU.
La unidad de codificación de entropía 116 puede recibir datos de otros componentes funcionales del codificador de video 20. Por ejemplo, la unidad de codificación de entropía 116 puede recibir bloques de coeficientes de transformación de la unidad de cuantificación 106 y puede recibir elementos de sintaxis de la unidad de procesamiento de predicción 100. Cuando la unidad de codificación de entropía 116 recibe los datos, la unidad de codificación de entropía 116 puede realizar una o más operaciones de codificación de entropía para generar datos codificados de entropía. Por ejemplo, el codificador de video 20 puede realizar una operación de codificación de longitud variable adaptativa al contexto (CAVLC), una operación de CABAC, una operación de codificación de longitud de variable a variable (V2V), una operación de codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), una operación de codificación de entropía de partición de intervalo de probabilidad (PIPE) u otro tipo de operación de codificación de entropía en los datos. La unidad de codificación de entropía 116 puede generar un flujo de bits que incluye los datos codificados de entropía.
Como parte de llevar a cabo una operación de codificación de entropía en datos, la unidad de codificación de entropía 116 puede seleccionar un modelo de contexto. Si la unidad de codificación de entropía 116 realiza un operación de CABAC, el modelo de contexto puede indicar estimaciones de las probabilidades de que los contenedores particulares tengan valores particulares. En el contexto de CABAC, el término "contenedor" se utiliza para referirse a un bit de una versión binarizada de un elemento sintáctico.
Codificador de video multicapa
La figura 2B es un diagrama de bloques que ilustra un ejemplo de un codificador de video de múltiples capas 23 que puede implementar las técnicas según los aspectos descritos en la presente divulgación. El codificador de video 23 puede configurarse para procesar tramas de video de múltiples capas, como para la codificación SHVC y multivista. Además, el codificador de video 23 puede configurarse para realizar cualquiera o todas las técnicas de esta divulgación.
El codificador de video 23 incluye un codificador de video 20A y un codificador de video 20B, cada uno de los cuales pueden configurarse como el codificador de video 20 y puede realizar las funciones descritas anteriormente con respecto al codificador de video 20. Además, como indica la reutilización de los números de referencia, los codificadores de video 20A y 20B pueden incluir al menos algunos de los sistemas y subsistemas como el codificador de video 20. Aunque se ilustra que el codificador de video 23 incluye dos codificadores de video 20A y 20B, el codificador de video 23 no está limitado como tal y puede incluir cualquier número de capas del codificador de video 20. En algunas realizaciones, el codificador de video 23 puede incluir un codificador de video 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 video que incluye cinco capas de codificador. En algunas realizaciones, el codificador de video 23 puede incluir más capas de codificador que tramas en una unidad de acceso. En algunos de estos casos, algunas de las capas del codificador de video pueden estar inactivas al procesar algunas unidades de acceso
Además de los codificadores de video 20A y 20B, el codificador de video 23 puede incluir una unidad de remuestreo 90. La unidad de remuestreo 90 puede, en algunos casos, sobremuestrear una capa base de una trama de video recibida, por ejemplo, para crear una capa de mejora. La unidad de remuestreo 90 puede sobremuestrear 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 sobremuestrear el tamaño espacial o el número de píxeles de la capa base, pero el número de segmentos o el recuento del orden de las imágenes pueden permanecer constantes. En algunos casos, la unidad de remuestreo 90 puede no procesar el video recibido y/o puede ser opcional. Por ejemplo, en algunos casos, la unidad de procesamiento de predicción 100 puede realizar un sobremuestreo. En algunas realizaciones, la unidad de remuestreo 90 está configurada para sobremuestrear una capa y reorganizar, redefinir, modificar o ajustar uno o más segmentos para cumplir con un conjunto de reglas de límites de segmentos y/o reglas de exploración de tramas. Aunque se describe principalmente como un sobremuestreo de una capa base, o una capa inferior en una unidad de acceso, en algunos casos, la unidad de remuestreo 90 puede submuestrear una capa. Por ejemplo, si durante la transmisión de un video se reduce el ancho de banda, se puede submuestrear una trama en lugar de sobremuestrearla.
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 intermediaria de imágenes decodificadas 114 del codificador de capa inferior (por ejemplo, el codificador de video 20A) y para sobremuestrear la imagen (o la información de la imagen recibida). Esta imagen sobremuestreada puede luego proporcionarse a la unidad de procesamiento de predicción 100 de un codificador de capa superior (por ejemplo, el codificador de video 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 video de capa 0 y el codificador de capa 1 de la figura 2B.
En algunos casos, la unidad de remuestreo 90 puede ignorarse u omitirse. En tales casos, la imagen de la memoria intermediaria de imágenes decodificadas 114 del codificador de video 20A puede proporcionarse directamente, o al menos sin proporcionarse a la unidad de remuestreo 90, a la unidad de procesamiento de predicción 100 del codificador de video 20B. Por ejemplo, si los datos de video proporcionados al codificador de video 20B y la imagen de referencia de la memoria intermediaria de imágenes decodificadas 114 del codificador de video 20A son del mismo tamaño o resolución, la imagen de referencia puede proporcionarse al codificador de video 20B sin ningún remuestreo.
En algunas realizaciones, el codificador de video 23 submuestrea de los datos de video que se van a proporcionar al codificador de la capa inferior utilizando la unidad de submuestreo 94 antes de proporcionar los datos de video al codificador de video 20A. Alternativamente, la unidad de submuestreo 94 puede ser una unidad de remuestreo 90 capaz de sobremuestrear o submuestrear los datos de video. En otras realizaciones, la unidad de submuestreo 94 puede omitirse.
Como se ilustra en la figura 2B, el codificador de video 23 puede incluir además un multiplexor 98, o mux. El mux 98 puede generar un flujo de bits combinado desde el codificador de video 23. El flujo de bits combinado puede crearse tomando un flujo de bits de cada uno de los codificadores de video 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 video) se pueden alternar 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 puede crearse emitiendo una relación de bloques que no sea 1:1 de cada uno de los codificadores de video 20A y 20b . Por ejemplo, pueden salir dos bloques del codificador de video 20B para cada salida de bloque del codificador de video 20A. En algunas realizaciones, el flujo de salida del mux 98 puede estar preprogramado. En otras realizaciones, el mux 98 puede combinar los flujos de bits de los codificadores de video 20a , 20B en base a una señal de control recibida desde un sistema externo al codificador de video 23, tal como desde un procesador en un dispositivo de origen que incluye el módulo de origen 12. La señal de control puede generarse en base a la resolución o tasa de bits de un video de la fuente de video 18, en base a un ancho de banda del enlace 16, en base a una suscripción asociada con un usuario (por ejemplo, una suscripción paga frente a una suscripción gratuita), o en base a cualquier otro factor para determinar una salida de resolución deseada del codificador de video 23.
Decodificador de video
La figura 3A es un diagrama de bloques que ilustra un ejemplo de un decodificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación. El decodificador de video 30 puede configurarse para procesar una sola capa de una trama de video, como para HEVC. Además, el decodificador de video 30 puede configurarse para realizar cualquiera o todas las técnicas de esta divulgación. Como ejemplo, la unidad de compensación de movimiento 162 y/o la unidad de intrapredicción 164 pueden configurarse para realizar cualquiera o todas las técnicas descritas en esta divulgación. En una realización, el decodificador de video 30 puede incluir opcionalmente una unidad de predicción intercapa 166 que está configurada para realizar cualquiera o todas las técnicas descritas en esta divulgación. En otras realizaciones, la predicción intercapa se puede realizar mediante la unidad de procesamiento de predicción 152 (por ejemplo, la unidad de compensación de movimiento 162 y/o la unidad de intrapredicción 164), en cuyo caso la unidad de predicción intercapa 166 puede omitirse. Sin embargo, los aspectos de esta divulgación no están tan limitados. En algunos ejemplos, las técnicas descritas en la presente divulgación pueden compartirse entre los diversos componentes del decodificador de video 30. En algunos ejemplos, de manera adicional o alternativa, un procesador (no mostrado) puede configurarse para realizar alguna o todas las técnicas descritas en esta divulgación.
A efectos explicativos, esta divulgación describe el decodificador de video 30 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otros estándares o métodos de codificación. El ejemplo representado en la figura 3A es para un códec de una sola capa. Sin embargo, como se describirá adicionalmente con respecto a la figura 3B, algunos o todos los decodificadores de video 30 pueden duplicarse para el procesamiento de un códec de múltiples capas.
En el ejemplo de la figura 3A, el decodificador de video 30 incluye una pluralidad de componentes funcionales. Los componentes funcionales del decodificador de video 30 incluyen una unidad de decodificación de entropía 150, una unidad de procesamiento de predicción 152, una unidad de cuantificación inversa 154, una unidad de transformación inversa 156, una unidad de reconstrucción 158, una unidad de filtro 159 y una memoria intermediaria de imágenes decodificadas 160. La unidad de procesamiento de predicción 152 incluye una unidad de compensación de movimiento 162, una unidad de intrapredicción 164 y una unidad de predicción intercapa 166. En algunos ejemplos, el decodificador de video 30 puede realizar una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador de video 20 de la figura 2A. En otros ejemplos, el decodificador de video 30 puede incluir más, menos o diferentes componentes funcionales.
El decodificador de video 30 puede recibir un flujo de bits que comprende datos de video codificados. El flujo de bits puede incluir una pluralidad de elementos de sintaxis. Cuando el decodificador de video 30 recibe el flujo de bits, la unidad de decodificación de entropía 150 puede realizar una operación de análisis sintáctico en el flujo de bits. Como resultado de llevar a cabo la operación de análisis sintáctico en el flujo de bits, la unidad de decodificación de entropía 150 puede extraer elementos de sintaxis del flujo de bits. Como parte de la realización de la operación de análisis sintáctico, la unidad de decodificación de entropía 150 puede decodificar por entropía elementos de sintaxis codificados 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 reconstrucción que genera datos de video decodificados basándose en los elementos de sintaxis extraídos del flujo de bits.
Como se analizó anteriormente, el flujo de bits puede comprender una serie de unidades de NAL. Las unidades de NAL del flujo de bits pueden incluir unidades de NAL del conjunto de parámetros de video, unidades de NAL del conjunto de parámetros de secuencia, unidades de NAL del conjunto de parámetros de imagen, unidades de NAL de SEI, etc. Como parte de la operación de análisis sintáctico del flujo de bits, la unidad de decodificación de entropía 150 puede realizar operaciones de análisis sintáctico que extraen y decodifican de forma entrópica conjuntos de parámetros de secuencia de unidades de NAL de conjuntos de parámetros de secuencia, conjuntos de parámetros de imagen de unidades de NAL de conjuntos de parámetros de imagen, datos de SEI de unidades de NAL de SEI, etc.
Además, las unidades de NAL del flujo de bits pueden incluir unidades de NAL de segmento codificado. Como parte de llevar a cabo la operación de análisis sintáctico en el flujo de bits, la unidad de decodificación de entropía 150 puede llevar a cabo operaciones de análisis sintáctico que extraen y decodifican de forma entrópica segmentos codificados de las unidades de NAL de segmentos codificados. Cada uno de los segmentos codificados puede incluir un encabezado de segmento y datos de segmento. El encabezado de segmento puede contener elementos de sintaxis pertenecientes a un segmento. Los elementos de sintaxis en el encabezado de segmento pueden incluir un elemento de sintaxis que identifica un conjunto de parámetros de imagen asociado con una imagen que contiene el segmento. La unidad de decodificación de entropía 150 puede llevar a cabo operaciones de decodificación de entropía, tales como operaciones de decodificación de CABAC, en elementos de sintaxis en el encabezado de segmento codificado para recuperar el encabezado de segmento.
Como parte de la extracción de los datos del segmento de las unidades de NAL del segmento codificado, la unidad de decodificación de entropía 150 puede realizar operaciones de análisis sintáctico que extraen elementos de sintaxis de las CU codificadas en los datos del segmento. Los elementos de sintaxis extraídos pueden incluir elementos de sintaxis asociados con bloques de coeficientes de transformación. La unidad de decodificación de entropía 150 puede luego realizar operaciones de decodificación de CABAC en algunos de los elementos de sintaxis. Después de que la unidad de decodificación de entropía 150 lleva a cabo una operación de análisis sintáctico en una CU no dividida, el decodificador de video 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 decodificador de video 30 puede realizar una operación de reconstrucción en cada TU de la CU. Al realizar la operación de reconstrucción para cada TU de la CU, el decodificador de video 30 puede reconstruir un bloque de video residual asociado con la CU.
Como parte de llevar a cabo una operación de reconstrucción en una TU, la unidad de cuantificación inversa 154 puede cuantificar inversamente, por ejemplo, descuantificar, un bloque de coeficiente de transformación asociado con la TU. La unidad de cuantificación inversa 154 puede cuantificar inversamente el bloque de coeficiente de transformación de una manera similar a los procesos de cuantificación inversa propuestos para HEVC o definidos por el estándar de decodificación H.264. La unidad de cuantificación inversa 154 puede utilizar un parámetro de cuantificación de QP calculado por el codificador de video 20 para una CU del bloque de coeficiente de transformación para determinar un grado de cuantificación y, de igual forma, un grado de cuantificación inversa para aplicar la unidad de cuantificación inversa 154.
Después de que la unidad de cuantificación inversa 154 cuantifique inversamente un bloque de coeficiente de transformación, la unidad de transformación inversa 156 puede generar un bloque de video residual para la TU asociada con el bloque de coeficiente de transformación. La unidad de transformación inversa 156 puede aplicar una transformación inversa al bloque de coeficiente de transformación para generar el bloque de video residual para la TU. Por ejemplo, la unidad de transformación inversa 156 puede aplicar una DCT inversa, una transformación entera inversa, una transformación Karhunen-Loeve inversa (KLT), una transformación rotacional 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 coeficiente de transformación basándose en la señalización del codificador de video 20. En tales ejemplos, la unidad de transformación inversa 156 puede determinar la transformación inversa basándose en una transformación señalizada en el nodo raíz de un árbol cuaternario para un bloque de árbol asociado con el bloque de coeficiente 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.
En algunos ejemplos, la unidad de compensación de movimiento 162 puede refinar el bloque de video predicho de una PU realizando una interpolación basada en filtros de interpolación. Los identificadores de los filtros de interpolación que se utilizarán para la compensación de movimiento con precisión de submuestra pueden incluirse en los elementos de sintaxis. La unidad de compensación de movimiento 162 puede usar los mismos filtros de interpolación usados por el codificador de video 20 durante la generación del bloque de video predicho de la PU para calcular valores interpolados para muestras subenteras 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 video 20 según la información de sintaxis recibida y usar los filtros de interpolación para producir el bloque de video predicho.
Como se analiza con mayor detalle a continuación con referencia a las figuras 8-12, la unidad de procesamiento de predicción 152 puede codificar (por ejemplo, codificar o decodificar) la PU (o cualquier otra capa de referencia y/o bloques de capa de mejora o unidades de video) al llevar a cabo los métodos ilustrados en las figuras 8-12. Por ejemplo, la unidad de compensación de movimiento 162, la unidad de intrapredicción 164 o la unidad de predicción intercapa 166 pueden configurarse para realizar los métodos ilustrados en las figuras 8-12, ya sea juntos o por separado.
Si se codifica una PU usando intrapredicción, la unidad de intrapredicción 164 puede realizar intrapredicción para generar un bloque de video 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 elementos de sintaxis en el flujo de bits. El flujo de bits puede incluir elementos de sintaxis que la unidad de intrapredicción 164 puede utilizar para determinar el modo de intrapredicción de la PU.
En algunos casos, los elementos de sintaxis pueden indicar que la unidad de intrapredicción 164 va a 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 vecina. En otras palabras, el modo de predicción intra de la PU vecina puede ser el modo más probable para la PU actual. Por lo tanto, en este ejemplo, el flujo de bits puede incluir un pequeño elemento de sintaxis que indica que el modo de intrapredicción de la PU es el mismo que el modo de intrapredicción de la PU vecina. La unidad de intrapredicción 164 puede luego 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 video de las PU espacialmente vecinas.
Como se analizó anteriormente, el decodificador de video 30 también puede incluir una unidad de predicción intercapa 166. La unidad de predicción intercapa 166 está configurada para predecir un bloque actual (por ejemplo, un bloque actual en el EL) usando una o más capas diferentes que están disponibles en SVC (por ejemplo, una capa base o de referencia). Tal predicción puede denominarse predicción intercapa. La unidad de predicción intercapa 166 utiliza métodos de predicción para reducir la redundancia intercapa, mejorando así la eficiencia de la codificación y reduciendo los requisitos de recursos computacionales. Algunos ejemplos de predicción intercapa incluyen la predicción intercapa e intracapa, la predicción del movimiento intercapa y la predicción residual intercapa. La predicción intercapa utiliza la reconstrucción de bloques coubicados en la capa base para predecir el bloque actual en la capa de mejora. La predicción de movimiento intercapa utiliza información de movimiento de la capa base para predecir el movimiento en la capa de mejora. La predicción residual intercapa utiliza el residuo de la capa base para predecir el residuo de la capa de mejora. Cada uno de los esquemas de predicción intercapa se analiza a continuación con mayor detalle.
La unidad de reconstrucción 158 puede usar los bloques de video residuales asociados con las TU de una CU y los bloques de video predichos de las PU de la CU, por ejemplo, datos de intrapredicción o datos de interpredicción, según corresponda, para reconstruir el bloque de video de la CU. Por lo tanto, el decodificador de video 30 puede generar un bloque de video predicho y un bloque de video residual basado en elementos de sintaxis en el flujo de bits y puede generar un bloque de video basado en el bloque de video predicho y el bloque de video residual.
Después de que la unidad de reconstrucción 158 reconstruye el bloque de video 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 decodificador de video 30 puede almacenar el bloque de video de la CU en la memoria intermediaria de imágenes decodificadas 160. La memoria intermediaria de imágenes decodificadas 160 puede proporcionar imágenes de referencia para compensación de movimiento posterior, intrapredicción y presentación en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la figura 1A o 1B. Por ejemplo, el decodificador de video 30 puede realizar, en base a los bloques de video en la memoria intermediaria de imágenes decodificadas 160, operaciones de intrapredicción o interpredicción en PU de otras CU.
Decodificador multicapa
La figura 3B es un diagrama de bloques que ilustra un ejemplo de un decodificador de video de múltiples capas 33 que puede implementar las técnicas según los aspectos descritos en la presente divulgación. El decodificador de video 33 puede configurarse para procesar tramas de video de múltiples capas, como para la codificación SHVC y multivista. Además, el decodificador de video 33 puede configurarse para realizar cualquiera o todas las técnicas de esta divulgación.
El decodificador de video 33 incluye un decodificador de video 30A y un decodificador de video 30B, cada uno de los cuales pueden configurarse como el decodificador de video 30 y puede realizar las funciones descritas anteriormente con respecto al decodificador de video 30. Además, como indica la reutilización de los números de referencia, los decodificadores de video 30A y 30B pueden incluir al menos algunos de los sistemas y subsistemas como el decodificador de video 30. Aunque se ilustra que el decodificador de video 33 incluye dos decodificadores de video 30A y 30B, el decodificador de video 33 no está limitado como tal y puede incluir cualquier número de capas del decodificador de video 30. En algunas realizaciones, el decodificador de video 33 puede incluir un decodificador de video 30 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 decodificada por un decodificador de video que incluye cinco capas de decodificador. En algunas realizaciones, el decodificador de video 33 puede incluir más capas de decodificador que tramas en una unidad de acceso. En algunos de estos casos, algunas de las capas del decodificador de video pueden estar inactivas al procesar algunas unidades de acceso.
Además de los decodificadores de video 30A y 30B, el decodificador de video 33 puede incluir una unidad de sobremuestreo 92. En algunas realizaciones, la unidad de sobremuestreo 92 puede sobremuestrear una capa base de una trama de video recibida para crear una capa mejorada que se añadirá a la lista de imágenes de referencia para la trama o unidad de acceso. Esta capa mejorada se puede almacenar en la memoria intermediaria de imágenes decodificadas 160. En algunas realizaciones, la unidad de sobremuestreo 92 puede incluir algunas o todas las realizaciones descritas con respecto a la unidad de remuestreo 90 de la figura 2A. En algunas realizaciones, la unidad de sobremuestreo 92 está configurada para interpolar una capa y reorganizar, redefinir, modificar o ajustar uno o más segmentos para cumplir con un conjunto de reglas de límites de segmentos y/o reglas de exploración de tramas. En algunos casos, la unidad de sobremuestreo 92 puede ser una unidad de remuestreo configurada para sobremuestrear y/o submuestrear una capa de una trama de video recibida.
La unidad de sobremuestreo 92 puede configurarse para recibir una imagen o trama (o información de imagen asociada con la imagen) desde la memoria intermediaria de imágenes decodificadas 160 del decodificador de capa inferior (por ejemplo, el decodificador de video 30A) y para sobremuestrear la imagen (o la información de la imagen recibida). Esta imagen sobremuestreada puede luego proporcionarse a la unidad de procesamiento de predicción 152 de un decodificador de capa superior (por ejemplo, el decodificador de video 30B) configurado para decodificar una imagen en la misma unidad de acceso que el decodificador de capa inferior. En algunos casos, el decodificador de capa superior es una capa eliminada del decodificador de capa inferior. En otros casos, puede haber uno o más decodificadores de capa superior entre el decodificador de capa 0 y el decodificador de capa 1 de la figura 3B.
En algunos casos, la unidad de sobremuestreo 92 puede ignorarse u omitirse. En tales casos, la imagen de la memoria intermediaria de imágenes decodificadas 160 del decodificador de video 30A puede proporcionarse directamente, o al menos sin proporcionarse a la unidad de sobremuestreo 92, a la unidad de procesamiento de predicción 152 del decodificador de video 30B. Por ejemplo, si los datos de video proporcionados al decodificador de video 30B y la imagen de referencia de la memoria intermediaria de imágenes decodificadas 160 del decodificador de video 30a son del mismo tamaño o resolución, la imagen de referencia puede proporcionarse al decodificador de video 30B sin sobremuestreo. Además, en algunas realizaciones, la unidad de sobremuestreo puede 92 ser una unidad 90 de remuestreo configurada para sobremuestrear o submuestrear una imagen de referencia recibida desde la memoria intermediaria de imágenes decodificadas 160 del decodificador de video 30A.
Como se ilustra en la figura 3B, el decodificador 33 de video puede incluir además un demultiplexor 99, o demux. El demux 99 puede dividir un flujo de bits de video codificado en múltiples flujos de bits, proporcionándose cada flujo de bits de salida del demux 99 a un decodificador de video diferente 30A y 30B. Los múltiples flujos de bits pueden crearse recibiendo un flujo de bits y cada uno de los decodificadores de video 30A y 30B recibe una parte del flujo de bits en un momento determinado. Mientras que en algunos casos los bits del flujo de bits recibidos en el demux 99 pueden alternarse un bit a la vez entre cada uno de los decodificadores de video (por ejemplo, decodificadores de video 30A y 30B en el ejemplo de la figura 3B), en muchos casos el flujo de bits se divide de manera diferente. Por ejemplo, el flujo de bits puede dividirse alternando qué decodificador de video recibe el flujo de bits un bloque a la vez. En otro ejemplo, el flujo de bits puede dividirse por una relación de bloques que no sea 1:1 para cada uno de los decodificadores de video 30A y 30B. Por ejemplo, se pueden proporcionar dos bloques al decodificador de video 30B para cada bloque proporcionado al decodificador de video 30A. En algunas realizaciones, la división del flujo de bits por el demux 99 puede estar preprogramada. En otras realizaciones, el demux 99 puede dividir el flujo de bits basándose en una señal de control recibida desde un sistema externo al decodificador de video 33, tal como desde un procesador en un dispositivo de destino que incluye el módulo de destino 14. La señal de control puede generarse en base a la resolución o tasa de bits de un video desde la interfaz de entrada 28, en base a un ancho de banda del enlace 16, en base a una suscripción asociada con un usuario (por ejemplo, una suscripción paga frente a una suscripción gratuita), o en base a cualquier otro factor para determinar una resolución obtenible por el decodificador de video 33.
Imágenes de punto de acceso intraaleatorio (IRAP)
Algunos esquemas de codificación de video pueden proporcionar varios puntos de acceso aleatorio a lo largo del flujo de bits, de manera que el flujo de bits se puede decodificar comenzando desde cualquiera de esos puntos de acceso aleatorio sin necesidad de decodificar ninguna imagen que preceda a esos puntos de acceso aleatorio en el flujo de bits. En tales esquemas de codificación de video, todas las imágenes que siguen a un punto de acceso aleatorio en orden de salida (por ejemplo, incluidas aquellas imágenes que están en la misma unidad de acceso que la imagen que proporciona el punto de acceso aleatorio) se pueden decodificar 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 decodificación, un decodificador puede reanudar la decodificación del flujo de bits a partir del siguiente punto de acceso aleatorio. La compatibilidad con el acceso aleatorio puede facilitar, por ejemplo, servicios de transmisión dinámica, operaciones de búsqueda, cambio de canal, etc.
En algunos esquemas de codificación, dichos puntos de acceso aleatorio pueden proporcionarse mediante imágenes que se denominan imágenes de intra-punto de acceso aleatorio (IRAP). Por ejemplo, un punto de acceso aleatorio (por ejemplo, proporcionado por una imagen de IRAP de capa de mejora) en una capa de mejora ("capaA") contenida en una unidad de acceso ("auA") puede proporcionar acceso aleatorio específico de la capa para cada capa de referencia ("capaB") de capa A (por ejemplo, una capa de referencia es una capa que se usa para predecir la capaA) que tiene un punto de acceso aleatorio contenido en una unidad de acceso ("auB") que está en la capaB y precede a la auA en el orden de decodificación (o un punto de acceso aleatorio contenido en la auA), las imágenes en la capaA que siguen a la auB en orden de salida (incluidas aquellas imágenes ubicadas en la auB), se pueden decodificar correctamente sin necesidad de decodificar ninguna imagen en la capaA que preceda a la auB.
Las imágenes de IRAP pueden codificarse mediante intrapredicción (por ejemplo, codificadas sin hacer referencia a otras imágenes) y pueden incluir, por ejemplo, imágenes de actualización de decodificación instantánea (IDR), imágenes de acceso aleatorio limpio (CRA) e imágenes de acceso a enlace roto (BLA). Cuando hay una imagen de IDR en el flujo de bits, todas las imágenes que preceden a la imagen de IDR en el orden de decodificación no se utilizan para la predicción de las imágenes que siguen a la imagen de IDR en el orden de decodificación. Cuando hay una imagen de CRA en el flujo de bits, las imágenes que siguen a la imagen de CRA pueden utilizar o no imágenes que preceden a la imagen de CRA en el orden de decodificación para la predicción. Las imágenes que siguen a la imagen de CRA en el orden de decodificación, pero utilizan imágenes que preceden a la imagen de CRA en el orden de decodificación pueden denominarse imágenes principales omitidas de acceso aleatorio (RASL). Otro tipo de imagen que sigue a una imagen de IRAP en el orden de decodificación y precede a la imagen de IRAP en el orden de salida es una imagen principal decodificable de acceso aleatorio (RADL), que puede no contener referencias a ninguna imagen que preceda a la imagen de IRAP en el orden de decodificación. El decodificador puede descartar las imágenes de RASL si las imágenes que preceden a la imagen de CRA no están disponibles. Una imagen de BLA indica al decodificador que las imágenes que preceden a la imagen de BLA pueden no estar disponibles para el decodificador (por ejemplo, porque dos flujos de bits se empalman y la imagen e BLA es la primera imagen del segundo flujo de bits en el orden de decodificación). Una unidad de acceso (por ejemplo, un grupo de imágenes que consiste en todas las imágenes codificadas asociadas con el mismo tiempo de salida en varias capas) que contiene una imagen de capa base (por ejemplo, una imagen que tiene un valor de ID de capa de 0) que es una imagen de IRAP puede denominarse unidad de acceso de IRAP.
Alineación intercapa de imágenes de IRAP
En SVC, es posible que no se requiera que las imágenes de IRAP estén alineadas (por ejemplo, contenidas en la misma unidad de acceso) en diferentes capas. Por ejemplo, si se requiriera alinear las imágenes de IRAP, cualquier unidad de acceso que contenga al menos una imagen de IRAP solo contendría imágenes de IRAP. Por otro lado, si no fuera necesario alinear las imágenes de IRAP, en una sola unidad de acceso, una imagen (por ejemplo, en una primera capa) puede ser una imagen de IRAP y otra imagen (por ejemplo, en una segunda capa) puede ser una imagen sin IRAp. Tener tales imágenes de IRAP no alineadas en un flujo de bits puede proporcionar algunas ventajas. Por ejemplo, en un flujo de bits de dos capas, si hay más imágenes de IRAP en la capa base que en la capa de mejora, en aplicaciones de difusión y multidifusión, se puede lograr un retraso de sintonización bajo y una alta eficiencia de codificación.
En algunos esquemas de codificación de video, se puede usar un recuento de orden de imágenes (POC) para realizar un seguimiento del orden relativo en el que se muestran las imágenes decodificadas. Algunos de tales esquemas de codificación pueden hacer que los valores de POC se reestablezcan (por ejemplo, se fijen en cero o se fijen en algún valor señalado en el flujo de bits) siempre que ciertos tipos de imágenes aparezcan en el flujo de bits. Por ejemplo, los valores de POC de ciertas imágenes de IRAP pueden reestablecerse, provocando que también se reestablezcan los valores de POC de otras imágenes que preceden a esas imágenes de IRAP en el orden de decodificación. Esto puede resultar problemático cuando no es necesario alinear las imágenes de IRAP en diferentes capas. Por ejemplo, cuando una imagen ("imagenA") es una imagen de IRAP y otra imagen ("imagenB") en la misma unidad de acceso no es una imagen de IRAP, el valor de POC de una imagen ("imagenC"), que se reinicia debido a que la imagenA es una imagen de IRAP, en la capa que contiene imagenA puede ser diferente del valor de POC de una imagen ("imagenD"), que no se reinicia, en la capa que contiene imagenB, donde imagenC e imagenD están en la misma unidad de acceso. Esto hace que imagenC e imagenD tengan diferentes valores de POC, aunque pertenezcan a la misma unidad de acceso (por ejemplo, el mismo tiempo de salida). Por lo tanto, en este ejemplo, el proceso de derivación para derivar los valores de POC de imagenC e imagenD se puede modificar para producir valores de POC que sean coherentes con la definición de los valores de POC y las unidades de acceso.
Recuento de orden de imágenes (POC)
Como se explicó con anterioridad, el valor de un recuento de orden de imagen (POC) (por ejemplo, ImagenOrdenRecuentoVal en HEVC) para una determinada imagen codificada denota el orden relativo de la imagen codificada determinada en el proceso de salida de imagen con respecto a otras imágenes en la misma secuencia de video codificada. En algunas realizaciones, el POC comprende los bits menos significativos (LSB) y los bits más significativos (MSB), y el POC puede obtenerse concatenando los MSB y LSB. En otras realizaciones, el POC puede obtenerse sumando el valor de MSB y el valor de LSB. El LSB se puede señalar en el encabezado del segmento, y el MSB se puede calcular mediante el codificador o el decodificador basándose en el tipo de unidad de NAL de la imagen actual y el MSB y LSB de una o más imágenes anteriores en el orden de decodificación que son (1) no imágenes RASL o RADL, (2) no descartables (por ejemplo, imágenes marcadas como "descartables", lo que indica que ninguna otra imagen depende de ellas, lo que permite eliminarlas para cumplir con las limitaciones de ancho de banda), (3) no imágenes sin referencia de subcapa (por ejemplo, imágenes que no se utilizan como referencia por otras imágenes en la misma subcapa temporal o la misma capa), (4) tiene un ID temporal (por ejemplo, ID de subcapa temporal) igual a 0. Tales imágenes descritas en (1)-(4) pueden denominarse en la presente imágenes de anclaje de POC. De manera similar, las imágenes que tienen un valor de ID temporal mayor que 0, las imágenes RASL o RADL, las imágenes descartables o las imágenes sin referencia de subcapa pueden denominarse imágenes que no son de anclaje de POC. Las imágenes de anclaje de POC pueden incluir además imágenes que un codificador y/o un decodificador pueden no elegir eliminar del flujo de bits (por ejemplo, para cumplir con una restricción de ancho de banda). Las imágenes de anclaje de POC pueden incluir además cualquier imagen distinta de los tipos de imágenes que un codificador y/o un decodificador pueden estar configurados para eliminar del flujo de bits (por ejemplo, para cumplir con una restricción de ancho de banda). Las imágenes que no son de anclaje de POC pueden incluir cualquier imagen que no sea una imagen de anclaje de POC.
Cuando la imagen actual es (1) una imagen de IRAP con NoRaslSalidaIndicador (por ejemplo, un indicador que indica que las imágenes de RASL no se emitirán si se establecen en 1 e indica que las imágenes RASL se emitirán si se establecen en 0) igual a 1, o (2) una imagen de CRA que es la primera imagen del flujo de bits, se infiere que el valor de MSB de POC es igual a 0. Como se describió con anterioridad, en un flujo de bits de múltiples capas (por ejemplo, flujo de bits SHVC o MV-HEVC con más de una capa), pueden existir unidades de acceso (AU) donde una o más imágenes son imágenes de IRAP y una o más de otras imágenes son imágenes sin IRAP, y dichas AU pueden denominarse "AU de IRAP no alineadas". Al decodificar flujos de bits que contienen AU de IRAP no alineadas, es posible (y probable) que los POC derivados basados en los valores de LSB de POC señalados en el flujo de bits infrinjan el requisito de conformidad del flujo de bits de que todas las imágenes de una unidad de acceso deben tener el mismo valor de POC.
En algunas realizaciones, se puede usar un indicador de reinicio de POC (por ejemplo, poc_reinicio_indicador) para reiniciar el POC de las imágenes de modo que incluso cuando las AU de IRAP no alineadas están presentes en el flujo de bits, el valor de POC de la imagen actual y las imágenes en DPB se ajusten para que el pOc de todas las imágenes de una AU sea el mismo.
En algunas realizaciones, en lugar de un único indicador de reinicio de POC, se pueden usar dos indicadores: un indicador de reinicio de MSB de POC (por ejemplo, poc_msb_reinicio_indicador) y un indicador de reinicio de LSB de POC (por ejemplo, poc_lsb_reinicio_indicador). El primero (es decir, poc_msb_reinicio_indicador) reinicia el MSB de POC, y el segundo (es decir, el poc-lsb_reinicio_indicador) reinicia el LSB de POC. Ambos indicadores pueden señalizarse en el encabezado del segmento.
Por ejemplo, si una imagen en particular tiene un valor de POC de 233, y el MSB y el LSB de POC constituyen 1 bit y 7 bits, respectivamente, el MSB sería "1" (por ejemplo, con un valor de 128) y el LSB sería "1101001" (por ejemplo, con un valor de 105). Por lo tanto, si solo se reinicia el MSB de POC (por ejemplo, en respuesta al procesamiento de poc_msb_reinicio_indicador con un valor de 1), el valor de POC se convierte en 105, y si solo se reinician los LSB (por ejemplo, en respuesta al procesamiento de poc_lsb_reinicio_indicador con un valor de 1), el valor de POC se convierte en 128. Si tanto el MSB como el LSB se reinician (por ejemplo, en respuesta al procesamiento de poc_msb_reinicio_indicador y poc_lsb_reinicio_indicador, cada uno tiene un valor de 1), el valor de POC se convierte en 0.
Reinicio de los valores de POC
Con referencia a las figuras 4-7, se describirá la motivación para reiniciar los valores de POC (por ejemplo, el LSB y el MSB) en las AU de IRAP no alineadas. Como se describió con anterioridad, en algunos esquemas de codificación, ciertas restricciones de conformidad pueden especificar que el POC de todas las imágenes codificadas en una única AU debe ser el mismo. Sin reinicios adecuados de los valores de POC, las AU de IRAP no alineadas en el flujo de bits pueden producir valores de POC que infrinjan dichas restricciones de conformidad.
La figura 4 muestra un flujo de bits de múltiples capas 400 que incluye una capa de mejora (EL) 410 y una capa base (BL) 420. La EL 410 incluye imágenes EL 412-418, y la BL incluye imágenes BL 422-428. El flujo de bits de múltiples capas 400 incluye además unidades de acceso (AU) 430-460. La AU 430 incluye la imagen EL 412 y la imagen BL 422, la AU 440 incluye la imagen EL 414 y la imagen BL 424, la AU 450 incluye la imagen EL 416 y la imagen BL 426, y la AU 460 incluye la imagen EL 418 y la imagen BL 428. En el ejemplo de la figura 4, la imagen EL 414 es una imagen de IDR, y la imagen BL 424 correspondiente en la AU 440 es una imagen final (por ejemplo, una imagen sin IRAP) y, en consecuencia, la AU 440 es una AU IRAP no alineada. En algunas realizaciones, se realiza un reinicio de MSB en una imagen determinada si la imagen es una imagen de IDR que no está en la capa base. Una imagen de IDR de este tipo puede tener un valor de LSB de POC distinto de cero.
La figura 5 muestra una tabla 500 que ilustra los valores de POC que pueden ser señalizados o derivados en conexión con el flujo de bits de múltiples capas 400 de la figura 4. Como se muestra en la figura 5, el MSB de POC en la EL 410 se reinicia en la imagen EL 414, mientras que el MSB de POC en la BL 420 no se reinicia. Por lo tanto, si no se realiza un reinicio en la BL 420 en la imagen BL 424 en la AU de IRAP no alineada 440, los valores de POC de las imágenes BL y las imágenes EL en las AU 440-460 no coincidirían (es decir, serían equivalentes ) según lo especificado por las restricciones de conformidad. Las diferencias en los valores de POC con y sin reajuste se resaltan en negrita en la figura 5.
La figura 6 muestra un flujo de bits de múltiples capas 600 que incluye una capa de mejora (EL) 610 y una capa base (BL) 620. La EL 610 incluye imágenes EL 612-618, y la BL incluye imágenes BL 622-628. El flujo de bits de múltiples capas 600 incluye además unidades de acceso (AU) 630-660. La AU 630 incluye la imagen EL 612 y la imagen BL 622, la AU 640 incluye la imagen EL 614 y la imagen BL 624, la AU 650 incluye la imagen EL 616 y la imagen BL 626, y la AU 660 incluye la imagen EL 618 y la imagen BL 628. En el ejemplo de la figura 6, la imagen BL 624 es una imagen de IDR, y la imagen EL 614 correspondiente en la AU 640 es una imagen final (por ejemplo, una imagen sin IRAP) y, en consecuencia, la AU 640 es una AU IRAP no alineada. En algunas realizaciones, se realiza un reinicio de MSB y un reinicio de LSB para una imagen determinada si la imagen es una imagen de IDR que está en la capa base. Por ejemplo, el flujo de bits puede incluir una indicación de que el MSB de POC y el LSB de POC de tal imagen de IDR de BL deben reiniciarse. Alternativamente, el decodificador puede realizar el reinicio del MSB de POC y el LSB de POC de tal imagen de IDR de BL sin ninguna indicación en el flujo de bits de que debe realizarse un reinicio de POC.
La figura 7 muestra una tabla 700 que ilustra los valores de POC que pueden ser señalizados o derivados en conexión con el flujo de bits de múltiples capas 600 de la figura 6. Como se muestra en la figura 7, el MSB y el LSB de POC en la BL 620 se reinician en la imagen BL 624, mientras que ni el MSB ni el LSB de POC en la eL 610 se reinician. Por lo tanto, si no se realiza un reinicio del MSB y el LSB de POC en la EL 610 en la imagen EL 614 en la AU de IRAP no alineada 640, los valores de POC de las imágenes BL y las imágenes EL en las AU 640-660 no coincidirían según lo especificado por las restricciones de conformidad. Las diferencias en los valores de POC con y sin reajuste se resaltan en negrita en la figura 7.
Las realizaciones descritas en la presente no se limitan a las configuraciones de flujo de bits de ejemplo ilustradas en las figuras 4 y 6, y las técnicas descritas en la presente pueden extenderse a cualquier flujo de bits de múltiples capas con cualquier número de capas, unidades de acceso e imágenes. Además, en los ejemplos ilustrados en las figuras 4-7, el LSB de POC se representa con siete bits. Sin embargo, las técnicas descritas en la presente pueden extenderse a los escenarios que tengan cualquier forma de representación del valor de POC.
Reinicio de las imágenes anteriores y pérdida de las imágenes restablecidas
Cuando se realiza un reinicio de MSB o un reinicio de LSB en una imagen en particular, otras imágenes en la misma capa que preceden a la imagen en particular en el orden de decodificación también se reinician en base al reinicio realizado en la imagen en particular. Por ejemplo, en el ejemplo de la figura 6, la imagen EL 614 tiene un valor de POC de 241 (por ejemplo, LSB de "1110001" MSB de "1", que es 113 128). Cuando los reinicios de MSB y LSB se realizan en la imagen EL 614, el valor de POC de la imagen EL 614 se vuelve 0, y la imagen EL 612 en la EL 610 que precede a la imagen EL 614 en el orden de decodificación también se reinicia según el valor de POC original de 241 de la imagen EL 614. Por ejemplo, el nuevo valor de POC de la imagen EL 612 se calcula restando el valor de POC de preajuste de la imagen de EL 614 (que es un valor de 241) del valor de POC de preajuste de la imagen de EL 612, que es 240 (por ejemplo, LSB de "1110000" MSB de "1", que es 112 128). Por lo tanto, después del reinicio, el valor de p Oc de la imagen EL 612 se convierte en -1, de acuerdo con el hecho de que la imagen EL 612 debe emitirse antes que la imagen EL 614, donde un valor de POC más pequeño indica una posición anterior en el orden de salida. Como se muestra en la figura 7, los valores de LSB señalizados para las posteriores UA 650 y 660 se ajustan en consecuencia (por ejemplo, a 1 y 2, respectivamente), con la suposición de que el reinicio se realiza en la imagen EL 614.
Sin embargo, incluso si un reinicio de POC adecuado del MSB y/o el LSB descrito anteriormente se señaliza en el flujo de bits (por ejemplo, en el encabezado del segmento) para que el decodificador pueda procesar la señal y realizar el reinicio de POC en consecuencia, si la imagen que señaliza tal reinicio de POC se pierde durante la transmisión del flujo de bits o se elimina del flujo de bits para cumplir con las restricciones de ancho de banda, el reinicio de POC que se pretende realizar en la imagen particular puede no realizarse correctamente.
Por ejemplo, en el ejemplo de la figura 6, si la imagen EL 614 no está disponible para el decodificador, el decodificador no sabría (es decir, no determinaría) reiniciar el MSB y LSB de POC en la EL 610 en la AU 640. En consecuencia, los valores de POC de cualquiera de las imágenes que preceden a la imagen EL 614 no disponible en el orden de decodificación seguirían teniendo sus valores de POC originales, previos al reinicio, ya que el reinicio en la imagen EL 614 nunca tuvo lugar (es decir, no se realizó la operación de reinicio). Por otro lado, los valores de POC de las imágenes que siguen a la imagen EL 614 no disponible en el orden de decodificación se habrían determinado o señalado como si el reinicio hubiera tenido lugar realmente (es decir, la operación de reinicio se llevó a cabo). Por lo tanto, en el ejemplo de la figura 7, las imágenes EL 612, 616 y 618 tendrían valores de POC de 240, 1 y 2, respectivamente, lo que sería incorrecto dado que la imagen EL 612 precede a las imágenes EL 616 y 618 en el orden de salida. Por lo tanto, se desea un método de codificación que dé como resultado valores de POC correctos, incluso cuando la imagen que señala el reinicio de POC no esté disponible.
Ejemplos e implementaciones
A continuación se describirán varios métodos que pueden usarse para abordar ciertos problemas descritos con anterioridad. Algunos de estos métodos se pueden aplicar de forma independiente y algunos de ellos se pueden aplicar en combinación. Además, la sintaxis y la semántica de ejemplo que pueden usarse para implementar uno o más de los métodos descritos en la presente también se proporcionan a continuación. Cuando se reproducen determinadas partes de la especificación HEVC para ilustrar las adiciones y eliminaciones que pueden incorporarse para implementar uno o más de los métodos descritos en la presente, dichas modificaciones se muestran en cursiva y tachado, respectivamente.
Valores de señalización para la derivación de POC
En algunas realizaciones, un mensaje de SEI que contiene información para la derivación correcta de POC se señaliza para una o más imágenes que siguen a la imagen para la que se reiniciará el MSB de POC y/o el LSB de POC. Por ejemplo, el mensaje de SEI puede estar asociado con una imagen, imagenA, que sigue a otra imagen, imagenB, para la cual se reiniciarán el POC, el LSB de POC o ambos. Por lo tanto, incluso cuando la imagenB se pierde por completo, el mensaje de SEI asociado con la imagenA se puede utilizar para derivar los valores de POC correctos para otras imágenes en la misma capa.
En algunas realizaciones, la información para la derivación correcta de POC se señaliza en el encabezado del segmento de una o más imágenes que siguen a la imagen para la cual se reiniciará el MSB de POC y/o el LSB de POC. Por ejemplo, la información puede incluirse en el encabezado de segmento de una imagen imagenA que sigue a otra imagen imagenB para la que se reiniciarán el MSB de POC, el LSB de POC o ambos. Por lo tanto, incluso cuando se pierde por completo la imagenB, la información incluida en el encabezado del segmento de la imagenA se puede utilizar para derivar los valores de POC correctos para otras imágenes en la misma capa.
Derivación de POC correcto basado en valores señalizados
La figura 8 es un diagrama de flujo que ilustra un método 800 para la codificación de información de video, según una realización de la presente divulgación. Los pasos ilustrados en la figura 8 pueden realizarse mediante un codificador (por ejemplo, el codificador de video como se muestra en la figura 2A o la figura 2B), un decodificador (por ejemplo, el decodificador de video como se muestra en la figura 3A o la figura 3B), o cualquier otro componente. Por conveniencia, el método 800 se describe como realizado por un codificador, que puede ser el codificador, el decodificador u otro componente.
El método 800 comienza en el bloque 801. En el bloque 805, el codificador procesa la información de derivación de POC asociada con una imagen. En algunas realizaciones, el procesamiento de la información de derivación de POC puede incluir señalizar la información de derivación de POC en un flujo de bits. Como se describió con anterioridad, la información de derivación de POC puede señalarse en el encabezado del segmento de la imagen y/o señalarse como un mensaje de SEI asociado con la imagen. En algunas realizaciones, el procesamiento de la información de derivación de POC puede incluir procesar la información de derivación de POC incluida en un flujo de bits. Por ejemplo, la información de derivación de POC puede incluir: un tipo de reinicio de POC que indica si el valor de POC de la imagen de reinicio de POC precedente (por ejemplo, una imagen en la que se va a realizar un reinicio de POC) en la misma capa debe reiniciarse mediante el reinicio tanto de los bits más significativos (MSB) como los bits menos significativos (LSB) del valor de POC o al reiniciar solo el MSB del valor de POC; un valor de reinicio de POC que indica el valor de POC de la imagen que se perdió o eliminó y que también precede a la imagen con la que está asociada la información de derivación de POC; y un ID de reinicio de POC que identifica el reinicio de POC para el cual se proporciona la información de derivación de POC. Por ejemplo, el decodificador puede omitir un reinicio de POC señalado en conexión con una imagen particular si el reinicio de POC señalado tiene un valor de ID de reinicio de POC de 1 y ya se ha realizado otro reinicio de POC con un ID de reinicio de POC de 1.
En el bloque 810, el codificador determina el POC de otra imagen que precede a la imagen en el orden de decodificación. En el ejemplo mostrado en la figura 7, incluso si la imagen EL 614 que contiene la instrucción de reinicio del valor de pOc se pierde o se elimina, el valor de POC de la imagen EL 612 se reiniciará correctamente utilizando la información de derivación de POC, por ejemplo, asociada con las imágenes EL 616 y/o 618. El método 800 finaliza en 815.
Como se explicó con anterioridad, uno o más componentes del codificador de video 20 de la figura 2A, el codificador de video 23 de la figura 2B, el decodificador de video 30 de la figura 3A, o el decodificador de video 33 de la figura 3B (por ejemplo, la unidad de predicción intercapa 128 y/o la unidad de predicción intercapa 166) pueden usarse para implementar cualquiera de las técnicas analizadas en la presente divulgación, como procesar la información de derivación de POC asociada con una o más imágenes, y determinar el POC de otra imagen que precede a una o más imágenes en el orden de decodificación.
Deshabilitar el reinicio de POC en imágenes que no son de anclaje de POC
En algunas realizaciones, se puede aplicar una restricción de conformidad (por ejemplo, se puede determinar que una restricción de conformidad es aplicable y luego se adhiere en función del rendimiento de las operaciones), por ejemplo, mediante un codificador, al flujo de bits de modo que ni el valor de poc_lsb_reinicio_inidicador ni poc_msb_reinicio_inidicador se establece igual a 1 cuando el segmento de corte pertenece a una imagen que no es una imagen de anclaje de POC. Como se describió con anterioridad, dicha imagen puede ser una imagen sin referencia de subcapa, una imagen descartable, una imagen de RASL, una imagen de RADL o una imagen que tiene un ID temporal mayor que 0. Por ejemplo, la imagen sin referencia de subcapa puede referirse a una imagen que no se utiliza como referencia en otras imágenes de la capa temporal más alta. La imagen descartable puede referirse a una imagen que no se utiliza como referencia en ninguna otra imagen. Por ejemplo, tales imágenes descartables pueden marcarse como "descartables". Esas imágenes descartables pueden ser eliminadas del flujo de bits por el codificador o el decodificador para cumplir con las limitaciones de ancho de banda. En algunas realizaciones, una imagen descartable incluye cualquier imagen que se pueda eliminar del flujo de bits por elección (por ejemplo, mediante el decodificador o alguna caja intermedia). Las imágenes de RASL y RADL se refieren a imágenes principales y es posible que las imágenes de RASL no se emitan si el proceso de decodificación comienza en la imagen de IRAP asociada con la imagen de RASL. La imagen que tiene un ID temporal mayor que 0 puede ser una imagen que puede eliminarse del flujo de bits si la velocidad de trama se cambia a un valor suficientemente bajo. Por ejemplo, si un flujo de bits contiene tres subcapas temporales, las imágenes de las tres subcapas temporales pueden visualizarse para funcionar a 90 tramas por segundo (fps), las imágenes de las dos subcapas temporales inferiores pueden visualizarse para funcionar a 60 fps, y las imágenes de la subcapa temporal más baja pueden visualizarse para funcionar a 30 fps. Como se explicó con anterioridad, las restricciones de flujo de bits u otras restricciones de rendimiento pueden hacer que una o más imágenes se eliminen o se quiten del flujo de bits (por ejemplo, un codificador puede evaluar tales restricciones y, en base a esa evaluación, realizar operaciones según las restricciones de manera que uno o más imágenes se eliminan del flujo de bits o se quiten del flujo de bits), y en este ejemplo, las imágenes de la subcapa temporal más alta pueden eliminarse antes de eliminar las imágenes de la siguiente subcapa temporal más alta, y así sucesivamente. Por ejemplo, las imágenes de la subcapa temporal más baja pueden no eliminarse del tren de bits hasta que se eliminen las imágenes de todas las demás subcapas temporales. Por lo tanto, es más probable que las imágenes que tienen un ID temporal mayor que 0 (donde un ID temporal de 0 corresponde a la subcapa temporal más baja) sean eliminadas del flujo de bits.
Como se describe en la presente, estas imágenes (por ejemplo, una imagen sin referencia de subcapa, una imagen descartable, una imagen de RASL, una imagen de RADL, una imagen que tiene un ID temporal mayor que 0, y similares) pueden denominarse imágenes que no son de anclaje de POC. En algunas realizaciones, debido a que es más probable que estas imágenes sean eliminadas del flujo de bits (por ejemplo, para cumplir con ciertas restricciones de ancho de banda), se puede introducir una restricción que especifique que estas imágenes no pueden desencadenar un reinicio de POC para reducir la probabilidad de que una imagen de reinicio de POC pueda ser eliminada del flujo de bits. Por ejemplo, si una imagen descartable no puede desencadenar un reinicio de POC (por ejemplo, mediante la señalización de un reinicio de MSB de POC, un reinicio de LSB de POC, o ambos), incluso si la imagen descartable se descarta, la falta de disponibilidad de esa imagen descartable para el decodificador no daría lugar a los problemas descritos anteriormente en relación con los reinicios de POC.
En algunas realizaciones, el codificador puede determinar que se debe señalar un reinicio de POC en relación con una imagen particular, posteriormente determinar que la imagen particular es una imagen sin referencia de subcapa, una imagen descartable, una imagen de RASL, una imagen de RADL, una imagen que tiene un ID temporal mayor que 0, o una imagen que de otro modo es probable que se elimine del flujo de bits y, por lo tanto, se abstenga de señalar un reinicio de POC en la imagen en particular o señalar que no se debe realizar un reinicio de POC en la imagen particular. En algunas realizaciones, el codificador puede determinar que se debe señalar un reinicio de POC en relación con una imagen en particular y, posteriormente, evitar que la imagen en particular sea una imagen que no sea de anclaje de POC (por ejemplo, al evitar que la imagen en particular tenga ciertos tipos de imágenes). En algunas realizaciones, la determinación de si se debe realizar un reinicio de POC en la imagen particular puede basarse, al menos en parte, en si la imagen particular es una imagen sin referencia de subcapa, una imagen descartable, una imagen de RASL, una imagen de RADL, una imagen que tiene un ID temporal mayor que 0, o una imagen que de otro modo es probable que se elimine del flujo de bits. En esas realizaciones, si la imagen en particular no es una imagen de anclaje de POC, el codificador indica en el flujo de bits que el reinicio de POC no debe realizarse en la imagen en particular. Alternativamente, el codificador puede simplemente no proporcionar ninguna indicación en el flujo de bits de que se va a realizar un reinicio de POC en la imagen particular. De manera similar, si la imagen particular es una imagen de anclaje de POC, el codificador, si se determina que es necesario un reinicio de POC en la imagen particular, indica en el flujo de bits que el reinicio de POC se realizará en la imagen particular. Alternativamente, el codificador puede simplemente no proporcionar ninguna indicación en el flujo de bits de que no se va a realizar el reinicio de POC o que no se debe realizar el reinicio de POC en la imagen particular.
Deshabilitar el reinicio de POC en imágenes que no son de anclaje de POC
La figura 9 es un diagrama de flujo que ilustra un método 900 para la codificación de información de video, según una realización de la presente divulgación. Los pasos ilustrados en la figura 9 pueden realizarse mediante un codificador (por ejemplo, el codificador de video como se muestra en la figura 2A o la figura 2B), un decodificador (por ejemplo, el decodificador de video como se muestra en la figura 3A o la figura 3B), o cualquier otro componente. Por conveniencia, el método 900 se describe como realizado por un codificador, que puede ser el codificador, el decodificador u otro componente.
El método 900 comienza en el bloque 901. En el bloque 905, el codificador determina si una imagen es una imagen de anclaje de POC. Por ejemplo, las imágenes de anclaje de POC pueden incluir cualquiera de las imagen que sean: (1) no imágenes de RASL o RADL, (2) no descartables (por ejemplo, imágenes marcadas como "descartables", lo que indica que ninguna otra imagen depende de ellas, lo que permite quitarlas para cumplir con las restricciones de ancho de banda), (3) no imágenes sin referencia de subcapa (por ejemplo, imágenes que no se utilizan como referencia por otras imágenes en capas temporales superiores), (4) con un ID temporal (por ejemplo, ID de subcapa temporal) igual a 0, y/o (5) cualquier otra imagen que de otro modo pueda eliminarse del flujo de bits. Si el codificador determina que la imagen no es una imagen de anclaje de POC, el método 900 procede a 910. Por otro lado, si el codificador determina que la imagen es una imagen de anclaje de POC, el método 900 procede a 915.
En el bloque 910, el codificador señala a la imagen que el reinicio de POC no se va a realizar en la imagen. Por ejemplo, el codificador puede señalar uno o más indicadores que indiquen que ni el reinicio de LSB de POC ni el reinicio de MSB de POC deben realizarse en relación con la imagen. En algunas realizaciones, el codificador puede no señalar o no proporcionar ninguna indicación en el flujo de bits de que se va a realizar un reinicio de POC en la imagen. Por ejemplo, durante el proceso de decodificación, si no se proporciona ninguna señal o indicación que indique que se va a realizar un reinicio de POC en el flujo de bits, el decodificador puede no realizar un reinicio de POC en esa imagen.
En el bloque 915, el codificador señala un reinicio de POC para la imagen. Por ejemplo, el codificador puede señalar uno o más indicadores en el flujo de bits que indican que se debe realizar un reinicio de LSB de POC, un reinicio de MSB de POC o ambos. En algunas realizaciones, el codificador puede no señalar o no proporcionar ninguna indicación en el flujo de bits de que no se va a realizar un reinicio de POC en la imagen. Por ejemplo, durante el proceso de decodificación, el decodificador puede inferir o determinar a partir de otras señales o indicaciones en el flujo de bits que se va a realizar un reinicio de POC, y que si no se proporciona ninguna señal o indicación adicional que deshabilite el reinicio de POC en el flujo de bits, el decodificador debe realizar el reinicio de POC según se infiera o determine. El método 900 finaliza en 920.
Como se explicó con anterioridad, uno o más componentes del codificador de video 20 de la figura 2A, el codificador de video 23 de la figura 2B, el decodificador de video 30 de la figura 3A, o el decodificador 33 de video de la figura 3B (por ejemplo, la unidad de predicción intercapa 128 y/o la unidad de predicción intercapa 166) pueden usarse para implementar cualquiera de las técnicas analizadas en la presente divulgación, como determinar si una imagen es una imagen de anclaje de POC, permitir un reinicio de POC, deshabilitar un reinicio de POC, proporcionar una indicación en el flujo de bits de que se va a realizar un reinicio de POC y proporcionar una indicación en el flujo de bits de que no se va a realizar un reinicio de POC.
En el método 900, uno o más de los bloques mostrados en la figura 9 se pueden eliminar (por ejemplo, no realizarse) y/o se puede cambiar el orden en el que el método se realiza. Por ejemplo, aunque el bloque 910 se muestra en la figura 9, el bloque 910 puede eliminarse y el método 900 puede finalizar sin realizar ninguna operación adicional si el codificador determina que la imagen no es una imagen de anclaje de POC. Alternativamente, el bloque 915 puede eliminarse y el método 900 puede finalizar sin realizar ninguna operación adicional si el codificador determina que la imagen es una imagen de anclaje de POC. Por lo tanto, las realizaciones de la presente divulgación no están limitadas al ejemplo mostrado en la figura 9, y pueden implementarse otras variaciones.
Imágenes de IRAP en la UA de IRAP no alineada
En algunas realizaciones, se puede aplicar una restricción de conformidad al flujo de bits de modo que cuando una unidad de acceso contiene al menos una imagen que es una imagen de IRAP con NoRaslSalidaIndicador igual a 1, se debe realizar un reinicio de MSB de POC (por ejemplo, MSB de POC) para todas las imágenes de la unidad de acceso que no son imágenes de IRAP En tales realizaciones, el indicador de reinicio de msb de poc asociado con las imágenes que no son de IRAP puede establecerse en 1 (por ejemplo, indicando que se va a realizar un reinicio de MSB de POC en tales imágenes sin IRAP). Por ejemplo, si la Imagen A es una imagen de IRAP en una unidad de acceso que sigue inmediatamente a un punto de empalme (por ejemplo, indicado por el valor NoRaslSalidaIndicador de 1), y la Imagen B que está en la misma unidad de acceso que la Imagen A es una imagen sin IRAP, se puede señalar un reinicio de MSB de POC en el flujo de bits para la Imagen B.
La figura 10 es un diagrama de flujo que ilustra un método 1000 para la codificación de información de video, según una realización de la presente divulgación. Los pasos ilustrados en la figura 10 pueden realizarse mediante un codificador (por ejemplo, el codificador de video como se muestra en la figura 2A o la figura 2B), un decodificador (por ejemplo, el decodificador de video como se muestra en la figura 3A o la figura 3B), o cualquier otro componente. Por conveniencia, el método 1000 se describe como realizado por un codificador, que puede ser el codificador, el decodificador u otro componente.
El método 1000 comienza en el bloque 1001. En el bloque 1005, el codificador determina si una imagen es una imagen de IRAP. Como se describió con anterioridad, en algunas realizaciones, una imagen de IRAP puede ser una imagen de IDR, una imagen de CRA o una imagen de BLA. En algunas realizaciones, el codificador puede determinar además, basándose en la información incluida en el flujo de bits, si la imagen está en una unidad de acceso que sigue inmediatamente a un punto de empalme. En algunas realizaciones, el codificador puede determinar además, en lugar de determinar si la imagen está en una unidad de acceso que sigue inmediatamente a un punto de empalme, si deben emitirse imágenes que preceden a la imagen en el orden de decodificación. Por ejemplo, si la imagen está en una unidad de acceso que sigue inmediatamente a un punto de empalme o si las imágenes que preceden a la imagen en el orden de decodificación deben emitirse, puede indicarse mediante una o más variables que están señaladas o indicadas en el flujo de bits o derivadas de otra información disponible para el codificador (por ejemplo, NoRaslSalidaIndicador). Por ejemplo, para imágenes de IDR e imágenes de CRA, NoRaslSalidaIndicador puede derivar de otra información incluida en el flujo de bits. Para imágenes de BLA, la presencia de tales imágenes de BLA puede indicar al decodificador que las imágenes de BLA siguen inmediatamente a un punto de empalme. Si el codificador determina que la imagen es una imagen de IRAP, el método 1000 pasa al bloque 1010. De lo contrario, el método 1000 finaliza en 1015.
En el bloque 1010, el codificador habilita un reinicio de MSB de POC para todas las demás imágenes sin IRAP en la unidad de acceso. En algunas realizaciones, el codificador habilita un reinicio de MSB de POC para todas las demás imágenes sin IRAP en la unidad de acceso que siguen inmediatamente a un punto de empalme en el orden de decodificación. Por ejemplo, el codificador puede señalar un indicador de reinicio de MSB de POC (por ejemplo, poc_msb_reinicio_indicador) con un valor de 1, lo que indica que se va a realizar un reinicio de MSB de POC para cada una de las imágenes sin IRAP. El método 1000 finaliza en 1015.
Como se explicó con anterioridad, uno o más componentes del codificador de video 20 de la figura 2A, el codificador de video 23 de la figura 2B, el decodificador de video 30 de la figura 3A, o el decodificador de video 33 de la figura 3B (por ejemplo, la unidad de predicción intercapa 128 y/o la unidad de predicción intercapa 166) pueden usarse para implementar cualquiera de las técnicas analizadas en la presente divulgación, determinar si una imagen es una imagen de IRAP y habilitar un reinicio de MSB de POC para todas las demás imágenes sin IRAP en la unidad de acceso.
En el método 1000, uno o más de los bloques mostrados en la figura 10 se pueden eliminar (por ejemplo, no realizarse) y/o se puede cambiar el orden en el que el método se realiza. Por lo tanto, las realizaciones de la presente divulgación no están limitadas al ejemplo mostrado en la figura 10, y pueden implementarse otras variaciones.
Imágenes de IDR de capa base en la UA de IRAP no alineada
En algunas realizaciones, se puede aplicar una restricción de conformidad al flujo de bits de modo que cuando una unidad de acceso A contiene una imagen de capa base que es una imagen de IDR, se debe realizar un reinicio de LSB de POC (por ejemplo, LSB de POC) para todas las imágenes de capas de mejora en la unidad de acceso A que no son imágenes de IDR o que tienen un valor de LSB de POC distinto de cero señalado en el flujo de bits. En esas realizaciones, el indicador de reinicio de lsb de poc está asociado con las imágenes EL (por ejemplo, indica que se va a realizar un reinicio de LSB de POC en tales imágenes EL). Por ejemplo, si la imagen A en la capa base es una imagen de IDR y la imagen B que está en la misma unidad de acceso que la imagen A no es una imagen de IDR, se puede señalar un reinicio de LSB de POC en el flujo de bits para la imagen B. En otro ejemplo, si la imagen A en la capa base es una imagen de IDR y la imagen C en la misma unidad de acceso que la imagen Atiene un valor de LSB de POC de 0 señalizado en el flujo de bits, es posible que no sea necesario señalizar un reinicio de LSB de POC en el flujo de bits para la imagen C.
La figura 11 es un diagrama de flujo que ilustra un método 1100 para la codificación de información de video, según una realización de la presente divulgación. Los pasos ilustrados en la figura 11 pueden realizarse mediante un codificador (por ejemplo, el codificador de video como se muestra en la figura 2A o la figura 2B), un decodificador (por ejemplo, el decodificador de video como se muestra en la figura 3A o la figura 3B), o cualquier otro componente. Por conveniencia, el método 1100 se describe como realizado por un codificador, que puede ser el codificador, el decodificador u otro componente.
El método 1100 comienza en el bloque 1101. En el bloque 1105, el codificador determina si una imagen es una imagen de IDR de capa base. En algunas realizaciones, el POC de una imagen de IDR de BL se reinicia automáticamente a 0. Si el codificador determina que la imagen es una imagen de IDR de BL, el método 1100 procede al bloque 1110. De lo contrario, el método 1100 finaliza en 1115.
En el bloque 1110, el codificador habilita un reinicio LSB de POC para todas las demás imágenes sin IDR en la unidad de acceso. Por ejemplo, el codificador puede señalar un indicador de reinicio de LSB de POC (por ejemplo, indicador de reinicio de lsb de poc) con un valor de 1, lo que indica que se debe realizar un reinicio de LSB de POC para cada una de las imágenes sin IDR en la misma unidad de acceso que la imagen de IDR de BL. El método 1100 finaliza en 1115.
Como se explicó con anterioridad, uno o más componentes del codificador de video 20 de la figura 2A, el codificador de video 23 de la figura 2B, el decodificador de video 30 de la figura 3A, o el decodificador de video 33 de la figura 3B (por ejemplo, la unidad de predicción intercapa 128 y/o la unidad de predicción intercapa 166) pueden usarse para implementar cualquiera de las técnicas analizadas en la presente divulgación, como determinar si una imagen es una imagen de IDR de BL y habilitar un reinicio de LSB de POC para todas las demás imágenes sin IDR en la unidad de acceso.
En el método 1100, uno o más de los bloques mostrados en la figura 11 se pueden eliminar (por ejemplo, no realizarse) y/o se puede cambiar el orden en el que el método se realiza. Por lo tanto, las realizaciones de la presente divulgación no están limitadas al ejemplo mostrado en la figura 11, y pueden implementarse otras variaciones.
Señalización del reinicio de la copia de seguridad en las siguientes imágenes
En algunas realizaciones, para cada imagen imagenA que reinicia su valor de MSB de POC para alinear el POC derivado (por ejemplo, ImagenOrdenRecuentoVal) con otra imagen que es una imagen de IRAP con NoRaslSalidaIndicador igual a 1 y que está en la misma unidad de acceso que la imagenA, se puede proporcionar una indicación en el flujo de bits en asociación con una o más imágenes en la misma capa que la imagenA que siguen a la imagenA en el orden de decodificación que se va a realizar un reinicio de MSB de POC con una o más imágenes. Por ejemplo, poc_msb_reinicio_indicador que tiene un valor de 1 puede señalarse para cada una de las una o más imágenes.
La figura 12 es un diagrama de flujo que ilustra un método 1200 para la codificación de información de video, según una realización de la presente divulgación. Los pasos ilustrados en la figura 12 pueden realizarse mediante un codificador (por ejemplo, el codificador de video como se muestra en la figura 2A o la figura 2B), un decodificador (por ejemplo, el decodificador de video como se muestra en la figura 3A o la figura 3B), o cualquier otro componente. Por conveniencia, el método 1200 se describe como realizado por un codificador, que puede ser el codificador, el decodificador u otro componente.
El método 1200 comienza en el bloque 1201. En el bloque 1205, el codificador determina si se va a realizar un reinicio de MSB de POC en una imagen particular. Como se describió con anterioridad, en algunas realizaciones, se puede realizar un reinicio de MSB de POC para evitar que las imágenes en diferentes capas tengan valores de POC inconsistentes en una unidad de acceso de IRAP no alineada. En algunas realizaciones, el codificador determina además si la imagen particular es una imagen sin IRAP en una unidad de acceso de IRAP no alineada. Si el codificador determina que se va a realizar un reinicio de MSB de POC en la imagen particular, el método 1200 procede al bloque 1210. De lo contrario, el método 1200 finaliza en 1215.
En el bloque 1210, el codificador habilita un reinicio de MSB de POC para una o más imágenes que siguen a la imagen particular en el orden de decodificación. En algunas realizaciones, una o más imágenes pueden estar en la misma capa que la imagen particular. Por ejemplo, el codificador puede señalar un indicador de reinicio de MSB de POC (por ejemplo, poc_msb_reinicio_indicador) que tiene un valor de 1 para la imagen que sigue inmediatamente a la imagen en particular en el orden de decodificación, lo que indica que se debe realizar un reinicio de MSB de POC para la imagen que inmediatamente sigue la imagen particular en el orden de decodificación. Como se describió con anterioridad, si se pierde la imagen particular que tiene una indicación de que se va a realizar un reinicio de MSB de POC, un reinicio de respaldo del m Sb de POC en la imagen que sigue inmediatamente a la imagen particular en el orden de decodificación basado en la indicación asociada con la imagen que sigue inmediatamente a la imagen en particular en el orden de decodificación. En algunas realizaciones, el codificador puede proporcionar además una indicación o variable que puede usarse para que el reinicio de MSB de POC no se realice más de una vez. Dicha indicación o variable (por ejemplo, un ID de reinicio de POC) puede ayudar a determinar si se ha realizado el reinicio de MSB de POC. En algunas realizaciones, el codificador habilita el reinicio de MSB de POC para una o más imágenes solo si la imagen particular es una imagen sin IRAP en una unidad de acceso de IRAP no alineada. El método 1200 finaliza en 1215.
Como se explicó con anterioridad, uno o más componentes del codificador de video 20 de la figura 2A, el codificador de video 23 de la figura 2B, el decodificador de video 30 de la figura 3A, o el decodificador de video 33 de la figura 3B (por ejemplo, la unidad de predicción intercapa 128 y/o la unidad de predicción intercapa 166) pueden usarse para implementar cualquiera de las técnicas analizadas en la presente divulgación, como determinar si se debe realizar un reinicio de MSB de POC en una imagen particular y habilitar un reinicio de MSB de POC para una o más imágenes que siguen a la imagen en particular en el orden de decodificación.
En el método 1200, uno o más de los bloques mostrados en la figura 12 se pueden eliminar (por ejemplo, no realizarse) y/o se puede cambiar el orden en el que el método se realiza. Por lo tanto, las realizaciones de la presente divulgación no están limitadas al ejemplo mostrado en la figura 12, y pueden implementarse otras variaciones.
Señalización de los valores de POC de las imágenes precedentes
En algunas realizaciones, para la imagen imagenA que reinicia su valor de POC para alinear el ImagenOrdenRecuentoVal derivado con una imagen de IDR que tiene nuh_capa_id igual a 0 y que está en la misma unidad de acceso que la imagenA, el valor de ImagenOrdenRecuentoVal de la imagenA antes del reinicio de POC es señalado para una o más imágenes que siguen a la imagenA en orden de decodificación y que tienen el mismo id de capa nuh que la imagenA.
Implementación de ejemplo: Sintaxis del encabezado del segmento de corte
La siguiente sintaxis del encabezado del segmento de corte de ejemplo puede usarse para implementar una o más de las realizaciones descritas en la presente.
T l 1. En z l m n r m l
Figure imgf000028_0001
(continuación)
Figure imgf000029_0001
Implementación de ejemplo: Semántica del encabezado del segmento de corte
La siguiente semántica de ejemplo puede usarse para implementar una o más de las realizaciones descritas en la presente. Los cambios al idioma existente en la especificación HEVC se muestran en cursiva.
poc_msb_reinicio_indicador igual a 1 especifica que el valor de MSB del recuento del orden de la imagen derivada para la imagen actual es igual a 0. poc msb reinicio indicador igual a 0 especifica que el valor de MSB del recuento del orden de la imagen derivada para la imagen actual puede o no ser igual a 0.
Cuando la imagen actual no es una imagen de IRAP con NoRaslSalidaIndicador igual a 1 y al menos una imagen en la unidad de acceso actual es una imagen de IRAP con NoRaslSalidaIndicador igual a 1, poc_msb_reinicio indicador estará presente y el valor será igual a 1.
Cuando no está presente, se infiere que el valor de poc msb reinicio indicador es igual a 0.
poc_lsb_reinicio_indicador igual a 1 especifica que el recuento del orden de la imagen derivada para la imagen actual es igual a 0. poc lsb reinicio indicador igual a 0 especifica que el recuento del orden de la imagen derivada para la imagen actual puede o no ser igual a 0.
Cuando la imagen actual no es una imagen de IDR o corte_imagen_orden_recuento_lsb no es igual a 0, y la imagen con nuh_capa_id igual a 0 en la unidad de acceso actual es una imagen de IDR, poc lsb reinicio indicador estará presente y el valor será igual a 1.
Cuando no está presente, se infiere que el valor de poc lsb reinicio indicador es igual a 0.
Cuando el valor de poc_msb_reinicio indicador es igual a 0, el valor de poc lsb_reinicio_indicador será igual a 0. Es un requisito de conformidad del flujo de bits que, cuando hay una imagen de IRAP con NoRaslSalidaIndicador igual a 1 en la unidad de acceso actual, la imagen actual debe tener un indicador descartable igual a 0 y un IdTemporal mayor que 0, y no debe ser una imagen sin referencia de subcapa, una imagen de RASL o una imagen de RADL.
Alternativamente, las siguientes restricciones podrían agregarse a la semántica de poc_msb_reinicio_indicador y poc_lsb_reinicio_indicador: Es un requisito de conformidad del flujo de bits que para los cortes que tienen un valor de nal_unidad_tipo menor que 16, y que tienen nal_unidad_tipo % 2 = 0, el valor de poc lsb reinicio indicador y poc msb reinicio indicador sea igual a 0.
Es un requisito de conformidad del flujo de bits que cuando el valor de poc_lsb_reinicio_indicador o poc_msb_reinicio_indicador, o ambos, sea igual a 1, el valor del indicador descartable, cuando esté presente, sea igual a 0.
Es un requisito de conformidad del flujo de bits que cuando una unidad de acceso contiene una imagen que es una imagen no IRAP con NoRaslSalidaIndicador igual a 1, se aplican las siguientes condiciones: (1) si la imagen con nuh capa id es igual a 0 es una imagen de IDR, el valor de poc_lsb_reinicio_indicador y poc_msb_reinicio_indicador se establecerán ambos iguales a 1 para todas las imágenes en esa unidad de acceso que tengan nuh capa id no igual a 0; y (2) de lo contrario, el valor de poc_lsb_reinicio indicador se establecerá en 1 y el valor de poc msb reinicio indicador se establecerá en 1 para todas las imágenes en esa unidad de acceso que no sean imágenes de IRAP con NoRaslSalidaIndicador igual a 1.
Implementación de ejemplo: Proceso de decodificación para POC y conjunto de imágenes de referencia
A continuación se describe una derivación de ejemplo de POC para cada corte. Cuando el valor de poc_lsb reinicio indicador o el poc_msb reinicio indicador se establece en 1, el POC de la imagen actual y todas las imágenes en DPB que están marcadas como "utilizadas como referencia" o que se necesitan para la salida se reducen.
Proceso de decodificación para el recuento de orden de imágenes
La salida de este proceso es ImagenOrdenRecuentoVal, el recuento de orden de las imágenes de la imagen actual. Los recuentos del orden de las imágenes se utilizan para identificar imágenes, para derivar parámetros de movimiento en el modo de fusión y predicción de vectores de movimiento, y para verificar la conformidad del decodificador.
Cada imagen codificada está asociada con una variable de recuento de orden de imagen, denotada como ImagenOrdenRecuentoVal.
Cuando la imagen actual no es una imagen de IRAP con NoRaslSalidaIndicador igual a 1, las variables prevImagenOrdenRecuentoLsb y prevImagenOrdenRecuentoMsb se derivan de la siguiente manera:
Dejar que prevTidOImagen sea la imagen anterior en el orden de decodificación que tenga IdTemporal igual a 0 y nuh_capa_id igual a nuh_capa_id de la imagen actual y que no sea una imagen de RASL, una imagen de RADL o una imagen sin referencia de subcapa y dejar que prevImagenOrdenRecuento sea igual a ImagenOrdenRecuentoVal de prevTidOImagen.
La variable prevImagenOrdenRecuentoLsb se establece igual a prevImagenOrdenRecuento & (MáxImagenOrdenRecuentoLsb -1).
La variable prevImagenOrdenRecuentoMsb se establece igual a prevImagenOrdenRecuento -prevImagenOrdenRecuentoLsb.
La variable ImagenOrdenRecuentoMsb de la imagen actual se deriva de la siguiente manera:
Si la imagen actual es una imagen de IRAP con NoRaslSalidaIndicador igual a 1, ImagenOrdenRecuentoMsb se establece igual a 0.
De lo contrario, imagenOrdenRecuentoMsb se deriva de la siguiente manera: si((corte_imagen_orden_recuento_lsb < prevImagenOrdenRecuentoLsb) &&
((prevImagenOrdenRecuentoLsb - corte_imagen_orden_recuento_lsb) >= (
MaxImagenOrdenRecuentoLsb/2)))
ImagenOrdenRecuentoMsb = prevImagenOrdenRecuentoMsb MáxImagenOrdenRecuentoLsb
además si ((corte_imagen_orden_recuento_lsb> prevImagenOrdenRecuentoLsb) && ((corte_imagen_orden_recuento_lsb - prevImangeOrdenRecuentoLsb)> (
MaxImagenOrdenRecuentoLsb/2)))
ImagenOrdenRecuentoMsb = prevImagenOrdenRecuentoMsb - MáxImagenOrdenRecuentoLsb
también
ImagenOrdenRecuentoMsb = prevImagenOrdenRecuentoMsb
imagenOrdenRecuentoVal se deriva de la siguiente manera:
ImagenOrdenRecuentoVal = fpoc_msb_reinicio_indicador ? O: ImagenOrdenRecuentoMsb )-b
f poc_lsb_ reinicio_indicador ? O: corte_imagen_orden_recuento_lsb )
Cabe señalar que todas las imágenes de IDR que tienen nuh_capa_id igual a 0 tendrán ImagenOrdenRecuentoVal igual a 0, ya que se infiere que corte_imagen_orden_recuento_lsb es 0 para imágenes de IDR y prevImagenOrdenRecuentoLsb y prevImagenOrdenRecuentoMsb se establecen ambos en 0.
Cuando poc_msb_reinicio_indicador es igual a 1, ImagenOrdenRecuentoMsb de cada imagen que está en DPB y pertenece a la misma capa que la imagen actual disminuye mediante ImagenOrdenRecuentoVal.
Cuando poc_lsb_reinicio_indicador es igual a 1, ImagenOrdenRecuentoMsb de cada imagen que está en DPB y pertenece a la misma capa que la imagen actual disminuye mediante corte_pic_orden_recuento_lsb.
El valor de ImagenOrdenRecuentoVal deberá estar en el rango de -231 a 231 -1, inclusive. En una CVS, los valores imagenOrdenRecuentoVal para cualquiera de dos imágenes codificadas en la misma capa no serán los mismos.
La función ImagenOrdenRecuento (imagenX) se especifica de la siguiente manera:
ImagenOrdenRecuentof imagenX) - ImagenOrdenRecuentoValde la imagen imagenX
La función DifImagenOrdenRecuento (imagenA, imagenB) se especifica de la siguiente manera:
DiflmagenOrdenRecuentof imagenA, imagenB f = ImagenOrdenRecuentof imagenA ) - ImagenOrdenRecuentof imagenB f El flujo de bits no contendrá datos que den como resultado valores de DifImagenOrdenRecuento (imagenA, imagenB) utilizados en el proceso de decodificación que no estén en el rango de -215 a 215 -1, inclusive.
Cabe señalar que si X es la imagen actual e Y y Z son otras dos imágenes en la misma secuencia, se considera que Y y Z están en la misma dirección de orden de salida desde X cuando tanto DifImagenOrdenRecuento(X, Y) como DifImagenOrdenRecuento( X, Z) son positivas o ambas negativas.
Proceso de decodificación para el conjunto de imágenes de referencia
El proceso de decodificación para el conjunto de imágenes de referencia es idéntico al proceso de decodificación definido en MV-HEVC WD5.
Implementación de ejemplo: Sintaxis de carga útil de SEI general
La siguiente sintaxis de carga útil de SEI de ejemplo puede usarse para implementar una o más de las realizaciones descritas en la presente. En el siguiente ejemplo, "XXX" se puede reemplazar con cualquier valor que represente el tipo de carga útil que se puede utilizar en relación con la sintaxis de ejemplo. Por ejemplo, "XXX" puede reemplazarse con cualquier valor entre 1 y 255 que no haya sido utilizado por otro mensaje de SEI. En otro ejemplo, el valor de "XXX" no está limitado a 255 y tiene un valor más alto. Los cambios al idioma existente en la especificación HEVC se muestran en cursiva.
Tabla 2. Sintaxis de carga útil de SEI de ejemplo
Figure imgf000032_0001
Implementación de ejemplo: Sintaxis del mensaje de SEI de la información de reinicio de POC
La siguiente sintaxis de información de reinicio de POC de ejemplo puede usarse para implementar una o más de las realizaciones descritas en la presente. Los cambios al idioma existente en la especificación HEVC se muestran en cursiva.
Figure imgf000032_0002
Tabla 3. Sintaxis de información de reinicio de POC de ejemplo
En algunas realizaciones, poc_reinicio_valor, poc_reinicio_id, o ambos, se codifican usando códigos de Golomb exponenciales (por ejemplo, ue(v) codificación).
Implementación de ejemplo: Semántica del mensaje de SEI de la información de reinicio de POC
La siguiente semántica de información de reinicio de POC de ejemplo puede usarse para implementar una o más de las realizaciones descritas en la presente. "El mensaje de SEI de información de reinicio de POC proporciona información que permite la derivación de POC correcta para la imagen asociada incluso cuando se pierde la imagen anterior en el orden de decodificación en la misma capa que la imagen asociada y que tiene poc_lsb_reinicio_indicador o poc_msb_reinicio_indicador igual a 1. La información contenida en el mensaje de SEI también se puede utilizar para derivar los valores de POC de otras imágenes en DPB que están en la misma capa que la imagen asociada. La imagen de reinicio de POC se define como una imagen que tiene el valor de poc_msb_reinicio_indicador o poc_lsb_reinicio_indicador, o ambos, igual a 1. La imagen de reinicio de POC asociada se refiere a la imagen previa en el orden de decodificación en la misma capa que la imagen asociada y que tiene poc_lsb_reinicio_indicador o poc_msb_reinicio_indicador igual a 1. La imagen asociada de un mensaje de SEI de información de reinicio de POC se refiere a la imagen que está asociada con el mensaje de SEI. Un mensaje de SEI de información de reinicio de POC no anidado está asociado con la imagen para la cual la primera unidad de NAL de VCL en orden de decodificación es la unidad de NAL de VCL asociada de la unidad de NAL de SEI que contiene el mensaje de SEI de información de reinicio de POC no anidado. El nuh_capa_id de la unidad de NAL de SEI que contiene un mensaje de SEI de información de reinicio de POC no anidado será igual a nuh_capa_id de la imagen asociada".
Alternativamente, la asociación del mensaje SEI puede definirse de la siguiente manera: "Un mensaje de SEI de información de reinicio de POC no anidado está asociado con la imagen imagenA en la siguiente unidad de acceso en decodificación, donde la imagenA tiene el mismo valor de nuh_capa_id que la unidad de NAL de SEI que contiene el mensaje de SEI de información de reinicio de POC no anidado".
Alternativamente, la asociación del mensaje SEI puede definirse de la siguiente manera: "Un mensaje de SEI de información de reinicio de POC no anidado está asociado con la imagen imagenA que tiene el mismo valor nuh_capa_id que la unidad de NAL de SEI, y sucede, en el orden de decodificación, el mensaje de SEI y precede a la primera imagen que tiene el mismo valor de nuh_capa_id que la unidad de NAL de SEI y tiene los valores de poc_lsb_reinicio_indicador o poc_msb_reinicio_indicador iguales a 1".
Alternativamente, un mensaje de SEI vacío que indica la cancelación de la información de reinicio de POC (poc_reinicio_info_cancelación()) se puede señalar y la asociación del mensaje de SEI se puede definir de la siguiente manera: "Un mensaje de SEI de información de reinicio de POC no anidado está asociado con la primera imagen imagenA que tiene el mismo valor de nuh_capa_id que la unidad de NAL de SEI, que sucede al mensaje de SEI en el orden de decodificación y que está contenido en la unidad de acceso que contiene un mensaje de SEI poc_reinicio_info_cancelación(). El valor de nuh_capa_id de la unidad de NAL de SEI que contiene el mensaje SEI poc_reinicio info_cancelación () será igual a nuh_capa_id de la imagen asociada".
La siguiente semántica se puede utilizar para poc_reinicio_tipo_indicador, poc_reinicio_valor y poc_reinicio_id: "poc_reinicio_tipo_indicador igual a 1 indica que el MSB de POC se reinició y el LSB de POC no se reinició para la imagen de reinicio de POC asociada. poc_reinicio_tipo_indicador igual a 0 especifica que tanto el MSB de POC como el LSB de POC se reiniciaron para la imagen de reinicio de POC asociada; poc_reinicio_valor indica el valor de POC de la imagen de reinicio de POC asociada antes de que se aplique el reinicio de POC (es decir, el valor de POC derivado supone que tanto poc_msb_reinicio_indicador como poc_lsb_reinicio_indicador son iguales a 0); y poc_reinicio_id especifica un identificador de una imagen de reinicio de POC en la misma capa que la imagen asociada. No habrá dos imágenes de reinicio de POC consecutivas de una capa particular en el flujo de bits que tengan el mismo valor de poc_reinicio_id".
Cabe señalar que, cuando se pierde la imagen de reinicio de POC asociada, este valor también se puede utilizar para derivar los valores de POC de la imagen asociada y otras imágenes decodificadas de la misma capa en DPB, como se indica a continuación. Cuando el valor de poc_reinicio_tipo_indicador es igual a 0, el POC de la imagen asociada se puede derivar estableciendo prevImagenOrdenRecuentoLsb igual a poc_reinicio_valor % MáxImagenOrdenRecuentoLsb y prevImagenOrdenRecuentoMsb igual a 0, y siguiendo el resto del proceso de decodificación para el recuento del orden de la imagen, y el valor de ImagenOrdenRecuentoVal de todas las imágenes en el DPB que pertenecen a la misma capa que la imagen asociada se reducen en poc_reinicio_valor -poc_reinicio_valor % MáxImagenOrdenRecuentoLsb. Cuando el valor de poc_reinicio_tipo_indicador es igual a 1, el POC de la imagen asociada se puede derivar estableciendo prevImagenOrdenRecuentoLsb y prevImagenOrdenRecuentoMsb iguales a 0, y siguiendo el resto del proceso de decodificación para el recuento de orden de la imágenes y el valor de ImagenOrdenRecuentoVal de todas las imágenes en DPB que pertenecen a la misma capa que la imagen asociada se reducen en poc_reinicio_valor.
En algunas realizaciones, los elementos de sintaxis similares a los descritos anteriormente en relación con los mensajes de SEI se incluyen en la sintaxis del encabezado del segmento de corte, y la frase "imagen actual" se usa en lugar de la frase "imagen asociada" en la semántica de ejemplo descrita anteriormente en relación con la semántica de mensaje de SEI de información de reinicio de POC.
Otras consideraciones
La información y las señales divulgadas en la presente invención pueden ser representadas utilizando cualquiera de una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, instrucciones, comandos, información, señales, bits, símbolos y chips a los que se puede hacer referencia en toda la descripción anterior pueden estar representados por voltajes, corrientes, ondas electromagnéticas, campos magnéticos o partículas, campos ópticos o partículas, o cualquier combinación de los mismos.
Los diversos bloques lógicos, módulos, circuitos y pasos de algoritmo ilustrativos descritos en relación con las realizaciones divulgadas en la presente pueden implementarse como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, diversos componentes, bloques, módulos, circuitos y pasos ilustrativos se han descrito con anterioridad generalmente en términos de su funcionalidad. Si dicha funcionalidad se implementa como hardware o software depende de la aplicación particular y las restricciones de diseño impuestas en el sistema general. Los expertos pueden implementar la funcionalidad descrita de diferentes maneras para cada aplicación en particular, pero dichas decisiones de implementación no deben interpretarse como una desviación del alcance de la presente invención.
Las técnicas descritas en la presente pueden implementarse en hardware, software, microprograma o cualquier combinación de los mismos. Dichas técnicas se pueden implementar en cualquiera de una variedad de dispositivos tales como ordenadores de uso general, dispositivos de comunicación inalámbrica o dispositivos de circuitos integrados que tienen múltiples usos, incluida la aplicación en dispositivos de comunicación inalámbrica y demás dispositivos. Todas las características descritas como módulos 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 un código de programa que incluye instrucciones que, cuando se ejecutan, realizan uno o más de los métodos descritos anteriormente. El medio de almacenamiento de datos legible por ordenador puede formar parte de un producto de programa informático, que puede incluir materiales de embalaje. El medio legible por ordenador puede comprender memoria o medios de almacenamiento de datos, como memoria de acceso aleatorio (RAM), como una memoria de acceso aleatorio dinámica síncrona (SDRAM), memoria de solo lectura (ROM), memoria de acceso aleatorio no volátil (NVRAM), memoria de solo lectura programable borrable eléctricamente (EEPROM), memoria rápida, medios de almacenamiento de datos magnéticos u ópticos, y similares. Las técnicas, adicional o alternativamente, pueden realizarse al menos en parte mediante un medio de comunicación legible por ordenador que transporta o comunica código de programa en forma de instrucciones o estructuras de datos y que se puede acceder, leer y/o ejecutar por un ordenador, como señales u ondas propagadas.
El código del programa puede ser ejecutado por un procesador, que puede incluir uno o más procesadores, como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados de aplicación específica (ASIC), matrices lógicas programables en campo (fPgA), u otro circuito lógico integrado o discreto equivalente. Dicho procesador puede configurarse 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 convencional, controlador, microcontrolador o máquina de estado. 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 DSP o cualquier otra configuración de este tipo. Por consiguiente, el término "procesador", como se usa en la presente, puede referirse a cualquiera de las estructuras anteriores, cualquier combinación de la estructura anterior o cualquier otra estructura o aparato adecuado para la implementación de las técnicas descritas en la presente. Además, en algunos aspectos, la funcionalidad descrita en la presente incluye instrucciones que, cuando se ejecutan, realizan uno o más de los métodos descritos anteriormente. El medio de almacenamiento de datos legible por ordenador puede formar parte de un producto de programa informático, que puede incluir materiales de embalaje. El medio legible por ordenador puede comprender memoria o medios de almacenamiento de datos, como memoria de acceso aleatorio (RAM), como una memoria de acceso aleatorio dinámica síncrona (SDRAM), memoria de solo lectura (ROM), memoria de acceso aleatorio no volátil (NVRAM), memoria de solo lectura programable borrable eléctricamente (EEPROM), memoria rápida, medios de almacenamiento de datos magnéticos u ópticos, y similares. Las técnicas, adicional o alternativamente, pueden realizarse al menos en parte mediante un medio de comunicación legible por ordenador que transporta o comunica código de programa en forma de instrucciones o estructuras de datos y que se puede acceder, leer y/o ejecutar por un ordenador, como señales u ondas propagadas.
El código del programa puede ser ejecutado por un procesador, que puede incluir uno o más procesadores, como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados de aplicación específica (ASIC), matrices lógicas programables en campo (FPgA), u otro circuito lógico integrado o discreto equivalente. Dicho procesador puede configurarse 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 convencional, controlador, microcontrolador o máquina de estado. 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 DSP o cualquier otra configuración de este tipo. Por consiguiente, el término "procesador", como se usa en la presente, puede referirse a cualquiera de las estructuras anteriores, cualquier combinación de la estructura anterior o cualquier otra estructura o aparato adecuado para la implementación de las técnicas descritas en la presente.

Claims (13)

REIVINDICACIONES
1. Un aparato (30) configurado para decodificar información de video, el aparato comprende:
una unidad de memoria configurada para almacenar información de video asociada con una primera capa de video que tiene una primera imagen; y
un procesador en comunicación con la unidad de memoria, el procesador está configurado para:
procesar (805) información de derivación de recuento de orden de imágenes (POC) contenida en uno de un mensaje de información de mejora complementaria (SEI) asociado con la primera imagen, en donde la información de derivación de POC comprende al menos un valor de POC de una segunda imagen codificada en la primera capa de video, en donde la segunda imagen está asociada con una instrucción de reinicio del valor de POC y precede a la primera imagen en el orden de decodificación;
realizar la instrucción de reinicio del valor de POC asociada con la segunda imagen, para reiniciar el valor de POC de la segunda imagen y para reiniciar el valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en el orden de decodificación, si la segunda la imagen está disponible; o reiniciar, en base al valor de POC de la segunda imagen incluida en la información de derivación de POC asociada con la primera imagen, un valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en el orden de decodificación, si la segunda imagen no está disponible.
2. Un aparato (20) configurado para codificar información de video, el aparato comprende:
una unidad de memoria configurada para almacenar información de video asociada con una primera capa de video que tiene una primera imagen; y
un procesador en comunicación con la unidad de memoria, el procesador está configurado para:
procesar información de derivación de recuento de orden de imágenes (POC) contenida en uno de un mensaje de información de mejora complementaria (SEI) asociado con la primera imagen, en donde la información de derivación de POC comprende al menos un valor de POC de una segunda imagen codificada en la primera capa de video, en donde la segunda imagen está asociada con una instrucción de reinicio del valor de POC y precede a la primera imagen en el orden de decodificación;
realizar la instrucción de reinicio del valor de POC asociada con la segunda imagen, para reiniciar el valor de POC de la segunda imagen y para reiniciar el valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en el orden de decodificación, si la segunda la imagen está disponible; o reiniciar, en base al valor de POC de la segunda imagen incluida en la información de derivación de POC asociada con la primera imagen, un valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en el orden de decodificación, si la segunda imagen no está disponible.
3. El aparato de la reivindicación 1 o la reivindicación 2, en donde el procesador está configurado para: procesar un indicador de tipo de reinicio de POC que indica si el valor de POC de al menos una imagen que precede a la segunda imagen se reiniciará (1) al reiniciar uno o más bits más significativos (MSB) y uno o más bits menos significativos (LSB) del valor de POC o (2) al reiniciar solo uno o más MSB del valor de POC.
4. El aparato de la reivindicación 1 o la reivindicación 2, en donde el procesador está configurado para: procesar un ID de reinicio de POC que identifica el reinicio de POC asociado con la segunda imagen.
5. El aparato según la reivindicación 1 o la reivindicación 2, en donde la información de derivación de POC incluye uno o más indicadores de tipo de reinicio de POC, un valor de reinicio de POC o un ID de reinicio de POC.
6. El aparato de la reivindicación 1 o la reivindicación 2, en donde el procesador está configurado para: procesar uno o más de un indicador de tipo de reinicio de POC, un valor de reinicio de POC o un ID de reinicio de POC indicado por la información de derivación de POC, al menos uno de los cuales se codifica utilizando códigos de Golomb exponenciales.
7. El aparato de la reivindicación 2, en donde el procesador está configurado para proporcionar la información de derivación de POC en asociación con la primera imagen en un flujo de bits, y en donde el procesador está configurado además para codificar la información de video en el flujo de bits.
8. El aparato de la reivindicación 1, en donde el procesador está configurado para recibir la información de derivación de POC en asociación con la primera imagen en un flujo de bits, y en donde el procesador está configurado además para decodificar la información de video en el flujo de bits.
9. El aparato de la reivindicación 1 o la reivindicación 2, en donde el aparato comprende un dispositivo seleccionado del grupo que consiste en: un ordenador, una notebook, un ordenador portátil, una tableta, un decodificador, un aparato telefónico con microteléfono, un teléfono inteligente, un teclado inteligente, un televisor, una cámara, un dispositivo de visualización, un reproductor de medios digitales, una consola de videojuegos y un ordenador en el automóvil.
10. Un método de decodificación de información de video, el método comprende:
procesar (805) información de derivación de recuento de orden de imágenes (POC) contenida en uno de un mensaje de información de mejora complementaria (SEI) asociado con una primera imagen en una primera capa de video, en donde la información de derivación de POC incluye al menos un valor de POC de una segunda imagen codificada en la primera capa de video, en donde la segunda imagen está asociada con una instrucción de reinicio del valor de POC y precede a la primera imagen en el orden de decodificación; si la segunda imagen está disponible, realizar la instrucción de reinicio del valor de POC asociada con la segunda imagen, para reiniciar el valor de POC de la segunda imagen y para reiniciar el valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en orden de decodificación; o
si la segunda imagen no está disponible, reestablecer, basado en el valor de POC de la segunda imagen incluida en la información de derivación de POC asociada con la primera imagen, un valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en orden de decodificación.
11. Un método de codificación de información de video, el método comprende:
procesar información de derivación de recuento de orden de imágenes (POC) contenida en uno de un mensaje de información de mejora complementaria (SEI) asociado con una primera imagen en una primera capa de video, en donde la información de derivación de POC comprende al menos un valor de POC de una segunda imagen codificada en la primera capa de video, en donde la segunda imagen está asociada con una instrucción de reinicio del valor de POC y precede a la primera imagen en el orden de decodificación; si la segunda imagen está disponible, realizar la instrucción de reinicio del valor de POC asociada con la segunda imagen, para reiniciar el valor de POC de la segunda imagen y para reiniciar el valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en orden de decodificación; o
si la segunda imagen no está disponible, reestablecer, basado en el valor de POC de la segunda imagen incluida en la información de derivación de POC asociada con la primera imagen, un valor de POC de al menos una imagen en la primera capa de video que precede a la segunda imagen en orden de decodificación.
12. El método de la reivindicación 10 o la reivindicación 11, en donde procesar la información de derivación de POC al menos comprende procesar un indicador de tipo de reinicio de POC que indica si el valor de POC de al menos una imagen que precede a la segunda imagen debe reiniciarse (1) al reiniciar uno o más bits más significativos (MSB) y uno o más bits menos significativos (LSB) del valor de POC o (2) al reiniciar solo uno o más MSB del valor de POC.
13. Un medio legible por ordenador no transitorio que comprende un código que, cuando se ejecuta, hace que un aparato realice el método de cualquiera de las reivindicaciones 10-12.
ES14789950T 2013-10-14 2014-10-14 Dispositivo y método para la codificación escalable de información de video Active ES2895442T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361890868P 2013-10-14 2013-10-14
US14/512,962 US9979971B2 (en) 2013-10-14 2014-10-13 Device and method for scalable coding of video information
PCT/US2014/060485 WO2015057705A1 (en) 2013-10-14 2014-10-14 Device and method for scalable coding of video information

Publications (1)

Publication Number Publication Date
ES2895442T3 true ES2895442T3 (es) 2022-02-21

Family

ID=52809632

Family Applications (2)

Application Number Title Priority Date Filing Date
ES14789950T Active ES2895442T3 (es) 2013-10-14 2014-10-14 Dispositivo y método para la codificación escalable de información de video
ES14792943T Active ES2744201T3 (es) 2013-10-14 2014-10-14 Dispositivo y procedimiento para la codificación escalable de información de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES14792943T Active ES2744201T3 (es) 2013-10-14 2014-10-14 Dispositivo y procedimiento para la codificación escalable de información de vídeo

Country Status (10)

Country Link
US (3) US10212435B2 (es)
EP (3) EP3058741B1 (es)
JP (3) JP6542239B2 (es)
KR (3) KR102250638B1 (es)
CN (3) CN105637880B (es)
BR (3) BR112016008237B1 (es)
ES (2) ES2895442T3 (es)
HU (1) HUE044813T2 (es)
MX (3) MX360311B (es)
WO (3) WO2015057705A1 (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3050684B1 (en) 2011-11-10 2017-08-16 Packsize LLC Elevated converting machine with outfeed guide
KR101979559B1 (ko) * 2012-06-25 2019-05-16 닛본 덴끼 가부시끼가이샤 비디오 디코딩 장치, 방법 및 프로그램
US10212435B2 (en) 2013-10-14 2019-02-19 Qualcomm Incorporated Device and method for scalable coding of video information
JP2017508420A (ja) * 2014-01-13 2017-03-23 サムスン エレクトロニクス カンパニー リミテッド マルチレイヤビデオ符号化方法及びマルチレイヤビデオ復号方法、並びにその装置
US10093438B2 (en) 2014-12-29 2018-10-09 Packsize Llc Converting machine
US10850469B2 (en) 2016-06-16 2020-12-01 Packsize Llc Box forming machine
US11214032B2 (en) 2016-06-16 2022-01-04 Packsize Llc Box template production system and method
US11242214B2 (en) 2017-01-18 2022-02-08 Packsize Llc Converting machine with fold sensing mechanism
SE541921C2 (en) 2017-03-06 2020-01-07 Packsize Llc A box erecting method and system
SE1750727A1 (sv) 2017-06-08 2018-10-09 Packsize Llc Tool head positioning mechanism for a converting machine, and method for positioning a plurality of tool heads in a converting machine
US11173685B2 (en) 2017-12-18 2021-11-16 Packsize Llc Method for erecting boxes
US11305903B2 (en) 2018-04-05 2022-04-19 Avercon BVBA Box template folding process and mechanisms
US11247427B2 (en) 2018-04-05 2022-02-15 Avercon BVBA Packaging machine infeed, separation, and creasing mechanisms
DE112019003075T5 (de) 2018-06-21 2021-03-25 Packsize Llc Verpackungsvorrichtung und systeme
SE543046C2 (en) 2018-09-05 2020-09-29 Packsize Llc A box erecting method and system
CN110933411B (zh) 2018-09-19 2023-12-12 北京字节跳动网络技术有限公司 用于帧内编码的邻近的相邻块的选择
WO2020093999A1 (en) * 2018-11-05 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
US11524474B2 (en) 2018-11-30 2022-12-13 Packsize Llc Adjustable cutting and creasing heads for creating angled cuts and creases
US11752725B2 (en) 2019-01-07 2023-09-12 Packsize Llc Box erecting machine
US11701854B2 (en) 2019-03-14 2023-07-18 Packsize Llc Packaging machine and systems
US10986353B2 (en) 2019-03-15 2021-04-20 Tencent America LLC Decoded picture buffer management for video coding
US11539957B2 (en) * 2019-06-20 2022-12-27 Tencent America LLC Layered random access with reference picture resampling
KR20220115958A (ko) 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
WO2021133721A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Techniques for implementing a decoding order within a coded picture
WO2021134019A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Constraints on coding of layered video
WO2021134055A1 (en) 2019-12-27 2021-07-01 Bytedance Inc. Subpicture signaling in parameter sets
US11356698B2 (en) 2019-12-30 2022-06-07 Tencent America LLC Method for parameter set reference constraints in coded video stream
CN115004669A (zh) 2020-01-09 2022-09-02 字节跳动有限公司 不同sei消息的解码顺序
US20220103847A1 (en) 2020-09-29 2022-03-31 Lemon Inc. Dependent random access point indication in video bitstreams

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714696B1 (ko) 2005-06-24 2007-05-04 삼성전자주식회사 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치
CN103024444B (zh) 2006-11-14 2015-11-18 高通股份有限公司 用于信道切换的系统及方法
RU2518904C2 (ru) 2007-01-05 2014-06-10 Томсон Лайсенсинг Гипотетический эталонный декодер для масштабируемого видеокодирования
KR20090004659A (ko) * 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
KR20090004658A (ko) * 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
JP4935746B2 (ja) * 2008-04-07 2012-05-23 富士通株式会社 動画像符号化装置、動画像復号化装置及びその符号化、復号化方法
WO2010008416A1 (en) 2008-07-16 2010-01-21 Thomson Licensing A scalable video coding method for fast channel change to increase coding efficiency
US20100086051A1 (en) * 2008-10-06 2010-04-08 Lg Electronics Inc. Method and an apparatus for processing a video signal
EP2392138A4 (en) 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
US9516379B2 (en) * 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs
US20130089152A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Signaling picture identification for video coding
US20130094774A1 (en) 2011-10-13 2013-04-18 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US8787688B2 (en) * 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
KR102094503B1 (ko) * 2012-04-15 2020-03-30 삼성전자주식회사 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치
US9532055B2 (en) 2012-04-16 2016-12-27 Microsoft Technology Licensing, Llc Constraints and unit types to simplify video random access
KR102219907B1 (ko) * 2012-04-23 2021-02-25 삼성전자주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
CN108337525B (zh) * 2012-09-28 2020-08-25 杜比国际公司 图像解码装置
US20140092976A1 (en) 2012-09-30 2014-04-03 Sharp Laboratories Of America, Inc. System for signaling idr and bla pictures
US9532052B2 (en) 2013-04-08 2016-12-27 Qualcomm Incorporated Cross-layer POC alignment for multi-layer bitstreams that may include non-aligned IRAP pictures
CN105637879B (zh) * 2013-10-10 2019-04-19 夏普株式会社 图序计数的对齐方法
KR20150043222A (ko) 2013-10-12 2015-04-22 삼성전자주식회사 멀티 레이어 비디오 부호화 방법 및 그 장치, 멀티 레이어 비디오 복호화 방법 및 그 장치
US10212435B2 (en) 2013-10-14 2019-02-19 Qualcomm Incorporated Device and method for scalable coding of video information
EP3078195A4 (en) * 2013-12-02 2017-08-09 Nokia Technologies OY Video encoding and decoding

Also Published As

Publication number Publication date
WO2015057714A1 (en) 2015-04-23
EP3058741B1 (en) 2021-10-06
BR112016008237A2 (es) 2017-08-01
JP2016537932A (ja) 2016-12-01
KR20160070786A (ko) 2016-06-20
CN105637882A (zh) 2016-06-01
KR20160071413A (ko) 2016-06-21
MX360311B (es) 2018-10-29
KR20160072142A (ko) 2016-06-22
BR112016008235A2 (es) 2017-08-01
EP3058745A1 (en) 2016-08-24
BR112016008235B1 (pt) 2023-04-18
JP2016539600A (ja) 2016-12-15
US20150103903A1 (en) 2015-04-16
US9900605B2 (en) 2018-02-20
CN105637880A (zh) 2016-06-01
US10212435B2 (en) 2019-02-19
KR102250638B1 (ko) 2021-05-10
US9979971B2 (en) 2018-05-22
MX358539B (es) 2018-08-24
KR102220256B1 (ko) 2021-02-24
JP2016539601A (ja) 2016-12-15
MX2016004631A (es) 2016-08-05
JP6486952B2 (ja) 2019-03-20
US20150103923A1 (en) 2015-04-16
WO2015057705A1 (en) 2015-04-23
US20150103922A1 (en) 2015-04-16
KR102312763B1 (ko) 2021-10-13
ES2744201T3 (es) 2020-02-24
CN105637881A (zh) 2016-06-01
MX365607B (es) 2019-06-07
JP6580576B2 (ja) 2019-09-25
BR112016008237B1 (pt) 2023-04-18
JP6542239B2 (ja) 2019-07-10
MX2016004642A (es) 2016-08-05
BR112016008225A2 (es) 2017-08-01
CN105637881B (zh) 2019-04-02
CN105637880B (zh) 2018-08-24
WO2015057711A1 (en) 2015-04-23
EP3058741A1 (en) 2016-08-24
CN105637882B (zh) 2018-12-04
EP3058745B1 (en) 2020-02-12
BR112016008225B1 (pt) 2023-04-18
EP3058744A1 (en) 2016-08-24
EP3058744B1 (en) 2019-06-05
HUE044813T2 (hu) 2019-11-28
MX2016004635A (es) 2016-08-05

Similar Documents

Publication Publication Date Title
ES2895442T3 (es) Dispositivo y método para la codificación escalable de información de video
ES2854274T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
ES2887368T3 (es) Derivación de la información de unidad de NAL de final de secuencia para flujos de bits de múltiples capas
ES2778463T3 (es) Inferencia mejorada de indicador de no emisión de imagen previa en codificación de video
EP3090551B1 (en) Support of base layer of a different codec in multi-layer video coding
ES2905124T3 (es) Dispositivo y método para procesar datos de video
CA2951530C (en) Full picture order count reset for multi-layer codecs
ES2887369T3 (es) Método y dispositivo para decodificar un conjunto de instantáneas de referencia inter capa (RPS) en decodificación multicapa
CA2930165A1 (en) Method for coding recovery point supplemental enhancement information (sei) messages and region refresh information sei messages in multi-layer coding
CA2930446C (en) Method for coding a reference picture set (rps) in multi-layer coding