ES2860448T3 - Señalización condicional de información de modificación de lista de imágenes de referencia - Google Patents

Señalización condicional de información de modificación de lista de imágenes de referencia Download PDF

Info

Publication number
ES2860448T3
ES2860448T3 ES13774010T ES13774010T ES2860448T3 ES 2860448 T3 ES2860448 T3 ES 2860448T3 ES 13774010 T ES13774010 T ES 13774010T ES 13774010 T ES13774010 T ES 13774010T ES 2860448 T3 ES2860448 T3 ES 2860448T3
Authority
ES
Spain
Prior art keywords
rpl
list
flag
reference images
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES13774010T
Other languages
English (en)
Inventor
Gary J Sullivan
Sandeep Kanumuri
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2860448T3 publication Critical patent/ES2860448T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un método (1000) realizado por un codificador (340; 500) de video, que comprende: evaluar (1010) si un valor de una variable que indica un número de imágenes de referencia totales es mayor que 1; y solo cuando el valor es mayor que 1, señalizar (1020) condicionalmente en un flujo de bits una estructura de modificación de una lista de imágenes de referencia, RPL, donde la estructura de modificación de RPL incluye una bandera que indica si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits como una lista de entradas de la lista, en la que cada una de las entradas de la lista especifica un índice de una imagen de referencia en una versión temporal de la RPL que se colocará en una posición actual de la RPL, en donde si el valor de dicha bandera es igual a 1, la RPL se especifica explícitamente como la lista, y si el valor de dicha bandera es igual a 0, la RPL se determina implícitamente.

Description

