ES2841412T3 - Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico - Google Patents
Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico Download PDFInfo
- Publication number
- ES2841412T3 ES2841412T3 ES16203741T ES16203741T ES2841412T3 ES 2841412 T3 ES2841412 T3 ES 2841412T3 ES 16203741 T ES16203741 T ES 16203741T ES 16203741 T ES16203741 T ES 16203741T ES 2841412 T3 ES2841412 T3 ES 2841412T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- poc
- pps
- cycle
- images
- 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/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/58—Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- 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/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/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Closed-Circuit Television Systems (AREA)
- Studio Devices (AREA)
- Radar Systems Or Details Thereof (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
Abstract
Un método para rastrear una imagen de referencia en un decodificador de video, que comprende: recibir un flujo de bits; decodificar una parte del flujo de bits para producir una imagen de referencia decodificada; determinar una imagen designada; rastrear la imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB) en base a una imagen designada, en el que el rastreo de la imagen de referencia decodificada comprende: determinar un recuento del orden de las imágenes (POC) en base a la imagen designada; recibir un indicador de disposición circular de un codificador que indica una transición entre dos conjuntos de imágenes, siendo el indicador de disposición circular un indicador de un bit; determinar un parámetro del ciclo de recuento del orden de las imágenes actual en base a la imagen designada, en el que el parámetro del ciclo de recuento del orden de las imágenes hace referencia a conjuntos de imágenes que incluyen imágenes de referencia, y en el que la determinación del parámetro del ciclo de recuento del orden de las imágenes actual incluye actualizar un parámetro del ciclo de recuento del orden de las imágenes anterior después de recibir el indicador de disposición circular; obtener la imagen de referencia decodificada de acuerdo con el POC y con el parámetro del ciclo de recuento del orden de las imágenes; y decodificar una imagen en base a la imagen de referencia decodificada.
Description
DESCRIPCIÓN
Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico
Campo técnico
La presente invención se refiere, en general, a dispositivos electrónicos. Más específicamente, la presente invención se refiere a permitir el rastreo de una imagen de referencia.
Antecedentes de la técnica
Los dispositivos electrónicos se han vuelto más pequeños y más potentes, para satisfacer las necesidades del consumidor y mejorar la portabilidad y la comodidad. Los consumidores se han vuelto dependientes de los dispositivos electrónicos y esperan una mayor funcionalidad. Algunos ejemplos de dispositivos electrónicos incluyen ordenadores de sobremesa, ordenadores portátiles, teléfonos celulares, teléfonos inteligentes, reproductores multimedia, circuitos integrados, etc.
Algunos dispositivos electrónicos se utilizan para procesar y mostrar medios digitales. Por ejemplo, los dispositivos electrónicos portátiles actualmente permiten que los medios digitales se consuman en casi cualquier lugar donde pueda estar un consumidor. Además, algunos dispositivos electrónicos pueden proporcionar descarga o transmisión de contenido de medios digitales para la utilización y disfrute de un consumidor.
La creciente popularidad de los medios digitales ha presentado varios problemas. Por ejemplo, representar de manera eficiente medios digitales de alta calidad para almacenamiento, transmisión y reproducción presenta varios problemas. Como se puede observar en la presente explicación, los sistemas y métodos que representan los medios digitales de manera más eficiente pueden ser beneficiosos.
Los documentos de entrada a JCT-VC de Y. Park et al, titulado “Detection of a CDR for random access” (documento JCTVC-F604) da a conocer una técnica para encontrar una imagen hermana (tal como se menciona en el documento JCTVC-E400) que incluye un nuevo elemento de sintaxis incluido en una cabecera del segmento de CDR (actualización de decodificación limpia - Clean Decoding Refresh, en inglés).
Compendio de la invención
La presente invención se refiere a un método para rastrear una imagen de referencia en un decodificador de vídeo tal como se presenta en la reivindicación 1. Otra realización se describe en la reivindicación dependiente.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques que ilustra un ejemplo de uno o varios dispositivos electrónicos en los que se pueden implementar sistemas y métodos para rastrear una imagen de referencia en base a una imagen designada; la figura 2 es un diagrama de bloques que ilustra una configuración de un decodificador;
la figura 3 es un diagrama de flujo que ilustra una configuración de un método para rastrear una imagen de referencia con referenciación suplementaria reducido en base a una imagen designada;
la figura 4 es un diagrama de flujo que ilustra una configuración más específica de un método para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada;
la figura 5 es un diagrama que ilustra un ejemplo de conjuntos de múltiples imágenes referenciados por parámetros de ciclo;
la figura 6 es un diagrama que ilustra otro ejemplo de conjuntos de múltiples imágenes;
la figura 7 es un diagrama de un ejemplo más específico de conjuntos de múltiples imágenes referenciados por parámetros de ciclo;
la figura 8 es un diagrama de flujo que ilustra una configuración de un método para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada;
la figura 9 es un diagrama de flujo que ilustra otra configuración de un método para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada;
la figura 10 es un diagrama de flujo que ilustra otra configuración de un método para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada;
la figura 11 es un diagrama que ilustra un ejemplo de señalización de un indicador de disposición circular de acuerdo con los sistemas y métodos dados a conocer en el presente documento;
la figura 12 es un diagrama que ilustra un ejemplo de señalización de un indicador de disposición circular de acuerdo con los sistemas y métodos dados a conocer en el presente documento;
la figura 13 es un diagrama de flujo que ilustra otra configuración más específica de un método de rastreo para rastrear una imagen de referencia con una referenciación suplementaria reducida en base a una imagen designada; la figura 14 es un diagrama de flujo que ilustra una configuración de un método para determinar si se ha producido una transición entre conjuntos de imágenes;
la figura 15 es un diagrama de flujo que ilustra otra configuración específica más de un método para rastrear una imagen de referencia con una referenciación suplementaria reducida en base a una imagen designada;
la figura 16 ilustra diversos componentes que pueden ser utilizados en un dispositivo electrónico; y
la figura 17 es un diagrama que ilustra ejemplos de casos de utilización de acuerdo con los sistemas y métodos dados a conocer en el presente documento.
Descripción de realizaciones
Se describe un método para rastrear una imagen de referencia en un dispositivo electrónico. El método incluye recibir un flujo de bits. El método también incluye decodificar una porción del flujo de bits para producir una imagen de referencia decodificada. El método incluye, además, el rastreo de la imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB - Decoded Picture Buffer, en inglés) con referenciación suplementaria reducida en base a una imagen designada. El método incluye, además, decodificar una imagen en base a la imagen de referencia decodificada. La imagen designada puede ser una imagen de actualización de decodificación instantánea (IDR - Instantaneous Decoding Refresh, en inglés). Adicionalmente, una descripción de la memoria intermedia de la imagen de referencia decodificada puede incluir un recuento del orden de las imágenes (POC - Picture Order Count, en inglés), un parámetro del ciclo, un identificador temporal y un parámetro de escala. Rastrear la imagen de referencia decodificada puede incluir determinar un parámetro del ciclo en base a la imagen designada. El parámetro del ciclo puede ser reiniciado en base a la imagen designada.
Rastrear la imagen de referencia decodificada puede incluir determinar un recuento del orden de las imágenes (POC) en base a la imagen designada. Una secuencia de recuento del orden de las imágenes (POC) puede ser reiniciada en base a la imagen designada.
Una resolución de la imagen de referencia decodificada puede ser diferente de una resolución de la imagen. El método también puede incluir procesar coeficientes de transformación de la imagen de referencia decodificada en base a un parámetro de escala para decodificar la imagen.
Rastrear la imagen de referencia decodificada puede incluir el rastreo de un grupo de imágenes de referencia decodificadas que incluye la imagen de referencia decodificada. Rastrear la imagen de referencia decodificada puede incluir, asimismo, obtener una descripción de la memoria intermedia y modificar la descripción de la memoria intermedia. Modificar la descripción de la memoria intermedia puede incluir eliminar una entrada, añadir una entrada y/o reemplazar una entrada.
Asimismo, se describe un dispositivo electrónico configurado para rastrear una imagen de referencia. El dispositivo electrónico incluye un procesador e instrucciones almacenadas en una memoria que está en comunicación electrónica con el procesador. El dispositivo electrónico recibe un flujo de bits. El dispositivo electrónico también decodifica una parte del flujo de bits para producir una imagen de referencia decodificada. El dispositivo electrónico realiza un rastreo, además, de la imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB) con referenciación suplementaria reducida en base a una imagen designada. El dispositivo electrónico decodifica adicionalmente una imagen en base a la imagen de referencia decodificada.
Los sistemas y métodos dados a conocer en el presente documento describen varias configuraciones para rastrear una imagen de referencia en base a una imagen designada en un dispositivo electrónico. Por ejemplo, los sistemas y métodos dados a conocer en el presente documento describen el rastreo de una imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB) con referenciación suplementaria reducida. Por ejemplo, se describen varios enfoques para la señalización de imágenes de referencia a largo plazo. Cabe señalar que la memoria intermedia de imágenes decodificadas (DPB) puede ser una memoria intermedia que contenga imágenes decodificadas para referencia, reordenamiento de salida o retardo de salida especificado para un hipotético decodificador de referencia.
En un dispositivo electrónico, una memoria intermedia de imágenes decodificadas (DPB) se puede utilizar para almacenar imágenes reconstruidas (por ejemplo, decodificadas) en un decodificador. Estas imágenes almacenadas se pueden utilizar, por ejemplo, en un mecanismo de inter predicción. Cuando las imágenes se decodifican fuera de orden, las imágenes se pueden almacenar en la DPB para que puedan ser visualizadas más tarde en orden.
En el estándar H.264 o codificación de vídeo avanzada (AVC - Advance Video Coding, en inglés), la gestión de la DPB (por ejemplo, eliminación, adición de imágenes, reordenación de imágenes, etc.) se lleva a cabo utilizando operaciones de control de gestión de memoria (MMCO - Memory Management Control Operations, en inglés). Para el siguiente estándar de codificación de vídeo de alta eficiencia (HEVC - High Efficiency Video Coding, en inglés), se están considerando enfoques de gestión de DPB más fiables. Un ejemplo de un enfoque más fiable se basa en la señalización absoluta de imágenes de referencia tal como se detalla en el documento “Absolute signaling of reference pictures” del documento JCTVC-F493 del Equipo colaborativo conjunto en codificación de vídeo (JCT-VC -Joint Collaborative Team on Video Coding, en inglés).
El documento JCTVC-F493 describe de manera general la señalización absoluta de imágenes de referencia para identificar qué imágenes de referencia deben ser guardadas en la memoria intermedia de imágenes decodificadas (DPB). En particular, describe dos enfoques diferentes para identificar qué imágenes de referencia deben ser guardadas en la DPB en base a un recuento del orden de las imágenes (POC). El recuento del orden de las imágenes (POC) puede ser una variable que está asociada con cada imagen codificada y tiene un valor que aumenta con el aumento de la posición de la imagen en un orden de salida circular.
En un ejemplo, supóngase que todas las imágenes tienen un identificador temporal (temporalID) = 0. Supóngase, además, que el POC actual = 5 y que la DPB actual contiene = {3, 2}. Adicionalmente, supóngase que una definición en el conjunto de parámetros de la imagen (PPS - Picture Parameter Set, en inglés) es: BufferDescription0 = {deltaPOC = -1, temporalID = 0}, {deltaPOC = -2, temporalID = 0}. deltaPOC especifica la distancia en el valor del POC de la imagen de referencia de la imagen actual, donde la imagen actual puede ser la imagen que está siendo decodificada. Un enfoque dado es hacer referencia a una descripción de la memoria intermedia en el PPS. En este enfoque, la cabecera del segmento de una imagen con POC = 5 contiene una referencia a BufferDescription0 en el PPS. Supóngase que una acción es eliminar una imagen decodificada con POC = 2 de la DPB, y añadir una imagen decodificada con POC = 4 a la DPB. Como resultado, la DPB contiene = {4, 3}.
En una configuración, la descripción de la memoria intermedia se define como dos listas denominadas POCBD y TemporallDBD y una variable NumberOfPictureslnBD presente para todas las imágenes. Esta es tal que POCBD contiene valores de recuento del orden de las imágenes de las imágenes de referencia y TemporallDBD contiene el identificador temporal correspondiente de la imagen de referencia, conteniendo ambas listas valores de NumberOfPicturesInBD.
Cabe señalar que un temporalID puede ser definido de la siguiente manera en el documento JCTVC-F803 del equipo colaborativo conjunto sobre codificación de vídeo (JCT-VC): “temporalID especifica un identificador temporal para la unidad NAL. El valor de temporalID será el mismo para todas las unidades NAL de una unidad de acceso. Cuando una unidad de acceso contiene cualquier unidad NAL con nal_unit_type igual a 5, temporalID será igual a 0.” Cabe señalar que NAL puede ser una abreviatura de “capa de abstracción de red”.
Otro enfoque consiste en señalar explícitamente el contenido de la DPB utilizando un delta de POC con respecto al POC actual. En este enfoque, la cabecera del segmento de una imagen con POC = 5 contiene {deltaPOC = -1, temporalID = 0} y {deltaPOC = -2, temporalID = 0}. Supóngase que una acción es eliminar una imagen decodificada con POC = 2 de la DPB y añadir una imagen decodificada POC = 4 al DPB. Como resultado, el nuevo DPB contiene = {4, 3}.
Algunas ventajas de los enfoques dados por el documento JCTVC-F493 son las siguientes. Los enfoques en el documento JCTVC-F493 proporcionan un mecanismo simple. Además, la pérdida de una imagen se detecta fácilmente en el decodificador. Adicionalmente, la eliminación de capas enteras de imágenes con un ID temporal más alto puede ser detectada y ser bien soportada.
No obstante, a continuación, se indican algunos inconvenientes de los enfoques proporcionados en el documento JCTVC-F493. Los bits suplementarios para señalizar una imagen de referencia a largo plazo pueden aumentar. Además, se puede asignar un número fijo de bits para comunicar un POC. Como resultado, cuando se alcanza un valor máximo permitido por el número de bits que se utilizan, la numeración del POC debe ser ajustada a 0. Por lo tanto, es posible que no se pueda garantizar que las imágenes se puedan identificar de manera única utilizando el POC.
Los sistemas y métodos dados a conocer en el presente documento pueden ayudar a mitigar estos inconvenientes. En particular, los sistemas y métodos dados a conocer en el presente documento pueden ser beneficiosos, al reducir los datos suplementarios asociados con la referencia absoluta de imágenes a largo plazo, y pueden permitir que las imágenes sean identificadas de manera única (por ejemplo, una imagen a largo plazo (referencia) no se puede confundir con otras imágenes a corto plazo o a largo plazo y viceversa).
Los sistemas y métodos dados a conocer en el presente documento pueden proporcionar uno o varios beneficios adicionales que se describen a continuación. Una o varias configuraciones de los sistemas y métodos dados a conocer en el presente documento pueden hacer un uso completo del espacio de numeración del POC disponible [0, ..., MaxPOC -1], donde MaxPOC = 2log2_ max_Pic_order_ cnt_ minus4+4 y log2_max_pic_order_cnt_minus4 especifica el valor de la variable MaxPOC que se utiliza en el proceso de decodificación para contar el orden de las imágenes. Por
ejemplo, un enfoque previo para resolver la reutilización de [0, MaxPOC -1] después de que un POC circular defiende que el POC actualmente en uso es saltado al asignar un identificador (por ejemplo, un número de POC) a una imagen. Esto da como resultado que parte del espacio del POC no se está utilizando. No obstante, los sistemas y métodos dados a conocer en el presente documento pueden resolver el hecho de saltarse el POC y el problema de contracción del espacio de POC asociado.
Otra ventaja puede ser que algunas configuraciones de los sistemas y métodos dados a conocer en el presente documento para la señalización pueden ser independientes en cada imagen. Por lo tanto, la resistencia a los errores puede ser mejor en comparación con un esquema que se basa en la propagación de información de imágenes anteriores (que podrían perderse o ser eliminadas). Por ejemplo, una configuración de la descripción de la memoria intermedia de imágenes decodificadas (DPB) no se basa en información incorporada en otras imágenes para mantener la misma DPB como codificador.
Otra ventaja más de algunas configuraciones de los sistemas y métodos descritos en el presente documento puede ser que si se pierde una imagen, la pérdida puede ser detectada tan pronto como una descripción de la memoria intermedia esté disponible en el decodificador (que está en la siguiente imagen recibida). Esto permite que el decodificador tome medidas correctivas. Otra ventaja más es que si la resolución del POC es suficiente, no se requieren bits adicionales.
A continuación, se describen diversas configuraciones con referencia a las figuras, en las que números de referencia similares pueden indicar elementos funcionalmente similares. Los sistemas y métodos que se describen e ilustran en general en las figuras podrían estar dispuestos y diseñados en una amplia variedad de configuraciones diferentes. Por lo tanto, la siguiente descripción más detallada de varias configuraciones, tal como se representa en las figuras, no pretende limitar el alcance, tal como se reivindica, sino que es simplemente representativo de los sistemas y métodos.
La figura 1 es un diagrama de bloques que ilustra un ejemplo de uno o varios dispositivos electrónicos 104 en los que se pueden implementar sistemas y métodos para rastrear una imagen de referencia en base a una imagen designada. En este ejemplo, se ilustran el dispositivo electrónico A 104a y el dispositivo electrónico B 104b. No obstante, cabe señalar que las características y/o funcionalidad descritas en relación con el dispositivo electrónico A 104a y el dispositivo electrónico B 104b pueden ser combinadas en un solo dispositivo electrónico en algunas configuraciones.
El dispositivo electrónico A 104a incluye un codificador 108 y un módulo 112 de señalización suplementaria. Cada uno de los elementos incluidos dentro del dispositivo electrónico A104a (por ejemplo, el codificador 108 y el módulo 112 de señalización suplementaria) pueden ser implementados en hardware, software o en una combinación de ambos.
El dispositivo electrónico A 104a puede obtener una imagen de entrada 106. En algunas configuraciones, la imagen de entrada 106 puede ser capturada en el dispositivo electrónico A104a utilizando un sensor de imagen, recuperada de la memoria y/o recibida de otro dispositivo electrónico.
El codificador 108 puede codificar la imagen de entrada 106 para producir datos codificados 110. Por ejemplo, el codificador 108 puede codificar una serie de imágenes de entrada 106 (por ejemplo, vídeo). En una configuración, el codificador 108 puede ser un codificador de codificación de vídeo de alta eficiencia (HEVC). Los datos codificados 110 pueden ser datos digitales (por ejemplo, un flujo de bits).
El módulo 112 de señalización suplementaria puede generar señalización suplementaria en base a los datos codificados 110. Por ejemplo, el módulo 112 de señalización suplementaria puede añadir datos suplementarios a los datos codificados 110 tales como información de cabecera del segmento, información de conjunto de parámetros de la imagen (PPS), recuento del orden de las imágenes (POC), designación de imagen de referencia, etc. En algunas configuraciones, el módulo 112 de señalización suplementaria puede producir un indicador de disposición circular que indica una transición entre dos conjuntos de imágenes.
A continuación, se dan más detalles sobre los tipos de señalización suplementaria que puede producir el dispositivo electrónico A 104a. En particular, ninguno, uno o varios de los parámetros, indicadores o tipos de información descritos en relación con la decodificación que sigue pueden ser producidos por el módulo 112 de señalización suplementaria, dependiendo de la configuración. Cabe señalar que el módulo 112 de señalización suplementaria puede estar incluido dentro del codificador 108 en algunas configuraciones. El módulo 112 de señalización suplementaria puede permitir el rastreo de imágenes con una reducción de los datos suplementarios.
El codificador 108 (y el módulo 112 de señalización suplementaria, por ejemplo) pueden producir un flujo de bits 114. El flujo de bits 114 puede incluir datos de imagen codificados basados en la imagen de entrada 106. En algunas configuraciones, el flujo de bits 114 también puede incluir datos suplementarios, tales como información de la cabecera del segmento, información del PPS, etc. A continuación, se proporcionan más detalles sobre los datos suplementarios. A medida que se codifican imágenes de entrada 106 adicionales, el flujo 114 de bits puede incluir una o varias imágenes codificadas. Por ejemplo, el flujo de bits 114 puede incluir una o varias imágenes de referencia codificadas y/u otras imágenes.
El flujo de bits 114 puede ser proporcionado a un decodificador 102. En un ejemplo, el flujo de bits 114 puede ser transmitido al dispositivo electrónico B 104b utilizando un enlace por cable o inalámbrico. En algunos casos, esto se puede hacer a través de una red, tal como Internet o una red de área local (LAN - Local Area NetWork, en inglés). Tal como se ilustra en la figura 1, el decodificador 102 se puede implementar en el dispositivo electrónico B 104b por separado del codificador 108 en el dispositivo electrónico A 104a. No obstante, cabe señalar que el codificador 108 y el decodificador 102 pueden estar implementados en el mismo dispositivo electrónico en algunas configuraciones. En una implementación en la que el codificador 108 y el decodificador 102 están implementados en el mismo dispositivo electrónico, por ejemplo, el flujo de bits 114 puede ser proporcionado a través de un bus al decodificador 102, o ser almacenado en la memoria para que el decodificador 102 lo recupere.
El decodificador 102 puede ser implementado en hardware, software o en una combinación de ambos. En una configuración, el decodificador 102 puede ser un decodificador de codificación de vídeo de alta eficiencia (HEVC). El decodificador 102 puede recibir (por ejemplo, obtener) el flujo de bits 114. El decodificador 102 puede generar una imagen decodificada 118 (por ejemplo, una o varias imágenes decodificadas 118) basándose en el flujo de bits 114. La imagen decodificada 118 puede ser visualizada, reproducida, almacenada en la memoria y/o transmitida a otro dispositivo, etc.
El decodificador 102 puede incluir un módulo 116 de rastreo de imágenes de referencia. El módulo 116 de rastreo de imágenes de referencia puede permitir que el decodificador 102 realice un rastreo de una imagen de referencia con referenciación suplementaria reducida. Por ejemplo, el módulo 116 de rastreo de imágenes de referencia puede rastrear una imagen de referencia en una memoria intermedia de imágenes decodificadas (DPB) utilizando menos datos suplementarios que los necesarios con enfoques anteriores, como los enfoques dados en JCTVC-F493.
En enfoques anteriores, por ejemplo, se puede utilizar referenciación suplementaria no reducida para especificar la relación entre una imagen actual y una imagen de referencia a largo plazo. En enfoques anteriores, por ejemplo, la relación entre una imagen actual y una imagen de referencia a largo plazo puede ser especificada aumentando el espacio de numeración del POC y evitando de este modo el problema de que el POC es circular. No obstante, el aumento del espacio de numeración del POC solo se puede conseguir a expensas de mayores de necesidades de bits para el POC. Este ejemplo es uno de varios mecanismos posibles que se pueden utilizar para evitar el problema de que el POC es circular en enfoques anteriores. No obstante, este ejemplo en particular demuestra el aspecto del mayor número de datos suplementarios para imágenes a largo plazo en enfoques anteriores.
El documento JCTVC-F493, por ejemplo, utilizaba un campo longterm_poc [i] en una descripción de la memoria intermedia que especificaba un POC absoluto y un campo longterm_temporal_id [i] en la descripción de la memoria intermedia que especificaba un ID temporal para una imagen de largo plazo. Esto se eliminó más tarde en el documento JCTVC-F803, que no incluía un mecanismo para imágenes de larga duración. En explicaciones posteriores, se dio un enfoque de saltarse los POC (imagen a largo plazo).
Pueden surgir problemas con los enfoques anteriores. En primer lugar, es posible que se necesiten una gran cantidad de datos suplementarios para especificar la relación entre una imagen de referencia a largo plazo y otra imagen. Por ejemplo, puede ser necesario asignar una gran cantidad de bits suplementarios para representar adecuadamente una diferencia de número entero en el POC entre la imagen de referencia a largo plazo y otra imagen. En segundo lugar, si se especifica un número limitado de bits para representar esta diferencia, la diferencia se puede indicar de manera ambigua cuando se reutilizan los números (debido al ciclo del conjunto de números, por ejemplo).
El módulo 116 de rastreo de imágenes de referencia puede utilizar uno o varios enfoques o métodos que se describen con mayor detalle a continuación para reducir los datos suplementarios de referencia. Algunos ejemplos incluyen la utilización de un parámetro del ciclo y la disminución del parámetro del ciclo en base a los indicadores de ajuste o las transiciones entre conjuntos de imágenes.
Cabe señalar que una “imagen de referencia” descrita en el presente documento puede ser, por el contrario, un conjunto de imágenes de referencia (por ejemplo, un grupo de fotogramas) en algunas configuraciones. En consecuencia, una “imagen de referencia decodificada” descrita en el presente documento puede ser, por el contrario, un “conjunto de imágenes de referencia decodificadas” en algunas configuraciones. Por ejemplo, se puede aplicar un conjunto de imágenes de referencia en lugar de una única imagen de referencia, tal como se describe junto con los sistemas y métodos dados a conocer en el presente documento. El conjunto de imágenes de referencia puede incluir una o varias imágenes de referencia. Dos o más imágenes de referencia en el conjunto de imágenes de referencia pueden corresponder al mismo instante de tiempo o a instantes de tiempo diferentes (por ejemplo, similares). Por ejemplo, en un escenario de codificación tridimensional (3D), un flujo de bits 114 contiene múltiples imágenes, donde algunas imágenes pueden referirse a una vista izquierda y algunas imágenes pueden referirse a una vista derecha. De este modo, el conjunto de imágenes de referencia puede identificar las imágenes izquierda y derecha que corresponden a un tiempo de visualización específico.
En otro ejemplo, tal como un escenario de codificación escalable, un flujo de bits puede contener imágenes de diferentes resoluciones. En este ejemplo, el conjunto de imágenes de referencia puede incluir (por ejemplo, identificar) diferentes versiones de resolución de la misma imagen.
La figura 2 es un diagrama de bloques que ilustra una configuración de un decodificador 202. El decodificador 202 puede estar incluido en un dispositivo electrónico 204. Por ejemplo, el decodificador 202 puede ser un decodificador de codificación de vídeo de alta eficiencia (HEVC). El decodificador 202 y/o uno o varios de los elementos ilustrados incluidos en el decodificador 202 pueden ser implementados en hardware, software o una combinación de ambos. El decodificador 202 puede recibir un flujo de bits 214 (por ejemplo, una o varias imágenes codificadas incluidas en el flujo de bits 214) para decodificar. En algunas configuraciones, el flujo de bits 214 recibido puede incluir información suplementaria recibida, tal como una cabecera del segmento recibida, un PPS recibido, información de la descripción de la memoria intermedia recibida, etc. Las imágenes codificadas incluidas en el flujo de bits 214 pueden incluir una o varias imágenes de referencia codificadas y/o una o varias imágenes codificadas.
Los símbolos recibidos (en una o varias imágenes codificadas incluidas en el flujo de bits 214) pueden ser decodificados por entropía mediante un módulo 254 de decodificación por entropía, produciendo de este modo una señal de información del movimiento 256 y coeficientes 258 cuantificados, escalados y/o transformados.
La señal de información del movimiento 256 puede ser combinada con una porción de una señal del fotograma de referencia 284 de una memoria de fotogramas 264 en un módulo 260 de compensación del movimiento, que puede producir una señal de inter predicción 268 de fotogramas. Los coeficientes 258 cuantificados, desescalados y/o transformados pueden ser cuantificados inversamente, escalados y transformados inversamente mediante un módulo 262 inverso, produciendo de este modo una señal residual 270 decodificada. La señal residual 270 decodificada puede ser añadida a una señal de predicción 278 para producir una señal combinada 272. La señal de predicción 278 puede ser una señal seleccionada entre la señal de inter predicción 268 de fotogramas o una señal de intra predicción 276 de fotogramas producida por un módulo de inter predicción 274 de fotogramas. En algunas configuraciones, esta selección de señal puede estar basada (por ejemplo, controlada por) en el flujo de bits 214. La señal de intra predicción de fotogramas 276 se puede predecir a partir de información previamente codificada de la señal combinada 272 (en el fotograma actual, por ejemplo). La señal combinada 272 también puede ser filtrada mediante un filtro de desbloqueo 280. La señal filtrada 282 resultante puede escribirse en la memoria de fotogramas 264. La señal filtrada 282 resultante puede incluir una imagen decodificada.
La memoria de fotogramas 264 puede incluir una memoria intermedia de imágenes decodificadas (DPB) tal como se describe en el presente documento. La DPB puede incluir una o varias imágenes decodificadas que pueden ser guardadas como fotogramas de referencia a corto o largo plazo. La memoria de fotogramas 264 también puede incluir información suplementaria correspondiente a las imágenes decodificadas. Por ejemplo, la memoria de fotograma 264 puede incluir cabeceras de segmento, información de conjunto de parámetros de la imagen (PPS), parámetros de ciclo, información de la descripción de la memoria intermedia, etc. Uno o varios de estos segmentos de información pueden ser señalizados desde un codificador (por ejemplo, un codificador 108, un módulo 112 de señalización suplementaria). La memoria de fotogramas 264 puede proporcionar una imagen decodificada 218. El decodificador 202 puede incluir un módulo 216 de rastreo de imágenes de referencia. El módulo 216 de rastreo de imágenes de referencia puede rastrear una o varias imágenes de referencia en la memoria de fotogramas 264 con menor número de datos suplementarios de referencia. En un ejemplo, el módulo 216 de rastreo de imágenes de referencia puede rastrear imágenes de referencia a largo plazo utilizando un parámetro del ciclo y modificando (por ejemplo, disminuyendo) el parámetro del ciclo en base a los indicadores de disposición circular recibidos. En otro ejemplo, se puede llevar a cabo una actualización de todos los parámetros del ciclo de la imagen de referencia con respecto a la imagen que está siendo decodificada. Este procedimiento de actualización puede ser ejecutado una vez para la imagen actual (por ejemplo, la imagen que está siendo decodificada). La transición entre ciclos se puede rastrear de manera implícita con la ayuda del POC. En ocasiones, el parámetro del ciclo puede ser aumentado (cuando la transición es del conjunto de imágenes ‘n’ al conjunto de imágenes ‘n-1 ’, como puede ocurrir en la decodificación de imágenes fuera de orden, por ejemplo). A continuación, se ofrecen más detalles acerca de uno o varios enfoques, para el rastreo de una imagen de referencia en base a una imagen designada.
Algunas configuraciones de los sistemas y métodos dados a conocer en el presente documento pueden utilizar una descripción de la memoria intermedia modificada. A continuación, se proporcionan ejemplos de la descripción modificada de la memoria intermedia. La descripción de la memoria intermedia puede ser modificada para incluir “POC”, “poc_cycle” y “temporalID” para imágenes de referencia a largo plazo. Cabe señalar que “poc_cycle” puede ser un ejemplo del parámetro del ciclo descrito en el presente documento. Las descripciones de la memoria intermedia (modificadas), las sintaxis (modificadas) y/o los parámetros proporcionados de acuerdo con los sistemas y métodos dados a conocer en el presente documento pueden permitir una referenciación suplementaria reducida. La Tabla (1) que se muestra a continuación proporciona un ejemplo que compara la descripción de la memoria intermedia dentro del PPS en un enfoque anterior y un enfoque propuesto de acuerdo con los sistemas y métodos dados a conocer en el presente documento. El enfoque anterior se detalla en el documento “texto del borrador de trabajo candidato del grupo ad-hoc 21” (AHG21) que fue creado para favorecer el trabajo en el JCTVC-F493. Cabe señalar que el AHG21 (JCTVC-F803) agrupa y especifica por separado “imágenes negativas” (por ejemplo, aquellas que tienen valores de deltaPOC negativos) e “imágenes positivas” (por ejemplo, aquellas imágenes que tienen valores de deltaPOC positivos).
Descripción de la memoria intermedia del AHG21 Descripción de la memoria intermedia propuesta deltaPOCo, temporalID0 deltaPOC0, temporalID0 deltaPOC1, temporalID1 deltaPOC1, temporalID1 deltaPOC2, temporalID2 deltaPOC2, temporalID2 deltaPOC3, temporalID3 (POC0, poc_cycles0, temporalIDí) deltaPOC4, temporalID4 (POC1, poc_cycles1, temporalID4)
Tabla (1)
En la Tabla (1) ilustrada anteriormente, (POCo, poc_cycleso, temporalIDí) y (POC1, poc_cycles1, temporalID4) representan imágenes a largo plazo (referencia). Cabe señalar que la descripción de la memoria intermedia puede contener dos listas POCBD y TemporallDBD para imágenes de referencia a corto plazo (correspondientes a los campos POC y TemporalID, respectivamente). Además, la descripción de la memoria intermedia puede contener tres listas: POCBD, POC_CYCLE_BD y TemporallDBD para imágenes de referencia a largo plazo (correspondientes a los campos POC, poc_cycle y TemporalID, respectivamente).
En algunas configuraciones, se definen múltiples descripciones de la memoria intermedia en el conjunto de parámetros de la imagen. Cada descripción de la memoria intermedia, con índice i, contiene listas para imágenes de referencia: POCBD_pps [i], POC_CYCLE_pps [i], DeltaPOCBD_pps [i] y TemporalIDBD_pps [i] y una variable NumberOfPictureslnBD_pps [i]. La lista de orden i de POCBD_pps [i] contiene valores de recuento del orden de las imágenes de las imágenes de referencia. La lista de orden i de POC_CYCLE_pps [i] contiene valores de poc_cycle de las imágenes de referencia. La lista de orden i de TemporalIDBD_pps [i] contiene el correspondiente identificador temporal de la imagen de referencia. Además, la lista de orden i deTemporalIDBD_pps [i] contiene entradas de NumberOfPictureslnBD_pps [i]. El conjunto de listas se conoce como POC_pps, POC_CYCLE_pps, DeItaPOCBD_pps y TemporalIDBD_pps. Para la referenciación de deltaPOC, una sola lista DeltaPOCBD_pps [i] contiene los valores de deltaPOC de las imágenes de referencia. Cabe señalar que, en el texto del borrador de trabajo candidato del grupo ad-hoc 21, DeltaPOCBD_pps se puede denominar DeItaPOCBD. La suma de las entradas en la lista POCBD_pps [i] y la lista DeItaPOCBD_pps [i] viene dada por el valor de NumberOfPictureslnBD_pps [i]. Además, el número de entradas en POCBD_pps [i] y POC_CYCLE_pps [i] es igual. Cabe señalar que la sintaxis dada en el AHG21 no soporta adecuadamente referenciación a largo plazo. El Listado (1) que se muestra a continuación ilustra un ejemplo de una modificación de la sintaxis del flujo de bits requerida para un borrador de texto de trabajo candidato del grupo ad-hoc 21 (AHG21). Los cambios debidos al enfoque anterior se muestran en negrita en el Listado (1).
/* Picture parameter set raw bytc sequencc payload (RBSP) syntax
pic_parameter_set rbsp() {
bits for temporal id in buffer descriptions positive__pictures_in_buffer_descriptions_flag
number of_ bds
if( number_of bds > 0 ) {
for(i “ 0: i < numberofbds; i++){
number_o fnegative_pictures_pps [i]
íbr(j = 0; j < number_of_negative_picturesjpps[i]; j+ ) { ncgative_delta _poc minus_one_pps[i][j]
if( bits for temporal id in buffer descriptions > 0 ) témpora l_id_negative_pps[ i] [j J
}
if( positive_pictures_in_buffer_descriptions_flag){ number_of_positive__pictures_pps[i]
for( j = 0; j < number of positive_pictures pps[i]; j++ ) { de It a_poc_minus_one_pps[í] [j j
if( bits_for_temporal_id_in_buffer_descriptions > 0 ) tcmporal_id positivc pps[i][j]
} '
}
nuraber_of_]ongterm_pictures_pps[i]
for( j = 0; j < number_of_lungterm_pictures_pps[i]; j++ ) { poc_ppsli][j]
poc cycle__pps[i][j]
if( bits_for_temporal_id in buffer descriptions > 0 ) temporal_idjpoc_pps[i] [j]
}
}
}
)
Listado (1)
Positive_pictures_in_buffer_descriptions_flag especifica si hay alguna imagen de descripción de la memoria intermedia con deltaPOC positivo. Bits_for_temporal_id_in_buffer_descriptions especifica el número de bits utilizados para temporal_id_negative_pps [i] [j], temporal_id_positive_pps [i] [j], temporal_id_poc_pps [i] [j], temporal_id_negative [i] y temporal_id_positive [i]. Number_of_bds especifica el número de descripciones de la memoria intermedia en un conjunto de parámetros de la imagen. Number_of_negative_pictures_pps [i] especifica el número de entradas en la lista DeItaPOCBD_pps [i] con valores negativos. Number_of_negative_pictures_pps [i] define el valor de OffsetBD [i] como OffsetBD [i] = number_of_negative_pictures_pps [i]. El valor de number_of_negative_pictures_pps [i] estará en el intervalo comprendido entre 0 y max_num_ref_frames, ambos incluidos. Negative_delta_poc_minus_one_pps [i] [j] especifica una distancia absoluta en el valor del POC. Max_num_ref_frames especifica el número máximo de fotogramas de referencia, pares de campos de referencia complementarios y campos de referencia no emparejados que pueden ser utilizados por el proceso de decodificación para la inter predicción de cualquier imagen en la secuencia. En el presente documento, un campo de referencia indica una porción de un fotograma de referencia. Por ejemplo, en una aplicación que utiliza vídeo entrelazado, un fotograma de referencia puede consistir en dos campos de referencia. El primer campo de referencia puede contener un primer subconjunto de los datos en el fotograma de referencia, y el segundo campo de referencia puede contener un segundo subconjunto de los datos en el fotograma de referencia, donde el primer subconjunto y el segundo subconjunto corresponden a datos diferentes.
Negative_delta_poc_minus_one_pps [i] [j] define el valor de la variable DeItaPOCBD_pps [i] [j] como DeltaPOCBD_pps [i] [j] = -(negative_delta_poc_minus_one_pps [i] [j] 1) si j es igual a 0. Asimismo, negative_delta_poc_minus_one_pps [i] [j] define el valor de la variable DeltaPOCBD_pps [i] [j] como DeltaPOCBD_pps [i] [j] = DeltaPOCBD_pps [i] [j-1] -(negative_delta_poc_minus_one_pps [i] [j] 1) si j > 0. DeItaPOCBD_pps [i] [j] estará en el intervalo comprendido entre -1 y -MaxPOC/2.
Temporal_id_negative_pps [i] [j] especifica un identificador temporal y estará representado por los bits bits_for_temporal_id_in_buffer_descriptions. temporal_id_negative_pps [i] [j] se añade a la lista TemporalIDBD_pps [i] . En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregar es una operación que reemplaza elementos de la lista en un orden predefinido. Temporal_id_negative_pps [i] [j] estará en el intervalo comprendido entre 0 y max_temporal_layers_minus1, ambos incluidos. Maxtemporallayers_minus1 1 especifica el número máximo de capas temporales presentes en una secuencia.
Number of positive_pictures_in_bd_pps [i] especifica el número de entradas en la lista DeItaPOCBD_pps [i] que tienen un valor positivo. El valor de number_of_positive_pictures_in_bd_pps [i] estará en el intervalo comprendido entre 0 y max_num_ref_frames_OffsetBD [i], ambos incluidos. Cuando el elemento de sintaxis number_of_positive_pictures_in_bd_pps [i] no está presente, se deducirá que el valor de number_of_positive_pictures_in_bd_pps [i] es igual a 0.
Delta_poc_minus_one_pps [i] [j] especifica una distancia absoluta en el valor del POC. Delta_poc_minus_one_pps [i] [j] define el valor de la variable DeltaPOCBD_pps [i] [j OffsetBD [i]] como DeltaPOCBD_pps [i] [j OffsetBD [i]] = delta_poc_minus_one_pps [i] [j] 1 si j es igual a 0, y como DeltaPOCBD_pps [i] [j OffsetBD [i]] = DeltaPOCBD_pps [i] [j - 1 OffsetBD [i]] delta_poc_minus_one_pps [i] [j] 1 si j > 0. DeItaPOCBD_pps [i] [j OffsetBD [i]] estará en el intervalo comprendido entre 1 y MaxPOC/2 - 1.
Temporal_id_positive_pps [i] [j] especifica un identificador temporal y estará representado por los bits bits_for_temporal_id_in_buffer_descriptions. Temporal_id_positive_pps [i] [j] define el valor de la variable TemporalIDBD_pps [i] [j] como TemporalIDBD_pps Offset [i] [j OffsetBD [i]] = temporal_id_positive_pps [i] [j]. Temporal_id_positive_pps [i] [j] estará en el intervalo comprendido entre 0 y max_temporallayers_minus1, ambos incluidos.
Ejemplos de descripciones de los parámetros en el Listado (1) se proporcionan a continuación. Number_of_longterm_pictures_pps [i] especifica el número de entradas en la lista POCBD_pps [i] y POC_CYCLE_BD_pps [i]. El valor de number_of_longterm_pictures_pps [i] estará en el intervalo comprendido entre 0 y max_num_ref_frames, ambos incluidos. Max_num_ref_frames especifica el número máximo de fotogramas de referencia a corto y largo plazo. Poc_pps [i] [j] especifica el valor del POC y define el valor que se añadirá a la lista POCBD_pps [i] como POCBD [i] [j] = poc [j]. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza los elementos de la lista en un orden predefinido. Poc_pps [i] [j] estará en el intervalo comprendido entre 0 y MaxPOC - 1.
Poc_cycle_pps [i] [j] especifica el valor de poc_cycle (por ejemplo, el parámetro del ciclo) y define el valor que se añadirá a la lista POC CYCLE_BD_pps [i]. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza elementos en la lista en un orden predefinido. Poc_cycle_pps [i] [j] (por ejemplo, el parámetro del ciclo) puede ser menor o igual a cero en algunas configuraciones. En dicho caso, se puede utilizar un entero con signo para representar el parámetro del ciclo. En otras configuraciones, se puede utilizar un número entero sin signo para representar el parámetro del ciclo.
Temporal_id_poc_pps [i] [j] especifica un identificador temporal y estará presente si bits_for_temporal_id_in_buffer_descriptions > 0. Temporal_id_poc_pps [i] [j] define el valor de las entradas en la lista TemporalIDBD_pps [i]. Temporal_id_poc_pps [i] [j] se añade a la lista TemporalIDBD_pps [i]. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza elementos en la lista en un orden predefinido. Temporal_id_poc_pps [i] [j] estará en el intervalo comprendido entre 0 y max_temporal_layers_minus1, ambos incluidos. Max_temporallayers_minus1 1 especifica el número máximo de capas temporales presentes en una secuencia. Cabe señalar que la variable NumberOfPictureslnBD_pps [i] puede ser calculada como number_of_negative_pictures_pps [i] number_of_positive_pictures_pps [i] number_of_longterm_pictures_pps [i]. Los valores de deltaPOC negativos y positivos para la imagen de referencia transmitida en la descripción de la memoria intermedia del conjunto de parámetros de la imagen de orden i se añaden a la lista DeItaPOCBD_pps [i]. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza elementos en la lista en un orden predefinido.
El Listado (2) que se muestra a continuación ilustra una configuración alternativa a modo de ejemplo en la que se pueden crear múltiples descripciones de la memoria intermedia dentro de un PPS con diferentes parámetros de ciclo (por ejemplo, poc_cycles) utilizando la siguiente sintaxis. Los cambios debidos al enfoque anterior se muestran en negrita en el Listado (2).
/* Picture parameter set RBSP syntax
*/
pic parametcr set rbsp() {
bits_for_temporal_id_m_buffer_descriptions
positive pictures in buffer deseriptions flag
number_of_bds
if( n um berofb d s > 0 ) {
for(i = 0; ¡ < n u m b erofb d s; í H-){
nurnberof_negative pictures pps[¡]
for(j = 0; j < number_of_negative_pictures_pps[i]; j++ ) { negative_delta_poc_minus_orie_pps[i] [j ]
if( bits_for_temporal_id_in_bufler_descriptions > 0 )
temporal_id _negative_pps[i][j]
}
if( positive_pictures_in_buffer_descriptions_flag) { numberof_positive_pictures_pps[i]
for(j = 0; j < number_of_positive_pictures pps[i]; j++ ) { delta_poc_minus_one_pps[i][j]
if( bits_fbr_temporal_id_in_buffer_dcscriptions > 0 )
temporaMd positive pps[i]|j]
}
}
number_of_]ongterin_pictures ppsjij
for( j ■ 0; j < riumbcr_of_longterni_pictures_pps|iI; j++ ) {
P°C_pps [i] f j ]
poc_tycle_pps [i] |j]
poc_cycle_steps_flag
if (poe _cvcle_steps_flag) {
poccyclesteps
}
if( bits_for_tem poral_id_iii_bufferdescriptions > 0 }
temporal_id_poc_pps[i] |jj
}
}
}
Listado (2)
En el Listado (2), se proporcionan ejemplos de descripciones de parámetros adicionales como sigue. Cuando se establece en 1, poc_cycle_steps_flag especifica que se generarán descripciones de la memoria intermedia adicionales para el modelo de descripción de la memoria intermedia señalizada, que son idénticas al modelo de descripción de la memoria intermedia señalizada, excepto por el recuento de poc_cycle. Poc_cycle_steps_flag será 0 por defecto. Además, poc_cycle_steps especifica el número de descripciones de la memoria intermedia adicionales que se generarán para el modelo de descripción de la memoria intermedia señalizado. Las descripciones adicionales de la memoria intermedia serán idénticas a la descripción de la memoria intermedia señalada, excepto por que se reducirá el recuento de poc_cycle. En una configuración, las descripciones de la memoria intermedia adicionales generadas tienen valores de poc_cycle_pps [i] [j] de -1, -2, -3, ..., -(poc_cycle_steps).
En algunas configuraciones, la conmutación de resolución puede ser habilitada dentro de un flujo continuo. En estas configuraciones, la resolución de las imágenes de referencia puede ser diferente de la resolución de la imagen actual. Por lo tanto, puede resultar beneficioso saber qué mecanismo se puede utilizar para escalar las imágenes de referencia a la resolución correcta. Una manera de señalar el mecanismo es señalarlo explícitamente junto con la descripción de la memoria intermedia. Por ejemplo, un codificador 108 (por ejemplo, el módulo 112 de señalización suplementaria) puede señalar un parámetro s de escala al decodificador 102. Por lo tanto, una descripción alternativa de la memoria intermedia se puede mostrar en la Tabla (2).
Tabla (2)
En la Tabla (2), las dos primeras entradas tienen la resolución que coincide con la de la imagen actual. No obstante, las tres entradas restantes tienen una resolución diferente y pueden utilizar el parámetro de escala, s0, s1, s2, respectivamente. El parámetro de escala puede ser señalado selectivamente. Por ejemplo, puede ser señalado solo si la imagen actual y la imagen de referencia tienen una resolución diferente. En otra configuración, el parámetro de escala siempre puede ser señalado. En otra configuración más, el parámetro de escala puede ser deducido implícitamente (mediante un decodificador), por ejemplo, utilizando una tabla de búsqueda indexada por las características de la imagen actual (por ejemplo, la resolución) y las características de la imagen referenciada (por ejemplo, la resolución).
En otra configuración más, el parámetro de escala puede ser señalado para cualquier subconjunto de imágenes definidas en la descripción de la memoria intermedia. Por ejemplo, el parámetro de escala puede ser señalizado para un subconjunto de imágenes de referencia señalizadas utilizando valores de deltaPOC positivos, un subconjunto de imágenes de referencia señalizadas utilizando valores de deltaPOC negativos, un subconjunto de imágenes señalizadas utilizando el POC y poc_cycle. En una configuración, un subconjunto puede contener la lista completa. Un ejemplo se ilustra en la Tabla (3) que se muestra a continuación, donde negativeDeltaPOC0 y negativeDeltaPOC1 son valores negativos de delta de POC, PositiveDeltaPOC2 es un valor positivo de delta de POC y, por lo tanto, s1, s2, s3 y s4 son los parámetros de escala para una primera entrada, una segunda entrada, una tercera entrada, una cuarta entrada y una quinta entrada, respectivamente.
Tabla (3)
En otra configuración más, el parámetro de escala puede indicar una o varias resoluciones de la imagen de referencia que serán guardadas en la memoria intermedia de imágenes decodificadas. En otra configuración más, el parámetro de escala puede ser utilizado para señalar la resolución de la imagen de referencia que se utilizará para un proceso de compensación del movimiento. En otra configuración más, si la resolución de la imagen de referencia y la imagen que está siendo decodificada no son iguales, el parámetro de escala indica el proceso de compensación del movimiento que se utilizará para generar predicciones.
En una configuración, el parámetro de escala señala (por ejemplo, indica) el cambio en la resolución horizontal y/o vertical en píxeles. En una configuración, el parámetro de escala señala (por ejemplo, indica) la relación entre la resolución horizontal y/o vertical deseada y la original. En una configuración, el parámetro de escala es una 2-tupla, donde el primer valor identifica la escala para la resolución horizontal y el segundo valor identifica la escala para la resolución vertical.
En algunas configuraciones, los coeficientes de transformación de la imagen de referencia pueden ser procesados en base al parámetro de escala para obtener la resolución deseada. Esto puede ser beneficioso para permitir una mejor adaptación de la resolución permitiendo solo tamaños de bloque mayores que un cierto umbral mientras se codifica la imagen de referencia.
En otra configuración más, los píxeles reconstruidos de la imagen de referencia pueden ser procesados en base al parámetro de escala para obtener la resolución deseada. Cabe señalar que estas configuraciones pueden ser aplicadas a todos los esquemas de indexación de imágenes de referencia dados a conocer en el presente documento.
El Listado (3) ilustra otro ejemplo de modificación de sintaxis para el PPS a partir del AHG2i. En particular, el Listado (3) ilustra un ejemplo de sintaxis de descripción de la memoria intermedia utilizada en cabeceras de sector, tal como se describe en el AHG2i. No obstante, las modificaciones a la sintaxis dada en AHG2i de acuerdo con los sistemas y métodos dados a conocer en el presente documento se indican en negrita en el Listado (3).
/*
Buffer description .
* /
buffer_descript¡on() {
bd_reference_flag
if(bd reference_flag - ^ 1) {
bd_idx
bd_poc_cycle_update_flag
if (bdjxic cycle updatc flag = 1)
//begin for loop o f long term pictures POCBD_pps[bd_idx],
POC CYCLE BD_pps[bd_idx] and
TemporalIDBD_pps[bd_idx]ovemde
for( j = 0; j < nuniber of longtcrm pictures¡jpps[bd_idx]; j++ ) {
poc_pps_override[j]
poc_cyclc_pps_ovcrride[j]
i3
if( bits for temporal id iii buffer descriptions > 0 ) temporal id _pps_overrÍde[j]
}
//end of for loop oflong tema pictures POCBD_pps[bd_ídx], POC_CYCLE_BDjpps[bd_idx] and TemporalIDBD_pps[bd_idx]ovcrride
} else {
numb er_ol^ncgative__pic tures
//begin for loop for negative deltaPOC pictures
for( i = 0; i < number_of_negative_pictures; i++ ) { negativede 1 ta_poc_minus_onc [í J
if( bits for temporal id in bufferdescriptions > 0 ) temporaI_ id negative[i] }
// end of for loop for negative deltaPOC pictures
if( posítive_pictures_in_buffer_descriptions_flag) { delta_poc_minus_one[i]
if( bits_for_temporal _id_in_buffer descriptions > 0 ) “ temporal_id_positive[i] }
number_of_longterm_pictures
// begin for loop of explicitly signaled long tenn pictures for( j = 0; j < number_of_longterm_pictures; j++ ) { poc[jl
poc_cycle[jJ
if( bits_for_temporal_id_in_buffcr_descriptions > 0 ) temporal_id_poc[j]
}
//end of for loop of explicitly signaled long tenn pictures if( number_of_negative_pictures number_of_positive_pictures < max_num_ref_fram.es) {
combine with reí'erence flag
if( combine_with reference_flag)
bd_combination_idx
}
I
}
Listado (3)
Ejemplos de descripciones de los parámetros en el Listado (3) se proporcionan a continuación. Un number_of_negative_pictures especifica el número de entradas de delta de POC negativo. Number_of_negative_pictures define el valor de Compensación como Compensación = number_of_negative_pictures. El valor de number_of_negative_pictures debe estar en el intervalo comprendido entre 0 y max_num_ref_frames, ambos incluidos.
Negative_delta_poc_minus_one [i] especifica una distancia absoluta en el valor del POC. Negative_delta_poc_minus_one [i] define el valor de la variable POCBD [i] como POCBD [i] = (pic_order_cnt MaxPOC -(negative_delta_poc_minus_one [i] 1)) % MaxPOC si i es igual a 0, y como POCBD [i] = (POCBD [i-1] MaxPOC -(negative_delta_poc_minus_one [i] 1)) % MaxPOC si i > 0. En este caso, pic_order_cnt es el POC de la imagen actual asignada en la cabecera del segmento. El valor de negative_delta_poc_minus_one [i] estará en el intervalo comprendido entre 0 y MaxPOC-1, ambos incluidos. El valor de POCBD [i] será tal que el valor de DiffPOC (currPic, refPic) esté en el intervalo comprendido entre -1 y -MaxPOC/2. En este caso, refPic es la imagen de referencia, siendo pic_order_cnt igual a POCBD [i].
DiffPOC (picA, picB) se especifica como sigue:
¡f( POC(picA) > POC(picB)) {
¡f(POC(picA) - POC(picB) < MaxPOC / 2 )
DiffPOC(picA, picB) = POC(picA) - POC(picB)
else
DiffPOC(picA, picB) = POC(picA) - MaxPOC - POC(picB)
}
else {
if(POC(picB) - POC(picA) <= MaxPOC / 2 )
DiffPOC(picA, picB) = POC(picA) - POC(picB)
else
D¡ffPOC(picA, picB) - POC(picA) MaxPOC - POC(picB)
}
La función POC (picX) se especifica como sigue: POC (picX) = pic_order_cnt de picX. POC_CYCLE_BD [i] se establece en el poc_cycle de la imagen de referencia de orden i negativa de deltaPOC. El poc_cycle de la imagen de referencia de orden i de deltaPOC negativo se calcula en base a una imagen designada.
Temporal_id_negative [i] especifica un identificador temporal y debe estar representado por los bits de bits_for_temporal_id_in_buffer_descriptions, donde los bits para temporal_id_in_buffer_descriptions es el elemento de sintaxis del conjunto de parámetros de la imagen utilizado por la imagen actual. Temporal_id_negative [i] define el valor de la variable TemporalIDBD [i] como TemporalIDBD [i] temporal_id_negative [i]. Temporal_id_negative [i] estará en el intervalo comprendido entre 0 y max_temporallayers_minus1, ambos incluidos. El valor de TemporalIDBD [i] está limitado de manera que TemporalIDBD [i] debe ser igual al temporal_id señalado en la cabecera de NAL de la imagen de referencia, siendo pic_order_cnt igual a POCBD [i].
Number_of_positive_pictures especifica el número de entradas en la lista DeltaPOCBD_pps [i] con un valor positivo. El valor de number_of_positive_pictures debe estar en el intervalo comprendido entre 0 y max_num_ref_frames-Offset, ambos incluidos. Cuando el elemento de sintaxis number_of_positive_pictures no está presente, se deducirá que el valor del número de imágenes positivas es igual a 0.
Delta_poc_minus_one [i] especifica una distancia absoluta en el valor del POC. Delta_poc_minus_one [i] define el valor de la variable POCBD [i Offset] como POCBD [i Offset] = (pic_order_cnt (delta_poc_minus_one [i] 1)) % MaxPOC si i es igual a 0, y como pOc BD [i Offset] = (POCBD [i-1 Offset] (delta_poc_minus_one [i] 1)) % MaxPOC si i > 0. En el presente documento, pic_order_cnt es el POC de la imagen actual tal como se indica en la cabecera del segmento. El valor de delta_poc_minus_one [i] estará en el intervalo comprendido entre 0 y MaxPOC-1, ambos incluidos. El valor de POCBD [i Offset] será tal que el valor de DiffP0C (currPic, refPic) está en el intervalo comprendido entre 1 y MaxPOC/2 - 1, donde refPic es la imagen de referencia, siendo pic_order_cnt igual a POCBD [i Offset]. POC_CYCLE_BD [i Offset] se establece en poc_cycle de la imagen de referencia de orden i de deltaPOC positiva. El poc_cycle de la imagen de referencia de orden i de deltaPOC positiva se calcula en base a una imagen designada.
Temporal_id_positive [i] especifica un identificador temporal y estará representado por los bits de bits_for_temporal_id_in_buffer_descriptions, donde bits_para_temporal_id_in buffer_descriptions es el elemento de
sintaxis del conjunto de parámetros de la imagen utilizado por la imagen actual. Temporal_id_positive [i] define el valor de la variable TemporalIDBD [i Offset] como TemporalIDBD [i Offset] = temporal_id_positive [i]. Temporal_id_positive [i] debe estar en el intervalo comprendido entre 0 y max_temporallayers_minus1, ambos incluidos. El valor de TemporalIDBD [i] está limitado de tal manera que TemporalIDBD [i] debe ser igual al temporal_id señalado en la cabecera de NAL de la imagen de referencia, siendo pic_order_cnt igual a POCBD [i]. Un bd_poc_cycle_update_flag igual a 1 especifica que el POC_CYCLE_BD_pps [bd_idx] [j] de la descripción de la memoria intermedia referenciado debe ser anulado para la imagen actual. En algunas configuraciones, los fotogramas futuros también pueden anular la información de poc_cycle. Si bd_poc_cycle_update_flag es 0, entonces se utilizarán los POC_CYCLE_BD_pps [bd_idx] [j] original de la descripción de la memoria intermedia referenciada. Poc_cycle_pps_override [j] especifica los valores que se utilizarán para anular los valores dentro del POC_CYCLE_BD_pps [bd_idx] [j] solo para la imagen actual. En una configuración alternativa, poc_cycle_pps_override [j] especifica una compensación. Solo para la imagen actual, (POC_CYCLE_BD_pps [bd_idx] [j] poc_cycle_pps_override [j]) se puede utilizar en lugar de POC CYCLE_BD_pps [bd_idx] [j].
Poc_pps_override [j] especifica los valores que se utilizarán para anular los valores dentro de POCBD_pps [bd_idx] [j] solo para la imagen actual. En una configuración alternativa, poc_pps_override [j] especifica una compensación. Solo para la imagen actual, (POCBD_pps [bd_idx] [j] poc_pps_override [j]) se puede utilizar en lugar de POCBD_pps [bd_idx] [j]. Temporal_id_pps_override [j] especifica los valores que se utilizarán para anular los valores dentro de TemporalIDBD_pps [bd_idx] [j] solo para la imagen actual. En una configuración alternativa, temporal_id_pps_override [j] especifica una compensación. Solo para la imagen actual, (TemporalIDBD_pps [bd_idx] [j] temporal_id_pps_override [j]) se puede utilizar en lugar de TemporalIDBD_pps [bd_idx] [j].
Number_of_longterm_pictures especifica el número de entradas de imagen a largo plazo en la lista POCBD y POC_CYCLE_BD. El valor de number_of_longterm_pictures deberá estar en el intervalo comprendido entre 0 y max_num_ref_frames, ambos incluidos. Max_num_ref_frames especifica el número máximo de fotogramas de referencia a corto y largo plazo. Poc [j] especifica un valor de POC que se añadirá a la lista POCBD como POCBD [bd_idx] [j] = poc [j]. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza elementos en la lista en un orden predefinido. Poc [j] estará en el intervalo comprendido entre 0 y MaxPOC - 1.
Poc_cycle [j] (por ejemplo, el parámetro del ciclo) especifica el valor de poc_cycle y define el valor a añadir a la lista POC_CYCLE_BD. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza los elementos de la lista en un orden predefinido. Poc_cycle [j] puede ser menor o igual que cero o puede ocupar un intervalo numérico diferente.
Temporal_id_poc [j] especifica un identificador temporal y estará representado por los bits de bits_for_temporal_id_in_buffer_descriptions. Temporal_id_poc [j] define el valor que se añadirá a la lista TemporalIDBD. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza los elementos de la lista en un orden predefinido. Temporal_id_poc [i] [j] estará en el intervalo comprendido entre 0 y max_temporallayers_minus1, ambos incluidos. Max_temporallayers_minus1 1 especifica el número máximo de capas temporales presentes en una secuencia.
En algunas configuraciones, number_of_longterm_pictures_pps [bd_idx] puede ser transmitido antes del bucle “for” ilustrado en el Listado (3), evitando de este modo una dependencia de una cabecera del segmento con PPS. Alternativamente, bd_poc_cycle_update_flag puede ser reemplazado con otro parámetro, num_longterm_poc_cycle_override_count. Por ejemplo, el código relevante en el Listado (3) anterior puede ser reemplazado con “If num_longterm_poc_cycle_override_count > 0 then For (j = 0; j < num_longterm_poc_cycle_override_count; j +) {....}”.
Un bd_reference_flag igual a 1 especifica que la descripción de la memoria intermedia de la imagen actual se creará utilizando elementos de sintaxis no transmitidos en la cabecera del segmento. En una configuración, la descripción de la memoria intermedia para la imagen actual se crea utilizando elementos de sintaxis en el conjunto de parámetros de la imagen. Un bd_reference_flag igual a 0 especifica que la descripción de la memoria intermedia de la imagen actual se creará mediante una combinación de descripciones de la memoria intermedia transmitidas en la cabecera del segmento y descripciones de la memoria intermedia no transmitidas en la cabecera del segmento. En una configuración, las descripciones de la memoria intermedia no transmitidas en la cabecera del segmento se transmiten en el conjunto de parámetros de la imagen.
Bd_idx identifica una descripción de la memoria intermedia en un conjunto de descripciones de la memoria intermedia disponibles. En una configuración, bd_idx especifica un índice en las listas POCBD_pps, DeltaPOCBD_pps, POC_CYCLE_BD_pps y TemporalIDBD_pps que se utilizará para la creación de la descripción de la memoria intermedia de la imagen actual.
Los valores correspondientes a las imágenes referenciadas deltaPOC en (DeltaPOCBD_pps[bd_idx]), TemporalIDBD_pps[bd_idx]) se convierten en recuento del orden de las imágenes (por ejemplo, POC), parámetro del ciclo (por ejemplo, poc_cycle) e identificador temporal, y se añaden a las listas de descripción de la memoria intermedia de la imagen pOc BD, POC_CYCLE_b D y TemporalIDBD. Los valores de las listas (POCBD_pps [bd_idx], POC_CYCLE_BD_pps [bd_idx], TemporalIDBD_pps [bd_idx]) correspondientes a las imágenes de referencia se añaden a las listas de descripción de la memoria intermedia de imágenes POCBD, POC_CYCLE_BD y TemporalIDBD. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza elementos en la lista en un orden predefinido.
Un combine_with_reference_flag igual a 1 especifica que los elementos de sintaxis del PPS activo se utilizan para asignar valores en las listas POCBD, POC_CYCLE_BD y TemporalIDBD en combinación con señalización explícita. Cuando el elemento de sintaxis combine_with_reference_flag no está presente, se deducirá que el valor de combine_with_reference_flag es igual a 0.
Bd_combination_idx especifica un índice en las listas DeItaPOCBD_pps y TemporalIDBD_pps que se utilizará para la creación de la descripción de la memoria intermedia de la imagen actual en combinación con señalización explícita. Bd_combination_idx se representará mediante los bits ceil (log2 (number_of_bds)). El valor de bd_combination_idx estará en el intervalo comprendido entre 0 y number_of_bds - 1, donde number_of_bds es el elemento de sintaxis del conjunto de parámetros de la imagen utilizado por la imagen actual. Las imágenes actuales en las listas POCBD, POC_CYCLE_BD y TemporalIDBD son valores agregados de las listas DeltaPOCBD_pps [bd_idx], POCBD_pps [bd_idx], POC_CYCLE_BD_pps [bd_idx] y TemporalIDBD_pps [bd_idx] utilizando un mecanismo predefinido. En una configuración de las anteriores, la operación de adición es una operación de agregación. En otra configuración, la operación de agregación (o adición) es una operación que reemplaza elementos en la lista en un orden predefinido.
A continuación, se proporcionan algunos ejemplos de maneras en las que se pueden aplicar los sistemas y métodos dados a conocer en el presente documento. Supóngase que una imagen con POC = 0 activado es una imagen a largo plazo (de referencia) utilizada por una imagen con POC = MaxPOC - 1 y una imagen con POC = 0 de un conjunto de imágenes posterior. La imagen a largo plazo (referencia) se puede indicar de diferentes maneras.
En una primera manera, existen dos descripciones de la memoria intermedia en el PPS, que incluyen la descripción de la memoria intermedia A: {POC = 0, poc_cycle = 0, temporalID} y la descripción de la memoria intermedia B: {POC = 0, poc_cycle = -1, temporalID}. La imagen con POC = MaxPOC - 1 apuntará a la descripción de la memoria intermedia A. La imagen con POC = 0 del siguiente conjunto de imágenes se referirá a la descripción de la memoria intermedia B.
En una segunda manera alternativa, la imagen con POC = MaxPOC - 1 apuntará a la descripción de la memoria intermedia A. La imagen con POC = 0 del siguiente conjunto de imágenes se referirá a la descripción de la memoria intermedia A. La descripción de la memoria intermedia A corresponde a {POC = 0, poc_cycle = 0, temporalID}. Para hacer referencia a la imagen correcta, poc_cycle se debe establecer en -1, puesto que la imagen de referencia pertenece al conjunto de imágenes anterior [0, ..., MaxPOC - 1]. Por tanto, el valor de poc_cycle para la descripción A de la memoria intermedia que está actualmente establecido en 0 puede ser anulado (por ejemplo, ser establecido en un valor diferente) solo para el segmento actual, transmitiendo un “-1” en la cabecera del segmento. En algunas configuraciones, el primer segmento de una imagen se puede utilizar para anular el valor de poc_cycle de una descripción de la memoria intermedia solo para la imagen actual.
En algunas configuraciones, la lista de imágenes de referencia señaladas en un nivel alto puede ser modificada en un nivel más fino. Por ejemplo, se puede indicar una lista de imágenes de referencia en la descripción de la memoria intermedia transmitida en el PPS (por ejemplo, señalizada a alto nivel). No obstante, la descripción de la memoria intermedia transmitida en el PPS puede ser modificada (por ejemplo, ser modificada a un nivel más fino). Por ejemplo, la descripción de la memoria intermedia puede ser modificada eliminando entradas existentes. Adicional o alternativamente, la información de la descripción de la memoria intermedia del PPS puede ser modificada para añadir nuevas entradas o reemplazar una entrada. La información de la descripción de la memoria intermedia del PPS también puede ser modificada para añadir nuevas entradas y reemplazar las entradas actuales utilizando un mecanismo predefinido, tal como si no hay espacios vacíos disponibles. Una ventaja de permitir modificaciones es que se puede obtener un mayor nivel de control. Esto puede ser en lugar de utilizar las descripciones de la memoria intermedia del PPS sin modificación, o, además, o alternativamente, reemplazando solo las primeras ‘n’ entradas. En algunas configuraciones, se puede definir una sintaxis adicional para reemplazar entradas en la lista de intervalos. En este caso, se especificarán el índice de la lista que se reemplaza y la entrada que puede reemplazar a la entrada actual en ese índice.
Adicional o alternativamente, se puede definir una sintaxis adicional para añadir entradas en la lista con reemplazo si la lista de intervalos no tiene vacantes. En este caso, el índice en la lista que debería ser reemplazado puede ser señalado explícitamente (desde el codificador 108 o el módulo 112 de señalización suplementaria, por ejemplo) o
deducido implícitamente (por el decodificador 102, por ejemplo) utilizando alguna información transmitida anteriormente en el flujo de bits.
El Listado (4) ilustra otro ejemplo de modificación de sintaxis para el PPS del AHG21. En particular, el Listado (4) ilustra otro ejemplo de sintaxis de descripción de la memoria intermedia utilizada en las cabeceras de segmento tal como se describe en el AHG21. No obstante, modificaciones a la sintaxis dada en el AHG21 de acuerdo con los sistemas y métodos dados a conocer en el presente documento se indican en negrita en el Listado (4).
/* Buffer description
*/
buffer_description() {
bd refereace_Dag
if(bd referenceflag = = 1) {
bd_idx
bd_poc_cycle updatc_flag
if (bd_poc cycle update flag = 1)
for( j = 0; j < number_of_longterm_pictures_pps[bd_idx]; j++ ) { pocjpps_override|j]
poc_cycle_pps override[j]
if( bits fortem poral id in buffer descriptions > 0 )
temporal_id_ppsoverride[jJ
}
bd_poc_cycle_delete_eount
if (bdjpoc cycle_delete_count >0 )
for( j ■ U; j < bd_poc_cycle_delete count; ]+ ) {
bd_pps_delete_¡dx[j]
}
bd_poc_cycle append count
if (bd poc cycle appcnd count >0 )
for( j = U; j < bd_poc_cycle_append_count; j++ ) {
poc_pps appendjj]
p occyclc pps_append[¡]
if( bits for temporal id ¡n buffer descriptions > 0 )
temporal idj>ps_append[jl
}
i else {
numb e r o fnega 11 vc pi cture s
for( i = 0; i < number of negativc pictures; i++ ) {
}
if( positive jjictures in buffer descriptions flag){
}
number of longterm pictures
for( j = 0; j < number_of longterni pictures; j++ ) {
poc[j]
pocevclefj]
if{ bits_for_temporal_id_in_buffer_descriptions > 0 )
temporal_id_poc[j]
}
if( number_of_negative_pictures number o f positivc pictures <
max_num_ref_frames ) {
com b in ew ith referen ceflag
if( combine_with_reference_flag)
bd_combination_idx
}
}
}
Listado (4)
El Listado (4) contiene muchos elementos similares a los del Listado (3). El Listado (4) también contiene modificaciones de sintaxis en la cabecera del segmento para permitir supresiones y/o adiciones de imágenes de referencia.
A continuación, se proporcionan ejemplos de descripciones de los parámetros del Listado (4). Un bd_poc_cycle_delete_count especifica el número de entradas que se eliminarán de las listas: POCBD_pps [bd_idx],
temporalIDBD_pps [bd_idx] y POC_CYCLE_BD_pps [bd_idx] para la imagen actual (solo, a modo de ejemplo). En algunas configuraciones, bd_poc_cycle_delete_count puede ser mayor o igual que 0.
Bd_pps_delete_idx [j] especifica que, para la imagen actual, la entrada POC_CYCLE_BD_pps [bd_idx] [bd_pps_delete_idx [j]], la entrada temporalIDBD_pps [bd_idx] [bd_pps_delete_idx [j]], y la entrada POCBD_pps [bd_idx][bd_pps_delete_idx [j]] son borradas de las listas. En algunas configuraciones, una vez que se elimina una imagen, es posible que ya no esté disponible como referencia para las imágenes decodificadas posteriores. En otras configuraciones, una vez completadas las eliminaciones, las entradas restantes de la lista POCBD_pps [bd_idx], temporalIDBD_pps [bd_idx] y POC_CYCLE_BD_pps [bd_idx] pueden moverse hacia el índice inicial (por ejemplo, índice cero) para ocupar los intervalos vacíos. Este proceso puede ser realizado para que no queden intervalos vacíos entre dos intervalos ocupados. En el presente documento, un intervalo corresponde a una entrada en la descripción de la memoria intermedia. Por ejemplo, si la lista es [Slot0 = A] [Slot1 = vacío] [Slot2 = B] [Slot3 = C] [Slot4 = vacío] [Slot 5 = D], entonces, después de las eliminaciones las entradas son desplazadas hacia Slot0 hasta que no quedan intervalos vacíos entre dos intervalos ocupados. En este ejemplo, la lista resultante es [Slot0 = A] [Slot1 = B] [Slot2 = C] [Slot3 = D] [Slot4 = vacío] [Slot 5 = vacío].
Bd_poc_cycle_append_count especifica el número de entradas a agregar a las listas: POCBD_pps [bd_idx], temporalIDBD_pps [bd_idx] y POC_CYCLE_BD_pps [bd_idx] para la imagen actual. En algunas configuraciones, bd_poc_cycle_append_count puede ser mayor o igual que 0.
Poc_pps_append [j] especifica el valor de POC a agregar a la lista POCBD_pps [bd_idx] para la imagen actual (solo, a modo de ejemplo). En algunas configuraciones, si existen intervalos vacíos en la lista, se pueden realizar adiciones comenzando con el intervalo vacío más cercano al índice cero y, a continuación, en orden creciente del índice del intervalo.
Poc_cycle_pps_append [j] especifica el valor de poc_cycle a agregar a la lista POC_CYCLE_BD_pps [bd_idx] para la imagen actual (solo, a modo de ejemplo). En algunas configuraciones, si existe algún espacio vacío en la lista, entonces el espacio vacío más cercano al índice cero puede ser rellenado primero. Adicionalmente, los intervalos se pueden rellenar en orden creciente del índice del intervalo. En algunas configuraciones, estas operaciones de anular entradas, borrar entradas y agregar entradas a POCBD_pps [bd_idx] y POC_CYCLE_BD_pps [bd_idx] se llevan a cabo en un orden predefinido.
Temporal_id_pps_append [j] especifica el valor del identificador temporal a agregar a la lista TemporalIDBD_pps [bd_idx] para la imagen actual (solo, a modo de ejemplo). En algunas configuraciones, si existen intervalos vacíos en la lista, las adiciones se pueden realizar comenzando con el intervalo vacío más cercano al índice cero y, a continuación, en orden creciente del índice del intervalo.
A continuación, en el presente documento, se proporcionan algunos ejemplos de configuraciones de los sistemas y métodos dados a conocer en el presente documento. En una configuración, la 3-tupla (POC, poc_cycle, temporalID) puede ser reemplazada con la 2-tupla (LTSlotIdx, temporalID). LTSlotIndex puede ser un índice de intervalo que apunta a una ubicación en la DPB a largo plazo. Una posible ventaja de este enfoque es reducir el exceso de tasa de bits.
En otra configuración, la 3-tupla (POC, poc_cycle, temporalID) se puede reemplazar con (f (POC, poc_cycle), temporalID); donde f (POC, poc_cycle) es una función (por ejemplo, tabla de búsqueda) que asigna la dos-tupla (POC, poc_cycle) a un índice. En otra configuración más, en lugar de (POC, poc_cycle), se puede utilizar un valor absoluto de POC. En un ejemplo, este valor absoluto de POC será diferente del campo longterm_poc [i] en una descripción de la memoria intermedia en JCTVC-F493 que especificaba un POC absoluto. En particular, el campo JCTVC-F493 longterm_poc [i] solo podía señalar valores en el intervalo comprendido entre 0 y MaxPOC. No obstante, de acuerdo con los sistemas y métodos dados a conocer en el presente documento, el valor absoluto del POC se puede señalar (y posiblemente obtener) utilizando un esquema de bit más significativo (MSB - Most Significant Bit, en inglés) y bit menos significativo (LSB - Least significant bit, en inglés) del AVC, proporcionando de este modo una mayor resolución de bits. Alternativamente, el valor absoluto del POC se puede señalar utilizando un espacio numérico que sea mayor que MaxPOC.
En otra configuración, el POC absoluto de acuerdo con los sistemas y métodos dados a conocer en el presente documento se puede utilizar para hacer referencia a todas las imágenes de referencia (por ejemplo, imágenes a corto plazo e imágenes a largo plazo). En otra configuración, el POC absoluto de acuerdo con los sistemas y métodos dados a conocer en el presente documento se puede utilizar en lugar de la señalización de deltaPOC. En algunas configuraciones, POC y poc_cycle pueden ser reemplazados por un valor absoluto de POC tal como se muestra en el siguiente ejemplo (y puede no estar limitado a los ejemplos siguientes):
/* Picture parameter set raw byte sequence payload (R BSP) syntax
* /
pic_parameter_set_rbsp() {
number_of_longterin_pictures_pps[i]
for( j = 0; j < number of lougtcrm pietures pps|i]; j++ ) {
absolute poc_pps[i][j]
if( b itsfo rte m p o ra lid _ in _ b u ffe r descriptions > 0 )
tem poral_idjoc_ppsIi][j]
}
}
}
}
En este ejemplo, absolute_poc_pps [i] [j] es el recuento absoluto del orden de las imágenes para la entrada de imagen a largo plazo de orden j en la descripción de la memoria intermedia de orden i dentro del PPS.
/* Buffer description
* /
buffcr dcscriptionf) {
b d referen ceflag
ií'(bd_reí'erence_ñag = = 1) {
bd idx
} else {
niimber_of_longterm_pictures
for( j = 0; j < number of longterm_pictures; j++ ) {
absolute_pocfj]
if( bits for tcmporal id in buffer descriptions > 0 ) temporal_id_poc[j]
}
}
}
En este ejemplo, absolute_poc [j] es el recuento absoluto del orden de la imagen para la entrada de imagen a largo plazo de orden j en la descripción de la memoria intermedia.
En algunas configuraciones, parte o toda la información contenida habitualmente en el PPS y/o en las descripciones de la memoria intermedia puede ser transportada adicional o alternativamente en un conjunto de parámetros de segmento adaptativo o conjunto de parámetros de adaptación (APS - Adaptation Parameter Set, en inglés). Esta información incluye uno o varios de: number_of_longterm_pictures, poc [j], poc_cycle [j], temporal_id_poc [j], number_of_longterm_pictures_pps [i], poc_pps [i] [j], poc_cycle_pps [i] [j] y temporal_id_poc_pps [i] [j]. Por ejemplo, el conjunto de parámetros de segmento adaptativo o el conjunto de parámetros de adaptación (Ap S) puede incluir una o varias de una serie de imágenes de referencia (por ejemplo, número de imágenes a largo plazo), un recuento del orden de las imágenes (por ejemplo, poc [j]), un parámetro del ciclo de recuento del orden de las imágenes (por ejemplo, poc_cycle [j]), un parámetro de recuento del orden de las imágenes de identificador temporal (por ejemplo, temporal_id_poc [j]), un número de conjunto de parámetros de imagen de las imágenes de referencia (por ejemplo, number_of_longterm_pictures_pps [i]), un recuento del orden de las imágenes del conjunto de parámetros de la imagen (por ejemplo, poc_pps [i] [j]), un parámetro de ciclo de recuento del orden de las imágenes del conjunto de parámetros de la imagen (por ejemplo, poc_cycle_pps [i] [j]) y un parámetro de recuento del orden de las imágenes del identificador temporal del conjunto de parámetros de la imagen (por ejemplo, temporal_id_poc_pps [i] [j]).
En algunas configuraciones, la información poc_cycle [j] solo puede ser señalada (por ejemplo, desde un codificador 108 al decodificador 102, 202) si es diferente de 0. En este caso, se puede definir una sintaxis alternativa.
En otra configuración más, parte o toda la información habitualmente contenida en el PPS y/o en las descripciones de la memoria intermedia puede ser transportada adicional o alternativamente en una cabecera del segmento por separado de la información de la descripción de la memoria intermedia. Por ejemplo, la cabecera del segmento puede llevar (por separado del contenedor de descripción de la memoria intermedia) uno o varios de un número de imágenes de referencia (por ejemplo, number_of_longterm_pictures), un recuento del orden de las imágenes (por ejemplo, poc [j]), un parámetro de ciclo de recuento de órdenes de imagen (por ejemplo, poc_cycle [j]), un parámetro de recuento del orden de las imágenes de identificador temporal (por ejemplo, temporal_id_poc [j]), un número de conjuntos de parámetros de la imagen de las imágenes de referencia (por ejemplo, number_of_longterm_pictures_pps [i]), un recuento del orden de las imágenes del conjunto de parámetros de la imagen (por ejemplo, poc_pps [i] [j]), un parámetro del ciclo de recuento del orden de las imágenes del conjunto de parámetros de la imagen (por ejemplo, poc_cycle_pps [i] [j]) y un parámetro de recuento del orden de las imágenes del identificador temporal de conjunto de parámetros de la imagen (por ejemplo, temporal_id_poc_pps [i] [j]).
En una configuración alternativa, una imagen a largo plazo (de referencia) se puede señalar indexándola como x.y, donde x = poc [j] o poc_pps [i] [j] e y es un nuevo subíndice de información que define un espacio de nombre / espacio de número adicional para imágenes subindexadas a largo plazo (referencia). En este caso, las entradas x e y pueden ser enviadas en el PPS y/o en descripciones de la memoria intermedia (en una cabecera del segmento) para cada imagen a largo plazo (referencia).
En algunas configuraciones, se hace referencia a todas las imágenes (de referencia) (por ejemplo, a largo plazo y a corto plazo) utilizando referenciación de delta (utilizando deltaPOC y temporalID, por ejemplo) o referencia absoluta (utilizando POC, poc_cycle y temporalID, por ejemplo). Por ejemplo, toda la memoria intermedia de imágenes decodificadas (DPB) puede contener un conjunto de imágenes recibidas. Un subconjunto de estas imágenes recibidas puede utilizar la referencia delta, y las imágenes recibidas restantes pueden utilizar la referencia absoluta. Cabe señalar que los enfoques anteriores no especifican las mismas referencias absolutas que se proporcionan de acuerdo con los sistemas y métodos dados a conocer en el presente documento (utilizando POC y poc_cycle, por ejemplo). Cabe señalar que una o varias de las configuraciones de descripciones de la memoria intermedia y sintaxis descritas pueden ser implementadas en combinación con uno o varios de los métodos y/o enfoques dados a conocer en el presente documento.
La figura 3 es un diagrama de flujo que ilustra una configuración de un método 300 para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada. Un dispositivo electrónico 204 (por ejemplo, el decodificador 202) puede recibir 302 un flujo de bits. Por ejemplo, el decodificador 202 puede recibir 302 un flujo de bits 214 que incluye una imagen de referencia codificada (y otras imágenes codificadas, por ejemplo). En algunas configuraciones, el flujo de bits 214 también puede incluir información en exceso (por ejemplo, PPS, información de la descripción de la memoria intermedia, parámetros, indicadores de disposición circular, designación o identificador de imagen de referencia, etc.).
El dispositivo electrónico 204 puede decodificar 304 una parte del flujo de bits 214 para producir una imagen de referencia decodificada. Por ejemplo, el decodificador 202 puede decodificar 304 una parte del flujo de bits 214 para producir una imagen de referencia decodificada que se almacena en la memoria de fotogramas 264. Cabe señalar que una o varias porciones del flujo de bits 214 pueden ser decodificadas 304 para producir una o varias imágenes de referencia decodificadas.
El dispositivo electrónico 204 puede rastrear 306 la imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB) con referenciación suplementaria reducida. Por ejemplo, el dispositivo electrónico 204 puede asociar un parámetro del ciclo con la imagen de referencia decodificada y modificar (por ejemplo, disminuir o incrementar) el parámetro del ciclo si se recibe un indicador de disposición circular o si se determina una transición entre conjuntos de imágenes. Se pueden utilizar otros enfoques para rastrear 306 la imagen de referencia
decodificada. A continuación, se proporcionan más detalles. Cabe señalar que la DPB puede incluir una o varias imágenes de referencia decodificadas.
El dispositivo electrónico 204 puede decodificar 308 la imagen en base a una o varias imágenes de referencia decodificadas. Por ejemplo, una porción del flujo de bits 214 (distinta de la porción decodificada 304 para producir la imagen de referencia decodificada) puede ser decodificada 308 en base a la imagen de referencia. Por ejemplo, la imagen de referencia decodificada (que ha sido rastreada en la DPB) puede ser proporcionada a un módulo 260 de compensación del movimiento para generar una señal de inter predicción 268 de fotogramas en base a un mecanismo de inter predicción de fotogramas. La señal de inter predicción 268 de fotogramas puede ser utilizada, por lo tanto, para decodificar 308 la imagen. En algunas configuraciones o instancias, una o varias imágenes de referencia decodificadas pueden ser rastreadas 306 y utilizadas para decodificar 308 la imagen.
La figura 4 es un diagrama de flujo que ilustra una configuración más específica de un método 400 para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada. Este método 400 puede ser un enfoque para rastrear a qué imagen se hace referencia cuando se reutilizan los POC. Un dispositivo electrónico 204 (por ejemplo, el decodificador 202) puede recibir 402 un flujo de bits 214. Por ejemplo, el decodificador 202 puede recibir 402 un flujo de bits 214 que incluye una imagen de referencia codificada (y otras imágenes codificadas, por ejemplo). En algunas configuraciones, el flujo de bits 214 puede incluir información suplementaria (por ejemplo, PPS, información de la descripción de la memoria intermedia, parámetros, indicadores de disposición circular, designación o identificador de imagen de referencia, etc.).
El dispositivo electrónico 204 puede decodificar 404 una porción del flujo de bits 214 para producir una imagen de referencia decodificada. Por ejemplo, el decodificador 202 puede decodificar 404 una porción del flujo de bits 214 para producir una imagen de referencia codificada que está almacenada en la memoria de fotogramas 264. Cabe señalar que una o varias porciones del flujo de bits 214 pueden se decodificadas 404 para producir una o varias imágenes de referencia decodificadas.
El dispositivo electrónico 204 puede asociar 406 un parámetro del ciclo con un conjunto de imágenes decodificadas que incluye la imagen de referencia decodificada. Por ejemplo, el dispositivo electrónico 204 puede asociar 406 un parámetro del ciclo “poc_cycle” con un conjunto de imágenes decodificadas que incluye la imagen de referencia decodificada.
El parámetro del ciclo “poc_cycle” se puede definir como sigue. Cuando se utiliza un número fijo de bits para representar el POC de una imagen en un intervalo [0, ..., MaxPOC - 1], existen valores enteros únicos de MaxPOC. Si el número de imágenes que se codifican excede MaxPOC, un mecanismo de numeración de imágenes debe reutilizar los valores de POC ya asignados. La numeración de POC progresa, por lo tanto, como sigue en un ejemplo: ..., [0, ..., MaxPOC - 1]n-2, [0, ..., MaxPOC - 1]n-1, [0, ..., MaxPOC - 1]n, [0, ..., MaxPOC - 1]n+1, ... El subíndice en este ejemplo indica el número de veces que se ha repetido el conjunto [0, ..., MaxPOC - 1]. Este subíndice o el número de veces que se ha repetido el conjunto [0, . , MaxPOC - 1] se puede denotar como MaxPOCSetIndex. Por ejemplo, una imagen con POC = 0 y MaxPOCSetlndex = n representa la imagen de orden (n*MaxPOC + 1) de la secuencia (con el supuesto de que la numeración de conjuntos de imágenes comienza con 1, por ejemplo). Se proporcionan detalles adicionales con respecto al parámetro del ciclo “poc_cycle” en relación con la figura 5 que se muestra a continuación.
El dispositivo electrónico 204 puede determinar 408 si se recibe un indicador de disposición circular. Por ejemplo, cada vez que un codificador 108 o un dispositivo electrónico de transmisión A 104a alcanza un número máximo predeterminado de imágenes en un conjunto de imágenes, el codificador 108 o el dispositivo electrónico de transmisión A 104a puede enviar un indicador de disposición circular que es recibido por el decodificador 102, o recibir el dispositivo electrónico B 104b para indicar que se está enviando otro conjunto de imágenes (por ejemplo, un POC se está reiniciando o se está iniciando otro ciclo). Se dan más detalles en relación con la figura 12 que se muestra a continuación.
Si el dispositivo electrónico 204 determina 408 que se recibió un indicador de disposición circular, el dispositivo electrónico 204 puede modificar 410 (por ejemplo, disminuir) el parámetro del ciclo. Por ejemplo, el dispositivo electrónico 204 disminuye los parámetros del ciclo para cada imagen o cada conjunto de imágenes en la DPB. En otro ejemplo, el dispositivo electrónico 204 puede incrementar el parámetro del ciclo.
El dispositivo electrónico 204 puede decodificar 412 una imagen en base a la imagen de referencia codificada. Por ejemplo, una parte del flujo de bits 214 (distinta de la porción decodificada 404 para producir la imagen de referencia decodificada) puede ser codificada 412 en base a la imagen de referencia. Por ejemplo, la imagen de referencia decodificada (que ha sido rastreada en la DPB) puede ser proporcionada al módulo 260 de compensación del movimiento para generar una señal de inter predicción 268 de fotogramas en base a un mecanismo de inter predicción de fotogramas. La señal de inter predicción 268 de fotogramas puede ser utilizada, por lo tanto, para decodificar 412 la imagen. En algunas configuraciones o casos, se pueden utilizar una o varias imágenes de referencia decodificadas para decodificar 412 la imagen.
La figura 5 es un diagrama que ilustra un ejemplo de múltiples conjuntos de imágenes referenciados mediante parámetros del ciclo. Más específicamente, la figura 5 ilustra un ejemplo de rastreo de una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada utilizando un parámetro del ciclo. En particular, la figura 5 ilustra un parámetro de ciclo (por ejemplo, poc_cycle = -1) asociado con el conjunto de imágenes A 507a, un parámetro de ciclo (por ejemplo, poc_cycle = 0) asociado con el conjunto de imágenes B 507b y un parámetro de ciclo (por ejemplo, poc_cycle = 1) asociado con el conjunto de imágenes C 507c. No obstante, cabe señalar que el conjunto de imágenes A 507a puede ser o no el primer conjunto de imágenes en una secuencia de fotogramas. Por ejemplo, uno o varios conjuntos de imágenes pueden preceder al conjunto de imágenes A 507a. Además, cabe señalar que el conjunto de imágenes C507c puede ser o no el último conjunto de imágenes en una secuencia de fotogramas. Por ejemplo, uno o varios conjuntos de imágenes pueden seguir al conjunto de imágenes C 507c.
Cada conjunto de imágenes 507a-c puede incluir una o varias imágenes 501a-n, 503a-n, 505a-n. En este ejemplo, cada conjunto de imágenes 507a-c incluye imágenes MaxPOC 501, 503, 505. En particular, cada imagen 501, 503, 505 puede tener un recuento del orden de las imágenes (POC) correspondiente, indicado como [0,1, 2, ..., MaxPOC - 1] en la figura 5.
En un ejemplo, el poc_cycle del conjunto de imágenes que contiene la imagen decodificada actual puede establecerse en 0 para calcular el poc_cycle de otras imágenes. En algunos casos, las imágenes pueden ser decodificadas sin orden. Por ejemplo, un decodificador puede ver 503b, luego 505a y luego 503c. En este ejemplo, suponga que una imagen que está siendo decodificada actualmente es una imagen 503b en el conjunto de imágenes B 507b con POC = 1. El poc_cycle de otra imagen, tal como una imagen de referencia, puede ser calculado en base al poc_cycle de la imagen decodificada actual.
La figura 6 es un diagrama que ilustra otro ejemplo de múltiples conjuntos de imágenes. La figura 6 contiene conjuntos de imágenes 607a-c similares a los conjuntos de imágenes 507a-c descritos anteriormente en relación con la figura 5. Una o varias imágenes 601a-c, 603a-n, 605a-n pueden estar incluidas en cada conjunto de imágenes 607a-c. Un conjunto de imágenes 607a-c puede incluir MaxPOC imágenes. Además, cada imagen 601a-c, 603a-603n, 605a- 605n puede tener un recuento del orden de las imágenes (POC) correspondiente, que pertenece al conjunto [0,1,2, ... MaxPOC - 1], tal como se indica en la figura 6.
Un conjunto de imágenes 607 puede incluir una o varias imágenes. Por ejemplo, las imágenes 603a-n en el conjunto de imágenes B 607b pueden estar agrupadas como un conjunto de imágenes. Asimismo, las imágenes 605a-n en el conjunto de imágenes C 607c pueden estar agrupadas en un conjunto de imágenes. Un conjunto de imágenes puede incluir imágenes adyacentes entre sí cuando están codificadas o puede consistir en imágenes aleatorias agrupadas. En otro ejemplo, un conjunto de imágenes puede formar un poc_cycle que consiste en [0, 1, 2, ..., MaxPOC - 1] imágenes.
En algunas configuraciones, un conjunto de imágenes 607a puede incluir una imagen actualización de decodificación instantánea (IDR) 603a (por ejemplo, una unidad de acceso de IDR). La imagen de IDR 603a puede ser señalizada por el codificador en el flujo de bits. Adicional o alternativamente, la IDR puede ser identificada en base al tipo de imagen. En algunas configuraciones, la imagen de IDR 603a puede indicar al decodificador 202 que ninguna imagen posterior en el flujo de bits 214 requerirá referencia a imágenes anteriores en el flujo de bits 214. Cuando una imagen de IDR 603a es decodificada por un decodificador 202, el POC puede ser reiniciado a un valor predeterminado. Por ejemplo, después de decodificar el conjunto de imágenes A 607a, se recibe o señaliza una imagen de IDR 603a. En este momento, el POC se puede reiniciar a 0 y comienza un nuevo conjunto de imágenes, el conjunto de imágenes B 607b. En otras palabras, la imagen de IDR 603a puede especificar la imagen de referencia con respecto a una imagen designada. Una ventaja de enviar una imagen de IDR 603a puede ser introducir una nueva imagen de referencia. Esta ventaja se describirá con mayor detalle a continuación en relación con la figura 7.
La figura 7 es un diagrama de un ejemplo más específico de múltiples conjuntos de imágenes referenciados mediante parámetros del ciclo. La figura 7 ilustra los conjuntos de imágenes 707a-d y las imágenes 701, 703, 705 junto con su POC y poc_cycle asociados similares a los componentes 507a-c, 501, 503, 505, descritos anteriormente en relación con la Figura 5. Adicionalmente, la figura 7 muestra un conjunto de imágenes 707d de adición junto con las imágenes asociadas 731a-n.
La figura 7 también ilustra una imagen 703a designada. En una configuración, el parámetro del ciclo (por ejemplo, poc_cycle) para la imagen designada se puede establecer en 0. Por ejemplo, cuando la primera imagen de un conjunto de imágenes (por ejemplo, POC = 0) es una imagen designada (por ejemplo, la imagen de IDR), entonces el poc_cycle para la imagen designada puede ser igual a 0. El parámetro del ciclo (por ejemplo, poc_cycle) de conjuntos de imágenes posteriores se puede calcular con respecto al conjunto de imágenes con el parámetro del ciclo establecido en 0 (por ejemplo, poc_cycle = 0).
Un ejemplo de una imagen designada es una imagen 703a de IDR (por ejemplo, una unidad de acceso de IDR) similar a la imagen 603a de IDR descrita anteriormente en conexión con la figura 6. Por conveniencia, la imagen
703a designada se describirá como una imagen de IDR. No obstante, cabe señalar que la imagen 703a designada puede ser cualquier imagen indicada por el codificador con señalización en el flujo de bits o que pueda ser determinada implícitamente por el decodificador.
En algunas configuraciones, un codificador puede enviar una señal en el flujo de bits que indica la imagen 703a de IDR. El valor del contador de POC se puede determinar en base a esta señal. Por ejemplo, la señal puede indicar (al decodificador) que establezca el POC en 0 para la imagen de IDR (si el POC no es 0 para la imagen de IDR, por ejemplo). Por ejemplo, la imagen 703a de IDR puede hacer que un decodificador reinicie el contador de POC al valor inicial, 0 por ejemplo. El poc_cycle también se puede basar en la imagen 703a de IDR. De manera similar al POC, la señal puede indicar que poc_cycle debe ser restablecido al valor inicial. En otro ejemplo, la señal puede indicar que no es necesario que se produzcan modificaciones en el POC o que el poc_cycle debe ocurrir (si están en el valor inicial para la imagen 703a de IDR).
La imagen 703a de IDR puede ser una indicación para establecer o reiniciar el POC y poc_cycle (y/u otros parámetros del ciclo, por ejemplo), que pueden ser utilizados para rastrear una imagen de referencia con respecto a la imagen 703a designada. Por ejemplo, el decodificador 202 puede decodificar las imágenes 701a-c en el conjunto A 707a. El conjunto de imágenes A 707a puede tener asociado con él el parámetro del ciclo poc_cycle = m. Una imagen 703a de IDR puede ser señalizada desde el flujo de bits 214. La imagen 703a de IDR puede indicar un nuevo parámetro del ciclo (por ejemplo, poc_cycle = 0) y puede indicar un POC = 0. A continuación, los conjuntos de imágenes 707b-d pueden ser decodificados y su parámetro de ciclo asociado puede ser incrementado desde el valor inicial (por ejemplo, poc_cycle = 0, poc_cycle = 1, poc_cycle = 2, respectivamente). En este ejemplo, los conjuntos de imágenes 707b-d posteriores se calculan con respecto al nuevo parámetro del ciclo y al POC.
Tal como se describió anteriormente, una imagen 703a de IDR puede indicar al decodificador 202 que ninguna imagen posterior en el flujo de bits requerirá referencia a imágenes anteriores en el flujo de bits 214. No obstante, una imagen 703a de IDR puede indicar simplemente un reinicio del POC o de los parámetros del ciclo. Por ejemplo, el conjunto de imágenes A puede tener un parámetro de ciclo de poc_cycle = m, donde m = 5. Cuando se recibe la imagen 703a de IDR, m puede ser cambiado para que sea m = -1. Por lo tanto, la imagen 703a de IDR puede hacer que el recuento de ciclos de poc de la imagen de referencia sea relativo a una imagen designada. En otras palabras, la imagen 703a de IDR puede indicar el recuento de ciclos del POC para calcular la imagen de referencia en relación con una imagen designada en la secuencia, no solo la imagen actual.
La figura 8 es un diagrama de flujo que ilustra una configuración de un método 800 para rastrear una imagen de referencia con una referenciación suplementaria reducida en base a una imagen designada. Un dispositivo electrónico 204 (por ejemplo, el decodificador 202) puede recibir 802 un flujo de bits y decodificar 804 una porción del flujo de bits 214 para producir una imagen de referencia codificada. Esto puede ocurrir de manera similar a la descrita anteriormente en relación con la figura 3.
El dispositivo electrónico 204 puede rastrear la imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB) con referenciación suplementaria reducida en base a una imagen designada. Esto se puede conseguir de la siguiente manera. El dispositivo electrónico 204 (por ejemplo, el decodificador 202) puede determinar 806 una imagen designada. En una configuración, el dispositivo electrónico 204 puede realizar esta determinación 806 en base a la señalización explícita recibida en el flujo de bits 214. Por ejemplo, el flujo de bits 214 puede incluir un indicador que especifica la imagen designada. En un ejemplo, la imagen designada puede ser una imagen de actualización de decodificación instantánea (IDR) que se indica mediante señalización (por ejemplo, en un conjunto de parámetros de la imagen (PPS), en una descripción de la memoria intermedia, etc.) recibida en el flujo de bits 214.
El dispositivo electrónico 204 puede determinar 808 un recuento del orden de las imágenes (POC) en base a la imagen designada. Por ejemplo, el dispositivo electrónico 204, puede configurar o reiniciar el POC asociado con la imagen designada. Por ejemplo, el POC asociado con la imagen designada se puede establecer en 0. Por consiguiente, el dispositivo electrónico 204 puede reiniciar una secuencia de POC en base a la imagen designada. Por ejemplo, los POC para otras imágenes pueden ser numerados en base al POC asociado con la imagen designada 603a tal como se ilustra en la figura 6.
El dispositivo electrónico 204 puede determinar 810 un parámetro del ciclo (por ejemplo, poc_cycle) en base a la imagen designada. Por ejemplo, el parámetro del ciclo asociado con un conjunto de imágenes que incluye la imagen designada se puede establecer o reiniciar en 0. Los parámetros del ciclo para otros conjuntos de imágenes pueden ser determinados (por ejemplo, calculados) en base al conjunto de imágenes que incluye la imagen designada (por ejemplo, la imagen de IDR). Un ejemplo de esto se ilustra y describe en relación con la figura 7.
Cuando los POC y los parámetros del ciclo (por ejemplo, poc_cycles) se determinan en base a la imagen designada, el POC y el parámetro del ciclo de la imagen de referencia decodificada pueden ser actualizados según sea necesario. Esto puede permitir el rastreo de la imagen de referencia decodificada en la memoria intermedia de imágenes decodificadas (DPB). Por lo tanto, la imagen de referencia decodificada se puede rastrear en base a la imagen designada (por ejemplo, la imagen IDR).
El dispositivo electrónico 204 puede obtener 812 una imagen de referencia decodificada a partir de la DPB. Por ejemplo, el dispositivo electrónico 204 puede recuperar la imagen de referencia decodificada de la DPB de acuerdo con un POC y un parámetro del ciclo (por ejemplo, poc_cycle) que se basan en la imagen designada.
El dispositivo electrónico 204 puede decodificar 814 una imagen en base a la imagen de referencia decodificada. Esto puede ocurrir tal como se describió anteriormente de manera similar en relación con la figura 3. Cabe señalar que un conjunto de una o varias imágenes de referencia decodificadas puede ser rastreado de acuerdo con el método 800.
La figura 9 es un diagrama de flujo que ilustra otra configuración de un método 900 para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada. Tal como se describe de manera precisa, un dispositivo electrónico 204 puede recibir 902 un flujo de bits. El dispositivo electrónico 204 también puede decodificar 904 una o varias porciones del flujo de bits para producir un conjunto de imágenes de referencia. El conjunto de imágenes de referencia decodificadas puede incluir una o varias imágenes de referencia decodificadas.
El dispositivo electrónico 204 puede rastrear 906 el conjunto de imágenes de referencia decodificadas en una memoria intermedia de imágenes decodificadas (DPB) con referenciación suplementaria reducida en base a una imagen designada. Esto se puede hacer tal como se ha descrito anteriormente en relación con la figura 8. Dos o más imágenes de referencia decodificadas en el conjunto de imágenes de referencia decodificadas pueden hacer referencia a instancias de tiempo iguales o diferentes (por ejemplo, instancias de tiempo similares) tal como se ha descrito anteriormente.
El dispositivo electrónico 204 puede, opcionalmente, determinar 908 al mismo tiempo si la resolución de una imagen de referencia decodificada (para decodificar la imagen) en el conjunto de imágenes de referencia decodificadas es diferente de la resolución de la imagen actual. Si la resolución entre las dos imágenes es diferente, entonces el dispositivo electrónico 204 puede procesar 910 los coeficientes de transformación de la imagen de referencia decodificada en base a un parámetro de escala para decodificar la imagen. Una descripción más detallada con respecto al parámetro de escala y la conmutación de resolución se ha proporcionado anteriormente en conexión con la Tabla (2). Cabe señalar que el parámetro de escala se puede determinar recibiendo el parámetro de escala explícitamente o determinando implícitamente el parámetro de escala (utilizando una tabla de consulta, características de resolución de imagen, etc., por ejemplo).
Independientemente de si las resoluciones son iguales o diferentes, el dispositivo electrónico 204 puede decodificar 912 una imagen en base al conjunto de imágenes de referencia decodificadas (por ejemplo, una imagen de referencia decodificada en el conjunto de imágenes de referencia decodificadas).
La figura 10 es un diagrama de flujo que ilustra otra configuración del método 1000 para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada. Un dispositivo electrónico 204 puede recibir 1002 un flujo de bits y decodificar 1004 una parte del flujo de bits para producir una imagen de referencia decodificada. El dispositivo electrónico 204 puede rastrear 1006 la imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB) con referenciación suplementaria reducida en base a una imagen designada. Esto se puede hacer tal como se describió anteriormente.
El dispositivo electrónico 204 también puede obtener 1008 una descripción de la memoria intermedia. Algunos ejemplos de descripciones de la memoria intermedia se han descrito en detalle anteriormente. Por ejemplo, la Tabla (1) y la Tabla (2) mostradas anteriormente contienen ejemplos de diversas descripciones de la memoria intermedia. Las descripciones de la memoria intermedia pueden ser recibidas por un decodificador como parte del conjunto de imágenes de parámetros (PPS) de un codificador. Un decodificador también puede recibir un índice de las descripciones apropiadas de la memoria intermedia como parte de una cabecera del segmento. Una vez que se obtiene la descripción 1008 de la memoria intermedia, el dispositivo electrónico 204 puede determinar 1010 si se debe modificar la descripción de la memoria intermedia. Si la descripción de la memoria intermedia no requiere modificación, entonces el dispositivo electrónico 204 puede decodificar 1014 una imagen en base a la imagen de referencia decodificada. No obstante, si la descripción de la memoria intermedia requiere modificación, entonces el dispositivo electrónico 204 puede modificar 1012 una o varias entradas. Los ejemplos de modificación de 1012 pueden incluir borrar una entrada, añadir una entrada o reemplazar una entrada. Una descripción más detallada de borrar, añadir o reemplazar entradas se puede encontrar en lo anterior en relación con la descripción del Listado (4). Una vez que se completa una modificación 1012, el dispositivo electrónico 204 puede decodificar 1014 una imagen en base a la imagen de referencia decodificada.
La figura 11 es un diagrama que ilustra un ejemplo de señalización de un indicador de disposición circular de acuerdo con los sistemas y métodos dados a conocer en el presente documento. En este ejemplo, se ilustran varias imágenes 1101 a-n, 1103a. La primera imagen 1101a con POC = 0 es una imagen de referencia para el resto de las imágenes 1101 b-n, 1103a ilustradas en la figura 11. En particular, la figura 11 ilustra una asociación o correspondencia 1109 entre la imagen de referencia 1101a y las otras imágenes 1101 b-n, 1103a. Por ejemplo, la imagen 1101a con POC = 0 puede ser una imagen de referencia a largo plazo 1101a que será guardada en la DPB para decodificar otras imágenes 1101 b-n, 1103a.
Tal como se ilustra en la figura 11, los números de POC comprendidos entre 0 y MaxPOC - 1 y un 0 reutilizado pueden corresponder respectivamente a las imágenes 1101a-n, 1103a. Un primer conjunto de imágenes 1101a-n puede corresponder a los números de POC comprendidos entre 0 y MaxPOC - 1. Tal como se describió anteriormente, cada conjunto de imágenes (con números de POC comprendidos entre 0 y MaxPOC - 1) puede corresponder a un parámetro del ciclo (por ejemplo, poc_cycle).
En una configuración, se puede señalar 1133 un indicador de disposición circular en la primera transición entre un conjunto de imágenes y un conjunto de imágenes posterior subsiguiente. Por ejemplo, la primera vez que la numeración de POC cambia de un conjunto [0, ..., MaxPOC-1] al siguiente, el indicador de disposición circular puede ser señalado como 1133. En algunas configuraciones, el indicador de disposición circular señalado puede ser un mensaje protegido denominado “poc_wraparound”. Tal como se utiliza en el presente documento, “señalado” puede significar comunicado entre un codificador y un decodificador. En algunas configuraciones, “señalizado” también puede significar comunicado entre dispositivos electrónicos diferentes.
Un mensaje protegido puede ser un mensaje que debe ser recibido por el dispositivo electrónico 204 para mantener una funcionalidad deseada, tal como la detección de imágenes perdidas. Un mecanismo para transmitir un mensaje como mensaje protegido es asignar una prioridad más alta al mensaje protegido en comparación con otros mensajes de información. Un dispositivo inteligente (por ejemplo, un agente de control de congestión de la red) puede, por lo tanto, examinar esta asignación de prioridad y descartar los mensajes de menor prioridad para cumplir con las restricciones, tal como el ancho de banda de red disponible.
En algunas configuraciones, el indicador de disposición circular (por ejemplo, poc_wraparound) puede ser señalado en el conjunto de parámetros de la imagen (PPS), la cabecera del segmento, el conjunto de parámetros adaptativos (APS) o en cualquier ubicación adecuada en el flujo de bits. Adicional o alternativamente, el indicador de disposición circular puede ser señalado como fuera de banda (por ejemplo, separado del flujo de bits de la imagen). Cada vez que el decodificador 102 recibe el indicador de disposición circular (por ejemplo, mensajes poc_wraparound), el parámetro del ciclo (por ejemplo, poc_cycle) para cada imagen (por ejemplo, cada conjunto de imágenes) en la DPB se puede reducir (en 1, por ejemplo).
La figura 12 es un diagrama que ilustra un ejemplo de señalización de un indicador de disposición circular 1133 de acuerdo con los sistemas y métodos dados a conocer en el presente documento. En este ejemplo, se ilustran varias imágenes 1137a-n, 1139a-n, 1141a-n, 1143a-n, 1145a-n y conjuntos de imágenes 1107a-e. En particular, la figura 12 ilustra un estado de la memoria intermedia de referencia 1135 a lo largo del tiempo, junto con los fotogramas actuales correspondientes y la sincronización del indicador de disposición circular 1149.
En este ejemplo, supóngase que una imagen B01139a en el conjunto de imágenes B 1107b con poc_cycle = 0 es la imagen o el fotograma actual de la primera vez. Cuando se produce la transición A 1147a, se señaliza un indicador de disposición circular 1133a. Por segunda vez, una imagen C0 1141a en el conjunto de imágenes C 1107c es la imagen o fotograma actual. Supóngase que la imagen C0 1141a es una imagen de referencia para todas las imágenes posteriores (por ejemplo, el conjunto de imágenes D 1107d y el conjunto de imágenes E 1107e). Por ejemplo, la imagen C0 1141a puede ser una imagen de referencia a largo plazo que será guardada en la DPB para decodificar las imágenes posteriores 1141 b-n, 1143a-n, 1145a-n. Cuando se produce la transición B 1147b, se señala otro indicador de disposición circular 1133b. Tal como se ilustra, los parámetros de poc_cycle se actualizan tras la señalización 1133 de los indicadores de disposición circular. Este procedimiento puede ser utilizado para rastrear una imagen de referencia de acuerdo con los sistemas y métodos dados a conocer en el presente documento. Además, cabe señalar que el POC y poc_cycle pueden ser restablecidos o reiniciados en función de una imagen de referencia decodificada tal como se describe en el presente documento.
Tal como se ilustra en la figura 12, los números de POC comprendidos entre 0 y MaxPOC - 1 corresponden repetidamente a las imágenes 1137a-n, 1139a-n, 1141a-n, 1143a-n, 1145a-n. Tal como se describió anteriormente, cada conjunto de imágenes 1107a-e (con números de POC comprendidos entre 0 y MaxPOC - 1) puede corresponder a un parámetro del ciclo (por ejemplo, poc_cycle).
En una configuración, se puede señalar un indicador de disposición circular 1133a en la primera transición 1147a entre un conjunto de imágenes actual (por ejemplo, el conjunto de imágenes B 1107b) y un conjunto de imágenes posterior subsiguiente (por ejemplo, el conjunto de imágenes C 1107c). Por ejemplo, la primera vez que la numeración de POC cambia de un conjunto [0, . , MaxPOC - 1] al siguiente, el indicador de disposición circular puede ser señalado como 1133. En algunas configuraciones, el indicador de disposición circular puede ser señalado como 1133 cuando la numeración del POC pasa de un conjunto [0, ..., MaxPOC - 1] a otro. Alternativamente, el indicador de disposición circular se puede señalar 1133 la primera vez que la numeración poc_cycle cambia al siguiente conjunto de imágenes [0, MaxPOC - 1]. En algunas configuraciones, el indicador de disposición circular puede ser señalizado 1133 cuando la numeración del poc_cycle cambia al siguiente conjunto de imágenes [0, ..., MaxPOC -1]. En algunas configuraciones, el indicador de disposición circular señalado puede ser un mensaje protegido denominado “poc_wraparound”. Tal como se utiliza en el presente documento, “señalizado” puede significar comunicado entre un codificador y un decodificador. En algunas configuraciones, “señalizado” también puede significar comunicado entre dispositivos electrónicos diferentes.
Un mensaje protegido puede ser un mensaje que debe ser recibido por el dispositivo electrónico 204 para mantener una funcionalidad deseada, tal como la detección de imágenes perdidas. Un mecanismo para transmitir un mensaje como mensaje protegido es asignar una prioridad más alta al mensaje protegido en comparación con otros mensajes de información. Un dispositivo inteligente (por ejemplo, un agente de control de la congestión de la red) puede entonces examinar esta asignación de prioridad y descartar los mensajes de menor prioridad para cumplir con las restricciones tales como el ancho de banda disponible de la red.
En algunas configuraciones, el mensaje indicador de disposición circular (por ejemplo, poc_wraparound) puede ser señalado en el conjunto de parámetros de la imagen (PPS), cabecera de segmento, conjunto de parámetros de adaptación (APS) o cualquier ubicación adecuada en el flujo de bits. Adicional o alternativamente, el indicador de disposición circular puede ser señalizado fuera de banda (por ejemplo, separado del flujo de bits de la imagen). Cada vez que el decodificador 102 recibe el indicador de disposición circular (por ejemplo, el mensaje poc_wraparound), el parámetro del ciclo (por ejemplo, poc_cycle) para cada imagen (por ejemplo, cada conjunto de imágenes) en la DPB puede disminuir (en 1, por ejemplo).
El Listado (5) que se muestra a continuación ilustra un ejemplo de una modificación de sintaxis de flujo de bits requerida para señalar el indicador de disposición circular en el conjunto de parámetros de la imagen:
/* Pícture parameter set R B SP syntax
*/
pic_parameter_set_rbsp( ) {
seq_parameter_sei_id
pie paranieter_set id
entropy_coding_mode_flag
wrap_indicator_flag
bits_for_temporal_id_m_buffer_descriptions
positivo p ictu resjn buffcr dcscriptions flag
number of_bds
if( number_of^bds > 0 ) {
for(i = 0; i < number oí' bds; i - t-){
number_ of negative_pictures_pps[i]
for(j = 0; j < mimber_of_negative_pictures_pps[i]; j+ ) { negative_delta_poc_minus_one_pps[i][j]
íf( bits_for_temporal_id_¡n_buffer_descriptions > 0 ) temporal_id_negative__pps[i][j]
}
if(positive_picturcs_in_buffer descriptions_flag ) { number_of_positive_pictures_pps[í]
for(j = 0; j < numb er_of_p os i t i v e_p i c tures_pp s [ i ]; j+ ) { delta_poc_minus_one_pps[i][j]
if{ bits_for_temporal_id_in bu£Fer_descriptions > 0 )
tem poral_¡d_positivepps[i][j]
}
}
number_of_Iongterm_pictures_pps[¡]
for( j = 0; j < number oflongterm pietures pps[ij; j+ ) {
poc_pps[i][j]
poc_cycle_pps[i][j]
if( b ilsfo rtem p o ral id in buffer descriptions > ü ) teniporal_id_pocjjps[i]Ij|
}
} '
}
num temporal layer_switchingjpomt_flags
for( i = 0; i < num_temporal_layer_switching_point flags; i-H- ) temporal_layer_switching_poÍnt_flag[i]
num_ref_idx_10_default_acti.ve_minusl
n u m r c f i d x l l_dcfault_active_minus 1
pic inLt qp_minus26 I * relativo to 26 * !
COnstrained_intra_pred_flag
slice_granularity
sh aredjppsinfoenabledflag
if( shared_pps_info_enabled_flag)
if( adaptive_loop filterenabled flag )
alf_param()
if( cu_qp_delta enabled flag )
max cu qp delta depth
rbsp_trailing_bitsf )
Listado (5)
Un wrap_indicator_flag igual a 1 especifica que la numeración del POC ha pasado por primera vez de un conjunto de imágenes [0, MaxPOC - 1] al siguiente. Un wrap_indicator_flag igual a 0 especifica lo contrario. En algunas configuraciones, wrap_indicator_flag igual a 1 especifica que la numeración de POC cambia de un conjunto de imágenes [0, MaxPOC - 1] a otro. Un wrap_indicator_flag igual a 0 especifica lo contrario.
En algunas configuraciones, un wrap_indicator_flag igual a 1 especifica que poc_cycle ha pasado por primera vez al siguiente conjunto de imágenes [0, ..., MaxPOC - 1]. Un wrap_indicator_flag igual a 0 especifica lo contrario. En algunas configuraciones, un wrap_indicator_flag igual a 1 especifica que poc_cycle ha pasado de un conjunto de imágenes [0, ..., MaxPOC - 1] a otro. Un wrap_indicator_flag igual a 0 especifica lo contrario.
En algunas configuraciones, wrap_indicator_flag puede utilizar más de un bit para identificar información adicional, por ejemplo, una dirección de transición. En otra configuración, el wrap_indicator_flag se puede señalar como un entero sin signo que se codifica en longitud variable utilizando codificación por entropía. En otra configuración, wrap_indicator_flag es un entero con signo que se codifica en longitud variable utilizando codificación por entropía. Seq_parameter_set_id identifica el conjunto de parámetros de secuencia al que se refiere el conjunto de parámetros de la imagen. El valor de seq_parameter_set_id estará en el intervalo comprendido entre 0 y 31, ambos incluidos. Pic_parameter_set_id identifica el conjunto de parámetros de la imagen al que se hace referencia en la cabecera del segmento. El valor de pic_parameter_set_id estará en el intervalo comprendido entre 0 y 255, ambos incluidos.
Entropy_coding_mode_flag selecciona el método de decodificación por entropía que se aplicará para los elementos de sintaxis.
Num_temporal_layer_switching_point_flags especifica cuántos indicadores de punto de conmutación temporal están presentes. Si temporal_id_nesting_flag es igual a 1, num_temporal_layer_switching_point_flags será igual a 0. Temporallayer_switching_point_flag [i] especifica si el punto de acceso actual es un punto de conmutación temporal que permite la decodificación de capas de identificación temporal superiores después de esta unidad de acceso. Si temporal_id_nesting_flag es igual a 1, se deducirá que temporal_layer_switching_point_flag [i] es igual a 1. Si temporal_id_nesting_flag es igual a 0 y num_temporal_layer_switching_point_flags es menor que i, se deducirá que temporal_layer_switching_point_flag [i] es igual a 0. Cabe señalar que cuando se empieza a decodificar una capa temporal i superior, la disponibilidad de las imágenes de referencia requeridas puede ser garantizada inmediatamente después de una IDR, o una imagen con el valor j de temporal_id menor que i y temporal_switching_flag [j] igual a 1.
Num_ref_idx_I0_default_active_minus1 especifica cómo se deduce num_ref idx_I0_active_minus1 se deduce para los segmentos P y B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_I0_default_active_minus1 estará en el intervalo comprendido entre 0 y 31, ambos incluidos.
Num_ref_idx_l1_default_active_minus1 especifica cómo se deduce num_ref_idx_l1_active_minus1 para los B segmentos B con sum_ref_idx_active_override_flag igual a 0. El valor de num_ref idx_l1_default_active_minus1 debe estar en el intervalo comprendido entre 0 y 31, ambos incluidos.
Pic_init_qp_minus26 especifica el valor inicial minus 26 de SliceQPY para cada segmento. El valor inicial se modifica en la capa del segmento cuando se decodifica un valor distinto de cero de slice_qp_delta, y se modifica más cuando se decodifica un valor distinto de cero de cu_qp_delta en la capa de la unidad de codificación. El valor de pic_init_qp_minus26 estará en el intervalo comprendido entre -(26 QpBdOffsetY) y 25, ambos incluidos.
Un constrained_intra_pred_flag igual a 0 especifica que la intra predicción permite la utilización de datos residuales y muestras decodificadas de macrobloques vecinos codificados utilizando modos de inter predicción de macrobloques para la predicción de macrobloques codificados utilizando modos de intra predicción de macrobloques. Un constrained_intra_pred_flag igual a 1 especifica una intra predicción restringida, en cuyo caso la predicción de macrobloques codificados utilizando modos de intra predicción de macrobloques solo utiliza datos residuales y muestras decodificadas de l tipos de macrobloques.
Slice_granularity indica la granularidad de los segmentos dentro de una imagen. El valor de slice_granularity no debe ser mayor que Min (Log2MaxCUSize - 4, log2_diff_max_min_coding_block_size). La variable SliceGranularity se establece en el valor de (slice_granularity << 1).
Shared_pps_info_enabled_flag especifica que la información compartida en el conjunto de parámetros de la imagen, RBSP, se utilizará para los segmentos referidos. Si shared_pps_info_enabled_flag es igual a 1, se aplicará alf_param () en el conjunto de parámetros de la imagen, RBSP, para los segmentos referidos. De lo contrario, se aplicará alf_param () en la o las cabeceras de segmentos.
Max_cu_qp_delta_depth especifica la profundidad máxima permitida que se utiliza para especificar valores de QPY para una unidad de codificación. El valor de max_cu_qp_delta_depth estará en el intervalo comprendido entre 0 y 15, ambos incluidos.
La variable log2MinCUDQPSize especifica el tamaño mínimo de la unidad de codificación que puede modificar adicionalmente el valor de QPY como sigue: log2MinCUDQPSize = Log2MaxCUSize - max_cu_qp_delta_depth. Alf_param () es una función que determina la sintaxis del parámetro de filtro de bucle adaptativo. Rbsp_trailing_bits () es una función que corresponde a un bit de parada (igual a 1) seguido de cero bits hasta que se consigue la alineación del byte.
El listado (6) que se muestra a continuación ilustra un ejemplo de una modificación de sintaxis de flujo de bits necesaria para señalar el indicador de disposición circular en la cabecera del segmento:
/* Slice header RBSP syntax
*/
slice ^header _rbsp() {
lightweight_slice_flag
if( !lightweight_slice_flag) {
slice_type
pic_parameter_set_id
if( IdrPicFlag)
idr_pie_id
pic_order_cnt
wrap indicator flag
if(!IdrPicFlag )
buffer_description()
if(slice type = = P 11 slice_type =■ - B ) { num_ref_idx_active_override_flag
if{ num ref idx_active_override_flag ) { num ref idx_ 10 active minus 1
if( slice_type = = B )
num_ref_idx_l l_active_minus 1
}
}
ref_pic_list_modificatión( )
ref_pic_list combinatioti()
if( IdrPicFlag )
no_output_of_prio r_pi cs_flag
}
if( entropy_coding_mode_flag && slice_type != I) cabac_ init ide
first_slíce_ín_pic_flag
if( first_slice_in_pic_flag == O )
slice_address
if( ¡lightweight slice flag) {
slice_qp_delta
if( sample_adaptive_offset_enabled_flag)
sao_param()
if( deblocking_filter_control_present_flag) {
disable_deblocking_filter_idc
if( disablc deblocking filtcr idc != 1 ) {
slice alpha c()_offset__div2
si ic e_beta_offs et_di v2
}
}
if( slice_type = = B )
collocated_from_10_flag
if( adaptive_loop_filter_enabled_ílag) {
if( Ishared pps info_enabled_flag)
alíj>aram()
aIf_cii_c°ntrol_param ()
}
}
}
Listado (6)
Un lightweight_slice_flag igual a 1 especifica que el valor de los elementos de sintaxis de la cabecera del segmento que no están presentes se deducirá que es igual al valor de los elementos de sintaxis de la cabecera del segmento en un segmento anterior. Un lightweight_slice_flag igual a 0 especifica que el valor de los valores del elemento de sintaxis de la cabecera del segmento se transmite en la cabecera del segmento actual. Slice_type especifica el tipo de codificación del segmento P, B o I.
Idr_pic_id identifica una imagen de actualización de decodificación instantánea (IDR). Los valores de idr_pic_id en todos los segmentos de una imagen IDR permanecerán sin cambios. Cuando dos unidades de acceso consecutivas en orden de decodificación son ambas unidades de acceso de IDR, el valor de idr_pic_id en los segmentos de la primera unidad de acceso de IDR será diferente del idr_pic_id en la segunda unidad de acceso de IDR. El valor de idr_pic_id deberá estar en el intervalo comprendido entre 0 y 65.535, ambos incluidos.
Pic_order_cnt especifica el recuento del orden de imágenes de una imagen codificada y se utiliza como identificador en un proceso de aplicación de descripción de la memoria intermedia y en procesos de creación de lista de imágenes de referencia. El elemento de sintaxis pic_order_cnt estará representado por log2_max_pic_order_cnt_minus4 4 bits. El valor de pic_order_cnt estará en el intervalo comprendido entre 0 y MaxPOC - 1, ambos incluidos.
Num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_l0_active_minus1 está presente para los segmentos P y B y que el elemento de sintaxis num_ref_idx_l1_active_minus1 está presente para los segmentos B. Num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_l0_active_minus1 y num_ref_idx_l1_active_minus1 no están presentes.
Cuando el segmento actual es un segmento P o B y field_pic_flag es igual a 0 y el valor de num_ref_idx_l0_default_active_minus1 en el conjunto de parámetros de la imagen es mayor de 15, num_ref idx_active_override_flag será igual a 1. Cuando el segmento actual es un segmento B y field_pic_flag es igual a 0 y
el valor de num_ref_idx_l1_default_active_m¡nus1 en el conjunto de parámetros de la imagen es mayor de 15, num_ref_idx_act¡ve_overr¡de_flag será igual a 1. Num_ref_idx_l0_active_minus1 especifica el índice de referencia máximo para la lista de imágenes de referencia 0 que se utilizará para decodificar el segmento.
Cuando el segmento actual es un segmento P o B y num_ref_idx_l0_active_minus1 no está presente, se deducirá que num_ref_idx_l0_active_minus1 es igual a num_ref_idx_l0_default_active_minus1. El intervalo comprendido entre num_ref idx_l0_active_minus1 se especifica como sigue. Si field pic_flag es igual a 0, num_ref idx_l0_active_minus1 estará en el intervalo comprendido entre 0 y 15, ambos incluidos. Cuando MbaffFrameFlag es igual a 1, num_ref_idx_l0_active_minus1 es el valor del índice máximo para la decodificación de macrobloques de fotogramas y 2 * num_ref_idx_l0_active_minus1 1 es el valor del índice máximo para la decodificación de macrobloques de campo. De lo contrario, (cuando field_pic_flag es igual a 1), num_ref_idx_l0_active_minus1 estará en el intervalo comprendido entre 0 y 31, ambos incluidos.
Num_refjdx_l1_active_mmus1 especifica el índice de referencia máximo para la lista de imágenes de referencia 1 que se utilizará para decodificar el segmento. Cuando el segmento actual es un segmento B y num_refjdx_l1_active_minus1 no está presente, se deducirá que num_refjdx_l1_active_mmus1 es igual a num_refjdx_l1_default_active_mmus1. El intervalo comprendido entre num_refjdx_l1_active_minus1 está restringido como se especifica en la semántica para num_ref_idx_l0_active_minus1 con l0 y la lista 0 reemplazada por l1 y la lista 1, respectivamente.
No_output_of_prior_pics_flag especifica cómo se tratan las imágenes decodificadas previamente en la memoria intermedia de imágenes decodificadas después de la decodificación de una imagen de IDR. Cuando la imagen de IDR es la primera imagen de IDR en el flujo de bits, el valor de no_output_of_prior_pics_flag no tiene ningún efecto en el proceso de decodificación. Cuando la imagen de IDR no es la primera imagen de IDR en el flujo de bits y el valor de PicWidthlnMbs, FrameHeightlnMbs o max_dec_frame_buffering derivado del conjunto de parámetros de la secuencia activo es diferente del valor de PicWidthlnMbs, FrameHeightInMbs, o max_dec_frame_buffering derivado de la conjunto de parámetros de la secuencia activo para la imagen anterior, no_output_of_prior_pics_flag igual a 1 puede (pero no debe) ser deducido por el decodificador, independientemente del valor real de no_output_of prior_pics_flag.
Cabac_init_idc especifica el índice para determinar la tabla de inicialización utilizada en el proceso de inicialización para variables de contexto. El valor de cabac_init_idc estará en el intervalo comprendido entre 0 y 2, ambos incluidos.
First_slice_in_pic_flag indica si el segmento es el primer segmento de la imagen. Si first_slice_in_pic_flag es igual a 1, las variables SliceAddress y LCUAddress se establecen en 0 y la decodificación comienza con la primera unidad de codificación más grande (LCU) de la imagen.
Slice_address especifica la dirección en la resolución de granularidad de segmento en la que comienza el segmento y estará representada por los bits de (Ceil (Log2 (NumLCUslnPicture)) SliceGranularity) en el flujo de bits, donde NumLCUslnPicture es el número de LCU en una imagen. La variable LCUAddress se establece en (slice_address >> SliceGranularity) y representa la parte de la LCU de la dirección de segmento en el orden de escaneo ráster. La variable GranularityAddress se establece en (slice_address -(LCUAddress << SliceGranularity)) y representa la parte de sub-LCU de la dirección de segmento expresada en orden de escaneo z. La variable SliceAddress se establece entonces en (LCUAddress << (Iog2_d¡ff_max_m¡n_cod¡ng_block_s¡ze << 1)) (GranularityAddress << ((log2_d¡ff_max_m¡n_cod¡ng_block_s¡ze << 1) - SliceGranularity) y la decodificación del segmento comienza con la unidad de codificación más grande posible en la coordenada de inicio del segmento.
Slice_qp_delta especifica el valor inicial del parámetro de cuantificación de luma QPY para ser utilizado para todos los macrobloques en el segmento hasta que sea modificado por el valor de cu_qp_delta en la capa de la unidad de codificación. El parámetro de cuantificación QPY inicial para el segmento se calcula como: SliceQPY = 26 p¡c_¡n¡t_qp_m¡nus26 slice_qp_delta. El valor de slice_qp_delta estará limitado de tal manera que SliceQPY está en el intervalo comprendido entre -QpBdOffsetY y 51, ambos incluidos. “QpBdOffsetY = 6 * bit_depth_luma_minus8” especifica el valor de la compensación del intervalo de parámetros de cuantificación de luma. “Bit_depth_luma_minus8 8” especifica la profundidad de bits de las muestras de la matriz luma. P¡c_¡n¡t_qp_m¡nus26 especifica el valor inicial menos 26 de SliceQPY para cada segmento.
Un collocated_from_l0_flag igual a 1 especifica que la imagen que contiene la partición situada en el mismo sitio se derivará de la lista 0; de lo contrario, la imagen se derivará de la lista 1. Re^picjis^modification () es una función que identifica la sintaxis de la modificación de la lista de imágenes de referencia. Re^picjis^combination () es una función que identifica la sintaxis de la combinación de lista de imágenes de referencia. Alf_cu_control_param () es una función que identifica la sintaxis del parámetro de control de la unidad de codificación del filtro de bucle adaptativo. Sao_param () es una función que identifica la sintaxis del parámetro de compensación adaptativo de la muestra.
Un d¡sable_deblock¡ng_f¡lter_¡dc igual a 1 deshabilita la aplicación del filtro de desbloqueo para ciertos bordes de bloque. Un d¡sable_deblock¡ng_f¡lter_¡dc igual a 0 habilita la aplicación del filtro de desbloqueo para ciertos bordes
de bloque. El proceso de desbloqueo se controla mediante los valores de los elementos de sintaxis slice_alpha_c0_offset_div2 y slice_beta_offset_div2.
El Listado (7) que se muestra a continuación ilustra un ejemplo de una modificación de sintaxis de flujo de bits necesaria para señalar el indicador de disposición circular en el conjunto de parámetros de adaptación (APS):
/*
Adaptador! parameter set RBSP syntax
*/
aps_rbsp() {
aps_id
w rap in d i ca to rfla g
aps_sample_adaptive_offset_flag
aps_adaptive_l oop_fi lter_flag
if( aps_sample__adaptive_offset flag | aps adaptive_loop_ filler_flag ) { aps _cabac_use_ flag
if( a p sca b a cu se fla g ) { .
aps_cabac init_idc
aps_cabac_init_qp_mitius26
}
}
if( aps_adaptive_loop_fjlter_flag) {
alf_data_byte count /* to enable skípping past data without parsing it */
/* byte_align() tbis byte aügn. happens between the non-CABAC and CABAC parts o f the alf_j>aram(). Once there is an all CABAC alf__param(), enable this byte align()
*/
alf_param()
bytealignO
}
if( aps_sample_adaptive_offset_ flag j {
sao_data_byte_ count /* to enable skipping past data without parsing it
*/
byte_align ()
sao_param()
/* byte alignQ this final byte align unnecessary as being taken care of by rbsp trailing_bits() */
rbsp trailing b its()
}
}
Listado (7)
Aps_id identifica el conjunto de parámetros de adaptación al que se hace referencia en la cabecera del segmento. Un aps_sample_adaptive_offset_flag igual a 1 especifica que el SAO está activado para los segmentos referidos al APS actual. Cuando es igual a 0, especifica que el SAO está desactivado para los segmentos referidos al APS actual. Si no hay ningún APS activo, se deduce que el valor de aps_sample_adaptive_offset_flag es 0.
Un aps_adaptive_loop_filter_flag igual a 1 especifica que el ALF está activado para los segmentos referidos al APS actual. Cuando es igual a 0, especifica que el ALF está desactivado para los segmentos referidos al APS actual. Si no hay ningún APS activo, se deduce que el valor de aps_adaptive_loop_filter_flag es 0.
Un aps_cabac_use_flag igual a 1 especifica que el proceso de decodificación CABAC se utilizará para sao_param () cuando esté presente y para alf_param () cuando esté presente. Cuando es igual a 0, especifica que el proceso de decodificación CAVLC se utilizará para sao_param () cuando esté presente y se utilizará para alf_param () cuando esté presente.
Aps_cabac_init_idc especifica el índice para determinar la tabla de inicialización utilizada en el proceso de inicialización para las variables de contexto de SAO y ALF. El valor de cabac_init_idc debe estar en el intervalo comprendido entre 0 y 2, ambos incluidos. aps_cabac_init_qp_minus26 especifica un parámetro de cuantificación menos 26, donde el parámetro de cuantificación se utiliza en el proceso de inicialización para las variables de contexto de SAO y ALF. Alf_data_byte_count especifica un número de bytes. Sao_data_byte_point especifica un número de bytes. Byte_align () inserta de 0 a 7 bits hasta que se alcanza la alineación.
En algunas configuraciones, el conjunto de parámetros de la imagen puede incluir múltiples descripciones de la memoria intermedia que corresponden únicamente a imágenes a largo plazo. El listado (8) que se muestra a continuación ilustra un ejemplo de una modificación de sintaxis de flujo de bits para señalizar múltiples descripciones de la memoria intermedia que corresponden a imágenes de largo plazo solamente.
/* Picture parameter set RBSP syntax
*/
pie paramctcr set_rbsp() {
bits_for_temporaMd_in_buñer_descriptions
positive pictures in buffer descriptions flag
num berofbds
if( number_of_bds > 0 ) {
for(i = 0; i < number_of_bds; i++) {
longtermjiictures onlv flag ppsfi]
if (longterm_pictures_only_flag_pps[il==0) {
numb e r o f n e gat i v e_pi c tures_pp s [ i]
for(j = 0; j < number_of^negative _pictures_pps[i]; j+a ) {
negative delta poc_minus_one ppsji] [j ]
if( bits for temporal id in buffer descriptions > 0 I
temporal_id negative pps[i][j]
}
if( positive_picturcs in buffer descriptions flag ) {
number_of_positive pictures pps[i]
for( j = 0; j < nuniber of_positive_picturesj>ps[i]; i+ ) { delta_poc_minus_one pps[i][j]
if( b i t sfor t emporal id in buffer descriptions > 0 ) temporal_id_positive_pps[i][j]
}
}
}
nimiber of_longterm_pieturesjpps[il
for( j = 0; j < number of longterm jicturcs ppsfi]; j++ ) {
pQC_pps[¡] [j]
poc_cycle_pps[i|[j]
poc cycle stcps flag
if (p o ccy clestcp sflag ) {
p o ccy d e ste p s
}
if( bits for temporal id in buffer dcscriptioiis > 0 )
temporal_id_poc_pps [i] [j ]
}
}
}
}
Listado (8)
Un longterm_pictures_only_flag_pps [i] igual a 1 indica que la descripción de la memoria intermedia de orden i contiene solo referencias de imagen de larga duración. Un longterm_pictures_only_flag_pps [i] igual a 0 identifica que la descripción de la memoria intermedia de orden i contiene tanto deltaPOC como referencias de la imagen de largo plazo.
En algunas configuraciones, una descripción de la memoria intermedia se puede referir a una imagen que no está disponible como referencia. Una imagen que no está disponible como referencia se refiere a una imagen que no ha sido decodificada antes de la imagen actual. Además, una imagen que no está disponible como referencia se refiere a una imagen que ha sido decodificada antes de la imagen actual pero que se identifica como que ya no está disponible como referencia. Un ejemplo de un procedimiento para identificar que una imagen ya no está disponible para referencia es mediante la utilización de un fotograma de IDR. Un fotograma de IDR indica que el fotograma de IDR y todas las imágenes recibidas posteriormente no se refieren a imágenes recibidas antes de recibir el fotograma de IDR. Por lo tanto, todos los fotogramas recibidos antes del fotograma de IDR ya no están disponibles como referencia para el fotograma de IDR y los fotogramas recibidos posteriormente.
En configuraciones en las que una descripción de la memoria intermedia se refiere a una imagen que no está disponible como referencia, un decodificador no permite la utilización de la imagen que no está disponible como referencia en la predicción de la información utilizada para decodificar el fotograma actual. En una configuración, esto se hace no incluyendo el fotograma en el proceso de creación de un conjunto de fotogramas de referencia. Por lo tanto, el resultado del proceso de creación de un conjunto de fotogramas de referencia puede ser el mismo si la descripción de la memoria intermedia se refiere a una imagen que no está disponible para referencia, si la descripción de la memoria intermedia no se refiere a una imagen que no está disponible para referencia y si otras imágenes a las que se refieren ambas descripciones de la memoria intermedia son iguales. En otra configuración, la imagen que no está disponible como referencia se incluye en el proceso de creación de un conjunto de fotogramas de referencia. Por lo tanto, el resultado del proceso de creación de un conjunto de fotogramas de referencia no es el mismo si la descripción de la memoria intermedia se refiere a una imagen que no está disponible para referencia y si la descripción de la memoria intermedia no se refiere a una imagen que no está disponible para referencia. En esta configuración, un decodificador no permite seleccionar la imagen que no está disponible para referencia en la predicción de la información utilizada para decodificar el fotograma actual.
En algunas configuraciones, la lista de imágenes de referencia de orden i definida en el PPS: POCBD_pps [i], temporalIDBD_pps [i], POC_CYCLE_BD_pps [i] y las listas POCBD, temporalIDBD y POC_CYCLE_BD están divididas en base a si la imagen de referencia es una imagen pasada o una imagen futura, en orden de visualización, con respecto a la imagen actual (en proceso de decodificación). Cabe señalar que puede adoptar valores comprendidos entre 0 y number_of_bds - 1.
En algunas configuraciones, el identificador temporal puede ser reemplazado con un indicador que señala o indica si la imagen de referencia correspondiente es utilizada por la imagen actual (que está siendo decodificada). Como resultado, la lista temporalID temporalIDBBD y la lista temporalID de orden i en temporalIDBD_pps [i] del PPS son reemplazadas por las listas usedByCurPicBD y usedByCurPicBD_pps [i], respectivamente, que contienen el
indicador anterior. En algunas configuraciones, los valores del indicador se pueden utilizar para dividir las listas de imágenes de referencia de orden i definidas en PPS: POCBD_pps [i], usedByCurPicBD_pps [i], POC_CYCLE_BD_pps [i] y las listas POCBD, usedByCurPicBD, POC_CYCLE_pps [i] en una o más listas. En una configuración, se asignan entradas con un valor cero para el indicador a una lista y aquellas con valores distintos de cero (por ejemplo, 1) se asignan a otra lista. Cabe señalar que puede adoptar valores comprendidos entre 0 y number_of_bds - 1.
El listado (9) ilustra otro ejemplo de modificación de sintaxis para el PPS de AHG21. En particular, el Listado (9) ilustra otro ejemplo de una sintaxis de descripción de la memoria intermedia utilizada en cabeceras de segmento tal como se describe en el borrador de trabajo de AHG21. No obstante, las modificaciones a la sintaxis proporcionada en el borrador de trabajo de AHG21 de acuerdo con los sistemas y métodos descritos en el presente documento se indican en negrita en el Listado (9).
/* BuíFer description
*/
buffer_descr¡ption() {
bd_reference_flag
if(bd_reference_flag = = 1) {
bd_idx
bd_poc cycle update flag
if (bd poc cyclc update flag == 1)
for( j = 0; j < imiuber_of_longterm_pictures_pps[bd_idx]; j-H-) {
poc_pps_override[j]
p o c c y c le jp s o v e rr id e f j]
if( bits fortemporal_id_in_buffer_descríptions > O ) temporal id_pps_override[j |
}
bd_poc_cycle_replace_count
if (bd poc cycle replace count>0)
for( j = 0; j < bd_poc cycle replace count; j++ ) { bd_pps rcp) a c c i d
x
[j ]
poc_pps_replace[j]
poc cyclc_pps replace[jl
if( bits_for_temporal_id _in_buffcr_descriptions > 0 ) temporal_id_pps_replace[j]
}
b d jio c cycle deletc count
if (bd_poc_cycle delete count >0 )
for( j = 0 ; j < bd_poc_cycle delete count; j++ ) { bdjppsdelete idx [j]
}
bd_poc_cycle_append_count
if (b d j o c cycle append count >0 )
for( j = 0; j < bd_poc_cycle_append_count; j++ ) { poc_p psappen d [j ]
poc cyclejps_append|j]
if( b i t s f o r t e m p o r a l i d i n b u f f e r d e s c r i p t i o n s > 0 ) tem p oral_i d_pps_a pp en d[j ]
}
} clse {
number_ofjnegative_pictures
for( i = 0; i < number of_negative_p¡ctures; i++ ) {
}
if( positive_pictuies in_buñer_descriptions_flag){
}
number of longterm _pictures
for( j = 0 ; j < num ber_of_longterm _pictures; j++ ) {
pocfjl
poc_cycIe[j]
if{ hits for tem poral id in buffer descnptions > 0 )
tem poral id_poc[j|
}
if( number_of_negative_pictures number_of_positive_pictures <
max_m im _ret_fram es) {
co mbinc_wi th_refere nee_fl ag
if( combine_with_reference_ílag)
bd_combination_idx
}
}
}
Listado (9)
El Listado (9) contiene elementos similares a los del Listado (4). El Listado (9) también contiene modificaciones de sintaxis en la cabecera del segmento, para permitir la sustitución selectiva de las imágenes de referencia.
Bd_poc_cycle_replace_count especifica el número de entradas a ser reemplazadas selectivamente en las listas POCBD_pps [bd_idx], POC CYCLE_BD_pps [bd_idx] y temporalIDBD_pps [bd_idx]. En algunas configuraciones, bd_poc_cycle_replace_count puede ser mayor o igual que 0. Bd_pps_replace_idx [j] identifica el índice de la entrada que se reemplazará en las listas: POCBD_pps [bd_idx], POC_CYCLE_BD_pps [bd_idx] y D_pps I DB.
POC_CYCLE_Bg_pps [bd_idx] [bd_pps_replace_idx [j]] de la descripción de la memoria intermedia referenciada debe ser reemplazada por la imagen actual. En algunas configuraciones, los fotogramas futuros también pueden anular la información de poc_cycle. Poc_cycle_pps_replace [j] especifica los valores que se utilizarán para reemplazar el valor dentro de POC_CYCLE_BD pps [bd_idx] [bd_pps_replace_idx [j]] solo para la imagen actual. Poc_pps_replace [j] especifica el valor que se utilizará para reemplazar el valor dentro de POCBD_pps [bd_idx] [bd_pps_replace_idx [j]] solo para la imagen actual. Temporal_id_pps_replace [j] especifica el valor que se utilizará para reemplazar el valor dentro de TemporalIDBD_pps [bd_idx] [bd_pps_replace_idx [j]] solo para la imagen actual. En algunas configuraciones, si las listas de imágenes de referencia de orden i definidas en PPS: POCBD_pps [i], usedByCurPicBD_pps [i], POC_CYCLE_BD_pps [i] están particionadas, entonces las operaciones selectivas de reemplazo, anulación, eliminación y adición se realizan primero en una lista derivada generada utilizando la lista particionada. Una vez completadas todas o un subconjunto de las operaciones, las entradas de la lista derivada se pueden volver a dividir (por ejemplo, restaurar) a las listas originales a partir de las cuales se obtuvo la lista derivada. Cabe señalar que puede adoptar valores comprendidos entre 0 y number_of_bds - 1.
En algunas configuraciones, las operaciones selectivas de sustitución, anulación, eliminación y supresión se señalan por separado para cada conjunto de lista que pertenece a una descripción de la memoria intermedia en el conjunto de PPS (por ejemplo, (lista deltaPOC negativa, lista deltaPOC usedByCurPicBD negativa), conjunto (lista deltaPOC positiva, lista deltaPOC positiva, lista usedByCurPicBD) y conjunto (lista poc_list, lista poc_cycle, poc y lista
poc_cycle usedByCurPicBD)). En otra configuración, una lista de parámetros de escala puede estar presente en cada conjunto de listas.
En algunas configuraciones, si un flujo de bits contiene una primera imagen con una primera resolución y una segunda imagen con una segunda resolución, si la primera resolución y la segunda resolución no son iguales, y si la segunda imagen no es una imagen de IDR o un conjunto de parámetros de secuencia (SPS) no se recibe después de la primera imagen y antes de la segunda imagen, entonces la memoria intermedia de imágenes decodificadas puede contener imágenes con diferentes resoluciones. Por lo tanto, un codificador puede indicar al decodificador que las imágenes de referencia en la memoria intermedia de imágenes decodificadas (DPB) están modificadas de tal manera que la imagen de referencia comprende una de las siguientes opciones:
(a) la primera resolución,
(b) la segunda resolución, o
(c) tanto la primera como la segunda resolución.
A continuación, se proporcionan algunos ejemplos de casos de utilización. La opción (a) es útil si una imagen de referencia solo se va a utilizar para la predicción del movimiento a la resolución más baja. Un ejemplo de la opción (a) se proporciona como primer ejemplo 1653a ilustrado en la figura 17.
La opción (b) es útil cuando el flujo de bits contiene una tercera imagen que es posterior a la segunda imagen, donde la tercera imagen está en la primera resolución y donde la imagen a largo plazo almacenada en la DPB puede ser utilizada para predicción del movimiento. Un ejemplo de la opción (b) se proporciona como un segundo ejemplo 1653b ilustrado en la figura 17.
La opción (c) es útil cuando se utiliza una versión de menor resolución de la imagen de referencia en la predicción del movimiento para imágenes de menor resolución. Además, cuando se utiliza una versión de resolución más alta de la imagen de referencia para la predicción del movimiento, cuando se decodifica una tercera imagen que es posterior a la segunda imagen, donde la tercera imagen está en la primera resolución. Un ejemplo de la opción (c) se proporciona como un tercer ejemplo 1653c en la figura 17.
El cambio de resolución se puede señalar utilizando la modificación de sintaxis tal como se muestra a continuación en el Listado (10). Las modificaciones de acuerdo con los sistemas y métodos dados a conocer en el presente documento se indican en negrita en el texto que se muestra a continuación.
ref pie set( idx ) {
num_negative_pics
num_positive_pics
numb er_of_ 1 on gterm_p ictures
for( i = 0; i < num_negative_pics; i ■ i - ) {
delta poc_sO_minusl[i]
used_by cutt pic_sO_fiag[i]
if ({reíPicSOWidth[i] != curPicWidthl | refPicSOHeight[i] != curPicHeight) && adaptive res coding flag)
refjic_s0_resolution_idx[¡]
} -
for( i = 0; i < num_positive_pics; i+ ) {
delta pac si minusl[i]
used_by_curr_pic_sl_flag[i]
if ((reíPicSlWidth[i] != curPicWidth | refPicSlHeight[¡] != curPicHeight) && adaptive res coding flag)
ref_pic_sl_resolution_idx[i]
}
}
for( i = 0; i < number_of_longteriii_pictures; i-H-) {
poc [i]
poc_cycle[i]
used_by_curr_pic_longterm_flaglil
if ((refPicSlWidth[i] != curPicWidth || refPicSlHeight[i] != curPicHeight) && adaptive res coding flag)
r e f j i c longterm_resolution_idx[i]
Listado (10)
Si un adaptive_res_coding_flag es igual a 0, entonces la secuencia no experimenta cambio de resolución. Si el adaptive_res_coding_flag es igual a 1, entonces la secuencia experimenta un cambio de resolución.
RefPicS0Height [i] y refPicS0Width [i] representan la altura y el ancho originales de la imagen de referencia de orden i correspondiente a un deltaPOC negativo. RefPicS1Height [i] y refPicS1Width [i] representan la altura y el ancho originales de la imagen de referencia de orden i correspondiente a un deltaPOC positivo. CurPicHeight y curPicWidth representan la altura y el ancho de la imagen actual que está siendo decodificada.
Num_negative_pics especifica el número de los siguientes elementos de sintaxis delta_poc_s0_minus1 [i] y used_by_curr_pic_s0_flag [i]. Num_positive_pics especifica el número de los siguientes elementos de sintaxis delta_poc_s1_minus1 [i] y used_by_curr_pic_s1_flag1 [i].
Delta_poc_s0_minus1 [i] más 1 especifica una diferencia absoluta entre dos valores de recuento del orden de las imágenes. El valor de delta_poc_s0_minus1 [i] estará en el intervalo comprendido entre 0 y 215 - 1, ambos incluidos.
Delta_poc_s0_minus1 [i] corresponde a valores negativos de deltaPOC.
Un used_by_curr_pic_s0_flag [i] igual a 0 especifica que la imagen de referencia de orden i que tiene un recuento del orden de las imágenes menor que la imagen actual no se utiliza como referencia por la imagen actual.
Delta_poc_s1_minus1 [i] más 1 especifica una diferencia absoluta entre dos valores de recuento del orden de las imágenes. El valor de delta_poc_s1_minus1 [i] debe estar en el intervalo comprendido entre 0 y 215 - 1, ambos incluidos. Delta_poc_s1_minus1 [i] corresponde a valores positivos de deltaPOC.
Un used_by_curr_pic_s1_flag [i] igual a 0 especifica que la imagen de referencia de orden i que tiene un recuento del orden de las imágenes mayor que el de la imagen actual no es utilizada como referencia por la imagen actual.
Un used_by_curr_pic_longterm_flag [i] igual a 0 especifica que la imagen de referencia a largo plazo de orden i no es utilizada como referencia por la imagen actual.
Un ref_pic_s0_resolution_idx [i] igual a 0 especifica que la imagen de referencia se escala para hacer q resolución coincida con la resolución de la imagen actual que está siendo decodificada. Un ref_pic_s0_resolution_idx [i] igual a 1 especifica que la imagen de referencia se mantiene en la resolución original de la imagen de referencia. Un ref_pic_s0_resolution_idx [i] igual a 2 especifica que la resolución de la imagen de referencia se mantiene tanto en su resolución original como en la resolución de la imagen actual. Se deduce que ref_pic_s0_resolution_idx [i] es 0 cuando no está presente.
Un ref_pic_s1_resolution_idx [i] igual a 0 especifica que la imagen de referencia se escala para hacer q resolución coincida con la resolución de la imagen actual que está siendo decodificada. Un ref_pic_s1_resolution_idx [i] igual a 1 especifica que la imagen de referencia se mantiene en la resolución original de la imagen de referencia. Un ref_pic_s1_resolution_idx [i] igual a 2 especifica que la resolución de la imagen de referencia se mantiene tanto en su resolución original como en la resolución de la imagen actual.
Ref_pic_s1_resolution_idx [i] se deduce que es 0 cuando no está presente.
En una configuración, si un flujo de bits contiene una primera imagen con una primera resolución y una segunda imagen y una cuarta imagen con una segunda resolución, donde la primera resolución y la segunda resolución no son iguales y donde la segunda imagen no es una imagen de IDR o un conjunto de parámetros de secuencia (SPS) no se recibe después de la primera imagen y antes de la segunda imagen, entonces la segunda imagen solo puede hacer referencia a una imagen de referencia de la primera resolución. En una segunda configuración, si un flujo de bits contiene una primera imagen con una primera resolución y una segunda imagen con una segunda resolución, donde la primera resolución y la segunda resolución no son iguales y donde la segunda imagen no es una imagen de IDR o un conjunto de parámetros de secuencia (SPS) no se recibe después de la primera imagen y antes de la segunda imagen, entonces la cuarta imagen solo puede hacer referencia a una imagen de referencia de la primera resolución que no está referenciada por otras imágenes de la segunda resolución.
Por ejemplo, si la cuarta imagen está precedida por otras imágenes de la misma resolución, la cuarta imagen puede hacer referencia a una imagen de referencia que es la primera resolución además de las imágenes de referencia utilizadas por las imágenes que preceden a la cuarta imagen que son de la misma resolución. En otras palabras, cuando se decodifica una imagen de la segunda resolución, solo se puede utilizar una imagen de referencia con una primera resolución como referencia cuando se decodifica una imagen. Una vez que se utiliza una imagen con una primera resolución como referencia cuando se decodifica una imagen con una segunda resolución, se considera que la imagen con una primera resolución que se utiliza como referencia tiene una resolución de la segunda resolución para la decodificación de imágenes posteriores.
La figura 13 es un diagrama de flujo que ilustra otra configuración más específica de un método 1200 para rastrear una imagen de referencia con referenciación suplementaria reducida en base a una imagen designada. Este método
1200 puede ser otro enfoque para rastrear a qué imagen se hace referencia cuando se reutilizan los POC. Un dispositivo electrónico 204 (por ejemplo, el decodificador 202) puede recibir 1202 un flujo de bits. Por ejemplo, el
decodificador 202 puede recibir 1202 un flujo de bits 214 que incluye una imagen de referencia codificada. En algunas configuraciones, el flujo de bits 214 también puede incluir información suplementaria (por ejemplo, PPS, información de la descripción de la memoria intermedia, parámetros, designación o identificador de imagen de referencia, etc.).
El dispositivo electrónico 204 puede decodificar 1204 una parte del flujo de bits para producir una imagen de referencia decodificada. Por ejemplo, el decodificador 202 puede decodificar 1204 una porción del flujo de bits 214 para producir una imagen de referencia decodificada que es almacenada en la memoria de fotogramas 264. Cabe señalar que una o varias porciones del flujo de bits 214 pueden ser decodificadas 404 para producir una o varias imágenes de referencia decodificadas.
El dispositivo electrónico 204 puede asociar 1206 un parámetro del ciclo con un conjunto de imágenes decodificadas que incluye la imagen de referencia decodificada. Por ejemplo, el dispositivo electrónico 204 puede asociar 1206 un parámetro del ciclo “poc_cycle” con un conjunto de imágenes decodificadas o cada imagen en un conjunto de imágenes decodificadas que incluye la imagen de referencia decodificada. El parámetro del ciclo “poc_cycle” se ha descrito con mayor detalle anteriormente.
El dispositivo electrónico 204 puede determinar 1208 si se ha producido una transición entre conjuntos de imágenes. Por ejemplo, la transición puede ser determinada en 1208 examinando el POC de una imagen actual que está siendo decodificada (por ejemplo, CurPOC) y comparándolo con el POC de la última imagen que se decodificó (por ejemplo, LastPOC). Por ejemplo, si el POC de la imagen actual (por ejemplo, CurPOC) que está siendo decodificada es menor que el POC de la última imagen decodificada (por ejemplo, LastPOC) y LastPOC - CurPOC es mayor que un umbral TH_FWD, entonces se puede determinar 1208 una transición de un conjunto de imágenes anterior a un conjunto de imágenes posterior. No obstante, si el POC de la imagen actual que está siendo decodificada (por ejemplo, CurPOC) es mayor que el POC de la última imagen que se decodificó (por ejemplo, LastPOC) y CurPOC -LastPOC es mayor que un umbral TH_BCKWD, entonces se puede determinar 1208 una transición de un conjunto de imágenes posterior a un conjunto de imágenes anterior. Para todos los demás casos, se puede determinar 1208 que no se ha producido ninguna transición. En algunas configuraciones, los umbrales pueden tomar valores TH_FWD = TH_BCKWD = MaxPOC/2.
Si el dispositivo electrónico 204 determina 1208 que se ha producido una transición entre dos conjuntos de imágenes, el dispositivo electrónico 204 puede modificar 1210 el parámetro del ciclo. Por ejemplo, el dispositivo electrónico 204 puede disminuir los parámetros del ciclo para cada imagen o cada conjunto de imágenes en la DPB cuando la transición es de un conjunto desde imágenes anterior. En otro ejemplo, el dispositivo electrónico 204 puede incrementar los parámetros de ciclo para cada imagen o cada conjunto de imágenes en la DPB cuando la transición es desde un conjunto de imágenes posterior. Por lo tanto, se puede llevar a cabo una actualización de todos los parámetros del ciclo de imagen de referencia con respecto a la imagen que está siendo decodificada. Este procedimiento de actualización (por ejemplo, determinar 1208 si ha ocurrido una transición entre conjuntos de imágenes y posiblemente modificar 1210 el o los parámetros del o los ciclos se puede ejecutar una vez para cada imagen que está siendo decodificada.
Una definición alternativa del parámetro del ciclo “poc_cycle” puede ser que el poc_cycle para la imagen que está siendo decodificada (actualmente) es 0. Por lo tanto, el conjunto de imágenes que incluye la imagen que está siendo decodificada actualmente puede ser 0.
El poc_cycle de cualquier otra imagen, tal como la imagen de referencia, puede ser calculado como MaxPOCSetlndex de la imagen de referencia menos el MaxPOCSetlndex de la imagen que está siendo decodificada. Por ejemplo, si el MaxPOCSetlndex de la imagen que está siendo decodificada es n y la imagen de referencia tiene un MaxPOCSetlndex que es n-1, entonces el poc_cycle de la imagen de referencia puede ser (n - 1) - n = -1.
Cabe señalar que el poc_cycle para una imagen de referencia puede depender de la distancia MaxPOCSetlndex entre la imagen de referencia y la imagen que está siendo decodificada. Esto se puede determinar implícitamente realizando un rastreo de las transiciones (por ejemplo, determinando 1208 si se ha producido una transición) entre un conjunto de imágenes [0, ..., MaxPOC - 1] y el otro conjunto de imágenes [0, ..., MaxPOC - 1] tanto en el codificador 108 como en el decodificador 102.
El dispositivo electrónico 204 puede decodificar 1212 una imagen en base a la imagen de referencia codificada. Por ejemplo, una porción del flujo de bits 214 (distinta de la porción decodificada 1204 para producir la imagen de referencia decodificada) puede ser decodificada 1212 en base a la imagen de referencia decodificada. Por ejemplo, la imagen de referencia decodificada (que ha sido rastreada en la DPB) puede ser proporcionada a un módulo 260 de compensación del movimiento para generar una señal de inter predicción 268 de fotogramas en base a un mecanismo de inter predicción de fotogramas. La señal de inter predicción 268 de fotogramas puede ser utilizada por lo tanto para decodificar 1212 la imagen. En algunas configuraciones o instancias, se pueden utilizar una o varias imágenes de referencia decodificadas para decodificar 1212 la imagen.
La figura 14 es un diagrama de flujo que ilustra una configuración de un método 1300 para determinar si se ha producido una transición entre conjuntos de imágenes. Por ejemplo, la figura 14 proporciona un ejemplo para determinar 1208 si se ha producido una transición entre conjuntos de imágenes tal como se ilustra en la figura 13. El dispositivo electrónico 204 puede determinar 1302 si el POC de la imagen actual que está siendo decodificada (designado como “CurPOC”, por ejemplo) es menor que el POC de la última imagen decodificada (designado como “LastPOC”, por ejemplo). Por ejemplo, el dispositivo electrónico 204 puede comparar un POC de una imagen actual que está siendo decodificada (por ejemplo, CurPOC) con un POC de una imagen que se decodificó en último lugar (por ejemplo, LastPOC) para realizar esta determinación 1302.
Si CurPOC < LastPOC, el dispositivo electrónico 204 puede determinar 1308 si LastPOC - CurPOC es mayor que un umbral TH_FWD. Si LastPOC - CurPOC es mayor que un umbral TH_FWD, el dispositivo electrónico 204 puede determinar 1308 que se ha producido una transición de un conjunto de imágenes anterior a un conjunto de imágenes posterior. No obstante, si LastPOC - CurPOC no es mayor que TH_FWD, el dispositivo electrónico 204 puede determinar 1308 que no se ha producido ninguna transición.
Si CurPOC no es menor que LastPOC, entonces el dispositivo electrónico 204 puede determinar 1304 si CurPOC es mayor que LastPOC. Si el dispositivo electrónico 204 determina 1304 que CurPOC es mayor que LastPOC, entonces el dispositivo electrónico 204 puede determinar 1306 si CurPOC - LastPOC es mayor que un umbral TH_BCKWD. Si el dispositivo electrónico determina 1306 que CurPOC - LastPOC es mayor que un umbral TH_BCKWD, entonces el dispositivo electrónico 204 puede determinar 1306 que se ha producido una transición de un conjunto de imágenes posterior a un conjunto de imágenes anterior. Si el dispositivo electrónico determina 1306 que CurPOC - LastPOC no es mayor que un umbral TH_BCKWD, entonces el dispositivo electrónico 204 puede determinar 1306 que no se ha producido ninguna transición.
Si el dispositivo electrónico 204 determina 1304 que CurPOC no es mayor que LastPOC, el dispositivo electrónico puede determinar 1304 que no se ha producido una transición. En algunas configuraciones, los umbrales pueden tomar valores TH_FWD = TH_BCKWD = MaxPOC/2.
La figura 15 es un diagrama de flujo que ilustra otra configuración más específica de un método 1400 para rastrear una imagen de referencia con una referenciación suplementaria reducida en base a una imagen designada. Este método 1400 puede ser un enfoque para rastrear a qué imagen se hace referencia cuando se reutilizan los POC. Un dispositivo electrónico 204 (por ejemplo, el decodificador 202) puede recibir 1402 un flujo de bits 214. Por ejemplo, el decodificador 202 puede recibir 1402 un flujo de bits 214 que incluye una imagen de referencia codificada (y otras imágenes codificadas, por ejemplo). En algunas configuraciones, el flujo de bits 214 puede incluir información suplementaria (por ejemplo, PPS, información de la descripción de la memoria intermedia, parámetros, designación o identificador de imagen de referencia, etc.).
El dispositivo electrónico 204 puede decodificar 1404 una porción del flujo de bits 214 para producir una imagen de referencia decodificada. Por ejemplo, el decodificador 202 puede decodificar 1404 una porción del flujo de bits 214 para producir una imagen de referencia decodificada que es almacenada en la memoria de fotogramas 264. Cabe señalar que una o varias porciones del flujo de bits 214 pueden ser decodificadas 1404 para producir una o varias imágenes de referencia decodificadas.
El dispositivo electrónico 204 puede asociar 1406 un parámetro del ciclo con un conjunto de imágenes decodificadas que incluye la imagen de referencia decodificada. Por ejemplo, el dispositivo electrónico 204 puede asociar 1406 un parámetro del ciclo “poc_cycle" con un conjunto de imágenes decodificadas que incluye la imagen de referencia decodificada.
El dispositivo electrónico 204 puede determinar 1408 si se ha producido una transición entre conjuntos de imágenes. Por ejemplo, cada vez que un decodificador 102 codifica un número predeterminado de imágenes en un conjunto de imágenes, el decodificador 102 o el dispositivo electrónico B 104b puede determinar 1408 que se ha producido una transición entre dos conjuntos de imágenes. En otro ejemplo, cada vez que un decodificador 102 detecta un ciclo en POC (por ejemplo, reiniciando desde un valor máximo a un valor mínimo), el decodificador 102 o el dispositivo electrónico B 104b puede determinar 1408 que se ha producido una transición entre dos conjuntos de imágenes. Si el dispositivo electrónico 204 determina 1408 que se ha producido una transición entre conjuntos de imágenes, el dispositivo electrónico 204 puede modificar 1410 (por ejemplo, disminuir) el parámetro del ciclo. Por ejemplo, el dispositivo electrónico 204 disminuye los parámetros de ciclo para cada imagen o cada conjunto de imágenes en la DPB. En otro ejemplo, el dispositivo electrónico 204 puede incrementar el parámetro del ciclo.
El dispositivo electrónico 204 puede decodificar 1412 una imagen en base a la imagen de referencia decodificada. Por ejemplo, una porción del flujo de bits 214 (distinta de la porción decodificada 1404 para producir la imagen de referencia decodificada) puede ser decodificada 1412 en base a la imagen de referencia. Por ejemplo, la imagen de referencia decodificada (que ha sido rastreada en la DPB) puede ser proporcionada a un módulo 260 de compensación del movimiento para generar una señal de inter predicción 268 de fotogramas en base a un mecanismo de inter predicción de fotogramas. La señal de inter predicción 268 de fotogramas puede ser utilizada,
por lo tanto, para decodificar 1412 la imagen. En algunas configuraciones o instancias, se pueden utilizar una o varias imágenes de referencia decodificadas para decodificar 1412 la imagen.
La figura 16 ilustra diversos componentes que pueden ser utilizados en un dispositivo electrónico 1504. El dispositivo electrónico 1504 puede ser implementado como uno o varios de los dispositivos electrónicos (por ejemplo, los dispositivos electrónicos 104, 204) descritos anteriormente.
El dispositivo electrónico 1504 incluye un procesador 1517 que controla el funcionamiento del dispositivo electrónico 1504. El procesador 1517 también se puede denominar CPU. La memoria 1511, que puede incluir la memoria de solo lectura (ROM - Read Only Memory, en inglés), la memoria de acceso aleatorio (RAM - Random Access Memory, en inglés) o cualquier tipo de dispositivo que pueda almacenar información, proporciona instrucciones 1513a (por ejemplo, instrucciones ejecutables) y datos 1515a al procesador 1517. Una porción de la memoria 1511 también puede incluir una memoria de acceso aleatorio no volátil (NVRAM - Non-Volatile Random Access Memory, en inglés). La memoria 1511 puede estar en comunicación electrónica con el procesador 1517.
Las instrucciones 1513b y los datos 1515b también pueden residir en el procesador 1517. Las instrucciones 1513b y/o los datos 1515b cargados en el procesador 1517 también pueden incluir instrucciones 1513a y/o datos 1515a de la memoria 1511 que fueron cargados para su ejecución o procesamiento por el procesador 1517. Las instrucciones 1513b pueden ser ejecutadas por el procesador 1517 para implementar los sistemas y métodos dados a conocer en el presente documento.
El dispositivo electrónico 1504 puede incluir una o varias interfaces de comunicación 1519 para comunicarse con otros dispositivos electrónicos. Las interfaces de comunicación 1519 pueden estar basadas en tecnología de comunicación por cable, tecnología de comunicación inalámbrica o ambas. Ejemplos de interfaces de comunicación 1519 incluyen un puerto de serie, un puerto paralelo, un bus de serie universal (USB - Universal Serial bus, en inglés), un adaptador Ethernet, una interfaz de bus de IEEE 1394, una interfaz de bus de interfaz de sistema de ordenador pequeño (SCSI - Small Computer System Interface, en inglés), un puerto de comunicación de infrarrojos (IR), un adaptador de comunicación inalámbrica Bluetooth, un transceptor inalámbrico de acuerdo con las especificaciones del Proyecto de asociación de 3a Generación (3GPP - 3rd Generation Partnership Project, en inglés), etc.
El dispositivo electrónico 1504 puede incluir uno o varios dispositivos de salida 1523 y uno o varios dispositivos de entrada 1521. Ejemplos de dispositivos de salida 1523 incluyen un altavoz, una impresora, etc. Un tipo de dispositivo de salida que puede estar incluido en un dispositivo electrónico 1504 es un dispositivo de visualización 1525. Los dispositivos de visualización 1525 utilizados con las configuraciones descritas en el presente documento pueden utilizar cualquier tecnología de proyección de imágenes adecuada, tal como un tubo de rayos catódicos (CRT -Cathode Ray Tube, en inglés), una pantalla de cristal líquido (LCD - Liquid Crystal Display, en inglés), un diodo emisor de luz (LED - Light Emitting Diode, en inglés), plasma de gas, electroluminiscencia o similares. Un controlador de pantalla 1527 puede estar dispuesto para convertir datos almacenados en la memoria 1511 en texto, gráficos y/o imágenes en movimiento (según corresponda) mostradas en la pantalla 1525. Ejemplos de dispositivos de entrada 1521 incluyen un teclado, un ratón, un micrófono, un dispositivo de control remoto, un pulsador, una palanca de mando, una bola de seguimiento, un panel táctil, una pantalla táctil, un lápiz óptico, etc.
Los diversos componentes del dispositivo electrónico 1504 están acoplados entre sí mediante un sistema de bus 1529, que puede incluir un bus de potencia, un bus de señales de control y un bus de señales de estado, además de un bus de datos. No obstante, en aras de la claridad, los diversos buses se ilustran en la figura 16 como el sistema de bus 1529. El dispositivo electrónico 1504 ilustrado en la figura 16 es un diagrama de bloques funcional en lugar de una lista de componentes específicos.
La figura 17 es un diagrama que ilustra ejemplos de casos de utilización de acuerdo con los sistemas y métodos dados a conocer en el presente documento. En particular, se ilustran tres ejemplos 1653a-c tal como se describió anteriormente. Estos tres ejemplos pueden ocurrir si un flujo de bits contiene una primera imagen con una primera resolución y una segunda imagen con una segunda resolución, si la primera resolución y la segunda resolución no son iguales, y si la segunda imagen no es una imagen de IDR, o bien, un conjunto de parámetros de secuencia (SPS) no se recibe después de la primera imagen y antes de la segunda imagen.
El primer ejemplo 1653a ilustra imágenes de una primera resolución 1655a e imágenes de una segunda resolución 1657a almacenadas en una memoria intermedia de imágenes decodificadas. En el primer ejemplo 1653a, un codificador puede indicar a un decodificador que las imágenes de referencia en la memoria intermedia de imágenes decodificadas (DPB) se modifican de manera que una imagen de referencia está en la primera resolución. Esto puede ser útil si la imagen de referencia solo se va a utilizar para la predicción del movimiento a la resolución más baja.
El segundo ejemplo 1653b ilustra imágenes de una primera resolución 1655b e imágenes de una segunda resolución 1657b almacenadas en una memoria intermedia de imágenes decodificadas. En el segundo ejemplo 1653b, un codificador puede indicar a un decodificador que las imágenes de referencia en la memoria intermedia de imágenes decodificadas (DPB) están modificadas de tal manera que una imagen de referencia tiene la segunda
resolución. Esto puede ser útil cuando el flujo de bits contiene una tercera imagen que es posterior a la segunda imagen, donde la tercera imagen está en la primera resolución y donde la imagen a largo plazo almacenada en la DPB puede ser utilizada para la predicción del movimiento.
El tercer ejemplo 1653c ilustra imágenes de una primera resolución 1655c e imágenes de una segunda resolución 1657c almacenadas en una memoria intermedia de imágenes decodificadas. En el tercer ejemplo 1653c, un codificador puede indicar a un decodificador que las imágenes de referencia en la memoria intermedia de imágenes decodificadas (DPB) están modificadas de tal manera que una imagen de referencia está tanto en la primera como en la segunda resolución. Esto puede ser útil cuando se utiliza una versión de mayor resolución de la imagen de referencia para la predicción del movimiento cuando se decodifica una tercera imagen que es posterior a la segunda imagen, donde la tercera imagen está en la primera resolución.
El término “medio legible por ordenador” se refiere a cualquier medio disponible al que pueda acceder un ordenador o un procesador. El término “medio legible por ordenador”, tal como se utiliza en el presente documento, puede designar un medio legible por ordenador y/o procesador que es no transitorio y tangible. A modo de ejemplo, y sin limitación, un medio legible por ordenador o legible por procesador puede comprender una RAM, una ROM, una EEPROM, un CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda ser utilizado para transportar o almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante un ordenador o procesador. Disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD - Compact Disc, en inglés), un disco láser, un disco óptico, un disco versátil digital (DVD - Digital Versatile Disc, en inglés), un disquete y un disco Blu-ray®, donde los disquetes, en general, reproducen datos de manera magnética, mientras que los discos compactos, los discos láser, los discos ópticos, los discos versátiles digitales y los discos Blu-ray® reproducen datos de manera óptica con láseres.
Cabe señalar que uno o varios de los métodos dados a conocer en el presente documento pueden ser implementados y/o realizados utilizando hardware. Por ejemplo, uno o varios de los métodos o enfoques dados a conocer en el presente documento pueden ser implementados y/o realizados utilizando un conjunto de chips, un circuito integrado de aplicación específica (ASIC - Application Specific Integrated Circuit, en inglés), un circuito integrado a gran escala (LSI - Large Scale Integrated Circuit, en inglés) o un circuito integrado, etc.
Cada uno de los métodos dados a conocer en el presente documento comprende una o varias etapas o acciones para conseguir el método descrito.
Claims (2)
1. Un método para rastrear una imagen de referencia en un decodificador de video, que comprende:
recibir un flujo de bits;
decodificar una parte del flujo de bits para producir una imagen de referencia decodificada;
determinar una imagen designada;
rastrear la imagen de referencia decodificada en una memoria intermedia de imágenes decodificadas (DPB) en base a una imagen designada, en el que el rastreo de la imagen de referencia decodificada comprende:
determinar un recuento del orden de las imágenes (POC) en base a la imagen designada;
recibir un indicador de disposición circular de un codificador que indica una transición entre dos conjuntos de imágenes, siendo el indicador de disposición circular un indicador de un bit;
determinar un parámetro del ciclo de recuento del orden de las imágenes actual en base a la imagen designada, en el que el parámetro del ciclo de recuento del orden de las imágenes hace referencia a conjuntos de imágenes que incluyen imágenes de referencia, y
en el que la determinación del parámetro del ciclo de recuento del orden de las imágenes actual incluye actualizar un parámetro del ciclo de recuento del orden de las imágenes anterior después de recibir el indicador de disposición circular;
obtener la imagen de referencia decodificada de acuerdo con el POC y con el parámetro del ciclo de recuento del orden de las imágenes; y decodificar una imagen en base a la imagen de referencia decodificada.
2. El método de la reivindicación 1, en el que
una descripción de la memoria intermedia de dicha imagen de referencia decodificada se recibe desde dicho flujo de bits,
dicha descripción de la memoria intermedia incluye dicho recuento del orden de las imágenes para dichas imágenes de referencia decodificadas.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/273,191 US8768079B2 (en) | 2011-10-13 | 2011-10-13 | Tracking a reference picture on an electronic device |
US13/287,015 US8855433B2 (en) | 2011-10-13 | 2011-11-01 | Tracking a reference picture based on a designated picture on an electronic device |
US13/291,961 US8787688B2 (en) | 2011-10-13 | 2011-11-08 | Tracking a reference picture based on a designated picture on an electronic device |
US13/294,996 US20130094774A1 (en) | 2011-10-13 | 2011-11-11 | Tracking a reference picture based on a designated picture on an electronic device |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2841412T3 true ES2841412T3 (es) | 2021-07-08 |
Family
ID=48081990
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES16203741T Active ES2841412T3 (es) | 2011-10-13 | 2012-10-12 | Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico |
ES12839718T Active ES2883344T3 (es) | 2011-10-13 | 2012-10-12 | Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico |
ES20194910T Active ES2914871T3 (es) | 2011-10-13 | 2012-10-12 | Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES12839718T Active ES2883344T3 (es) | 2011-10-13 | 2012-10-12 | Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico |
ES20194910T Active ES2914871T3 (es) | 2011-10-13 | 2012-10-12 | Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico |
Country Status (15)
Country | Link |
---|---|
US (1) | US20130094774A1 (es) |
EP (4) | EP3767950B1 (es) |
JP (3) | JP6091501B2 (es) |
CN (6) | CN107197313B (es) |
CY (3) | CY1123692T1 (es) |
DK (3) | DK3166314T3 (es) |
ES (3) | ES2841412T3 (es) |
HR (3) | HRP20220657T1 (es) |
HU (2) | HUE055654T2 (es) |
LT (3) | LT3166314T (es) |
PL (3) | PL2767090T3 (es) |
PT (3) | PT3166314T (es) |
RS (3) | RS61224B1 (es) |
SI (3) | SI3767950T1 (es) |
WO (1) | WO2013054951A1 (es) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9936197B2 (en) * | 2011-10-28 | 2018-04-03 | Samsung Electronics Co., Ltd. | Method for inter prediction and device therefore, and method for motion compensation and device therefore |
US10003817B2 (en) | 2011-11-07 | 2018-06-19 | Microsoft Technology Licensing, Llc | Signaling of state information for a decoded picture buffer and reference picture lists |
US9451252B2 (en) * | 2012-01-14 | 2016-09-20 | Qualcomm Incorporated | Coding parameter sets and NAL unit headers for video coding |
PL3917140T3 (pl) * | 2012-01-19 | 2023-12-04 | Vid Scale, Inc. | Sposób i urządzenie do sygnalizacji i tworzenia spisów obrazów odniesienia kodowania wideo |
US20130188709A1 (en) | 2012-01-25 | 2013-07-25 | Sachin G. Deshpande | Video decoder for tiles with absolute signaling |
JP2013187905A (ja) * | 2012-03-08 | 2013-09-19 | Panasonic Corp | 映像を符号化および復号する方法および装置 |
RS64224B1 (sr) * | 2012-06-25 | 2023-06-30 | Huawei Tech Co Ltd | Slike postepenog pristupa vremenskom sloju u video kompresiji |
EP2869560A4 (en) * | 2012-06-29 | 2016-09-07 | Sony Corp | DEVICE AND METHOD OF ENCODING |
US9648322B2 (en) | 2012-07-10 | 2017-05-09 | Qualcomm Incorporated | Coding random access pictures for video coding |
US9686542B2 (en) * | 2012-09-05 | 2017-06-20 | Qualcomm Incorporated | Network abstraction layer header design |
US9313500B2 (en) | 2012-09-30 | 2016-04-12 | Microsoft Technology Licensing, Llc | Conditional signalling of reference picture list modification information |
US20140098868A1 (en) | 2012-10-04 | 2014-04-10 | Qualcomm Incorporated | File format for video data |
WO2014111222A1 (en) * | 2013-01-16 | 2014-07-24 | Telefonaktiebolaget L M Ericsson (Publ) | Decoder and encoder and methods for coding of a video sequence |
US10212435B2 (en) * | 2013-10-14 | 2019-02-19 | Qualcomm Incorporated | Device and method for scalable coding of video information |
CN106416250B (zh) * | 2013-12-02 | 2020-12-04 | 诺基亚技术有限公司 | 视频编码和解码 |
US9654774B2 (en) * | 2013-12-12 | 2017-05-16 | Qualcomm Incorporated | POC value design for multi-layer video coding |
CN115134596A (zh) | 2015-06-05 | 2022-09-30 | 杜比实验室特许公司 | 用于执行帧间预测的图像编解码方法、比特流存储方法 |
US11463736B2 (en) * | 2018-09-21 | 2022-10-04 | Sharp Kabushiki Kaisha | Systems and methods for signaling reference pictures in video coding |
US12022059B2 (en) * | 2018-12-07 | 2024-06-25 | Beijing Dajia Internet Information Technology Co., Ltd. | Video coding using multi-resolution reference picture management |
CN118784867A (zh) * | 2018-12-10 | 2024-10-15 | 夏普株式会社 | 用于在视频编码中发送信号通知参考图片的系统和方法 |
WO2020156538A1 (en) | 2019-02-03 | 2020-08-06 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between mv precisions and mv difference coding |
CN113424533B (zh) | 2019-02-14 | 2024-09-10 | 北京字节跳动网络技术有限公司 | 复杂度降低的解码器侧运动推导 |
KR102627834B1 (ko) | 2019-05-11 | 2024-01-23 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 프로세싱에서의 코딩 툴들의 선택적 사용 |
WO2021068954A1 (en) | 2019-10-12 | 2021-04-15 | Beijing Bytedance Network Technology Co., Ltd. | High level syntax for video coding tools |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7379496B2 (en) * | 2002-09-04 | 2008-05-27 | Microsoft Corporation | Multi-resolution video coding and decoding |
US8194751B2 (en) * | 2003-02-19 | 2012-06-05 | Panasonic Corporation | Moving picture coding method and moving picture decoding method |
US7403660B2 (en) * | 2003-04-30 | 2008-07-22 | Nokia Corporation | Encoding picture arrangement parameter in picture bitstream |
US20060083298A1 (en) | 2004-10-14 | 2006-04-20 | Nokia Corporation | Reference picture management in video coding |
US8290057B2 (en) * | 2005-02-18 | 2012-10-16 | Mediatek Incorporation | Method of decoding a digital video sequence and related apparatus |
EP1878252A4 (en) * | 2005-05-02 | 2013-01-16 | Samsung Electronics Co Ltd | METHOD AND DEVICE FOR CODING / DECODING MULTILAYER VIDEO USING WEIGHTED PREDICTION |
KR100763182B1 (ko) * | 2005-05-02 | 2007-10-05 | 삼성전자주식회사 | 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치 |
WO2007035476A2 (en) * | 2005-09-15 | 2007-03-29 | Sarnoff Corporation | Methods and systems for mixed spatial resolution video compression |
US9602840B2 (en) * | 2006-02-06 | 2017-03-21 | Thomson Licensing | Method and apparatus for adaptive group of pictures (GOP) structure selection |
EP1827023A1 (en) * | 2006-02-27 | 2007-08-29 | THOMSON Licensing | Method and apparatus for packet loss detection and virtual packet generation at SVC decoders |
JP2009543462A (ja) * | 2006-07-06 | 2009-12-03 | トムソン ライセンシング | マルチビュービデオ符号化及び復号化のためにフレームナンバー及び/又はピクチャオーダカウント(poc)を分離する方法及び装置 |
JP5351020B2 (ja) * | 2006-07-11 | 2013-11-27 | トムソン ライセンシング | バーチャルリファレンスピクチャを使用した方法及び装置 |
CN101202923B (zh) * | 2006-12-15 | 2010-09-01 | 扬智科技股份有限公司 | 影像解码器的码流错误侦测方法 |
CN101222638B (zh) * | 2007-01-08 | 2011-12-07 | 华为技术有限公司 | 多视视频编解码方法及装置 |
WO2008129500A2 (en) * | 2007-04-24 | 2008-10-30 | Nokia Corporation | System and method for implementing fast tune-in with intra-coded redundant pictures |
US8553781B2 (en) * | 2007-12-07 | 2013-10-08 | Thomson Licensing | Methods and apparatus for decoded picture buffer (DPB) management in single loop decoding for multi-view video |
JP5056560B2 (ja) * | 2008-03-17 | 2012-10-24 | 富士通株式会社 | 符号化装置、復号化装置、符号化方法および復号化方法 |
JP5578775B2 (ja) * | 2008-09-02 | 2014-08-27 | 富士通株式会社 | 符号化装置および復号装置 |
US20110170604A1 (en) * | 2008-09-24 | 2011-07-14 | Kazushi Sato | Image processing device and method |
WO2010092740A1 (ja) * | 2009-02-10 | 2010-08-19 | パナソニック株式会社 | 画像処理装置、画像処理方法、プログラムおよび集積回路 |
JP5332773B2 (ja) * | 2009-03-18 | 2013-11-06 | ソニー株式会社 | 画像処理装置および方法 |
JP2011082683A (ja) * | 2009-10-05 | 2011-04-21 | Sony Corp | 画像処理装置、画像処理方法、及び、プログラム |
US20110222837A1 (en) * | 2010-03-11 | 2011-09-15 | Cisco Technology, Inc. | Management of picture referencing in video streams for plural playback modes |
CN103098462A (zh) * | 2010-08-06 | 2013-05-08 | 松下电器产业株式会社 | 编码方法、显示装置以及解码方法 |
EP2630799A4 (en) * | 2010-10-20 | 2014-07-02 | Nokia Corp | METHOD AND DEVICE FOR VIDEO CODING AND DECODING |
CN102025992B (zh) * | 2010-11-23 | 2012-11-21 | 浙江大学 | 用于h.264视频解码系统中帧间预测过程的参考图像管理方法 |
MX2013014857A (es) * | 2011-06-30 | 2014-03-26 | Ericsson Telefon Ab L M | Señalizacion de imagenes de referencia. |
MY166191A (en) * | 2011-06-30 | 2018-06-07 | Ericsson Telefon Ab L M | Absolute or explicit reference picture signaling |
US9237356B2 (en) * | 2011-09-23 | 2016-01-12 | Qualcomm Incorporated | Reference picture list construction for video coding |
US9451284B2 (en) * | 2011-10-10 | 2016-09-20 | Qualcomm Incorporated | Efficient signaling of reference picture sets |
-
2011
- 2011-11-11 US US13/294,996 patent/US20130094774A1/en not_active Abandoned
-
2012
- 2012-10-12 PL PL12839718T patent/PL2767090T3/pl unknown
- 2012-10-12 SI SI201231995T patent/SI3767950T1/sl unknown
- 2012-10-12 HR HRP20220657TT patent/HRP20220657T1/hr unknown
- 2012-10-12 SI SI201231939T patent/SI2767090T1/sl unknown
- 2012-10-12 CN CN201710563911.9A patent/CN107197313B/zh active Active
- 2012-10-12 RS RS20201549A patent/RS61224B1/sr unknown
- 2012-10-12 HR HRP20211270TT patent/HRP20211270T1/hr unknown
- 2012-10-12 HU HUE12839718A patent/HUE055654T2/hu unknown
- 2012-10-12 CN CN201710563912.3A patent/CN107197294B/zh active Active
- 2012-10-12 WO PCT/JP2012/077021 patent/WO2013054951A1/en active Application Filing
- 2012-10-12 EP EP20194910.4A patent/EP3767950B1/en active Active
- 2012-10-12 CN CN201710563787.6A patent/CN107257489B/zh active Active
- 2012-10-12 EP EP12839718.9A patent/EP2767090B1/en active Active
- 2012-10-12 PT PT162037410T patent/PT3166314T/pt unknown
- 2012-10-12 ES ES16203741T patent/ES2841412T3/es active Active
- 2012-10-12 RS RS20210955A patent/RS62177B1/sr unknown
- 2012-10-12 RS RS20220461A patent/RS63235B1/sr unknown
- 2012-10-12 PL PL16203741T patent/PL3166314T3/pl unknown
- 2012-10-12 SI SI201231864T patent/SI3166314T1/sl unknown
- 2012-10-12 LT LTEP16203741.0T patent/LT3166314T/lt unknown
- 2012-10-12 EP EP16203741.0A patent/EP3166314B1/en active Active
- 2012-10-12 CN CN201280050538.2A patent/CN103918266B/zh active Active
- 2012-10-12 ES ES12839718T patent/ES2883344T3/es active Active
- 2012-10-12 DK DK16203741.0T patent/DK3166314T3/da active
- 2012-10-12 CN CN201710563788.0A patent/CN107197293B/zh active Active
- 2012-10-12 DK DK12839718.9T patent/DK2767090T3/da active
- 2012-10-12 PL PL20194910.4T patent/PL3767950T3/pl unknown
- 2012-10-12 EP EP22165192.0A patent/EP4060991A1/en active Pending
- 2012-10-12 JP JP2014516128A patent/JP6091501B2/ja active Active
- 2012-10-12 ES ES20194910T patent/ES2914871T3/es active Active
- 2012-10-12 HU HUE16203741A patent/HUE052040T2/hu unknown
- 2012-10-12 PT PT128397189T patent/PT2767090T/pt unknown
- 2012-10-12 PT PT201949104T patent/PT3767950T/pt unknown
- 2012-10-12 CN CN201710563786.1A patent/CN107197292B/zh active Active
- 2012-10-12 LT LTEP20194910.4T patent/LT3767950T/lt unknown
- 2012-10-12 DK DK20194910.4T patent/DK3767950T3/da active
- 2012-10-12 LT LTEPPCT/JP2012/077021T patent/LT2767090T/lt unknown
-
2017
- 2017-02-07 JP JP2017020669A patent/JP6321235B2/ja active Active
-
2018
- 2018-04-04 JP JP2018072172A patent/JP6626919B2/ja active Active
-
2020
- 2020-12-24 HR HRP20202064TT patent/HRP20202064T1/hr unknown
- 2020-12-30 CY CY20201101228T patent/CY1123692T1/el unknown
-
2021
- 2021-08-09 CY CY20211100710T patent/CY1124424T1/el unknown
-
2022
- 2022-05-24 CY CY20221100357T patent/CY1125200T1/el unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2841412T3 (es) | Rastreo de una imagen de referencia en base a una imagen designada en un dispositivo electrónico | |
CN108347606B (zh) | 电子设备及方法 | |
US8787688B2 (en) | Tracking a reference picture based on a designated picture on an electronic device | |
CA2967452C (en) | Reference picture signaling | |
WO2013153822A1 (en) | Devices for sending and receiving a long-term reference picture indicator | |
ES2627741T3 (es) | Decodificación y codificación de imágenes de una secuencia de video |