ES2961397T3 - Codificación y reconstrucción de datos residuales en base a información de soporte - Google Patents
Codificación y reconstrucción de datos residuales en base a información de soporte Download PDFInfo
- Publication number
- ES2961397T3 ES2961397T3 ES13722426T ES13722426T ES2961397T3 ES 2961397 T3 ES2961397 T3 ES 2961397T3 ES 13722426 T ES13722426 T ES 13722426T ES 13722426 T ES13722426 T ES 13722426T ES 2961397 T3 ES2961397 T3 ES 2961397T3
- Authority
- ES
- Spain
- Prior art keywords
- support plane
- residuals
- spans
- loq
- sets
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/102—Methods 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/23—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
-
- 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
-
- 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/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/439—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using cascaded computational arrangements for performing a single operation, e.g. filtering
-
- 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
-
- 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/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/57—Motion estimation characterised by a search window with variable size or shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/62—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding by frequency transforming in three dimensions
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/87—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/635—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Transmitters (AREA)
- Tone Control, Compression And Expansion, Limiting Amplitude (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
- Display Devices Of Pinball Game Machines (AREA)
- User Interface Of Digital Computer (AREA)
- Developing Agents For Electrophotography (AREA)
- Dc Digital Transmission (AREA)
- Detergent Compositions (AREA)
- Peptides Or Proteins (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Pyridine Compounds (AREA)
- Polyurethanes Or Polyureas (AREA)
- Picture Signal Circuits (AREA)
Abstract
El hardware del procesador de la computadora recibe una secuencia de conjuntos de valores. El hardware del procesador de computadora procesa la secuencia de conjuntos de valores y utiliza los valores de los múltiples conjuntos en la secuencia para producir un conjunto de valores de soporte, en donde dicho conjunto de valores de soporte se determina para formar una línea base para reproducir sustancialmente cada uno de los conjuntos originales de valores en la secuencia. El hardware del procesador del ordenador genera datos de reconstrucción correspondientes a dicho conjunto de valores de soporte. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Codificación y reconstrucción de datos residuales en base a información de soporte
Antecedentes de la invención
Se conocen muchas técnicas en el arte para lidiar con la codificación y decodificación de señales digitales. Este es el caso de las señales de audio, imágenes, señales de vídeo y otras señales multidimensionales como las señales volumétricas usadas en áreas científicas y médicas. Con el fin de lograr altos ratios de compresión, esas técnicas explotan la correlación espacial y de tiempo dentro de la señal. Los métodos convencionales identifican una referencia e intentan determinar la diferencia de la señal entre una ubicación actual y la referencia dada. Esto se hace tanto en el dominio espacial, donde la referencia es una porción del plano espacial ya recibida y decodificada, como en el dominio del tiempo, donde una única instancia en el tiempo de la señal (por ejemplo, un fotograma de vídeo en una secuencia de fotogramas) se toma como una referencia para una cierta duración. Este es el caso, por ejemplo, de los algoritmos de compresión de la familia MPEG, donde los macrobloques previamente decodificados se toman como referencia en el dominio espacial y los fotogramas I y los fotogramas P se usan como referencia en el dominio del tiempo.
Las técnicas conocidas explotan la correlación espacial y la correlación de tiempo de muchas maneras, con lo que adoptan diversas técnicas diferentes con el fin de identificar, simplificar, codificar y transmitir las diferencias ("datos residuales"). En los métodos convencionales, con el fin de aprovechar la correlación espacial, se realiza una transformación de dominio (por ejemplo, en un dominio de frecuencia) y luego se realiza la eliminación con pérdida y la cuantificación de la información. En cambio, en el dominio del tiempo, los métodos convencionales transmiten la diferencia cuantificada entre la muestra actual y una muestra de referencia. Con el fin de maximizar la similitud entre las muestras, los codificadores intentan estimar las modificaciones ocurridas a lo largo del tiempo frente a la señal de referencia. Esto se llama, en los métodos de codificación convencionales (por ejemplo, las tecnologías de la familia MPEG, VP8, etc.), estimación de movimiento. La información de movimiento se transmite a un decodificador con el fin de permitir la reconstrucción de la muestra actual al aprovechar la información ya disponible en el decodificador para la muestra de referencia (en MPEG esto se hace mediante el uso de vectores de movimiento sobre una base de macrobloques).
Un inconveniente de las técnicas convencionales de codificación basadas en referencias es que los errores en una muestra se acumulan con los errores en las siguientes muestras, cada una de las cuales se reconstruye en base a una muestra precedente, lo que crea artefactos visibles después de muy pocas muestras predichas secuencialmente tan pronto como se adoptan técnicas de compresión con pérdida.
Un enfoque común es particionar la señal para reducir la complejidad de las operaciones de codificación y decodificación. Esto se hace tanto en el dominio espacial, por ejemplo, mediante el uso del concepto de macrobloques o rebanadas, como en el dominio del tiempo, donde el enfoque actual del estado del arte es usar una división del Grupo de Imágenes (GOP) a lo largo del tiempo.
El proceso de partición es usualmente abrupto y propenso a los artefactos. Un ejemplo es la segmentación de macrobloques que se realiza en los métodos MPEG. Aunque de hecho se logra la eficiencia de la compresión, también es cierto que se introducen artefactos visibles. Estos artefactos son, en muchas condiciones, muy evidentes para los observadores humanos debido al hecho de que no se relacionan con la señal original (por ejemplo, dos ejemplos notables son los artefactos de bloque y los artefactos de timbre). Se han implementado muchos intentos de reducir la visibilidad de tales artefactos (por ejemplo, filtros de desbloqueo y eliminación de timbre tanto en el lado del codificador como del decodificador), aunque con desventajas tales como una calidad percibida global reducida y un aumento de la complejidad.
A lo largo de la dimensión del tiempo, los métodos convencionales dividen las muestras en fragmentos (por ejemplo, GOP para señales de vídeo, donde cada muestra a lo largo del tiempo es una imagen). Se elige una muestra de referencia (la imagen de referencia), normalmente sobre la base del orden secuencial, y las muestras en el fragmento se transmiten diferencialmente con respecto a la referencia (o a dos referencias, en el caso de fotogramas bipredichos). Esto introduce artefactos en la evolución de tiempo de la señal (por ejemplo, para los movimientos significativos, la calidad percibida a menudo sufre de discontinuidades evidentes a lo largo de los bordes del GOP).
Un requisito que se aborda por los métodos del arte conocido es la eficiencia de compresión. La complejidad computacional siempre se ha considerado como una segunda prioridad: esencialmente, los algoritmos solo tenían que ser computacionalmente factibles, en lugar de diseñarse para una baja complejidad computacional. Esto obligó a los fabricantes de hardware a adaptarse continuamente a la evolución de las técnicas, a diseñar procesadores específicos y soluciones de hardware dedicadas capaces de implementar los algoritmos que se eligen. Un ejemplo es la evolución del soporte de hardware para MPEG2, MPEG4, H.264/AVC, H.265/HEVC, etc. Hasta ahora, ninguna tecnología de codificación se diseñó para ejecutarse de manera óptima en hardware masivamente paralelo, con un rendimiento computacional que escala automáticamente en base al número de núcleos de cálculo disponibles (es decir, sin tener que adaptar el código, o incluso sin saber de antemano cuántos núcleos de cálculo estarán disponibles). Esta característica, inviable con los métodos actuales, es especialmente importante ya que hoy en día la tecnología de hardware se encuentra alcanzando el límite asintótico del silicio en términos de tasa de reloj de cálculo y velocidad en la tasa de transferencia: la tendencia actual de aumentar la potencia de cálculo disponible se mueve en la dirección de aumentar el número de unidades de procesamiento distintas ("núcleos de cálculo") que se alojan en un único chip o sistema.
Otro aspecto descuidado en la técnica conocida, aparte de unos pocos intentos, es el requisito de escalabilidad de calidad. Un método de codificación escalable codificaría una única versión de la señal comprimida y permitiría el suministro a diferentes niveles de calidad, por ejemplo, de acuerdo con la disponibilidad de ancho de banda, la resolución de la pantalla y la complejidad del decodificador. La escalabilidad se ha tomado en consideración en métodos conocidos como MPEG-SVC y JPEG2000, con una adopción relativamente pobre hasta ahora debido a la complejidad computacional y, en términos generales, al uso de enfoques que se diseñan esencialmente para técnicas no escalables.
Otro aspecto que no se aborda por los métodos conocidos es la simetría. Con los métodos convencionales, la eficiencia de la compresión puede lograrse a expensas de renunciar a funcionalidades útiles como la reproducción bidireccional (por ejemplo, la inversión del tiempo) y, más en general, el acceso aleatorio a cualquier muestra de la señal (por ejemplo, la edición fotograma por fotograma para las señales de video). Las técnicas de predicción, especialmente a lo largo de la dimensión del tiempo, previenen que el decodificador reciba, decodifique y presente la señal en orden de inversión de tiempo. Las técnicas de predicción que se adoptan también afectan al comportamiento en las transmisiones muy comprimidas o propensas a errores, debido a la acumulación de artefactos. Los artefactos que se introducen por los errores son visibles, especialmente debido a su duración en el tiempo.
Las técnicas dirigidas por predicción que se adoptan en el arte conocido también introducen fuertes restricciones para el acceso aleatorio en un flujo comprimido. Operaciones como la "búsqueda" hacia una muestra en un punto arbitrario, el acceso aleatorio cuando se "zapea" a un flujo de bits de señal diferente (sin tener que esperar por el comienzo del siguiente fragmento de tiempo/GOP) son actualmente inviables. El tiempo que un usuario tiene que esperar cuando intenta acceder a un punto arbitrario se encuentra actualmente en estricta compensación con la eficiencia de la compresión. Un ejemplo de este fenómeno es la restricción del GOP en los métodos de la familia MPEG: con el fin de permitir un retardo de tiempo mínimo y un acceso aleatorio a lo largo del tiempo, debe usarse un GOP de una muestra (es decir, codificación intra solamente). Por último, los métodos actuales no son adecuados para tasas de muestreo muy altas (por ejemplo, tasas de fotogramas muy altas para las señales de video), debido a la cantidad de potencia computacional y ancho de banda que se requeriría. Varios estudios, por ejemplo, demostraron que todos los humanos pueden apreciar fácilmente las diferencias de calidad de las señales de video de hasta 300 fotogramas por segundo, pero las restricciones computacionales y de ancho de banda actualmente hacen que sea extremadamente caro codificar y transmitir señales de video de alta calidad a más de 25-60 fotogramas por segundo.
BEONG-JO KIM Y OTROS: "Low Bit-Rate Scalable Video Coding with 3-D Set Partitioning in Hierarchical Trees (3-D SPIHT)", IEEE TRANSACCIONES SOBRE CIRCUITOS Y SISTEMAS PARA TECNOLOGÍA DE VÍDEO, vol. 10, núm.8, 1 de diciembre de 2000, XP011014133, ISSN:1051-8215 propone un esquema de codificación de vídeo integrado de baja velocidad de bits que utiliza una extensión 3D del algoritmo de partición de conjuntos en árboles jerárquicos (SPIHT). Los árboles de orientación espacio-temporal tridimensionales se combinan con clasificación y refinamiento SPIHT para proporcionar un codificador de video SPIHT 3D eficiente que proporciona un rendimiento comparable al H.263 objetiva y subjetivamente cuando se opera a velocidades de bits de 30 a 60 kbits/s con Complejidad mínima del sistema.
El documento US 5991444 A describe un sistema para generar automáticamente un mosaico a partir de una pluralidad de imágenes de entrada. El sistema ejecuta secuencialmente un proceso de alineación de imágenes, un proceso de edición y un proceso de combinación de manera que, a partir de una secuencia de imágenes. El sistema produzca automáticamente un mosaico perfecto para diversas aplicaciones.
WEI-LIEN HSU Y OTROS: "3D adaptive wavelet packet for video compression", CONFERENCIA INTERNACIONAL SOBRE PROCESAMIENTO DE IMÁGENES, vol. 1, 23-26 de octubre de 1995, páginas 602-605, XP010196821, DOI: 10.1109/ICIP.1995.531438, ISBN: 978-0-7803-3122-8, presenta un método eficiente de descomposición temporal, espacial y de frecuencia que se diseña para la codificación de video. En este método, la secuencia de vídeo dada se descompone en pequeños volúmenes de manera que la señal en cada volumen sea relativamente homogénea en características de frecuencia en las tres dimensiones.
EBRAHIMI T Y OTROS: "MPEG-4 natural video coding - An overview: descripción general", PROCESAMIENTO DE SEÑAL. COMUNICACIÓN DE IMAGEN, vol. 15, núm. 4-5, 1 de enero de 2000, páginas 365-385, XP027357196, ISSN: 0923-5965 describe el estándar MPEG-4, como se define en ISO/IEC 14496-2.
DASU AR Y OTROS: "A Wavelet-Based Sprite Codec", IEEE TRANSACCIONES SOBRE CIRCUITOS Y SISTEMAS PARA TECNOLOGÍA DE VIDEO, vol. 14, núm. 2, 1 de febrero de 2004, páginas 244-255, XPO11108234, ISSN: 1051-8215, DOI:10.1109/TCSVT.2003.819185 describe una solución novedosa que se ha propuesto para abordar el problema de la escalabilidad espacial en códecs MPEG-4, donde el sprite se codifica en transformada wavelet discreta (DWT)HIROSHI WATANABET Y OTROS: "Sprite Coding in Object-based Video Coding Standard: MPEG-4”, MULTICONFERENCIA SOBRE SISTÉMICA, CIBERNÉTICA E INFORMÁTICA, vol. 13, 1 de julio de 2001, páginas 420-425, XP055041367 describe un esquema de codificación eficiente mediante el uso de una de las herramientas de compresión de MPEG-4 "Sprite coding". SANTA-CRUZ D Y OTROS: "Opening the Laplacian pyramid for video coding", IEEE CONFERENCIA INTERNACIONAL SOBRE PROCESAMIENTO DE IMÁGENES, vol.3, 11 de septiembre de 2005, páginas 672-675, XP010851480, DOI: 10.1 109/ICIP.2005.1530481, ISBN: 978-0-7803-9134-5 investiga mecanismos para proporcionar una versión de bucle abierto de la pirámide Laplaciana.
HSU CT Y OTROS: “Mosaics of video sequences with moving objects”, PROCESAMIENTO DE SEÑAL. COMUNICACIÓN DE IMAGEN, vol. 19, núm. 1, 1 de enero de 2004, páginas 81 - 98, XP004476840, ISSN: 0923-5965, DOI: 10.1016/J.IMAGEN.2003.10.001 tiene como objetivo construir mosaicos a partir de secuencias de vídeo con objetos en movimiento. El artículo propone eliminar explícitamente los objetos en movimiento del fondo. Cuando se trata únicamente del fondo retenido, puede simplificarse la siguiente estimación de movimiento global y pueden excluirse los objetos en movimiento del mosaico de vídeo.
El documento US2008187044A1 describe un método y un aparato para la codificación y decodificación en base a la interpredicción. En el método de codificación, un bloque actual se codifica al realizar respectivamente la intrapredicción en el bloque actual y un bloque de referencia en una imagen de referencia que corresponde al bloque actual, y realizar la interpredicción en el bloque actual en base a los resultados de realizar la intrapredicción. En consecuencia, es posible reducir el tamaño de los datos con respecto al bloque actual, que se genera como resultado de realizar la interpredicción, de esta manera se mejora la tasa de compresión de los datos de vídeo.
Breve descripción de ejemplos inventivos.
Aspectos de la presente invención se exponen en las reivindicaciones independientes adjuntas.
Las variaciones de estos aspectos se exponen en las reivindicaciones dependientes. La divulgación que permite la invención reivindicada puede encontrarse en las Figuras 3A, 1E y 1F (métodos y aparatos de codificación de vídeo) y adicionalmente en la Figura 1G (decodificador de vídeo correspondiente) y los pasajes correspondientes de la descripción. Las modalidades y ejemplos restantes proporcionados en la presente descripción y no cubiertos por la invención reivindicada son ejemplos adicionales útiles para comprender la invención.
Los métodos innovadores descritos en la presente descripción se enfocan en mejoras en las técnicas para codificar, transmitir y decodificar datos residuales relacionados con múltiples muestras de una señal, especialmente a lo largo de dimensiones de correlación significativa para la señal.
Ciertos ejemplos descritos en la presente descripción incluyen un método para codificar y reconstruir múltiples conjuntos de datos residuales en base a un búfer de soporte (por ejemplo, sin limitación, un conjunto de elementos de soporte). Algunos ejemplos también implementan el método al generar una jerarquía escalonada de búferes de soporte. Este método comprende una etapa de codificación - durante la cual se procesan conjuntos de datos residuales, generando información de elementos de soporte y datos residuales relativos - y una etapa de decodificación, durante la cual se procesa información de elementos de soporte para generar predicciones para datos residuales, que, combinados con datos residuales relativos datos, permiten reconstruir datos residuales.
Se prestará particular atención a los ejemplos en los que dichos métodos se usan dentro del bucle de codificación y decodificación de métodos de codificación jerárquica escalonada, en donde una señal se codifica en una jerarquía escalonada de muestras que comprende dos o más escalones, y en donde cada uno de los escalones tiene un nivel de calidad distinto (por ejemplo, correspondiente al nivel de fidelidad de la representación de la señal). Tales métodos comprenden una etapa de decodificación durante la cual se calculan muestras con un nivel de calidad determinado mediante operaciones de reconstrucción al comenzar a partir de las muestras del escalón que tiene el nivel de calidad más bajo. Ciertos ejemplos ilustrados en la presente descripción se enfocan especialmente en casos en donde un nivel inferior de calidad es una resolución menor (es decir, una cuadrícula de muestreo más gruesa) en una o más de las dimensiones de la señal, aunque los expertos en el arte pueden adaptar fácilmente la mismos métodos a los casos en donde una señal con un nivel de calidad inferior es una señal con la misma resolución y un nivel de detalle inferior (por ejemplo, sin limitación, una cuantificación más gruesa de los valores de los elementos). En algunos casos, se referirá a un nivel de calidad inferior como un "nivel de agregación" ("LOA") superior en donde la única dimensión submuestreada frente a un nivel de calidad superior fue la dimensión del tiempo. Los términos "escalón" se usarán indistintamente en el resto de la solicitud con cualquier "nivel de calidad" ("LOQ") o "nivel de agregación" ("LOA"), en dependencia del contexto.
Para simplificar, los ejemplos ilustrados en la presente descripción usualmente se refieren a la señal como una secuencia de muestras multidimensionales (es decir, conjuntos de uno o más elementos que se organizan como matrices con una o más dimensiones) que se producen a una tasa de muestreo dada a lo largo de la dimensión del tiempo. En la descripción los términos "imagen" y/o "plano" (en el sentido más amplio de "hiperplano", es decir, matriz de elementos con cualquier número de dimensiones) se usará a menudo indistintamente para identificar la representación digital de una muestra de la señal a lo largo de la secuencia de muestras, cada plano tiene una resolución dada para cada una de sus dimensiones, y cada conjunto adecuado de coordenadas en el plano identifica un elemento del plano (o "elemento", o "pel", para imágenes bidimensionales a menudo llamadas "píxel", para imágenes volumétricas a menudo llamadas "vóxel", etc.) caracterizado por uno o más valores o "configuraciones" (por ejemplo, por medios de ejemplos, configuraciones de color en un espacio de color adecuado, configuraciones que indican el nivel de densidad, configuraciones que indican los niveles de temperatura, configuraciones que indican el tono de audio, configuraciones que indican la amplitud, etc.). Como ejemplos, una señal puede ser una imagen, una señal de audio, una señal de audio multicanal, una señal de vídeo, una señal de vídeo multivista (por ejemplo, vídeo 3D), una señal plenóptica, una señal multiespectral, una señal volumétrica (por ejemplo, imágenes médicas, imágenes científicas, imágenes holográficas, etc.), una señal de vídeo volumétrica o incluso señales con más de cuatro dimensiones.
Ciertos ejemplos ilustrados en la presente descripción se enfocarán particularmente en las señales que evolucionan con el tiempo, especialmente debido a la falta de arte anterior. Por ejemplo, las tasas de muestreo muy altas (por ejemplo, también por encima de 1000 fotogramas por segundo, que actualmente requieren cantidades excesivas de recursos de cómputo y de almacenamiento para la codificación y decodificación) se abordan fácilmente por los ejemplos descritos.
Para simplificar, ciertos ejemplos ilustrados en la presente descripción a menudo se refieren a señales que se visualizan como secuencias de planos de configuración 2D (por ejemplo, imágenes 2D en un espacio de color adecuado), tal como, por ejemplo, una señal de vídeo. Sin embargo, los mismos conceptos y métodos también son aplicables a cualquier otro tipo de señal basada en el tiempo, y también a señales multidimensionales no basadas en el tiempo (por ejemplo, imágenes bidimensionales, imágenes volumétricas/holográficas, imágenes plenópticas, etc.). Como ejemplo de una señal no basada en el tiempo, una serie de cortes bidimensionales de un CAT-scan o MRI (es decir, una señal tridimensional no basada en el tiempo) puede representarse adecuadamente como una serie de muestras bidimensionales a lo largo de una dimensión (es decir, el eje a lo largo del cual se tomaron los cortes), y codificadas/decodificadas de acuerdo con los métodos ilustrados en la presente descripción, como si el eje a lo largo del cual se tomaron los cortes fuera una dimensión de tiempo (al asumir ya sea una tasa de muestreo constante o incluso una tasa de muestreo variable, de acuerdo con los métodos innovadores ilustrados en la presente descripción).
Ciertos ejemplos de jerarquías escalonadas ilustrados en la presente descripción caracterizados por escalones con diferentes resoluciones, en donde el factor de escala de muestreo descendente de un escalón superior a un escalón inferior puede variar para cada escalón y para cada dimensión (tanto espacial como temporal).
Las muestras codificadas en una jerarquía temporal escalonada pueden tener diferentes duraciones. Por ejemplo, una muestra de un escalón dado que resulta del muestreo descendente temporal ("mezcla" o "mezcla descendente" en caso de combinación de muestreo descendente espacial y muestreo descendente temporal) de dos muestras diferentes de un escalón superior representa una porción de la señal con una duración ("lapso de tiempo") que es la suma de las duraciones de las porciones de la señal que se representa por cada una de las muestras del escalón superior. Ninguna bibliografía se basó en jerarquías temporales escalonadas. En este documento el término "lapso de la señal" o "lapso" se usará indistintamente con el término "muestra" (aunque más adecuadamente se puede decir que cada muestra dada tiene un lapso de tiempo correspondiente, que indica que corresponde a una "muestra y contención" por una duración igual a su lapso de tiempo). Un "lapso" de una señal en un nivel de calidad dado representa "una porción de la señal con una posición de muestreo dada y una duración de tiempo dada, para reproducirse / visualizarse que comienza a partir de un momento dado en el tiempo". Un lapso de un nivel de calidad inferior que resulta de la combinación (mezcla o mezcla descendente) de una pluralidad de lapsos de un nivel de calidad superior tendrá una posición de muestreo que es una combinación lineal o no lineal de las posiciones de muestreo de dichos lapsos múltiples. En ciertos ejemplos descritos, tal posición de muestreo es el redondeo descendente del promedio de las posiciones de muestreo de los lapsos que se mezclaron en el lapso dado, es decir, la posición de muestreo entera del nivel de calidad superior que es igual o inmediatamente inferior al promedio matemático de las posiciones de muestreo de los lapsos de un nivel superior que se muestrean descendentemente en el lapso dado. Dicho lapso resultante también tendrá una duración que es la suma de las duraciones de tiempo de dichos lapsos múltiples. Esencialmente, el término "lapso" refleja el hecho de que, especialmente cuando se desciende en la jerarquía también con el muestreo descendente temporal, cada lapso representa información que se modela mejor como una "muestra y contención" - que representa valores de la señal a lo largo de un intervalo de tiempo dado, es decir, un "lapso" de señal - en lugar de una simple "muestra" en una posición de tiempo muy específica. Además, diferentes lapsos de un mismo escalón pueden tener diferentes duraciones, lo que representa efectivamente tasas de muestreo variables.
Ciertos métodos ilustrados en la presente descripción a menudo aprovechan alguna forma de técnicas de estimación y compensación de movimiento. En los métodos convencionales, la compensación de movimiento se utiliza como una alternativa para la predicción de una porción de la imagen en base a la correlación espacial: es decir, estas técnicas de codificación, para cada porción de un lapso reconstruido (por ejemplo, una imagen), eligen entre la predicción al aprovechar la correlación espacial (es decir, porciones vecinas de la misma muestra, por ejemplo, intrapredicción en métodos MPEG) o la predicción al aprovechar la correlación de tiempo (es decir, porciones de una o más muestras de referencia, por ejemplo, predicción-P o predicción-B en los métodos MPEG).
Para ciertos ejemplos descritos en la presente descripción, el espacio y el tiempo no son dimensiones totalmente independientes a considerar de forma aislada: el espacio y el tiempo son solo dimensiones distintas de un espacio multidimensional más amplio llamado espacio-tiempo. Al representar una secuencia de muestras de N-dimensiones como una única señal dimensional (N+1), y al codificar dicha señal dimensional (N+1) con un método jerárquico escalonado, los ejemplos descritos en la presente descripción pueden codificar y decodificar de manera efectiva una señal en su espacio-tiempo (a través de operaciones adecuadas de codificacióndecodificación de espacio-tiempo), al aprovechar de manera efectiva al mismo tiempo la correlación espacial y de tiempo (es decir, sin tener que elegir entre los dos), y aprovechar de manera efectiva la correlación también a través de múltiples muestras (es decir, no solo de una muestra a otra). Además, al predecir muestras en base a muestras de un nivel de calidad inferior (y/o un nivel de agregación superior) en lugar de en base a muestras vecinas con el mismo nivel de calidad, las decisiones con pérdida que se toman en porciones seleccionadas de la señal dimensional (N+1) no se propagan necesariamente a otras porciones de la señal (es decir, a otras muestras/lapsos en la secuencia). En resumen, los ejemplos descritos en la presente descripción manipulan la señal en su totalidad, al aprovechar la correlación en toda la señal y considerar la dimensión del tiempo al mismo nivel que las otras dimensiones. A menudo se hace referencia a esta propiedad muy innovadora de los métodos descritos en la presente descripción como "simetría".
Los ejemplos descritos en la presente descripción se refieren a formas de codificar, transmitir y/o decodificar una pluralidad de conjuntos de valores basados en un único conjunto de valores (llamado de manera equivalente "información de soporte", "búfer de soporte" o "plano de soporte") común a todos los conjuntos en dicha pluralidad de conjuntos de valores, y sobre datos de reconstrucción adicionales específicos de cada conjunto en dicha pluralidad de conjuntos de valores.
En los ejemplos descritos en la presente descripción, para cada conjunto de valores dado en dicha pluralidad de conjuntos, dichos datos de reconstrucción adicionales comprenden un conjunto de ajustes ("residuales relativos") para combinar con valores basados en el plano de soporte para producir dicho conjunto de valores dado.
En otros ejemplos descritos en la presente descripción, para cada conjunto de valores dado en dicha pluralidad de conjuntos, dichos datos de reconstrucción adicionales comprenden un conjunto de parámetros ("datos de compensación") que indican operaciones a realizar en el plano de soporte para producir un primer conjunto de valores ("residuales de referencia") y un conjunto de ajustes ("residuales relativos") para combinar con residuales de referencia para producir dicho conjunto de valores dado.
De acuerdo con ciertos ejemplos descritos en la presente descripción, un procesador de señales se configura para procesar una pluralidad de conjuntos de valores ("residuales absolutos"), cada uno de dichos conjuntos de residuales absolutos que corresponde a una diferencia entre un conjunto de elementos de una señal en un nivel de calidad dado, denominándose cada uno de dicho conjunto de elementos un lapso, y un lapso previsto correspondiente, comprendiendo el método, implementado dentro de un codificador:
producir un plano de soporte (es decir, un conjunto de elementos de soporte) al realizar cálculos sobre la información correspondiente a dichos residuales absolutos y/o sobre la información correspondiente a dichos lapsos;
producir datos de reconstrucción del plano de soporte correspondientes a dicho plano de soporte; para cada conjunto dado de residuales absolutos, produciendo un conjunto de valores ("residuales relativos"), correspondiendo dichos residuales relativos a diferencias entre el conjunto dado de residuales absolutos y un conjunto de valores ("residuales de referencia") basados al menos en parte en dicho plano de soporte;
producir datos de reconstrucción de residuales relativos correspondientes a dichos conjuntos de residuales relativos; y
transmitir a un decodificador dichos datos de reconstrucción del plano de soporte y dichos datos de reconstrucción de residuales relativos.
En algunos ejemplos descritos en la presente descripción, el método incluye producir para cada conjunto dado de residuales absolutos información adicional ("datos de compensación") correspondiente a operaciones a realizar en el plano de soporte para producir el conjunto de residuales de referencia correspondiente a dicho conjunto de residuales absolutos dados.
Otros ejemplos ilustrados en la presente descripción incluyen un codificador configurado para transmitir un conjunto de residuales absolutos, dicho conjunto de residuales absolutos que corresponde a una diferencia entre un conjunto de elementos de una señal en un nivel de calidad dado, denominándose dicho conjunto de elementos un lapso dado y un lapso previsto correspondiente, el codificador que comprende:
un generador de un plano de soporte configurado para realizar cálculos sobre dichos residuales absolutos y sobre información correspondiente a uno o más lapsos pertenecientes a una secuencia de lapsos que incluye dicho lapso dado;
un generador de datos de reconstrucción del plano de soporte correspondientes a dicho plano de soporte; un generador de un conjunto de valores ("residuales relativos"), dichos residuales relativos que corresponden a diferencias entre el conjunto dado de residuales absolutos y un conjunto de valores ("residuales de referencia") basados al menos en parte en dicho plano de soporte;
un generador de datos de reconstrucción de residuales relativos correspondientes a dichos conjuntos de residuales relativos; y
un transmisor configurado para transmitir a un decodificador dichos datos de reconstrucción del plano de soporte y dichos datos de reconstrucción de residuales relativos.
Otros ejemplos descritos en la presente descripción incluyen un procesador de señales configurado para producir un conjunto de valores ("residuales absolutos reconstruidos"), dicho conjunto de residuales absolutos reconstruidos que corresponde a una diferencia entre un conjunto de elementos de una señal en un nivel de calidad dado, dicho conjunto de elementos que se denominan lapso y un lapso previsto correspondiente, comprendiendo el método, implementado dentro de un decodificador:
recibir datos de reconstrucción del plano de soporte y datos de reconstrucción de residuales relativos; producir una representación reconstruida del plano de soporte al decodificar dichos datos de reconstrucción del plano de soporte;
procesar datos de reconstrucción de residuales relativos, producir un conjunto de valores ("residuales relativos reconstruidos"), dichos residuales relativos reconstruidos que corresponden a ajustes a realizar en un conjunto de valores basados al menos en parte en dicha representación reconstruida del plano de soporte;
producir el conjunto de residuales absolutos reconstruidos basándose al menos en parte en dicha representación reconstruida del plano de soporte y en dicho conjunto de residuales relativos reconstruidos. En algunos ejemplos descritos en la presente descripción, producir el conjunto de residuales absolutos reconstruidos incluye:
recibir datos ("datos de compensación") correspondientes a operaciones a realizar en la representación reconstruida del plano de soporte para producir ese conjunto de residuales absolutos reconstruidos dado; producir un conjunto de valores ("plano de soporte compensado" o "residuales de referencia reconstruidos") basados al menos en parte en la representación reconstruida del plano de soporte y dichos datos de compensación; y
producir el conjunto de residuales absolutos reconstruidos al combinar dicho plano de soporte compensado con dicho conjunto de residuales relativos reconstruidos.
En algunos ejemplos descritos en la presente descripción, una pluralidad de planos de soporte correspondientes a subsecuencias vecinas de muestras en una secuencia de muestras también se decodifica de acuerdo con información de soporte común ("plano de soporte de orden superior"), el método que comprende: recibir datos de reconstrucción del plano de soporte de orden superior;
para un plano de soporte dado en dicha pluralidad de planos de soporte, recibir datos de reconstrucción de residuales relativos del plano de soporte;
producir una representación reconstruida del plano de soporte de orden superior al decodificar dichos datos de reconstrucción del plano de soporte de orden superior;
procesar datos de reconstrucción de residuales relativos del plano de soporte, producir un conjunto de valores ("residuales relativos del plano de soporte reconstruidos"), dichos residuales relativos del plano de soporte reconstruidos que corresponden a ajustes a realizar en un conjunto de valores basados al menos en parte en dicha representación reconstruida del plano de soporte de orden superior;
producir el plano de soporte dado en la pluralidad de planos de soporte basándose al menos en parte en dicha representación reconstruida del plano de soporte de orden superior y en dicho conjunto de residuales relativos del plano de soporte reconstruido.
Estas y otras variaciones se describen en más detalle más abajo.
Tenga en cuenta que los ejemplos en la presente descripción pueden implementarse en software o hardware, o pueden implementarse mediante el uso de una combinación de software y hardware, y pueden incluir una configuración de uno o más dispositivos computarizados, enrutadores, redes, estaciones de trabajo, ordenadores de mano o portátiles, tabletas, teléfonos móviles, consolas de juegos, cajas decodificadoras, etc., para llevar a cabo y/o soportar cualquiera o todas las operaciones del método descrito en la presente descripción. En otras palabras, uno o más dispositivos o procesadores computarizados pueden programarse y/o configurarse para operar como se explica en la presente descripción para llevar a cabo diferentes ejemplos. Además de las técnicas descritas anteriormente, otros ejemplos en la presente descripción incluyen programas de software para realizar las etapas y operaciones resumidas anteriormente y descritas en detalle más abajo. Tal ejemplo comprende un recurso de almacenamiento de hardware legible por ordenador (es decir, un medio legible por ordenador no transitorio) que incluye lógica de programa de ordenador, instrucciones, etc., codificados en el mismo que, cuando se ejecuta en un dispositivo computarizado que tiene un procesador y la memoria correspondiente, programa y/o provoca que el procesador realice cualquiera de las operaciones descritas en la presente descripción. Tales arreglos se pueden proporcionar como software, código y/o como otros datos (por ejemplo, estructuras de datos) dispuestos o codificados en un medio legible por ordenador tal como un medio óptico (por ejemplo, CD-ROM, DVD-ROM o BLU-RAY), tarjeta de memoria flash, disquete o disco duro o cualquier otro medio capaz de almacenar instrucciones legibles por ordenador tal como microprograma o microcódigo en uno o más chips ROM, RAM o PROM o como un Circuito Integrado Específico de la Aplicación (ASIC). El software o microprograma u otras configuraciones de este tipo se pueden instalar en un dispositivo computarizado para hacer que el dispositivo computarizado realice las técnicas explicadas en la presente descripción.
En consecuencia, un ejemplo particular se dirige a un producto de programa de ordenador que incluye un medio de almacenamiento de hardware legible por ordenador que tiene instrucciones almacenadas en el mismo para soportar operaciones de procesamiento de señales.
El orden de las etapas se ha agregado para mayor claridad. Estas etapas se pueden realizar en cualquier orden adecuado.
Otros ejemplos de la presente descripción incluyen programas de software, microprograma y/o hardware respectivos para realizar cualquiera de las etapas y operaciones del ejemplo del método resumidas anteriormente y descritas en detalle más abajo.
Además, se debe entender que el sistema, el método, el aparato, las instrucciones en medios de almacenamiento legibles por ordenador, etc., como se describe en la presente descripción, pueden incorporarse estrictamente como un programa de software, como un híbrido de software, microprograma y/o hardware o como hardware solo tal como dentro de un procesador, o dentro de un sistema operativo o dentro de una aplicación de software, etc. Como se describió anteriormente, las técnicas en la presente descripción son adecuadas para su uso en aplicaciones de software, microprograma y/o hardware que procesan señales y producen flujos de bits de datos codificados o que procesan flujos de bits de datos codificados y producen representaciones de señales. Sin embargo, se debe señalar que los ejemplos en la presente descripción no se limitan al uso en tales aplicaciones y que las técnicas que se describen en la presente descripción también son adecuadas para otras aplicaciones. Adicionalmente, tenga en cuenta que, aunque cada una de las diferentes características, técnicas, configuraciones, etc., en la presente descripción pueden describirse en diferentes lugares de esta descripción, se pretende que cada uno de los conceptos pueda ejecutarse independientemente de cada uno o en combinación entre sí.
Además, tenga en cuenta que esta descripción preliminar de los ejemplos en la presente descripción no especifica cada ejemplo y/o cada aspecto incrementalmente nuevo de la presente descripción o de la(s) invención(es) reivindicada(s). En cambio, esta breve descripción solamente presenta ejemplos generales y los correspondientes puntos de novedad sobre las técnicas convencionales. Para detalles adicionales y/o posibles perspectivas (permutaciones) de la(s) invención(es), se dirige al lector a la sección de Descripción Detallada y a las Figuras correspondientes de la presente descripción como se describe más abajo.
Breve descripción de las figuras
Los anteriores y otros objetos, características y ventajas serán evidentes a partir de la siguiente descripción más particular de los ejemplos preferidos en la presente descripción, como se ilustra en las figuras acompañantes en las que caracteres de referencia similares se refieren a las mismas partes a través de las diferentes vistas. Las figuras no están necesariamente a escala, en cambio, se hace énfasis en ilustrar los ejemplos, principios, conceptos, etc.
La Figura 1A es un diagrama de ejemplo que ilustra un sistema de codificación y decodificación multiescala; La Figura 1B es un diagrama de ejemplo que ilustra un ejemplo de agregación a lo largo de la dimensión del tiempo;
La Figura 1C es un diagrama de ejemplo que ilustra ejemplos de muestreo descendente espacial y de mezcla descendente del espacio-tiempo;
La Figura 1D es un diagrama de ejemplo que ilustra ejemplos de agregación a lo largo del tiempo y la mezcla descendente del espacio-tiempo;
La Figura 1E es un diagrama de ejemplo que ilustra la estructura de una señal codificada en una jerarquía temporal escalonada;
La Figura 1F es un diagrama de ejemplo que ilustra la estructura de un codificador;
La Figura 1G es un diagrama de ejemplo que ilustra la estructura de un decodificador;
La Figura 1H es un diagrama de ejemplo que ilustra en más detalles la estructura de un codificador;
La Figura 2A, 2B, 2C y 2D ilustran diversas etapas de operaciones usadas para procesar dos imágenes; La Figura 3A y 3B son diagramas de ejemplo que ilustran la codificación en base a la información del elemento de soporte;
La Figura 4A, 4B y 4C son diagramas de ejemplo del procesamiento de una secuencia de imágenes;
La Figura 5 es un diagrama de ejemplo que ilustra la estructura de un codificador y de un decodificador; La Figura 6 es un diagrama de ejemplo que ilustran la decodificación en base a la información del elemento de soporte;
La Figura 7A y 7B son diagramas de ejemplo que ilustran la codificación y la decodificación de datos residuales en base a la información de soporte;
La Figura 8 muestra un diagrama de bloques de un sistema informático que proporciona procesamiento de datos de acuerdo con los ejemplos descritos en la presente descripción.
Descripción detallada de los ejemplos
Los métodos que se ilustran en la presente descripción son adecuados para cualquier tipo de señales multidimensionales, que incluyen sin limitación las señales de sonido, las señales de sonido multicanal, las imágenes, las imágenes bidimensionales, las señales de vídeo, las señales de vídeo multivistas, las señales de vídeo 3D, las señales volumétricas, las señales de vídeo volumétricas, señales de imágenes médicas, señales con más de cuatro dimensiones, etc. Para simplificar, a lo largo de la descripción, los ejemplos que se ilustran usualmente adoptan el caso de uso de secuencias de video, es decir, una señal basada en el tiempo que consiste de una secuencia de imágenes 2D (comúnmente llamados "fotogramas" o "campos" en el caso de las señales de video entrelazadas), con cada elemento (en tal caso de ejemplo se denomina típicamente como "píxel") que se caracteriza por un conjunto de configuraciones de color en un espacio de color adecuado (por ejemplo, YUV, RGB, HSV, etc.). Los diferentes planos de color (por ejemplo, el plano de luminancia-Y y los dos planos de crominancia U y V), a menudo se codifican por separado y, a menudo, con diferentes resoluciones (debido a la menor sensibilidad de los ojos humanos a la información de crominancia).
En otros casos, se representará la señal como una secuencia de muestras de N-dimensiones o "lapsos" como se definió anteriormente en este documento, y se hará referencia al hecho de que la representación completa de la señal es una señal dimensional (N+1) (por ejemplo, si una de las dimensiones es el tiempo, esto corresponde a representar una secuencia de representaciones espaciales con una única representación de tiempo-espacio). Estos deben considerarse ejemplos de los posibles tipos de señales que pueden filtrarse y/o comprimirse mediante el uso de los métodos innovadores descritos en la presente descripción. Para señales aparte de los videos, los expertos en el arte pueden aplicar fácilmente los métodos descritos en la presente descripción al adaptar adecuadamente los enfoques descritos para el caso de uso de la señal de video. En un ejemplo, los lapsos también pueden ser hiperplanos de elementos con un número diferente de dimensiones que no sean 2 (por ejemplo, lapsos unidimensionales, lapsos tridimensionales, etc.) y/o es posible aplicar a dimensiones diferentes a la de tiempo, enfoques que correspondan a los descritos en la presente descripción para la dimensión de tiempo.
Cada lapso de tiempo de una señal se representa con un hiperplano (o más simplemente "plano", que se entiende en su sentido más amplio como "conjunto de elementos organizados como una matriz con una o más dimensiones"): por ejemplo, una señal de sonido multicanal, un fotograma de video HD 2D o una imagen médica volumétrica 3D pueden representarse todos con matrices de elementos del plano (específicamente, un plano de elementos 1D para la señal de sonido multicanal, un plano de elementos 2D para el fotograma de video HD y un hiperplano tridimensional de elementos para la imagen médica volumétrica).
A lo largo del tiempo, los lapsos ocurren a una tasa de muestreo (local) dada. En los métodos convencionales, la tasa de muestreo es siempre constante. Por el contrario, los métodos innovadores que se ilustran en la presente descripción permiten una tasa de muestreo variable. En particular, para niveles de calidad inferiores al nivel superior, la duración de los lapsos de un nivel de calidad dado (es decir, la tasa de muestreo para ese nivel de calidad dado) puede ser variable, lo que representa efectivamente las tasas de muestreo variables. Con el fin de permitir una reproducción adecuada de la señal con lapsos que tienen diferentes duraciones de tiempo, cada uno de los lapsos también se caracteriza por un "número de imagen" o "identificador de imagen", que representa el momento cuando el lapso debe comenzar a visualizarse.
Los métodos y ejemplos que se ilustran en la presente descripción pueden usarse juntos entre sí y/o junto con otros métodos. Muchas de los ejemplos preferidas que se ilustran en la presente descripción describen técnicas y algoritmos con el objetivo de lograr la compresión, es decir, la codificación y/o decodificación de una representación adecuada de la señal con una cantidad mínima de bits. Este también es un ejemplo: otros ejemplos pueden lograr diferentes propósitos, tales como la codificación y decodificación multiescala, la transmisión adaptativa, el filtrado robusto y eficiente, la eliminación de ruido de la señal (por ejemplo, la eliminación de ruido de la imagen, la eliminación de ruido del vídeo, etc.), las mejoras de la señal (por ejemplo, el supermuestreo de la señal, el desentrelazado, etc.), la generación de métricas de calidad de la señal, la identificación de contenido, la visión artificial, la encriptación de la señal (por ejemplo, la comunicación segura), etc.
La Figura 1A es un diagrama de ejemplo que describe un sistema de codificación y decodificación multiescala de acuerdo con los ejemplos en la presente descripción.
En un ejemplo, el codificador 110 recibe la señal original 100 (tal como una secuencia de señales 100-1, 100-2, etc.) y codifica la señal 100 en un flujo de datos multiescala 115. El decodificador 120-2 recibe el flujo de datos 115 de datos codificados y produce la señal reconstruida a un LOQ inferior 1001 tal como un primer nivel de calidad.
El decodificador 120-1 recibe el flujo de datos 115 y produce una señal reconstruida a un LOQ superior 1000 tal como un segundo nivel de calidad. En este ejemplo, el segundo nivel de calidad es superior al primer nivel de calidad. En un ejemplo, el segundo (o superior) nivel de calidad es una imagen de mayor resolución (por ejemplo, más elementos por unidad de área de pantalla de visualización) que una resolución en el primer (inferior) nivel de calidad. Por lo tanto, la señal 1000-1 en la secuencia es una representación de mayor resolución de la señal 1000-1, la señal 1000-2 en la secuencia es una representación de mayor resolución de la señal 1000-2, y así sucesivamente.
En un ejemplo, también el Decodificador 120-1 produce una Señal Reconstruida a un LOQ Inferior 1001 con el fin de reconstruir, en base a la Señal Reconstruida a un LOQ Inferior 1001, la Señal Reconstruida a un LOQ Superior 1000.
En algunos ejemplos, como se mencionó, el segundo nivel de calidad tiene una resolución mayor (espacial y/o temporal) que el primero. En algunas de tales ejemplos, el segundo nivel de calidad tiene una resolución que se obtiene mediante muestreo ascendente con un factor de escala específico (que incluye factores de escala no enteros y/o factores de escala iguales a 1) cada una de las dimensiones de la señal. En otras palabras, la señal 1000-1 puede muestrearse ascendentemente en base al menos en parte a la señal 1001-1; la señal 1000-2 puede muestrearse ascendentemente en base al menos en parte a la señal 1001-2; y así sucesivamente. De manera similar, cada señal en la señal 1001 puede muestrearse ascendentemente a una señal a una resolución mayor.
En otro ejemplo, el Decodificador 120-2 aprovecha las técnicas de decodificación heredadas (por ejemplo, MPEG2, H.264, etc.) con el fin de decodificar el flujo de datos 115.
En un ejemplo, un procesador de señales de decodificación de un decodificador de TV (por ejemplo, sin limitación, una caja decodificadora) se programa para implementar un método como se ilustra en la Figura 1A, en donde el flujo de datos 115 corresponde a la señal de difusión que se recibe. De esta manera, los decodificadores heredados reciben el mismo flujo de datos 115 que el decodificador 120, pero sólo ignoran los datos adicionales en el flujo de datos que se encuentran disponibles para reconstruir una representación de la señal al nivel de calidad superior.
En otros ejemplos, un servidor de transmisión procesa el flujo de datos codificados 115 y, en respuesta a las características del decodificador y/o a la congestión del ancho de banda, genera una versión del flujo de datos que solamente incluye los datos codificados necesarios para decodificar la señal a un nivel de calidad dado (lo opuesto al máximo nivel de calidad posible).
La Figura 1B es un diagrama que ilustra un ejemplo de agregación a lo largo de una dimensión temporal de acuerdo con los ejemplos en la presente descripción.
Por medio de un ejemplo, los tres planos 130-1, 130-2, 130-3, cada uno de los cuales incluye cuatro elementos organizados como un plano 2x2, se agregan en el plano de soporte 131, con la misma resolución que los planos originales. Cada plano puede incluir cualquier número de elementos.
En un ejemplo, los elementos del plano de soporte 131 se calculan en base a los elementos correspondientes de los planos 130-1, 130-2 y 130-3. El número de planos que se agregan en un mismo plano de soporte debe considerarse como no limitativo, ya que en principio puede agregarse cualquier número de planos en un único plano de soporte. En este ejemplo, se dice que el plano de soporte 131 se encuentra en un "nivel de agregación superior" (LOA) que los planos 130-1, 130-2 y 130-3.
En algunos ejemplos, el plano de soporte 131 se procesa con el fin de reconstruir, en base a datos de reconstrucción específicos para cada uno de los planos 130-1, 130-2 y 130-3, representaciones del plano 130-1, 130-2 y 130-3.
En otros ejemplos, los planos 130-1, 130-2 y 130-3 son planos residuales, que especifican los ajustes a hacer en las representaciones preliminares de las muestras correspondientes con el fin de producir una representación reconstruida de una señal. En otras palabras, los planos tales como el plano 130-1, el plano 130-2, el plano 130-3, etc., pueden representar los llamados datos residuales. Los datos residuales pueden ser datos de ajuste que especifican cómo ajustar cada uno de los múltiples elementos en una señal que se reconstruye para que la señal reconstruida coincida más con una representación original de la señal.
En el ejemplo de la Figura 1B, cada plano de información corresponde a una posición de muestreo diferente (es decir, tiempo de muestreo). Por ejemplo, el plano 130-1 de elementos puede representar la información de ajuste asociada con la recreación de una representación de una señal original que se captura en el tiempo T1 en la secuencia; el plano 130-2 de elementos puede representar la información de ajuste asociada con la recreación de una representación de una señal original que se captura en el tiempo T2 en la secuencia; el plano 130-3 de elementos puede representar la información de ajuste asociada con la recreación de una representación de una señal original que se captura en el tiempo T3 en la secuencia; y así sucesivamente. En otros ejemplos, los planos 130-1, 130-2 y 130-3 son planos de soporte para otros planos en un nivel de agregación inferior. Como ejemplo, pueden agregarse múltiples planos a un nivel de agregación inferior para producir el plano 130-1; pueden agregarse múltiples planos a un nivel de agregación inferior para producir el plano 130-2; pueden agregarse múltiples planos a un nivel de agregación inferior para producir el plano 130-3; y así sucesivamente. En consecuencia, la información de ajuste asociada con múltiples planos (imágenes) puede combinarse de manera jerárquica en un único plano de soporte.
Como se muestra, el único plano de soporte 131 de elementos captura atributos de cada uno de los múltiples planos temporales de elementos. Por ejemplo, en este ejemplo simple sin compensación de movimiento, el elemento inferior izquierdo en el plano 131 se establece a un valor de D ya que esta es la configuración predominante de los elementos correspondientes (por ejemplo, los elementos inferiores izquierdos) en los planos 130-1, 130-2, 130-3, y así sucesivamente.
El elemento superior derecho en el plano 131 se establece a un valor de C ya que esta es la configuración predominante de los elementos correspondientes (por ejemplo, el elemento superior derecho) en los planos 130-1, 130-2, 130-3, y así sucesivamente. En consecuencia, el plano de soporte 131 incluye una mezcla de múltiples planos de imagen individuales.
En otros ejemplos, los elementos correspondientes de diferentes planos pueden residir en diferentes ubicaciones de sus respectivos planos (como se especifica mediante la información descriptiva adecuada sobre el movimiento), con el fin de tener en cuenta el movimiento de los objetos con el tiempo.
Los ejemplos en la presente descripción pueden incluir la generación de datos de reconstrucción (tal como los datos residuales) para convertir el plano de soporte 131 de nuevo en los planos individuales 130-1, plano 130-2, plano 130-3 y así sucesivamente. Por ejemplo, un codificador compara las configuraciones de los elementos en el plano de soporte 131 con las configuraciones de los elementos en el plano original 130-1. En este ejemplo, los datos de reconstrucción para el plano 130-1 indicarían que el plano de soporte 131 puede convertirse en el plano 130-1 con un ajuste del elemento superior derecho en el plano de soporte 131. Es decir, las configuraciones en el plano 130-1 son generalmente las mismas que las configuraciones de los elementos en el plano de soporte 131 excepto en el elemento superior izquierdo. Los datos de reconstrucción asociados con el plano 130-1 pueden incluir información de diferencia que se aplica al valor de configuración C para cambiarlo al valor B para el elemento de visualización superior derecho en el plano 130-1. Además, en este ejemplo, un codificador compara las configuraciones de los elementos en el plano de soporte 131 con las configuraciones de los elementos en el plano original 130-2. En este ejemplo, los datos de reconstrucción para el plano 130-2 indicarían que las configuraciones en el plano de soporte 131 pueden convertirse en elementos del plano 130-2 sin ninguna configuración.
Además, en este ejemplo, un codificador compara las configuraciones de los elementos en el plano de soporte 131 con las configuraciones de los elementos en el plano original 130-3. En este ejemplo, los datos de reconstrucción para el plano 130-3 indicarían que el plano de soporte 131 puede convertirse en el plano 130-3 con un ajuste en el elemento inferior izquierdo en el plano de soporte 131. Es decir, las configuraciones en el plano 130-3 son generalmente las mismas que las configuraciones de los elementos en el plano de soporte 131 excepto que el elemento superior izquierdo es diferente. Los datos de reconstrucción asociados con el plano 130-3 pueden incluir información de diferencia que se aplica al valor de configuración D en el plano de soporte 131 para cambiarlo al valor E para el elemento de visualización inferior izquierdo cuando se reconstruyen las configuraciones para el plano 130-3.
La Figura 1C es un diagrama de ejemplo que ilustra ejemplos de muestreo descendente espacial y de mezcla descendente del espacio-tiempo de acuerdo con los ejemplos en la presente descripción. El diagrama ilustra una secuencia de planos a un primer nivel de calidad (superior) y una secuencia correspondiente de planos a un segundo nivel de calidad, el segundo nivel de calidad que es inferior al primero.
En particular, la secuencia en el segundo nivel de calidad se ha obtenido como sigue:
El plano 11135-1, un plano bidimensional hecho de dieciséis elementos, se muestrea descendentemente con un factor de escala de dos a lo largo de ambas de sus dimensiones espaciales, lo que produce el plano de muestreo descendente 136-1; los planos 135-2, 135-3 y 135-4, tres planos bidimensionales cada uno hecho de dieciséis elementos, se muestrean descendentemente con un factor de escala de dos a lo largo de sus dimensiones espaciales y con un factor de escala de tres a lo largo de la dimensión del tiempo, lo que produce el plano de mezcla descendente 136-2. Se asume en este ejemplo que el plano 135-1 es una representación de una imagen de muestra en el tiempo T1; el plano 135-2 es una representación de una imagen de muestra en el tiempo T2; el plano 135-3 es una representación de una imagen de muestra en el tiempo T3; el plano 135-4 es una representación de una imagen de muestra en el tiempo T4; y así sucesivamente.
La operación de muestreo descendente de espacio-tiempo (es decir, muestreo descendente también a lo largo de la dimensión del tiempo) también se denomina en esta solicitud "mezcla descendente" (abreviatura de "muestreo descendente mezcla de tiempo"). En un ejemplo, el muestreo descendente se refiere a reducir la resolución de la representación de la señal descendente en el nivel de calidad jerárquico; la mezcla se refiere a la combinación de atributos de señales de muestra que se muestrean con el tiempo. El número de planos de mezcla descendente en un mismo plano de mezcla descendente debe considerarse no limitativo, ya que, en principio, cualquier número de planos puede mezclarse descendentemente en un plano de mezcla descendente. Los ejemplos en la presente descripción pueden incluir la generación de datos de reconstrucción (tal como los datos residuales) para convertir el plano de soporte 136 de nuevo en los planos 135-2, plano 135-3 y plano 135-4 individuales. Por ejemplo, puede configurarse un codificador para determinar las modificaciones que necesitan realizarse después del muestreo ascendente del plano 136-2 en una representación preliminar de la señal con el mismo nivel de calidad que los planos 135-2, 135-3 y 135-4. El codificador produce entonces un primer conjunto de datos de reconstrucción que indican cómo modificar los elementos en la representación de muestreo ascendente del plano 136-2 en el plano 135-2; el codificador produce entonces un segundo conjunto de datos de reconstrucción que indican cómo modificar los elementos en la representación de muestreo ascendente del plano 136-2 en el plano 135-3; el codificador produce entonces un tercer conjunto de datos de reconstrucción que indican cómo modificar los elementos en la representación de muestreo ascendente del plano 136-2 en el plano 135-4. En consecuencia, un decodificador puede recibir datos de reconstrucción asociados con el plano 136-2 y el primer conjunto de datos de reconstrucción para reproducir las configuraciones en el plano 135-2; el decodificador puede recibir los datos de reconstrucción asociados con el plano 136-2 y el segundo conjunto de datos de reconstrucción para reproducir las configuraciones en el plano 135-3; el decodificador puede recibir los datos de reconstrucción asociados con el plano 136-2 y el tercer conjunto de datos de reconstrucción para reproducir las configuraciones en el plano 135-4.
La Figura 1D es un diagrama de ejemplo que ilustra ejemplos de agregación y mezcla descendente del espaciotiempo que se realizan junto con la compensación de movimiento de acuerdo con los ejemplos en la presente descripción.
El plano 21135-5 y el plano 22135-6 se agregan en el plano de soporte 137, en donde el plano de soporte 137 tiene un número superior de elementos que los planos originales. Los elementos del plano de soporte 137 se calculan en base a los elementos correspondientes de los planos 135-5 y 135-6. En este ejemplo, puede señalarse que el plano de soporte 137 no tiene una cuadrícula de muestreo con una resolución mayor que la de los planos originales. Es una región de muestreo ampliada (por ejemplo, mayor número de elementos de visualización que en los planos originales 135-5, 135-6, etc.). La cuadrícula en el plano 137 se extiende con respecto a los planos 21, 22, 31, 32, para capturar una porción más grande de la "escena" (es decir, con un "campo de visión" más grande). Ampliar la región de los elementos de visualización asociados con el plano de soporte 137 permite capturar una porción más grande de los elementos de visualización en los planos 21 y 22 en el plano de soporte 137. En consecuencia, el plano de soporte 137 incluye una agregación de información de múltiples planos. Por ejemplo, como se muestra, el plano de soporte 137 incluye una combinación de objetos que se presentan en cada uno de los planos 21 y 22.
Como se muestra, el plano de soporte 137 incluye una representación de un primer objeto (por ejemplo, la información que se ilustra visualmente como un cuadrado oscuro presente en ambos planos 21 y 22) así como también un segundo objeto (por ejemplo, la información que se ilustra visualmente como un triángulo solamente en el plano 22). La Figura muestra los efectos de la compensación de movimiento, en donde la información que se ilustra visualmente como un cuadrado oscuro, que cambia de ubicación a lo largo del tiempo, se compensa por movimiento antes de mezclarse en el plano de soporte 137. En particular, la figura muestra un ejemplo de compensación de movimiento con respecto a la posición de muestreo del plano 21 (es decir, en el plano de soporte 137, el cuadrado oscuro se ubica en la posición que tenía en el plano 21). En otras palabras, debido a la compensación de movimiento, el plano mezclado 137 no se obtiene por medio de solo un simple solapamiento de los múltiples planos originales, sino que es un promedio ponderado de planos "alabeados", cada uno de los planos alabeados que se obtienen mediante la compensación de movimiento de un plano original dado con respecto a la posición de muestreo del plano de soporte 137.
En este ejemplo, el Plano 31135-7 y el Plano 32135-8 se mezclan descendentemente en el Plano de mezcla descendente 138, en donde el Plano de mezcla descendente 138 tiene más elementos que la cuadrícula de muestreo resultante de las operaciones de muestreo descendente espacial. Al igual que el plano de soporte 137, también el Plano de mezcla descendente 138 comprende información que se representa parcialmente en todos los planos de mezcla descendente en él, y que se representa parcialmente solamente en algunos de los planos. De esta manera, los ejemplos en la presente descripción incluyen aplicar un algoritmo de muestreo descendente para reducir la resolución del plano representativo, así como también la ampliación de una región (por ejemplo, el número de elementos de visualización) de cobertura asociada con el plano de muestreo ascendente con el fin de acomodar la captura de una representación de objetos presentes en múltiples planos diferentes.
En consecuencia, una secuencia de imágenes (y objetos en movimiento capturados) asociada con un video puede capturarse en una única imagen de igual o diferente resolución que las imágenes originales. En un ejemplo, el hardware del procesador del codificador produce el plano de soporte 137 para incluir un conjunto de configuraciones de elementos de imagen comunes entre el plano 21 y 22. El plano de soporte 137 puede configurarse para incluir: I) una representación de un primer objeto (círculo pequeño) como se detecta en un primer plano (imagen) de las múltiples imágenes originales, y ii) una representación de un segundo objeto (triángulo) como se detecta en un segundo plano (imagen) de las múltiples imágenes originales. La representación del segundo objeto (triángulo) puede ausentarse del primer plano 21. La representación del primer objeto (pequeño círculo) puede ausentarse del segundo plano 22.
La Figura 1E es un diagrama que ilustra una señal (N+1)-dimensional que es, en este ejemplo, una secuencia de lapsos de N-dimensiones que representan una secuencia de fotogramas de video bidimensionales. Los lapsos del nivel de calidad superior (original) (LOQ #0, o escalón equivalente #0) se organizan en un "grupo" (es decir, un fragmento de tiempo) que consiste de dos "lotes" el LOTE 1 y el LOTE 2 o, en otras palabras, dos subsecuencias de lapsos. En el LOQ #0, el LOTE 1 consta de 8 lapsos de igual duración (lapso 100-1 en la posición de muestreo 1, lapso 100-2 en la posición de muestreo 2, ..., lapso 100-8 en la posición de muestreo 8) y el LOTE 2 consta de 5 lapsos de igual duración (lapso 100-9 en la posición de muestreo 9, lapso 100-10 en la posición de muestreo 10, ..., lapso 100-13 en la posición de muestreo 13).
La señal ilustrada en la Figura 1E se codifica en una jerarquía escalonada, con los cuatro niveles de calidad superiores LOQ #0, LOQ #-1, LOQ #-2 y LOQ #-3 que se muestran en la Figura. Esto pretende ser no limitativo, ya que una señal podría codificarse con un número superior de niveles de calidad y, en principio, el nivel más bajo tiene un único lapso que consiste de un único elemento.
El nivel de calidad LOQ #-1 consta de cuatro lapsos para el LOTE 1 (lapsos 101-1, 101-3, 101-5, 101-7) y dos lapsos para el LOTE 2 (lapso 101-9 y 101-12). En este ejemplo, los lotes en LOQ #-1 tienen un número inferior de lapsos que los mismos lotes en LOQ #0, es decir, los lapsos de LOQ #-1 se obtuvieron por medio de muestreo descendente temporal. Los hiperplanos de elementos (es decir, en el ejemplo de fotogramas de video, los planos bidimensionales de los píxeles) correspondientes a los lapsos de LOQ #-1 también se muestrean descendentemente, con factores de escala adecuados para cada dimensión espacial, con respecto a los hiperplanos de elementos correspondientes a lapsos de LOQ #0: en este ejemplo, los hiperplanos tienen dos dimensiones (por ejemplo, que representan una imagen bidimensional), y cada dimensión se muestrea descendentemente en un factor de 2 para cada nivel de calidad de la jerarquía al siguiente, lo que introduce líneas o columnas de relleno cuando sea necesario para garantizar la divisibilidad por dos.
Observe que diferentes números de lapsos de LOQ #0 corresponden a diferentes intervalos de LOQ #-1: por ejemplo, el lapso de mezcla descendente 101-1 en LOQ #-1 corresponde (es decir, representa la misma porción de la señal en un nivel de calidad diferente) a los lapsos 100-1 y 100-2 en LOQ #0 (es decir, el muestreo ascendente temporal desde el lapso 101-1 a los lapsos 100-1 y 100-2 tiene un factor de escala de dos), mientras que el lapso de mezcla descendente 101-12 en LOQ #-1 corresponde a los lapsos 100-11, 100-12 y 100-13 en LOQ #0 (es decir, el muestreo ascendente temporal para el lapso 101-12 tiene un factor de escala de tres).
Los lapsos se caracterizan por una posición de muestreo (representada en la Figura 1E por el número en la parte superior de cada lapso, encima de una marca de graduación), una duración de tiempo (representada en la Figura 1E por la longitud horizontal del lapso) y un número de imagen (representado en la Figura 1E por el número en la parte inferior de cada lapso, más abajo de una marca circular sólida). Por ejemplo, el lapso 103-11 de LOQ #-3 se caracteriza por la posición de muestreo 11 (es decir, se "centra" en la posición 11), la duración de tiempo de 5 unidades de tiempo (es decir, corresponde a cinco lapsos del LOQ #0) y el número de imagen 9 (es decir, si el lapso tuviera que mostrarse, permanecería en la pantalla - a la tasa de imagen del LOQ #0 - que comienza desde la imagen 9 hasta la imagen 13, es decir, por su duración de 5 imágenes).
En este ejemplo, las posiciones de muestreo para los lapsos de los niveles de calidad inferiores al LOQ #0 se calculan de acuerdo con la tasa de muestreo del LOQ #0 (en este ejemplo, una tasa de muestreo constante). En particular, la posición de muestreo de un lapso que corresponde a una pluralidad de lapsos del LOQ #0 se calcula como la posición de muestreo entera inferior o igual (es decir, redondeo hacia abajo) al promedio de las posiciones de muestreo de los lapsos correspondientes en el LOQ #0. Por ejemplo, el lapso 102-2 del LOQ#-2 (correspondiente a los lapsos 100-1, 100-2, 100-3 y 100-4 del LOQ #0) tiene una posición de muestreo de 2, ya que 2 es la posición de muestreo entera más cercana inferior al promedio (que sería 2,5) de las posiciones de muestreo de 100-1, 100-2, 100-3 y 100-4. De manera similar, el lapso 103-11 del LOQ #-3 tiene una posición de muestreo de 11 porque 11 es el promedio (en este caso, directamente un número entero) de las posiciones de muestreo de los lapsos 100-9, 100-10, 100-11, 100-12 y 100-13.
En este ejemplo, los números de imagen para lapsos de niveles de calidad inferiores al LOQ #0 se calculan de nuevo de acuerdo con la tasa de muestreo del LOQ #0, y el número de imagen de un lapso dado se calcula como la posición de muestreo más baja de los lapsos del LOQ #0 que corresponden al lapso dado.
Descripción de ejemplo de un codificador
En un entorno orientado a la compresión, un procesador de señales se configura como codificador (de ahora en adelante "el codificador") procesa los conjuntos de generación de señales de datos de reconstrucción codificados que esencialmente comprimen la señal a una calidad dada. Un procesador de señales que se configura como un decodificador (de ahora en adelante "el decodificador") recibe los conjuntos de datos de reconstrucción y reconstruye una representación de la señal original.
Con el fin de generar conjuntos adecuados de datos de reconstrucción codificados, en primer lugar, el codificador identifica la porción de tiempo de la señal que se incluirá en un grupo y su subdivisión en lotes. Los grupos son necesarios debido al problema práctico de que la dimensión del tiempo es a menudo ilimitada (al menos para todos los propósitos prácticos), mientras que las dimensiones espaciales tienen límites nativos claros y fijos (por ejemplo, la resolución horizontal y vertical de un fotograma de video, el número de valores representa una muestra de sonido, la resolución x-y-z de una imagen volumétrica, etc.). Por lo tanto, a menudo es prácticamente inviable, incluso si idealmente es la mejor opción, para analizar la señal a lo largo de toda su duración en el tiempo. Sin embargo, una señal - en ejemplos prácticos, tal como imágenes en movimiento y filmaciones - es a menudo, de forma nativa una cadena concatenada de fragmentos no relacionados: por ejemplo, típicamente los contenidos de las imágenes en movimiento se dividen en "escenas", es decir, cantidades limitadas en el tiempo de lapsos correlacionados separados por cambios de escena muy evidentes. Estos "grupos de escenas" pueden servir como una referencia válida para particionar en el tiempo la señal antes de codificarla. Sin embargo, cuando estos grupos son muy largos, es necesario segmentar más la secuencia de lapsos. Sin las contramedidas convenientes, particionar una escena en "porciones independientes para el cálculo" puede conducir a artefactos evidentes: los patrones de ruido cambian repentinamente, los movimientos suaves muestran discontinuidades, etc. La nueva metodología usada en el ejemplo preferido descrito en la presente descripción comprende el uso de "lotes" (es decir, muestreo descendente de la jerarquía lote por lote, independientemente) y un enfoque de "onda de decodificación" (es decir, muestreo ascendente de la jerarquía entre lotes). Por medio de tales nuevos métodos, la escena se particiona de hecho con el fin de hacer que el cálculo sea práctico con las arquitecturas actuales. Dichas particiones se "puentean" durante la decodificación, lo que evita las separaciones rígidas y, en consecuencia, evita las discontinuidades en la representación reconstruida de la señal.
Si el grupo consta de solo unos pocos lapsos, no es necesario particionarlo más. En cambio, si se asume que un grupo dura muchos lapsos (es decir, por encima de un umbral dado), el codificador rebana el grupo en "lotes". Como se indicó anteriormente, un lote es un número consecutivo de lapsos. Las longitudes de los lotes en el intervalo de 1 a 128 lapsos y los grupos hechos de 1 a 5 lotes son ejemplos para las duraciones de lotes y los grupos. Desde un punto de vista práctico, tales longitudes se ajustan al hardware, la memoria y las unidades de procesamiento usadas en un ejemplo dada. La decisión sobre la dimensión del lote es el resultado de un proceso de optimización global que se realiza en el lado del codificador. Un criterio es maximizar la longitud del lote dentro de un grupo altamente correlacionado en el tiempo, dados cualesquiera de los requisitos en el recurso decodificador (en particular, los requisitos de memoria), en el perfil dado que se produce por el codificador. Otro criterio es mantener tanto como sea posible un tamaño de lote fijo y, en particular, configurarlo o a un número fijo de imágenes o a una imagen (por ejemplo, antes o después de imágenes muy poco correlacionadas), para simplificar los cálculos.
El codificador realiza la estimación de movimiento a través de la señal, lo que genera una información descriptiva adecuada que comprende un número de parámetros, tales como mapas auxiliares, vectores de movimiento, mapas de zona de movimiento, matrices de movimiento, etc. y representa el movimiento de los objetos que se representan en los lapsos de la señal. En dependencia de los resultados de la estimación de movimiento, el codificador puede modificar el número de lapsos que se incluyen en los grupos y lotes, por ejemplo, al tomar en cuenta los cambios de escena en el caso de una señal de video. La longitud de lote se acorta por el codificador cada vez que la correlación de tiempo de los lapsos a lo largo del tiempo disminuye más abajo de los umbrales dados. En base a las métricas adecuadas correspondientes a la actividad de la señal durante el grupo en términos de movimiento, las longitudes de los lotes se asignan por lo tanto esencialmente sobre una base de proporcionalidad inversa. En un ejemplo, la longitud del lote se define en base a dichas métricas al aprovechar los parámetros experimentales preestablecidos, así como también las heurísticas adecuadas.
Dentro de un grupo, el codificador agrupa así los lapsos en uno o más "lotes".
Una vez identificado qué lapsos del LOQ #0 pertenecen a qué lote, el codificador calcula la jerarquía escalonada de lapsos, al generar cada lapso en un LOQ inferior mediante el muestreo descendente de la correspondiente pluralidad de lapsos en el LOQ inmediatamente superior. El lapso en el LOQ inferior que resulta del muestreo descendente de una pluralidad de lapsos en el LOQ superior también se define como el lapso de "controlador" (o "padre") para esos lapsos.
Matemáticamente, llamemos el lapso de LOQ K, lote L y posición de muestreo t. En el ejemplo ilustrado en la Figura 1E, el lapso 101-1 se obtiene mediante el muestreo descendente de la combinación de los lapsos 100-1 y 100-2. Más específicamente, los lapsos del nivel de calidad superior se combinan al realizar un promedio ponderado de sus representaciones con compensación de movimiento, en donde la compensación de movimiento se realiza en base a (es decir, con relación a) la posición de muestreo del lapso resultante en el nivel de calidad inferior. Matemáticamente, esto puede expresarse como sigue:
La función de compensación de movimiento MC es una función que toma como entrada información descriptiva sobre el movimiento (que se genera a través de un método adecuado de estimación de movimiento) y transforma una imagen original (es decir, un lapso centrado en una posición de muestreo dada) en una imagen con compensación de movimiento, centrada en la posición de muestreo de destino. En este ejemplo, las imágenes con compensación de movimiento son más grandes (es decir, tienen más hileras y columnas de elementos del plano) que las imágenes originales, con el fin de permitir la combinación de una pluralidad de imágenes con compensación de movimiento mientras se limita la pérdida de información como se ilustró previamente en la Figura 1D. Debido a la falta de bibliografía, se define las hileras y columnas adicionales (la resolución adicional frente a la original de un lapso con el mismo nivel de calidad) como "encuadre". A algunos elementos del encuadre se les asigna un valor por defecto (valor "No Disponible") mediante la función de compensación de movimiento, con el fin de evitar que esos elementos influyan en los promedios ponderados durante la combinación de múltiples imágenes en una imagen. Como un caso de ejemplo simple, aplicar la compensación de movimiento con respecto a una posición de muestreo dadata un lapsoXK(t)con la misma posición de muestreot, corresponde esencialmente a una función de identidad más la adición de encuadre, en donde todos los elementos de encuadre se les asigna el valor por defecto "No disponible". Con relación al tamaño de los lapsos combinados originales, el encuadre se vuelve más grande al descender en la jerarquía, debido al hecho de que los lapsos tienen una mayor duración en el tiempo y, por tanto, pueden incluir una "mayor cantidad" de la escena general (especialmente debido al movimiento).
En este ejemplo simple, la función de muestreo descendente es un filtro de muestreo descendente bilineal con un factor de escala de 2 en ambas dimensiones y parámetros de pesoaybsimplemente dependa de las duraciones temporales relativas de los lapsos del nivel de calidad superior que se muestrean descendentemente en el lapso del nivel de calidad inferior. Otros ejemplos ponderan los lapsos en base a la distancia desde la posición de muestreo y/o los parámetros más sofisticados, pero un promedio simple corresponde al hecho de que la "cantidad relativa de información" llevada por un lapso es esencialmente proporcional a la porción de tiempo de la señal que representa. En el ejemplo específico de la Figura 1E:
Cuando una operación de compensación de movimiento genera un plano de elementos que incluye uno o más elementos con un valor por defecto (por ejemplo, valor "No disponible"), los elementos con el valor por defecto no se incluyen en el promedio ponderado y los pesos de los valores restantes (es decir, diferentes de "No disponible") se normalizan, para garantizar que la suma de los pesos de los valores restantes en el promedio ponderado sea siempre igual a 1. En este ejemplo, la normalización se calcula al añadir una misma constante a cada uno de los pesos, para hacer su suma igual a uno.
Una vez que el codificador generó los LOQ en un LOQ dado, el codificador comienza a generar datos codificados que pueden permitir a un decodificador reconstruir representaciones adecuadas de la jerarquía escalonada. En particular, en el lado del decodificador, una vez que un LOQ N-1 dado se encuentra disponible, la reconstrucción del valor real de cada elemento de cada lapso en el LOQ N superior requiere recibir y decodificar uno o más conjuntos de residuales, que se procesan por el decodificador con el fin de modificar las representaciones predichas que se generan en base a la información sobre los niveles de calidad inferiores que ya se encontraba disponible.
Matemáticamente llamaremos las interpretaciones reconstruidas de cada lapso La razón por la que un Y dado (reconstruido) puede ser diferente de su correspondiente X (original) es que, en un entorno que se orienta a la compresión, el codificador puede configurarse para permitir un grado de artefactos de cuantificación y/u otros artefactos con pérdida en los lapsos reconstruidos, para reducir una métrica de entropía de la información de la señal. Para uno o más lapsos del LOQ inferior o nivel inferior, y solamente para esos, el codificador genera cada lapso Y<B>como resultado de descuantificar la representación cuantificada de X<B>. Esto se expresa matemáticamente como sigue:
(el símbolo "^" indica la "estimación reconstruida de")
Para los lapsos de los niveles de calidad subsecuentes (superiores) en la jerarquía, para cada lapso el codificador genera una predicción U al realizar operaciones de muestreo ascendente adecuadas, al aprovechar uno o más lapsos del nivel de calidad inferior como "predictores". El objetivo de tales operaciones de muestreo ascendente en el lado del codificador es que el codificador simule las operaciones que se realizarán en el lado del decodificador. En particular, al simular las operaciones de predicción, el codificador es capaz de generar subsecuentemente los datos de reconstrucción que necesitará el decodificador con el fin de modificar las predicciones y reconstruir una representación adecuada de la señal.
Los datos de predicción y reconstrucción se generan por el codificador de LOQ por LOQ, que comienza desde el nivel más bajo. En base a la posición en la jerarquía (por ejemplo, nivel de calidad, distancia desde el inicio o el final del grupo, etc.), el codificador procesa diferentes números de lapsos en el nivel de calidad inferior como
predictores. Por ejemplo, en el ejemplo específico de la Figura 1E, la predicción para el lapso 102-6 se
genera al procesar como predictores los lapsos 103-4 y 103-11, la predicción para el lapso 100-8 se genera al procesar como predictores los lapsos 101-5, 101-7, 101-9 y 101-12, y la predicción para el lapso 100-1 se genera al procesar como predictores los lapsos 101-1 y 101-3. En particular, en este ejemplo y con la excepción de los lapsos cercanos a un borde del grupo ("valla"), los predictores hasta el nivel de calidad LOQ #-1 se eligen como los dos lapsos del nivel inferior con las posiciones de muestreo más cercanas (una menor o igual, una mayor o igual) como el lapso a predecir, y desde el LOQ #-1 al LOQ #0 como los cuatro lapso del nivel inferior con las posiciones de muestreo más cercanas como el lapso a predecir (dos con posiciones de muestreo inferiores o iguales y dos con posiciones de muestreo superiores o iguales). Los predictores pertenecen a veces a diferentes lotes (vecinos), una característica que permite que el nuevo método reduzca o incluso elimine los artefactos derivados de haber particionado un grupo en diferentes lotes, "fijando" esencialmente las particiones artificiales que se crearon durante el muestreo descendente. Para lapsos que se encuentran cerca de las "vallas" (es decir, el inicio y el final del grupo), se usan menos predictores, debido al hecho de que uno o más predictores tendrían que proceder del grupo precedente o subsecuente, que sin embargo probablemente no esté correlacionado con el grupo actual.
El codificador, con el fin de generar lapsos predichos U, también aprovecha los lapsos que pertenecen a lotes vecinos: esto es efectivamente un ejemplo del método de reconstrucción que, de nuevo por falta de bibliografía, se define en la presente descripción como "onda de decodificación" (en base al aspecto visual de los posibles patrones de decodificación de un grupo largo codificado como una jerarquía escalonada). Una ventaja de ese nuevo método es que aborda los artefactos de partición precisamente cuando importa, es decir, durante el proceso de muestreo ascendente: de hecho, los artefactos de partición que resultan de la necesidad de muestrear descendentemente la señal lote por lote no se introducirían durante el muestreo descendente y/o la mezcla descendente sino durante el muestreo ascendente. Consideremos el LOTE 1 y el LOTE 2 en la Figura 1E: por ejemplo, enfocándose en el dominio del tiempo, el codificador mezcla descendentemente los lapsos 100-7 y 100-8 del lote 1 para producir el lapso 101-7; también mezcla descendentemente los lapsos 100-9 y 100-10 del lote 2 para producir el lapso 101-9. Cualquier fenómeno que se relacione con el tiempo (por ejemplo, la aceleración en la velocidad de un objeto, la aparición/desaparición de un objeto pequeño, etc.) que se produzca entre los lapsos 100-8 y 100-9 es "mal capturado" por tal procesamiento de muestreo descendente. Esto se haría evidente durante la generación de predicciones si también se realizaran operaciones de muestreo descendente temporal (es decir, operaciones de predicción de lapso) - como operaciones de muestreo descendente - dentro de los límites rígidos de un lote. Por ejemplo, si las operaciones de muestreo ascendente que generan el lapso 100-8 en el lado del decodificador solo tuvieran en consideración el lapso 101-7 y quizás también los lapsos anteriores (por ejemplo, 101-5), las operaciones de predicción no tendrían en cuenta adecuadamente los movimientos/fenómenos que se producen después del lapso 100-8. Una consecuencia sería una predicción menos precisa y, en consecuencia, una mayor cantidad de entropía de la información de los datos residuales necesarios para modificar la predicción y generar una representación adecuada para 100-8 (y/o artefactos más evidentes). Este problema, sin embargo, se resuelve si durante las operaciones de muestreo ascendente del espacio-tiempo, el codificador adopta un núcleo que se extiende más allá de los límites usados en el muestreo descendente. Como ejemplo, el muestreo ascendente realizado para producir la predicción para 101-7 aprovecha como predictores a 102-6 y 102-11; el muestreo ascendente que se realiza para producir la predicción para 100-8 aprovecha como predictores a 101-5, 101-7, 101-9 y 101-12. Esencialmente, el muestreo ascendente se realiza al aprovechar también la información de diferentes lotes, lo que genera efectivamente -cuando se decodifican los lapsos subsecuentes a un nivel de calidad alto - una "onda" de muestreo ascendente (en donde la decodificación de los LOQ inferiores "anticipa" la decodificación de los LOQ superiores): con el fin de reconstruir una representación predicha para un lapso en una posición de muestreo dada y un LOQ dado, el decodificador (o el decodificador simulado usado durante el proceso de codificación) debe procesar los lapsos en posiciones de muestreo progresivamente mayores para los LOQ progresivamente menores. En el ejemplo ilustrado en la Figura 1E, los lapsos predictores pueden pertenecer a lo máximo a un lote vecino, por tanto, limita la "extensión" máxima de la parte inferior de la "onda de decodificación". Son posibles varios ejemplos de posibles núcleos temporales y secuencias de muestreo ascendente, que influyen en las compensaciones entre la latencia de codificación/decodificación, los requisitos de memoria y la eficiencia de compresión.
Ya que las predicciones U se generan mediante el procesamiento de uno o más lapsos de un LOQ inferior que se seleccionan del lote actual, el lote precedente y el lote subsecuente, matemáticamente puede decirse que (para el ejemplo que se ilustra en la Figura 1E):
en dondefes la función de muestreo ascendente.
En particular, este ejemplo genera predicciones U al realizar un muestreo ascendente de un promedio ponderado de planos de elementos que se generan por la compensación de movimiento de cada lapso predictor con respecto a la posición de muestreo del lapso predicho. Matemáticamente, para el caso de ejemplo del lapso 102-6:
En el ejemplo ilustrado en la Figura 1E, los pesos usados para el promedio ponderado de los predictores se basan en la distancia de las posiciones de muestreo de cada predictor desde la posición de muestreo del lapso predicho (de acuerdo con el peso del filtrado lineal - para el caso de dos predictores - y del filtrado cúbico - para el caso de cuatro predictores -). Para los casos en los que faltan uno o más predictores (por ejemplo, debido a la cercanía a una valla) o a uno o más elementos en el promedio ponderado se le asigna un valor por defecto (es decir, elemento "No Disponible", como resultado de una operación de compensación de movimiento), los pesos de los valores restantes se normalizan a 1, en este caso de ejemplo de acuerdo con un método de normalización aditivo (es decir, al sumar a cada peso restante una misma constante). Las operaciones de muestreo ascendente - en este ejemplo se realizan junto con las operaciones de compensación de movimiento -aprovechan el filtrado lineal hasta el LOQ #-2 y el filtrado personalizado (es decir, con núcleos especificados al decodificador por el codificador con parámetros codificados adecuados) para los niveles ascendentes, que se combinan con filtrado de desmezcla y el enmascaramiento sin nitidez. El uso de núcleos más grandes para niveles de calidad superiores, tanto en el tiempo como en el espacio (es decir, más predictores y/o núcleos de muestreo ascendente más grandes), se calibra con el fin de corresponder a la mayor cantidad de correlación que puede encontrarse en niveles de calidad superiores entre los lapsos vecinos y/o dentro de los elementos vecinos de un mismo lapso frente a la cantidad que puede encontrarse en niveles de calidad inferiores entre los lapsos vecinos y/o dentro de los elementos vecinos de un mismo lapso.
Una vez que se dispone de las predicciones U para un nivel de calidad dado, el codificador calcula los "residuales absolutos" R correspondientes a una diferencia entre cualquier lapso dado y un lapso predicho correspondiente. Esto se expresa mediante la siguiente ecuación:
Para el LOQ inferior (y solo para el LOQ inferior):
los residuales absolutos se transforman y cuantifican adecuadamente por el codificador en residuales transformados Tr(R), con el fin de reducir una métrica de entropía de la información antes de una etapa de codificación de entropía sin pérdidas (en el ejemplo que se realiza al particionar los datos en agrupaciones adecuadas - llamadas "mosaicos" - y al aplicar un codificador aritmético, de acuerdo con parámetros calibrados en base al histograma específico de los datos en cada mosaico). El cálculo de los datos residuales reales a codificar ("residuales transformados") no se limita a un conjunto de operaciones aritméticas sobre los residuales totales, sino que comprende funciones específicas que se destinan a mejorar la eficiencia general de compresión/descompresión del algoritmo de codificación/decodificación (por ejemplo, en este ejemplo, descomposición direccional en base al LOQ inferior).
Como consecuencia, si h(·) es la función que corresponde a "invertir" (en la medida de lo posible) todas las operaciones que se realizan sobre los residuales absolutos, pueden decirse que, para cada lapso de cada LOQ:
En particular, para el LOQ inferiorYB = R̂B.
En este ejemplo, para niveles de calidad superiores en la jerarquía, los residuales absolutos se calculan y transmiten en una pluralidad de conjuntos de residuales absolutos, para permitir, incluso para un mismo LOQ, diferentes niveles de compresión y precisión ("Nivel de Detalle", o "LOD") de una representación Y reconstruida en el lado del decodificador.
Una vez que ha calculado y transformado adecuadamente los datos residuales, el codificador genera conjuntos de datos de reconstrucción codificados correspondientes a dichos datos residuales y a la información descriptiva sobre las operaciones a realizar en el lado del decodificador. En un ejemplo, dicha información descriptiva comprende información correspondiente al movimiento (que se aprovecha en el lado del decodificador durante las operaciones de compensación de movimiento), información correspondiente a las características de los lapsos de la jerarquía escalonada (en particular, números de id y parámetros clave para cada lapso de cada LOQ de cada lote) e información correspondiente a operaciones de muestreo ascendente (en particular, números de id de los lapsos a procesar para generar el lapso predicho para un lapso de un escalón superior, parámetros correspondientes a los pesos a usar, parámetros correspondientes a las operaciones de muestreo ascendente - tal como, sin limitación, los núcleos de muestreo ascendente, a usar). Ejemplos adicionales
El ejemplo de codificador ilustrado en la Figura 1E y descrito anteriormente es solo una de las muchas posibles implementaciones de los nuevos métodos jerárquicos escalonados, y debe considerarse como no limitativo. Esencialmente, durante la codificación la señal se convierte por el procesador de señales en escalones con diferentes niveles de calidad (LOQ #0, LOQ #-1, LOQ #-2, ...), que comienza desde un nivel de calidad original (LOQ #0). El número de escalones es arbitrario y puede depender de la aplicación y del ejemplo específica. Un ejemplo calcula todos los LOQ posibles, por ejemplo, cuando la eficiencia de la compresión es el objetivo del ejemplo. En principio, el LOQ más bajo alcanzable se logra cuando todas las dimensiones de la señal (por ejemplo, el número de lapsos, el número de elementos por cada dimensión de un lapso) logran una resolución igual a 1 elemento. En un ejemplo, cuando la resolución de tiempo de un lote logra una resolución de 1 (es decir, en ese LOQ y para ese lote de la señal, solamente hay un lapso), el muestreo descendente continúa mediante el muestreo descendente solamente a lo largo de las dimensiones espaciales; el nivel de calidad (LOQ) inferior se logra cuando la primera de las dimensiones espaciales logra una resolución igual a 1. Para moverse de un escalón a otro, puede aplicarse una relación de muestreo descendente arbitraria a cada una de las dimensiones de la señal. El ejemplo ilustrado anteriormente muestrea descendentemente la dimensión del tiempo con factores de escala arbitrarios y todas las dimensiones espaciales de los lapsos por un factor de 2 (después de haber aplicado hileras y columnas de encuadre). Sin embargo, otras aplicaciones y ejemplos usan también diferentes configuraciones para la generación de escalones de los LOQ, que incluyen diferentes factores de escala para cada dimensión y para cada LOQ. En un ejemplo, tales factores de escala son conocidos tanto por el codificador como por el decodificador. En otro ejemplo, el codificador envía al decodificador la información correspondiente a los factores de escala específicos y a las operaciones de muestreo ascendente a usar en cada caso. En otro ejemplo, dicha información se codifica de acuerdo con un método basado en la herencia, es decir, un valor por defecto para dicha información en un LOQ dado se calcula por el decodificador en base a la información reconstruida para un LOQ inferior a través de operaciones de herencia adecuadas.
Otros ejemplos implementan un método similar de jerarquía escalonada, en donde las posiciones de muestreo de los lapsos de los LOQ inferiores se calculan de acuerdo con diferentes operaciones matemáticas. En un ejemplo, las posiciones de muestreo de los lapsos de los LOQ inferiores incluyen números no enteros.
En otros ejemplos, el codificador selecciona longitudes de los lotes y operaciones de muestreo descendente temporal para mantener la tasa de muestreo constante también para los LOQ inferiores (por ejemplo, un ejemplo aprovecha un método de "relleno de tiempo", al añadir información de relleno cuando el número de lapsos en un lote en un LOQ dado no es un múltiplo del factor de escala para el muestreo descendente temporal). En otros ejemplos, en cambio, la tasa de muestreo también es variable para los LOQ más altos de la señal. En otros ejemplos, el muestreo descendente temporal se realiza solamente más abajo de un LOQ dado, mientras que todos los LOQ por encima de ese LOQ dado tienen la misma tasa de muestreo.
En otros ejemplos, la combinación de una pluralidad de lapsos de un LOQ dado con el fin de generar un lapso de un LOQ inferior comprende operaciones que son diferentes de las descritas anteriormente, y que se seleccionan de otros métodos de muestreo descendente y compensación de movimiento adecuados, en el arte conocido.
En el ejemplo descrito anteriormente, las operaciones de muestreo descendente aprovechan la información de estimación de movimiento con el fin de tener en cuenta adecuadamente el movimiento entre dos o más lapsos a lo largo de la dimensión del tiempo. La razón por la que esto puede ser útil para ciertas señales basadas en el tiempo es que, desde el punto de vista de la teoría de la señal, el muestreo temporal puede encontrarse más abajo del límite de Nyquist. En el ejemplo de las señales de video, 25 / 30 fps es un ejemplo de tasas de muestreo típicas en la actualidad, mientras que varios experimentos demostraron que los observadores humanos pueden percibir fácilmente hasta 300 fps para el tipo de movimientos que típicamente se exhiben en los videos. Esto significa que las señales de video comúnmente muestrean la dimensión del tiempo más abajo del límite de Nyquist. En tales casos, un enfoque específico que se adopta solo a lo largo de la dimensión del tiempo (tal como la estimación de movimiento) reduce los daños que se introducen por un muestreo insuficiente, esencialmente "realineando" los lapsos con el fin de explotar mejor su correlación. La información descriptiva sobre el movimiento se usa para guiar el muestreo descendente temporal a lo largo de los niveles de calidad escalonados. La estimación de movimiento es una fase opcional que se adopta por el codificador: los movimientos lentos, las tasas de muestreo altas o los movimientos muy complejos son ejemplos de cuándo la adopción de la estimación y la compensación de movimiento puede ser menos eficiente o incluso peor que solo generar los LOQ escalonados sin dar ningún " tratamiento preferencial" a la dimensión del tiempo. Para las porciones de la señal en las que las condiciones adecuadas indican que la estimación de movimiento no es útil, el codificador descarta la información de movimiento y procede con un muestreo descendente simétrico (por ejemplo, en un ejemplo, un submuestreo trilineal simple).
Otro ejemplo no introduce hileras y columnas de encuadre en los lapsos de los LOQ inferiores. En otro ejemplo, la cantidad de encuadre que se introduce se correlaciona con la información de movimiento.
Otros ejemplos usan diferentes operaciones para el muestreo descendente en sí. En un ejemplo, el codificador aplica diferentes operaciones de muestreo descendente (incluidas operaciones no lineales) para generar lapsos de un LOQ inferior y aplica diferentes operaciones de muestreo ascendente, identificando un conjunto de operaciones de muestreo descendente y operaciones de muestreo ascendente que minimiza una métrica de entropía de la información de datos residuales. En uno de tales ejemplos, el codificador aprovecha un método de filtrado ajustado, que modifica selectivamente ("ajustar") los resultados de una operación de muestreo descendente lineal y optimiza los ajustes en base a la entropía que resulta de los datos residuales.
En otro ejemplo, el codificador realiza un muestreo descendente de cada lapso del nivel de calidad superior antes de combinarlos en un lapso del nivel de calidad inferior. En otro ejemplo, el codificador realiza un muestreo descendente de cada lapso del nivel de calidad superior, aplica la compensación de movimiento (lo que introduce el encuadre) y combina los resultados en un lapso del nivel de calidad inferior. En otro ejemplo, las operaciones de muestreo descendente se realizan junto con operaciones de compensación de movimiento (es decir, durante el proceso de muestreo descendente, las operaciones de compensación de movimiento producen representaciones de muestreo descendente de los lapsos con compensación de movimiento).
En otro ejemplo, cuando los pesos en un promedio ponderado necesitan normalizarse para hacer su suma igual a 1 (por ejemplo, durante los promedios ponderados que incluyen valores "No Disponibles", y/o cuando se generan lapsos predichos cercanos al inicio o al final de un grupo), el codificador aplica una normalización multiplicativa (por ejemplo, al multiplicar todos los pesos por una misma constante) en lugar de una normalización aditiva (por ejemplo, al añadir una misma constante a todos los pesos).
En otro ejemplo, cuando se calculan los lapsos predichos, el codificador primero muestrea ascendentemente cada uno de los lapsos del predictor del nivel de calidad inferior, entonces los compensa por movimiento y entonces combina los resultados. En otro ejemplo, el codificador primero compensa el movimiento de cada lapso, entonces los combina y finalmente muestrea ascendentemente los resultados. En otro ejemplo, las operaciones de muestreo ascendente se realizan junto con las operaciones de compensación de movimiento (es decir, durante el proceso de muestreo ascendente, las operaciones de compensación de movimiento producen representaciones muestreadas ascendentemente de lapsos con compensación de movimiento).
En otro ejemplo, las operaciones de muestreo ascendente se seleccionan de un conjunto que incluye, sin limitación, filtros lineales, filtros cúbicos, filtros Lanczos, filtros bilaterales, filtros vecinos más cercanos.
Más ampliamente, diferentes ejemplos usan diferentes operaciones y filtrado en operaciones de muestreo ascendente. Las operaciones de muestreo ascendente producen una predicción para la configuración de los elementos de los lapsos de la señal en el LOQ superior. En un conjunto de ejemplos, después del muestreo ascendente (es decir, la operación que aumenta la resolución), se realiza una etapa adicional de operaciones de filtrado (tanto en el lado del codificador como en el del decodificador) con el fin de mejorar la calidad de la predicción (por ejemplo, por medio de ejemplos, mejorar los bordes nítidos que se han suavizado durante el muestreo descendente o recuperar los detalles que se han desenfocado durante el muestreo descendente). Un ejemplo para esta etapa se describe en solicitudes de patentes previas de los mismos autores y se denomina como operación de "desmezcla". Otro ejemplo es aprovechar una operación de enmascaramiento sin nitidez. En otros ejemplos, las operaciones de muestreo ascendente incluyen operaciones no lineales en cascada (por ejemplo, secuencias adecuadas de operaciones seleccionadas de una lista que incluye, sin limitación, filtros lineales, filtros cúbicos, filtros de desmezcla, filtros de enmascaramiento sin nitidez, filtros bilaterales, filtros fractales, filtros de vecinos más cercanos, etc.), o como se especifica mediante parámetros adecuados o de acuerdo con una secuencia por defecto predeterminada conocida tanto por el codificador como por el decodificador. En otro ejemplo, el codificador envía parámetros de muestreo ascendente al decodificador, en donde tales parámetros corresponden a las operaciones de muestreo ascendente específicas a usar.
En otro ejemplo, las operaciones de compensación de movimiento se realizan junto con las operaciones de muestreo ascendente. En otros ejemplos, las operaciones de compensación de movimiento aprovechan las operaciones en punto flotante, que incluyen las transformaciones que dan cuenta de movimientos complejos tales como el zoom, la rotación, el desplazamiento y/o el cambio de perspectiva. En una de tales ejemplos, las operaciones de compensación de movimiento incluyen transformar un conjunto de coordenadas en coordenadas homogéneas, realizar una multiplicación en punto flotante de dichas coordenadas homogéneas por una matriz adecuada y la renormalización del vector resultante en coordenadas homogéneas. En otro ejemplo, cuando se combinan diferentes lapsos de un nivel de calidad inferior en un lapso de un nivel de calidad superior, el codificador los combina a través de operaciones de promedio ponderado donde los pesos dependen de la distancia de las posiciones de muestreo, en base a un núcleo lineal. En otro ejemplo, tales pesos dependen de la distancia de las posiciones de muestreo, en base a un núcleo cúbico. En otros ejemplos, se adoptan otros núcleos. En otro ejemplo, dichos pesos se generan al menos en parte sobre la información de movimiento (al tener en cuenta el hecho de que, si ha tenido lugar un movimiento sustancial, la cantidad de información correlacionada en un lapso diferente será relativamente menor). En otro ejemplo, dichos parámetros de peso se generan al menos en parte sobre parámetros correspondientes a las características de cada uno de los lapsos (por ejemplo, para dar cuenta adecuadamente de los lapsos que se encuentran relativamente fuera de foco, etc.). En otro ejemplo, dichos pesos se calculan por el codificador con el fin de reducir una cantidad de entropía de los datos residuales, y se envían al decodificador a través de la información descriptiva correspondiente.
En otros ejemplos, el número de predictores que se procesan con el fin de generar un lapso predicho a un nivel de calidad superior es arbitrario y se envía al decodificador con la información descriptiva. En uno de dichos ejemplos, el codificador optimiza el número de predictores y parámetros de pesos que se aprovechan para generar cada lapso predicho a través de un método iterativo que se destina a optimizar una métrica de entropía de la información adecuada para los datos de reconstrucción y/o una métrica de calidad adecuada para las representaciones reconstruidas.
En otro ejemplo, los valores por defecto para el número de predictores que se procesan incluyen filtrado temporal lineal (es decir, uno o dos lapsos de predictor) hasta un LOQ dado y filtrado temporal cúbico (es decir, hasta cuatro lapsos de predictor) desde un LOQ dado hasta el LOQ superior. En otro ejemplo, para uno o más lapsos de un LOQ dado de un lote dado, los lapsos predictores del LOQ inferior pertenecen no solo al lote dado y a un lote vecino, sino también al lote subsecuente al lote vecino (es decir, el conjunto de predictores para un lapso dado también puede provenir de tres lotes, no solo de dos como en el ejemplo descrito anteriormente). En otros ejemplos, el codificador asigna marcadores de sincronización adecuados a conjuntos de datos de reconstrucción codificados, lo que permite a un procesador de señales crear un flujo de datos y/o un archivo que comprende solamente conjuntos específicos de datos de reconstrucción codificados en una secuencia específica, lo que permite la reconstrucción de lapsos específicos en una secuencia de decodificación específica.
En otros ejemplos, cuando se generan datos codificados, el codificador introduce bits aleatorios de relleno antes de uno o más marcadores de sincronización; subsecuentemente, el codificador encripta la información del encabezado y/o la información del marcador de sincronización de acuerdo con un método de encriptación adecuado.
En otros ejemplos, el codificador procesa residuales de cada uno de los LOQ y genera residuales transformados de acuerdo con métodos de "descomposición direccional" a lo largo de la dimensión espacial (sustancialmente al agrupar conjuntos de residuales vecinos para un mismo lapso y codificar un parámetro correspondiente a la diferencia entre su valor promedio y su valor promedio predicho, un parámetro correspondiente a su inclinación horizontal, un parámetro correspondiente a su inclinación vertical, un parámetro correspondiente a su inclinación diagonal, y cuantificar cada parámetro por medio de métodos de cuantificación adecuados) y/o métodos de "descomposición temporal" a lo largo de la dimensión temporal (esencialmente, agrupar los conjuntos correspondientes de residuales que pertenecen a diferentes lapsos subsecuentes de un mismo LOQ controlado por un mismo lapso en un LOQ inferior y codificar un parámetro correspondiente a su promedio y parámetros correspondientes a las inclinaciones temporales). En otros ejemplos, para cada uno de los lotes, el codificador procesa residuales absolutos de cada uno de los LOQ, lo que genera un conjunto de residuales de elementos de soporte (por falta de bibliografía se define como "plano de soporte" para un LOQ dado de un lote dado); el codificador genera entonces conjuntos de residuales relativos, correspondientes a una diferencia entre los residuales absolutos y los residuales del elemento de soporte. Esto se describe con más detalle con referencia a la Figura 3.
En otros ejemplos, el codificador procede a la cuantificación y codificación de los residuales absolutos sin transformar los residuales.
En otro ejemplo, el codificador cuantifica los residuales de acuerdo con esquemas de cuantificación que son específicos para cada conjunto de residuales, y envía al decodificador la información descriptiva correspondiente a los métodos de descuantificación que deben usarse. En un ejemplo, los esquemas de cuantificación disponibles comprenden, sin limitación, esquemas con diferentes zonas muertas y una etapa de cuantificación constante (para los cuales el codificador especifica parámetros correspondientes a la zona muerta y/o la longitud de la etapa de cuantificación), esquemas con diferentes zonas muertas y etapas de cuantificación variables (para los que el codificador especifica los parámetros correspondientes a la zona muerta y/o una función que permite calcular todas las etapas de cuantificación), esquemas con cuantificación en diferentes espacios de color (por ejemplo, a manera de ejemplo, espacios no lineales tal como el espacio gamma), etc. En otro ejemplo, la descuantificación para niveles específicos de calidad (por ejemplo, el nivel de calidad superior) comprende además métodos de reconstrucción estadística (por ejemplo, tramado, descuantificación estadística, reconstrucción y combinación de una capa transitoria, etc.), para representar mejor que los residuales originales antes de la cuantificación se distribuyeron a lo largo de los intervalos de cuantificación.
En otros ejemplos, ya que las decisiones de cuantificación afectan las decisiones tomadas previamente en términos de optimización global de la tasa de bits (que incluye la decisión de la longitud del lote dentro de un grupo), el codificador realiza lazos con el fin de lograr esencialmente la optimización global. En un ejemplo, los cambios en los umbrales de cuantificación también afectan al cálculo residual y a las transformaciones (por ejemplo, la generación de elementos de soporte/cadenas de soporte).
En otros ejemplos, el codificador genera diferentes conjuntos de residuales y asigna un parámetro descriptivo a cada conjunto, dicho parámetro corresponde a un nivel de importancia del correspondiente conjunto de residuales con el fin de reconstruir una representación de la señal con alta calidad percibida (por ejemplo, un ejemplo asigna un mayor número de bits - por ejemplo, etapas de cuantificación más finos - a los residuales más importantes y un menor número de bits - por ejemplo, etapas de cuantificación más gruesas - a los residuales menos importantes).
En otros ejemplos, los residuales se codifican de acuerdo con un método basado en herencia, por ejemplo, mediante la predicción ("herencia") en base a los datos residuales a un nivel de calidad inferior, lo que permite la "finalización" de los residuales controlados a un LOQ superior por medio de la información residual adecuada en un LOQ inferior (por ejemplo, porciones de la señal reconstruida donde el codificador define a un LOQ inferior que los datos residuales para esa porción de la señal en todos los LOQ subsecuentes serán iguales a cero, es decir, que las predicciones serán suficientemente precisas sin requerir transmitir enmiendas).
En otros ejemplos, la codificación de entropía de residuales aprovecha una combinación de métodos que comprende al menos uno de los siguientes métodos: Codificación Huffman, codificación de longitud de ejecución, codificación aritmética.
En otros ejemplos, los LOQ inferiores de la señal y/o la información del marcador de sincronización se encriptan por medio de métodos de encriptación adecuados. De esta manera, a pesar de la potencia de procesamiento relativamente limitada necesaria en un decodificador para encriptar/desencriptar una porción relativamente pequeña del flujo de datos, y aun así la transmisión de datos de la señal es muy segura, ya que no hay una correlación evidente entre porciones específicas del flujo de datos y porciones específicas de la señal. En otro ejemplo, los LOQ inferiores se protegen al aprovechar las técnicas de redundancia adecuadas, para garantizar que, incluso en presencia de un canal de comunicación muy ruidoso, el decodificador será capaz de reconstruir adecuadamente una representación de la señal al menos en un nivel de calidad bajo.
Los métodos descritos en la presente descripción también pueden aplicarse en un entorno de baja latencia, tal como, por ejemplo, la videoconferencia. En un ejemplo, el codificador genera una "jerarquía móvil" de lapsos, que predice nuevos lapsos a un LOQ dado para reconstruirse en base solamente a los lapsos de los LOQ inferiores con posiciones de muestreo inferiores (es decir, precedentes en el tiempo). En otro ejemplo de baja latencia, los residuales para un lapso dado se transforman en base a la información de residuales de los lapsos precedentes del mismo nivel de calidad.
Ejemplo de descripción de un decodificador
Un procesador de señales que se configura como un decodificador (de ahora en adelante "el decodificador") recibe los conjuntos de datos de reconstrucción y reconstruye una representación de la señal original.
Ya que, como se mencionó, el codificador simula las operaciones realizadas en el lado del decodificador con el fin de generar los datos de reconstrucción adecuados, la Figura 1E también ilustra la secuencia de productos intermedios y productos finales generados por un decodificador.
La secuencia de operaciones de reconstrucción que se realizan por un decodificador que aprovecha un método jerárquico escalonado puede seguir varios patrones diferentes, en base al número de predictores de un LOQ inferior que se aprovechan para producir una predicción de un lapso en un LOQ superior.
Para el ejemplo descrito en la presente descripción, el decodificador recibe los datos codificados para todo un lote (es decir, se necesita al menos un lote de retardo en el lado del decodificador para comenzar el proceso de reconstrucción). Dichos datos codificados comprenden los datos correspondientes a la información descriptiva y los datos correspondientes a los conjuntos de datos de reconstrucción.
El decodificador comienza mediante la recepción/recuperación de un flujo de datos y la búsqueda/análisis de los metadatos del marcador de sincronización con el fin de identificar qué lapsos (potencialmente también de un lote precedente, si el lote que se recibe no es el primero de su grupo) pueden reconstruirse por medio de los datos codificados disponibles, así como también el lapso correcto en el LOQ correcto con el fin de comenzar el proceso de decodificación. Entonces, el decodificador realiza la decodificación de entropía con el fin de generar la información correspondiente a una representación del LOQ más bajo del lote.
Al comenzar desde los lapsos del LOQ más bajo, el decodificador realiza las mismas operaciones que fueron simuladas por el codificador con el fin de generar los datos de reconstrucción. En particular, el decodificador -LOQ por LOQ - procesa lapsos de un LOQ inferior con el fin de generar lapsos predichos para un LOQ superior, decodifica los datos de reconstrucción (descuantificación y destransformación de los residuales transformados que se reciben) para generar las representaciones de los residuales absolutos y finalmente combina los lapsos predichos y los residuales absolutos correspondientes, que reconstruyen las representaciones Y para los lapsos que pueden reconstruirse en base a los lapsos predictores disponibles a un LOQ inferior y los datos codificados disponibles. Como se describió anteriormente, las predicciones para los lapsos de un lote dado también pueden aprovechar los lapsos del predictor de los lotes vecinos, lo que implementa efectivamente un método de "onda de decodificación".
Matemáticamente:
En particular, consistentemente con lo que se describió para el ejemplo del codificador, también el ejemplo del decodificador genera predicciones U al realizar un muestreo ascendente de un promedio ponderado de planos de elementos que se generan por compensación de movimiento de cada lapso del predictor con respecto a la posición de muestreo del lapso predicho. Las mismas peculiaridades de tales operaciones descritas para un ejemplo del codificador (por ejemplo, la normalización de los pesos, valor por defecto "No Disponible", etc.) también se aplican a un ejemplo del decodificador.
Matemáticamente, para el caso de ejemplo del lapso 102-6:
Como se muestra en la fórmula, el decodificador debe, por ejemplo, esperar a recibir los datos codificados con relación al lote 2 antes de ser capaz de reconstruir el lapso 102-6, ya que, como se muestra por las fórmulas anteriores, la predicción para el lapso 102-6 también se basa en la representación que se reconstruye del lapso 103-11.
Una vez que se reconstruyen los lapsos de un LOQ adecuado, el decodificador genera los datos para presentarlos a un dispositivo de visualización y transmite dichos datos a un dispositivo de visualización. En un ejemplo, cuando el decodificador necesita visualizar un LOQ inferior al LOQ superior, con el fin de tener en cuenta las duraciones potencialmente diferentes de cada lapso, crea una señal con la misma tasa de muestreo que la original (es decir, el LOQ superior), al crear para cada lapso tantas réplicas como su duración de tiempo, que comienza desde la posición de tiempo indicada por su número de imagen.
En un ejemplo, el decodificador recibe información descriptiva sobre la estructura del lote, que incluye los números de ID de los lapsos que se encuentran presentes en cada nivel de calidad, la duración de tiempo de cada lapso, los números de ID del(de los) lapso(s) predictor(es) al nivel de calidad inferior a usar para generar cada predicción y los parámetros a usar durante las operaciones que se realizan para generar cada predicción. En otro ejemplo, uno o más lapsos del predictor de un nivel de calidad inferior - dichos lapsos se procesan para generar la predicción para un lapso dado en un nivel de calidad superior de un lote dado - también pueden pertenecer a un lote vecino.
En un ejemplo, el decodificador puede detener las operaciones de decodificación en los diferentes LOQ para diferentes lapsos, por ejemplo, en dependencia de los datos codificados que se recibieron (por ejemplo, debido a las congestiones de ancho de banda) y/o en las restricciones de decodificación en tiempo real y/o en otras restricciones (por ejemplo, minimizar el consumo de energía de procesamiento, minimizar el consumo de energía, minimizar el ancho de banda absorbido, maximizar la velocidad de reproducción, etc.).
En otro ejemplo, en base a los parámetros adecuados y/o comandos de interfaz del usuario, el decodificador puede decodificar solamente las porciones que se seleccionan de cada lapso, lo que implementa efectivamente una funcionalidad de zoom. En un ejemplo, los conjuntos de datos residuales para un LOQ dado se particionan en agrupaciones ("mosaicos"), cada uno de los mosaicos corresponde sustancialmente a los datos residuales que se procesan por un decodificador con el fin de reconstruir una porción dada (por ejemplo, una porción espacial) de la señal en un LOQ dado. A partir de un nivel de calidad hacia arriba, el decodificador recibe solo mosaicos específicos para una secuencia de uno o más lapsos y, en consecuencia, reconstruye en el nivel de calidad dado solo porciones espaciales específicas de dichos lapsos, lo que envía solo una porción espacial de la señal al dispositivo de visualización. Debe señalarse que las operaciones de reconstrucción (por ejemplo, las operaciones de predicción, etc.) todavía aprovechan elementos de la señal en un LOQ inferior más allá de los límites de las porciones que se reconstruyen. En otras palabras, en tales ejemplos, el decodificador recibe datos de reconstrucción correspondientes solamente a porciones espaciales específicas ("mosaicos") de los conjuntos de residuales reconstruidos que serían necesarios para reconstruir la señal completa en el LOQ dado. En consecuencia, el decodificador reconstruye solo una secuencia de porciones de los conjuntos de residuales reconstruidos y, por lo tanto, reconstruye una representación de la señal en el LOQ dado solo para una porción de la señal.
En un ejemplo, una señal de alta resolución se almacena de acuerdo con un método basado en escalones. Un decodificador que se conecta a un dispositivo de visualización con una resolución de pantalla relativamente baja solicita a un procesador de señales una representación de la señal y recibe un flujo de datos que consiste en datos codificados que permiten al decodificador reconstruir la señal hasta un primer nivel de calidad, dicho primer nivel de calidad es inferior al nivel de calidad superior disponible para la señal. En respuesta a una entrada (por ejemplo, una entrada de la interfaz del usuario), el decodificador solicita al procesador de señales una representación de mayor calidad de una porción espacial específica de la señal. El decodificador recibe un flujo de datos que consiste de datos codificados que permiten al decodificador reconstruir solo una porción espacial específica ("mosaico") de la señal de acuerdo con un segundo nivel de calidad, en donde dicho segundo nivel de calidad es superior al primer nivel de calidad. De esta manera, el decodificador implementa funcionalidades de zoom eficientes, al recibir y decodificar sustancialmente solo las porciones de la señal que se van a visualizar (y, por tanto, minimizar el ancho de banda que se consume y la potencia de procesamiento necesaria para decodificar la señal).
Ejemplos adicionales
Queremos enfatizar nuevamente que la secuencia de operaciones de decodificación ilustradas en el ejemplo de la Figura 1E, así como también las operaciones específicas que se usan, deben entenderse como no limitativas. Los expertos en el arte entenderán que todos los diferentes ejemplos ilustrados cuando se describen variaciones en el ejemplo del codificador corresponden directamente a variaciones en el ejemplo del decodificador.
Por último, los ejemplos ilustrados en la Figura 1E se enfocan en el caso de ejemplo de las señales de video, pero los mismos enfoques son fácilmente aplicables a dominios muy diferentes, así como también a tipos de señales muy diferentes. En particular, los métodos que se ilustran en la presente descripción son adecuados para cualquier tipo de señales multidimensionales (que incluyen sin limitación las señales de sonido, las señales de sonido multicanal, las imágenes, las imágenes bidimensionales, las señales de vídeo, las señales de vídeo multivistas, las señales de vídeo 3D, las señales plenópticas, las señales multiespectrales, las señales volumétricas, las señales de vídeo volumétricas, las señales de imágenes médicas, las señales con más de cuatro dimensiones, etc.).
Por ejemplo, un ejemplo codifica y decodifica las señales de vídeo 3D de acuerdo con un método jerárquico escalonado, en donde el codificador genera las correspondientes jerarquías escalonadas para los dos canales de vídeo. Los conjuntos de información descriptiva sobre el movimiento para los correspondientes lapsos de los dos canales de video también se codifican de acuerdo con los datos del elemento de soporte y los datos residuales para los correspondientes lapsos de los dos canales de video se codifican de acuerdo con un conjunto de datos residuales del elemento de soporte (al aplicar esencialmente el método del "plano de soporte" también a través de los canales, la compensación de movimiento de los datos residuales del elemento de soporte a través de los dos canales de acuerdo con la información descriptiva adecuada).
Otro ejemplo codifica y decodifica las señales de audio multicanal de acuerdo con un método jerárquico escalonado, en donde los lapsos de cada uno de los canales se representan como conjuntos de elementos (en un ejemplo, un valor de amplitud promedio y un valor de tono promedio para el lapso), y los datos residuales para los lapsos correspondientes de los diferentes canales de audio se codifican de acuerdo con un conjunto de datos residuales del elemento de soporte, "compensación de movimiento" (es decir, aplicar las operaciones que corresponden esencialmente a la realineación de lapsos correlacionados) los datos residuales del elemento de soporte a través de canales de audio de acuerdo con la información descriptiva adecuada (por tanto, tiene en cuenta las diferentes posiciones de tiempo de un mismo sonido en diferentes canales - esencialmente en base a la posición 3D de la fuente de sonido frente al micrófono).
Otro ejemplo codifica y decodifica vastos datos volumétricos, aplicando los mismos métodos que se ilustran para la dimensión del tiempo de las señales de video (por ejemplo, la partición en lotes, la onda de decodificación, los mosaicos de datos residuales, los planos de soporte, etc.) a una más de las dimensiones de la señal.
Otro ejemplo codifica y decodifica el video volumétrico, aplicando los mismos métodos que se ilustran para secuencias de lapsos bidimensionales a secuencias de lapsos tridimensionales.
Otros ejemplos aplican métodos descritos en la presente descripción también a señales no basadas en el tiempo. En un ejemplo que opera con señales de entrada no basadas en el tiempo, el codificador procesa una secuencia de cortes bidimensionales (por ejemplo, procedentes de un escáner CAT), que reconstruye y codifica una representación jerárquica volumétrica de la señal.
Los métodos de jerarquía escalonada descritos hasta ahora son de por sí, sin pérdidas o con pérdidas. Pueden usarse ejemplos para codificar, transmitir y decodificar eficientemente señales digitales. Sin embargo, en otros ejemplos, los objetivos del codificador son diferentes de la eficiencia de la compresión y comprenden, sin limitación, la decodificación multiescala, la transmisión adaptativa, los objetivos de procesamiento de la señal tales como la eliminación de ruido, la mejora de señales, la reducción de artefactos, el desentrelazado, el aumento de la resolución ("superresolución"), la medición de la calidad de una representación, la identificación de contenido, la visión artificial, la encriptación de la señal (por ejemplo, las comunicaciones seguras), etc. Por ejemplo, el enfoque jerárquico espacio-tiempo conjunto es capaz de separar de los componentes del núcleo de la señal la mayoría de los artefactos molestos procedentes de los fenómenos que se relacionan con el tiempo ("información transitoria", que incluye el ruido, el grano de la película, la información transitoria real de una escena - que puede ser altamente entrópica pero relativamente poco importante para un observador humano -, etc.). También pueden identificarse y eliminarse artefactos de timbre y artefactos de bloque (o separarse del núcleo de la señal) por medio de ejemplos que aprovechan los métodos descritos en la presente descripción. En un ejemplo, el Y que se reconstruye a un nivel de calidad adecuado se codifica además con otros métodos, en configuraciones específicas también junto con metadatos adecuados (por ejemplo, las propiedades estadísticas de parámetros de la información transitoria).
La Figura 1F es un diagrama de ejemplo que ilustra además el ejemplo del codificador descrito en la Figura 1E. El procesador de señales que implementa el codificador recibe la secuencia 100 (X<0>) de N lapsos en el LOQ #0. En el caso de ejemplo particular del grupo 1 de la Figura 1A, el codificador recibe la secuencia de 13 lapsos 100-1, 100-2, 100-3, ..., 100-13.
El codificador también recibe información descriptiva sobre el movimiento de los objetos a través de los lapsos de la señal (no se ilustra en la Figura con el fin de preservar la legibilidad; en este ejemplo, dicha información descriptiva sobre el movimiento se recibe y procesa por todos los bloques aparte de los bloques de la Calculadora de Residuos).
El muestreador descendente 110-0 muestre descendentemente la secuencia 100, generando la secuencia 101 (X<-1>) en el LOQ #-1. Matemáticamente, de nuevo llamemos el lapso de LOQ K, lote L y posición de muestreo t. En el ejemplo, cada uno de los lapsos 101-t se obtiene mediante el muestreo descendente de la combinación de una pluralidad de lapsos correspondientes al nivel de calidad superior. Más específicamente, los lapsos del nivel de calidad superior se combinan al realizar un promedio ponderado de sus representaciones con compensación de movimiento, en donde la compensación de movimiento se realiza en base a (es decir, con relación a) la posición de muestreo del lapso resultante en el nivel de calidad inferior. Por ejemplo:
Tal proceso de muestreo descendente se repite por el codificador hasta que se genera(n) el(los) lapso(s) 100+B del nivel de calidad inferior del LOQ #B.
Una vez que el codificador ha generado la representación X<B>en el LOQ #B más bajo, el codificador comienza la generación de datos codificados que pueden permitir a un decodificador reconstruir las representaciones adecuadas de la jerarquía escalonada, en donde es la representación reconstruida de cada lapso . Mientras que, para la fase de muestreo descendente del proceso, el codificador podría haber operado al procesar solamente la secuencia de lapsos en el LOQ #0 de un único lote (por ejemplo, lote 1), para la fase de "decodificación simulada y cálculo de datos de reconstrucción" el codificador requiere todos de los datos que son necesarios para generar predicciones, y en consecuencia también los datos pertenecientes al lote subsecuente. Ya que, en principio, esto podría generar largos retardos de codificación y/o complejidad computacional, el ejemplo ilustrado limita la posibilidad de tener predictores de lotes vecinos solamente al lote inmediatamente subsecuente. De esta manera, con el fin de codificar con éxito el lote 1 de la señal, el codificador "solo" necesita recibir la secuencia original de los lapsos en el LOQ #0 para el lote 1 y el lote 2. Para uno o más lapsos en el nivel inferior, y solo para esos, el codificador calcula directamente el residual a través de la calculadora de residuales 120+B que asume U = 0, y genera los datos de reconstrucción 180+B. El codificador simula entonces las operaciones de decodificación que se realizarán en el lado del decodificador a través del decodificador simulado 190+B, lo que genera la representación 1000-B (Y<B>). Esto se expresa matemáticamente como sigue:
donde h() es la función que "invierte" (al menos en la medida de lo posible) las operaciones Tr() que se realizan por el codificador en X<B>(por ejemplo, a manera de ejemplo, la transformación de descomposición seguida por la cuantificación). En base a la adecuación de la representación Y<B>(de acuerdo con una métrica de calidad adecuada) y en la entropía de la información de los Datos de Reconstrucción 180+B (de acuerdo con una métrica de entropía de la información adecuada), el codificador decide si proceder con el siguiente nivel de calidad o iterar la generación de los datos de reconstrucción 180 B de acuerdo con diferentes operaciones y parámetros.
Para los lapsos de los niveles de calidad subsecuentes (superiores) en la jerarquía, para cada lapso el codificador genera (a través de los Decodificadores Simulados 190+B, ..., 191, 190) predicciones U. En particular, los bloques de Decodificadores Simulados realizan las operaciones de muestreo ascendente adecuadas, al aprovechar uno o más lapsos del nivel de calidad inferior como "predictores".
Al simular las operaciones de predicción, el codificador es capaz de generar subsecuentemente los datos residuales que necesitará el decodificador con el fin de modificar las predicciones y reconstruir una representación adecuada de la señal. Por ejemplo, al comparar la representación 101 (X<-1>) con la predicción 111 (U<-1>), la calculadora de residuales 121 genera los residuales absolutos 131 (R<-1>). Los residuales absolutos 131 se procesan adicionalmente por el generador de datos de reconstrucción 171, que calcula los datos residuales 181. El decodificador simulado 181 procesa los datos de reconstrucción 181, que genera la representación 1001 (Y<-1>). De nuevo, en base a la adecuación de la representación 1001 de acuerdo con una métrica de calidad y en base a la adecuación de la entropía de la información de los Datos de Reconstrucción 181 de acuerdo con una métrica de entropía de la información, el decodificador decide si procede con el siguiente nivel de calidad (superior), calcular las predicciones 110 (U<0>), o iterar la generación de los Datos de Reconstrucción 181 de acuerdo con diferentes operaciones y parámetros.
Cuando se han generado todos los datos de reconstrucción, el codificador procede con la etapa de codificación de entropía, lo que genera conjuntos de datos codificados y metadatos adecuados (por ejemplo, encabezados, marcadores de sincronización, etc.).
La Figura 1G es un diagrama de ejemplo que ilustra además el ejemplo del decodificador descrito en la Figura 1E.
El procesador de señales que se configura como un decodificador recibe los datos de reconstrucción e información descriptiva que permite reconstruir un conjunto de lapsos 1000 al más alto nivel de calidad. De nuevo, con el fin de facilitar la legibilidad, la figura no muestra explícitamente la información descriptiva que se recibe sobre el movimiento, que en este ejemplo se recibe y procesa por todos los bloques aparte de los bloques Reconstructores 1090, 1091, ..., 1090+B.
Al comenzar desde el nivel de calidad inferior y proceder LOQ por LOQ, el decodificador realiza las mismas operaciones que fueron simuladas por el codificador con el fin de generar los datos de reconstrucción. En particular, el decodificador procesa los datos de reconstrucción 180+B (es decir, los datos de reconstrucción para el nivel inferior) a través del decodificador de residuales 1020+B, lo que genera residuales estimados 1030+B. Dichos residuales estimados 1030+B se combinan con la predicción por defecto 110+B (U<B>=0), lo que genera uno o más lapsos 1000+B (Y<B>) en el nivel de calidad inferior. La representación 1000+B (Y<B>) se procesa entonces por la calculadora de predicción 1010+B, lo que genera la predicción 110+B+1 (U<b+1>). El decodificador procede entonces - LOQ por LOQ, hasta los lapsos del nivel de calidad superior que puede reconstruirse en base a los datos disponibles - en el proceso de generar lapsos predichos de un LOQ superior, la decodificación de los datos de reconstrucción para generar representaciones de los residuales absolutos y la combinación de los lapsos predichos y los correspondientes residuales absolutos, por lo tanto, se reconstruyen las representaciones Y en el nivel de calidad superior.
En otros ejemplos, con el fin de hacer frente a circunstancias específicas (por ejemplo, latencia de decodificación, memoria de decodificación disponible, etc.), el decodificador, en lugar de realizar el proceso de reconstrucción LOQ por LOQ, reconstruye un lapso dado de un nivel de calidad superior tan pronto como recibe los datos codificados necesarios y tan pronto como acaba de reconstruir los lapsos del nivel de calidad inferior que son necesarios para generar la predicción para el lapso dado. De esta manera, en lugar de proceder "escalón por escalón", el proceso de reconstrucción sigue moviéndose hacia arriba y hacia abajo a través de diversos niveles de calidad.
En un ejemplo, los Decodificadores de Residuos 1020+B, 1021, 1020 generan residuales absolutos estimados 1030+B, ..., 1031, 1030 al decodificar también la información de soporte adecuada para los residuales ("planos de soporte"), en donde un mismo plano de soporte se aprovecha para generar residuales absolutos para una pluralidad de lapsos de un LOQ dado. En otros ejemplos, los residuales absolutos se calculan al aplicar también transformadas de descomposición inversa (por ejemplo, que comprenden, sin limitación, la descomposición direccional inversa y/o la descomposición temporal inversa).
En otros ejemplos, el decodificador descuantifica los residuales de acuerdo con los esquemas de cuantificación que son específicos para cada conjunto de residuales, en base al menos en parte en la información descriptiva que se recibe correspondiente a los métodos de descuantificación que deben usarse. En un ejemplo, los esquemas de cuantificación disponibles comprenden, sin limitación, esquemas con diferentes zonas muertas y una etapa de cuantificación constante (para los que el codificador especifica los parámetros correspondientes a la zona muerta y/o la longitud de la etapa de cuantificación), los esquemas con diferentes zonas muertas y etapas de cuantificación variables (para los que el codificador especifica los parámetros correspondientes a la zona muerta y/o una función que permite calcular todas las etapas de cuantificación), los esquemas con cuantificación en diferentes espacios de color (por ejemplo, a manera de ejemplo, espacios no lineales tal como el espacio gamma), en otros ejemplos, la descuantificación de los residuales para niveles de calidad específicos (por ejemplo, el nivel de calidad superior) comprende además métodos de reconstrucción estadística (por ejemplo, tramado, descuantificación estadística, reconstrucción y combinación de un capa transitoria, etc.), para representar mejor que los residuales originales antes de la cuantificación se distribuyeron a lo largo de los intervalos de cuantificación.
En un ejemplo, el decodificador recibe información descriptiva correspondiente a la estructura de la jerarquía (por ejemplo, características de cada lapso de cada LOQ, etc.), lo que le permite calcular qué lapsos pueden generarse dados los datos de reconstrucción disponibles.
En un ejemplo, las Calculadoras de Predicción 1010+B, ..., 1011 y 1010 seleccionan los lapsos predictores para un lapso dado y aplican las operaciones de muestreo ascendente de acuerdo con los parámetros por defecto conocidos tanto por el codificador como por el decodificador. En un ejemplo, las operaciones de muestreo ascendente por defecto incluyen, sin limitación, el filtrado lineal hasta un LOQ dado y el filtrado cúbico para los LOQ superiores. En otro ejemplo, el decodificador recibe la información descriptiva correspondiente a las operaciones y parámetros a usar durante las operaciones de muestreo ascendente (por ejemplo, sin limitaciones, los núcleos de muestreo ascendente, los parámetros para las operaciones de procesamiento de imágenes, etc.).
La Figura 1H es un diagrama de ejemplo que ilustra además un ejemplo del método de cálculo de predicción. La calculadora de predicción 1010+K recibe representaciones de los lapsos del predictor Y<k>(t1), ..., Y<k>(tn), pertenecientes a los lotes L1, ..., Ln. La calculadora de predicción 1010+K también recibe información sobre el movimiento de cada lapso del predictor, así como también sus posiciones de muestreo.
Los compensadores de movimiento 10010-1, ..., 10010-n generan un conjunto de representaciones con compensación de movimiento MC(Y<k>), al realizar las operaciones de compensación de movimiento con respecto a la posición de muestreo t0. Finalmente, el Generador de Predicción 10020 combina las representaciones con compensación de movimiento de los lapsos del predictor, generando una predicción muestreada ascendentemente U<K+1>(t0) a un nivel de calidad superior.
En otros ejemplos, las operaciones de muestreo ascendente se realizan junto con las operaciones de compensación de movimiento, para que el Generador de Predicción 10020 combine las representaciones con compensación de movimiento que se muestrean ascendentemente en el nivel de calidad K+1. En aún otros ejemplos, las representaciones de los lapsos del predictor Y<K>(t1), ..., Y<K>(tn) se muestrean ascendentemente a lo largo de las dimensiones espaciales antes de compensar el movimiento.
La Figura 2A, 2B, 2C y 2D son diagramas de ejemplo que ilustran diferentes ejemplos que implementan la combinación (es decir, de acuerdo con lo que se ilustra en la Figura 1B, 1C e 1D, o la agregación o la mezcla descendente) de dos planos bidimensionales de elementos. Para simplificar, todas las cuatro Figuras ilustran visualmente solo el muestreo descendente en el dominio del tiempo, mientras que, de hecho, muestran la mezcla descendente de dos lapsos 100-1 y 100-2 de un LOQ superior en un único lapso de un LOQ inferior. Sin embargo, las mismas consideraciones ilustradas para la mezcla descendente también son válidas para la agregación dentro de un mismo LOQ.
Las cuatro Figuras, que se enfocan en el caso de ejemplo del lapso de mezcla descendente 100-1 y 100-2 para generar un lapso muestreado descendentemente del LOQ #-1 (por ejemplo, 101-1), también ilustran los efectos de aplicar diferentes enfoques de compensación de movimiento (y en particular, también los nuevos métodos que, por falta de bibliografía, se define como "compensación de movimiento equilibrado no simétrico"). Matemáticamente, todos los tres ejemplos aplican la siguiente fórmula, aunque con diferentes operaciones de compensación de movimiento:
Las operaciones de compensación de movimiento se realizan con relación a la posición de muestreo del lapso de mezcla descendente. Si la información descriptiva sobre el movimiento se codifica en un formato adecuado (por ejemplo, los nuevos métodos de compensación de movimiento en coma flotante con zonas de movimiento y matrices de movimiento), las operaciones de compensación de movimiento con relación a diferentes posiciones de muestreo pueden expresarse y calcularse de manera muy eficiente.
En un conjunto de ejemplos descritos en la presente descripción, para porciones de la señal a las que se asigna información descriptiva sobre el movimiento, el movimiento se estima con una pluralidad de parámetros y se calcula como "movimiento equilibrado" (o "movimiento bidireccional"): esencialmente, en lugar de especificar los movimientos de un lapso con respecto a otro, especifica el movimiento de ambos lapsos con respecto a una posición de referencia común, con el fin de permitir la decodificación bidireccional. Algunos de tales ejemplos representan el movimiento mediante el uso de una o más matrices de movimiento (por ejemplo, como opuesto a los métodos convencionales de usar vectores de movimiento que indican solamente movimientos de traslación, es decir, desplazamientos). El uso de matrices de movimiento (es decir, la codificación de más de dos parámetros con el fin de representar un movimiento específico) es una característica nueva y clave de tales métodos, que permiten la estimación y compensación de movimientos más sofisticados como el zoom, las rotaciones, los cambios de perspectiva, etc. Una matriz de movimiento en ocasiones se colapsa en un vector de desplazamiento simple en ejemplos donde un movimiento de traslación se considera suficiente (por ejemplo, debido a restricciones de muestreo conocidas o restricciones de complejidad). En otros ejemplos, el movimiento se representa por una o más matrices de movimiento correspondientes a transformadas afines, con coordenadas compensadas por el movimiento que se calculan mediante el uso de métodos de coordenadas homogéneas. Cada una de las matrices de movimiento se asigna a una porción específica y arbitrariamente definida de la señal, que se define como "zona de movimiento". En otros ejemplos, las matrices de movimiento corresponden a transformaciones de perspectiva más genéricas, lo que permite describir incluso conjuntos de movimientos más complejos.
Las matrices de movimiento (y, para los ejemplos que las usan, las zonas de movimiento) se transmiten al decodificador y tienen varias ventajas: por ejemplo, pueden invertirse y puede calcularse el movimiento de una misma zona de movimiento a través de un número de posiciones de muestreo al combinar adecuadamente (por ejemplo, multiplicar) las matrices de movimiento correspondientes a cada etapa temporal. Dicho esto, las matrices de movimiento y las zonas de movimiento son solo uno de muchos ejemplos de estimación y compensación de movimiento, y los métodos descritos en la presente descripción pueden trabajar adecuadamente con sustancialmente cualquier tipo de método de estimación y compensación de movimiento.
La Figura 2A ilustra el efecto de no aplicar compensación de movimiento (o, de equivalentemente, compensar el movimiento por medio de una función de identidad constante) y, en consecuencia, también de no aplicar el "encuadre".
El lapso 100-1, que se muestrea en t = 1, y el lapso 100-2, que se muestrea en t = 2, se fusionan en el lapso 101-1,5, que se muestrea en t = (1+2) /2 = 1,5. El hecho de que la posición de muestreo del lapso de mezcla descendente 101-1,5 sea el promedio de las posiciones de muestreo originales de los lapsos 100-1 y 100-2 es evidente a partir de la ilustración. Un objeto circular sólido 201-0 se mueve desde la parte inferior izquierda de la imagen (lapso 100-1, posición de muestreo 1) hasta la parte superior derecha de la imagen (objeto 202-0 del lapso 100-2, posición de muestreo 2). Un muestreo descendente lineal por un factor de 2 (por ejemplo, una mezcla descendente trilineal) de los lapsos 100-1 y 100-2 produce un lapso 101-1,5, en donde las dimensiones horizontal y vertical se dividen por la mitad y el objeto circular sólido aparece como parcialmente transparente y visible en ambas posiciones del lapso: esencialmente, al mirar este lapso, un observador mira todo el movimiento del objeto entre las posiciones de muestreo 1 y 2, esencialmente se posiciona (desde un punto de vista temporal) entre los dos extremos. Este simple enfoque de muestreo descendente tridimensional (es decir, espacio-tiempo) se usa en un ejemplo en donde la velocidad de los objetos visibles más abajo de un umbral predeterminado (es decir, la correlación temporal es extremadamente alta) y en condiciones en donde un grado de desenfoque de movimiento en las representaciones reconstruidas es aceptable. Un ejemplo práctico es el de un vídeo de una escena de movimiento lento que se graba a muy alta resolución y a 1000 fotogramas por segundo.
En otros ejemplos, la estimación y compensación de movimiento es útil para realizar un muestreo descendente de N-dimensiones.
Cuando se realiza la compensación de movimiento, el muestreo descendente espacial y el muestreo descendente temporal ("mezcla") pueden realizarse o por separado o conjuntamente, con varias combinaciones posibles. En un ejemplo, los lapsos se compensan con el movimiento y entonces se aplica el muestreo descendente tridimensional. En otro ejemplo, se realiza un muestreo descendente espacial, seguido de una compensación de movimiento y por último un muestreo descendente temporal. En otro ejemplo, el muestreo descendente espacial se combina con la compensación de movimiento, y se sigue por el muestreo descendente temporal.
La Figura 2B es un diagrama de ejemplo que ilustra un ejemplo de compensación de movimiento equilibrado. Un ejemplo determina el movimiento de los objetos y estima sus posiciones en un lapso de tiempo intermedio con respecto a las posiciones de muestreo de los dos lapsos originales. Con el fin de mantener la simetría, la compensación de movimiento se realiza de manera equilibrada, de manera que se reposicionan los dos lapsos en una posición intermedia altamente correlacionada (que corresponde esencialmente al muestreo de una posición que se encuentra en la posición intermedia - es decir, la posición de muestreo 1,5, con respecto a la posición 1 y la posición 2 de los dos lapsos originales) antes de "fusionarlos" junto con la operación de muestreo descendente temporal.
En este caso simple, el objeto se mueve con un simple movimiento de traslación (es decir, un desplazamiento). La información descriptiva del movimiento del objeto a usar en las dos operaciones de compensación de movimiento se caracteriza por lo tanto por un único vector, ya que el otro vector se calcula como el "vector de complemento".
El beneficio de tal enfoque equilibrado es evitar cualquier elección de una imagen de referencia y/o de una dirección preferencial para los movimientos. La información de movimiento que se estructura de esta manera puede usarse para estimar el movimiento del objeto en cualquier dirección de tiempo en la que se mueva la reproducción, lo que esencialmente permite la reproducción bidireccional (una característica nunca ofrecida hasta ahora por las técnicas de codificación en base a la estimación y compensación de movimiento).
Con el fin de realizar adecuadamente las operaciones de compensación de movimiento, se produce un plano de destino de los elementos 201-1,5bis, que corresponde a la imagen que se enviaría a un dispositivo de visualización si se tuviera que visualizar el lapso muestreado descendentemente 101-1,5bis. Al mismo tiempo, queda claro en la Figura. 2B que el lapso 101-1,5bis se beneficia de la asignación de un plano de elementos más grande que solo el plano de destino 201-1,5bis, con el fin de incluir también elementos que, a pesar de estar fuera del plano de destino, podrían ser útiles (en particular después de operaciones adicionales y/o de compensación de movimiento inverso) con el fin de generar predicciones para los lapsos 100-1 y 100-2, así como también durante las operaciones de muestreo descendente adicionales.
Debido a la falta de bibliografía, se creó el nuevo término "encuadre" para definir las hileras y columnas adicionales del lapso 101-1,5bis con respecto al plano de destino 201-1,5bis.
El lapso 101-1,5bis es, por tanto, la combinación de los planos 220-1 (que representa el lapso 100-1 en su posición desplazada) y 220-2 (que representa el lapso 100-2 en su posición desplazada). Como es evidente a partir de la Figura 2B, el lapso 101-1,5bis contiene elementos del plano que tienen niveles de importancia muy diferentes. Los elementos pertenecientes a las áreas 220-1 y 220-2 son elementos de plano "válidos", que contienen información relevante. Todos los demás elementos (que se ilustran en el diagrama por las áreas con líneas diagonales) son elementos nulos o elementos "No disponibles" (250-1). No se transmiten al decodificador (en un ejemplo que se orienta a la compresión), y el decodificador conoce con precisión la posición y el tamaño de las áreas 220-1 y 220-2, con la misma precisión que se conoce la información de movimiento. En este ejemplo, los elementos "No disponibles" no deben promediarse con los elementos que tienen un valor "válido". En todas las operaciones (o durante el muestreo descendente o durante el muestreo ascendente) que involucran un promedio ponderado de un conjunto de elementos que incluyen elementos "No Disponible", los elementos "No Disponible" se eliminan del promedio ponderado y los pesos para los elementos restantes se normalizan para que su suma sea igual a 1 (en el ejemplo ilustrado, esto se consigue al añadir una misma constante a todos los pesos restantes).
Los elementos que tienen un valor pero que se encuentran fuera del plano de destino 201-1,5bis no se mostrarían si el lapso tuviera que visualizarse, pero todavía son útiles: por ejemplo, para soportar las operaciones de muestreo ascendente durante el proceso de decodificación, así como también para soportar más operaciones de muestreo descendente durante el proceso de codificación.
En el ejemplo preferido, la cantidad de encuadre con relación al tamaño del plano de destino aumenta en cada LOQ sucesivamente más bajo, lo que corresponde al hecho de que los lapsos de un LOQ más bajo son los resultados de un mayor número de lapsos con compensación de movimiento (es decir, abarcan una mayor cantidad de tiempo), y por lo tanto debe permitir un mayor grado de movimiento.
La Figura 2C ilustra un caso de ejemplo más de muestreo descendente temporal con compensación de movimiento equilibrada, esta vez introduce un tipo de movimiento más sofisticado (específicamente, una transformación de escala, es decir, un zoom). El caso anterior ilustró información de movimiento, incluida información de desplazamiento (que es la información típicamente representada por los métodos de compensación y estimación de movimiento más modernos). Los ejemplos ilustrados en la presente descripción aprovechan los métodos de compensación y estimación del movimiento equilibrado y, al mismo tiempo, representan también tipos de movimiento más sofisticados, incluidos, sin limitación, desplazamientos, rotaciones, zoom/divergencia, cambios de perspectiva, etc. En particular, el ejemplo que se ilustra en la presente descripción representa el movimiento con una matriz de movimiento afín (o "ZRO"), identificada por cuatro parámetros ZRO (un parámetro para Zoom, un parámetro para la Rotación y dos parámetros para el Desplazamiento).
De manera similar a lo que se describió en la Figura 2B, también en la Figura 2C, el lapso de muestreo descendente resultante se centra en la posición de muestreo 1,5.
Tanto la Figura 2B como la Figura 2C, a pesar de mostrar los beneficios de la compensación de movimiento equilibrada, también muestra muy claramente los límites de centrar los lapsos de muestreo descendente en posiciones de muestreo intermedias (es decir, potencialmente no enteras). Aunque es teóricamente elegante centrar un lapso de muestreo descendente entre sus lapsos correspondientes en el nivel de calidad superior, las posiciones de muestreo fraccionadas generan problemas de manera que se vuelve necesario visualizar la señal en un nivel de calidad inferior al LOQ superior. En primer lugar, conmutar dinámicamente del nivel de calidad superior (con su tasa de muestreo original) a un nivel de calidad inferior (con tasas de muestreo fraccionarias), generaría "trepidaciones" y "vibraciones" que se perciben en el movimiento de los objetos. En segundo lugar, como es evidente en la Figura 2B y la Figura 2C, el plano de destino del lapso resultante (es decir, la imagen a visualizar si el lapso tuviera que visualizarse) estaría en una posición intermedia entre los dos lapsos originales y, en consecuencia, presentaría áreas visibles de "No disponible", muy probablemente desagradable de ver al menos tanto como las trepidaciones que se mencionan anteriormente. Un ejemplo resuelve tales problemas al aplicar un muestreo descendente temporal simétrico solamente en grupos con un número impar de lapsos (para que la posición de muestreo intermedia sea una posición de muestreo entera, y el plano de destino se centra en el lapso intermedio de dicho grupo impar de lapsos). Otro ejemplo, que resuelve tales problemas mientras que aún permite muestrear descendentemente incluso los números de lapsos, que se ilustran en la Figura 2D. La Figura 2D ilustra - para la misma señal de origen que en la Figura 2B - un ejemplo de "compensación de movimiento no simétrica equilibrada", que logra todos los beneficios de la compensación de movimiento equilibrada sin las limitaciones mencionadas anteriormente de las posiciones de muestreo intermedias (simétricas).
Los lapsos 100-1 y 100-2 aún se compensan por movimiento de acuerdo con transformadas de movimiento invertibles (en el ejemplo específico no limitativo, matrices de movimiento ZRO adecuadas para cada zona de movimiento relevante), pero esta vez con respecto a una posición de muestreo igual a 1, en lugar de 1,5. Por lo tanto, todavía es cierto que la información de compensación de movimiento para el lapso 100-1 es directamente calculable a partir de la información de compensación de movimiento para el lapso 100-2, o viceversa: la compensación de movimientos de hecho todavía "equilibrada", es decir, bidireccional.
Al mismo tiempo, el lapso de muestreo descendente 101-1 se caracteriza por un plano de destino 201-1 que es esencialmente el mismo que el lapso 100-1 (con la posible adición de alguna información procedente del lapso 100-2 pero que se posiciona consistentemente con el lapso 100-1). Como consecuencia, si el lapso 101-1 tuviera que visualizarse no habría áreas "No disponibles", y también en términos de tasa de muestreo, a pesar de cierto efecto de "mezcla", no se percibirían trepidaciones en los movimientos de los objetos.
La Figura 3A es un diagrama de ejemplo que ilustra un ejemplo reivindicado que implementa la codificación multipredictiva de los datos residuales, con separación de la información residual correlacionada en el tiempo en un "Plano de Soporte" Z.
El diagrama muestra una señal original que consiste en una secuencia de lapsos 100-1, 100-2, ... 100-n a un nivel de calidad dado. A través de los métodos adecuados, el codificador genera una secuencia correspondiente de predicciones U 110-1, 110-2, ..., 100-n con el mismo nivel de calidad. El codificador entonces calcula conjuntos adecuados de residuales absolutos R 130-1, ..., 130-n, al procesar los resultados que se obtienen al comparar cada lapso 100-t con su correspondiente predicción U 110-t. Por ejemplo, la calculadora de datos residuales 120-1 recibe como entrada el lapso 100-1 y la predicción correspondiente U 110-1, lo que genera residuales absolutos R 130-1 en base a la diferencia entre el lapso 100-1 y la predicción U 110-1. De manera similar, el codificador genera conjuntos de residuales absolutos R 130-2, ..., 130-n correspondiente a los lapsos restantes de la secuencia.
El procesador de señales 140, también llamado Calculadora del Plano de Soporte, se configura para procesar los conjuntos de residuales absolutos R 130-1, ..., 130-n y generar un conjunto de elementos 150 llamado plano de soporte Z, que resume, en este ejemplo, la información residual correlacionada en el tiempo.
En el ejemplo ilustrado en la Figura 3, la Calculadora del Plano de Soporte 140 también recibe Información Descriptiva 155, que comprende información sobre el movimiento a través de la secuencia de los lapsos.
La generación del Plano de Soporte Z 150 se realiza al calcular primero un promedio ponderado S de las representaciones con compensación de movimiento de cada conjunto de residuales absolutos R 130-t, todas las operaciones de compensación de movimiento se calculan con respecto a una misma posición de muestreo (es decir, en este ejemplo, la primera posición de muestreo entera inferior o igual al promedio de todas las posiciones de muestreo de los lapsos de la secuencia). La fórmula para calcular S se expresa mediante la siguiente ecuación:
En un ejemplo simple, todos los pesos son iguales a 1/n (es decir, promedio matemático simple). En otro ejemplo, S se calcula como el modo estadístico de MC(R(i)), para reducir la influencia de los “residuales atípicos” en el promedio ponderado.
Con el fin de permitir un promedio ponderado adecuado a través de varias posiciones de muestreo diferentes (es decir, minimizar la pérdida de información), las operaciones de compensación de movimiento generan conjuntos compensados de movimiento de los elementos con más hileras y columnas que los conjuntos de residuales de entrada ("encuadre"). Además, las operaciones de compensación de movimiento asignan un valor por defecto (por ejemplo, valor "No disponible") a los elementos de los conjuntos compensados de movimiento de los elementos que, en base a la entrada (por ejemplo, un conjunto específico de residuales absolutos R) y en la información de movimiento, no pueden asignarse a ningún valor adecuado.
Los elementos con el valor por defecto no se consideran en la correspondiente operación de promedio ponderado usada para calcular S, y los pesos de los elementos restantes se normalizan para hacer que su suma sea igual a 1. En el ejemplo de referencia, esta normalización a 1 se logra al sumar una misma constante a todos los pesos de los elementos restantes. En otros ejemplos, tal normalización se logra al multiplicar todos los pesos por una misma constante.
El codificador genera entonces los datos de reconstrucción que se enviarán al decodificador con el fin de permitir la reconstrucción del elemento de soporte y simula la decodificación de dichos datos de reconstrucción, en la que se reconstruye una representación del plano de soporte Z 150:
El codificador calcula entonces conjuntos de Residuos Relativos R<II>(es decir, conjuntos de elementos 160-1, ..., 160-n), al calcular para cada conjunto dado la diferencia entre el conjunto correspondiente de residuales absolutos R y una representación con compensación de movimiento del elemento de soporte Z ("residuales de referencia") con respecto a la posición de muestreo de dicho conjunto dado:
Por último, el codificador genera conjuntos de datos de reconstrucción correspondientes a conjuntos de Residuos Relativos R<II>y simula las operaciones realizadas por un decodificador con el fin de reconstruir una representación Y de la secuencia de lapsos. En particular, para cada lapso dado X(t) 100-t, el codificador genera una representación reconstruida Y(t) al combinar la predicción U(t) 110-t, una representación con compensación de movimiento del plano de soporte Z 150 con respecto a la posición de muestreo t y el correspondiente conjunto de residuales relativos decodificados R<II>(t) 160-t:
Por ejemplo, con el fin de simular la reconstrucción de una representación Y(1) para el lapso 100-1, el codificador combina la Predicción U 110-1, los Residuos Relativos R<II>160-1 y una representación con compensación de movimiento del Plano de Soporte Z 150 que se calcula con relación a la posición de muestreo t = 1. En el lado del decodificador, un decodificador realizará esas mismas operaciones, al recibir los datos codificados que permiten generar la Predicción U 110-1, datos codificados correspondientes a la información de movimiento, datos codificados correspondientes al Plano de Soporte Z 150 y datos codificados correspondientes a los Residuos Relativos R<II>160-1.
Se llama al conjunto de elementos Z 150 un "plano de soporte" para una secuencia dada de los lapsos en un nivel de calidad dado porque "soporta" la reconstrucción de los residuales absolutos R. Esencialmente, también soporta la reducción de la entropía de la información (por ejemplo, de la cantidad codificada en bits) de los datos de reconstrucción necesarios para reconstruir dicha secuencia, al explotar la correlación de tiempo de los residuales absolutos. Al concentrar los datos residuales absolutos correlacionados en el tiempo en un único "superconjunto de residuales" (es decir, intuitivamente, al evitar repetir una misma información residual múltiples veces para lapsos subsecuentes, mientras que al mismo tiempo se evita predecir cada plano de residuales a partir de uno previo), el plano de soporte maximiza el número de residuales relativos que después de la cuantificación son sustancialmente iguales a cero, en consecuencia se reduce una métrica correspondiente a la entropía de la información general de los datos residuales.
También se define el enfoque como método de "codificación multipredictiva", porque la representación reconstruida para un lapso dado se obtiene al combinar los residuales relativos con dos predicciones: una predicción para el lapso (la primera predicción, que se genera con cualquier método adecuado) y una predicción para los residuales absolutos (la segunda predicción, que se genera por compensación de movimiento del plano de soporte).
Como se explicó anteriormente, los métodos convencionales (por ejemplo, en el caso de las señales de video, tecnologías basadas en MPEG, VP8, etc.) que explotan la correlación de tiempo mediante la codificación/decodificación de las diferencias frente a una muestra precedente o subsecuente (por tanto, se genera una "cascada temporal" de muestras codificadas con respecto entre sí, con acumulación de errores sobre el tiempo y reconstrucción/reproducción esencialmente monodireccional). Los métodos descritos en la presente descripción de "muestreo descendente temporal" y "agregación temporal" - que incluyen, sin limitación, todos los métodos que se ilustran hasta ahora - consisten en codificar/decodificar la información temporalmente mezclada (submuestreada en el caso de las jerarquías temporales escalonadas, con la misma resolución o incluso a resoluciones superiores en el caso de los planos de soporte) que sirven como predictores comunes y resumen sustancialmente la información correlacionada de una pluralidad de lapsos, lo que permite (1) aprovechar la correlación de tiempo a través de las secuencias más largas de los lapsos (debido a la ausencia de acumulación de errores), (2) realizar una reconstrucción/reproducción bidireccional y (3) realizar también una reconstrucción de acceso aleatorio de cualquier lapso en una secuencia. Como ejemplo, una decisión de cuantificar fuertemente los residuales relativos que permiten reconstruir un lapso dado (es decir, una decisión que crea una pérdida significativa de información y/o artefactos en un lapso) no tiene impacto en los otros lapsos en el mismo LOQ que se reconstruyen en base a un mismo plano de soporte y en un mismo conjunto de predictores en un LOQ inferior. Además, la decodificación puede realizarse en orden temporal inverso (por ejemplo, la reproducción inversa suave de un video, opuesta a los métodos actuales que solo saltan de un fotograma-I a un fotograma-I previo), ya que la reconstrucción de cualquier lapso no requiere la disponibilidad de una representación reconstruida de un lapso previo en el orden temporal.
Ejemplos adicionales
El ejemplo de cálculo del plano de soporte ilustrado en la Figura 3 debe pretenderse que no sea limitativo.
En otros ejemplos, el codificador calcula el Plano de Soporte Z 150 al adaptar los pesos del promedio ponderado para minimizar una métrica de entropía de la información para los Residuos Relativos R<II>160 y Plano de Soporte Z 150. En una de tales ejemplos, el codificador selecciona los pesos del promedio ponderado usado para generar el Plano de Soporte Z 150 para maximizar el número de Residuos Relativos R<II>160 que son sustancialmente iguales a cero (especialmente después de un proceso de cuantificación adecuado). En otra de tales ejemplos, el codificador ajusta los valores del Plano de Soporte Z 150 de acuerdo con un método de optimización iterativo, con el fin de minimizar una métrica de entropía de la información para Residuos Relativos R<II>160 y el Plano de Soporte Z 150, mientras se mantiene una métrica de calidad para la representación Y por encima de un umbral.
En otros ejemplos, el codificador procesa conjuntos de residuales absolutos R 130 antes de calcular el Plano de Soporte Z 150. En una de tales ejemplos, los residuales absolutos R 130 correspondientes a diferentes lapsos se igualan adecuadamente, para mejorar la correlación de tiempo de los datos residuales en casos tales como un cambio de condiciones de iluminación en una escena sustancialmente igual. El codificador también genera conjuntos adecuados de información descriptiva, con el fin de proporcionar un decodificador con información conveniente para el procesamiento adecuado del Plano de Soporte Z 150 antes de combinarlo con el conjunto correspondiente de Residuos Relativos R<II>160. En otros ejemplos, los residuales absolutos R 130 se procesan por medio de transformadas adecuadas (por ejemplo, que se seleccionan de una lista que incluye, sin limitación, las transformadas de descomposición, las transformadas de Hadamard, las transformadas DCT, las transformadas wavelet, etc.).
En otros ejemplos, tanto el Plano de Soporte Z como los Residuos Relativos R<II>se transforman por medio de operaciones adecuadas, seleccionada de una lista que incluye, sin limitación, la descomposición direccional (por ejemplo, la selección de subconjuntos de elementos y codificación de parámetros correspondientes a sus inclinaciones direccionales y a una diferencia entre su promedio y un promedio predicho), la descomposición temporal (por ejemplo, la selección de subconjuntos de elementos a lo largo del tiempo y la codificación su promedio temporal y su(s) inclinación(es) temporal(es), los esquemas de cuantificación no lineal, las transformadas de Hadamard, las transformadas DCT, las transformadas FFT, las transformadas wavelet, etc. En algunos de estos ejemplos, los residuales transformados para un lapso se codifican y decodifican en base al menos en parte a una representación del lapso a un nivel de calidad inferior, en base a métodos de transformación multiescala descritos en otras solicitudes de patente de los mismos autores.
En otros ejemplos, la Calculadora de Plano de Soporte 140 calcula el Plano de Soporte Z 150 al procesar un promedio ponderado de los lapsos originales 100-1, ..., 100-n (adecuadamente con compensación de movimiento), en lugar de un promedio ponderado de las representaciones con compensación de movimiento de los conjuntos correspondientes de residuales 130-1, ..., 130-n. El método es sustancialmente similar, aunque al calcular el plano de soporte Z 150 en base a los lapsos originales, el plano de soporte comprende información diferente y, por tanto, produce resultados diferentes. En uno de tales ejemplos, las siguientes fórmulas matemáticas describen las operaciones realizadas en el codificador y el proceso de reconstrucción realizado en el decodificador:
En otros ejemplos, el Plano de Soporte Z 150 tiene un nivel de calidad superior (por ejemplo, una mayor resolución) que los conjuntos de residuales absolutos R 130-1, ..., 130-n que soporta. Ya que en tales ejemplos, el Plano de Soporte Z 150 resulta de representaciones con compensación de movimiento de múltiples lapsos que representan sustancialmente los mismos objetos en diferentes posiciones (que incluyen las posiciones de subpíxeles, en el caso de las imágenes), al aumentar el nivel de calidad del Plano de Soporte Z 150, el codificador permite que el Plano de Soporte Z 150 almacene información residual común con precisión de subelemento, lo que esencialmente maximiza una cantidad de información correlacionada en el tiempo que se almacena en el Plano de Soporte Z 150.
En otros ejemplos, el codificador define para cada lapso 100-1, 100-2, ..., 100-n porciones adecuadas (por ejemplo, áreas de la imagen) donde el Plano de Soporte Z 150 no se procesa con el fin de generar residuales absolutos R 130. En una de tales ejemplos, el codificador identifica para uno o más lapsos dados porciones de la imagen donde la información residual no se correlaciona con la información residual de otros lapsos vecinos (por ejemplo, en el caso de ejemplo de una señal de video, porque por ejemplo esas porciones corresponden a objetos que fueron visibles solamente durante el tiempo de duración de dicho lapso dado). En consecuencia, el codificador genera información descriptiva correspondiente a dichas porciones del lapso. Cuando se genera el Plano de Soporte Z 150, los contenidos de dichas porciones no se procesan, para evitar "diluir" la información del elemento de soporte con información no correlacionada en el tiempo. Al mismo tiempo, cuando se reconstruyen conjuntos de residuales absolutos R 130-1, ..., 130-n, los subconjuntos de Residuos Relativos R<II>160-1, ..., 160-n correspondientes a dichas porciones se procesarán directamente para generar residuales absolutos R 130, sin combinarse primero con los elementos correspondientes de una representación con compensación de movimiento del Plano de Soporte Z 150. En un lado del decodificador (o dentro de un decodificador simulado durante el proceso de codificación), un decodificador recibirá para un lapso dado 100-1 información descriptiva sobre las porciones donde el Plano de Soporte Z 150 no debe aprovecharse con el fin de soportar la reconstrucción de residuales absolutos R 130. Como consecuencia, el decodificador reconstruirá los residuales absolutos R 130 de acuerdo con dos enfoques diferentes:
para porciones donde debe aplicarse el Plano de Soporte Z 150:
para dichas porciones donde no debe aplicarse el Plano de Soporte Z 150:
En otros ejemplos, la secuencia de los lapsos 100-1, 100-2, ..., 100-n se particiona en una pluralidad de subsecuencias ("lotes") y el codificador genera un Plano de Soporte Z para cada uno de dichos lotes. Los residuales absolutos para los lapsos de un lote dado se reconstruyen por un decodificador (o por un decodificador simulado dentro del proceso de codificación) basado al menos en parte en la información contenida en el Plano de Soporte Z de dicho lote dado. En particular, un conjunto dado de residuales absolutos para un lapso dado de un lote dado se genera al combinar un conjunto de Residuos Relativos con una representación con compensación de movimiento del Plano de Soporte Z de dicho lote dado (en donde la compensación de movimiento se realiza con referencia a la posición de muestreo de dicho lapso dado).
En otros ejemplos, los residuales absolutos R para los lapsos de un lote L1 dado se reconstruyen por un decodificador basado al menos en parte en una pluralidad de Planos de Soporte Z<L1>, ..., Z<Ln>, que incluyen el plano de soporte ZL1para dicho lote dado y plano de soporte ZLnpara uno o más lotes vecinos. En una de tales ejemplos, un conjunto dado de residuales absolutos R para un lapso dado de un lote dado se genera al combinar un conjunto de Residuos Relativos R<II>con un promedio ponderado de la representación con compensación de movimiento del plano de soporte Z de dicho lote dado y la representación con compensación de movimiento del plano de soporte Z de un lote vecino, en donde ambas operaciones de compensación de movimiento se realizan con relación a la posición de muestreo de dicho lapso dado. En otros ejemplos, incluso más de dos planos de soporte Z soportan la reconstrucción de conjuntos específicos de residuales absolutos R. Aprovechar los planos de soporte Z de lotes vecinos - a pesar de aumentar potencialmente el retardo de la codificación, ya que el codificador requiere procesar múltiples lotes antes de ser capaz de finalizar los datos codificados para un lote - permite que tales ejemplos reduzcan las potenciales discontinuidades abruptas entre los lapsos pertenecientes a diferentes lotes.
En otros ejemplos, los residuales absolutos R para los lapsos de un lote L1 dado se reconstruyen por un decodificador en base al Plano de Soporte ZL1de dicho lote dado, y una pluralidad de Planos de Soporte ZL1, ..., Z<Ln>, de dos o más lotes vecinos se codifican en base a un Plano de Soporte Z<II>a un nivel de agregación aún superior. Cada uno de los planos de soporte ZL1, ..., ZLndados se reconstruye mediante la combinación de una representación con compensación de movimiento del Plano de Soporte Z<II>(en donde la compensación de movimiento se realiza con referencia a la posición de muestreo de cada Plano de Soporte dado) con un conjunto correspondiente de residuales relativos. En algunas de tales ejemplos, el codificador genera una jerarquía escalonada de nivel de agregaciones para los Planos de Soporte, en donde también se codifican los planos de soporte de orden superior en base a planos de soporte de orden superior adicionales en un nivel de agregación aún mayor. En un ejemplo, el tamaño del lote es igual a dos lapsos, y el codificador agrega planos de soporte hasta un nivel de agregación dado en base a los recursos de cálculo disponibles y en el retardo máximo de codificación.
En otros ejemplos, el Plano de Soporte Z 150 se genera sin realizar operaciones de compensación de movimiento. En consecuencia, en un decodificador se generan los residuales absolutos R 130 sólo al combinar los Residuos Relativos R<II>160 con el Plano de Soporte Z 150.
En otros ejemplos, la Calculadora del Plano de Soporte 140 - aparte de generar el Plano de Soporte Z 150 y los conjuntos de Residuos Relativos R<II>160-1, ..., 160-n - también genera conjuntos de información descriptiva (es decir, metadatos) correspondientes a uno o más de los conjuntos de Residuos Relativos R<II>. Durante las operaciones de reconstrucción para un conjunto dado de residuales absolutos R, un decodificador (o un decodificador simulado dentro del proceso de codificación) procesa el Plano de Soporte Z 150 y el conjunto correspondiente de los Residuos Relativos R<II>de acuerdo con las operaciones especificadas por un conjunto correspondiente de información descriptiva. En una de tales ejemplos, dicha información descriptiva incluye, sin limitación, parámetros multiplicativos para aplicar a la información del elemento de soporte con compensación de movimiento (para, por ejemplo, tener en cuenta fácilmente los cambios de iluminación en una escena sustancialmente igual).
En un ejemplo, un método de codificación multipredictivo que aprovecha los Planos de Soporte Z se aprovecha para codificar directamente una secuencia de imágenes, es decir, que asume que las predicciones U son todas iguales a cero.
En otros ejemplos, se usa un método de codificación multipredictiva en el contexto de una señal codificada con un método de jerarquía temporal escalonada. En uno de estos ejemplos, el codificador genera un elemento de soporte para los lapsos de cada LOQ K de cada lote L de una señal; los planos de soporte de diferentes lotes de un mismo LOQ K se codifican en una jerarquía escalonada de niveles de agregación de planos de soporte. En tal ejemplo, en cada nivel de calidad, el plano de soporte Zf transporta la información correlacionada en el tiempo del lote en un único conjunto de elementos (es decir, en un único plano bidimensional para cada lote). Los lapsos de un LOQ K dado se reconstruyen en base a los lapsos predictores adecuados de un LOQ inferior (K-1) (muestreado ascendentemente en o el espacio o en el tiempo o en ambos al aprovechar las operaciones y factores de escala adecuados), en el plano de soporte para LOQ K, sobre información descriptiva sobre el movimiento y sobre conjuntos adecuados de datos Residuales Relativos R<II>. El plano de soporte transporta esencialmente la información correlacionada en el tiempo de los datos residuales de un lote dado en un único conjunto de elementos, lo que permite que un decodificador genere predicciones adecuadas para los datos residuales absolutos que permiten reconstruir los lapsos de un LOQ dado. La correlación de residuales absolutos a través de los lotes se aprovecha efectivamente mediante la codificación de planos de soporte de lotes vecinos en una jerarquía escalonada de niveles de agregación.
Para aclarar mejor con un simple ejemplo la ventaja en calcular y transmitir un plano de soporte para los datos residuales, basta con considerar el caso de un lote de lapsos que representan un videoclip de una imagen fija (es decir, todos los lapsos son idénticos). En cualquier nivel de calidad, el plano de soporte transporta completamente la información que es necesaria para reconstruir todos los lapsos del lote. No sería necesario transmitir más residuales relativos con el fin de decodificar y reconstruir todos los lapsos (es decir, el 100 % de los residuales relativos serían iguales a cero, que con los codificadores de entropía adecuados pueden codificar con cantidades muy limitadas de información). Por supuesto, es un caso de ejemplo extremo, pero es fácil comprender los beneficios de codificar/decodificar los residuales absolutos en base a la información de los elementos de soporte cuando el lote pertenece a una escena en cámara lenta, o cuando grandes porciones de una escena son estáticas, o cuando la información de compensación de movimiento puede recrear para los residuales absolutos con compensación de movimiento un nivel de correlación similar al de una escena en cámara lenta/estática.
En algunos ejemplos, un decodificador se configura para recibir datos residuales relativos correspondientes solamente a porciones espaciales específicas de una señal (por ejemplo, "mosaicos"), por tanto, se reconstruye una representación de la señal en el LOQ dado solamente para dichas porciones dadas, lo que implementa efectivamente una funcionalidad de zoom. En otras palabras, en tales ejemplos, el decodificador recibe datos de reconstrucción correspondientes solamente a porciones espaciales específicas ("mosaicos") de los conjuntos reconstruidos de residuales absolutos que serían necesarios para reconstruir la señal completa en el LOQ dado. En consecuencia, el decodificador reconstruye solo una secuencia de porciones de los conjuntos de residuales absolutos, al realizar operaciones que comprenden lo siguiente: procesar un primer conjunto de datos de reconstrucción, lo que genera un plano de soporte; procesar un segundo conjunto de datos de reconstrucción, lo que produce una secuencia de subplanos residuales relativos (por ejemplo, tales como los mosaicos de residuales relativos), cada uno de dichos subplanos de residuales relativos correspondiente a un mosaico de un plano de residuales absolutos en la secuencia de planos de residuales absolutos; combinar cada uno de dichos subplanos de residuales relativos con un conjunto correspondiente de valores de referencia que se generan en base al menos en parte a dicho plano de soporte, lo que produce una secuencia de mosaicos de residuales absolutos.
En otro ejemplo, un decodificador (y el decodificador simulado dentro de un codificador) - en lugar de generar residuales absolutos para los lapsos de un LOQ dado en base a un único plano de soporte - genera residuales absolutos en base a un promedio ponderado de representaciones con compensación de movimiento de planos de soporte vecinos (es decir, planos de soporte de lotes vecinos).
En otros ejemplos, uno o más planos de soporte Z se codifican/decodifican para porciones específicas de una jerarquía escalonada (por ejemplo, para una subsecuencia de lapsos más pequeños que el lote correspondiente en el nivel de calidad correspondiente).
En un ejemplo, los planos de soporte se generan por el codificador de acuerdo con la característica específica de la señal y los requisitos de compresión (por medio de un ejemplo, corresponde al codificador para omitir el cálculo del plano de soporte cuando las características relacionadas con el tiempo de la señal son de manera que la transmisión de un plano de soporte no traería beneficios).
En un ejemplo, también la jerarquía escalonada de planos de soporte de un lote determinado L se codifica de acuerdo con un método jerárquico escalonado. En tal ejemplo, para todos los niveles de calidad en los que un lote dado consta de un único lapso, el plano de soporte Z coincide con los residuales absolutos R para ese lapso. El plano de soporte Z se codifica de acuerdo con una jerarquía escalonada bidimensional, en base a una representación del plano de soporte en un nivel de calidad inferior. En el nivel inferior, si se asume que el ejemplo aplica una función de cuantificación Q(·) a los datos residuales, el plano de soporte Z es simplemente la representación descuantificada de la cuantificación de S, o matemáticamente:
Para los siguientes niveles de calidad (superiores), un decodificador (así como también un decodificador simulado dentro del codificador) procesa la representación de Z en el nivel de calidad inferior para generar - a través de operaciones de muestreo ascendente adecuadas - una predicción V:
Para cada nivel de calidad, el codificador genera una representación del plano de soporte S "ideal" (por ejemplo, precuantificación y pretransformaciones), en este simple ejemplo por medio de un simple promedio aritmético de representaciones con compensación de movimiento de conjuntos de residuales absolutos de los lapsos del lote (cada operación de compensación de movimiento que se realiza con referencia a la posición de muestreo seleccionada para el elemento de soporte S):
Los residuales del plano de soporte R<I>para ese LOQ dado se calculan entonces como la diferencia entre S y su predicción V:
Como consecuencia, la representación del elemento de soporte Z reconstruida en un decodificador (así como también en un decodificador simulado dentro del codificador) es:
Las restantes operaciones que se realizan por el codificador son sustancialmente similares a las ya descritas para otros ejemplos. El codificador calcula los residuales relativos R<II>en base a R y Z:
Un decodificador (así como también un decodificador simulado dentro del codificador) puede, por lo tanto, finalmente reconstruir la representación de la señal Y:
En un ejemplo, el plano de soporte para un lote es una jerarquía escalonada de planos que se centran en un lote (es decir, con una posición de muestreo - que se aprovecha para las operaciones de compensación de movimiento - igual al promedio de las posiciones de muestreo de los lapsos superiores de un lote).
En otro ejemplo, el plano de soporte es una jerarquía escalonada de planos con la posición de muestreo entera del nivel de calidad superior (por ejemplo, el LOQ #0) que es inferior o igual al promedio de las posiciones de muestreo de los lapsos del lote en el nivel de calidad superior. De esta manera, el plano de la cadena de soporte siempre se centra en una posición de muestreo consistente con la tasa de muestreo original de la señal, lo que simplifica las operaciones de compensación de movimiento (como se describió cuando se ilustró la compensación de movimiento equilibrada, las trepidaciones de la tasa de muestreo, el encuadre y los elementos "No disponible").
Aparte de soportar la reconstrucción de una señal, un plano de soporte codificado con un método jerárquico escalonado es de hecho un subproducto en sí mismo (es decir, una jerarquía escalonada autosuficiente, que puede reconstruirse independientemente del resto de la señal). Esto se aprovecha con varios ejemplos. Por ejemplo, en un ejemplo, un decodificador puede limitar su procesamiento a solo decodificar los datos de reconstrucción del plano de soporte para un lote en un LOQ dado y visualizar - para el tiempo de duración del lote correspondiente- una imagen en base al plano de soporte. Ejemplos de aplicaciones de tal modalidad son los casos de conexiones de muy bajo ancho de banda, o de decodificadores con poca cantidad de recursos (por ejemplo, como la memoria o la energía de cálculo), o incluso de situaciones en las que se requiere una representación rápida y aproximada de la señal (por ejemplo, la navegación acelerada, la reproducción de avance rápido o retroceso rápido, etc.), ya que un elemento de soporte transporta esencialmente información promedio sobre el lote de la señal en un nivel de calidad dado.
En otros ejemplos, el codificador calcula los planos de soporte al procesar lapsos previamente codificados y transmitidos en lugar de aprovechar un lote actual y/o lotes subsecuentes. Este enfoque tiene la ventaja de que los mismos lapsos usados en el lado del codificador para calcular un plano de soporte ya se encuentran disponibles en el lado del decodificador, por lo que no es necesario transmitir los datos de reconstrucción del plano de soporte al decodificador. Además, el enfoque es útil en condiciones de baja latencia (por ejemplo, sin limitación, aplicaciones de videoconferencia), cuando el codificador no puede esperar la disponibilidad de un lote completo de lapsos antes de comenzar el proceso de codificación.
En otros ejemplos, el plano de soporte se calcula al procesar un promedio móvil de los lapsos y, en principio, no requiere que se transmita ninguna información sobre el plano de soporte al decodificador (aunque en otro ejemplo tal información se transmite no obstante periódicamente con el fin de garantizar la alineación entre la información disponible en el lado del codificador y del decodificador). Como ejemplo, un plano de soporte que se calcula como un promedio móvil es útil en aplicaciones de baja latencia en tiempo real, tal como las videoconferencias, donde no es posible introducir largos retardos (por ejemplo, mediante el uso de lotes largos), pero aun así la correlación de tiempo es extremadamente alta. En tales ejemplos, el decodificador calcula y actualiza el plano de soporte para cada LOQ a medida que se decodifican y reconstruyen los lapsos de la señal. En un ejemplo, se adopta un esquema de promedio móvil simple. En otro ejemplo, la información procedente de diferentes lapsos se promedia al aprovechar un sistema de ponderación de decaimiento exponencial. En aún otro ejemplo, se usa un enfoque de ponderación basado en la precisión, en base a los métodos descritos en solicitudes de patente previas de los mismos autores, donde esencialmente el codificador asigna y transmite al decodificador un valor de precisión para cada lapso (por ejemplo, correspondiente a la precisión estadística, o varianza inversa, del lapso), y el decodificador produce dos búferes: un búfer Z<viejo>, que contiene la representación de la cadena de soporte para la posición de muestreo previa para la que se calculó la cadena de soporte, y un búfer p<viejo>, que contiene para cada elemento correspondiente de Z<viejo>la precisión del valor respectivo. En cualquier T = t, definir como Z<nuevo>la "contribución" a la cadena de soporte del lapso en la posición de muestreo t (por ejemplo, su correspondiente conjunto de residuales absolutos R), los nuevos valores en los búferes se calculan como sigue, en donde las letras en minúsculas representan elementos específicos en coordenadas dadas (x, y) del plano correspondiente en mayúsculas:
Las operaciones de compensación de movimiento se calculan con relación a la posición de muestreo de la nueva cadena de soporte que se calcula.
MCxy(·) identifica el elemento con coordenadas (x, y) del plano de elementos MC(·). β,aybson parámetros adecuados. En un ejemplo,a=b= 1.
Para tener en cuenta las discontinuidades en la correlación de tiempo, un ejemplo añade la operación descrita más abajo, que "restablece" a cero el valor de p<viejo>en una coordenada (x, y) cuando la diferencia entre un valor del último lapso dado y el correspondiente valor con compensación de movimiento que se contiene en el búfer z<viejo>es superior a un umbral adecuado:
Como ya se mencionó, aprovechar un plano de soporte a lo largo de la dimensión temporal debe considerarse solo como un ejemplo para aplicaciones de métodos predictores comunes (o métodos de "codificación multipredictiva"). El enfoque de agregar la información de varios lapsos (en un hiperplano predictor) y codificar/decodificar residuales con respecto a una predicción generada al procesar tal información agregada puede aplicarse también a otras dimensiones de una señal (es decir, no necesariamente al tiempo), y potencialmente también a más de una de las dimensiones de una misma señal. Cuando se aplica a la dimensión del tiempo, es habitual adoptar ejemplos que usan alguna forma de estimación de movimiento y compensación de movimiento, como se describió previamente. Sin embargo, también para otras dimensiones y otros tipos de señal, puede implementarse un método predictor de soporte con formas de procesamiento de compensación que se destinan a "realinear" lapsos antes de agregarlos en un plano de soporte ("destilando" así su información correlacionada). Un ejemplo, por ejemplo, adopta un método de predicción de soporte a través de diferentes canales de una señal de audio multicanal. Tal ejemplo codifica y decodifica las señales de audio multicanal de acuerdo con un método jerárquico escalonado, en donde los lapsos de cada uno de los canales se representan como conjuntos de elementos (a manera de ejemplo, un valor de amplitud promedio y un valor de tono promedio para el lapso), y los datos residuales para los lapsos correspondientes de los diferentes canales de audio se codifican de acuerdo con un conjunto de datos residuales del elemento de soporte, "compensación de movimiento" (es decir, aplicar las operaciones que corresponden esencialmente a la realineación de lapsos correlacionados) los datos residuales del elemento de soporte a través de canales de acuerdo con la información descriptiva adecuada (por tanto, tiene en cuenta las diferentes posiciones de tiempo de un mismo sonido en diferentes canales - esencialmente en base a la posición 3D de la fuente de sonido frente al micrófono).
Otro ejemplo codifica y decodifica vastos datos volumétricos, al aplicar métodos multipredictivos similares a los que se ilustraron para la dimensión del tiempo de las señales de video a una o más de las dimensiones de una señal volumétrica.
Otro ejemplo codifica y decodifica videos volumétricos, al aplicar métodos similares a los que se ilustraron para secuencias de lapsos bidimensionales a secuencias de lapsos tridimensionales (es decir, el plano de soporte Z es un hiperplano tridimensional de elementos).
Como se expresó previamente, queda claro a partir de los ejemplos descritos que los nuevos métodos de codificación/decodificación en base a uno o más predictores de soporte tienen múltiples ventajas. En primer lugar, los planos de soporte permiten reducir la entropía de la información de los datos residuales. Cuando se aprovechan para señales basadas en el tiempo, los planos de soporte a lo largo de la dimensión del tiempo son particularmente útiles, especialmente de manera que el codificador realiza apropiadamente el corte del lote, el corte de la escena y (si está presente) la estimación/compensación de movimiento. Los planos de soporte también son muy útiles cuando se aplican dentro del lazo de codificación/decodificación de un método jerárquico escalonado.
En general, cuanto mayor sea la correlación de la secuencia de lapsos, mayores serán los beneficios que se proporcionan por un plano de soporte en la predicción de residuales absolutos.
La Figura 3B es un diagrama de ejemplo que ilustra un ejemplo que implementa la codificación de una secuencia de planos multidimensionales de elementos en base a la información de elementos de soporte. Los planos 300-1, ..., 300-N se procesan por el codificador 310, que produce un flujo de datos codificados. En particular, dicho flujo de datos codificados comprende datos codificados #1 320, conjuntos de información descriptiva 330-1, ..., 330-N y conjuntos de datos codificados #2340-1, ..., 340-N.
Los Datos Codificados #1320 se reciben y procesan por el Reconstructor de Soporte 350, que produce el Plano de Soporte 355.
El Plano de Soporte 355 se aprovecha por el decodificador como una línea base para reconstruir representaciones adecuadas correspondientes a los planos originales 300-1, ..., 300-N. En particular, el Plano de Soporte 355 se procesa por el Reconstructor de Referencia 360, que produce los planos de referencia 365-1, ..., 365-N, cada uno que se obtiene al procesar el Plano de Soporte 355 en base a un conjunto correspondiente de Información Descriptiva 330-i. En un ejemplo, las operaciones de procesamiento de imágenes para obtener cada uno de los planos de referencia 365-i comprenden realizar operaciones de compensación de movimiento en el Plano de Soporte 355 en base a la información de movimiento correspondiente al conjunto de Información Descriptiva 330-i.
El reconstructor de residuales relativos 370 recibe y procesa conjuntos de datos codificados #2340-1, ..., 340-N, lo que produce conjuntos de residuales relativos 375-1, ..., 375-N.
El decodificador produce entonces planos reconstruidos 380-1, ..., 380-N al combinar los planos de referencia 365-1, ..., 365-N con los planos de residuales relativos 375-1, ..., 375-N.
La Figura 4A es un diagrama de ejemplo que ilustra un ejemplo de una señal tridimensional basada en el tiempo que se codifica en una jerarquía temporal escalonada con codificación multipredictiva y, en particular, al aprovechar también los planos de soporte con el fin de codificar los datos residuales. La señal de entrada de ejemplo es la misma que la descrita en la Figura 1E, que para todos los propósitos prácticos podemos considerar como una señal de vídeo que consiste en una secuencia de fotogramas bidimensionales.
La representación gráfica es diferente de la que se adopta en la Figura 1E (en particular, no representa las diferentes duraciones de tiempo y posiciones de muestreo de cada uno de los lapsos), ya que la Figura 4A muestra los conjuntos de residuales absolutos R correspondientes a cada uno de los lapsos (como opuesto a los propios lapsos) y los planos de soporte para cada uno de los lotes en cada uno de los LOQ que se muestran. La Figura 4A ilustra cómo la cantidad de datos residuales para los lapsos en diferentes niveles de calidad tiene resoluciones espaciales cada vez más bajas (es decir, cantidades de elementos) y - para los LOQ y los lotes en los que se aplica el encuadre al plano de soporte - la representación de un dado plano de soporte dado a un nivel de calidad dado tiene una mayor cantidad de elementos que conjuntos de residuales absolutos correspondientes a un lapso del mismo nivel de calidad soportado por dicho plano de soporte.
En este ejemplo, un plano de soporte para un lote se centra en la posición de muestreo entera del LOQ #0 que es inmediatamente inferior que o igual al promedio de las posiciones de muestreo de los lapsos del lote en el LOQ #0. En particular, la cadena de planos de soporte SP1 para el lote 1 se centra en la posición de muestreo t = 4, mientras que la cadena de planos de soporte SP2 para el lote 2 se centra en la posición de muestreo t = 11. Para el caso de ejemplo específico, la reconstrucción de residuales absolutos para un lote hasta el LOQ #-3 es equivalente para ambos lotes a solo reconstruir la cadena de soporte, es decir, el conjunto de residuales absolutos 134-4 coincide con el Plano de Soporte SP1-4, el conjunto de residuales absolutos 133-4 coincide con el Plano de Soporte SP1-3, etc. Por el contrario, el plano de soporte tiene su propia identidad distintiva para los niveles de calidad donde un lote se representa por más de un lapso. Por ejemplo, para el LOQ #-2 del lote 1, el plano de soporte SP1-2 es diferente de los conjuntos de residuales absolutos R 102-2 y 102-6.
Las operaciones de codificación y decodificación trabajan de acuerdo con los métodos que se ilustran anteriormente. Un procesador de señales que se configura como codificador ("el codificador") recibe una representación de una señal (por ejemplo, una secuencia de lapsos bidimensionales a una tasa de muestreo constante, en donde cada uno de los lapsos se caracteriza por una posición de muestreo dada y una duración dada) a un nivel de calidad original ("LOQ #0"). El codificador comienza, por el procesamiento de la señal y genera la información de movimiento. En base al menos en parte, a dicha información de movimiento, el codificador identifica una secuencia adecuada de lapsos a codificar independientemente de las secuencias previas y subsecuentes (es decir, un "grupo"); el codificador, en base al menos en parte a los parámetros de codificación adecuados, también divide el grupo en uno o más "lotes" de lapsos. Más específicamente, como se ilustra en la Figura 4A, el codificador identifica un grupo de 13 lapsos y lo divide en el lote 1, que consiste de 8 lapsos, y el lote 2, que consiste de 5 lapsos.
Dentro de cada lote, el codificador comienza la realización de operaciones adecuadas de muestreo descendente y/o mezcla y/o mezcla descendente (que incluyen también las operaciones de compensación de movimiento con el fin de tener en cuenta adecuadamente el movimiento a través de los lapsos), lo que genera niveles de calidad inferiores para la señal. Cuando los lapsos de un nivel de calidad inferior son el resultado de la combinación de lapsos con compensación de movimiento en un nivel de calidad superior (como opuesto a solo un muestreo descendente espacial de un lapso en un nivel de calidad superior), el codificador introduce un grado de "encuadre" al añadir hileras y columnas adicionales a los lapsos del nivel de calidad inferior, más allá de la imagen real ("plano de destino") que se mostraría de manera que la señal tuviese que visualizarse en ese nivel de calidad. En aras de la legibilidad, los lapsos reales de la señal no se muestran en la Figura 4A.
Cuando una de las dimensiones de una representación de un lote con muestreo descendente alcanza una resolución de 1 elemento, el muestreo descendente para los escalones inferiores posteriores se realiza mediante muestreo descendente solamente a lo largo de las dimensiones restantes. Por ejemplo, en el LOQ #-2, el lote 2 logra una resolución de tiempo igual a 1 elemento (es decir, todo el lote se representa por solamente un lapso), por tanto, el muestreo descendente del lote 2 desde el LOQ #-2 al LOQ #-3 procede mediante el muestreo descendente solamente a lo largo de las dimensiones espaciales (que típicamente tienen una resolución mucho mayor).
El proceso de muestreo descendente dentro de cada lote continúa hasta que se logra un nivel de calidad inferior. En el ejemplo de la Figura 4, el LOQ inferior es el LOQ #-4.
Una vez que el codificador genera el LOQ #-4 inferior, el codificador genera conjuntos de residuales absolutos 134-4 y 135-11 para el nivel inferior (en este ejemplo simple, al cuantificar los elementos de los dos lapsos del nivel inferior); en el LOQ #-4, dichos conjuntos de residuales absolutos 134-4 y 135-11 también coinciden, respectivamente, con los planos de soporte SP1-4 y SP2-4 para el lote 1 y el lote 2 en el LOQ #-4. Como consecuencia, en el LOQ #-4 los Residuos del Plano de Soporte R<I>coinciden con los residuales absolutos R, y los Residuos Relativos R<II>son todos iguales a cero.
El codificador comienza entonces la simulación de las operaciones que se realizan en un lado del decodificador, realizando las operaciones de muestreo ascendente adecuadas y generar los lapsos predichos para el LOQ #-3. En este ejemplo, el codificador aprovecha las operaciones de muestreo ascendente temporal con núcleos que incluyen dos elementos por dimensión hasta el LOQ #-1 y cuatro elementos por dimensión desde el LOQ #-1 hasta el LOQ #0. Como ya se mencionó antes, esto se debe al hecho de que en los LOQ inferiores, los elementos son más distantes tanto en el tiempo como en el espacio, por lo que es probable que la correlación entre los elementos sea relativamente local (por ejemplo, trae beneficios limitados y, a veces, es incluso contraproducente, para "pedir contribuciones" a lapsos no correlacionados).
Al comparar los lapsos predichos con los lapsos muestreados descendentemente de la jerarquía escalonada generada a través del muestreo descendente, el codificador genera conjuntos de residuales absolutos 133-4 y 133-11, que de nuevo coinciden con los dos planos de soporte SP1-3 y SP2-3 en el LOQ #-3. El codificador, en base a las representaciones reconstruidas para el LOQ #-3, procede a generar los lapsos predichos para el LOQ #-2. Al comparar los lapsos predichos con los lapsos muestreados descendentemente de la jerarquía escalonada generada a través del muestreo descendente, el codificador genera conjuntos de residuales absolutos 132-2, 132-6 y 132-11. En el LOQ #-2, el lote 1 consta de dos lapsos, por lo que el plano de soporte ya no coincide con ningún conjunto de residuales absolutos, pero es efectivamente un conjunto de elementos de soporte a usar para predecir los dos conjuntos de residuales absolutos 132-2 y 132-6. El codificador procede así con el cálculo del plano de soporte SP1-2, en primer lugar, al calcular su representación S "ideal" (es decir, precodificación y reconstrucción):
en donde las operaciones de compensación de movimiento se realizan con relación a la posición de muestreo del plano de soporte SP1-2, es decir, t = 4.
Ya que, en este ejemplo, los planos de soporte también se codifican de acuerdo con un método jerárquico escalonado, el codificador procede entonces a generar los datos de reconstrucción para el plano de soporte, que comienza por el cálculo, al aplicar operaciones de muestreo ascendente adecuadas al plano de soporte SP1-3 en el LOQ #-3, el plano de soporte predicho V. El codificador calcula entonces los Residuos del Plano de Soporte R<I>:
Como consecuencia, el codificador (que simula las operaciones que se realizarán en un decodificador) reconstruye la representación del Plano de Soporte SP1-2 (descrito matemáticamente como "Z"):
El codificador es ahora capaz de generar conjuntos de residuales relativos para los dos lapsos del LOQ #-2 del lote 1 (no se muestra en la Figura), al calcular la diferencia entre los conjuntos de residuales absolutos R 132-2 y 132-6 y las representaciones con compensación de movimiento (con respecto a la posición de muestreo de cada lapso correspondiente) del plano de soporte SP1-2.
El codificador procede de manera similar hasta el LOQ más alto, generando todos los datos de reconstrucción necesarios (por ejemplo, en este caso de ejemplo, los Residuos del Plano de Soporte, los Residuos Relativos y la información descriptiva para cada LOQ de cada lote).
En el lado del decodificador, un procesador de señales que se configura como un decodificador realiza esencialmente las mismas operaciones simuladas en el lado del codificador con el fin de generar datos de reconstrucción. El decodificador comienza por la recepción de un flujo de datos y la decodificación de los metadatos del marcador de sincronización con el fin de identificar, también en base a los parámetros de decodificación adecuados, la secuencia de lapsos a reconstruir. Al comenzar desde el LOQ más bajo, el decodificador reconstruye las predicciones para los lapsos de un LOQ superior, reconstruye los datos del plano de soporte, reconstruye los datos residuales absolutos al combinar adecuadamente los datos del plano de soporte con datos residuales relativos y, en consecuencia, reconstruye las representaciones para los lapsos del LOQ superior.
Una vez que se reconstruye un LOQ adecuado, el procesador de señales presenta la señal reconstruida a un usuario, por ejemplo, al transmitirla a un dispositivo de reproducción. En dependencia de los datos de reconstrucción que se han recibido y/o en las restricciones de decodificación en tiempo real y/o en otras restricciones (por ejemplo, minimizar el consumo de energía de cálculo, minimizar el consumo de energía eléctrica, minimizar el ancho de banda que se absorbe, maximizar la velocidad de reproducción, etc.) y/o responder a parámetros de entrada específicos, el decodificador también puede detener la decodificación en los diferentes LOQ para diferentes porciones de la señal.
Una vez más, el ejemplo ilustrado debe considerarse como no limitativo, y los expertos en el arte pueden deducir fácilmente cómo combinar todas los ejemplos y métodos descritos hasta ahora con el ejemplo ilustrado en la Figura 4A.
En otros ejemplos, el plano de soporte para un LOQ dado de un lote dado se calcula no al realizar un promedio ponderado a lo largo del tiempo de los residuales absolutos con compensación de movimiento, sino al realizar un promedio ponderado a lo largo del tiempo de los lapsos reales con compensación de movimiento.
Los residuales absolutos para un lapso dado pueden, por tanto, obtenerse al combinar los Residuos Relativos correspondientes con las diferencias entre el lapso predicho para el lapso dado y una representación con compensación de movimiento del plano de soporte; dicho esto, estos ejemplos no requieren que el decodificador produzca residuales absolutos, porque el decodificador puede generar una representación de la señal en el LOQ dado solo al combinar el plano de soporte con compensación de movimiento con los residuales relativos. En tales ejemplos, un plano de soporte para un LOQ dado representa realmente toda la información correlacionada del lote (como opuesto a solo los datos residuales correlacionados). Estos ejemplos son especialmente útiles en ausencia de una jerarquía escalonada de los LOQ.
En otros ejemplos, la información del plano de soporte de los lotes vecinos se aprovecha adecuadamente (por ejemplo, al calcular un promedio ponderado de las representaciones con compensación de movimiento de los planos de soporte) con el fin de generar las predicciones para los residuales absolutos de los lapsos.
En otros ejemplos, los planos de soporte de los lotes vecinos se codifican en una jerarquía escalonada de niveles de agregación.
La Figura 4B y la Figura 4C son diagramas de ejemplo que ilustran un ejemplo de los planos de soporte para residuales absolutos de un LOQ dado, en donde dichos planos de soporte se codifican en una jerarquía escalonada de niveles de agregación. La señal de entrada de ejemplo es la misma que la descrita en la Figura 4A, que para todos los propósitos prácticos puede considerarse como una señal de vídeo que consiste de una secuencia de fotogramas bidimensionales (los lapsos, para el propósito del método). Sin embargo, la división del grupo de la señal en lotes es diferente y también son diferentes las operaciones de muestreo descendente usadas para obtener el LOQ #-1 en base al LOQ #0. En particular, como se ilustra en la Figura 4C, a diferencia de los ejemplos ilustrados en la Figura 1E y la Figura 4A, en este ejemplo, el LOQ #-1 se obtiene a través de un simple muestreo descendente espacial, es decir, se mantiene la misma tasa de muestreo que el LOQ #0. Se prefiere una configuración similar en donde la tasa de muestreo del LOQ superior es relativamente baja, con el fin de evitar caídas excesivas en la calidad de la representación en el LOQ #-1.
Como en la Figura 4A, la Figura 4B muestra gráficamente los conjuntos de residuales absolutos R correspondientes a cada uno de los lapsos (como opuesto a mostrar los propios lapsos) y los planos de soporte para cada uno de los lotes. La Figura 4B solamente muestra el LOQ #0 superior de la señal, para propósitos de legibilidad, mientras que la Figura 4C muestra lo que pasa con los planos de soporte del siguiente LOQ #-1 inferior. Como ya se mencionó, en este ejemplo específico, el siguiente LOQ inferior de la señal, mostrado en la Figura 4C, que tiene la misma tasa de muestreo que el LOQ superior, pero una resolución espacial inferior.
De manera similar a lo que se muestra en la Figura 4A, cada uno de los planos de soporte SP1-0, SP2-0, ..., SP6-0 soporta la reconstrucción de los conjuntos de residuales absolutos del lote correspondiente. A diferencia de lo que se muestra en la Figura 4A, sin embargo, en lugar de reconstruir SPi-0 en base a un plano de soporte correspondiente del mismo lote con un nivel de calidad inferior, este ejemplo codifica y decodifica planos de soporte en base a una jerarquía escalonada específica de niveles de agregación producidos para el LOQ #0 (es decir, sin realizar el muestreo descendente espacial, pero solamente mezcla temporal con compensación de movimiento).
En particular, un procesador de señales que se configura como codificador produce conjuntos de residuales absolutos R 130-1, ..., 130-13 para cada uno de los lapsos en el LOQ #0 y genera planos de soporte SP1-0, SP2-0, ..., SP6-0, en donde cada plano se obtiene mediante la combinación de representaciones con compensación de movimiento adecuadas de los conjuntos de residuales absolutos del lote correspondiente. En este ejemplo simplificado, los lotes se eligen hechos de un máximo de tres lapsos, y la posición de muestreo de un plano de soporte es igual a la posición de muestreo del primer lapso de cada lote dado. Se dice que los planos de soporte SP1-0, ..., SP6-0 son planos de soporte para el LOQ #0 en el nivel de agregación (LOA) #0.
El codificador procede entonces a codificar los planos de soporte SP1-0 y SP2-0 de acuerdo con un plano de soporte de orden superior SP1+3-0-1 a un nivel superior de agregación (LOA #1). En particular, el codificador produce SP1+3-0-1 al combinar las representaciones con compensación de movimiento adecuadas de SP1-0 y SP2-0, de acuerdo con la posición de muestreo de SP1+3-0-1 (en este ejemplo se establece la posición de muestreo de SP1-0, es decir, la más baja de las posiciones de muestreo de los planos que se combinan en el plano de soporte de orden superior). El codificador genera los Residuos del Plano de Soporte R<I∗>(no mostrados en la Figura) para cada uno de los planos de soporte SP1-0 y SP2-0 en base a una diferencia entre dichos planos y una representación con compensación de movimiento del plano de soporte SP1+3-0-1, de acuerdo con la siguiente fórmula:
En donde S representa un plano de soporte (es decir, o SP1-0 o SP2-0) como se calcula inicialmente por el codificador y Z representa la representación reconstruida de dicho plano de soporte en un lado del decodificador (simulado por el codificador con el fin de generar adecuadamente los datos residuales, en base a lo que el decodificador es capaz de reconstruir).
De acuerdo con los mismos métodos, el codificador produce los planos de soporte de orden superior SP3+4-0-1 y SP5+6-0-1, así como también los conjuntos de Residuos del Plano de Soporte R<I∗>(un conjunto por cada plano de soporte) que son necesarios para reconstruir los planos de soporte SP3-0 y SP4-0 en base al plano de soporte de orden superior SP3+4-0-1, y los planos de soporte SP5-0 y SP6-0 en base al plano de soporte de orden superior SP5+6-0-1.
En otro ejemplo, el codificador codifica también los planos de soporte de orden superior en el LOA #1 de acuerdo con uno o más planos de soporte aún de orden superior en el LOA #2 (por ejemplo, el plano de soporte de orden superior SP1+2+3+4+5+6-0-2 mostrado en la Figura 4B). En estos ejemplos, el codificador produce los planos de soporte hasta el nivel de agregación más alto antes de comenzar la producción de conjuntos de Residuos del Plano de Soporte R<I∗>(que simula el proceso de reconstrucción en un lado del decodificador al iniciar desde el nivel de agregación más alto).
En un lado del decodificador, el decodificador reconstruye los planos de soporte en el LOA #0 (es decir, los planos de soporte necesarios con el fin de reconstruir los conjuntos de residuales absolutos) al recibir y decodificar los datos de reconstrucción correspondientes a los planos de soporte de orden superior para el grupo de lotes en el nivel de agregación más alto. El decodificador reconstruye entonces las predicciones para los planos de soporte en el siguiente nivel de agregación inferior y ajusta dichas predicciones en base a los conjuntos recibidos de Residuos del Plano de Soporte R<I∗>. El decodificador reconstruye la jerarquía escalonada de los planos de soporte hasta (o mejor, hasta) el nivel de agregación más bajo.
Como se ilustra en la Figura 4C, cada LOQ de un grupo dado de la señal tiene su propia jerarquía escalonada de niveles de agregación de planos de soporte. En este ejemplo, la jerarquía escalonada de planos de soporte de un LOQ dado es independiente de las jerarquías escalonadas de planos de soporte de otros LOQ de la señal.
La Figura 5 ilustra además un ejemplo de codificación y decodificación de planos 130-1, ..., 130-n basado en un plano de soporte Z 150.
El ejemplo funciona de acuerdo con métodos similares a los ya detallados en otras secciones de esta solicitud. El generador del Plano de Soporte 500 procesa los planos de entrada 130-1, ..., 130-n basándose al menos en parte en la Información Descriptiva 155, produciendo el Plano de Soporte Z 150. El Generador de Residuales Relativos 510 procesa los planos de entrada 130-1, ..., 130-n, la Información Descriptiva 155 y el Plano de Soporte Z 150, produciendo conjuntos de residuales relativos R<II>160 (en donde cada uno de dichos conjuntos corresponde a un plano de entrada específico 130-i). El Codificador de Entropía 520 procesa Información Descriptiva 155, Plano de Soporte Z 150 y conjuntos de residuales relativos R<II>160, produciendo, respectivamente, datos codificados 530-155, 530-150 y 530-160.
El decodificador del Plano de Soporte 540 procesa los datos codificados 530-150, produciendo el Plano de Soporte 5-150 reconstruido.
El decodificador de Residuos Relativos 545 procesa datos codificados 530-160, produciendo conjuntos de residuales relativos reconstruidos 5-160, correspondiendo cada uno de dichos conjuntos a una representación reconstruida de un plano de entrada específico 130-i.
El reconstructor 550 procesa el Plano de Soporte 5-150 reconstruido y los residuales relativos 5-160 reconstruidos, produciendo planos reconstruidos 5-130-1, ..., 5-130-n.
La Figura 6 ilustra además un ejemplo de decodificación de conjuntos de elementos de una señal en base a residuales absolutos reconstruidos por medio de un plano de soporte.
El Compensador de Movimiento 630 recibe y procesa el Plano de Soporte 610 y la Información Descriptiva sobre el Movimiento 615, produciendo el Plano de Soporte con compensación de movimiento 635. El Plano de Soporte con compensación de movimiento 635 se procesa mediante la Calculadora de Residuos de Referencia 640 con Información Descriptiva 645, produciendo el plano de Residuos de Referencia 650. Los Residuales de Referencia 650 se combinan con los Residuales Relativos 620 mediante el Combinador 660, produciendo Residuales Absolutos 670.
Los Residuales Absolutos 670 se combina con la Predicción 600 mediante el Combinador 680, produciendo la Representación Y 690.
La Figura 7A y 7B ilustran además un ejemplo de codificación y decodificación de conjuntos de residuales absolutos en base a un plano de soporte.
En un procesador de señales configurado como codificador, los planos de los Residuales Absolutos 130-1 y 130-2 son procesados por el Generador del Plano de Soporte 700, produciendo el Plano de Soporte Z 750 y los Metadatos 755.
Un procesador de señal configurado como decodificador recibe el Plano de Soporte Z 750, Metadatos sobre movimiento 755-1 y Residuales Relativos 760-1. La Calculadora de Residuales de Referencia 710 procesa el Plano de Soporte Z 750 en base a Metadatos sobre el movimiento 755-1, produciendo el plano de Residuales de Referencia 740-1. El Combinador 720 combina entonces los Residuales de Referencia 740-1 con los Residuales Relativos 760-1, produciendo la Representación de los Residuales Absolutos 1730-1 (es decir, una representación reconstruida correspondiente al plano codificado de los Residuales Absolutos 130-1).
La Figura 8 es un diagrama de bloques de un sistema informático 800 que proporciona procesamiento informático de acuerdo con los ejemplos en la presente descripción.
El sistema informático 800 puede ser, o al menos incluir, un dispositivo informático tal como un ordenador personal, un circuito de procesamiento, un televisor, un dispositivo de reproducción, un dispositivo de codificación, una estación de trabajo, un dispositivo informático portátil, un teléfono móvil, una tableta, una consola, una caja decodificadora, un terminal de red, un dispositivo de procesamiento, un dispositivo de red, funcionando como un conmutador, enrutador, servidor, cliente, etc.
Tenga en cuenta que la siguiente descripción proporciona un ejemplo básico que indica cómo llevar a cabo la funcionalidad asociada con un procesador de señales como se analizó anteriormente. Sin embargo, se debe señalar que la configuración real para llevar a cabo las operaciones como se describió en la presente descripción puede variar en dependencia de la aplicación respectiva.
Como se muestra, el sistema informático 800 del presente ejemplo comprende un bus de comunicación 811, que proporciona comunicación con un medio de almacenamiento legible por ordenador 812 tal como un medio de almacenamiento no transitorio legible por ordenador, etc., en el cual se puede almacenar y recuperar información digital.
El sistema informático 800 puede comprender además un procesador 813, una interfaz de E/S 814 y una interfaz de comunicaciones 817.
En un ejemplo, la interfaz de E/S 814 proporciona conectividad al depósito 880 y, si está presente, a una pantalla, altavoces de audio, dispositivos periféricos 816 tales como un teclado, un ratón de ordenador, etc. Como se mencionó brevemente antes, el medio de almacenamiento legible por ordenador 812 puede ser cualquier dispositivo y/o hardware adecuado tal como una memoria, almacenamiento óptico, almacenamiento de estado sólido, disco duro, disquete, etc. En un ejemplo, el medio de almacenamiento 812 es un medio de almacenamiento no transitorio (es decir, un medio de onda no portadora) configurada para almacenar las instrucciones asociadas con una aplicación del procesador de señales 840-1. Las instrucciones se ejecutan por un recurso respectivo tal como el procesador 813 con el fin de realizar cualquiera de las operaciones que se describen en la presente descripción.
La interfaz de comunicaciones 817 permite que el sistema informático 800 se comunique a través de una red 890 con el fin de recuperar información de fuentes remotas y comunicarse con otros ordenadores, conmutadores, clientes, servidores, etc. La interfaz de E/S 814 también permite que el procesador 813 recupere o intente recuperar la información almacenada del depósito 880. Como se muestra, los medios de almacenamiento legibles por ordenador 812 se pueden codificar con la aplicación de procesador de señales 840-1 ejecutada por el procesador 813 como un proceso 840-2.
Tenga en cuenta que el sistema informático 800 se puede incorporar para incluir un medio de almacenamiento legible por ordenador 812 para almacenar los datos y/o instrucciones lógicas.
El código asociado con la aplicación de procesador de señales 840-1 puede implementar las funcionalidades de los procesadores de señales ilustrados en la presente descripción y/u otros recursos necesarios para implementar la invención analizada en la presente descripción.
Durante la operación de un ejemplo, el procesador 813 accede a los medios de almacenamiento legibles por ordenador 812 a través del bus de comunicación 811 con el fin de lanzar, corre, ejecutar, interpretar o realizar de cualquier otra manera las instrucciones de la aplicación del procesador de señales 840-1 almacenadas en los medios de almacenamiento legibles por ordenador 812. La ejecución de la aplicación del procesador de señales 840-1 produce la funcionalidad de procesamiento en el procesador 813. En otras palabras, el proceso del procesador de señales 840-2 asociado con el procesador 813 representa uno o más aspectos de la ejecución de la aplicación del procesador de señales 840-1 dentro de o sobre el procesador 813 en el sistema informático 800.
Los expertos en el arte comprenderán que el sistema informático 800 puede incluir otros procesos y/o componentes de software y hardware tales como un sistema operativo u otro software que controle la asignación y el uso de los recursos de procesamiento de hardware para ejecutar la aplicación del procesador de señales 840-1.
De acuerdo con diferentes ejemplos, tenga en cuenta que el sistema informático puede ser cualquiera de varios tipos de dispositivos, incluyendo, pero sin limitarse a, un sistema informático personal, una ordenador de escritorio, una ordenador portátil, una notebook, una netbook, un sistema informático central, una ordenador de mano, una estación de trabajo, un ordenador en red, un servidor de aplicaciones, un dispositivo de almacenamiento, un dispositivo electrónico de consumo tal como una cámara, una videocámara, una caja decodificadora, un dispositivo móvil, un teléfono inteligente, una tableta, una consola de videojuegos, un dispositivo portátil de videojuegos, un dispositivo periférico tal como un conmutador, un módem, un enrutador o, en general, cualquier tipo de dispositivo informático o electrónico.
Tenga en cuenta de nuevo que las técnicas en la presente descripción son muy adecuadas para codificar y decodificar en sistemas jerárquicos. Sin embargo, se debe señalar que los ejemplos en la presente descripción no se limitan al uso en tales aplicaciones y que las técnicas que se describen en la presente descripción también son adecuadas para otras aplicaciones.
En base a la descripción que se expone en la presente descripción, se han expuesto numerosos detalles específicos para proporcionar una comprensión completa del tema reivindicado. Sin embargo, se entenderá por los expertos en el arte que el tema reivindicado se puede llevar a la práctica sin estos detalles específicos. En otros casos, los métodos, aparatos, sistemas, etc., que serían conocidos por un experto, no se han descrito en detalle para no opacar el tema reivindicado. Algunas porciones de la descripción detallada se han presentado en términos de algoritmos o representaciones simbólicas de operaciones en bits de datos o señales digitales binarias almacenadas dentro de la memoria de un sistema informático tal como una memoria de ordenador.
Estas descripciones algorítmicas o representaciones son ejemplos de técnicas usadas por los expertos en las artes del procesamiento de datos para transportar la esencia de su trabajo a otros expertos en el arte. Un algoritmo como se describió en la presente descripción, y generalmente, se considera que es una secuencia autoconsistente de operaciones o un procesamiento similar que conduce a un resultado deseado. En este contexto, las operaciones o el procesamiento implican la manipulación física de cantidades físicas. Típicamente, aunque no necesariamente, tales cantidades pueden tomar la forma de señales eléctricas o magnéticas capaces de ser almacenadas, transferidas, combinadas, comparadas o de cualquier otra manera manipuladas. En ocasiones es conveniente, principalmente por razones de uso común, referirse a tales señales como bits, datos, valores, configuraciones, elementos, símbolos, caracteres, términos, números, numerales o similares. Sin embargo, se debe entender que todos estos términos y similares se deben asociar con las cantidades físicas apropiadas y son simplemente etiquetas convenientes. A menos que se indique específicamente de cualquier otra manera, como se evidencia a partir de la siguiente descripción, se aprecia que a lo largo de esta especificación, las descripciones que utilizan términos tales como "procesamiento", "computación", "cálculo", "producción", "determinación" o similares se refieren a acciones o procesos de una plataforma informática tal como un ordenador o un dispositivo informático electrónico similar, que manipula o transforma los datos representados como cantidades físicas electrónicas o magnéticas dentro de memorias, registros u otros dispositivos de almacenamiento de información, dispositivos de transmisión o dispositivos de visualización de la plataforma informática.
Mientras que esta invención se ha mostrado y descrito particularmente con referencia a ejemplos preferidas de la misma, se entenderá por los expertos en el arte que diversos cambios en la forma y detalles pueden hacerse en la misma.
Claims (15)
1. Método para codificar una señal de vídeo en un codificador, en donde el método comprende, mediante hardware de procesamiento informático:
generar una secuencia de valores residuales absolutos (130) como diferencias respectivas entre una secuencia de lapsos (100) y una secuencia correspondiente de predicciones (110) al mismo nivel de calidad que la secuencia de lapsos, siendo la secuencia de predicciones (110) generada por decodificaciones simuladas de muestreo ascendente de lapsos correspondientes a un nivel de calidad inferior, los niveles de calidad correspondientes a resoluciones espaciales, la secuencia de lapsos representa una secuencia de fotogramas de vídeo bidimensionales para la señal de vídeo, comprendiendo cada lapso una combinación de fotogramas de la señal de vídeo dentro de una posición de muestreo determinada y una duración de tiempo dada y que se define por una posición de muestreo dentro de la señal de vídeo, una duración de tiempo dentro de la señal de vídeo y un número de imagen dentro de la señal de vídeo con el nivel de calidad superior;
producir un primer plano de soporte (150) como un promedio ponderado, o modo estadístico, de dichos conjuntos de valores residuales absolutos (130);
codificar el primer plano de soporte (150) y reconstruir una representación del primer plano de soporte; generar conjuntos de residuales relativos (160) correspondientes a dicho primer plano de soporte, correspondiendo cada uno de dichos conjuntos a un lapso específico en la secuencia de lapsos (100), generándose los conjuntos de residuales relativos (160) como la diferencia entre los conjuntos de residuales absolutos (130) y la representación reconstruida del primer plano de soporte (150); codificar los conjuntos de residuales relativos (160); y
codificar datos que permiten la generación de la secuencia de predicciones.
2. Método según la reivindicación 1, en donde dichos conjuntos generadores de residuales relativos (160) comprenden:
procesar información descriptiva (155) que comprende información sobre el movimiento a lo largo de la secuencia de lapsos;
usar la información descriptiva (155) para compensar el movimiento de cada conjunto de residuales absolutos, calculándose las operaciones de compensación de movimiento con respecto a una posición de muestreo de muestra.
3. Método según la reivindicación 2, en donde a elementos de conjuntos compensados de movimiento de los elementos se les asigna un valor predeterminado en el caso de que, en base a un conjunto específico de valores residuales absolutos e información de movimiento, a dichos elementos no se les pueda asignar ningún valor adecuado.
4. Método según la reivindicación 3, en donde los elementos a los que se les asigna el valor predeterminado no se consideran en una operación promedio ponderada usada para calcular el primer plano de soporte (150) y los pesos de los elementos restantes se normalizan para hacer que su suma sea igual a 1.
5. Método según la reivindicación 1, en donde se obtiene una representación reconstruida para un lapso dado al combinar el conjunto reconstruido de residuales relativos dentro de una primera predicción para el lapso dado derivado de la secuencia de predicciones (110) y una segunda predicción para los conjuntos correspondientes de valores residuales absolutos derivados del primer plano de soporte (150).
6. Método según la reivindicación 1, en donde los pesos del promedio ponderado se adaptan para maximizar un número de valores residuales relativos que son sustancialmente iguales a cero seguido de un proceso de cuantificación.
7. Método según la reivindicación 1, en donde los valores del primer plano de soporte se ajustan de acuerdo con un método de optimización iterativo, para minimizar una métrica de entropía de información para los conjuntos de residuales relativos y el plano de soporte mientras se mantiene por encima de un umbral una métrica de calidad para la representación reconstruida de la secuencia de lapsos.
8. Método según la reivindicación 1, que comprende:
igualar los conjuntos de valores residuales absolutos antes de la generación del primer plano de soporte (150).
9. Método según la reivindicación 1, que comprende:
procesar los conjuntos de valores residuales absolutos con una transformación que comprende una de: transformadas de descomposición, transformadas de Hadamard, transformadas DCT y transformadas wavelet.
10. Método según la reivindicación 1, que comprende:
generar información descriptiva (155) correspondiente a porciones de un lapso que no se van a reconstruir en el decodificador mediante el uso del primer plano de soporte, en donde los residuales relativos correspondientes a dichas porciones se procesan directamente para generar los residuales absolutos correspondientes sin combinarse primero con los elementos correspondientes del primer plano de soporte.
11. Método según la reivindicación 1, en donde el primer plano de soporte se genera sin realizar operaciones de compensación de movimiento.
12. Un codificador adaptado para realizar el método de una cualquiera de las reivindicaciones 1 a 11.
13. Un programa de ordenador que comprende instrucciones que, cuando el programa se ejecuta en un ordenador, hacen que el ordenador lleve a cabo las etapas del método de una cualquiera de las reivindicaciones 1 a 11.
14. Un decodificador adaptado para decodificar datos codificados generados mediante el uso del método de una cualquiera de las reivindicaciones 1 a 11, estando adaptado el decodificador para:
obtener una reconstrucción de la secuencia de predicciones (110) a partir de los datos codificados permitiendo la generación de la secuencia de predicciones (110);
obtener una reconstrucción de los conjuntos de residuales relativos a partir de los datos codificados correspondientes a los conjuntos de residuales relativos (160);
obtener una reconstrucción del primer plano de soporte a partir de los datos codificados correspondientes al primer plano de soporte (150); y
combinar al menos la reconstrucción de la secuencia de predicciones, la reconstrucción de los conjuntos de residuales relativos (160) y la reconstrucción del primer plano de soporte (150) para reconstruir una representación de la secuencia de lapso (100).
15. Un decodificador según la reivindicación 14, en donde conjuntos de residuales relativos (160) solamente se reciben para porciones espaciales específicas de la señal de vídeo.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261646797P | 2012-05-14 | 2012-05-14 | |
| US201261647426P | 2012-05-15 | 2012-05-15 | |
| PCT/EP2013/059853 WO2013171175A1 (en) | 2012-05-14 | 2013-05-13 | Encoding and reconstruction of residual data based on support information |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2961397T3 true ES2961397T3 (es) | 2024-03-11 |
Family
ID=48430778
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13722426T Active ES2961397T3 (es) | 2012-05-14 | 2013-05-13 | Codificación y reconstrucción de datos residuales en base a información de soporte |
| ES13722424T Active ES2907510T3 (es) | 2012-05-14 | 2013-05-13 | Descomposición de datos residuales durante la codificación, decodificación y reconstrucción de señales en una jerarquía escalonada |
| ES13724216T Active ES2909879T3 (es) | 2012-05-14 | 2013-05-14 | Decodificación y reconstrucción de señales basadas en el tiempo y/o multidimensionales en una jerarquía temporal escalonada |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13722424T Active ES2907510T3 (es) | 2012-05-14 | 2013-05-13 | Descomposición de datos residuales durante la codificación, decodificación y reconstrucción de señales en una jerarquía escalonada |
| ES13724216T Active ES2909879T3 (es) | 2012-05-14 | 2013-05-14 | Decodificación y reconstrucción de señales basadas en el tiempo y/o multidimensionales en una jerarquía temporal escalonada |
Country Status (18)
| Country | Link |
|---|---|
| US (16) | US9621887B2 (es) |
| EP (7) | EP2850831A1 (es) |
| JP (6) | JP6336438B2 (es) |
| KR (6) | KR20150020568A (es) |
| CN (7) | CN104641643B (es) |
| AU (5) | AU2013261838A1 (es) |
| BR (5) | BR112014028283A2 (es) |
| CA (6) | CA2873496A1 (es) |
| DK (2) | DK2850829T3 (es) |
| EA (5) | EA201492090A1 (es) |
| ES (3) | ES2961397T3 (es) |
| HK (4) | HK1203263A1 (es) |
| IL (4) | IL235576A0 (es) |
| MX (5) | MX339635B (es) |
| PL (1) | PL2850829T3 (es) |
| SG (6) | SG11201407419RA (es) |
| WO (6) | WO2013171175A1 (es) |
| ZA (5) | ZA201408541B (es) |
Families Citing this family (134)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8977065B2 (en) * | 2011-07-21 | 2015-03-10 | Luca Rossato | Inheritance in a tiered signal quality hierarchy |
| KR20140046055A (ko) * | 2011-09-08 | 2014-04-17 | 모토로라 모빌리티 엘엘씨 | 계수들의 직사각형 블록의 양자화 및 역양자화를 위한 방법들 및 장치 |
| KR20150020568A (ko) * | 2012-05-14 | 2015-02-26 | 루카 로사토 | 시간을 따라 샘플들의 시퀀스들의 블렌딩에 기초한 인코딩과 디코딩 |
| US9313495B2 (en) * | 2012-05-14 | 2016-04-12 | Luca Rossato | Encoding and decoding based on blending of sequences of samples along time |
| KR20150068402A (ko) * | 2012-10-07 | 2015-06-19 | 뉴메리 엘티디. | 동영상 압축 방법 |
| CN104142939B (zh) * | 2013-05-07 | 2019-07-02 | 杭州智棱科技有限公司 | 一种基于运动特征信息匹配特征码的方法与设备 |
| CN104144520A (zh) | 2013-05-07 | 2014-11-12 | 李东舸 | 一种设备间建立连接的方法、装置与系统 |
| US10157447B2 (en) | 2013-06-25 | 2018-12-18 | Numeri Ltd. | Multi-level spatial resolution increase of video |
| MY177309A (en) * | 2013-07-22 | 2020-09-11 | Sony Corp | Information processing apparatus and method |
| JP5947269B2 (ja) * | 2013-09-24 | 2016-07-06 | ソニー株式会社 | 符号化装置、符号化方法、送信装置および受信装置 |
| US9432338B2 (en) * | 2013-10-23 | 2016-08-30 | Google Inc. | Secure communications using adaptive data compression |
| JP6463900B2 (ja) * | 2014-04-17 | 2019-02-06 | キヤノン株式会社 | 画像符号化装置及びその制御方法 |
| ES2953917T3 (es) | 2015-04-13 | 2023-11-17 | V Nova Int Ltd | Codificación de una pluralidad de señales con objetivo de velocidad de datos de una señal en dependencia de la complejidad de la información |
| GB2539241B (en) * | 2015-06-11 | 2019-10-23 | Advanced Risc Mach Ltd | Video processing system |
| US10061552B2 (en) | 2015-11-25 | 2018-08-28 | International Business Machines Corporation | Identifying the positioning in a multiple display grid |
| GB2544800A (en) | 2015-11-27 | 2017-05-31 | V-Nova Ltd | Adaptive bit rate ratio control |
| FR3044507A1 (fr) * | 2015-11-30 | 2017-06-02 | Orange | Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants |
| JP2017099616A (ja) * | 2015-12-01 | 2017-06-08 | ソニー株式会社 | 手術用制御装置、手術用制御方法、およびプログラム、並びに手術システム |
| US10630992B2 (en) * | 2016-01-08 | 2020-04-21 | Samsung Electronics Co., Ltd. | Method, application processor, and mobile terminal for processing reference image |
| PL3420497T3 (pl) | 2016-02-23 | 2022-02-07 | Société des Produits Nestlé S.A. | Kod i pojemnik systemu do przygotowywania napojów albo produktów żywnościowych |
| GB2547934B (en) * | 2016-03-03 | 2021-07-07 | V Nova Int Ltd | Adaptive video quality |
| DE112017000025B4 (de) * | 2016-03-03 | 2025-02-20 | Hoya Corporation | Verfahren zur Erzeugung von Korrekturdaten und Vorrichtung zur Erzeugung von Korrekturdaten |
| KR102326290B1 (ko) * | 2016-03-24 | 2021-11-15 | 포컬 포인트 포지셔닝 리미티드 | 디지털 신호 및 상관 코드를 상관시키기 위한 방법, 장치, 컴퓨터 프로그램, 칩 셋, 또는 데이터 구조 |
| KR102520957B1 (ko) | 2016-04-15 | 2023-04-12 | 삼성전자주식회사 | 인코딩 장치, 디코딩 장치 및 이의 제어 방법 |
| KR101780782B1 (ko) * | 2016-07-08 | 2017-09-21 | 엔트릭스 주식회사 | 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치 |
| US11570454B2 (en) | 2016-07-20 | 2023-01-31 | V-Nova International Limited | Use of hierarchical video and image coding for telepresence |
| GB2553086B (en) * | 2016-07-20 | 2022-03-02 | V Nova Int Ltd | Decoder devices, methods and computer programs |
| GB2552353B (en) * | 2016-07-20 | 2022-04-20 | V Nova Int Ltd | Apparatuses, methods, computer programs and computer-readable media |
| US10728227B2 (en) | 2016-08-02 | 2020-07-28 | X-Logos, LLC | Methods and systems for enhanced data-centric encryption systems using geometric algebra |
| US11153594B2 (en) | 2016-08-29 | 2021-10-19 | Apple Inc. | Multidimensional quantization techniques for video coding/decoding systems |
| GB2553557B (en) * | 2016-09-08 | 2022-04-20 | V Nova Int Ltd | Data processing apparatuses, methods, computer programs and computer-readable media |
| GB2554065B (en) * | 2016-09-08 | 2022-02-23 | V Nova Int Ltd | Data processing apparatuses, methods, computer programs and computer-readable media |
| GB2553556B (en) | 2016-09-08 | 2022-06-29 | V Nova Int Ltd | Data processing apparatuses, methods, computer programs and computer-readable media |
| CN109716763A (zh) * | 2016-09-26 | 2019-05-03 | 索尼公司 | 编码设备、编码方法、解码设备、解码方法、发送设备和接收设备 |
| US20180109809A1 (en) * | 2016-10-13 | 2018-04-19 | Google Llc | Voxel video coding |
| CN106529589A (zh) * | 2016-11-03 | 2017-03-22 | 温州大学 | 采用降噪堆叠自动编码器网络的视觉目标检测方法 |
| US10694202B2 (en) * | 2016-12-01 | 2020-06-23 | Qualcomm Incorporated | Indication of bilateral filter usage in video coding |
| US10609367B2 (en) * | 2016-12-21 | 2020-03-31 | Qualcomm Incorporated | Low-complexity sign prediction for video coding |
| JP7159057B2 (ja) * | 2017-02-10 | 2022-10-24 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 自由視点映像生成方法及び自由視点映像生成システム |
| US10701390B2 (en) * | 2017-03-14 | 2020-06-30 | Qualcomm Incorporated | Affine motion information derivation |
| TWI755616B (zh) | 2017-04-21 | 2022-02-21 | 美商時美媒體公司 | 用於編碼器導引自適應性品質演現的系統及方法 |
| RU2729705C2 (ru) | 2017-04-21 | 2020-08-11 | Зенимакс Медиа Инк. | Системы и способы компенсации движения на основании ввода игрока |
| KR20210148381A (ko) * | 2017-04-21 | 2021-12-07 | 제니맥스 미디어 인크. | 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들 |
| US10638126B2 (en) * | 2017-05-05 | 2020-04-28 | Qualcomm Incorporated | Intra reference filter for video coding |
| CN110800302A (zh) * | 2017-06-07 | 2020-02-14 | 联发科技股份有限公司 | 用于视频编解码的帧内-帧间预测的方法及装置 |
| EP3422722A1 (en) * | 2017-06-30 | 2019-01-02 | Thomson Licensing | Method for encoding a matrix of image views obtained from data acquired by a plenoptic camera |
| US10319114B2 (en) * | 2017-07-13 | 2019-06-11 | Google Llc | Foveated compression of display streams |
| TWI650981B (zh) * | 2017-09-29 | 2019-02-11 | 晨星半導體股份有限公司 | 符號率估計裝置與符號率估計方法 |
| US11457239B2 (en) | 2017-11-09 | 2022-09-27 | Google Llc | Block artefact reduction |
| EP3496403A1 (en) | 2017-12-06 | 2019-06-12 | V-Nova International Limited | Hierarchical data structure |
| WO2019111012A1 (en) * | 2017-12-06 | 2019-06-13 | V-Nova International Ltd | Method and apparatus for decoding a received set of encoded data |
| GB2573486B (en) | 2017-12-06 | 2022-12-21 | V Nova Int Ltd | Processing signal data using an upsampling adjuster |
| CN108133229B (zh) * | 2017-12-11 | 2021-08-06 | 广州能量盒子科技有限公司 | 一种安卓apk文件的分类加密方法及系统 |
| CN108040217B (zh) * | 2017-12-20 | 2020-01-24 | 深圳岚锋创视网络科技有限公司 | 一种视频解码的方法、装置及相机 |
| US10748306B2 (en) * | 2018-03-19 | 2020-08-18 | Fuji Xerox Co., Ltd. | Encoding device, decoding device, and non-transitory computer readable medium |
| WO2019183113A1 (en) | 2018-03-20 | 2019-09-26 | Pcms Holdings, Inc. | System and method for optimizing dynamic point clouds based on prioritized transformations |
| EP3769257A1 (en) | 2018-03-20 | 2021-01-27 | PCMS Holdings, Inc. | System and method for dynamically adjusting level of details of point clouds |
| CN108449599B (zh) * | 2018-03-23 | 2021-05-18 | 安徽大学 | 一种基于面透射变换的视频编码与解码方法 |
| GB2574575A (en) | 2018-04-27 | 2019-12-18 | V Nova Int Ltd | Video decoder chipset |
| KR102841953B1 (ko) | 2018-06-06 | 2025-08-04 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치 |
| US12212781B2 (en) | 2018-08-03 | 2025-01-28 | V-Nova International Limited | Architecture for signal enhancement coding |
| KR102509466B1 (ko) * | 2018-08-08 | 2023-03-14 | 구글 엘엘씨 | 장면의 초해상도 이미지를 생성하기 위한 광학 이미지 안정화 움직임 |
| JP7223117B2 (ja) | 2018-08-09 | 2023-02-15 | グーグル エルエルシー | ユーザデバイスに適用される自然の手持ち式の動きを用いた超解像 |
| WO2020060163A1 (ko) * | 2018-09-17 | 2020-03-26 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
| US12126839B2 (en) | 2018-10-03 | 2024-10-22 | V-Nova International Limited | Weighted downsampling and weighted transformations for signal coding |
| CN110163059B (zh) * | 2018-10-30 | 2022-08-23 | 腾讯科技(深圳)有限公司 | 多人姿态识别方法、装置及电子设备 |
| GB201817783D0 (en) * | 2018-10-31 | 2018-12-19 | V Nova Int Ltd | Methods,apparatuses, computer programs and computer-readable media for processing configuration data |
| GB201817784D0 (en) * | 2018-10-31 | 2018-12-19 | V Nova Int Ltd | Methods,apparatuses, computer programs and computer-readable media |
| GB201817780D0 (en) * | 2018-10-31 | 2018-12-19 | V Nova Int Ltd | Methods,apparatuses, computer programs and computer-readable media for processing configuration data |
| GB2578769B (en) | 2018-11-07 | 2022-07-20 | Advanced Risc Mach Ltd | Data processing systems |
| US10880354B2 (en) | 2018-11-28 | 2020-12-29 | Netflix, Inc. | Techniques for encoding a media title while constraining quality variations |
| US10841356B2 (en) | 2018-11-28 | 2020-11-17 | Netflix, Inc. | Techniques for encoding a media title while constraining bitrate variations |
| US12022059B2 (en) | 2018-12-07 | 2024-06-25 | Beijing Dajia Internet Information Technology Co., Ltd. | Video coding using multi-resolution reference picture management |
| CN113273211B (zh) | 2018-12-14 | 2024-07-30 | 交互数字Vc控股公司 | 用于对空间数据进行程序化着色的系统和方法 |
| CN114885166B (zh) * | 2018-12-29 | 2024-04-12 | 华为技术有限公司 | 编码器,解码器和使用压缩mv存储的对应方法 |
| GB2583061B (en) * | 2019-02-12 | 2023-03-15 | Advanced Risc Mach Ltd | Data processing systems |
| WO2020165575A1 (en) * | 2019-02-13 | 2020-08-20 | V-Nova International Ltd | Object analysis |
| EP3713235B1 (en) | 2019-03-19 | 2023-08-02 | Axis AB | Methods and devices for encoding a video stream using a first and a second encoder |
| GB2599805B (en) | 2019-03-20 | 2023-09-06 | V Nova Int Ltd | Temporal signalling for video coding technology |
| US12335508B2 (en) * | 2019-03-20 | 2025-06-17 | V-Nova International Limited | Residual filtering in signal enhancement coding |
| US20220191521A1 (en) | 2019-03-20 | 2022-06-16 | V-Nova International Limited | Processing of residulas in video coding |
| GB201905400D0 (en) | 2019-04-16 | 2019-05-29 | V Nova Int Ltd | Video coding technology |
| US11412262B2 (en) * | 2019-06-24 | 2022-08-09 | Qualcomm Incorporated | Nonlinear extensions of adaptive loop filtering for video coding |
| GB2600617B (en) | 2019-07-05 | 2024-06-12 | V Nova Int Ltd | Quantization of residuals in video coding |
| EP3994881A4 (en) | 2019-07-05 | 2022-10-19 | Beijing Dajia Internet Information Technology Co., Ltd. | MOTION COMPENSATION USING COMBINED INTER AND INTRA PREDICTION |
| US10942625B1 (en) * | 2019-09-09 | 2021-03-09 | Atlassian Pty Ltd. | Coordinated display of software application interfaces |
| EP4035376A1 (en) * | 2019-09-24 | 2022-08-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Multiple stage residual coding in modern hybrid image and video coding solutions |
| CN110572673B (zh) * | 2019-09-27 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 视频编解码方法和装置、存储介质及电子装置 |
| TWI812874B (zh) | 2019-10-01 | 2023-08-21 | 美商杜拜研究特許公司 | 張量乘積之b平滑曲線預測子 |
| US12192505B2 (en) | 2019-10-02 | 2025-01-07 | V-Nova International Limited | Use of transformed coefficients to provide embedded signalling for watermarking |
| EP4059217A4 (en) * | 2019-11-27 | 2023-11-29 | HFI Innovation Inc. | METHOD AND APPARATUS FOR DERIVING UNIFORM WEIGHT AND MOVEMENT INDICES FOR GEOMETRIC FUSION MODE IN VIDEO CODING |
| CN114868393B (zh) * | 2019-12-17 | 2025-06-13 | 阿里巴巴(中国)有限公司 | 执行环绕运动补偿的方法 |
| CN111050181B (zh) * | 2019-12-30 | 2022-06-07 | 哈尔滨工业大学 | 一种超光谱大气红外遥感图像的时间维压缩方法 |
| US11348514B2 (en) | 2020-02-06 | 2022-05-31 | Varjo Technologies Oy | LED-based display apparatus and method incorporating sub-pixel shifting |
| US11307410B2 (en) | 2020-02-06 | 2022-04-19 | Varjo Technologies Oy | Display apparatus and method incorporating adaptive pose locking |
| US11056030B1 (en) | 2020-02-06 | 2021-07-06 | Varjo Technologies Oy | Display apparatus and method of enhancing apparent resolution using liquid-crystal device |
| US11308900B2 (en) | 2020-02-06 | 2022-04-19 | Varjo Technologies Oy | Display apparatus and method incorporating sub-pixel aware shifting and overlap compensation |
| US11170678B2 (en) | 2020-02-06 | 2021-11-09 | Varjo Technologies Oy | Display apparatus and method incorporating gaze-based modulation of pixel values |
| GB202001839D0 (en) | 2020-02-11 | 2020-03-25 | V Nova Int Ltd | Use of tiered hierarchical coding for point cloud compression |
| WO2021168415A1 (en) * | 2020-02-20 | 2021-08-26 | Align Technology, Inc. | Medical imaging data compression and extraction on client side |
| KR20220160038A (ko) | 2020-03-26 | 2022-12-05 | 알리바바 그룹 홀딩 리미티드 | 비디오 코딩 데이터를 시그널링하기 위한 방법들 |
| GB2598701B (en) | 2020-05-25 | 2023-01-25 | V Nova Int Ltd | Wireless data communication system and method |
| US11403175B2 (en) * | 2020-07-31 | 2022-08-02 | EMC IP Holding Company LLC | Rebuilding data previously stored on a failed data storage drive |
| US11764943B2 (en) | 2020-08-10 | 2023-09-19 | Algemetric, Inc. | Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology |
| WO2022061184A2 (en) | 2020-09-17 | 2022-03-24 | X-Logos, LLC | Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers |
| GB2601990B (en) | 2020-10-16 | 2024-06-19 | V Nova Int Ltd | Distributed analysis of a multi-layer signal encoding |
| KR20230098817A (ko) * | 2020-10-23 | 2023-07-04 | 모멘티 인코포레이션 | 반응형영상 제작 및 서비스 제공방법 및 이를 이용한 프로그램 |
| GB202017750D0 (en) * | 2020-11-10 | 2020-12-23 | Mead Johnson Nutrition Co | Systems and methods for recognising children suffering cows' milk allergy |
| GB2601368B (en) * | 2020-11-27 | 2023-09-20 | V Nova Int Ltd | Video decoding using post-processing control |
| GB2621248B (en) * | 2020-11-27 | 2024-09-04 | V Nova Int Ltd | Video encoding using pre-processing |
| CN112261491B (zh) * | 2020-12-22 | 2021-04-16 | 北京达佳互联信息技术有限公司 | 视频时序标注方法、装置、电子设备及存储介质 |
| GB202107036D0 (en) | 2021-05-17 | 2021-06-30 | V Nova Int Ltd | Secure decoder and secure decoding methods |
| CN113900901B (zh) * | 2021-10-21 | 2024-09-20 | 北京达佳互联信息技术有限公司 | 数据上报方法、数据监控方法、装置、设备及存储介质 |
| GB2607123B (en) | 2021-10-25 | 2023-10-11 | V Nova Int Ltd | Enhancement decoding implementation and method |
| GB2614054B (en) | 2021-12-17 | 2025-04-02 | V Nova Int Ltd | Digital image processing |
| GB2614763B (en) | 2022-03-29 | 2024-05-01 | V Nova Int Ltd | Upsampling filter for applying a predicted average modification |
| GB2611129B (en) | 2022-03-31 | 2024-03-27 | V Nova Int Ltd | Signal processing with overlay regions |
| TWI854269B (zh) * | 2022-08-03 | 2024-09-01 | 瑞昱半導體股份有限公司 | 影像處理電路以及影像處理方法 |
| CN117917683A (zh) * | 2022-10-20 | 2024-04-23 | 华为技术有限公司 | 一种图像渲染的方法及装置 |
| GB202215675D0 (en) | 2022-10-21 | 2022-12-07 | V Nova Int Ltd | Distributed analysis of a multi-layer signal encoding |
| GB2625756B (en) | 2022-12-22 | 2024-12-18 | V Nova Int Ltd | Methods and modules for video pipelines |
| GB2624947B (en) | 2023-03-24 | 2024-12-04 | V Nova Int Ltd | Enhancement decoding implementation and method |
| GB2623144B (en) * | 2023-03-30 | 2024-10-16 | V Nova Int Ltd | Hardware implementation of image coding |
| US20240380913A1 (en) * | 2023-05-09 | 2024-11-14 | Microsoft Technology Licensing, Llc | Motion compensation via inertial tracking and optical flow |
| GB202310883D0 (en) | 2023-07-14 | 2023-08-30 | V Nova Int Ltd | Concurrent decoding |
| GB202310884D0 (en) | 2023-07-14 | 2023-08-30 | V Nova Int Ltd | Parallel decoding |
| GB2630154A (en) | 2023-10-09 | 2024-11-20 | V Nova Int Ltd | Intermediate video decoding |
| GB2638653A (en) | 2023-11-24 | 2025-09-03 | V Nova Int Ltd | Signalling features in a bitstream |
| GB202319449D0 (en) | 2023-12-18 | 2024-01-31 | V Nova Int Ltd | Systems and methods |
| GB202400502D0 (en) * | 2024-01-12 | 2024-02-28 | Canon Kk | Method and device for improved mesh coding in VDMC |
| GB2639675A (en) | 2024-03-28 | 2025-10-01 | V Nova Int Ltd | Rate distortion optimisation implementation and method |
| GB202405285D0 (en) | 2024-04-12 | 2024-05-29 | Linhai Sunrise Leisure Products Co Ltd | Systems and methods |
| CN118151501B (zh) * | 2024-05-11 | 2024-07-23 | 魅杰光电科技(上海)有限公司 | 基于光流法的套刻误差量测方法、装置、系统及存储介质 |
| CN120785352A (zh) * | 2025-09-12 | 2025-10-14 | 北京市腾河智慧能源科技有限公司 | 电能表计量数据的极轻量级压缩方法及系统、设备、介质 |
Family Cites Families (154)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| NL8601678A (nl) | 1986-06-26 | 1988-01-18 | Optische Ind De Oude Delft Nv | Werkwijze en inrichting voor spleetradiografie. |
| US4941193A (en) | 1987-10-02 | 1990-07-10 | Iterated Systems, Inc. | Methods and apparatus for image compression by iterated function system |
| JP3545000B2 (ja) * | 1992-11-02 | 2004-07-21 | ソニー株式会社 | 画像信号符号化装置、画像信号復号化装置 |
| US5649032A (en) * | 1994-11-14 | 1997-07-15 | David Sarnoff Research Center, Inc. | System for automatically aligning images to form a mosaic image |
| US5825313A (en) * | 1995-08-01 | 1998-10-20 | Sony Corporation | Information signal encoding apparatus, encoding method thereof, information signal decoding method, and information signal record medium thereof |
| EP1274253A3 (en) * | 1995-08-29 | 2005-10-12 | Sharp Kabushiki Kaisha | Video coding device and video decoding device with a motion compensated interframe prediction |
| WO1997009828A1 (en) * | 1995-09-06 | 1997-03-13 | Philips Electronics N.V. | Method and system for coding a sequence of segmented images, corresponding coded signal and storage medium, and method and system for decoding such a coded signal |
| US5936671A (en) * | 1996-07-02 | 1999-08-10 | Sharp Laboratories Of America, Inc. | Object-based video processing using forward-tracking 2-D mesh layers |
| JP4034380B2 (ja) * | 1996-10-31 | 2008-01-16 | 株式会社東芝 | 画像符号化/復号化方法及び装置 |
| US6173013B1 (en) * | 1996-11-08 | 2001-01-09 | Sony Corporation | Method and apparatus for encoding enhancement and base layer image signals using a predicted image signal |
| US6535558B1 (en) * | 1997-01-24 | 2003-03-18 | Sony Corporation | Picture signal encoding method and apparatus, picture signal decoding method and apparatus and recording medium |
| JP3217987B2 (ja) * | 1997-03-31 | 2001-10-15 | 松下電器産業株式会社 | 動画像信号の復号方法および符号化方法 |
| AU732452B2 (en) * | 1997-04-01 | 2001-04-26 | Sony Corporation | Image encoder, image encoding method, image decoder, image decoding method, and distribution media |
| US6993201B1 (en) * | 1997-07-08 | 2006-01-31 | At&T Corp. | Generalized scalability for video coder based on video objects |
| US6233356B1 (en) * | 1997-07-08 | 2001-05-15 | At&T Corp. | Generalized scalability for video coder based on video objects |
| ES2171312T3 (es) * | 1997-11-27 | 2002-09-01 | British Telecomm | Transcodificacion. |
| US6546052B1 (en) | 1998-05-29 | 2003-04-08 | Canon Kabushiki Kaisha | Image processing apparatus and method, and computer-readable memory |
| US6782132B1 (en) * | 1998-08-12 | 2004-08-24 | Pixonics, Inc. | Video coding and reconstruction apparatus and methods |
| US6452969B1 (en) * | 1998-09-28 | 2002-09-17 | Thomson Licensing S.A. | Transform domain inverse motion compensation having fractional pel accuracy |
| US6614429B1 (en) * | 1999-05-05 | 2003-09-02 | Microsoft Corporation | System and method for determining structure and motion from two-dimensional images for multi-resolution object modeling |
| US6289052B1 (en) * | 1999-06-07 | 2001-09-11 | Lucent Technologies Inc. | Methods and apparatus for motion estimation using causal templates |
| US6968008B1 (en) * | 1999-07-27 | 2005-11-22 | Sharp Laboratories Of America, Inc. | Methods for motion estimation with adaptive motion accuracy |
| CA2279797C (en) * | 1999-08-06 | 2010-01-05 | Demin Wang | A method for temporal interpolation of an image sequence using object-based image analysis |
| KR100611999B1 (ko) * | 1999-08-27 | 2006-08-11 | 삼성전자주식회사 | 그리디 알고리듬을 이용한 객체 기반 콰드 트리 메쉬 움직임 보상방법 |
| US6748362B1 (en) * | 1999-09-03 | 2004-06-08 | Thomas W. Meyer | Process, system, and apparatus for embedding data in compressed audio, image video and other media files and the like |
| CN100387061C (zh) * | 1999-11-29 | 2008-05-07 | 索尼公司 | 视频/音频信号处理方法和视频/音频信号处理设备 |
| US6888544B2 (en) * | 2000-03-17 | 2005-05-03 | Hewlett-Packard Development Company, L.P. | Apparatus for and method of rendering 3D objects with parametric texture maps |
| US6907070B2 (en) * | 2000-12-15 | 2005-06-14 | Microsoft Corporation | Drifting reduction and macroblock-based control in progressive fine granularity scalable video coding |
| US7929610B2 (en) | 2001-03-26 | 2011-04-19 | Sharp Kabushiki Kaisha | Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding |
| KR100783396B1 (ko) * | 2001-04-19 | 2007-12-10 | 엘지전자 주식회사 | 부호기의 서브밴드 분할을 이용한 시공간 스케일러빌러티방법 |
| EP1294196A3 (en) * | 2001-09-04 | 2004-10-27 | Interuniversitair Microelektronica Centrum Vzw | Method and apparatus for subband encoding and decoding |
| WO2003026310A2 (de) * | 2001-09-14 | 2003-03-27 | Siemens Aktiengesellschaft | Effiziente videocodierung für skalierbare simul-cast-speicherung und -übertragung |
| US7630566B2 (en) * | 2001-09-25 | 2009-12-08 | Broadcom Corporation | Method and apparatus for improved estimation and compensation in digital video compression and decompression |
| US7653133B2 (en) * | 2003-06-10 | 2010-01-26 | Rensselaer Polytechnic Institute (Rpi) | Overlapped block motion compression for variable size blocks in the context of MCTF scalable video coders |
| US8009739B2 (en) * | 2003-09-07 | 2011-08-30 | Microsoft Corporation | Intensity estimation/compensation for interlaced forward-predicted fields |
| KR100571920B1 (ko) * | 2003-12-30 | 2006-04-17 | 삼성전자주식회사 | 움직임 모델을 이용한 매쉬 기반의 움직임 보상방법을제공하는 영상의 부호화 방법 및 그 부호화 장치 |
| KR100596705B1 (ko) * | 2004-03-04 | 2006-07-04 | 삼성전자주식회사 | 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템 |
| US20080144716A1 (en) | 2004-03-11 | 2008-06-19 | Gerard De Haan | Method For Motion Vector Determination |
| US8503542B2 (en) * | 2004-03-18 | 2013-08-06 | Sony Corporation | Methods and apparatus to reduce blocking noise and contouring effect in motion compensated compressed video |
| US8731054B2 (en) * | 2004-05-04 | 2014-05-20 | Qualcomm Incorporated | Method and apparatus for weighted prediction in predictive frames |
| US7616782B2 (en) * | 2004-05-07 | 2009-11-10 | Intelliview Technologies Inc. | Mesh based frame processing and applications |
| US8442108B2 (en) * | 2004-07-12 | 2013-05-14 | Microsoft Corporation | Adaptive updates in motion-compensated temporal filtering |
| US7424163B1 (en) | 2004-07-13 | 2008-09-09 | Itt Manufacturing Enterprises, Inc. | System and method for lossless image compression |
| KR100678949B1 (ko) * | 2004-07-15 | 2007-02-06 | 삼성전자주식회사 | 비디오 코딩 및 디코딩 방법, 비디오 인코더 및 디코더 |
| DE102004059993B4 (de) * | 2004-10-15 | 2006-08-31 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Bewegungsdaten-Prädiktion sowie Computerprogramm und computerlesbares Medium |
| KR100664929B1 (ko) * | 2004-10-21 | 2007-01-04 | 삼성전자주식회사 | 다 계층 기반의 비디오 코더에서 모션 벡터를 효율적으로압축하는 방법 및 장치 |
| KR100664932B1 (ko) * | 2004-10-21 | 2007-01-04 | 삼성전자주식회사 | 비디오 코딩 방법 및 장치 |
| JP2006174415A (ja) | 2004-11-19 | 2006-06-29 | Ntt Docomo Inc | 画像復号装置、画像復号プログラム、画像復号方法、画像符号化装置、画像符号化プログラム及び画像符号化方法 |
| US7792192B2 (en) * | 2004-11-19 | 2010-09-07 | Analog Devices, Inc. | System and method for sub-pixel interpolation in motion vector estimation |
| US7924923B2 (en) * | 2004-11-30 | 2011-04-12 | Humax Co., Ltd. | Motion estimation and compensation method and device adaptive to change in illumination |
| JP4241588B2 (ja) * | 2004-11-30 | 2009-03-18 | 日本ビクター株式会社 | 動画像符号化装置、及び動画像復号化装置 |
| JP4317814B2 (ja) | 2004-12-06 | 2009-08-19 | 株式会社ルネサステクノロジ | 動画像情報の符号化装置及び符号化方法 |
| US20060120612A1 (en) * | 2004-12-08 | 2006-06-08 | Sharath Manjunath | Motion estimation techniques for video encoding |
| JP4284288B2 (ja) * | 2005-03-10 | 2009-06-24 | 株式会社東芝 | パターン認識装置及びその方法 |
| KR100703770B1 (ko) | 2005-03-25 | 2007-04-06 | 삼성전자주식회사 | 가중 예측을 이용한 비디오 코딩 및 디코딩 방법, 이를위한 장치 |
| US7876833B2 (en) * | 2005-04-11 | 2011-01-25 | Sharp Laboratories Of America, Inc. | Method and apparatus for adaptive up-scaling for spatially scalable coding |
| DE102005016827A1 (de) | 2005-04-12 | 2006-10-19 | Siemens Ag | Adaptive Interpolation bei der Bild- oder Videokodierung |
| KR100746007B1 (ko) * | 2005-04-19 | 2007-08-06 | 삼성전자주식회사 | 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더 |
| JP2007096541A (ja) * | 2005-09-27 | 2007-04-12 | Sanyo Electric Co Ltd | 符号化方法 |
| US8005308B2 (en) * | 2005-09-16 | 2011-08-23 | Sony Corporation | Adaptive motion estimation for temporal prediction filter over irregular motion vector samples |
| DE102005051091A1 (de) | 2005-10-25 | 2007-04-26 | Siemens Ag | Verfahren und Vorrichtungen zur Bestimmung und Rekonstruktion eines prädizierten Bildbereichs |
| EP1790680A1 (en) | 2005-11-28 | 2007-05-30 | Mnemoscience GmbH | Verfahren zur Herstellung von Form-Gedächtnis Materialien aus standard thermoplastichen Polymeren |
| GB0600141D0 (en) * | 2006-01-05 | 2006-02-15 | British Broadcasting Corp | Scalable coding of video signals |
| US7956930B2 (en) * | 2006-01-06 | 2011-06-07 | Microsoft Corporation | Resampling and picture resizing operations for multi-resolution video coding and decoding |
| US20070175333A1 (en) | 2006-02-02 | 2007-08-02 | Siemens Power Generation, Inc. | System for recovering water from flue gas |
| KR101342587B1 (ko) * | 2006-03-22 | 2013-12-17 | 세종대학교산학협력단 | 조명변화 보상 움직임 예측 부호화 및 복호화 방법 및 장치 |
| JP4844449B2 (ja) * | 2006-04-17 | 2011-12-28 | 日本ビクター株式会社 | 動画像符号化装置、方法、プログラム、動画像復号化装置、方法、およびプログラム |
| JP4182442B2 (ja) * | 2006-04-27 | 2008-11-19 | ソニー株式会社 | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 |
| US9319708B2 (en) * | 2006-06-16 | 2016-04-19 | Via Technologies, Inc. | Systems and methods of improved motion estimation using a graphics processing unit |
| US8340185B2 (en) * | 2006-06-27 | 2012-12-25 | Marvell World Trade Ltd. | Systems and methods for a motion compensated picture rate converter |
| US8218640B2 (en) * | 2006-10-31 | 2012-07-10 | Sony Computer Entertainment Inc. | Picture decoding using same-picture reference for pixel reconstruction |
| US8199812B2 (en) * | 2007-01-09 | 2012-06-12 | Qualcomm Incorporated | Adaptive upsampling for scalable video coding |
| US20080181298A1 (en) * | 2007-01-26 | 2008-07-31 | Apple Computer, Inc. | Hybrid scalable coding |
| KR101365575B1 (ko) * | 2007-02-05 | 2014-02-25 | 삼성전자주식회사 | 인터 예측 부호화, 복호화 방법 및 장치 |
| JP2008228282A (ja) * | 2007-02-13 | 2008-09-25 | Matsushita Electric Ind Co Ltd | 画像処理装置 |
| US8160149B2 (en) | 2007-04-03 | 2012-04-17 | Gary Demos | Flowfield motion compensation for video compression |
| BRPI0809668B1 (pt) * | 2007-04-09 | 2020-07-28 | Nokia Technologies Oy | vetores de movimento de alta precisão para codificação de vídeos com baixa complexidade de codificação e decodificação |
| EP1983759A1 (en) * | 2007-04-19 | 2008-10-22 | Matsushita Electric Industrial Co., Ltd. | Estimation of separable adaptive interpolation filters for hybrid video coding |
| CN101690220B (zh) * | 2007-04-25 | 2013-09-25 | Lg电子株式会社 | 用于解码/编码视频信号的方法和装置 |
| US8756482B2 (en) * | 2007-05-25 | 2014-06-17 | Nvidia Corporation | Efficient encoding/decoding of a sequence of data frames |
| US8254455B2 (en) * | 2007-06-30 | 2012-08-28 | Microsoft Corporation | Computing collocated macroblock information for direct mode macroblocks |
| AU2007214319A1 (en) * | 2007-08-30 | 2009-03-19 | Canon Kabushiki Kaisha | Improvements for Spatial Wyner Ziv Coding |
| KR101365596B1 (ko) * | 2007-09-14 | 2014-03-12 | 삼성전자주식회사 | 영상 부호화장치 및 방법과 그 영상 복호화장치 및 방법 |
| KR101345287B1 (ko) | 2007-10-12 | 2013-12-27 | 삼성전자주식회사 | 스케일러블 영상 부호화 방법 및 장치와 그 영상 복호화방법 및 장치 |
| US20090141809A1 (en) * | 2007-12-04 | 2009-06-04 | Sony Corporation And Sony Electronics Inc. | Extension to the AVC standard to support the encoding and storage of high resolution digital still pictures in parallel with video |
| US8170097B2 (en) * | 2007-12-04 | 2012-05-01 | Sony Corporation | Extension to the AVC standard to support the encoding and storage of high resolution digital still pictures in series with video |
| KR101375663B1 (ko) * | 2007-12-06 | 2014-04-03 | 삼성전자주식회사 | 영상을 계층적으로 부호화/복호화하는 방법 및 장치 |
| US8126054B2 (en) * | 2008-01-09 | 2012-02-28 | Motorola Mobility, Inc. | Method and apparatus for highly scalable intraframe video coding |
| US8374247B2 (en) * | 2008-01-14 | 2013-02-12 | Broadcom Corporation | Method and system for hierarchical motion estimation with multi-layer sub-pixel accuracy and motion vector smoothing |
| US8665958B2 (en) * | 2008-01-29 | 2014-03-04 | Electronics And Telecommunications Research Institute | Method and apparatus for encoding and decoding video signal using motion compensation based on affine transformation |
| US8508661B1 (en) | 2008-02-01 | 2013-08-13 | Zenverge, Inc. | Enhanced deinterlacing using predictors from motion estimation engine |
| US8953679B2 (en) | 2008-02-05 | 2015-02-10 | Thomson Licensing | Methods and apparatus for implicit block segmentation in video encoding and decoding |
| US8711948B2 (en) | 2008-03-21 | 2014-04-29 | Microsoft Corporation | Motion-compensated prediction of inter-layer residuals |
| JP2010016453A (ja) * | 2008-07-01 | 2010-01-21 | Sony Corp | 画像符号化装置および方法、画像復号装置および方法、並びにプログラム |
| US8761261B1 (en) * | 2008-07-29 | 2014-06-24 | Marvell International Ltd. | Encoding using motion vectors |
| US8488680B2 (en) | 2008-07-30 | 2013-07-16 | Stmicroelectronics S.R.L. | Encoding and decoding methods and apparatus, signal and computer program product therefor |
| WO2010017166A2 (en) | 2008-08-04 | 2010-02-11 | Dolby Laboratories Licensing Corporation | Overlapped block disparity estimation and compensation architecture |
| US8184196B2 (en) * | 2008-08-05 | 2012-05-22 | Qualcomm Incorporated | System and method to generate depth data using edge detection |
| US8139650B2 (en) | 2008-08-07 | 2012-03-20 | California Institute Of Technology | Fast noise reduction in digital images and video |
| ATE554602T1 (de) * | 2008-08-21 | 2012-05-15 | Vestel Elekt Sanayi Ve Ticaret | Verfahren und vorrichtung zur steigerung der bildrate eines videosignals |
| WO2010023808A1 (ja) * | 2008-09-01 | 2010-03-04 | 日本電気株式会社 | 画像同一性尺度算出システム |
| GB0818561D0 (en) * | 2008-10-09 | 2008-11-19 | Isis Innovation | Visual tracking of objects in images, and segmentation of images |
| US8275209B2 (en) | 2008-10-10 | 2012-09-25 | Microsoft Corporation | Reduced DC gain mismatch and DC leakage in overlap transform processing |
| JP2010122934A (ja) * | 2008-11-20 | 2010-06-03 | Sony Corp | 画像処理装置、および画像処理方法、並びにプログラム |
| US8599929B2 (en) * | 2009-01-09 | 2013-12-03 | Sungkyunkwan University Foundation For Corporate Collaboration | Distributed video decoder and distributed video decoding method |
| JP4893758B2 (ja) * | 2009-01-23 | 2012-03-07 | ソニー株式会社 | 画像処理装置、画像処理方法および撮像装置 |
| KR101597987B1 (ko) * | 2009-03-03 | 2016-03-08 | 삼성전자주식회사 | 계층 독립적 잔차 영상 다계층 부호화 장치 및 방법 |
| US8363721B2 (en) * | 2009-03-26 | 2013-01-29 | Cisco Technology, Inc. | Reference picture prediction for video coding |
| FR2944937B1 (fr) * | 2009-04-24 | 2011-10-21 | Canon Kk | Procede et dispositif de restauration d'une sequence video |
| US8762441B2 (en) * | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
| CN102883160B (zh) | 2009-06-26 | 2016-06-29 | 华为技术有限公司 | 视频图像运动信息获取方法、装置及设备、模板构造方法 |
| KR101678968B1 (ko) * | 2009-08-21 | 2016-11-25 | 에스케이텔레콤 주식회사 | 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
| US9626769B2 (en) * | 2009-09-04 | 2017-04-18 | Stmicroelectronics International N.V. | Digital video encoder system, method, and non-transitory computer-readable medium for tracking object regions |
| EP2494780B1 (en) * | 2009-10-29 | 2020-09-02 | Vestel Elektronik Sanayi ve Ticaret A.S. | Method and device for processing a video sequence |
| JPWO2011052215A1 (ja) * | 2009-10-30 | 2013-03-14 | パナソニック株式会社 | 復号方法、復号装置、符号化方法、および符号化装置 |
| TR200908303A2 (tr) * | 2009-11-03 | 2011-05-23 | Vestel Elektroni̇k San. Ve Ti̇c. A.Ş. | Hareket dengelemeli enterpolasyon. |
| US8705624B2 (en) | 2009-11-24 | 2014-04-22 | STMicroelectronics International N. V. | Parallel decoding for scalable video coding |
| WO2011064673A1 (en) | 2009-11-30 | 2011-06-03 | France Telecom | Method of and apparatus for encoding video frames, method of and apparatus for decoding video frames |
| US8559519B2 (en) * | 2010-01-08 | 2013-10-15 | Blackberry Limited | Method and device for video encoding using predicted residuals |
| GB2480224B (en) * | 2010-01-29 | 2014-08-20 | Canon Kk | Decoding a sequence of digital images with error concealment |
| US9237355B2 (en) * | 2010-02-19 | 2016-01-12 | Qualcomm Incorporated | Adaptive motion resolution for video coding |
| US9609342B2 (en) * | 2010-02-19 | 2017-03-28 | Skype | Compression for frames of a video signal using selected candidate blocks |
| FR2956789B1 (fr) | 2010-02-19 | 2012-11-16 | Canon Kk | Procede et dispositif de traitement d'une sequence video |
| EP2543181B1 (en) * | 2010-03-03 | 2015-10-21 | Koninklijke Philips N.V. | Apparatuses and methods for defining color regimes |
| US8665959B2 (en) | 2010-04-12 | 2014-03-04 | Qualcomm Incorporated | Block and partition signaling techniques for video coding |
| CN106210732B (zh) * | 2010-04-13 | 2020-03-24 | Ge视频压缩有限责任公司 | 解码器、编码器、解码方法、编码方法以及存储介质 |
| KR20130095275A (ko) | 2010-08-09 | 2013-08-27 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 인코더, 디코더, 비트-스트림, 다중-뷰 신호의 두 개의 뷰들에 대응하는 이미지 쌍을 인코딩하는 방법, 및 디코딩하는 방법 |
| WO2012037157A2 (en) * | 2010-09-13 | 2012-03-22 | Alt Software (Us) Llc | System and method for displaying data having spatial coordinates |
| US8736767B2 (en) * | 2010-09-29 | 2014-05-27 | Sharp Laboratories Of America, Inc. | Efficient motion vector field estimation |
| EP2445214A1 (en) * | 2010-10-19 | 2012-04-25 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Video coding using temporally coherent dynamic range mapping |
| JP5625808B2 (ja) * | 2010-11-26 | 2014-11-19 | 沖電気工業株式会社 | データ更新装置及びプログラム、並びに、動画像復号装置及びプログラム、並びに、動画像配信システム |
| CA2722993A1 (fr) * | 2010-12-01 | 2012-06-01 | Ecole De Technologie Superieure | Systeme d'ecodage video parallele multitrames et multitranches avec encodage simultane de trames predites |
| US9147260B2 (en) * | 2010-12-20 | 2015-09-29 | International Business Machines Corporation | Detection and tracking of moving objects |
| GB2487197B (en) | 2011-01-11 | 2015-06-17 | Canon Kk | Video encoding and decoding with improved error resilience |
| CN102857755B (zh) * | 2011-07-01 | 2016-12-14 | 华为技术有限公司 | 确定变换块尺寸的方法和设备 |
| US8531321B1 (en) * | 2011-07-21 | 2013-09-10 | Luca Rossato | Signal processing and inheritance in a tiered signal quality hierarchy |
| US8977065B2 (en) * | 2011-07-21 | 2015-03-10 | Luca Rossato | Inheritance in a tiered signal quality hierarchy |
| WO2013028117A1 (en) * | 2011-08-19 | 2013-02-28 | Telefonaktiebolaget L M Ericsson (Publ) | Motion vector processing |
| HRP20250407T1 (hr) | 2011-10-18 | 2025-05-23 | Lg Electronics, Inc. | Metoda dekodiranja slike, metoda kodiranja slike, računalno čitljiv medij za pohranu i metoda prijenosa podataka za sliku |
| US9300980B2 (en) * | 2011-11-10 | 2016-03-29 | Luca Rossato | Upsampling and downsampling of motion maps and other auxiliary maps in a tiered signal quality hierarchy |
| CN104718759B (zh) * | 2012-01-24 | 2019-01-18 | 华为技术有限公司 | Lm模式的简化 |
| JP6110410B2 (ja) * | 2012-01-31 | 2017-04-05 | ヴィド スケール インコーポレイテッド | スケーラブルな高効率ビデオコーディング(hevc)のための参照ピクチャセット(rps)シグナリング |
| EP2811743B1 (en) | 2012-02-03 | 2021-03-03 | Sun Patent Trust | Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device |
| GB2498595B (en) * | 2012-02-16 | 2015-03-04 | Imagination Tech Ltd | Methods and apparatus for decoding video images |
| KR20150020568A (ko) | 2012-05-14 | 2015-02-26 | 루카 로사토 | 시간을 따라 샘플들의 시퀀스들의 블렌딩에 기초한 인코딩과 디코딩 |
| US9313495B2 (en) * | 2012-05-14 | 2016-04-12 | Luca Rossato | Encoding and decoding based on blending of sequences of samples along time |
| MY172999A (en) * | 2012-07-09 | 2019-12-18 | Vid Scale Inc | Codec architecture for multiple layer video coding |
| WO2014009844A1 (en) * | 2012-07-13 | 2014-01-16 | Koninklijke Philips N.V. | Improved hdr image encoding and decoding methods and devices |
| JP6005865B2 (ja) * | 2012-09-28 | 2016-10-12 | インテル・コーポレーション | スケーラブルビデオ符号化のためのエンハンスド参照領域の利用 |
| US20140092971A1 (en) * | 2012-09-28 | 2014-04-03 | Kiran Mukesh Misra | Picture processing in scalable video systems |
| AU2013330031B2 (en) * | 2012-10-09 | 2016-06-30 | Hfi Innovation Inc. | Method and apparatus for motion information prediction and inheritance in video coding |
| US8810157B2 (en) | 2012-10-18 | 2014-08-19 | Power Integrations, Inc. | Simplified current sense for buck LED driver |
| US20140153635A1 (en) * | 2012-12-05 | 2014-06-05 | Nvidia Corporation | Method, computer program product, and system for multi-threaded video encoding |
| KR102301232B1 (ko) | 2017-05-31 | 2021-09-10 | 삼성전자주식회사 | 다채널 특징맵 영상을 처리하는 방법 및 장치 |
-
2013
- 2013-05-13 KR KR1020147035200A patent/KR20150020568A/ko not_active Withdrawn
- 2013-05-13 EP EP13723460.5A patent/EP2850831A1/en not_active Withdrawn
- 2013-05-13 EA EA201492090A patent/EA201492090A1/ru unknown
- 2013-05-13 CA CA2873496A patent/CA2873496A1/en not_active Abandoned
- 2013-05-13 DK DK13722424.2T patent/DK2850829T3/da active
- 2013-05-13 SG SG11201407419RA patent/SG11201407419RA/en unknown
- 2013-05-13 ES ES13722426T patent/ES2961397T3/es active Active
- 2013-05-13 EA EA201492099A patent/EA201492099A1/ru unknown
- 2013-05-13 SG SG10201710075SA patent/SG10201710075SA/en unknown
- 2013-05-13 AU AU2013261838A patent/AU2013261838A1/en not_active Abandoned
- 2013-05-13 CN CN201380037642.2A patent/CN104641643B/zh active Active
- 2013-05-13 KR KR1020147035186A patent/KR20150014496A/ko not_active Withdrawn
- 2013-05-13 PL PL13722424T patent/PL2850829T3/pl unknown
- 2013-05-13 WO PCT/EP2013/059853 patent/WO2013171175A1/en not_active Ceased
- 2013-05-13 CA CA2873487A patent/CA2873487A1/en not_active Abandoned
- 2013-05-13 MX MX2014013838A patent/MX339635B/es active IP Right Grant
- 2013-05-13 CN CN201380037650.7A patent/CN104641644A/zh active Pending
- 2013-05-13 JP JP2015512019A patent/JP6336438B2/ja active Active
- 2013-05-13 WO PCT/EP2013/059833 patent/WO2013171168A1/en not_active Ceased
- 2013-05-13 HK HK15103738.4A patent/HK1203263A1/xx unknown
- 2013-05-13 EP EP13722426.7A patent/EP2850830B1/en active Active
- 2013-05-13 KR KR1020147035175A patent/KR102126886B1/ko active Active
- 2013-05-13 BR BR112014028283A patent/BR112014028283A2/pt not_active IP Right Cessation
- 2013-05-13 BR BR112014028274A patent/BR112014028274A2/pt not_active IP Right Cessation
- 2013-05-13 CN CN201380037649.4A patent/CN104620583A/zh active Pending
- 2013-05-13 JP JP2015512020A patent/JP2015519016A/ja active Pending
- 2013-05-13 EA EA201492098A patent/EA201492098A1/ru unknown
- 2013-05-13 SG SG11201407417VA patent/SG11201407417VA/en unknown
- 2013-05-13 MX MX2014013836A patent/MX341203B/es active IP Right Grant
- 2013-05-13 CA CA2873499A patent/CA2873499A1/en not_active Abandoned
- 2013-05-13 HK HK15103706.2A patent/HK1203261A1/xx unknown
- 2013-05-13 EP EP13722424.2A patent/EP2850829B1/en active Active
- 2013-05-13 ES ES13722424T patent/ES2907510T3/es active Active
- 2013-05-13 MX MX2014013850A patent/MX2014013850A/es unknown
- 2013-05-13 WO PCT/EP2013/059847 patent/WO2013171173A1/en not_active Ceased
- 2013-05-13 JP JP2015512017A patent/JP2015520575A/ja active Pending
- 2013-05-13 EP EP21204561.1A patent/EP3968638A1/en active Pending
- 2013-05-13 AU AU2013261843A patent/AU2013261843B2/en active Active
- 2013-05-13 SG SG11201407508RA patent/SG11201407508RA/en unknown
- 2013-05-13 BR BR112014028279A patent/BR112014028279A2/pt not_active IP Right Cessation
- 2013-05-13 AU AU2013261845A patent/AU2013261845A1/en not_active Abandoned
- 2013-05-14 JP JP2015512025A patent/JP2015522987A/ja active Pending
- 2013-05-14 BR BR112014028276A patent/BR112014028276A2/pt not_active IP Right Cessation
- 2013-05-14 MX MX2014013846A patent/MX2014013846A/es unknown
- 2013-05-14 DK DK13724216.0T patent/DK2850832T3/da active
- 2013-05-14 CN CN201380037629.7A patent/CN104620582B/zh active Active
- 2013-05-14 HK HK15103705.3A patent/HK1203260A1/xx unknown
- 2013-05-14 KR KR1020147035198A patent/KR20150018576A/ko not_active Withdrawn
- 2013-05-14 CN CN201380037604.7A patent/CN104620581A/zh active Pending
- 2013-05-14 AU AU2013261853A patent/AU2013261853A1/en not_active Abandoned
- 2013-05-14 CN CN201380037590.9A patent/CN104620580A/zh active Pending
- 2013-05-14 EA EA201492089A patent/EA201492089A1/ru unknown
- 2013-05-14 SG SG11201407472SA patent/SG11201407472SA/en unknown
- 2013-05-14 JP JP2015512026A patent/JP2015522988A/ja active Pending
- 2013-05-14 SG SG11201407484WA patent/SG11201407484WA/en unknown
- 2013-05-14 EP EP13722433.3A patent/EP2850836A1/en not_active Ceased
- 2013-05-14 US US13/893,677 patent/US9621887B2/en active Active
- 2013-05-14 US US13/893,672 patent/US9706206B2/en active Active
- 2013-05-14 JP JP2015512024A patent/JP2015522986A/ja active Pending
- 2013-05-14 CN CN201911290521.4A patent/CN110944210B/zh active Active
- 2013-05-14 KR KR1020147035179A patent/KR20150014495A/ko not_active Withdrawn
- 2013-05-14 CA CA2873494A patent/CA2873494A1/en not_active Abandoned
- 2013-05-14 EP EP13722432.5A patent/EP2850835B1/en active Active
- 2013-05-14 WO PCT/EP2013/059880 patent/WO2013171182A1/en not_active Ceased
- 2013-05-14 US US13/894,417 patent/US9961345B2/en active Active
- 2013-05-14 EA EA201492093A patent/EA201492093A1/ru unknown
- 2013-05-14 KR KR1020147035196A patent/KR20150018575A/ko not_active Withdrawn
- 2013-05-14 BR BR112014028273A patent/BR112014028273A2/pt not_active IP Right Cessation
- 2013-05-14 WO PCT/EP2013/059886 patent/WO2013171184A1/en not_active Ceased
- 2013-05-14 WO PCT/EP2013/059885 patent/WO2013171183A1/en not_active Ceased
- 2013-05-14 US US13/893,669 patent/US9509990B2/en active Active
- 2013-05-14 CA CA2873490A patent/CA2873490A1/en not_active Abandoned
- 2013-05-14 CA CA2873501A patent/CA2873501A1/en not_active Abandoned
- 2013-05-14 EP EP13724216.0A patent/EP2850832B1/en active Active
- 2013-05-14 ES ES13724216T patent/ES2909879T3/es active Active
- 2013-05-14 MX MX2014013835A patent/MX344994B/es active IP Right Grant
- 2013-05-14 AU AU2013261854A patent/AU2013261854A1/en not_active Abandoned
- 2013-05-14 HK HK15103739.3A patent/HK1203264A1/xx unknown
-
2014
- 2014-11-09 IL IL235576A patent/IL235576A0/en unknown
- 2014-11-09 IL IL235579A patent/IL235579A0/en unknown
- 2014-11-09 IL IL235578A patent/IL235578A0/en unknown
- 2014-11-09 IL IL235574A patent/IL235574B/en active IP Right Grant
- 2014-11-20 ZA ZA2014/08541A patent/ZA201408541B/en unknown
- 2014-11-20 ZA ZA2014/08539A patent/ZA201408539B/en unknown
- 2014-11-20 ZA ZA2014/08540A patent/ZA201408540B/en unknown
- 2014-11-20 ZA ZA2014/08538A patent/ZA201408538B/en unknown
- 2014-11-20 ZA ZA2014/08537A patent/ZA201408537B/en unknown
-
2016
- 2016-10-18 US US15/296,643 patent/US10178387B2/en active Active
-
2017
- 2017-03-15 US US15/459,893 patent/US11153567B2/en active Active
- 2017-07-06 US US15/643,392 patent/US10750178B2/en active Active
-
2019
- 2019-01-03 US US16/239,274 patent/US10750179B2/en active Active
-
2020
- 2020-08-13 US US16/992,925 patent/US11595653B2/en active Active
- 2020-08-13 US US16/992,931 patent/US11272181B2/en active Active
- 2020-09-03 US US17/011,735 patent/US11683491B2/en active Active
-
2021
- 2021-10-13 US US17/500,534 patent/US12155834B2/en active Active
-
2022
- 2022-03-01 US US17/684,096 patent/US11622112B2/en active Active
-
2023
- 2023-04-03 US US18/295,195 patent/US12166987B2/en active Active
-
2024
- 2024-11-25 US US18/959,046 patent/US20250330603A1/en active Pending
- 2024-12-10 US US18/975,640 patent/US20250220185A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2961397T3 (es) | Codificación y reconstrucción de datos residuales en base a información de soporte | |
| US10771796B2 (en) | Encoding and decoding based on blending of sequences of samples along time | |
| ES2866894T3 (es) | Predicción de coeficientes de filtro a partir de filtros fijos para codificación de video | |
| US20170078699A1 (en) | Method and device for configuring merge candidate list for decoding and encoding of interlayer video | |
| HK1203265B (en) | Decomposition of residual data during signal encoding, decoding and reconstruction in a tiered hierarchy |