ES2696723T3 - Diseño del valor de POC para codificación de vídeo multicapa - Google Patents

Diseño del valor de POC para codificación de vídeo multicapa Download PDF

Info

Publication number
ES2696723T3
ES2696723T3 ES14806516T ES14806516T ES2696723T3 ES 2696723 T3 ES2696723 T3 ES 2696723T3 ES 14806516 T ES14806516 T ES 14806516T ES 14806516 T ES14806516 T ES 14806516T ES 2696723 T3 ES2696723 T3 ES 2696723T3
Authority
ES
Spain
Prior art keywords
poc
reset
image
value
video
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
ES14806516T
Other languages
English (en)
Inventor
Ye-Kui Wang
Fnu Hendry
Adarsh Krishnan Ramasubramonian
Ying Chen
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 ES2696723T3 publication Critical patent/ES2696723T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/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
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

Un procedimiento de descodificación de datos de vídeo, el procedimiento que comprende: descodificar (200), mediante un descodificador de vídeo de un encabezado de segmento de fragmento de un fragmento de una imagen codificada, datos representativos de un valor para un identificador de período de restablecimiento del recuento de orden de imágenes (POC), en el que un identificador de período de restablecimiento de POC identifica un período de restablecimiento de POC, y un período de restablecimiento de POC comprende una secuencia de imágenes, teniendo cada una el mismo valor del identificador de período de restablecimiento de POC, en el que los datos están asociados con la imagen codificada de una capa de los datos de vídeo, en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, en el que la imagen codificada comprende una imagen de anclaje de POC del período de restablecimiento de POC, y en el que la imagen de anclaje de POC corresponde a una primera imagen del período de restablecimiento de POC; y basándose, al menos en parte, en el identificador de período de restablecimiento de POC, restablecer (202), mediante el descodificador de vídeo, al menos parte de un valor de POC para la imagen codificada en el que el restablecimiento comprende: restablecer todos los bits del valor de POC para la imagen de anclaje de POC cuando una indicación de un tipo de restablecimiento de POC para la imagen de anclaje de POC indica que el valor de POC para la imagen de anclaje de POC debe restablecerse completamente; o restablecer los bits más significativos (MSB) del valor de POC cuando la indicación del tipo de restablecimiento de POC para la imagen de anclaje de POC indica que deben restablecerse los MSB del valor de POC para la imagen de anclaje de POC.

Description

