ES2961857T3 - Interpolación adaptativa para la codificación de vídeo escalable espacialmente - Google Patents

Interpolación adaptativa para la codificación de vídeo escalable espacialmente Download PDF

Info

Publication number
ES2961857T3
ES2961857T3 ES12756258T ES12756258T ES2961857T3 ES 2961857 T3 ES2961857 T3 ES 2961857T3 ES 12756258 T ES12756258 T ES 12756258T ES 12756258 T ES12756258 T ES 12756258T ES 2961857 T3 ES2961857 T3 ES 2961857T3
Authority
ES
Spain
Prior art keywords
signal
quality level
entropy
residual data
upsampling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12756258T
Other languages
English (en)
Inventor
Luca Rossato
Guido Meardi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
V Nova International Ltd
Original Assignee
V Nova International Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by V Nova International Ltd filed Critical V Nova International Ltd
Application granted granted Critical
Publication of ES2961857T3 publication Critical patent/ES2961857T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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 parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un codificador recibe una señal. El codificador utiliza una o más operaciones de reducción de resolución para producir representaciones reducidas de resolución de la señal en niveles de calidad sucesivamente más bajos en la jerarquía. En dirección inversa, el codificador aplica una o más operaciones de muestreo ascendente a una reproducción de muestreo reducido de la señal en un primer nivel de calidad para producir una reproducción de muestreo ascendente de la señal en un segundo nivel de calidad en la jerarquía. El segundo nivel de calidad es superior al primer nivel de calidad. La una o más operaciones de muestreo ascendente y una o más operaciones de muestreo descendente pueden ser asimétricas entre sí. Es decir, la función aplicada durante el muestreo de reducción puede diferir de la función aplicada durante el muestreo de aumento. El codificador produce datos residuales que indican una diferencia entre la reproducción reducida de la señal en el segundo nivel de calidad y la reproducción mejorada de la señal en el segundo nivel de calidad. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Interpolación adaptativa para la codificación de vídeo escalable espacialmente
Antecedentes de la invención
La eficiencia de la CPU (Unidad Central de Procesamiento) es importante tanto durante la codificación como durante la decodificación de una señal. Los procesadores de última generación son cada vez más paralelos, con hasta cientos de núcleos simples en cada único chip.
Desafortunadamente, por naturaleza, los códecs tradicionales de la familia MPEG (Moving Pictures Expert Group) son estructuralmente no paralelos. Esto se debe al hecho de que se basan en bloques, y cada bloque de imagen debe codificarse y decodificarse secuencialmente, ya que, para lograr una compresión eficiente, se debe hacer que todos los bloques dependan de alguna manera entre sí.
Mediante la introducción de los llamados "slices" (básicamente, piezas de la imagen que se tratan independientemente entre sí, como si fueran vídeos separados puestos uno al lado del otro) en la codificación MPEG, el estándar H.264 permite procesar uno cuantos hilos en paralelo (típicamente 2 o 3 hilos). Elementos importantes del algoritmo, tal como el desbloqueo (es decir, un filtro que "suaviza" las transiciones entre bloques para crear una imagen más uniforme) son típicamente operaciones globales llenas de instrucciones condicionales, que no son adecuadas para aplicaciones que incluyen CPU paralelas.
Las CPU y las GPU (Unidades de Procesamiento de Gráficos) actuales son típicamente muy potentes; una única GPU puede incluir varios cientos de núcleos de cálculo para realizar un procesamiento paralelo de la información. Cuando se usa la tecnología actual, se pueden almacenar grandes porciones de una imagen en la caché de un procesador para su procesamiento. La necesidad de fragmentar las imágenes en multitud de pequeños bloques, lo cual fue un factor determinante cuando se creó MPEG, ya que los procesadores de esa época sólo podían tratar con fragmentos muy pequeños de datos de vídeo a la vez - y sólo de manera secuencial - ya no se aplica a las CPU y GPU modernas. Por tanto, una gran porción de la potencia de procesamiento disponible puede quedar sin usarse cuando se implementan tipos de codificación/decodificación similares a MPEG, con artefactos de bloqueo introducidos innecesariamente en la señal. Además, en comparación con lo que había cuando se desarrolló MPEG, las aplicaciones actuales requieren típicamente una codificación de vídeo de definición mucho mayor y una calidad general de reproducción mucho mayor. En los vídeos de alta definición (HD) y alta calidad hay una diferencia mucho mayor entre las áreas con poco detalle (incluso potencialmente fuera de foco) y las áreas con detalles muy finos. Esto hace que el uso de transformadas en el dominio de la frecuencia tales como las usadas en MPEG sea incluso más inadecuado para el procesamiento y la reproducción de imágenes, ya que el intervalo de frecuencias relevantes es cada vez más amplio.
Además, las imágenes de mayor resolución incluyen una mayor cantidad de ruido de cámara y/o grano de película, es decir, transiciones de píxeles de alta frecuencia muy detalladas que pueden ser bastante irrelevantes para la visualización y requieren muchos bits para codificarlas.
Por último, los códecs tradicionales son inadecuados para funcionar de manera eficiente con imágenes 3D o volumétricas, lo que se vuelve cada vez más importante en campos tales como la imagen médica, la imagen científica, etc.
La mayoría de los dispositivos de destino actuales soportan diferentes resoluciones y calidades de reproducción. La llamada SVC (Codificación de Vídeo Escalable), el estándar MPEG actual para escalabilidad, no se ha recibido favorablemente por la industria y muestra poca o nula adopción, porque se considera demasiado complejo y algo ineficiente en cuanto al ancho de banda.
Además, abundan los vídeos codificados; es decir, un proveedor de contenido típicamente no tiene el tiempo para personalizar los parámetros del codificador y experimentar con cada flujo de video específico. Actualmente, a los proveedores de contenido no les gusta que muchos parámetros de codificación deban modificarse manualmente (cada vez que se realiza una codificación y se comprueba la calidad de los resultados) para codificar con éxito un video.
Como una alternativa a los estándares MPEG para la codificación/decodificación, se han usado las denominadas pirámides de imágenes con propósitos de codificación/decodificación. Por ejemplo, mediante el uso de las pirámides Laplacianas, los sistemas convencionales crearon imágenes de menor resolución mediante el uso de filtros Gaussianos y luego construyeron la pirámide de las diferencias entre las imágenes que se obtienen mediante muestreo ascendente con un decodificador rígidamente programado desde los niveles de menor resolución hasta el nivel original.
El uso de la codificación de pirámide Laplaciana convencional se ha abandonado. Una deficiencia de tales transformaciones es que los autores siempre intentaban evitar distorsiones/artefactos en la imagen de muestreo descendente, por lo que siempre usaban el filtrado Gaussiano, ya que es el único tipo de filtro que no agrega ninguna información propia. Sin embargo, el problema insuperable del filtrado Gaussiano es que introduce un efecto borroso, de manera que cuando se vuelve a escalar a resoluciones más grandes, se necesita una cantidad excesiva de información de corrección de la imagen para reproducir la imagen original.
En el documento titulado "Study of Up sampling/Down-sampling for Special scalability" de Andrew Segal, se presenta una investigación experimental sobre las operaciones de muestreo ascendente y muestreo descendente en el estándar de Codificación de Vídeo Escalable (SVC). En particular, el filtro de muestreo descendente empleado en SVC se prueba en el contexto de dos operaciones diferentes de muestreo descendente; el estudio también describe el diseño de un muestreador ascendente capaz de minimizar la norma h entre la trama original y la trama de muestreo ascendente.
El documento titulado "Switched SVC up-sampling filter" de Ammar y otros, describe un mecanismo de conmutación para filtros de muestreo ascendente en SVC. En particular, el documento describe una implementación de fuerza bruta de un filtro conmutado donde el codificador realiza un muestreo ascendente de la capa base, primero mediante el uso del filtro AVC y luego mediante el uso de un filtro recientemente diseñado. Finalmente, se elige el filtro asociado con el menor valor de distorsión de la tasa y se señala en el flujo de bits al decodificador.
Breve descripción
La invención se describe en la modalidad relacionada con la Figura 2.
Las modalidades en la presente descripción se desvían con respecto a los sistemas y métodos convencionales. Por ejemplo, las modalidades en la presente descripción se dirigen a formas únicas de procesar y codificar información de señal para reducir una cantidad de datos que se necesitan para reconstruir una señal cuando se decodifica. Más específicamente, una modalidad en la presente descripción incluye la codificación de una señal recibida en diferentes niveles de calidad en una jerarquía. Por ejemplo, un codificador recibe una señal a codificar. Inicialmente, el codificador utiliza una o más operaciones de muestreo descendente para producir interpretaciones de muestreo descendente de la señal en niveles sucesivamente inferiores de calidad en la jerarquía. A continuación, el codificador aplica una o más operaciones de muestreo ascendente a una interpretación de muestreo descendente de la señal en un primer nivel de calidad para producir una interpretación de muestreo ascendente de la señal en un segundo (por ejemplo, superior) nivel de calidad en la jerarquía. Como se describe en la presente descripción, las operaciones de muestreo ascendente y de muestreo descendente son asimétricas con respecto entre sí. Cada una de las operaciones de muestreo ascendente y muestreo descendente, cada una o ambas, pueden ser funciones no lineales diferentes.
Una modalidad en la presente descripción incluye la presentación de varias operaciones diferentes de muestreo descendente y de muestreo ascendente en un bucle de codificación respectivo para determinar qué operaciones son las más adecuadas para reducir una cantidad de datos codificados. De acuerdo con tal modalidad, el codificador produce y prueba conjuntos de datos residuales que indican una diferencia entre una interpretación de la señal de muestreo descendente y una interpretación de la señal de muestreo ascendente desde un nivel inferior de calidad. De acuerdo con modalidades adicionales, en cada nivel de calidad en la jerarquía, el codificador implementa un algoritmo de codificación "con pérdidas" para reducir la entropía de los datos residuales que se producen en cada uno de los niveles de calidad. La reducción de la entropía puede lograrse mediante la alteración o modificación de elementos de la señal en cada nivel de calidad y la estimación del impacto sobre la entropía de los residuos en los niveles superiores.
De acuerdo con una modalidad más específica, el proceso de modificación para mejorar (por ejemplo, reducir) la entropía se puede repetir hasta que se apliquen una o más de las siguientes condiciones: a.) el nivel de entropía logrado para un nivel superior de calidad está más abajo de un valor umbral de satisfacción, b.) ninguna alteración adicional parece mejorar la entropía de los datos residuales para un número dado de intentos, c) el codificador ha realizado un número preestablecido de intentos para reducir la entropía, etc.
Como se describe más adelante en la presente descripción, la entropía puede estimarse mediante el uso de una función proxy, que calcula o estima un número de bits, símbolos, etc., necesarios para indicar información de diferencia para un nivel de calidad.
En las modalidades adicionales, el codificador estima el impacto en la entropía de los residuos en niveles superiores de calidad mediante el uso de una función proxy para identificar un impacto en la entropía, sin la necesidad de codificar completamente los residuos en cada modificación. La función de proxy puede producir una métrica tal como un valor que indica un porcentaje de residuos que son diferentes de un valor de cero o cercano al valor cero.
La optimización de las operaciones de muestreo descendente y de los filtros no es necesariamente un objetivo de todas las modalidades descritas en la presente descripción. En una modalidad, dado que el codificador ya sabe qué operaciones lineales o no lineales (por ejemplo, filtrado bicúbico, enmascaramiento de desenfoque, eliminación de mezcla,...) se usarán para volver a escalar a niveles superiores de calidad en el sitio de decodificación, el codificador puede configurarse para optimizar el muestreo descendente, no tanto para reducir los artefactos en niveles inferiores de calidad, sino para reducir el número de residuos (o, incluso más precisamente, para reducir la entropía de los residuos) después de aplicar las operaciones de muestreo. Tanto las funciones de muestreo descendente como de muestreo ascendente pueden ser tipos de funciones no lineales.
Como se describe más adelante en la presente descripción, el muestreo descendente de la señal durante la codificación puede incluir la implementación de un proceso de filtro bilineal modificado. De acuerdo con tal modalidad, el codificador inicialmente muestrea descendentemente de manera inicial desde el nivel n al nivel (n-1) mediante el uso de una función de muestreo descendente tal como un filtro bilineal. El codificador se centra en cada elemento y lo altera en varias direcciones. Cada vez que el codificador altera un elemento, el codificador vuelve a muestrear ascendentemente a un nivel de calidad superior (es decir, cada pel/píxel en el nivel n-1 influye en un número de píxeles en el nivel n) para evaluar la entropía de los residuos en base a la generación de una métrica de entropía apropiada.
De acuerdo con una métrica de entropía generada, para el nuevo valor de ese pel/píxel específico en el nivel n-1, el codificador finalmente selecciona la alteración que genera la entropía de residuos más baja en el siguiente nivel superior de calidad (por ejemplo, la jerarquía de niveles). Para ello, el codificador puede aprovechar el uso de un algoritmo iterativo o de bucle. El algoritmo iterativo elige una dirección (por ejemplo, arriba o abajo) en la que alterar un elemento. Si la métrica de entropía mejora, el codificador continúa con otra alteración en la dirección seleccionada. El codificador puede configurarse para reducir un tamaño de las alteraciones una vez que se acerca a un valor de entropía mínimo para la rutina de modificación iterativa.
En una modalidad, las operaciones de modificación se realizan en paralelo para reducir una cantidad de tiempo necesaria para codificar una señal recibida en múltiples niveles diferentes de calidad. El procesamiento paralelo puede incluir el uso de todas las CPU multinúcleo o GPU masivas. Cada procesador puede configurarse para procesar una porción seleccionada de la señal general.
Dado que diferentes pels/píxeles de nivel (n-1) pueden influir en áreas solapadas de nivel n, para cada "etapa paralela" del algoritmo, el codificador puede configurarse para realizar un algoritmo de agregación global (potencialmente de manera jerárquica, por ejemplo, pel único, luego 4x4, luego 16x16, etc., con bucles locales para un cierto número de iteraciones antes de realizar un pase global) para comprobar si las modificaciones en una subregión impactan negativamente en la entropía asociada con el conjunto global de datos residuales.
Una implementación específica del algoritmo de modificación también puede tener en cuenta diferentes opciones posibles de muestreo ascendente, de manera que, al terminar el algoritmo de modificación, el codificador conozca el nivel óptimo n-1 para cada técnica alternativa de muestreo ascendente. El codificador puede seleccionar la opción de muestreo ascendente o de escalado que produzca la métrica de entropía general más baja para los datos residuales en el siguiente nivel superior.
Tenga en cuenta adicionalmente que, con suficiente potencia de cálculo del codificador, el codificador puede configurarse para modificar y codificar un nivel de calidad (n-2) en base al procesamiento del nivel n, no solo en base al nivel (n-1). En otras palabras, los datos de señal en un nivel inferior de calidad pueden modificarse para reducir la entropía en múltiples niveles superiores de calidad diferentes en la jerarquía. Adicionalmente, el mismo enfoque también puede usarse para modificar (o enriquecer) las operaciones y los filtros que se aprovechan para volver a escalar desde niveles inferiores a niveles superiores. Por ejemplo, si el codificador modificó niveles inferiores en base a múltiples niveles superiores de calidad, el codificador y el decodificador pueden reconstruir la señal en niveles superiores de calidad en la jerarquía en base a la información contenida en múltiples niveles inferiores.
Tenga en cuenta que la señal recibida como se describe en la presente descripción puede ser de cualquier tipo adecuado. En una modalidad, la señal representa datos de imagen. De acuerdo con tal modalidad, el codificador codifica una señal a resoluciones inferiores o niveles inferiores de calidad en base a la producción de conjuntos escalonados de datos codificados. Al utilizar conjuntos de datos codificados que parten de un nivel de calidad dado (por ejemplo, el nivel más bajo) en la jerarquía, los conjuntos escalonados de datos codificados pueden decodificarse y usarse para reconstruir una imagen original o una réplica "con pérdidas" de la imagen original para su reproducción.
Estas y otras variaciones de la modalidad se describen en más detalle más abajo.
Como se mencionó anteriormente, tenga en cuenta que las modalidades en la presente descripción pueden incluir una configuración de uno o más dispositivos computarizados, enrutadores, redes, estaciones de trabajo, ordenadores de mano o laptop o similares, 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 se pueden programar y/o configurar para operar como se explica en la presente descripción para llevar a cabo diferentes modalidades.
Además del decodificador y el procesamiento descritos anteriormente, aún otras modalidades en la presente descripción incluyen programas de software para realizar las etapas y operaciones resumidas anteriormente y descritos en detalle a continuación. Una modalidad de este tipo 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 causa que el procesador realice cualquiera de las operaciones descritas en la presente descripción. Tales arreglos pueden proporcionarse como software, código y/u 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), disquete o disco duro u otro un medio tal como microprograma o microcódigo en uno o más chips ROM o RAM o p Ro M o como un circuito integrado de aplicación específica (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, una modalidad particular de la presente descripción 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. Por ejemplo, en una modalidad, las instrucciones, cuando se llevan a cabo por un procesador de un dispositivo informático respectivo, hacen que el procesador: reciba una señal; utilice al menos una operación de muestreo descendente para producir interpretaciones de muestreo descendente de la señal en niveles sucesivamente inferiores de calidad en la jerarquía; aplique al menos una operación de muestreo ascendente a una interpretación de muestreo descendente de la señal en un primer nivel de calidad para producir una interpretación de muestreo ascendente de la señal en un segundo nivel de calidad en la jerarquía, el segundo nivel de calidad es superior al primer nivel de calidad, la al menos una operación de muestreo ascendente y la al menos una operación de muestreo descendente pueden ser asimétricas con respecto entre sí; y producir datos residuales que indican una diferencia entre la interpretación de muestreo descendente de la señal en el segundo nivel de calidad y la interpretación de muestreo ascendente de la señal en el segundo nivel de calidad.
El orden de las etapas se ha agregado en aras de la claridad. Estas etapas se pueden realizar en cualquier orden adecuado.
Otras modalidades de la presente descripción incluyen programas de software, microprograma y/o hardware respectivos para realizar cualquiera de las etapas y operaciones de la modalidad del método resumidas anteriormente y descritas en detalle a continuación.
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, se pueden incorporar 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 muy adecuadas para su uso en aplicaciones de software, microprograma y/o hardware que codifican señales. Sin embargo, se debe señalar que las modalidades 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 se pueden describir en diferentes lugares de esta descripción, se pretende que cada uno de los conceptos se pueda ejecutar independientemente de cada uno o en combinación entre sí. En consecuencia, una o más de las presentes invenciones, modalidades, etc., como se describió en la presente descripción, se puede incorporar y ver de muchas maneras diferentes.
Además, tenga en cuenta que esta descripción preliminar de las modalidades en la presente descripción no especifica cada modalidad 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 sólo presenta modalidades 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 a continuación.
Breve descripción de las figuras
Los anteriores y otros objetos, características y ventajas de la invención serán evidentes a partir de la siguiente descripción más particular de las modalidades preferidas en la presente descripción, como se ilustra en las imágenes 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 hincapié en ilustrar las modalidades, principios, conceptos, etc.
La Figura 1 es un diagrama de ejemplo de un codificador y el muestreo descendente de una señal de acuerdo con las modalidades en la presente descripción.
La Figura 2 es un diagrama de ejemplo que ilustra las etapas de realización de un algoritmo de muestreo descendente de acuerdo con la invención, tal como se define en las reivindicaciones modificadas.
La Figura 3 es un diagrama de ejemplo que ilustra el muestreo descendente de la información de imagen de acuerdo con las modalidades en la presente descripción.
La Figura 4 es un diagrama de ejemplo que ilustra la codificación de una señal de acuerdo con las modalidades en la presente descripción.
La Figura 5 es un diagrama de ejemplo que ilustra la codificación de una señal que incluye la modificación de elementos durante el muestreo ascendente para reducir una entropía de los datos residuales de acuerdo con las modalidades en la presente descripción.
La Figura 6 es un diagrama de ejemplo que ilustra la generación de datos residuales para su uso por un decodificador de acuerdo con las modalidades en la presente descripción.
La Figura 7 es un diagrama de ejemplo que ilustra la generación de datos residuales de acuerdo con las modalidades en la presente descripción.
La Figura 8 es un diagrama de ejemplo que ilustra la generación de datos de muestreo descendente modificados de acuerdo con las modalidades en la presente descripción.
La Figura 9 es un diagrama que ilustra un método de ejemplo de muestreo descendente, modificación, muestreo ascendente y cuantificación de datos residuales de acuerdo con las modalidades en la presente descripción. La Figura 10 es un diagrama que ilustra un ejemplo de función para determinar la entropía de acuerdo con las modalidades en la presente descripción.
La Figura 11 es un diagrama que ilustra un ejemplo de cuantificación de datos residuales de acuerdo con las modalidades en la presente descripción.
La Figura 12 es un diagrama que ilustra un ejemplo de arquitectura informática para ejecutar código informático, microprograma, software, aplicaciones, lógica, etc., de acuerdo con las modalidades en la presente descripción. Descripción detallada
De acuerdo con una modalidad, un codificador recibe una señal. El codificador utiliza una o más operaciones de muestreo descendente para producir interpretaciones de muestreo descendente de la señal (es decir, datos de señal) en niveles sucesivamente inferiores de calidad en la jerarquía. En dirección inversa, el codificador aplica la una o más operaciones de muestreo ascendente a una interpretación de muestreo descendente de la señal en un primer nivel de calidad para producir una interpretación de muestreo ascendente de la señal en un segundo nivel de calidad en la jerarquía. El segundo nivel de calidad es superior al primer nivel de calidad. La una o más operaciones de muestreo ascendente y una o más operaciones de muestreo descendente pueden ser asimétricas con respecto entre sí. Es decir, la función que se aplica durante el muestreo descendente puede ser diferente de la función que se aplica durante el muestreo ascendente. El codificador produce datos residuales que indican una diferencia entre la interpretación de muestreo descendente de la señal en el segundo nivel de calidad y la interpretación de muestreo ascendente de la señal en el segundo nivel de calidad.
La Figura 1 es un diagrama de ejemplo de un codificador y el respectivo muestreo descendente de una señal de acuerdo con las modalidades en la presente descripción.
El codificador 140 recibe la señal 115. La señal 115 codificada por el codificador 140 puede ser cualquier tipo adecuado de información de datos.
Por medio de un ejemplo no limitativo, la señal 115 puede ser datos de imagen, símbolos, etc., que indican las configuraciones de cada uno de los múltiples elementos de señal (por ejemplo, pels/elementos de plano, píxeles/elementos de imagen, vóxeles/elementos de imagen volumétricos, etc.) en una imagen respectiva. La imagen puede ser bidimensional (por ejemplo, imágenes, tramas de vídeo, mapas de movimiento 2D, etc.), tridimensional (por ejemplo, imágenes 3D/volumétricas, imágenes holográficas, escáneres CAT, imágenes médicas/científicas, mapas de movimiento 3D, etc.), una señal que presenta más de tres dimensiones, una señal basada en el tiempo (por ejemplo, señal de audio, señal de vídeo, etc.), etcétera.
Para simplificar, las modalidades que se ilustran en la presente descripción a menudo se refieren a imágenes que se visualizan como planos 2D de configuraciones (por ejemplo, imágenes 2D en un espacio de color adecuado), tal como por ejemplo una imagen. Sin embargo, los mismos conceptos y métodos son también aplicables a cualquier otro tipo de señal. De acuerdo con tales modalidades, las configuraciones de los elementos de señal (como se especifica por la señal 115) indican cómo reconstruir la imagen respectiva para su reproducción en un dispositivo. Durante la codificación de la señal 115, el codificador 140 usa una o más operaciones de muestreo descendente y una o más operaciones de muestreo ascendente para producir conjuntos de datos de señal codificados que son usados por un decodificador para reconstruir una señal original 115.
Los datos de señal, como se describen a continuación, representan interpretaciones de la señal 115 en los diferentes niveles de calidad en la jerarquía de codificación. Tenga en cuenta que el nivel de calidad J puede representar un nivel superior de calidad o un nivel intermedio de calidad en la jerarquía. En una modalidad, el codificador 140 procesa datos de señal en pares de niveles en la jerarquía para realizar un muestreo descendente de la señal en niveles inferiores de calidad.
El muestreo descendente de la señal 115 puede incluir la aplicación de una operación de muestreo descendente seleccionada a los datos de señal SJ en el nivel de calidad J para crear datos de señal SJ-1 en el nivel de calidad J-1. Por ejemplo, la operación de muestreo descendente puede ser un simple filtro bilineal o una operación más compleja, tal como la aplicación de una función no lineal, como se describió previamente.
Tenga en cuenta que los datos de señal SJ-1 representan una resolución inferior o un nivel inferior de calidad que la señal original 115; los datos de señal SJ-2 representan una resolución inferior o un nivel inferior de calidad de la señal 115 que los datos de señal SJ-1, y así sucesivamente.
Por tanto, los datos de señal en cada nivel respectivo en la jerarquía representan la señal original, pero a un nivel inferior de calidad. Típicamente, se necesitan cada vez menos datos (por ejemplo, información de bits, símbolos, etc.) para definir la señal en cada nivel sucesivamente inferior en la jerarquía.
De acuerdo con una modalidad, el codificador 140 muestrea descendentemente la señal 115 en datos de señal SJ-1. Posterior al muestreo descendente inicial de los datos de señal SJ al nivel de calidad J-1, el codificador 140 modifica o ajusta las configuraciones de elementos individuales en los datos de señal SJ-1 para identificar qué configuraciones modificadas para los datos de señal SJ-1 reducen una entropía asociada con los datos residuales que se producen para el nivel de calidad J.
Más específicamente, en una modalidad, el codificador 140 aplica una operación de muestreo ascendente J a una primera versión de los datos de señal SJ-1T para producir los datos de señal SJ1. El codificador 140 calcula entonces una diferencia entre los datos de señal SJ y SJ1 para producir los datos residuales 118-1. Los datos residuales 118-1 indican modificaciones que deben hacerse en los datos de señal SJ1 para reproducir, con una precisión deseada, los datos de señal SJ (por ejemplo, la señal 115).
En una modalidad, el codificador 140 aplica el proceso de cuantificación QJ para producir los datos residuales 119-1. La etapa QJ representa la aplicación de una función que ajusta la configuración de valores individuales en los datos residuales 118-1 para que sean el mismo valor o símbolo si las magnitudes respectivas de tales elementos caen dentro de un intervalo o están por encima/más abajo de un valor umbral. Como ejemplo, mediante la cuantificación, el codificador 140 puede identificar configuraciones de elementos individuales en los datos residuales 118-1 que tienen un valor que cae en un intervalo de entre -1,5 y 1,5. Para aquellos valores que caen dentro de este intervalo, el codificador 140 establece tales valores en los datos residuales ajustados 119-1 a un valor predeterminado tal como cero; el codificador 140 puede identificar configuraciones de elementos individuales en los datos residuales 118-1 que caen en un intervalo de entre -7,5 y -6,5 y establecer tales valores en los datos residuales ajustados 119 1 a una configuración de -7,0, y así sucesivamente. En consecuencia, la cuantificación QJ reduce una entropía de los datos residuales 118-1. Es decir, los valores de los datos residuales se modifican para que sean más similares entre sí.
En este ejemplo, tenga en cuenta que, si los datos de señal SJ son iguales a los datos de señal SJ1, entonces los datos residuales que se producen serán todos valores cero (por ejemplo, entropía mínima). En tal caso, no habría necesidad de modificar los datos de señal SJ-1 ya que habría una entropía lo más baja posible asociada con los datos residuales 118-1.
Un caso más probable es que los datos de señal SJ y SJ1 no sean iguales. La entropía de los datos residuales 118-1 y los datos residuales ajustados 119-1 probablemente serán valores distintos de cero. En este caso, se supone que los datos residuales 118-1 y los datos residuales ajustados 119-1 incluyen valores distintos de cero. La alta entropía de los datos residuales no es conveniente porque significa que se deben usar datos extras para reconstruir la señal original 115. Típicamente es conveniente reducir la cantidad general de datos necesarios para reconstruir la señal 115.
En una modalidad, para reducir una entropía de los datos residuales 119-1, el codificador 140 modifica repetidamente los datos de señal SJ-1 y muestrea ascendentemente diferentes versiones de los datos de señal modificados SJ-1T en los datos de señal SJ1 hasta que las respectivas modificaciones a los elementos individuales de los datos de señal SJ-1 den como resultado una entropía sustancialmente menor o la más baja de los datos residuales 119-1.
Las modificaciones pueden realizarse por elemento. Es decir, el codificador 140 puede seleccionar un elemento en los datos de señal SJ-1 y modificar repetidamente un valor del elemento para identificar una configuración respectiva que reduzca una entropía asociada con los datos residuales 119-1. El codificador puede reducir una magnitud de la modificación del elemento seleccionado a medida que el valor modificado se acerca a producir una métrica de entropía sustancialmente inferior para los datos residuales del siguiente nivel.
Al identificar la mejor modificación apropiada para el elemento seleccionado, el codificador 140 guarda entonces los datos de señal modificados para el elemento y los almacena en los datos de señal SJ-1T.
Mediante el uso de cada una de las modificaciones sustancialmente mejores para los elementos probados previamente, el codificador 140 selecciona entonces un siguiente elemento en los datos de señal SJ-1 para modificar y repite el proceso anterior para identificar una mejor configuración para el elemento seleccionado, y así sucesivamente.
Posterior a completar un proceso de producción de datos de señal modificados SJ-1T para el nivel de calidad J-1 que reduce una entropía de los datos residuales 119-1, el codificador 140 repite entonces el mismo proceso para cada siguiente nivel inferior de calidad.
Por ejemplo, en un siguiente nivel inferior de calidad, el codificador 140 muestrea descendentemente los datos de señal SJ-1T en datos de señal SJ-2. Posterior a este muestreo descendente, el codificador 140 modifica o ajusta las configuraciones de elementos individuales en los datos de señal SJ-2 para identificar qué configuraciones modificadas para los datos de señal SJ-2 reducen una entropía asociada con los datos residuales 119-2 que se producen para el nivel de calidad J-1.
Más específicamente, en una modalidad, el codificador 140 aplica una operación de muestreo ascendente J-1 a los datos de señal SJ-2T para producir los datos de señal SJ-11. El codificador 140 calcula entonces una diferencia entre los datos de señal SJ-1T y SJ-11 para producir los datos residuales 118-2. El codificador 140 aplica entonces el proceso de cuantificación para producir los datos residuales 119-2.
Como se describió previamente, la cuantificación puede incluir la aplicación de una función que ajusta la configuración de valores individuales en los datos de señal para que sean el mismo valor o símbolo si las magnitudes respectivas de tales valores caen dentro de un intervalo o están por encima/más abajo de un valor umbral.
Para reducir una entropía de los datos residuales 119-2, el codificador 140 modifica repetidamente los datos de señal SJ-2 y muestrea ascendentemente los datos de señal modificados SJ-2T en los datos de señal SJ-11 hasta que las respectivas modificaciones a los elementos individuales de los datos de señal SJ-2 den como resultado una entropía sustancialmente menor o la más baja de los datos residuales 119-2.
Como se mencionó previamente, las modificaciones pueden realizarse por elemento. Es decir, el codificador puede seleccionar un elemento en los datos de señal SJ-2 y modificar repetidamente un valor del elemento seleccionado para identificar una configuración que reduzca una entropía asociada con los datos residuales 119-2. Al identificar la modificación apropiada para el elemento seleccionado, el codificador 140 guarda entonces los datos de señal modificados para el elemento y los almacena en los datos de señal SJ-2T.
El codificador 140 selecciona entonces un siguiente elemento en los datos de señal SJ-1 para modificar y repite el proceso anterior para identificar una mejor configuración para cada elemento seleccionado, y así sucesivamente. Posterior a completar un proceso de producción de datos de señal modificados SJ-2T para el nivel de calidad J-2 que reduce una entropía de los datos residuales 119-2, el codificador 140 repite entonces el mismo proceso para cada siguiente nivel inferior de calidad. En consecuencia, el codificador 140 produce conjuntos modificados de datos de señal en niveles inferiores de calidad en la jerarquía.
Tenga en cuenta que el codificador 140 puede configurarse para probar múltiples opciones diferentes de muestreo ascendente (por ejemplo, una o más operaciones de muestreo ascendente) para identificar cuál de las múltiples opciones de muestreo ascendente produce la entropía más baja de los datos residuales. En otras palabras, el codificador 140 puede repetir el proceso de muestreo descendente y modificación para cada una de las múltiples operaciones de muestreo ascendente para identificar cual(es) operación(es) de muestreo ascendente reduce(n) mejor la entropía de los datos residuales en el siguiente nivel superior de calidad.
La Figura 2 es un diagrama de ejemplo que ilustra un método de muestreo descendente de acuerdo con las modalidades en la presente descripción. Tenga en cuenta que la descripción del algoritmo de bucles múltiples en la Figura. 2 incluirá referencias al procesamiento descrito en la Figura. 1.
En la etapa 200, el codificador 140 selecciona un nivel de calidad para procesar. Se supone en este ejemplo que el codificador 140 selecciona y comienza en el nivel de calidad J.
En la etapa 205, el codificador 140 aplica una operación de muestreo descendente seleccionada para producir datos de señal SJ-1.
En la etapa 210, el codificador 140 selecciona una opción de muestreo ascendente entre múltiples opciones de muestreo ascendente posibles. Cada opción de muestreo ascendente puede incluir el muestreo ascendente mediante una o más operaciones de muestreo ascendente.
En la etapa 215, el codificador 140 aplica la opción de muestreo ascendente seleccionada a los datos de señal SJ-1 para producir los datos residuales 118-1.
En la etapa 220, el codificador 140 aplica un proceso (por ejemplo, cuantificación o cuantificación simulada) a los datos residuales 118-1 para producir los datos residuales ajustados 119-1.
En la etapa 225, el codificador 140 calcula una entropía (o simulación/aproximación de la misma) de los datos residuales ajustados 119-1 y los define como un valor de entropía actual.
En la etapa 230, el codificador 140 selecciona una señal (por ejemplo, datos de señal SJ-1) para modificarla al nivel de calidad J-1.
En la etapa 235, el codificador 140 selecciona un elemento para modificar en los datos de señal seleccionados SJ-1 para producir datos de señal SJ-1T.
En la etapa 240, el codificador 140 ajusta el elemento seleccionado en los datos de señal SJ-1T en diferentes direcciones y con cantidades potencialmente diferentes hasta un número máximo de iteraciones. En la etapa 245, el codificador 140 produce los datos residuales 118-1 (o al menos una porción de ellos que está más directamente influenciada por el elemento seleccionado) para cada ajuste del elemento seleccionado.
En la etapa 250, el codificador 140 procesa los datos residuales 118-1 (o una porción de los mismos) para producir datos residuales ajustados 119-1 (o una porción de los mismos) para cada modificación del elemento seleccionado como se describió previamente.
En la etapa 255, el codificador 140 calcula una entropía de los datos residuales ajustados (porción de) 119-1 para cada modificación del elemento seleccionado para identificar y seleccionar una configuración sustancialmente mejor o la mejor del elemento seleccionado que reduce una entropía de los datos (porción de) residuales 119-1 ajustados. En la etapa 260, el codificador 140 repite el procesamiento del bucle 4 de vuelta a la etapa 235 para cada elemento en los datos de señal SJ-1 seleccionados para identificar una configuración sustancialmente mejor para cada elemento en los datos de señal SJ-1. El codificador 140 continúa el procesamiento en la etapa 260 posterior a la prueba de todos los elementos.
En la etapa 265, el codificador 140 aplica una operación de muestreo ascendente a los datos de señal modificados SJ-1T y produce los datos residuales 118-1 y los datos residuales ajustados 119-1.
En la etapa 270, el codificador 140 procesa los datos residuales 118-1 para producir los datos residuales ajustados 119-1.
En la etapa 275, el codificador 140 calcula la entropía (o una simulación/aproximación de la misma) de los datos residuales ajustados 119-1. Si la señal modificada presenta una entropía inferior de los datos residuales ajustados a la entropía óptima actual, la señal modificada se convierte en la nueva señal a modificar y su entropía de los datos residuales ajustados se convierte en la nueva entropía óptima. Si no, el codificador 140 aborta las configuraciones modificadas y sale del bucle 3 a la etapa 285. De cualquier otra manera, el codificador 140 continúa el procesamiento en la etapa 280 para repetir el bucle 3.
En la etapa 280, el codificador 140 continúa la ejecución en la etapa 230 siempre que la nueva señal modificada genere una entropía inferior de los datos residuales ajustados.
En la etapa 285, el codificador 140 continúa la ejecución en la etapa 210 para una siguiente opción de muestreo ascendente seleccionada de las múltiples opciones de muestreo ascendente posibles. Cuando se han probado todas las opciones de muestreo ascendente, el codificador 140 continúa el procesamiento en la etapa 290.
En la etapa 290, el codificador 140 almacena configuraciones modificadas para los datos de señal SJ-1T
En la etapa 295, el codificador 140 repite el procesamiento en la etapa 200 para muestrear descendentemente los datos de señal SJ-1T al siguiente nivel inferior de calidad J-2. El codificador 140 repite este proceso hasta que la señal 115 se ha muestreado descendentemente hasta el nivel de calidad más bajo deseado.
La Figura 3 es un diagrama de ejemplo que ilustra el muestreo descendente de la información de imagen de acuerdo con las modalidades en la presente descripción. Como se describió previamente, la señal 115 puede representar los datos de imagen. De acuerdo con tal modalidad, los datos de señal en cada nivel de calidad indican configuraciones de elementos (por ejemplo, pels/ elementos de plano) en una imagen respectiva.
En una modalidad, cada componente de color de un elemento en los datos de señal se codifica de acuerdo con un estándar de espacio de color tal como YUV, RGB o HSV, aunque los atributos de la señal 115, al definir una imagen, pueden codificarse de acuerdo con cualquier formato adecuado.
El muestreo descendente resulta en la reducción de una resolución y el correspondiente nivel de calidad de los respectivos datos de señal. Por ejemplo, los datos de señal para el nivel de calidad 3 indican configuraciones de elementos en la imagen respectiva 510-3; los datos de señal para el nivel de calidad 2 indican configuraciones de elementos en la imagen respectiva 510-2; los datos de señal para el nivel de calidad 1 indican la configuración de los elementos en la imagen respectiva 510-1, y así sucesivamente.
Cuando se realiza un muestreo descendente de la manera descrita previamente, el codificador 140 produce los datos de señal para un siguiente nivel inferior de calidad (por ejemplo, nivel 2) para definir, por ejemplo, la imagen 510-2; el codificador 140 produce los datos de señal para un siguiente nivel inferior de calidad (por ejemplo, nivel 1) para definir, por ejemplo, la imagen 510-1; y así sucesivamente.
Como se describió previamente, la cantidad de datos para definir la imagen de muestreo descendente puede reducirse para cada nivel inferior de calidad hasta el nivel más bajo de calidad deseado. Es decir, cuando se ejecuta un muestreo descendente a escala 2:1 desde el nivel 3 al nivel 2, el codificador 140 reduce múltiples elementos Y en la imagen 510-3 a un único elemento X en la imagen respectiva 510-2 como se muestra. Cuando se realiza un muestreo descendente del nivel 2 al nivel 1, el codificador 140 reduce múltiples elementos X en la imagen 510-3 a un único elemento W en la imagen respectiva 510-1, y así sucesivamente. La Figura 4 es un diagrama de ejemplo que ilustra la codificación adicional de una señal de acuerdo con las modalidades en la presente descripción.
De la manera descrita previamente, el codificador 140 muestrea descendentemente la señal 115 en diferentes conjuntos de datos de señal, que incluyen los datos de señal S3T, los datos de señal S2T, los datos de señal S1T. Tenga en cuenta que el proceso de modificación durante el muestreo descendente es opcional. De acuerdo con otras modalidades, cualquier operación(es) de muestreo descendente adecuada(s) puede(n) ser aplicada(s) por el codificador 140 para producir conjuntos de datos base en lugar de datos de señal modificados tales como los datos de señal S3T, los datos de señal S2T, S1T.
En un nivel más bajo de calidad, tal como el nivel de calidad 1, el codificador 140 puede configurarse para aplicar la función de cuantificación Q1 a los datos de señal S1T para producir los datos de señal S12. Como se describió previamente, la cuantificación reduce una entropía de los datos de señal respectivos.
Tenga en cuenta que los datos de señal S12 son información reducida que representa la señal 115 en el nivel más bajo de calidad (por ejemplo, el nivel de calidad #1) en la jerarquía.
El codificador 140 selecciona una operación de muestreo ascendente en la que muestrear ascendentemente los datos de señal S12 en datos de señal S2U (por ejemplo, una interpretación intermedia de la señal con el nivel de calidad dado).
Para la operación de muestreo ascendente seleccionada, en el nivel de calidad 2, el codificador 140 produce los datos residuales 418-1 en base a una diferencia entre los datos de señal S2T y los datos de señal S2U Debido a que el proceso de codificación puede tener pérdidas, es probable que los datos de señal de muestreo ascendente S2U sean similares, pero no idénticos a los datos de señal S2T
El codificador 140 aplica entonces la función de cuantificación QJ a los datos residuales 418-1 para producir los datos residuales ajustados 419-1 de la manera que se describió previamente. El codificador 140 puede repetir este proceso para cada una de múltiples operaciones diferentes para determinar qué operación u operaciones de muestreo ascendente son las mejores para reducir una entropía asociada con los datos residuales ajustados 419-1. El codificador 140 almacena entonces los datos de señal S12, operación de muestreo ascendente sustancialmente mejor identificada, y los correspondientes datos residuales ajustados 419-1 para el nivel de calidad #1. Para esta información almacenada, el codificador 140 suma los datos residuales ajustados 419-2 y los datos de señal S2U para producir los datos de señal S22
Los datos de señal S22 son un conjunto de información reducida que representa la señal en el nivel de calidad 2 en la jerarquía. En consecuencia, las modalidades en la presente descripción incluyen elementos de modificación en la interpretación intermedia de la señal (es decir, datos de señal S2U) en el segundo nivel de calidad para producir una interpretación modificada de la señal (por ejemplo, datos de señal S22) en el segundo nivel de calidad.
Como se describirá en la Figura 6, el codificador 140 genera los datos residuales 470-2 en base a una diferencia entre una interpretación de muestreo ascendente de la señal 115 (por ejemplo, datos de señal S2U) en el segundo nivel de calidad y la interpretación modificada de la señal (por ejemplo, datos de señal S23) en el segundo nivel de calidad; el codificador 140 genera los datos residuales 470-3 en base a una diferencia entre una interpretación de muestreo ascendente de la señal 115 (por ejemplo, datos de señal S3U) en el segundo nivel de calidad y la interpretación modificada de la señal (por ejemplo, datos de señal S33) en el segundo nivel de calidad; y así sucesivamente.
Con referencia de nuevo a la Figura 4, el codificador 140 realiza un muestreo ascendente desde el nivel de calidad 2 al nivel de calidad 3 de una manera similar a como se describió anteriormente para el muestreo ascendente desde el nivel de calidad 1 al nivel de calidad 2. Como ejemplo, en el nivel de calidad 2, el codificador 140 selecciona una operación de muestreo ascendente (entre múltiples operaciones de muestreo ascendente posibles) en la que se muestrean ascendentemente los datos de señal S22 en datos de señal S3U. Para la operación de muestreo ascendente seleccionada, en el nivel de calidad 3, el codificador 140 produce los datos residuales 418-2 en base a una diferencia entre los datos de señal S3T y los datos de señal S3U Debido a que el proceso de codificación puede tener pérdidas, es probable que los datos de señal de muestreo ascendente S3U sean similares, pero no idénticos a los datos de señal S3T.
El codificador 140 aplica entonces la función de cuantificación QJ a los datos residuales 418-2 para producir los datos residuales ajustados 419-2 de la manera que se describió previamente.
El codificador 140 puede repetir este proceso para probar cada una de múltiples operaciones diferentes para determinar qué operación u operaciones de muestreo ascendente son las mejores para reducir una entropía asociada con los datos residuales ajustados 419-2.
El codificador 140 almacena entonces los datos de señal S22, la respectiva operación de mejor muestreo ascendente, y los correspondientes datos residuales ajustados 419-2 para el nivel de calidad #2. El codificador 140 suma los datos residuales ajustados 419-2 y los datos de señal S3U para producir los datos de señal S32. Los datos de señal S33 son un conjunto de información reducida que representa la señal en el nivel de calidad 3 en la jerarquía.
El codificador 140 repite este proceso como se muestra hasta el nivel de calidad N en la jerarquía.
La Figura 5 es un diagrama de ejemplo que ilustra la codificación de una señal que incluye la modificación de elementos durante el muestreo ascendente para reducir una entropía de los datos residuales de acuerdo con las modalidades en la presente descripción. En esta modalidad de ejemplo, a diferencia del ejemplo en la Figura 4, el codificador 140 realiza modificaciones de elementos durante el muestreo ascendente para producir los datos modificados para cada nivel de calidad.
De la manera como se describió previamente, el codificador 140 muestrea descendentemente la señal 115 en cualquier conjunto adecuado de datos de señal representativos de la señal 115 en niveles inferiores de calidad. Por lo tanto, los datos de señal de muestreo descendente en niveles inferiores pueden o no derivarse de modificaciones durante el muestreo descendente.
En un nivel más bajo de calidad, tal como el nivel de calidad 1, el codificador 140 aplica la función de cuantificación Q1 a los datos de señal de muestreo descendente S1T para producir los datos de señal S12. Los datos de señal S12 son información comprimida o reducida que representa la señal en el nivel más bajo de calidad en la jerarquía. La aplicación de la etapa de cuantificación Q1 para producir los datos de señal S12 puede ser parte del proceso de muestreo descendente.
El codificador 140 selecciona entonces una operación de muestreo ascendente en la que se muestrea ascendentemente una versión modificada de los datos de señal S12 (por ejemplo, datos de señal S13) en los datos de señal S2U.
En esta modalidad, el codificador 140 modifica la configuración de los datos de señal S12 para producir un conjunto de datos de señal S13 que reduce una entropía asociada con los datos residuales ajustados 519-1. Por ejemplo, en una modalidad, el codificador 140 selecciona un elemento en los datos de señal S12 y modifica repetidamente el elemento seleccionado para identificar qué configuración del elemento seleccionado produce una entropía más baja de los datos residuales ajustados 519-1. El codificador 140 repite la modificación para cada elemento en los datos de señal S12 para producir los datos de señal S13.
Tenga en cuenta que además de identificar una mejor configuración para cada elemento para la operación de muestreo ascendente seleccionada, el codificador 140 puede probar cada una de las múltiples operaciones de muestreo ascendente posibles para identificar qué operaciones y modificaciones correspondientes (para las diferentes operaciones de muestreo ascendente) son mejores para producir la entropía sustancialmente más baja asociada con los datos residuales ajustados 519-1.
Posterior a identificar las configuraciones modificadas sustancialmente mejores para los datos de señal S12 y la operación de muestreo ascendente sustancialmente mejor, el codificador 140 almacena entonces los datos de señal modificados S13, la operación de muestreo ascendente mejor identificada y los correspondientes datos residuales ajustados 519-1 para el nivel de calidad #1. Para esta información almacenada, el codificador 140 suma los datos residuales ajustados 519-1 y los datos de señal S2U para producir los datos de señal S22. Los datos de señal S22 son un conjunto de información reducida que representa la señal en el nivel de calidad 2 en la jerarquía.
El codificador 140 realiza entonces un muestreo ascendente desde el nivel de calidad 2 al nivel de calidad 3 de una manera similar a como se describió anteriormente para el muestreo ascendente desde el nivel de calidad 1 al nivel de calidad 2. El codificador 140 repite este proceso para cada siguiente nivel superior de calidad hasta alcanzar el nivel de calidad más alto.
En una modalidad, el codificador 140 analiza la interpretación de muestreo descendente de la señal (por ejemplo, datos de señal S3T, datos de señal S2T, datos de señal S1T) en el primer nivel de calidad en múltiples regiones contiguas de elementos de imagen. El codificador emplea entonces unidades de procesamiento paralelo para procesar simultáneamente las múltiples regiones para identificar los ajustes a los elementos en las múltiples regiones para reducir una entropía asociada con los datos residuales.
De acuerdo con las modalidades adicionales, el codificador 140 puede al menos ocasionalmente realizar una denominada comprobación global de que los ajustes seleccionados a los elementos en las regiones contiguas individuales que se procesan en paralelo no causan sustancialmente una mayor entropía de los datos residuales para los datos de señal generales que se procesan.
La Figura 6 es un diagrama de ejemplo que ilustra la generación de datos residuales para su uso por un decodificador de acuerdo con las modalidades en la presente descripción.
Como se muestra, el codificador 140 almacena datos de señal S13 como los datos residuales 470-1. El codificador 140 establece los datos residuales 470-2 iguales a una diferencia entre los datos de señal S2U y los datos de señal S23; el codificador 140 establece los datos residuales 470-3 iguales a una diferencia entre los datos de señal S3U y datos de señal S33; y así sucesivamente. En general, los datos residuales 470-2 indican los ajustes que necesitan hacerse en los datos de señal S2U para producir los datos de señal S23; los datos residuales 470-3 indican los ajustes que necesitan hacerse en los datos de señal S3U para producir los datos de señal S33; y así sucesivamente. En una modalidad, un decodificador usa los datos residuales 470-1 para reconstruir S13 en el nivel más bajo de calidad 1. En el siguiente nivel superior (por ejemplo, del nivel de calidad 2 al nivel de calidad 3), el decodificador aplica la operación de muestreo ascendente seleccionada para el nivel de calidad para convertir los datos de señal S13 en datos de señal S2U; el decodificador suma los datos residuales 470-2 y los datos de señal S2U para producir S23. En el siguiente nivel superior (por ejemplo, del nivel de calidad 3 al nivel de calidad 4), el decodificador aplica la operación de muestreo ascendente seleccionada para el nivel de calidad para convertir los datos de señal S23 en datos de señal S3U; el decodificador suma los datos residuales 470-3 y los datos de señal S3U para producir S33 El decodificador repite este proceso hasta que reconstruye el original 115 con el nivel de calidad deseado.
La Figura 7 es un diagrama de ejemplo que ilustra la generación de datos residuales para su uso por un decodificador de acuerdo con las modalidades en la presente descripción. En esta modalidad de ejemplo, el codificador usa conjuntos de datos residuales ajustados 519 para producir conjuntos de datos residuales 470.
Por ejemplo, el codificador 140 establece los datos residuales 470-1 iguales a los datos de señal S1. El codificador 140 identifica una diferencia entre los datos de señal S23 y los datos de señal S22 y suma el resultado a los datos residuales ajustados 519-1 para producir los datos residuales 470-2; el codificador 140 identifica una diferencia entre los datos de señal S33 y los datos de señal S32 y suma el resultado a los datos residuales ajustados 519-2 para producir los datos residuales 470-3; y así sucesivamente.
Tenga en cuenta que el decodificador usa los datos residuales 470 de la manera como se describió anteriormente para reconstruir el original 115 hasta un nivel de calidad deseado.
La Figura 8 es un diagrama de ejemplo que ilustra la generación de datos de muestreo descendente modificados de acuerdo con las modalidades en la presente descripción.
En la etapa 805, el codificador 140 muestrea descendentemente de manera repetida la señal 115 a niveles sucesivamente inferiores hasta un nivel más bajo de calidad. Como se describió previamente, el proceso puede incluir la aplicación de cualquier función de muestreo descendente adecuada, que puede incluir o no modificar cada elemento como se describió previamente.
En la etapa 810, el codificador 140 selecciona un nivel de calidad para procesar a partir del nivel más bajo de calidad.
En la etapa 815, el codificador 140 selecciona una opción de muestreo ascendente entre múltiples opciones de muestreo ascendente posibles.
En la etapa 820, el codificador 140 aplica la opción de muestreo ascendente seleccionada a los datos de señal en el nivel de calidad seleccionado para producir los datos residuales en el siguiente nivel superior de calidad (por ejemplo, un nivel por encima del nivel de calidad seleccionado).
En la etapa 825, el codificador 140 aplica un proceso (por ejemplo, función de cuantificación, función de filtro, etc.) a los datos residuales para producir los datos residuales ajustados.
En la etapa 830, el codificador 140 calcula y la entropía de los datos residuales ajustados en el siguiente nivel superior de calidad y lo define como un valor de entropía óptimo actual.
En la etapa 835, el codificador 140 selecciona una señal (por ejemplo, señal S12) para modificarla al nivel de calidad seleccionado.
En la etapa 840, el codificador 140 selecciona un elemento a modificar en la señal seleccionada.
En la etapa 845, el codificador 140 ajusta el elemento seleccionado en diferentes direcciones y cantidades hasta un valor de iteración máximo.
En la etapa 850, el codificador 140 produce datos residuales y datos residuales ajustados para cada ajuste del elemento seleccionado para el siguiente nivel superior de calidad.
En la etapa 855, el codificador 140 procesa los datos residuales para producir datos residuales ajustados 119-1 mediante el uso de una función de cuantificación (o simulación/aproximación de la misma) como se describió previamente.
En la etapa 860, el codificador 140 calcula una entropía de los datos residuales ajustados en el siguiente nivel superior de calidad para cada modificación del elemento seleccionado para identificar y seleccionar una configuración mejor o sustancialmente mejor del elemento seleccionado que reduce una entropía de los datos residuales ajustados.
En la etapa 865, el codificador 140 repite el bucle 4 (por ejemplo, continúa la ejecución de vuelta a la etapa 840) para cada elemento en los datos de señal seleccionados. El codificador 140 continúa el procesamiento en la etapa 870 posterior a la prueba y modificación de todos los elementos.
En la etapa 870, el codificador 140 aplica una operación de muestreo ascendente a los datos de señal modificados en el nivel de calidad seleccionado y produce los datos residuales en el siguiente nivel superior de calidad.
En la etapa 875, el codificador 140 procesa (por ejemplo, mediante cuantificación o una simulación/aproximación adecuada de la misma) los datos residuales en el siguiente nivel superior de calidad para producir los respectivos datos residuales ajustados.
En la etapa 880, el codificador 140 calcula la entropía de los datos residuales ajustados. Si la señal modificada presenta una entropía inferior de los datos residuales ajustados a la entropía óptima actual para la señal seleccionada, la señal modificada se convierte en la nueva señal a modificar y su entropía de datos residuales ajustados se convierte en la nueva entropía óptima. Si no, el codificador 140 aborta las configuraciones modificadas y sale del bucle 3 a la etapa 890. De cualquier otra manera, el codificador 140 continúa el procesamiento en la etapa 885.
En la etapa 885, el codificador 140 continúa la ejecución en la etapa 835 para la señal recientemente seleccionada siempre que la nueva señal modificada genere una entropía inferior de los datos residuales ajustados.
En la etapa 890, el codificador 140 continúa la ejecución en la etapa 210 para una siguiente opción de muestreo ascendente seleccionada de las múltiples opciones de muestreo ascendente posibles. Cuando se han probado todas las opciones de muestreo ascendente, el codificador 140 continúa el procesamiento en la etapa 895.
En la etapa 895, el codificador 140 almacena configuraciones modificadas para el nivel de calidad seleccionado al actualizar los datos residuales ajustados para el nivel de calidad actual, almacenar la mejor opción de muestreo ascendente y los datos residuales ajustados correspondientes.
En la etapa 898, el codificador 140 repite el procesamiento en la etapa 810 para identificar las mejores modificaciones, la mejor operación de muestreo ascendente y los datos residuales ajustados para cada nivel sucesivamente superior de calidad en la jerarquía.
La Figura 9 es un diagrama que ilustra un ejemplo de método de procesamiento de una señal recibida de acuerdo con las modalidades en la presente descripción.
Durante un proceso de muestreo descendente como se muestra, el codificador 140 inicia el muestreo descendente de los datos de señal S2T en los datos de señal S1T en el siguiente nivel inferior de calidad en la jerarquía.
Posterior a la terminación del muestreo descendente, el codificador 140 realiza un muestreo ascendente en un nivel más bajo. De acuerdo con tal modalidad, el codificador 140 selecciona un elemento (por ejemplo, W1) para modificar. Para cada modificación del elemento seleccionado W1, el codificador 140 muestrea ascendentemente los datos de señal modificados S13 para producir los datos de señal S2U.
En este ejemplo, el muestreo ascendente mediante el uso de U<prueba>causa que el elemento W1 se expanda al elemento y los valores respectivos X1=99, X2=101, X3=99 y X4=95. El codificador 140 produce entonces los datos residuales 518-1 y los datos residuales ajustados 519-1 de la manera descrita previamente. La cuantificación de los datos residuales 518-1 puede incluir la configuración de los valores cercanos a cero en los datos residuales 518-1 a valores de cero en los datos residuales ajustados 519-1. Es decir, el elemento establecido en los valores 1 o -1 en los datos residuales 518-1 se establece en un valor de 0 para producir los datos residuales ajustados 519-1.
Tenga en cuenta que un intervalo o valor umbral para implementar la cuantificación puede variar en diferentes niveles en la jerarquía. Por ejemplo, puede usarse un intervalo más pequeño o un valor de umbral más bajo en los niveles inferiores de calidad para preservar una calidad de la imagen en los niveles superiores de calidad. En otras palabras, puede desearse generar más datos residuales en los niveles inferiores para evitar la necesidad de generar muchos más datos residuales en un nivel superior.
La Figura 10 es un diagrama que ilustra un ejemplo de producción de valores de entropía de acuerdo con las modalidades en la presente descripción.
Una modalidad en la presente descripción incluye la utilización de una métrica adecuada que puede determinar rápidamente si una alteración (por ejemplo, una modificación) mejora o empeora la entropía de los residuos respectivos. Como se describió previamente, la entropía de los datos residuales puede ser una medida de cuánta información es necesaria para transmitir los residuos, donde los datos residuales incluyen símbolos o números. La entropía a un nivel básico depende de cuántos símbolos diferentes están codificados en los datos residuales. Cuanto mayor sea el número de símbolos diferentes en los datos residuales, mayor será la entropía. Se pueden lograr grandes caídas de entropía cuando principalmente solo hay un símbolo que es mucho más probable que todos los demás. Cuando ese es el caso, es casi irrelevante si todos los demás símbolos son solo un símbolo o muchos otros símbolos. Un método para calcular un valor de entropía para los datos residuales es contar un número de valores en los datos residuales que sean mayores que un valor umbral o que caen dentro de un intervalo particular. El valor de entropía que se produce de esta manera (por ejemplo, mediante el uso de una función escalonada rectangular) es matemáticamente no diferenciable. Es decir, como se especifica en la Figura 10, la función escalonada 1010 es una función rectangular que tiene una pendiente infinita en el valor umbral.
De acuerdo con otra modalidad, el codificador 140 puede configurarse para implementar una función continua 1020 (por ejemplo, una función diferenciable) que simula una función sustancialmente rectangular (por ejemplo, la función escalonada 1010). La función continua 1010 facilita la cuantificación de la entropía asociada con los datos residuales en base al uso de derivados. Por ejemplo, una modalidad en la presente descripción incluye la utilización de una función sigmoidea para simular la función rectangular. De acuerdo con tal modalidad, el codificador 140 asigna cada valor de elemento en los datos residuales a un valor de conteo respectivo (por ejemplo, valor decimal) en base a la función 1020 en lugar de la función escalonada 1010. En el ejemplo previo, el codificador 140 asigna a cada uno un valor de uno o cero en dependencia de si el valor del elemento estaba por encima o más abajo del umbral. Por el contrario, cuando se usa la función 1020, el codificador 140 asigna un elemento respectivo a un valor no entero (por ejemplo, un valor decimal) mayor que cero y menor que uno.
Para una modificación dada, cuando se usa la función 1020, el codificador 140 produce un valor de entropía al sumar los respectivos valores de conteo decimal que se producen para cada uno de los elementos. El codificador 140 repite este proceso mediante el uso de la función 1020 para cada modificación. En base a los valores de entropía para las modificaciones de un elemento dado, el codificador 140 produce la función en la Figura 11 que indica cómo cambia la entropía de los datos residuales en base a la modificación de un elemento respectivo.
La función 1128 en la Figura 11 es una función diferenciable. Es decir, producir una derivada de la función 1128 permite al codificador 140 identificar dónde la pendiente de la función 1128 es aproximadamente cero. Este punto (donde la pendiente es sustancialmente igual a cero) en la función 1128 indica una configuración del elemento respectivo que produce la entropía más baja para los datos residuales.
En consecuencia, las modalidades en la presente descripción incluyen generar una función de entropía 1128 en la que una magnitud de la función de entropía varía en dependencia de diferentes ajustes posibles al elemento seleccionado bajo prueba en la señal de muestreo descendente y luego utilizar la función de entropía 1128 para identificar un ajuste al elemento en la señal de muestreo descendente en la que una entropía respectiva de los datos residuales para el ajuste es sustancialmente mínima entre las diferentes variaciones posibles del elemento bajo prueba. El eje horizontal del gráfico en la Figura 11 indica las diferentes variaciones posibles del elemento bajo prueba mientras que el eje vertical indica la entropía relativa de los datos residuales respectivos para las configuraciones. La Figura 12 es un diagrama de bloques de ejemplo de un sistema informático 800 que proporciona procesamiento informático de acuerdo con las modalidades en la presente descripción.
El sistema informático 800 puede ser o incluir un dispositivo computarizado tal como un ordenador personal, un circuito de procesamiento, una estación de trabajo, un dispositivo informático portátil, una consola, un terminal de red, un dispositivo de procesamiento, un dispositivo de red, que opere como un conmutador, un enrutador, un servidor, un cliente, etc.
Tenga en cuenta que la siguiente descripción proporciona una modalidad básica que indica cómo llevar a cabo la funcionalidad asociada con un codificador 140 como se describió previamente. 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 incluye una interconexión 811 que acopla medios de almacenamiento legibles por ordenador 812 tales como un tipo de medio no transitorio, legible por ordenador, medio de almacenamiento de hardware, etc., en el que la información digital puede almacenarse y recuperarse. El sistema informático 800 puede incluir además un procesador 813, una interfaz de E/S 814 y una interfaz de comunicaciones 817.
La interfaz de E/S 814 proporciona conectividad al repositorio 180 y, si está presente, a la pantalla de visualización, a los dispositivos periféricos 816 tales como un teclado, un ratón de ordenador, etc.
El medio de almacenamiento legible por ordenador 812 (por ejemplo, un medio de almacenamiento de hardware) puede ser cualquier dispositivo y/o hardware adecuado tal como una memoria, almacenamiento óptico, disco duro, disquete, etc. El medio de almacenamiento legible por ordenador puede ser un medio de almacenamiento no transitorio para almacenar instrucciones asociadas con el codificador 140-1. Las instrucciones se ejecutan por un recurso respectivo tal como el codificador 140 para 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 la red 190 para recuperar información de fuentes remotas y comunicarse con otros ordenadores, conmutadores, clientes, servidores, etc. La interfaz de E/S 814 permite también que el procesador 813 recupere o intente recuperar la información almacenada del repositorio 180.
Como se muestra, los medios de almacenamiento legibles por ordenador 812 pueden codificarse con la aplicación codificadora 140-1 ejecutada por el procesador 813 como un proceso codificador 140-2.
Tenga en cuenta que el sistema informático 800 o el codificador 140 también pueden incorporarse para incluir un medio de almacenamiento legible por ordenador 812 (por ejemplo, un medio de almacenamiento de hardware, un medio de almacenamiento no transitorio, etc.) para almacenar datos y/o instrucciones lógicas.
El sistema informático 800 puede incluir un procesador 813 para ejecutar tales instrucciones y llevar a cabo operaciones como se describió en la presente descripción. En consecuencia, cuando se ejecuta, el código asociado con la aplicación codificadora 140-1 puede soportar la funcionalidad de procesamiento como se describió en la presente descripción. Durante la operación de una modalidad, el procesador 813 accede al medio de almacenamiento legible por ordenador 812 mediante el uso de la interconexión 811 para lanzar, ejecutar, llevar a cabo, interpretar o realizar de cualquier otra manera las instrucciones de la aplicación codificadora 140-1 almacenada en el medio de almacenamiento legible por ordenador 812. La ejecución de la aplicación codificadora 140-1 produce la funcionalidad de procesamiento en el procesador 813. En otras palabras, el proceso de codificador 140-2 asociado con el procesador 813 representa uno o más aspectos de la ejecución de la aplicación codificadora 140-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 que controle la asignación y el uso de los recursos de procesamiento de hardware para ejecutar la aplicación codificadora 140-1.
De acuerdo con diferentes modalidades, tenga en cuenta que el sistema informático puede ser cualquiera de varios tipos de dispositivos, que incluyen, pero no se limitan a, un sistema informático personal, un ordenador de escritorio, una laptop, un ordenador portátil, un portátil, un sistema informático central, una ordenador de mano, una estación de trabajo, un ordenador de red, un servidor de aplicaciones, un dispositivo de almacenamiento, un dispositivo de electrónica de consumo tal como una cámara, una videocámara, una caja decodificadora, un dispositivo móvil, una consola de videojuegos, un dispositivo de videojuegos de mano, 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 su uso en el procesamiento y reconstrucción de señales mediante el uso de un decodificador. Sin embargo, se debe señalar que las modalidades 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 ha resultado conveniente, principalmente por razones de uso común, referirse a tales señales como bits, datos, valores, 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 descripción, las descripciones que utilizan términos tales como "procesamiento", "informática", "cálculo", "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 la presente descripción se ha mostrado y descrito particularmente con referencia a las modalidades 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. Como tal, la descripción anterior de las modalidades de la presente solicitud no pretende ser limitativa. Más bien, cualquier limitación a la invención se presenta en las siguientes reivindicaciones.

Claims (12)

REIVINDICACIONES
1. Un método de escalabilidad espacial de codificación de una señal, en diferentes niveles de calidad en una jerarquía, la señal que indica los valores de múltiples elementos de imagen, dichos elementos de imagen que comprenden píxeles o vóxeles, de una imagen o un vídeo, el método que comprende:
tener dicha señal como entrada;
seleccionar (200) un nivel de calidad para procesar;
utilizar (205) al menos una operación de muestreo descendente (805) para producir una interpretación de la señal (501-1, 501-2) en un nivel inferior de calidad en la jerarquía;
seleccionar (210) una operación de muestreo ascendente entre una o más opciones posibles de muestreo ascendente;
aplicar (215) la operación de muestreo ascendente seleccionada a una interpretación de la señal en el nivel inferior de calidad para producir una primera interpretación de muestreo ascendente de la señal en un segundo nivel de calidad en la jerarquía, el segundo nivel de calidad es superior al nivel inferior de calidad; producir los primeros datos residuales que indican una diferencia entre una interpretación de la señal en el segundo nivel de calidad y la primera interpretación de muestreo ascendente de la señal en el segundo nivel de calidad;
aplicar (220) un proceso que comprende al menos la cuantificación para producir los primeros datos residuales cuantificados;
calcular (225) una primera entropía de los primeros datos residuales cuantificados y definir dicha entropía como una entropía actual;
seleccionar (230) la señal al nivel inferior de calidad;
seleccionar (235) un elemento de imagen en la señal seleccionada en el nivel inferior de calidad; ajustar (240) el elemento de imagen al aumentar o disminuir un valor del elemento de imagen; muestrear ascendentemente la señal en el nivel inferior de calidad que contiene el elemento de imagen ajustado mediante el uso de la operación de muestreo ascendente seleccionada para producir una segunda interpretación de muestreo ascendente en el segundo nivel de calidad en la jerarquía;
producir (245) los segundos datos residuales que indican una diferencia entre una interpretación de la señal en el segundo nivel de calidad y la segunda interpretación de muestreo ascendente de la señal en el segundo nivel de calidad;
procesar (250) los segundos datos residuales para producir los segundos datos residuales cuantificados, dicho procesamiento que comprende la cuantificación;
calcular (255) una segunda entropía de los segundos datos residuales cuantificados y seleccionar ajustes del elemento de imagen que reduzcan la segunda entropía de los segundos datos residuales cuantificados; realizar (260) de manera iterativa las etapas de selección (235), ajuste (240), producción de muestreo ascendente (245) y cálculo (255) para cada elemento de imagen dentro de la interpretación de la señal en el nivel inferior de calidad para obtener una señal ajustada de nivel inferior;
muestrear ascendentemente (265) la señal ajustada de nivel inferior mediante el uso de la operación de muestreo ascendente seleccionado para producir una tercera interpretación de muestreo ascendente en un segundo nivel de calidad en la jerarquía;
producir los terceros datos residuales que indican una diferencia entre una interpretación de la señal en el segundo nivel de calidad y la tercera interpretación de muestreo ascendente de la señal en el segundo nivel de calidad;
procesar los terceros datos residuales (270) para producir los terceros datos residuales cuantificados, dicho procesamiento que comprende la cuantificación;
calcular una tercera entropía (275) de los terceros datos residuales cuantificados;
sí (280) la tercera entropía es inferior que la entropía actual,
la señal ajustada de nivel inferior se establece en la señal de nivel inferior de calidad, la tercera entropía se establece como la entropía actual, y
repetir (280) las etapas de selección de elementos (235), muestreo ascendente (265), producción de los datos residuales, aplicación del proceso (270) y cálculo de la entropía (275) en la señal ajustada inferior mientras que la señal ajustada de nivel inferior genera una entropía inferior, en donde se sale de la repetición si la tercera entropía calculada no es inferior a la entropía actual y cualquier señal ajustada de nivel inferior con entropía inferior se establece como una señal ajustada de nivel inferior a usar para codificar la señal;
de cualquier otra manera
repetir (285) las etapas de selección de una operación de muestreo ascendente (210), aplicación de la operación de muestreo ascendente (215), cálculo y procesamiento de los primeros datos residuales (22) y cálculo de una primera entropía (225) para el conjunto de posibles operaciones de muestreo ascendente para identificar una operación de muestreo ascendente con una entropía más baja.
2. El método como en la reivindicación 1, en donde la al menos una operación de muestreo descendente (205) o la al menos una operación de muestreo ascendente (215), o posiblemente ambas, son no lineales.
3. El método como en la reivindicación 1, que comprende, además:
aplicar una función de transformación continua a los datos residuales para determinar uno o más valores de una métrica de entropía, la función de transformación continua que comprende una función sigmoidea.
4. El método como en la reivindicación 3, en donde la función de transformación continua es una función sigmoidea.
5. El método como en la reivindicación 1, que comprende, además:
analizar la interpretación de la señal en el primer nivel de calidad en múltiples regiones contiguas de elementos de imagen; y
procesar simultáneamente las múltiples regiones en paralelo para identificar ajustes a los elementos de imagen en las múltiples regiones para reducir localmente una entropía asociada con los datos residuales ajustados.
6. El método como en la reivindicación 5, que comprende, además:
realizar una comprobación global de los ajustes a los elementos de imagen en las múltiples regiones para reducir una entropía de los datos residuales.
7. El método como en la reivindicación 1, en donde utilizar la al menos una operación de muestreo descendente (205) para producir interpretaciones de la señal en niveles sucesivamente inferiores de calidad en la jerarquía comprende, además:
para cada uno de los múltiples niveles sucesivamente inferiores de calidad en la jerarquía, repetir las etapas de:
muestrear descendentemente la señal;
seleccionar un elemento de imagen para ajustar en la señal de muestreo descendente a un nivel de calidad seleccionado;
aumentar o disminuir un valor para el elemento de imagen seleccionado para producir los datos residuales; y calcular uno o más valores para la métrica de entropía mediante el uso de los datos residuales para identificar qué ajuste al elemento de imagen seleccionado minimiza la métrica de entropía.
8. El método como en la reivindicación 1, en donde utilizar la al menos una operación de muestreo descendente (205) para producir las interpretaciones de la señal en niveles sucesivamente inferiores de calidad comprende, además:
seleccionar (200) un nivel de calidad J a partir del cual se muestrea descendentemente la señal, el nivel de calidad J que representa un nivel más alto de calidad en la jerarquía;
aplicar una operación de muestreo descendente seleccionada (205) a la señal en el nivel de calidad J para generar una interpretación de la señal en un nivel de calidad J-1, el nivel de calidad J-1 es el siguiente nivel inferior de calidad debajo del nivel de calidad J;
aumentar o disminuir repetidamente (280) los valores de los elementos de imagen en la interpretación de la señal en el nivel de calidad J-1 para identificar una interpretación ajustada de la señal en el nivel de calidad J-1 que reduce una métrica de entropía asociada con los datos residuales necesarios para reconstruir la señal en el nivel de calidad J;
aplicar una operación de muestreo descendente seleccionada (295) a la interpretación ajustada de la señal al nivel de calidad J-1 para generar una interpretación de la señal a un nivel de calidad J-2, el nivel de calidad J-2 es el siguiente nivel inferior de calidad debajo del nivel de calidad J-1.
9. El método como en la reivindicación 8, que comprende, además:
aumentar o disminuir repetidamente (280) los valores de los elementos de imagen en la interpretación de la señal en el nivel de calidad J-2 para identificar una interpretación ajustada de la señal en el nivel de calidad J-2 que reduce una métrica de entropía asociada con los datos residuales necesarios para reconstruir interpretación modificada de la señal en el nivel de calidad J-1; y
repetir las etapas de aplicación de una operación de muestreo descendente seleccionada y ajustar repetidamente las configuraciones en la jerarquía en pares de niveles sucesivamente inferiores de calidad para producir la interpretación de la señal en el segundo nivel de calidad y el primer nivel de calidad.
10. El método como en la reivindicación 9, que comprende, además:
probar repetidamente cuál de las múltiples posibles operaciones de muestreo ascendente (285) y ajustes (280) de los valores de elementos de imagen en la interpretación de la señal al nivel de calidad J-1 reduce un valor de una métrica de entropía asociada con los datos residuales necesarios para reconstruir la señal al nivel de calidad J.
11. El hardware de almacenamiento legible por ordenador (812) que tiene instrucciones almacenadas en el mismo, las instrucciones, cuando se llevan a cabo por un dispositivo de procesamiento, hacen que el dispositivo de procesamiento realice el método de cualquiera de las reivindicaciones 1-10.
12. Un sistema informático (800) que comprende:
un procesador (813);
una unidad de memoria (812) que almacena instrucciones asociadas con una aplicación ejecutada por el procesador; y
una interconexión (811) que acopla el procesador y la unidad de memoria, lo que permite que el sistema informático ejecute la aplicación y realice el método de cualquiera de las reivindicaciones 1-10.
ES12756258T 2011-07-21 2012-07-20 Interpolación adaptativa para la codificación de vídeo escalable espacialmente Active ES2961857T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/188,207 US8711943B2 (en) 2011-07-21 2011-07-21 Signal processing and tiered signal encoding
PCT/IB2012/053723 WO2013011493A2 (en) 2011-07-21 2012-07-20 Signal processing and tiered signal encoding

Publications (1)

Publication Number Publication Date
ES2961857T3 true ES2961857T3 (es) 2024-03-14

Family

ID=46801598

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12756258T Active ES2961857T3 (es) 2011-07-21 2012-07-20 Interpolación adaptativa para la codificación de vídeo escalable espacialmente

Country Status (8)

Country Link
US (1) US8711943B2 (es)
EP (1) EP2735158B1 (es)
JP (1) JP6206879B2 (es)
KR (1) KR102165155B1 (es)
CN (1) CN103858427B (es)
CA (1) CA2842438A1 (es)
ES (1) ES2961857T3 (es)
WO (1) WO2013011493A2 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948248B2 (en) * 2011-07-21 2015-02-03 Luca Rossato Tiered signal decoding and signal reconstruction
BR112015026244B1 (pt) * 2013-04-15 2023-04-25 V-Nova International Ltd Codificação e decodificação de sinal compatível com versões anteriores híbrido
WO2015021461A1 (en) * 2013-08-09 2015-02-12 Kumu Networks, Inc. Systems and methods for non-linear digital self-interference cancellation
US9698860B2 (en) 2013-08-09 2017-07-04 Kumu Networks, Inc. Systems and methods for self-interference canceller tuning
US9054795B2 (en) 2013-08-14 2015-06-09 Kumu Networks, Inc. Systems and methods for phase noise mitigation
US10673519B2 (en) 2013-08-29 2020-06-02 Kuma Networks, Inc. Optically enhanced self-interference cancellation
JP6183939B2 (ja) 2013-08-29 2017-08-23 クム ネットワークス インコーポレイテッドKumu Networks,Inc. 全二重中継装置
US10230422B2 (en) 2013-12-12 2019-03-12 Kumu Networks, Inc. Systems and methods for modified frequency-isolation self-interference cancellation
CN107750456B (zh) * 2015-04-13 2022-02-11 V-诺瓦国际有限公司 利用依赖于复杂性信息的一个信号的数据速率目标对多个信号进行编码
US9634823B1 (en) 2015-10-13 2017-04-25 Kumu Networks, Inc. Systems for integrated self-interference cancellation
KR102482067B1 (ko) 2015-11-27 2022-12-28 삼성전자주식회사 전자 장치 및 그의 동작 방법
US10666305B2 (en) 2015-12-16 2020-05-26 Kumu Networks, Inc. Systems and methods for linearized-mixer out-of-band interference mitigation
US9742593B2 (en) 2015-12-16 2017-08-22 Kumu Networks, Inc. Systems and methods for adaptively-tuned digital self-interference cancellation
US9800275B2 (en) 2015-12-16 2017-10-24 Kumu Networks, Inc. Systems and methods for out-of band-interference mitigation
EP3391459B1 (en) 2015-12-16 2022-06-15 Kumu Networks, Inc. Time delay filters
WO2017189592A1 (en) 2016-04-25 2017-11-02 Kumu Networks, Inc. Integrated delay modules
US10454444B2 (en) 2016-04-25 2019-10-22 Kumu Networks, Inc. Integrated delay modules
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
US10050664B1 (en) 2017-03-27 2018-08-14 Kumu Networks, Inc. Enhanced linearity mixer
US10103774B1 (en) 2017-03-27 2018-10-16 Kumu Networks, Inc. Systems and methods for intelligently-tuned digital self-interference cancellation
JP2020512770A (ja) 2017-03-27 2020-04-23 クム ネットワークス, インコーポレイテッドKumu Networks, Inc. 調整可能な帯域外干渉緩和システムおよび方法
CN106897466B (zh) * 2017-04-14 2020-11-24 泰康保险集团股份有限公司 体检数据匹配方法及系统、存储介质和电子设备
US10200076B1 (en) 2017-08-01 2019-02-05 Kumu Networks, Inc. Analog self-interference cancellation systems for CMTS
EP3489901A1 (en) * 2017-11-24 2019-05-29 V-Nova International Limited Signal encoding
EP3721631A1 (en) 2017-12-06 2020-10-14 V-Nova International Limited Method and apparatus for decoding a received set of encoded data
EP3496403A1 (en) 2017-12-06 2019-06-12 V-Nova International Limited Hierarchical data structure
GB2573486B (en) * 2017-12-06 2022-12-21 V Nova Int Ltd Processing signal data using an upsampling adjuster
KR102339808B1 (ko) 2018-02-27 2021-12-16 쿠무 네트웍스, 아이엔씨. 구성가능한 하이브리드 자기-간섭 소거를 위한 시스템 및 방법
US10516885B1 (en) 2018-07-11 2019-12-24 Tencent America LLC Method and apparatus for video coding
US10868661B2 (en) 2019-03-14 2020-12-15 Kumu Networks, Inc. Systems and methods for efficiently-transformed digital self-interference cancellation
GB2620500B (en) 2019-03-20 2024-05-15 V Nova Int Ltd Low complexity enhancement video coding
WO2021005349A1 (en) 2019-07-05 2021-01-14 V-Nova International Ltd Quantization of residuals in video coding
GB2598701B (en) 2020-05-25 2023-01-25 V Nova Int Ltd Wireless data communication system and method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU718453B2 (en) * 1996-07-17 2000-04-13 Sony Corporation Image coding and decoding using mapping coefficients corresponding to class information of pixel blocks
JP4582416B2 (ja) * 1996-07-17 2010-11-17 ソニー株式会社 画像符号化装置および画像符号化方法
JP4038858B2 (ja) * 1998-01-28 2008-01-30 ソニー株式会社 信号処理装置及び方法
JP4080951B2 (ja) * 2003-05-30 2008-04-23 株式会社東芝 フレーム補間方法及び装置並びに画像表示システム
JP4679049B2 (ja) * 2003-09-30 2011-04-27 パナソニック株式会社 スケーラブル復号化装置
JP2008011009A (ja) * 2006-06-28 2008-01-17 Victor Co Of Japan Ltd 映像信号符号化装置、映像信号復号化装置、映像信号符号化プログラム及び映像信号復号化プログラム
US8107571B2 (en) * 2007-03-20 2012-01-31 Microsoft Corporation Parameterized filters and signaling techniques
JP5180782B2 (ja) * 2008-11-11 2013-04-10 日本電信電話株式会社 並列分散情報源符号化システム及び並列分散情報源符号化・復号化方法

Also Published As

Publication number Publication date
US20130294523A1 (en) 2013-11-07
EP2735158C0 (en) 2023-09-06
WO2013011493A2 (en) 2013-01-24
CN103858427A (zh) 2014-06-11
KR102165155B1 (ko) 2020-10-14
US8711943B2 (en) 2014-04-29
CA2842438A1 (en) 2013-01-24
EP2735158B1 (en) 2023-09-06
EP2735158A2 (en) 2014-05-28
JP2014521274A (ja) 2014-08-25
WO2013011493A3 (en) 2013-06-27
CN103858427B (zh) 2018-10-16
JP6206879B2 (ja) 2017-10-04
KR20160021417A (ko) 2016-02-25

Similar Documents

Publication Publication Date Title
ES2961857T3 (es) Interpolación adaptativa para la codificación de vídeo escalable espacialmente
US11272181B2 (en) Decomposition of residual data during signal encoding, decoding and reconstruction in a tiered hierarchy
KR102165147B1 (ko) 계층형 신호 디코딩 및 신호 복원
JP6351040B2 (ja) 層状の信号品質階層のおける信号処理およびインヘリタンスの方法、プログラム、及び、コンピュータシステム
US10992959B2 (en) Data processing apparatuses, methods, computer programs and computer-readable media
KR102165078B1 (ko) 공간적으로 스케일러블한 비디오 코딩을 위한 적응적 업샘플링