ES2613136T3 - Señalización condicional de información de temporización de recuento del orden de imágenes para la temporización de vídeo en la codificación de vídeo - Google Patents
Señalización condicional de información de temporización de recuento del orden de imágenes para la temporización de vídeo en la codificación de vídeo Download PDFInfo
- Publication number
- ES2613136T3 ES2613136T3 ES13821600.7T ES13821600T ES2613136T3 ES 2613136 T3 ES2613136 T3 ES 2613136T3 ES 13821600 T ES13821600 T ES 13821600T ES 2613136 T3 ES2613136 T3 ES 2613136T3
- Authority
- ES
- Spain
- Prior art keywords
- video
- encoded
- syntactic
- vps
- syntactic structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento: recibir (500) una secuencia de vídeo codificado que comprende imágenes codificadas de una secuencia de vídeo; y recibir parámetros de temporización de la secuencia de vídeo codificado; caracterizado por que los parámetros de temporización incluyen una condición para la señalización (502) de un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes, POC, igual a 1, directamente en al menos uno entre una estructura sintáctica de un conjunto de parámetros de vídeo, VPS, mencionado por la secuencia de vídeo codificado, y una estructura sintáctica de un conjunto de parámetros de secuencia, SPS, mencionado por la secuencia de vídeo codificado.
Description
Señalización condicional de información de temporización de recuento del orden de imágenes para la temporización de vídeo en la codificación de vídeo
Campo técnico
Esta divulgación se refiere a la codificación de vídeo y el procesamiento de vídeo, y más en particular, a técnicas para señalizar información de temporización en información de vídeo.
Antecedentes
Las capacidades del vídeo digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusión directa digital, sistemas de difusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de 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 por flujo de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta Eficacia (HEVC) y las extensiones de tales normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital más eficazmente, implementando tales técnicas de compresión de vídeo.
Las técnicas de compresión de vídeo llevan a cabo la predicción espacial (intra-imagen) y/o la predicción temporal (entre imágenes) 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 intra-codificado (I) de una imagen son codificados usando la predicción espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen. Los bloques de vídeo en un fragmento inter-codificado (P o B) de una imagen pueden usar la predicción espacial con respecto a muestras de referencia en bloques vecinos en 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.
La predicción espacial o temporal utiliza un bloque predictivo. Los datos residuales representan diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. Un bloque inter-codificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica según una modalidad de intra-codificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse desde el dominio de píxeles a un dominio de transformación, dando como resultado coeficientes de transformación residuales, los cuales pueden cuantizarse posteriormente. Los coeficientes de transformación cuantizados, inicialmente dispuestos en una formación bidimensional, pueden explorarse a fin de producir un vector unidimensional de coeficientes de transformación, y puede aplicarse codificación por entropía para lograr aún más compresión.
Una secuencia dada de vídeo codificado, codificada en un flujo de bits, incluye una secuencia ordenada de imágenes codificadas. En las normas H.264/AVC y HEVC, el orden de decodificación de las imágenes codificadas para un flujo de bits es equivalente a la secuencia ordenada. Sin embargo, las normas también dan soporte a un orden de salida de imágenes decodificadas que difiere del orden de decodificación y, en tales casos, cada una de las imágenes codificadas se asocia a un valor de recuento del orden de imágenes (POC), que especifica el orden de salida de la imagen en la secuencia de vídeo.
La información de temporización de vídeo para una secuencia de vídeo se puede señalizar en elementos sintácticos de una o más estructuras sintácticas (denominadas alternativamente "estructuras de conjuntos de parámetros" o simplemente "conjuntos de parámetros"). Las estructuras sintácticas pueden incluir un conjunto de parámetros de secuencia (SPS), que incluye información de codificación que se aplica a todos los fragmentos de una secuencia de vídeo codificado. El SPS puede en sí incluir parámetros, mencionados como información de facilidad de uso de vídeo (VUI), que incluyen información de decodificador de referencia hipotético (HRD), así como información para mejorar el uso de la secuencia de vídeo correspondiente para diversos fines. La misma información de HRD puede ser señalizada usando una estructura sintáctica de HRD incluible dentro de otras estructuras sintácticas, tales como la estructura sintáctica de VUI. Las estructuras sintácticas también pueden incluir un conjunto de parámetros de vídeo (VPS) que describe las características de una secuencia de vídeo correspondiente, tales como elementos sintácticos comunes, compartidos por múltiples capas o puntos de operación, así como otra información de puntos de operación, que puede ser común para varios conjuntos de parámetros de secuencia, tal como información de HRD para diversas capas o subcapas.
Las siguientes presentaciones del JCTVC se reconocen por la presente:
JCTVC -K1003 Bross B et al;
JCTVC -J0272 Haque et al;
JCTVC -J0546 Haque et al;
JCTVC -J0570 Wang;
JCTVC -A0099 Chen et al;
JCTVC -KO125 Wang et al.
También son reconocidos los siguientes artículos:
"Un decodificador hipotético mejorado de referencia para la HEVC" por Sachin Deschpande et al; vo;. 8666 Actas de
SPIE, 21 de febrero de 2013;
"Conformidad del HRD para la codificación de vídeo H.264 en tiempo real" por Jennifer Webb, ICIP 2007, 1 de septiembre de 2007, páginas V-305; y "Un re-codificador de referencia hipotético generalizado para la norma H.264/AVC" por Chou y otros, Transacciones
del IEEE sobre Circuitos y Sistemas para Tecnología de Vídeo, vol. 13, nº 7, páginas 674 a 687, 1 de julio de 2003.
Sumario
La invención se define en las reivindicaciones a las que se orienta ahora la referencia. En general, esta divulgación describe técnicas para la codificación de vídeo y, más particularmente, técnicas para la señalización de información de temporización, por ejemplo, para especificar la temporización de salida de imágenes y/o para definir un modelo de almacenamiento temporal tal como un decodificador de referencia hipotético (HRD). En algunos ejemplos, las técnicas pueden incluir la señalización directa, en la estructura sintáctica del conjunto de parámetros de vídeo (VPS)
o en la parte de información de facilidad de uso de vídeo (VUI) de la estructura sintáctica del conjunto de parámetros de secuencia (SPS), para una secuencia de vídeo codificado, uno o más elementos sintácticos que definen una condición para la señalización de una serie de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1.
Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la siguiente descripción. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
Breve descripción de los dibujos
La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificación y decodificación de vídeo que puede utilizar las técnicas descritas en esta divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo ejemplar que puede implementar las técnicas descritas en esta divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un decodificador de vídeo ejemplar que puede implementar las técnicas descritas en esta divulgación.
La FIG. 4 es un diagrama de bloques que ilustra la información de temporización para una estructura ejemplar de codificación para un conjunto de imágenes de referencia de acuerdo con las técnicas descritas en este documento.
La FIG. 5 es un diagrama de flujo que ilustra un procedimiento ejemplar de operación según las técnicas descritas en esta divulgación.
Las FIGs. 6A a 6B son diagramas de flujo que ilustran procedimientos ejemplares de operación de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento ejemplar de operación según las técnicas descritas en esta divulgación.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento ejemplar de operación según las técnicas descritas
en esta divulgación.
Las FIGs. 9A a 9B son diagramas de flujo que ilustran procedimientos ejemplares de funcionamiento de acuerdo con las técnicas descritas en esta divulgación.
La FIG. 10 es un diagrama de flujo que ilustra un procedimiento ejemplar según las técnicas descritas en esta divulgación.
Descripción detallada
Esta divulgación describe varias técnicas para la codificación de vídeo y, más particularmente, técnicas para la señalización de información de temporización, por ejemplo, para especificar la temporización de salida de imágenes y/o para definir un modelo de almacenamiento temporal o de decodificación, tal como un decodificador de referencia hipotético (HRD). En general, el término "señalización" se utiliza en esta divulgación para hacer referencia a la señalización que tiene lugar dentro de un flujo de bits codificado. Un codificador puede generar elementos sintácticos para señalizar información en un flujo de bits como parte de un proceso de codificación de vídeo. Un dispositivo de decodificación, u otro dispositivo de procesamiento de vídeo, pueden recibir un flujo de bits codificado, e interpretar los elementos sintácticos en el flujo de bits codificado como parte de un proceso de decodificación de vídeo u otro procesamiento de vídeo.
Por ejemplo, para indicar la temporización de salida para la conmutación desde una imagen dada a la siguiente imagen en una secuencia de vídeo codificada de acuerdo con el ordenamiento de salida, la información de temporización para la secuencia de vídeo codificado puede, en algunos casos, señalizar un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a uno. Una diferencia de valores de POC igual a uno puede representar la diferencia entre un valor de POC para una imagen dada y el valor de POC para la próxima imagen de acuerdo con el ordenamiento de salida, por ejemplo, el valor de POC para la segunda imagen y el valor de POC para la tercera imagen de acuerdo con el ordenamiento de salida. La información de temporización de vídeo puede incluir también una condición que especifica si la información de temporización de vídeo indica o no el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a uno. En otras palabras, la información de temporización de vídeo señaliza el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a uno, solamente si se cumple la condición. En algunos casos, la condición no se cumple y la información de temporización de vídeo no señaliza el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a uno. El número de pulsos de reloj puede depender de la escala temporal (correspondiente, por ejemplo, a una frecuencia de oscilador -tal como 27 MHz -que define un sistema de coordenadas temporales para la información señalizada) y del número de unidades de tiempo de un reloj operativo en la escala temporal que corresponde a un incremento de un contador de pulsos de reloj, que se menciona como un "pulso de reloj".
En algunos ejemplos, las técnicas de esta divulgación pueden incluir señalizar directamente, en la estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS para una secuencia de vídeo codificado, todos los elementos sintácticos que definen la condición para la señalización de una serie de pulsos de reloj correspondientes a una diferencia de valores de POC igual a 1. Es decir, en algunos casos, la condición puede tener una o más dependencias de información adicional (es decir, los elementos sintácticos) señalizada en la estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS. Estos elementos sintácticos pueden incluir un indicador de información de temporización presente, tal como se describe a continuación.
Las normas de codificación de vídeo incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG2 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 de múltiples vistas (MVC).
Además, existe un nuevo estándar de codificación de vídeo, concretamente la codificación de vídeo de alta eficiencia (HEVC) que está desarrollándose por el Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC. El más reciente Borrador de Trabajo (WD) de la HEVC, y mencionado como HEVC WD9, o simplemente WD9 en adelante, es el artículo de Bross et al., "Mejoras editoriales propuestas para la especificación textual de la Codificación de Vídeo de Alta Eficacia (HEVC), borrador 9 (SoDIS)," Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del UIT-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 12a Conferencia: Ginebra, CH, 14 a 23 de enero de 2013, disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L0030-v1.zip, al 7 de enero de 2013.
Un borrador reciente de la norma HEVC, denominado “Borrador 10 de trabajo de la HEVC” o “WD10”, se describe en el documento JCTVC-H1003v34, de Bross et al., titulado "High Efficiency Video Coding (HEVC) Text Specification Draft 10 (for FDIS & Last Call)" [“Memoria descriptiva textual de la Codificación de Vídeo de Alta Eficacia (HEVC), Borrador 10 (para Norma Internacional de Borrador Final y Última Llamada)”], Equipo de Colaboración Conjunta en
Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, décimo segunda conferencia: Ginebra, CH, 14 a 23 de enero de 2013, que se puede descargar desde: http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTV C-L1003-v34 .zip.
Otro borrador de la norma HEVC, mencionado en el presente documento como "revisiones de WD10", se describe en el artículo de Bross et al., "Correcciones propuestas de los editores para la HEVC, versión 1", Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) de UIT-T SG16 WP3 e ISO/IEC JTC 1/SC29/WG11, 13ª Conferencia, Incheon, KR, abril de 2013, que, al 7 de junio de 2013, está disponible en: http://phenix.intevry.fr/jct/doc_end_user /documents/13_Incheon/wg11/JCTVC-M0432-v3.zip
Los esfuerzos de normalización de la HEVC se basan en un modelo de un dispositivo de codificación de vídeo denominado Modelo de Prueba de HEVC (HM). El HM supone mejoras en las capacidades de los dispositivos de codificación de vídeo actuales con respecto a los dispositivos de codificación de vídeo disponibles durante el desarrollo de otras normas de codificación de vídeo anteriores, por ejemplo, la ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modalidades de codificación de intra-predicción, la norma HEVC proporciona hasta treinta y cinco modalidades de codificación de intra-predicción.
Las normas de codificación de vídeo incluyen habitualmente una especificación de un modelo de almacenamiento temporal de vídeo. En AVC y HEVC, el modelo de almacenamiento en memoria intermedia se denomina como el decodificador de referencia ficticio (HRD), que incluye un modelo de almacenamiento en memoria intermedia de tanto la memoria intermedia de imagen codificada (CPB) como la memoria intermedia de imagen decodificada (DPB). Según se define en la norma HEVC WD9, un HRD es un modelo de decodificador hipotético que especifica restricciones sobre la variabilidad de los flujos unitarios de la Capa de Abstracción de Red (NAL), o flujos de octetos conformes, que un proceso de codificación puede producir.
Los comportamientos del CPB y del DPB se especifican matemáticamente. El HRD impone directamente restricciones sobre temporización, tamaños de almacén temporal y velocidades de bits diferentes, e impone indirectamente restricciones sobre características y estadísticas de flujos de bits. Un conjunto completo de parámetros de HRD incluye cinco parámetros básicos: el retardo inicial de eliminación del CPB, el tamaño del CPB, la velocidad de bits, el retardo inicial de salida del DPB y el tamaño del DPB.
En la AVC y la HEVC, la conformidad del flujo de bits y la conformidad del decodificador se especifican como partes de la especificación del HRD. Aunque el "decodificador de referencia hipotético" incluye el término "decodificador", el HRD se necesita típicamente en el sector codificador para garantizar la conformidad del flujo de bits, y habitualmente no se necesita en el sector decodificador. Se especifican dos tipos de conformidad de flujo de bits o de HRD, concretamente, Tipo I y Tipo II. Además, se especifican dos tipos de conformidad de decodificador, la conformidad de decodificador de la temporización de salida y la conformidad de decodificador del orden de salida.
En el HEVC WD9, las operaciones del HRD requieren parámetros señalizados en las estructuras sintácticas parámetros_hrd (), mensajes de información de mejora suplementaria (SEI) de periodos de almacenamiento temporal, mensajes de SEI de temporización de imágenes y, a veces, también en mensajes de SEI de información de unidades de decodificación. Las estructuras sintácticas parámetros_hrd () pueden ser señalizadas en el conjunto de parámetros de vídeo (VPS), el conjunto de parámetros de secuencia (SPS) o cualquier combinación de los mismos.
En el HEVC WD9, la estructura sintáctica parámetros_hrd () incluye elementos sintácticos para la señalización de información de temporización de vídeo, incluyendo una escala temporal y el número de unidades en un pulso de reloj. La parte de información de facilidad de uso de vídeo (VUI) del SPS incluye un indicador que indica si el valor de recuento del orden de imágenes (POC), para cada imagen en la secuencia de vídeo codificado que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es o no proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen de la secuencia de vídeo codificado; si es así, entonces el número de pulsos de reloj correspondientes a una diferencia de valores de recuento del orden de imágenes es igual a 1.
La sintaxis y la semántica relacionada en el HEVC WD9 son las siguientes. La Tabla 1 muestra una estructura sintáctica ejemplar de la carga útil de secuencias de octetos en bruto (RBSP) del conjunto de parámetros de vídeo, de acuerdo con el WD9.
- rbsp_del_conjunto_de_parámetros_de_vídeo () {
- Descriptor
- …
- vps_núm_parámetros_hrd
- ue(v)
- para( i = 0; i < vps_num_hrd_parámetros; i++ ) {
- índice_conjunto_po_hrd [i]
- ue(v)
- si (i> 0)
- indicador_cprms_presente [i]
- u(1)
- parámetros_hrd (indicador_cprms_presente [i], vps_máx_sub_capas_menos1)
- }
- …
- }
Tabla 1: Estructura sintáctica ejemplar de la RBSP del conjunto de parámetros de vídeo
En la Tabla 1 anterior, el elemento sintáctico vps_núm_parámetros_hrd especifica el número de estructuras sintácticas parámetros_hrd () presentes en la Carga Útil de Secuencias de Octetos en Bruto (RBSP) del conjunto de parámetros de vídeo. En los flujos de bits conformes a la presente versión de esta especificación, el valor de vps_núm_parámetros_hrd será menor o igual a 1. Aunque se requiere que el valor de vps_núm_parámetros_hrd sea menor que o igual a 1 en el HEVC WD9, los decodificadores permitirán que otros valores de vps_núm_parámetros_hrd en el rango de 0 a 1.024, inclusive, aparezcan en la sintaxis.
El elemento sintáctico índice_conjunto_po_hrd [i] especifica el índice, en la lista de conjuntos de puntos de operación, especificados por el conjunto de parámetros de vídeo, del conjunto de puntos de operación al que se aplica la i-ésima estructura sintáctica parámetros_hrd () en el conjunto de parámetros de vídeo (VPS). En los flujos de bits conformes a la presente versión de esta especificación, el valor de índice_conjunto_po_hrd [i] será igual a 0. Aunque se requiere que el valor del índice_conjunto_po_hrd [i] sea inferior o igual a 1 en el HEVC WD9, los decodificadores permitirán que otros valores de índice_conjunto_po_hrd [i], en el rango de 0 a 1.023, aparezcan en la sintaxis.
El elemento sintáctico indicador_cprms_presente [i] igual a 1 indica que los parámetros del HRD que son comunes para todas las sub-capas están presentes en la i-ésima estructura sintáctica parámetros_hrd () en el conjunto de parámetros de vídeo. El indicador_cprms_presente [i] igual a 0 especifica que los parámetros del HRD que son comunes para todas las sub-capas no están presentes en la i-ésima estructura sintáctica parámetros_hrd () en el conjunto de parámetros de vídeo, y que se obtienen como los mismos de la (i-1)-ésima estructura sintáctica parámetros_hrd () en el conjunto de parámetros de vídeo. Se deduce que el indicador_cprms_presente [0] es igual a
1.
La Tabla 2 muestra una estructura de parámetros de VUI de acuerdo con el WD9.
- parámetros_vui( ) {
- Descriptor
- …
- indicador_parámetros_hrd_presentes
- u(1)
- si (indicador_parámetros_hrd_presentes)
- parámetros_hrd (1, sps_máx_sub_capas_menos1)
- indicador_poc_proporcional_a_temporización
- u(1)
- si (indicador_poc_proporcional_a_temporización && indicador_información_de_temporización_presente)
- dif_núm_pulsos_poc_uno_menos1
- ue(v)
- …
- }
Tabla 2: Estructura sintáctica de parámetros de VUI
En la Tabla 2 anterior, el elemento sintáctico indicador_parámetros_hrd_presentes igual a 1 especifica que la estructura sintáctica parámetros_hrd () está presente en la estructura sintáctica parámetros_vui (). El indicador_parámetros_hrd_presentes igual a 0 especifica que la estructura sintáctica parámetros_hrd () no está presente en la estructura sintáctica parámetros_vui ().
El elemento sintáctico indicador_poc_proporcional_a_temporización igual a 1 indica que el valor de recuento del orden de imágenes, para cada imagen en la secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es proporcional al tiempo de salida de la imagen con respecto al tiempo de salida de la primera imagen en la secuencia de vídeo codificado. El indicador_poc_proporcional_a_temporización igual a 0 indica que el valor de recuento del orden de imágenes, para cada imagen en la secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, puede o no ser proporcional al tiempo de salida de la imagen con respecto a la hora de salida de la primera imagen en la secuencia de vídeo codificado.
El elemento sintáctico dif_núm_pulsos_poc_uno_menos1 más 1 especifica el número de pulsos de reloj que corresponde a una diferencia de valores de recuento del orden de imágenes igual a 1.
La Tabla 3 a continuación muestra una estructura sintáctica ejemplar de parámetros del HRD de acuerdo con el WD9.
- parámetros_hrd (indicadorInfComúnPresente, máxNúmSubCapasMenos1) {
- Descriptor
- si (indicadorInfComúnPresente) {
- indicador_inf_temporización_presente
- u(1)
- if( timing_info_present_flag) {
- núm_unidades_en_pulso
- u(32)
- escala_temporal
- u(32)
- }
- …
- }
Tabla 3: Estructura sintáctica ejemplar de parámetros del HRD
En la Tabla 3 anterior, el elemento sintáctico indicador_inf_temporización_presente igual a 1 especifica que núm_unidades_en_pulso y escala_temporal están presentes en la estructura sintáctica parámetros_hrd(). Si el indicador_inf_temporización_presente es igual a 0, el núm_unidades_en_pulso y la escala_temporal no están presentes en la estructura sintáctica parámetros_hrd( ). Si no está presente, se deduce que el valor de indicador_inf_temporización_presente es 0.
El elemento sintáctico núm_unidades_en_pulso es el número de unidades de tiempo de un reloj que funciona en la frecuencia de escala_temporal Hz, que corresponde a un incremento (llamado un pulso de reloj) de un contador de pulsos de reloj. El valor para el elemento sintáctico núm_unidades_en_pulso será mayor que 0. Un pulso de reloj es el intervalo de tiempo mínimo que se puede representar en los datos codificados cuando el indicador_sub_imagen_cpb_parámetros_presentes es igual a 0. Por ejemplo, cuando la velocidad de imágenes de una señal de vídeo es de 25 Hz, escala_temporal puede ser igual a 27.000.000 y el núm_unidades_en_pulso puede ser igual a 1.080.000.
El elemento sintáctico escala_temporal es el número de unidades de tiempo que pasan en un segundo. Por ejemplo, un sistema de coordenadas temporales que mide el tiempo usando un reloj de 27 MHz tiene una escala_temporal de
27.000.000. El valor del elemento sintáctico escala_temporal será mayor que 0.
La señalización de temporización, como se especifica en el HEVC WD9 y como se ha descrito anteriormente, puede presentar una serie de problemas. En primer lugar, la condición para la señalización del elemento sintáctico dif_núm_pulsos_poc_uno_menos1 es "si (indicador_poc_proporcional_a_temporización && indicador_inf_temporización_presente)". Esta condición incluye dependencias de dos elementos sintácticos señalizados: indicador_poc_proporcional_a_temporización e indicador_inf_temporización_presente. Sin embargo, no está claro, a partir de la especificación del HEVC WD9, si el indicador_inf_temporización_presente para la condición hace referencia al elemento sintáctico indicador_inf_temporización_presente de una estructura sintáctica parámetros_hrd( ) (si está presente) en la parte de VUI del SPS, o si hace referencia al elemento sintáctico indicador_inf_temporización_presente de una estructura sintáctica parámetros_hrd() en el VPS.
Además, múltiples capas, o múltiples posibles subconjuntos de flujos de bits de un flujo de bits de vídeo ajustable a escala, pueden compartir los valores comunes de la escala temporal y el número de unidades en un pulso de reloj, que se especifican en el HEVC WD9, en los elementos sintácticos escala_temporal y núm_unidades_en_pulso de una estructura sintáctica parámetros_hrd( ), que puede ser señalizada repetidamente en la parte de VUI del SPS y en el VPS, por ejemplo. Tal replicación, si está presente en el flujo de bits, puede dar lugar a un desperdicio de bits.
Además, los valores de recuento del orden de imágenes (POC) son habitualmente proporcionales a los tiempos de salida para todas las capas de un flujo de bits de vídeo ajustable a escala, si los valores de POC son proporcionales a los tiempos de salida para cualquiera de las capas de un flujo de bits de vídeo ajustable a escala. Sin embargo, la especificación del HEVC WD9 no provee la señalización, en el flujo de bits de vídeo ajustable a escala, de una indicación de que los valores de POC son proporcionales a los tiempos de salida para todas las capas, o todos los posibles subconjuntos de flujos de bits, del flujo de bits de vídeo ajustable a escala. La referencia a un "capa" de un flujo de bits de vídeo ajustable a escala puede referirse a una capa ajustable a escala, una vista de textura y/o una vista de profundidad, por ejemplo. Además, aunque el HEVC WD9 especifica que el indicador_poc_proporcional_a_temporización siempre se señaliza en la estructura sintáctica de la VUI del SPS, el indicador_poc_proporcional_a_temporización no tiene ninguna utilidad si los elementos sintácticos escala_temporal y núm_unidades_en_pulso no se señalizan también en el flujo de bits.
Las técnicas de la presente divulgación pueden resolver uno o más de los problemas anteriores, así como proporcionar otras mejoras, para permitir la señalización eficiente de los parámetros para las operaciones del HRD. Varios ejemplos de las técnicas se describen en el presente documento con referencia al HEVC WD9 y a las potenciales mejoras del mismo. Las soluciones valen para normas cualesquiera de codificación de vídeo, incluyendo la AVC y la HEVC, por ejemplo, que incluyen una especificación de un modelo de almacenamiento temporal de
vídeo, aunque, con fines de ilustración, la descripción es específica para la señalización de parámetros de HRD definida en el HEVC WD9 y modificada de acuerdo con las técnicas de esta divulgación.
La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificación y decodificación de vídeo 10 que puede utilizar las técnicas descritas en esta divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera datos de vídeo codificado, a decodificar en un momento posterior por parte de un dispositivo de destino 14. 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, decodificadores, equipos telefónicos de mano tales como los denominados teléfonos “inteligentes”, los denominados paneles “inteligentes”, televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, un dispositivo de flujos de transmisión 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.
El dispositivo de destino 14 puede recibir los datos de vídeo codificado que se van a decodificar, mediante un enlace
16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de vídeo codificado desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para permitir al dispositivo de origen 12 transmitir datos de vídeo codificado directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificado pueden ser modulados según una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitidos al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área extensa 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.
Como alternativa, los datos codificados pueden ser emitidos desde la interfaz de salida 22 a un dispositivo de almacenamiento 34. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento 34 mediante una interfaz de entrada. El dispositivo de almacenamiento 34 puede incluir cualquiera entre una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco rígido, discos Blu-ray, 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 codificado. En un ejemplo adicional, el dispositivo de almacenamiento 34 puede corresponder a un servidor de ficheros o a otro dispositivo de almacenamiento intermedio que pueda retener los datos de vídeo codificado, generados por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados, procedentes del dispositivo de almacenamiento 34, mediante flujos de transmisión o descarga. El servidor de ficheros puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificado y transmitir esos datos de vídeo codificado al dispositivo de destino 14. Los servidores ejemplares de ficheros incluyen un servidor de Internet (por ejemplo, para una sede en la Red), un servidor del FTP, dispositivos de almacenamiento conectados a la red (NAS) o un controlador de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificado a través de 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 de Wi-Fi), una conexión por cable (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificado, almacenados en un servidor de ficheros. La transmisión de datos de vídeo codificado desde el dispositivo de almacenamiento 34 puede ser una transmisión por flujo, una transmisión de descarga o una combinación de ambas.
Las técnicas de esta divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas pueden aplicarse a la codificación de vídeo, en soporte de cualquiera entre una diversidad de aplicaciones de multimedios, tales como difusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo por flujo, por ejemplo, mediante Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, decodificació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 dar soporte a la transmisión de vídeo unidireccional o bidireccional, para prestar soporte a aplicaciones tales como los flujos de transmisión de vídeo, la reproducción de vídeo, la difusión de vídeo y/o la videotelefonía.
En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye un origen de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/demodulador (módem) y/o un transmisor. En el dispositivo de origen 12, el origen de vídeo 18 puede incluir un origen tal como un dispositivo de captura de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene vídeo previamente capturado, una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos de ordenador para generar datos de gráficos de ordenador como el vídeo de origen, o una combinación de tales orígenes. Como un ejemplo, si el origen de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y
pueden aplicarse a aplicaciones inalámbricas y/o cableadas.
El vídeo capturado, pre-capturado o generado por ordenador puede ser codificado por el codificador de vídeo 20. Los datos de vídeo codificado pueden ser transmitidos directamente al dispositivo de destino 14 mediante la interfaz de salida 22 del dispositivo de origen 12. Los datos de vídeo codificado también (o como alternativa) pueden almacenarse en el dispositivo de almacenamiento 34 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para decodificación y/o reproducción.
El dispositivo de destino 14 incluye una interfaz de entrada 28, un decodificador de vídeo 30 y un dispositivo de visualización 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificado por el enlace 16. Los datos de vídeo codificado, comunicados por el enlace 16, o proporcionados en el dispositivo de almacenamiento 34, pueden incluir una diversidad de elementos sintácticos generados por el codificador de vídeo 20, para su uso por un decodificador de vídeo, tal como el decodificador de vídeo 30, en la decodificación de los datos de vídeo. Tales elementos sintácticos pueden incluirse con los datos de vídeo codificado, transmitidos en un medio de comunicación, almacenarse en un medio de almacenamiento o almacenarse en un servidor de ficheros.
El dispositivo de visualización 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también configurarse para mantener interfaces con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 32 exhibe los datos de vídeo decodificado a un usuario, y puede comprender cualquiera entre una diversidad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
El codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar según una norma de compresión de vídeo, tal como la norma de Codificación de Vídeo de Alta Eficacia (HEVC), actualmente en desarrollo, y pueden ser conformes al Modelo de Prueba de la HEVC (HM). Como alternativa, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar según otras normas patentadas o industriales, tales como la norma ITU-T H.264, alternativamente denominada MPEG -4, Parte 10, Codificación Avanzada de Vídeo (AVC), o extensiones de tales normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de compresión de vídeo incluyen la MPEG-2 y la ITU-T H.263.
Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar integrados con un codificador y decodificador de audio, y pueden incluir unidades adecuadas de multiplexado y demultiplexado, u otro hardware y software, para gestionar la codificación, tanto de audio como de vídeo, en un flujo de datos común o en flujos de datos diferentes. Si procede, en algunos ejemplos, las unidades de multiplexado y demultiplexado pueden ajustarse al protocolo de multiplexado ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador de vídeo 20 y el decodificador de vídeo 30 pueden implementarse como cualquiera entre una diversidad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), formaciones de compuertas programables en el terreno (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas son implementadas parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio no transitorio adecuado, legible por ordenador, y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno entre el codificador de vídeo 20 y el decodificador de vídeo 30 puede incluirse en uno o más codificadores o decodificadores, donde cualquiera de los mismos puede estar integrado como parte de un codificador/decodificador combinado (códec) en un dispositivo respectivo.
El JCT-VC está trabajando en el desarrollo de la norma HEVC. Los esfuerzos de normalización de la HEVC se basan en un modelo en evolución de un dispositivo de codificación de vídeo denominado modelo de prueba de la HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo, con 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 modalidades de codificación de intra-predicción, el HM puede proporcionar hasta treinta y tres modalidades de codificación de intra-predicción.
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 máximas unidades de codificación (LCU), que incluyen muestras tanto de luma como de croma. Un bloque arbolado tiene un fin similar al de un macro-bloque de la norma H.264. 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) según un árbol cuádruple. Por ejemplo, un bloque arbolado, como un nodo raíz del árbol cuádruple, puede dividirse en cuatro nodos secundarios, 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, como un nodo de hoja del árbol cuádruple,
comprende un nodo de codificación, es decir, un bloque de vídeo codificado. Los datos sintácticos asociados a un flujo de bits codificado pueden definir un número máximo de veces que puede dividirse un bloque arbolado, y también pueden definir un tamaño mínimo de los nodos de codificación.
Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformación (TU) asociadas al nodo de codificación. Un tamaño de la CU corresponde, en general, a un tamaño del nodo de codificación, y debe ser habitualmente de forma cuadrada. El tamaño de la CU puede variar desde 8 x 8 píxeles hasta el tamaño del bloque arbolado, con un máximo de 64 x 64 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. Las modalidades de división pueden diferir entre si la CU está codificada en modalidad de omisión o directa, codificada en modalidad de intra-predicción o codificada en modalidad de inter-predicción. Las PU pueden dividirse para que no tengan forma 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 según un árbol cuádruple. Una TU puede tener forma cuadrada o no cuadrada.
La norma HEVC admite transformaciones según las TU, que pueden ser distintas para distintas CU. Las TU son habitualmente dimensionadas en base al tamaño de las PU dentro de una CU dada, definida para una LCU dividida, aunque esto puede no ser siempre el caso. Las TU tienen habitualmente el mismo tamaño, o un tamaño más pequeño, que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades más pequeñas usando una estructura de árbol cuádruple conocida como "árbol cuádruple residual" (RQT). Los nodos de hoja del RQT pueden denominarse unidades de transformación (TU). Los valores de diferencias de píxeles asociados a las TU pueden transformarse para producir coeficientes de transformación, que pueden cuantizarse.
En general, una PU incluye datos relacionados con el proceso de predicción. Por ejemplo, cuando la PU está codificada en intra-modalidad, la PU puede incluir datos que describen una modalidad de intra-predicción para la PU. Como otro ejemplo, cuando la PU está codificada en inter-modalidad, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, 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 píxeles de un cuarto o precisión de píxeles de un octavo), 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.
En general, se usa una TU para los procesos de transformación y cuantización. Una CU dada con una o más PU también puede incluir una o más unidades de transformación (TU). Después de la predicción, el codificador de vídeo 20 puede calcular los valores residuales a partir del bloque de vídeo identificado por el nodo de codificación, según la PU. El nodo de codificación se actualiza a continuación, para hacer referencia a los valores residuales, en lugar del bloque de vídeo original. Los valores residuales comprenden valores de diferencias de píxeles que pueden transformarse en coeficientes de transformación, cuantizarse y escanearse usando las transformaciones y otra información de transformación especificada en las TU, para producir coeficientes de transformación serializados para la codificación por entropía. El nodo de codificación puede, una vez más, ser actualizado para referirse a estos coeficientes de transformación serializados. Esta divulgación usa habitualmente el término “bloque de vídeo” para referirse a un nodo de codificación de una CU. En algunos casos específicos, esta divulgación también puede usar el término “bloque de vídeo” para referirse a un bloque arbolado, es decir, una LCU, o una CU, que incluye un nodo de codificación y las PU y las TU.
Una secuencia de vídeo incluye normalmente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende generalmente 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 una modalidad de codificación para el fragmento respectivo. Un codificador de vídeo 20 actúa habitualmente sobre bloques de vídeo dentro de los 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 tener tamaños fijos o variables y pueden diferir en tamaño, según una norma de codificación especificada.
Como ejemplo, el HM da soporte a la predicción en diversos tamaños de PU. Suponiendo que el tamaño de una CU específica sea 2Nx2N, el HM presta soporte a la intra-predicción en tamaños de PU de 2Nx2N o NxN, y a la intrapredicción en tamaños de PU simétricas de 2Nx2N, 2NxN, Nx2N o NxN. El HM también presta soporte a la división asimétrica para la inter-predicción en tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la división asimétrica, una dirección de una CU no está dividida, mientras que la otra dirección está dividida entre el 25 % y el 75 %. La parte de la CU correspondiente a la división del 25 % está indicada por una “n” seguida por una indicación de “Arriba”, “Abajo”, “Izquierda” o “Derecha”. Así, 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.
En esta divulgación, "NxN" y "N por N" pueden usarse de manera intercambiable para hacer referencia a las
dimensiones de píxeles de un bloque vídeo, en lo que respecta a dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de tamaño 16 x 16 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 tiene generalmente N píxeles en la dirección vertical y N píxeles en la dirección horizontal, donde N representa un valor entero no negativo. Los píxeles en un bloque pueden estar dispuestos en filas y columnas. Además, los bloques no necesitan tener 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 N x M píxeles, donde M no es necesariamente igual a N.
Tras la codificación intra-predictiva o inter-predictiva, usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales a los que se aplican las transformaciones especificadas por las TU de la CU. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y valores de predicción correspondientes a las CU. El codificador de vídeo 20 puede formar los datos residuales para la CU, y a continuación transformar los datos residuales para producir coeficientes de transformación.
Tras cualquier transformación para producir coeficientes de transformación, el codificador de vídeo 20 puede realizar la cuantización de los coeficientes de transformación. La cuantización se refiere generalmente a un proceso en el que los coeficientes de transformación se cuantizan para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresión adicional. El proceso de cuantización puede reducir la profundidad de bits asociada a algunos de, o todos, los coeficientes. Por ejemplo, un valor de n bits puede redondearse por lo bajo a un valor de m bits durante la cuantización, donde n es mayor que m.
En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformación cuantizados, para producir un vector serializado que pueda ser codificado por entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar un escaneo adaptativo. Después de escanear los coeficientes de transformación cuantizados, para formar un vector unidimensional, el codificador de vídeo 20 puede codificar por entropía el vector unidimensional, por ejemplo, según la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), la codificación aritmética binaria adaptativa al contexto y de base sintáctica (SBAC), la codificación por Entropía por División de Intervalos de Probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador de vídeo 20 también puede codificar por entropía elementos sintácticos asociados a los datos de vídeo codificados, para su uso por el decodificador de vídeo 30, en la decodificación de los datos de vídeo.
Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto dentro de un modelo contextual a un símbolo a transmitir. El contexto puede referirse, por ejemplo, a si los valores adyacentes 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 a transmitir. Las palabras de código en la VLC pueden ser construidas de modo que los códigos relativamente más cortos correspondan a símbolos más probables, mientras que los códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de la VLC puede lograr un poco de ahorro con respecto, por ejemplo, a usar palabras de código de igual longitud para cada símbolo a transmitir. La determinación de la probabilidad puede basarse en un contexto asignado al símbolo.
El dispositivo de origen 12 puede generar un flujo de bits codificado para incluir elementos sintácticos que se ajustan a una estructura sintáctica de acuerdo con técnicas descritas en esta divulgación. En algunos ejemplos, el codificador de vídeo 20 puede generar el flujo de bits codificado para señalizar directamente, en la estructura sintáctica del conjunto de parámetros de vídeo (VPS) o en la parte de información de facilidad de uso de vídeo (VUI) de la estructura sintáctica del conjunto de parámetros de secuencia (SPS) para una secuencia de vídeo codificado, todas las variables que definen la condición para señalizar una serie de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1. En otras palabras, en lugar de señalizar los elementos sintácticos para la condición para señalizar una serie de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1 en otra estructura sintáctica (tal como la estructura sintáctica de parámetros del HRD) que es incorporada en una estructura sintáctica del VPS o la parte de VUI de la estructura sintáctica del SPS, el codificador de vídeo 20 genera el flujo de bits codificado para señalizar los elementos sintácticos que definen la condición en la estructura sintáctica del VPS y/o de la VUI, sin referencia a otra estructura sintáctica potencialmente incorporada dentro de cualquiera entre la estructura sintáctica del VPS y de la VUI, o ambas. Los elementos sintácticos pueden incluir el elemento sintáctico indicador_inf_temporización_presente que se especifica en el HEVC WD9 como un elemento sintáctico de la estructura sintáctica de parámetros del HRD. Como resultado, las técnicas pueden reducir y, potencialmente, eliminar la ambigüedad dentro de la especificación del HEVC WD9, especificando claramente en la sintaxis el origen de los elementos sintácticos que definen la condición.
El codificador de vídeo 20 puede probar el flujo de bits codificado en cuanto a la conformidad con los requisitos especificados como una o más pruebas de conformidad de flujo de bits, definidas en una especificación de codificación de vídeo, tales como el HEVC WD9 o una especificación sucesora, tal como el HEVC WD10. El codificador de vídeo 20 puede incluir o utilizar de otro modo un decodificador de referencia hipotético para probar el flujo de bits codificado en cuanto a su conformidad. De acuerdo a las técnicas descritas en este documento, el codificador de vídeo 20 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la
decodificación del flujo de bits codificado, para determinar, a partir de la estructura sintáctica del VPS, o en la parte de VUI de la estructura sintáctica del SPS, para una secuencia de vídeo codificado, los elementos sintácticos que definen la condición para la señalización del número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1. Si la condición se cumple de acuerdo con los valores de los elementos sintácticos, el codificador de vídeo 20 puede determinar el número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1, y utilizar el número determinado de pulsos de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado.
En algunos casos, en el dispositivo de destino 14, un decodificador de vídeo 30 bajo prueba (o VUT) puede, en algunos casos, recibir una representación del flujo de bits codificado, generado por el codificador de vídeo 20, para señalizar directamente, en la estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS para una secuencia de vídeo codificado, todos los elementos sintácticos que definen la condición para la señalización de una serie de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1. El decodificador de vídeo 30 puede decodificar el flujo de bits codificado para determinar, a partir de la estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS para una secuencia de vídeo codificado, los elementos sintácticos que definen la condición para la señalización del número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1. Si la condición se cumple de acuerdo con los valores de los elementos sintácticos, el decodificador de vídeo 30 puede determinar el número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1, y utilizar el número determinado de pulsos de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado.
En algunos ejemplos, el codificador de vídeo 20 puede generar el flujo de bits codificado para señalizar la escala temporal y el número de unidades en un pulso de reloj, a lo sumo, una vez en cada una de las estructuras sintácticas del VPS y de la VUI para una secuencia dada de vídeo codificado. Es decir, en una estructura sintáctica dada del VPS para el flujo de bits codificado, el codificador de vídeo 20 puede señalizar los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, como máximo, una vez. Del mismo modo, en una estructura sintáctica dada de VUI (por ejemplo, la parte de VUI de una estructura sintáctica del SPS) para el flujo de bits codificado, el codificador de vídeo 20 puede señalizar los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, como máximo, una vez. Como resultado, el codificador de vídeo 20, funcionando de acuerdo con las técnicas descritas en el presente documento, puede reducir un número de instancias del elemento sintáctico de la escala temporal (escala_temporal según el WD9) y del elemento sintáctico del número de unidades en un pulso de reloj (núm_unidades_en_pulso según el WD9) en el flujo de bits codificado. Además, el codificador de vídeo 20 puede, en algunos casos, generar el flujo de bits codificado para señalizar directamente la escala temporal y el número de unidades en un pulso de reloj en cada una de las estructuras sintácticas del VPS y de la VUI para una secuencia dada de vídeo codificado, en lugar de en una estructura sintáctica de parámetros del HRD, incorporada dentro de una estructura sintáctica del VPS y/o de la VUI.
De acuerdo a las técnicas descritas en este documento, el codificador de vídeo 20 puede probar un flujo de bits codificado, generado por el codificador de vídeo 20 para señalizar la escala temporal y el número de unidades en un pulso de reloj, a lo sumo, una vez en cada una de las estructuras sintácticas del VPS y de la VUI para una determinada secuencia de vídeo codificado, en cuanto a su conformidad, mediante la decodificación del flujo de bits codificado, para determinar la escala temporal y el número de unidades en un pulso de reloj, a partir de una estructura sintáctica del VPS del flujo de bits codificado que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, como máximo, una vez en la estructura sintáctica del VPS. En algunos casos, el codificador de vídeo 20 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificación del flujo de bits codificado, para determinar la escala temporal y el número de unidades en un pulso de reloj, a partir de una estructura sintáctica de la VUI del flujo de bits codificado que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, a lo sumo, una vez en la estructura sintáctica de la VUI. La escala temporal y el número de unidades en un pulso de reloj pueden ser señalizados en un lugar que no sea una estructura sintáctica de parámetros del HRD, incorporada dentro de la estructura sintáctica del VPS y/o de la VUI. El codificador de vídeo 20 puede usar la escala temporal determinada y el número determinado de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado.
En algunos casos, en el dispositivo de destino 14, un decodificador de vídeo 30 bajo prueba puede, en algunos casos, recibir una representación del flujo de bits codificado, generado por el codificador de vídeo 20, para señalizar la escala temporal y el número de unidades en un pulso de reloj, a lo sumo, una vez en cada una de las estructuras sintácticas del VPS y de la VUI para una secuencia dada de vídeo codificado. El decodificador de vídeo 30 puede decodificar el flujo de bits codificado para determinar la escala temporal y el número de unidades en un pulso de reloj a partir de una estructura sintáctica del VPS del flujo de bits codificado, que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, a lo sumo, una vez en la estructura sintáctica del VPS. En algunos casos, el decodificador de vídeo 30 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificación del flujo de bits codificado, para determinar la escala temporal y el número
de unidades en un pulso de reloj, a partir de una estructura sintáctica de la VUI del flujo de bits codificado que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, a lo sumo, una vez en la estructura sintáctica de la VUI. La escala temporal y el número de unidades en un pulso de reloj pueden ser señalizados en un lugar que no sea una estructura sintáctica de parámetros del HRD, incorporada dentro de la estructura sintáctica del VPS y/o de la VUI. El decodificador de vídeo 30 puede usar la escala temporal determinada y el número determinado de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado.
En algunos ejemplos, el codificador de vídeo 20 puede generar el flujo de bits codificado para señalizar, en una estructura sintáctica del VPS para una o más secuencias de vídeo codificado, un indicador que indica si el valor de POC para cada imagen en una secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es o no proporcional al tiempo de salida de la imagen con respecto al tiempo de salida de la primera imagen en la secuencia de vídeo codificado. Esta indicación, alternativamente, puede ser mencionada como el indicador de POC proporcional a la temporización. Como resultado, el codificador de vídeo 20 puede reducir un número de instancias de la indicación en la información de temporización señalizada para múltiples capas de una secuencia de vídeo codificado y/o para un flujo de bits de vídeo ajustable a escala que tiene múltiples capas. En algunos casos, el codificador de vídeo 20 puede incluir este indicador en la estructura sintáctica del VPS solamente si también se incluyen los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj. El codificador de vídeo 20 puede, de esta manera, evitar la señalización de esta información particular de temporización (es decir, si el valor de POC para cada imagen en una secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es o no proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado) si la información del pulso de reloj, necesaria para usar la indicación del POC proporcional a la temporización, no está también presente.
De acuerdo a las técnicas descritas en este documento, el codificador de vídeo 20 puede comprobar la conformidad de un flujo de bits codificado, generado por el codificador de vídeo 20 para señalizar, en una estructura sintáctica del VPS para una o más secuencias de vídeo codificado, la indicación del POC proporcional a la temporización. El codificador de vídeo 20 puede probar el flujo de bits codificado en cuanto a su conformidad mediante la decodificación del flujo de bits codificado, para determinar un valor para el indicador. El codificador de vídeo 20 puede adicionalmente, o alternativamente, probar un flujo de bits codificado, generado por el codificador de vídeo 20, para señalizar el indicador en la estructura sintáctica del VPS solamente si también se incluyen los elementos temporales de la escala temporal y del número de unidades en un pulso de reloj. El codificador de vídeo 20 puede utilizar el valor determinado del indicador del POC proporcional a la temporización y de los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de las imágenes codificadas incluidas en el flujo de bits codificado.
En algunas ocasiones, en el dispositivo de destino 14, un decodificador de vídeo 30 bajo prueba, en algunos casos, puede recibir una representación del flujo de bits codificado, generado por el codificador de vídeo 20, para señalizar, en una estructura sintáctica del VPS para una o más secuencias de vídeo codificado, una indicación del POC proporcional a la temporización. El decodificador de vídeo 30 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificación del flujo de bits codificado, para determinar un valor para el indicador. El decodificador de vídeo 30 puede adicionalmente, o alternativamente, probar un flujo de bits codificado, generado por el decodificador de vídeo 30, para señalizar el indicador en la estructura sintáctica del VPS solamente si también se incluyen los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj. El decodificador de vídeo 30 puede utilizar el valor determinado del indicador del POC proporcional a la temporización y de los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de las imágenes codificadas incluidas en el flujo de bits codificado.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo ejemplar 20 que puede implementar las técnicas descritas en esta divulgación. El codificador de vídeo 20 puede realizar la intra-codificación y la intercodificación de bloques de vídeo dentro de fragmentos de vídeo. La intra-codificación se apoya en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama o imagen de vídeo dada. La inter-codificación se apoya en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas o imágenes adyacentes de una secuencia de vídeo. La intra-modalidad (modalidad I) puede referirse a cualquiera de varias modalidades de compresión de base espacial. Las inter-modalidades, tales como la predicción unidireccional (modalidad P) o la bi-predicción (modalidad B), pueden referirse a cualquiera de varias modalidades de compresión de base temporal.
En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de división 35, un módulo de predicción 41, una memoria de imágenes de referencia 64, un sumador 50, un módulo de transformación 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. El módulo de predicción 41 incluye una unidad de estimación de movimiento 42, una unidad de compensación de movimiento 44 y un módulo de intra-predicción 46.
Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye además una unidad de cuantización inversa 58, un módulo de transformación inversa 60 y un sumador 62. También puede incluirse un filtro de desbloqueo (no mostrado en la FIG. 2) para filtrar límites de bloque, para eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de desbloqueo filtrará habitualmente la salida del sumador 62. También pueden usarse filtros de bucle adicionales (en bucle o tras el bucle), además del filtro de desbloqueo.
Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe datos de vídeo y la unidad de división 35 divide los datos en bloques de vídeo. Esta división también puede incluir la división en fragmentos, mosaicos u otras unidades mayores, así como la división de bloques de vídeo, por ejemplo, de acuerdo con una estructura de árbol cuádruple de las LCU y las CU. El codificador de vídeo 20 ilustra en general los componentes que codifican bloques de vídeo dentro de un fragmento de vídeo a codificar. El fragmento puede dividirse en múltiples bloques de vídeo (y, posiblemente, en conjuntos de bloques de vídeo mencionados como mosaicos). El módulo de predicción 41 puede seleccionar una entre una pluralidad de posibles modalidades de codificación, tal como una entre una pluralidad de modalidades de intra-codificación, o una entre una pluralidad de modalidades de inter-codificación, para el bloque de vídeo actual, en base a resultados de errores (por ejemplo, la velocidad de codificación y el nivel de distorsión). El módulo de predicción 41 puede proporcionar el bloque intra-codificado o inter-codificado resultante al sumador 50 para generar datos de bloques residuales, y al sumador 62 para reconstruir el bloque codificado para su uso como una imagen de referencia.
El módulo de intra-predicción 46, dentro del módulo de procesamiento de predicción 41, puede realizar la codificación intra-predictiva del bloque de vídeo actual con respecto a uno o más bloques vecinos en la misma trama
o fragmento que el bloque que va a codificarse, para proporcionar compresión espacial. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, dentro del módulo de predicción 41, realizan la codificación inter-predictiva del bloque de vídeo actual con respecto a uno o más bloques predictivos en una o más imágenes de referencia, para proporcionar compresión temporal.
La unidad de estimación de movimiento 42 puede ser configurada para determinar la modalidad de inter-predicción para un fragmento de vídeo, de acuerdo con un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar fragmentos de vídeo en la secuencia como fragmentos P, fragmentos B o fragmentos GPB. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar sumamente 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 para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual, con respecto a un bloque predictivo dentro de una imagen de referencia.
Un bloque predictivo es un bloque del que se descubre que se corresponde estrechamente con la PU del bloque de vídeo a codificar, en lo que respecta a la diferencia de píxeles, que puede determinarse mediante la suma de una diferencia absoluta (SAD), la suma de diferencias de cuadrados (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de fracciones de píxel 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 fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento con respecto a las posiciones de píxeles completos y a las posiciones de fracciones de píxel, y emitir un vector de movimiento con una precisión de fracciones de píxel.
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 a partir de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de 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.
La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado por la estimación de movimiento, realizando posiblemente interpolaciones hasta la precisión de sub-píxeles. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El codificador de vídeo 20 forma un bloque de vídeo residual restando los valores de píxeles del bloque predictivo a los valores de píxeles del bloque de vídeo actual que está codificándose, generando valores de diferencia de píxel. Los valores de diferencia de píxel forman datos residuales para el bloque, y pueden incluir componentes de diferencias, tanto de luminancia como de crominancia. El sumador 50 representa el componente o los componentes que realizan esta operación de sustracción. La unidad de compensación de movimiento 44 también puede generar elementos sintácticos 55 asociados a los bloques de vídeo y al fragmento de vídeo para su uso por parte del decodificador de vídeo 30 en la decodificación de los bloques de vídeo del fragmento de vídeo.
La unidad de compensación de movimiento 44 puede generar elementos sintácticos 55 que se ajusten a una estructura sintáctica de acuerdo con las técnicas descritas en esta divulgación. En algunos ejemplos, el codificador de vídeo 20 puede generar elementos sintácticos 55 para señalizar directamente, en la estructura sintáctica del conjunto de parámetros de vídeo (VPS) o en la parte de información de facilidad de uso de vídeo (VUI) de la estructura sintáctica del conjunto de parámetros de secuencia (SPS), asociada a los bloques de vídeo, todos los elementos sintácticos que definen la condición para la señalización de una serie de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1. En otras palabras, en lugar de señalizar los elementos sintácticos para la condición para la señalización de una serie de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1 en otra estructura sintáctica (tal como la estructura sintáctica de parámetros del HRD) que está incorporada en una estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS, la unidad de compensación de movimiento 44 genera el flujo de bits codificado para señalizar los elementos sintácticos para los elementos sintácticos que definen la condición en la estructura sintáctica del VPS y/o de la VUI sin referencia a otra estructura sintáctica potencialmente incorporada dentro de cualquiera de las estructuras sintácticas del VPS y de la VUI, o ambas.
En algunos ejemplos, la unidad de compensación de movimiento 44 puede generar los elementos sintácticos 55 para señalizar la escala temporal y el número de unidades en un pulso de reloj, a lo sumo, una vez en cada una de las estructuras sintácticas del VPS y de la VUI para una secuencia dada de vídeo codificado. Es decir, en una estructura sintáctica dada del VPS para el flujo de bits codificado, la unidad de compensación de movimiento 44 puede generar los elementos sintácticos 55 para señalizar los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, como máximo, una vez. Del mismo modo, en una estructura sintáctica dada de la VUI (por ejemplo, la parte de VUI de una estructura sintáctica del SPS) para el flujo de bits codificado, la unidad de compensación de movimiento 44 puede generar los elementos sintácticos 55 para señalizar los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, como máximo, una vez. Además, la unidad de compensación de movimiento 44 puede, en algunos casos, generar los elementos sintácticos 55 para señalizar directamente la escala temporal y el número de unidades en un pulso de reloj en cada una de las estructuras sintácticas del VPS y de la VUI para una secuencia dada de vídeo codificado, en lugar de en una estructura sintáctica de parámetros de HRD incorporada dentro de una estructura sintáctica del VPS y/o de la VUI.
En algunos ejemplos, la unidad de compensación de movimiento 44 puede generar los elementos sintácticos 55 para señalizar, en una estructura sintáctica del VPS para una o más secuencias de vídeo codificado, un indicador que indica si el valor del POC para cada imagen en una secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es o no proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado. Esta indicación, alternativamente, puede ser mencionada como la indicación del POC proporcional a la temporización. Como resultado, la unidad de compensación de movimiento 44 puede reducir un número de instancias de la indicación en la información de temporización señalizada para múltiples capas de una secuencia de vídeo codificado y/o para un flujo de bits de vídeo ajustable a escala que tiene múltiples capas. En algunos casos, la unidad de compensación de movimiento 44 puede incluir este indicador en la estructura sintáctica del VPS solamente si también se incluyen los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj. La unidad de compensación de movimiento 44 puede, de esta manera, evitar la señalización de esta información particular de temporización (es decir, si el valor del POC para cada imagen en una secuencia de vídeo codificado que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es o no proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado) si la información del pulso de reloj, necesaria para utilizar la indicación del POC proporcional a la temporización, no está también presente.
Los cambios ejemplares en el texto del HEVC WD9 para efectuar las técnicas anteriores para generar elementos sintácticos 55 son los siguientes (otras partes no mencionadas pueden no estar modificadas con respecto al HEVC WD9):
El siguiente es un ejemplo de una estructura sintáctica de RBSP del conjunto de parámetros de vídeo, modificada para resolver uno o más de los problemas anteriores (la sintaxis subrayada es un agregado a la estructura sintáctica de RBSP del conjunto de parámetros de vídeo del HEVC WD9; otra sintaxis puede estar sin cambios en relación con el HEVC WD9):
- rbsp_conjunto_de_parámetros_de_vídeo () {
- Descriptor
- …
- indicador de información de temporización presente del VPS
- u(1)
- si (indicador de información de temporización presente del VPS) {
- número de unidades en pulso del VPS
- u(32)
- escala temporal del VPS
- u(32)
- indicador de POC proporcional a la temporización del VPS
- u(1)
- si (indicador_vps_poc_proporcional_a_temporización)
- número de pulsos de diferencia de POC uno menos1 del VPS
- ue(v)
- }
- vps_núm_parámetros_hrd
- ue(v)
- for( i = 0; i < vps_num_hrd_parameters; i++) {
- indicador_cprms_presente [i]
- u(1)
- parámetros_hrd (indicador_cprms_presente [i], vps_máx_sub_capas_menos1)
- }
- …
- }
Tabla 4: Estructura sintáctica ejemplar de la RBSP del conjunto de parámetros de vídeo
La Tabla 4 define elementos sintácticos agregados recientemente de acuerdo con la siguiente semántica de la RBSP del conjunto de parámetros de vídeo (VPS):
El indicador_vps_inf_temporización_presente igual a 1 indica que vps_núm_unidades_en_pulso, vps_escala_temporal y indicador_vps_poc_proporcional_a_temporización están presentes en el conjunto de parámetros de vídeo. El indicador_vps_inf_temporización_presente igual a 0 especifica que vps_núm_unidades_en_pulso, vps_escala_temporal y indicador_vps_poc_proporcional_a_temporización no están presentes en el conjunto de parámetros de vídeo.
El vps_núm_unidades_en_pulso es el número de unidades de tiempo de un reloj que funciona a la frecuencia de vps_escala_temporal Hz, que corresponde a un incremento (llamado un pulso de reloj) de un contador de pulsos de reloj. El valor de vps_núm_unidades_en_pulso será mayor que 0. Un pulso de reloj, en unidades de segundos, es igual al cociente de vps_núm_unidades_en_pulso dividido entre vps_escala_temporal. Por ejemplo, cuando la velocidad de imágenes de una señal de vídeo es de 25 Hz, vps_escala_temporal puede ser igual a 27.000.000 y vps_núm_unidades_en_pulso puede ser igual a 1.080.000 y, en consecuencia, un pulso de reloj puede ser de 0,04 segundos.
La vps_escala_temporal es el número de unidades de tiempo que pasan en un segundo. Por ejemplo, un sistema de coordenadas temporales que mide el tiempo usando un reloj de 27 MHz tiene una vps_escala_temporal de
27.000.000. El valor de vps_escala_temporal será mayor que 0.
El indicador_vps_poc_proporcional_a_temporización igual a 1 indica que el valor del recuento del orden de imágenes, para cada imagen en la secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado. El indicador_vps_poc_proporcional_a_temporización igual a 0 indica que el valor del recuento del orden de imágenes, para cada imagen en la secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, puede o no ser proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado.
El vps_dif_núm_pulsos_poc_uno_menos1 más 1 especifica el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a 1. El valor de vps_dif_ núm_pulsos_poc_uno_menos1 estará en el intervalo de 0 a 2^32 – 1, inclusive.
El siguiente es un ejemplo de una estructura sintáctica de parámetros de VUI, modificada para resolver uno o más de los problemas anteriores (la sintaxis subrayada es un agregado a la estructura sintáctica de parámetros de la VUI del HEVC WD9; la sintaxis en cursiva se elimina de la estructura sintáctica de parámetros de VUI del HEVC WD9; otras partes de la tabla de sintaxis se mantienen sin cambios en relación con el HEVC WD9):
- parámetros_VUI( ) {
- Descriptor
- ...
- indicador_sps_inf_temporización_presente
- u(1)
- si (indicador_sps_inf_temporización_presente) {
- sps_núm_unidades_en_pulso
- u(32)
- sps_escala_temporal
- u(32)
- indicador_sps_poc_proporcional_a_temporización
- u(1)
- si (indicador_sps_poc_proporcional_a_temporización)
- sps_dif_núm_pulsos_poc_uno_menos1
- ue(v)
- }
- indicador_parámetros_hrd_presentes
- u(1)
- si (indicador_parámetros_hrd_presentes)
- parámetros_hrd (1, sps_máx_sub_capas_menos1)
- indicador_poc_proporcional_a_temporización
- u(1)
- si (indicador_poc_proporcional_a_temporización && indicador_inf_temporización_presente)
- dif_núm_pulsos_poc_uno_menos1
- ue(v)
- ...
- }
Tabla 5: Estructura sintáctica ejemplar de parámetros de VUI modificados
La Tabla 5 define los elementos sintácticos agregados recientemente de acuerdo con la siguiente semántica de los parámetros de VUI (la semántica para los elementos sintácticos eliminados es eliminada del mismo modo):
El indicador_sps_inf_temporización_presente igual a 1 especifica que sps_núm_unidades_en_pulso, sps_escala_temporal y indicador_sps_poc_proporcional_a_temporización están presentes en la estructura sintáctica parámetros_vui (). El indicador_sps_inf_temporización_presente igual a 0 especifica que sps_núm_unidades_en_pulso, sps_escala_temporal y indicador_sps_poc_proporcional_a_temporización no están presentes en la estructura sintáctica parámetros_vui ().
El sps_núm_unidades_en_pulso es el número de unidades de tiempo de un reloj que funciona a la frecuencia de sps_escala_temporal Hz, que corresponde a un incremento (llamado un pulso de reloj) de un contador de pulsos de reloj. El sps_núm_unidades_en_pulso será mayor que 0. Un pulso de reloj, en unidades de segundos, es igual al cociente de sps_núm_unidades_en_pulso dividido entre sps_escala_temporal. Por ejemplo, cuando la velocidad de imágenes de una señal de vídeo es de 25 Hz, la sps_escala_temporal puede ser igual a 27.000.000 y el sps_núm_unidades_en_pulso puede ser igual a 1.080.000 y, en consecuencia, una señal de reloj puede ser igual a 0,04 segundos (véase la ecuación (1)). Cuando el vps_núm_unidades_en_pulso está presente en el conjunto de parámetros de vídeo mencionado por el conjunto de parámetros de secuencia, el sps_núm_unidades_en_pulso, cuando esté presente, será igual al vps_núm_unidades_en_pulso.
La fórmula para obtener la variable PulsoReloj (también denominado en este documento un "pulso de reloj") se modifica para que sea de la siguiente manera:
La sps_escala_temporal es el número de unidades de tiempo que pasan en un segundo. Por ejemplo, un sistema de coordenadas temporales que mide el tiempo usando un reloj de 27 MHz tiene una sps_escala_temporal de
27.000.000. El valor de sps_escala_temporal será mayor que 0. Cuando la vps_escala_temporal está presente en el conjunto de parámetros de vídeo mencionado por el conjunto de parámetros de secuencia, la sps_escala_temporal, cuando esté presente, será igual a la vps_escala_temporal.
El indicador_sps_poc_proporcional_a_temporización igual a 1 indica que el valor de recuento del orden de imágenes, para cada imagen en la secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado. El indicador_sps_poc_proporcional_a_temporización igual a 0 indica que el valor de recuento del orden de imágenes, para cada imagen en la secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, puede o no ser proporcional al tiempo de salida de la imagen con respecto a la hora de salida de la primera imagen en la secuencia de vídeo codificado. Cuando el indicador_vps_poc_proporcional_a_temporización está presente en el conjunto de parámetros de vídeo mencionado por el conjunto de parámetros de secuencia, el indicador_sps_poc_proporcional_a_temporización, cuando esté presente, será igual al indicador_vps_poc_proporcional_a_temporización.
El sps_dif_núm_pulsos_poc_uno_menos1 más 1 especifica el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a 1. El valor de sps_dif_núm_pulsos_poc_uno_menos1 estará en el intervalo de 0 a 2^32 -1, inclusive. Cuando vps_dif_núm_pulsos_poc_uno_menos1 está presente en el conjunto de parámetros de vídeo mencionado por el conjunto de parámetros de secuencia, sps_dif_núm_pulsos_poc_uno_menos1, cuando esté presente, será igual a sps_dif_núm_pulsos_poc_uno_menos1.
El siguiente es un ejemplo de una estructura sintáctica de parámetros de HRD, modificada para resolver uno o más de los problemas anteriores (la sintaxis en cursiva se elimina de la estructura sintáctica de parámetros de HRD del HEVC WD9):
- parámetros_hrd (indicadorInfComúnPresente, máxNúmSubCapasMenos1) {
- Descriptor
- si (indicadorInfComúnPresente) {
- indicador_inf_temporización_presente
- u(1)
- if(timing_info_present_flag) {
- núm_unidades_en_pulso
- u(32)
- escala_temporal
- u(32)
- }
- …
- }
Tabla 6: Estructura sintáctica ejemplar de parámetros de HRD modificados
La semántica de los elementos sintácticos eliminados de acuerdo con la estructura sintáctica ejemplar de los parámetros de HRD modificados de la Tabla 6 se elimina del mismo modo.
El módulo de intra-predicción 46 puede intra-predecir 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, el módulo de intra-predicción 46 puede determinar una modalidad de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, el módulo de intra-predicción 46 puede codificar un bloque actual usando varias modalidades de intra-predicción, por ejemplo, durante diferentes pasadas de codificación, y el módulo de intra-predicción 46 (o el módulo de selección de modalidad 40, en algunos ejemplos) puede seleccionar una modalidad adecuada de intra-predicción a usar, entre las modalidades probadas. Por ejemplo, el módulo de intra-predicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para las diversas modalidades de intra-predicción probadas, y seleccionar la modalidad de intrapredicción que tenga las mejores características de velocidad-distorsión entre las modalidades probadas. El análisis de velocidad-distorsión determina generalmente una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que se codificó para generar el bloque codificado, así como una velocidad de bits (es decir, un número de bits) usada para generar el bloque codificado. El módulo de intra-predicción 46 puede calcular razones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modalidad de intra-predicción presenta el mejor valor de velocidad-distorsión para el bloque.
En cualquier caso, tras seleccionar una modalidad de intra-predicción para un bloque, el módulo de intra-predicción 46 puede proporcionar información que indica la modalidad de intra-predicción seleccionada para el bloque, a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información que indica la modalidad de intra-predicción seleccionada de acuerdo con las técnicas de esta divulgación. 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 modalidades de intra-predicción y una pluralidad de tablas de índices de modalidades 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 de la modalidad de intra-predicción más probable, una tabla de índices de modalidades de intra-predicción y una tabla modificada de índices de modalidades de intrapredicción, a usar en cada uno de los contextos.
Después de que el módulo de predicción 41 genera el bloque predictivo para el bloque de vídeo actual, ya sea mediante la inter-predicción o la intra-predicción, el codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo al bloque de vídeo actual. Los datos de vídeo residual en el bloque residual pueden ser incluidos en una o más TU y aplicados al módulo de procesamiento de transformación 52. El módulo de transformación 52 transforma los datos de vídeo residual en coeficientes de transformación residual, usando una transformación, tal como una transformación de coseno discreta (DCT) o una transformación conceptualmente similar. El módulo de procesamiento de transformación 52 puede convertir los datos de vídeo residual, desde un dominio de píxeles a un dominio de transformación, tal como un dominio de frecuencia.
El módulo de procesamiento de transformaciones 52 puede enviar los coeficientes de transformación resultantes a la unidad de cuantificación 54. La unidad de cuantización 54 cuantiza los coeficientes de transformación para reducir adicionalmente la velocidad de bits. El proceso de cuantización puede reducir la profundidad de bits asociada a algunos de, o a todos, los coeficientes. El grado de cuantización puede modificarse ajustando un parámetro de cuantización. En algunos ejemplos, la unidad de cuantización 54 puede realizar a continuación un escaneo de la matriz, incluyendo los coeficientes de transformación cuantizados. Como alternativa, la unidad de codificación por entropía 56 puede realizar el escaneo.
Tras la cuantización, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de
transformación cuantizados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar una codificación de longitud variable adaptativa al contexto (CAVLC), una codificación aritmética binaria adaptativa al contexto (CABAC), una codificación aritmética binaria adaptativa al contexto y basada en la sintaxis (SBAC), una codificación por entropía mediante división en intervalos de probabilidad (PIPE) u otra metodología o técnica de codificación por entropía. 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 al decodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación por parte del decodificador de vídeo 30. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los otros elementos sintácticos para el fragmento de vídeo actual que está siendo codificado.
La unidad de cuantización inversa 58 y el módulo de transformación inversa 60 aplican una cuantización inversa y una transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, para su uso posterior como un bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de fracciones de píxel 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 referencia, para su almacenamiento en la memoria de imágenes de referencia 64 (a menudo denominado memoria intermedia de imágenes decodificadas (DPB)). El bloque de referencia puede ser usado por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para inter-predecir un bloque en una trama o imagen de vídeo posterior.
El codificador de vídeo 20 puede incluir optativamente un decodificador de referencia hipotético (HRD) 57 (ilustrado como optativo mediante el uso de líneas de trazos) para comprobar los flujos de bits codificados, generados por elementos del codificador de vídeo 20 para su conformidad con el modelo de memoria intermedia definido para el HRD 57. El HRD 57 puede comprobar flujos de bits de Tipo I y/o de tipo II, o subconjuntos de flujos de bits, en cuanto a su conformidad con el HRD. Los conjuntos de parámetros necesarios para el funcionamiento del HRD 57 son señalizados por uno de los dos tipos de conjuntos de parámetros del HRD, los parámetros de HRD de NAL y los parámetros de HRD de VCL. Como se ha descrito anteriormente, los conjuntos de parámetros del HRD se pueden incorporar dentro de la estructura sintáctica del SPS y/o la estructura sintáctica del VPS.
El HRD 57 puede probar los bloques de vídeo y los elementos sintácticos asociados 55 en cuanto a la conformidad con los requisitos especificados, como una o más pruebas de conformidad de flujos de bits, definidas en una especificación de codificación de vídeo, tal como el HEVC WD9 o una especificación sucesora, como el HEVC WD10. Por ejemplo, el HRD 57 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante el procesamiento de los elementos sintácticos 55 para determinar, a partir de la estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS para una secuencia de vídeo codificado, los elementos sintácticos que definen la condición para la señalización del número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1. Si la condición se cumple de acuerdo con los valores de los elementos sintácticos, el HRD 57 puede determinar el número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1, y utilizar el número determinado de pulsos de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado. El uso en el presente documento del término "procesamiento" en relación con elementos sintácticos puede referirse a la extracción, la decodificación y la extracción, lectura, análisis sintáctico y cualquier otra operación de servicio o combinación de operaciones para obtener los elementos sintácticos en una forma utilizable por un decodificador/HRD 57.
Como otro ejemplo, el HRD 57 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificación del flujo de bits codificado, para determinar la escala temporal y el número de unidades en un pulso de reloj, a partir de una estructura sintáctica del VPS de elementos sintácticos 55, que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, a lo sumo, una vez en la estructura sintáctica del VPS. En algunos casos, el HRD 57 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificación de los elementos sintácticos 55, para determinar la escala temporal y el número de unidades en un pulso de reloj, a partir de una estructura sintáctica de VUI del flujo de bits codificado que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, a lo sumo, una vez en la estructura sintáctica de la VUI. La escala temporal y el número de unidades en un pulso de reloj se pueden señalizar en un lugar que no sea una estructura sintáctica de parámetros del HRD, incorporada dentro de la estructura sintáctica del VPS y/o de la VUI. El HRD 57 puede usar la escala temporal determinado y el número determinado de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado.
De acuerdo a las técnicas descritas en este documento, el HRD 57 puede probar el flujo de bits codificado en cuanto a su conformidad, decodificando, a partir de una estructura sintáctica del VPS de los elementos sintácticos 55 para una o más secuencias de vídeo codificado, el valor de un indicador de POC proporcional a temporización. El HRD
57 puede adicionalmente, o alternativamente, probar un flujo de bits codificado en cuanto a su conformidad, decodificando el valor de un indicador de POC proporcional a temporización en la estructura sintáctica del VPS, solamente si también se incluyen los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj. El HRD 57 puede utilizar el valor determinado del indicador de POC proporcional a temporización, y los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB durante la decodificación de las imágenes codificadas incluidas en el flujo de bits codificado.
La FIG. 3 es un diagrama de bloques que ilustra un decodificador de vídeo ejemplar 76 que puede implementar las técnicas descritas en esta divulgación. En el ejemplo de la FIG. 3, el decodificador de vídeo 76 incluye una memoria intermedia de imágenes codificadas (CPB) 78, una unidad de decodificación por entropía 80, un módulo de predicción 81, una unidad de cuantificación inversa 86, una unidad de transformación inversa 88, un sumador 90 y una memoria intermedia de imágenes decodificadas (DPB) 92. El módulo de predicción 81 incluye la unidad de compensación de movimiento 82 y el módulo de intra-predicción 84. En algunos ejemplos, el decodificador de vídeo 76 puede realizar una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 de la FIG. 2. El decodificador de vídeo 76 puede representar una instancia ejemplar del decodificador de vídeo 30 del dispositivo de destino 14 o del decodificador de referencia hipotético 57 de la FIG. 2.
El CPB 78 almacena imágenes codificadas del flujo de bits de imágenes codificadas. En un ejemplo, el CBP 78 es un almacén del tipo ‘primero en entrar, primero en salir’, que contiene unidades de acceso (AU) en orden de decodificación. Una AU es un conjunto de unidades de capa de abstracción de red (NAL), que están asociadas entre sí de acuerdo con una regla de clasificación especificada, son consecutivas en el orden de decodificación y cada una contiene exactamente una imagen codificada. El orden de decodificación es el orden en el que se decodifican las imágenes, y puede ser diferente del orden en que se muestran las imágenes (es decir, el orden de visualización). El funcionamiento del CPB puede ser especificado por un decodificador hipotético de referencia (HRD).
Durante el proceso de decodificación, el decodificador de vídeo 76 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 decodificación por entropía 80 del decodificador de vídeo 76 decodifica el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos sintácticos 55. La unidad de decodificación por entropía 80 remite los vectores de movimiento y otros elementos sintácticos 55 al módulo de predicción 81. El decodificador de vídeo 76 puede recibir los elementos sintácticos 55 al nivel del fragmento de vídeo y/o al nivel del bloque de vídeo. El flujo de bits de vídeo codificado puede incluir información de temporización señalizada de acuerdo con técnicas descritas a continuación. Por ejemplo, el flujo de bits de vídeo codificado puede incluir un conjunto de parámetros de vídeo (VPS), un conjunto de parámetros de secuencia (SPS) o cualquier combinación de los mismos que tenga estructuras sintácticas de acuerdo con las técnicas descritas en este documento para señalizar parámetros para las operaciones del HRD.
Cuando el fragmento de vídeo se codifica como un fragmento intra-codificado (I), el módulo de intra-predicción 84 del módulo de predicción 81 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual, en base a una modalidad de intra-predicción señalizada, y datos de bloques previamente decodificados de la trama o imagen actual. Cuando la trama de vídeo es codificada como un fragmento inter-codificado (es decir, B, P o GPB), la unidad de compensación de movimiento 82 del módulo de predicción 81 genera bloques predictivos para un bloque de vídeo del fragmento de vídeo actual, en base a los vectores de movimiento y otros elementos sintácticos 55 recibidos desde la unidad de decodificación por entropía 80. Los bloques predictivos pueden ser generados a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador de vídeo 76 puede construir las listas de tramas de referencia, la Lista 0 y la Lista 1, usando técnicas de construcción por omisión, en base a las imágenes de referencia almacenadas en la DPB 92.
La unidad de compensación de movimiento 82 determina la información de predicción para un bloque de vídeo del fragmento de vídeo actual, analizando sintácticamente los vectores de movimiento y otros elementos sintácticos 55, y usa la información de predicción para generar los bloques predictivos para el bloque de vídeo actual que está siendo decodificado. Por ejemplo, la unidad de compensación de movimiento 82 usa algunos de los elementos sintácticos 55 recibidos para determinar una modalidad de predicción (por ejemplo, intra-predicción o interpredicción), usada para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, fragmento B, fragmento P o fragmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del fragmento, el estado de inter-predicción para cada bloque de vídeo inter-codificado del fragmento y otra información, para decodificar los bloques de vídeo en el fragmento de vídeo actual.
La unidad de compensación de movimiento 82 también puede realizar la interpolación en base a filtros de interpolación. La unidad de compensación de movimiento 82 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación de los bloques de vídeo, para calcular valores interpolados para fracciones de píxeles de bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos sintácticos 55
recibidos y usar los filtros de interpolación para generar bloques predictivos.
La unidad de cuantización inversa 86 cuantiza de manera inversa, es decir, des-cuantiza, los coeficientes de transformación cuantizados, proporcionados en el flujo de bits y decodificados por la unidad de decodificación por entropía 80. El proceso de cuantización inversa puede incluir el uso de un parámetro de cuantización calculado por el codificador de vídeo 20 para cada bloque de vídeo en el fragmento de vídeo, para determinar un grado de cuantización y, asimismo, un grado de cuantización inversa que debería aplicarse. La unidad de transformación inversa 88 aplica una transformación inversa, por ejemplo una DCT inversa, una transformación inversa entera o un proceso de transformación inversa conceptualmente similar, a los coeficientes de transformación con el fin de generar bloques residuales en el dominio de píxeles.
Después de que la unidad de compensación de movimiento 82 genera el bloque predictivo para el bloque de vídeo actual, en base a los vectores de movimiento y a otros elementos sintácticos 55, el decodificador de vídeo 76 forma un bloque de vídeo decodificado sumando los bloques residuales procedentes de la unidad de transformación inversa 78 a los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 82. El sumador 90 representa el componente o los componentes que llevan a cabo esta operación de suma. Si se desea, también puede aplicarse un filtro de desbloqueo para filtrar los bloques decodificados, con el fin de eliminar distorsiones de efecto pixelado. Otros filtros de bucle (ya sea en el bucle de codificación o después del bucle de codificación) también pueden ser usados para allanar las transiciones de píxeles, o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo decodificados en una trama o imagen dada son a continuación almacenados en la DPB 92, que almacena imágenes de referencia usadas para la posterior compensación de movimiento. La DPB 92 almacena también vídeo decodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1. Como el CPB 78, en un ejemplo, el funcionamiento del DPB 92 puede ser especificado por el Decodificador de Referencia Hipotético (HRD).
El codificador 20 y el decodificador 76, como se describe en esta divulgación, representan ejemplos de dispositivos configurados para llevar a cabo las técnicas de señalización de temporización en un proceso de codificación de vídeo, tal como se describe en esta divulgación. En consecuencia, las operaciones descritas en esta divulgación para la señalización del tiempo pueden ser realizadas por el codificador 20, el decodificador 76 o ambos. En algunos casos, el codificador 20 puede señalizar información de temporización y el decodificador 76 puede recibir dicha información de temporización, por ejemplo, para su uso en la definición de uno o más rasgos, características, parámetros o condiciones del HRD.
El decodificador de vídeo 76 puede, en algunos casos, ser un decodificador de vídeo 76 a prueba (o VUT). El decodificador de vídeo 76 puede recibir una representación del flujo de bits codificado, generado por un codificador de vídeo 20 para señalizar directamente, en la estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS de los elementos sintácticos 55 para una secuencia de vídeo codificado, todos los elementos sintácticos que definen la condición para señalizar un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1. El decodificador de vídeo 76 puede decodificar el flujo de bits codificado para determinar, a partir de la estructura sintáctica del VPS o en la parte de VUI de la estructura sintáctica del SPS para una secuencia de vídeo codificado, los elementos sintácticos que definen la condición para la señalización del número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1. Si la condición se cumple de acuerdo con los valores de los elementos sintácticos, el decodificador de vídeo 76 puede determinar el número de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1, y utilizar el número determinado de pulsos de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB 78 durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado.
En otro ejemplo, el codificador de vídeo 20 puede recibir una representación del flujo de bits codificado, generado por el codificador de vídeo 20 para señalizar la escala temporal y el número de unidades en un pulso de reloj, a lo sumo, una vez en cada una de las estructuras sintácticas del VPS y de la VUI de los elementos sintácticos 55 para una secuencia dada de vídeo codificado. El decodificador de vídeo 76 puede decodificar el flujo de bits codificado para determinar la escala temporal y el número de unidades en un pulso de reloj a partir de una estructura sintáctica del VPS del flujo de bits codificado que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, a lo sumo, una vez en la estructura sintáctica del VPS. En algunos casos, el decodificador de vídeo 76 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificación del flujo de bits codificado, para determinar la escala temporal y el número de unidades en un pulso de reloj a partir de una estructura sintáctica de VUI del flujo de bits codificado que codifica los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj, a lo sumo, una vez en la estructura sintáctica de la VUI. La escala temporal y el número de unidades en un pulso de reloj pueden ser señalizados en un lugar que no sea una estructura sintáctica de parámetros de HRD, incorporada dentro de la estructura sintáctica del VPS y/o de la VUI. El decodificador de vídeo 76 puede usar la escala temporal determinada y el número determinado de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB 78 durante la decodificación de imágenes codificadas incluidas en el flujo de bits codificado.
En otro ejemplo, el decodificador de vídeo 76 puede recibir una representación del flujo de bits codificado, generado
por el codificador de vídeo 20 para señalizar, en una estructura sintáctica del VPS de elementos sintácticos 55 para una o más secuencias de vídeo codificado, un indicador de POC proporcional a temporización. El decodificador de vídeo 76 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificación del flujo de bits codificado, para determinar un valor para el indicador. El decodificador de vídeo 76 puede adicionalmente, o alternativamente, probar un flujo de bits codificado, generado por el decodificador de vídeo 76 para señalizar el indicador en la estructura sintáctica del VPS, solamente si también se incluyen los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj. El decodificador de vídeo 76 puede utilizar el valor determinado del indicador de POC proporcional a temporización, y los elementos sintácticos de la escala temporal y del número de unidades en un pulso de reloj como entrada, por ejemplo, para la determinación del desbordamiento inferior o superior del CPB 78 durante la decodificación de las imágenes codificadas incluidas en el flujo de bits codificado.
La FIG. 4 es un diagrama de bloques que ilustra una estructura ejemplar de codificación 100 para un conjunto de imágenes de referencia. La estructura de codificación 100 incluye los fragmentos 102A a 102E (colectivamente, "fragmentos 102"). El recuento del orden de imágenes 108, asociado a la estructura de codificación 100, indica el orden de salida del fragmento correspondiente en el conjunto de imágenes de referencia. Por ejemplo, el fragmento-I 102A ha de emitirse en primer lugar (valor de POC 0), mientras que el fragmento-b 102B ha de emitirse en segundo lugar (valor de POC 1). El orden de decodificación 110 asociado a la estructura de codificación 100 denota el orden de decodificación para el fragmento correspondiente en el conjunto de imágenes de referencia. Por ejemplo, el fragmento-I 102A ha de emitirse en primer lugar (orden de decodificación 1), mientras que el fragmento-b 102B ha de emitirse en segundo lugar (el orden de decodificación 2).
La flecha 104 indica un tiempo de salida de las imágenes a lo largo de un continuo temporal t. El intervalo temporal 106 representa un intervalo temporal que corresponde a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1. El intervalo temporal 106 puede incluir un número de pulsos de reloj, que puede depender de la escala temporal (correspondiente, por ejemplo, a una frecuencia de oscilador -tal como 27 MHz que define un sistema de coordenadas temporales para la información señalizada) y del número de unidades temporales de un reloj que funciona en la escala temporal que corresponde a un incremento de un contador de pulsos de reloj, que se menciona como un "pulso de reloj". De acuerdo a las técnicas descritas en el presente documento, un codificador de vídeo 20 puede generar un flujo de bits para señalizar directamente, en la estructura sintáctica del conjunto de parámetros de vídeo (VPS) o en la parte de información de facilidad de uso de vídeo (VUI) de la estructura sintáctica del conjunto de parámetros de secuencia (SPS) para una secuencia de vídeo codificado, elementos sintácticos que definen una condición para la señalización de un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a 1.
La FIG. 5 es un diagrama de flujo que ilustra un procedimiento ejemplar de operación según las técnicas descritas en esta divulgación. Un codificador de vídeo 20 codifica imágenes de una secuencia de vídeo para generar una secuencia de vídeo codificado (200). El codificador de vídeo 20 genera, además, conjuntos de parámetros para la secuencia de vídeo codificado. Los conjuntos de parámetros pueden incluir parámetros codificados de acuerdo con una estructura sintáctica del conjunto de parámetros de secuencia (SPS) y/o de acuerdo con una estructura sintáctica del conjunto de parámetros de vídeo (VPS). De acuerdo a las técnicas descritas en este documento, el codificador de vídeo 20 codifica elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal, directamente a la estructura sintáctica del VPS y/o directamente a la estructura sintáctica del SPS para la secuencia de vídeo codificado (202). El término "directamente" indica que tal codificación puede generarse sin incorporar, en la estructura sintáctica del VPS o la estructura sintáctica del SPS (según el caso), los elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal, definidos para una estructura sintáctica independiente de conjunto de parámetros, tal como la correspondiente al conjunto de parámetros del decodificador de referencia hipotético (HRD), tal como se define en el HEVC WD9.
Además, el codificador de vídeo 20 codifica, directamente a la estructura sintáctica del VPS y/o la estructura sintáctica del SPS de la secuencia de vídeo codificado, una condición para la señalización de un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a uno (204). La condición puede incluir uno o más elementos sintácticos que representan las variables de una fórmula Booleana, en cuyo caso el codificador de vídeo 20 puede codificar cada elemento sintáctico de ese tipo directamente a la estructura sintáctica del VPS y/o la estructura sintáctica del SPS de la secuencia de vídeo codificado. El codificador de vídeo 20 emite la secuencia de vídeo codificado y la estructura sintáctica del VPS y/o la estructura sintáctica del SPS para la secuencia de vídeo codificado (206). En algunos casos, el codificador de vídeo 20 emite estas estructuras a un HRD del codificador de vídeo 20.
Las FIGs. 6A a 6B son diagramas de flujo que ilustran procedimientos ejemplares de funcionamiento de acuerdo con las técnicas descritas en esta divulgación. En la FIG. 6A, un codificador de vídeo 20 codifica las imágenes de una secuencia de vídeo para generar una secuencia de vídeo codificado (300). El codificador de vídeo 20 genera, además, conjuntos de parámetros para la secuencia de vídeo codificado. Los conjuntos de parámetros pueden incluir parámetros codificados de acuerdo con una estructura sintáctica del conjunto de parámetros de vídeo (VPS). De acuerdo a las técnicas descritas en el presente documento, el codificador de vídeo 20 codifica los elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal directamente y, a lo sumo, una vez,
a una estructura sintáctica del VPS para la secuencia de vídeo codificado (302). En algunos casos, incluso en los casos en los que la estructura sintáctica del VPS incluye varias instancias de los parámetros del HRD, mediante la codificación de los elementos sintácticos directamente a la estructura sintáctica del VPS (como máximo, una vez) y no a los conjuntos de parámetros del HRD (o cualquier otra estructura sintáctica incorporada de conjunto de parámetros), la estructura sintáctica del VPS puede incluir un elemento sintáctico único para cada uno entre el número de unidades en un pulso de reloj y la escala temporal. El codificador de vídeo 20 emite la secuencia de vídeo codificado y la estructura sintáctica del VPS para la secuencia de vídeo codificado (304). En algunos casos, el codificador de vídeo 20 emite estas estructuras a un HRD del codificador de vídeo 20.
En la FIG. 6B, un codificador de vídeo 20 codifica las imágenes de una secuencia de vídeo para generar una secuencia de vídeo codificado (310). El codificador de vídeo 20 genera, además, conjuntos de parámetros para la secuencia de vídeo codificado. Los conjuntos de parámetros pueden incluir parámetros codificados de acuerdo con una estructura sintáctica del conjunto de parámetros de vídeo (SPS). De acuerdo a las técnicas descritas en el presente documento, el codificador de vídeo 20 codifica los elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal directamente y, a lo sumo, una vez, a una estructura sintáctica del SPS para la secuencia de vídeo codificado (312). En algunos casos, incluso en los casos en los que la estructura sintáctica del SPS incluye varias instancias de parámetros del HRD, mediante la codificación de los elementos sintácticos directamente a la estructura sintáctica del SPS (como máximo, una vez) y no a los conjuntos de parámetros del HRD (o cualquier otra estructura sintáctica incorporada de conjunto de parámetros), la estructura sintáctica del SPS puede incluir un elemento sintáctico único para cada uno entre el número de unidades en un pulso de reloj y la escala temporal. El codificador de vídeo 20 emite la secuencia de vídeo codificado y la estructura sintáctica del SPS para la secuencia de vídeo codificado (314). En algunos casos, el codificador de vídeo 20 emite estas estructuras a un HRD del codificador de vídeo 20. En algunos casos, el codificador de vídeo 20 puede codificar los elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal, tanto a una estructura sintáctica del VPS como a una estructura sintáctica del SPS para la secuencia de vídeo codificado.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento ejemplar de operación según las técnicas descritas en esta divulgación. Un codificador de vídeo 20 codifica las imágenes de una secuencia de vídeo para generar una secuencia de vídeo codificado (400). El codificador de vídeo 20 genera, además, conjuntos de parámetros para la secuencia de vídeo codificado. Los conjuntos de parámetros pueden incluir parámetros codificados de acuerdo con una estructura sintáctica del conjunto de parámetros de vídeo (VPS). Si la información de temporización se va a incluir, por ejemplo, para la definición de un modelo de almacenamiento temporal del HRD (rama SÍ de 402), el codificador de vídeo 20 codifica, directamente a una estructura sintáctica del VPS para la secuencia de vídeo codificado, un elemento sintáctico que tiene un valor que especifica si el valor de recuento del orden de imágenes (POC) para cada imagen en la secuencia de vídeo codificado, que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es o no proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado (404). El elemento sintáctico puede ser semánticamente similar al indicador_poc_proporcional_a_temporización definido por el HEVC WD9. La información de temporización puede representar el número de unidades en un pulso de reloj y la escala temporal.
Si el valor del elemento sintáctico es verdadero (rama SÍ de 406), el codificador de vídeo 20 codifica también un elemento sintáctico para el número de pulsos de reloj correspondientes a una diferencia de valores de recuento del orden de imágenes igual a uno (408). Debido a que el codificador de vídeo 20 codifica los elementos sintácticos al VPS, los valores de los elementos sintácticos pueden aplicarse a todas las capas o todos los posibles subconjuntos de flujos de bits de un flujo de bits de vídeo ajustable a escala, pues el VPS representa el conjunto de parámetros de la máxima capa y describe las características generales de secuencias de imágenes codificadas.
Si la información de temporización no se va a incluir en la estructura sintáctica del VPS (rama NO de 402), el codificador de vídeo 20 no codifica ni el elemento sintáctico para indicar que el POC es proporcional a la información de temporización ni el elemento sintáctico para el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a uno. Si el POC no es proporcional a la información de temporización (es decir, el valor es falso) (rama NO de 406), el codificador de vídeo 20 no codifica el elemento sintáctico para el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a uno.
El codificador de vídeo 20 emite la secuencia de vídeo codificado y la estructura sintáctica del VPS para la secuencia de vídeo codificado (410). En algunos casos, el codificador de vídeo 20 emite estas estructuras a un HRD del codificador de vídeo 20.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento ejemplar de operación según las técnicas descritas en esta divulgación. Un dispositivo decodificador de vídeo 30, o un decodificador de referencia hipotético 57 de un dispositivo codificador de vídeo 20 (en adelante, "el decodificador") recibe una secuencia de vídeo codificado y una estructura sintáctica del conjunto de parámetros de vídeo (VPS) y/o una estructura sintáctica del conjunto de parámetros de secuencia (SPS) para la secuencia de vídeo codificado (500). La secuencia de vídeo codificado y/o la(s) estructura(s) sintáctica(s) pueden ser codificados a un flujo de bits que incluye una o más imágenes codificadas.
El decodificador procesa la estructura sintáctica del VPS y/o la estructura sintáctica del SPS para extraer un elemento sintáctico que especifique, directamente en la estructura sintáctica del VPS y/o la estructura sintáctica del SPS, una condición para la señalización de un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes (POC) igual a uno (502). La condición puede incluir uno o más elementos sintácticos que representan variables de una fórmula Booleana, en cuyo caso el decodificador puede procesar cada elemento sintáctico de ese tipo directamente a partir de la estructura sintáctica del VPS y/o la estructura sintáctica del SPS de la secuencia de vídeo codificado.
El decodificador, además, procesa la estructura sintáctica del VPS y/o la estructura sintáctica del SPS para extraer elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal, directamente desde la estructura sintáctica del VPS y/o directamente desde la estructura sintáctica del SPS para la secuencia de vídeo codificado (504). El decodificador puede entonces verificar la conformidad de la secuencia de vídeo codificado con un modelo de almacenamiento temporal de vídeo que está definido, al menos en parte, por los valores de la condición, el número de unidades en un pulso de reloj y la escala temporal, tal como se extraen de la estructura sintáctica del VPS y/o la estructura sintáctica del SPS, y como se leen a partir de los elementos sintácticos correspondientes (506).
Las FIGs. 9A a 9B son diagramas de flujo que ilustran procedimientos ejemplares de funcionamiento de acuerdo con las técnicas descritas en esta divulgación. En la FIG. 9A, un dispositivo decodificador de vídeo 30, o un decodificador de referencia hipotético 57, de un dispositivo codificador de vídeo 20 (en adelante, "el decodificador") recibe una secuencia de vídeo codificado y una estructura sintáctica del conjunto de parámetros de vídeo (VPS) para la secuencia de vídeo codificado (600). La secuencia de vídeo codificado y/o la estructura sintáctica del VPS pueden ser codificadas a un flujo de bits que incluye una o más imágenes codificadas.
De acuerdo a las técnicas descritas en este documento, el decodificador procesa la estructura sintáctica del VPS para extraer elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal, lo que se produce directamente y, como máximo, una vez en la estructura sintáctica del VPS para la secuencia de vídeo codificado (602). El decodificador puede entonces verificar la conformidad de la secuencia de vídeo codificado con un modelo de almacenamiento temporal de vídeo que está definido, al menos en parte, por los valores para el número de unidades en un pulso de reloj y la escala temporal, tal como se extraen de la estructura sintáctica del VPS y como se leen a partir de los elementos sintácticos correspondientes (604).
En la FIG. 9B, el decodificador recibe una secuencia de vídeo codificado y una estructura sintáctica del conjunto de parámetros de vídeo (SPS) para la secuencia de vídeo codificado (610). La secuencia de vídeo codificado y/o las estructuras sintácticas del SPS pueden ser codificadas a un flujo de bits que incluye una o más imágenes codificadas.
De acuerdo a las técnicas descritas en este documento, el decodificador procesa la estructura sintáctica del SPS para extraer elementos sintácticos para el número de unidades en un pulso de reloj y la escala temporal, lo que se produce directamente y, como máximo, una vez en la estructura sintáctica del SPS para la secuencia de vídeo codificado (612). El decodificador puede entonces verificar la conformidad de la secuencia de vídeo codificado con un modelo de almacenamiento temporal de vídeo que está definido, al menos en parte, por los valores para el número de unidades en un pulso de reloj y la escala temporal, según se extraen de la estructura sintáctica del SPS y se leen a partir de los elementos sintácticos correspondientes (614).
La FIG. 10 es un diagrama de flujo que ilustra un procedimiento ejemplar de operación según las técnicas descritas en esta divulgación. En la FIG. 10, un dispositivo decodificador de vídeo 30, o un decodificador de referencia hipotético 57 de un dispositivo codificador de vídeo 20 (en adelante, "el decodificador"), recibe una secuencia de vídeo codificado y una estructura sintáctica del conjunto de parámetros de vídeo (VPS) para la secuencia de vídeo codificado (700). La secuencia de vídeo codificada y/o la estructura sintáctica del VPS pueden ser codificadas a un flujo de bits que incluye una o más imágenes codificadas.
El decodificador procesa la estructura sintáctica del VPS para extraer un elemento sintáctico que especifica si el valor de recuento del orden de imágenes, para cada imagen en la secuencia de vídeo codificado que no sea la primera imagen en la secuencia de vídeo codificado, en orden de decodificación, es o no proporcional al tiempo de salida de la imagen en relación con el tiempo de salida de la primera imagen en la secuencia de vídeo codificado (702). Si el valor del elemento sintáctico es verdadero, entonces el decodificador procesa adicionalmente la estructura sintáctica del VPS para extraer un elemento sintáctico para el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a uno (706). El decodificador puede entonces verificar la conformidad de la secuencia de vídeo codificado con un modelo de almacenamiento temporal de vídeo que está definido, al menos en parte, por el valor para el número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes igual a uno, extraído de la estructura sintáctica del VPS y según se lee a partir del elemento sintáctico correspondiente (708).
En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier
combinación de los mismos. Si se implementan en software, las funciones, como una o más instrucciones o código, pueden almacenarse en, o 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 medios de almacenamiento de datos o medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, según un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, generalmente, a (1) medios de almacenamiento tangibles y legibles por ordenador, que sean 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 pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
A modo de ejemplo, y no de 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 puede denominarse adecuadamente un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas 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. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco de láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos normalmente reproducen datos de manera magnética, mientras que otros discos reproducen los datos de manera óptica con láser. Las combinaciones de lo anterior también deberían incluirse dentro del alcance de los medios legibles por ordenador.
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), formaciones lógicas programables en el terreno (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. Por consiguiente, el término "procesador", como se usa en el presente documento, puede referirse a cualquier estructura anterior 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 hardware especializado y/o módulos de software configurados para la codificación y la decodificación, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un equipo de mano inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Varios 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 la realización mediante diferentes unidades de hardware. Más bien, como se ha descrito anteriormente, pueden combinarse diversas unidades en una unidad de hardware de códec, o ser proporcionadas por una colección de unidades de hardware inter-operativas, incluyendo uno o más procesadores, como se ha descrito anteriormente, conjuntamente con el software y/o firmware adecuado.
Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.
Claims (13)
- REIVINDICACIONES1. Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento:5 recibir (500) una secuencia de vídeo codificado que comprende imágenes codificadas de una secuencia de vídeo; y recibir parámetros de temporización de la secuencia de vídeo codificado; caracterizado por que los parámetros de temporización incluyen una condición para la señalización (502) de un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de10 imágenes, POC, igual a 1, directamente en al menos uno entre una estructura sintáctica de un conjunto de parámetros de vídeo, VPS, mencionado por la secuencia de vídeo codificado, y una estructura sintáctica de un conjunto de parámetros de secuencia, SPS, mencionado por la secuencia de vídeo codificado.
- 2. El procedimiento de la reivindicación 1, en el que la recepción de la secuencia de vídeo codificado comprende15 recibir un flujo de bits codificado que comprende una secuencia de bits que forma una representación de las imágenes codificadas, comprendiendo además el procedimiento:la verificación de la conformidad del flujo de bits codificado con un modelo de almacenamiento temporal de vídeo de una memoria intermedia de imágenes codificadas y una memoria intermedia de imágenes 20 decodificadas, definido, al menos en parte, por la condición.
- 3. El procedimiento de la reivindicación 1, en el que la recepción de los parámetros de temporización para la secuencia de vídeo codificado comprende además:25 recibir una escala temporal y un número de unidades en un pulso de reloj en al menos una entre la estructura sintáctica del VPS y la estructura sintáctica del SPS.
- 4. El procedimiento de la reivindicación 1, en el que la estructura sintáctica del VPS incluye la condición comoun elemento sintáctico indicador_vps_poc_proporcional_a_temporización. 30
-
- 5.
- El procedimiento de la reivindicación 1, en el que la estructura sintáctica del SPS incluye la condición como un elemento sintáctico indicador_sps_poc_proporcional_a_temporización.
-
- 6.
- Un procedimiento de codificación de datos de vídeo, procedimiento que comprende:
35 codificación de imágenes (200) de una secuencia de vídeo para generar una secuencia de vídeo codificado que comprende las imágenes codificadas; y señalización de parámetros de temporización para la secuencia de vídeo codificado; caracterizado por señalizar directamente (204) una condición para la señalización de un número de pulsos de40 reloj que corresponden a una diferencia de valores de recuento del orden de imágenes, POC, igual a 1, en al menos una entre una estructura sintáctica del conjunto de parámetros de vídeo, VPS, mencionada por la secuencia de vídeo codificado, y una estructura sintáctica del conjunto de parámetros de secuencia, SPS, mencionada por la secuencia de vídeo codificado.45 7. El procedimiento según la reivindicación 6, en el que la señalización de los parámetros temporales comprende además:señalización de una escala temporal y un número de unidades en un pulso de reloj, en al menos una entre la estructura sintáctica del VPS y la estructura sintáctica del SPS. 50 - 8. El procedimiento de la reivindicación 6, en el que la señalización de la condición en la estructura sintáctica del VPS comprende la señalización de la condición como un elemento sintáctico indicador_vps_poc_proporcional_a_temporización.55 9. El procedimiento de la reivindicación 6, en el que la señalización de la condición en la estructura sintáctica del SPS comprende la señalización de la condición como un elemento sintáctico indicador_sps_poc_proporcional_a_temporización.
- 10. El procedimiento de la reivindicación 6, que comprende además:60 la generación de un flujo de bits codificado que comprende una secuencia de bits que forma una representación de las imágenes codificadas, en el que los parámetros de temporización definen, al menos en parte, un modelo de almacenamiento temporal de vídeo de una memoria intermedia de imágenes codificadas y una memoria intermedia de65 imágenes decodificadas para la verificación de la conformidad del flujo de bits codificado.
-
- 11.
- El procedimiento de la reivindicación 1 o la reivindicación 6, en el que los parámetros de temporización comprenden parámetros de temporización para las operaciones de decodificación de referencia hipotética.
-
- 12.
- El procedimiento de la reivindicación 1 o la reivindicación 6, en el que la condición no incluye una
5 dependencia de un elemento sintáctico en una estructura sintáctica de parámetros del decodificador de referencia hipotética, HRD, de la estructura sintáctica del VPS o la estructura sintáctica del SPS. - 13. Un dispositivo para procesar datos de vídeo que comprende:10 medios para recibir una secuencia de vídeo codificado que comprende imágenes codificadas de una secuencia de vídeo; y medios para recibir parámetros de temporización para la secuencia de vídeo codificado; caracterizado por incluir los medios para recibir parámetros de temporización medios para recibir una condición para la señalización de un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del15 orden de imágenes, POC, igual a 1, directamente en al menos una entre una estructura sintáctica del conjunto de parámetros de vídeo, VPS, mencionada por la secuencia de vídeo codificado, y una estructura sintáctica del conjunto de parámetros de secuencia, SPS, mencionada por la secuencia de vídeo codificado.
- 14. Un aparato para la codificación de datos de vídeo, que comprende:20 medios para codificar imágenes de una secuencia de vídeo, para generar una secuencia de vídeo codificado que comprende las imágenes codificadas; y medios para la señalización de parámetros de temporización para la secuencia de vídeo codificado; caracterizado por que los medios para la señalización de parámetros de temporización señalizan25 directamente una condición para la señalización de un número de pulsos de reloj que corresponden a una diferencia de valores de recuento del orden de imágenes, POC, igual a 1, en al menos una entre una estructura sintáctica del conjunto de parámetros de vídeo, VPS, mencionada por la secuencia de vídeo codificado, y una estructura sintáctica del conjunto de parámetros de secuencia, SPS, mencionada por la secuencia de vídeo codificado.
- 15. Un medio de almacenamiento legible por ordenador no transitorio que almacena instrucciones que, tras su ejecución por uno o más procesadores, hacen que el uno o más procesadores realicen el procedimiento de una cualquiera de las reivindicaciones 1 a 12.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361749866P | 2013-01-07 | 2013-01-07 | |
| US201361749866P | 2013-01-07 | ||
| US201314061130 | 2013-10-23 | ||
| US14/061,130 US9369711B2 (en) | 2013-01-07 | 2013-10-23 | Conditional signaling of picture order count timing information for video timing in video coding |
| PCT/US2013/077267 WO2014107360A1 (en) | 2013-01-07 | 2013-12-20 | Conditional signaling of picture order count timing information for video timing in video coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2613136T3 true ES2613136T3 (es) | 2017-05-22 |
Family
ID=51060946
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13821600.7T Active ES2613136T3 (es) | 2013-01-07 | 2013-12-20 | Señalización condicional de información de temporización de recuento del orden de imágenes para la temporización de vídeo en la codificación de vídeo |
| ES13826911.3T Active ES2630831T3 (es) | 2013-01-07 | 2013-12-20 | Señalización de relaciones entre el recuento de orden de imágenes y la información de temporización, para la temporización de vídeo en la codificación de vídeo |
| ES13821601.5T Active ES2613003T3 (es) | 2013-01-07 | 2013-12-20 | Señalización de información de obtención de pulso de reloj para la temporización de vídeo en la codificación de vídeo |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13826911.3T Active ES2630831T3 (es) | 2013-01-07 | 2013-12-20 | Señalización de relaciones entre el recuento de orden de imágenes y la información de temporización, para la temporización de vídeo en la codificación de vídeo |
| ES13821601.5T Active ES2613003T3 (es) | 2013-01-07 | 2013-12-20 | Señalización de información de obtención de pulso de reloj para la temporización de vídeo en la codificación de vídeo |
Country Status (28)
| Country | Link |
|---|---|
| US (3) | US9369711B2 (es) |
| EP (3) | EP2941888B1 (es) |
| JP (4) | JP6411368B2 (es) |
| KR (3) | KR101719940B1 (es) |
| CN (3) | CN104904223B (es) |
| AP (3) | AP2015008575A0 (es) |
| AR (3) | AR095293A1 (es) |
| AU (3) | AU2013371450B2 (es) |
| BR (3) | BR112015016253B1 (es) |
| CA (3) | CA2894549C (es) |
| DK (3) | DK2941886T3 (es) |
| EA (3) | EA026630B1 (es) |
| EC (3) | ECSP15034553A (es) |
| ES (3) | ES2613136T3 (es) |
| HU (3) | HUE032261T2 (es) |
| IL (3) | IL239302A (es) |
| MA (3) | MA38236B1 (es) |
| MY (3) | MY171807A (es) |
| PH (3) | PH12015501490B1 (es) |
| PL (3) | PL2941885T3 (es) |
| PT (3) | PT2941885T (es) |
| SA (3) | SA515360724B1 (es) |
| SG (3) | SG11201504553WA (es) |
| SI (3) | SI2941888T1 (es) |
| TW (3) | TWI520588B (es) |
| UA (3) | UA115163C2 (es) |
| WO (3) | WO2014107361A1 (es) |
| ZA (1) | ZA201505418B (es) |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015510354A (ja) * | 2012-02-08 | 2015-04-02 | トムソン ライセンシングThomson Licensing | 仮想参照復号器の超低遅延モードを用いるための方法および装置 |
| US9374585B2 (en) * | 2012-12-19 | 2016-06-21 | Qualcomm Incorporated | Low-delay buffering model in video coding |
| US9369711B2 (en) | 2013-01-07 | 2016-06-14 | Qualcomm Incorporated | Conditional signaling of picture order count timing information for video timing in video coding |
| WO2015008464A1 (en) * | 2013-07-14 | 2015-01-22 | Sharp Kabushiki Kaisha | Video parameter set signaling |
| KR101851479B1 (ko) * | 2014-01-03 | 2018-04-23 | 노키아 테크놀로지스 오와이 | 파라미터 세트 코딩 |
| CN110506421B (zh) * | 2017-03-20 | 2023-11-07 | 夏普株式会社 | 用于以媒体应用程序格式发信号通知可伸缩视频的系统和方法 |
| US10721608B2 (en) * | 2017-12-15 | 2020-07-21 | Motorola Solutions, Inc. | Profiles in deployable wireless communications systems |
| EP4280607A3 (en) | 2018-07-01 | 2024-02-21 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture order count values for pictures included in coded video |
| CN110832868A (zh) * | 2018-08-31 | 2020-02-21 | 深圳市大疆创新科技有限公司 | 编码方法、解码方法、编码设备和解码设备 |
| WO2020093999A1 (en) | 2018-11-05 | 2020-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Inter prediction with refinement in video processing |
| EP4380160A3 (en) * | 2019-02-21 | 2024-07-03 | Panasonic Intellectual Property Corporation of America | Encoder, decoder, encoding method, and decoding method |
| EP4236325B1 (en) | 2019-03-11 | 2024-09-18 | Dolby Laboratories Licensing Corporation | Signalling of information related to shutter angle |
| US12113969B2 (en) * | 2019-03-11 | 2024-10-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Video coding involving GOP-based temporal filtering |
| EP3939317B1 (en) | 2019-03-11 | 2024-10-23 | Dolby Laboratories Licensing Corporation | Video coding using reference picture resampling supporting region of interest |
| WO2020213865A1 (ko) | 2019-04-15 | 2020-10-22 | 엘지전자 주식회사 | 스케일링 리스트 기반 비디오 또는 영상 코딩 |
| CN116233436B (zh) * | 2019-06-20 | 2025-03-21 | 腾讯美国有限责任公司 | 视频解码方法、设备和计算机可读存储介质 |
| CN114208202B (zh) | 2019-08-06 | 2025-05-13 | 杜比实验室特许公司 | 用于画布尺寸可伸缩的视频编码的方法和装置 |
| WO2021033774A1 (en) * | 2019-08-21 | 2021-02-25 | Sharp Kabushiki Kaisha | Systems and methods for signaling buffering period information in video coding |
| CN114303377B (zh) * | 2019-09-11 | 2025-09-16 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法、解码方法和比特流生成装置 |
| JP7305883B2 (ja) * | 2019-09-17 | 2023-07-10 | ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド | Prof(prediction refinement with optical flow)の方法および装置 |
| US11716488B2 (en) * | 2019-09-20 | 2023-08-01 | Qualcomm Incorporated | Subpicture signaling in high-level syntax for video coding |
| IL291689B2 (en) | 2019-09-24 | 2025-07-01 | Huawei Tech Co Ltd | Hypothetical Source Decoder (HRD) for checking the suitability of output layer sets (OLS) |
| EP4026094A4 (en) * | 2019-10-07 | 2022-11-09 | Huawei Technologies Co., Ltd. | VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC) TIME INFORMATION |
| WO2021022265A2 (en) * | 2019-10-07 | 2021-02-04 | Futurewei Technologies, Inc. | Video-based point cloud compression (v-pcc) component synchronization |
| WO2021125145A1 (en) * | 2019-12-18 | 2021-06-24 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture output resolution in video coding |
| US20230057736A1 (en) * | 2019-12-23 | 2023-02-23 | Lg Electronics Inc. | Image coding apparatus and method based on sub-picture |
| JP7405990B2 (ja) | 2019-12-26 | 2023-12-26 | バイトダンス インコーポレイテッド | コーディングされたピクチャ内における復号順を実装する技術 |
| US20210235124A1 (en) * | 2020-01-29 | 2021-07-29 | Qualcomm Incorporated | Decoded picture buffer (dpb) parameter signaling for video coding |
| CN115552909A (zh) * | 2020-05-19 | 2022-12-30 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法、以及解码方法 |
| CN114724218A (zh) * | 2022-04-08 | 2022-07-08 | 北京中科闻歌科技股份有限公司 | 视频检测方法、装置、设备及介质 |
| CN116800976B (zh) * | 2023-07-17 | 2024-03-12 | 武汉星巡智能科技有限公司 | 伴睡婴幼儿时音视频压缩和还原方法、装置及设备 |
| WO2025252056A1 (en) * | 2024-06-03 | 2025-12-11 | Mediatek Inc. | Indication of first coded picture for video coding |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1395948A2 (en) | 1999-11-29 | 2004-03-10 | Koninklijke Philips Electronics N.V. | Method for coding and decoding multimedia data |
| WO2002080541A1 (en) | 2001-03-29 | 2002-10-10 | Matsushita Electric Industrial Co., Ltd. | Av data recording/reproducing apparatus and method and disc on which data is recorded by the av data recording/reproducing apparatus or method |
| US6728315B2 (en) | 2002-07-24 | 2004-04-27 | Apple Computer, Inc. | Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations |
| WO2005074295A1 (en) | 2004-01-16 | 2005-08-11 | General Instrument Corporation | Method, protocol, and apparatus for transporting advanced video coding content |
| KR101116965B1 (ko) * | 2004-08-31 | 2012-03-14 | 파나소닉 주식회사 | 동화상 부호화 방법 및 장치 |
| TWI401918B (zh) | 2005-02-03 | 2013-07-11 | Nokia Corp | 傳送指示接收器緩衝架構之緩衝參數信號的通訊方法 |
| KR101450921B1 (ko) * | 2006-07-05 | 2014-10-15 | 톰슨 라이센싱 | 멀티뷰 비디오 엔코딩 및 디코딩을 위한 방법 및 장치 |
| MX339121B (es) * | 2006-07-06 | 2016-05-12 | Thomson Licensing | Metodo y aparato para desacoplar el numero de cuadro y/o la cuenta del orden de imagen (poc) para la codificación y decodificación de video de múltiples vistas. |
| CN101491079A (zh) * | 2006-07-11 | 2009-07-22 | 汤姆逊许可证公司 | 用在多视角视频编码中的方法和装置 |
| EP2103136B1 (en) * | 2006-12-21 | 2017-11-01 | Thomson Licensing | Methods and apparatus for improved signaling using high level syntax for multi-view video coding and decoding |
| KR20090099547A (ko) * | 2007-01-04 | 2009-09-22 | 톰슨 라이센싱 | 멀티뷰 코딩 비디오에서 비디오 에러 정정을 위한 방법 및 장치 |
| KR20090099546A (ko) * | 2007-01-04 | 2009-09-22 | 톰슨 라이센싱 | 멀티 뷰 코딩된 비디오에서 높은 레벨의 신택스 레퍼런스 뷰들을 이용하여 비디오 에러 은닉을 행하는 방법 및 장치 |
| MY162367A (en) * | 2007-01-05 | 2017-06-15 | Thomson Licensing | Hypothetical reference decoder for scalable video coding |
| WO2008125900A1 (en) | 2007-04-13 | 2008-10-23 | Nokia Corporation | A video coder |
| KR101633576B1 (ko) | 2007-04-17 | 2016-06-27 | 톰슨 라이센싱 | 멀티뷰 비디오 코딩을 위한 가설의 참조 디코더 |
| EP2528344A1 (en) | 2007-04-18 | 2012-11-28 | Thomson Licensing | Coding method using supplemental sequence parameter set for multi-view coding |
| JP5568465B2 (ja) | 2008-09-18 | 2014-08-06 | パナソニック株式会社 | 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法およびプログラム |
| CN104702960B (zh) * | 2009-01-26 | 2018-01-02 | 汤姆森特许公司 | 用于视频解码的装置 |
| WO2010086501A1 (en) | 2009-01-28 | 2010-08-05 | Nokia Corporation | Method and apparatus for video coding and decoding |
| JP5332773B2 (ja) * | 2009-03-18 | 2013-11-06 | ソニー株式会社 | 画像処理装置および方法 |
| US8731053B2 (en) | 2009-11-18 | 2014-05-20 | Tektronix, Inc. | Method of multiplexing H.264 elementary streams without timing information coded |
| US8934552B2 (en) * | 2011-03-31 | 2015-01-13 | Qualcomm Incorporated | Combined reference picture list construction and mapping |
| US20120287999A1 (en) * | 2011-05-11 | 2012-11-15 | Microsoft Corporation | Syntax element prediction in error correction |
| US10154276B2 (en) | 2011-11-30 | 2018-12-11 | Qualcomm Incorporated | Nested SEI messages for multiview video coding (MVC) compatible three-dimensional video coding (3DVC) |
| US9369711B2 (en) | 2013-01-07 | 2016-06-14 | Qualcomm Incorporated | Conditional signaling of picture order count timing information for video timing in video coding |
-
2013
- 2013-10-23 US US14/061,130 patent/US9369711B2/en active Active
- 2013-10-23 US US14/061,215 patent/US9325992B2/en active Active
- 2013-10-23 US US14/061,260 patent/US9374581B2/en active Active
- 2013-12-20 BR BR112015016253-3A patent/BR112015016253B1/pt active IP Right Grant
- 2013-12-20 AU AU2013371450A patent/AU2013371450B2/en active Active
- 2013-12-20 AP AP2015008575A patent/AP2015008575A0/xx unknown
- 2013-12-20 KR KR1020157020978A patent/KR101719940B1/ko active Active
- 2013-12-20 CA CA2894549A patent/CA2894549C/en active Active
- 2013-12-20 CN CN201380069315.5A patent/CN104904223B/zh active Active
- 2013-12-20 SG SG11201504553WA patent/SG11201504553WA/en unknown
- 2013-12-20 WO PCT/US2013/077279 patent/WO2014107361A1/en not_active Ceased
- 2013-12-20 PH PH1/2015/501490A patent/PH12015501490B1/en unknown
- 2013-12-20 UA UAA201507853A patent/UA115163C2/uk unknown
- 2013-12-20 PT PT138216007T patent/PT2941885T/pt unknown
- 2013-12-20 MY MYPI2015701872A patent/MY171807A/en unknown
- 2013-12-20 EP EP13826911.3A patent/EP2941888B1/en active Active
- 2013-12-20 HU HUE13821601A patent/HUE032261T2/en unknown
- 2013-12-20 PT PT138269113T patent/PT2941888T/pt unknown
- 2013-12-20 EA EA201591282A patent/EA026630B1/ru unknown
- 2013-12-20 AU AU2013371449A patent/AU2013371449B2/en active Active
- 2013-12-20 PT PT138216015T patent/PT2941886T/pt unknown
- 2013-12-20 EA EA201591289A patent/EA026507B1/ru unknown
- 2013-12-20 PL PL13821600T patent/PL2941885T3/pl unknown
- 2013-12-20 DK DK13821601.5T patent/DK2941886T3/en active
- 2013-12-20 DK DK13826911.3T patent/DK2941888T3/en active
- 2013-12-20 BR BR112015016230-4A patent/BR112015016230B1/pt active IP Right Grant
- 2013-12-20 EP EP13821600.7A patent/EP2941885B1/en active Active
- 2013-12-20 WO PCT/US2013/077283 patent/WO2014107362A1/en not_active Ceased
- 2013-12-20 ES ES13821600.7T patent/ES2613136T3/es active Active
- 2013-12-20 KR KR1020157021037A patent/KR101788427B1/ko active Active
- 2013-12-20 KR KR1020157020979A patent/KR101711318B1/ko active Active
- 2013-12-20 SI SI201330479A patent/SI2941888T1/sl unknown
- 2013-12-20 JP JP2015551714A patent/JP6411368B2/ja active Active
- 2013-12-20 SG SG11201504535TA patent/SG11201504535TA/en unknown
- 2013-12-20 HU HUE13826911A patent/HUE032248T2/en unknown
- 2013-12-20 JP JP2015551713A patent/JP6337010B2/ja active Active
- 2013-12-20 CN CN201380069313.6A patent/CN104904222B/zh active Active
- 2013-12-20 PL PL13826911T patent/PL2941888T3/pl unknown
- 2013-12-20 UA UAA201507855A patent/UA116645C2/uk unknown
- 2013-12-20 ES ES13826911.3T patent/ES2630831T3/es active Active
- 2013-12-20 CA CA2894704A patent/CA2894704C/en active Active
- 2013-12-20 ES ES13821601.5T patent/ES2613003T3/es active Active
- 2013-12-20 SI SI201330500A patent/SI2941885T1/sl unknown
- 2013-12-20 SG SG11201504538WA patent/SG11201504538WA/en unknown
- 2013-12-20 WO PCT/US2013/077267 patent/WO2014107360A1/en not_active Ceased
- 2013-12-20 EA EA201591235A patent/EA032226B1/ru unknown
- 2013-12-20 PL PL13821601T patent/PL2941886T3/pl unknown
- 2013-12-20 MY MYPI2015701871A patent/MY169409A/en unknown
- 2013-12-20 EP EP13821601.5A patent/EP2941886B1/en active Active
- 2013-12-20 CN CN201380069312.1A patent/CN104885469B/zh active Active
- 2013-12-20 CA CA2894900A patent/CA2894900C/en active Active
- 2013-12-20 MA MA38236A patent/MA38236B1/fr unknown
- 2013-12-20 JP JP2015551712A patent/JP6203866B2/ja active Active
- 2013-12-20 MY MYPI2015701885A patent/MY176139A/en unknown
- 2013-12-20 UA UAA201507854A patent/UA114946C2/uk unknown
- 2013-12-20 HU HUE13821600A patent/HUE032327T2/en unknown
- 2013-12-20 BR BR112015016256-8A patent/BR112015016256B1/pt active IP Right Grant
- 2013-12-20 SI SI201330480A patent/SI2941886T1/sl unknown
- 2013-12-20 DK DK13821600.7T patent/DK2941885T3/en active
- 2013-12-20 AP AP2015008583A patent/AP2015008583A0/xx unknown
- 2013-12-20 AU AU2013371451A patent/AU2013371451B2/en active Active
- 2013-12-20 AP AP2015008577A patent/AP2015008577A0/xx unknown
-
2014
- 2014-01-06 TW TW103100409A patent/TWI520588B/zh active
- 2014-01-06 TW TW103100410A patent/TWI562620B/zh active
- 2014-01-06 TW TW103100414A patent/TWI524744B/zh active
- 2014-01-07 AR ARP140100057A patent/AR095293A1/es active IP Right Grant
- 2014-01-07 AR ARP140100058A patent/AR095294A1/es active IP Right Grant
- 2014-01-07 AR ARP140100056A patent/AR095292A1/es active IP Right Grant
-
2015
- 2015-06-09 IL IL239302A patent/IL239302A/en active IP Right Grant
- 2015-06-09 IL IL239301A patent/IL239301A/en active IP Right Grant
- 2015-06-09 IL IL239303A patent/IL239303A/en active IP Right Grant
- 2015-06-17 PH PH12015501374A patent/PH12015501374B1/en unknown
- 2015-07-06 PH PH12015501525A patent/PH12015501525B1/en unknown
- 2015-07-06 SA SA515360724A patent/SA515360724B1/ar unknown
- 2015-07-06 MA MA38235A patent/MA38235B1/fr unknown
- 2015-07-07 SA SA515360730A patent/SA515360730B1/ar unknown
- 2015-07-07 SA SA515360731A patent/SA515360731B1/ar unknown
- 2015-07-07 MA MA38241A patent/MA38241B1/fr unknown
- 2015-07-28 ZA ZA2015/05418A patent/ZA201505418B/en unknown
- 2015-08-07 EC ECIEPI201534553A patent/ECSP15034553A/es unknown
- 2015-08-07 EC ECIEPI201534549A patent/ECSP15034549A/es unknown
- 2015-08-07 EC ECIEPI201534547A patent/ECSP15034547A/es unknown
-
2017
- 2017-05-26 JP JP2017104429A patent/JP6382395B2/ja active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2613136T3 (es) | Señalización condicional de información de temporización de recuento del orden de imágenes para la temporización de vídeo en la codificación de vídeo | |
| ES2750957T3 (es) | Señalización de predictores de paleta con código de longitud de ejecución para codificación de vídeo | |
| ES2605392T3 (es) | Refinamiento progresivo con soporte de ajustabilidad temporal a escala en la codificación de vídeo | |
| ES2663444T3 (es) | Información de temporización de codificación para codificación de vídeo | |
| ES2765038T3 (es) | Modelo de almacenamiento intermedio de bajo retardo en codificación de vídeo | |
| ES2611349T3 (es) | Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo | |
| ES2739690T3 (es) | Codificación en modo paleta para codificación de vídeo | |
| ES2647948T3 (es) | Reutilización de conjuntos de parámetros para la codificación de vídeo | |
| ES2742026T3 (es) | Determinación de vector de movimiento para codificación de vídeo | |
| ES2869854T3 (es) | Unificar copia intrabloque e interpredicción | |
| ES2744235T3 (es) | Actualizaciones de conjuntos de parámetros en la codificación de vídeo | |
| ES2736312T3 (es) | Señalización de imágenes de referencia a largo plazo para codificación de vídeo | |
| ES2874848T3 (es) | Restricción de unidades de predicción en segmentos b a interpredicción unidireccional | |
| ES2895270T3 (es) | Codificación de mensajes SEI de MCTS-EIS de una unidad de acceso | |
| ES2777214T3 (es) | Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo | |
| ES2707892T3 (es) | Operaciones de almacenamiento en memoria intermedia de vídeo para acceso aleatorio en la codificación de vídeo | |
| ES2684546T3 (es) | Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados | |
| ES2856099T3 (es) | Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo |