MXPA00004526A - Aparato y metodo para comprimir informacion de video - Google Patents

Aparato y metodo para comprimir informacion de video

Info

Publication number
MXPA00004526A
MXPA00004526A MXPA/A/2000/004526A MXPA00004526A MXPA00004526A MX PA00004526 A MXPA00004526 A MX PA00004526A MX PA00004526 A MXPA00004526 A MX PA00004526A MX PA00004526 A MXPA00004526 A MX PA00004526A
Authority
MX
Mexico
Prior art keywords
data
secondary bands
transformation
bands
transformation coefficients
Prior art date
Application number
MXPA/A/2000/004526A
Other languages
English (en)
Inventor
Truong Q Nguyen
Joel Rosiene
Original Assignee
A & T Technologies Group
Truong Q Nguyen
Joel Rosiene
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 A & T Technologies Group, Truong Q Nguyen, Joel Rosiene filed Critical A & T Technologies Group
Publication of MXPA00004526A publication Critical patent/MXPA00004526A/es

Links

Abstract

Se describe un método y aparato para codificar eficientemente datos que representen una imagen de video, por lo cual se reduce la cantidad de datos que deben de transferirse hacia un descodificador. El método incluye transformar los conjuntos de datos, utilizando una transformación de tren de ondas de producto tensorial, que es capaz de transmitir los residuos de una banda secundaria a otra. Las colecciones de bandas secundarias, en forma de macrobloques, se ponderan, detectan, y clasifican jerárquicamente, permitiendo la asignación de prioridades a los datos transformados. Se ejecuta una técnica de compensación de movimiento en los datos de bandas secundarias, produciendo vectores de movimiento y errores de predicción, que se codifican por posiciones, en paquetes de corrientes de bitios para su transmisión hacia el descodificador. Los macrobloques de bandas secundarias y los bloques de bandas secundarias, que son iguales a cero, se identifican como tales en los paquetes de corrientes de bitios, para reducir adicionalmente la cantidad de datos que deben de transferirse al descodificador.

Description

