ES2853700T3 - Compensación de movimiento utilizando interpolación de imagen temporal - Google Patents
Compensación de movimiento utilizando interpolación de imagen temporal Download PDFInfo
- Publication number
- ES2853700T3 ES2853700T3 ES17723457T ES17723457T ES2853700T3 ES 2853700 T3 ES2853700 T3 ES 2853700T3 ES 17723457 T ES17723457 T ES 17723457T ES 17723457 T ES17723457 T ES 17723457T ES 2853700 T3 ES2853700 T3 ES 2853700T3
- Authority
- ES
- Spain
- Prior art keywords
- video data
- images
- reference elements
- additional
- data reference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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 block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un procedimiento para generar elementos de referencia en un procedimiento de codificación y/o decodificación de vídeo, en el que el procedimiento comprende las etapas de: recibir una pluralidad de elementos de referencia conocidos de datos de vídeo desde una memoria intermedia de imágenes de referencia (115), comprendiendo los elementos de referencia conocidos de datos de vídeo parte de un grupo jerárquico de imágenes; generar, usando una red neuronal (401), uno o más elementos de referencia adicionales de datos de vídeo a partir de la pluralidad de elementos de referencia conocidos de datos de vídeo; y emitir, desde la red neuronal, uno o más elementos de referencia adicionales de datos de vídeo; en donde la etapa de generar uno o más elementos de referencia adicionales de datos de vídeo a partir de uno o más elementos de referencia conocidos de datos de vídeo comprende el uso de interpolación temporal, y en donde una o más redes neuronales han sido entrenadas en conjuntos conocidos de imágenes de referencia en grupos jerárquicos de imágenes para recrear sustancialmente imágenes en capas jerárquicas superiores a partir de imágenes en capas inferiores de los grupos jerárquicos de imágenes.
Description
DESCRIPCIÓN
Compensación de movimiento utilizando interpolación de imagen temporal
Campo
La presente invención se refiere a la creación de imágenes de referencia mejoradas para su uso en la codificación y decodificación de vídeo. Más particularmente, la presente invención se refiere al uso de algoritmos jerárquicos para interpolar temporalmente imágenes de referencia mejoradas para su uso en la codificación y decodificación de vídeo. Antecedentes - Compresión de vídeo
La figura 1 ilustra las partes genéricas de un codificador de vídeo. Las tecnologías de compresión de vídeo reducen la información en las imágenes al reducir las redundancias disponibles en los datos de vídeo. Esto se puede lograr prediciendo la imagen (o partes de la misma) a partir de datos vecinos dentro del mismo cuadro (intrapredicción) o de datos previamente señalados en otros cuadros (interpredicción). La interpredicción explota similitudes entre imágenes en una dimensión temporal. Los ejemplos de tales tecnologías de vídeo incluyen, pero no se limitan a, MPEG2, H.264, HEVC, VP8, VP9, Thor y Daala. En general, la tecnología de compresión de vídeo comprende el uso de diferentes módulos. Para reducir los datos, se crea una señal residual basada en las muestras predichas. La intrapredicción 121 usa valores de muestra previamente decodificados de muestras vecinas para ayudar en la predicción de muestras actuales. La señal residual es transformada por un módulo de transformación 103 (típicamente, se utilizan Transformada de Coseno Discreta o Transformadas Rápidas de Fourier). Esta transformación permite que el codificador elimine datos en bandas de alta frecuencia, donde los humanos notan los artefactos con menos facilidad, a través de la cuantificación digital 105. Los datos resultantes y todos los datos sintácticos están codificados en entropía 125, que es una etapa de compresión de datos sin pérdidas. Los datos cuantificados digitalmente se reconstruyen mediante una etapa de cuantificación digital inversa 107 y de transformación inversa 109. Añadiendo la señal predicha, los datos visuales de entrada 101 se reconstruyen 113. Para mejorar la calidad visual, se pueden utilizar filtros, tales como un filtro de desbloqueo 111 y un filtro de compensación adaptativo de muestra 127. A continuación, la imagen se almacena para referencia futura en una memoria intermedia de imágenes de referencia 115 para permitir aprovechar la diferencia de similitudes estáticas entre dos imágenes. También se almacena en una memoria intermedia de imágenes decodificadas 129 para producir después una imagen reconstruida 113. El procedimiento de estimación de movimiento 117 evalúa uno o más bloques candidatos minimizando la distorsión en comparación con el bloque actual. Se seleccionan uno o más bloques de una o más imágenes de referencia. El desplazamiento entre el bloque actual y el bloque óptimo es utilizado por la compensación de movimiento 119, que crea una predicción para el bloque actual basada en el vector. En el caso de imágenes interpredichas, los bloques pueden ser intra o interpredecibles, o ambos.
La interpredicción aprovecha las redundancias entre cuadros de datos visuales. Los cuadros de referencia se utilizan para reconstruir los cuadros que se mostrarán, lo que da como resultado una reducción en la cantidad de datos necesarios para transmitir o almacenar. Los cuadros de referencia se transmiten generalmente antes que los cuadros de la imagen que se va a visualizar. Sin embargo, no es necesario que los cuadros se transmitan en orden de visualización. Por lo tanto, cuadros de referencia pueden ser anteriores o posteriores a la imagen actual en el orden de visualización, o incluso puede que nunca se muestren (es decir, una imagen codificada y transmitida únicamente con fines de referencia). Además, la interpredicción permite utilizar varios cuadros para una única predicción, donde se utiliza una predicción ponderada, como el promedio, para crear un bloque predicho.
La figura 2 ilustra una descripción esquemática de la parte del procedimiento de compensación de movimiento (MC) de la interpretación. En la compensación de movimiento, los bloques de referencia 201 de los cuadros de referencia 203 se combinan para producir un bloque predicho 205 de datos visuales. Este bloque predicho 205 de datos visuales se resta del bloque de entrada correspondiente 207 de datos visuales en el cuadro que se codifica actualmente 209 para producir un bloque residual 211 de datos visuales. Es el bloque residual 211 de datos visuales, junto con las identidades de los bloques de referencia 203 de datos visuales, que son usados por un decodificador para reconstruir el bloque codificado de datos visuales 207. De esta forma se reduce la cantidad de datos necesarios para transmitir al decodificador.
El procedimiento de compensación de movimiento tiene como entrada una cantidad de píxeles de la imagen original, denominada bloque, y una o más áreas que consisten en píxeles (o subpíxeles) dentro de las imágenes de referencia que tengan un buen parecido con la imagen original. El MC resta el bloque seleccionado de la imagen de referencia del bloque original. Para predecir un bloque, el MC puede usar múltiples bloques de múltiples cuadros de referencia, a través de una función de promedio ponderado, el procedimiento de MC produce un solo bloque que es el predictor del bloque del cuadro actual. Es importante tener en cuenta que los cuadros transmitidos antes del cuadro actual se pueden ubicar antes y/o después del cuadro actual en el orden de visualización.
Cuantas más similitudes tenga el bloque predicho 205 con el bloque de entrada correspondiente 207 en la imagen que se codifica, mejor será la eficiencia de compresión, ya que no será necesario que el bloque residual 211 contenga tantos datos. Por lo tanto, hacer coincidir el bloque predicho 205 lo más cerca posible de la imagen actual es
beneficioso para un buen rendimiento de codificación. En consecuencia, se requiere encontrar los bloques de referencia 201 más óptimos, o más cercanos, en las imágenes de referencia 203, lo que se conoce como estimación de movimiento.
Antecedentes - Grupos jerárquicos de imágenes
Para mejorar la predicción temporal, se pueden utilizar múltiples cuadros de referencia. Por lo tanto, se puede cambiar el orden en el que se codifican las imágenes de modo que se puedan utilizar para la predicción las imágenes antes y después de la imagen actual en el orden de visualización de las imágenes. Esta estructura se denomina estructura de grupo jerárquico de imágenes (GOP, por sus siglas en inglés), ya que las imágenes están codificadas en capas jerárquicas.
La figura 3 ilustra un ejemplo de un GOP jerárquico. Las imágenes están organizadas en orden de visualización de izquierda a derecha, y cada una está etiquetada con una letra correspondiente a su tipo. Las imágenes de tipo I (intracodificadas) se codifican independientemente de otras imágenes en el flujo de bits y no requieren ninguna predicción entre cuadros para poder reconstruirse. Las imágenes de tipo P (codificadas por predicción) requieren imágenes previamente reconstruidas para poder ser reconstruidas, y se reconstruyen mediante compensación de movimiento. Las imágenes de tipo B (codificadas por bipredicción) requieren dos imágenes de referencia para poder ser reconstruidas. En algunos casos, estas imágenes de referencia pueden estar temporalmente antes y después de ellas mismas en el orden de visualización.
Las imágenes se decodifican en un orden que no es idéntico al orden de visualización de las imágenes. En el ejemplo que se muestra, la primera imagen codificada o decodificada es la imagen I, ya que actúa como un cuadro clave a partir del cual se generan otras, pero no requiere ninguna otra imagen para su propia generación. La segunda imagen codificada o decodificada es la imagen P, que aparece en orden de visualización al final del GOP. Esto requiere conocimiento de la imagen I para poderse decodificar. Estas dos imágenes forman la capa cero del GOP jerárquico. La siguiente imagen en el orden de decodificación es la imagen B central, la cuarta en el recuento de orden de imágenes (POC). Esta imagen requiere información de ambas imágenes en la capa cero para poderse reconstruir y forma la primera capa de imagen.
En el ejemplo que se muestra, la imagen decodificada a continuación se encuentra entre la imagen I y la imagen B en la primera capa, lo que requiere el conocimiento de estas dos imágenes para poderse reconstruir. Es la segunda imagen en orden de visualización y forma una de las imágenes de la segunda capa del GOP jerárquico. Se utiliza, junto con la imagen I y la imagen de la primera capa B, para decodificar la primera y la tercera imágenes en el orden de visualización. Una vez decodificadas, estas imágenes se pueden eliminar de la memoria intermedia de referencia, ya que la decodificación de otras imágenes no depende de ellas.
La otra imagen B en la segunda capa del GOP jerárquico se descodifica a continuación usando la imagen P y la imagen B en la primera capa. En el ejemplo que se muestra, esta es la sexta imagen en orden de visualización. Esta imagen se utiliza, junto con el cuadro P y el cuadro B de la primera capa, para decodificar las imágenes B que ocupan el quinto y el séptimo lugar en el orden de visualización. Una vez decodificadas, estas imágenes y las de las otras capas se pueden eliminar de la memoria intermedia de referencia, ya que de ellas no depende la decodificación de otras imágenes. El documento de patente EP1450565 describe la predicción por interpolación de imágenes de referencia.
Antecedentes - técnicas de aprendizaje automático
El aprendizaje automático es el campo de estudio donde un ordenador u ordenadores aprenden a realizar clases de tareas utilizando la retroalimentación generada a partir de la experiencia o los datos recopilados que el procedimiento de aprendizaje automático adquiere durante la ejecución de esas tareas por ordenador.
Normalmente, el aprendizaje automático puede clasificarse en general como estrategias supervisados y no supervisados, aunque existen estrategias particulares como el aprendizaje reforzado y el aprendizaje semisupervisado que tienen reglas, técnicas y/o estrategias especiales.
El aprendizaje automático supervisado se refiere a que un ordenador aprenda una o más reglas o funciones para mapear entre entradas de ejemplo y salidas deseadas según lo predeterminado por un operador o programador, generalmente donde está etiquetado un conjunto de datos que contiene las entradas.
El aprendizaje no supervisado se ocupa de determinar una estructura para los datos de entrada, por ejemplo, cuando se realiza el reconocimiento de patrones, y normalmente utiliza conjuntos de datos no etiquetados.
El aprendizaje por refuerzo se refiere a permitir que un ordenador u ordenadores interactúen con un entorno dinámico, por ejemplo, al jugar un juego o conducir un vehículo.
Son posibles varios híbridos de estas categorías, como el aprendizaje automático «semisupervisado» en donde un conjunto de datos de entrenamiento solo se ha etiquetado parcialmente.
El aprendizaje automático no supervisado se aplica típicamente para resolver problemas donde una estructura de datos desconocida podría estar presente en los datos. Como los datos no están etiquetados, se requiere que el procedimiento de aprendizaje automático opere para identificar las relaciones implícitas entre los datos, por ejemplo, derivando una métrica de agrupamiento basada en información derivada internamente.
El aprendizaje semisupervisado se aplica típicamente para resolver problemas donde hay un conjunto de datos parcialmente etiquetado, por ejemplo, donde solo se etiqueta un subconjunto de los datos. El aprendizaje automático semisupervisado utiliza etiquetas y funciones objetivas proporcionadas externamente, así como cualquier relación de datos implícita.
Cuando se configura inicialmente un sistema de aprendizaje automático, el algoritmo de aprendizaje automático se puede proporcionar con algunos datos de entrenamiento o un conjunto de ejemplos de entrenamiento, en los que cada ejemplo es típicamente un par de una señal/vector de entrada y un valor de salida deseado, etiqueta (o clasificación) o señal. El algoritmo de aprendizaje automático analiza los datos de entrenamiento y produce una función generalizada que se puede usar con conjuntos de datos no vistos para producir valores de salida deseados o señales para los vectores/señales de entrada no vistos. El usuario debe decidir qué tipo de datos se utilizarán como datos de entrenamiento y preparar un conjunto de datos representativo del mundo real. Sin embargo, el usuario debe asegurarse de que los datos de entrenamiento contengan suficiente información para predecir con precisión los valores de salida deseados sin proporcionar demasiadas funciones. El usuario también debe determinar la estructura deseada de la función aprendida o generalizada, por ejemplo, si utilizar máquinas de vectores de soporte o árboles de decisión. El documento «Learning Image Matching by Simply Watching vídeo» de Gucan Long, Kneip Laurent, Alvarez Jose M. y Li Hongdong, publicado en Computer Vision - ECCV 2016, páginas 434 - 450, describe un enfoque basado en el aprendizaje no supervisado para el omnipresente problema de la visión por ordenador de la coincidencia de imágenes. Resumen de la invención
Los aspectos y/o realizaciones buscan proporcionar un procedimiento mejorado para generar imágenes de referencia mejoradas para su uso en la codificación y decodificación de un grupo jerárquico de imágenes. La invención se expone en el conjunto de reivindicaciones adjuntas; los ejemplos adicionales denominados realizaciones en la descripción son ejemplos ilustrativos.
Según un primer aspecto, se proporciona un procedimiento para generar imágenes de referencia en un procedimiento de codificación y/o decodificación de vídeo, comprendiendo el procedimiento las etapas de: recibir una pluralidad de elementos de referencia conocidos de datos de vídeo de una memoria intermedia de imágenes de referencia, comprendiendo los elementos de referencia conocidos de datos de vídeo parte de un grupo jerárquico de imágenes; generar, usando una red neuronal, uno o más elementos de referencia adicionales de datos de vídeo a partir de la pluralidad de elementos de referencia conocidos de datos de vídeo; y emitir, desde la red neuronal, uno o más elementos de referencia adicionales de datos de vídeo; en donde la etapa de generar uno o más elementos de referencia adicionales de datos de vídeo a partir de uno o más elementos de referencia conocidos de datos de vídeo comprende el uso de interpolación temporal, y en donde una o más redes neuronales han sido entrenadas en conjuntos conocidos de imágenes de referencia en grupos jerárquicos de imágenes para recrear sustancialmente imágenes en capas jerárquicas superiores a partir de imágenes en capas inferiores de los grupos jerárquicos de imágenes.
Al utilizar una red neuronal, en lugar de un simple promedio ponderado, para generar imágenes de referencia o bloques de referencia para una imagen que se codifica, se puede aumentar la precisión de la imagen de referencia . Esto puede dar lugar a una reducción del tamaño de los bloques residuales necesarios para reconstruir la imagen que se codifica y, en consecuencia, se requiere codificar menos datos. La red neuronal utiliza la interpolación temporal para generar las imágenes o los bloques de referencia, lo que puede conducir a un aumento de la precisión en comparación con un promedio ponderado. Los elementos de referencia adicionales generados pueden ser una mejor predicción de elementos de cualquier imagen de entrada que cualquiera de las imágenes de referencia actualmente disponibles almacenadas en la memoria intermedia de referencia.
Se pueden usar múltiples elementos de referencia conocidos como entradas a las redes neuronales. Esto proporciona datos temporales adicionales para la interpolación temporal, lo que puede resultar en una mayor precisión de la imagen de referencia generada en comparación con el uso de un único elemento de referencia conocido como entrada. Opcionalmente, la pluralidad de elementos de referencia conocidos de datos de vídeo comprende una o más imágenes de referencia conocidas de datos de vídeo.
La toma de imágenes de referencia completas conocidas como entradas a la red neuronal permite utilizar la información de todas las imágenes de referencia conocidas para generar un nuevo cuadro de referencia.
Opcionalmente, el uno o más elementos de referencia adicionales de datos de vídeo comprenden una o más imágenes
de referencia adicionales de datos de vídeo.
La salida de una imagen de referencia completamente nueva desde la red neuronal permite usar o almacenar una imagen de referencia completamente nueva para uso futuro.
Opcionalmente, el uno o más elementos de referencia conocidos de datos de vídeo comprenden uno o más bloques de referencia conocidos de datos de vídeo.
El uso de bloques de datos de vídeo de imágenes de referencia conocidas permite que las redes neuronales se apliquen bloque por bloque, lo que puede aumentar la precisión de la imagen de referencia generada si están presentes varios tipos de datos visuales.
Opcionalmente, el uno o más elementos de referencia adicionales de datos de vídeo comprenden uno o más bloques de referencia adicionales de datos de vídeo.
La salida de nuevos bloques de referencia de datos de vídeo en lugar de una imagen de referencia completamente nueva puede permitir que se actualice un fondo estático. En este caso, solo las oclusiones deben generarse y enviarse directamente al procedimiento de estimación de movimiento/compensación de movimiento, reduciendo la memoria de imagen de referencia requerida.
Opcionalmente, uno o más de los uno o más elementos de referencia adicionales de datos de vídeo se ubican de forma conjunta temporalmente con uno o más del uno o más elementos de referencia conocidos de datos de vídeo. Al tener los elementos de referencia de salida de los datos de vídeo ubicados de forma conjunta temporalmente con los elementos de referencia conocidos que ya están en la memoria intermedia de imágenes de referencia, los elementos de referencia conocidos pueden, en efecto, mejorarse usando interpolación temporal.
Opcionalmente, uno o más de los uno o más elementos de referencia adicionales de vídeo no se ubican de forma conjunta temporalmente con uno o más del uno o más elementos de referencia conocidos de datos de vídeo.
La predicción de una imagen ubicada de forma conjunta no temporalmente a partir de imágenes de referencia conocidas puede resultar en tener que codificar menos datos de vídeo en el flujo de bits codificado.
Opcionalmente, el uno o más elementos de referencia adicionales de datos de vídeo son temporalmente intermedios entre dos o más elementos de referencia conocidos de datos de vídeo.
El uso de imágenes de referencia conocidas que ocurren en el orden de visualización antes y después de la imagen de entrada que se predice puede resultar en una mayor precisión del cuadro de referencia adicional predicho, ya que los datos temporales de antes y después de la imagen están disponibles .
Opcionalmente, el uno o más elementos de referencia adicionales de datos de vídeo están temporalmente fuera del intervalo de los dos o más elementos de referencia conocidos de datos de vídeo.
Opcionalmente, el uno o más elementos de referencia adicionales de datos de vídeo se envían a la memoria intermedia de imágenes de referencia.
El almacenamiento de la imagen de referencia adicional predicha en la memoria intermedia de imágenes de referencia permite que se utilicen en la predicción de futuras imágenes de entrada, y también permite que se actualicen a medida que se disponga de conocimiento de futuras imágenes de entrada.
Opcionalmente, el procedimiento comprende además el paso de actualizar uno o más elementos de referencia adicionales de datos de vídeo en la memoria intermedia de imágenes de referencia basándose en el conocimiento de los datos decodificados de las imágenes de entrada de datos de vídeo.
Otras imágenes de entrada de datos de vídeo pueden incluir información temporal adicional que podría mejorar la precisión del cuadro de referencia adicional predicho. Por lo tanto, es ventajoso permitir que las imágenes de referencia adicionales generadas previamente se actualicen cuando este conocimiento esté disponible.
Opcionalmente, uno o más de los uno o más elementos de referencia adicionales de datos de vídeo están ubicados de forma conjunta temporalmente con una imagen de entrada de datos de vídeo que se codifican o descodifican. La predicción de un cuadro de referencia adicional que está ubicado de forma conjunta temporalmente con una imagen de entrada actual permite realizar la compensación de movimiento en la imagen predicha directamente. También reduce la tasa de bits para la codificación de la imagen ubicada de forma conjunta temporalmente.
Opcionalmente, uno o más de los uno o más elementos de referencia adicionales de datos de vídeo no se ubican de
forma conjunta temporalmente con una imagen de entrada de datos de vídeo que se codifica o descodifica.
La predicción de imágenes de referencia adicionales intermedias que no están ubicadas de forma conjunta temporalmente con la imagen de entrada actual puede ser útil en situaciones donde solo se dispone de una cantidad limitada de imágenes de referencia conocidas. El uso de imágenes intermedias también puede permitir que se use la misma imagen de referencia adicional para dos imágenes de entrada vecinas con una sobrecarga limitada en términos de velocidad de bits en comparación con el uso de diferentes imágenes de referencia para cada una. Esto permite mejorar el comportamiento de la tasa de bits, ya que la tasa de bits será más regular.
Opcionalmente, el uno o más elementos de referencia adicionales de datos de vídeo se envían a un procedimiento de compensación de movimiento.
Opcionalmente, el procedimiento comprende además la etapa de realizar el procedimiento de compensación de movimiento usando dos o más elementos de referencia adicionales de datos de vídeo, en donde uno o más elementos de referencia adicionales de datos de vídeo no son temporalmente ubicados de forma conjunta con una imagen de entrada que se está codificando.
Opcionalmente, el procedimiento que comprende además la etapa de realizar el procedimiento de compensación de movimiento usando dos o más elementos de referencia adicionales de datos de vídeo y uno o más de los dos o más elementos de referencia adicionales de datos de vídeo no son temporalmente ubicados de forma conjunta con la imagen de entrada que se está codificando.
El uso de imágenes de referencia adicionales generadas en el procedimiento de compensación de movimiento en lugar de imágenes de referencia conocidas para la imagen de entrada actual puede resultar en que sea necesario un conjunto más pequeño de bloques residuales para codificar la imagen de entrada en comparación con cualquier imagen de referencia conocida. Esto se debe a que la imagen adicional interpolada temporalmente puede ser más similar a la imagen de entrada actual que un promedio ponderado de dos imágenes de referencia conocidas.
Opcionalmente, el uno o más elementos de referencia adicionales de datos de vídeo se envían a un procedimiento de estimación de movimiento.
El uso de elementos de referencia adicionales calculados para determinar un vector de movimiento puede resultar en un cálculo más eficiente en comparación con el uso de cuadros de referencia conocidos, ya que el nuevo cuadro interpolado temporalmente puede ser más similar al cuadro de entrada actual que cualquiera de los cuadros conocidos. Opcionalmente, el uno o más elementos de referencia adicionales de los datos de vídeo se envían de forma adaptativa a un procedimiento de estimación de movimiento en función de una señal de conmutación.
Cuando la imagen de referencia adicional es suficientemente similar a la imagen de entrada actual, no se requiere estimación de movimiento, ya que la compensación de movimiento se puede usar directamente en la imagen de referencia adicional. Sin embargo, si la imagen de referencia adicional no es suficientemente similar a la imagen de entrada, se requiere una estimación de movimiento para estimar un vector de movimiento. La capacidad de activar y desactivar la estimación de movimiento proporciona la flexibilidad para adaptarse a estas dos situaciones.
Opcionalmente, el procedimiento comprende además: calcular, utilizando la red neuronal, un vector de movimiento que relaciona el uno o más elementos de referencia conocidos de datos de vídeo con uno o más elementos de entrada de datos de vídeo; y emitir, desde la red neuronal, el vector de movimiento calculado, en donde la red neuronal se ha entrenado además en conjuntos de imágenes en una secuencia temporal con vectores de movimiento aproximados conocidos entre al menos algunas de las imágenes en la secuencia.
El procedimiento de estimación de movimiento se puede combinar con la interpolación temporal en las redes neuronales entrenando las redes neuronales en conjuntos de imágenes con vectores de movimiento conocidos entre ellas. La estimación del vector de movimiento mientras se generan las imágenes adicionales interpoladas temporalmente puede aumentar la eficiencia computacional del procedimiento.
Opcionalmente, el uno o más elementos de referencia conocidos de datos de vídeo comprenden parte de un grupo jerárquico de imágenes.
Los grupos jerárquicos de imágenes pueden reducir los requisitos de almacenamiento al decodificar datos. El uso de una red neuronal que aplica interpolación temporal a las imágenes en el GOP jerárquico puede aumentar la precisión de la predicción de imágenes en las capas más altas del GOP jerárquico en comparación con el uso de un promedio ponderado.
Opcionalmente, la red neuronal se actualiza basándose en el conocimiento de uno o más elementos de referencia conocidos de datos de vídeo y el uno o más elementos de referencia adicionales de datos de vídeo.
Opcionalmente, la red neuronal se actualiza basándose en el conocimiento de uno o más bloques residuales calculados a partir del uno o más elementos de referencia adicionales de datos de vídeo y uno o más elementos de entrada de datos de vídeo.
Opcionalmente, la red neuronal comprende: una red neuronal convolucional; una red neuronal recurrente; una red de memoria a corto plazo; una red convolucional 3D; una red de memoria; o una red recurrente cerrada.
El uso de cualquiera de una red neuronal convolucional; red neuronal recurrente; red de memoria a corto plazo; red convolucional multidimensional; una red de memoria; o una red recurrente cerrada permite una estrategia flexible al generar los elementos de referencia adicionales. El uso de un algoritmo con una unidad de memoria, como una red de memoria a largo plazo a corto plazo (LSTM), una red de memoria o una red recurrente cerrada, puede mantener el estado de los elementos de referencia adicionales calculados para los cuadros de entrada anteriores con el fin de mejorar la generación de futuros cuadros de referencia adicionales en la misma secuencia de imágenes. El uso de estas redes puede mejorar la eficiencia computacional y también mejorar la consistencia temporal en el procedimiento de compensación de movimiento a través de una serie de cuadros, ya que el algoritmo mantiene algún tipo de estado o memoria de los cambios en el movimiento. Además, esto puede resultar en una reducción de las tasas de error. Opcionalmente, el procedimiento se realiza en un nodo dentro de una red.
Opcionalmente, los metadatos asociados con la red neuronal se transmiten a través de la red.
Opcionalmente, una o más redes neuronales se transmiten a través de la red.
Al transmitir datos de vídeo a través de una red, como Internet, el procedimiento se puede realizar en los nodos de codificación y/o descodificación para reducir la cantidad de datos que se requiere transmitir a través de la red. El codificador puede transmitir metadatos que identifican qué red neuronal y/o configuraciones necesita usar el decodificador para generar los cuadros de referencia adicionales, o alternativamente puede transmitir la red neuronal al decodificador si no están almacenados allí.
En esta invención, la palabra imagen se usa preferiblemente para connotar una matriz de elementos de imagen (píxeles) que representan datos visuales tales como: una imagen (por ejemplo, una matriz de muestras de luma en formato monocromo o una matriz de muestras de luminancia y dos matrices correspondientes de muestras de crominancia en, por ejemplo, formato de color 4:2:0, 4:2:2 y 4:4:4); un campo o campos (por ejemplo, representación entrelazada de un medio cuadro: campo superior y/o campo inferior); o cuadros (por ejemplo, combinaciones de dos o más campos).
En esta invención, la palabra bloque se puede utilizar para connotar un grupo de píxeles, un parche de una imagen que comprende píxeles o un segmento de una imagen. Este bloque puede ser rectangular o puede tener cualquier forma, por ejemplo, comprender una característica irregular o regular dentro de la imagen. El bloque puede comprender potencialmente píxeles que no son adyacentes.
Breve descripción de los dibujos
Las realizaciones se describirán ahora, solo a modo de ejemplo y con referencia a los dibujos adjuntos que tienen números de referencia similares, en los que:
La figura 1 ilustra las partes genéricas de un codificador de vídeo;
la figura 2 ilustra una descripción esquemática de la parte del procedimiento de compensación de movimiento (MC) de la interpretación;
la figura 3 ilustra un ejemplo de un GOP jerárquico;
la figura 4 ilustra una realización de un procedimiento de codificación que usa una red neuronal para la interpolación temporal;
la figura 5 ilustra una realización alternativa de un procedimiento de codificación que usa una red neuronal para la interpolación temporal;
la figura 6 ilustra una realización de un procedimiento de codificación que usa una red neuronal para la interpolación temporal y la estimación de movimiento; y
la figura 7 muestra un aparato 700 que comprende un aparato de procesamiento 702 y una memoria 704 según una realización ejemplar.
Descripción específica
Con referencia a la figura 4, ahora se describirá una realización ejemplar del procedimiento de compensación de movimiento.
La figura 4 ilustra una realización de un procedimiento de codificación que utiliza un algoritmo jerárquico para la interpolación temporal. Se codifican múltiples cuadros 101 de entrada para producir un grupo jerárquico de imágenes
(GOP) en el flujo de bits codificado 131. Para mejorar la codificación, particularmente el procedimiento de compensación de movimiento 119, se usa un algoritmo jerárquico para intercalar o interpolar temporalmente imágenes en el GOP jerárquico que se decodificaron y almacenaron previamente en una memoria intermedia de imágenes de referencia 115.
Una o más imágenes de referencia previamente decodificadas se toman de la memoria intermedia de imágenes de referencia 115 y se introducen en un algoritmo jerárquico 401. En el ejemplo que se muestra, se utilizan dos imágenes de referencia, aunque se pueden utilizar una imagen de referencia o varias imágenes de referencia. El algoritmo jerárquico 401 realiza una interpolación temporal de las imágenes de referencia de entrada y genera una o más imágenes de referencia adicionales para su uso en el procedimiento de compensación de movimiento 119 y el procedimiento de estimación de movimiento 117 que se realiza en el cuadro de entrada actual 101. Estas imágenes de referencia adicionales generadas pueden ubicarse de forma conjunta temporalmente con la imagen de entrada actual 101. Alternativamente, las imágenes de referencia adicionales generadas pueden estar en cualquier otra posición en el flujo de bits, lo que las hace temporalmente no ubicadas de forma conjunta, incluidas las posiciones que aún no se han señalizado y/o codificado. Otra opción es generar imágenes de referencia adicionales que no se ubiquen de forma conjunta temporalmente con ninguna imagen en el flujo de bits, sino que estén ubicadas entre imágenes, por ejemplo, entre POC 6 y POC 7 en el GOP jerárquico en la Figura 3, o fuera del intervalo temporal del GOP jerárquico, por ejemplo antes del POC 0 o después del POC 8 en la Figura 3. En general, las imágenes de referencia adicionales no tienen que situarse temporalmente simétricamente entre las imágenes de referencia a partir de las cuales se generan; por ejemplo, la imagen de referencia para POC 6 podría predecirse a partir de POC 0 y POC 8 en la Figura 3.
En algunas realizaciones, el algoritmo jerárquico 401 genera una única imagen de referencia adicional a los procedimientos de compensación de movimiento 119 y estimación de movimiento 117. El procedimiento de estimación de movimiento 117 produce entonces un vector de estimación de movimiento que relaciona bloques en la imagen de referencia adicional con bloques en la imagen de entrada 101, y el procedimiento de compensación de movimiento 119 usa la única imagen de referencia adicional y el vector de movimiento para generar un conjunto de bloques residuales.
Alternativamente, se pueden usar múltiples imágenes de referencia en los procedimientos de estimación de movimiento 117 y compensación 119. El procedimiento de estimación de movimiento 117 calculará los vectores de movimiento para cada una de estas imágenes de referencia, y los enviará al procedimiento de compensación de movimiento 119. El procedimiento de compensación de movimiento 119 utilizará los vectores de movimiento calculados, junto con los múltiples cuadros de referencia, para generar un conjunto de bloques residuales. Las múltiples imágenes de referencia pueden comprender imágenes de referencia conocidas además de una o más imágenes de referencia adicionales generadas por el algoritmo jerárquico 401.
Los algoritmos jerárquicos utilizados para producir las imágenes de referencia adicionales se entrenan previamente en conjuntos conocidos de imágenes de referencia en GOP jerárquicos. Los algoritmos jerárquicos están entrenados para recrear sustancialmente las imágenes en capas jerárquicas más altas de aquellas en capas más bajas de los GOP jerárquicos.
Alternativamente, los algoritmos jerárquicos se pueden entrenar en conjuntos conocidos de imágenes de referencia en una secuencia de imágenes que no están en una estructura GOP jerárquica para reproducir sustancialmente una o más de las imágenes de referencia conocidas de una o más de las otras imágenes de referencia conocidas.
Una opción de entrenamiento adicional es entrenar los algoritmos jerárquicos en imágenes descodificadas previamente, con una función de costo relativa a imágenes sin comprimir en la misma ubicación temporal que las imágenes decodificadas.
El entrenamiento tiene como objetivo optimizar el algoritmo usando una función de costo que describe la diferencia entre los cuadros de referencia de salida del algoritmo jerárquico y los cuadros de referencia conocidos a los que corresponden. Dada la cantidad de datos de entrenamiento, el entrenamiento se puede optimizar mediante entrenamiento paralelo y distribuido. El entrenamiento se puede realizar en paralelo o en una red distribuida. Además, el entrenamiento podría comprender múltiples iteraciones para optimizar diferentes posiciones temporales de la imagen en relación con las imágenes de referencia.
Una vez entrenados, los algoritmos jerárquicos se almacenan en una biblioteca de algoritmos jerárquicos para su futura recuperación, junto con los metadatos relacionados con los GOP jerárquicos en los que fueron entrenados. Los metadatos pueden incluir, por ejemplo, cualquiera de: el tipo de contenido de las imágenes en el algoritmo jerárquico sobre el que se entrenó; el número de cuadros de referencia conocidos necesarios como entrada; las capas del GOP jerárquico que han sido entrenadas para predecir; la resolución de las imágenes en las que fueron entrenadas; la velocidad de cuadros de las imágenes en las que fueron entrenadas; y/o datos métricos relacionados con las imágenes en las que fueron entrenadas. Durante el procedimiento de codificación, estos metadatos se comparan con los metadatos relacionados con el cuadro de entrada 101 y los cuadros de referencia conocidos almacenados en la memoria intermedia de referencia 115, y se utilizan para seleccionar cuál de los algoritmos jerárquicos almacenados
en la biblioteca se utilizará para generar las imágenes de referencia adicionales.
En algunas realizaciones, los algoritmos jerárquicos se pueden actualizar para aprovechar las imágenes de referencia adicionales producidas. Las imágenes de referencia adicionales y las imágenes de referencia conocidas a partir de las cuales se interpolaron se pueden utilizar como datos de entrenamiento adicionales para mejorar el rendimiento de los algoritmos jerárquicos utilizados para la interpolación, actualizándolos en base al conocimiento de las imágenes de referencia conocidas y las imágenes de referencia adicionales. Durante la actualización del algoritmo jerárquico, no es necesario utilizar todas las imágenes de referencia adicionales en el entrenamiento. Por ejemplo, sólo se pueden usar aquellas imágenes de referencia adicionales que estén lo suficientemente cerca de sus correspondientes imágenes de referencia conocidas (según lo definido por una función métrica o de costo).
Alternativa o adicionalmente, los bloques de datos residuales que reproducen la imagen de entrada a partir de las imágenes de referencia adicionales pueden usarse para entrenar aún más el algoritmo jerárquico. El algoritmo se puede entrenar para producir una imagen de referencia adicional que minimice el tamaño del bloque de datos residual. Los bloques de datos residuales calculados durante el procedimiento de codificación se pueden utilizar como datos de entrenamiento adicionales para actualizar los algoritmos jerárquicos. Los bloques residuales utilizados para el entrenamiento se pueden elegir en función de su tamaño, por ejemplo, descartando los bloques residuales que tenían un tamaño por encima de algún límite predefinido, para garantizar que no se utilicen en el entrenamiento imágenes de referencia adicionales que produjeron grandes bloques residuales. .
En algunas realizaciones, el algoritmo jerárquico actúa de manera similar a un filtro de aumento de escala temporal que se usa para la conversión de la velocidad de cuadros.
La figura 5 ilustra una realización alternativa de un procedimiento de codificación que utiliza un algoritmo jerárquico para la interpolación temporal. Se codifican múltiples cuadros de entrada para producir un grupo jerárquico de imágenes (GOP) en el flujo de bits codificado. Con el fin de mejorar la codificación, se usa un algoritmo jerárquico 501 para intercalar temporalmente imágenes decodificadas previamente y almacenarlas en la memoria intermedia de imágenes de referencia 115. Las imágenes de referencia adicionales estarán disponibles entonces como referencia para el cuadro de entrada 101 actual que se está codificando, así como también para los cuadros de entrada futuros. Estas imágenes de referencia adicionales generadas pueden ubicarse de forma conjunta temporalmente con la imagen de entrada actual 101. Alternativamente, las imágenes de referencia adicionales generadas pueden estar en cualquier otra posición en el flujo de bits, lo que las hace temporalmente no ubicadas de forma conjunta, incluidas las posiciones que aún no se han señalizado y/o codificado. Otra opción es generar imágenes de referencia adicionales que no se ubiquen de forma conjunta temporalmente con ninguna imagen en el flujo de bits, sino que estén ubicadas entre imágenes, por ejemplo, entre pOc 6 y POC 7 en la Figura 3. En general, las imágenes de referencia adicionales no tienen que colocarse temporalmente simétricamente entre las imágenes de referencia a partir de las cuales se generan; por ejemplo, la imagen de referencia para POC 6 podría predecirse a partir de POC 0 y POC 8 en la Figura 3.
La imagen de referencia adicional de salida también se puede ubicar de forma conjunta temporalmente con una de las imágenes de referencia de entrada. De esta manera, la imagen de referencia conocida utilizada actualmente se puede mejorar, por ejemplo, utilizando el conocimiento de otros marcos de referencia conocidos que no están ubicados de forma conjunta temporalmente con el cuadro de referencia conocido actual. Además, esto puede permitir que los cuadros de referencia conocidos se actualicen u optimicen continuamente durante el procedimiento de codificación a medida que se disponga del conocimiento de más cuadros de entrada. Las actualizaciones generadas de esta manera, o las instrucciones relativas a cómo generarlas, pueden incluirse en el flujo de bits codificado para indicar al decodificador cómo generar estas actualizaciones. Alternativamente, estas instrucciones podrían indicarse en una banda lateral como metadatos para una aplicación.
El algoritmo jerárquico 501 toma como entrada una o más imágenes de referencia de la memoria intermedia de imágenes de referencia 115. En la realización que se muestra, se utilizan dos imágenes de referencia como entrada. El algoritmo jerárquico 501 realiza una interpolación temporal en los cuadros de referencia de entrada y envía una nueva imagen de referencia a la memoria intermedia de imágenes de referencia 115.
Cuando se almacenan en la memoria intermedia de referencia 115, los cuadros de referencia adicionales generados pueden tener operaciones de control de referencia aplicadas a ellos. Esto permite que se almacenen en la memoria intermedia de imágenes de referencia 115 durante un período de tiempo mayor, de modo que puedan usarse para futuras imágenes de entrada 101, y asegura que los cuadros de referencia adicionales recién creados se puedan usar como cuadros de referencia regulares. Por tanto, las imágenes de referencia adicionales almacenadas se pueden utilizar como entradas al algoritmo jerárquico para futuros cuadros de entrada 101 y, al hacerlo, se pueden actualizar basándose en el conocimiento de estos futuros cuadros de entrada.
La realización de la figura 5 se puede combinar con la de la figura 4, de modo que el algoritmo jerárquico emite un cuadro de referencia adicional generado al procedimiento de compensación de movimiento 119, al procedimiento de estimación de movimiento 117 y a la memoria intermedia de imágenes de referencia 115.
En las dos realizaciones que se muestran en las Figuras 4 y 5, el procedimiento de estimación de movimiento puede activarse y desactivarse de forma adaptativa, utilizando un mecanismo de señalización que indica al proceso de estimación de movimiento que no se realice en la imagen de referencia adicional recién creada. Esto daría como resultado que solo los bloques de la imagen de referencia adicional que se ubican de forma conjunta espacialmente con los bloques en la imagen de entrada se utilicen en el procedimiento de compensación de movimiento. Para un algoritmo jerárquico suficientemente bien entrenado, el cuadro de referencia adicional generado será lo suficientemente similar al cuadro de entrada como para que el procedimiento de compensación de movimiento pueda producir bloques de datos residuales sin requerir el uso de una traslación entre el cuadro de referencia adicional y el cuadro de entrada. En efecto, la traslación requerida entre los cuadros de referencia conocidos y el cuadro de entrada se implementa mediante el algoritmo jerárquico cuando se producen las imágenes de referencia adicionales.
La figura 6 ilustra una realización de un procedimiento de codificación que usa un algoritmo jerárquico para la interpolación temporal y la estimación del movimiento. En esta realización, uno o más cuadros de referencia conocidos de la memoria intermedia de referencia 115 se utilizan como entrada a un algoritmo jerárquico 601, que genera un cuadro de referencia temporalmente intermedio y un vector de movimiento al procedimiento de compensación de movimiento 119. Aquí, la generación de alguna forma de vector de movimiento es una parte intrínseca del algoritmo jerárquico 601.
Los algoritmos jerárquicos 601 usados en esta realización se entrenan en conjuntos conocidos de imágenes en una secuencia temporal, con un vector de movimiento aproximado conocido entre al menos algunas de las imágenes en la secuencia. La secuencia de imágenes puede ser parte de un GOP jerárquico, en cuyo caso se puede utilizar información adicional, como la capa de cada imagen en el GOP, para mejorar el entrenamiento. Alternativamente, las imágenes no están organizadas en una estructura GOP jerárquica.
El entrenamiento tiene como objetivo optimizar el algoritmo usando una función de costo que describe la diferencia entre los cuadros de referencia de salida del algoritmo jerárquico y los cuadros de referencia conocidos a los que corresponden. Dada la cantidad de datos de entrenamiento, el entrenamiento se puede optimizar mediante entrenamiento paralelo y distribuido. El entrenamiento se puede realizar en paralelo o en una red distribuida. Además, el entrenamiento podría comprender múltiples iteraciones para optimizar diferentes posiciones temporales de la imagen en relación con las imágenes de referencia.
Una vez entrenados, los algoritmos jerárquicos se almacenan en una biblioteca de algoritmos jerárquicos para su futura recuperación, junto con los metadatos relacionados con los conjuntos de imágenes en los que fueron entrenados. Los metadatos pueden incluir, por ejemplo, cualquiera de: el tipo de contenido de las imágenes en el algoritmo jerárquico sobre el que se entrenó; el número de cuadros de referencia conocidos necesarios como entrada; las capas del GOP jerárquico que han sido entrenadas para predecir; la resolución de las imágenes en las que fueron entrenadas; la velocidad de cuadros de las imágenes en las que fueron entrenadas; y/o datos métricos relacionados con las imágenes en las que fueron entrenadas. Durante el procedimiento de codificación, estos metadatos se comparan con los metadatos relacionados con el cuadro de entrada 101 y los cuadros de referencia conocidos almacenados en la memoria intermedia de referencia 115, y se utilizan para seleccionar cuál de los algoritmos jerárquicos almacenados en la biblioteca se utilizará para generar las imágenes de referencia adicionales.
En las realizaciones mostradas en las Figuras 4 a 6, el algoritmo jerárquico se usa para generar imágenes de referencia adicionales durante el procedimiento de codificación. Sin embargo, el uso de algoritmos jerárquicos para generar imágenes de referencia mejoradas adicionales a partir de imágenes de referencia conocidas, tales como imágenes decodificadas previamente, se puede aplicar igualmente a un descodificador. En el decodificador, las imágenes de referencia de una memoria intermedia de imágenes de referencia se utilizan como entradas para el algoritmo jerárquico, y la imagen de referencia adicional resultante se envía al procedimiento de compensación de movimiento y/o de vuelta a la memoria intermedia de referencia. Como no se requiere un procedimiento de estimación de movimiento en el decodificador, dado que el vector de movimiento se señaliza al codificador en el flujo de bits codificado, generado por el propio algoritmo jerárquico, o no se requiere, no hay necesidad de enviar el cuadro de referencia adicional a un procedimiento de estimación de movimiento.
Cuando se utiliza en un decodificador, la identidad del algoritmo jerárquico o los algoritmos necesarios para generar los cuadros de referencia adicionales se pueden señalar al decodificador en el flujo de bits codificado o en un canal lateral de metadatos como referencia de biblioteca. La referencia de biblioteca se usa en el decodificador para seleccionar el algoritmo jerárquico relevante de una biblioteca de algoritmos jerárquicos almacenados en el decodificador que es sustancialmente idéntica a la biblioteca de algoritmos jerárquicos almacenados en el codificador. Alternativamente, los algoritmos jerárquicos requeridos se pueden transmitir al decodificador, ya sea en el flujo de bits codificado con las imágenes de vídeo codificadas, o en un canal lateral. Se puede utilizar una combinación de esto y el procedimiento de referencia de biblioteca descrito en el párrafo anterior en situaciones en las que solo se sabe que algunos de los algoritmos jerárquicos requeridos están almacenados en el decodificador.
Cuando el codificador ha actualizado los cuadros de referencia adicionales generados anteriormente durante el procedimiento de codificación, estas actualizaciones se señalarán al descodificador en el flujo de bits codificado o
como metadatos en una banda lateral.
En cualquiera de las realizaciones descritas anteriormente, el algoritmo jerárquico se puede aplicar individualmente a elementos de las imágenes de referencia conocidas, tales como bloques de datos de vídeo, grupos de bloques de datos de vídeo o elementos dentro de las imágenes de referencia conocidas, en lugar de la imagen de referencia conocida completa. En estos casos, la entrada al algoritmo jerárquico puede ser, entonces, las imágenes de referencia conocidas completas o simplemente los elementos particulares que experimentan la interpolación temporal. El algoritmo jerárquico generará a continuación los elementos de referencia adicionales generados, no las imágenes de referencia adicionales completas. Estos elementos de referencia adicionales generados pueden ubicarse de forma conjunta temporalmente o no ubicarse de forma conjunta temporalmente con cualquiera de los elementos de referencia conocidos utilizados como entradas para el algoritmo jerárquico. También pueden ubicarse de forma conjunta temporalmente o no ubicarse de forma conjunta temporalmente con cualquiera de los cuadros de entrada que se codifican.
Todas las realizaciones anteriores se pueden realizar en un nodo dentro de una red, como un servidor conectado a Internet, con un flujo de bits codificado generado por el procedimiento de codificación general transmitiéndose a través de la red a un nodo adicional, donde el flujo de bits codificado puede ser descodificado por un descodificador presente en ese nodo. El flujo de bits codificado puede contener datos relacionados con el algoritmo jerárquico o los algoritmos usados en el procedimiento de codificación, como una referencia que identifica qué algoritmos jerárquicos almacenados en una biblioteca en el nodo receptor son necesarios, o una lista de coeficientes para un algoritmo jerárquico conocido. Estos datos se pueden señalar alternativamente en una banda lateral, como los metadatos en una aplicación. Si un algoritmo jerárquico referenciado no está presente en el nodo de recepción/descodificación, entonces el nodo recupera el algoritmo del nodo de transmisión o de cualquier otro nodo de red en el que esté almacenado.
Además, los algoritmos jerárquicos en cada una de las realizaciones anteriores se pueden entrenar para aplicar un filtrado adicional en la imagen o bloque de referencia adicional generado. Esto se puede utilizar para eliminar artefactos de bloqueo y desenfoque que surgen como consecuencia de cualquier rendimiento deficiente en un algoritmo jerárquico simple. Dichos filtros incluyen, pero no se limitan a: un filtro de desbloqueo; un filtro de compensación adaptativa de muestra; un filtro de bucle adaptativo; o un filtro Wiener.
Cualquier aspecto del procedimiento descrito en esta invención se puede implementar en hardware o software. Cualquier característica del sistema como se describe en esta invención también se puede proporcionar como una característica del procedimiento, y viceversa. Como se usa en esta invención, los medios más las características de función se pueden expresar alternativamente en términos de su estructura correspondiente.
Cualquier característica en un aspecto de la invención puede aplicarse a otro aspecto de la invención en una combinación adecuada. En particular, los aspectos del procedimiento pueden aplicarse a los aspectos del sistema y viceversa. Además, cualquiera, algunas y/o todas las características en un aspecto se pueden aplicar a cualquiera, algunas y/o todas las características en cualquier otro aspecto, en cualquier combinación apropiada.
También debe apreciarse que las combinaciones particulares de las diversas características descritas y definidas en cualquier aspecto de la invención pueden implementarse y/o suministrarse y/o usarse de forma independiente. Algunas de las realizaciones de ejemplo se describen como procedimientos representados como diagramas. Aunque un diagrama de flujo puede describir las operaciones como procedimientos secuenciales, muchas de las operaciones se pueden realizar en paralelo o simultáneamente. Además, el orden de las operaciones se puede volver a organizar. Un procedimiento termina cuando sus operaciones están completas, pero podría tener etapas adicionales que no se incluyen en la figura. Los procedimientos pueden corresponder a métodos, funciones, procedimientos, subrutinas, subprogramas, etc.
Los procedimientos discutidos anteriormente, algunos de los cuales están ilustrados por los diagramas, pueden implementarse mediante hardware, software, firmware, middleware, microcódigo, lenguajes de descripción de hardware o cualquier combinación de los mismos. Cuando se implementa en software, firmware, middleware o microcódigos, el código del programa o segmentos de código para realizar las tareas necesarias se pueden almacenar en un medio legible por máquinas u ordenadores como un medio de almacenamiento. Un aparato de procesamiento puede realizar las tareas relevantes.
La figura 7 muestra un aparato 700 que comprende un aparato de procesamiento 702 y una memoria 704 según una realización ejemplar. El código 706 legible por ordenador puede almacenarse en la memoria 704 y puede, cuando se ejecuta mediante el aparato de procesamiento 702, hacer que el aparato 700 realice procedimientos como se describe aquí, por ejemplo, un procedimiento con referencia a las Figuras 4 a 6.
El aparato de procesamiento 702 puede ser de cualquier composición adecuada y puede incluir uno o más procesadores de cualquier tipo adecuado o combinación adecuada de tipos. De hecho, debe entenderse que el término
«aparato de procesamiento» engloba ordenadores que tienen arquitecturas diferentes tales como arquitecturas de procesador único/multiprocesador y arquitecturas de secuenciadores/paralelo. Por ejemplo, el aparato de procesamiento puede ser un procesador programable que interpreta las instrucciones del programa informático y procesa datos. El aparato de procesamiento puede incluir una pluralidad de procesadores programables. Alternativamente, el aparato de procesamiento puede ser, por ejemplo, hardware programable con firmware integrado. El aparato de procesamiento puede incluir, alternativa o adicionalmente, Unidades de Procesamiento de Gráficos (GPU), o uno o más circuitos especializados tales como arreglos de puertas programables en campo FPGA, Circuitos Integrados de Aplicación Específica (ASIC), dispositivos de procesamiento de señales, etc. En algunos aspectos, los aparatos de procesamiento pueden denominarse aparato informático o medio de procesamiento.
El aparato de procesamiento 702 está acoplado a la memoria 704 y es operable para leer/escribir datos en/desde la memoria 704. La memoria 704 puede comprender una única unidad de memoria o una pluralidad de unidades de memoria, en las que se almacenan las instrucciones (o el código) legibles por ordenador. Por ejemplo, la memoria puede comprender tanto una memoria volátil como una memoria no volátil. En tales ejemplos, las instrucciones/código de programa legibles por ordenador pueden almacenarse en la memoria no volátil y pueden ser ejecutadas por el aparato de procesamiento utilizando la memoria volátil para el almacenamiento temporal de datos o datos e instrucciones. Los ejemplos de memoria volátil incluyen RAM, DRAM y SDRAM, etc. Los ejemplos de memoria no volátil incluyen ROM, p Ro M, EEPROM, memoria flash, almacenamiento óptico, almacenamiento magnético, etc.
Un algoritmo, como se usa el término aquí, y como se usa generalmente, se concibe como una secuencia autoconsistente de etapas que conducen a un resultado deseado. Las etapas son las que requieren manipulaciones físicas de cantidades físicas. Por lo general, aunque no necesariamente, estas cantidades toman la forma de señales ópticas, eléctricas o magnéticas que se pueden almacenar, transferir, combinar, comparar y manipular de otro modo. En ocasiones, ha resultado conveniente, principalmente por razones de uso común, referirse a estas señales como bits, valores, elementos, símbolos, caracteres, términos, números o similares.
Los procedimientos descritos en las realizaciones ilustrativas pueden implementarse como módulos de programa o procedimientos funcionales que incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan una funcionalidad particular, y puede implementarse utilizando hardware existente. Tal hardware existente puede incluir uno o más procesadores (por ejemplo, una o más unidades centrales de procesamiento), procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación, matrices de puertas programables en campo (FPGA), ordenadores o similares.
A menos que se indique específicamente lo contrario, o como se desprende de la discusión, términos como procesamiento o computación o cálculo o determinación o similares, se refieren a las acciones y procedimientos de un sistema informático o dispositivo informático electrónico similar. Obsérvese también que los aspectos implementados por software de las realizaciones de ejemplo pueden codificarse en alguna forma de medio de almacenamiento de programas no transitorio o implementarse sobre algún tipo de medio de transmisión. El medio de almacenamiento del programa puede ser magnético (por ejemplo, un disquete o un disco duro) u óptico (por ejemplo, un disco compacto de memoria de sólo lectura, o c D ROM), y puede ser de sólo lectura o de acceso aleatorio. De manera similar, el medio de transmisión puede ser un par de hilos trenzados, un cable coaxial, una fibra óptica u otro medio de transmisión adecuado conocido en la técnica. Los ejemplos de realización no están limitados por estos aspectos en ninguna implementación dada.
Claims (15)
1. Un procedimiento para generar elementos de referencia en un procedimiento de codificación y/o decodificación de vídeo, en el que el procedimiento comprende las etapas de:
recibir una pluralidad de elementos de referencia conocidos de datos de vídeo desde una memoria intermedia de imágenes de referencia (115), comprendiendo los elementos de referencia conocidos de datos de vídeo parte de un grupo jerárquico de imágenes;
generar, usando una red neuronal (401), uno o más elementos de referencia adicionales de datos de vídeo a partir de la pluralidad de elementos de referencia conocidos de datos de vídeo; y
emitir, desde la red neuronal, uno o más elementos de referencia adicionales de datos de vídeo;
en donde la etapa de generar uno o más elementos de referencia adicionales de datos de vídeo a partir de uno o más elementos de referencia conocidos de datos de vídeo comprende el uso de interpolación temporal, y en donde una o más redes neuronales han sido entrenadas en conjuntos conocidos de imágenes de referencia en grupos jerárquicos de imágenes para recrear sustancialmente imágenes en capas jerárquicas superiores a partir de imágenes en capas inferiores de los grupos jerárquicos de imágenes.
2. Un procedimiento según la reivindicación 1, en donde los elementos de referencia conocidos de datos de vídeo comprenden una pluralidad de imágenes de referencia de datos de vídeo.
3. Un procedimiento según las reivindicaciones 1 o 2, en donde uno o más elementos de referencia adicionales de datos de vídeo comprenden una o más imágenes de referencia adicionales de datos de vídeo.
4. Un procedimiento según cualquiera de las reivindicaciones anteriores, en donde uno o más elementos de referencia adicionales de datos de vídeo son temporalmente intermedios entre dos o más elementos de referencia conocidos de datos de vídeo.
5. Un procedimiento según cualquiera de las reivindicaciones anteriores, que comprende además la etapa de actualizar uno o más elementos de referencia adicionales de datos de vídeo en una memoria intermedia de imágenes de referencia basándose en el conocimiento de los datos decodificados de las imágenes de entrada de datos de vídeo.
6. Un procedimiento según cualquiera de las reivindicaciones anteriores, en donde uno o más de los uno o más elementos de referencia adicionales de datos de vídeo se ubican de forma conjunta temporalmente con una imagen de entrada (101) de datos de vídeo que se codifican o descodifican.
7. Un procedimiento según cualquiera de las reivindicaciones 1 a 5, en donde uno o más de los uno o más elementos de referencia adicionales de datos de vídeo no se ubican de forma conjunta temporalmente con una imagen de entrada (101) de datos de vídeo que se codifican o descodifican.
8. Un procedimiento según cualquiera de las reivindicaciones anteriores, en donde uno o más elementos de referencia adicionales de datos de vídeo se envían a un procedimiento de compensación de movimiento (119).
9. Un procedimiento según cualquiera de las reivindicaciones anteriores, en donde uno o más elementos de referencia adicionales de datos de vídeo se envían de forma adaptativa a un procedimiento de estimación de movimiento (117) en dependencia de una señal de conmutación.
10. Un procedimiento según cualquiera de las reivindicaciones anteriores, que comprende además: calcular, usando la red neuronal, un vector de movimiento que relaciona el uno o más elementos de referencia conocidos de datos de vídeo con uno o más elementos de entrada de datos de vídeo; y
emitir, desde la red neuronal, el vector de movimiento calculado,
en donde la red neuronal se ha entrenado además en conjuntos de imágenes en una secuencia temporal con vectores de movimiento aproximados conocidos entre al menos algunas de las imágenes en la secuencia.
11. Un procedimiento según cualquiera de las reivindicaciones anteriores, en donde la red neuronal se actualiza basándose en el conocimiento de uno o más elementos de referencia conocidos de datos de vídeo y uno o más elementos de referencia adicionales de datos de vídeo.
12. Un procedimiento según cualquiera de las reivindicaciones anteriores, en donde la red neuronal se actualiza basándose en el conocimiento de uno o más bloques residuales calculados a partir de uno o más elementos de referencia adicionales de datos de vídeo y uno o más elementos de entrada de datos de vídeo.
13. Un procedimiento según cualquiera de las reivindicaciones anteriores, en donde la red neuronal comprende: una red neuronal convolucional; una red neuronal recurrente; una red de memoria a corto plazo; una red convolucional 3D; una red de memoria; o una red recurrente cerrada.
14. Aparato (700) que comprende:
al menos un procesador (702);
al menos una memoria (704) que incluye un código de programa informático (706) que, cuando es ejecutado por el al menos un procesador, hace que el aparato realice el procedimiento de cualquiera de las reivindicaciones 1 a 13.
15. Un medio legible por ordenador que tiene un código legible por ordenador almacenado en el mismo, el código legible por ordenador, cuando es ejecutado por al menos un procesador, provoca la ejecución del procedimiento de cualquiera de las reivindicaciones 1 a 13.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB201606682 | 2016-04-15 | ||
| GBGB1607884.2A GB201607884D0 (en) | 2016-05-05 | 2016-05-05 | Motion compensation using temporal picture interpolation |
| PCT/GB2017/000056 WO2017178782A1 (en) | 2016-04-15 | 2017-04-13 | Motion compensation using temporal picture interpolation |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2853700T3 true ES2853700T3 (es) | 2021-09-17 |
Family
ID=58707942
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17723457T Active ES2853700T3 (es) | 2016-04-15 | 2017-04-13 | Compensación de movimiento utilizando interpolación de imagen temporal |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11109051B2 (es) |
| EP (1) | EP3298783B1 (es) |
| ES (1) | ES2853700T3 (es) |
| WO (1) | WO2017178782A1 (es) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ES2853700T3 (es) | 2016-04-15 | 2021-09-17 | Magic Pony Tech Limited | Compensación de movimiento utilizando interpolación de imagen temporal |
| WO2019093268A1 (ja) * | 2017-11-08 | 2019-05-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 画像処理装置及び画像処理方法 |
| US10559093B2 (en) * | 2018-01-13 | 2020-02-11 | Arm Limited | Selecting encoding options |
| US11019355B2 (en) * | 2018-04-03 | 2021-05-25 | Electronics And Telecommunications Research Institute | Inter-prediction method and apparatus using reference frame generated based on deep learning |
| WO2019197712A1 (en) * | 2018-04-09 | 2019-10-17 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
| WO2019197715A1 (en) * | 2018-04-09 | 2019-10-17 | Nokia Technologies Oy | An apparatus, a method and a computer program for running a neural network |
| US11470356B2 (en) * | 2018-04-17 | 2022-10-11 | Mediatek Inc. | Method and apparatus of neural network for video coding |
| US10645380B2 (en) * | 2018-07-09 | 2020-05-05 | Tencent America LLC | Method and apparatus for video coding |
| US20200184358A1 (en) * | 2018-12-05 | 2020-06-11 | Hulu, LLC | Video Content Valuation Prediction Using A Prediction Network |
| US11341688B2 (en) * | 2019-10-02 | 2022-05-24 | Nokia Technologies Oy | Guiding decoder-side optimization of neural network filter |
| CN113067959B (zh) * | 2021-03-16 | 2022-05-03 | 合肥合芯微电子科技有限公司 | 影像插补方法、装置和存储介质 |
| US11973985B2 (en) * | 2021-11-23 | 2024-04-30 | Mediatek Inc. | Video encoder with motion compensated temporal filtering |
| FR3153178A1 (fr) * | 2023-09-14 | 2025-03-21 | Orange | Procédé et dispositif de codage et décodage de séquences d’images. |
| FR3153176A1 (fr) * | 2023-09-14 | 2025-03-21 | Orange | Procédé et dispositif de codage et décodage d’images avec mécanisme d'attention. |
Family Cites Families (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6931063B2 (en) | 2001-03-26 | 2005-08-16 | Sharp Laboratories Of America, Inc. | Method and apparatus for controlling loop filtering or post filtering in block based motion compensationed video coding |
| WO2003030556A1 (en) * | 2001-09-18 | 2003-04-10 | Matsushita Electric Industrial Co., Ltd. | Image encoding method and image decoding method |
| JP2004007563A (ja) * | 2002-04-19 | 2004-01-08 | Matsushita Electric Ind Co Ltd | 動画像符号化方法および動画像復号化方法 |
| JP4102973B2 (ja) | 2002-04-24 | 2008-06-18 | 日本電気株式会社 | 動画像の符号化方法および復号化方法、これを用いた装置とプログラム |
| CN1666532A (zh) * | 2002-07-02 | 2005-09-07 | 松下电器产业株式会社 | 图像编码方法和图像解码方法 |
| US7433524B2 (en) | 2003-05-08 | 2008-10-07 | Ricoh Company, Ltd. | Processing system with frame rate and image quality optimized |
| US20050129306A1 (en) * | 2003-12-12 | 2005-06-16 | Xianglin Wang | Method and apparatus for image deinterlacing using neural networks |
| US7889792B2 (en) * | 2003-12-24 | 2011-02-15 | Apple Inc. | Method and system for video encoding using a variable number of B frames |
| EP1578137A2 (en) * | 2004-03-17 | 2005-09-21 | Matsushita Electric Industrial Co., Ltd. | Moving picture coding apparatus with multistep interpolation process |
| US7468745B2 (en) * | 2004-12-17 | 2008-12-23 | Mitsubishi Electric Research Laboratories, Inc. | Multiview video decomposition and encoding |
| US8185275B2 (en) * | 2005-07-01 | 2012-05-22 | Deere & Company | System for vehicular guidance with respect to harvested crop |
| JP4864419B2 (ja) | 2005-10-28 | 2012-02-01 | 株式会社東芝 | プリント回路板および電子機器 |
| MX2009000205A (es) * | 2006-07-06 | 2009-03-23 | Thomson Licensing | Metodo y aparato para desacoplar el numero de cuadro y/o la cuenta del orden de imagen (poc) para la codificacion y decodificacion de video de multiples vistas. |
| KR100835662B1 (ko) | 2006-12-04 | 2008-06-09 | 부산대학교 산학협력단 | 필터 예측 기능을 가지는 움직임 보상 예측 장치 및 이를이용한 동영상 압축 장치 및 방법 |
| US8144778B2 (en) * | 2007-02-22 | 2012-03-27 | Sigma Designs, Inc. | Motion compensated frame rate conversion system and method |
| US20080267295A1 (en) * | 2007-04-26 | 2008-10-30 | Chih-Ta Star Sung | Video decompression, de-interlacing and frame rate conversion with frame buffer compression |
| US8204128B2 (en) | 2007-08-01 | 2012-06-19 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communications Research Centre Canada | Learning filters for enhancing the quality of block coded still and video images |
| US8254469B2 (en) * | 2008-05-07 | 2012-08-28 | Kiu Sha Management Liability Company | Error concealment for frame loss in multiple description coding |
| WO2011050998A1 (en) | 2009-10-29 | 2011-05-05 | Thomas Sikora | Method and device for processing a video sequence |
| KR101847072B1 (ko) | 2010-04-05 | 2018-04-09 | 삼성전자주식회사 | 영상 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
| EP2375747B1 (en) | 2010-04-12 | 2019-03-13 | Sun Patent Trust | Filter positioning and selection |
| WO2012007038A1 (en) * | 2010-07-15 | 2012-01-19 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Hybrid video coding supporting intermediate view synthesis |
| US9100621B2 (en) | 2010-12-08 | 2015-08-04 | Lg Electronics Inc. | Intra prediction in image processing |
| US9232237B2 (en) | 2011-08-05 | 2016-01-05 | Texas Instruments Incorporated | Block-based parallel deblocking filter in video coding |
| US9510020B2 (en) | 2011-10-20 | 2016-11-29 | Qualcomm Incorporated | Intra pulse code modulation (IPCM) and lossless coding mode deblocking for video coding |
| US20140286433A1 (en) | 2011-10-21 | 2014-09-25 | Dolby Laboratories Licensing Corporation | Hierarchical motion estimation for video compression and motion analysis |
| EP4593395A3 (en) | 2012-10-01 | 2025-10-01 | GE Video Compression, LLC | Scalable video coding using inter-layer prediction contribution to enhancement layer prediction |
| WO2014120368A1 (en) | 2013-01-30 | 2014-08-07 | Intel Corporation | Content adaptive entropy coding for next generation video |
| KR102088801B1 (ko) | 2013-03-07 | 2020-03-13 | 삼성전자주식회사 | 가변블록 사이즈 코딩 정보를 이용한 관심영역 코딩 방법 및 장치 |
| US10171821B2 (en) | 2013-07-16 | 2019-01-01 | Samsung Electronics Co., Ltd. | Scalable video encoding method and apparatus and scalable video decoding method and apparatus using up-sampling filter accompanied by conversion of bit depth and color format |
| WO2015093449A1 (ja) * | 2013-12-19 | 2015-06-25 | シャープ株式会社 | マージ候補導出装置、画像復号装置及び画像符号化装置 |
| CN110225360A (zh) | 2014-04-01 | 2019-09-10 | 联发科技股份有限公司 | 视频编码中自适应内插滤波的方法 |
| GB2533905A (en) | 2014-10-06 | 2016-07-13 | Canon Kk | Method and apparatus for video coding and decoding |
| US10523957B2 (en) | 2014-10-08 | 2019-12-31 | Vid Scale, Inc. | Optimization using multi-threaded parallel processing framework |
| GB2539846B (en) | 2015-02-19 | 2017-11-01 | Magic Pony Tech Ltd | Online training of hierarchical algorithms |
| WO2016156864A1 (en) | 2015-03-31 | 2016-10-06 | Magic Pony Technology Limited | Training end-to-end video processes |
| GB201603144D0 (en) | 2016-02-23 | 2016-04-06 | Magic Pony Technology Ltd | Training end-to-end video processes |
| ES2853700T3 (es) | 2016-04-15 | 2021-09-17 | Magic Pony Tech Limited | Compensación de movimiento utilizando interpolación de imagen temporal |
| WO2017178827A1 (en) | 2016-04-15 | 2017-10-19 | Magic Pony Technology Limited | In-loop post filtering for video encoding and decoding |
-
2017
- 2017-04-13 ES ES17723457T patent/ES2853700T3/es active Active
- 2017-04-13 WO PCT/GB2017/000056 patent/WO2017178782A1/en not_active Ceased
- 2017-04-13 EP EP17723457.2A patent/EP3298783B1/en not_active Not-in-force
- 2017-12-27 US US15/855,735 patent/US11109051B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US11109051B2 (en) | 2021-08-31 |
| EP3298783B1 (en) | 2020-11-18 |
| US20180124422A1 (en) | 2018-05-03 |
| EP3298783A1 (en) | 2018-03-28 |
| WO2017178782A1 (en) | 2017-10-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2853700T3 (es) | Compensación de movimiento utilizando interpolación de imagen temporal | |
| CN112715027B (zh) | 神经网络驱动型编解码器 | |
| US20230056351A1 (en) | Coded-block-flag coding and derivation | |
| ES2683793T3 (es) | Procedimiento de decodificación de imagen, procedimiento de codificación de imagen, dispositivo de decodificación de imagen, dispositivo de codificación de imagen, programa y circuito integrado | |
| ES2834135T3 (es) | Codificación y descodificación de vídeo con resiliencia mejorada frente a errores | |
| US11800150B2 (en) | Method for deriving a motion vector | |
| ES2727629T3 (es) | Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes | |
| EP3298782B1 (en) | Motion compensation using machine learning | |
| KR100809354B1 (ko) | 복원된 프레임의 프레임율을 업컨버팅하는 장치 및 방법 | |
| KR20130070648A (ko) | 저 복잡성 움직임 벡터 도출을 위한 시스템 및 방법 | |
| TW202145792A (zh) | 使用深度學習的並行化的速率失真最佳化量化 | |
| ATE472899T1 (de) | Globale bewegungskompensation für videobilder | |
| KR20120100853A (ko) | 움직임 추정에 대한 검색 범위 선택 방법과 그의 시스템 및 컴퓨터 판독가능 저장 매체 | |
| WO2012095467A1 (en) | Video encoding and decoding with low complexity | |
| EP3298784A1 (en) | Motion estimation through machine learning | |
| CN117280691A (zh) | 增强的运动向量预测 | |
| US20150103916A1 (en) | Method and apparatus for displacement vector component transformation in video coding and decoding | |
| TW202015405A (zh) | 用於視訊編解碼的幀間預測方法以及裝置 | |
| CN112218086A (zh) | 编码、解码方法、传输方法、编码、解码装置及系统 | |
| Lee et al. | Rate-distortion optimized temporal segmentation using reinforcement learning for video coding |