ES2627556T3 - Método para compresión de datos - Google Patents
Método para compresión de datos Download PDFInfo
- Publication number
- ES2627556T3 ES2627556T3 ES04735836.1T ES04735836T ES2627556T3 ES 2627556 T3 ES2627556 T3 ES 2627556T3 ES 04735836 T ES04735836 T ES 04735836T ES 2627556 T3 ES2627556 T3 ES 2627556T3
- Authority
- ES
- Spain
- Prior art keywords
- sequence
- integer
- frame
- image
- integers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013144 data compression Methods 0.000 title description 9
- 238000011156 evaluation Methods 0.000 claims abstract description 13
- 238000011426 transformation method Methods 0.000 claims abstract description 5
- 230000001131 transforming effect Effects 0.000 claims abstract description 4
- 238000007906 compression Methods 0.000 claims description 42
- 230000006835 compression Effects 0.000 claims description 42
- 238000013139 quantization Methods 0.000 claims description 41
- 230000003044 adaptive effect Effects 0.000 claims description 35
- 230000002441 reversible effect Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 description 19
- 230000033001 locomotion Effects 0.000 description 18
- 230000006837 decompression Effects 0.000 description 15
- 230000000694 effects Effects 0.000 description 14
- 238000013519 translation Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006641 stabilisation Effects 0.000 description 3
- 238000011105 stabilization Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000005309 stochastic process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/507—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Método para comprimir datos de una imagen o trama, cuya imagen o trama es parte de una secuencia de imágenes o tramas, que comprende las etapas de: transformar (10) datos de una imagen o una trama en dicha secuencia en una primera secuencia de números reales utilizando un método de transformación de ondita; cuantizar (12) dicha primera secuencia de números reales de dicha imagen o trama para obtener una primera secuencia de enteros, estando caracterizado el método por que comprende las etapas de: cuantizar (14) dicha primera secuencia de enteros de dicha trama o imagen para producir una segunda secuencia de enteros de dicha imagen o trama para cada entero en dicha segunda secuencia: - utilizando una primera relación entre un entero en dicha primera secuencia de enteros de dicha imagen o trama con un correspondiente entero en una secuencia de referencia de una imagen o trama de referencia; y - utilizando una segunda relación entre dicho entero en dicha primera secuencia de enteros de dicha imagen o trama con un correspondiente entero en una secuencia predicha de enteros, en donde dicha secuencia predicha de enteros se basa en al menos una imagen o trama previa en dicha secuencia de imágenes o tramas; - seleccionando un entero para cada entero en dicha segunda secuencia sobre la base de un valor de evaluación para dicha primera relación, y un valor de evaluación para dicha segunda relación, por cada entero de dicha segunda secuencia de enteros, comparando la primera relación entre el entero de dicha primera secuencia de enteros de dicha imagen o trama y el correspondiente entero de una imagen o trama de referencia y la segunda relación entre dicho entero y el correspondiente entero de la secuencia predicha, utilizando: **Fórmula** c' >= c-p en caso contrario en donde c' es un entero de la segunda secuencia, p es el correspondiente entero de la secuencia predicha, c es el correspondiente entero de la primera secuencia de una imagen o trama actual, y r es el correspondiente entero de una imagen o trama de referencia, y determinando el valor de evaluación para cada relación sobre la base de la respectiva relación en forma codificada, en donde el valor de evaluación para cada relación se ajusta al valor absoluto correspondiente; y**Fórmula** asociando un bit de control que identifica una relación seleccionada; - codificando (16) dichos enteros de dicha segunda secuencia de dicha imagen o trama en una corriente de bits que representa una secuencia comprimida de enteros de dicha imagen o trama.
Description
DESCRIPCIÓN
Método para compresión de datos
Área técnica
La presente invención se refiere en general a métodos de compresión de datos para transmisión en redes de comunicación y, en particular, a un método mejorado para comprimir y descomprimir datos. La invención se refiere 5 además a un medio legible por ordenador que comprende instrucciones para llevar a un ordenador a ejecutar tal método.
Antecedentes de la invención
La compresión y descompresión de datos son buenas técnicas para reducir el ancho de banda o la cantidad de memoria necesarios para llevar o almacenar respectivamente datos, por ejemplo datos de video, es decir, señales 10 de tipo televisión, datos sísmicos o datos de sonido o audio. La compresión elimina típicamente el contenido de información innecesario de la señal. Los métodos bien conocidos de compresión de video incluyen, por ejemplo, compresión por células de color (CCC), compresión del grupo de expertos en fotografía (JPEG) y compresión por codificación de truncado de bloques (BTC). Además, un método de compresión es la codificación por predicción de intertramas que se describe, por ejemplo en el documento de Gunawand D et al: “Adaptive motion-compensated 15 interframe prediction coding using subjective thresholding wavelet transform coefficient”; Singapur ICCS ‘94. Conference Proceedings. Singapur 14-18 de noviembre de 1994, IEEE, US, vol. 3, 14 de noviembre de 1994 (), págs. 1135-1138, xp010150054, ISB: 978-0-7803-2046-8. En la actualidad, la transmisión de datos de video y, en particular, la transmisión de datos de video en directo a través de redes de comunicación inalámbricas, tales como GSM, GPRS y UMTS, y a través de banda ancha es un área de tremendo interés tanto entre usuarios como 20 entre fabricantes de redes y dispositivos de comunicación, tales como sistemas informáticos o teléfonos móviles, así como entre proveedores de servicios de red. Debido, entre otros, a limitaciones de ancho de banda y/o a la capacidad demasiado baja de las redes, especialmente las redes inalámbricas, y puesto que la información de video implica una gran cantidad de datos por imagen o trama de video, la calidad y/o la tasa de transmisión de los datos de video se ve frecuentemente inferida, lo que da como resultado una calidad de imagen inferior en el dispositivo 25 receptor. Esto implica, en particular, a la transmisión de datos de video en directo, por ejemplo, a aplicaciones de vigilancia. Además, es frecuentemente deseable en un sistema informático almacenar información, por ejemplo datos de video, datos de audio o datos sísmicos, en un memoria de ordenador o un disco duro y, por tanto, la compresión es también de elevada importancia en este contexto para reducir la cantidad de memoria requerida. Hay así una necesidad de métodos de compresión que proporcionan compresión adicional con respecto a la de la 30 técnica anterior que permiten una reproducción adecuada de la información transferida, en particular, información de video e información de video en directo.
Breve descripción de la invención
Un objeto de la presente invención es proporcionar un método mejorado para compresión de datos y descompresión de datos en un sistema de comunicación. 35
Estos y otros objetos se consiguen según la presente invención proporcionando métodos, medios legibles por ordenador y sistemas que tengan las características definidas en las reivindicaciones independientes. Las realizaciones preferidas se definen en las reivindicaciones dependientes.
La presente invención se basa en el conocimiento de utilizar la correlación de imágenes o tramas de datos consecutivas, por ejemplo datos sísmicos o información de video. En otras palabras, la presente invención utiliza el 40 hecho de que sólo cuando hay actividad en la corriente de datos, es decir, un cambio de los datos entre dos tramas consecutivas, es necesario actualizar los datos. En el caso de datos de video, un cambio puede corresponder a un movimiento de un objeto vigilado y, en el caso de datos sísmicos, un cambio corresponde a la actividad sísmica en el área vigilada. Cuando no hay ningún cambio de datos entre dos tramas consecutivas, todos los píxeles de las dos tramas corresponderán sustancialmente y, en consecuencia, no se requiere ninguna actualización de los datos 45 transferidos. En consecuencia, la compresión se ajusta a la cantidad de actividad en las tramas. En otras palabras, la compresión es dinámica. Cuando la cantidad de actividad es muy baja, es decir, las tramas consecutivas son más o menos idénticas, la transferencia de datos será baja y, cuando aumente la cantidad de actividad, por ejemplo la actividad sísmica en datos sísmicos o la actividad de movimiento en datos de video, se transfiere una cantidad incrementada de datos. 50
En consecuencia, el método según la presente invención es particularmente útil en la aplicación cuando tienen lugar movimientos sólo en partes menores de la imagen o escena capturada por la unidad de grabación y el fondo de la mayor parte de la imagen es estacionario. Tales condiciones existen en, por ejemplo, aplicaciones de vigilancia, reuniones por video, difusión de noticias, entrevistas o grabaciones que utilizan una cámara móvil portátil que tiene una unidad de estabilización incorporada o similar. 55
Además, el método según la presente invención puede emplearse en otras aplicaciones tales como, por ejemplo, en la compresión de datos sísmicos o la compresión de sonidos o datos de audio. De hecho, el método según la
invención es útil en todas las aplicaciones en las que tienen lugar datos caracterizados por una gran cantidad de correlación.
Como se sabe por la persona experta en la materia, los métodos de la presente invención así como las realizaciones preferidas de la misma son adecuados para materializarse como un programa informático o un medio legible por ordenador, preferiblemente dentro del contenido de un sistema de datos de video. 5
Estas y otras ventajas y aspectos de la presente invención llegarán a ser evidentes a partir de la siguiente descripción detallada y de los dibujos que se acompañan.
Breve descripción de los dibujos
En la siguiente descripción de una realización de la invención, se hará referencia a los dibujos que se acompañan de los cuales: 10
La figura 1 muestra esquemáticamente el flujo de datos en el método para comprimir y descomprimir datos de acuerdo con la presente invención;
La figura 2 muestra esquemáticamente una realización de una parte de compresión de un sistema de compresión de datos de video según la presente invención;
La figura 3 muestra esquemáticamente una realización de una parte de descompresión del sistema de datos de 15 video de la figura 2;
La figura 4 es un diagrama de flujo que ilustra las etapas para realizar las operaciones del bloque de cuantización adaptativa de la parte de compresión mostrada en la figura 2;
La figura 5 es un diagrama de flujo que ilustra las etapas para realizar la operación del bloque de cuantización adaptativa inversa de la parte de descompresión mostrada en la figura 3, y 20
Las figuras 6a y 6b muestran esquemáticamente una realización alternativa según la presente invención que incluye bloques de predicción de movimiento.
Descripción detallada de la invención
A continuación, se discutirán las realizaciones preferidas del método para comprimir datos de video según la presente invención. Se hace referencia ahora a los dibujos, en los que caracteres de referencia iguales designan 25 partes iguales o correspondientes en todas las diversas vistas. Como se menciona anteriormente, el método según la presente invención es particularmente útil en la aplicación en la que tienen lugar movimientos solo en partes menores de la imagen o escena capturada por la unidad de grabación y el fondo de la mayor parte de la imagen es estacionario. Tales condiciones existen, por ejemplo, en aplicaciones de vigilancia, reuniones por video, difusión de noticias, entrevistas o grabaciones que utilizan una cámara móvil portátil que presenta una unidad de estabilización 30 incorporada o similar. Además, el método según la presente invención puede emplearse en aplicaciones distintas de la compresión de video, por ejemplo, en compresión de datos sísmicos o compresión de sonido o datos de audio. De hecho, el método según la invención es útil en todas las aplicaciones en las que tienen lugar datos caracterizados por una gran cantidad de correlación.
Haciendo referencia primero a la figura 1, se mostrará esquemáticamente el flujo de datos en el método para 35 comprimir y descomprimir datos de acuerdo con la presente invención. Las líneas continuas representan flujos reales de datos de aplicación, es decir, los datos que deben comprimirse, las líneas rotas representan flujos de datos de control y las líneas de puntos representan flujos de datos virtuales.
En primer lugar, los datos de entrada, por ejemplo los datos de mapa de bits, que tienen un alto grado de correlación se transforman 10 en un primer grupo de coeficientes, preferiblemente flotantes. A continuación, el primer grupo se 40 cuantifica 12 en un segundo grupo de coeficientes, preferiblemente enteros, utilizando parámetros de entrada estáticos preseleccionados, como se discutirá a continuación. El segundo grupo de coeficientes se cuantifica adaptativamente 14 para obtener un tercer grupo de coeficientes utilizando parámetros dinámicos e información relativa a un grupo predicho de coeficientes que pueden ser los enteros correspondientes de secuencia del grupo de datos previo o una secuencia reconstruida simulada de enteros del grupo previo, como se explicará con más detalle 45 a continuación. Además, los datos de control están asociados con los datos adaptativamente cuantizados. Seguidamente, el tercer grupo de coeficientes se codifica 16 a una corriente de bits que representa los datos de mapa de bits. En la descompresión, la corriente de bits que representa el grupo comprimido de datos de mapa de bits se decodifica 18. A continuación, el grupo de datos decodificados se procesa invirtiendo las etapas de cuantizar adaptativamente 20, cuantizar 22 y transformar 24 utilizando los datos de control, los parámetros estáticos 50 preseleccionados y los parámetros dinámicos, obteniendo así un grupo reconstruido de datos de mapa de bits.
Volviendo ahora a las figuras 2 y 3, se mostrará un sistema de compresión y descompresión de datos según una realización de la presente invención. Este sistema está adaptado para uso en aplicaciones de datos de video. En el sistema, un grabador de video digital 105 está conectado a través de un convertidor de formato de imagen (no
mostrado) a una unidad de ordenador 100 que tiene un dispositivo de almacenamiento de gran capacidad tal como un disco duro. La unidad de ordenador 100 tiene un bloque de compresión 110 que incluye un bloque de transformación 120 y un bloque de procesamiento de compresión 130. Además, el bloque de procesamiento de compresión 130 comprende un bloque de cuantización 140, un bloque de cuantización adaptativa 150 y un bloque de codificación 160. El bloque de procesamiento de compresión 130 está conectado a una unidad de comunicación 5 170, por ejemplo, un módem de sistema operativo o un teléfono móvil que, a su vez, está conectado a una red de comunicación 180. La red de comunicación 180 puede ser un sistema de comunicación inalámbrico tal como el GSM, el UMTS o el GPRS, una red óptica o una red cableada.
Además, con referencia ahora a la figura 3, la unidad de ordenador 100 comprende un bloque de descompresión 210 conectado a la red 180 a través de la unidad de comunicación 170 y que incluye un bloque de reconstrucción o 10 descompresión 220 y un bloque de transformación inversa 230. El bloque de reconstrucción 220 incluye a su vez un bloque de decodificación 240, un bloque de cuantización adaptativa inversa 250 y un bloque de cuantización inversa 260. Una unidad de visualización 270 para presentar datos de video está dispuesta en la unidad de ordenador 100. Además, un convertidor de datos (no mostrado) está dispuesto entre el bloque de cuantización inversa 260 y la unidad de visualización 270 para convertir datos del bloque 260 en un formato que pueda visualizarse en la unidad 15 de visualización 270.
En el sistema de compresión y descompresión de datos de video mostrado en las figuras 2 y 3, los datos de video digital de una trama o imagen se graban por el grabador de video digital 100. El convertidor de formato de imagen convierte los datos de video recibidos en datos de mapa de bits. A continuación, la corriente de datos se transfiere al bloque de transformación de ondita 120, en donde la corriente de datos, es decir, los datos de mapa de bits, se 20 transforma en una secuencia de números reales utilizando un método de transformación por incremento de entropía, por ejemplo, una transformación de ondita. Por motivos de claridad, se supone que una secuencia de datos corresponde a una trama o una imagen. Alternativamente, la corriente de datos puede almacenarse en el almacenamiento de la unidad de ordenador 100.
A continuación, la secuencia de enteros de cada trama se suministra al bloque de cuantización 140 en donde la 25 secuencia se cuantifica utilizando un valor umbral según los métodos conocidos. Se obtiene así una secuencia de enteros. Las funciones y la realización del bloque de transformación y el bloque de cuantización son bien conocidas por el experto en la materia y, por tanto, no se explicarán aquí adicionalmente; véase, por ejemplo, “Fast adaptive wavelet packet image compression”, IEEE Transactions on image processing, 9, págs. 792-800, Meyer, Francois G., Averbuch, Amir Z. y Jan-Olof Strömberg, “A video compression standard for multimedia applications”, 30 Communications of the ACm, 34 (1991(‘), págs. 46-58, Le Gall, Didier o “Low bite-rate efficient compression for seismic data”, IEEE Transactions on image processing, 10 (2001), Meyer, Francois G., Averbuch, Amir Z., Jan-Olof Strömberg, Cofman R. y Vassiliou, A.
Seguidamente, la secuencia de enteros se suministra al bloque de cuantización adaptativa 150 en donde se procesa la secuencia utilizando una cuantización adaptativa y se obtiene una secuencia resultante de enteros para cada 35 trama. La función de este bloque se explicará en detalle en conexión con la figura 4. La salida del bloque de cuantización adaptativa 150 se transfiere al bloque de codificación 160, en donde se codifica la secuencia resultante o la secuencia de diferencia de cada trama utilizando, por ejemplo, una codificación de longitud de recorrido, y se obtiene una corriente de bits que representa la secuencia comprimida de la trama que puede transmitirse a un dispositivo de recepción a través de una red. La función y la realización del bloque de codificación es bien conocido 40 para un experto en la materia y, por tanto, no se explicará aquí adicionalmente, véase, por ejemplo, “Fast adaptive wavelet packet image compression”, IEEE Transactions on image processing 9, págs. 792-800 Meyer, Francois G., Averbuch, Amir Z. y Jan-Olof Strömberg, “A video compression standard for multimedia applications”, Communications of the ACM, 34 (1991), págs. 46-58, Le Gall, Didier o “Low bite-rate efficient compression for seismic data”, IEEE Transactions on image processing, 10 (2001), Meyer, Francois G., Averbuch, Amir Z., Jan-Olof 45 Strömberg, Cofman R. y Vassiliou, A.
A continuación, la corriente de bits de cada trama puede transferirse a la unidad de comunicación 170 para la transferencia posterior a través de la red de comunicación 180 a una unidad de recepción que puede ser una unidad de ordenador como la unidad de ordenador anteriormente mencionada 110 o puede almacenarse en el almacenamiento de la unidad de ordenador 100 como una representación comprimida de la secuencia de la trama. 50
De manera similar, pero sin embargo en orden inverso, puede descomprimirse una corriente de bits que representa una secuencia comprimida de enteros de una trama. Al recibir una corriente de bits que representa una secuencia comprimida de enteros de una trama de datos de video, cuya secuencia se ha transferido a través de la red de comunicación 180 o se ha retirado del almacenamiento de la unidad de ordenador 100 para la descompresión posterior, la corriente de bits se alimenta al bloque de decodificación 240 del bloque de reconstrucción 220. En el 55 bloque de decodificación 240, la corriente de bits de cada trama se decodifica utilizando un método de decodificación correspondiente al inverso del método de codificación del bloque de codificación y se obtiene una secuencia de enteros que corresponde a la secuencia resultante. La función y la realización del bloque de decodificación son bien conocidas por un experto en la materia y, por tanto, no se explicarán aquí adicionalmente; véase, por ejemplo, “Fast adaptive wavelet packet image compression”, IEEE Transactions on image processing 9, 60 págs. 792-800 Meyer, Francois G., Averbuch, Amir Z. y Jan-Olof Strömberg, “A video compression standard for
multimedia applications”, Communications of the ACm, 34 (1991(‘), págs. 46-58, Le Gall, Didier o “Low bite-rate efficient compression for seismic data”, IEEE Transactions on image processing, 10 (2001), Meyer, Francois G., Averbuch, Amir Z., Jan-Olof Strömberg, Cofman R. y Vassiliou, A.
A continuación, la secuencia decodificada de enteros se envía al bloque de cuantización adaptativa inversa 250 en donde la secuencia se procesa utilizando una cuantización adaptativa inversa a fin de obtener una secuencia 5 reconstruida de enteros para cada trama. Esta secuencia reconstruida corresponde a la secuencia de enteros obtenida después de la cuantización en bloque 140. La función de este bloque se explicará con detalle en conexión con la figura 5. La salida del bloque de cuantización adaptativa inversa 250 se transfiere al bloque de cuantización inversa 260, en donde la secuencia reconstruida de cada trama se cuantifica inversamente utilizando el valor umbral según los métodos conocidos. La función y la realización del bloque de cuantización son bien conocidas por una 10 persona experta en la materia y, por tanto, no se explicarán aquí adicionalmente; véase, por ejemplo, “Fast adaptive wavelet packet image compression”, IEEE Transactions on image processing 9, págs. 792-800 Meyer, Francois G., Averbuch, Amir Z. y Jan-Olof Strömberg, “A video compression standard for multimedia applications”, Communications of the ACm, 34 (1991(‘), págs. 46-58, Le Gall, Didier o “Low bite-rate efficient compression for seismic data”, IEEE Transactions on image processing, 10 (2001), Meyer, Francois G., Averbuch, Amir Z., Jan-Olof 15 Strömberg, Cofman R., y Vassiliou, A.
A continuación, la secuencia inversamente cuantizada se envía al bloque de transformación inversa 230 en donde la secuencia se transforma inversamente utilizando un método de transformación por incremento de entropía inverso, por ejemplo, una transformación de ondita inversa. Se obtiene así una secuencia reconstruida de número real correspondiente a la secuencia de números reales entregada desde el bloque de transformación 120. Las funciones 20 y la realización del bloque de transformación inverso son bien conocidas para una persona experta en la materia y, por tanto, no se explicarán aquí con más detalle; véase, por ejemplo, “Fast adaptive wavelet packet image compression”, IEEE Transactions on image processing 9, págs. 792-800 Meyer, Francois G., Averbuch, Amir Z. y Jan-Olof Strömberg, “A video compression standard for multimedia applications”, Communications of the ACm, 34 (1991(‘), págs. 46-58, Le Gall, Didier o “Low bite-rate efficient compression for seismic data”, IEEE Transactions on 25 image processing, 10 (2001), Meyer, Francois G., Averbuch, Amir Z., Jan-Olof Strömberg, Cofman R. y Vassiliou, A.
A continuación, la secuencia de números reales se convierte en un formato de imagen que puede reproducirse por la unidad de visualización en el convertidor de datos, es decir, los datos del mapa de bits reconstruido.
El método para la compresión y descompresión de acuerdo con la presente invención se realiza preferiblemente en tiempo real (25 tramas/segundo) para video de color de 24 bits de un tamaño de 352X240. El método según la 30 invención puede implementarse fácilmente en, por ejemplo, hardware corriente, tal como un ordenador o similar. Por ejemplo, el método puede implementarse en un programa informático. En general, utilizando un tamaño de trama de 288X360, se transfieren aproximadamente 100 bytes/trama cuando no tiene lugar ningún movimiento. Los movimientos medios de tamaño medio pueden requerir 300-400 bytes/trama y los grandes movimientos pueden requerir hasta 1000 bytes/trama. 35
Utilizando el método según la presente invención en la red GSM, es posible una tasa de transmisión de 19200 b/s que con 6 tramas/segundo corresponde a 400 bytes/trama. En consecuencia, si se permite un desplazamiento de tiempo de unos pocos segundos en la transmisión, pueden permitirse 400 bytes/trama de promedio. Si la actividad de movimiento es baja, cada trama requerirá mucho menos de 100 bytes en el tamaño de pantalla de un teléfono móvil. Si aumenta la actividad de movimiento, la calidad de la imagen puede reducirse a fin de compensar la 40 cantidad incrementada requerida de bytes/trama.
Con referencia ahora a la figura 4, las operaciones del bloque de cuantización adaptativa se explicarán por medio de un diagrama de flujo. Para secuencias de video en las que la cámara o unidad de grabación está inmóvil o estacionaria o tiene una unidad de estabilización incorporada durante el período de grabación, los coeficientes de una imagen o trama pueden predecirse frecuentemente muy bien por los coeficientes correspondientes de la imagen 45 previa. En consecuencia, si no ha ocurrido ningún cambio entre dos imágenes consecutivas, los coeficientes correspondientes de las dos imágenes serán idénticos. Si no han tenido lugar movimientos o desplazamientos, para elaborar la diferencia entre los coeficientes correspondientes de las dos imágenes consecutivas será cero o por lo menos muy pequeña puesto que hay siempre una cierta cantidad de ruido presente que puede provocar pequeñas diferencias. En general, por ejemplo, cuando se utilizan cámaras de vigilancia para controlar un área, por ejemplo, 50 un almacén, una fábrica, una oficina y similar, una gran parte de los coeficientes son invariables entre dos tramas consecutivas puesto que la vigilancia se realiza frecuentemente durante el horario nocturno cuando, durante la mayor parte del tiempo, es insignificante la actividad de movimiento de tales áreas.
En funcionamiento, una secuencia de enteros de la trama actual es introducida 300 en el bloque 150. En un bloque 310, una secuencia predicha de enteros se determina y se almacena. Esta secuencia predicha puede ser, por 55 ejemplo, los enteros correspondientes en una secuencia de una imagen previa. De hecho, en caso de que los correpondientes enteros estén en la secuencia de una imagen previa, esto es una secuencia reconstruida simulada de enteros de la trama previa. Por ejemplo, esta simulación puede implementarse integrando un bloque de decodificación similar al bloque de decodificación 240 en el bloque 150. Este bloque de decodificación procesa la corriente de bits entrante de una trama de una manera similar a cómo el bloque de decodificación 240 procesará la 60
corriente de bits recibida que representa la trama y, en consecuencia, obtendrá exactamente la misma secuencia de enteros decodificados que el bloque de decodificación 240.
Además, si se utiliza una trama de fondo/referencia, una secuencia de referencia que representa esta trama se almacena también en este bloque.
A continuación, en el bloque 320, cada coeficiente de la secuencia predicha se compara con el coeficiente o 5 correspondiente entero de la secuencia actual y, si fuera necesario, con el correspondiente coeficiente de la secuencia de referencia según lo siguiente:
c’ = c-r si p = r o c-r/p-r < ½ (1)
c’ = c-p en caso contrario,
en donde c es un coeficiente o un entero de la secuencia de la trama actual, r es el correspondiente coeficiente de 10 referencia de la trama de referencia y p es el coeficiente predicho correspondiente. Si la trama de referencia es una imagen negra, el coeficiente de referencia será 0. Seguidamente, se realiza un proceso de selección en donde se estima la longitud de código de cada coeficiente c’ y se selecciona el coeficiente que da como resultado el código más corto para cada posición en una secuencia resultante. A este fin, se determina un valor de evaluación para cada coeficiente c’ y, en esta realización, el valor absoluto se determina para cada coeficiente c’ y se selecciona el 15 coeficiente c’, que tiene el valor absoluto mínimo, para una secuencia de diferencia.
Es necesario proporcionar el algoritmo de reconstrucción o el bloque de reconstrucción 220 con información relativa a la selección del coeficiente de c’ y para cada coeficiente el bloque de reconstrucción tiene acceso al valor predicho que se ha calculado a partir de los enteros cuantizados previamente reconstruidos mantenidos o almacenados en el bloque de predicción 430 (véase la figura 5) excepto en el caso de que: 20
y (2) rp.2321rprc
En tales casos, el bloque de reconstrucción 220 tiene que ser notificado o informado de si se ha seleccionado el coeficiente de la secuencia actual o la diferencia entre el coeficiente actual y el coeficiente predicho. Para esta finalidad, en el bloque 330, se genera un bit de control que contiene información de la selección en el bloque 320. El bloque de reconstrucción o descompresión 220 es capaz así de identificar qué relación se ha seleccionado entre el 25 entero de la secuencia de la trama actual, el coeficiente de referencia correspondiente de la trama de referencia y el coeficiente predicho correspondiente.
Los bits de control son de hecho una serie de enteros, unos o ceros, y se comprimirán de la misma manera que la secuencia de diferencia, con la excepción de que no son necesarios bits de signo que indiquen el signo del entero. Puesto que sólo se incluyen en los bits de control unos y ceros, la codificación de los bits de control utilizada es una 30 codificación de longitud de recorrido.
La selección de predicción que ocurre en el bloque 150 se basa en ciertas reglas, por ejemplo, las reglas antes mencionadas expresadas por las relaciones (1) y (2). Como se indica anteriormente, el bloque de reconstrucción no tiene información relativa a la selección sino a las reglas o las relaciones que regulan el proceso de selección.
A continuación, en el bloque 340, se codifican pequeñas variaciones en los coeficientes en la secuencia de 35 diferencia provocada por el ruido incluida en los datos que representan una imagen o trama que se manifiesta así en pequeñas variaciones en los coeficientes. El ruido es creado, entre otros, por pequeños cambios en las condiciones de luz y en el ruido de señal de la cámara. Si se satisface la siguiente expresión
<T1 (3) sdiferencia
en donde las diferencias son los coeficientes de la secuencia de diferencia y T1 es el valor umbral, el coeficiente 40 debe ajustarse a cero. El valor umbral es preferiblemente igual a uno, pero son posibles otros enteros, por ejemplo 2, 3, 4 o 5. Si los coeficientes en la secuencia de diferencia, es decir, la diferencia entre el valor predicho y el valor presente es menor que T1, se asume que la predicción es la trama precedente. Esto implica así que no es necesario un bit de control y, a fin de mantener sincronizada la secuencia de bits de control, es importante no enviar el bit de control asociado con el presente coeficiente, que se realiza en el bloque 350. Realizando ensayos con la cámara 45 utilizada en el sistema puede seleccionarse un T1 adecuado. Si la cámara produce una gran cantidad de ruido, T1 puede ajustarse a un valor más alto. Igualmente, si se esperan condiciones de luz con brillo variable. La desventaja con el ajuste de T1 a un valor alto es que pueden ocurrir retrasos, que pueden manifestarse como una “sombra” después de objetos que se muevan en la imagen o trama. Preferiblemente, T1 se ajusta a 2 o 3.
A continuación, en el bloque 360, se realiza una limitación de cantidad de bytes en la secuencia. A este fin, se utiliza 50 un valor umbral T2 y, preferiblemente:
T2≥1. (4)
Si T2=1, no ocurrirá ninguna limitación, y si T2>1 se abreviará el código entregado por el codificador. Un valor T2 más alto implica un código más corto. En la práctica, el procedimiento de limitación funciona como sigue. Se supone que d es un entero de la secuencia de diferencia, uid su representación de bits (como un entero positivo), uiT2 la representación de bits de T2 (como un entero positivo) y ui1.0 es la representación de bits del flotante 1.0 (como un 5 entero positivo). Por ejemplo, si el valor binario de ui1.0 es 00111111100000000000000000000000 y d ≥ T2, d se sustituirá por d1 redondeado a un entero, en donde:
uid1 = uid – (uiT2 – ui1.0). (5)
uid1 como una corriente de bits representa un número de flotante próximo a d. Este número de flotante se redondea al entero más próximo, d1. En consecuencia, d1 será un entero próximo a d. 10
Si d ≤ -T2, ocurrirá lo correspondiente utilizando en cambio –d, y el signo se cambia a un entero negativo. Si │d│≤T2, d se sustituye por cero.
El resultado de este procedimiento es que se reduce la cantidad de enteros, es decir, los enteros se hacen más escasos cuanto mayor sea T2. La selección del valor umbral T2 puede realizarse automáticamente cuando se ajuste un límite superior de la cantidad de bytes para cada trama. 15
En la práctica, esta etapa 360 se realiza en el bloque de codificación 160. En principio, el método se realiza de acuerdo con lo siguiente. Se selecciona un valor umbral anterior. A continuación, se simula la codificación de una manera que, por ejemplo, pueda contarse el número de bits codificados; no se calcula ni se cuenta la corriente de bits. Se supone que el número de bits se reduce con un valor umbral creciente. En la etapa 1, los valores umbral se incrementan (o decrementan) con un factor de 2 escalonadamente hasta un valor umbral que proporciona un 20 número menor de bits que el demandado y esa mitad del valor umbral proporciona más bits que lo demandado.
Utilizando estos valores umbral y el número correspondiente de bits, se interpola un nuevo valor umbral en la etapa 2, cuyo nuevo valor corresponde al número demandado de bits. A continuación, en la etapa 3, se calcula el número de bits del nuevo valor umbral que puede ser mayor, menor o igual que el número demandado. En la etapa 4, utilizando estos valores umbral y el número correspondiente de bits, se interpola un valor umbral adicional. Las 25 etapas 3 y 4 se repiten hasta que el número calculado de bits de un valor umbral esté dentro de un margen de tolerancia preajustado del número demandado de bits o hasta que se haya realizado un número máximo preajustado de iteraciones.
Así, en el bloque 350, los bits de control se sincronizan a fin de enviar solamente los bits de control necesarios. Como se menciona anteriormente, ciertos bits de control pueden llegar a ser innecesarios como resultado del 30 procesamiento en el bloque 340.
Opcionalmente, puede utilizarse un bloque de disparo de baja actividad 370. Si la actividad de movimiento de la escena de video es muy baja, es decir, el área que vigila el grabador, puede enviarse un byte igual a cero para cada trama de movimiento bajo de este tipo. Esto puede utilizarse, por ejemplo, para desconectar la transmisión cuando se utiliza un teléfono móvil como módem, y cuando aumenta la actividad de movimiento en el área vigilada, el 35 teléfono se conecta y se reanuda la transmisión. Esto puede materializarse colocando un parámetro que tiene la longitud más corta en la longitud de byte del código que representa una trama. Si el código que se produce por el bloque de codificación 160 no excede la longitud del parámetro, el código no se envía y las predicciones no se actualizan. Esto significa que las predicciones fijadas se utilizan hasta que se consiga una cantidad suficiente de bytes. En otras palabras, el codificador está “durmiendo”, pero procesa constantemente los datos entrantes. 40 Finalmente, la secuencia cuantizada de enteros 380 y los bits de control asociados 390 se entregan al bloque de codificación 160 y, a continuación, además a un receptor a través de la red de comunicación.
Con referencia ahora a la figura 5, las operaciones del bloque de cuantización inversa 250 se explicarán por medio de un diagrama de flujo. Como se indica por 400 la secuencia decodificada de enteros (para cada trama), es decir, la secuencia comprimida de enteros y, si los hubiera, los bits de control asociados 405, se introducen en el bloque 250 45 procedentes, por ejemplo, del almacenamiento de la unidad de ordenador 100 o en la recepción a través de la red de comunicación 180.
En funcionamiento, en el bloque 410, se selecciona una predicción. Esto es, si p = 0 o c/p < ½, un coeficiente de la secuencia decodificada c’ es sustituido por c-r, si la trama de referencia es una imagen negra, el coeficiente de referencia r será 0 y, en caso contrario, c’ se sustituye por c - p. Los bits de control, como se indica anteriormente, 50 son necesarios cuando aplica la relación (2), es decir, aplica lo siguiente
y 2321rprc
En tales casos, como se menciona anteriormente, el bloque de reconstrucción 220 tiene que ser notificado de si se ha seleccionado el coeficiente de la secuencia actual o la diferencia entre el coeficiente actual y el coeficiente predicho, lo cual es correspondientemente cumplimentado por los bits de control.
La selección de predicción que tiene lugar en el bloque 150 se basa en ciertas reglas, por ejemplo, las reglas antes mencionadas expresadas por las relaciones (1) y (2). Como se indica además anteriormente, el bloque de 5 reconstrucción no tiene información relativa a la selección sino a las reglas o relaciones que regulan el proceso de selección. Sin embargo, para cada predicción y la diferencia recibida, es decir, la secuencia comprimida de enteros, el bloque 220 puede examinar lo que sería el entero de la secuencia actual y si la selección de la predicción es consistente con el grupo predeterminado de reglas, por ejemplo se utilizan las relaciones (1) y (2). Para esta finalidad hay tres posibilidades: 10
1. Hay varias selecciones de predicción consistentes en cuyo caso se requiere información adicional en forma de bits de control.
2. Hay solo una selección de predicción consistente en cuyo caso no se requiere ninguna información adicional.
3. No hay ninguna selección de predicción consistente. Se supone que esta alternativa no ocurre si el bloque 150 sigue el grupo implementado de reglas. 15
En la realización anteriormente descrita, la primera alternativa está presente cuando aplica la relación (2). Todos los datos requeridos en el bloque 410 se recuperan de un bloque de predicción 430.
A continuación, en el bloque 420, los coeficientes de la secuencia decodificada se sustituyen según
c = c’+r si o (6) rp,21rprc
c = c’+r en caso contrario 20
donde c’ es un entero de la secuencia comprimida, r es el correspondiente entero de la trama de referencia y c es el correspondiente entero de la secuencia reconstruida que representa la primera secuencia de la trama actual. Se obtiene así una secuencia reconstruida de enteros que corresponde exacta o aproximadamente a la secuencia introducida en el bloque de compresión 130. Esta información de secuencia reconstruida es también suministrada 450 al bloque de predicción 430 donde, entre otros, se almacenan la predicción de la última trama y, si la hubiera, 25 una trama de referencia, es decir, una predicción de fondo. En consecuencia, todos los datos requeridos en los bloques 410 y 420 se recuperan del bloque 430.
Si se utiliza una predicción de fondo, se realiza una actualización de fondo en el bloque 440 según lo siguiente. Se ajusta un parámetro N. Si el valor del entero cuantificado reconstruido, a, de un coeficiente de la trama actual no es igual al valor correspondiente de la trama de fondo/referencia, y si a no ha cambiado en las últimas N tramas, el 30 fondo o, de hecho, la secuencia de fondo, se actualiza con a y se transfiere en 460 al bloque 430.
Finalmente, la secuencia cuantizada reconstruida de enteros se entrega en 470 al bloque de transformación inversa 230.
El principio general para la manipulación de predicciones en el bloque de cuantización adaptativa 150 y el bloque de cuantización adaptativa inversa 250 se discutirá posteriormente. 35
Una predicción puede ser para una trama completa de coeficientes (QI) o para un subgrupo de la trama. Puede haber varias predicciones al mismo tiempo. Esto significa que puede haber un número diferente de predicciones para los coeficientes individuales. Las predicciones para diferentes coeficientes se manipulan por separado, excepto en algunos casos en los que no hay ninguna elección óptima de predicción. En estos casos, debería minimizarse la información extra, es decir, los bits de control, que tiene que transferirse. Para cualquier coeficiente fijo ci, se tiene un 40 grupo de predicciones. Esto es, un grupo de valores de entero predichos . kkip}{
Las predicciones que están próximas una a otra se agruparán primero conjuntamente. Este procedimiento es controlado por un parámetro de entero T0>0. A continuación, un subgrupo de prediccionesse identifica, de tal manera que skip}{kkip}{
(7) 45
y que para cada predicción hay una predicción en el subgrupo, de tal manera que kipsip
(8)
Este subgrupo de predicción se ordena como un grupo ordenado de enteros.
(9)
donde el número n=n(i) puede diferir de coeficiente a coeficiente.
A continuación, se realiza la selección primaria de valores de predicción. Si ci es el coeficiente que está codificado, 5 se utiliza la predicción que minimizará la expresión . Es una predicción singular que minimiza esta expresión excepto en el caso de que el valor de coeficiente ci esté exactamente en el centro de dos predicciones, en cuyo caso =. En este caso, la selección entre la predicción y se da en una selección secundaria que se describirá a continuación. sipsiipcsiipc1siipc1sip
El valor ATQI sin pérdidas (entero cuantizado adaptativo) es di = ci - donde es el valor de predicción 10 seleccionado para los coeficientes ci. Es posible reconstruir exactamente el valor ci a partir del entero ATQI di siempre que se conozcan las predicciones y se conozca la predicción que se eligió. siipsiip
El valor ADQUI puede ser igual al valor di anterior, pero en su lugar puede ser una aproximación del valor. Esto es controlado por dos parámetros T1 y T2 que se incorporan a fin de controlar un límite superior de la corriente de bits a partir del codificador. Cuando <T1, se establece =0. A continuación, se realiza otra cuantización de 15 modo que donde es el grupo de todos los enteros. La aproximación se da de tal manera que 0≤/di cuando di≠0. Con el valor ATQI se puede reconstruir un valor aproximado del valor de coeficiente ci siempre que se conozca la selección de la predicción. id~id2TZ2TZic
(10)
Una vez que se conocen el valor y el grupo de predicciones pueden excluirse algunas de las 20 predicciones como predicciones no admisibles puesto que conducirán a una contradicción con la regla de selección primaria: niiippp...21
(11)
Esto implica que puede no ser una predicción seleccionada posible. Se supone que es la predicción seleccionada, entonces 25 sipsip
(12)
y así
(13)
lo que significa que la predicción no proporciona el valor mínimo y, por tanto, no debería haberse seleccionado según la regla de selección primaria descrita anteriormente. En el caso de que < 0, una predicción es no 30 admisible si
(14).
De nuevo, esto implica que puede no ser una de las posibles predicciones seleccionadas.
Una vez que se conocen la lista de predicciones {}s y el valor ATQI di, puede encontrarse el número ad(i) de predicciones admisibles. El número ad(i) se calculará tanto en el bloque de cuantización adaptativa 150 como en el bloque de cuantización adaptativa inversa 250. sip
La información de la selección de predicciones es una información sobre las selecciones que informa a cada 5 coeficiente (indexado con i) de cuál de las ad(i) predicciones admisibles fue utilizada. Esto se hace, por ejemplo, por codificación de longitud de recorrido iterativa, similar a la codificación de longitud de recorrido de los valores de coeficiente, en donde los coeficientes se dividen en grupos según en qué intervalo diádico los coeficientes tengan sus valores. Cuando se codifica la información I de cuáles de las predicciones admisibles fueron seleccionadas, la función ad(i) limita el número de posibles selecciones para cada coeficiente. 10
Siendo s(i) el índice para cuya predicción se seleccionó el coeficiente ci, entonces, siendo 1≤s(i)≤ad(i) se cumple que Sk = {I, s(i) = k}. Entonces {Sk}k≤1 es una colección de un grupo disjunto de índices para los coeficientes de la trama de modo que su unión es el grupo S de índices de todos los coeficientes. Los bits de control tienen que transmitir la información de todos estos grupos Sk como subgrupos de S. Siendo
(15) 15
y
Ek = {iDk} de tal manera que a(i) > k} (16)
y Fk = Dk\Ek (17).
No es necesaria una inducción sobre k≤1 que comience con k = 1. Se tiene
D1 = S (18) 20
y para k = 1, 2, 3, …se tiene
Fk = {iDk} de tal manera que a(i) = k} (19)
Ek=Dk\Fk (20)
y se utiliza la codificación de longitud de código para encontrar
Dk+1 como un subgrupo de Ek. 25
Esto se continúa para incrementar enteros k a fin de obtener Dk+1 como un subgrupo de Dk siempre y cuando Dk no sea el grupo vacío.
Finalmente, se obtiene
Sk = Dk+1\Dk (21)
En el caso de que haya dos elecciones óptimas de las mejores predicciones y se realiza una selección 30 secundaria entre estas dos predicciones. En esta selección secundaria, se minimiza la longitud de recorrido utilizada en la codificación de longitud de recorrido iterativa descrita anteriormente. La estrategia es obtener secuencias tan largas como sea posible con el mismo bit (0 o 1). Haciendo esto, se obtiene un índice de predicción tan próximo como sea posible al de los coeficientes precedentes. Esto es 1sip
s(i) = {t{s,s+1} que minimiza }. 35 )1(ist
Según una realización alternativa del método de acuerdo con la presente invención, pueden incluirse bloques de predicción de movimiento a fin de mejorar la calidad de los datos comprimidos y descomprimidos cuando, por ejemplo, se reduce el grado de correlación debido a vibraciones de la unidad de grabación o cuando los objetos se están moviendo en el espacio de grabación, es decir, un coche conducido a través de la escena de video.
De acuerdo con la realización anteriormente descrita, se utiliza realmente una predicción denominada autónoma. Se 40 basa en que se utiliza exactamente el mismo algoritmo en el lado de compresión y en lado de descompresión. Este algoritmo es determinístico, es decir, no se implica ningún proceso estocástico, de modo que la entrega de las predicciones en el lado de cuantización adaptativa, es decir, la salida del bloque de cuantización adaptativa 150, y el lado de cuantización adaptativa inversa, es decir, la salida del bloque de cuantización adaptativa inversa 250 serán
idénticas. En consecuencia, no necesita transmitirse ninguna información de predicción, excepto en que el bloque de descompresión tiene que conocer qué algoritmo se utiliza. Hay que hacer notar que no se permite que el algoritmo de predicción autónoma utilice cualquier información procedente de la trama actual que está a punto de comprimirse.
Un ejemplo de predicción autónoma es la predicción a cero: todos los valores de coeficiente se predicen a cero. Otro ejemplo es la última predicción de trama: los coeficientes predichos se ajustan a los enteros cuantizados 5 reconstruidos de la última trama.
Con referencia ahora a las figuras 6a y 6b, se muestra una realización alterantiva que incluye bloques de predicción de movimiento. Un primer bloque de predicción controlada de parámetro 610 y un bloque de estimación de parámetro de predicción 620 están incluidos en el bloque de procesamiento de compresión 130 en el bloque de cuantización adaptativa 150, véase la figura 6a, y un segundo bloque de predicción controlada de parámetro 630 10 está incluido en el bloque de descompresión 220 en el bloque de cuantización adaptativa inversa 250. La predicción consta de dos etapas. En primer lugar, los parámetros que deben utilizarse en la segunda etapa se estiman en el bloque 620. Puede utilizarse cualquier información basada en el historial de las tramas anteriores así como la información procedente de la trama actual, es decir, los enteros cuantizados como se indica por 680. Una vez que se han estimado los parámetros, estos se envían (indicado por 640) junto con los bits de control (indicado por 650) al 15 bloque de cuantización adaptativa inversa 250. La segunda etapa es un algoritmo que se ejecuta paralelamente en los bloques primero y segundo 610 y 630 de predicción controlada de parámetro utilizando, respectivamente, los parámetros estimados 640 y las salidas de 660 del bloque de cuantización adaptativa 150 y la salida 670 del bloque de cuantización adaptativa inversa 250, respectivamente. No se utiliza ninguna información procedente de la trama actual excepto la información dada por los parámetros estimados 640. Un ejemplo de la predicción controlada de 20 parámetro es la predicción de traslación global. La trama actual se hace coincidir con la última trama trasladando la última trama y obteniendo el parámetro de traslación que describe la traslación que proporciona la mejor coincidencia. A continuación, se reconstruye la última trama a partir del último grupo de enteros cuantizados reconstruidos, la imagen o trama se traslada y se construye un nuevo grupo de enteros cuantizados de la imagen trasladada. Este nuevo grupo de enteros cuantizados de la última trama trasladada se utiliza a continuación como 25 valores de predicción.
En esta realización, uno de los algoritmos implementados en los bloques primero o segundo 610, 630 de predicción controlada de parámetro debe tener conocimiento de la ordenación geométrica de los enteros cuantizados y los algoritmos de ondita que se utilizaron en el preprocesamiento a fin de hacer estas transformaciones hacia atrás en una imagen y, a continuación, – después de encontrar la mejor traslación – hacer el cálculo de los nuevos enteros 30 cuantizados.
Con esta predicción de traslación global, se realiza una mejor compresión de, por ejemplo, una secuencia de video tomada por una cámara portátil (no estabilizada).
El uso de la predicción de traslación global en conjunción con la predicción autónoma proporciona una manera efectiva de codificar un objeto móvil sobre un fondo fijo – siempre que el valor de parámetro de traslación 35 corresponda al movimiento del objeto desde la última trama hasta la trama actual. No se requiere información relativa a la forma del objeto.
Puede incluirse también una transformación afín global – ésta manipularía las secuencias de video con rotaciones y efectos zoom.
Las predicciones de traslación autónomas locales pueden utilizarse también – cuando los parámetros de traslación 40 se basan en estimaciones de imágenes reconstruidas coincidentes procedentes del último grupo de enteros cuantizados reconstruidos y grupos anteriores de enteros cuantizados reconstruidos. Es local en el sentido de que la trama puede dividirse en cajas locales para las cuales se estiman individualmente los parámetros y a continuación se extrapola la traslación anticipada. Hay que hacer notar que puede haber un número de parámetros de traslación locales, pero se generan en cada lado, es decir, en el bloque de cuantización adaptativa o el bloque de cuantización 45 adaptativa inversa, por separado.
El cálculo de coincidencia puede realizarse según lo siguiente. Se supone que la imagen es una matriz en la que f es la matriz actual, g la matriz a hacer coincidir y xB es una función de índice para la caja local B. Se minimiza la expresión:
(22) 50
en donde x son coeficientes de la trama actual e y son coeficientes de la última trama. Esto puede hacerse calculando:
(23)
y las convoluciones y, en donde . Las convoluciones se realizan como multiplicación en el lado de la transformada de Fourier. Utilizando el algoritmo de transformada rápida de Fourier, puede hacerse el cálculo en el orden de las etapas N*logs(N), donde N es el número de elementos en la matriz. Este procedimiento de coincidencia es bien conocido por el experto en la materia. )(~*)(ygfB)(~*)(2ygB)()(~xgxg
A fin de ocuparse del problema de condiciones de luz parpadeante puede calcularse un valor de datos medio para la 5 trama actual. Este es un proceso previo realizado antes de que se obtengan los enteros cuantizados. En el caso de coeficientes de onditas, esto puede realizarse fácilmente utilizando métodos conocidos por el experto en la materia. A continuación, se realiza una calibración multiplicativa modificando el umbral antes de la cuantización. Según un método alternativo para ocuparse del problema de condiciones de luz parpadeante, puede realizarse una traslación global con un factor multiplicativo. La expresión 10
(24)
donde f es la trama actual, g es la última trama, x son los coeficientes de la trama actual e y son los coeficientes de la última trama, se extiende sobre los vectores de traslación y y los factores multiplicativos a. Se obtiene el máximo cuando a = amin(y).
(25) 15
donde . Insertando a = amin(y) en (24) se proporciona )()(~xgxg
(26)
Finalmente, la expresión m(y,amin(y)) se extiende sobre los vectores de traslación y.
Claims (11)
- REIVINDICACIONES1. Método para comprimir datos de una imagen o trama, cuya imagen o trama es parte de una secuencia de imágenes o tramas, que comprende las etapas de:transformar (10) datos de una imagen o una trama en dicha secuencia en una primera secuencia de números reales utilizando un método de transformación de ondita; 5cuantizar (12) dicha primera secuencia de números reales de dicha imagen o trama para obtener una primera secuencia de enteros, estando caracterizado el método por que comprende las etapas de:cuantizar (14) dicha primera secuencia de enteros de dicha trama o imagen para producir una segunda secuencia de enteros de dicha imagen o trama para cada entero en dicha segunda secuencia:- utilizando una primera relación entre un entero en dicha primera secuencia de enteros de dicha imagen 10 o trama con un correspondiente entero en una secuencia de referencia de una imagen o trama de referencia; y- utilizando una segunda relación entre dicho entero en dicha primera secuencia de enteros de dicha imagen o trama con un correspondiente entero en una secuencia predicha de enteros, en donde dicha secuencia predicha de enteros se basa en al menos una imagen o trama previa en dicha secuencia de 15 imágenes o tramas;- seleccionando un entero para cada entero en dicha segunda secuencia sobre la base de un valor de evaluación para dicha primera relación, y un valor de evaluación para dicha segunda relación, por cada entero de dicha segunda secuencia de enteros, comparando la primera relación entre el entero de dicha primera secuencia de enteros de dicha imagen o trama y el correspondiente entero de una 20 imagen o trama de referencia y la segunda relación entre dicho entero y el correspondiente entero de la secuencia predicha, utilizando:c’ = c-r si p = r o, 21rprcc’ = c-p en caso contrarioen donde c’ es un entero de la segunda secuencia, p es el correspondiente entero de la secuencia predicha, 25 c es el correspondiente entero de la primera secuencia de una imagen o trama actual, y r es el correspondiente entero de una imagen o trama de referencia, y determinando el valor de evaluación para cada relación sobre la base de la respectiva relación en forma codificada, en donde el valor de evaluación para cada relación se ajusta al valor absoluto correspondiente; ysi p ≠ r y, 30 2321rprcasociando un bit de control que identifica una relación seleccionada;- codificando (16) dichos enteros de dicha segunda secuencia de dicha imagen o trama en una corriente de bits que representa una secuencia comprimida de enteros de dicha imagen o trama.
- 2. Método según la reivindicación 1, en el que la etapa de seleccionar comprende la etapa de seleccionar la relación que tiene el valor absoluto más bajo. 35
- 3. Método según cualquiera de las reivindicaciones anteriores, que comprende además la etapa de:almacenar dicha corriente de bits como una representación comprimida de dicha secuencia de dicha imagen o trama.
- 4. Método según una cualquiera de las reivindicaciones anteriores, que comprende además descomprimir dicha secuencia comprimida invirtiendo las etapas de transformar, cuantizar dicha primera secuencia de números 40 reales, cuantizar dicha primera secuencia de enteros de dicha imagen o trama y decodificar en orden inverso.
- 5. Método según la reivindicación 4, en el que la etapa de invertir la etapa de cuantizar dicha primera secuencia de enteros comprende las etapas de:reconstruir una secuencia de enteros de una imagen o trama actual segúnc = c’ + r si p = r o, 21rprcc = c’ + r en caso contrarioen donde c’ es un entero de la secuencia comprimida, r es el correspondiente entero de la imagen o trama de referencia, y c es el correspondiente entero de la secuencia reconstruida que representa la primera secuencia de la imagen o trama actual. 5
- 6. Método según la reivindicación 5, en el que la etapa de reconstruir comprende la etapa de:si p ≠ r y 2321rprcen donde p es un entero de la secuencia predicha y c es el correspondiente entero de la imagen o trama actual, utilizar el bit de control asociado para identificar la relación entre un entero c’ de la secuencia comprimida, el correspondiente entero r de la imagen o trama de referencia, y el correspondiente entero c de la secuencia 10 reconstruida que representa la primera secuencia de la imagen o trama actual.
- 7. Método según la reivindicación 5 o 6, que comprende además la etapa de almacenar la secuencia reconstruida de enteros.
- 8. Método según cualquiera de las reivindicaciones anteriores, en el que la secuencia predicha es una secuencia reconstruida simulada de una imagen o trama previa. 15
- 9. Sistema para comprimir y descomprimir datos de una imagen o trama cuya imagen o trama es parte de una secuencia de imágenes o tramas, que comprende:un dispositivo de almacenamiento (105) para almacenar datos;medios de transformación (120) dispuestos para transformar una imagen o una trama de datos en dicha secuencia en una primera secuencia de números reales utilizando un método de transformación de ondita; 20medios de procesamiento de compresión (130) que comprendenmedios de cuantización (140) dispuestos para cuantizar dicha primera secuencia de números reales para producir una primera secuencia de enteros; y caracterizado por que los medios de procesamiento de compresión (130) comprenden además:medios de cuantización adaptativa (150) dispuestos para cuantizar dicha primera secuencia de enteros de dicha 25 trama o imagen a fin de producir una segunda secuencia de enteros de dicha imagen o trama para cada entero en dicha segunda secuencia:- utilizando una primera relación entre un entero en dicha primera secuencia de enteros de dicha imagen o trama con un correspondiente entero en una secuencia de referencia de una imagen o trama de referencia; y 30- utilizando una segunda relación entre dicho entero en dicha primera secuencia de enteros de dicha imagen o trama con un correspondiente entero en una secuencia predicha de enteros, en donde dicha secuencia predicha de enteros se basa en al menos una imagen o trama previa en dicha secuencia de imágenes o tramas;- seleccionando un entero para cada entero en dicha segunda secuencia sobre la base de un valor de 35 evaluación para dicha primera relación, y un valor de evaluación para dicha segunda relación por cada entero de dicha segunda secuencia de enteros, comparando la primera relación entre el entero de dicha primera secuencia de enteros de dicha imagen o trama y el correspondiente entero de una imagen o trama de referencia, y la segunda relación entre dicho entero y el correspondiente entero de la secuencia predicha, utilizando 40c’ = c-r si p = r o, 21rprcc’ = c-p en caso contrariodonde c’ es un entero de la segunda secuencia, p es el correspondiente entero de la secuencia predicha, c es el correspondiente entero de la primera secuencia de una imagen o trama actual y r es elcorrespondiente entero de una imagen o trama de referencia, y determinando el valor de evaluación para cada relación sobre la base de la respectiva relación en forma codificada, en donde el valor de evaluación para cada relación se ajusta al valor absoluto correspondiente; ysi p ≠ r y, 2321rprcasociando un bit de control que identifica una relación seleccionada; y 5medios de codificación (160) dispuestos para codificar dichos enteros de dicha segunda secuencia de dicha imagen o trama en una corriente de bits que representa la secuencia comprimida de enteros de dicha imagen o trama.
- 10. Sistema según la reivindicación 9, que comprende ademásmedios de reconstrucción (220) que comprenden 10medios de decodificación (240) dispuestos para decodificar una corriente de bits que representa una secuencia comprimida de enteros en una tercera secuencia de enteros;medios de cuantización adaptativa inversa (250) dispuestos para cuantizar inversamente dicha cuarta secuencia de enteros para producir una primera secuencia reconstruida de enteros utilizando la secuencia predicha de enteros que representa dicha primera secuencia de enteros; y 15medios de cuantización inversa (260) dispuestos para cuantizar inversamente dicha primera secuencia reconstruida de enteros a fin de producir una segunda secuencia de enteros de una segunda secuencia de números reales; ymedios de transformación inversa (230) dispuestos para transformar inversamente dicha secuencia de números reales en una imagen o trama reconstruida de datos. 20
- 11. Medio legible por ordenador que comprende instrucciones para llevar a un ordenador a realizar el método según una cualquiera de las reivindicaciones 1-8.25
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0301664 | 2003-06-10 | ||
SE0301664A SE527621C2 (sv) | 2003-06-10 | 2003-06-10 | Metod och system för komprimering av bilddata |
PCT/SE2004/000847 WO2004110070A1 (en) | 2003-06-10 | 2004-06-02 | Method for compression of data |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2627556T3 true ES2627556T3 (es) | 2017-07-28 |
Family
ID=29212400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES04735836.1T Expired - Lifetime ES2627556T3 (es) | 2003-06-10 | 2004-06-02 | Método para compresión de datos |
Country Status (14)
Country | Link |
---|---|
US (1) | US7355533B2 (es) |
EP (1) | EP1639831B1 (es) |
KR (1) | KR101063094B1 (es) |
CN (1) | CN100539703C (es) |
DK (1) | DK1639831T3 (es) |
ES (1) | ES2627556T3 (es) |
HK (1) | HK1097976A1 (es) |
HU (1) | HUE033524T2 (es) |
PL (1) | PL1639831T3 (es) |
PT (1) | PT1639831T (es) |
SE (1) | SE527621C2 (es) |
SI (1) | SI1639831T1 (es) |
TR (1) | TR201708179T4 (es) |
WO (1) | WO2004110070A1 (es) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100754611B1 (ko) * | 2006-01-24 | 2007-09-05 | 삼성전자주식회사 | 데이터 전송 장치 및 방법 |
US8010704B2 (en) * | 2008-05-29 | 2011-08-30 | GM Global Technology Operations LLC | Method of efficient compression for measurement data |
CN103312336A (zh) * | 2013-06-28 | 2013-09-18 | 京信通信系统(中国)有限公司 | 一种数据压缩的方法及装置 |
CN104378118B (zh) * | 2014-10-29 | 2017-08-11 | 中国科学院地质与地球物理研究所 | 高效自适应地震数据流无损压缩及解压缩方法 |
CN110771045B (zh) * | 2017-06-22 | 2024-03-29 | 日本电信电话株式会社 | 编码装置、解码装置、编码方法、解码方法、以及记录介质 |
JP7139897B2 (ja) * | 2018-11-07 | 2022-09-21 | 日本電信電話株式会社 | 符号化装置、復号装置、符号化方法、復号方法、符号化プログラム、復号プログラム |
CN112181360B (zh) * | 2019-07-04 | 2023-06-16 | 福建天泉教育科技有限公司 | 浮点数的乘法运算方法及计算机可读存储介质 |
CN117221414B (zh) * | 2023-11-09 | 2024-01-16 | 东莞中杰艾克森电子有限公司 | 一种调制解调器数据智能传输方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2520306B2 (ja) * | 1989-05-24 | 1996-07-31 | 三菱電機株式会社 | 変換符号化装置 |
US6275533B1 (en) | 1997-06-20 | 2001-08-14 | Matsushita Electric Industrial Co., Ltd. | Image processing method, image processing apparatus, and data recording medium |
JP3205532B2 (ja) | 1997-12-04 | 2001-09-04 | 松下電器産業株式会社 | 画像処理方法及び画像処理装置,並びにデータ記憶媒体 |
US6888891B2 (en) * | 2002-01-09 | 2005-05-03 | Octa Technology, Inc. | Wavelet domain half-pixel motion compensation |
KR100701810B1 (ko) * | 2002-04-26 | 2007-04-02 | 가부시키가이샤 엔티티 도코모 | 신호 부호화 방법, 신호 복호 방법, 신호 부호화 장치, 신호 복호 장치, 및 컴퓨터로 판독가능한 기록매체 |
-
2003
- 2003-06-10 SE SE0301664A patent/SE527621C2/sv not_active IP Right Cessation
-
2004
- 2004-06-02 TR TR2017/08179T patent/TR201708179T4/tr unknown
- 2004-06-02 DK DK04735836.1T patent/DK1639831T3/en active
- 2004-06-02 PT PT47358361T patent/PT1639831T/pt unknown
- 2004-06-02 CN CNB2004800223818A patent/CN100539703C/zh not_active Expired - Lifetime
- 2004-06-02 WO PCT/SE2004/000847 patent/WO2004110070A1/en active Application Filing
- 2004-06-02 PL PL04735836T patent/PL1639831T3/pl unknown
- 2004-06-02 US US10/560,056 patent/US7355533B2/en not_active Expired - Lifetime
- 2004-06-02 HU HUE04735836A patent/HUE033524T2/en unknown
- 2004-06-02 ES ES04735836.1T patent/ES2627556T3/es not_active Expired - Lifetime
- 2004-06-02 SI SI200432392T patent/SI1639831T1/sl unknown
- 2004-06-02 KR KR1020057023711A patent/KR101063094B1/ko active IP Right Grant
- 2004-06-02 EP EP04735836.1A patent/EP1639831B1/en not_active Expired - Lifetime
-
2007
- 2007-04-17 HK HK07104025.4A patent/HK1097976A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
SE0301664D0 (sv) | 2003-06-10 |
US7355533B2 (en) | 2008-04-08 |
SE527621C2 (sv) | 2006-04-25 |
SI1639831T1 (sl) | 2017-09-29 |
CN100539703C (zh) | 2009-09-09 |
KR101063094B1 (ko) | 2011-09-07 |
KR20060055466A (ko) | 2006-05-23 |
US20060220934A1 (en) | 2006-10-05 |
TR201708179T4 (tr) | 2019-02-21 |
EP1639831B1 (en) | 2017-03-08 |
WO2004110070A1 (en) | 2004-12-16 |
HUE033524T2 (en) | 2017-12-28 |
PL1639831T3 (pl) | 2017-10-31 |
PT1639831T (pt) | 2017-06-20 |
CN1857007A (zh) | 2006-11-01 |
EP1639831A1 (en) | 2006-03-29 |
HK1097976A1 (en) | 2007-07-06 |
SE0301664L (sv) | 2004-12-11 |
DK1639831T3 (en) | 2017-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547786B (zh) | 视频编码、以及视频解码的方法、装置 | |
US8867855B2 (en) | Picture coding method and picture decoding method | |
JP2019071662A (ja) | ビデオ符号化またはビデオ復号化のための動きベクトル決定方法及びその装置 | |
BR112021003315A2 (pt) | redução de compartimento codificado regular para codificação de coeficiente com o uso de limite e parâmetro de rice | |
ES2655416T3 (es) | Dispositivo de codificación de predicción de imagen en movimiento, procedimiento de codificación de predicción de imagen en movimiento, programa de codificación de predicción de imagen en movimiento, dispositivo de descodificación de predicción de imagen en movimiento, procedimiento de descodificación de predicción de imagen en movimiento y programa de descodificación de predicción de imagen en movimiento | |
CN1973529B (zh) | 提供有效的多媒体内容存储的方法和设备 | |
US9077960B2 (en) | Non-zero coefficient block pattern coding | |
ES2750328T3 (es) | Dispositivo de codificación de imagen dinámica, método de codificación de imagen dinámica y programa informático para codificación de imagen dinámica | |
JP4767860B2 (ja) | 段階的可逆ビデオ符号化方法,段階的可逆ビデオ復号方法,段階的可逆ビデオ符号化装置,段階的可逆ビデオ復号装置,これらのプログラムおよびそのプログラムの記録媒体 | |
KR102380579B1 (ko) | 비디오 데이터에 관련된 신택스 엘리먼트를 나타내는 이진 심볼들의 시퀀스의 컨텍스트-적응적 이진 산술 코딩을 위한 방법 및 디바이스 | |
KR100338198B1 (ko) | 부호화 장치와 복호 장치, 부호화 방법과 복호 방법, 및화상 처리 장치 | |
ES2627556T3 (es) | Método para compresión de datos | |
US20050111551A1 (en) | Data processing apparatus and method and encoding device of same | |
US6744925B2 (en) | Encoding apparatus, decoding apparatus, encoding method, and decoding method | |
CA2436437A1 (en) | Moving picture information compressing method and its system | |
JP2021057730A (ja) | 画像符号化方法、画像符号化装置、画像復号方法および画像復号装置 | |
Vural et al. | Reversible video watermarking through recursive histogram modification | |
US20240357184A1 (en) | Receiver side prediction of encoding selection data for video encoding | |
US20240357162A1 (en) | Receiver selected decimation scheme for video coding | |
US20240357070A1 (en) | Companion device assisted multi-view video coding | |
Darragh et al. | Fixed distortion, variable rate subband coding of images | |
KR20150029398A (ko) | 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법 | |
JP3228943B2 (ja) | 符号化装置及び復号装置及びそれらの方法及び画像処理装置 | |
Ramamurthy | Efficient,‘greedy’rate allocation for JPEG2000 | |
Liang | Adaptive vector quantization on image sequence coding |