APARATO Y MÉTODO PARA COMPRIMIR INFORMACIÓN DE VIDEO CAMPO DE IA INVENCIÓN La presente invención se refiere, en general, a un aparato y métodos para codificar y descodificar información de video. Más particularmente, la presente invención se refiere a un aparato y a un método para la estimación de movimiento y la predicción de movimiento en el dominio de transformación.
ANTECEDENTES DE LA INVENCIÓN Debido al ancho de banda limitado, disponible en los canales de transmisión, únicamente un número limitado de bitios se encuentra disponible para codificar la información de audio y video. Las técnicas de codificación de video intentan codificar la información de video con tan pocos bitios como sea posible, y mantener a la vez la calidad de la imagen requerida para una aplicación dada. De esta manera, las técnicas de compresión de video intentan reducir el ancho de banda requerido para transmitir una señal de video, eliminando la información redundante y representando la información restante, con un mínimo número de bitios, a partir del cual se puede reconstruir una aproximación de la imagen original, con una pérdida mínima de las características importantes. En esta manera, los datos comprimidos se pueden almacenar o transmitir en una manera más eficiente que para los datos de imagen original . Existe cierto número de técnicas de codificación de video que mejoran la eficiencia de la codificación al eliminar la redundancia estadística de las señales de video. Muchos esquemas estándar para la compresión de imágenes, se basan en transformaciones por bloques, de la imagen de entrada, tai como la Transformación Cosenoidal Discreta (TCD) . La bien conocida técnica de codificación de video, MPEG, por ejemplo, desarrollada por el Grupo de Expertos para Imágenes en Movimiento, consigue reducciones significativas en la velocidad de bitios, tomando ventaja de la correlación entre los elementos de imagen (pels) en el dominio espacial (a través del uso de la TCD) , y la correlación entre los cuadros de imagen en el dominio temporal (a través del uso de la predicción y compensación de movimiento) . En los bien conocidos sistemas de codificación basados en transformadas ortogonales y bioortogonales (banda secundaria) (que incluyen las transformadas ortogonales traslapadas) , una imagen se transforma sin la necesidad de bloquear primero la imagen. Los codificadores por transformación, basados en la TCD, bloquean la imagen, principalmente por dos razones: 1) la experiencia ha demostrado que la TCD es una buena aproximación a la conocida transformación óptima (Kahunen-Luove" ) en regiones de 8 x 8 de la imagen o de una secuencia de imágenes diferenciales; y 2) el procesamiento de la TCD crece en 0 (N log N) y a través del bloqueo de la imagen, el esfuerzo de cómputo es limitado. El resultado final es que las aproximaciones basadas en la TCD, al menos que se mejoren de otra manera, tienen funciones fundamentales que están soportadas compactamente por (o cero afuera de) una región de 8 x 8 de una imagen. Las transformaciones ortogonales y bioortogonales, bajo consideración, tienen miembros fundamentales que están soportados predominantemente en un intervalo finito de la imagen, pero que comparten su extensión con regiones espaciales circundantes. Las técnicas de codificación de imágenes en bandas secundarias, por ejemplo, dividen una imagen de entrada en una pluralidad de bandas de frecuencias espaciales, ' usando un conjunto de filtros y luego cuantifican cada banda o canal. Para un análisis detallado de las técnicas de codificación de imágenes en bandas secundarias, ver Subband Video Coding With Dynamic Bit Allocation and Geometric Vector Quantization, C. Podilchuck & A. Jacquin, SPIE Vol. 1666 Human Vision, Visual Processing, and Digital Display III, pp. 241-52 (Feb. 1992) . En cada etapa del proceso de codificación en bandas secundarias, la señal se divide en una aproximación de paso bajo de la imagen, y un término de paso alto representa el detalle perdido al realizar la aproximación . Además, los codificadores por transformación, basados en la TCD, son invariantes en la translación, en el sentido de que los miembros fundamentales tienen un soporte que se extiende por todo el bloque de 8 x 8. Esto previene que la compensación de movimiento sea realizada eficientemente en el dominio de transformación. Por lo tanto, la mayoría de las técnicas de compensación de movimiento, que se encuentran en uso, utilizan cuadros de imagen temporalmente adyacentes, para formar un término de error que luego se codifica por transformación, en un bloque de 8 x 8. Como una consecuencia, estas técnicas requieren que se lleve a cabo una transformación inversa, para suministrar un cuadro de referencia desde el dominio de la frecuencia hasta el dominio temporal. Ejemplos de esos sistemas se encuentran en la patente Norteamericana número 5,481,553 expedida a Suzuki et al y en la patente Norteamericana número 5,025,482 expedida a Murakami et al. La figura 1 ilustra un diagrama de bloques simplificado, de una aproximación para la compresión de video estándar, de la técnica anterior, usando TCD. En el bloque 10, los cambios en la secuencia de imágenes se representan eficientemente a través de las técnicas de detección de movimiento, tal como un a técnica usada en MPEG cuando está en el modo predictivo. En particular, se usa un cuadro previo como un cuadro de referencia, y un cuadro subsecuente, en una predicción hacia delante, se compara contra el cuadro previo para eliminar las redundancias temporales y ordenar las diferencias entre las mismas, de acuerdo al grado. Este paso ajusta la etapa para la predicción del movimiento del cuadro subsecuente, y también reduce el tamaño de los datos del cuadro subsecuente. En el bloque 12, se realiza una determinación referente a qué partes de la imagen se han movido. Continuando con el ejemplo de MPEG, usando el conjunto de datos proporcionado por el bloque 10, la predicción del movimiento entre cuadros se lleva a cabo aplicando técnicas para la compensación de movimiento, al cuadro de referencia y al cuadro subsecuente. La predicción resultante se substrae del cuadro subsecuente, para generar un error/cuadro de predicción. Posteriormente, en el bloque 14, los cambios se convierten en características. En MPEG, esto se realiza comprimiendo el error de predicción, usando una TCD bidimensional de 8 x 8.
La mayoría de las técnicas de compresión de video, basadas en la TCD, o los codificadores en bandas secundarias, se han enfocado en técnicas de alta precisión que intentan codificar la información de video sin pérdida de exactitud en la etapa de transformación. Sin embargo, esas técnicas de codificación de alta precisión, se basan en microprocesadores relativamente caros , tales como el procesador PENTIUMMR de Intel Corporation, que han dedicado elementos físicos de cómputo (hardware) para ayudar en la manipulación de la aritmética de punto flotante y por lo tanto reducen la penalidad para mantener un alto grado de precisión. Sin embargo, para muchas aplicaciones, esos elementos físicos de cómputo, relativamente caros, no son prácticos o no se justifican. De esta manera, se requiere una implementación de costos más bajos, que mantenga también niveles aceptables en la calidad de la imagen. Las transformaciones de precisión limitada, conocidas, que se pueden implementar en elementos físicos de cómputo de menor costo, no obstante tienden a exhibir una exactitud reducida, como el resultado de la naturaleza "con pérdidas" del proceso de codificación. Como se usa en la presente, un sistema "con pérdidas" se refiere a un sistema que pierde precisión a través de las diferentes etapas del codificador, y por lo tanto carece de la capacidad de reconstruir sustancialmente la entrada, a partir de los coeficientes de transformación, cuando descodifica. La incapacidad de compensar la reducida exactitud exhibida por estas transformaciones de baja precisión, ha sido un impedimento para el uso de esas transformaciones. En vista a lo precedente, existe una necesidad de un codificador de video que ejecute la compensación de movimiento en el dominio de transformación, eliminando por ello el requerimiento de una transformación inversa en el codificador, y permitiendo una estructura de control simple para los dispositivos de programas de cómputo y de elementos físicos de cómputo. En la técnica también existe la necesidad de un codificador de video que tenga una clase de transformaciones que sean adecuadas para la implementación de baja precisión, incluyendo una estructura de control que permita dispositivos con elementos físicos de cómputo de bajo costo y programas de cómputo de alta velocidad.
SUMARIO DE LA INVENCIÓN El tema de la invención está enfocado a un aparato y método, únicos y novedosos, para comprimir datos.
Más particularmente, el aparato y método de la presente están adaptados y configurados para codificar, más eficientemente, datos que representen, por ejemplo, una imagen de video, reduciendo por lo tanto la cantidad de datos que deben transferirse a un descodificador . La invención concierne a un método para la compresión de datos, que incluye un primer conjunto de datos y un segundo conjunto de datos. El método incluye transformar el primer y segundo conjuntos de datos en un primer y segundo conjuntos de coeficientes de transformación, correspondientes. Por lo tanto, se generan datos que representan las diferencias entre el primer y segundo conjuntos de coeficientes de transformación. Los datos generados se codifican luego para su transmisión al descodificador . La transformación del primer y segundo conjuntos de datos se puede realizar utilizando una transformación de tren de ondas de producto tensorial. Además, los residuos que resultan del proceso de transformación se pueden transmitir de una banda secundaria a otra banda secundaria. Los datos que representan las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, se generan estimando las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, para proporcionar vectores de- movimiento. Los vectores de movimiento se aplican al primer conjunto de coeficientes de transformación, para producir una predicción del segundo conjunto de coeficientes de transformación. La predicción se sustrae del segundo conjunto de coeficiente de transformación, dando por resultado un conjunto de errores de predicción. El primer y segundo conjuntos de coeficientes de transformación pueden estar corregido de errores para asegurar la sincronización entre el codificador y el descodificador . En la estimación de las diferencias entre el primer y segundo conjuntos de coeficientes de transformación se genera una región de búsqueda alrededor de un subconjunto de coeficientes de transformación, desde uno de los primeros y segundos conjuntos de coeficientes de transformación. Posteriormente, un subconjunto relacionado, de coeficientes de transformación, se aplica a partir del otro de los primeros y segundos conjuntos de coeficientes de transformación, hacia la región de búsqueda. Luego, un subconjunto relacionado de coeficientes de transformación, se traslada por incrementos dentro de la región de búsqueda hasta una posición que representa el mejor semejante incremental. El subconjunto relacionado se puede trasladar luego fraccionariamente dentro de la región de búsqueda hasta una posición que represente el mejor semejante fraccional.
Otra modalidad del método para comprimir datos, que incluye un primer conjunto de datos y un segundo conjunto de datos, incluyen transformar el primer y segundo conjuntos de datos en una primera y segunda colecciones de bandas secundarias, correspondientes . Después, generar datos que representen las diferencias entre la primera y segunda colecciones de bandas secundarias. Los datos se pueden generar, por ejemplo, llevando a cabo una técnica de compensación de movimiento. La técnica de compensación de movimiento puede proporcionar una salida tal como vectores de movimiento y errores de predicción. Posteriormente, los datos generados se codifican para la transmisión al descodificador . Una modalidad puede ser también la segunda colección de bandas secundarias empacadas en macrobloque para formar un agrupamiento de macrobloques de bandas secundarias. Posteriormente, los datos generados se pueden obtener a través de una técnica de compensación de movimiento, como sigue. Las diferencias entre la primera colección de bandas secundarias y el agrupamiento de macrobloques de bandas secundarias, se estiman para proporcionar vectores de movimiento. Los 'vectores de movimiento se aplican a la primera colección de bandas secundarias, produciendo una predicción de la segunda colección de bandas secundarias. La predicción se substrae después de la segunda colección de bandas secundarias, dando por resultado un conjunto de errores de predicción. Las diferencias se pueden estimar entre la primera colección de bandas secundarias y el agrupamiento de macrobloques de bandas secundarias, como sigue. Se genera una región de búsqueda alrededor de un subconjunto de coeficientes de transformación de la primera colección de bandas secundarias. Un subconjunto relacionado, de coeficientes de transformación, del agrupamiento de macrobloques de bandas secundarias, se aplica a la región de búsqueda. El subconjunto relacionado, de coeficientes de transformación, se traslada luego por incrementos dentro de la región de búsqueda, hasta una posición que representa el mejor semejante incremental. Después, el subconjunto relacionado de coeficientes de transformación se traslada fraccionalmente dentro de la región de búsqueda, hasta una posición que representa el mejor semejante fraccional. También se describe un método para empacar un macrobloque de bandas secundarias, para organizar los bloques de bandas secundarias de una colección de bandas secundarias derivada de una transformación de una imagen. El método incluye desasociar un conjunto de bloques de bandas secundarias relacionadas, de una colección de bandas secundarias que corresponda a un macrobloque de imágenes, en la imagen. El conjunto de bloques de bandas secundarias relacionadas se empaca conjuntamente como un macrobloque de bandas secundarias. Los pasos de desasociar y empacar los bloques de bandas secundarias relacionadas, se repiten para cada conjunto de bloques de bandas secundarias relacionadas, en la colección de bandas secundarias, para formar un agrupamiento de macrobloques de bandas secundarias . El método para el empaque de macrobloques se puede refinar adicionalmente acomodando el conjunto de bloques de bandas secundarias relacionadas, dentro del macrobloque de bandas secundarias, en la misma posición relativa que ocupan los bloques de bandas secundarias, en la colección de bandas secundarias. El método puede incluir también localizar el macrobloque de bandas secundarias, dentro del agrupamiento de macrobloques de bandas secundarias, en la misma ubicación espacial que en la que se encuentra ubicado el macrobloque de imágenes, correspondiente, dentro del agrupamiento de macrobloques de imágenes. Después del empacamiento en macrobloques, se pueden detectar cambios entre el primer agrupamiento de macrobloques de bandas secundarias (referencia) y un segundo agrupamiento de macrobloques de bandas secundarias, subsecuente. La detección se basa en una evaluación de la distorsión, de acuerdo con una ecuación general de la forma: en donde: ec = medición de la distorsión con relación a la referencia R; Wx = peso aplicado; G = coeficientes transformación del segundo agrupamiento de macrobloques de bandas secundarias; y R = referencia (por ejemplo, el primer agrupamiento de macrobloques de bandas secundarias) .
Una forma más específica de la ecuación para evaluar la distorsión, es de la forma: Otra modalidad de la presente invención se describe como un método de precisión finita para transformar un conjunto de datos en coeficientes de transformación, en donde el conjunto de datos se transforma utilizando un par de trenes de ondas de producto tensorial, y los residuos que emanan del mismo, se propagan hacia la trayectoria opuesta del filtro. Más particularmente, la modalidad puede incluir la determinación de un componente de paso bajo y de un componente de paso alto, de una imagen. El componente de paso bajo se normaliza para generar una salida normalizada de paso bajo y un primer residuo (rl) . De igual manera, el componente de paso alto se normaliza para generar una salida normalizada de paso alto y un segundo residuo (rh) . Una primera operación (g(rl, rh) ) se lleva a cabo en el primer y segundo residuos (rl, rh) y se suma a los resultados que emanan de los mismos, para la aproximación. Y, también se lleva a cabo una segunda operación (f(rl, rh) ) , en el primer y segundo residuos (rl, rh) y se suma a los resultados que emanan de los mismos, para el detalle. Es importante observar que la propagación de los residuos (propagación de errores) se puede usar en cualquier transformación, y no solamente el producto tensorial . El método anterior de precisión finita da por resultado una representación más que completa de una imagen. El método puede incluir el muestreo descendente, por ejemplo, mediante dos (2), de los componentes de paso alto y bajo, para obtener los coeficientes de transformación necesarios y suficientes, que representen la imagen en el dominio de transformación. Una modalidad del método de precisión finita incluye un filtro de paso bajo que tiene el valor -1, 2, 6, 2, -1 y un filtro de paso alto que tiene el valor -1, 2, -1. La primera operación (g(rl, rh) ) y la segunda operación (f(rl, rh) ) tiene las funciones: g(rl, rh) ) = rh; y F(RL, RH) ) función máximo entero de (rh + ) , en donde nh = .
Un ejemplo particular de una transformación de tren de ondas de producto tensorial, incluyendo la anterior, tiene la forma: en donde: X2l = datos de entrada; X2l_? - datos que preceden los datos de entrada X2l; X21+1 - datos que siguen a los datos de entrada X2l; Di = término de detalle (salida diezmada del filtro de paso alto) ; D1+1 = término de detalle que sigue al término de detalle Dx; y A-, = término de aproximación (salida diezmada del filtro de paso bajo) .
También se describe un aparato codificador, para predecir los cambios entre una secuencia de cuadros en el dominio de transformación. El aparato incluye un dispositivo de transformación que tiene una entrada configurada para recibir un primer y segundo cuadros de la secuencia de cuadros, y configurado además para generar a partir del mismo una primera y segunda colecciones, de bandas secundarias, correspondientes, cada una de las cuales soporta un conjunto de coeficientes de transformación. Un dispositivo para la compensación de movimiento, que tiene una entrada acoplada al dispositivo de transformación, está configurado para recibir la primera y segunda colecciones de bandas secundarias, y configurado además para representar eficientemente las diferencias entre la primera y segunda colecciones de bandas secundarias. También incluido se encuentra un bloque de diferencias que tiene una entrada acoplada al dispositivo de transformación, y una entrada acoplada a la salida del dispositivo de compensación de movimiento. La entrada recibida del dispositivo de compensación de movimiento, se substrae de la segunda colección de bandas secundarías, en el bloque de diferencias, por lo cual se generan unos errores de predicción.
El dispositivo de compensación de movimiento incluye un dispositivo de estimación de movimiento, configurado para comparar la primera y segunda colecciones de bandas secundarias. Una colección de vectores de movimiento se genera a partir del mismo, la cual representa aproximadamente las diferencias entre la primera y segundas colecciones de bandas secundarias. El dispositivo para la compensación de movimiento incluye también un dispositivo para la predicción de movimiento, que tiene ma entrada acoplada al dispositivo para la estimación de movimiento, configurada para recibir los vectores de movimiento y la primera colección de bandas secundarias, y configurada además para generar a partir de la misma un agrupamiento de predicción que representa una predicción de la segunda colección de bandas secundarias. La predicción de la segunda colección de bandas secundarias se substrae de la segunda colección de bandas secundarias, en un bloque de diferencias que da por resultado errores de predicción. También se describe un aparato para la transformación con precisión finita, para transformar un, cuadro de imagen en el dominio de transformación. El aparato incluye un componente de paso bajo y un componente de paso alto, dispuestos en paralelo y que comparten una entrada que esta configurada para recibir el cuadro de imagen. Se incluye un dispositivo de normalización de paso bajo, que tiene una entrada configurada para recibir la salida del componente de paso bajo y que además está configurada para producir una salida de paso bajo, normalizada, y un primer residuo (rl) , de normalización, de paso alto, tiene una entrada configurada para recibir la salida del componente de paso alto y que además está configurado para producir una salida normalizada de paso alto y un segundo residuo (rh) . Un primer dispositivo de operación tiene una entrada configurada para recibir el primer residuo (rl) y el segundo residuo (rh) y configurada además para realizar un primer cálculo (g(rl, rh) ) generando por ello un resultado de primer cálculo. Un dispositivo de segunda operación tiene una entrada configurada para recibir el primer residuo (rl) y el segundo residuo (rh) y configurado para realizar un segundo cálculo (f(rl, rh) ) generando por ello un resultado de segundo cálculo. Además, un primer sumador tiene una entrada configurada para recibir la salida normalizada de paso bajo y el resultado del primer cálculo, y el primer sumador genera una aproximación de banda secundaria. De manera similar, un segundo sumador tiene una entrada configurada para recibir la salida normalizada de paso alto y el resultado de segundo cálculo, y el segundo sumador genera un detalle de banda secundaria. El aparato de transformación de precisión finita incluye además un primer dispositivo de muestreo descendente, en la salida de paso bajo, y un segundo dispositivo de muestreo descendente, en la salida de paso alto. Un muestreo descendente de dos (2) proporciona coeficientes de transformación, suficientes y necesarios, para reconstruir la imagen de entrada en el descodificador . Estas y otras características singulares del aparato y método descritos en la presente, se pondrán de manifiesto más fácilmente, a partir de la siguiente descripción detallada, tomada en conjunto con los dibujos.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Modalidades representativas de la presente invención, se describirán con referencia a las siguientes figuras : La figura 1 es un diagrama de bloques, esquemático, de una aproximación estándar para la compresión de video, de la técnica anterior, que usa la Transformación Cosenoidal Discreta (TCD) en donde la compensación de movimiento se lleva a cabo en el dominio de imagen; La figura 2 es un diagrama de bloques, esquemático, que ilustra una disposición general de una modalidad de la presente invención, que incluye medios para que la compensación de movimientos se lleve a cabo en el dominio de transformación; La figura 3 es un diagrama de bloques, esquemático, de una disposición más detallada de la modalidad ilustrada de la figura 2; La figura 4 (a) ilustra una imagen de QCIF que tiene macrobloques de imágenes (IMBXfX) del 0,0 al 8,10 y la figura 4 (b) ilustra una representación de banda secundaria, de la imagen de QCIF, después de que el cuadro de imagen ha sido transformado mediante una transformación de tren de ondas hacia delante; La figura 5 (a) ilustra la representación de bandas secundarias, de la imagen de QCIF, tal como se ilustra en la figura 4 (b) , y la figura 5 (b) ilustra una colección de macrobloques de bandas secundarias (SMBX,X) generados a partir de la representación de bandas secundaria ilustrada en la figura 5 (a), y la figura 5 (a) ilustra la organización de los macrobloques de bandas secundarias de la figura 5 (b) de manera tal que los macrobloques de bandas secundarias (SMBX,X) corresponden espacialmente a sus macrobloques de imágenes relacionados (IMBX,X) de la figura 4 (a) ; Las figuras 6 (a) y 6 (b) son diagramas de bloques, esquemáticos, que ilustran bancos de filtros para transformar y diezmar una imagen de entrada y sus respectivas bandas secundarias, verticales y horizontales, creadas a partir de cada banco de filtros; La figura 7 ilustra una arquitectura para transferir la aritmética de precisión finita que se encuentra en los bancos de filtros, desde la región de banda alta hacia la región de banda baja y, a la inversa, desde la región de banda baja hasta la región de banda alta; La figura 8 ilustra regiones de búsqueda en el dominio de transformación, para cada banda secundaria (SB13) que corresponda al macrobloque de imágenes 2,4 (IMB2,4) en el dominio de imagen, en donde la banda de búsqueda es de P x P elementos de imagen, y además detalla la región de búsqueda para la de SB0o, cuando el tamaño de la imagen de entrada está en QCIF; Las figuras de la 9 (a) a la 9(d) ilustran un método mediante el cual se estima el movimiento en el dominio de transformación; La figura 10 ilustra un método mediante el cual se predice el movimiento en el dominio de transformación; La figura 11 es un diagrama de bloques, esquemático, que ilustra otra disposición detallada de la modalidad que se ilustra en la figura 2; La figura 12 es un diagrama de bloques, esquemático, que ilustra otra modalidad detallada de la invención, en donde la estimación de movimiento se lleva a cabo en el dominio de imagen, y la predicción de movimiento se lleva a cabo en el dominio de transformación; La figura 13 ilustra una región de búsqueda de P x P elementos de imagen, cuando se busca en el dominio de imagen, alrededor del macrobloque de imágenes 2,4 (IMB2f4) , cuando el tamaño de entrada es QCIF; y La figura 14 es un diagrama de bloques, esquemático, que ilustra otra modalidad detallada de la invención, en donde la estimación de movimiento y la predicción de movimiento se llevan a cabo en el dominio de la imagen.
DESCRIPCIÓN DETALLADA DE LAS MODALIDADES PREFERIDAS Una modalidad de la presente invención proporciona un aparato y método para comprimir señales digitales de video, usando una técnica de transformación de precisión limitada. La modalidad perfecciona las -técnicas convencionales basadas en la transformación sin pérdidas o con menos pérdidas, mediante la compensación de movimiento, por ejemplo, estimando y prediciendo el movimiento, en el dominio de transformación, en vez que en el dominio temporal, como en la técnica anterior. En esta manera, se puede conseguir una calidad mejorada de las imágenes, usando elementos físicos de cómputo, menos caros. Se pretende que el término "compensación de movimiento" esté definido en su sentido más amplio. En otras palabras, aunque la compensación de movimiento se describe e ilustra a menudo, en la presente, incluyendo la estimación de movimiento y la predicción de movimiento, de un grupo de elementos de imagen, deberá comprenderse que abarca, por ejemplo, la rotación y la escala. Además, el término "compensación de movimiento" puede incluir, por ejemplo, la simple generación de datos que representan las diferencias entre dos conjuntos de datos. Las eficiencias de compresión se ganan, tanto convirtiendo la imagen en características, y levantando un mapa primero de las características. La descripción de la presente, se ilustra refiriéndose a una secuencia de cuadros de imágenes o video. Esa secuencia de imágenes se puede comprender fácilmente como una colección de elementos de datos orientados espacialmente (ya sea como escalares, vectores, o funciones) que se colocan en cierta disposición entre sí y se clasifican por tiempo o algún otro parámetro. Una secuencia de imágenes se puede encontrar en coordenadas cartesianas, pero se pueden usar otros sistemas de coordenadas que existan en la técnica. Además, el aparato y método de la presente se pueden utilizar en aplicaciones que no sean de video, tales como la compresión de voz, audio, y de electrocardiogramas. Es decir, aunque la invención descrita en la presente se ilustra en un sistema bidimensional (2 D) , es decir, la compresión de video, se pretende que las descripciones se puedan aplicar a cualesquiera otros sistemas dimensionales a fin de favorecer la técnica de la compresión de datos en general . Por ejemplo, las descripciones se pueden aplicar a sistemas uno y medio dimensionales (1-1/2 D) tales como la formación de imágenes por ultrasonido. También, las descripciones se pueden aplicar a sistemas tridimensionales (3 D) tales como la formación de imágenes por resonancia magnética (MRI) . En toda la descripción posterior, el término "cuadro" se refiere a una sola imagen de una secuencia de imágenes, alimentadas a un codificador, sin importar la forma de la imagen individual, es decir, sin importar si se encuentra en el dominio temporal, en el dominio de la frecuencia, o de cualquier otro procesamiento que se haya realizado sobre la misma. Además, el término "peí" se usa con referencia a un elemento de imagen en el dominio temporal, y los términos "coeficiente" y "coeficiente de transformación" se usan con referencia a representaciones de elementos de imagen que se generan después dé que los elementos de imagen han pasado, por ejemplo, a través de una transformación de tren de ondas hacia delante. Estos términos se usan para facilitar la descripción de las modalidades, y de ninguna manera pretenden restringir el alcance de la invención. Haciendo referencia ahora a los dibujos, en donde los números de referencia similares identifican elementos similares de la invención en cuestión, se ilustra en la figura 2 un diagrama de bloques esquemático, de una modalidad para comprimir una secuencia de imágenes o una secuencia de cuadros. Este diagrama es uno de varias modalidades descritas en la presente. Modalidades más detalladas se analizan en los párrafos siguientes. En la figura 2, una imagen se convierte en una colección de características en el dominio de transformación, en el bloque 20. Las características que se determinan como significativas para esa imagen, es decir, las características a las que se les determina que han cambiado significativamente desde un cuadro de referencia o pasado, se seleccionan en el bloque 22. Las características significativas se representan eficientemente en el bloque 24 y, posteriormente, se envían hacia un descodificador para actualizar las características en un cuadro de referencia. Por ejemplo, la imagen original se transforma en el bloque 20 y se representa mediante un conjunto de coeficientes de transformación. Los coeficientes de transformación del conjunto de coeficientes, se evalúan después en el bloque 22 para determinar su significancia, a través de varias técnicas de ponderación y evaluación, y se clasifican de acuerdo a su significancia. Posteriormente, en el bloque 24, toma lugar la compensación de movimiento entre el presente cuadro y el cuadro pasado o de referencia. La compensación de movimiento puede incluir el movimiento que estime el cuadro entre cambios, para generar un conjunto de vectores de movimiento. Después, los vectores de movimiento se aplican a un cuadro de referencia, durante un paso de predicción de movimiento. Los resultados de la predicción de movimiento se sustraen del conjunto de coeficientes de transformación para determinar los errores de esa predicción. Los errores de predicción se escalan luego opcionalmente y finalmente luego se codifican por posiciones junto con los vectores de movimiento para la transmisión al descodificador . Haciendo referencia a la figura 3, un diagrama de bloques esquemático ilustra una disposición más particular de la modalidad que se describió con referencia a la figura 2. Una secuencia de imágenes o serie de cuadros de video 26 codificados, por ejemplo, en Formato Intermedio Caltech (CIF) se alimenta a un convertidor 28. Un cuadro CIF tiene 288 x 352 elementos de imagen. En el convertidor 28 los cuadros se convierten en un cuarto de CIF (QCIF) , por ejemplo, la imagen de QCIF 30 tal como se ilustra .en la figura 4a. Una imagen de QCIF tiene 144 x 176 elementos de imagen. El CIF se convierte en QCIF mediante la filtración de paso bajo y la decimación por dos (2) tanto en la dirección horizontal como en la vertical. Para facilitar el procesado, los 144 x 176 elementos de imagen se dividen en macrobloques de imagen (IMBXfX) , cada uno de los cuales tiene 16 x 16 elementos de imagen. El QCIF se usa en la presente como un ejemplo únicamente, y no pretende usarse como limitación de manera alguna con respecto a esta invención. Las técnicas descritas posteriormente se pueden adaptar fácilmente a otros formatos de imagen (y no de imágenes) , mediante métodos bien conocidos para los experimentados en la técnica. Haciendo referencia a las figuras 3 y 4, la imagen de QCIF 30 se alimenta a los bloques 32 y 36, que forman el bloque 20 de la figura 2, en donde toma lugar el levantamiento de mapas de las imágenes en características. Más específicamente, la imagen de QCIF 30 (la figura 34 (a) ) se alimenta al bloque 32 en donde una transformación de tren de ondas hacia delante, transforma cada cuadro en una colección de bandas secundarias 34 (figura 4 (b) ) . Esta organización de la imagen transformada, es decir, la colección de bandas secundarias 34, se almacena en la memoria para uso posterior, por ejemplo, para la estimación de movimiento, predicción de movimiento, y para la determinación del error de predicción. Una transformación de tren de ondas, hacia delante, apropiada, que puede usarse para esta invención, se analiza con mayor detalle posteriormente en la presente. La colección de bandas secundarias 34 se alimenta al bloque 36 para el empacamiento de macrobloques de bandas secundarias. Durante el empacamiento de macrobloques de bandas secundarias, los bloques de bandas secundarias que corresponden a un macrobloque de imágenes particulares, se organizan para formar macrobloques de bandas secundarias (SMBX,X) . Posteriormente, cada macrobloque de bandas secundarias reside en la ubicación espacial del macrobloque de imágenes, que está relacionado con el mismo y por lo tanto lo representa. La colección de todos los macrobloques de bandas secundarias, para un cuadro particular, se llama un agrupamiento 40 de macrobloques de bandas secundarias. La figura 5 ilustra el proceso de empacamiento de macrobloques de bandas secundarias. Durante el empacamiento de macrobloques de bandas secundarias, todos los bloques de bandas secundarias, relacionados, en la colección de bandas secundarias 34 (figura 5 (a)) se reorganizan durante el empacamiento de macrobloques de bandas secundarias, para formar los macrobioques de bandas secundarias 38 tal como se ilustra en la figura 5(b). Por ejemplo, los bloques de bandas secundarias, sombreados, en la figura 5 (a), que corresponden al macrobloque de imágenes 2,4 (IMB2,4) en la figura 4 (a) , se reorganizan durante el empacamiento de macrobloques de bandas secundarias, en el bloque 36 (figura 3) para formar el macrobloque de bandas secundarias SMB2f4 tal como se ilustra e la figura 5 (b) . Los macrobloques 38 de bandas secundarias (del SMB0,o al SMB8,?o) se organizan luego en el agrupamiento 40 de macrobloques de bandas secundarias, tal como se ilustra en la figura 5(c) de manera tal que cada macrobloque de bandas secundarias está soportado por la posición espacial de su macrobloque de imágenes correspondiente (IMBXfX) en la imagen de QCIF 30. En este ejemplo, se encuentra que el SMB2,4 está soportado significativamente por la ubicación espacial del IMB2,4 tal como se ilustra en las figuras 4 (a) y 5(c). Es importante observar nuevamente que, aunque la modalidad descrita en la presente se refiere únicamente a imágenes en cuadros representadas en QCIF, los experimentados en la técnica comprenderán fácilmente que se pueden usar otros formatos sin desviarse de la descripción de esta invención. También es importante observar que el agrupamiento particular de bloques de bandas secundarias, en cada macrobloque de bandas secundarias, se usa para acomodar el tren de ondas particular, ilustrado. Existen otros agrupamientos de datos de bandas secundarias, que serían más apropiados para otros trenes de ondas. A partir de las descripciones anteriores, de la colección de macrobloques de imágenes 30 (figura 4 (a) ) , la colección de bandas secundarias 34 (figura 4 (b) ) , y el agrupamiento 40 de macrobloques de bandas secundarias (figura 5(c)) se pondrá de manifiesto fácilmente que existe una correlación entre ciertos macrobloques de imágenes, bloques de bandas secundarias, y macrobloques de bandas secundarias. Un ejemplo de esa correlación es como sigue: (a) el macrobloque de imágenes 2,4 (IMB2, ) , que está sombreado y también identificado como macrobloque de imágenes 106 en la figura 4 (a) ; (b) todos los bloques de bandas secundarias, sombreados, en la figura 4 (b) , por ejemplo, el bloque 116 de bandas secundarias, en la banda secundaria 00 (SB00) y el bloque 118 de bandas secundarias, en la banda secundaria 33(SB33); y (c) el macrobloque 2,4 de bandas secundarias (SMB2,4) , el cual está sombreado y también identificado como macrobloque 117 de bandas secundarias, en la figura 5(c). A las descripciones en ésta especificación, que involucran coeficientes que tienen una relación tal como la que se ejemplificó anteriormente, se puede hacer referencia como que están "relacionadas".
Haciendo referencia nuevamente a la figura 3, el agrupamiento 40 de macrobloques de bandas secundarias, se alimenta a los bloques 42, 46, 48, y 52, que forman el bloque 22 encontrado en la figura 2, en donde se determina qué características o macrobloques de bandas secundarias (del SMB0,o al SMB8,?o) han cambiado. En particular, el agrupamiento 40 de macrobloques de bandas secundarias, se alimenta al bloque 42 en donde se aplican pesos para escalar cada macrobloque de bandas secundarias, en el agrupamiento 40 de macrobloques de bandas secundarias, por una cantidad que iguale la importancia perceptual del macrobloque de bandas secundarias. La salida del bloque 42 de ponderación, se agrupa de manera ponderada 44. La importancia perceptual a través de la ponderación, se puede determinar, por ejemplo, a través de un estudio de Puntuación de Opinión Promedio, o se determina a partir de ponderaciones usadas en otros sistemas de codificación tales como los que se encuentran en H.261 y H.263 del Comité de Consulta para la Telegrafía y Telefonía Internacional (CCITT) , las normas de la cual se encuentran incorporadas en la presente como referencia. Para una discusión de la puntuación de la opinión promedio ver Discrete Cosine Transform, K. R. Rao & P. Yip, Academic Press, Inc., pp. 165-74 (1990), incorporada en la presente como referencia.
Después de que las ponderaciones se han aplicado en el bloque 42 para escalar cada macrobloque de bandas secundarias, el agrupamiento ponderado 44 se alimenta y procesa en el bloque 46 de detección de cambios, para determinar la cantidad relativa del cambio que ha ocurrido. Este cambio se denomina también la "significancia" o, para el propósito dei video, la distorsión del agrupamiento ponderado 44. La significancia se puede determinar en relación a una referencia dada tal como por ejemplo cero (0) o un agrupamiento ponderado pasado. El bucle que se extiende desde el bloque 46 de detección de cambios, incluye un retraso 48 de cuadro, que regresa a un agrupamiento ponderado pasado hacia el bloque 46 de detección de cambios, para el uso como una referencia. La salida del bloque 46 de detección de cambios, es el agrupamiento 50 de cambios detectados. Se usa una referencia de cero (0) en el bloque 46 de detección de cambios, por ejemplo, cuando inicialmente se transmiten en cuadros a través del codificador. En este caso, todo el cuadro se referencia a cero (0) . Esto también se conoce como referenciación intracuadros. Como se describió anteriormente, se puede usar también un agrupamiento ponderado pasado, en donde el agrupamiento de macrobloques se ha ponderado en el bloque 42 tal como se describió anteriormente y retardado posteriormente en el bloque de retardo 48 del bloque 46 de detección de cambios, para el uso como una referencia. Este último método, también conocido como referenciación intercuadros, elimina repetidamente el envió de información redundante y/o no importante, hacia el descodificador . Un uso alternativo de la referenciación de cuadros a cero (0) es para reproducir y mantener una imagen de referencia relativamente exacta en el descodificador durante la operación del sistema. Un método emplea aplicar periódicamente una referencia a cero (0) a la totalidad de cada octavo (8o) cuadro de los 30 cuadros/segundo estándares. Alternativamente la imagen se puede renovar estocásticamente, referenciando, ya sea aleatoriamente, o metódicamente, los bloques de bandas secundarias a cero (0) . Para facilitar cualquier proceso que referencie todo o una parte de un cuadro a cero (0) los bloques de bandas secundarias, referenciados a cero, se identifican como tales, para prevenir que las operaciones de compensación de movimiento (descritas posteriormente) sean realizadas ' en los bloques efectuados. De esta manera, los bloques de bandas secundarias identificados se reproducen por completo en el descodificador, para renovar en los mismos, ya sea toda la referencia o una parte de la referencia, según sea el caso. Haciendo referencia nuevamente a la figura 3, la colección de bandas secundarias 34 que se almacenaron al principio, en la memoria, y los macrobloques de bandas secundarias del agrupamiento 50 de cambios detectados, se clasifican jerárquicamente en el bloque 52 de acuerdo con la cantidad que se haya determinado como cambio para cada bloque de bandas secundarias, es decir, de acuerdo con su significancia. La clasificación jerárquica se basa en los valores previamente asignados mediante la ponderación y detección de los macrobloques de bandas secundarias en los bloques 42 y 46, respectivamente. La salida del bloque 52 incluye un agrupamiento 53 de bandas secundarias, clasificado, y un agrupamiento 54 de macrobloques de bandas secundarias, clasificado, que se transmiten a través de la línea 55. Con referencia continua a la figura 3, el agrupamiento 53 de bandas secundarias, clasificado, y el agrupamiento 54 de macrobloques de bandas secundarias, clasificado, se alimentan selectivamente a los bloques 56, 60, 62, 68, 72, y 76, que corresponden al bloque 24 de la figura 2, en donde los macrobloques cambiados se representan eficientemente. En particular, el agrupamiento 54 de macrobloques de bandas secundarias, clasificado (el cuadro "presente") se alimenta al bloque 56 para la estimación de movimiento. El agrupamiento 53 de bandas secundarias, clasificado, se alimenta al bloque de retardo 62, proporcionado posteriormente un agrupamiento 57 de bandas secundarias, clasificado, retardado (el cuadro de "referencia") a la línea 64 para la estimación de movimiento y para la predicción de movimiento en los bloques 56 y 60, respectivamente. En el bloque 56 de estimación de movimiento, se genera una colección de vectores de movimiento 58, en una manera que se va a describir posteriormente, y se alimenta al bloque 60 para la predicción de movimiento y se envía también al bloque 76 para la codificación por posición. Los vectores de movimiento 58 enviados al bloque de predicción de movimiento 60 se usan para alterar el agrupamiento 57 de bandas secundarias, clasificado, retardado, a fin de generar un agrupamiento predicho 66. Un bloque de diferencias 68 recibe el agrupamiento 53 de bandas secundarias, clasificado, y sustrae el agrupamiento predicho 66 del mismo, dando por resultado las diferencias 70 del agrupamiento, es decir, el error de predicción. Las diferencias 70 del agrupamiento, se escalan adicionalmehte en el bloque 72, dando por resultado las diferencias 74 del agrupamiento, escaladas. Los experimentados en la técnica reconocerán que mientras menos sea el número de diferencias 70 del agrupamiento, diferentes a cero, más exacta es la predicción que la colección de vectores de movimiento 58 ha realizado respecto a los cambios entre el cuadro presente y el cuadro de referencia. Y, mientras menos sean las diferencias, menos bitios deben de ser transmitidos hacía el descodificador para corregir las deficiencias en la estimación de movimiento. Las diferencias 74 de los agrupamientos, escaladas, provenientes del bloque de escalamiento 72 y la colección de vectores de movimiento 58 provenientes del bloque de estimación de movimiento 56, se codifican por posición, como macrobloques, en el bloque 76. En el mismo, los datos se organizan eficientemente en una corriente de bitios. El agrupamiento 78 de corrientes de bitios, codificado, se emite desde el bloque 76 y se transmite a través de la línea de transmisión 80 hacia un descodificador 82 para el procesamiento inverso. La transmisión puede ser a través de una variedad de medios, por ejemplo, electrónicos, electromagnéticos, u ópticos. Respecto al formateo de la corriente de bitios, existen varios métodos estándares bien conocidos en la técnica para formatear corrientes de bitios. El formato usado en un sistema codificador basado en H.263, es un ejemplo. Una corriente de bitios es básicamente una cadena en serie de paquetes de bitios. Cada paquete representa una categoría particular de datos. Por ejemplo, los paquetes de bitios pueden incluir datos del nivel del sistema, datos de video, control y audio. A medida que los datos se reciben para codificación, por posición, en el bloque 76, se organizan en paquetes de bitios de acuerdo con el formato en uso. Generalmente, una colección de paquetes de bitios que representa un cuadro de video, inicia con un bitio que lo identifica como un nuevo cuadro. Típicamente siguen el grado de cuantificación y otros códigos de control. Posteriormente se codifica una lista de macrobloques que representa las diferencias 74 del agrupamiento, escaladas. Para el QCIF, el número de macrobloques es igual a noventa y nueve (99) . (Ver la figura 5(c)) . Para facilitar la transferencia de datos más eficiente, cada macrobloque es seguido por un bitio cero del macrobloque (bitio Cero del MB) el cual indica la presencia o ausencia de datos diferentes de cero, en un macrobloque. Si el macrobloque se encuentra presente, la información de control para el macrobloque, incluyendo la colección de vectores de movimiento 58, relacionada, se envía seguida por los datos de la banda secundaria, es decir, las diferencias 74 del agrupamiento, escaladas, relacionadas. Al incluir esa información se reduce sustancialmente el número de bitios que se envían a través de la línea de transmisión 80, por que la ausencia de un macrobloque está representada pro un solo símbolo en ligar de todos los bitios que serían necesarios para identificar toda la cadena de coeficientes del macrobloque que sean igual a cero. Otra situación en donde se pueden tener más eficiencias, es cuando únicamente algunos de los bloques de bandas secundarias, dentro de un macrobloque de bandas secundarias, son cero. Una modalidad incluye el paso de señalar las bandas secundarias cuyos coeficientes sean iguales a cero, con un señalador de cero de las bandas secundarias (señalador de Cero de las BS) . Una banda secundaria de las diferencias 74 de agrupamientos, escaladas, cuyos coeficientes sean cero, indica que se encontró que no existían cambios entre los bloques de bandas secundarias del agrupamiento 53 de bandas secundarias, clasificadas, y el agrupamiento predicho 66, correspondientes. Toma sustancialmente un menor número de bitios, representar señaladores de cero de la banda secundaria, que representar por separado cada coeficiente igual a cero. Por su puesto, el descodificador está programado para reconocer tanto el bitio de cero del macrobloque como el señalador de cero de la banda secundaria, a fin de interpretar el símbolo introducido durante la codificación por posición, en el bloque 76. A continuación se presenta un ejemplo de códigos de longitud de corrida cero, para simbolizar cadenas de ceros.
Códigos de longitud de Corridas Cero Con referencia continua a la figura 3, el agrupamiento 78 de corriente de bitios, codificado, es recibido por el descodificador 82 a través de la línea de transmisión 80 y se alimenta a un bloque 86 de descodificación de posiciones, que invierte el efecto del bloque 76 para la codificación por posiciones. La colección de los vectores de movimiento 58 se extrae del agrupamiento 78 de la corriente de bitios, y se alimenta a un bloque de predicción 98. Las diferencias 88 del agrupamiento, escaladas, descodificadas, en la forma de bandas secundarias (figura 4 (b) ) , se proporcionan a un bloque 90 de recuperación de cuantums . En el bloque 90 de recuperación de cuantums, los coeficientes de transformación pasados, y los términos de descuantificación, pasados y presentes, se usan para recuperar los valores de los coeficientes de transformación, cuantificados, es decir, se usan pasa recrear las diferencias 70 de los agrupamientos. Una colección de bandas secundarias 92, el cuadro de referencia del codificador, se alimenta a un bloque de retardo 94. Una colección retardada de bandas secundarias 96, se alimenta desde el bloque de retardo 94 hacia un bloque de predicción 98. Similar al proceso llevado a cabo en el bloque de predicción de movimiento 60 del codificador la colección de vectores de movimiento 58 se aplica a la colección retardada de bandas secundarias 96 en el bloque de predicción 98. En el mismo, la colección retardada de bandas secundarias 96, se altera para generar un agrupamiento predicho 100, es decir, una representación en bandas secundarias, de la imagen actualizada que no incluye las diferencias 70 de los agrupamientos. Las diferencias 70 de los agrupamientos y el agrupamiento predicho 100, se suman en un bloque sumador 102 generando la colección de bandas secundarias 92, es decir, un nuevo cuadro de referencia. Finalmente, una transformación inversa de tren de ondas, se realiza en el bloque 104 sobre la colección de bandas secundarias 92. Este paso es esencialmente el contrario de la transformación 32 de tren de ondas hacia delante que se describió de manera breve anteriormente y que se describirá con mayor detalle posteriormente en la presente. La salida resultante, del bloque 104 es una imagen reconstruida 105. Como se describió previamente e ilustró en las figuras 3 y 4, la imagen de QCIF 30 (figura 4 (a) ) se alimenta a la transformación 32 de tren de ondas hacia delante, que transforma cada cuadro de video para formar la colección de bandas secundarias 34 (figura 4 (b) ) . Una modalidad del bloque de transformación 32 utiliza una transformación de tren de ondas de producto tensorial. Para una discusión detallada de transformadas de tren de ondas de producto tensorial, ver Standard Wavelet Basis Compression of Imágenes, Joel Rosiene and Ian Greenshiels, Optical Engineering, Vol. 33, Número 8 (Agosto de 1994), incorporada en la presente como referencia. Otras transformaciones de precisión finita se pueden utilizar, tales como las bien conocidas transformaciones de Mallat, GenLOT, o Har. Para un análisis de esas transformaciones de tren de ondas, alternativas, adecuadas, ver Wavelets and Filter Banks, G. Strang and T. Nguyen, Wellesley-Cambrigde Press (1997), incorporada en la presente como referencia. Haciendo referencia a la figura 4 (b) se ilustra la colección de bandas secundarias 34 después de que la imagen 30 de QCIF ha pasado a través de la transformación de tren de ondas hacia delante 32. Como se indicó previamente, el proceso de transformación de tren de ondas hacia delante, utiliza la transformación de tren de ondas de producto tensorial, u otras transformaciones de precisión finita, bien conocidas, modificadas en la presente para reducir los efectos de una implementación de precisión finita. Generalmente, el proceso de transformación consistirá de m x n etapas para producir (m+l) x (n+1) bandas secundarias. En una modalidad, analizada posteriormente en forma conjunta con la figura 6, el proceso de transformación consiste de 3 x 3 etapas, para producir un total de dieciséis (16) bandas secundarias. Se pueden llevar a cabo otras modalidades siguiendo la descripción proporcionada en la presente, las cuales estarían dentro del alcance de esta invención. Haciendo referencia a la figura 6 (a), un proceso de transformación de tren de ondas hacia delante, filtra inicialmente un cuadro 30 de imagen de QCIF, en una base hilera por hilera, usando tres etapas. Cada etapa incluye un filtro de paso bajo 108 y un filtro de paso alto 110. En una modalidad cada modalidad de filtro de paso 108 tiene un valor de -1, 2, 6, 2, -1 y cada filtro de paso alto tiene un valor de -1, 2, -1. Después de la filtración, los componentes de paso bajo y los componentes de paso alto se escalan y diezman, o se muestrean, descendentemente, en cada etapa, mediante los diezmadores 112 y 114, respectivamente, por lo cual, los componentes de los valores de muestra, que comprenden una señal discreta, son eliminados. En la modalidad ilustrada, imagen de entrada se muestrea descendentemente por un factor de dos (2) a fin de desechar cualquier otra muestra. La decimación por dos (2) finalmente da por resultado los coeficientes de transformación, necesarios y suficientes, para permitir una reconstrucción exacta de la entrada. Posteriormente, los valores del muestro descendente, de los componentes de paso bajo y de los componentes de paso alto, se normalizan en cada etapa, en una manera que describiría con mayor detalle en al presente, con respecto a la figura 7. La salida de la primera etapa incluye un componente del filtro A0R de paso bajo, y un componente de paso alto D0R. El componente de paso bajo A0R se descompone una segunda vez y luego una tercera vez, dando por resultado detalles adicionales de las hileras, DiR y D2R, un promedio de hileras A2R. Las salidas de las hileras, D0R, D?R, D2R, y A2R de las etapas de las hileras, mostradas en las figuras 6 (a) se aplican luego, en una base columna por columna, a las etapas mostradas en la figura 6(b). Cada una de las tres etapas mostradas en la figura 6(b) incluyen un par de filtros, el muestreo descendente, y los procesos de normalización que se aplican de la misma manera como se discutió anteriormente con relación a la figura 6 (a) . La salida de la transformación es una colección de bandas secundarias 34, tal como se discutió anteriormente con respecto la figura 3, y como se ilustró en la figura 4 (b) . Haciendo referencia ahora a la figura 4 (b) , para propósitos de identificación, cada banda secundaria se identifica por una designación de banda secundaria SB13, en donde i = 0, 1, 2, o 3 para cada hilera, y j = 0, 1, 2, o 3 para cada columna. Los bloques de bandas secundarias, sombreados, por ejemplo, el bloque de bandas secundarias 116 en SBoo y el bloque de banda secundaria 118 en SB33, corresponde al IMB2,4 en la imagen de QCIF 30 de la figura 4 (a) . Debido al proceso de decimación, descrito anteriormente, cada bloque de banda secundaria correspondiente se reduce proporcionalmente, de manera tal que, por ejemplo, el bloque 116 de banda secundaria, en SBoo incluye 8 x 8 coeficientes y el bloque 118 de bandas secundarias en SB33 incluye 2 x 2 coeficientes. Como se discutió anteriormente, los bloques de bandas secundarias, relacionados, por ejemplo, aquellos bloques de bandas secundarias, en cada banda secundaria (de SB0o a SB33) que se encuentran en las posiciones 2, 4 de las bandas secundarias, se recolectan durante el paso de empacado de macrobloques de bandas secundarias, en el bloque 36 (figuras 3 y 5) para facilitar ciertos pasos de procesamiento.
Haciendo referencia ahora a la figura 7, de conformidad con una característica de la modalidad descrita, el residuo para cada etapa del proceso de codificación de bandas secundarias, se propaga hacia la trayectoria del filtro opuesto, para compensar los errores introducidos debido a la transformación de precisión finita. El residuo propagado se utiliza para ajustar los coeficientes en la trayectoria del filtro opuesto, para tomar en cuenta la pérdida de precisión. El proceso da por resultado una transformación no lineal. Además, el proceso mediante el cual se alteran los filtros, puede volverlos ni bioortogonales ni ortogonales. La figura 7 ilustra una implementación para propagar los residuos hacia los canales del filtro opuesto, para la primera etapa de la transformación de hileras mostrada en la figura 6 (a). Una implementación similar se incluye en cada una de las etapas de las hileras y de las etapas de las columnas. Los coeficientes del cuadro de entrada 30 se filtran en el filtro de paso bajo 108 y en el filtro de paso alto 110, en la manera normal. Los resultados se muestrean descendentemente, respectivamente, en los muestreadores 112 y 114. Los resultados descompuestos del filtro de paso bajo 108 se normalizan en un proceso de normalización de paso bajo 120 produciendo una salida normalizada de paso bajo 122 y un residuo de paso bajo rl. Los resultados descompuestos del filtro de paso alto 110 se normalizan en un proceso de normalización de paso alto 124 produciendo una salida normalizada de paso alto 126 y un residuo de paso alto rh. Los residuos rl y rh que resultan de cada proceso d normalización 120 y 124, respectivamente, se pasan, cada uno, a través de las funciones g(rl, rh) 128 y f(rl, rh) 130 como se ilustra. Los resultados de la función g(rl, rh) 128 se suman a la salida normalizada de paso bajo 122 en el sumador 132, dando por resultado A0R (promedios de la primera etapa) . Los resultados de la función f(rl, rh) 130 se suman a la salida normalizada de paso alto 126, en el sumador 133, dando por resultado A0R (detalles perdidos de la primera etapa) . Para los filtros L ={-1, 2, 6, 2, -1} y H = {-1, 2, -1}, una modalidad de las funciones de los residuos son: f (rl, rh) = función máximo entero de (rh + ) con nh = ; y g(rl, rh) = rh. La manipulación de los residuos, descrita anteriormente, se repite para cada par de filtros, dando por resultado una asignación de bitios reducida, en la salida de transformación. Una modalidad de un par de trenes de ondas de producto tensorial, es de la forma: en donde: X2i = datos de entrada; X2i_? = datos que preceden los datos de entrada X2l; X2?+? = datos que siguen a los datos de entrada X2l; Di = término de detalle (salida diezmada del filtro de paso alto) ; Di+i = término de detalle que sigue al término de detalle Di; y Ai = término de aproximación (salida diezmada del filtro de paso bajo) .
La descripción anterior de la transformación de tren de ondas de producto tensorial, ilustra una división de dos vías en los .51,11111 componentes de paso alto. (detalles) y de paso bajo (aproximaciones) . Además, la descripción ilustra la posibilidad de propagar los residuos desde una primera banda hacia una segunda banda, desde la segunda banda hasta la primera banda, o tanto de la primera banda hasta la segunda banda, como de la segunda banda a la primera. La modalidad descrita anteriormente pretende ilustran los conceptos básicos de ia invención, y de ninguna manera deberá interpretarse que limita el alcance de la invención. Por ejemplo, una transformación de tren de ondas de producto tensorial, puede tener una primera etapa en donde una división de tres vías incluye un filtro de paso alto, un filtro de paso medio, y un filtro de paso bajo. La salida del filtro de paso bajo, se puede iterar después, es decir, una segunda etapa que tenga una división de tres vías, se puede aplicar a la salida del filtro de paso bajo, dando por resultado un total de cinco (5) bandas secundarias. En esa modalidad los residuos podrían propagarse desde el filtro de paso bajo y el filtro de paso alto, hacia el filtro de paso medio. Esta modalidad es solo un ejemplo de cómo la transformación de tren de ondas de producto tensorial, puede variarse y conservar todavía el alcance y espíritu de la invención descrita. Los experimentados en la técnica comprenderán fácilmente que existen otras numerosas formas en las que a entrada se puede dividir en cada etapa, e iterar, y también que existen otras numerosas formas en las que los residuos se pueden propagar entre bandas secundarias. Además, la descripción anterior de la propagación de los residuos, no pretende limitar su uso a una transformación de tren de ondas de producto tensorial. Se puede usar con cualquier transformación. Por ejemplo, la propagación de los residuos se puede usar con una Transformación Cosenoidal Discreta (TCD) . También, la propagación de los residuos se puede usar en una manera con menos pérdidas o sin pérdidas. Como se discutió anteriormente en la presente, la salida de la transformación de tren de ondas hacia delante 32 puede ser una representación completa o una representación más que completa de la imagen 30 de QCIF. Una representación completa de la imagen 30 de QCIF, incluye una colección de bandas secundarias que son lo suficiente para representar el contenido de la imagen. Una representación más que completa, de la imagen 30 de QCIF, incluye la representación completa de redundante, alternativa, o las representaciones adicionales de bandas secundarias, para facilitar la compensación de movimiento, como se describirá posteriormente en la presente. Cada representación tiene valor en al modalidad descrita. Por ejemplo, la representación más que completa, puede incluir una variedad de cambios de imagen, tal como el movimiento de traslación, movimiento de rotación, y escalamiento. Estos cambios se pueden recuperar según sea necesario durante la compensación de movimiento, reduciendo el problema de representar los cambios de imagen, en uno de indización. Deberá de observarse, con respecto a la transformación de tren de ondas hacia delante, descrita anteriormente, que aunque las estructuras de cuadro de la imagen transformada, ilustradas en presente, son para los componentes lu a, las estructuras también soportan los componente, croma, y por lo tanto, no se han descrito por separado. Respecto al bloque 46 de detección de cambios, descrito en la presente anteriormente, con respecto a la figura 3, se observa que una referencia de cero (0), o alguna otra referencia tal como por ejemplo un agrupamiento ponderado pasado, suministrado a través del retardo 48, se puede usar para detectar cuanto ha cambiado el agrupamiento ponderado 44. Una modalidad del bloque 46 de detección de cambios, incluye una métrica de detección de cambios, a la cual el agrupamiento ponderado 44 se va a aplicar, de la forma general: en donde: ec = una medición de la distorsión relativa a la referencia R; ? = pesos aplicados; G = un agrupamiento presente de coeficientes de transformación de bandas secundarias; y R = una referencia tal como por ejemplo (0) o un agrupamiento previo de coeficientes de bandas secundarias obtenido a través del bloque de retardo 48.
Una métrica de detección de cambio puede tomar la forma más específica: Además, la detección de cambios 46 puede tomar ventaja de la información provista por una retroalimentación 132 (figura 3) a partir del agrupamiento 78 de corrientes de bitios codificado, para eliminar ciertos macrobloques ponderados en el agrupamiento ponderado 44 si se determina que algunos son demasiado caros, en términos de la asignación de bitios, para ser emitidos a partir de la detección de cambios 46. Además, el bloque 46 de detección de cambios, puede reemplazar una característica, por ejemplo, el bloque de bandas secundarias, con otro que considere que mejor represente la características . Como se describió anteriormente en la presente, e ilustró en la figura 3, el agrupamiento 53 de bandas secundarias, clasificadas, y el agrupamiento 54 de macrobloques de bandas secundarias clasificadas, se alimentan al bloque de retardo 62 y al bloque 56, respectivamente, a través de la línea 55, para la estimación de movimiento. En el bloque 56 se lleva a cabo un proceso de comparación entre los bloques de bandas secundarias, del agrupamiento 54 de macrobloques de bandas secundarias, clasificadas, es decir, el cuadro "presente", y regiones de búsqueda relacionadas del agrupamiento de bandas secundarias, clasificadas, retardadas, utilizando el agrupamiento 54 de macrobloques de bandas secundarias clasificadas, para el cuadro presente y el agrupamiento 57 de bandas secundarias clasificadas, retardadas, para el marco de referencia. Sin embargo, deberá reconocerse también que otros agrupamientos y combinaciones que se encuentran conservados por las descripciones de esta invención, pueden ser utilizados. El proceso de comparación llevado a cabo en el bloque 56 da por resultado una colección de vectores de movimiento 58 que se alimentan al bloque 60 para la predicción del movimiento, y al bloque 76 para la codificación por posición, en una corriente de bitios, como se describió brevemente anteriormente en la presente. Haciendo referencia a las figuras 8 y 9, la estimación de movimiento en el bloque 56 y la generación de una colección de vectores de movimiento 58 se describirá ahora más particularmente. En la figura 8, se ilustra el agrupamiento 57, de bandas secundarias, clasificado jerárquicamente, retardado. El agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado, es similar a la colección de bandas secundarias 34 ilustrada en la figura. 4 (b) , pero ha sido procesado adicionalmente al haber clasificado jerárquicamente en bloques, las bandas secundarias, en el bloque 52 (figura 3) y al haber retardado los mismos por al menos un cuadro en el bloque de retardo 62. Para facilitar ia determinación de los vectores de movimiento individuales, se definen regiones de búsqueda alrededor de bloques de bandas secundarias, al menos en una de las bandas secundarias (de la SB00 a la SB33) . Los bloques de bandas secundarias dentro de cada banda secundaria que se selecciona para que tenga regiones de búsqueda definidas alrededor de las mismas, fueron los que se definieron como significativos en el bloque de detección de cambios 46. A menudo es suficiente desarrollar los vectores de movimiento basados en los bloques de bandas secundarias, significativos, dentro de SB0o. Haciendo referencia continua a la figura 8, se ilustran regiones de búsqueda que se han desarrollado alrededor de cada bloque de bandas secundarias, que corresponde al macrobloque de imágenes 2,4(IMB2f4) de la imagen 30 de QCIF (figura 4 (a) ) . El tamaño de las regiones de búsqueda puede variarse. Sin embargo, las regiones de búsqueda alrededor de los bloques de bandas secundarias, siempre será proporcional, de acuerdo con su relación fraccional con la imagen. Por ejemplo, una regiór de búsqueda básica de P x P elementos de imagen, en 1a imagen 30 de QCIF (figura 13) se traslada a una región de búsqueda alrededor del bloque 137 de bandas secundarias en SB0o de P/2 x P/2 (figura 8), como se indica en 136, y una región de búsqueda alrededor del bloque 140 de bandas secundarias, en SBoi de P/4 x P/2 como se indica en 139. Para los ejemplos de estimación de movimiento proporcionados posteriormente en la presente, la región de búsqueda de P x P, 107 de la figura 13, incluye 32 x 32 elementos de imagen, lo cual es cuatro (4) veces el tamaño del IMB2,4, que tiene 16 x 16 elementos de imagen. Por lo tanto, la región de búsqueda de P/2 x P/2 136 (figura 8) incluye 16 x 16 coeficientes lo cual es cuatro (4) veces el tamaño del bloque 137 de bandas secundarias (8 x 8 coeficientes) . Y, la región de búsqueda 139 de P/4 x P/2 incluye 16 x 8 coeficientes, lo cual es cuatro (4) eces el tamaño del bloque 140 de bandas secundarias (8 x 4 coeficientes) . Como se describirá adicionalmente, posteriormente en la presente, las regiones de búsqueda de bandas secundarias, se usan para facilitar la determinación de vectores de movimiento para cada bloque de bandas secundarias, significativo (del 0,0 al 8,10) en algunas o tedas las bandas secundarias (de la SB0o a la SB33) . El tamaño básico (P x P) de la región de búsqueda, se puede determinar mediante el análisis empírico o estadístico, tomando, por ejemplo, en consideración, la cantidad de movimiento anticipada entre cuadros. Además, deberá darse consideración al esfuerzo de cómputo necesario para llevar a cabo una búsqueda en una región de búsqueda determinada. El experimentado en la técnica fácilmente comprenderá que las regiones de búsqueda más grandes requieren de más recursos de cómputo, y, de aqui que, de mayor retardo entre cuadros, para un procesador fijo. A la inversa, regiones de búsqueda más pequeñas requieren de menores recursos de cómputo pero sacrifican la calidad de la imagen. Esto es especialmente cierto durante periodos de gran movimiento de la imagen. Es decir, la calidad de ia imagen se reduce, dado que parte del movimiento se puede ubicar a fuera de la región de búsqueda, previniendo así la selección exacta del vector de movimiento. Como se describió anteriormente, el agrupamiento 53 de bandas secundarias, clasificado jerárquicamente y el agrupamiento 54 de macrobloques de bandas secundarias, clasificado jerárquicamente, se alimentan del bloque 52 al bloque de retardo 62 y al bloque 56 de estimación de movimiento, respectivamente, a través de la línea 55. Por ejemplo, posteriormente en la presente, una región de búsqueda se coloca alrededor del bloque 2, 4 de bandas secundarias del SB00 en el agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado (figura 8) . Y, un bloque de bandas secundarias de SBoo en el macrobloque 2,4 de bandas secundarias, en el agrupamiento 54 de macrobloques de bandas secundarias, clasificado jerárquicamente, (al que se hace referencia como bloque 116 de bandas secundarias, en la figura 5(c)) se usa para cruzar la región de búsqueda para el cambio. Sin embargo, como se mencionó anteriormente, cualquier selección de las bandas secundarias o de todas las bandas secundarias, se puede usar siguiendo el etoao descrito posteriormente . Haciendo referencia ahora a las figuras 3, 8, y 9, tal como se describió anteriormente, el agrupamiento 53 de bandas secundarias, clasificado jerárquicamente, es retardado en su retardo 62 para producir un agrupamíento 57 de bandas secundarias, clasificado jerárquicamente, retardado (el cuadro "de referencia") . El agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado, se alimenta a un bloque 56 de estimación de movimiento, en donde una región de búsqueda 136 se identifica por tener una región de P/2 x P/2 en SB00 alrededor del bloque 137 de bandas secundarias. Para este ejemplo, la región de búsqueda es igual a 16 x 16 coeficientes. El agrupamiento 54 de macrobloques, de bandas secundarias, clasificado erárquicamente (el cuadro "presente") se alimenta también a un bloque 56 de estimación de movimiento, en donde un bloque 138 de bandas secundarias (figura 9 (a)), similar al área sombreada del bloque 116 de bandas secundarias, en ia figura 5 (c) , se recupera para el uso en el proceso de comparación descrito posteriormente . Haciendo referencia ahora, en particular a las figuras de la 9 (a), a la (d) se ilustra el proceso mediante el cual los vectores de movimiento (MVX,X) se determinan en el bloque 56 de estimación de movimiento, de la figura 3. En el ejemplo posterior, se determina un vector de movimiento para un bloque de bandas secundarias, es aecir, el bloque 2,4 de bandas secundarias, de SB0o. Sin embargo, los vectores de movimiento pueden determinarse para cada bloque de bandas secundarias, significativo, en cada banda secundaria (de la SB0o a la SB33) . Haciendo referencia a la figura (a), ei bloque 138 de bandas secundarias del agrupamiento 54 de macrobloques, de bandas secundarias, clasificado jerárquicamente, se localiza dentro de la región de búsqueda 136 del agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado (figura 8) . El bloque 138 de bandas secundarias, se sobrepone esencialmente sobre el bloque 137 de bandas secundarias, del agrupamiento 57 de bandas secundarias, clasificado / jerárquicamente, retardado. Como se analizó anteriormente, el agrupamiento 54 de macrobloques de bandas secundarias, clasificado jerárquicamente, tiene una estructura similar al agrupamiento 40 de macrobloques de bandas secundarias, ilustrado en la figura 5 (c) . Y, el agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado, tiene una estructura similor a la colección de bandas secundarias 34 ilustrada en la figura 4 (b) . Haciendo referencia nuevamente a la figura 9 (a), los coeficientes 141 de la región de búsqueda 136 (ilustrados como cuatro (4) círculos con una "x" en cada uno) y los coeficientes 142 del bloque 138 de bandas secundarias (ilustrado como cuatro (4) círculos) se usan en la presente para facilitar la ilustración del método para la determinación de los vectores de movimiento. Para este ejemplo se asume que los coeficientes 141 y 142 tienen un valor aproximadamente igual, y que los coeficientes restantes (no mostrados) tienen un valor diferente al de los coeficientes 141 y 142, pero aproximadamente iguales entre sí. La diferencia en las posiciones de los coeficientes 141 y 142 representa un cambio entre los dos cuadros de video, por ejemplo, el movimiento de traslación. Haciendo referencia a la figura 9 (b) , el bloque 138 de bandas secundarias se traslada, es decir, busca en un patrón escalonado, predeterminado, y la región de búsqueda 136 busca determinar la diferencia absoluta total en cada paso, entre el bloque 138 de bandas secundarias y la región de búsqueda 136. Los experimentados en la técnica reconocerán que se pueden usar varios patrones de cruce. Además, se puede usar otro criterio diferente al de diferencia absoluta total, como una base para la comparación. La comparación inicial busca encontrar el mejor semejante, utilizando movimientos, por incrementos o de paso completo, del bloque 138 de bandas secundarias. Un movimiento por incrementos es un desplazamiento o paso, completo, ya sea en la dirección x o y. Por ejemplo, en la búsqueda realizada en toda la región de búsqueda 136, el bloque 138 de bandas secundarias, se desplaza dentro de la región de búsqueda 136 por ± cuatro incrementos, es decir, coeficientes de transformación, en la dirección x y ± 4 incrementos en la dirección y. El bloque 138 de bandas secundarias se despJ aza ± 4 incrementos en la dirección x e y, debido a que el bloque 138 de bandas secundarias tiene 8 x 8 coeficientes, mientras que la región de búsqueda 136 tiene 16 x 16 coeficientes. Con referencia continua a la figura 9(b), después de llevar a cabo una búsqueda por incrementos, se encuentra que el mejor semejante está tres (3) movimientos por incrementos totales, en la dirección x positiva y dos (2) movimientos por incrementos totales, en la dirección Y positiva. Posteriormente, tal como se observó en la figura 9(c), se determina que las diferencias fracciónales representan de manera más exacta la diferencia entre el bloque 138 de bandas secundarias y la región de búsqueda 136. Para facilitar este proceso, se aplican, al bloque 138 de bandas secundarias, máscaras que representan el movimiento fraccional apropiado para la banda secundaria en particular. Por ejemplo, debido a que SB0o es un cuarto { ) del tamaño del macrobloque relacionado en la imagen original (ver IMB2/ de la figura 4 (a) ) , existen cuatro movimientos fracciónales que el bloque 138 de bandas secundarias puede realizar para reproducir de manera más exacta los movimiento más precisos de IBM2(4. Es decir, el bloque 138 de bandas secundarias se puede mover ± 1/2 de un incremento en la dirección x y ± 1/2 de un incremento en la dirección y. Por lo tanto, se usan cuatro máscaras fracciónales 143 para alterar el bloque 138 de bandas secundarias, en la búsqueda del mejor semejante. Con referencia continua a la figura 9(c), las cuatro máscaras 143 se aplican al bloque 138 de bandas secundarias. Entre la aplicación de cada .máscara se determina la diferencia absoluta total entre los coeficientes que se encuentran en el bloque 138 de bandas secundarias y la región búsqueda 136. Si se encuentra un mejor semejante, en comparación con el que determina durante la búsqueda por incrementos descrita anteriormente, la máscara fraccional se adiciona al vector de movimiento. En el ejemplo, se determina el mejor semejante como + 1/2 el movimiento fraccional en la dirección x positiva. Los componentes x e y resultantes, del vector de movimiento, son + 3 1/2 y +2, respectivamente. Los experimentados en la técnica reconocerán que es inusual obtener un semejante tan exacto como el que se ilustró en el ejemplo anterior. En este sentido, el "mejor semejante" entre los coeficientes del bloque de bandas secundarias y los coeficientes de la región de búsqueda, puede ser descrito, de manera más exacta, como la "aproximación más cercana" entre ios dos. La predicción de movimientos se usa posteriormente para compensar esta falta de exactitud. Haciendo referencia a la figura 9(d), los componentes x e y del vector de movimiento tienen invertidos sus signos y están escalados. Más particularmente, la multiplicación de cada uno de estos componentes x e y por uno negativo (-1) y, en este ejemplo en donde SB00 se usa para la estimación de movimiento, la multiplicación de cada uno de los componentes x e y por dos (2) . Los signos de los componentes x e y se invierten, de manera tal que cuando los vectores de movimiento se aplican al agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado, durante la predicción de movimiento (analizada con mayor detalle posteriormente) , los coeficientes apropiados se mueven desde la posición de cuadro "previo" a la posición de cuadro "presente". Y, los componentes x e y se escalan para representar el movimiento determinado anteriormente (x = 3 h, y = 2) en términos del macrobloque relacionado en la imagen de QCIF original (IMB2,4) . El escalamiento permite una determinación más simple de los componentes x e y usados en el desplazamiento de los coeficientes apropiados en las bandas secundarias de la SBoo a la SB33 durante la predicción de movimiento. En el ejemplo, el vector de movimiento resultante, que identifica el movimiento de los bloques de bandas secundarias en SB2,4 es x = -7 e y = -4 (MV2,4) . MV2f4 se almacena en ^ la memoria con la colección de vectores de movimiento 58. MV2,4 representa por lo tanto el movimiento de ciertas colecciones de coeficientes de cada banda secundaria en el agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado (el cuadro de "referencia") a sus nuevas posiciones, a fin de predecir el agrupamiento 53 de bandas secundarias, clasificado jerárquicamente, predicho (el cuadro "presente") . El proceso anterior se repite para cada bloque de bandas secundarias significativo, por ejemplo, en SBoo. El procesamiento procede típicamente en el orden de la clasificación jerárquica, es decir, desde los macrobloques que tienen la mayor cantidad de movimiento, hasta aquellos que tienen la menor cantidad de movimiento. Los bloques de bandas secundarias, totalmente insignificantes, no se considerarán del todo y por lo tanto no tendrán asignado un vector de movimiento. Esto ocurrirá, por ejemplo, cuando exista un cambio insignificante o cuando no haya cambio en aquellas ubicaciones entre cuadros. También puede ocurrir que los bloques de bandas secundarias estén referenciados a cero (0) tal como se describió anteriormente en la presente. Si se va a usar una banda secundaria diferente, para calcular los vectores de movimiento, se determinarían los movimientos por incrementos y fracciónales, en una manera análoga a la descrita anteriormente, usando la relación proporcional de la banda secundaria particular, con respecto a la imagen de QCIF 30. Por ejemplo, si se usan los bloques de bandas secundarias en SB0?, para desarrollar los vectores de movimiento, se aplicaría el siguiente criterio: tamaño de la región de búsqueda = 16 x 8 coeficientes; máscaras fracciónales x = incrementos de ± 1/4, ± 1/2, y + H; y máscaras fracciónales y = incrementos de ± 1/2; escalamiento de x = 4; y escalamiento de y = 2. Una ventaja de usar el método anterior es que se pueden emplear filtros separados. En otras palabras, los filtros usados para el movimiento fraccional y por incrementos, de un bloque de bandas secundarias, se pueden usar para el movimiento fraccional y por incrementos, de otro bloque de bandas secundarias. Por ejemplo, los bloques de bandas secundarias en SB0o tienen cuatro (4) posibles movimientos fracciónales de x = ± 1/2 e y = ± 1/2. Y, los bloques de bandas secundarias SB0? tienen ocho (8) posibles movimientos fracciónales de x - ± 1/4, ± 1/2, y ± 3/4, e y = ± 1/2. Debido a los movimientos fracciónales comunes de x = ± 1/2 e y - ± 1/2 en SB0o y SB0?, se pueden usar filtros individuales separables, para los movimientos fracciónales de x = + 1/2, x = - 1/2, y = + 1/2, e y = - 1/2 en ambas bandas secundarias. Este método se puede usar para todos los movimientos fracciónales comunes, en el agrupamiento 57 de bandas secundarias, clasificado por jerarquías, retardado. El mismo uso ventajoso de filtros separables se puede llevar a cabo en el bloque 60 de predicción de movimiento. Haciendo referencia a la figura 10, después de que todos los bloques de bandas secundarias, significativos, han sido procesados en el bloque 56 de estimación de movimiento, la colección de vectores de movimiento 58 se emite hacia un bloque 60 de predicción de movimiento y hacia el bloque 76 de codificación .por posición. En el bloque 60 de predicción de movimiento, los vectores de movimiento se usan para calcular el desplazamiento de ciertas colecciones de coeficientes, desde cada banda secundaria, en el agrupamiento 57 de bandas secundarias, clasificado por jerarquías, retardado (el cuadro "de referencia") hasta sus nuevas posiciones, a fin de predecir los agrupamientos 53 de bandas secundarias, clasificados por jerarquías, (el cuadro "presente") . Para determinar qué máscaras usar para producir esos desplazamientos, los componentes x e y se multiplican por el recíproco del módulo correspondiente de cada bloque de bandas secundarias. Por ejemplo, para determinar los componentes x e y para el desplazamiento de la colección de coeficientes 148 de 8 x 8, de los cuales se ha determinado que se han movido hacia la posición 2,4 en SB0o, los componentes x e y de MV2,4 se multiplican, cada uno, por el recíproco del módulo correspondiente dos (2) .Este cálculo da por resultado una x = -3 e y = -2. Por lo tanto, una máscara para el movimiento por incrementos de x = -3, una máscara para el movimiento fraccional de x = -1/2, y una máscara para el movimiento por incrementos de y = -2, se aplican al los coeficientes 148 de 8 x 8. Como un segundo ejemplo, para determinar los componentes x e y para el desplazamiento de la colección de coeficientes 149 de 8 x 4, de la cual se ha determinado que se ha movido a la posición 2,4 en SB0?, el componente x de MV2,4 se multiplica por el recíproco del módulo cuatro (4) y el componente y de MV2,4 se multiplica por el recíproco del módulo dos (2) . Este cálculo da por resultado una x = -1 3/4 e y = -2. Por lo tanto, se aplican una máscara para el movimiento por incrementos de x = -1, una máscara para el movimiento fraccional de x = - 3/4, y una máscara para el movimiento por incrementos de y = -2. La figura 10 ilustra el movimiento de todas las colecciones de coeficientes, hacia los bloques de bandas secundarias, que corresponden al SMB2,4. La aplicación de todos los vectores de movimiento (MVXX) desde la colección de vectores de movimiento 58 hasta el agrupamiento 57 de bandas secundarias, clasificado por jerarquías, retardado (el cuadro "de referencia") da por resultado una predicción del agrupamiento 53 de bandas secundarias, clasificado por jerarquías, (el cuadro "presente") y recibe el nombre de agrupamíento 66 predicho (figura 3) . Una modalidad alternativa del proceso de enmascarado descrito anteriormente, para determinar el movimiento fraccional entre cuadros, incluye el uso de máscaras de coeficientes de 3 x 3. Estas máscaras toman un promedio ponderado de los coeficientes que rodean un coeficiente seleccionado. En la aproximación alternativa, una colección de vectores de movimiento 58 que incluye únicamente movimientos por incrementos, se determina como se describió anteriormente y como se ilustró en la figura 9 (a) y 9(b) para cada bloque de bandas secundarias significativo, en cada banda secundaria (de la SB0o a la SB33) o un número seleccionado de bandas secundarias, por ejemplo, únicamente la SB0o- La colección de vectores de movimiento 58 se alimenta al bloque 60 para la predicción de movimiento. En el bloque 60 de predicción de movimiento, la colección de vectores de movimiento 58 se aplica en una manera análoga a la ilustrada en la figura 10, causando que los bloques de bandas secundarias, significativos, del agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado, se desplace por incrementos. Posteriormente, cada coeficiente de cada colección desplazada de coeficientes tiene aplicado al mismo una máscara de 3 x 3. Las máscaras que se aplican determinan el promedio ponderado de los coeficientes que rodean a cada coeficiente desplazado. El resultado de ese cálculo es la predicción del coeficiente desplazado, es decir, el nuevo valor de los coeficientes. Después de que todos los vectores de movimiento de la colección de vectores de movimiento 58 han sido aplicados al agrupamiento 57 de bandas secundarias, clasificado jerárquicamente, retardado, y todos los coeficientes que fueron desplazados por ios vectores de movimiento han recibido la aplicación de la máscara de 3 x 3, el resultado se emite desde el bloque 60 de predicción de movimiento, como agrupamiento 66 predicho. Por supuesto, el proceso se repite en el bloque de predicción 98 del descodificador 82 para replicar el proceso de enmascarado llevado a cabo en el bloque 60 de predicción de movimiento. Después de que la predicción se determina por cualesquiera de los métodos descritos anteriormente, el agrupamiento predicho 66 se hace pasar hacia el bloque de diferencia 68 en donde las diferencias entre el agrupamiento 53 de bandas secundarias, clasificado jerárquicamente, y el agrupamiento 66 predicho se determinan. Como se describió anteriormente, el bloque de diferencias 68 produce las diferencias 70 del agrupamiento. Aunque los métodos de compensación de movimiento descritos en la presente se ilustran como funcionando de manera conjunta con un tren de ondas de producto tensorial, es importante observar que los métodos se pueden utilizar con otros tipos de transformaciones. Esto incluye la utilización de métodos para la compensación de movimiento, con otras transformaciones, ya sea en el dominio temporal o en el dominio de transformación. Por ejemplo, los datos transformados en una TCD pueden recibir la compensación de movimiento en una manera similar a la descrita anteriormente. Es decir, los coeficientes de transformación 64 en cada uno de los bloques de 8 x 8 de la TCD pueden compensarse en movimiento, en una manera similar a la usada para compensar el movimiento a los coeficientes de transformación 64 en cada uno de los bloques de bandas secundarias de 8 x 8 en SB0o de la transformación de tren de ondas de producto tensorial. Haciendo referencia ahora a la figura 11, se ilustra otra modalidad del codificador de video. Como en la modalidad descrita anteriormente e ilustrada an la figura 3, la estimación de movimiento y la predicción de movimiento se llevan a cabo en el dominio de transformación, en los bloques 150 y 152, respectivamente. También, la porción frontal de la modalidad es similar a la que se discutió anteriormente y que se ilustró en la figura 3. Más específicamente, la imagen de CIF 26 se convierte en una imagen de QCIF 30, en el convertidor 28. La imagen de QCIF 30 se transforma y convierte en un agrupamiento 40 de macrobloques de bandas secundarias, mediante los componentes 20 para el levantamiento de mapas de imágenes a características. Y, la colección de bandas secundarias 34 y el agrupamiento de macrobloques de bandas secundarias se convierte en el agrupamientc 53 de bandas secundarias, clasificado por jerarquías, y ei agrupamiento 54 de macrobloques de bandas secundarias, clasificado por jerarquías, respectivamente, por los componentes asociados con la determinación de las características que cambiaron 22. También, similar a la modalidad ilustrada en la figura 3, es que el agrupamiento 54 de macrobloques de bandas secundarias, clasificado por jerarquías, se alimenta a un bloque 150 para la estimación de movimiento, y el agrupamiento 53 de bandas secundarias, clasificado por jerarquías, se alimenta al bloque de diferencias 68. Sin embargo, en lugar de utilizar un agrupamiento- 57 de bandas secundarias, clasificado por jerarquías, retardado, tal como un cuadro de referencia, un agrupamiento 171 de bandas secundarias, corregido, que tiene errores acumulados y adheridos al mismo, se alimenta al bloque de retardo 156, por lo cual se produce ei agrupamiento 172 de bandas secundarias, retardado (el "cuadro de referencia") . Esa variación es necesaria cuando la cuanr.iticacj.on (o escalamiento) es tan grande que altera sustancial ente los errores 70 de predicción producidos en el bloque 68 de referencias. Para desarrollar el agrupamiento 171 de bandas secundarias, corregido de errores, una copia del agrupamiento 53 de bandas secundarias, clasificado por jerarquías, se hace pasar, sin cambios, a través del bloque de diferencias 68 y se almacena en la memoria, cuando el sistema se referencia a cero (0) , por ejemplo, cuando el sistema se inicia o cuando la referencia en el descodificador se va a renovar. Por lo tanto, los errores de predicción 70 se acumulan, es decir, se adicionan a la referencia, como los errores de predicción 70 de cada cuadro subsecuente que pasa el bloque 158 de cuantificación. La imagen de referencia actualizada se alimenta al bloque de retardo 156, por lo cual se produce el agrupamiento 172 de bandas secundarias, retardado. Al utilizar este método, la referencia en el codificador permanece sincronizada con la referencia que se encuentra en el descodificador. Los experimentados en la técnica reconocerán que esa disposición es útil para la manutención de la sincronización entre el codificador y el descodificador, cuando se llevan a cabo cantidades significativas de escalamiento y/o cuantificación, entre la predicción de movimiento y la codificación por posiciones. Después de que el bloque 150 para la estimación de movimiento, y el bloque 152 para la predicción de movimiento, reciben el agrupamiento 172 de bandas secundarias, retardado, desde el bloque de retardo 156, la estimación de movimiento y ia predicción de movimiento se determinan a través de un procedimiento similar al descrito en la presente, anteriormente, e ilustrado er las figuras de la 8 a la 10. Además, una alimentación 153 hacia delante, se proporciona entre el detector de cambios 46 y el bloque cuantificador 158 para ajustar la cantidad de cuantificación que debe de llevarse a cabo en 'm bloque particular, dependiendo de la cantidad en que ha cambiado el bloque. Cuando se detecta una gran cantidad de cambios en el detector de cambios 46, se asigna un gran número de bitios para la cuantificación. Y, al contrario, cuando se detecta una pequeña cantidad de cambios en el detector de cambio 46, se asigna un número proporcionalmente menor de bitios, para la cuantificación. Haciendo referencia a lct figura 12, se ilustra todavía otra modalidad del codificador de video. -La porción frontal de esta modalidad es similar a las modalidades discutidas anteriormente e ilustradas en las figjras 3 y 11. Sin embargo, a diferencia de las modalidades descritas anteriormente, la estimación de movimiento se lleva a cabo en el dominio de la imagen. Esta modalidad toma ventaja de las configuraciones especiales de los elementos físicos de cómputo, disponibles actualmente en algunos procesadores. En la figura 12, una imagen de CIF se convierte en una imagen de QCIF 30, en el bloque 28 del convertidor. La imagen de QCIF 30 se transforma y convierte en un agrupamiento 40 de macrobloques de bandas secundarias, mediante los componentes 20 para levantamiento de mapas de imagen a características. El agrupamiento • 40 de macrobloques de bandas secundarias, se procesa a través de los componentes asociados con la determinación de las características que han cambiado 22 para aeterminar la clasificación jerárquica de los macrobloques de bandas. Los resultados se aplican a la colección de bandas secundarias 34 que dan por resultado el agrupamiento 53 de bandas secundarias, clasificadas jerárquicamente. El agrupamiento 53 de bandas secundarias, clasificado jerárquicamente, se alimenta posteriormente al bloque de diferencias 68. La imagen de QCIF 30, a la cual también se hace referencia como el cuadro "presente", se alimenta también a un bloque para la estimación de movimiento 160 y al bloque de retardo 166 para determinar una colección de vectores de movimiento 162. Más específicamente, un cuadro de imagen 30 se retarda en el retardador 166 produciendo un cuadro de imagen retardado 167, al cual se hace referencia también, como el cuadro "de referencia". Con referencia a la figura 13, el cuadro de imagen retardado 167 se alimenta al bloque 160 para la estimación de movimiento, en donde se desarrolla una región de búsqueda de P x P elementos de imagen, alrededor de cada macrobloque de imágenes significativo. Por ejemplo, una región de búsqueda 107 de P x P elementos de imagen, se establece alrededor del macrobloque de imágenes 2,4(IMB2,4). En base al análisis empírico, se usa una región de búsqueda 107 de 32 x 32 elementos de imagen, como la región de búsqueda alrededor de un macrobloque de imágenes de 16 x 16 elementos de imagen, de un cuadro de imagen de QCIF. En el bloque 160 para la estimación de movimiento, cada macrobloque de imagen significativo (IMBX,X) del cuadro de imagen de QCIF 30 presente, se localiza dentro de la región de búsqueda correspondiente, en el cuadro de imagen retardado 167 para determinar los vectores de movimiento. Por ejemplo, el IMB2(4 se recupera de la imagen 30 de QCIF y se localiza dentro de la región de búsqueda 107 del cuadro de imagen retardado 167. Este proceso es análogo al que se lleva a cabo en el dominio de transformación, tal como se describió anteriormente y como se ilustró en las figuras 8 y 9 (a) . En una manera análoga descrita anteriormente e ilustrada en la figura 9(b), el IMB2f4 se traslada a la región de búsqueda 107 buscando determinar la diferencia absoluta, mínima total, en cada paso entre el IMB2,4 y la región de búsqueda 107. No obstante, a diferencia de la búsqueda de bandas secundarias, descrita anteriormente, la búsqueda fraccional no es necesaria cuando se busca en el dominio de imágenes. Por lo tanto, después de determinar el movimiento por incrementos del IMB2,4, las coordenadas x e y se invierten (se multiplican por -1) y se almacenan en la memoria con la colección de vectores de movimiento 162. Los vectores de movimiento se alimentan al bloque 154 de predicción de movimiento y al bloque 76 de codificación por posición. Posteriormente, los vectores de movimiento se aplican al agrupamiento 172 de bandas secundarias, retardado, en una manera similar a la descrita anteriormente con respecto a las figuras 3 y 11 ilustrada en la figura 10. Haciendo referencia ahora a la figura 14, se ilustra otra modalidad del codificador de video, en donde la porción frontal es similar a las modalidades descritas anteriormente ilustradas en las figuras 3, 11 y 12. Sin embargo, a diferencia de las modalidades descritas anteriormente, tanto la estimación de movimiento como la predicción de movimiento se llevan a cabo en el dominio de imágenes. ' En la figura 14, se determina una colección de vectores de movimientos 162 en una manera similar a la descrita anteriormente e ilustrada en las figuras 12 y 13. La colección de vectores de movimiento 162 se alimenta al bloque 164 para la predicción de movimiento y al bloque ?6 para la codificación por posiciones. En una manera similar a la descrita anteriormente e ilustrada en las figuras 11 y 12, un agrupamiento 171 de bandas secundarias, corregido en errores, que tiene los errores acumulados adicionados al mismo, se alimenta al bloque de retardo 156, por lo cual se produce el agrupamiento 172 de bandas secundarias, retardado (el "cuadro de referencia") . A diferencia de las modalidades anteriormente descritas, no obstante, el agrupamiento 172 de bandas secundarias, retardado, se reconstruye después mediante el bloque 174 de transformación de tren de ondas, invertido, para formar una imagen reconstruida 176. La imagen reconstruida tiene una estructura que es similar a la imagen de QCIF 30 ilustrada en la figura 4 (a) . Alternativamente, en lugar de reconstruir el agrupamiento 172 de bandas secundarias retardado, en su totalidad, una porción del agrupamiento se puede reconstruir para efectuar eficiencias. Por ejemplo, se puede usar un filtro 3, 5 para obtener una región reconstruida que tenga 48 x 48 elementos de imagen. Las regiones se seleccionan en base a la significancia de, es decir, los cambios detectados dentro de, los macrobloques de imágenes (16 x 16) alrededor de los cuales se centran ias regiones. En el bloque 164 para la predicción de movimiento, la colección de vectores de movimiento 162 se aplican a la imagen reconstruida 176 (o a las regiones de elementos de imagen de 48 x 48 reconstruidas si únicamente las regiones se transformaron por tren de ondas invertido) . La colección de vectores de movimiento 162 se aplica a la imagen de referencia reconstruida 176 en una manera análoga a la descrita anteriormente e ilustrada en la figura 10, para las colecciones de desplazamiento de los coeficientes de transformación, en la representación de bandas secundarias de la imagen de QCIF. Posteriormente, se alimenta una predicción 178 al bloque de transformación 180 de tren de ondas, hacia delante, produciendo el agrupamiento predicho 66. El agrupamiento predicho 66 se sustrae luego del agrupamiento 53 de bandas secundarias, clasificado por jerarquías, en el bloque de diferencias 68, dando por resultado las diferencias del agrupamiento 70. La cuantificación se lleva a cabo en el bloque 158 y los errores se acumulan para mantener la diferencia (como se describió anteriormente) y también se envían hacia delante hasta el bloque de codificación por posiciones 76. La codificación por posiciones de los errores cuantificados y de los vectores de movimiento 162 toma lugar tal como se describió anteriormente y se envían al descodificador a través de la línea de transmisión 80. Aunque se ilustraron en la presente como una implementación de programas de cómputo (software), los principios de las modalidades de la invención podrían implementarse también en elementos físicos de cómputo 73 (hardware), por ejemplo, mediante un circuito integrado específico para la aplicación (ASIC) . Preferentemente, la implementación del ASIC, que incluye los requerimientos de memoria necesarios, deberá funcionar a una velocidad de elementos de imagen, a fin de (i) minimizar el consumo de energía, consistente con la modalidad, y (ii) permitir la compresión de todo el video a color, tal como por ejemplo un CCIR601 completo, a una velocidad de datos menor que 13.5 MHz. Se analizó anteriormente que el consumo de energía se reduciría por un factor de diez (10) veces, al, utilizar un ASIC en comparación con los programas de cómputo convencionales y con la implementación del procesador. Alternativamente, se pueden emplear métodos ópticos para producir inclusive ahorros adicionales de energía. Como se describió anteriormente, se crea una aproximación de la imagen en cada etapa de la transformación de tren de ondas, y los detalles perdidos al realizar esta aproximación, se registran. En una implementación fotoelectrónica u óptica, cómo se dispersa la luz y cómo la carga relacionada se detecta, puede ajustarse para dispersar las muestras de cada una de las imágenes de aproximación. Si éstas imágenes de aproximación se registran conjuntamente en paralelo, los términos de detalle se pueden calcular a partir de estos valores intermedios, ya sea a través de medios análogos o digitales. Preferentemente, los medios análogos se usan para calcular los términos de detalle tal como la salida de una etapa análoga. Los términos de detalle se pueden -igualar a través del uso de un convertidor de analógico a digital, en serie, de bitios, el cual implementa la estrategia de cuantificación. La corriente de bitios resultante se comprime. En esta manera, el dispositivo fotónico/óptico funciona, es decir, el número de transiciones digitales que ocurren, a la velocidad de datos comprimidos, en vez que a la velocidad de datos de imagen (tal como el caso de un ASIC) o la velocidad de datos del procesador (tal como en el caso de un procesador convencional) . Esto dará por resultado una implementación que consume muy poca corriente, requiriendo así menos potencia. Se analiza que la implementación de un método óptico reducirá adicionalmente el consumo de energía, por un factor de aproximadamente diez (10) veces la de la implementación ASIC. Deberá comprenderse que las modalidades y variaciones presentadas y descritas en la presente, son únicamente ilustrativas de los principios de ésta invención, y que se pueden implementar varias modificaciones por parte de los experimentados en la técnica, sin apartarse del espíritu de la invención

Claims (60)

REIVINDICACIONES
1. Un método para comprimir datos que incluyen un primer y segundo conjuntos de datos, caracterizado porque comprende : transformar el primer y segundo conjuntos de datos, en un primer y segundo conjuntos de coeficientes de transformación, correspondientes; generar datos que representen las diferencias ente el primer y segundo conjuntos de coeficientes de transformación; y codificar los datos generados, para su transmisión.
2. El método para comprimir datos, de conformidad con la descripción de la reivindicación 1, caracterizado porque la transformación del primer y segundo conjuntos de datos se realiza utilizando una transformación de tren de ondas de producto tensorial.
3. El método para comprimir datos, de conformidad con la descripción de la reivindicación 2, caracterizado porque los residuos de una banda secundaria, se transmiten a otra banda secundaria.
4. El método para comprimir datos, de conformidad con la descripción de la reivindicación 1, caracterizado porque la generación de datos que representan las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, incluye: estimar las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, para proporcionar vectores de movimiento; aplicar los vectores de movimiento al primer conjunto de coeficientes de transformación, para producir una predicción del segundo conjunto de coeficientes de transformación; y sustraer la predicción, del segundo conjunto de coeficientes de transformación, dando por resultado un conjunto de errores de predicción.
5. El método para comprimir datos, de conformidad con la descripción de la reivindicación 4, caracterizado porque el primer y segundo conjuntos de coeficientes de transformación están corregidos de errores.
6. El método para comprimir datos, de conformidad con la descripción de la reivindicación 4, caracterizado porque la aplicación de vectores de movimiento al primer conjunto de coeficientes de transformación incluye, además, aplicar una máscara alrededor de cada coeficiente de transformación efectuado, para obtener un promedio ponderado de los coeficientes de transformación circundantes.
7. El método para comprimir datos, de conformidad con la descripción de la reivindicación 4, caracterizado porque la estimación de las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, incluye: generar una región de búsqueda alrededor de un subconjunto de coeficientes de transformación, a partir de uno de los primeros y segundos conjuntos de coeficientes de transformación; aplicar un subconjunto relacionado de coeficientes de transformación, a partir de los otros de los primeros y segundos conjuntos de coeficientes de transformación, a la región de búsqueda; y trasladar, por incrementos, el subconjunto relacionado de coeficientes de transformación, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante incremental.
8. El método para comprimir datos, de conformidad con la definición de la reivindicación 7, caracterizado porque además incluye trasladar fraccionalmente, el subconjunto relacionado de coeficientes de transformación, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante fraccional.
9. El método para comprimir datos, de conformidad con la descripción de la reivindicación 1, caracterizado porque la transformación del primer y segundo conjuntos de datos, produce el primer conjunto de coeficientes de transformación, como una primera colección de bandas secundarias, y el segundo conjunto de coeficientes de transformación como una segunda colección de bandas secundarias.
10. El método para comprimir datos, de conformidad con la descripción de la reivindicación 9, caracterizado porque además incluye el empacamiento en macrobloques de la segunda colección de bandas secundarias, para formar un agrupamiento de macrobloques de bandas secundarias .
11. El método para comprimir datos/ de conformidad con la descripción de la reivindicación 10, caracterizado porque además incluye aplicar una ponderación a los macrobloques de bandas secundarias, dentro del agrupamiento de macrobloques de bandas secundarias.
12. El método para comprimir datos, de conformidad con la descripción de la reivindicación 10, caracterizado porque además incluye detectar cambios entre el agrupamiento de macrobloques de bandas secundarias, y una referencia.
13. El método para comprimir datos, de conformidad con la descripción de la reivindicación 12, caracterizado porque la detección de cambios entre el agrupamiento de macrobloques de bandas secundarias, y la referencia, se basa en una evaluación de la distorsión, de acuerdo con una ecuación general de la forma:
14. El método para comprimir datos, de conformidad con la descripción de la reivindicación 13, caracterizado porque la detección de los cambios entre el agrupamiento de macrobloques de bandas secundarias, y la referencia, se basa en una evaluación de la distorsión, de acuerdo con una ecuación de una forma más específica:
15. El método para comprimir datos, de conformidad con la descripción de la reivindicación 10, caracterizado porque la generación de datos que representen las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, incluye: estimar las diferencias entre la primera colección de bandas secundarias y el agrupamiento de macrobloques de bandas secundarias, para proporcionar vectores de movimiento; aplicar los vectores de movimiento a la primera colección de bandas secundarias, para producir una predicción de la segunda colección de bandas secundarias; y sustraer la predicción de la segunda colección de bandas secundarias, dando por resultado un conjunto de errores de predicción.
16. El método para comprimir datos, de conformidad con la descripción de la reivindicación 15, caracterizado porque la estimación de las diferencias entre la primera colección de bandas secundarias y el agrupamiento de macrobloques de bandas secundarias incluye: generar una región de búsqueda alrededor de un subconjunto de coeficientes de transformación, a partir de la primera colección de bandas secundarias; aplicar un subconjunto relacionado de coeficientes de transformación, a partir del agrupamiento de macrobloques de bandas secundarias, a la región de búsqueda; y trasladar, por incrementos, el subconjunto relacionado de coeficientes de transformación, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante incremental.
17. El método para comprimir datos, de conformidad con la descripción de la reivindicación 16, caracterizado porque además incluye trasladar, fraccionalmente, el subconjunto relacionado de coeficientes de transformación, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante fraccional.
18. El método para comprimir datos, de conformidad con la descripción de la reivindicación 1, caracterizado porque la codificación de los datos generados, para la transmisión, incluye además la identificación de subconjuntos de datos generados, que son iguales a cero.
19. Un método para comprimir datos, que incluyen un primer y segundo conjuntos de datos, caracterizado porque comprende: transformar el primer conjunto de datos, y el segundo conjunto de datos, en un primer y segundo conjuntos de coeficientes de transformación, correspondientes; estimar las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, para proporcionar vectores de movimiento; predecir el segundo conjunto de coeficientes de transformación, mediante la aplicación de los vectores de movimiento al primer conjunto de coeficientes de transformación; sustraer el segundo conjunto de coeficientes de transformación, predicho, del segundo conjunto de coeficientes de transformación, para obtener errores de predicción; y codificar los errores de predicción y los vectores de movimiento, para transferirlos hacia un descodificador.
20. El método para comprimir datos, de conformidad con la descripción de la reivindicación 19, caracterizado porque la transformación del primer conjunto de datos, y del segundo conjunto de datos, se lleva a cabo utilizando una transformación de tren de ondas de producto tensorial .
21. El método para comprimir datos, de conformidad con la descripción de la reivindicación 19, caracterizado porque la estimación de las diferencias entre el primer y segundo conjuntos de coeficientes de transformación, incluye: generar una región de búsqueda alrededor de un subconjunto de coeficientes de transformación, a partir de uno entre el primer y segundo conjuntos de coeficientes de transformación; aplicar un subconjunto relacionado de coeficientes de transformación, del otro del primer y segundo conjuntos de coeficientes de transformación, a la región de búsqueda; y trasladar, por incrementos, el subconjunto relacionado de coeficientes de transformación, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante incremental.
22. El método para comprimir datos, de conformidad con la descripción de la reivindicación 21, caracterizado porque además incluye trasladar fraccionalmente, el subconjunto relacionado de coeficientes de transformación, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante fraccional.
23. El método para comprimir datos, de conformidad con la descripción de la reivindicación 19, caracterizado porque la transformación del primer conjunto de datos y del segundo conjunto de datos, produce el primer conjunto de coeficientes de transformación, como una primera colección de bandas secundarias, y el segundo conjunto de coeficientes de transformación, como una segunda colección de bandas secundarias.
24. El método para comprimir datos, de conformidad con la descripción de la reivindicación 23, caracterizado porque además incluye el empacamiento en macrobloques, de la segunda colección de bandas secundarias, para formar un agrupamiento de macrobloques de bandas secundarias.
25. El método para comprimir datos, de conformidad con la descripción de la reivindicación 24, caracterizado porque además incluye aplicar una ponderación a los macrobloques de bandas secundarias, que forman el agrupamiento de macrobloques de bandas secundarias.
26. El método para comprimir datos, de conformidad con la descripción de la reivindicación 24, caracterizado porque además incluye detectar los cambios entre el agrupamiento de macrobloques de bandas secundarias y una referencia.
27. El método para comprimir datos, de conformidad con la descripción de la reivindicación 26, caracterizado porque la detección de cambios entre el agrupamiento de macrobloques de bandas secundarias, y una referencia, se basa en una evaluación de la distorsión, de acuerdo con una ecuación general de la forma:
28. El método para comprimir datos, de conformidad con la reivindicación 19, caracterizado porque la codificación de los errores de predicción y de los vectores de movimiento, para la transferencia al descodificador, incluye además la identificación de subconjuntos de los errores de predicción que son iguales a cero.
29. Un método para comprimir datos, que incluyen un primer y segundo conjuntos de datos, caracterizado porque comprende: transformar el primer conjunto de datos y el segundo conjunto de datos, en un primer y segundo conjuntos de coeficientes de transformación, correspondientes; estimar las diferencias entre el primer y segundo conjuntos de datos, para proporcionar vectores de movimiento; predecir el segundo conjunto de coeficientes de transformación, mediante la aplicación de los vectores de movimiento, al primer conjunto de coeficientes de transformación; y sustraer el segundo conjunto de coeficientes de transformación, predicho, del segundo conjunto de coeficientes de transformación, para obtener errores de predicción.
30. El método para comprimir datos, de conformidad con la descripción de la reivindicación 29, caracterizado porque el primer conjunto de coeficientes de transformación está corregido de errores.
31. Un método para comprimir datos, en un codificador, para reducir el número de bitios transferidos hacia un descodificador, caracterizado porque comprende: transformar un primer conjunto de datos y un segundo conjunto de datos subsecuentes, produciendo un primer y segundo conjuntos de coeficientes de transformación, correspondientes; estimar las diferencias entre el primer y segundo conjuntos de datos, para proporcionar vectores de movimiento; predecir el segundo conjunto de coeficientes de transformación, mediante la aplicación de los vectores de movimiento al primer conjunto de datos, y transformar después los resultados de la predicción; y sustraer los resultados de la predicción, transformados, del segundo conjunto de coeficientes de transformación, para obtener errores de predicción.
32. El método para comprimir datos, de conformidad con reivindicación 31, caracterizado porque además incluye la transformación inversa del primer conjunto de coeficientes de transformación, y proporcionar el primer conjunto de coeficientes de transformación, como una referencia durante la predicción.
33. El método para comprimir datos, de conformidad con la descripción de la reivindicación 32, caracterizado porque el primer conjunto de coeficientes de transformación está corregido de errores.
34. Un método para empacar bloques de bandas secundarias, que correspondan a un subconjunto de un conjunto de datos, caracterizado porque comprende: desasociar un conjunto de bloques de bandas secundarias, relacionados, de una colección de bandas secundarias; empacar el conjunto de bloques de bandas secundarias, relacionados, entre sí, como un macrobloque de bandas secundarias; y repetir los pasos de la desasociación y empacamiento, anteriores, para cada conjunto de bloques de bandas secundarias, relacionados, en la colección de bandas secundarias, para formar un agrupamiento de macrobloques de bandas secundarias.
35. El método de empacamiento de macrobloques de bandas secundarias, de conformidad con la descripción de la reivindicación 34, caracterizado porque el paso de empacamiento incluye arreglar o disponer el conjunto de bloques de bandas secundarias, relacionados, dentro del macrobloque de bandas secundarias, en la misma posición relativa que ocupaban los bloques de bandas secundarias, en la colección de bandas secundarias.
36. El método de empacamiento de macrobloques de bandas secundarias, de conformidad con la descripción de la reivindicación 34, caracterizado porque el paso de empacamiento incluye localizar el macrobloque de bandas secundarias, dentro del agrupamiento de macrobloques de bandas secundarias, en la misma ubicación espacial en la que se encuentra ubicado el subconjunto de datos correspondiente, dentro del conjunto de datos.
37. Un método para transformar un conjunto de datos, en coeficientes de transformación, caracterizado porque comprende transformar el conjunto de datos, utilizando una transformación de tren de ondas de producto tensorial, que tiene al menos dos trayectorias filtro, y propagar los residuos derivados durante la transformación, entre al menos dos de las trayectorias de los filtros.
38. El método de conformidad con la descripción de la reivindicación 37, caracterizado porque los residuos de una primera trayectoria de filtro, de al menos dos trayectorias de filtros, se propagan hacia una segunda trayectoria de filtro, de al menos dos trayectorias de filtros, y los residuos de la segunda trayectoria de filtro se propagan hacia la primera trayectoria de filtro.
39. El método de conformidad con la descripción de la reivindicación 37, caracterizado porque la transformación de tren de ondas de producto tensorial, es un par de tren de ondas de producto tensorial, para determinar un componente de paso alto y un componente de paso bajo.
40. El método de conformidad con la descripción de la reivindicación 39, caracterizado porque la transformación del conjunto de datos y la propagación de los residuos entre las trayectorias de filtros, incluye: determinar el componente de paso bajo y el componente de paso alto, del conjunto de datos; normalizar el componente de paso bajo para generar una salida normalizada de paso bajo y un primer residuo (rl) ; normalizar el componente de paso alto para generar una salida normalizada de paso alto y un segundo residuo (rh) ; realizar una primera operación (g(rl, rh) ) en el primer y segundo residuos (rl, rh) y sumar los resultados que emanen de la misma, a la salida normalizada de paso bajo, para generar una aproximación; y realizar una segunda operación (f(rl, rh) ) en el primer y segundo residuos (rl, rh) y sumar los resultados que emanen de la misma, a la salida normalizada de paso alto, para generar un detalle.
41. El método de conformidad con la descripción de la reivindicación 40, caracterizado porque además incluye el muestreo descendente del componente de paso bajo y del componente de paso alto.
42. El método de conformidad con la descripción de la reivindicación 39, caracterizado porque el componente de paso bajo se determina utilizando un filtro que tiene el valor de -1, 2, 6, 2, -1; el componente de paso alto se determina usando un filtro que tiene el valor de -1, 2, -1; y además incluye una primera operación (g(rl, rh) ) y una segunda operación (f(rl, rh) ) que tiene las funciones como sigue: g(rl, rh) = rh; y f(rl, rh) ) = función máximo entero de (rh + ) , en donde nh = .
43. El método de conformidad con la descripción de la reivindicación 39, caracterizado porque el par de tren de ondas de producto tensorial es de la forma:
44. Un método para codificar un conjunto de datos, en coeficientes de transformación, caracterizado porque comprende transformar el conjunto de datos utilizando una técnica de codificación, y propagar los residuos derivados durante la codificación, desde una primera trayectoria de filtro hasta una segunda trayectoria de filtro del codificador.
45. El método de codificación, de conformidad con la descripción de la reivindicación 44, caracterizado porque además incluye la propagación de los residuos, desde la segunda trayectoria de filtro hasta la primera trayectoria de filtro.
46. El método de codificación, de conformidad con la descripción de la reivindicación 44, caracterizado porque la técnica de codificación es una transformación de tren de ondas de producto tensorial.
47. El método de codificación, de conformidad con la descripción de la reivindicación 44, caracterizado porque la técnica de codificación es una transformación cosenoidal discreta.
48. Un método para la codificación, de un conjunto de datos, caracterizado porque comprende: determinar el primer componente de filtro, del conjunto de datos, en una primera trayectoria de filtro; determinar un segundo componente de filtro, del conjunto de datos, en una segunda trayectoria de filtro; normalizar el primer componente de filtro, para generar una salida normalizada y un residuo; y propagar el residuo hacia la segunda trayectoria de filtro.
49. Un método para estimar los cambios que ocurren entre un primer conjunto de datos y un segundo conjunto de datos, caracterizado porque comprende: generar una región de búsqueda alrededor de un subconjunto de datos, desde uno del primer y segundo conjuntos de datos; aplicar un subconjunto de datos relacionado, del otro del primer y segundo conjuntos de datos, a la región de búsqueda; y trasladar, por incrementos, el subconjunto de datos relacionado, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante incremental.
50. El método para estimar los cambios que ocurren entre un primer conjunto de datos, y un segundo conjunto de datos, de conformidad con la descripción de la reivindicación 49, caracterizado porque además incluye trasladar fraccionalmente el subconjunto de datos relacionado, dentro de la región de búsqueda, hasta una posición que represente un mejor semejante fraccional .
51. Un aparato codificador, caracterizado porque comprende : un dispositivo de transformación, que tiene una entrada configurada para recibir un primer y segundo conjuntos de datos, y que además está configurado para generar una primera y segunda colección de bandas secundarias correspondientes; y un dispositivo para la compensación de movimiento, que tiene una entrada conectada al dispositivo de transformación, configurada para recibir la primera y segunda colección de bandas secundarias, y configurada además para representar eficientemente las diferencias entre la primera y segunda colección de bandas secundarias.
52. El aparato codificador, de conformidad con la definición de la reivindicación 51, caracterizado porque el dispositivo para la compensación de movimiento lleva a cabo todas operaciones en la primera y segunda colección de bandas secundarias, en el dominio de transformación.
53. El aparato codificador, de conformidad con la definición de la reivindicación 51, caracterizado porque además incluye un bloque de diferencias que está configurado para recibir una predicción proveniente del dispositivo para la compensación de movimiento, y la segunda colección de bandas secundarias del dispositivo de transformación, y que está configurado además, para determinar la diferencia entre la predicción y la segunda colección de bandas secundarias, para generar un error de predicción.
54. El aparato codificador, de conformidad con la definición de la reivindicación 51, caracterizado porque el dispositivo para la compensación de movimiento incluye: un dispositivo para la estimación de movimiento, conectado al dispositivo de transformación, configurado para comparar la primera y la segunda colección de bandas secundarias, para generar vectores de movimiento; y un dispositivo para la predicción de movimiento, conectado al dispositivo para la estimación de movimiento y al dispositivo de transformación, configurado para recibir los vectores de movimiento y la primera colección de bandas secundarias, y que está configurado además para generar una predicción de la segunda colección de bandas secundarias.
55. Un aparato codificador, para detectar cambios, caracterizado porque comprende: un dispositivo de transformación, que tiene una entrada configurada para recibir un primer conjunto de datos y un segundo conjunto de datos, y que está configurado además para generar respectivamente, a partir del mismo, una primera colección de bandas secundarias, y una segunda colección de bandas secundarias; y un dispositivo de empacamiento de macrobloques, que tiene una entrada conectada al dispositivo de transformación, y configurada para recibir la primera colección de bandas secundarias y la segundas colección de bandas secundarias, y que está configurado además para generar respectivamente una primera representación en macrobloques de bandas secundarias y una segunda representación en macrobloques de bandas secundarias.
56. El aparato codificador, de conformidad con la definición de la reivindicación 55, caracterizado porque además incluye un dispositivo de ponderación, que tiene una entrada configurada para comunicarse con el dispositivo de empacamiento de macrobloques y configurada para recibir y luego escalar una primera representación en macrobloques de bandas secundarias y la segunda representación en macrobloques de bandas secundarias, en base a una importancia perceptual.
57. El aparato codificador, de conformidad con la definición de la reivindicación 55, caracterizado porque además incluye un dispositivo de detección de cambios, que tiene una entrada configurada para comunicarse con el dispositivo de empacamiento de macrobloques y configurada para comparar la primera representación en macrobloques de bandas secundarias y la segunda representación en macrobloques de bandas secundarias, para determinar los cambios entre las mismas, el dispositivo de detección de cambios está configurado además para generar un agrupamiento con cambios detectados, que refleje los cambios .
58. El aparato codificador, de conformidad con la definición de la reivindicación 57, caracterizado porque además incluye un dispositivo para la clasificación jerárquica en macrobloques, que tiene una entrada conectada al dispositivo de detección de cambios y configurada para clasificar jerárquicamente el agrupamiento con cambios detectados .
59. El aparato codificador, de conformidad con la definición de la reivindicación 57, caracterizado porque la comparación de la primera representación en macrobloques de bandas secundarias, y la segunda representación en macrobloques de bandas secundarias, se basa en una evaluación de la distorsión, de acuerdo con la ecuación general :
60. El aparato codificador, de conformidad con la reivindicación 57, caracterizado porque la comparación de la primera representación en macrobloques de bandas secundarias y la segunda representación en macrobloques de bandas secundarias, se basa en una evaluación de la distorsión, de acuerdo con una ecuación de una forma más específica: e, =WlG-RÍ +Wtk}-R"2
MXPA/A/2000/004526A 1997-11-14 2000-05-10 Aparato y metodo para comprimir informacion de video MXPA00004526A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US60/066,638 1997-11-14