DESCRIPCIÓN
Señalización condicional de información de modificación de lista de imágenes de referencia
Antecedentes
Los ingenieros utilizan la compresión (también llamada codificación de fuente o codificación de fuente) para reducir la tasa de bits del video digital. La compresión reduce el coste de almacenar y transmitir información de video al convertir la información en una forma de tasa de bits más baja. La descompresión (también llamada decodificación) reconstruye una versión de la información original a partir de la forma comprimida. Un ''códec'' es un sistema codificador/decodificador.
Durante las últimas dos décadas, se han adoptado varios estándares de códecs de video, incluidos los estándares H.261, H.262 (MPEG-2 o ISO/IEC 13818-2), H.263 y H.264 (AVC o ISO/IEC 14496-10) y los estándares MPEG-1 (ISO/IEC 11172-2), MPEG-4 Visual (ISO/IEC 14496-2) y SMPTE 421M. Más recientemente, el estándar HEVC está en desarrollo y una versión reciente es: Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 8”, 10. REUNIÓN JCT-VC; 101. REUNIÓN MPEG; 11-7-2012 - 20-7-2012; Estocolmo. Un estándar de códec de video generalmente define opciones para la sintaxis de un flujo de bits de video codificado, al detallar los parámetros en el flujo de bits cuando se utilizan características particulares en la codificación y decodificación. En muchos casos, un códec de vídeo estándar también proporciona detalles sobre las operaciones de decodificación que debe realizar un decodificador para lograr resultados correctos en la decodificación. Aparte de los estándares de códec, varios formatos de códec patentados definen otras opciones para la sintaxis de un flujo de bits de video codificado y las operaciones de decodificación correspondientes.
Algunos tipos de parámetros en un flujo de bits indican información sobre imágenes de referencia utilizadas durante la codificación y decodificación de vídeo. Una imagen de referencia es, en general, una imagen que contiene muestras que pueden usarse para la predicción entre imágenes en el proceso de decodificación de otras imágenes. Normalmente, las otras imágenes siguen la imagen de referencia en el orden de decodificación y utilizan la imagen de referencia para la predicción con compensación de movimiento. En algunos formatos y estándares de códec de vídeo, se encuentran disponibles múltiples imágenes de referencia en un momento dado para su uso en la predicción con compensación de movimiento. Dichos formatos/estándares de códec de vídeo especifican cómo gestionar las múltiples imágenes de referencia.
En general, una lista de imágenes de referencia (''RPL'') es una lista de imágenes de referencia utilizadas para la predicción con compensación de movimiento. En algunos formatos y estándares de códec de vídeo, un conjunto de imágenes de referencia ("RPS") es un conjunto de imágenes de referencia disponibles para su uso en predicción con compensación de movimiento en un momento dado, y una RPL son algunas de las imágenes de referencia en el RPS. Las imágenes de referencia en una RPL se abordan con índices de referencia. Un índice de referencia identifica una imagen de referencia en la RPL. Durante la codificación y decodificación, un RPS se puede actualizar para tener en cuenta las imágenes recién decodificadas y las imágenes más antiguas que ya no se utilizan como imágenes de referencia. Además, las imágenes de referencia dentro de una RPL se pueden reordenar de modo que las imágenes de referencia más comúnmente utilizadas se identifiquen con índices de referencia que sean más eficientes para señalizar. En algunos estándares de códec recientes, se construye una RPL durante la codificación y decodificación en base a la información disponible sobre el RPS, modificaciones según reglas y/o modificaciones señaladas en el flujo de bits. La señalización de modificaciones para una RPL puede consumir una cantidad significativa de bits.
Compendio
En resumen, la descripción detallada presenta innovaciones en la señalización de la información de modificación de la lista de imágenes de referencia ("RPL"). De manera más general, las innovaciones se refieren a diferentes formas de evitar la señalización de la información de modificación de la RPL cuando no se utilizaría o cuando pueden inferirse valores de dicha información. La invención se expone en el conjunto de reivindicaciones adjunto; los ejemplos adicionales denominados realizaciones en la descripción son ejemplos ilustrativos, no realizaciones reivindicadas en la presente solicitud.
Según un aspecto de las innovaciones descritas en este documento, un codificador de video evalúa una condición. Dependiendo de los resultados de la evaluación, el codificador señaliza de manera condicional en un flujo de bits una bandera que indica si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits. Un decodificador de video correspondiente evalúa una condición. Dependiendo de los resultados de la evaluación, el decodificador analiza condicionalmente a partir de un flujo de bits una bandera que indica si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits. En algunas implementaciones ejemplares, la RPL puede ser para un segmento predictivo ("P") o un segmento bi-predictivo ("B"). De manera alternativa, una estructura de sintaxis de nivel superior se señaliza/analiza de manera condicional en función de la evaluación de la condición.
En algunas implementaciones ejemplares, si no se modifica la RPL, se construye una RPL predeterminada basada en reglas sobre la construcción de RPL a partir de un RPS. Si se modifica la RPL, se construye una RPL de reemplazo basada en la información de modificación de la RPL señalizada que indica selecciones de imágenes de referencia del RPS. Alternativamente, las modificaciones para reordenar una RPL predeterminada, agregar una imagen de referencia a la RPL predeterminada o eliminar una imagen de referencia de la RPL predeterminada se señalan de una manera más detallada para ajustar la RPL predeterminada.
Por ejemplo, la condición que se evalúa depende, al menos en parte, de una variable que indica un número total de imágenes de referencia. En algunas implementaciones ejemplares, la condición es si el valor de la variable es mayor que 1.
La condición se puede evaluar como parte del procesamiento de una estructura de modificación de RPL que incluye la bandera. O bien, la condición se puede evaluar como parte del procesamiento de una cabecera de segmento, en cuyo caso la estructura de modificación de RPL (incluida la bandera) se señaliza o analiza de manera condicional según los resultados de la evaluación.
Según otro aspecto de las innovaciones aquí descritas, un codificador de video evalúa otra condición. Dependiendo de los resultados de la evaluación, el codificador señaliza de manera condicional en un flujo de bits uno o más elementos de sintaxis para las entradas de la lista que indican cómo modificar una RPL (por ejemplo, reemplace la RPL, ajuste la RPL). Un decodificador de video correspondiente evalúa la condición. Dependiendo de los resultados de la evaluación, el decodificador analiza de manera condicional de un flujo de bits uno o más elementos de sintaxis para las entradas de la lista que indican cómo modificar una RPL (por ejemplo , reemplace la RPL, ajuste la RPL). En algunas implementaciones ejemplares, la RPL puede ser para un segmento P o un segmento B (con la evaluación de la condición y la señalización/análisis condicional repetidos para cada uno de las múltiples RPL para un segmento B). Por ejemplo, la otra condición depende al menos en parte de una variable que indica un número de imágenes de referencia totales, un número de imágenes de referencia activas para la RPL y/o si la predicción ponderada está inhabilitada. Se puede usar una lógica diferente para verificar si la predicción ponderada está deshabilitada dependiendo de si un segmento actual es un segmento P o un segmento B y/o dependiendo de qué RPL se esté señalando/analizando. En algunas implementaciones ejemplares, si (a) el número de imágenes de referencia totales es igual a 2 y (b) el número de imágenes de referencia activas para la RPL es igual a 1, entonces uno o más elementos de sintaxis para las entradas de la lista están ausentes del flujo de bits, y se infiere un valor para una de las entradas de la lista. Además, en algunas implementaciones ejemplares, si (c) el número de imágenes de referencia totales es igual a 2, (d) el número de imágenes de referencia activas para la RPL es igual a 2 y (e) la predicción ponderada está deshabilitada, entonces el uno o más elementos de sintaxis para las entradas de la lista están ausentes del flujo de bits y se infieren valores para dos de las entradas de la lista.
Según otro aspecto de las innovaciones descritas en este documento, un codificador de video evalúa otra condición. Dependiendo de los resultados de la evaluación, el codificador ajusta la señalización en un flujo de bits de uno o más elementos de sintaxis para las entradas de la lista que indican cómo modificar una RPL (por ejemplo , reemplace la RPL, ajuste la RPL). En particular, se ajusta la longitud (en bits) de al menos uno de los uno o más elementos de sintaxis. Un decodificador de video correspondiente evalúa la condición. Dependiendo de los resultados de la evaluación, el decodificador ajusta el análisis de un flujo de bits de uno o más elementos de sintaxis para las entradas de la lista que indican cómo modificar una RPL (nuevamente, donde la longitud (en bits) de al menos uno de los uno o más elementos de sintaxis es ajustada). Por ejemplo, la condición depende, al menos en parte, de si la predicción ponderada está deshabilitada. Se puede usar una lógica diferente para verificar si la predicción ponderada está deshabilitada dependiendo de si un segmento actual es un segmento P o un segmento B y/o dependiendo de qué RPL se esté señalando/analizando. En algunas implementaciones ejemplares, para un índice i para las entradas de la lista, si la predicción ponderada está deshabilitada, la longitud (en bits) de al menos uno de los elementos de sintaxis disminuye a medida que aumenta i. Por ejemplo, en algunas implementaciones ejemplares, si la predicción ponderada está deshabilitada, la longitud de un elemento de sintaxis dado para la entrada [/] de la lista es Ceil(Log2(NumPocTotalAct-i)) bits. Por otro lado, si la predicción ponderada está habilitada, la longitud del elemento de sintaxis dada para la entrada [/] de la lista es Ceil(Log2(NumPocTotalAct)) bits.
La codificación o decodificación se puede implementar como parte de un método, como parte de un dispositivo informático adaptado para realizar el método o como parte de un medio tangible legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que un dispositivo informático realice el método.
Los objetos, características y ventajas anteriores y otros de la invención resultarán más evidentes a partir de la siguiente descripción detallada, que procede con referencia a las figuras adjuntas.
Breve descripción de los dibujos
La Figura 1 es un diagrama de un sistema informático ejemplar en el que se pueden implementar algunas realizaciones descritas.
Las Figuras 2a y 2b son diagramas de entornos de red ejemplares en los que se pueden implementar algunas realizaciones descritas.
La Figura 3 es un diagrama de un sistema codificador ejemplar junto con el cual se pueden implementar algunas realizaciones descritas.
La Figura 4 es un diagrama de un sistema de decodificador ejemplar junto con el cual se pueden implementar algunas realizaciones descritas.
La Figura 5 es un diagrama que ilustra un codificador de video ejemplar junto con el cual se pueden implementar algunas realizaciones descritas.
La Figura 6 es un diagrama que ilustra un decodificador de video ejemplar junto con el cual se pueden implementar algunas realizaciones descritas.
La Figura 7a es una tabla que ilustra la señalización condicional de una bandera que indica si se modifica una RPL, según algunas implementaciones ejemplares.
Las Figuras 7b y 7c son tablas que ilustran la señalización condicional de una o más banderas que indican si se modifica una RPL, según otras implementaciones ejemplares.
Las Figuras 8 y 9 son tablas que ilustran la señalización condicional de elementos de sintaxis para entradas de lista que indican cómo modificar una RPL, según algunas implementaciones ejemplares.
Las Figuras 10 y 11 son diagramas de flujo que ilustran técnicas generalizadas para señalización y análisis sintáctico condicional, respectivamente, de una bandera que indica si se modifica una RPL.
Las Figuras 12 y 13 son diagramas de flujo que ilustran técnicas generalizadas para señalización condicional y análisis sintáctico, respectivamente, de elementos de sintaxis para entradas de lista que indican cómo modificar una RPL.
Las Figuras 14 y 15 son diagramas de flujo que ilustran técnicas generalizadas para ajustar la señalización y el análisis sintáctico, respectivamente, de elementos de sintaxis para entradas de lista que indican cómo modificar una RPL.
Descripción detallada
La descripción detallada presenta innovaciones en la señalización de la información de modificación de la lista de imágenes de referencia ("RPL"). Estas innovaciones pueden ayudar a evitar la señalización de información de modificación de RPL cuando no se usaría o cuando se pueden inferir valores de dicha información.
En algunos estándares de códec recientes, un conjunto de imágenes de referencia ("RPS") es un conjunto de imágenes de referencia disponibles para su uso en la predicción con compensación de movimiento, y una RPL se construye a partir del RPS. Para el proceso de decodificación de un segmento predictivo ("P"), hay una RPL, que se llama RPL 0. Para el proceso de decodificación de un segmento bi-predictivo ("B"), hay dos RPL, que se denominan RPL 0 y RPL 1. Al comienzo del proceso de decodificación para un segmento P, RPL 0 se deriva de la información disponible sobre RPL 0 (como el conjunto de imágenes de referencia disponibles en el decodificador para decodificar la imagen actual), modificaciones según reglas y/o modificaciones señaladas en el flujo de bits. De manera similar, al comienzo del proceso de decodificación para un segmento B, RPL 0 y RPL 1 se derivan de la información disponible sobre RPL 0 y la información disponible sobre RPL 1 (como el conjunto de imágenes de referencia disponibles en el decodificador para decodificar la corriente imagen), modificaciones según reglas y/o modificaciones señaladas en el flujo de bits. Más generalmente, una RPL se construye durante la codificación y decodificación basándose en la información disponible sobre la RPL, modificaciones según reglas y/o modificaciones señaladas en el flujo de bits. La señalización de modificaciones para una RPL puede consumir una cantidad significativa de bits. Para algunos estándares de códec recientes, existen ineficiencias en la forma en que se señaliza la información de modificación de RPL.
La descripción detallada presenta varias innovaciones en el área de señalización de información de modificación de RPL. En algunas situaciones, estas innovaciones dan como resultado una señalización más eficiente de los elementos de sintaxis para la información de modificación de RPL. Por ejemplo, la descripción detallada describe la señalización condicional de elementos de sintaxis para entradas de lista que indican cómo modificar una RPL. La descripción detallada también describe formas de utilizar menos bits para señalar dichos elementos de sintaxis. Como otro ejemplo, la descripción detallada describe la señalización condicional de una bandera que indica si se modifica una RPL.
En algunas implementaciones ejemplares, si no se modifica la RPL, se construye una RPL predeterminada según un enfoque "implícito" mediante el uso de reglas sobre la construcción de RPL a partir de un RPS. Si se modifica la RPL, se construye una RPL de reemplazo según un enfoque de señalización "explícito" mediante el uso de información de modificación de RPL señalizada que indica selecciones de imágenes de referencia del RPS. Alternativamente, las modificaciones para reordenar, agregar una imagen de referencia o eliminar una imagen de referencia de una RPL predeterminada se pueden señalar de una manera más detallada como cambios específicos en relación con la RPL predeterminada.
Algunas de las innovaciones descritas en este documento se ilustran con referencia a elementos de sintaxis y operaciones específicas del estándar HEVC. Por ejemplo, se hace referencia a la versión preliminar JCTVC-I1003 del estándar HEVC - "High efficiency video coding (HEVC) text specification draft 7", JCTVC-I1003_d5, 9a reunión del Equipo Colaborativo Conjunto sobre Codificación de Video ("JCT-VC"), Ginebra, abril del 2012. Consulte también la versión preliminar titulada "High efficiency video coding (HEVC) text specification draft 9", JCTVC-K1003_d11, 11a reunión del JCT-VC, Shanghai, octubre del 2012. Las innovaciones aquí descritas también se pueden implementar para otros estándares o formatos.
Más generalmente, son posibles varias alternativas a los ejemplos descritos en este documento. Por ejemplo, algunos de los métodos descritos en el presente documento pueden modificarse mediante el cambio del orden de los actos del método descritos, al dividir, repetir u omitir ciertos actos del método, etc. Los diversos aspectos de la tecnología descrita se pueden usar en combinación o por separado. Diferentes realizaciones utilizan una o más de las innovaciones descritas. Algunas de las innovaciones descritas en este documento abordan uno o más de los problemas señalados en segundo plano. Normalmente, una técnica/herramienta determinada no resuelve todos estos problemas.
I. Sistemas informáticos ejemplares.
La Figura 1 ilustra un ejemplo generalizado de un sistema (100) informático adecuado en el que se pueden implementar varias de las innovaciones descritas. El sistema (100) informático no pretende sugerir ninguna limitación en cuanto al alcance de uso o funcionalidad, ya que las innovaciones pueden implementarse en diversos sistemas informáticos de propósito general o especial.
Con referencia a la Figura 1, el sistema (100) informático incluye una o más unidades (110, 115) de procesamiento y memoria (120, 125). En la Figura 1, esta configuración (130) más básica se incluye dentro de una línea discontinua. Las unidades (110, 115) de procesamiento ejecutan instrucciones ejecutables por ordenador. Una unidad de procesamiento puede ser una unidad de procesamiento central de propósito general ("CPU"), un procesador en un circuito integrado de aplicación específica ("ASIC") o cualquier otro tipo de procesador. En un sistema de multiprocesamiento, varias unidades de procesamiento ejecutan instrucciones ejecutables por ordenador para aumentar la potencia de procesamiento. Por ejemplo, la Figura 1 muestra una unidad (110) central de procesamiento así como una unidad (115) de procesamiento de gráficos o una unidad de coprocesamiento. La memoria (120, 125) tangible puede ser una memoria volátil (por ejemplo, registros, caché, RAM), memoria no volátil (por ejemplo, ROM, EEPROM, memoria flash, etc.), o alguna combinación de las dos, accesible por la(s) unidad(es) de procesamiento. La memoria (120, 125) almacena software (180) que implementa una o más innovaciones para señalizar la información de modificación de RPL, en forma de instrucciones ejecutables por ordenador adecuadas para su ejecución por la(s) unidad(es) de procesamiento.
Un sistema informático puede tener características adicionales. Por ejemplo, el sistema (100) informático incluye almacenamiento (140), uno o más dispositivos (150) de entrada, uno o más dispositivos (160) de salida y una o más conexiones (170) de comunicación. Un mecanismo de interconexión (no mostrado) tal como un bus, controlador o red interconecta los componentes del sistema (100) informático. Normalmente, el software del sistema operativo (no mostrado) proporciona un entorno operativo para otro software que se ejecuta en el sistema (100) informático y coordina las actividades de los componentes del sistema (100) informático.
El almacenamiento (140) tangible puede ser extraíble o no extraíble, e incluye discos magnéticos, cintas o casetes magnéticos, CD-ROM, DVD o cualquier otro medio que se pueda utilizar para almacenar información y al que se pueda acceder dentro del sistema (100) informático. El almacenamiento (140) almacena instrucciones para el software (180) que implementa una o más innovaciones para señalizar la información de modificación de RPL.
El/los dispositivo(s) (150) de entrada puede(n) ser un dispositivo de entrada táctil como un teclado, mouse, bolígrafo o trackball, un dispositivo de entrada de voz, un dispositivo de escaneo u otro dispositivo que proporcione entrada al sistema (100) informático. Para la codificación de video, el/los dispositivo(s) (150) de entrada puede(n) ser una cámara, tarjeta de video, tarjeta sintonizadora de TV o dispositivo similar que acepta entrada de video en forma analógica o digital, o un CD-ROM o CD-RW que lee muestras de video en el sistema (100) informático. El/los dispositivo(s) (160) de salida pueden ser una pantalla, una impresora, un altavoz, una grabadora de CD u otro dispositivo que proporcione salida desde el sistema (100) informático.
La(s) conexión/conexiones (170) de comunicación permite(n) la comunicación a través de un medio de comunicación a otra entidad informática. El medio de comunicación transmite información tal como instrucciones ejecutables por ordenador, entrada o salida de audio o video, u otros datos en una señal de datos modulada. Una señal de datos modulada es una señal que tiene una o más de sus características establecidas o cambiadas de tal manera que codifica información en la señal. A modo de ejemplo, y no de limitación, los medios de comunicación pueden utilizar una portadora eléctrica, óptica, RF u otra.
Las innovaciones se pueden describir en el contexto general de los medios legibles por ordenador. Los medios legibles por ordenador son cualquier medio tangible disponible al que se puede acceder dentro de un entorno informático. A modo de ejemplo, y no de limitación, con el sistema (100) informático, los medios legibles por ordenador incluyen memoria (120, 125), almacenamiento (140) y combinaciones de cualquiera de los anteriores.
Las innovaciones se pueden describir en el contexto general de instrucciones ejecutables por ordenador, como las incluidas en los módulos del programa, que se ejecutan en un sistema informático en un procesador objetivo real o virtual. Generalmente, los módulos de programa incluyen rutinas, programas, bibliotecas, objetos, clases, componentes, estructuras de datos, etc. que realizan tareas particulares o implementan tipos de datos abstractos particulares. La funcionalidad de los módulos de programa puede combinarse o dividirse entre módulos de programa según se desee en varias realizaciones. Las instrucciones ejecutables por ordenador para módulos de programa pueden ejecutarse dentro de un sistema informático local o distribuido.
Los términos "sistema" y "dispositivo" se usan indistintamente en el presente documento. A menos que el contexto indique claramente lo contrario, ninguno de los términos implica ninguna limitación en un tipo de sistema informático o dispositivo informático. En general, un sistema informático o dispositivo informático puede ser local o distribuido, y puede incluir cualquier combinación de hardware de propósito especial y/o hardware de propósito general con software que implemente la funcionalidad aquí descrita.
Los métodos descritos también se pueden implementar mediante el uso de hardware informático especializado configurado para realizar cualquiera de los métodos descritos. Por ejemplo, los métodos descritos pueden implementarse mediante un circuito integrado (por ejemplo, un circuito integrado específico de la aplicación ("ASIC") (como una unidad de proceso de señal digital ASIC ("DSP"), una unidad de procesamiento de gráficos ("GPU") o un dispositivo lógico programable ("PLD"), como un matriz de puertas programables en campo ("FPGA")) especialmente diseñada o configurada para implementar cualquiera de los métodos descritos.
En aras de la presentación, la descripción detallada utiliza términos como "determinar" y "utilizar" para describir las operaciones del ordenador en un sistema informático. Estos términos son abstracciones de alto nivel para operaciones realizadas por un ordenador y no deben confundirse con actos realizados por un ser humano. Las operaciones informáticas reales correspondientes a estos términos varían según la implementación.
II. Entornos de red ejemplares.
Las Figuras 2a y 2b muestran entornos (201, 202) de red ejemplares que incluyen codificadores (220) de video y decodificadores (270) de video. Los codificadores (220) y decodificadores (270) están conectados a través de una red (250) mediante el uso de un protocolo de comunicación apropiado. La red (250) puede incluir Internet u otra red informática.
En el entorno (201) de red mostrado en la Figura 2a, cada herramienta (210) de comunicación en tiempo real ("RTC") incluye tanto un codificador (220) como un decodificador (270) para comunicación bidireccional. Un codificador (220) determinado puede producir una salida que cumpla con el estándar SMPTE 421M, la norma ISO-IEC 14496-10 (también conocido como H.264 o AVC), el estándar HEVC, otro estándar o un formato propietario, con el decodificador (270) correspondiente que acepta datos codificados del codificador (220). La comunicación bidireccional puede ser parte de una videoconferencia, videollamada u otro escenario de comunicación entre dos partes. Aunque el entorno (201) de red en la Figura 2a incluye dos herramientas (210) de comunicación en tiempo real, el entorno (201) de red puede incluir en su lugar tres o más herramientas (210) de comunicación en tiempo real que participan en la comunicación multipartita.
Una herramienta (210) de comunicación en tiempo real gestiona la codificación mediante un codificador (220). La Figura 3 muestra un sistema (300) codificador ejemplar que se puede incluir en la herramienta (210) de comunicación en tiempo real. Alternativamente, la herramienta (210) de comunicación en tiempo real usa otro sistema codificador. Una herramienta (210) de comunicación en tiempo real también gestiona la decodificación mediante un decodificador (270). La Figura 4 muestra un sistema (400) de decodificador ejemplar, que puede incluirse en la herramienta (210) de comunicación en tiempo real. De manera alternativa, la herramienta (210) de comunicación en tiempo real usa otro sistema decodificador.
En el entorno (202) de red que se muestra en la Figura 2b, una herramienta (212) de codificación incluye un codificador (220) que codifica vídeo para su entrega a múltiples herramientas (214) de reproducción, que incluyen decodificadores (270). La comunicación unidireccional se puede proporcionar para un sistema de videovigilancia, un sistema de monitorización de cámara web, una presentación de conferencia de escritorio remoto u otro escenario en el que el video se codifica y envía desde una ubicación a una o más ubicaciones. Aunque el entorno (202) de red en la Figura 2b incluye dos herramientas (214) de reproducción, el entorno (202) de red puede incluir más o menos herramientas (214) de reproducción. En general, una herramienta (214) de reproducción se comunica con la herramienta (212) de codificación para determinar un flujo de vídeo para que lo reciba la herramienta (214) de reproducción. La herramienta (214) de reproducción recibe el flujo, almacena los datos codificados recibidos durante un período apropiado y comienza a decodificar y reproducir.
La Figura 3 muestra un sistema (300) codificador ejemplar que se puede incluir en la herramienta (212) de codificación. De manera alternativa, la herramienta (212) de codificación usa otro sistema de codificación. La herramienta (212) de codificación también puede incluir lógica de controlador del lado del servidor para gestionar conexiones con una o más herramientas (214) de reproducción. La Figura 4 muestra un sistema (400) de decodificador ejemplar, que puede incluirse en la herramienta (214) de reproducción. De manera alternativa, la herramienta (214) de reproducción usa otro sistema decodificador. Una herramienta (214) de reproducción también puede incluir lógica de controlador del lado del cliente para gestionar conexiones con la herramienta (212) de codificación.
III. Sistemas codificadores ejemplares.
La Figura 3 es un diagrama de bloques de un sistema (300) codificador ejemplar junto con el cual se pueden implementar algunas realizaciones descritas. El sistema (300) codificador puede ser una herramienta de codificación de propósito general capaz de operar en cualquiera de los múltiples modos de codificación, como un modo de codificación de baja latencia para comunicación en tiempo real, modo de transcodificación y modo de codificación regular para reproducción de medios desde un archivo o flujo, o puede ser una herramienta de codificación de propósito especial adaptada para tal modo de codificación. El sistema (300) codificador se puede implementar como un módulo del sistema operativo, como parte de una biblioteca de aplicaciones o como una aplicación independiente. En general, el sistema (300) codificador recibe una secuencia de fotogramas (311) de video fuente desde una fuente (310) de video y produce datos codificados como salida a un canal (390). La salida de datos codificados al canal puede incluir elementos de sintaxis que indican información de modificación de RPL.
La fuente (310) de video puede ser una cámara, tarjeta sintonizadora, medio de almacenamiento u otra fuente de video digital. La fuente (310) de video produce una secuencia de fotogramas de video a una velocidad de fotograma de, por ejemplo, 30 fotogramas por segundo. Como se usa en este documento, el término "fotograma" generalmente se refiere a datos de imagen de fuente, codificados o reconstruidos. Para video progresivo, un fotograma es un fotograma de video progresivo. Para el video entrelazado, en las formas de realización ejemplares, un fotograma de video entrelazado se desentrelaza antes de la codificación. Alternativamente, dos campos de video entrelazados complementarios se codifican como un fotograma de video entrelazado o campos separados. Además de indicar un fotograma de vídeo progresivo, el término "fotograma" o "imagen" puede indicar un único campo de vídeo no emparejado, un par de campos de vídeo complementarios, un plano de objeto de vídeo que representa un objeto de vídeo en un momento determinado o una región de interés en una imagen más grande. El plano o región del objeto de video puede ser parte de una imagen más grande que incluye múltiples objetos o regiones de una escena.
Un fotograma (311) fuente que llega se almacena en un área (320) de almacenamiento de memoria temporal de fotogramas fuente que incluye múltiples áreas (321, 322, ..., 32n) de almacenamiento de memoria intermedia de fotogramas. Una memoria intermedia (321,322, etc.) de fotogramas contiene un fotograma fuente en el área (320) de almacenamiento de fotogramas fuente. Después de que uno o más de los fotogramas (311) fuente se hayan almacenado en memorias intermedias (321, 322, etc.) de fotogramas, un selector (330) de fotogramas selecciona periódicamente un fotograma fuente individual del área (320) de almacenamiento de fotogramas fuente. El orden en el que los fotogramas son seleccionados por el selector (330) de fotogramas para la entrada al codificador (340) puede diferir del orden en el que los fotogramas son producidos por la fuente (310) de video, por ejemplo, un fotograma puede estar adelante en orden, para facilitar la predicción temporalmente hacia atrás. Antes del codificador (340), el sistema (300) codificador puede incluir un preprocesador (no mostrado) que realiza el preprocesamiento (por ejemplo, filtrado) de los fotogramas antes de la codificación. El preprocesamiento también puede incluir la conversión del espacio de color en componentes primarios y secundarios para la codificación.
El codificador (340) codifica el fotograma (331) seleccionado para producir un fotograma (341) codificado y también produce señales (342) de operación de control de gestión de memoria ("MMCO") o información de conjunto de imágenes de referencia ("RPS"). Si el fotograma actual no es el primer fotograma que ha sido codificado, al realizar su proceso de codificación, el codificador (340) puede usar uno o más fotogramas (369) previamente codificados/decodificados que han sido almacenados en un área (360) de almacenamiento de memoria temporal de fotogramas decodificados. Tales fotogramas (369) decodificados almacenados se utilizan como imágenes de referencia para la predicción entre fotogramas del contenido del fotograma (331) fuente actual. Generalmente, el codificador (340) incluye múltiples módulos de codificación que realizan tareas de codificación tales como estimación y compensación de movimiento, transformaciones de frecuencia, cuantificación y codificación de entropía. Las operaciones exactas realizadas por el codificador (340) pueden variar según el formato de compresión. El formato de los datos codificados de salida puede ser un formato de vídeo de Windows Media, formato VC-1, formato MPEG-x (p. Ej., MPEG-1, MPEG-2 o MPEG-4), formato H.26x (p. Ej., H.261, H.262, H.263, H.264), formato HeVC u otro formato.
Por ejemplo, dentro del codificador (340), un fotograma predicho intercodificado se representa en términos de predicción a partir de fotogramas de referencia, que son ejemplos de imágenes de referencia. Un estimador de movimiento estima el movimiento de bloques u otros conjuntos de muestras de un fotograma (341) fuente con respecto a uno o más fotogramas (369) de referencia. Cuando se utilizan múltiples fotogramas de referencia, los múltiples fotogramas de referencia pueden ser de diferentes direcciones temporales o de la misma dirección temporal. Los fotogramas de referencia (imágenes de referencia) pueden ser parte de una o más RPL, con índices de referencia que abordan las imágenes de referencia en la(s) RPL. La(s) RPL se construyen durante la codificación para que se agreguen nuevas imágenes de referencia cuando sea apropiado, las imágenes de referencia más antiguas que ya no se usan para la compensación de movimiento se eliminan cuando corresponde, y las imágenes de referencia se reordenan cuando corresponde. En algunas implementaciones, por ejemplo, al codificar una imagen actual, el codificador (340) determina un RPS que incluye imágenes de referencia en el área (360) de almacenamiento de fotogramas decodificados, luego crea una o más RPL para codificar un segmento dado de la imagen actual. Se puede crear una RPL mediante la aplicación de reglas sobre la selección de imágenes de referencia disponibles del RPS (enfoque implícito), en cuyo caso la información de modificación de la RPL no se señaliza explícitamente en el flujo de bits. O bien, la RPL se puede crear mediante la selección de imágenes de referencia específicas disponibles en el RPS, donde las imágenes de referencia que se seleccionan se indicarán en la información de modificación de RPL que se señaliza en el flujo de bits. En comparación con una RPL que se construiría mediante reglas del enfoque implícito, la información de modificación de la RPL puede especificar una RPL de reemplazo como una lista de imágenes de referencia en el RPS. Alternativamente, la información de modificación de RPL puede, de una manera más detallada, especificar la eliminación de una o más imágenes de referencia, la adición de una o más imágenes de referencia y/o el reordenamiento de las imágenes de referencia en la RPL construida por reglas del enfoque implícito.
Al codificar un fotograma intercodificado, el codificador (340) puede evaluar los resultados de la compensación de movimiento para los que no se modifica una RPL según los elementos de sintaxis señalados explícitamente en el flujo de bits, y también evaluar los resultados de la compensación de movimiento para los que la RPL es modificada según elementos de sintaxis señalados explícitamente en el flujo de bits (o resultados de múltiples formas diferentes de modificar la RPL). El codificador (340) puede decidir utilizar la RPL predeterminada (sin información de modificación de RPL señalizada en el flujo de bits) o una RPL modificada (con información de modificación de RPL señalizada en el flujo de bits). Cuando se modifica la RPL (por ejemplo, reemplazada, ajustada), en comparación con la RPL predeterminada, el codificador (340) puede realizar una o más de (a) reordenar imágenes de referencia para un direccionamiento más eficiente con índices de referencia, (b) eliminar imágenes de referencia basadas al menos en parte en frecuencia de uso durante la codificación, y (c) agregar imágenes de referencia basadas al menos en parte en la frecuencia de uso durante la codificación. Por ejemplo, el codificador (340) puede decidir eliminar una imagen de referencia dada de la RPL después de que la utilización de la imagen de referencia para la compensación de movimiento caiga por debajo de una cantidad umbral y/o según otros criterios. Como otro ejemplo, el codificador (340) puede decidir agregar una imagen de referencia dada a la RPL si la utilización de la imagen de referencia para la compensación de movimiento está por encima de una cantidad umbral y/o según otros criterios. Como otro ejemplo, el codificador (340) puede decidir cómo reordenar las imágenes de referencia en la RPL basándose en la frecuencia de utilización de las respectivas imágenes de referencia y/o según otros criterios.
El estimador de movimiento genera información de movimiento, como información de vector de movimiento, que está codificada por entropía. Un compensador de movimiento aplica vectores de movimiento a imágenes de referencia para determinar valores de predicción compensados por movimiento. El codificador determina las diferencias (si las hay) entre los valores de predicción con compensación de movimiento de un bloque y los valores originales correspondientes. Estos valores residuales de predicción se codifican adicionalmente mediante el uso de una transformación de frecuencia, cuantificación y codificación de entropía. De manera similar, para la predicción interna, el codificador (340) puede determinar valores de predicción interna para un bloque, determinar valores residuales de predicción y codificar los valores residuales de predicción (con una codificación de transformación de frecuencia, cuantificación y entropía). En particular, el codificador de entropía del codificador (340) comprime valores de coeficientes de transformación cuantificados así como cierta información lateral (por ejemplo, información de vector de movimiento, valores de QP, decisiones de modo, opciones de parámetros, índices de referencia, información de modificación de RPL). Las técnicas típicas de codificación de entropía incluyen codificación Exp-Golomb, codificación aritmética, codificación diferencial, codificación Huffman, codificación de longitud de ejecución, codificación de longitud variable a longitud variable ("V2V"), longitud variable a longitud fija ("V2F"), codificación LZ, codificación de diccionario, codificación de entropía de partición de intervalo de probabilidad ("PIPE") y combinaciones de los anteriores. El codificador de entropía puede usar diferentes técnicas de codificación para diferentes tipos de información y puede elegir entre múltiples tablas de códigos dentro de una técnica de codificación particular.
Los fotogramas (341) codificados y la información (342) MMCO/RPS son procesados por un emulador (350) del proceso de decodificación. El emulador (350) del proceso de decodificación implementa algunas de las funciones de un decodificador, por ejemplo, tareas de decodificación para reconstruir imágenes de referencia que son utilizadas por el codificador (340) en compensación de movimiento. El emulador (350) del proceso de decodificación usa la información (342) MMCO/RPS para determinar si un fotograma (341) codificado dado necesita ser reconstruido y almacenado para su uso como imagen de referencia en la predicción entre fotogramas de fotogramas subsiguientes a codificar. Si la información (342) MMCO/RPS indica que un fotograma (341) codificado necesita ser almacenado, el emulador (350) de proceso de decodificación modela el proceso de decodificación que sería realizado por un decodificador que recibe el fotograma (341) codificado y produce un fotograma (351) decodificado correspondiente. Al hacerlo, cuando el codificador (340) ha utilizado fotograma(s) (369) decodificado(s) que se ha(n) almacenado en el área (360) de almacenamiento de fotogramas decodificadas, el emulador (350) del proceso de decodificación también usa el/los fotograma(s) (369) decodificado(s) del área (360) de almacenamiento como parte del proceso de decodificación.
El área (360) de almacenamiento de memoria temporal de fotogramas decodificados incluye múltiples áreas (361, 362, ..., 36n) de almacenamiento de memoria intermedia de fotogramas. El emulador (350) del proceso de decodificación utiliza la información (342) MMCO/RPS para gestionar el contenido del área (360) de almacenamiento con el fin de identificar cualquier memoria intermedia (361, 362, etc.) de fotogramas con fotogramas que ya no son necesarias por codificador (340) para utilizar como imágenes de referencia. Después de modelar el proceso de decodificación, el emulador (350) del proceso de decodificación almacena un fotograma (351) recién decodificado en una memoria intermedia (361,362, etc.) de fotogramas que ha sido identificada de esta manera.
Los fotogramas (341) codificados y la información (342) MMCO/RPS también se almacenan temporalmente en un área (370) de datos codificados temporal. Los datos codificados que se agregan en el área (370) de datos codificados pueden contener, como parte de la sintaxis de un flujo de bits de vídeo codificado elemental, elementos de sintaxis que indican información de modificación de RPL. Los datos codificados que se agregan en el área (370) de datos codificados también pueden incluir metadatos de medios relacionados con los datos de video codificados (por ejemplo, como uno o más parámetros en uno o más mensajes de información de mejora suplementaria ("SEI") o mensajes de información de usabilidad de vídeo ("VUI")).
Los datos (371) agregados del área (370) de datos codificados temporalmente son procesados por un codificador (380) de canal. El codificador (380) de canal puede empaquetar los datos agregados para su transmisión como un flujo de medios (por ejemplo, según un formato contenedor de medios como ISO/IEC 14496-12), en cuyo caso el codificador (380) de canal puede agregar elementos de sintaxis como parte de la sintaxis del flujo de transmisión de medios. O, el codificador (380) de canal puede organizar los datos agregados para almacenarlos como un archivo (por ejemplo, según un formato de contenedor de medios como ISO/IEC 14496-12), en cuyo caso el codificador (380) de canal puede agregar elementos de sintaxis como parte de la sintaxis del archivo de almacenamiento de medios. O, de forma más general, el codificador (380) de canal puede implementar uno o más protocolos de multiplexación de sistemas de medios o protocolos de transporte, en cuyo caso el codificador (380) de canal puede añadir elementos de sintaxis como parte de la sintaxis del/de los protocolo(s). El codificador (380) de canal proporciona salida a un canal (390), que representa almacenamiento, una conexión de comunicaciones u otro canal para la salida.
IV. Sistemas decodificadores ejemplares.
La Figura 4 es un diagrama de bloques de un sistema (400) decodificador ejemplar junto con el cual se pueden implementar algunas realizaciones descritas. El sistema (400) decodificador puede ser una herramienta de decodificación de propósito general capaz de operar en cualquiera de los múltiples modos de decodificación, como un modo de decodificación de baja latencia para comunicación en tiempo real y un modo de decodificación regular para reproducción de medios desde un archivo o flujo, o puede ser una herramienta de decodificación de propósito especial adaptada para tal modo de decodificación. El sistema (400) decodificador se puede implementar como un módulo del sistema operativo, como parte de una biblioteca de aplicaciones o como una aplicación independiente. En general, el sistema (400) decodificador recibe datos codificados de un canal (410) y produce fotogramas reconstruidos como salida para un destino (490) de salida. Los datos codificados pueden incluir elementos de sintaxis que indican información de modificación de RPL.
El sistema (400) decodificador incluye un canal (410), que puede representar almacenamiento, una conexión de comunicaciones u otro canal para datos codificados como entrada. El canal (410) produce datos codificados que han sido codificados por canal. Un decodificador (420) de canal puede procesar los datos codificados. Por ejemplo, el decodificador (420) de canal desempaqueta los datos que se han agregado para su transmisión como un flujo de medios (por ejemplo, según un formato contenedor de medios como ISO/IEC 14496-12), en cuyo caso el decodificador (420) de canal puede analizar elementos sintácticos agregados como parte de la sintaxis del flujo de transmisión de medios. O, el decodificador (420) de canal separa los datos de video codificados que se han agregado para su almacenamiento como un archivo (por ejemplo, según un formato contenedor de medios como ISO/IEC 14496-12), en cuyo caso el decodificador (420) de canal puede analizar los elementos sintácticos agregados como parte de la sintaxis del archivo de almacenamiento de medios. O, más generalmente, el decodificador (420) de canal puede implementar uno o más protocolos de demultiplexación del sistema de medios o protocolos de transporte, en cuyo caso el decodificador (420) de canal puede analizar elementos sintácticos añadidos como parte de la sintaxis del/de los protocolo(s).
Los datos (421) codificados que salen del decodificador (420) de canal se almacenan en un área (430) de datos codificados temporal hasta que se haya recibido una cantidad suficiente de tales datos. Los datos (421) codificados incluyen fotogramas (431) codificados e información (432) MMCO/RPS. Los datos (421) codificados en el área (430) de datos codificados pueden contener, como parte de la sintaxis de un flujo de bits de video codificado elemental, elementos de sintaxis que indican información de modificación de RPL. Los datos (421) codificados en el área (430) de datos codificados también pueden incluir metadatos de medios relacionados con los datos de video codificados (por ejemplo, como uno o más parámetros en uno o más mensajes SEI o mensajes VUI). En general, el área (430) de datos codificados almacena temporalmente datos (421) codificados hasta que el decodificador (450) utiliza dichos datos (421) codificados. En ese punto, los datos codificados para un fotograma (431) codificado y la información (432) MMCO/RPS se transfieren desde el área (430) de datos codificados al decodificador (450). A medida que continúa la decodificación, se añaden nuevos datos codificados al área (430) de datos codificados y los datos codificados más antiguos que quedan en el área (430) de datos codificados se transfieren al decodificador (450).
El decodificador (450) decodifica periódicamente un fotograma (431) codificado para producir un fotograma (451) decodificado correspondiente. Según sea apropiado, al realizar su proceso de decodificación, el decodificador (450) puede usar uno o más fotogramas (469) previamente decodificados como fotogramas de referencia (imágenes de referencia) para la predicción entre fotogramas. El decodificador (450) lee dichos fotogramas (469) decodificadas previamente de un área (460) de almacenamiento de memoria temporal de fotogramas decodificados. Generalmente, el decodificador (450) incluye múltiples módulos de decodificación que realizan tareas de decodificación tales como decodificación de entropía, cuantificación inversa, transformaciones de frecuencia inversa y compensación de movimiento (que pueden crear RPL mediante el uso de información de modificación de RPL). Las operaciones exactas realizadas por el decodificador (450) pueden variar según el formato de compresión.
Por ejemplo, el decodificador (450) recibe datos codificados para un fotograma comprimido o secuencia de fotogramas y produce una salida que incluye el fotograma (451) decodificado. En el decodificador (450), una memoria intermedia recibe datos codificados para un fotograma comprimido y hace que los datos codificados recibidos estén disponibles para un decodificador de entropía. El decodificador de entropía decodifica en entropía datos cuantificados codificados en entropía, así como información lateral codificada en entropía (incluidos índices de referencia, información de modificación de RPL, etc.), mediante la aplicación de normalmente la codificación inversa de entropía realizada en el codificador. El decodificador construye una o más RPL para imágenes de referencia, con índices de referencia que se refieren a las imágenes de referencia en la(s) RPL. La(s) RPL están construidas para que se agreguen nuevas imágenes de referencia cuando sea apropiado, las imágenes de referencia más antiguas que ya no se utilizan para la compensación de movimiento se eliminan cuando corresponde, y las imágenes de referencia se reordenan cuando corresponde. En algunas implementaciones, por ejemplo, al decodificar una imagen actual, el decodificador (450) determina un RPS que incluye imágenes de referencia en el área (460) de almacenamiento de fotogramas decodificados, luego crea una o más RPL para decodificar un segmento dado de la imagen actual. Se puede crear una RPL mediante la aplicación de reglas sobre la selección de imágenes de referencia disponibles en el RPS, en cuyo caso la información de modificación de la RPL no se analiza a partir del flujo de bits. O bien, la RPL se puede crear mediante la selección de imágenes de referencia específicas disponibles en el RPS, donde las imágenes de referencia que se seleccionan se indican en la información de modificación de RPL que se analiza a partir del flujo de bits. En comparación con una RPL que se construiría mediante reglas del enfoque implícito, la información de modificación de la RPL puede especificar una RPL de reemplazo como una lista de imágenes de referencia en el RPS. Alternativamente, la información de modificación de RPL puede, de una manera más detallada, especificar la eliminación de una o más imágenes de referencia, la adición de una o más imágenes de referencia y/o el reordenamiento de las imágenes de referencia en la RPL construida por reglas del enfoque implícito.
Un compensador de movimiento aplica información de movimiento a una o más imágenes de referencia para formar predicciones compensadas por movimiento de sub-bloques y/o bloques (generalmente, bloques) del fotograma que se está reconstruyendo. Un módulo de intra predicción puede predecir espacialmente valores de muestra de un bloque actual a partir de valores de muestra vecinos previamente reconstruidos. El decodificador (450) también reconstruye los residuos de predicción. Un cuantificador inverso cuantifica los datos decodificados por entropía. Un transformador de frecuencia inversa convierte los datos de dominio de frecuencia reconstruidos en información de dominio espacial. Para un fotograma predicho, el decodificador (450) combina residuos de predicción reconstruidos con predicciones compensadas por movimiento para formar un fotograma reconstruido. El decodificador (450) puede combinar de manera similar residuos de predicción con predicciones espaciales de intra predicción. Un bucle de compensación de movimiento en el decodificador (450) de vídeo incluye un filtro de desbloqueo adaptativo para suavizar las discontinuidades a través de filas y/o columnas de límites de bloque en el fotograma (451) decodificado.
El área (460) de almacenamiento de memoria temporal de fotogramas decodificadas incluye múltiples áreas (461, 462, ..., 46n) de almacenamiento de memoria intermedia de fotogramas. El área (460) de almacenamiento de fotogramas decodificadas es un ejemplo de un DPB. El decodificador (450) usa la información (432) MMCO/RPS para identificar una memoria intermedia (461, 462, etc.) de fotogramas en la que puede almacenar un fotograma (451) decodificado. El decodificador (450) almacena el fotograma (451) decodificado en esa memoria intermedia de fotogramas.
Un secuenciador (480) de salida usa la información (432) MMCO/RPS para identificar cuándo está disponible el siguiente fotograma a producir en el orden de salida en el área (460) de almacenamiento de fotogramas decodificados. Cuando el siguiente fotograma (481) que se va a producir en el orden de salida está disponible en el área (460) de almacenamiento de fotogramas decodificados, el secuenciador (480) de salida lo lee y lo envía al destino (490) de salida (por ejemplo, mostrar). En general, el orden en el que los fotogramas son emitidos desde el área (460) de almacenamiento de fotogramas decodificados por el secuenciador (480) de salida puede diferir del orden en el que los fotogramas son decodificados por el decodificador (450).
V. Codificadores de video ejemplares.
La Figura 5 es un diagrama de bloques de un codificador (500) de video generalizado junto con el cual se pueden implementar algunas realizaciones descritas. El codificador (500) recibe una secuencia de fotogramas de vídeo que incluye un fotograma (505) actual y produce datos (595) codificados como salida.
El codificador (500) está basado en bloques y usa un formato de bloque que depende de la implementación. Los bloques pueden subdividirse aún más en diferentes etapas, por ejemplo, en las etapas de codificación de entropía y transformación de frecuencia. Por ejemplo, un fotograma se puede dividir en bloques de 64x64, bloques de 32x32 o bloques de 16x16, que a su vez se pueden dividir en bloques más pequeños y sub-bloques de valores de píxeles para codificar y decodificar.
El sistema (500) codificador comprime los fotogramas pronosticados y los fotogramas intracodificados. En aras de la presentación, la Figura 5 muestra una "ruta interna" a través del codificador (500) para la codificación intrafotograma y una "ruta intermedia" para la codificación entre fotogramas. Muchos de los componentes del codificador (500) se utilizan tanto para la codificación dentro del fotograma como para la codificación entre fotogramas. Las operaciones exactas realizadas por esos componentes pueden variar según el tipo de información que se comprime.
Si el fotograma (505) actual es un fotograma predicho, un estimador (510) de movimiento estima el movimiento de bloques, sub-bloques u otros conjuntos de valores de píxeles del fotograma (505) actual con respecto a uno o más fotogramas de referencia (imágenes de referencia ). El almacenamiento (520) de fotogramas almacena en memoria intermedia uno o más fotogramas (525) previos reconstruidos para su uso como fotogramas de referencia (imágenes de referencia). Cuando se utilizan múltiples imágenes de referencia, las múltiples imágenes de referencia pueden ser de diferentes direcciones temporales o de la misma dirección temporal. Las múltiples imágenes de referencia se pueden representar en una o más RPL, que se direccionan con índices de referencia. El estimador (510) de movimiento genera como información lateral información (515) de movimiento tal como información de vector de movimiento diferencial, índices de referencia e información de modificación de RPL. Durante la codificación, el codificador (500) construye la(s) RPL para que se agreguen nuevas imágenes de referencia cuando sea apropiado, las imágenes de referencia más antiguas que ya no se utilizan para la compensación de movimiento se eliminan cuando corresponde, y las imágenes de referencia se reordenan en la(s) RPL cuando sea apropiado.
En algunas implementaciones, al codificar un fotograma actual, el codificador (500) determina un RPS que incluye fotogramas de referencia en el almacenamiento (520) de fotogramas. El codificador (500) determina normalmente el RPS para el primer segmento del fotograma. Segmento a segmento, el codificador (500) crea una o más RPL para codificar un segmento dado del fotograma actual. Para crear una RPL, el codificador (500) puede aplicar reglas sobre la selección de los fotogramas de referencia disponibles del RPS, en cuyo caso la información de modificación de la RPL no se señaliza explícitamente en los datos (595) codificados. O, para crear la RPL, el codificador (500) puede seleccionar fotogramas de referencia específicos disponibles del RPS, donde los fotogramas de referencia que se seleccionan se indicarán en la información de modificación de RPL que se señaliza en los datos (595) codificados. En comparación con una RPL que se construiría mediante reglas del enfoque implícito, la información de modificación de la RPL puede especificar una RPL de reemplazo como una lista de imágenes de referencia en el RPS. Alternativamente, la información de modificación de RPL puede, de una manera más detallada, especificar la eliminación de uno o más fotogramas de referencia, la adición de uno o más fotogramas de referencia y/o el reordenamiento de los fotogramas de referencia en la RPL construido implícitamente por reglas.
El compensador (530) de movimiento aplica vectores de movimiento reconstruidos a los fotogramas (525) de referencia reconstruidos cuando se forma un fotograma (535) actual compensado por movimiento. La diferencia (si existe) entre un sub-bloque, bloque, etc. del fotograma (535) actual compensado por movimiento y la parte correspondiente del fotograma (505) actual original es la predicción residual (545) para el sub-bloque, bloque, etc. Durante la reconstrucción posterior del fotograma actual, los residuos de predicción reconstruidos se añaden al fotograma (535) actual compensado por movimiento para obtener un fotograma reconstruido que está más cerca del fotograma (505) actual original. Sin embargo, en la compresión con pérdida, todavía se pierde parte de la información del fotograma (505) actual original. La ruta intra puede incluir un módulo de predicción intra (no mostrado) que predice espacialmente valores de píxeles de un bloque o sub-bloque actual a partir de valores de píxeles vecinos previamente reconstruidos.
Un transformador (560) de frecuencia convierte la información de video de dominio espacial en datos del dominio de frecuencia (es decir, espectrales, de transformación). Para fotogramas de video basados en bloques, el transformador (560) de frecuencia aplica una transformada de coseno discreta, una aproximación entera de la misma u otro tipo de transformada de bloque directo a bloques o sub-bloques de datos de valor de píxel o datos residuales de predicción, produciendo bloques/sub-bloques de coeficientes de transformada de frecuencia. A continuación, un cuantificador (570) cuantifica los coeficientes de transformación. Por ejemplo, el cuantificador (570) aplica una cuantificación escalar no uniforme a los datos del dominio de la frecuencia con un tamaño de paso que varía fotograma por fotograma, segmento por segmento, bloque por bloque u otro.
Cuando se necesita una versión reconstruida del fotograma actual para la estimación/compensación de movimiento subsiguiente, un cuantificador (576) inverso realiza una cuantificación inversa en los datos de coeficientes de frecuencia cuantificados. Un transformador (566) de frecuencia inversa realiza una transformada de frecuencia inversa, al producir bloques/sub-bloques de residuos de predicción reconstruidos o valores de píxeles. Para un fotograma predicho, el codificador (500) combina residuos (545) de predicción reconstruidos con predicciones (535) compensadas por movimiento para formar el fotograma (505) reconstruido, que puede usarse como imagen de referencia. (Aunque no se muestra en la Figura 5, en la ruta intra, el codificador (500) puede combinar los residuales de predicción con predicciones espaciales de la predicción intra para reconstruir un fotograma que se utiliza como imagen de referencia). El almacenamiento (520) de fotogramas almacena en la memoria intermedia el fotograma actual reconstruido para usar como imagen de referencia en la predicción con compensación de movimiento subsiguiente.
Un bucle de compensación de movimiento en el codificador (500) incluye un filtro (510) de desbloqueo en bucle adaptable antes o después del almacenamiento (520) de fotogramas. El decodificador (500) aplica filtrado en bucle a los fotogramas reconstruidos para suavizar adaptativamente las discontinuidades a través de los límites de los fotogramas.
El codificador (580) de entropía comprime la salida del cuantificador (570) así como la información (515) de movimiento y cierta información lateral (por ejemplo, valores de QP, índices de referencia, información de modificación de RPL). El codificador (580) de entropía proporciona datos (595) codificados a la memoria intermedia (590), que multiplexa los datos codificados en un flujo de bits de salida. Los datos (595) codificados pueden incluir elementos de sintaxis que indican información de modificación de RPL. La Sección VII describe ejemplos de tales elementos de sintaxis.
Un controlador (no mostrado) recibe entradas de varios módulos del codificador. El controlador evalúa los resultados intermedios durante la codificación, por ejemplo, mediante el establecimiento de valores de QP y mediante la realización de un análisis de distorsión de tasa. El controlador trabaja con otros módulos para establecer y cambiar los parámetros de codificación durante la codificación. En particular, al decidir si modificar (por ejemplo, reemplazar, ajustar) la o las RPL, el controlador puede controlar qué imágenes de referencia se agregan a la o las RPL, controlar qué imágenes se eliminan de la(s) RPL y reordenar imágenes de referencia en la(s) RPL para un direccionamiento más eficiente con índices de referencia. El controlador puede decidir eliminar las imágenes de referencia del RPS (y, por lo tanto, las RPL), por ejemplo, mediante la eliminación de todas las imágenes de referencia después de un cambio de escena, mediante la eliminación de todas las imágenes de referencia después de codificar un tipo especial de imagen como una imagen IDR, mediante la eliminación de la imagen de referencia dada después de la utilización de la imagen de referencia para la compensación de movimiento cae por debajo de una cantidad umbral y/o la eliminación de imágenes de referencia según otros criterios. El controlador puede decidir agregar imágenes de referencia al RPS, por ejemplo, mediante la agregación de imágenes según el tipo de imagen/tipos de segmento en las imágenes, la capa temporal para las imágenes y/u otros criterios. Para una RPL, el controlador puede evaluar los resultados de la compensación de movimiento para los que una RPL no se modifica según los elementos de sintaxis señalados explícitamente en el flujo de bits, y también evaluar los resultados de la compensación de movimiento para los cuales la RPL se modifica según los elementos de sintaxis señalados explícitamente en el flujo de bits (o resultados de múltiples formas diferentes de modificar la RPL). El controlador puede evaluar los resultados en términos de tasa de bits y/o calidad. El controlador puede seleccionar la RPL construida implícitamente por reglas (sin información de modificación de RPL) o seleccionar una RPL que haya sido modificada (como se especifica con la información de modificación de RPL). Modificar (por ejemplo, reemplazar, ajustar) una RPL, en comparación con la RPL construida implícitamente, el controlador puede (a) reordenar imágenes de referencia para un direccionamiento más eficiente con índices de referencia, (b) eliminar imágenes de referencia basándose al menos en parte en la frecuencia de uso durante la codificación y/o (c) añadir imágenes de referencia basadas al menos en parte en la frecuencia de uso durante la codificación. Por ejemplo, el controlador puede decidir eliminar una imagen de referencia dada de la RPL después de que la utilización de la imagen de referencia para la compensación de movimiento caiga por debajo de una cantidad umbral y/o según otros criterios. O el controlador puede decidir agregar una imagen de referencia dada a la RPL si la utilización de la imagen de referencia para la compensación de movimiento está por encima de una cantidad umbral y/o según otros criterios. O el controlador puede decidir cómo reordenar las imágenes de referencia en la RPL basándose en la frecuencia de utilización de las respectivas imágenes de referencia y/o según otros criterios. El controlador puede construir la(s) RPL imagen por imagen, segmento por segmento u otro.
Dependiendo de la implementación y el tipo de compresión deseada, los módulos del codificador pueden agregarse, omitirse, dividirse en múltiples módulos, combinarse con otros módulos y/o reemplazarse con módulos similares. En realizaciones alternativas, codificadores con diferentes módulos y/u otras configuraciones de módulos realizan una o más de las técnicas descritas. Las realizaciones específicas de codificadores normalmente usan una variación o versión complementada del codificador (500). Las relaciones mostradas entre módulos dentro del codificador (500) indican flujos generales de información en el codificador; otras relaciones no se muestran en aras de la simplicidad.
VI. Decodificadores de video ejemplares.
La Figura 6 es un diagrama de bloques de un decodificador (600) generalizado junto con el cual se pueden implementar varias realizaciones descritas. El decodificador (600) recibe datos (695) codificados para un fotograma comprimido o secuencia de fotogramas y produce una salida que incluye un fotograma (605) reconstruido, que puede usarse como imagen de referencia. En aras de la presentación, la Figura 6 muestra una "ruta intra" a través del decodificador (600) para la decodificación intra-fotograma y una "ruta entre" para la decodificación entre fotogramas. Muchos de los componentes del decodificador (600) se utilizan tanto para la decodificación intra fotograma como para la decodificación entre fotogramas. Las operaciones exactas realizadas por esos componentes pueden variar según el tipo de información que se descomprime.
Una memoria intermedia (690) recibe datos (695) codificados para un fotograma comprimido y hace que los datos codificados recibidos estén disponibles para el analizador sintáctico/decodificador (680) de entropía. Los datos (695) codificados pueden incluir elementos de sintaxis que indican información de modificación de RPL. La Sección VII describe ejemplos de tales elementos de sintaxis. El analizador/decodificador (680) de entropía decodifica en entropía datos cuantificados codificados en entropía así como información lateral codificada en entropía (incluidos índices de referencia, información de modificación de RPL, etc.), mediante la aplicación normalmente de la codificación inversa de entropía realizada en el codificador.
Durante la decodificación, el decodificador (600) construye la(s) RPL para que se agreguen nuevas imágenes de referencia cuando sea apropiado, las imágenes de referencia más antiguas que ya no se usan para la compensación de movimiento se eliminan cuando es apropiado, y las imágenes de referencia se reordenan cuando es apropiado. El decodificador (600) puede construir la(s) RPL basándose en la información disponible sobre la(s) RPL (por ejemplo, imágenes de referencia disponibles en el RPS), modificaciones según reglas y/o según modificaciones señaladas como parte de los datos (695) codificados. En algunas implementaciones, por ejemplo, al decodificar un fotograma actual, el decodificador (600) determina un RPS que incluye fotogramas de referencia en el almacenamiento (620) de fotogramas. El decodificador (600) determina típicamente el RPS para el primer segmento del fotograma. Segmento a segmento, el decodificador (600) crea una o más RPL para decodificar un segmento dado del fotograma actual. Para crear una RPL, en algunos casos (como se indica en los datos (695) codificados), el decodificador (600) aplica reglas sobre la selección de los fotogramas de referencia disponibles del RPS, en cuyo caso la información de modificación de la RPL no se analiza a partir de los datos (695) codificados. En otros casos, para crear la RPL, el decodificador (600) selecciona fotogramas de referencia específicos disponibles del RPS, donde los fotogramas de referencia que se seleccionan se indican en la información de modificación de RPL que se analiza a partir de los datos (695) codificados. La información de modificación de RPL puede especificar una RPL de reemplazo como una lista de imágenes de referencia en el RPS. Alternativamente, la información de modificación de RPL puede, de una manera más detallada, especificar la eliminación de uno o más fotogramas de referencia, la adición de uno o más fotogramas de referencia y/o el reordenamiento de los fotogramas de referencia en la RPL construida implícitamente por reglas.
Un compensador (630) de movimiento aplica información (615) de movimiento a una o más imágenes (625) de referencia para formar predicciones (635) de movimiento compensado de sub-bloques y/o bloques del fotograma (605) que se está reconstruyendo. El almacenamiento (620) de fotogramas almacena uno o más fotogramas previamente reconstruidos para su uso como imágenes de referencia.
La ruta intra puede incluir un módulo de predicción intra (no mostrado) que predice espacialmente valores de píxeles de un bloque o sub-bloque actual a partir de valores de píxeles vecinos previamente reconstruidos. En ruta entre, el decodificador (600) reconstruye los residuos de predicción. Un cuantificador (670) inverso cuantifica los datos decodificados por entropía. Un transformador (660) de frecuencia inversa convierte los datos de dominio de frecuencia reconstruidos en información de dominio espacial. Por ejemplo, el transformador (660) de frecuencia inversa aplica una transformación de bloque inverso a los coeficientes de transformación de frecuencia, produciendo datos de valor de píxel o datos residuales de predicción. La transformada de frecuencia inversa puede ser una transformada de coseno discreta inversa, una aproximación entera de la misma u otro tipo de transformada de frecuencia inversa.
Para un fotograma predicho, el decodificador (600) combina residuos (645) de predicción reconstruidos con predicciones (635) compensadas por movimiento para formar el fotograma (605) reconstruido, que puede usarse como imagen de referencia. (Aunque no se muestra en la Figura 6, en la ruta intra, el decodificador (600) puede combinar los residuales de predicción con predicciones espaciales de la predicción intra para reconstruir un fotograma, que puede usarse como una imagen de referencia). Un bucle de compensación de movimiento en el decodificador (600) incluye un filtro (610) de desbloqueo en bucle adaptativo antes o después del almacenamiento (620) de fotogramas. El decodificador (600) aplica filtrado en bucle a los fotogramas reconstruidas para suavizar adaptativamente las discontinuidades a través de los límites de los fotogramas.
En la Figura 6, el decodificador (600) también incluye un filtro (608) de desbloqueo de posprocesamiento. El filtro (608) de desbloqueo de posprocesamiento suaviza opcionalmente las discontinuidades en los fotogramas reconstruidos. También se pueden aplicar otros filtros (como el filtrado de anillo) como parte del filtrado de posprocesamiento.
Dependiendo de la implementación y el tipo de descompresión deseada, los módulos del decodificador pueden agregarse, omitirse, dividirse en múltiples módulos, combinarse con otros módulos y/o reemplazarse con módulos similares. En realizaciones alternativas, los decodificadores con diferentes módulos y/u otras configuraciones de módulos realizan una o más de las técnicas descritas. Las realizaciones específicas de los decodificadores normalmente usan una variación o una versión complementada del decodificador (600). Las relaciones mostradas entre módulos dentro del decodificador (600) indican flujos generales de información en el decodificador; otras relaciones no se muestran en aras de la simplicidad.
VII. Señalización de la información de modificación de la lista de imágenes de referencia.
Esta sección presenta varias innovaciones en el área de señalización de información de modificación de RPL. En algunas situaciones, estas innovaciones dan como resultado una señalización más eficiente de los elementos de sintaxis para la información de modificación de RPL.
A. Imágenes de referencia y RPL.
Una imagen de referencia es, en general, una imagen que contiene muestras que pueden usarse para la predicción entre imágenes en el proceso de decodificación de otras imágenes, que normalmente siguen a la imagen de referencia en el orden de decodificación. Pueden estar disponibles varias imágenes de referencia en un momento dado para su uso en la predicción con compensación de movimiento.
En general, una lista de imágenes de referencia ("RPL") es una lista de imágenes de referencia utilizadas para la predicción con compensación de movimiento. Las imágenes de referencia en la RPL se tratan con índices de referencia. Un índice de referencia identifica una imagen de referencia en la RPL. Durante la codificación y decodificación, cuando se construye una RPL, las imágenes de referencia en la RPL pueden cambiar de vez en cuando para agregar imágenes recién decodificadas, eliminar imágenes más antiguas que ya no se utilizan como imágenes de referencia y/o reordenar imágenes de referencia dentro de la RPL para hacer que la señalización de los índices de referencia más utilizados sea más eficiente. Un codificador y un decodificador pueden seguir las mismas reglas para construir, modificar, etc. su(s) RPL. Además de tales reglas (o en lugar de tales reglas), un codificador puede enviar información a un decodificador que indica cómo el decodificador debe construir, modificar, etc. su(s) RPL para que coincidan con la(s) RPL utilizadas por el codificador. Normalmente, una RPL se construye durante la codificación y decodificación en función de la información disponible sobre la RPL (por ejemplo, imágenes disponibles en el RPS), modificaciones según reglas y/o modificaciones señaladas en el flujo de bits.
En algunas implementaciones, para una imagen actual, un codificador o decodificador determina un conjunto de imágenes de referencia ("RPS") que incluye imágenes de referencia en un área de almacenamiento de fotogramas decodificados como una memoria intermedia de imágenes decodificadas ("DPB"). El RPS es una descripción de las imágenes de referencia utilizadas en el proceso de decodificación de las imágenes codificadas actuales y futuras. Las imágenes de referencia incluidas en el RPS se enumeran explícitamente en el flujo de bits.
El codificador o decodificador determina el RPS una vez por imagen. Por ejemplo, el decodificador determina el RPS después de decodificar una cabecera de segmento para un segmento de la imagen, mediante el uso de elementos de sintaxis señalados en la cabecera de segmento. Las imágenes de referencia se identifican con valores de recuento de orden de imágenes ("POC"), partes de las mismas y/u otra información señalizada en el flujo de bits. El codificador o decodificador determina grupos de imágenes de referencia a corto plazo e imágenes de referencia a largo plazo que pueden usarse en la predicción entre imágenes de la imagen actual (y que pueden usarse en la predicción entre imágenes de una o más de las imágenes siguientes a la imagen actual en orden de decodificación). (El codificador o decodificador también determina grupos de imágenes de referencia que pueden usarse en la predicción entre imágenes de una o más de las imágenes que siguen a la imagen actual en el orden de decodificación, pero no se usan para la imagen actual). Las imágenes de referencia son los RPS de la imagen actual.
Para un segmento determinado de la imagen actual, el codificador o decodificador crea una o más RPL. El codificador o decodificador crea una versión temporal de una RPL (por ejemplo, RPL 0 o RPL 1) al combinar los grupos de imágenes de referencia a corto plazo e imágenes de referencia a largo plazo que pueden usarse en la predicción entre imágenes de la imagen actual. Para construir la RPL según las reglas de un enfoque “implícito”, el codificador o decodificador puede usar las imágenes de referencia en la versión temporal de la RPL, o usar solo algunas de las imágenes de referencia en la versión temporal de la RPL (por ejemplo, las primeras x imágenes en la versión temporal de la RPL). Para el enfoque "implícito", la información de modificación de RPL no se señalizará en el flujo de bits y no se analizará a partir del flujo de bits. En un enfoque "explícito", para construir la RPL, el codificador o decodificador usa información de modificación de RPL señalada/analizada desde el flujo de bits para seleccionar imágenes de referencia específicas de la versión temporal de la RPL. En comparación con la RPL que se construiría mediante las reglas del enfoque "implícito", la información de modificación de la RPL puede especificar la eliminación de una o más imágenes de referencia, la adición de una o más imágenes de referencia y/o el reordenamiento de las imágenes de referencia en la RPL.
Alternativamente, un codificador o decodificador utiliza otro enfoque para crear una RPL a partir de imágenes de referencia.
B. Señalización condicional de banderas de modificación de RPL.
Según un aspecto de las innovaciones descritas en este documento, un codificador señaliza condicionalmente una bandera que indica si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits. Un decodificador correspondiente analiza condicionalmente dicha bandera.
En algunas implementaciones ejemplares, la bandera es bandera_modificación_lista_imag_ref_l0 o bandera_modificación_lista_imag_ref_l1 (generalmente, la bandera es bandera_modificación_lista_imag_ref_lX, donde X puede ser 0 o 1). Si el valor de la bandera bandera_modificación_lista_imag_ref_lX es igual a 1, la RPL X se especifica explícitamente como una lista de valores entrada_lista_lX[i] (nuevamente, siendo X 0 o 1). Si el valor de la bandera bandera_modificación_lista_imag_ref_lX es igual a 0, la RPL X se determina implícitamente. Cuando bandera_modificación_lista_imag_ref_lX no está presente, se infiere que es igual a 0.
La Figura 7a muestra un ejemplo de sintaxis (700) para una estructura de sintaxis modificación_listas_imag_ref() en implementaciones ejemplares. La estructura se puede señalar como parte de una cabecera de segmento. En la sintaxis (700) ejemplar, bandera_modificación_lista_imag_ref_lX solo se envía cuando NumPocTotalAct es mayor que 1. NumPocTotalAct es una variable que indica un número total de imágenes de referencia aplicables para la codificación o decodificación actual. En implementaciones ejemplares de codificación o decodificación, cuando la variable NumPocTotalAct se deriva para un segmento de una imagen actual, la variable indica el recuento de imágenes de referencia a corto plazo e imágenes de referencia a largo plazo utilizadas como imágenes de referencia para codificar o decodificar la imagen.
Como se muestra en la Figura 7a, la señalización condicional de
bandera_modificación_lista_imag_ref_lX depende del valor de la variable NumPocTotalAct. Cuando NumPocTotalAct es menor o igual a 1, no hay posibilidad de modificación de la RPL y, por lo tanto, no es necesario enviar la bandera_modificación_lista_imag_ref_lX. Esta señalización condicional puede guardar una o dos banderas por cada segmento, cuando se cumple la condición. La modificación en la Figura 7a incluye la condición "si (NumPocTotalAct> 1)" para si la bandera bandera_modificación_lista_imag_ref_lX está señalizada. La condición se puede verificar para la lista 0 (para un segmento P o un segmento B) y/o para la lista 1 (para un segmento B).
De manera alternativa, la señalización y análisis sintáctico de una estructura de modificación de RPL que incluye una o más banderas de modificación de RPL (por ejemplo, una estructura modificación_listas_imag_ref()) se puede controlar mediante la evaluación de una condición como parte del procesamiento de la cabecera del segmento o de otro modo. La Figura 7b ilustra un enfoque para la señalización condicional y el análisis sintáctico de las banderas bandera_modificación_lista_imag_ref_l0 y bandera_modificación_lista_imag_ref_l1 basado en esta condición. Específicamente, la Figura 7b muestra una sintaxis (750) ejemplar para una estructura de sintaxis de cabecera de segmento que puede incluir una estructura de sintaxis modificación_listas_imag_ref(), que se representa en la sintaxis (760) de la Figura 7c. Para la sintaxis (750) ejemplar de la cabecera del segmento, la bandera bandera_presente_modificación_listas se señala en un conjunto de parámetros de imagen que se aplica al segmento. Cuando bandera_presente_modificación_listas es igual a 0, la estructura modificación_listas_imag_ref() no está presente en la cabecera del segmento. Cuando bandera_presente_modificación_listas es igual a 1, la estructura modificación_listas_imag_ref() puede estar presente en la cabecera del segmento, dependiendo del valor de la variable NumPocTotalAct. Si la variable NumPocTotalAct es mayor que 1, entonces se señala la estructura modificación_listas_imag_ref(), como se muestra en la sintaxis (760) de la Figura 7c. De lo contrario (la variable NumPocTotalAct no es mayor que 1), la estructura modificación_listas_imag_ref() no se señaliza y se infieren los valores de las entradas de la lista.
En las Figuras 7a-7c, 8 y 9, el término "u(n)" representa un número entero sin signo que utiliza n bits. Cuando n es "v" (como en "u(v)"), el número de bits varía de una manera que depende del valor de otros elementos de sintaxis. El proceso de análisis sintáctico para u(n) se puede especificar mediante el valor de retorno de una función que lee n bits como una representación binaria de un entero sin signo, con el bit más significativo escrito primero.
C. Señalización de elementos de sintaxis para entradas de lista.
Según otro aspecto de las innovaciones aquí descritas, un codificador señaliza condicionalmente elementos de sintaxis para entradas de lista que indican cómo modificar una RPL. Un decodificador correspondiente analiza condicionalmente dichos elementos de sintaxis.
En algunas implementaciones ejemplares, los elementos de sintaxis son para entrada_lista_l0[i] elementos de sintaxis para RPL 0 o entrada_lista_l1[i] elementos de sintaxis para RPL 1 (generalmente, el elemento de sintaxis es entrada_lista_lX, donde X puede ser 0 o 1). La Figura 8 muestra una sintaxis (800) para una estructura de sintaxis modificación_listas_imag_ref(), que se puede señalar como parte de una cabecera de segmento. En la sintaxis ejemplar (800), el elemento de sintaxis entrada_lista_lX[0] se señaliza condicionalmente en el flujo de bits. En particular, cuando NumPocTotalAct es igual a 2 y num_ref_idx_lX_activo_menos1 es igual a 0, el elemento de sintaxis entrada_lista_lX[0] no se señaliza en el flujo de bits. La variable num_ref_idx_lX_activo_menos1 indica el índice de referencia máximo para la RPL X que puede usarse para decodificar un segmento. La variable num_ref_idx_lX_activo_menos1 puede tener un valor predeterminado (por ejemplo, un valor de 0 ... 15, como se especifica en el conjunto de parámetros de imagen aplicable), o
num_ref_idx_lX_activo_menos1 puede tener un valor señalado en una cabecera de segmento para el segmento actual.
Como se muestra en la Figura 8, incluso cuando bandera_modificación_lista_imag_ref_lX indica que la información de modificación de RPL está señalizada en el flujo de bits, la señalización de entrada_lista_lX[0] depende de NumPocTotalAct y num_ref_idx_lX_activo_menos1. Cuando NumPocTotalAct es igual a 2 y num_ref_idx_lX_activo_menos1 es igual a 1, el valor de entrada_lista_lX[0] puede inferirse basándose en bandera_modificación_lista_imag_ref_lX, ya que solo hay dos opciones posibles (valor predeterminado de 0 o el valor no predeterminado de 1).
Por tanto, la Figura 8 incluye una condición para si los elementos de sintaxis para las entradas de la lista están señalizados. Para RPL 0, la condición es "si (bandera_modificación_lista_imag_ref_l0 &&! (NumPocTotalAct = = 2 && num_ref_idx_l0_activo_menos1 = = 0))." Para RPL 1, la condición es "si(bandera_modificación_lista_imag_ref_l1 &&! (NumPocTotalAct = = 2 && num_ref_idx_l1_activo_menos1 = = 0))".
En el ejemplo de la Figura 8, entrada_lista_l0[i] especifica el índice de la imagen de referencia en RefImagListaTemp0 (una versión temporal de RPL) que se colocará en la posición actual de RPL 0. La longitud del elemento de sintaxis entrada_lista_l0[i] es Ceil (Log2 (NumPocTotalAct)) bits. El valor de entrada_lista_l0[i] está en el rango de 0 a NumPocTotalAct - 1, inclusive. Si NumPocTotalAct es igual a 2 y num_ref_idx_l0_activo_menos1 es igual a 0, se infiere que el elemento de sintaxis entrada_lista_l0[0] es igual a bandera_modificación_lista_imag_ref_l0. De lo contrario, cuando el elemento de sintaxis entrada_lista_l0[i] no está presente, se infiere que es igual a 0.
En el ejemplo de la Figura 8, entrada_lista_l1[i] especifica el índice de la imagen de referencia en RefImagListaTemp1 (una versión temporal de RPL) que se colocará en la posición actual de RPL 1. La longitud del elemento de sintaxis entrada_lista_l1[i] es Ceil (Log2 (NumPocTotalAct)) bits. El valor de entrada_lista_l1[i] está en el rango de 0 a NumPocTotalAct- 1, inclusive. Si NumPocTotalAct es igual a 2 y num_ref_idx_l1_activo_menos1 es igual a 0, se infiere que el elemento de sintaxis entrada_lista_l1[0] es igual a bandera_modificación_lista_imag_ref_l1. De lo contrario, cuando la lista de elementos de sintaxis entrada_lista_l1 [i] no está presente, se infiere que es igual a 0.
La Figura 9 muestra otra sintaxis (900) ejemplar para una estructura de sintaxis modificación_listas_imag_ref(), que puede indicarse como parte de una cabecera de segmento. En la sintaxis (900) ejemplar, el elemento de sintaxis entrada_lista_lX[0] se señaliza condicionalmente en el flujo de bits. Sin embargo, en comparación con la sintaxis ejemplar de la Figura 8, la condición que se marca es diferente. Además, la señalización de los elementos de sintaxis para entrada_lista_lX[] puede ajustarse dependiendo de si se utiliza la predicción ponderada.
Según la Figura 9, el hecho de que la predicción ponderada esté habilitada o deshabilitada afecta la forma en que los elementos de sintaxis para las entradas de la lista se señalizan en el flujo de bits. Para los segmentos P con bandera_pred_ponderada igual a 0 o para los segmentos B con bandera_bipred_ponderada igual a 0, la predicción ponderada está deshabilitada. Según la sintaxis (900) ejemplar de la Figura 9, cuando la predicción ponderada está deshabilitada, entrada_lista_lX[0] y entrada_lista_lX[1] no se envían cuando NumPocTotalAct es igual a 2 y num_ref_idx_lX_activo_menos1 es igual a 1. En tal caso, entrada_lista_lX[0] y entrada_lista_lX[1] se infieren como 1 y 0, respectivamente, ya que la modificación de RPL no habría sido necesaria para la única otra posibilidad (es decir, entrada_lista_lX[0] y entrada_lista_lX[1] siendo iguales a 0 y 1 , respectivamente).
Por tanto, la Figura 9 incluye una condición para si los elementos de sintaxis para las entradas de la lista están señalizados. Para RPL 0, la condición es "si(bandera_modificación_lista_imag_ref_l0 &&! (NumPocTotalAct = = 2 && num_ref_idx_l0_activo_menos1 == 0) &&! (NumPocTotalAct == 2 && num_ref_idx_l0_activo_menos1 == 1 && ((bandera_bipred_ponderada!= 1 && tipo_segmento = = P || (bandera_bipred_ponderada!= 1 && tipo_segmento == B))))". Para RPL 1, la condición es "si (bandera_modificación_lista_imag_ref _l1 &&! (NumPocTotalAct = = 2 && num_ref_idx_l1_activo_menos1 = = 0) &&! (NumPocTotalAct = = 2 && num_ref_idx_l1_activo_menos1 == 1 && bandera_bipred_ponderada!= 1)).
Además, incluso en los casos en los que NumPocTotalAct no es igual a 2 o num_ref_idx_lX_activo_menos1 no es igual a 1, cuando la predicción ponderada está deshabilitada (para segmentos P, bandera_pred_ponderada igual a 0; para segmentos B, bandera_bipred_ponderada igual a 0), la longitud del elemento de sintaxis entrada_lista_lX [i] está limitado a Ceil(Log2 (NumPocTotalAct-i)) bits. En este caso, solo es útil colocar cada imagen de referencia una vez en la lista y, por lo tanto, el número de posibilidades útiles disminuye a medida que aumenta el índice i.
En el ejemplo de la Figura 9, entrada_lista_l0[i] especifica el índice de la imagen de referencia en RefImagListaTemp0 (una versión temporal de RPL) que se colocará en la posición actual de RPL 0. Cuando la predicción ponderada está deshabilitada (para segmentos P, bandera_pred_ponderada igual a 0; para segmentos B, bandera_bipred_ponderada igual a 0), la longitud del elemento de sintaxis entrada_lista_l0 [i] es Ceil(Log2 (NumPocTotalAct-i)) bits. De lo contrario, la longitud del elemento de sintaxis entrada_lista_l0 [i] es Ceil(Log2 (NumPocTotalAct)) bits. Si NumPocTotalAct es igual a 2 y num_ref_idx_l0_activo_menos1 es igual a 0, se infiere que el elemento de sintaxis entrada_lista_l0 [0] es igual a bandera_modificación_lista_imag_ref_l0 (como en el ejemplo de la Figura 8). De lo contrario, si NumPocTotalAct es igual a 2, num_ref_idx_l0_activo_menos1 es igual a 1 y la predicción ponderada está deshabilitada (cuando bandera_pred_ponderada es igual a 0 y el segmento actual es un segmento P, o bandera_bipred_ponderada es igual a 0 y el segmento actual es un segmento B), se infiere que los elementos de sintaxis entrada_lista_l0 [0] y entrada_lista_l0 [1] son iguales a 1 y 0 respectivamente. De lo contrario, cuando el elemento de sintaxis entrada_lista_l0 [i] no está presente, se infiere que es igual a 0.
Si la predicción ponderada está deshabilitada (cuando bandera_pred_ponderada es igual a 0 y el segmento actual es un segmento P, o cuando el segmento bandera_bipred_ponderada es igual a 0 y el segmento actual es un segmento B), el valor de entrada_lista_l0 [i] está en el rango de 0 a NumPocTotalAct - (i 1), inclusive, y la lista RefImagListaTemp0 se acorta al eliminar cada entrada entrada_lista_l0 [i] de la lista RefImagListaTemp0 después de analizar el valor de la entrada. De lo contrario, el valor de entrada_lista_l0 [i] está en el rango de 0 a NumPocTotalAct-1, inclusive.
En el ejemplo de la Figura 9, entrada_lista_l1 [i] especifica el índice de la imagen de referencia en RefImagListaTemp1 (una versión temporal de RPL) que se colocará en la posición actual de RPL 1. Si la predicción ponderada está deshabilitada (bandera_bipred_ponderada es igual a 0, dado que solo un segmento B usa la lista 1), la longitud del elemento de sintaxis entrada_lista_l1 [i] es Ceil(Log2 (NumPocTotalAct-i)) bits. De lo contrario, la longitud del elemento de sintaxis entrada_l1 [i] de la lista es Ceil(Log2 (NumPocTotalAct)) bits. Si NumPocTotalAct es igual a 2 y num_ref_idx_11_activo_menos1 es igual a 0, se infiere que el elemento de sintaxis entrada_lista_l1 [0] es igual a bandera_modificación_lista_imag_ref_l1 (como en el ejemplo de la Figura 8). De lo contrario, si NumPocTotalAct es igual a 2, num_ref_idx_l1_activo_menos1 es igual a 1 y la predicción ponderada está deshabilitada (bandera_bipred_ponderada es igual a 0 - el segmento actual es un segmento B), se infieren los elementos de sintaxis entrada_lista_l1 [0] y entrada_lista_l1 [1] para ser igual a 1 y 0 respectivamente. De lo contrario, cuando el elemento de sintaxis entrad a_l i st a_l 1 [i] no está presente, se infiere que es igual a 0.
Si la predicción ponderada está deshabilitada (bandera_bipred_ponderada es igual a 0; el segmento actual es un segmento B), el valor de entrada_lista_l1 [i] está en el rango de 0 a NumPocTotalAct - (i 1), inclusive, y la lista RefImagListaTemp1 se acorta mediante la eliminación de cada entrada entrada_lista_l1 [i] de la lista RefImagListaTempI después de analizar el valor de la entrada. De lo contrario, el valor de entrada_lista_l0 [i] está en el rango de 0 a NumPocTotalAct - 1, inclusive.
D. Técnicas generalizadas para señalización y análisis condicional de banderas de modificación RPL.
La Figura 10 muestra una técnica (1000) generalizada para la señalización condicional de una bandera de modificación de RPL. Un dispositivo informático que implementa un codificador de video, por ejemplo, como se describe con referencia a la Figura 3, puede realizar la técnica (1000).
El dispositivo evalúa (1010) una condición. Por ejemplo, la condición depende, al menos en parte, de una variable que indica un número total de imágenes de referencia. En algunas implementaciones ejemplares, la variable es NumPocTotalAct y el codificador verifica si la variable es mayor que 1. Alternativamente, el codificador evalúa otras y/o condiciones adicionales. La condición que se evalúa (1010) puede incluir un solo factor (por ejemplo, valor de la variable que indica un número total de imágenes de referencia), o la condición que se evalúa (1010) puede incluir múltiples factores (por ejemplo, valor de la variable que indica un número total de imágenes de referencia, así como uno o más factores). La condición se puede evaluar (1010) como parte del procesamiento de una estructura de modificación de RPL. O bien, la condición se puede evaluar (1010) como parte del procesamiento de una cabecera de segmento.
Dependiendo de los resultados de la evaluación, el dispositivo señaliza (1020) condicionalmente en un flujo de bits una bandera que indica si se modifica una RPL (por ejemplo, se reemplaza, se ajusta) según los elementos de sintaxis señalados explícitamente en el flujo de bits. Por ejemplo, la bandera es una de bandera_modificación_lista_imag_ref_l0 o bandera_modificación_lista_imag_ref_l1, y se puede señalizar condicionalmente como parte de una estructura de modificación RPL de una cabecera de segmento. O, después de evaluar (1010) la condición, dependiendo de los resultados de la evaluación, la estructura de modificación de RPL (que incluye una o más banderas que indican si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits) se señaliza condicionalmente en el flujo de bits.
El dispositivo puede repetir la técnica (1000) segmento a segmento cuando se señala la estructura de modificación de RPL, o sobre alguna otra base.
La Figura 11 muestra una técnica (1100) generalizada para el análisis sintáctico condicional de una bandera de modificación de RPL. Un dispositivo informático que implementa un decodificador de video, por ejemplo, como se describe con referencia a la Figura 4, puede realizar la técnica (1100).
El decodificador evalúa (1110) una condición. Por ejemplo, la condición depende, al menos en parte, de una variable que indica un número total de imágenes de referencia. En algunas implementaciones ejemplares, la variable es NumPocTotalAct y el decodificador verifica si la variable es mayor que 1. Alternativamente, el decodificador evalúa otras y/o condiciones adicionales. La condición que se evalúa (1110) puede incluir un solo factor (por ejemplo, el valor de la variable que indica un número total de imágenes de referencia), o la condición que se evalúa (1110) puede incluir múltiples factores (por ejemplo, valor de la variable que indica un número total de imágenes de referencia, así como uno o más factores). La condición se puede evaluar (1110) como parte del procesamiento de una estructura de modificación de RPL. O bien, la condición se puede evaluar (1110) como parte del procesamiento de una cabecera de segmento.
Dependiendo de los resultados de la evaluación, el dispositivo analiza (1120) condicionalmente a partir de un flujo de bits una bandera que indica si una RPL se modifica (por ejemplo, se reemplaza, se ajusta) según elementos de sintaxis señalados explícitamente en el flujo de bits. Por ejemplo, la bandera es una de bandera_modificación_lista_imag_ref_l0 o bandera_modificación_lista_imag_ref_l1, y se puede señalizar condicionalmente como parte de una estructura de modificación RPL de una cabecera de segmento. O, después de evaluar (1110) la condición, dependiendo de los resultados de la evaluación, la estructura de modificación de RPL (que incluye una o más banderas que indican si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits) se analiza condicionalmente del flujo de bits.
El dispositivo puede repetir la técnica (1100) segmento a segmento cuando se señala la estructura de modificación de RPL, o sobre alguna otra base.
E. Técnicas generalizadas para la señalización y análisis condicional de entradas de listas.
La Figura 12 muestra una técnica (1200) generalizada para la señalización condicional de entradas de lista para la modificación de RPL. Un dispositivo informático que implementa un codificador de video, por ejemplo, como se describe con referencia a la Figura 3, puede realizar la técnica (1200).
El dispositivo evalúa (1210) una condición. Por ejemplo, la condición depende al menos en parte de una variable que indica un número total de imágenes de referencia (por ejemplo, NumPocTotalAct en algunas implementaciones ejemplares). O bien, la condición depende, al menos en parte, de una serie de imágenes de referencia activas para la RPL. O bien, la condición depende, al menos en parte, de si la predicción ponderada está deshabilitada. Se puede usar una lógica diferente para verificar si la predicción ponderada está deshabilitada dependiendo de si un segmento actual es un segmento P o un segmento B y/o dependiendo de qué RPL se esté señalando/analizando. Por ejemplo, la lógica para verificar la condición de una primera RPL (que podría ser utilizada por un segmento P o un segmento B) es diferente a la lógica para verificar la condición de una segunda RPL (que solo puede ser utilizada por un segmento B). Alternativamente, el codificador evalúa otras y/o condiciones adicionales.
Dependiendo de los resultados de la evaluación, el dispositivo señaliza (1220) condicionalmente en un flujo de bits uno o más elementos de sintaxis para entradas de lista que indican cómo modificar (por ejemplo, reemplazar, ajustar) una RPL. Por ejemplo, el/los elemento(s) de sintaxis para las entradas de la lista se señala(n) condicionalmente como parte de una estructura de modificación RPL de una cabecera de segmento.
En algunas implementaciones ejemplares, si (a) el número total de imágenes de referencia es igual a 2 y (b) el número de imágenes de referencia activas para la RPL es igual a 1, entonces el/los elemento(s) de sintaxis para las entradas de la lista está(n) ausentes del flujo de bits, y se infiere un valor para una de las entradas de la lista. En otras implementaciones ejemplares, además de esta condición, si (c) el número de imágenes de referencia totales es igual a 2, (d) el número de imágenes de referencia activas para la RPL es igual a 2 y (e) la predicción ponderada está deshabilitada , entonces uno o más elementos de sintaxis para las entradas de la lista están ausentes del flujo de bits y se infieren valores para dos de las entradas de la lista.
El dispositivo puede repetir la técnica (1200) segmento a segmento cuando se señala la estructura de modificación de RPL, o sobre alguna otra base.
La Figura 13 muestra una técnica (1300) generalizada para el análisis sintáctico condicional de las entradas de la lista para la modificación de RPL. Un dispositivo informático que implementa un decodificador de video, por ejemplo, como se describe con referencia a la Figura 4, puede realizar la técnica (1300).
El decodificador evalúa (1310) una condición. Por ejemplo, la condición depende al menos en parte de una variable que indica un número total de imágenes de referencia (por ejemplo, NumPocTotalAct en algunas implementaciones ejemplares). O bien, la condición depende, al menos en parte, de una serie de imágenes de referencia activas para la RPL. O bien, la condición depende, al menos en parte, de si la predicción ponderada está deshabilitada. Se puede usar una lógica diferente para verificar si la predicción ponderada está deshabilitada dependiendo de si un segmento actual es un segmento P o un segmento B y/o dependiendo de qué RPL se esté señalando/analizando. Alternativamente, el decodificador evalúa otras y/o condiciones adicionales.
Dependiendo de los resultados de la evaluación, el dispositivo analiza (1320) condicionalmente de un flujo de bits uno o más elementos de sintaxis para las entradas de la lista que indican cómo modificar (por ejemplo, reemplazar, ajustar) una RPL. Por ejemplo, el/los elemento(s) de sintaxis para las entradas de la lista se analiza(n) condicionalmente a partir de una estructura de modificación RPL de una cabecera de segmento.
En algunas implementaciones ejemplares, si (a) el número total de imágenes de referencia es igual a 2 y (b) el número de imágenes de referencia activas para la RPL es igual a 1, entonces los elementos de sintaxis para las entradas de la lista están ausentes del flujo de bits, y se infiere un valor para una de las entradas de la lista. En otras implementaciones ejemplares, además de esta condición, si (c) el número de imágenes de referencia totales es igual a 2, (d) el número de imágenes de referencia activas para la RPL es igual a 2 y (e) la predicción ponderada está deshabilitada , entonces uno o más elementos de sintaxis para las entradas de la lista están ausentes del flujo de bits y se infieren valores para dos de las entradas de la lista.
El dispositivo puede repetir la técnica (1300) segmento a segmento cuando se señala la estructura de modificación de RPL, o sobre alguna otra base.
F. Técnicas generalizadas para ajustar la señalización y el análisis de entradas de listas.
La Figura 14 muestra una técnica (1400) generalizada para ajustar la señalización de las entradas de la lista para la modificación de RPL. Un dispositivo informático que implementa un codificador de video, por ejemplo, como se describe con referencia a la Figura 3, puede realizar la técnica (1400).
El dispositivo evalúa (1410) una condición. Por ejemplo, la condición depende, al menos en parte, de si la predicción ponderada está inhabilitada. Se puede usar una lógica diferente para verificar si la predicción ponderada está deshabilitada dependiendo de si un segmento actual es un segmento P o un segmento B y/o dependiendo de qué RPL se esté señalando/analizando. Por ejemplo, la lógica para verificar la condición de una primera RPL (que podría ser utilizada por un segmento P o un segmento B) es diferente a la lógica para verificar la condición de una segunda RPL (que solo puede ser utilizada por un segmento B). Alternativamente, el codificador evalúa otras y/o condiciones adicionales.
Dependiendo de los resultados de la evaluación, el dispositivo ajusta (1420) la señalización en un flujo de bits de uno o más elementos de sintaxis para las entradas de la lista que indican cómo modificar (por ejemplo, reemplazar, ajustar) una RPL. En particular, se ajusta la longitud (en bits) de al menos uno del/de los elemento(s) de sintaxis. Por ejemplo, para un índice i para las entradas de la lista, si la predicción ponderada está deshabilitada, la longitud (en bits) de al menos uno de los elementos de sintaxis disminuye a medida que i aumenta. En algunas implementaciones ejemplares, si la predicción ponderada está deshabilitada, la longitud de un elemento de sintaxis dado para la entrada de la lista [i] es Ceil(Log2(NumPocTotalAct-/)). De lo contrario (la predicción ponderada está habilitada), la longitud del elemento de sintaxis dado para la entrada de la lista [/] es Ceil(Log2(NumPocTotalAct)) bits.
El dispositivo puede repetir la técnica (1400) segmento a segmento cuando se señala la estructura de modificación de RPL, o sobre alguna otra base.
La Figura 15 muestra una técnica (1500) generalizada para ajustar el análisis sintáctico de las entradas de la lista para la modificación de RPL. Un dispositivo informático que implementa un decodificador de video, por ejemplo, como se describe con referencia a la Figura 4, puede realizar la técnica (1500).
El decodificador evalúa (1510) una condición. Por ejemplo, la condición depende, al menos en parte, de si la predicción ponderada está inhabilitada. Se puede usar una lógica diferente para verificar si la predicción ponderada está deshabilitada dependiendo de si un segmento actual es un segmento P o un segmento B y/o dependiendo de qué RPL se esté señalando/analizando. Alternativamente, el decodificador evalúa otras y/o condiciones adicionales.
Dependiendo de los resultados de la evaluación, el dispositivo ajusta (1520) el análisis sintáctico de un flujo de bits de uno o más elementos de sintaxis para las entradas de la lista que indican cómo modificar (por ejemplo, reemplazar, ajustar) una RPL. En particular, se ajusta la longitud (en bits) de al menos uno de los elementos de sintaxis. Por ejemplo, para un índice i para las entradas de la lista, si la predicción ponderada está deshabilitada, la longitud (en bits) del al menos uno de los elementos de sintaxis disminuye a medida que aumenta i. En algunas implementaciones ejemplares, si la predicción ponderada está deshabilitada, la longitud de un elemento de sintaxis dado para la entrada de la lista [i] es Ceil(Log2(NumPocTotalAct-/)). De lo contrario (la predicción ponderada está habilitada), la longitud del elemento de sintaxis dado para la entrada de la lista [i] es Ceil(Log2(NumPocTotalAct)) bits.
El dispositivo puede repetir la técnica (1500) segmento a segmento cuando se señala la estructura de modificación de RPL, o sobre alguna otra base.
G. Alternativas.
Las Figuras 7a, 7b, 10 y 11 ilustran la señalización y el análisis sintáctico condicional de una bandera tal como bandera_modificación_lista_imag_ref_l0 o bandera_modificación_lista_imag_ref_l1 en base a una condición. De esta manera, se controla la señalización de información de modificación de RPL adicional (como elementos de sintaxis para entradas de lista). Como se explica con referencia a la Figura 7a, la señalización y el análisis sintáctico de una bandera de modificación de RPL pueden controlarse mediante la evaluación de la condición como parte de una estructura modificación_listas_imag_ref(). Alternativamente, como se explica con referencia a la Figura 7b, la señalización y análisis sintáctico de la estructura de modificación de RPL (por ejemplo, estructura modificación_listas_imag_ref()) se puede controlar mediante la evaluación de la misma condición como parte del procesamiento de la cabecera del segmento o de otro modo. Por ejemplo, si la variable NumPocTotalAct es mayor que 1, entonces se señala la estructura modificación_listas_imag_ref(). De lo contrario (la variable NumPocTotalAct no es mayor que 1), la estructura modificación_listas_imag_ref() no se señaliza y los valores de las entradas de la lista se infieren como se describe anteriormente con referencia a la Figura 7a. Ampliando la Figura 10, después de que se evalúa la condición, dependiendo de los resultados de la evaluación, la estructura de sintaxis de modificación de RPL se señaliza condicionalmente. Ampliando la Figura 11, después de que se evalúa la condición, dependiendo de los resultados de la evaluación, la estructura de sintaxis de modificación de RPL se analiza condicionalmente.
A modo de ilustración, la descripción detallada incluye varios ejemplos con nombres específicos para algunos parámetros y variables. Las innovaciones aquí descritas no se limitan a implementaciones con parámetros o variables que tengan tales nombres. En cambio, las innovaciones descritas en este documento se pueden implementar con varios tipos de parámetros y variables.

Claims (6)

REIVINDICACIONES
1. Un método (1000) realizado por un codificador (340; 500) de video, que comprende:
evaluar (1010) si un valor de una variable que indica un número de imágenes de referencia totales es mayor que 1; y solo cuando el valor es mayor que 1, señalizar (1020) condicionalmente en un flujo de bits una estructura de modificación de una lista de imágenes de referencia, RPL, donde la estructura de modificación de RPL incluye una bandera que indica si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits como una lista de entradas de la lista, en la que cada una de las entradas de la lista especifica un índice de una imagen de referencia en una versión temporal de la RPL que se colocará en una posición actual de la RPL,
en donde si el valor de dicha bandera es igual a 1, la RPL se especifica explícitamente como la lista, y si el valor de dicha bandera es igual a 0, la RPL se determina implícitamente.
2. El método de la reivindicación 1 en donde, durante la codificación, el codificador (340; 500) de video: evalúa los resultados de la compensación de movimiento para los que se modifica la RPL según los elementos de sintaxis señalados explícitamente en el flujo de bits;
evalúa los resultados de la compensación de movimiento para los que la RPL no se modifica según los elementos de sintaxis señalados explícitamente en el flujo de bits; y
modifica la RPL para:
reordenar una o más imágenes de referencia para un direccionamiento más eficiente con índices de referencia,
eliminar una o más imágenes de referencia basadas, al menos en parte, en la frecuencia de uso durante la codificación, y/o
agregar una o más imágenes de referencia basadas, al menos en parte, en la frecuencia de uso durante la codificación.
3. Un dispositivo informático que implementa un codificador de vídeo, en donde el dispositivo informático está adaptado para realizar un método según una de las reivindicaciones anteriores.
4. Un método (1100) realizado por un decodificador (450; 600) de video, que comprende:
evaluar (1110) si un valor de una variable que indica un número de imágenes de referencia totales es mayor que 1; y solo cuando el valor es mayor que 1, analizar (1120) condicionalmente de un flujo de bits una estructura de modificación de una lista de imágenes de referencia, RPL, donde la estructura de modificación de RPL incluye una bandera que indica si una RPL se modifica según elementos de sintaxis explícitamente señalados en el flujo de bits como una lista de entradas de la lista, en la que cada una de las entradas de la lista especifica un índice de una imagen de referencia en una versión temporal de la RPL que se colocará en una posición actual de la RPL,
en donde si el valor de dicha bandera es igual a 1, la RPL se especifica explícitamente como la lista, y si el valor de dicha bandera es igual a 0, la RPL se determina implícitamente.
5. Un dispositivo informático que implementa un decodificador de vídeo, en donde el dispositivo informático está adaptado para realizar un método según la reivindicación 4.
6. Uno o más medios legibles por ordenador que tienen almacenadas en el mismo instrucciones ejecutables por ordenador para hacer que una unidad de procesamiento programada de ese modo lleve a cabo un método que comprende:
evaluar (1010; 1110) si un valor de una variable que indica un número total de imágenes de referencia es mayor que 1; y
solo cuando el valor es mayor que 1, señalizar (1020) o analizar (1120) condicionalmente de un flujo de bits una estructura de modificación de una lista de imágenes de referencia, RPL, en donde la estructura de modificación de RPL incluye una bandera que indica si una RPL se modifica según elementos de sintaxis señalados explícitamente en el flujo de bits como una lista de entradas de lista,
en donde cada una de las entradas de la lista especifica un índice de una imagen de referencia en una versión temporal de la RPL que se colocará en una posición actual de la RPL,
en donde si el valor de dicha bandera es igual a 1, la RPL se especifica explícitamente como la lista, y si el valor de dicha bandera es igual a 0, la RPL se determina implícitamente.
ES13774010T 2012-09-30 2013-09-23 Señalización condicional de información de modificación de lista de imágenes de referencia Active ES2860448T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261708042P 2012-09-30 2012-09-30
US13/781,710 US9313500B2 (en) 2012-09-30 2013-02-28 Conditional signalling of reference picture list modification information
PCT/US2013/061241 WO2014052249A1 (en) 2012-09-30 2013-09-23 Conditional signalling of reference picture list modification information

Publications (1)

Publication Number Publication Date
ES2860448T3 true ES2860448T3 (es) 2021-10-05

Family

ID=50385186

Family Applications (2)

Application Number Title Priority Date Filing Date
ES21155916T Active ES3010314T3 (en) 2012-09-30 2013-09-23 Conditional signalling of reference picture list modification information
ES13774010T Active ES2860448T3 (es) 2012-09-30 2013-09-23 Señalización condicional de información de modificación de lista de imágenes de referencia

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES21155916T Active ES3010314T3 (en) 2012-09-30 2013-09-23 Conditional signalling of reference picture list modification information

Country Status (9)

Country Link
US (10) US9313500B2 (es)
EP (4) EP4459999A3 (es)
JP (1) JP6318158B2 (es)
KR (6) KR102463986B1 (es)
CN (1) CN104662906B (es)
AR (1) AR097227A1 (es)
ES (2) ES3010314T3 (es)
TW (1) TWI612803B (es)
WO (1) WO2014052249A1 (es)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2817741B2 (ja) 1989-09-21 1998-10-30 オルガノ株式会社 復水処理装置の通水安全装置
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
US9609341B1 (en) * 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
US9590952B2 (en) 2014-09-05 2017-03-07 Microsoft Technology Licensing, Llc Lossy data stream decoder
GB201421095D0 (en) * 2014-11-27 2015-01-14 British Broadcasting Corp HEVC Optimization techniques
WO2016119746A1 (zh) * 2015-01-29 2016-08-04 同济大学 图像编码方法及装置、图像解码方法及装置
WO2016136470A1 (ja) 2015-02-27 2016-09-01 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
WO2016200043A1 (ko) * 2015-06-10 2016-12-15 엘지전자 주식회사 비디오 코딩 시스템에서 가상 참조 픽처 기반 인터 예측 방법 및 장치
US10178403B2 (en) * 2015-06-23 2019-01-08 Qualcomm Incorporated Reference picture list construction in intra block copy mode
US20170006303A1 (en) * 2015-06-30 2017-01-05 Intel Corporation Method and system of adaptive reference frame caching for video coding
EP3451669A1 (en) * 2017-08-29 2019-03-06 Thomson Licensing Methods and apparatus for improved compression/decompression using frame rate up conversion tools
WO2019083120A1 (ko) * 2017-10-23 2019-05-02 엘지전자 주식회사 360도 비디오에 대한 영상 코딩 시스템에서 회전된 360도 비디오를 프로젝션하여 도출된 참조 픽처를 사용한 영상 디코딩 방법 및 장치
US10904577B2 (en) * 2018-02-07 2021-01-26 Mediatek Inc. Video compression system with post-processing of bitstream generated by hardware video encoding and associated video compression method
US11830225B2 (en) * 2018-05-30 2023-11-28 Ati Technologies Ulc Graphics rendering with encoder feedback
WO2019244055A1 (en) * 2018-06-19 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Mode dependent mvd precision set
KR102852785B1 (ko) * 2018-09-12 2025-08-28 후아웨이 테크놀러지 컴퍼니 리미티드 참조 화상 목록 구조에 대한 후보 시그널링
EP4325859A3 (en) 2018-09-19 2024-05-15 Beijing Bytedance Network Technology Co., Ltd. Syntax reuse for affine mode with adaptive motion vector resolution
WO2020059687A1 (en) * 2018-09-21 2020-03-26 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
WO2020112488A1 (en) * 2018-11-30 2020-06-04 Futurewei Technologies, Inc. Signaling of reference picture lists in video coding
EP3895432A4 (en) * 2018-12-10 2022-08-31 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SIGNALING REFERENCE IMAGES IN VIDEO CODING
CN113366851B (zh) 2019-01-31 2025-10-21 北京字节跳动网络技术有限公司 对称运动矢量差编解码模式的快速算法
KR20210121021A (ko) 2019-01-31 2021-10-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 어파인 모드 적응적 움직임 벡터 해상도 코딩 문맥
EP3709272A1 (en) 2019-03-15 2020-09-16 InterDigital VC Holdings, Inc. Processing a point cloud
CN113382255B (zh) * 2019-06-21 2022-05-20 杭州海康威视数字技术股份有限公司 一种编解码方法、设备及存储介质
CN114424555B (zh) * 2019-09-24 2023-11-10 华为技术有限公司 图像级非图像级语法元素的指示
CN110602500A (zh) * 2019-10-11 2019-12-20 西安万像电子科技有限公司 数据更新方法及系统
EP4074042A4 (en) * 2019-12-17 2023-01-25 Alibaba Group Holding Limited PROCEDURE FOR PERFORMING MAGNETIC MOTION COMPENSATION
MX2022007544A (es) * 2019-12-20 2022-09-19 Lg Electronics Inc Método y aparato de codificación de imágenes/video con base en tabla de predicción ponderada.
CN115136604B (zh) * 2019-12-23 2025-01-17 Lg电子株式会社 基于nal单元类型的图像或视频编码
JP7410316B2 (ja) * 2020-02-19 2024-01-09 バイトダンス インコーポレイテッド ビットストリームにおけるビデオ成分のための重み値の推論
US11496771B2 (en) * 2020-02-24 2022-11-08 Qualcomm Incorporated Reference picture list and collocated picture signaling in video coding
GB2592957A (en) 2020-03-11 2021-09-15 Canon Kk High level syntax for video coding and decoding
JP7475908B2 (ja) 2020-03-17 2024-04-30 シャープ株式会社 予測画像生成装置、動画像復号装置及び動画像符号化装置
US20230145618A1 (en) * 2020-03-20 2023-05-11 Canon Kabushiki Kaisha High level syntax for video coding and decoding
EP4128790A4 (en) * 2020-03-31 2023-10-11 Telefonaktiebolaget LM ERICSSON (PUBL) VIDEO PROCESSING WITH SYNTAX ELEMENTS
WO2021197445A1 (en) 2020-04-01 2021-10-07 Beijing Bytedance Network Technology Co., Ltd. Constraints on adaptation parameter set syntax elements
CN115699742A (zh) 2020-04-07 2023-02-03 抖音视界有限公司 子图片相关的语法元素的信令通知和推断
WO2021204233A1 (en) 2020-04-09 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Constraints on adaptation parameter set based on color format
CN115486064A (zh) 2020-04-10 2022-12-16 抖音视界有限公司 标头语法元素和自适应参数集的使用
CN115868159A (zh) 2020-04-17 2023-03-28 抖音视界有限公司 自适应参数集单元的存在
EP4128775A4 (en) * 2020-04-26 2024-03-27 ByteDance Inc. CONDITIONAL SIGNALING OF VIDEO CODING SYNTAX ELEMENTS
KR102927270B1 (ko) * 2020-05-21 2026-02-13 바이트댄스 아이엔씨 점진적인 디코딩 리프레시 및 레퍼런스 픽처 목록의 시그널링
CN116567243A (zh) * 2022-01-27 2023-08-08 腾讯科技(深圳)有限公司 图像编码方法、实时通信方法、设备及存储介质

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6956545B2 (en) 2001-10-08 2005-10-18 Imagearray, Ltd. Digital playback device
US7369709B2 (en) 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US20060083298A1 (en) 2004-10-14 2006-04-20 Nokia Corporation Reference picture management in video coding
RU2406253C2 (ru) 2005-07-21 2010-12-10 Томсон Лайсенсинг Способ и устройство для взвешенного предсказания для масштабируемого кодирования видеосигнала
EP1806930A1 (en) 2006-01-10 2007-07-11 Thomson Licensing Method and apparatus for constructing reference picture lists for scalable video
KR100934671B1 (ko) 2006-03-30 2009-12-31 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US20090304068A1 (en) 2006-07-06 2009-12-10 Purvin Bibhas Pandit Method and Apparatus for Decoupling Frame Number and/or Picture Order Count (POC) for Multi-View Video Encoding and Decoding
WO2008023967A1 (en) 2006-08-25 2008-02-28 Lg Electronics Inc A method and apparatus for decoding/encoding a video signal
BRPI0716957A2 (pt) 2006-10-13 2013-10-29 Thomson Licensing Sintaxe de gerenciamento de lista de imagens de referência para codificação de vídeo de múltiplas vistas
EP2087738B1 (en) 2006-10-13 2016-04-13 Thomson Licensing Method for reference picture management involving multiview video coding
BRPI0718206B1 (pt) 2006-10-16 2020-10-27 Nokia Technologies Oy método para codificar uma pluralidade de visões de uma cena; método de codificação de uma sequência de bits de vídeo codificada e aparelho
US8494046B2 (en) * 2007-03-23 2013-07-23 Lg Electronics Inc. Method and an apparatus for decoding/encoding a video signal by performing illumination compensation
CN101785317B (zh) * 2007-08-15 2013-10-16 汤姆逊许可证公司 使用区域视差向量的多视角编码视频中的运动跳过模式的方法和装置
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
CN101904170B (zh) 2007-10-16 2014-01-08 思科技术公司 用于传达视频流中的串接属性和图片顺序的方法和系统
US8855199B2 (en) 2008-04-21 2014-10-07 Nokia Corporation Method and device for video coding and decoding
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP5574345B2 (ja) 2009-03-26 2014-08-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化方法、エラー検出方法、復号方法、符号化装置、エラー検出装置及び復号装置
US20100246683A1 (en) 2009-03-27 2010-09-30 Jennifer Lois Harmon Webb Error Resilience in Video Decoding
KR20120027194A (ko) * 2009-04-21 2012-03-21 엘지전자 주식회사 다시점 비디오 신호 처리 방법 및 장치
EP2424240A4 (en) * 2009-04-22 2013-04-10 Lg Electronics Inc METHOD FOR MODIFYING REFERENCE COPY LISTS FOR A MORE VIEWED VIDEO
KR101621907B1 (ko) 2010-02-02 2016-05-17 삼성전자주식회사 디스플레이 장치, 3d 영상 제공 방법 및 3d 영상 제공 시스템
US20110222837A1 (en) 2010-03-11 2011-09-15 Cisco Technology, Inc. Management of picture referencing in video streams for plural playback modes
US9319448B2 (en) * 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
EP2614592B1 (en) * 2010-09-09 2018-06-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy encoding and decoding scheme
EP2630799A4 (en) 2010-10-20 2014-07-02 Nokia Corp METHOD AND DEVICE FOR VIDEO ENCODING AND DECODING
US9008176B2 (en) 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
US20120195364A1 (en) 2011-01-31 2012-08-02 Apple Inc. Dynamic mode search order control for a video encoder
KR20120088488A (ko) 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
US20120294366A1 (en) 2011-05-17 2012-11-22 Avi Eliyahu Video pre-encoding analyzing method for multiple bit rate encoding system
CN103797797B (zh) 2011-06-30 2016-07-13 瑞典爱立信有限公司 参考画面信号通知
RU2581566C2 (ru) 2011-06-30 2016-04-20 Телефонактиеболагет Л М Эрикссон (Пабл) Сигнализация опорного изображения
US20130003823A1 (en) 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
EP4593386A1 (en) 2011-09-22 2025-07-30 LG Electronics Inc. Decoding apparatus, encoding apparatus and apparatus for transmitting data for an image
US9237356B2 (en) 2011-09-23 2016-01-12 Qualcomm Incorporated Reference picture list construction for video coding
US8768079B2 (en) 2011-10-13 2014-07-01 Sharp Laboratories Of America, Inc. Tracking a reference picture on an electronic device
US20130094774A1 (en) 2011-10-13 2013-04-18 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US8855433B2 (en) 2011-10-13 2014-10-07 Sharp Kabushiki Kaisha Tracking a reference picture based on a designated picture on an electronic device
US9277219B2 (en) 2011-10-24 2016-03-01 Telefonaktiebolaget L M Ericsson (Publ) Encoder and decoder and methods thereof for encoding/decoding a picture of a video sequence
AU2012329678B2 (en) 2011-10-28 2015-11-05 Samsung Electronics Co., Ltd. Method for inter prediction and device therefor, and method for motion compensation and device therefor
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
PL3016391T3 (pl) * 2012-01-17 2017-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Obsługa listy obrazów referencyjnych
CN104396240B (zh) * 2012-01-31 2018-02-02 Vid拓展公司 用于可缩放的高效视频编码(hevc)的参考图片集(rps)信令
US9369710B2 (en) * 2012-02-06 2016-06-14 Qualcomm Incorporated Reference picture list modification for video coding
WO2013157783A1 (ko) 2012-04-15 2013-10-24 삼성전자 주식회사 참조픽처리스트 변경이 가능한 인터 예측 방법과 그 장치
US20130343465A1 (en) * 2012-06-26 2013-12-26 Qualcomm Incorporated Header parameter sets for video coding
US9167248B2 (en) * 2012-07-13 2015-10-20 Qualcomm Incorporated Reference picture list modification for video coding
US9398284B2 (en) * 2012-08-16 2016-07-19 Qualcomm Incorporated Constructing reference picture lists for multi-view or 3DV video coding
US9438898B2 (en) * 2012-09-07 2016-09-06 Vid Scale, Inc. Reference picture lists modification
JP6345594B2 (ja) 2012-09-28 2018-06-20 ドルビー・インターナショナル・アーベー 画像を復号する方法
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information

Also Published As

Publication number Publication date
JP6318158B2 (ja) 2018-04-25
US20230412836A1 (en) 2023-12-21
US20210235116A1 (en) 2021-07-29
AR097227A1 (es) 2016-03-02
US20220329850A1 (en) 2022-10-13
KR20230092029A (ko) 2023-06-23
EP4459999A2 (en) 2024-11-06
US10560720B2 (en) 2020-02-11
TW201431354A (zh) 2014-08-01
EP3840383A1 (en) 2021-06-23
EP2901699B1 (en) 2021-03-03
US10165302B2 (en) 2018-12-25
ES3010314T3 (en) 2025-04-02
US9762928B2 (en) 2017-09-12
KR102257187B1 (ko) 2021-05-27
US20220329851A1 (en) 2022-10-13
WO2014052249A1 (en) 2014-04-03
US11778229B2 (en) 2023-10-03
US20190116379A1 (en) 2019-04-18
EP4459999A3 (en) 2025-01-22
US11770553B2 (en) 2023-09-26
US20170318309A1 (en) 2017-11-02
US9313500B2 (en) 2016-04-12
KR102168743B1 (ko) 2020-10-22
CN104662906A (zh) 2015-05-27
KR102344167B1 (ko) 2021-12-27
KR20210062101A (ko) 2021-05-28
US11012709B2 (en) 2021-05-18
US12464163B2 (en) 2025-11-04
KR20220153104A (ko) 2022-11-17
CN104662906B (zh) 2018-01-02
TWI612803B (zh) 2018-01-21
US11405636B2 (en) 2022-08-02
EP4459998A3 (en) 2025-01-29
KR102463986B1 (ko) 2022-11-07
US11770554B2 (en) 2023-09-26
KR20210158423A (ko) 2021-12-30
KR102545525B1 (ko) 2023-06-20
KR20200122403A (ko) 2020-10-27
US20200204825A1 (en) 2020-06-25
EP2901699A1 (en) 2015-08-05
KR20150067157A (ko) 2015-06-17
US20220321908A1 (en) 2022-10-06
US20140092991A1 (en) 2014-04-03
JP2015534776A (ja) 2015-12-03
US20160191949A1 (en) 2016-06-30
EP3840383B1 (en) 2024-11-06
EP4459998A2 (en) 2024-11-06

Similar Documents

Publication Publication Date Title
ES2860448T3 (es) Señalización condicional de información de modificación de lista de imágenes de referencia
US12513334B2 (en) Constraints and unit types to simplify video random access