DESCRIPCIÓN
Diseño del valor de POC para codificación de vídeo multicapa
[0001] Esta solicitud reivindica la prioridad de la solicitud provisional de Estados Unidos n° 61/906,373, presentada el 19 de noviembre de 2013.
CAMPO TÉCNICO
[0002] Esta divulgación se refiere a la codificación de vídeo.
ANTECEDENTES
[0003] Las capacidades del vídeo digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores tipo tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de codificación de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta Eficiencia (HEVC), actualmente en desarrollo, y las ampliaciones de tales normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente, implementando tales técnicas de codificación de vídeo.
[0004] Las técnicas de codificación de vídeo incluyen la predicción espacial (intra-imagen) y/o la predicción temporal (inter-imagen) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (por ejemplo, una trama de vídeo o una parte de una trama de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques arbolados, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un fragmento intracodificado (I) de una imagen se codifican mediante predicción espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen. Los bloques de vídeo en un fragmento intercodificado (P o B) de una imagen pueden usar la predicción espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen, o la 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.
[0005] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse desde el dominio de los píxeles al dominio de las transformadas, dando como resultado unos coeficientes de transformada residuales, que posteriormente se pueden cuantificar. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, pueden explorarse con el fin de generar un vector unidimensional de coeficientes de transformada, y puede aplicarse la codificación por entropía para lograr aún más compresión.
SUMARIO
[0006] En general, esta divulgación describe técnicas para señalización y obtención mejoradas del recuento de orden de imágenes (picture order count, POC) en la codificación de vídeo multicapa. En particular, esta divulgación describe un diseño de señalización y obtención del POC que puede mejorar la capacidad de recuperación frente a errores y proporciona soporte para escenarios de imágenes faltantes co-localizadas donde en una unidad de acceso hay una imagen IRAP en una capa pero ninguna imagen para otra capa. Estas técnicas se pueden usar al codificar datos de vídeo de una única capa o datos de vídeo multicapa. En general, estas técnicas incluyen señalizar un identificador de período de restablecimiento de POC, que indica un período de restablecimiento de POC en el que se produce un fragmento. Como se analiza en mayor detalle a continuación, los codificadores de vídeo pueden configurarse para realizar un restablecimiento del valor de POC después de obtener en primer lugar un fragmento que tenga un nuevo identificador de período de restablecimiento de POC. Los codificadores de vídeo pueden configurarse para realizar un restablecimiento del valor de POC (por ejemplo, de una imagen en el período de restablecimiento de POC y de imágenes en la misma capa que la imagen que incluye el nuevo identificador de período de restablecimiento de POC que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas) una vez por período de restablecimiento de POC. De esta manera, si una imagen de anclaje de POC se pierde o está corrupta o no existía, los valores de POC para las imágenes siguientes en la misma capa todavía pueden recuperarse y, por lo tanto, las imágenes de referencia pueden identificarse correctamente y las imágenes pueden generarse en el orden correcto.
[0007] En un ejemplo, un procedimiento de descodificación de datos de vídeo incluye descodificar, mediante un descodificador de vídeo, datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer, mediante el descodificador de vídeo, al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (decoded picture buffer, DPB) del descodificador de vídeo.
[0008] En otro ejemplo, un procedimiento de codificación de datos de vídeo incluye codificar, mediante un codificador de vídeo, datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer, mediante el codificador de vídeo, al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo.
[0009] En otro ejemplo, un dispositivo para codificar datos de vídeo incluye una memoria que comprende una memoria intermedia de imágenes descodificadas (DPB) configurada para almacenar datos de vídeo, y un codificador de vídeo configurado para codificar datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en la DPB.
[0010] En otro ejemplo, un dispositivo para codificar datos de vídeo incluye medios para codificar datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y medios para restablecer al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo.
[0011] En otro ejemplo, un medio de almacenamiento legible por ordenador tiene almacenadas instrucciones que, cuando se ejecutan, hacen que un procesador de un dispositivo para codificar datos de vídeo codifique datos representativos de un valor para un identificador de período de restablecimiento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo.
[0012] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la siguiente descripción. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción y de los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0013]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar técnicas para codificar información del valor de POC según las técnicas de esta divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede implementar técnicas para codificar información del valor de POC según las técnicas de esta divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un descodificador de vídeo que puede implementar técnicas para codificar información del valor de POC según las técnicas de esta divulgación.
La FIG. 4 es un diagrama de flujo que ilustra un procedimiento de ejemplo para codificar datos que indican un período de restablecimiento de POC para un fragmento según las técnicas de esta divulgación.
La FIG. 5 es un diagrama de flujo que ilustra un procedimiento de ejemplo para descodificar datos que indican un período de restablecimiento de POC para un fragmento según las técnicas de esta divulgación.
DESCRIPCIÓN DETALLADA
[0014] En general, esta divulgación describe un diseño del valor de recuento de orden de imágenes (POC) para codificación de vídeo, que puede ser ventajoso para la codificación de vídeo multicapa. Esta divulgación describe diversas mejoras de diseño para señalización y obtención de valores de POC en codificación de vídeo multicapa. Las técnicas de esta divulgación también pueden aplicarse a la codificación de vídeo de una única capa.
[0015] Los valores de POC se usan en general para identificar imágenes y para controlar la generación de imágenes descodificadas en el orden correcto. Por ejemplo, cuando se realiza la inter-predicción de un bloque de una imagen actual con respecto a una imagen de referencia, la imagen de referencia puede identificarse usando un valor de POC para la imagen de referencia. Más específicamente, los valores de POC para imágenes de referencia a incluir en una lista de imágenes de referencia pueden señalizarse en un conjunto de parámetros, tal como un conjunto de parámetros de secuencia (sequence paramenter set, SPS), un conjunto de parámetros de imagen (picture parameter set, PPS) y/o un encabezado de fragmento correspondiente al bloque . De esta manera, un codificador de vídeo puede identificar una imagen de referencia señalizando un índice en la lista de imágenes de referencia correspondiente a la posición de la imagen de referencia en la lista de imágenes de referencia, y un descodificador de vídeo puede identificar la imagen de referencia construyendo la lista de imágenes de referencia (basándose en los valores de POC) y usando el índice de referencia para identificar la posición de una imagen de referencia en la lista de imágenes de referencia.
[0016] Entre las normas de codificación de vídeo se incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificación de vídeo ajustable a escala (SVC) y de codificación de vídeo multivista (MVC). Recientemente, ha finalizado el diseño de una nueva norma de codificación de vídeo, concretamente la Codificación de Vídeo de Alta Eficiencia (HEVC), por parte el Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC. La especificación más reciente del proyecto HEVC, y denominada HEVC WD en adelante en el presente documento, está disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1003-v1.zip. El JCT-3V también está desarrollando la ampliación multivista para HEVC, a saber MV-HEVC. Un reciente borrador de trabajo (WD) de MV-HEVC, denominado MV-HEVC WD6 en adelante en el presente documento, está disponible en http://phenix.itsudparis.eu/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1004-v3.zip. La ampliación escalable a HEVC, llamada SHVc , también está siendo desarrollada por el JCT-VC. Un borrador de trabajo (WD) reciente de SHVC, y denominado SHVC WD4 en adelante en el presente documento, está disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1008-v1.zip.
[0017] Un valor de POC, representado por PicOrderCntVal, para una imagen codificada particular denota el orden relativo de la imagen en el proceso de generación de imágenes con respecto a otras imágenes en la misma secuencia de vídeo codificado. El valor de POC incluye bits menos significativos (LSB) y bits más significativos (MSB); el POC se obtiene concatenando los MSB con los LSB. Los LSB pueden señalizarse en el encabezado de fragmento, y el descodificador puede calcular los MSB basándose en el tipo de unidad NAL de la imagen actual y los MSB y LSB de la imagen anterior en orden de descodificación que no es de tipo de unidad NAL principal omitida de acceso aleatorio (RASL) ni principal descodificable de acceso aleatorio (RADL), o no es una imagen que no es de referencia de subcapa, pero tiene un valor de temporaljd que es igual a 0. Dichas imágenes que tienen TemporalId igual a 0 y nuh_layer_id igual a nuh_layer_id de la imagen actual y que no son imágenes RASL, imágenes RADl o imágenes que no son de referencia de subcapa, se denominarán en adelante imágenes de anclaje de POC.
[0018] Cuando la imagen actual es una imagen IRAP con NoRaslOutputFlag igual a un valor de 1, o una imagen CRA que es la primera imagen del flujo de bits, se deduce que el valor de POC MSB es igual a 0. En un flujo de bits multicapa (por ejemplo, un flujo de bits SHVC o MV-HEVC con más de una capa), pueden existir unidades de acceso donde una o más de una imagen es una imagen IRAP y una o más imágenes son imágenes no IRAP; dichas AU se denominan IRAP AU no alineadas. Cuando se descodifican flujos de bits que contienen IRAP AU no alineadas, con frecuencia es probable que el POC obtenido para la imagen basándose en los valores de POC LSB señalizados incumpliría el requisito del flujo de bits de que todas las imágenes en una unidad de acceso deben tener el mismo valor de PicOrderCntVal.
[0019] En MV-HEVC WD5, el indicador poc_reset_flag se puede usar para restablecer el POC de las imágenes de tal manera que incluso cuando están presentes IRAP AU no alineadas en el flujo de bits, el valor de PicOrderCntVal de la imagen actual y las imágenes en la DPB se ajustaría de tal manera que el POC de todas las imágenes en una AU sea el mismo.
[0020] La so lic itud de patente de Estados Unidos Chen y otros, "CROSS-LAYER POC ALIGNMENT FOR MULTI-LAYER BITSTREAMS THAT MAY INCLUDE NON-ALIGNED IRAP PICTURES" ["ALINEACIÓN DEL POC ENTRE CAPAS PARA FLUJOS DE BITS MULTICAPA QUE PUEDEN INCLUIR IMÁGENES IRAP NO ALINEADAS"], con n° de serie 14/245.115, presentada el 4 de abril de 2014 , describe otro procedimiento para conseguir un restablecimiento de POC, que usa dos indicadores: poc_msb_reset_flag y poc_lsb_reset_flag. El primer indicador restablece los MSB de PicOrderCntVal, y el segundo indicador restablece los LSB de PicOrderCntVal. Ambos indicadores se señalizan en el encabezado de fragmento.
[0021] La solicitud provisional de Estados Unidos n° 61/890.868, presentada el 14 de octubre de 2013, propone un mensaje SEI que contiene información para la recuperación de los valores de POC correctos cuando se pierde una imagen que contiene los POC MSB o bien la indicación de restablecimiento de POC.
[0022] El documento JCTVC-O0275v3, disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O0275-v3.zip y JCTVC-O0176v3, disponible en http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O0176-v3.zip, propone algunos procedimientos diferentes para señalizar y obtener valores de POC en codificación de vídeo multicapa.
[0023] Los diseños de POC existentes, es decir, los procedimientos existentes para señalizar y obtener valores de POC en codificación de vídeo multicapa, pueden encontrar los siguientes problemas: En algunos procedimientos, la obtención del POC para imágenes de una capa particular depende de información, tal como el tipo de imagen indicado por el tipo de unidad NAL, de imágenes de capas inferiores. Así pues, si se pierde dicha imagen de capa inferior, los valores de POC para algunas imágenes (por ejemplo, imágenes de la capa particular) no pueden obtenerse correctamente. Casos de uso tales como aquellos en los que una unidad de acceso incluye una imagen IRAP en una capa, pero ninguna imagen para otra capa (denominados escenarios de imágenes faltantes co-localizadas) no se admitirían sin las técnicas de esta divulgación. Algunos procedimientos tienen problemas para especificar claramente el alcance de persistencia dependiente del POC de algunos mensajes SEI o la semántica dependiente del POC de algunos elementos sintácticos de mensajes SEI.
[0024] El diseño del valor de POC descrito en esta divulgación incluye varios aspectos, cualquiera o la totalidad de los cuales se pueden implementar solos o en cualquier combinación. Las técnicas de esta divulgación pueden superar uno o más de los problemas analizados anteriormente. En un ejemplo, los codificadores de vídeo (por ejemplo, codificadores de vídeo y descodificadores de vídeo) pueden codificar (codificar o descodificar) un identificador de período de restablecimiento de POC para, por ejemplo, un fragmento de datos de vídeo. El identificador de período de restablecimiento de POC puede formar parte de un encabezado de segmento de fragmento para que un fragmento identifique un período de restablecimiento de POC al que corresponde el fragmento.
[0025] Ciertas técnicas de esta divulgación están basadas en el reconocimiento de que, a veces, un valor de POC para un fragmento actual (o una imagen actual que incluye el fragmento actual) puede no ser determinable, ya sea porque una imagen que tiene un valor de POC de referencia (es decir, el valor de POC que sirve como referencia para obtener el valor de POC para el fragmento actual o la imagen actual) se perdió o de otro modo no se recibió. Por ejemplo, una unidad de acceso puede incluir datos para una imagen de una imagen de capa base, pero puede no incluir (por ejemplo, debido a la pérdida u omisión de) datos para una imagen de capa de mejora. Esto puede ocasionar que un valor de POC no se pueda determinar correctamente. En consecuencia, un codificador de vídeo puede realizar un restablecimiento del valor de POC como máximo una vez por período de restablecimiento de POC, lo que puede permitir que un descodificador de vídeo determine valores de POC, incluso después de recibir una unidad de acceso que incluye datos para una imagen de una capa base pero no datos para una imagen de una capa de mejora. En general, el restablecimiento del valor de POC puede incluir determinar un valor para un valor de POC de anclaje para el período de restablecimiento de POC y ajustar valores de POC de imágenes en la misma capa y que actualmente están almacenados en una memoria intermedia de imágenes descodificadas (DPB), basándose al menos en parte en el valor de POC de anclaje. De esta manera, incluso cuando el valor de POC de anclaje real no se puede determinar (por ejemplo, debido a pérdida u otros errores), los valores de POC para el período de restablecimiento de POC pueden determinarse y referirse adecuadamente a valores de POC de imágenes descodificadas previamente en la DPB, que se pueden usar como imágenes de referencia para descodificar imágenes siguientes. El restablecimiento del POC puede incluir restablecer solo los bits más significativos (MSB) de un valor de POC o un restablecimiento completo (incluyendo restablecer tanto los MSB como los bits menos significativos (LSB)) del valor de POC.
[0026] Las técnicas de esta divulgación también pueden admitir técnicas en las que una unidad de acceso (es decir, una unidad de datos que incluye todas las unidades de capa de abstracción de red (NAL) para una instancia de tiempo particular) incluye datos para una capa pero no incluye datos para otra capa . Por ejemplo, diferentes capas de datos de vídeo pueden tener velocidades de trama diferentes, por ejemplo, con fines de escalabilidad temporal. La imagen de la capa para la que la unidad de acceso tiene datos puede ser una imagen de punto de acceso intra-aleatorio (IRAP) y, por lo tanto, servir como una imagen de anclaje de POC para esa capa. Típicamente, es deseable que los valores de POC estén alineados entre capas. Por lo tanto, las técnicas de esta divulgación se pueden usar para mantener una alineación de valores de POC entre capas de codificación de vídeo, incluso si no se proporcionan imágenes para cada instancia de tiempo en cada capa.
[0027] Por ejemplo, los codificadores de vídeo pueden configurarse para realizar un restablecimiento de POC como máximo una vez por período de restablecimiento de POC. Múltiples imágenes pueden pertenecer al mismo período de restablecimiento de POC. Además, múltiples imágenes pueden indicar que los valores de POC deben restablecerse durante el período de restablecimiento de POC. Sin embargo, en lugar de restablecer los valores de POC en respuesta a cada imagen que indica que los valores de POC deben restablecerse, un codificador de vídeo se puede configurar para determinar si los valores de POC se han restablecido durante el período de restablecimiento de POC (por ejemplo, como resultado de una imagen anterior del período de restablecimiento de POC que indica que los valores de POC deben restablecerse). Entonces, el codificador de vídeo puede restablecer los valores de POC solo si los valores de POC todavía no se han restablecido para el período de restablecimiento de POC correspondiente.
[0028] Además, los codificadores de vídeo pueden configurarse para codificar un valor de POC LSB en un encabezado de segmento de fragmento. Un codificador de vídeo puede usar un valor de POC LSB de este tipo cuando actualiza valores de POC de imágenes en la misma capa que el fragmento en una memoria intermedia de imágenes descodificadas (DPB) y para obtener un valor de POC MSB de la imagen actual. Una imagen de anclaje de POC puede tener un valor de tipo de restablecimiento de POC que indica que el valor de POC para la imagen de anclaje de POC se debe restablecer completamente o solo se deben restablecer los MSB del valor de POC de la imagen de anclaje de POC. El codificador de vídeo puede establecer el valor de LSB POC de la imagen de anclaje de POC igual al valor de POC LSB señalizado en el encabezado de segmento de fragmento. La imagen de anclaje de POC puede corresponder a la primera imagen del período de restablecimiento de POC que incluye el fragmento. El codificador de vídeo también puede decrementar los valores de POC de otras imágenes en la DPB por el valor de POC LSB.
[0029] Un codificador de vídeo también se puede configurar para codificar una indicación de dos bits (por ejemplo, un valor para un elemento sintáctico poc_reset_idc) en un encabezado de segmento de fragmento para indicar un tipo de restablecimiento de POC para la imagen que incluye el fragmento. La indicación puede indicar que el tipo de restablecimiento de POC es sin restablecimiento de POC, restablecer solo los valores de MSB del valor de POC, restablecer tanto los valores de MSB como de LSB del valor de POC (también denominado restablecimiento completo), o que se señaliza información adicional para indicar un tipo de restablecimiento, donde la información adicional puede indicar si se debe realizar un restablecimiento completo o solo el restablecimiento de MSB, así como un valor de POC LSB, como se ha analizado anteriormente. Los codificadores de vídeo pueden configurarse con la restricción de que las imágenes de anclaje de POC (aquellas al comienzo de un período de restablecimiento de POC) deben tener un tipo de restablecimiento de POC que indique restablecimiento completo, restablecimiento de MSB o que se señaliza información adicional. Los codificadores de vídeo pueden codificar múltiples imágenes del mismo período de restablecimiento de POC con un tipo de restablecimiento de POC que indica que se señaliza información adicional, lo que puede mejorar la capacidad de recuperación frente a errores o proporcionar soporte para escenarios de imágenes faltantes co-localizadas. De esta manera, los codificadores de vídeo pueden configurarse para realizar un restablecimiento de POC (por ejemplo, un restablecimiento completo o bien solo un restablecimiento de MSB) basándose en un tipo de restablecimiento de POC (por ejemplo, un valor de un elemento sintáctico representativo del tipo de restablecimiento de POC).
[0030] Además, los codificadores de vídeo pueden configurarse para codificar una indicación en un conjunto de parámetros, tal como un PPS o SPS, que indica si la información de restablecimiento de POC se señaliza en los encabezados de segmento de fragmento correspondientes. Por ejemplo, un PPS puede incluir una indicación de este tipo cuando el elemento sintáctico slice_segment_header_extension_present_flag en el PPS es igual a 1, el valor de la indicación puede indicar si los encabezados de segmento de fragmento incluirán información de restablecimiento de POC (por ejemplo, un identificador de período de restablecimiento de POC y/o un indicador de tipo de restablecimiento de POC).
[0031] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo 10 que puede utilizar técnicas para codificar información del valor de POC según las técnicas de esta divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que proporciona datos de vídeo codificados que un dispositivo de destino 14 va a descodificar en un momento posterior. En particular, el dispositivo de origen 12 proporciona los datos de vídeo al dispositivo de destino 14 mediante un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, equipos telefónicos tales como los denominados teléfonos “inteligentes”, los denominados paneles “inteligentes”, televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, un dispositivo de transmisión continua de vídeo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
[0032] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se van a descodificar mediante el medio legible por ordenador 16. El medio legible por ordenador 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el medio legible por ordenador 16 puede comprender un medio de comunicación que habilita el dispositivo de origen 12 para transmitir datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados pueden modularse según una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global tal como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0033] En algunos ejemplos, pueden emitirse datos codificados desde la interfaz de salida 22 hasta un dispositivo de almacenamiento. De forma similar, se puede acceder a los datos codificados del dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera entre una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco duro, discos Bluray, discos DVD, discos CD-ROM, memoria flash, memoria volátil o no volátil u otros medios adecuados cualesquiera de almacenamiento digital para almacenar datos de vídeo codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento en memoria intermedia que pueda almacenar los datos de vídeo codificados generados por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados del dispositivo de almacenamiento mediante transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Ejemplos de servidores de archivos incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectado en red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados mediante cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión alámbrica (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
[0034] Las técnicas de esta divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas pueden aplicarse a la codificación de vídeo como soporte a cualquiera de una diversidad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo por Internet, tales como el flujo adaptativo dinámico sobre HTTP (DASH), el vídeo digital que se codifica en un medio de almacenamiento de datos, la descodificación de vídeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para admitir la transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como la transmisión continua de vídeo, la reproducción de vídeo, la difusión de vídeo y/o la videotelefonía.
[0035] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. Según esta divulgación, el codificador de vídeo 20 del dispositivo de origen 12 puede estar configurado para aplicar las técnicas para codificar información del valor de POC según las técnicas de esta divulgación. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de vídeo desde una fuente de vídeo externa 18, tal como una cámara externa. Asimismo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0036] El sistema ilustrado 10 de la FIG. 1 es solo un ejemplo. Las técnicas para codificar información del valor de POC según las técnicas de esta divulgación se pueden realizar mediante cualquier dispositivo de codificación y/o descodificación de vídeo digital. Aunque, en general, las técnicas de esta divulgación se llevan a cabo mediante un dispositivo de codificación de vídeo, las técnicas también pueden llevarse a cabo mediante un codificador/descodificador de vídeo, denominado típicamente "CÓDEC". Además, las técnicas de esta divulgación también pueden llevarse a cabo mediante un pre-procesador de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de dichos dispositivos de codificación en los que el dispositivo de origen 12 genera datos de vídeo codificados para su transmisión al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de manera esencialmente simétrica, de tal manera que cada uno de los dispositivos 12, 14 incluya componentes de codificación y de descodificación de vídeo. Por tanto, el sistema 10 puede soportar una transmisión de vídeo unidireccional o bidireccional entre los dispositivos de vídeo 12, 14, por ejemplo para el flujo de vídeo, la reproducción de vídeo, la radiodifusión de vídeo o la videotelefonía.
[0037] El origen de vídeo 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo grabado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo de un proveedor de contenidos de vídeo. De forma alternativa adicional, la fuente de vídeo 18 puede generar datos, basándose en gráficos por ordenador, como el vídeo de origen, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si la fuente de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, como se ha mencionado anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o alámbricas. En cada caso, el vídeo capturado, pre-capturado o generado por ordenador puede codificarse mediante el codificador de vídeo 20. La información de vídeo codificada puede entonces emitirse mediante la interfaz de salida 22 hacia un medio legible por ordenador 16.
[0038] El medio legible por ordenador 16 puede incluir medios transitorios, tales como una difusión inalámbrica o una transmisión de red cableada, o medios de almacenamiento (es decir, medios de almacenamiento no transitorio), tales como un disco duro, una unidad de memoria flash, un disco compacto, un disco de vídeo digital, un disco Bluray u otros medios legibles por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y proporcionar los datos de vídeo codificados al dispositivo de destino 14, por ejemplo, mediante transmisión por red. De manera similar, un dispositivo informático de una instalación de producción de un medio, tal como una instalación de grabación de discos, puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y producir un disco que contiene los datos de vídeo codificados. Por lo tanto, puede entenderse que el medio legible por ordenador 16 incluye uno o más medios legibles por ordenador de varias formas, en varios ejemplos.
[0039] La interfaz de entrada 28 del dispositivo de destino 14 recibe información desde el medio legible por ordenador 16. La información del medio legible por ordenador 16 puede incluir información sintáctica definida por el codificador de vídeo 20, que también usa el descodificador de vídeo 30, que incluye elementos sintácticos que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupos de imágenes (GOP). El dispositivo de visualización 32 muestra los datos de vídeo descodificados a un usuario, y puede comprender cualquiera de diversos dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0040] El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden funcionar de acuerdo con una norma de codificación de vídeo, tal como la norma de codificación de vídeo de alta eficiencia (HEVC), actualmente en fase de desarrollo, y pueden ajustarse al modelo de prueba de la HEVC (HM). De forma alternativa, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden funcionar de acuerdo con otras normas privadas o industriales, tales como la norma ITU-T H.264, de forma alternativa denominada MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), o ampliaciones de dichas normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de codificación de vídeo incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden estar integrados, cada uno de ellos, en un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos diferentes. Si procede, las unidades MUX-DEMUX pueden ajustarse al protocolo de multiplexación ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0041] La norma ITU-T H.264/MPEG-4 (AVC) se formuló por el Grupo de Expertos en Codificación de Vídeo de ITU-T (VCEG) junto con el Grupo de Expertos en Imágenes en Movimiento de ISO/IEC (MPEG), como el producto de una asociación colectiva conocida como Equipo Mixto de Vídeo (JVT, por sus siglas en inglés). En algunos aspectos, las técnicas descritas en esta divulgación pueden aplicarse a dispositivos que se ajustan en general a la norma H.264. La norma H.264 se describe en la Recomendación de la ITU-T H.264, Codificación Avanzada de vídeo para servicios audiovisuales genéricos, por el Grupo de Estudio de la ITU-T, y con fecha de marzo de 2005, que puede denominarse en el presente documento norma H.264 o memoria descriptiva H.264, o norma o memoria descriptiva H.264/AVC. El Equipo Mixto de vídeo (JVT) continúa trabajando en ampliaciones de H.264/MPEG-4 AVC.
[0042] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse como cualquiera de entre una variedad de circuitos adecuados de codificadores, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables por campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio, legible por ordenador, y ejecutar las instrucciones en hardware mediante uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0043] El equipo JCT-VC estaba trabajando en el desarrollo de la norma HEVC. Los esfuerzos de normalización de HEVC se basan en un modelo en evolución de un dispositivo de codificación de vídeo denominado modelo de prueba de HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo respecto a dispositivos existentes según, por ejemplo, la norma ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificación de intra-predicción, el HM puede proporcionar hasta treinta y tres modos de codificación de intra-predicción.
[0044] En general, el modelo de funcionamiento del HM describe que una trama o imagen de vídeo puede dividirse en una secuencia de bloques arbolados o unidades de codificación de máximo tamaño (LCU), que incluyen muestras tanto de luma como de croma. Los datos sintácticos dentro de un flujo de bits pueden definir un tamaño para la LCU, que es la máxima unidad de codificación en lo que respecta al número de píxeles. Un fragmento incluye un cierto número de bloques arbolados consecutivos en orden de codificación. Una trama o imagen de vídeo puede dividirse en uno o más fragmentos. Cada bloque arbolado puede dividirse en unidades de codificación (CU) de acuerdo con un árbol cuádruple. En general, una estructura de datos de árbol cuádruple incluye un nodo por CU, con un nodo raíz correspondiente al bloque arbolado. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU.
[0045] Cada nodo de la estructura de datos en árbol cuádruple puede proporcionar datos sintácticos para la CU correspondiente. Por ejemplo, un nodo en el árbol cuádruple puede incluir un indicador de división, que indica si la CU correspondiente al nodo está dividida o no en varias sub-CU. Los elementos sintácticos para una CU pueden definirse de manera recursiva y pueden depender de si la CU está dividida en varias sub-CU. Si una CU no está dividida adicionalmente, se denomina CU hoja. En esta divulgación, cuatro sub-CU de una CU hoja también se denominarán CU hojas incluso aunque no haya una división explícita de la CU hoja original. Por ejemplo, si una CU con un tamaño de 16x16 no se divide adicionalmente, las cuatro sub-CU de tamaño 8x8 también se denominarán CU hojas aunque la CU de tamaño 16x16 no se haya dividido nunca.
[0046] Una CU tiene un propósito similar a un macrobloque de la norma H.264, excepto que una CU no tiene una distinción de tamaño. Por ejemplo, un bloque arbolado puede dividirse en cuatro nodos secundarios (también denominados sub-CU) y cada nodo secundario puede a su vez ser un nodo principal y dividirse en otros cuatro nodos secundarios. Un nodo secundario final, no dividido, denominado un nodo hoja del árbol cuádruple, comprende un nodo de codificación, también denominado CU hoja. Los datos sintácticos asociados a un flujo de bits codificado pueden definir un número máximo de veces que puede dividirse un bloque arbolado, denominado profundidad de CU máxima, y también pueden definir un tamaño mínimo de los nodos de codificación. Por consiguiente, un flujo de bits también puede definir una unidad de codificación de tamaño mínimo (SCU). Esta divulgación utiliza el término "bloque" para referirse a cualquiera de una CU, PU o TU, en el contexto de la HEVC, o a estructuras de datos similares en el contexto de otras normas (por ejemplo, macrobloques y subbloques de los mismos en la norma H.264/AVC).
[0047] Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas al nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y debe ser de forma cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque arbolado, con un máximo de 64x64 píxeles o más. Cada CU puede contener una o más PU y una o más TU. Los datos sintácticos asociados a una CU pueden describir, por ejemplo, la división de la CU en una o más PU. Los modos de división pueden diferir basándose en si la CU está codificada en modo de salto o directo, codificada en modo de intra-predicción o codificada en modo de inter-predicción. Las PU pueden dividirse para tener forma no cuadrada. Los datos sintácticos asociados a una CU también pueden describir, por ejemplo, la división de la CU en una o más TU de acuerdo con un árbol cuádruple. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
[0048] La norma HEVC soporta transformadas de acuerdo con las TU, que pueden ser diferentes para diferentes CU. El tamaño de las TU típicamente se basa en el tamaño de las PU de una CU dada, definida para una LCU dividida, aunque puede que no siempre sea así. Las TU son típicamente del mismo tamaño o de un tamaño más pequeño que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades más pequeñas mediante una estructura de árbol cuádruple conocida como "árbol cuádruple residual" (RQT). Los nodos hoja del RQT pueden denominarse unidades de transformada (TU). Los valores de diferencias de píxeles, asociados a las TU, pueden transformarse para generar coeficientes de transformada, que pueden cuantificarse.
[0049] Una CU hoja puede incluir una o más unidades de predicción (PU). En general, una PU representa una zona espacial correspondiente a la totalidad, o a una parte, de la CU correspondiente, y puede incluir datos para recuperar una muestra de referencia para la PU. Además, una PU incluye datos relacionados con la predicción. Por ejemplo, cuando la PU está codificada en intra-modo, pueden incluirse datos para la PU en un árbol cuádruple residual (RQT), que pueden incluir datos que describen un modo de intra-predicción para una TU correspondiente a la PU. Como otro ejemplo, cuando la PU está codificada en inter-modo, la PU puede incluir datos que definen uno o más vectores de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, la Lista 0, la Lista 1 o la Lista C) para el vector de movimiento.
[0050] La información de movimiento para una PU inter-predicha (más específicamente, una parte inter-predicha de una CU a la que corresponde una PU) puede incluir un identificador de lista de imágenes de referencia y un índice de referencia correspondiente a una posición de una imagen de referencia en la lista de imágenes de referencia . El codificador de vídeo 20, por ejemplo, puede construir la lista de imágenes de referencia (incluyendo cualquier modificación realizada en una lista de imágenes de referencia construida inicialmente), y realizar una búsqueda de movimiento entre las imágenes de referencia en la lista de imágenes de referencia para identificar un bloque altamente coincidente (por ejemplo, basándose en métricas de suma de diferencias absolutas (SAD) o métricas similares), también denominado bloque de referencia. Con el fin de señalizar la localización del bloque de referencia, el codificador de vídeo 20 puede codificar el identificador de lista de imágenes de referencia y el índice de referencia para la PU. Además, el codificador de vídeo 20 puede codificar datos representativos de imágenes de referencia a incluir en la lista de imágenes de referencia, por ejemplo, señalizando datos representativos de valores de POC para las imágenes de referencia en un encabezado de fragmento y/o en un conjunto de parámetros, tal como un conjunto de parámetros de imagen o un conjunto de parámetros de secuencia.
[0051] El codificador de vídeo 20 y el descodificador de vídeo 30 en general pueden configurarse para operar según una norma de codificación de vídeo o una ampliación de una norma de codificación de vídeo, tal como MV-HEVC o SHVC. Con fines de ejemplo, las técnicas de esta divulgación se describen a continuación con respecto a MV-HEVC, pero se debe entender que estas técnicas se pueden aplicar a otras normas o ampliaciones de codificación de vídeo, tales como SHVC.
[0052] Un período de restablecimiento de POC se puede definir de la siguiente manera, por ejemplo, en la subcláusula F.3 de MV-HEVC:
F.3.1 Período de restablecimiento del recuento de orden de imágenes (POC): Una secuencia de imágenes en orden de descodificación dentro de una capa que tienen poc_reset_idc mayor que 0 y el mismo valor de poc_reset_period_id.
Alternativamente, la frase "dentro de una capa" en la definición anterior puede omitirse, por ejemplo, de la siguiente manera:
F.3.2 Período de restablecimiento del recuento de orden de imágenes (POC): Una secuencia de imágenes en orden de descodificación que tienen poc_reset_idc mayor que 0 y el mismo valor de poc_reset_period_id. En un ejemplo, MV-HEVC (u otra norma o ampliación de la norma aplicable) puede requerir que las imágenes en un período de restablecimiento de POC sean continuas en orden de descodificación dentro de una capa. Sin embargo, permitir que estas imágenes se intercalen con imágenes con poc_reset_idc igual a 0 en la misma capa puede añadir flexibilidad y permitir el uso de la misma cabecera para conseguir una mejor capacidad de recuperación frente a errores para pérdidas de paquetes agrupados.
[0053] El codificador de vídeo 20 puede asignar fragmentos a períodos de restablecimiento de POC respectivos. Cada período de restablecimiento de POC puede incluir uno o más fragmentos. Así pues, cuando los valores de POC se restablecen durante un período de restablecimiento de POC (incluyendo restablecer los valores de POC de imágenes de referencia que preceden al período de restablecimiento de POC en orden de codificación), el codificador de vídeo 20 puede señalizar valores de POC de imágenes de referencia a incluir en una lista de imágenes de referencia basándose en los valores de POC restablecidos.
[0054] En general, cuando se realiza un restablecimiento de POC, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente restablecen el valor de POC de una imagen de anclaje de POC y otras imágenes almacenadas actualmente en una memoria intermedia de imágenes descodificadas (DPB). Entonces, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden determinar los valores de POC para otras imágenes en el período de restablecimiento de POC basándose en el valor de POC restablecido de la imagen de anclaje de POC. En algunos ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden realizar el restablecimiento de POC para la imagen de anclaje de POC, es decir, durante la codificación de la imagen de anclaje de POC.
[0055] Según las técnicas de esta divulgación, puede especificarse un período de restablecimiento de POC específico de capa basándose en un identificador de período de restablecimiento de POC señalizado en encabezados de segmento de fragmento. Es decir, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar datos representativos del identificador de período de restablecimiento de POC en los encabezados de segmento de fragmento. Cada imagen no IRAP que pertenece a una unidad de acceso que contiene al menos una imagen IRAP puede ser el inicio de un período de restablecimiento de POC en la capa que contiene la imagen no IRAP. Es decir, el codificador de vídeo 20 puede establecer un tipo de restablecimiento de POC para una imagen no IRAP de una unidad de acceso que contiene al menos una imagen IRAP para indicar que la imagen no IRAP es el inicio de un nuevo período de restablecimiento de POC. Además, el codificador de vídeo 20 puede realizar un restablecimiento de POC basándose en el tipo de restablecimiento de POC. En una unidad de acceso de este tipo, cada imagen sería el inicio de un período de restablecimiento de POC en la capa que contiene la imagen. El restablecimiento de POC, ya sea solo POC MSB o tanto POC MSB como POC LSB, y la actualización de los valores de POC de las imágenes de la misma capa en la DPB se puede aplicar solo para la primera imagen dentro de cada período de restablecimiento de POC.
[0056] El codificador 20 de vídeo puede señalizar un valor de POC LSB en un encabezado de segmento de fragmento que el descodificador de vídeo 30 puede usar para obtener valores de POC de imágenes en una capa que incluye el fragmento que tiene el encabezado de segmento de fragmento. El valor de POC LSB señalizado en el encabezado de segmento de fragmento se puede usar para obtener el valor POC delta, que se usa para actualizar los valores de POC de las imágenes de la misma capa en la DPB, y también para obtener los POC MSB del valor de POC de la imagen actual. Cuando la imagen actual tiene dicho valor de POC LSB señalizado, y cuando la imagen de anclaje de POC asociada con la imagen actual está presente en el flujo de bits, la imagen de anclaje de POC tiene una indicación de restablecimiento de POC completo o bien de restablecimiento de POC MSB. Un valor de POC LSB de este tipo señalizado para la imagen actual es igual al valor de POC LSB de la imagen de anclaje de POC, que también es la primera imagen del período de restablecimiento de POC como la imagen actual.
[0057] El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar un elemento sintáctico de indicación de dos bits de un encabezado de segmento de fragmento que indica un tipo de restablecimiento de POC para un fragmento que tiene el encabezado de segmento de fragmento. El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar un valor de 0 para esta indicación para imágenes sin ningún valor de POC o restablecimiento del valor de POC MSB. El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar un valor de 1 para esta indicación para imágenes con solo restablecimiento de POC MSB. El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar un valor de 2 para esta indicación para imágenes con restablecimiento de POC completo. El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar un valor de 3 para esta indicación para imágenes con restablecimiento de POC completo o bien restablecimiento de POC MSB y con información adicional señalizada. El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden configurarse con una restricción de que una imagen con un valor 1 o 2 de la indicación de dos bits debe ser el inicio de un período de restablecimiento de POC. Alternativamente, en algunos ejemplos, una imagen con un valor 3 para la indicación de dos bits también puede ser el inicio de un período de restablecimiento de POC. El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden configurarse con una restricción de que una imagen que pertenece a un período de restablecimiento de POC pero que no es la primera imagen en el período de restablecimiento de POC debe tener valor 3 para la indicación de dos bits.
[0058] Los casos de uso en los que una unidad de acceso incluye una imagen IRAP en una capa pero ninguna imagen para otra capa se admiten a través de que una imagen con un valor 3 para que la indicación de dos bits sea el inicio de un período de restablecimiento de POC. En otras palabras, proporcionando información de señalización adicional indicada mediante un valor de 3 para la indicación de dos bits, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar datos de vídeo que incluyen al menos una unidad de acceso que tiene una imagen IRAP en una capa y ninguna imagen en otra capa.
[0059] Las técnicas de esta divulgación pueden mejorar la capacidad de recuperación frente a errores. Por ejemplo, una pérdida de una imagen al inicio de un período de restablecimiento de POC se puede superar teniendo una o más imágenes de la misma capa que siguen a esa imagen en orden de descodificación y que tienen asignado un valor 3 para la indicación de dos bits. La información adicional puede incluir un valor de POC LSB para la imagen de anclaje de POC que inicia el período de restablecimiento de POC. Así pues, se puede aplicar el mismo proceso para admitir escenarios de imágenes faltantes co-localizadas para resolver el problema de capacidad de recuperación frente a errores.
[0060] La siguiente tabla es un ejemplo de sintaxis para un encabezado de segmento de fragmento según las técnicas de esta divulgación. El encabezado de sintaxis de fragmento se puede modificar con respecto a, por ejemplo, el de MV-HEVC. En la siguiente tabla de sintaxis y semántica de ejemplo, las adiciones a MV-HEVC se representan usando cursiva y las eliminaciones de MV-HEVC se representan usando texto entre corchetes precedido por "eliminado" (por ejemplo, [eliminado: "texto eliminado"]). Además, los enunciados relativos a "requisitos" deben entenderse como que forman parte del texto de la norma o ampliación de la norma, y no como un requisito para los fines de las técnicas de esta divulgación.
Figure imgf000012_0001
[0061] Alternativamente, poc_reset_period_id puede señalizarse usando un número diferente de bits, por ejemplo, codificado como u(14).
[0062] Cuando están presentes, los valores de los elementos sintácticos del encabezado de segmento de fragmento slice_pic_parameter_set_id, pic_output_flag, no_output_of_prior_pics_flag, slice_pic_order_cnt_lsb, short_term_ref_pic_set_sps_flag, short_term_ref_pic_set_idx, num_long_term_sps, num_long_term_pics, slice_temporal_mvp_enabled_flag, discardable_flag, cross_layer_bla_flag, inter_layer_pred_enabled_flag, num_inter_layer_ref_pics_minus1, poc_reset_idc, poc_reset_period_id, full_poc_reset_flag, y poc_lsb_val serán los mismos en todos los encabezados de segmento de fragmento de una imagen codificada. Cuando están presentes, los valores de los elementos sintácticos del encabezado de segmento de fragmento lt-idx_sps[i], poc_lsb_lt[i], used_by_curr_pic_lt_flag[i], delta_poc_msb_present_flag[i], delta_poc_msb_cycle_lt[i] , e inter_layer_pred_layer_idc[i] serán los mismos en todos los encabezados de segmento de fragmento de una imagen codificada para cada posible valor de i.
[0063] [eliminado: "poc_reset_flag igual a 1 especifica que el recuento de orden de imágenes obtenido para la imagen actual es igual a 0. poc_reset_flag igual a 0 especifica que el recuento de orden de imágenes obtenido para la imagen actual puede o no ser igual a 0. Cuando no está presente, se deduce que el valor de poc_reset_flag es 0. NOTA - Cuando poc_reset_flag es igual a 1 en una imagen de capa base, PicOrderCntVal se obtiene de manera diferente dependiendo de si se aplica el proceso de descodificación de la subcláusula 8.3.1 o de la subcláusula F.8.3.1. Además, cuando una imagen de capa base con poc_reset_flag igual a 1 es prevTid0Pic según la subcláusula 8.3.1 o F.8.3.1, la variable prevPicOrderCntLsb se obtiene de manera diferente en las subcláusulas 8.3.1 y F.8.3.1. Con el fin de evitar que PicOrderCntMsb se actualice incorrectamente en una de las subcláusulas 8.3.1 o F.8.3.1, cuando prevTid0Pic es una imagen de capa base con poc_reset_flag igual a 1 y una de las dos condiciones siguientes es verdadera para prevPicOrderCntLsb obtenido con una de las subcláusulas 8.3.1 o F.8.3.1, el valor de pic_order_cnt_lsb de prevTid0Pic será tal que la misma condición sea verdadera también para prevPicOrderCntLsb obtenido con la otra de las subcláusulas 8.3.1 o F.8.3.1:
- (sl¡ce_p¡c_order_cnt_lsb<prevP¡cOrderCntLsb) && ( (prevPicOrderCntLsb - slice_pic_order_cnt_lsb) >= ( MaxPicOrderCntLsb / 2))
- (slice_pic_order_cnt_lsb > prevPicOrderCntLsb) && ( ( slice pic order cnt lsb - prevPicOrderCntLsb) > ( MaxPicOrderCntLsb / 2))"].
[0064] slice_segment_header_extension_length especifica la longitud de los datos de extensión del encabezado de segmento de fragmento en bytes, sin incluir los bits utilizados para señalizar el propio slice_segment_header_extension_length. Si poc_reset_info_present_flag es igual a 0, el valor de slice_segment_header_extension_length estará en el intervalo de 0 a 256, inclusive. De lo contrario, el valor de slice_segment_header_extension_length estará en el intervalo de 1 a 256, inclusive, cuando poc_reset_idc es menor que 3, y en el intervalo de 1 + Techo((log2_max_pic_order_cnt-lsb-menos4+5)/8) a 256, inclusive, cuando poc_reset_idc es igual a 3.
[0065] poc_reset_idc igual a 0 especifica que no se restablecen los bits más significativos ni los bits menos significativos del valor de recuento de orden de imágenes para la imagen actual. poc_reset_idc igual a 1 especifica que solo se pueden restablecer los bits más significativos del valor de recuento de orden de imágenes para la imagen actual. poc_reset_idc igual a 2 especifica que pueden restablecerse tanto los bits más significativos como los bits menos significativos del valor de recuento de orden de imágenes para la imagen actual. poc_reset_idc igual a 3 especifica que se pueden restablecer solo los bits más significativos o tanto los bits más significativos como los bits menos significativos del valor de recuento de orden de imágenes para la imagen actual y se señaliza información de recuento de orden de imágenes adicional. Cuando no está presente, se deduce que el valor de poc_reset_poc es igual a 0.
[0066] Es un requisito de la conformidad del flujo de bits que se apliquen las siguientes restricciones:
- El valor de poc_reset_idc no debe ser igual a 1 o 2 para una imagen RASL, una imagen RADL, una imagen que no es de referencia de subcapa, o una imagen que tiene TemporalId mayor que 0.
- Cuando el valor de poc_reset_idc de una imagen en una unidad de acceso es igual a 1, el valor de poc_reset_idc de todas las imágenes en la unidad de acceso será igual a 1. (Alternativamente, este elemento puede escribirse: Cuando está presente, el valor de poc_reset_idc de todas las imágenes en una unidad de acceso será el mismo).
- Cuando el valor de poc_reset_idc de una imagen en una unidad de acceso es igual a 2, el valor de poc_reset_idc de todas las imágenes en la unidad de acceso será igual a 2. (Alternativamente, este elemento puede omitirse en su totalidad)
- Cuando una imagen en una unidad de acceso es una imagen IRAP con un valor particular de nal_unit_type y hay al menos otra imagen en la misma unidad de acceso con un valor diferente de nal_unit_type, el valor de poc_reset_idc será igual a 1 o 2 para todas las imágenes en la unidad de acceso.
- Cuando la imagen con nuh_layer_id igual a 0 en una unidad de acceso es una imagen IDR y hay al menos una imagen no IDR en la misma unidad de acceso, el valor de poc_reset_idc será igual a 1 para todas las imágenes en la unidad de acceso.
- Cuando la imagen con nuh_layer_id igual a 0 en una unidad de acceso no es una imagen IDR, el valor de poc_reset_idc no será igual a 1 para ninguna imagen en la unidad de acceso.
[0067] poc_reset_period_id identifica un período de restablecimiento de POC. No habrá dos imágenes consecutivas en orden de descodificación en la misma capa que tengan el mismo valor de poc_reset_period_id y poc_reset_idc igual a 1 o 2.
[0068] NOTA - No está prohibido que múltiples imágenes en una capa tengan el mismo valor de poc_reset_period_id y que tengan poc_reset_idc igual a 1 o 2 salvo que dichas imágenes se produzcan en dos unidades de acceso consecutivas en orden de descodificación. Para minimizar la probabilidad de que dos imágenes de este tipo aparezcan en el flujo de bits debido a pérdidas de imágenes, extracción de flujo de bits, búsqueda u operaciones de unión, los codificadores deben establecer el valor de poc_reset_period_id como un valor aleatorio para cada período de restablecimiento de POC (sujeto a las restricciones especificadas anteriormente).
[0069] En algunos ejemplos, lo siguiente puede insertarse adicionalmente después de la "NOTA" anterior: es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones:
- Cuando imágenes con poc_reset_idc igual a 1 y 3 están presentes en el mismo período de restablecimiento de POC, todas las imágenes con poc_reset_idc igual a 3 en ese período de restablecimiento de POC seguirán a la imagen con poc_reset_idc igual a 1 en orden de descodificación.
- Cuando imágenes con poc_reset_idc igual a 2 y 3 están presentes en el mismo período de restablecimiento de POC, todas las imágenes con poc_reset_idc igual a 3 en ese período de restablecimiento de POC seguirán a la imagen con poc_reset_idc igual a 2 en orden de descodificación.
[0070] full_poc_reset_flag igual a 1 especifica que tanto los bits más significativos como los bits menos significativos del valor de recuento de orden de imágenes para la imagen actual se restablecen cuando la imagen anterior en orden de descodificación en la misma capa no pertenece al mismo período de restablecimiento de POC. full_poc_reset_flag igual a 0 especifica que solo los bits más significativos del valor de recuento de orden de imágenes para la imagen actual se restablecen cuando la imagen anterior en orden de descodificación en la misma capa no pertenece al mismo período de restablecimiento de POC.
[0071] poc_lsb_val especifica un valor que puede usarse para obtener el recuento de orden de imágenes de la imagen actual. La longitud del elemento sintáctico poc_lsb_val es log2_max_pic_order_cnt-lsb_menos4 + 4 bits.
[0072] Es un requisito de conformidad del flujo de bits que, cuando poc_reset_idc es igual a 3, y la imagen anterior picA en orden de descodificación que está en la misma capa que la imagen actual, tiene poc_reset_idc igual a 1 o 2, y pertenece al mismo período de restablecimiento de POC, está presente en el flujo de bits, picA será la misma imagen que la imagen anterior en orden de descodificación que está en la misma capa que la imagen actual, que no es una imagen RASL, una imagen RADL o una imagen que no es de referencia de subcapa, y que tiene TemporalId igual a 0, y el valor de poc_lsb_val de la imagen actual será igual al valor de slice_pic_order_cnt_lsb de picA.
[0073] Las variables numRsvBits y BytesInSliceSegmtHdrExt se obtienen de la siguiente manera:
if( !poc_reset_info_presentJlag ) {
numRsvBits = 0
BytesInSliceSegmtHdrExt - 0
} else if(poc_reset_idc == 0) {
numRsvBits = 6
BytesInSliceSegmtHdrExt - l
}
else iff p o c rese tid c < 3 ) {
numRsvBits = 0
BytesInSliceSegmtHdrExt = I
}
else {
numRsvBits = 8 — ( log2_mox_pic_order_cnt_lsb_mimts4 5 ) % 8
bitsInSliceSegmtHdrExt = l Ceil( (
log2_max_pic_order_cnt_lsb_minus4 5 ) / 8) i
[0074] slice_segmen_header_extension_reserved_bits puede tener cualquier valor. La longitud del elemento sintáctico slice_segment_header_extension_reserved_bits es igual a numRsvBits bits. Los descodificadores ignorarán el valor de slice_segment_header_extension_reserved_bits. Su valor no afecta a la conformidad del descodificador con los perfiles especificados en esta versión de esta memoria descriptiva.
[0075] El descodificador de vídeo 30 puede realizar el siguiente proceso de descodificación para comenzar la descodificación de la primera imagen en una unidad de acceso:
El valor de PocResetFlag se establece a 0.
La variable DeltaPocVal se establece a 0.
La variable UpdateSubDpbFlag[i] se establece igual a 0 para todos los valores de i de 0 a 63, inclusive.
[0076] El descodificador de vídeo 30 puede realizar el siguiente proceso de descodificación para finalizar la descodificación de la última imagen en una unidad de acceso:
Si PocResetFlag es igual a 1, aplica lo siguiente:
- Para todos los valores de i de 0 a 63, inclusive, si UpdateSubDpbFlag[i] es igual a 0, el PicOrderCntVal de cada imagen que está en la DPB y tiene nuh_layer_id igual a i se decrementa en DeltaPocVal.
[0077] El codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar una indicación incluida en el PPS para controlar la presencia de información de restablecimiento de POC en los encabezados de segmento de fragmento para fragmentos de imágenes que corresponden al PPS. Por ejemplo, el PPS puede incluir un elemento sintáctico slice_segment_header_extension_present_flag. La información de restablecimiento de POC puede estar presente en fragmentos de imágenes correspondientes al PPS bajo la condición de que slice_segment_header_extension_present_flag sea igual a 1. En general, puede decirse que una imagen corresponde a un PPS cuando un fragmento de la imagen incluye un elemento sintáctico de identificador de PPS que tiene un valor igual a un valor para un identificador de PPS.
[0078] La siguiente tabla proporciona un ejemplo de sintaxis para el PPS. Este ejemplo representa una sintaxis modificada para que el PPS realice las técnicas de esta divulgación. La materia objeto añadida con respecto a MV-HEVC se muestra en cursiva en la tabla y en la semántica de los elementos sintácticos del PPS. En consecuencia, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente pueden codificar PPS según la siguiente sintaxis y semántica:
Figure imgf000015_0001
[0079] pps_extension_flag igual a 0 especifica que no hay ningún elemento sintáctico pps_extension_data_flag presente en la estructura sintáctica del PPS RBSP. Cuando slice_segment_header_extension_present_flag es igual a 0, pps_extension_flag será igual a 0 en flujos de bits que se ajusten a esta versión de esta memoria descriptiva, el valor de 1 para pps_extension_flag está reservado para uso futuro por ITU-T | ISO/IEC, y los descodificadores ignorarán todos los datos que siguen al valor 1 para pps_extension_flag en una unidad PPS NAL.
[0080] poc_reset_info_present_flag igual a 0 especifica que el elemento sintáctico poc_reset_idc no está presente en los encabezados de segmento de fragmento de los fragmentos que hacen referencia al PPS. poc_reset_info_present_flag igual a 1 especifica que el elemento sintáctico poc_reset_idc está presente en los encabezados de segmento de fragmento de los fragmentos que hacen referencia al PPS.
[0081 ] pps_extension2_flag igual a 0 especifica que no hay ningún elemento sintáctico pps_extension_data_flag presente en la estructura sintáctica de PPS RBSP. pps_extension2_flag será igual a 0 en flujos de bits que se ajusten a esta versión de esta memoria descriptiva. El valor de 1 para pps_extension2_flag está reservado para uso futuro por ITU-T | ISO/IEC. Los descodificadores ignorarán todos los datos que sigan al valor 1 para pps_extension2_flag en una unidad PPS NAL.
[0082] La siguiente definición de una función matemática se puede añadir a MV-HEVC, por ejemplo, a la subcláusula 5.8 de MV-HEVC:
Figure imgf000016_0001
[0083] El descodificador de vídeo 30 puede realizar el siguiente proceso de descodificación para valores de POC. Este proceso se puede describir en una versión modificada de MV-HEVC u otra ampliación de una norma de codificación de vídeo. Los cambios se muestran a continuación con respecto a MV-HEVC, donde el texto en cursiva representa adiciones y las eliminaciones se muestran con [eliminado: '"'].
[0084] La salida de este proceso es PicOrderCntVal, el recuento de orden de imágenes de la imagen actual. Los recuentos de orden de imágenes se usan para identificar imágenes, para obtener parámetros de movimiento en modo de combinación y predicción de vectores de movimiento, y para la verificación de conformidad del descodificador (véase la subcláusula C.5 de MV-HEVC). Cada imagen codificada está asociada con una variable de recuento de orden de imágenes, denotada como PicOrderCntVal.
[0085] [eliminado: "Si FirstPicInLayerDecodedFlag[nuh_layer_id] es igual a 0 o la imagen actual es una imagen IRAP con NoRaslOutputFlag igual a 1, la variable PicOrderCntMsb se establece igual a 0. [Ed. (MH): Cuando la primera imagen en una capa de mejora está en una unidad de acceso que sigue en orden de descodificación y precede en orden de salida a una unidad de acceso IRAP inicial con NoClrasOutputFlag igual a 1, PicOrderCntVal de la primera imagen en la capa de mejora difiere de PicOrderCntVal de la imagen de capa base de la misma unidad de acceso.] [Ed. (MH): Esta obtención de PicOrderCntMsb igual a 0 impone una restricción de que el inicio a nivel de capa hasta la capa más alta debe tener lugar dentro de un intervalo de POC de 0 a MaxPicOrder Lsb - 1, inclusive.] De lo contrario, PicOrderCntMsb se obtiene de la forma siguiente:
La variable prevPicOrderCntLsb se establece igual a PrevPicOrderCnt[nuh_layer_id] y (MaxPicOrderCntLsb - 1).
La variable prevPicOrderCntMsb se establece igual a PrevPicOrderCnt[nuh_layer_id] - prevPicOrderCntLsb.
PicOrderCntMsb se obtiene de la siguiente manera:
if{(3lice_pic_oxder_cnt_lsb< prevPicOrderCntLsb) sí,
((prevPlcOrderCiitLab - slice_pic_order_cnt_l3b) >= ( MaxPLcOrderCntLsb / 2)))
FicOrderCntMab = prevPicOrderCntMsb - MaxFicOrderCntLab (F-23)
el3e if ( (3li.ce_pic_ürder_cnt_l3b>prevPic0rderCntL3b) ss ((3lice_pic_:)rder_cnt_Isb - prevPicOrderCntLsb) > ( MaxPLcOrderCntLsb / 2)))
FicOrderCntMab = prevPicOrderCntMsb - MaxFicOrderCntLab el3e
FicOrderCntMab = prevPicOrderCntMsb
PicOrderCntVal se obtiene de la siguiente manera: PicOrderCntVal = PicOrderCntMsb slice_pic_order_cnt_lsb (F-24)
Cuando poc_reset_flag es igual a 1, se aplican las siguientes etapas en el orden indicado:
El PicOrderCntVal de cada imagen que está en la DPB y pertenece a la misma capa que la imagen actual se decrementa por PicOrderCntVal.
PrevPicOrderCnt[nuh_layer_id] se decrementa por PicOrderCntVal.
PicOrderCntVal se establece igual a 0.
Cuando la imagen actual no es una imagen RASL, una imagen RADL o una imagen que no es de referencia de subcapa, y la imagen actual tiene TemporalId igual a 0, PrevPicOrderCnt[nuh_layer_id] se establece igual a PicOrderCntVal"].
[0086] Si FirstPicInLayerDecodedFlag[nuh_layer_id] es igual a 1, poc_reset_idc es mayor que 0, y la imagen actual es la primera imagen en orden de descodificación en un período de restablecimiento de POC, aplica lo siguiente:(Alternativamente, este elemento se puede escribir como: Si FirstPicInLayerDecodedFlag[nuh_layer_id] es igual a 1 y poc_reset_idc es mayor que 0, o FirstPicInLayerDecodedFlag[nuh_layer_id] es igual a 1 y poc_reset_idc es igual a 3 y la imagen actual está incluida en la unidad de acceso de la primera imagen en orden de descodificación en un período de restablecimiento de POC y no hay ninguna imagen con poc_reset_idc igual a 1 o 2 en ese período de restablecimiento de POC, aplica lo siguiente:)
- Las variables pocMsbDelta y pocLsbDelta se obtienen de la forma siguiente:
prevPicOnferCntLsb = PrevPicOrderCnt[ n u h la y e r id ] & ( MaxPicOrderCntLsb — 1)
prevPicOrderCntMsb = PrevPicOrderCnt[ nuh layer id] -prevPicOrderCn tLsb
if( poc_reset_idc == 3)
pocLsbVal = poc_lsb_val
else
Figure imgf000017_0001
pocLsbDelta = O
- E l PicOrderCntVal de cada imagen que está en la DPB y pertenece a la misma capa que la imagen actual se decrementa por pocMsbDelta pocLsbDelta. En algunos ejemplos, las tres etapas siguientes pueden realizarse adicionalmente:
- PocResetFlag = 1
- DeltaPocVal = pocMsbDelta + pocLsbDelta
- UpdateSubDpbFlag[nuh_layer_id] = 1
- El PicOrderCntVal de la imagen actual se obtiene de la forma siguiente:
if( poc resetJdc == 1)
PicOrderCntVal = slice _pic_order_cnt_lsb
else if( poc resetJdc == 2)
PicOrderCntVal = 0
else { / / poc reset i d c --------3
PicOrderCntMsb = getCurrMsbfslice _pic_order_cnt_!sb, poc_lsb_va!, 0, MaxPicOrderCntLsb )
PicOrderCntVal = PicOrderCntMsb + slice _pic_order_cnt_lsb J
- El valor de PrevPicOrderCnt[nuh_layer_id] se obtiene de la forma siguiente:
- Si la imagen actual no es una imagen RASL, una imagen RADL, o una imagen que no es de referencia de subcapa, y la imagen actual tiene TemporalId igual a 0,
[0087] PrevPicOrderCnt[nuh_layer_id] se establece igual a PicOrderCntVal.
- De lo contrario, cuando poc_reset_idc es igual a 3, PrevPicOrderCnt[nuh_layer_id] se establece igual a full_poc_reset_flag? 0 : poc_lsb_val.
[0088] De lo contrario, se aplica lo siguiente:
- El PicOrderCntVal de la imagen actual se obtiene de la forma siguiente:
Figure imgf000018_0001
else if( poc_reset_idc = = 3 ) {
PicOrderCntMsb = getCurrMsb(s¡ice _pic_order_cnt_lsb,
poc_lsb_val, 0, MaxPicOrderCntLsb )
PicOrderCntVal = PicOrderCntMsb
Figure imgf000018_0002
else {
prevPicOrderCntLsb = PrevPicOrderCntf nuh_layer_id ]
& (MaxPicOrderCntLsb - 1)
Figure imgf000018_0003
}
PicOrderCntVal = PicOrderCntMsb + slice _pic_order_cnt_lsb
}
- El valor de PrevPicOrderCnt[nuh_layer_id] se obtiene de la forma siguiente:
- Si la imagen actual no es una imagen RASL, una imagen RADL o una imagen que no es de referencia de subcapa, y la imagen actual tiene TemporalId igual a 0, PrevPicOrderCnt[nuh_layer_id] se establece igual a PicOrderCntVal.
- De lo contrario, cuando FirstPicInLayerDecodedFlag[nuh_layer_id] es igual a 0 y poc_reset_idc es igual a 3, PrevPicOrderCnt[nuh_layer_id] se establece igual a full_poc_reset_flag ? 0 : poc_lsb_val.
[0089] Según MV-HEVC, el valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, inclusive. Del mismo modo, según MV-HEVC, en un CVS, los valores de PicOrderCntVal para dos imágenes codificadas cualesquiera en la misma capa no serán iguales.
[0090] La función PicOrderCnt(picX) se especifica de la siguiente manera:
Figure imgf000019_0001
[0091] La función DiffPicOrderCnt(picA, picB) se especifica de la siguiente manera:
DiffFicCrderCnt(picA, picE) = FicOrderOnt(picA) - PicOxderCnt(picE) (F-26)
[0092] De acuerdo con MV-HEVC, el flujo de bits no debe contener datos que den como resultado valores de DiffPicOrderCnt(picA, picB) usados en el proceso de descodificación que no estén en el intervalo de -215 a 215 - 1, inclusive.
[0093] NOTA - Sea X la imagen actual e Y y Z 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 DiffPicOrderCnt(X, Y) como DiffPicOrderCnt(X, Z) son positivos o ambos son negativos.
[0094] Según MV-HEVC, los siguientes mensajes SEI tienen un alcance de persistencia dependiente de POC:
• Mensaje SEI de punto de recuperación
• Mensaje SEI de inicio de segmento de refinamiento progresivo
[0095] En algunos ejemplos, el alcance del final de persistencia de dicho mensaje SEI puede restringirse adicionalmente a que sea anterior a la siguiente imagen, en orden de descodificación, que está en la misma capa que la imagen asociada con el mensaje SEI y que actualiza los valores de recuento de orden de imágenes de imágenes en la DPB. Alternativamente, se propone restringir aún más el alcance del final de persistencia de dicho mensaje SEI para que sea anterior a la siguiente imagen, en orden de descodificación, que está en la misma capa que la imagen asociada con el mensaje SEI, que tiene poc_msb_reset_flag igual a 1, y para el cual la imagen anterior en orden de descodificación en la misma capa tiene poc_msb_reset_flag igual a 0. En este caso, se puede añadir una restricción adicional de tal manera que, cuando poc_msb_reset_flag se establece en 1 para un conjunto de imágenes después de una imagen picA en la que realmente se necesita restablecer POC MSB, el conjunto de imágenes debe ser inmediatamente posterior a picA en orden de descodificación y debe ser contiguo en orden de descodificación.
[0096] Una CU hoja que tiene una o más PU también puede incluir una o más unidades de transformada (TU). Las unidades de transformada pueden especificarse usando un RQT (también denominado estructura de árbol cuádruple de TU), como se ha analizado anteriormente. Por ejemplo, un indicador de división puede indicar si una CU hoja está dividida en cuatro unidades de transformada. A continuación, cada unidad de transformada puede dividirse adicionalmente en más sub-TU. Cuando una TU no se divide adicionalmente, puede denominarse una TU hoja. En general, en lo que respecta a la intra-codificación, todas las TU hoja que pertenecen a una CU hoja comparten el mismo modo de intra-predicción. Es decir, el mismo modo de intra-predicción se aplica en general para calcular valores predichos para todas las TU de una CU hoja. En lo que respecta a la intra-codificación, un codificador de vídeo puede calcular un valor residual para cada TU hoja usando el modo de intra-predicción, como una diferencia entre la parte de la CU correspondiente a la TU y el bloque original. Una TU no está necesariamente limitada al tamaño de una PU. De este modo, las TU pueden ser mayores o menores que una PU. En lo que respecta a la intra-codificación, una PU puede estar co-localizada con una TU hoja correspondiente para la misma CU. En algunos ejemplos, el tamaño máximo de una TU hoja puede corresponder al tamaño de la CU hoja correspondiente.
[0097] Además, las TU de las CU hojas también pueden asociarse a respectivas estructuras de datos de árbol cuádruple, denominadas árboles cuádruples residuales (RQT). Es decir, una CU hoja puede incluir un árbol cuaternario que indica cómo la CU hoja está dividida en varias TU. El nodo raíz de un árbol cuádruple de TU corresponde en general a una CU hoja, mientras que el nodo raíz de un árbol cuádruple de CU corresponde en general a un bloque arbolado (o LCU). Las TU del RQT que no están divididas se denominan TU hojas. En general, esta divulgación usa los términos CU y TU para hacer referencia a una CU hoja y a una TU hoja, respectivamente, a no ser que se indique lo contrario.
[0098] Una secuencia de vídeo incluye típicamente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende, en general, una serie de una o más de las imágenes de vídeo. Un GOP puede incluir datos sintácticos en una cabecera del GOP, en una cabecera de una o más de las imágenes o en otras ubicaciones, que describen un cierto número de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintácticos de fragmento que describen un modo de codificación para el fragmento respectivo. Un codificador de vídeo 20 actúa típicamente sobre bloques de vídeo dentro de fragmentos de vídeo individuales con el fin de codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden presentar tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
[0099] En un ejemplo, el HM soporta la predicción en diversos tamaños de PU. Suponiendo que el tamaño de una CU particular es 2Nx2N, el HM admite intrapredicción en tamaños de PU de 2Nx2N o NxN e interpredicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM también admite la división asimétrica para la interpredicción en tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la división asimétrica, una dirección de una CU no está dividida, mientras que la otra dirección está dividida en el 25 % y el 75 %. La parte de la CU correspondiente a la división del 25 % está indicada por una “n” seguida de una indicación de “arriba”, “abajo”, “izquierda” o “derecha”. Así pues, por ejemplo, “2NxnU” se refiere a una CU de tamaño 2Nx2N que está dividida horizontalmente con una PU de tamaño 2Nx0,5N encima y una PU de tamaño 2Nx1,5N debajo.
[0100] En esta divulgación, "NxN" y "N por N" pueden usarse indistintamente para hacer referencia a las dimensiones de píxeles de un bloque de vídeo en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de tamaño 16x16 tendrá 16 píxeles en la dirección vertical (y = 16) y 16 píxeles en la dirección horizontal (x = 16). Asimismo, un bloque de tamaño NxN presenta, en general, N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles en un bloque pueden disponerse en filas y columnas. Además, no es necesario que los bloques presenten necesariamente el mismo número de píxeles en la dirección horizontal y en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0101] Tras la codificación de intra-predicción o inter-predicción mediante las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos sintácticos que describen un procedimiento o modo de generación de datos de píxeles predictivos en el dominio espacial (también denominado el dominio de píxeles) y las TU pueden comprender coeficientes en el dominio de transformada, tras la aplicación de una transformada, por ejemplo, una transformada de coseno discreta (DCT), una transformada entera, una transformada de ondículas o una transformada conceptualmente similar, a los datos de vídeo residuales. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y los valores de predicción correspondientes a las PU. El codificador de vídeo 20 puede formar las TU incluyendo los datos residuales para la CU y, a continuación, transformar las TU para generar coeficientes de transformada para la CU.
[0102] Tras cualquier transformada para generar coeficientes de transformada, el codificador de vídeo 20 puede realizar la cuantificación de los coeficientes de transformada. La cuantificación se refiere, en general, a un proceso en el que los coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o la totalidad de los coeficientes. Por ejemplo, un valor de n bits puede redondearse a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0103] Después de la cuantificación, el codificador de vídeo puede explorar los coeficientes de transformada, produciendo un vector unidimensional a partir de la matriz bidimensional que incluye los coeficientes de transformada cuantificados. La exploración puede estar diseñada para colocar los coeficientes de energía más alta (y por lo tanto de menor frecuencia) en la parte frontal de la matriz y para colocar los coeficientes de energía más baja (y por lo tanto de mayor frecuencia) en la parte posterior de la matriz. En algunos ejemplos, el codificador de vídeo 20 puede usar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados, para producir un vector en serie que se pueda codificar por entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar una exploración adaptativa. Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede realizar la codificación por entropía del vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptable al contexto (CAVLC), la codificación aritmética binaria adaptable al contexto (CABAC), la codificación aritmética binaria adaptable al contexto basada en la sintaxis (SBAC), la codificación por entropía por división de intervalos de probabilidad (PIPE) u otros procedimientos de codificación por entropía. El codificador de vídeo 20 también puede realizar la codificación por entropía de los elementos sintácticos asociados a los datos de vídeo codificados, para su uso por el descodificador de vídeo 30 en la descodificación de los datos de vídeo.
[0104] Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto dentro de un modelo contextual a un símbolo que se va a transmitir. El contexto puede referirse, por ejemplo, a si los valores contiguos del símbolo son distintos de cero o no. Para realizar la CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo que se va a transmitir. Las palabras de código en la VLC pueden construirse de tal manera que los códigos relativamente más cortos correspondan a símbolos más probables, mientras que los códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de la VLC puede lograr un ahorro en bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se va a transmitir. La determinación de la probabilidad puede basarse en un contexto asignado al símbolo.
[0105] Además, el codificador de vídeo 20 puede enviar datos sintácticos, tales como datos sintácticos basados en bloques, datos sintácticos basados en tramas y datos sintácticos basados en GOP, al descodificador de vídeo 30, por ejemplo, en un encabezado de trama, un encabezado de bloque, un encabezado de fragmento o un encabezado de GOP. Los datos sintácticos de GOP pueden describir un cierto número de tramas en el respectivo GOP, y los datos sintácticos de trama pueden indicar un modo de codificación/predicción utilizado para codificar la trama correspondiente.
[0106] Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse como cualquiera entre una amplia variedad de circuitos codificadores o descodificadores adecuados, según corresponda, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables por campo (FPGA), circuitos de lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, cada uno de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) de vídeo combinado. Un dispositivo que incluye el codificador de vídeo 20 y/o el descodificador de vídeo 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
[0107] De esta manera, el codificador de vídeo 20 y el descodificador de vídeo 30 respectivamente representan ejemplos de codificadores de vídeo configurados para codificar datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo.
[0108] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo 20 que puede implementar técnicas para codificar información del valor de POC según las técnicas de esta divulgación. El codificador de vídeo 20 puede realizar la intracodificación y la intercodificación de bloques de vídeo dentro de fragmentos de vídeo. La intra-codificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama o imagen de vídeo dada. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas o imágenes adyacentes de una secuencia de vídeo. El intra-modo (modo I) puede referirse a cualquiera de varios modos de codificación de base espacial. Los inter-modos, tales como la predicción unidireccional (modo P) o la bi-predicción (modo B), pueden referirse a cualquiera de varios modos de codificación de base temporal.
[0109] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo que se va a codificar. En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de selección de modo 40, una memoria de imágenes de referencia 64, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. A su vez, la unidad de selección de modo 40 incluye una unidad de compensación de movimiento 44, una unidad de estimación de movimiento 42, una unidad de intra-predicción 46 y una unidad de división 48. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye además la unidad de cuantificación inversa 58, la unidad de transformada inversa 60 y el sumador 62. También puede incluirse un filtro de eliminación de bloques (no mostrado en la FIG. 2) para filtrar límites de bloque a fin de eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de desbloqueo filtrará típicamente la salida del sumador 62. También pueden usarse filtros adicionales (en bucle o post-bucle), además del filtro de desbloqueo. Dichos filtros no se muestran por razones de brevedad pero, si se desea, pueden filtrar la salida del sumador 50 (tal como un filtro en bucle).
[0110] Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o un fragmento de vídeo que se va a codificar. La trama o el fragmento pueden estar divididos en múltiples bloques de vídeo. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 llevan a cabo la codificación interpredictiva del bloque de vídeo recibido con respecto a uno o más bloques en una o más tramas de referencia, para proporcionar la predicción temporal. La unidad de intra-predicción 46, de forma alternativa, puede llevar a cabo la codificación intra-predictiva del bloque de vídeo recibido, con respecto a uno o más bloques contiguos de la misma trama o fragmento que el bloque que va a codificarse, para proporcionar la predicción espacial. El codificador de vídeo 20 puede llevar a cabo múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación adecuado para cada bloque de datos de vídeo.
[0111] Además, la unidad de división 48 puede dividir bloques de datos de vídeo en sub-bloques, basándose en la evaluación de los anteriores esquemas de división en las pasadas de codificación anteriores. Por ejemplo, la unidad de división 48 puede dividir inicialmente una trama o un fragmento en varias LCU, y dividir cada una de las LCU en varias sub-CU, basándose en un análisis de distorsión de velocidad (por ejemplo, optimización de distorsión de velocidad). La unidad de selección de modo 40 puede producir además una estructura de datos de árbol cuádruple que indica la división de una LCU en varias sub-CU. Las CU de nodos de hojas del árbol cuaternario pueden incluir una o más PU y una o más TU.
[0112] La unidad de selección de modo 40 puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, basados en los resultados de errores, y proporciona el bloque intracodificado o intercodificado resultante al sumador 50 para generar datos de bloques residuales y al sumador 62 para reconstruir el bloque codificado para su uso como una trama de referencia. La unidad de selección de modo 40 proporciona además elementos sintácticos, tales como vectores de movimiento, indicadores de intra-modo, información de división y otra información sintáctica de este tipo, a la unidad de codificación por entropía 56.
[0113] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento de los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual, con respecto a un bloque predictivo dentro de una imagen de referencia (u otra unidad codificada), con respecto al bloque actual que se está codificando dentro del fragmento actual (u otra unidad codificada). Un bloque predictivo es un bloque que se revela como estrechamente coincidente con el bloque a codificar en lo que respecta a la diferencia de píxeles, lo cual puede determinarse mediante la suma de una diferencia absoluta (SAD), una suma de diferencia de cuadrados (SSD) u otras métricas de diferencia.
[0114] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un fragmento inter-codificado, comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o de una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
[0115] La compensación de movimiento, llevada a cabo por la unidad de compensación de movimiento 44, puede implicar capturar o generar el bloque predictivo basándose en el vector de movimiento determinado por la unidad de estimación de movimiento 42. De nuevo, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden integrarse funcionalmente, en algunos ejemplos. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se está codificando, generando valores de diferencia de píxel, como se analiza posteriormente. En general, la unidad de estimación de movimiento 42 lleva a cabo la estimación de movimiento con respecto a los componentes de luma, y la unidad de compensación de movimiento 44 utiliza los vectores de movimiento calculados basándose en los componentes de luma, tanto para los componentes de croma como para los componentes de luma. La unidad de selección de modo 40 también puede generar elementos sintácticos asociados con los bloques de vídeo y el fragmento de vídeo para su uso por el descodificador de vídeo 30 para descodificar los bloques de vídeo del fragmento de vídeo.
[0116] La unidad de estimación de movimiento 42 busca imágenes de referencia almacenadas en una memoria intermedia de imágenes descodificadas (DPB) de la memoria de imágenes de referencia 64. La unidad de selección de modo 40 puede determinar qué imágenes de referencia se van a usar para codificar una imagen, fragmento de imagen y/o una secuencia de imágenes. El codificador de vídeo 20 puede codificar valores de recuento de orden de imágenes (POC) para imágenes de referencia usadas para codificar la imagen, fragmento o secuencia. El codificador de vídeo 20 puede codificar los valores de POC indicativos de las imágenes de referencia que se van a incluir en la lista de imágenes de referencia en los encabezados de fragmento y/o conjuntos de parámetros, tales como conjuntos de parámetros de imagen (PPS) y/o conjuntos de parámetros de secuencia (SPS).
[0117] De esta manera, un descodificador de vídeo, tal como el descodificador de vídeo 30, puede reproducir la lista de imágenes de referencia incluyendo las imágenes de referencia indicadas en el encabezado de fragmento y/o conjunto(s) de parámetros. Además, después de codificar un bloque usando un vector de movimiento producido mediante la unidad de estimación de movimiento 42, el codificador de vídeo 20 puede codificar información de movimiento para el bloque, donde la información de movimiento puede incluir datos representativos del vector de movimiento, un identificador para la lista de imágenes de referencia y un índice de referencia que identifica una imagen de referencia en la lista de imágenes de referencia.
[0118] En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones fraccionarias de píxeles de imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de fracciones de píxel de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento en relación con las posiciones de píxeles completas y las posiciones de píxeles fraccionarias, y generar un vector de movimiento con una precisión de píxel fraccionaria.
[0119] De acuerdo con las técnicas de esta divulgación, el codificador de vídeo 20 también puede formar periodos de restablecimiento de POC y valores de codificación para identificadores de período de restablecimiento de POC para fragmentos de imágenes para asignar los fragmentos a períodos de restablecimiento de POC respectivos. El codificador de vídeo 20 puede asignar fragmentos a períodos de restablecimiento de POC individualmente dentro de cada capa de datos de vídeo. Además, el codificador de vídeo 20 puede determinar tipos de restablecimiento de POC para los fragmentos y codificar valores para indicaciones (por ejemplo, valores de dos bits) de los tipos de restablecimiento de POC para los fragmentos.
[0120] Como se ha analizado con respecto a la FIG. 1, el codificador 20 de vídeo puede configurarse según restricciones establecidas por una norma de codificación de vídeo aplicable. Por ejemplo, el codificador de vídeo 20 puede asegurar que la primera imagen en cada período de restablecimiento de POC tiene un tipo de restablecimiento de POC que indica que los valores de POC deben restablecerse de manera completa o parcial. Además, el codificador de vídeo 20 puede codificar información adicional indicativa de un valor de POC LSB en algunos ejemplos, que puede indicar un valor de POC LSB para una imagen de anclaje de POC del período de restablecimiento de POC.
[0121] El codificador de vídeo 20 también puede decrementar los valores de POC de las imágenes de referencia en la DPB de la memoria de imágenes de referencia 64 y en la misma capa que la imagen de anclaje de POC de fragmento, basándose en el restablecimiento de la imagen de anclaje de POC. Así pues, el codificador de vídeo 20 puede usar los valores de POC decrementados cuando codifica valores de POC en los encabezados de fragmento y/o conjuntos de parámetros para indicar imágenes de referencia a incluir en una lista de imágenes de referencia. La cantidad por la cual el codificador de vídeo 20 decrementa los valores de POC de las imágenes en la DPB puede ser la misma cantidad por la cual se decrementa la imagen de anclaje de POC. El restablecimiento de POC de la imagen de anclaje de POC puede limitarse a restablecer solo los POC MSB o restablecer el valor de POC completo de la imagen de anclaje de POC.
[0122] Antes de codificar la información de restablecimiento de POC para un fragmento, el codificador de vídeo 20 puede determinar si la información de restablecimiento de POC es necesaria para el fragmento. Por ejemplo, si una imagen que incluye el fragmento es una imagen I, el codificador de vídeo 20 puede determinar que la información de restablecimiento de POC no es necesaria. Si se determina que la información de restablecimiento de POC no es necesaria, el codificador de vídeo 20 puede evitar codificar la información de restablecimiento de POC. Además, el codificador de vídeo 20 puede codificar un PPS para la imagen que indica si la información de restablecimiento de POC está codificada en encabezados de segmento de fragmento de fragmentos incluidos en la imagen, basándose en la determinación.
[0123] La unidad de intra-predicción 46 puede realizar la intra-predicción de un bloque actual, como alternativa a la inter-predicción llevada a cabo por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de intra-predicción 46 puede determinar un modo de intra-predicción a utilizar para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 puede codificar un bloque actual usando varios modos de intra-predicción, por ejemplo, durante diferentes pasadas de codificación, y la unidad de intra-predicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intra-predicción adecuado a utilizar a partir de los modos probados.
[0124] Por ejemplo, la unidad de intra-predicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intra-predicción probadas, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidad-distorsión entre los modos probados. El análisis de distorsión de velocidad determina en general una magnitud de distorsión (o de errores) entre un bloque codificado y un bloque original, no codificado, que se codificó para generar el bloque codificado, así como una velocidad binaria (es decir, un número de bits) usada para generar el bloque codificado. La unidad de intra-predicción 46 puede calcular relaciones proporcionales a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intra-predicción presenta el mejor valor de velocidad-distorsión para el bloque.
[0125] Después de seleccionar un modo de intra-predicción para un bloque, la unidad de intra-predicción 46 puede proporcionar información, indicativa del modo de intra-predicción seleccionado para el bloque, a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información indicando el modo de intra-predicción seleccionado. El codificador de vídeo 20 puede incluir datos de configuración en el flujo de bits transmitido, que pueden incluir una pluralidad de tablas de índices de modos de intrapredicción y una pluralidad de tablas de índices de modos de intrapredicción modificadas (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para varios bloques e indicaciones del modo de intrapredicción más probable, una tabla de índices de modos de intrapredicción y una tabla de índices de modos de intrapredicción modificadas a utilizar para cada uno de los contextos.
[0126] El codificador de vídeo 20 forma un bloque de vídeo residual restando los datos de predicción de la unidad de selección de modo 40 del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de procesamiento de transformada 52 aplica una transformada, tal como una transformada discreta del coseno (DCT) o una transformada conceptualmente similar, al bloque residual, generando un bloque de vídeo que comprende valores residuales de coeficientes de transformada. La unidad de procesamiento de transformada 52 puede llevar a cabo otras transformaciones que son conceptualmente similares a la DCT. También podrían usarse transformadas de ondículas, transformadas de enteros, transformadas de subbandas u otros tipos de transformadas. En cualquier caso, la unidad de procesamiento de transformada 52 aplica la transformada al bloque residual, generando un bloque de coeficientes de transformada residuales. La transformada puede convertir la información residual desde un dominio de valores de píxel a un dominio de transformadas, tal como un dominio de frecuencia.
[0127] La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir adicionalmente la velocidad de transmisión de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o la totalidad de los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede realizar, a continuación, una exploración de la matriz que incluye los coeficientes de transformada cuantificados. De forma alternativa, la unidad de codificación por entropía 56 puede llevar a cabo la exploración.
[0128] Tras la cuantización, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformada cuantizados. Por ejemplo, la unidad de codificación por entropía 56 puede llevar a cabo la codificación de longitud variable adaptable al contexto (CAVLC), la codificación aritmética binaria adaptable al contexto (CABAC), la codificación aritmética binaria adaptable al contexto y basada en sintaxis (SBAC), la codificación por entropía mediante la división en intervalos de probabilidades (PIPE) u otra técnica de codificación por entropía. En el caso de la codificación por entropía basada en el contexto, el contexto puede basarse en bloques contiguos. Tras la codificación por entropía realizada por la unidad de codificación por entropía 56, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el descodificador de vídeo 30) o archivarse para su posterior transmisión o recuperación.
[0129] La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican la cuantificación inversa y la transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para su uso posterior como un bloque de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las tramas de la memoria de imágenes de referencia 64. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles fraccionarios para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento, generado por la unidad de compensación de movimiento 44, para generar un bloque de vídeo reconstruido para su almacenamiento en la memoria de imágenes de referencia 64. El bloque de vídeo reconstruido puede utilizarse por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para inter-codificar un bloque en una trama de vídeo siguiente.
[0130] De esta manera, el codificador de vídeo 20 de la FIG. 2 representa un ejemplo de un codificador de vídeo configurado para codificar datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo.
[0131] El codificador de vídeo 20 representa además un ejemplo de un codificador de vídeo configurado para construir una lista de imágenes de referencia que incluye una o más imágenes de referencia, codificar un bloque del fragmento usando una de las imágenes de referencia, codificar información de movimiento para el bloque, en el que la información de movimiento incluye un identificador de la lista de imágenes de referencia y un índice de referencia en la lista de imágenes de referencia correspondiente a la una de las imágenes de referencia, y codificar uno o más valores de POC representativos de las imágenes de referencia incluidas en la lista de imágenes de referencia.
[0132] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un descodificador de vídeo 30 que puede implementar técnicas para codificar información del valor de POC según las técnicas de esta divulgación. En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una unidad de descodificación por entropía 70, unidad de compensación de movimiento 72, unidad de intra-predicción 74, unidad de cuantificación inversa 76, unidad de transformada inversa 78, memoria de imágenes de referencia 82 y sumador 80. En algunos ejemplos, el descodificador de vídeo 30 puede llevar a cabo una pasada de descodificación en general recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 (FIG. 2). La unidad de compensación de movimiento 72 puede generar datos de predicción basándose en vectores de movimiento recibidos desde la unidad de descodificación por entropía 70, mientras que la unidad de intra-predicción 74 puede generar datos de predicción basándose en indicadores de modo de intra-predicción recibidos de la unidad de descodificación por entropía 70.
[0133] Durante el proceso de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un fragmento de vídeo codificado y elementos sintácticos asociados, desde el codificador de vídeo 20. La unidad de descodificación por entropía 70 del descodificador de vídeo 30 descodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intra-predicción y otros elementos sintácticos. La unidad de descodificación por entropía 70 envía los vectores de movimiento y otros elementos sintácticos a la unidad de compensación de movimiento 72. El descodificador de vídeo 30 puede recibir los elementos sintácticos en el nivel del fragmento de vídeo y/o el nivel del bloque de vídeo.
[0134] Cuando el fragmento de vídeo se codifica como un fragmento intra-codificado (I), la unidad de intra-predicción 74 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual basándose en un modo de intra-predicción señalizado y datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un fragmento inter-codificado (es decir, B, P o GPB), la unidad de compensación de movimiento 72 genera bloques predictivos para un bloque de vídeo del fragmento de vídeo actual basándose en los vectores de movimiento y en otros elementos sintácticos recibidos de la unidad de descodificación por entropía 70. Los bloques predictivos pueden generarse a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador de vídeo 30 puede construir las listas de tramas de referencia, la Lista 0 y la Lista 1, usando técnicas de construcción por defecto basándose en las imágenes de referencia almacenadas en una memoria intermedia de imágenes descodificadas (DPB) de la memoria de imágenes de referencia 82.
[0135] Más concretamente, el descodificador de vídeo 30 puede descodificar un conjunto de parámetros de imagen (PPS) que contiene una indicación que indica si los fragmentos de una imagen correspondiente al PPS incluyen información de restablecimiento del recuento de orden de imágenes (POC). Suponiendo que los fragmentos incluyen la información de restablecimiento de POC, el descodificador de vídeo 30 puede descodificar un encabezado de segmento de fragmento de un fragmento de la imagen que incluye la información de restablecimiento de POC. La información de restablecimiento de POC puede incluir un identificador de período de restablecimiento de POC y un tipo de restablecimiento de POC.
[0136] El identificador de período de restablecimiento de POC puede indicar un período de restablecimiento de POC al que corresponde el fragmento. El descodificador de vídeo 30 puede restablecer los valores de POC de las imágenes en una capa de codificación de vídeo correspondiente una vez por período de restablecimiento de POC. De esta manera, si todas las imágenes del período de restablecimiento de POC se reciben correctamente o algunas imágenes del período de restablecimiento de POC se pierden (por ejemplo, debido a corrupción de datos o pérdida de datos), el descodificador de vídeo 30 restablecerá los valores de POC correctamente.
[0137] El tipo de restablecimiento de POC puede indicar si el valor de POC de una imagen que incluye el fragmento se restablece completamente o si solo se restablecen los MSB del valor de POC. Además, el tipo de restablecimiento de POC puede indicar que no se debe realizar un restablecimiento de POC o que se señaliza información adicional. Si el tipo de restablecimiento de POC indica que se señaliza información adicional, el descodificador de vídeo 30 puede descodificar la información adicional, que puede indicar un valor de POC LSB y si el valor de POC se restablece completamente o solo se restablecen los MSB. De esta manera, el descodificador de vídeo 30 puede realizar un restablecimiento de POC basándose en un tipo de restablecimiento de POC. El descodificador de vídeo 30 puede decrementar los valores de POC para imágenes almacenadas en la DPB y en la misma capa mediante el valor de POC LSB de la información adicional.
[0138] Después de realizar el restablecimiento de POC, el descodificador de vídeo 30 puede descodificar valores de POC de imágenes de referencia a incluir en una lista de imágenes de referencia. El descodificador 30 de vídeo puede descodificar estos valores de POC en los encabezados de segmento de fragmento y/o a partir de conjuntos de parámetros, tales como un PPS o un SPS. El descodificador 30 de vídeo puede entonces construir una lista de imágenes de referencia que incluye las imágenes de referencia identificadas por los valores de POC descodificados.
[0139] Después de construir la lista de imágenes de referencia para un fragmento, el descodificador de vídeo 30 puede descodificar bloques del fragmento. La unidad de compensación de movimiento 72 determina la información de predicción para un bloque de vídeo del fragmento de vídeo actual analizando los vectores de movimiento y otros elementos sintácticos, y usa la información de predicción para generar los bloques predictivos del bloque de vídeo actual que se está descodificando. Por ejemplo, la unidad de compensación de movimiento 72 usa algunos de los elementos sintácticos recibidos para determinar un modo de predicción (por ejemplo, intra-predicción o inter­ predicción), usada para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de inter-predicción (por ejemplo, fragmento B, fragmento P o fragmento GPB), vectores de movimiento para cada bloque de vídeo inter­ codificado del fragmento, el estado de inter-predicción para cada bloque de vídeo inter-codificado del fragmento y otra información, para descodificar los bloques de vídeo en el fragmento de vídeo actual. La información de movimiento para un bloque inter-predicho puede incluir un identificador de lista de imágenes de referencia y un índice de referencia para identificar una imagen de referencia en la lista de imágenes de referencia a usar para predecir el bloque.
[0140] La unidad de compensación de movimiento 72 también puede realizar la interpolación basándose en filtros de interpolación. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles fraccionarios de bloques de referencia. En este caso, la unidad de compensación de movimiento 72 puede determinar los filtros de interpolación utilizados por el codificador de vídeo 20 a partir de los elementos sintácticos recibidos y utilizar los filtros de interpolación para generar bloques predictivos.
[0141] La unidad de cuantificación inversa 76 cuantifica de manera inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 70. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPy, calculado por el descodificador de vídeo 30 de cada bloque de vídeo en el fragmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que debería aplicarse.
[0142] La unidad de transformada inversa 78 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada inversa entera o un proceso de transformada inversa conceptualmente similar a los coeficientes de transformada, a fin de producir bloques residuales en el dominio de píxeles.
[0143] Después de que la unidad de compensación de movimiento 72 genera el bloque predictivo para el bloque de vídeo actual basándose en los vectores de movimiento y otros elementos sintácticos, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad de transformada inversa 78 y los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 72. El sumador 80 representa el componente o los componentes que llevan a cabo esta operación de suma. Si se desea, también puede aplicarse un filtro de desbloqueo para filtrar los bloques descodificados con el fin de eliminar distorsiones de efecto pixelado. También pueden utilizarse otros filtros de bucle (ya sea en el bucle de codificación o después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo descodificados en una trama o imagen dada son a continuación almacenados en la memoria de imágenes de referencia 82, que almacena imágenes de referencia usadas para la posterior compensación de movimiento. La memoria de imágenes de referencia 82 almacena también vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1.
[0144] De esta manera, el descodificador de vídeo 30 de la FIG. 3 representa un ejemplo de un descodificador de vídeo configurado para descodificar datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo.
[0145] El descodificador de vídeo 30 representa además un ejemplo de un descodificador de vídeo configurado para descodificar uno o más valores de POC representativos de imágenes de referencia a incluir en una lista de imágenes de referencia, construir la lista de imágenes de referencia basándose al menos en parte en el uno o más valores de POC descodificados, descodificar información de movimiento para un bloque del fragmento, en el que la información de movimiento incluye un identificador de la lista de imágenes de referencia y un índice de referencia en la lista de imágenes de referencia, y descodificar el bloque usando una de las imágenes de referencia correspondientes al índice de referencia en el lista de imágenes de referencia.
[0146] La FIG. 4 es un diagrama de flujo que ilustra un procedimiento de ejemplo para codificar datos que indican un período de restablecimiento de POC para un fragmento según las técnicas de esta divulgación. Además, el procedimiento de la FIG. 4 incluye codificar un bloque actual. El bloque actual puede comprender una CU actual o una parte de la CU actual. Aunque se ha descrito con respecto al codificador de vídeo 20 (FIG. 1 y 2), debe entenderse que pueden configurarse otros dispositivos para realizar un procedimiento similar al de la FIG. 4.
[0147] En este ejemplo, el codificador de vídeo 20 restablece inicialmente los valores de POC de las imágenes de referencia que están en la misma capa que un fragmento actual que incluye el bloque actual y que están actualmente en una memoria intermedia de imágenes descodificadas (DPB) (150). El codificador de vídeo 20 forma entonces una lista de imágenes de referencia que incluye al menos algunas de las imágenes de referencia (152). El codificador de vídeo 20 señaliza además valores de POC de las imágenes de referencia incluidas en la lista de imágenes de referencia (154). Por ejemplo, el codificador de vídeo 20 puede codificar valores de POC (o partes de los valores de POC, por ejemplo, valores de POC LSB) para las imágenes de referencia en un conjunto de parámetros tal como un SPS o PPS, y/o en un encabezado de fragmento para el fragmento. Algunas imágenes de referencia (por ejemplo, imágenes de referencia a largo plazo) se pueden señalizar en el conjunto de parámetros, mientras que otras imágenes de referencia (por ejemplo, imágenes de referencia a corto plazo) se pueden señalizar en el encabezado de fragmento.
[0148] Se debe entender que las etapas de formar la lista de imágenes de referencia y señalizar qué imágenes están incluidas en la lista de imágenes de referencia se pueden realizar varias veces a lo largo de varias pasadas de codificación diferentes, con el fin de determinar el conjunto de imágenes de referencia que produce las mejores características de velocidad-distorsión para, por ejemplo, bloques del fragmento actual. Es decir, el codificador de vídeo 20 puede seleccionar el conjunto de imágenes de referencia incluidas en la lista de imágenes de referencia basándose en las características de todos los bloques en el fragmento actual, y no solo basándose en las características individuales de un único bloque.
[0149] El codificador de vídeo 20 puede entonces asignar el fragmento actual a un período de restablecimiento de POC (156). Por ejemplo, si el fragmento actual forma parte de una imagen de anclaje, el codificador de vídeo 20 puede señalizar que el fragmento actual forma el comienzo de un nuevo período de restablecimiento de POC con un identificador de período de restablecimiento de POC que es diferente de identificadores de período de restablecimiento de POC anteriores. Alternativamente, si el fragmento actual no forma parte de una imagen de anclaje, el codificador de vídeo 20 puede señalizar que el fragmento actual forma parte de un período de restablecimiento de POC existente.
[0150] El codificador 20 de vídeo puede entonces predecir el bloque actual del fragmento actual (158). Por ejemplo, el codificador de vídeo 20 puede calcular una o más unidades de predicción (PU) para el bloque actual. Más particularmente, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento para el bloque actual entre las imágenes de referencia de la lista de imágenes de referencia para identificar un bloque coincidente usado como bloque de referencia, por ejemplo, basándose en SAD, SSD, MAD, MSD u otras métricas de cálculo de error. La unidad de estimación de movimiento 42 puede producir un vector de movimiento para el bloque actual basándose en la búsqueda de movimiento. El codificador de vídeo 20 puede entonces codificar información de movimiento para el bloque (160), que puede incluir valores de diferencia de vectores de movimiento para el vector de movimiento, un identificador de lista de imágenes de referencia, y un índice de referencia, que en conjunto identifican el bloque de referencia.
[0151] Posteriormente, el codificador de vídeo 20 puede calcular un bloque residual para el bloque actual, por ejemplo, para producir una unidad de transformada (TU) (162). Para calcular el bloque residual, el codificador de vídeo 20 puede calcular una diferencia entre el bloque no codificado original y el bloque predicho para el bloque actual. Posteriormente, el codificador de vídeo 20 puede transformar y cuantificar los coeficientes del bloque residual (164). A continuación, el codificador de vídeo 20 puede explorar los coeficientes de transformada cuantificados del bloque residual (166). Durante la exploración, o tras la exploración, el codificador de vídeo 20 puede codificar por entropía los coeficientes (168). Por ejemplo, el codificador de vídeo 20 puede codificar los coeficientes usando CAVLC o CABAC. Posteriormente, el codificador de vídeo 20 puede emitir los datos codificados por entropía del bloque (170).
[0152] De esta manera, el procedimiento de la FIG. 4 representa un ejemplo de un procedimiento que incluye codificar, mediante un codificador de vídeo, datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos están asociados con una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer, mediante el codificador de vídeo, al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo. El procedimiento incluye además construir una lista de imágenes de referencia que incluye una o más imágenes de referencia, codificar un bloque del fragmento usando una de las imágenes de referencia, codificar información de movimiento para el bloque, en el que la información de movimiento incluye un identificador de la lista de imágenes de referencia y un índice de referencia en la lista de imágenes de referencia correspondiente a la una de las imágenes de referencia, y codificar uno o más valores de POC representativos de las imágenes de referencia incluidas en la lista de imágenes de referencia, en este ejemplo.
[0153] La FIG. 5 es un diagrama de flujo que ilustra un procedimiento de ejemplo para descodificar datos que indican un período de restablecimiento de POC para un fragmento según las técnicas de esta divulgación. Además, el procedimiento de la FIG. 4 incluye codificar un bloque actual. El bloque actual puede comprender una CU actual o una parte de la CU actual. Aunque se ha descrito con respecto al descodificador de vídeo 30 (FIG. 1 y 3), debe entenderse que pueden configurarse otros dispositivos para realizar un procedimiento similar al de la FIG. 5.
[0154] Inicialmente, el descodificador de vídeo 30 descodifica un identificador de período de restablecimiento de POC para un fragmento actual (200), por ejemplo, a partir un encabezado de segmento de fragmento del fragmento actual. El descodificador de vídeo 30 puede descodificar además un indicador de tipo de restablecimiento de POC. El procedimiento de la FIG. 5 se basa en la suposición de que el identificador de período de restablecimiento de POC indica que el fragmento actual es parte de un nuevo período de restablecimiento de POC. Basándose en que el fragmento es parte de un nuevo período de restablecimiento de POC, el descodificador de vídeo 30 restablece los valores de POC de imágenes de referencia en la DPB (202) que también forman parte de la misma capa que el fragmento actual. El descodificador de vídeo 30 descodifica entonces los valores de POC de imágenes de referencia a incluir en una lista de imágenes de referencia (204), por ejemplo, a partir del encabezado de segmento de fragmento y/o un conjunto de parámetros tal como un PPS o SPS. El descodificador de vídeo 30 forma entonces la lista de imágenes de referencia (206).
[0155] A continuación, el descodificador de vídeo 30 descodifica información de movimiento para un bloque actual (208). La información de movimiento puede incluir, por ejemplo, un identificador de lista de imágenes de referencia y un índice de referencia en la lista de imágenes de referencia. El descodificador de vídeo 30 entonces predice el bloque actual (200), por ejemplo, usando el modo de inter-predicción para calcular un bloque predicho para el bloque actual. Más concretamente, el descodificador de vídeo 30 usa el identificador de lista de imágenes de referencia para identificar qué lista de imágenes de referencia debe usar, y el índice de referencia para identificar un índice de referencia en la lista de imágenes de referencia. El descodificador de vídeo 30 entonces descodifica un vector de movimiento para el bloque actual e identifica un bloque de referencia en la imagen de referencia identificada.
[0156] El descodificador de vídeo 30 también puede recibir datos codificados por entropía para el bloque actual, tales como datos codificados por entropía para coeficientes de un bloque residual correspondiente al bloque actual (212). El descodificador de vídeo 30 puede descodificar por entropía los datos codificados por entropía para reproducir los coeficientes del bloque residual (214). Posteriormente, el descodificador de vídeo 30 puede explorar de forma inversa los coeficientes reproducidos (216), para crear un bloque de coeficientes de transformada cuantificados. Es decir, usando la exploración inversa, el descodificador 30 de vídeo convierte un vector unidimensional en una matriz bidimensional. Posteriormente, el descodificador de vídeo 30 puede cuantificar de manera inversa y transformar de manera inversa los coeficientes para producir un bloque residual (218). El descodificador de vídeo 30 puede finalmente descodificar el bloque actual combinando el bloque predicho y el bloque residual (220).
[0157] De esta manera, el procedimiento de la FIG. 5 representa un ejemplo de un procedimiento que incluye descodificar, mediante un descodificador de vídeo, datos representativos de un valor para un identificador de período de restablecimiento de recuento de orden de imágenes (POC), en el que los datos son una imagen codificada de una capa de datos de vídeo, y en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y restablecer, mediante el descodificador de vídeo, al menos parte de un valor de POC para la imagen codificada y valores de POC para una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) del descodificador de vídeo. El procedimiento en este ejemplo incluye además descodificar uno o más valores de POC representativos de imágenes de referencia a incluir en una lista de imágenes de referencia, construir la lista de imágenes de referencia basándose al menos en parte en el uno o más valores de POC descodificados, descodificar información de movimiento para un bloque del fragmento, en el que la información de movimiento incluye un identificador de la lista de imágenes de referencia y un índice de referencia en la lista de imágenes de referencia, y descodificar el bloque usando una de las imágenes de referencia correspondientes al índice de referencia en el lista de imágenes de referencia.
[0158] Debe reconocerse que, según el ejemplo, ciertos actos o sucesos de cualquiera de las técnicas descritas en el presente documento pueden realizarse en una secuencia distinta, pueden añadirse, fundirse u omitirse por completo (por ejemplo, no todos los actos o sucesos descritos son necesarios para la puesta en práctica de las técnicas). Además, en ciertos ejemplos, los actos o sucesos pueden realizarse simultáneamente, por ejemplo, mediante el procesamiento de múltiples hilos, el procesamiento de interrupciones o múltiples procesadores, en lugar de secuencialmente.
[0159] En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de estos. Si se implementan en software, las funciones, como una o más instrucciones o código, pueden almacenarse en, y transmitirse por, un medio legible por ordenador, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos o unos medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0160] A modo de ejemplo, y no de manera limitativa, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda usarse para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe debidamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El término disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente emiten datos magnéticamente, mientras que otros discos emiten datos ópticamente con láseres. Las combinaciones de los anteriores también deben incluirse dentro del alcance de los medios legibles por ordenador.
[0161] Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables por campo (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. Por consiguiente, el término «procesador», como se utiliza en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de módulos de hardware y/o software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Asimismo, las técnicas podrían implementarse por completo en uno o más circuitos o elementos lógicos.
[0162] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuados.
[0163] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (1)

  1. REIVINDICACIONES
    Un procedimiento de descodificación de datos de vídeo, el procedimiento que comprende:
    descodificar (200), mediante un descodificador de vídeo de un encabezado de segmento de fragmento de un fragmento de una imagen codificada, datos representativos de un valor para un identificador de período de restablecimiento del recuento de orden de imágenes (POC), en el que un identificador de período de restablecimiento de POC identifica un período de restablecimiento de POC, y un período de restablecimiento de POC comprende una secuencia de imágenes, teniendo cada una el mismo valor del identificador de período de restablecimiento de POC, en el que los datos están asociados con la imagen codificada de una capa de los datos de vídeo, en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, en el que la imagen codificada comprende una imagen de anclaje de POC del período de restablecimiento de POC, y en el que la imagen de anclaje de POC corresponde a una primera imagen del período de restablecimiento de POC; y
    basándose, al menos en parte, en el identificador de período de restablecimiento de POC, restablecer (202), mediante el descodificador de vídeo, al menos parte de un valor de POC para la imagen codificada en el que el restablecimiento comprende:
    restablecer todos los bits del valor de POC para la imagen de anclaje de POC cuando una indicación de un tipo de restablecimiento de POC para la imagen de anclaje de POC indica que el valor de POC para la imagen de anclaje de POC debe restablecerse completamente; o
    restablecer los bits más significativos (MSB) del valor de POC cuando la indicación del tipo de restablecimiento de POC para la imagen de anclaje de POC indica que deben restablecerse los MSB del valor de POC para la imagen de anclaje de POC.
    Un procedimiento de codificación de datos de vídeo, el procedimiento que comprende:
    codificar, mediante un codificador de vídeo en un encabezado de segmento de fragmento de un fragmento de una imagen codificada, datos representativos de un valor para un identificador de período de restablecimiento del recuento de orden de imágenes (POC), en el que un identificador de período de restablecimiento de POC identifica un período de restablecimiento de POC, y un período de restablecimiento de POC comprende una secuencia de imágenes, teniendo cada una el mismo valor de identificador de período de restablecimiento de POC, en el que los datos están asociados con la imagen codificada de una capa de los datos de vídeo, en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y en el que la imagen codificada comprende una imagen de anclaje de POC del período de restablecimiento de POC, y en el que la imagen de anclaje de POC corresponde a una primera imagen del período de restablecimiento de POC; y
    basándose al menos en parte en el identificador de período de restablecimiento de POC, restablecer (150), mediante el codificador de vídeo, al menos parte de un valor de POC para la imagen codificada, en el que el restablecimiento comprende:
    restablecer todos los bits del valor de POC para la imagen de anclaje de POC cuando una indicación de un tipo de restablecimiento de POC para la imagen de anclaje de POC indica que el valor de POC para la imagen de anclaje de POC debe restablecerse completamente; o
    restablecer los bits más significativos (MSB) del valor de POC cuando la indicación del tipo de restablecimiento de POC para la imagen de anclaje de POC indica que deben restablecerse los MSB del valor de POC para la imagen de anclaje de POC.
    El procedimiento, según la reivindicación 1, en el que restablecer la al menos parte de los valores de POC para la una o más imágenes en la capa que actualmente están almacenadas en una memoria intermedia de imágenes descodificadas (DPB) comprende:
    descodificar datos representativos de un valor de bits menos significativos (LSB) de POC, en el que los datos están incluidos en la imagen codificada; y
    decrementar los valores de POC para la una o más imágenes en la capa que actualmente están almacenadas en la DPB por el valor de POC LSB.
    El procedimiento, según la reivindicación 3, en el que el valor de POC LSB es igual a un valor de POC LSB de una imagen de anclaje de POC del período de restablecimiento de POC que incluye la imagen codificada.
    El procedimiento, según la reivindicación 2, en el que restablecer la al menos parte de los valores de POC para la una o más imágenes en la capa que actualmente están almacenadas en la DPB comprende:
    determinar un valor de bits menos significativos (LSB) de POC para una imagen de anclaje de POC del período de restablecimiento de POC; y
    decrementar los valores de POC para la una o más imágenes en la capa que actualmente están almacenadas en la DPB por el valor de POC LSB,
    el procedimiento comprende además codificar datos representativos del valor de POC LSB, en el que los datos están incluidos en la imagen codificada.
    Un dispositivo para descodificar datos de vídeo, el dispositivo que comprende:
    una memoria que comprende una memoria intermedia de imágenes descodificadas (DPB) configurada para almacenar datos de vídeo; y
    un descodificador de vídeo configurado para descodificar, a partir de un encabezado de segmento de fragmento de un fragmento de una imagen codificada, datos representativos de un valor para un identificador de período de restablecimiento del recuento de orden de imágenes (POC), en el que un identificador de período de restablecimiento de POC identifica un período de restablecimiento de POC, y un período de restablecimiento de POC comprende una secuencia de imágenes, teniendo cada una el mismo valor de identificador de período de restablecimiento de POC, en el que los datos están asociados con la imagen codificada de una capa de los datos de vídeo, en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, en el que la imagen codificada comprende una imagen de anclaje de POC del período de restablecimiento de POC, y en el que la imagen de anclaje de POC corresponde a una primera imagen del período de restablecimiento de POC;
    estando configurado además el descodificador de vídeo además para restablecer al menos parte de un valor de POC para la imagen codificada, en el que el restablecimiento comprende:
    restablecer todos los bits del valor de POC para la imagen de anclaje de POC cuando una indicación de un tipo de restablecimiento de POC para la imagen de anclaje de POC indica que el valor de POC para la imagen de anclaje de POC debe restablecerse completamente; o
    restablecer los bits más significativos (MSB) del valor de POC cuando la indicación del tipo de restablecimiento de POC para la imagen de anclaje de POC indica que deben restablecerse los MSB del valor de POC para la imagen de anclaje de POC.
    Un dispositivo para codificar datos de vídeo, el dispositivo que comprende:
    una memoria que comprende una memoria intermedia de imágenes descodificadas (DPB) configurada para almacenar datos de vídeo; y
    un codificador de vídeo configurado para codificar, en un encabezado de segmento de fragmento de un fragmento de una imagen codificada, datos representativos de un valor para un identificador de período de restablecimiento del recuento de orden de imágenes (POC), en el que un identificador de período de restablecimiento de POC identifica un período de restablecimiento de POC, y un período de restablecimiento de POC comprende una secuencia de imágenes, teniendo cada una el mismo valor de identificador de período de restablecimiento de POC, en el que los datos están asociados con la imagen codificada de una capa de los datos de vídeo, en el que el valor del identificador de período de restablecimiento de POC indica un período de restablecimiento de POC que incluye la imagen codificada, y en el que la imagen codificada comprende una imagen de anclaje de POC del período de restablecimiento de POC, y en el que la imagen de anclaje de POC corresponde a una primera imagen del período de restablecimiento de POC;
    estando configurado además el codificador de vídeo para restablecer al menos parte de un valor de POC para la imagen codificada, en el que el restablecimiento comprende:
    restablecer todos los bits del valor de POC para la imagen de anclaje de POC cuando una indicación de un tipo de restablecimiento de POC para la imagen de anclaje de POC indica que el valor de POC para la imagen de anclaje de POC debe restablecerse completamente; o
    restablecer los bits más significativos (MSB) del valor de POC cuando la indicación del tipo de restablecimiento de POC para la imagen de anclaje de POC indica que deben restablecerse los MSB del valor de POC para la imagen de anclaje de POC.
    8. El dispositivo, según la reivindicación 6 o la reivindicación 7, en el que los datos representativos del valor para el identificador de período de restablecimiento de POC están incluidos en un encabezado de segmento de fragmento para un fragmento de la imagen codificada.
    9. El dispositivo, según la reivindicación 6, en el que el descodificador de vídeo está configurado para descodificar datos representativos de un valor de bits menos significativos (LSB) de POC, en el que los datos están incluidos en la imagen codificada, y decrementar valores de POC para la una o más imágenes en la capa que actualmente están almacenadas en la DPB por el valor de POC LSB, en el que el valor de POC LSB es preferentemente igual a un valor de POC LSB de una imagen de anclaje de POC del período de restablecimiento de POC que incluye la imagen codificada.
    10. El dispositivo, según la reivindicación 6, en el que el descodificador de vídeo está configurado además para descodificar datos representativos de un valor de dos bits para una indicación de un tipo de restablecimiento de POC a realizar para la imagen codificada, que indica que el tipo de restablecimiento de POC es no restablecer POC, restablecer solo los valores de MSB del valor de POC, restablecer tanto los valores de MSB como de LSB del valor de POC, o que se señaliza información adicional para indicar un tipo de restablecimiento, en el que los datos están incluidos en la imagen codificada; o
    el dispositivo, según la reivindicación 7, en el que el codificador de vídeo está configurado además para codificar datos representativos de un valor de dos bits para una indicación de un tipo de restablecimiento de POC a realizar para la imagen codificada, que indica que el tipo de restablecimiento de POC es no restablecer POC, restablecer solo los valores de MSB del valor de POC, restablecer tanto los valores MSB como de LSB del valor de POC, o que se señaliza información adicional para indicar un tipo de restablecimiento, en el que los datos están incluidos en la imagen codificada.
    11. Dispositivo, según la reivindicación 10, en el que el descodificador de vídeo o el codificador de vídeo está configurado además para
    determinar que el valor de POC para la imagen codificada no debe restablecerse cuando el valor para la indicación es cero; determinar que solo los bits más significativos (MSB) del valor de POC para la imagen codificada deben restablecerse cuando el valor de la indicación es uno;
    determinar que tanto los MSB como los bits menos significativos (LSB) del valor de POC para la imagen codificada deben restablecerse cuando el valor de la indicación es dos; y
    determinar que se señaliza información de restablecimiento de POC adicional para la imagen codificada cuando el valor para la indicación es tres;
    en el que el codificador de vídeo está configurado preferentemente además para, cuando el valor para la indicación es tres, codificar la información de restablecimiento de POC adicional, en el que la información de restablecimiento de POC adicional indica si los POC MSB del valor de POC para la imagen codificada se deben restablecer o si los POC MSB y los POC LSB del valor de POC para la imagen codificada se deben restablecer, y en el que la información de restablecimiento de POC adicional indica un valor de POC LSB de anclaje.
    12. El dispositivo, según la reivindicación 6, en el que el descodificador de vídeo está configurado para descodificar datos representativos de un valor para una indicación de un tipo de restablecimiento de POC a realizar para la imagen codificada, en el que el valor para la indicación indica que se señaliza información de restablecimiento de POC adicional para la imagen codificada, en el que los datos están incluidos en la imagen codificada, descodificar la información de restablecimiento de POC adicional, en el que la información de restablecimiento de POC adicional indica un valor de bits menos significativos (LSB) de POC de anclaje, y, en respuesta a determinar que una imagen de anclaje de POC para el período de restablecimiento de POC que incluye la imagen codificada se perdió, usar un valor de POC igual al valor de POC LSB de anclaje al calcular los valores de POC para imágenes posteriores a la imagen de anclaje de POC en orden de descodificación; o
    el dispositivo, según la reivindicación 7, en el que el codificador de vídeo está configurado para construir una lista de imágenes de referencia que incluye una o más imágenes de referencia, codificar un bloque de la imagen codificada usando una de las imágenes de referencia, codificar información de movimiento para el bloque, en el que la información de movimiento incluye un identificador de la lista de imágenes de referencia y un índice de referencia en la lista de imágenes de referencia correspondiente a la una de las imágenes de referencia, y codificar uno o más valores de POC representativos de las imágenes de referencia incluidas en la lista de imágenes de referencia.
    13. El dispositivo, según la reivindicación 6, en el que el descodificador de vídeo está configurado para descodificar datos de un conjunto de parámetros de imagen (PPS) correspondiente a la imagen codificada, en el que los datos del PPS indican si la información de restablecimiento de POC está señalizada en la imagen codificada, y en el que el codificador de vídeo está configurado para codificar los datos representativos del valor para el identificador de período de restablecimiento de POC cuando los datos del PPS indican que la información de restablecimiento de POC está señalizada en la imagen codificada, en el que los datos del PPS que indican si la información de restablecimiento de POC está señalizada preferentemente se señalizan en el PPS cuando un elemento sintáctico slice_segment_header_extension_present_flag del PPS es igual a uno; o
    el dispositivo, según la reivindicación 7, en el que el codificador de vídeo está configurado para codificar datos de un conjunto de parámetros de imagen (PPS) correspondiente a la imagen codificada, en el que los datos del PPS indican si la información de restablecimiento de POC está señalizada en la imagen codificada, y en el que el codificador de vídeo está configurado para codificar los datos representativos del valor para el identificador de período de restablecimiento de POC cuando los datos del PPS indican que la información de restablecimiento de POC está señalizada en la imagen codificada, en el que los datos del PPS que indican si la información de restablecimiento de POC está señalizada están señalizados preferentemente en el PPS cuando un elemento sintáctico slice_segment_header_extension_present_flag del PPS es igual a uno.
    14. Dispositivo, según la reivindicación 6 o la reivindicación 7, en el que el dispositivo comprende al menos uno de:
    un circuito integrado;
    un microprocesador; y
    un dispositivo de comunicación inalámbrica.
    15. Un medio de almacenamiento legible por ordenador que tiene instrucciones almacenadas en el mismo que, al ejecutarse, hacen que un procesador de un dispositivo, para codificar datos de vídeo, realice el procedimiento según cualquiera de las reivindicaciones 1-5.
ES14806516T 2013-11-19 2014-11-18 Diseño del valor de POC para codificación de vídeo multicapa Active ES2696723T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361906373P 2013-11-19 2013-11-19
US14/543,470 US9628820B2 (en) 2013-11-19 2014-11-17 POC value design for multi-layer video coding
PCT/US2014/066130 WO2015077220A1 (en) 2013-11-19 2014-11-18 Poc value design for multi-layer video coding

Publications (1)

Publication Number Publication Date
ES2696723T3 true ES2696723T3 (es) 2019-01-17

Family

ID=53173281

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14806516T Active ES2696723T3 (es) 2013-11-19 2014-11-18 Diseño del valor de POC para codificación de vídeo multicapa

Country Status (10)

Country Link
US (1) US9628820B2 (es)
EP (1) EP3072298B1 (es)
JP (1) JP6453355B2 (es)
KR (1) KR102002207B1 (es)
CN (1) CN107079170B (es)
BR (1) BR112016011311B1 (es)
ES (1) ES2696723T3 (es)
HU (1) HUE039280T2 (es)
MX (1) MX355823B (es)
WO (1) WO2015077220A1 (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2014288482A1 (en) * 2013-07-12 2015-02-26 Sony Corporation Image coding device and method
MX352916B (es) * 2013-10-14 2017-12-14 Ericsson Telefon Ab L M Alineación de conteo de orden de imágenes en video escalable.
US9674544B2 (en) 2013-11-25 2017-06-06 Qualcomm Incorporated POC value design for multi-layer video coding
US9942546B2 (en) 2013-12-12 2018-04-10 Qualcomm Incorporated POC value design for multi-layer video coding
CN104754358B (zh) * 2013-12-27 2019-02-19 中兴通讯股份有限公司 码流的生成和处理方法、装置及系统
WO2017049518A1 (en) * 2015-09-24 2017-03-30 Intel Corporation Techniques for video playback decoding surface prediction
US11736687B2 (en) 2017-09-26 2023-08-22 Qualcomm Incorporated Adaptive GOP structure with future reference frame in random access configuration for video coding
US20190141320A1 (en) * 2017-11-07 2019-05-09 Qualcomm Incorporated Enhanced reference picture management in video coding
US11356698B2 (en) 2019-12-30 2022-06-07 Tencent America LLC Method for parameter set reference constraints in coded video stream

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9131245B2 (en) * 2011-09-23 2015-09-08 Qualcomm Incorporated Reference picture list construction for video coding
KR20130037161A (ko) * 2011-10-05 2013-04-15 한국전자통신연구원 스케일러블 비디오 코딩을 위한 향상된 계층간 움직임 정보 예측 방법 및 그 장치
US8855433B2 (en) 2011-10-13 2014-10-07 Sharp Kabushiki Kaisha Tracking a reference picture based on a designated picture on an electronic device
KR102094503B1 (ko) * 2012-04-15 2020-03-30 삼성전자주식회사 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치
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

Also Published As

Publication number Publication date
MX355823B (es) 2018-05-02
CN107079170A (zh) 2017-08-18
MX2016006370A (es) 2016-09-16
WO2015077220A1 (en) 2015-05-28
HUE039280T2 (hu) 2018-12-28
EP3072298A1 (en) 2016-09-28
KR20160085890A (ko) 2016-07-18
CN107079170B (zh) 2020-04-21
EP3072298B1 (en) 2018-08-15
US20150139320A1 (en) 2015-05-21
BR112016011311A2 (es) 2017-08-08
JP6453355B2 (ja) 2019-01-16
WO2015077220A9 (en) 2017-04-27
US9628820B2 (en) 2017-04-18
KR102002207B1 (ko) 2019-07-19
BR112016011311B1 (pt) 2023-05-16
JP2017501655A (ja) 2017-01-12

Similar Documents

Publication Publication Date Title
ES2696723T3 (es) Diseño del valor de POC para codificación de vídeo multicapa
ES2715980T3 (es) Codificación de valores de recuento del orden de imágenes que identifican tramas de referencia a largo plazo
ES2657494T3 (es) Acceso aleatorio y señalización de imágenes de referencia a largo plazo en la codificación de vídeo
ES2744201T3 (es) Dispositivo y procedimiento para la codificación escalable de información de vídeo
ES2978906T3 (es) Asociación de unidades de decodificación resiliente a errores
ES2647948T3 (es) Reutilización de conjuntos de parámetros para la codificación de vídeo
ES2686936T3 (es) Códec 3DVC basado en MVC que soporta el modo de predicción de movimiento de visualización interna (IVMP)
ES2780688T3 (es) Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo
ES2748561T3 (es) Unidades de acceso IRAP y conmutación y empalme de flujos de bits
KR102329648B1 (ko) 멀티-계층 비디오 코딩을 위한 poc 값 설계
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para codificación de vídeo
ES2684546T3 (es) Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados
ES2703342T3 (es) Selección de imagen de referencia
EP2984844A1 (en) Cross-layer poc alignment for multi-layer bitstreams that may include non-aligned irap pictures
EP3707903A1 (en) Enhanced reference picture management in video coding
EP3075157B1 (en) Poc value design for multi-layer video coding
BR112016013141B1 (pt) Design de valor poc para codificação de vídeo de multicamadas