Publications (1)

Publication Number Publication Date
MXPA00004526A true MXPA00004526A (es) 2001-12-13

Family

ID=

Similar Documents

Publication Publication Date Title
US7680191B2 (en) Apparatus and method for compressing video information
JP4966669B2 (ja) マッチング追跡を用いたデータ圧縮
US7792390B2 (en) Adaptive transforms
JP2008289132A (ja) データセットを変換係数に変換する方法
US20060039472A1 (en) Methods and apparatus for coding of motion vectors
JP2004229315A (ja) 直交変換−ドメインブロックマッチングを用いる動き推定
JP2004201315A (ja) 空間スケーラブルな動きベクトルを用いたウェーブレット理論に基づく多重解像度映像表示
MX2008012863A (es) Metodo y aparato de codificacion de video que soporta analisis sintactico independiente.
CN101156454A (zh) 用来压缩多层运动向量的方法与装置
JP2006503518A (ja) 高度にスケーラブルな3次元オーバコンプリート・ウェーブレット・ビデオ符号化
KR20120098500A (ko) 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치
EP1099351B1 (en) Method and apparatus for scalable shape coding
Tsunashima et al. A scalable motion-compensated subband image coder
JP3759537B2 (ja) 画像信号伝送装置及び画像信号伝送方法
MXPA00004526A (es) Aparato y metodo para comprimir informacion de video
Radosavljević A novel algorithm for high bit-depth seismic data compression
Panchanathan et al. Fast multiresolution motion estimation scheme for a wavelet transform video coder
KR101107318B1 (ko) 스케일러블 비디오 인코딩, 디코딩 방법 및 스케일러블 비디오 인코더, 디코더
Yin et al. Directional lifting-based wavelet transform for multiple description image coding
Akujuobi Wavelet Application to Image and Data Compression
KR0185845B1 (ko) 웨이브렛 변환기를 이용한 계층 부호화기
Cai High performance shift invariant motion estimation and compensation in wavelet domain video compression
KR0178204B1 (ko) 대역별 특성을 고려한 패턴 벡터 부호화 시스템 및 그 부호화방법
Rohit Investigation of Some Image and Video Coding Techniques
KR970019567A (ko) 적응적인 영상 부호화 시스템