ES2630831T3 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- ES2630831T3 ES2630831T3 ES13826911.3T ES13826911T ES2630831T3 ES 2630831 T3 ES2630831 T3 ES 2630831T3 ES 13826911 T ES13826911 T ES 13826911T ES 2630831 T3 ES2630831 T3 ES 2630831T3
- Authority
- ES
- Spain
- Prior art keywords
- video sequence
- image
- video
- encoded video
- encoded
- 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, procedimiento que comprende: recepción (700) de una secuencia de vídeo codificado que comprende imágenes codificadas de una secuencia de vídeo; y recepción (702) de los parámetros de temporización para la secuencia de vídeo codificado, que incluyen una indicación de si un valor del recuento de orden de imágenes, POC, para cada imagen en la secuencia de vídeo codificado, que no sea una primera imagen en la secuencia de vídeo codificado, según un orden de decodificación, es proporcional a un tiempo de salida de la imagen en relación con un tiempo de salida de la primera imagen en la secuencia de vídeo codificado, en una estructura sintáctica del conjunto de parámetros de vídeo, VPS, a la que hace referencia la secuencia de vídeo codificado.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Senalizacion de relaciones entre el recuento de orden de imageries y la informacion de temporizacion, para la temporizacion de video en la codificacion de video
Esta solicitud reivindica el beneficio de la solicitud provisional estadounidense N° 61/749.866, presentada el 7 de enero de 2013.
Campo tecnico
Esta divulgacion se refiere a la codificacion de video y al procesamiento de video y, mas en particular, a tecnicas para la senalizacion de informacion de temporizacion en informacion de video.
Antecedentes
Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusion directa digital, sistemas de difusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados telefonos "inteligentes", dispositivos de videoconferencia, dispositivos de transmision por flujo de video, y similares. Los dispositivos de video digital implementan tecnicas de compresion de video, 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, Codificacion Avanzada de Video (AVC) (H.264/AVC), la norma de codificacion de video de alta eficacia (HEVC) y las extensiones de tales normas. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar y/o almacenar informacion de video digital mas eficazmente, implementando tales tecnicas de compresion de video.
Las tecnicas de compresion de video llevan a cabo la prediccion espacial (intra-imagen) y/o la prediccion temporal (entre imagenes) para reducir o eliminar la redundancia intrinseca en las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (por ejemplo, una trama de video o una parte de una trama de video) puede dividirse en bloques de video, que tambien pueden denominarse bloques arbolados, unidades de codificacion (CU) y/o nodos de codificacion. Los bloques de video en un fragmento intra-codificado (I) de una imagen son codificados usando la prediccion espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen. Los bloques de video de un fragmento inter-codificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen, o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas, y las imagenes de referencia pueden denominarse tramas de referencia.
La prediccion espacial o temporal utiliza un bloque predictivo. Los datos residuales representan diferencias de pixeles entre el bloque original a codificar y el bloque predictivo. Un bloque inter-codificado se codifica segun 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 segun una modalidad de intra-codificacion y los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pixeles a un dominio de transformacion, dando como resultado coeficientes de transformacion residuales, los cuales pueden cuantizarse posteriormente. Los coeficientes de transformacion cuantizados, inicialmente dispuestos en una formacion bidimensional, pueden recorrerse con el fin de producir un vector unidimensional de coeficientes de transformacion, y puede aplicarse codificacion por entropia para lograr aun mas compresion.
Una secuencia dada de video codificado para un flujo de bits incluye una secuencia ordenada de imagenes codificadas. En las normas H.264 / AVC y HEVC, el orden de decodificacion de las imagenes codificadas para un flujo de bits es equivalente a la secuencia ordenada. Sin embargo, las normas tambien dan soporte a un orden de salida de imagenes decodificadas, que difiere del orden de decodificacion, y en tales casos cada una de las imagenes codificadas se asocia a un valor de recuento de orden de imagenes (POC) que especifica el orden de salida de la imagen en la secuencia de video.
La informacion de temporizacion de video para una secuencia de video se puede senalizar en los elementos sintacticos de una o mas estructuras sintacticas (denominadas alternativamente "estructuras de conjuntos de parametros" o simplemente "conjuntos de parametros"). Las estructuras sintacticas pueden incluir un conjunto de parametros de secuencia (SPS) que incluye informacion de codificacion que se aplica a todos los fragmentos de una secuencia de video codificada. El SPS puede por si mismo incluir parametros denominados informacion de facilidad de uso de video (VUI), que incluyen informacion de decodificador de referencia hipotetico (HRD), asi como informacion para mejorar el uso de la secuencia de video correspondiente para diversos fines. La misma informacion de HRD puede senalizarse usando una estructura sintactica de HRD incluible dentro de otras estructuras sintacticas como la estructura sintactica de VUI. Las estructuras sintacticas tambien pueden incluir un conjunto de parametros de video (VPS) que describe las caracteristicas de una secuencia de video correspondiente, tales como elementos
5
10
15
20
25
30
35
40
45
sintacticos comunes compartidos por multiples capas o puntos de operacion, asi como otra informacion del punto de operacion, que pueden ser comunes a varios conjuntos de parametros de secuencia, tal como informacion de HRD para diversas capas o subcapas.
Se hace referencia a las siguientes propuestas al JCTVC:
- Documento N°
- Autor Titulo Fecha
- JCTVC-K1003
- Brass B et al "Codificacion de video de alta eficacia (HEVC) - borrador de memoria descriptiva textual 9 (SoDIS) - version v1" 21/10/2012
- JCTVC-J0272
- Haque M et al "Simplificaciones de los parametros de HRD para la ajustabilidad temporal a escala" 03/07/2012
- JCTVC-J0548
- Haque M et al "AHG10: disenos sintacticos de VUI y HRD acordados por el BoG sobre vPs y NUH" 11/07/2012
- JCTVC-J0570
- Wang Y-K “AHG9: Sobre el indicador_de_velocidad_de_imagen_fija’ 15/07/2012
- JCTVC-K0125
- Wang Y-K et al “AHG9: Sobre el conjunto de parametros de video 01/10/2012
Tambien se hace referencia a los artfculos siguientes:
D Sachin et al "Un decodificador de referencia hipotetico mejorado para HEVC", Actas de SPIE, vol 8666, el 21 de febrero de 2013, pagina 866608;
J. Webb "Conformidad con HRD para la codificacion de video en tiempo real de la norma H.264", Conferencia Internacional del IEEE sobre Procesamiento de Imagenes, 1 de septiembre de 2007;
P Chou et al, "Un decodificador de referencia hipotetico generalizado para la norma H.264/AVC", Transacciones del IEEE sobre Circuitos y Sistemas para Tecnologia de Video, vol. 13, N° 7, paginas 674 a 687, 1 de julio de 2008.
Tambien se hace referencia a la siguiente propuesta para JCT3V:
- Documento N°
- Autor Titulo Fecha
- JCT3V-A0099
- Chen Y et al “3D-HLS: Conjunto de parametros de video para 3D-HEVC" 11/07/2012
Sumario
La invencion se define en las reivindicaciones a las que se hace ahora referencia. En general, esta divulgacion describe tecnicas para la codificacion de video y, mas en particular, tecnicas para la senalizacion de informacion de temporizacion, por ejemplo, para especificar la temporizacion de la emision de imagenes y/o para definir un modelo de memoria intermedia, tal como un decodificador de referencia hipotetico (HRD). En algunos ejemplos, las tecnicas pueden incluir la generacion, para una secuencia de video codificada, de un flujo de bits codificado para senalizar, en una estructura sintactica del conjunto de parametros de video (VPS), un indicador que indica si el valor del recuento de orden de imagenes (POC) para cada imagen en el secuencia de video codificado, que no sea la primera imagen de la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de emision de la imagen en relacion con el tiempo de emision de la primera imagen en la secuencia de video codificado. En algunos casos, las tecnicas pueden incluir la generacion del flujo de bits codificado para senalizar el indicador en la estructura sintactica del VPS, solo si la informacion de temporizacion, en forma de elementos sintacticos de escala temporal y del numero de unidades en un pulso de reloj, tambien esta incluida en la estructura sintactica del VPS.
Los detalles de uno o mas ejemplos se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caracteristicas, objetivos y ventajas resultaran evidentes a partir de la descripcion y los dibujos, y a partir de las reivindicaciones.
Breve descripcion de los dibujos
La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificacion y decodificacion de video que puede utilizar las tecnicas descritas en esta divulgacion.
5
10
15
20
25
30
35
40
45
50
55
60
65
La FIG. 2 es un diagrama de bloques que ilustra un codificador ejemplar de video que puede implementar las tecnicas descritas en esta divulgacion.
La FIG. 3 es un diagrama de bloques que ilustra un decodificador ejemplar de video que puede implementar las tecnicas descritas en esta divulgacion.
La FIG. 4 es un diagrama de bloques que ilustra la informacion de temporizacion para una estructura ejemplar de codificacion para un conjunto de imagenes de referencia, segun las tecnicas descritas en este documento.
La FIG. 5 es un diagrama de flujo que muestra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion.
Las FIGs. 6A a 6B son diagramas de flujo que ilustran procedimientos ejemplares de funcionamiento segun las tecnicas descritas en esta divulgacion.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion.
Las FIGs. 9A a 9B son diagramas de flujo que ilustran procedimientos ejemplares de funcionamiento segun las tecnicas descritas en esta divulgacion.
La FIG. 10 es un diagrama de flujo que ilustra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion.
Descripcion detallada
Esta divulgacion describe varias tecnicas para la codificacion de video y, mas en particular, para las tecnicas para la senalizacion de informacion de temporizacion, por ejemplo, para especificar la temporizacion de emision de imagenes y/o para definir un modelo de memoria intermedia o de decodificacion, tal como un decodificador de referencia hipotetico (HRD). En general, el termino "senalizacion" se utiliza en esta divulgacion para hacer referencia a la senalizacion que tiene lugar dentro de un flujo de bits codificado. Un codificador puede generar elementos sintacticos para senalizar la informacion en un flujo de bits como parte de un proceso de codificacion de video. Un dispositivo de decodificacion, u otro dispositivo de procesamiento de video, pueden recibir un flujo de bits codificado, e interpretar los elementos sintacticos en el flujo de bits codificado como parte de un proceso de decodificacion de video u otro procesamiento de video. Por ejemplo, para indicar la temporizacion de emision para la conmutacion de una imagen dada a la siguiente imagen en una secuencia de video codificado segun el orden de salida , la informacion de temporizacion para la secuencia de video codificado puede, en algunos casos, senalizar un numero de pulsos de reloj que corresponde a una diferencia de valores del recuento de orden de imagenes (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 proxima imagen segun el orden de salida, por ejemplo, el valor de POC para la 2" imagen y el valor de POC para la 3a imagen, segun el orden de salida. La informacion de temporizacion de video puede incluir tambien una condicion que especifica si la informacion de temporizacion de video senaliza el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a uno. En otras palabras, solo si se cumple la condicion, la informacion de temporizacion de video senaliza el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a uno. En algunos casos, la condicion no se cumple y la informacion de temporizacion de video no senaliza el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a uno. El numero 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 de tiempo para la informacion senalizada) y del numero de unidades de tiempo de un reloj funcionando en la escala temporal que corresponde a un incremento de un contador de pulsos de reloj, lo que se conoce como un "pulso de reloj".
En algunos ejemplos, las tecnicas pueden incluir la generacion, para una secuencia de video codificado, de un flujo de bits codificado para senalizar, en una estructura sintactica del conjunto de parametros de video (VPS), un indicador que indica si el valor de recuento de orden de imagenes (POC) para cada imagen en la secuencia de video codificado, que no sea la primera imagen de la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado. En algunos casos, las tecnicas pueden incluir la generacion del flujo de bits codificado para senalizar el indicador en la estructura sintactica del VPS, solo si la informacion de temporizacion, en forma de elementos sintacticos de escala temporal y del numero de unidades en un pulso de reloj, tambien esta incluida en la estructura sintactica del VPS.
Las normas de codificacion de video incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-
5
10
15
20
25
30
35
40
45
50
55
60
65
2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (tambien conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificacion de video ajustable a escala (SVC) y de codificacion de video de multiples vistas (MVC).
Ademas, hay una nueva norma de codificacion de video, a saber, la codificacion de video de alta eficacia (HEVC), que esta siendo desarrollada por el Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) del Grupo de Expertos en Codificacion de Video (VCEG) de ITU-T y del Grupo de Expertos en Imagenes en Movimiento (MPEG) de ISO/IEC. El ultimo Borrador de Trabajo (DT) de la HEVC, denominado en adelante HEVC WD9, o simplemente WD9, es el articulo de Bross et al., "Memoria Descriptiva Textual de las Mejoras en la redaccion propuestas para la Codificacion de Video de Alta Eficacia (HEVC), borrador 9 (SoDIS)”, Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de la UIT-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 12s conferencia: Ginebra, Suiza, 14 a 23 de enero de 2013, disponible en
http://phenix.int- evry.fr/jct/doc_end_user/documents/12_Geneva/wgl l/JCTVC-L0030-vl.zip, a partir del 7 de enero de 2013.
http://phenix.int- evry.fr/jct/doc_end_user/documents/12_Geneva/wgl l/JCTVC-L0030-vl.zip, a partir del 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-L1003v34, de Bross et al., titulado “Memoria Descriptiva Textual de la Codificacion de Video de Alta Eficacia (HEVC), Borrador 10 (para Norma Internacional de Borrador Final y Ultima Llamada)”, Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG16 WP3 e iSo/IEC JTC1/SC29/wG11, 12s Conferencia: Ginebra, Suiza, 14 a 23 de enero de 2013, que puede descargarse en:
http://phenix.int- evry.fr/jct/doc_end_user/documents/12_Geneva/wgll/JCTVC-L1003-v34.zip.
http://phenix.int- evry.fr/jct/doc_end_user/documents/12_Geneva/wgll/JCTVC-L1003-v34.zip.
Otro borrador de la norma HEVC, denominado en el presente documento "revisiones de WDIO", se describe en el articulo de Bross et al., “Correcciones propuestas de los Redactores para la HEVC, version 1", Equipo Conjunto de Colaboracion en Codificacion de Video (JCT-VC) de la UIT-T sG|6 WP3 e ISO/IEC JTC1/SC29/WG11, 13s Conferencia, Incheon, Corea, abril de 2013, que a partir del 7 de junio de 2013, esta disponible en:
http://phenix.int- evry.fr/jct/doc_end_user/documents/13_Incheon/wgll/JCTVC-M0432-v3.zip
http://phenix.int- evry.fr/jct/doc_end_user/documents/13_Incheon/wgll/JCTVC-M0432-v3.zip
Los esfuerzos de la normalizacion de la HEVC se basan en un modelo de un dispositivo de codificacion de video denominado modelo de prueba de la HEVC (HM). El HM preve mejoras en las capacidades de los dispositivos de codificacion de video actuales con respecto a los dispositivos de codificacion de video disponibles durante el desarrollo de otras normas de codificacion de video anteriores, por ejemplo, la ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modalidades de codificacion de intra-prediccion, la norma HEVC proporciona hasta treinta y cinco modalidades de codificacion de intra-prediccion.
Las normas de codificacion de video incluyen habitualmente una memoria descriptiva de un modelo de memoria intermedia de video. En AVC y HEVC, el modelo de memoria intermedia se denomina decodificador de referencia hipotetico (HRD), que incluye un modelo de memoria intermedia tanto de memoria intermedia de imagenes codificadas (CPB) como de memoria intermedia de imagenes decodificadas (DPB). Segun se define en el HEVC WD9, un HRD es un modelo de decodificador hipotetico que especifica restricciones sobre la variabilidad de los flujos de unidades de Capa de Abstraccion de Red (NAL) o los flujos de octetos compatibles que un proceso de codificacion puede producir. Los comportamientos de la CPB y la DPB se especifican matematicamente. El HRD impone directamente restricciones sobre diferente temporizacion, tamanos de memoria intermedia y velocidades de bits, e impone indirectamente restricciones sobre caracteristicas y estadisticas de flujos de bits. Un conjunto completo de parametros de HRD incluye cinco parametros basicos, el retardo inicial de eliminacion de la CPB, el tamano de la CPB, la velocidad de bits, el retardo inicial de salida del DPB y el tamano de la DPB.
En la AVC y la HEVC, la conformidad del flujo de bits y la conformidad del decodificador se especifican como partes de la memoria descriptiva del HRD. Aunque un "Decodificador de referencia hipotetico" incluye el termino "decodificador", normalmente se necesita el HRD en el lado del codificador para garantizar la conformidad de flujo de bits y normalmente no se necesita en el lado del decodificador. Se especifican dos tipos de conformidad de flujo de bits o de HRD, concretamente Tipo I y Tipo II. Ademas, se especifican dos tipos de conformidad de decodificador, la conformidad de decodificador de la temporizacion de salida y la conformidad de decodificador del orden de salida.
En el HEVC WD9, las operaciones de HRD requieren parametros senalizados en las estructuras sintacticas parametros_hrd (), mensajes de informacion de mejora suplementaria (SEI) del periodo de almacenamiento intermedio, mensajes de SEI de temporizacion de imagenes y, a veces, tambien en mensajes de SEI de informacion de la unidad de decodificacion. Las estructuras sintacticas parametros_hrd () pueden senalizarse en el conjunto de parametros de video (VPS), el conjunto de parametros de secuencia (SPS), o cualquier combinacion de los mismos.
En el HEVC WD9, la estructura sintactica parametros_hrd () incluye elementos sintacticos para la senalizacion de informacion de temporizacion de video, incluyendo la escala temporal y el numero de unidades en un pulso de reloj. La parte de informacion de la facilidad de uso de video (VUI) del SPS incluye un indicador que indica si el valor de recuento de orden de imagenes (POC), para cada imagen de la secuencia de video codificado, que no sea la primera imagen de la secuencia de video codificado, en el orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado; si es asi, entonces el numero de pulsos de reloj correspondientes a una diferencia de valores del recuento de orden de
5
10
15
20
25
30
imageries es igual a 1.
La sirtaxis y la semantica relacioradas er el HEVC WD9 son las siguiertes. La tabla 1 muestra ura estructura sirtactica ejemplar de carga util de secuercia de octetos er bruto (RBSP) del corjurto de parametros de video, segur el WD9.
- rbsp_corjurto_de_parametros_de_v[deo () {
- Descriptor
- vps_num_parametros_hrd
- ue(v)
- para(i = 0; i < vps_rum_parametros_hrd; i++) {
- i'ndice_conjunto_po_hrd[i]
- ue(v)
- si (i> 0)
- indicador_cprms_presente[i]
- u(1)
- parametros_hrd(irdicador_cprms_presert e[i], vps max sub capas meros 1)
- }
- }
Tabla 1: Estructura sintactica ejemplar de RBSP del conjunto de parametros de video
Er la tabla 1 arterior, el elemerto sirtactico vps_rum_parametros_hrd especifica el rumero de estructuras sirtacticas parametros_hrd () presertes er la carga util de secuercia de octetos er bruto (RBSP) del corjurto de parametros de video. Er los flujos de bits corforme a esta versior de esta memoria descriptiva, el valor de vps_rum_parametros_hrd debera ser meror o igual a 1. Aurque se requiere que el valor de vps_rum_parametros_hrd sea meror o igual a 1 er el HEVC WD9, los decodificadores permitirar que otros valores de vps_rum_parametros_hrd, er el rargo de 0 hasta 1.024, irclusive, aparezcar er la sirtaxis.
El elemerto sirtactico [rdice_corjurto_po_hrd[i] especifica el irdice, er la lista de corjurtos de purtos de operacior, especificada por el corjurto de parametros de video, del corjurto de purtos de operacior al que se aplica la i-esima estructura sirtactica parametros_hrd () er el corjurto de parametros de video (VPS). Er los flujos de bits corforme a esta versior de esta memoria descriptiva, el valor del [rdice_corjurto_po_hrd[i] sera igual a 0. Aurque se requiere que el valor del [rdice_corjurto_po_hrd[i] sea meror o igual a 1 er el HEVC WD9, los decodificadores deberar permitir la aparicior de otros valores del [rdice_corjurto_po_hrd[i], er el rargo de 0 a 1.023, er la sirtaxis.
El elemerto sirtactico irdicador_cprms_preserte[i] igual a 1 especifica que los parametros de HRD que sor comures para todas las sub-capas estar presertes er la i-esima estructura sirtactica parametros_hrd() er el corjurto de parametros de video. El irdicador_cprms_preserte[i] igual a 0 especifica que los parametros de HRD que sor comures para todas las sub-capas ro estar presertes er la i-esima estructura sirtactica parametros_hrd() er el corjurto de parametros de video y que se obtierer como los mismos que la (i-1)-esima estructura sirtactica parametros_hrd() er el corjurto de parametros de video. Se deduce que el irdicador_cprms_preserte[0] es igual a 1.
La tabla 2 siguierte muestra ura estructura sirtactica de parametros de VUI segur el WD9.
- parametros_vui() {
- Descriptor
- indicador_parametros_hrd_presentes
- u(1)
- si(irdicador_parametros_hrd_presertes)
- parametros_hrd(1, sps_max_sub_capas_meros1)
- indicador_poc_proporcional_a_temporizacion
- u(1)
- si(irdicador_poc_proporcioral_a_temporizacior && irdicador irf temporizacior preserte)
- n u m_pulsos_d if_poc_u no_menos 1
- ue(v)
- }
5
10
15
20
25
30
35
40
45
50
Tabla 2: Estructura sintactica de parametros de VUI
En la Tabla 2 anterior, el elemento sintactico indicador_parametros_hrd_presentes igual a 1 especifica que la estructura sintactica parametros_hrd() esta presente en la estructura sintactica parametros_vui(). El indicador_parametros_hrd_presentes igual a 0 especifica que la estructura sintactica parametros_hrd() no esta presente en la estructura sintactica parametros_vui().
El elemento sintactico indicador_poc_proporcional_a_temporizacion igual a 1 indica que el valor del recuento de orden de imagenes para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen con respecto al tiempo de salida de la primera imagen en la secuencia de video codificado. El indicador_poc_proporcional_a_temporizacion igual a 0 indica que el valor del recuento de orden de imagenes, para cada imagen en la secuencia de video codificado que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, puede ser proporcional al tiempo de salida de la imagen con respecto al tiempo de salida de la primera imagen en la secuencia de video codificado.
El elemento sintactico num_pulsos_dif_poc_uno_menos1 mas 1 especifica el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a 1.
La Tabla 3 a continuacion muestra un ejemplo de estructura sintactica de parametros de HRD segun el WD9.
- parametros_hrd(indicadorInfComunPresente, maxNumSubCapasMenos1) {
- Descriptor
- si(indicadorlnfComunPresente) {
- indicador_inf_temporizaci6n_presente
- u(1)
- si(indicador_inf_temporizacion_presente) {
- num_unidades_en_pulso
- escala_temporal
- u(32)
- }
- u(32)
- }
Tabla 3: Estructura sintactica ejemplar de parametros de HRD
En la Tabla 3 anterior, el elemento sintactico indicador_inf_temporizacion_presente igual a 1 indica que el num_unidades_en_pulso y la escala_temporal estan presentes en la estructura sintactica parametros_hrd(). Si el indicador_inf_temporizacion_presente es igual a 0, el num_unidades_en_pulso y la escala_temporal no estan presentes en la estructura sintactica parametros_hrd(). Si no esta presente, se deduce que el valor de indicador_inf_temporizacion_presente es 0.
El elemento sintactico num_unidades_en_pulso es el numero 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 del elemento sintactico num_unidades_en_pulso sera mayor que 0. Un pulso de reloj es el intervalo de tiempo minimo que se puede representar en los datos codificados cuando el indicador_sub_imagen_cpb_parametros_presentes es igual a 0. Por ejemplo, cuando la frecuencia de imagenes de una senal de video es de 25 Hz, la escala temporal puede ser igual a 27.000.000 y el num_unidades_en_pulso puede ser igual a 1.080.000.
El elemento sintactico escala_temporal es el numero de unidades de tiempo que pasan en un segundo. Por ejemplo, un sistema de coordenadas de tiempo que mide el tiempo usando un reloj de 27 MHz tiene una escala_temporal de 27.000.000. El valor del elemento sintactico escala_temporal sera mayor que 0.
La senalizacion de temporizacion, como se especifica en el HEVC WD9 y como se ha descrito anteriormente, puede presentar una serie de problemas. En primer lugar, la condicion para la senalizacion del elemento sintactico num_dif_pulsos_poc_uno_menos1 es “si(indicador_poc_proporcional_a_temporizacion &&
indicador_inf_temporizacion_presente)”. Esta condicion implica dependencias de dos elementos sintacticos senalizados: indicador_poc_proporcional_a_temporizacion e indicador_inf_temporizacion_presente. Sin embargo, no esta claro, a partir de la memoria descriptiva HEVC WD9, si el indicador_inf_temporizacion_presente para la condicion hace referencia al elemento sintactico indicador_inf_temporizacion_presente de una estructura sintactica parametros_hrd() (si esta presente) en la parte de VUI del SPS o si hace referencia al elemento sintactico indicador_inf_temporizacion_presente de una estructura sintactica parametros_hrd() en el VPS.
5
10
15
20
25
30
35
40
45
50
55
60
65
Ademas, multiples capas o multiples posibles subconjuntos de flujos de bits de un flujo de bits de video ajustable a escala pueden compartir los valores comunes de la escala temporal y el numero de unidades en un pulso de reloj, que se especifican en el HEVC WD9 en los elementos sintacticos escala_temporal y num_unidades_en_pulso de una estructura sintactica parametros_hrd(), que puede senalizarse repetidamente en la parte de VUI del SPS y en el VPS, por ejemplo. Tal replicacion, si esta presente en el flujo de bits, puede dar lugar al desperdicio de bits.
Ademas, los valores del recuento de orden de imagenes (POC) son normalmente proporcionales a los tiempos de salida para todas las capas de un flujo de bits de video ajustable a escala, si los valores del POC son proporcionales a los tiempos de salida para cualquiera de las capas de un flujo de bits de video ajustable a escala. Sin embargo, la memoria descriptiva HEVC WD9 no preve la senalizacion, en el flujo de bits de video ajustable a escala, de una indicacion de que los valores del 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 video ajustable a escala. La referencia a un "capa" de un flujo de bits de video ajustable a escala puede referirse a una capa ajustable a escala, una vista de la textura y/o una vista de la profundidad, por ejemplo. Ademas, aunque el HEVC WD9 especifica que el indicador indicador_poc_proporcional_a_temporizacion siempre se senaliza en la estructura sintactica de VUI del SPS, el indicador indicador_poc_proporcional_a_temporizacion no tiene ninguna utilidad si los elementos sintacticos escala_temporal y num_unidades_en_pulso no se han senalizado tambien en el flujo de bits.
Las tecnicas de esta divulgacion pueden resolver uno o mas de los problemas anteriores, asi como proporcionar otras mejoras, para permitir la senalizacion eficaz de los parametros para las operaciones de HPVD. Varios ejemplos de las tecnicas se describen en el presente documento con referencia al HEVC WD9 y a posibles mejoras del mismo. Las soluciones se aplican a cualquier norma de codificacion de video, incluyendo AVC y HEVC, por ejemplo, que incluya una memoria descriptiva para un modelo de memoria intermedia de video, aunque con fines de ilustracion la descripcion es especifica para la senalizacion de parametros de HRD definida en el HEVC WD9 y modificada segun las tecnicas de esta divulgacion.
La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificacion y decodificacion de video 10 que puede utilizar las tecnicas descritas en esta divulgacion. Como se muestra en la FlG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera datos de video 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, portatiles), ordenadores de tableta, decodificadores, equipos telefonicos portatiles tales como los denominados telefonos “inteligentes”, los denominados paneles “inteligentes”, televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, un dispositivo de flujos de transmision de video o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicacion inalambrica.
El dispositivo de destino 14 puede recibir los datos de video 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 video codificado desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicacion para permitir al dispositivo de origen 12 transmitir datos de video codificado directamente al dispositivo de destino 14 en tiempo real. Los datos de video codificado pueden ser modulados segun una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y transmitidos al dispositivo de destino 14. El medio de comunicacion puede comprender cualquier medio de comunicacion inalambrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o mas lineas de transmision fisica. El medio de comunicacion puede formar parte de una red basada en paquetes, tal como una red de area local, una red de area extensa o una red global tal como Internet. El medio de comunicacion puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser util para facilitar la comunicacion 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, discos Blu-ray, discos DVD, discos CD-ROM, memoria flash, memoria volatil o no volatil, u otros medios adecuados cualesquiera de almacenamiento digital, para almacenar datos de video 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 video codificado, generados por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de video almacenados, procedentes del dispositivo de almacenamiento 34, mediante flujos de transmision o descarga. El servidor de ficheros puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificado al dispositivo de destino 14. Entre los ejemplos de servidores de ficheros se incluyen un servidor de internet (por ejemplo, para una sede de la Red), un servidor del FTP, dispositivos de almacenamiento conectados a la red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de video codificado mediante cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion de Wi-Fi), una conexion por cable (por ejemplo, DSL, modem de cable, etc.), o una combinacion de ambos
5
10
15
20
25
30
35
40
45
50
55
60
65
que sea adecuada para acceder a datos de video codificado, almacenados en un servidor de ficheros. La transmision de datos de video codificado desde el dispositivo de almacenamiento 34 puede ser una transmision por flujo, una transmision de descarga o una combinacion de ambas.
Las tecnicas de esta divulgacion no estan limitadas necesariamente a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video, en soporte de cualquiera entre una diversidad de aplicaciones de multimedios, tales como difusiones de television por el aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones de video por flujo, por ejemplo, mediante Internet, codificacion de video digital para su almacenamiento en un medio de almacenamiento de datos, decodificacion de video 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 transmision de video unidireccional o bidireccional, para prestar soporte a aplicaciones tales como los flujos de transmision de video, la reproduccion de video, la difusion de video y/o la videotelefonia.
En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye un origen de video 18, un codificador de video 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/demodulador (modem) y/o un transmisor. En el dispositivo de origen 12, el origen de video 18 puede incluir un origen tal como un dispositivo de captura de video, por ejemplo, una videocamara, un archivo de video que contiene video previamente capturado, una interfaz de alimentacion de video para recibir video desde un proveedor de contenido de video y/o un sistema de graficos de ordenador para generar datos de graficos de ordenador como el video de origen, o una combinacion de tales origenes. Como un ejemplo, si la fuente de video 18 es una videocamara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados telefonos con camara o videotelefonos. Sin embargo, las tecnicas descritas en esta divulgacion pueden aplicarse a la codificacion de video en general, y pueden aplicarse a aplicaciones inalambricas y/o cableadas.
El video capturado, pre-capturado o generado por ordenador puede ser codificado por el codificador de video 20. Los datos de video codificado pueden ser transmitidos directamente al dispositivo de destino 14 mediante la interfaz de salida 22 del dispositivo de origen 12. Los datos de video codificado tambien (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 decodificacion y/o reproduccion.
El dispositivo de destino 14 incluye una interfaz de entrada 28, un decodificador de video 30 y un dispositivo de visualizacion 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un modem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de video codificado por el enlace 16. Los datos de video codificado, comunicados por el enlace 16, o proporcionados en el dispositivo de almacenamiento 34, pueden incluir una diversidad de elementos sintacticos generados por el codificador de video 20, para su uso por un decodificador de video, tal como el decodificador de video 30, en la decodificacion de los datos de video. Tales elementos sintacticos pueden incluirse con los datos de video codificado, transmitidos en un medio de comunicacion, almacenarse en un medio de almacenamiento o almacenarse en un servidor de ficheros.
El dispositivo de visualizacion 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 visualizacion integrado y tambien configurarse para mantener interfaces con un dispositivo de visualizacion externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualizacion. En general, el dispositivo de visualizacion 32 exhibe los datos de video decodificado a un usuario, y puede comprender cualquiera entre una diversidad de dispositivos de visualizacion, tales como una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
El codificador de video 20 y el decodificador de video 30 pueden funcionar segun una norma de compresion de video, tal como la norma de Codificacion de Video de Alta Eficacia (HEVC), actualmente en desarrollo, y pueden ser conformes al Modelo de Prueba de la HEVC (HM). Como alternativa, el codificador de video 20 y el decodificador de video 30 pueden funcionar segun otras normas patentadas o industriales, tales como la norma iTU-T H.264, tambien denominada MPEG-4, Parte 10, Codificacion Avanzada de Video (AVC), o extensiones de tales normas. Sin embargo, las tecnicas de esta divulgacion no estan limitadas a ninguna norma de codificacion particular. Otros ejemplos de normas de compresion de video incluyen la MPEG-2 y la ITU-T H.263.
Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de video 20 y el decodificador de video 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 llevar a cabo la codificacion, tanto de audio como de video, en un flujo de datos comun 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 video 20 y el decodificador de video 30 pueden implementarse como cualquiera entre una diversidad de circuitos codificadores adecuados, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especificos de la aplicacion (ASIC), formaciones de compuertas
5
10
15
20
25
30
35
40
45
50
55
60
65
programables en el terreno (FPGA), logica discreta, software, hardware, firmware o cualquier combinacion de los mismos. Cuando las tecnicas 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 mas procesadores para realizar las tecnicas de esta divulgacion. Tanto el codificador de video 20 como el decodificador de video 30 pueden incluirse en uno o mas codificadores o decodificadores, donde cualquiera de los mismos puede estar integrado como parte de un codificador/decodificador combinado (codec) en un dispositivo respectivo.
El JCT-VC esta trabajando en el desarrollo de la norma HEVC. Los esfuerzos de normalizacion de la HEVC se basan en un modelo en evolucion de un dispositivo de codificacion de video denominado modelo de prueba de la HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificacion de video, con respecto a dispositivos existentes, segun, por ejemplo, la ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modalidades de codificacion de intra-prediccion, el HM puede proporcionar hasta treinta y tres modalidades de codificacion de intra-prediccion.
En general, el modelo de funcionamiento del HM describe que una trama o imagen de video puede dividirse en una secuencia de bloques arbolados, o unidades maximas de codificacion (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 numero de bloques arbolados consecutivos en orden de codificacion. Una trama o imagen de video puede dividirse en uno o mas fragmentos. Cada bloque arbolado puede dividirse en unidades de codificacion (CU) segun un arbol cuadruple. Por ejemplo, un bloque arbolado, como un nodo raiz del arbol cuadruple, 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 arbol cuadruple, comprende un nodo de codificacion, es decir, un bloque de video codificado. Los datos sintacticos asociados a un flujo de bits codificado pueden definir un numero maximo de veces que puede dividirse un bloque arbolado, y tambien pueden definir un tamano minimo de los nodos de codificacion.
Una CU incluye un nodo de codificacion y unidades de prediccion (PU) y unidades de transformacion (TU) asociadas al nodo de codificacion. Un tamano de la CU corresponde, en general, a un tamano del nodo de codificacion y normalmente debe tener una forma cuadrada. El tamano de la CU puede variar desde 8 x 8 pixeles hasta el tamano del bloque arbolado, con un maximo de 64 x 64 pixeles, o mas. Cada CU puede contener una o mas PU y una o mas TU. Los datos sintacticos asociados a una CU pueden describir, por ejemplo, la division de la CU en una o mas PU. Las modalidades de division pueden diferir entre si la CU esta codificada en modalidad de omision o directa, codificada en modo de intra-prediccion o codificada en modo de inter-prediccion. Las PU pueden dividirse para que no tengan forma cuadrada. Los datos sintacticos asociados a una CU tambien pueden describir, por ejemplo, la division de la CU en una o mas TU segun un arbol cuadruple. Una TU puede tener forma cuadrada o no cuadrada.
La norma de HEVC admite transformaciones segun las TU, que pueden ser distintas para distintas CU. Las TU son habitualmente dimensionadas en base al tamano 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 tamano, o un tamano mas pequeno, que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades mas pequenas usando una estructura de arbol cuadruple conocida como "arbol cuadruple residual" (RQT). Los nodos de hoja del RQT pueden denominarse unidades de transformacion (TU). Los valores de diferencias de pixeles asociados a las TU pueden transformarse para producir coeficientes de transformacion, que pueden cuantizarse.
En general, una PU incluye datos relacionados con el proceso de prediccion. Por ejemplo, cuando la PU esta codificada en intra-modalidad, la PU puede incluir datos que describen una modalidad de intra-prediccion para la PU. Como otro ejemplo, cuando la PU esta 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 resolucion para el vector de movimiento (por ejemplo, precision de un cuarto de pixel o precision de un octavo de pixel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imagenes 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 transformacion y cuantizacion. Una CU dada con una o mas PU tambien puede incluir una o mas unidades de transformacion (TU). Despues de la prediccion, el codificador de video 20 puede calcular los valores residuales a partir del bloque de video identificado por el nodo de codificacion, segun la PU. El nodo de codificacion se actualiza a continuacion, para hacer referencia a los valores residuales, en lugar del bloque de video original. Los valores residuales comprenden valores de diferencias de pixeles que pueden transformarse en coeficientes de transformacion, cuantizarse y escanearse usando las transformaciones y otra informacion de transformacion especificada en las TU, para producir coeficientes de transformacion serializados para la codificacion por entropia. El nodo de codificacion puede, una vez mas, ser actualizado para referirse a estos coeficientes de transformacion serializados. Esta divulgacion usa habitualmente el termino “bloque de video” para referirse a un nodo de codificacion de una CU. En algunos casos especificos, esta divulgacion tambien puede usar el termino “bloque de video” para referirse a un bloque arbolado, es decir, una LCU, o una CU, que incluye un nodo
5
10
15
20
25
30
35
40
45
50
55
60
65
de codificacion y las PU y las TU.
Una secuencia de video incluye normalmente una serie de tramas o imagenes de video. Un grupo de imagenes (GOP) comprende generalmente una serie de una o mas de las imagenes de video. Un GOP puede incluir datos sintacticos, en una cabecera del GOP, en una cabecera de una o mas de las imagenes, o en otras ubicaciones, que describen un cierto numero de imagenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintacticos de fragmento que describen una modalidad de codificacion para el fragmento respectivo. Un codificador de video 20 actua habitualmente sobre bloques de video dentro de los fragmentos de video individuales, con el fin de codificar los datos de video. Un bloque de video puede corresponder a un nodo de codificacion dentro de una CU. Los bloques de video pueden tener tamanos fijos o variables y pueden diferir en tamano, segun una norma de codificacion especificada.
Como ejemplo, el HM da soporte a la prediccion en diversos tamanos de PU. Suponiendo que el tamano de una CU especifica sea 2Nx2N, el HM presta soporte a la intra-prediccion en tamanos de PU de 2Nx2N o NxN, y a la intra- prediccion en tamanos de PU simetricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM tambien presta soporte a la division asimetrica para la inter-prediccion en tamanos de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la division asimetrica, una direccion de una CU no esta dividida, mientras que la otra direccion esta dividida entre el 25 % y el 75 %. La parte de la CU correspondiente a la division del 25 % esta indicada por una “n” seguida por una indicacion de “Arriba”, “Abajo”, “Izquierda” o “Derecha”. Asi, por ejemplo, “2NxnU” se refiere a una CU de tamano 2Nx2N que esta dividida horizontalmente, con una PU de tamano 2Nx0,5N encima y una PU de tamano 2Nx1,5N debajo.
En esta divulgacion, "NxN" y "N por N" pueden usarse de manera intercambiable para hacer referencia a las dimensiones de pixeles de un bloque video, en lo que respecta a dimensiones verticales y horizontales, por ejemplo, 16x16 pixeles o 16 por 16 pixeles. En general, un bloque de tamano 16 x 16 tendra 16 pixeles en la direccion vertical (y =16) y 16 pixeles en la direccion horizontal (x = 16). Asimismo, un bloque de tamano NxN tiene generalmente N pixeles en la direccion vertical y N pixeles en la direccion horizontal, donde N representa un valor entero no negativo. Los pixeles en un bloque pueden estar dispuestos en filas y columnas. Ademas, los bloques no necesitan tener necesariamente el mismo numero de pixeles en la direccion horizontal y en la direccion vertical. Por ejemplo, los bloques pueden comprender N x M pixeles, donde M no es necesariamente igual a N.
Tras la codificacion intra-predictiva o inter-predictiva, usando las PU de una CU, el codificador de video 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 pixeles entre pixeles de la imagen no codificada y valores de prediccion correspondientes a las CU. El codificador de video 20 puede formar los datos residuales para la CU, y a continuacion transformar los datos residuales para producir coeficientes de transformacion.
Tras cualquier transformacion para producir coeficientes de transformacion, el codificador de video 20 puede realizar la cuantizacion de los coeficientes de transformacion. La cuantizacion se refiere generalmente a un proceso en el que los coeficientes de transformacion se cuantizan para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresion adicional. El proceso de cuantizacion 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 bitsdurante la cuantizacion, donde n es mayor que m.
En algunos ejemplos, el codificador de video 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformacion cuantizados, para producir un vector serializado que pueda ser codificado por entropia. En otros ejemplos, el codificador de video 20 puede realizar un escaneo adaptativo. Despues de escanear los coeficientes de transformacion cuantizados, para formar un vector unidimensional, el codificador de video 20 puede codificar por entropia el vector unidimensional, por ejemplo, segun la codificacion de longitud variable adaptativa al contexto (CAVLC), la codificacion aritmetica binaria adaptativa al contexto (CABAC), la codificacion aritmetica binaria adaptativa al contexto y de base sintactica (SBAC), la codificacion por Entropia por Division de Intervalos de Probabilidad (PIPE) u otra metodologia de codificacion por entropia. El codificador de video 20 tambien puede codificar por entropia elementos sintacticos asociados a los datos de video codificado, para su uso por el decodificador de video 30, en la decodificacion de los datos de video.
Para realizar la CABAC, el codificador de video 20 puede asignar un contexto dentro de un modelo contextual a un simbolo a transmitir. El contexto puede referirse, por ejemplo, a si los valores adyacentes del simbolo son distintos a cero o no. Para realizar la CAVLC, el codificador de video 20 puede seleccionar un codigo de longitud variable para un simbolo a transmitir. Las palabras de codigo en la VLC pueden ser construidas de modo que los codigos relativamente mas cortos correspondan a simbolos mas probables, mientras que los codigos mas largos correspondan a simbolos menos probables. De esta manera, el uso de VLC puede lograr un poco de ahorro con respecto, por ejemplo, a usar palabras de codigo de igual longitud para cada simbolo a transmitir. La determinacion de la probabilidad puede basarse en un contexto asignado al simbolo.
El dispositivo de origen 12 puede generar un flujo de bits codificado para incluir elementos sintacticos que se ajustan a una estructura sintactica segun tecnicas descritas en esta divulgacion. En algunos ejemplos, el codificador de video 20 puede generar el flujo de bits codificado para senalizar directamente, en la estructura sintactica del
5
10
15
20
25
30
35
40
45
50
55
60
65
conjunto de parametros de video (VPS) o en la parte de informacion sobre facilidad de uso de video (VUI) de la estructura sintactica del conjunto de parametros de secuencia (SPS) para una secuencia de video codificada, todas las variables que definen la condicion para senalizar una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a 1. En otras palabras, en lugar de senalizar los elementos sintacticos para la condicion para senalizar una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a 1 en otra estructura sintactica (tal como la estructura sintactica de parametros de HRD) que esta incorporada en una estructura sintactica del VPS o la parte de VUI de la estructura sintactica del SPS, el codificador de video 20 genera el flujo de bits codificado para senalizar los elementos sintacticos que definen la condicion en el VPS y/o la estructura sintactica de VUI sin referencia a otra estructura sintactica potencialmente incorporada dentro de las estructuras sintacticas del VPS y/o de la VUI. Los elementos sintacticos pueden incluir el elemento sintactico indicador_inf_temporizacion_presente que se especifica en el HEVC WD9 como un elemento sintactico de la estructura sintactica de parametros de HRD. Como resultado, las tecnicas pueden reducir y potencialmente eliminar la ambiguedad dentro de la memoria descriptiva HEVC WD9, especificando claramente en la sintaxis el origen de los elementos sintacticos que definen la condicion.
El codificador de video 20 puede probar el flujo de bits codificado en cuanto a su conformidad con los requisitos especificados, como una o mas pruebas de conformidad de flujo de bits, definidas en una memoria descriptiva de codificacion de video, tal como el HEVC WD9 o una memoria descriptiva sucesora tal como el HEVC WD10. El codificador de video 20 puede incluir o utilizar de otro modo un decodificador de referencia hipotetico para probar el flujo de bits codificado en cuanto a su conformidad. Segun las tecnicas descritas en este documento, el codificador de video 20 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado para determinar, a partir de la estructura sintactica del VPS o en la parte de VUI de la estructura sintactica del SPS para una secuencia de video codificada, los elementos sintacticos que definen la condicion para la senalizacion del numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a 1. Si se cumple la condicion segun los valores de los elementos sintacticos, el codificador de video 20 puede determinar el numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a 1, y utilizar el numero determinado de pulsos de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
En algunas ocasiones, en el dispositivo de destino 14, un decodificador de video 30 bajo prueba (o VUT) puede, en algunos casos, recibir una representacion del flujo de bits codificado, generado por el codificador de video 20, para senalizar directamente, en la estructura sintactica del VPS o en la parte de VUI de la estructura sintactica del SPS para una secuencia de video codificado, todos los elementos sintacticos que definen la condicion para la senalizacion de una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a 1. El decodificador de video 30 puede decodificar el flujo de bits codificado para determinar, a partir de la estructura sintactica del VPS o en la parte de VUI de la estructura sintactica del SPS para una secuencia de video codificado, los elementos sintacticos que definen la condicion para la senalizacion del numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a 1. Si la condicion se cumple segun los valores de los elementos sintacticos, el decodificador de video 30 puede determinar el numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a 1, y utilizar el numero determinado de pulsos de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
En algunos ejemplos, el codificador de video 20 puede generar el flujo de bits codificado para senalizar la escala temporal y el numero de unidades en un pulso de reloj, como maximo, una vez en cada una de las estructuras sintacticas del VPS y de la VUI para una secuencia dada de video codificado. Es decir, en una estructura sintactica del VPS dada para el flujo de bits codificado, el codificador de video 20 puede senalizar los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez. Del mismo modo, en una estructura sintactica dada de VUI (por ejemplo, la parte de VUI de una estructura sintactica del SPS) para el flujo de bits codificado, el codificador de video 20 puede senalizar los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez. Como resultado, el codificador de video 20 que funciona segun las tecnicas descritas en este documento puede reducir un numero de casos del elemento sintactico de escala temporal (escala_temporal segun el WD9) y del elemento sintactico del numero de unidades en un pulso de reloj (num_unidades_en_pulso segun el WD9) en el flujo de bits codificado. Ademas, el codificador de video 20 puede, en algunos casos, generar el flujo de bits codificado para senalizar directamente la escala temporal y el numero de unidades en un pulso de reloj en cada una de las estructuras sintacticas del VPS y de la VUI para una secuencia dada de video codificado, en lugar de en una estructura sintactica de parametros de HRD, incorporada dentro de una estructura sintactica del VPS y/o de la VUI.
Segun las tecnicas descritas en este documento, el codificador de video 20 puede probar un flujo de bits codificado, generado por el codificador de video 20, para senalizar la escala temporal y el numero de unidades en un pulso de reloj, como maximo, una vez en cada una de las estructuras sintacticas del VPS y de la VUI para una secuencia de video codificado dada, en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado para determinar la escala temporal y el numero de unidades en un pulso de reloj, a partir de una estructura sintactica del VPS del flujo de bits codificado que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica del VPS. En algunos casos, el
5
10
15
20
25
30
35
40
45
50
55
60
65
codificador de video 20 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado para determinar la escala temporal y el numero de unidades en un pulso de reloj a partir de una estructura sintactica de VUI del flujo de bits codificado que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica de la VUI. La escala temporal y el numero de unidades en un pulso de reloj se pueden senalizar en un lugar que no sea una estructura sintactica de parametros de HRD, incorporada dentro de la estructura sintactica del VPS y/o de la VUI. El codificador de video 20 puede usar la escala temporal determinada y el numero determinado de unidades en un pulso de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
En algunas ocasiones, en el dispositivo de destino 14, un decodificador de video 30 bajo prueba puede, en algunos casos, recibir una representacion del flujo de bits codificado, generado por el codificador de video 20 para senalizar la escala temporal y el numero de unidades en un pulso de reloj, como maximo, una vez en cada una de las estructuras sintacticas del VPS y de la VUI para una secuencia dada de video codificado. El decodificador de video 30 puede decodificar el flujo de bits codificado para determinar la escala temporal y el numero de unidades en un pulso de reloj a partir de una estructura sintactica del VPS del flujo de bits codificado que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica del VPS. En algunos casos, el decodificador de video 30 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado para determinar la escala temporal y el numero de unidades en un pulso de reloj a partir de una estructura sintactica de VUI del flujo de bits codificado, que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica de VUI. La escala temporal y el numero de unidades en un pulso de reloj se pueden senalizar en un lugar que no sea en una estructura sintactica de parametros de HRD, incorporada dentro de la estructura sintactica del VPS y/o de la VUI. El decodificador de video 30 puede usar la escala temporal determinada y el numero determinado de unidades en un pulso de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
En algunos ejemplos, el codificador de video 20 puede generar el flujo de bits codificado para senalizar, en una estructura sintactica del VPS para una o mas secuencias de video codificado, un indicador que indica si el valor del POC para cada imagen en una secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado. Este indicador puede, alternativamente, denominarse el indicador de POC proporcional a la indicacion de temporizacion. Como resultado, el codificador de video 20 puede reducir un numero de casos de la indicacion en la informacion de temporizacion senalizada para multiples capas de una secuencia de video codificado y/o para un flujo de bits de video ajustable a escala que tenga multiples capas. En algunos casos, el codificador de video 20 puede incluir este indicador en la estructura sintactica del VPS solo si tambien se incluyen los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj. El codificador de video 20 puede, de esta manera, evitar la senalizacion de esta informacion de temporizacion particular (es decir, si el valor del POC para cada imagen en una secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado) si la informacion de pulso de reloj necesaria para usar la indicacion de POC proporcional a la temporizacion tampoco esta presente.
Segun las tecnicas descritas en este documento, el codificador de video 20 puede comprobar la conformidad de un flujo de bits codificado, generado por el codificador de video 20, para senalizar, en una estructura sintactica del VPS para una o mas secuencias de video codificado, el indicador de POC proporcional a indicacion de temporizacion. El codificador de video 20 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado, para determinar un valor para el indicador. El codificador de video 20 puede ademas, o alternativamente, probar un flujo de bits codificado, generado por el codificador de video 20, para senalizar el indicador en la estructura sintactica del VPS solo si tambien se incluyen los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj. El codificador de video 20 puede utilizar el valor determinado del indicador de POC proporcional a la indicacion de temporizacion, y los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
En algunos casos, en el dispositivo de destino 14, un decodificador de video 30 bajo prueba, en algunos casos, puede recibir una representacion del flujo de bits codificado, generado por el codificador de video 20, para senalizar, en una estructura sintactica del VPS para una o mas secuencias de video codificado, un indicador de POC proporcional a la indicacion de temporizacion. El decodificador de video 30 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado, para determinar un valor para el indicador. El decodificador de video 30 puede, adicionalmente, o alternativamente, probar un flujo de bits codificado, generado por el decodificador de video 30, para senalizar el indicador en la estructura sintactica del VPS, solo si tambien se incluyen los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj.
5
10
15
20
25
30
35
40
45
50
55
60
65
El decodificador de video 30 puede utilizar el valor determinado del indicador de POC proporcional a la indicacion de temporizacion, y los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
La FIG. 2 es un diagrama de bloques que ilustra un codificador ejemplar de video 20 que puede implementar las tecnicas descritas en esta divulgacion. El codificador de video 20 puede realizar la intra-codificacion y la inter- codificacion de bloques de video dentro de fragmentos de video. La intra-codificacion se apoya en la prediccion espacial para reducir o eliminar la redundancia espacial en el video dentro de una trama o imagen de video dada. La inter-codificacion se apoya en la prediccion temporal para reducir o eliminar la redundancia temporal en el video dentro de tramas o imagenes adyacentes de una secuencia de video. La intra-modalidad (modalidad I) puede referirse a cualquiera de varias modalidades de compresion de base espacial. Las inter-modalidades, tales como la prediccion bi-direccional (modalidad P) o la bi-prediccion (modalidad B), pueden referirse a cualquiera de varias modalidades de compresion de base temporal.
En el ejemplo de la FIG. 2, el codificador de video 20 incluye una unidad de division 35, un modulo de prediccion 41, una memoria de imagenes de referencia 64, un sumador 50, un modulo de transformacion 52, una unidad de cuantizacion 54 y una unidad de codificacion por entropia 56. El modulo de prediccion 41 incluye una unidad de estimacion de movimiento 42, una unidad de compensacion de movimiento 44 y un modulo de intra-prediccion 46. Para la reconstruccion de bloques de video, el codificador de video 20 incluye ademas una unidad de cuantizacion inversa 58, un modulo de transformacion inversa 60 y un sumador 62. Tambien puede incluirse un filtro de desbloqueo (no mostrado en la FIG. 2) para filtrar limites de bloque, para eliminar distorsiones de efecto pixelado del video reconstruido. Si se desea, el filtro de desbloqueo filtrara habitualmente la salida del sumador 62. Tambien pueden usarse filtros de bucle adicionales (en bucle o tras el bucle), ademas del filtro de desbloqueo.
Como se muestra en la FIG. 2, el codificador de video 20 recibe datos de video y la unidad de division 35 divide los datos en bloques de video. Esta division tambien puede incluir la division en fragmentos, mosaicos u otras unidades mayores, asi como la division de bloques de video, por ejemplo, segun una estructura de arbol cuadruple de las LCU y las CU. El codificador de video 20 ilustra en general los componentes que codifican bloques de video dentro de un fragmento de video a codificar. El fragmento puede dividirse en multiples bloques de video (y, posiblemente, en conjuntos de bloques de video mencionados como mosaicos). El modulo de prediccion 41 puede seleccionar una entre una pluralidad de posibles modalidades de codificacion, tal como una entre una pluralidad de modalidades de intra-codificacion, o una entre una pluralidad de modalidades de inter-codificacion, para el bloque de video actual, en base a resultados de errores (por ejemplo, la velocidad de codificacion y el nivel de distorsion). El modulo de prediccion 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 modulo de intra-prediccion 46, dentro del modulo de prediccion 41, puede realizar la codificacion intra-predictiva del bloque de video actual con respecto a uno o mas bloques contiguos en la misma trama o fragmento que el bloque que va a codificarse, para proporcionar compresion espacial. La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44, dentro del modulo de prediccion 41, realizan la codificacion inter- predictiva del bloque de video actual con respecto a uno o mas bloques predictivos en una o mas imagenes de referencia, para proporcionar compresion temporal.
La unidad de estimacion de movimiento 42 puede ser configurada para determinar la modalidad de inter-prediccion para un fragmento de video, segun un patron predeterminado para una secuencia de video. El patron predeterminado puede designar fragmentos de video en la secuencia como fragmentos P, fragmentos B o fragmentos GPB. La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 pueden estar sumamente integradas, pero se ilustran por separado con fines conceptuales. La estimacion de movimiento, realizada por la unidad de estimacion de movimiento 42, es el proceso de generacion de vectores de movimiento, que estiman el movimiento para los bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de video dentro de una trama o imagen de video 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 video a codificar, en lo que respecta a la diferencia de pixeles, que puede determinarse mediante la suma de una diferencia absoluta (SAD), una suma de diferencia de cuadrados (SSD) u otras metricas de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular valores para posiciones de fracciones de pixel de imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. Por ejemplo, el codificador de video 20 puede interpolar valores de posiciones de un cuarto de pixel, posiciones de un octavo de pixel u otras posiciones fraccionarias de pixel de la imagen de referencia. Por lo tanto, la unidad de estimacion de movimiento 42 puede realizar una busqueda de movimiento con respecto a las posiciones de pixeles completos y a las posiciones de fracciones de pixel, y emitir un vector de movimiento con una precision de fracciones de pixel.
La unidad de estimacion de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en
5
10
15
20
25
30
35
40
45
50
55
60
65
un fragmento inter-codificado, comparando la posicion de la PU con la posicion de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse a partir de una primera lista de imagenes de referencia (Lista 0) o una segunda lista de imagenes de referencia (Lista 1), cada una de las cuales identifica una o mas imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. La unidad de estimacion de movimiento 42 envia el vector de movimiento calculado a la unidad de codificacion por entropia 56 y a la unidad de compensacion de movimiento 44.
La compensacion de movimiento, realizada por la unidad de compensacion de movimiento 44, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado por la estimacion de movimiento, realizando posiblemente interpolaciones hasta la precision de sub-pixeles. Tras recibir el vector de movimiento para la PU del bloque de video actual, la unidad de compensacion de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imagenes de referencia. El codificador de video 20 forma un bloque de video residual restando los valores de pixeles del bloque predictivo a los valores de pixeles del bloque de video actual que esta codificandose, generando valores de diferencia de pixel. Los valores de diferencia de pixel forman datos residuales para el bloque, y pueden incluir componentes de diferencias, tanto de luma como de croma. El sumador 50 representa el componente o los componentes que realizan esta operacion de sustraccion. La unidad de compensacion de movimiento 44 tambien puede generar elementos sintacticos 55 asociados a los bloques de video y al fragmento de video para su uso por parte del decodificador de video 30 en la decodificacion de los bloques de video del fragmento de video.
La unidad de compensacion de movimiento 44 puede generar elementos sintacticos 55 que se ajustan a una estructura sintactica segun tecnicas descritas en esta divulgacion. En algunos ejemplos, el codificador de video 20 puede generar elementos sintacticos 55 para senalizar directamente, en la estructura sintactica del conjunto de parametros de video (VPS) o en la parte de la informacion de facilidad de uso de video (VUI) de la estructura sintactica del conjunto de parametros de secuencia (SPS), asociada a los bloques de video, todos los elementos sintacticos que definen la condicion para senalizar una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a 1. En otras palabras, en lugar de senalizar los elementos sintacticos para la condicion para senalizar una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a 1 en otra estructura sintactica (como la estructura sintactica de parametros de HRD) que esta incorporada en una estructura sintactica del VPS o en la parte de VUI de la estructura sintactica del SPS, la unidad de compensacion de movimiento 44 genera el flujo de bits codificado para senalizar los elementos sintacticos para los elementos sintacticos que definen la condicion en la estructura sintactica del VPS y/o de la VUI, sin referencia a otra estructura sintactica potencialmente incorporada dentro de cualquiera de las estructuras sintacticas del VPS y de la VUI, o de ambas.
En algunos ejemplos, la unidad de compensacion de movimiento 44 puede generar los elementos sintacticos 55 para senalizar la escala temporal y el numero de unidades en un pulso de reloj, como maximo, una vez en cada una de las estructuras sintacticas del VPS y la VUI para una secuencia dada de video codificado. Es decir, en una estructura sintactica del VPS dada para el flujo de bits codificado, la unidad de compensacion de movimiento 44 puede generar los elementos sintacticos 55 para senalizar los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez. Del mismo modo, en una estructura sintactica dada de VUI (por ejemplo, la parte de VUI de una estructura sintactica del SPS) para el flujo de bits codificado, la unidad de compensacion de movimiento 44 puede generar los elementos sintacticos 55 para senalizar los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez. Ademas, la unidad de compensacion de movimiento 44 puede, en algunos casos, generar los elementos sintacticos 55 para senalizar directamente la escala temporal y el numero de unidades en un pulso de reloj en cada una de las estructuras sintacticas del VPS y de la VUI para una secuencia dada de video codificado, en lugar de en una estructura sintactica de parametros de HRD, incorporada dentro de una estructura sintactica del VPS y / o la VUI.
En algunos ejemplos, la unidad de compensacion de movimiento 44 puede generar los elementos sintacticos 55 para senalizar, en una estructura sintactica del VPS para una o mas secuencias de video codificado, un indicador que indica si el valor del POC para cada imagen en una secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificada, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado. Este indicador, alternativamente, puede denominarse el indicador de POC proporcional a la indicacion de temporizacion. Como resultado, la unidad de compensacion de movimiento 44 puede reducir un numero de casos de la indicacion en la informacion de temporizacion senalizada para multiples capas de una secuencia de video codificado y/o para un flujo de bits de video ajustable a escala que tiene multiples capas. En algunos casos, la unidad de compensacion de movimiento 44 puede incluir este indicador en la estructura sintactica del VPS solo si tambien se incluyen los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj. La unidad de compensacion de movimiento 44 puede, de esta manera, evitar la senalizacion de esta informacion de temporizacion particular (es decir, si el valor del POC para cada imagen en una secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado) si la informacion de pulsos de reloj necesaria para utilizar la indicacion de POC proporcional a la temporizacion tampoco esta presente.
5
10
15
20
25
30
35
40
Algunos cambios ejemplares en el texto del HEVC WD9 para efectuar las tecnicas anteriores para generar elementos sintacticos 55 son los siguientes (otras partes no mencionadas pueden quedar sin modificarse segun el HEVC WD9):
El siguiente es un ejemplo de una estructura sintactica de RBSP del conjunto de parametros de video, modificada para resolver uno o mas de los problemas anteriores (la sintaxis subrayada es una adicion a la estructura sintactica de la RBSP del conjunto de parametros de video del HEVC WD9; otra sintaxis puede estar sin cambios en relacion con el HEVC WD9):
- rbsp_conjunto_de_parametros_de_video () {
- Descriptor
- vps indicador inf temporizaci6n presente
- u(1)
- si(vps indicador inf temporizacion presente) {
- vps num unidades en pulso
- u(32)
- vps escala temporal
- u(32)
- vps indicador poc proporcional a temporizaci6n
- ue(1)
- si (vps indicador poc proporcional a temporizacion)
- vps num pulsos dif poc uno menosl
- ue(v)
- vps_num_parametros_hrd
- ue(v)
- para(i = 0; i < vps_num_parametros_hrd; i++) {
- indicador_cprms_presente[i]
- u(1)
- parametros_hrd(indicador_cprms_presente[i] , vps max sub capas menos1)
- }
- }
Tabla 4: Ejemplo de estructura sintactica de RBSP del conjunto de parametros de video
La tabla 4 define los elementos sintacticos agregados recientemente segun la semantica siguiente de la RBSP del conjunto de parametros de video (VPS):
El vps_indicador_inf_temporizaci6n_presente igual a 1 indica que vps_num_unidades_en_pulso, vps_escala_temporal y vps_indicador_poc_proporcional_a_temporizacion estan presentes en el conjunto de parametros de video. El vps_indicador_inf_temporizacion_presente igual a 0 especifica que vps_num_unidades_en_pulso, vps_escala_temporal y vps_indicador_poc_proporcional_a_temporizacion no estan presentes en el conjunto de parametros de video.
El vps_num_unidades_en_pulso es el numero de unidades de tiempo de un reloj que funciona en 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_num_unidades_en_pulso sera mayor que 0. Un pulso de reloj, en unidades de segundos, es igual al cociente de vps_num_unidades_en_pulso dividido entre vps_escala_temporal. Por ejemplo, cuando la frecuencia de imagenes de una senal de video es de 25 Hz, vps_escala_temporal puede ser igual a 27.000.000 y vps_num_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 numero de unidades de tiempo que pasan en un segundo. Por ejemplo, un sistema de coordenadas de tiempo 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 sera mayor que 0.
El vps_indicador_poc_proporcional_a_temporizaci6n igual a 1 indica que el valor del recuento de orden de imagenes para cada imagen en la secuencia de video codificada, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado. El
vps_indicador_poc_proporcional_a_temporizacion igual a 0 indica que el valor del recuento de orden de imagenes para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video
5
10
15
20
25
30
35
codificado, en orden de decodificacion, puede ser proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de vfdeo codificado.
El vps_num_pulsos_dif_poc_uno_menos1 mas 1 especifica el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a 1. El valor de vps_num_pulsos_dif_poc_uno_menos1 estara en la gama entre 0 y 2*32 - 1, inclusive.
Lo siguiente es un ejemplo de una estructura sintactica de parametros de VUI, modificada para resolver uno o mas de los problemas anteriores (la sintaxis subrayada es una adicion a la estructura sintactica de parametros de VUI del HEVC WD9; la sintaxis en cursiva se elimina de la estructura sintactica de parametros de VUI del HEVC WD9; otras partes de la tabla de sintaxis se mantienen sin cambios en relacion con el HEVC WD9):
- parametros_vui() {
- Descriptor
- sps indicador inf temporizacion presente
- u(1)
- si(sps indicador inf temporizacion presente) {
- sps num unidades en pulso
- u(32)
- sps escala temporal
- u(32)
- sps indicador poc proporcional a temporizacion
- u(1)
- si(sps indicador poc proporcional a temporizacion)
- sps num pulsos dif poc uno menosl
- ue(v)
- indicador_parametros_hrd_presentes
- u(1)
- si(indicador_parametros_hrd_presentes)
- parametros_hrd(1, sps_max_sub_capas_menos1 )
- indicador_poc_proporcional_a_temporizaci6 n
- u(1)
- si(indicador_poc_proporcional_a_temporizaci6n && indicador inf temporizaci6n presente)
- num_pulsos_dif_poc_uno_menos 1
- ue(v)
- }
Tabla 5: Estructura sintactica ejemplar modificada de parametros de VUI
La tabla 5 define elementos sintacticos agregados recientemente segun la siguiente semantica de parametros de VUI (la semantica para los elementos sintacticos eliminados se ha eliminado del mismo modo):
El sps_indicador_inf_temporizacion_presente igual a 1 especifica que el sps_num_unidades_en_pulso, la sps_escala_temporal y el sps_indicador_poc_proporcional_a_temporizacion estan presentes en la estructura sintactica parametros_vui(). El sps_indicador_inf_temporizacion_presente igual a 0 especifica que sps_num_unidades_en_pulso, sps_escala_temporal y sps_indicador_poc_proporcional_a_temporizacion no estan presentes en la estructura sintactica parametros_vui().
El sps_num_unidades_en_pulso es el numero de unidades de tiempo de un reloj que funciona en la frecuencia de sps_escala_temporal Hz, que corresponde a un incremento (llamado un pulso de reloj) de un contador de pulsos de reloj: sps_num_unidades_en_pulso debera ser mayor que 0. Un pulso de reloj, en unidades de segundos, es igual al cociente de sps_num_unidades_en_pulso dividido entre sps_escala_temporal. Por ejemplo, cuando la frecuencia de imagenes de una senal de vfdeo es de 25 Hz, sps_escala_temporal puede ser igual a 27.000.000 y sps_num_unidades_en_pulso puede ser igual a 1.080.000 y, en consecuencia, un pulso de reloj puede ser igual a 0,04 segundos (vease la ecuacion (1)). Cuando vps_num_unidades_en_pulso este presente en el conjunto de parametros de vfdeo al que hace referencia el conjunto de parametros de secuencia, sps_num_unidades_en_pulso, cuando este presente, sera igual al vps_num_unidades_en_pulso.
La formula para obtener la variable PulsoReloj (tambien denominada en este documento "pulso de reloj") se modifica para que sea de la forma siguiente:
5
10
15
20
25
30
35
40
45
50
PulsoReloj =
sps_num_unidades_en_pulso
sps_escala_temporal
Ecuacion (1)
sps_escala_temporal es el numero de unidades de tiempo que pasan en un segundo. Por ejemplo, un sistema de coordenadas de tiempo 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 sera mayor que 0. Cuando vps_escala_temporal este presente en el conjunto de parametros de video al que hace referencia el conjunto de parametros de secuencia, sps_escala_temporal, cuando este presente, sera igual a vps_escala_temporal.
El sps_indicador_poc_proporcional_a_temporizacion igual a 1 indica que el valor del recuento de orden de imagenes para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado. El
sps_indicador_poc_proporcional_a_temporizacion igual a 0 indica que el valor del recuento de orden de imagenes para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, puede ser proporcional al tiempo de salida de la imagen con respecto al tiempo de salida de la primera imagen en la secuencia de video codificado. Cuando el
vps_indicador_poc_proporcional_a_temporizacion este presente en el conjunto de parametros de video al que hace referencia el conjunto de parametros de secuencia, el sps_indicador_poc_proporcional_a_temporizacion, cuando este presente, sera igual al vps_indicador_poc_proporcional_a_temporizacion.
El sps_num_pulsos_dif_poc_uno_menos1 mas 1 especifica el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a 1. El valor de
sps_num_pulsos_dif_poc_uno_menos1 estara en la gama entre 0 y 2A32 - 1, inclusive. Cuando el vps_num_pulsos_dif_poc_uno_menos1 este presente en el conjunto de parametros de video al que hace referencia el conjunto de parametros de secuencia, el sps_num_pulsos_dif_poc_uno_menos1, cuando este presente, sera igual al sps_num_pulsos_dif_poc_uno_menos1.
El siguiente es un ejemplo de una estructura sintactica de parametros de HRD, modificada para resolver uno o mas de los problemas anteriores (la sintaxis en cursiva se elimina de la estructura sintactica de parametros de HRD del HEVC WD9):
- parametros_hrd(indicadorInfComunPresente, maxNumSubCapasMenos1 ) {
- Descriptor
- si(indicadorlnfComunPresente) {
- indicador_inf_temporizacion_presente
- u(1)
- si(indicador inf temporizacion presente) {
- num_unidades_en_pulso
- u(32)
- escala temporal
- u(32)
- }
- J_____________________________________________
Tabla 6: Estructura sintactica ejemplar modificada de los parametros de HRD
La semantica de los elementos sintacticos eliminados segun la estructura sintactica ejemplar modificada de parametros de HRD de la tabla 6 se elimina del mismo modo.
El modulo de intra-prediccion 46 puede intra-predecir un bloque actual, como alternativa a la inter-prediccion llevada a cabo por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44, como se ha descrito anteriormente. En particular, el modulo de intra-prediccion 46 puede determinar una modalidad de intra- prediccion a usar para codificar un bloque actual. En algunos ejemplos, el modulo de intra-prediccion 46 puede codificar un bloque actual usando varias modalidades de intra-prediccion, por ejemplo, durante diferentes pasadas de codificacion, y el modulo de intra-prediccion 46 (o la unidad de seleccion de modalidad 40, en algunos ejemplos) puede seleccionar una modalidad de intra-prediccion adecuada para usar, entre las modalidades probadas. Por ejemplo, el modulo de intra-prediccion 46 puede calcular valores de velocidad-distorsion usando un analisis de velocidad-distorsion para las diversas modalidades de intra-prediccion probadas, y seleccionar la modalidad de intra- prediccion que tenga las mejores caracteristicas de velocidad-distorsion entre las modalidades probadas. El analisis de velocidad-distorsion determina generalmente una magnitud de distorsion (o error) entre un bloque codificado y un bloque original no codificado, que fue codificado para generar el bloque codificado, asi como una velocidad de bits (es decir, el numero de bits) usado para generar el bloque codificado. El modulo de intra-prediccion 46 puede calcular razones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar que modalidad de intra-prediccion presenta el mejor valor de velocidad-distorsion para el bloque.
5
10
15
20
25
30
35
40
45
50
55
60
65
En cualquier caso, tras seleccionar una modalidad de intra-prediccion para un bloque, el modulo de intra-prediccion 46 puede proporcionar informacion que indica la modalidad de intra-prediccion seleccionada para el bloque, a la unidad de codificacion por entropia 56. La unidad de codificacion por entropia 56 puede codificar la informacion indicando la modalidad de intra-prediccion seleccionada segun las tecnicas de esta divulgacion. El codificador de video 20 puede incluir datos de configuracion en el flujo de bits transmitido, que pueden incluir una pluralidad de tablas de indices de modalidad de intra-prediccion y una pluralidad de tablas de indices de modalidades de intra- prediccion modificadas (tambien denominadas tablas de correlacion de palabras de codigo), definiciones de contextos de codificacion para varios bloques e indicaciones de la modalidad de intra-prediccion mas probable, una tabla de indices de modalidades de intra-prediccion y una tabla modificada de indices de modalidades de intra- prediccion, a usar en cada uno de los contextos.
Despues de que el modulo de prediccion 41 genere el bloque predictivo para el bloque de video actual, ya sea mediante la inter-prediccion o la intra-prediccion, el codificador de video 20 forma un bloque de video residual restando el bloque predictivo al bloque de video actual. Los datos de video residual en el bloque residual pueden incluirse en una o mas TU y aplicarse al modulo de transformacion 52. El modulo de transformacion 52 transforma los datos de video residual en coeficientes de transformacion residual usando una transformacion, tal como una transformacion de coseno discreta (DCT) o una transformacion conceptualmente similar. El modulo de transformacion 52 puede convertir los datos de video residual, desde un dominio de pixeles a un dominio de transformacion, tal como un dominio de frecuencia.
El modulo de transformacion 52 puede enviar los coeficientes de transformacion resultantes a la unidad de cuantizacion 54. La unidad de cuantizacion 54 cuantiza los coeficientes de transformacion para reducir adicionalmente la velocidad de bits. El proceso de cuantizacion puede reducir la profundidad de bits asociada a algunos de, o a todos, los coeficientes. El grado de cuantizacion puede modificarse ajustando un parametro de cuantizacion. En algunos ejemplos, la unidad de cuantizacion 54 puede realizar a continuacion un escaneo de la matriz, incluyendo los coeficientes de transformacion cuantizados. Como alternativa, la unidad de codificacion por entropia 56 puede realizar el escaneo.
Tras la cuantizacion, la unidad de codificacion por entropia 56 codifica por entropia los coeficientes de transformacion cuantizados. Por ejemplo, la unidad de codificacion por entropia 56 puede realizar una codificacion de longitud variable adaptativa al contexto (CAVLC), una codificacion aritmetica binaria adaptativa al contexto (CABAC), una codificacion aritmetica binaria adaptativa al contexto y basada en la sintaxis (SBAC), una codificacion por entropia mediante division en intervalos de probabilidad (PIPE) u otra metodologia o tecnica de codificacion por entropia. Tras la codificacion por entropia realizada por la unidad de codificacion por entropia 56, el flujo de bits codificado puede transmitirse al decodificador de video 30, o archivarse para su posterior transmision o recuperacion por parte del decodificador de video 30. La unidad de codificacion por entropia 56 tambien puede codificar por entropia los vectores de movimiento y los otros elementos sintacticos para el fragmento de video actual que esta siendo codificado.
La unidad de cuantizacion inversa 58 y el modulo de transformacion inversa 60 aplican una cuantizacion inversa y una transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio de pixeles, para su uso posterior como un bloque de referencia de una imagen de referencia. La unidad de compensacion de movimiento 44 puede calcular un bloque de referencia anadiendo el bloque residual a un bloque predictivo de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. La unidad de compensacion de movimiento 44 tambien puede aplicar uno o mas filtros de interpolacion al bloque residual reconstruido para calcular valores de fracciones de pixel para su uso en la estimacion de movimiento. El sumador 62 anade el bloque residual reconstruido al bloque de prediccion compensado por movimiento, generado por la unidad de compensacion de movimiento 44 para generar un bloque de referencia, para su almacenamiento en la memoria de imagenes de referencia 64 (a veces llamada memoria intermedia de imagenes decodificadas). El bloque de referencia puede ser usado por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 como un bloque de referencia para inter-predecir un bloque en una trama o imagen de video posterior.
El codificador de video 20 puede incluir optativamente un decodificador de referencia hipotetico (HRD) 57 (ilustrado como optativo mediante el uso de lineas de trazos) para comprobar los flujos de bits codificados generados por elementos del codificador de video 20 en cuanto a su conformidad con el modelo de memoria intermedia definido para el HRD 57. El HRD 57 puede comprobar flujos de bits o subconjuntos de flujos de bits de tipo I y/o tipo II en cuanto a conformidad de HRD. Los conjuntos de parametros necesarios para el funcionamiento del HRD 57 son senalizados por uno de los dos tipos de conjuntos de parametros de HRD, parametros de HRD de NAL y parametros de HRD de VCL. Como se ha descrito anteriormente, los conjuntos de parametros de HRD se pueden incorporar dentro de la estructura sintactica del SPS y/o la estructura sintactica del VPS.
El HRD 57 puede probar los bloques de video y elementos sintacticos asociados 55 en cuanto a su conformidad con los requisitos especificados, como una o mas pruebas de conformidad de flujo de bits, definidas en una memoria descriptiva de codificacion de video, tal como el HEVC WD9 o una memoria descriptiva sucesora, tal como el HEVC WD 10. Por ejemplo, el HRD 57 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante el procesamiento de los elementos sintacticos 55 para determinar, a partir de la estructura sintactica del VPS o en la
5
10
15
20
25
30
35
40
45
50
55
60
65
parte de VUI de la estructura sintactica del SPS para una secuencia de video codificada, los elementos sintacticos que definen la condicion para la senalizacion del numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a 1. Si la condicion se cumple segun los valores de los elementos sintacticos, el HRD 57 puede determinar el numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a 1 y utilizar el numero determinado de pulsos de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado. El uso en este documento del termino "procesamiento" en relacion con una serie de elementos sintacticos puede referirse a la extraccion, decodificacion y extraccion, la lectura, el analisis sintactico y cualquier otra operacion de servicio, o combinacion de operaciones, para obtener los elementos sintacticos 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 decodificacion del flujo de bits codificado para determinar la escala temporal y el numero de unidades en un pulso de reloj, a partir de una estructura sintactica del VPS de elementos sintacticos 55 que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica del VPS. En algunos casos, el HRD 57 puede probar el flujo de bits codificado en cuanto a su conformidad mediante la decodificacion de los elementos sintacticos 55 para determinar la escala temporal y el numero de unidades en un pulso de reloj a partir de una estructura sintactica de VUI del flujo de bits codificado que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica de la VUI. La escala temporal y el numero de unidades en un pulso de reloj se pueden senalizar en un lugar que no sea una estructura sintactica de parametros de HRD incorporada dentro de la estructura sintactica del VPS y/o de la VUI. El HRD 57 puede usar la escala temporal determinada y el numero determinado de unidades en un pulso de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
Segun las tecnicas descritas en este documento, el HRD 57 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion, de una estructura sintactica del VPS de los elementos sintacticos 55 para una o mas secuencias de video codificado, del valor de un indicador de POC proporcional a la indicacion de temporizacion. 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 la indicacion de temporizacion en la estructura sintactica del VPS solo si tambien se incluyen los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj. El HRD 57 puede utilizar el valor determinado del indicador de POC proporcional al indicador de temporizacion y los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
La FIG. 3 es un diagrama de bloques que ilustra un decodificador ejemplar de video 76 que puede implementar las tecnicas descritas en esta divulgacion. En el ejemplo de la FIG. 3, el decodificador de video 76 incluye una memoria intermedia de imagenes codificadas (CPB) 78, una unidad de decodificacion por entropia 80, un modulo de prediccion 81, una unidad de cuantizacion inversa 86, una unidad de transformacion inversa 88, un sumador 90 y una memoria intermedia de imagenes decodificadas (DPB) 92. El modulo de prediccion 81 incluye una unidad de compensacion de movimiento 82 y un modulo de intra-prediccion 84. En algunos ejemplos, el decodificador de video 76 puede realizar una pasada de decodificacion generalmente reciproca a la pasada de codificacion descrita con respecto al codificador de video 20 de la FIG. 2. El decodificador de video 76 puede representar un caso ejemplar de decodificador de video 30 del dispositivo de destino 14 o del decodificador de referencia hipotetico 57 de la FIG. 2.
La CPB 78 almacena imagenes codificadas del flujo de bits de imagenes codificadas. En un ejemplo, la CBP 78 es una memoria intermedia del tipo ‘primero en entrar, primero en salir’, que contiene unidades (AU) en el orden de decodificacion. Una AU es un conjunto de unidades de capa de abstraccion de red (NAL) que estan asociadas entre si segun una regla de clasificacion especificada, son consecutivas en el orden de decodificacion y cada una contiene exactamente una imagen codificada. El orden de decodificacion es el orden en el que se decodifican las imagenes, y puede ser diferente al orden en que se muestran las imagenes (es decir, el orden de visualizacion). El funcionamiento de la CPB puede ser especificado por un decodificador de referencia hipotetico (HRD).
Durante el proceso de decodificacion, el decodificador de video 76 recibe un flujo de bits de video codificado que representa bloques de video de un fragmento de video codificado y elementos sintacticos asociados, desde el codificador de video 20. La unidad de decodificacion por entropia 80 del decodificador de video 76 decodifica el flujo de bits para generar coeficientes cuantizados, vectores de movimiento y otros elementos sintacticos 55. La unidad de decodificacion por entropia 80 remite los vectores de movimiento y otros elementos sintacticos 55 al modulo de prediccion 81. El decodificador de video 76 puede recibir los elementos sintacticos 55 a nivel del fragmento de video y/o a nivel del bloque de video. El flujo de bits de video codificado puede incluir informacion de temporizacion senalizada segun las tecnicas descritas a continuacion. Por ejemplo, el flujo de bits de video codificado puede incluir un conjunto de parametros de video (VPS), un conjunto de parametros de secuencia (SPS), o cualquier combinacion de los mismos, que tengan estructuras sintacticas segun las tecnicas descritas en este documento para senalizar parametros para operaciones de HRD.
5
10
15
20
25
30
35
40
45
50
55
60
65
Cuando el fragmento de video se codifica como un fragmento intra-codificado (I), el modulo de intra-prediccion 84 del modulo de prediccion 81 puede generar datos de prediccion para un bloque de video del fragmento de video actual, en base a una modalidad de intra-prediccion senalizada, y datos de bloques previamente decodificados de la trama o imagen actual. Cuando la trama de video se codifica como un fragmento inter-codificado (es decir, B, P o GPB), la unidad de compensacion de movimiento 82 del modulo de prediccion 81 genera bloques predictivos para un bloque de video del fragmento de video actual, en base a los vectores de movimiento y otros elementos sintacticos 55 recibidos desde la unidad de decodificacion por entropia 80. Los bloques predictivos pueden ser generados a partir de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. El decodificador de video 76 puede construir las listas de tramas de referencia, la lista 0 y la lista 1, usando tecnicas de construccion por omision, en base a las imagenes de referencia almacenadas en la DpB 92.
La unidad de compensacion de movimiento 82 determina la informacion de prediccion para un bloque de video del fragmento de video actual, analizando los vectores de movimiento y otros elementos sintacticos 55, y usa la informacion de prediccion para generar los bloques predictivos para el bloque de video actual que esta siendo decodificado. Por ejemplo, la unidad de compensacion de movimiento 82 utiliza algunos de los elementos sintacticos recibidos 55 para determinar una modalidad de prediccion (por ejemplo, intra-prediccion o inter-prediccion), usada para codificar los bloques de video del fragmento de video, un tipo de fragmento de inter-prediccion (por ejemplo, fragmento B, fragmento P o fragmento GPB), informacion de construccion para una o mas de las listas de imagenes de referencia para el fragmento, vectores de movimiento para cada bloque de video inter-codificado del fragmento, estado de inter-prediccion para cada bloque de video inter-codificado del fragmento y otra informacion, para decodificar los bloques de video en el fragmento de video actual.
La unidad de compensacion de movimiento 82 tambien puede realizar la interpolacion en base a filtros de interpolacion. La unidad de compensacion de movimiento 82 puede usar filtros de interpolacion como los usados por el codificador de video 20 durante la codificacion de los bloques de video para calcular valores interpolados para fracciones de pixeles de bloques de referencia. En este caso, la unidad de compensacion de movimiento 82 puede determinar los filtros de interpolacion usados por el codificador de video 20 a partir de los elementos sintacticos recibidos 55 y usar los filtros de interpolacion para generar bloques predictivos.
La unidad de cuantizacion inversa 86 cuantiza de manera inversa, es decir, descuantiza, los coeficientes de transformacion cuantizados, proporcionados en el flujo de bits y decodificados por la unidad de decodificacion por entropia 80. El proceso de cuantizacion inversa puede incluir el uso de un parametro de cuantizacion calculado por el codificador de video 20 para cada bloque de video en el fragmento de video, para determinar un grado de cuantizacion y, asimismo, un grado de cuantizacion inversa que deberia aplicarse. La unidad de transformacion inversa 88 aplica una transformacion inversa, por ejemplo, una DCT inversa, una transformacion inversa entera o un proceso de transformacion inversa conceptualmente similar, a los coeficientes de transformacion con el fin de generar bloques residuales en el dominio de pixeles.
Despues de que la unidad de compensacion de movimiento 82 genere el bloque predictivo para el bloque de video actual, en base a los vectores de movimiento y a otros elementos sintacticos 55, el decodificador de video 76 forma un bloque de video decodificado sumando los bloques residuales procedentes de la unidad de transformacion inversa 88 a los correspondientes bloques predictivos generados por la unidad de compensacion de movimiento 82. El sumador 90 representa el componente o los componentes que llevan a cabo esta operacion de suma. Si se desea, tambien 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 codificacion o despues del bucle de codificacion) tambien pueden ser usados para allanar las transiciones de pixeles, o mejorar de otro modo la calidad del video. A continuacion, los bloques de video decodificados en una trama o imagen dada se almacenan en la DPB 92, que almacena imagenes de referencia usadas para la posterior compensacion de movimiento. La DPB 92 almacena tambien video decodificado para su presentacion posterior en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la FIG. 1. Como la CPB 78, en un ejemplo, el funcionamiento de la DPB 92 puede ser especificado por el decodificador de referencia hipotetico (HRD).
El codificador 20 y el decodificador 76, como se describe en esta divulgacion, representan ejemplos de dispositivos configurados para llevar a cabo tecnicas de temporizacion de senalizacion en un proceso de codificacion de video tal como se describe en esta divulgacion. Segun ello, las operaciones descritas en esta divulgacion para el tiempo de senalizacion pueden ser realizadas por el codificador 20, el decodificador 76 o ambos. En algunos casos, el codificador 20 puede senalizar la informacion de temporizacion y el decodificador 76 puede recibir dicha informacion de temporizacion, por ejemplo, para su uso en la definicion de una o mas funciones, caracteristicas, parametros o condiciones del HRD.
El decodificador de video 76 puede, en algunos casos, ser un decodificador de video 76 bajo prueba (o VUT). El decodificador de video 76 puede recibir una representacion del flujo de bits codificado, generado por un codificador de video 20 para senalizar directamente, en la estructura sintactica del VPS o en la parte de VUI de la estructura sintactica del SPS de elementos sintacticos 55 para una secuencia de video codificado, todos los elementos sintacticos que definen la condicion para senalizar una serie de pulsos de reloj que corresponden a una diferencia de
5
10
15
20
25
30
35
40
45
50
55
60
65
valores del recuento de orden de imageries (POC) igual a 1. El decodificador de video 76 puede decodificar el flujo de bits codificado para determinar, a partir de la estructura sintactica del VPS o en la parte de VUI de la estructura sintactica del SPS para una secuencia de video codificado, los elementos sintacticos que definen la condicion para la senalizacion del numero de pulsos de reloj que corresponden a una diferencia de valores de POC igual a 1. Si la condicion se cumple segun los valores de los elementos sintacticos, el decodificador de video 76 puede determinar el numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a 1, y utilizar el numero determinado de pulsos de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB 78 durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
En otro ejemplo, el codificador de video 20 puede recibir una representacion del flujo de bits codificado, generado por el codificador de video 20 para indicar la escala temporal y el numero de unidades en un pulso de reloj, como maximo, una vez en cada una de las estructuras sintacticas del VPS y de la VUI de elementos sintacticos 55 para una secuencia de video codificado dada. El decodificador de video 76 puede decodificar el flujo de bits codificado para determinar la escala temporal y el numero de unidades en un pulso de reloj a partir de una estructura sintactica del VPS del flujo de bits codificado que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica del VPS. En algunos casos, el decodificador de video 76 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado para determinar la escala temporal y el numero de unidades en un pulso de reloj a partir de una estructura sintactica de la VUI del flujo de bits codificado que codifica los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj, como maximo, una vez en la estructura sintactica de la VUI. La escala temporal y el numero de unidades en un pulso de reloj se pueden senalizar en un lugar que no sea una estructura sintactica de parametros de HRD incorporada dentro de la estructura sintactica del VPS y/o de la VUI. El decodificador de video 76 puede usar la escala temporal determinada y el numero determinado de unidades en un pulso de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB 78 durante la decodificacion de imagenes codificadas incluidas en el flujo de bits codificado.
En otro ejemplo, el decodificador de video 76 puede recibir una representacion del flujo de bits codificado, generado por el codificador de video 20 para senalizar, en una estructura sintactica del VPS de elementos sintacticos 55 para una o mas secuencias de video codificado, un indicador de POC proporcional a indicacion de temporizacion. El decodificador de video 76 puede probar el flujo de bits codificado en cuanto a su conformidad, mediante la decodificacion del flujo de bits codificado para determinar un valor para el indicador. El decodificador de video 76 puede, adicionalmente o alternativamente, probar un flujo de bits codificado, generado por el decodificador de video 76 para senalizar el indicador en la estructura sintactica del VPS solo si tambien se incluyen los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj. El decodificador de video 76 puede utilizar el valor determinado del indicador de POC proporcional a indicacion de temporizacion y los elementos sintacticos de la escala temporal y del numero de unidades en un pulso de reloj como entrada para, por ejemplo, la determinacion del desborde inferior o superior de la CPB 78 durante la decodificacion de las imagenes codificadas incluidas en el flujo de bits codificado.
La FIG. 4 es un diagrama de bloques que ilustra una estructura ejemplar de codificacion 100 para un conjunto de imagenes de referencia. La estructura de codificacion 100 incluye los fragmentos 102A a 102E (colectivamente, "fragmentos 102"). El recuento de orden de imagenes 108 asociado a la estructura de codificacion 100 indica el orden de salida del fragmento correspondiente en el conjunto de imagenes de referencia. Por ejemplo, el fragmento I 102A tiene que emitirse en primer lugar (valor de POC 0), mientras que el fragmento b 102B tiene que emitirse en segundo lugar (valor de POC 1). El orden de decodificacion 110 asociado a la estructura de codificacion 100 denota el orden de decodificacion para el fragmento correspondiente en el conjunto de imagenes de referencia. Por ejemplo, el fragmento I 102A tiene que emitirse en primer lugar (orden de decodificacion 1), mientras que el fragmento b 102B tiene que emitirse en segundo lugar (orden de decodificacion 2).
La flecha 104 indica un tiempo de salida de las imagenes a lo largo de un continuo temporal t. El intervalo de tiempo 106 representa un intervalo de tiempo que corresponde a una diferencia de valores del recuento de orden de imagenes (POC) igual a 1. El intervalo de tiempo 106 puede incluir un numero 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 de tiempo para la informacion senalizada) y del numero de unidades de tiempo de un reloj que funciona en la escala temporal que corresponde a un incremento de un contador de pulsos de reloj, que se denomina "pulso de reloj". Segun las tecnicas descritas en el presente documento, un codificador de video 20 puede generar un flujo de bits para senalizar directamente, en la estructura sintactica del conjunto de parametros de video (VPS) o en la parte de informacion de facilidad de uso de video (VUI) de la estructura sintactica del conjunto de parametros de secuencia (SPS) para una secuencia de video codificado, elementos sintacticos que definen una condicion para la senalizacion de una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a 1.
La FIG. 5 es un diagrama de flujo que muestra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion. Un codificador de video 20 codifica las imagenes de una secuencia de video para generar una secuencia de video codificado (200). El codificador de video 20 genera, ademas, los conjuntos de
5
10
15
20
25
30
35
40
45
50
55
60
65
parametros para la secuencia de video codificado. Los conjuntos de parametros pueden incluir parametros codificados segun una estructura sintactica del conjunto de parametros de secuencia (SPS) y/o segun una estructura sintactica del conjunto de parametros de video (VPS). Segun las tecnicas descritas en este documento, el codificador de video 20 codifica los elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal, directamente en la estructura sintactica del VPS y/o directamente en la estructura sintactica del SPS para la secuencia de video codificado (202). El termino "directamente" indica que tal codificacion puede generarse sin incorporar, en la estructura sintactica del VPS o la estructura sintactica del SPS (segun el caso), los elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal definida para una estructura sintactica de un conjunto de parametros independientes, tal como la correspondiente al conjunto de parametros del decodificador de referencia hipotetico (HRD) definido en el HEVC WD9.
Ademas, el codificador de video 20 codifica, directamente en la estructura sintactica del VPS y/o la estructura sintactica del SPS de la secuencia de video codificado, una condicion para la senalizacion de una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a uno (204). La condicion puede incluir uno o mas elementos sintacticos que representan las variables de una formula booleana, en cuyo caso el codificador de video 20 puede codificar cada uno de dichos elementos sintacticos directamente en la estructura sintactica del VPS y/o la estructura sintactica del SPS de la secuencia de video codificado. El codificador de video 20 emite la secuencia de video codificado y la estructura sintactica del VPS y/o la estructura sintactica del SPS para la secuencia de video codificado (206). En algunos casos, el codificador de video 20 emite estas estructuras a un HRD del codificador de video 20.
Las FIGs. 6A a 6B son diagramas de flujo que ilustran procedimientos ejemplares de funcionamiento segun las tecnicas descritas en esta divulgacion. En la FIG. 6A, un codificador de video 20 codifica las imagenes de una secuencia de video para generar una secuencia de video codificado (300). El codificador de video 20 genera, ademas, los conjuntos de parametros para la secuencia de video codificado. Los conjuntos de parametros pueden incluir parametros codificados segun una estructura sintactica del conjunto de parametros de video (VPS). Segun las tecnicas descritas en el presente documento, el codificador de video 20 codifica los elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal directamente y, como maximo, una vez, en una estructura sintactica del VPS para la secuencia de video codificado (302). En algunos casos, incluso en los casos en los que la estructura sintactica del VPS incluye multiples casos de parametros de HRD, mediante la codificacion de los elementos sintacticos directamente en la estructura sintactica del VPS (como maximo, una vez) y no en los conjuntos de parametros del HRD (o cualquier otra estructura sintactica de conjunto de parametros incorporados), la estructura sintactica del VPS puede incluir un elemento sintactico unico para cada uno entre el numero de unidades en un pulso de reloj y la escala temporal. El codificador de video 20 emite la secuencia de video codificado y la estructura sintactica del VPS para la secuencia de video codificado (304). En algunos casos, el codificador de video 20 emite estas estructuras a un HRD del codificador de video 20.
En la FIG. 6B, un codificador de video 20 codifica las imagenes de una secuencia de video para generar una secuencia de video codificado (310). El codificador de video 20 genera, ademas, los conjuntos de parametros para la secuencia de video codificado. Los conjuntos de parametros pueden incluir parametros codificados segun una estructura sintactica del conjunto de parametros de video (SPS). Segun las tecnicas descritas en el presente documento, el codificador de video 20 codifica los elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal directamente y, como maximo, una vez, en una estructura sintactica del SPS para la secuencia de video codificado (312). En algunos casos, incluso en los casos en los que la estructura sintactica del SPS incluye multiples casos de parametros de HRD, mediante la codificacion de los elementos sintacticos directamente en la estructura sintactica del SPS (como maximo, una vez) y no en los conjuntos de parametros del HRD (o cualquier otra estructura sintactica de conjunto de parametros incorporados), la estructura sintactica del SPS puede incluir un elemento sintactico unico para cada uno entre el numero de unidades en un pulso de reloj y la escala temporal. El codificador de video 20 emite la secuencia de video codificado y la estructura sintactica del SPS para la secuencia de video codificado (314). En algunos casos, el codificador de video 20 emite estas estructuras a un HRD del codificador de video 20. En algunos casos, el codificador de video 20 puede codificar los elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal, tanto para una estructura sintactica del VPS como para una estructura sintactica del SPS para la secuencia de video codificado.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion. Un codificador de video 20 codifica las imagenes de una secuencia de video para generar una secuencia de video codificado (400). El codificador de video 20 genera, ademas, los conjuntos de parametros para la secuencia de video codificado. Los conjuntos de parametros pueden incluir parametros codificados segun una estructura sintactica del conjunto de parametros de video (VPS). Si la informacion de temporizacion tiene que incluirse, por ejemplo, para la definicion de un modelo de memoria intermedia del HRD (rama SI en 402), el codificador de video 20 codifica, directamente en una estructura sintactica del VPS para la secuencia de video codificado, un elemento sintactico que tiene un valor que especifica si el valor del recuento de orden de imagenes (POC) para cada imagen en la secuencia de video codificada, que no sea la primera imagen en la secuencia de video codificada, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado (404). El elemento sintactico puede ser semanticamente similar al indicador_poc_proporcional_a_temporizacion definido por el HEVC
5
10
15
20
25
30
35
40
45
50
55
60
65
WD9. La informacion de temporizacion puede representar el numero de unidades en un pulso de reloj y la escala temporal.
Si el valor del elemento sintactico es verdadero (rama SI en 406), el codificador de video 20 codifica tambien un elemento sintactico para el numero de pulsos de reloj correspondientes a una diferencia de valores del recuento de orden de imagenes igual a uno (408). Debido a que el codificador de video 20 codifica los elementos sintacticos en el VPS, los valores de los elementos sintacticos pueden aplicarse a todas las capas o a todos los posibles subconjuntos de flujos de bits de un flujo de bits de video ajustable a escala, pues el VPS representa el conjunto de parametros de la capa mas alta y describe las caracteristicas generales de secuencias de imagenes codificadas.
Si la informacion de temporizacion no se va a incluir en la estructura sintactica del VPS (rama NO de 402), el codificador de video 20 no codifica ni el elemento sintactico para indicar que el POC es proporcional a la informacion de temporizacion ni el elemento sintactico para el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a uno. Si el POC no es proporcional a la informacion de temporizacion (es decir, el valor es falso) (rama NO de 406), el codificador de video 20 no codifica el elemento sintactico para el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a uno.
El codificador de video 20 emite la secuencia de video codificado y la estructura sintactica del VPS para la secuencia de video codificado (410). En algunos casos, el codificador de video 20 emite estas estructuras a un HRD del codificador de video 20.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion. Un dispositivo decodificador de video 30, o decodificador de referencia hipotetico 57, de un dispositivo codificador de video 20 (en adelante, "el decodificador") recibe una secuencia de video codificado y una estructura sintactica del conjunto de parametros de video (VPS) y/o una estructura sintactica del conjunto de parametros de secuencia (SPS) para la secuencia de video codificado (500). La secuencia de video codificado y/o la(s) estructura(s) sintactica(s) pueden codificarse en un flujo de bits que incluye una o mas imagenes codificadas.
El decodificador procesa la estructura sintactica del VPS y/o la estructura sintactica del SPS para extraer un elemento sintactico que especifica, directamente en la estructura sintactica del VPS y/o la estructura sintactica del SPS, una condicion para la senalizacion de una serie de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes (POC) igual a uno (502). La condicion puede incluir uno o mas elementos sintacticos que representan variables de una formula booleana, en cuyo caso el decodificador puede procesar cada uno de dichos elementos sintacticos directamente desde la estructura sintactica del VPS y/o la estructura sintactica del SPS de la secuencia de video codificado.
El decodificador, ademas, procesa la estructura sintactica del VPS y/o la estructura sintactica del SPS para extraer elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal, directamente desde la estructura sintactica del VPS y/o directamente desde la estructura sintactica del SPS para la secuencia de video codificado (504). El decodificador puede entonces verificar la conformidad de la secuencia de video codificado con un modelo de memoria intermedia de video que esta definido, al menos en parte, mediante los valores para la condicion, el numero de unidades en un pulso de reloj y la escala temporal, tal como se extraen de la estructura sintactica del VPS y/o la estructura sintactica del SPS, y como se leen desde los elementos sintacticos correspondientes (506).
Las FIGs. 9A a 9B son diagramas de flujo que ilustran procedimientos ejemplares de funcionamiento segun las tecnicas descritas en esta divulgacion. En la FIG. 9A, un dispositivo decodificador de video 30 o un decodificador de referencia hipotetico 57 de un dispositivo codificador de video 20 (en adelante, "el decodificador") recibe una secuencia de video codificado y una estructura sintactica del conjunto de parametros de video (VPS) para la secuencia de video codificado (600). La secuencia de video codificado y/o la estructura sintactica del VPS pueden codificarse en un flujo de bits que incluye una o mas imagenes codificadas.
Segun las tecnicas descritas en este documento, el decodificador procesa la estructura sintactica del VPS para
extraer elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal, lo que se
produce directamente y, como maximo, una vez en la estructura sintactica del VPS para la secuencia de video codificado (602). El decodificador puede entonces verificar la conformidad de la secuencia de video codificado con un modelo de memoria intermedia de video que se define, al menos en parte, mediante los valores para el numero de unidades en un pulso de reloj y la escala temporal, tal como se extraen de la estructura sintactica del VPS y como se leen desde los elementos sintacticos correspondientes (604).
En la FIG. 9B, el decodificador recibe una secuencia de video codificado y una estructura sintactica del conjunto de parametros de video (SPS) para la secuencia de video codificado (610). La secuencia de video codificado y/o las estructuras sintacticas del SPS pueden codificarse en un flujo de bits que incluye una o mas imagenes codificadas.
Segun las tecnicas descritas en este documento, el decodificador procesa la estructura sintactica del SPS para
5
10
15
20
25
30
35
40
45
50
55
60
65
extraer elementos sintacticos para el numero de unidades en un pulso de reloj y la escala temporal, lo que se produce directamente y, como maximo, una vez en la estructura sintactica del SPS para la secuencia de video codificado (612). El decodificador puede entonces verificar la conformidad de la secuencia de video codificado con un modelo de memoria intermedia de video que se define, al menos en parte, mediante los valores para el numero de unidades en un pulso de reloj y la escala temporal, tal como se extraen de la estructura sintactica del SPS y como se leen desde los elementos sintacticos correspondientes (614).
La FIG. 10 es un diagrama de flujo que muestra un procedimiento ejemplar de funcionamiento segun las tecnicas descritas en esta divulgacion. En la FIG. 10, un dispositivo decodificador de video 30 o un decodificador de referencia hipotetico 57 de un dispositivo codificador de video 20 (en adelante, "el decodificador") recibe una secuencia de video codificado y una estructura sintactica del conjunto de parametros de video (VPS) para la secuencia de video codificado (700). La secuencia de video codificado y/o la estructura sintactica del VPS pueden codificarse en un flujo de bits que incluye una o mas imagenes codificadas.
El decodificador procesa la estructura sintactica del VPS para extraer un elemento sintactico que especifica si el valor del recuento de orden de imagenes para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, en orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado (702). Si el valor del elemento sintactico es verdadero, entonces el decodificador procesa adicionalmente la estructura sintactica del VPS para extraer un elemento sintactico para el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a uno (706). El decodificador puede entonces verificar la conformidad de la secuencia de video codificado con un modelo de memoria intermedia de video que se define, al menos en parte, mediante el valor para el numero de pulsos de reloj que corresponden a una diferencia de valores del recuento de orden de imagenes igual a uno, extraido de la estructura sintactica del VPS y tal como se lee desde el elemento sintactico correspondiente (708).
En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de los mismos. Si se implementan en software, las funciones, como una o mas instrucciones o codigo, 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 comunicacion que incluyen cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, segun un protocolo de comunicacion. 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 comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera, a los que se pueda acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en esta divulgacion. Un producto de programa informatico 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 optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda usarse para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion 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 optica, un par trenzado, una linea de abonado digital (DSL) o tecnologias inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologias inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberia entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales 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 laser, el disco optico, el disco versatil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos normalmente reproducen datos de manera magnetica, mientras que otros discos reproducen los datos de manera optica con laser. Las combinaciones de lo anterior tambien deberian incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especificos de la aplicacion (ASIC), formaciones logicas programables en el terreno (FPGA) u otros circuitos logicos integrados o discretos equivalentes. Por consiguiente, el termino "procesador", como se usa en el presente documento, puede referirse a cualquier estructura anterior o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de hardware especializado y/o modulos de software configurados para la codificacion y la decodificacion, o incorporarse en un codec combinado. Ademas, las tecnicas podrian implementarse completamente en uno o mas circuitos o elementos logicos.
Las tecnicas de esta divulgacion se pueden implementar en una gran variedad de dispositivos o aparatos, incluyendo un equipo de mano inalambrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Varios componentes, modulos o unidades se describen en esta divulgacion para enfatizar aspectos 5 funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente la realizacion mediante diferentes unidades de hardware. Mas bien, como se ha descrito anteriormente, pueden combinarse diversas unidades en una unidad de hardware de codec o ser proporcionadas por una coleccion de unidades de hardware inter-operativas, incluyendo uno o mas procesadores, como se ha descrito anteriormente, junto con el software y/o firmware adecuado.
10
Se han descrito diversos ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.
Claims (12)
1.
10
15 2.
20
25
3.
30 4.
35
5.
40
45 6.
50
7.
55
8.
60
REIVINDICACIONES
Un procedimiento de procesamiento de datos de video, procedimiento que comprende:
recepcion (700) de una secuencia de video codificado que comprende imagenes codificadas de una secuencia de video; y
recepcion (702) de los parametros de temporizacion para la secuencia de video codificado, que incluyen una indicacion de si un valor del recuento de orden de imagenes, POC, para cada imagen en la secuencia de video codificado, que no sea una primera imagen en la secuencia de video codificado, segun un orden de decodificacion, es proporcional a un tiempo de salida de la imagen en relacion con un tiempo de salida de la primera imagen en la secuencia de video codificado, en una estructura sintactica del conjunto de parametros de video, VPS, a la que hace referencia la secuencia de video codificado.
Un procedimiento de codificacion de datos de video, procedimiento que comprende:
codificacion (400) de imagenes de una secuencia de video para generar una secuencia de video codificado que comprende las imagenes codificadas; y
senalizacion (400, 410) de parametros de temporizacion para la secuencia de video codificado, mediante la senalizacion de una indicacion de si un valor del recuento de orden de imagenes, POC, para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, segun un orden de decodificacion, es proporcional a un tiempo de salida de la imagen en relacion con un tiempo de salida de la primera imagen en la secuencia de video codificado, en una estructura sintactica del conjunto de parametros de video, VPS, a la que hace referencia la secuencia de video codificado.
El procedimiento de la reivindicacion 1 o 2, en el que la indicacion comprende un elemento sintactico indicador_vps_poc_proporcional_a_temporizacion.
El procedimiento de la reivindicacion 1 o 2, en el que la senalizacion de los parametros de temporizacion para la secuencia de video codificado comprende ademas:
solo si la indicacion indica que el valor del POC para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, segun el orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado, recibir o senalizar, respectivamente, un numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a uno en la estructura sintactica del VPS.
El procedimiento de la reivindicacion 1 o 2,
en el que la recepcion o senalizacion, respectivamente, de la indicacion comprende, respectivamente, la recepcion o senalizacion de la indicacion solo si los elementos sintacticos para una escala temporal y un numero de unidades en un pulso de reloj estan presentes en la estructura sintactica del VPS.
El procedimiento de la reivindicacion 1 o 2, en el que la recepcion o senalizacion, respectivamente, de los parametros de temporizacion para la secuencia de video codificado comprende ademas:
la recepcion o senalizacion, respectivamente, de una indicacion, en la estructura sintactica del VPS, de si los elementos sintacticos para una escala temporal y un numero de unidades en un pulso de reloj estan presentes en la estructura sintactica del VPS.
El procedimiento de la reivindicacion 6, en el que la indicacion, en la estructura sintactica del VPS, de si los elementos sintacticos para la escala temporal y el numero de unidades en un pulso de reloj estan presentes en la estructura sintactica del VPS comprende un elemento sintactico indicador_vps_inf_temporizacion_presente.
El procedimiento de la reivindicacion 1 o 2, en el que la recepcion o senalizacion, respectivamente, de los parametros de temporizacion para la secuencia de video codificado comprende ademas:
solo si el valor del POC para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, segun el orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado, la recepcion o senalizacion, respectivamente, de un numero de pulsos de reloj que corresponden a una diferencia de valores del POC igual a uno, en una parte de informacion de facilidad de uso de video (VUI) de una estructura sintactica del conjunto de parametros de secuencia (SPS), a la que hace referencia la secuencia de video codificado.
5
10
15
20
25
30
35
40
45
50
55
9. El procedimiento de la reivindicacion 1 o 2, en el que la indicacion comprende una primera indicacion, y en el que, respectivamente, la recepcion o la senalizacion de los parametros de temporizacion para la secuencia de video codificado comprende ademas:
solo si los elementos sintacticos para una escala temporal y un numero de unidades en un pulso de reloj estan presentes en una parte de informacion de facilidad de uso de video, VUI, de una estructura sintactica de un conjunto de parametros de secuencia, SPS, a la que hace referencia la secuencia de video codificado, la recepcion o senalizacion, respectivamente, de una segunda indicacion de si el valor del POC para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, segun el orden de decodificacion, es proporcional al tiempo de salida de la imagen en relacion con el tiempo de salida de la primera imagen en la secuencia de video codificado en la parte de VUI de la estructura sintactica del SPS.
10. El procedimiento de la reivindicacion 9, en el que la segunda indicacion comprende un elemento sintactico indicador_sps_poc_proporcional_a_temporizacion.
11. El procedimiento de la reivindicacion 1 o 2, en el que la recepcion o senalizacion, respectivamente, de los parametros de temporizacion para la secuencia de video codificado comprende ademas:
recepcion o senalizacion, respectivamente, de una indicacion, en una parte de informacion de facilidad de uso de video, VUI, de una estructura sintactica del conjunto de parametros de secuencia, SPS, a la que hace referencia la secuencia de video codificado, de si los elementos sintacticos para una escala temporal y un numero de unidades en un pulso de reloj estan presentes en la parte de VUI de la estructura sintactica del SPS.
12. El procedimiento de la reivindicacion 11, en el que la indicacion, en la parte de VUI de la estructura sintactica del SPS a la que hace referencia la secuencia de video codificado, de si los elementos sintacticos para la escala temporal y el numero de unidades en un pulso de reloj estan presentes en la parte de VUI de la estructura sintactica del SPS, comprende un elemento sintactico indicador_sps_inf_temporizacion_presente.
13. Un medio de almacenamiento no transitorio legible por ordenador que almacena instrucciones para el procesamiento de datos de video que, tras la ejecucion mediante uno o mas procesadores, hacen que los uno o mas procesadores lleven a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 12.
14. Un dispositivo para el procesamiento de datos de video, que comprende
medios para la recepcion de una secuencia de video codificado que comprende imagenes codificadas de una secuencia de video; y
medios para la recepcion de parametros de temporizacion para la secuencia de video codificado, que incluyen una indicacion de si un valor del recuento de orden de imagenes, POC, para cada imagen en la secuencia de video codificado, que no sea la primera imagen en la secuencia de video codificado, segun un orden de decodificacion, es proporcional a un tiempo de salida de la imagen en relacion con un tiempo de salida de la primera imagen en la secuencia de video codificado, en una estructura sintactica del conjunto de parametros de video, VPS, a la que hace referencia la secuencia de video codificado.
15. Un dispositivo para codificar datos de video, dispositivo que comprende:
medios para codificar las imagenes de una secuencia de video, para generar una secuencia de video codificado que comprende las imagenes codificadas; y
medios para la senalizacion de parametros de temporizacion para la secuencia de video codificado, mediante la senalizacion de una indicacion de si un valor del recuento de orden de imagenes, POC, para cada imagen en la secuencia de video codificado, que no sea una primera imagen en la secuencia de video codificado, segun un orden de decodificacion, es proporcional a un tiempo de salida de la imagen en relacion con un tiempo de salida de la primera imagen en la secuencia de video codificado, en una estructura sintactica del conjunto de parametros de video, VPS, a la que hace referencia la secuencia de video codificado.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361749866P | 2013-01-07 | 2013-01-07 | |
US201361749866P | 2013-01-07 | ||
US201314061260 | 2013-10-23 | ||
US14/061,260 US9374581B2 (en) | 2013-01-07 | 2013-10-23 | Signaling of picture order count to timing information relations for video timing in video coding |
PCT/US2013/077279 WO2014107361A1 (en) | 2013-01-07 | 2013-12-20 | Signaling of picture order count to timing information relations for video timing in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2630831T3 true ES2630831T3 (es) | 2017-08-24 |
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 |
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 |
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 |
Family Applications Before (2)
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 |
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 (29)
Country | Link |
---|---|
US (3) | US9325992B2 (es) |
EP (3) | EP2941886B1 (es) |
JP (4) | JP6203866B2 (es) |
KR (3) | KR101719940B1 (es) |
CN (3) | CN104904222B (es) |
AP (3) | AP2015008577A0 (es) |
AR (3) | AR095294A1 (es) |
AU (3) | AU2013371450B2 (es) |
BR (3) | BR112015016256B1 (es) |
CA (3) | CA2894900C (es) |
DK (3) | DK2941888T3 (es) |
EA (3) | EA026507B1 (es) |
EC (3) | ECSP15034547A (es) |
ES (3) | ES2613136T3 (es) |
HK (3) | HK1210350A1 (es) |
HU (3) | HUE032261T2 (es) |
IL (3) | IL239301A (es) |
MA (3) | MA38236B1 (es) |
MY (3) | MY169409A (es) |
PH (3) | PH12015501374B1 (es) |
PL (3) | PL2941888T3 (es) |
PT (3) | PT2941888T (es) |
SA (3) | SA515360724B1 (es) |
SG (3) | SG11201504538WA (es) |
SI (3) | SI2941886T1 (es) |
TW (3) | TWI524744B (es) |
UA (3) | UA115163C2 (es) |
WO (3) | WO2014107360A1 (es) |
ZA (1) | ZA201505418B (es) |
Families Citing this family (22)
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 |
US9325992B2 (en) | 2013-01-07 | 2016-04-26 | Qualcomm Incorporated | Signaling of clock tick derivation information for video timing in video coding |
WO2015008464A1 (en) * | 2013-07-14 | 2015-01-22 | Sharp Kabushiki Kaisha | Video parameter set signaling |
US9912966B2 (en) * | 2014-01-03 | 2018-03-06 | Nokia Technologies Oy | Parameter set coding |
US20200021853A1 (en) * | 2017-03-20 | 2020-01-16 | Sharp Kabushiki Kaisha | Systems and methods for signaling scalable video in a media application format |
US10721608B2 (en) * | 2017-12-15 | 2020-07-21 | Motorola Solutions, Inc. | Profiles in deployable wireless communications systems |
EP3815380A4 (en) | 2018-07-01 | 2022-03-30 | Sharp Kabushiki Kaisha | SYSTEMS AND METHODS FOR SIGNALING PICTURE ORDER COUNT VALUES FOR PICTURES CONTAINED IN ENCODED VIDEO |
EP3846471A4 (en) * | 2018-08-31 | 2022-02-23 | SZ DJI Technology Co., Ltd. | ENCODING METHOD, DECODING METHOD, ENCODING APPARATUS, AND DECODING APPARATUS |
SG11202104480RA (en) | 2018-11-05 | 2021-05-28 | Beijing Bytedance Network Technology Co Ltd | Interpolation for inter prediction with refinement |
WO2020171224A1 (ja) * | 2019-02-21 | 2020-08-27 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
US11533474B2 (en) | 2019-03-11 | 2022-12-20 | Dolby Laboratories Licensing Corporation | Video coding using reference picture resampling supporting region of interest |
DK3850847T3 (da) * | 2019-03-11 | 2022-07-11 | Dolby Laboratories Licensing Corp | Signalering af information relateret til blændevinkel |
US20220217404A1 (en) * | 2019-04-15 | 2022-07-07 | Lg Electronics Inc. | Scaling list-based video or image coding |
CN116233436A (zh) * | 2019-06-20 | 2023-06-06 | 腾讯美国有限责任公司 | 视频解码方法、设备和计算机可读存储介质 |
US11877000B2 (en) | 2019-08-06 | 2024-01-16 | Dolby Laboratories Licensing Corporation | Canvas size scalable video coding |
WO2021033774A1 (en) * | 2019-08-21 | 2021-02-25 | Sharp Kabushiki Kaisha | Systems and methods for signaling buffering period information in video coding |
JP7305883B2 (ja) * | 2019-09-17 | 2023-07-10 | ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド | Prof(prediction refinement with optical flow)の方法および装置 |
CN117615157A (zh) | 2019-09-24 | 2024-02-27 | 华为技术有限公司 | 可伸缩嵌套式sei消息管理 |
EP4026094A4 (en) * | 2019-10-07 | 2022-11-09 | Huawei Technologies Co., Ltd. | VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC) TIME INFORMATION |
JP7405990B2 (ja) | 2019-12-26 | 2023-12-26 | バイトダンス インコーポレイテッド | コーディングされたピクチャ内における復号順を実装する技術 |
CN116800976B (zh) * | 2023-07-17 | 2024-03-12 | 武汉星巡智能科技有限公司 | 伴睡婴幼儿时音视频压缩和还原方法、装置及设备 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR0007803A (pt) | 1999-11-29 | 2002-03-12 | Koninkl Philips Electronics Nv | Processo para codificar uma pluralidade de dados multimìdia, produto de programa de computador para um dispositivo de codificação de dados multimìdia, e, sinal codificado transmissìvel |
WO2002080541A1 (fr) | 2001-03-29 | 2002-10-10 | Matsushita Electric Industrial Co., Ltd. | Appareil d'enregistrement/lecture de donnees av, procede connexe, et disque sur lequel sont enregistrees les donnees par l'appareil d'enregistrement/lecture de donnees av ou procede associe |
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 |
EP1704720A1 (en) | 2004-01-16 | 2006-09-27 | General Instrument Corporation | Method, protocol, and apparatus for transporting advanced video coding content |
EP2346243B1 (en) * | 2004-08-31 | 2013-11-06 | Panasonic Corporation | Moving image encoding method and apparatus |
TWI401918B (zh) | 2005-02-03 | 2013-07-11 | Nokia Corp | 傳送指示接收器緩衝架構之緩衝參數信號的通訊方法 |
KR101450921B1 (ko) * | 2006-07-05 | 2014-10-15 | 톰슨 라이센싱 | 멀티뷰 비디오 엔코딩 및 디코딩을 위한 방법 및 장치 |
AU2007269576B2 (en) * | 2006-07-06 | 2012-07-12 | Interdigital Vc Holdings, Inc. | Method and apparatus for decoupling frame number and/or picture order count (POC) for multi-view video encoding and decoding |
EP2041955A2 (en) * | 2006-07-11 | 2009-04-01 | Thomson Licensing | Methods and apparatus for use in multi-view video coding |
EP2418852B1 (en) * | 2006-12-21 | 2018-08-22 | Thomson Licensing | Methods and apparatus for improved signaling using high level syntax for multi-view video coding and decoding |
US20100061452A1 (en) * | 2007-01-04 | 2010-03-11 | Thomson Licensing Corporation | Method and apparatus for video error concealment using high level syntax reference views in multi-view coded video |
US20090296826A1 (en) * | 2007-01-04 | 2009-12-03 | Thomson Licensing | Methods and apparatus for video error correction in multi-view coded video |
BRPI0720702A2 (pt) * | 2007-01-05 | 2014-02-18 | Thomson Licensing | Decodificador hipotético de referência para codificação de vídeo escalável |
US8938012B2 (en) | 2007-04-13 | 2015-01-20 | Nokia Corporation | Video coder |
KR101633576B1 (ko) | 2007-04-17 | 2016-06-27 | 톰슨 라이센싱 | 멀티뷰 비디오 코딩을 위한 가설의 참조 디코더 |
BR122012013078B1 (pt) | 2007-04-18 | 2020-09-15 | Dolby International Ab | Método para processamento de codificação de vídeo de múltiplas vistas |
CN101861735B (zh) | 2008-09-18 | 2013-08-21 | 松下电器产业株式会社 | 图像解码装置及方法、图像编码装置及方法 |
CN104717521B (zh) * | 2009-01-26 | 2018-06-01 | 汤姆森特许公司 | 用于视频解码的方法 |
KR20110106465A (ko) | 2009-01-28 | 2011-09-28 | 노키아 코포레이션 | 비디오 코딩 및 디코딩을 위한 방법 및 장치 |
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 |
US9473752B2 (en) | 2011-11-30 | 2016-10-18 | Qualcomm Incorporated | Activation of parameter sets for multiview video coding (MVC) compatible three-dimensional video coding (3DVC) |
US9325992B2 (en) | 2013-01-07 | 2016-04-26 | Qualcomm Incorporated | Signaling of clock tick derivation information for video timing in video coding |
-
2013
- 2013-10-23 US US14/061,215 patent/US9325992B2/en active Active
- 2013-10-23 US US14/061,130 patent/US9369711B2/en active Active
- 2013-10-23 US US14/061,260 patent/US9374581B2/en active Active
- 2013-12-20 UA UAA201507853A patent/UA115163C2/uk unknown
- 2013-12-20 EA EA201591289A patent/EA026507B1/ru unknown
- 2013-12-20 PL PL13826911T patent/PL2941888T3/pl unknown
- 2013-12-20 ES ES13821600.7T patent/ES2613136T3/es active Active
- 2013-12-20 CN CN201380069313.6A patent/CN104904222B/zh active Active
- 2013-12-20 WO PCT/US2013/077267 patent/WO2014107360A1/en active Application Filing
- 2013-12-20 DK DK13826911.3T patent/DK2941888T3/en active
- 2013-12-20 AU AU2013371450A patent/AU2013371450B2/en active Active
- 2013-12-20 BR BR112015016256-8A patent/BR112015016256B1/pt active IP Right Grant
- 2013-12-20 AP AP2015008577A patent/AP2015008577A0/xx unknown
- 2013-12-20 HU HUE13821601A patent/HUE032261T2/en unknown
- 2013-12-20 WO PCT/US2013/077279 patent/WO2014107361A1/en active Application Filing
- 2013-12-20 JP JP2015551712A patent/JP6203866B2/ja active Active
- 2013-12-20 SG SG11201504538WA patent/SG11201504538WA/en unknown
- 2013-12-20 AP AP2015008583A patent/AP2015008583A0/xx unknown
- 2013-12-20 MA MA38236A patent/MA38236B1/fr unknown
- 2013-12-20 JP JP2015551713A patent/JP6337010B2/ja active Active
- 2013-12-20 SG SG11201504535TA patent/SG11201504535TA/en unknown
- 2013-12-20 AU AU2013371449A patent/AU2013371449B2/en active Active
- 2013-12-20 KR KR1020157020978A patent/KR101719940B1/ko active IP Right Grant
- 2013-12-20 SG SG11201504553WA patent/SG11201504553WA/en unknown
- 2013-12-20 UA UAA201507855A patent/UA116645C2/uk unknown
- 2013-12-20 PL PL13821601T patent/PL2941886T3/pl unknown
- 2013-12-20 JP JP2015551714A patent/JP6411368B2/ja active Active
- 2013-12-20 MY MYPI2015701871A patent/MY169409A/en unknown
- 2013-12-20 AP AP2015008575A patent/AP2015008575A0/xx unknown
- 2013-12-20 KR KR1020157020979A patent/KR101711318B1/ko active IP Right Grant
- 2013-12-20 ES ES13821601.5T patent/ES2613003T3/es active Active
- 2013-12-20 EP EP13821601.5A patent/EP2941886B1/en active Active
- 2013-12-20 EP EP13826911.3A patent/EP2941888B1/en active Active
- 2013-12-20 EA EA201591235A patent/EA032226B1/ru unknown
- 2013-12-20 AU AU2013371451A patent/AU2013371451B2/en active Active
- 2013-12-20 PL PL13821600T patent/PL2941885T3/pl unknown
- 2013-12-20 BR BR112015016230-4A patent/BR112015016230B1/pt active IP Right Grant
- 2013-12-20 MY MYPI2015701885A patent/MY176139A/en unknown
- 2013-12-20 BR BR112015016253-3A patent/BR112015016253B1/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 HU HUE13821600A patent/HUE032327T2/en unknown
- 2013-12-20 UA UAA201507854A patent/UA114946C2/uk unknown
- 2013-12-20 CA CA2894900A patent/CA2894900C/en active Active
- 2013-12-20 SI SI201330500A patent/SI2941885T1/sl unknown
- 2013-12-20 SI SI201330479A patent/SI2941888T1/sl unknown
- 2013-12-20 KR KR1020157021037A patent/KR101788427B1/ko active IP Right Grant
- 2013-12-20 CA CA2894549A patent/CA2894549C/en active Active
- 2013-12-20 PT PT138269113T patent/PT2941888T/pt unknown
- 2013-12-20 MY MYPI2015701872A patent/MY171807A/en unknown
- 2013-12-20 CN CN201380069315.5A patent/CN104904223B/zh active Active
- 2013-12-20 PT PT138216007T patent/PT2941885T/pt unknown
- 2013-12-20 ES ES13826911.3T patent/ES2630831T3/es active Active
- 2013-12-20 WO PCT/US2013/077283 patent/WO2014107362A1/en active Application Filing
- 2013-12-20 CA CA2894704A patent/CA2894704C/en active Active
- 2013-12-20 EP EP13821600.7A patent/EP2941885B1/en active Active
- 2013-12-20 CN CN201380069312.1A patent/CN104885469B/zh active Active
- 2013-12-20 HU HUE13826911A patent/HUE032248T2/en unknown
- 2013-12-20 EA EA201591282A patent/EA026630B1/ru unknown
- 2013-12-20 PT PT138216015T patent/PT2941886T/pt unknown
- 2013-12-20 DK DK13821601.5T patent/DK2941886T3/en active
-
2014
- 2014-01-06 TW TW103100414A patent/TWI524744B/zh active
- 2014-01-06 TW TW103100409A patent/TWI520588B/zh active
- 2014-01-06 TW TW103100410A patent/TWI562620B/zh active
- 2014-01-07 AR ARP140100058A patent/AR095294A1/es active IP Right Grant
- 2014-01-07 AR ARP140100056A patent/AR095292A1/es active IP Right Grant
- 2014-01-07 AR ARP140100057A patent/AR095293A1/es active IP Right Grant
-
2015
- 2015-06-09 IL IL239301A patent/IL239301A/en active IP Right Grant
- 2015-06-09 IL IL239302A patent/IL239302A/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-06-29 PH PH12015501490A patent/PH12015501490A1/en unknown
- 2015-07-06 SA SA515360724A patent/SA515360724B1/ar unknown
- 2015-07-06 PH PH12015501525A patent/PH12015501525A1/en unknown
- 2015-07-06 MA MA38235A patent/MA38235B1/fr unknown
- 2015-07-07 SA SA515360730A patent/SA515360730B1/ar unknown
- 2015-07-07 MA MA38241A patent/MA38241B1/fr unknown
- 2015-07-07 SA SA515360731A patent/SA515360731B1/ar unknown
- 2015-07-28 ZA ZA2015/05418A patent/ZA201505418B/en unknown
- 2015-08-07 EC ECIEPI201534547A patent/ECSP15034547A/es unknown
- 2015-08-07 EC ECIEPI201534549A patent/ECSP15034549A/es unknown
- 2015-08-07 EC ECIEPI201534553A patent/ECSP15034553A/es unknown
- 2015-11-10 HK HK15111066.9A patent/HK1210350A1/xx unknown
- 2015-11-11 HK HK15111112.3A patent/HK1210554A1/xx unknown
- 2015-11-12 HK HK15111185.5A patent/HK1210557A1/xx unknown
-
2017
- 2017-05-26 JP JP2017104429A patent/JP6382395B2/ja active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2630831T3 (es) | 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 | |
ES2750957T3 (es) | Señalización de predictores de paleta con código de longitud de ejecución para codificación de vídeo | |
ES2895270T3 (es) | Codificación de mensajes SEI de MCTS-EIS de una unidad de acceso | |
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 | |
ES2751576T3 (es) | Agrupación de períodos de derivación de paleta para codificación de vídeo | |
ES2692190T3 (es) | Procedimiento de codificación de vídeo y almacenamiento de contenido de vídeo | |
ES2739690T3 (es) | Codificación en modo paleta para 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 | |
ES2681502T3 (es) | Uso de mensajes HEVC SEI específicos para códecs de vídeo de múltiples capas | |
ES2727814T3 (es) | Estructura sintáctica de parámetros de descodificador hipotético de referencia | |
KR101776448B1 (ko) | 비디오 코딩에 있어서의 비-네스팅된 sei 메시지들 | |
ES2724925T3 (es) | Modelo hipotético de descodificador de referencia y conformidad para imágenes omitidas de acceso aleatorio de capa cruzada | |
ES2765038T3 (es) | Modelo de almacenamiento intermedio de bajo retardo en codificación de vídeo | |
ES2715980T3 (es) | Codificación de valores de recuento del orden de imágenes que identifican tramas de referencia a largo plazo | |
ES2833149T3 (es) | Refresco gradual de descodificación con soporte de adaptabilidad temporal a escala en la codificación de vídeo | |
ES2650729T3 (es) | Construcción de la lista de imágenes de referencia para codificación de vídeo de múltiples visualizaciones y tridimensional | |
ES2776147T3 (es) | Construcción de lista de imágenes de referencia para codificación de video | |
ES2647948T3 (es) | Reutilización de conjuntos de parámetros para la codificación de vídeo | |
ES2637515T3 (es) | Indicación y activación de conjuntos de parámetros para codificación de vídeo | |
ES2648312T3 (es) | Relleno de píxeles de borde para intra-predicción en codificación de vídeo | |
ES2744235T3 (es) | Actualizaciones de conjuntos de parámetros en la codificación de vídeo | |
ES2928248T3 (es) | Relleno de segmentos en unidades NAL de la porción codificada | |
ES2736312T3 (es) | Señalización de imágenes de referencia a largo plazo para 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 |