ES2546542T3 - Sistema y procedimiento para comprimir un flujo de datos de valores enteros - Google Patents
Sistema y procedimiento para comprimir un flujo de datos de valores enteros Download PDFInfo
- Publication number
- ES2546542T3 ES2546542T3 ES09775397.4T ES09775397T ES2546542T3 ES 2546542 T3 ES2546542 T3 ES 2546542T3 ES 09775397 T ES09775397 T ES 09775397T ES 2546542 T3 ES2546542 T3 ES 2546542T3
- Authority
- ES
- Spain
- Prior art keywords
- code
- roll
- length
- data
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Procedimiento para la codificación entrópica de datos de pares de tirada/valor de datos que corresponden a un flujo de datos de valores enteros, en el que cada tirada se codifica en una de tres maneras, comprendiendo dicho procedimiento: clasificar cada una de dichas tiradas en función de su longitud siendo o 1, corta o larga; si la tirada es 1, seleccionar un primer código con una longitud de 1; si la tirada se clasifica como corta, seleccionar un primer código con una primera longitud predeterminada, cada primer código de primera longitud predeterminada teniendo un preámbulo para distinguir las otras clasificaciones de tirada, y teniendo un valor en función de la longitud de la tirada; si la tirada se clasifica como larga, seleccionar un primer código con una segunda longitud predeterminada, cada primer código de segunda longitud predeterminada teni endo un preámbulo para distinguir las otras clasificaciones de tirada, y teniendo un valor en función de la longitud de la tirada; y emitir el primer código seleccionado a un canal, en el que la primera longitud predeterminada es n + 1 bits, el primer código con la primera longitud predeterminada se selecciona a partir de una primera tabla de código, el primer código con la primera longitud predeterminada tiene el preámbulo para el primer bit y cuyo valor para los n bits restantes se basa en la duración de la tirada, la segunda longitud predeterminada es n + 1 + M bits, el primer código con la segunda longitud predeterminada se selecciona a partir de una segunda tabla de códigos, el primer código con la segunda longitud predeterminada teniendo el preámbulo para los primeros n + 1 bits y cuyo valor para los M bits restantes se basa en la longitud de la tirada.
Description
DESCRIPCIÓN
Sistema y procedimiento para comprimir un flujo de datos de valores enteros.
ANTECEDENTES 5
Se conocen varios esquemas de codificación para codificar flujos de bits de valores enteros, en los cuales los flujos de bits pueden representar, por ejemplo, vídeos, imágenes, y demás. Los esquemas de codificación conocidos implican generalmente la codificación de longitud de tirada, codificación de longitud variable, codificación diferencial, y diversas combinaciones de los mismos. 10
Se sabe que la codificación de longitud de tirada, si bien es útil para la compresión de datos que presenta una uniformidad significativa, es generalmente ineficaz donde los valores de datos son propensos a diferir de un al siguiente. En esta segunda situación, es común entre los esquemas de compresión conocidos el conmutar de forma adaptativa entre la codificación de longitud de tirada y algún otro tipo de codificación, en el que la conmutación 15 generalmente se maneja en el decodificador por información anexa asociada con el flujo de bits, o por cálculo; esto o bien reduce la eficiencia de compresión o aumenta la carga computacional, respectivamente.
El documento EP 1 004 975 A2 divulga un conjunto de palabras de código de compresión de ocho bits que se utilizan en el comienzo de una tirada de datos que comprende un recuento de píxeles y uno o más valores de color, 20 los primeros cuatro bits de la primera palabra siendo utilizados para especificar el formato de los bytes en la siguiente secuencia de datos y si los siguientes píxeles se van a imprimir como la superposición o como el fondo, y los últimos cuatro bits siendo utilizados para especificar sugerencias de impresión.
Es común entre los esquemas de compresión que utilizan codificación tanto de longitud de tirada como diferencial, 25 llevar a cabo la codificación diferencial antes de la codificación de longitud de tirada, cuyo orden requiere que el codificador calcule una diferencia, y el decodificador calcule una suma (es decir, reconstruir el valor de datos) para cada valor de datos en el flujo de bits.
Por lo tanto, es deseable usar un esquema de codificación que pueda eliminar o por lo menos mitigar estas 30 limitaciones conocidas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
35
La FIG. 1 ilustra un procedimiento para codificar un flujo de datos de valores enteros de acuerdo con una realización de la presente invención.
La FIG. 2 ilustra un procedimiento de codificación de una lista de pares de tirada/valor de datos de acuerdo con una realización de la presente invención. 40
La FIG. 3 ilustra un flujo de datos de valores enteros a modo de ejemplo, y sus tiradas asociadas.
La FIG. 4 ilustra un sistema de codificador-decodificador de acuerdo con una realización de la presente invención. 45
DESCRIPCIÓN DETALLADA
Las realizaciones de la presente invención reducen el tamaño y la complejidad de los flujos de bits asociados a datos codificados mediante el uso de un nuevo esquema de compresión. Un codificador entrópico recibe una lista de 50 pares de tirada/valor de datos y codifica entrópicamente por separado las tiradas y los valores de datos, seleccionando sus palabras de código según longitud y magnitud, respectivamente, y concatena los pares de palabras de código resultantes - la palabra de código de valor de datos primero - en un flujo de bits codificados. El esquema de codificación reduce el tamaño y la complejidad de un flujo de bits codificados, cuyo flujo de bits puede representar imágenes, vídeos, y demás. Por lo tanto, el flujo de bits puede ser transmitido utilizando menos ancho 55 de banda y se puede disminuir la carga computacional tanto en el codificador como en el decodificador.
La FIG. 1 ilustra un procedimiento de codificar un flujo de bits de acuerdo con una realización de la presente invención. Según la realización, el procedimiento puede escanear un conjunto de valores de datos en un sentido de escaneo predeterminado (cuadro 100). El procedimiento puede convertir valores de datos del conjunto en una 60 secuencia de pares de tirada/valor de datos (cuadro 110). En el bloque 120, el procedimiento puede seleccionar una palabra de código en función de un valor de una tirada. Del mismo modo, en el cuadro 130, el procedimiento puede seleccionar una palabra de código en función de un valor de un valor de datos. El procedimiento puede realizar ya sea la etapa 120 o la etapa 130 o ambos. El procedimiento puede concatenar los datos codificados de tirada/valor
de datos en parejas de datos codificados (cuadro 140). A partir de entonces, los datos podrán ser procesados adicionalmente para transmisión.
Más específicamente, en el bloque 100, el procedimiento puede escanear un conjunto de datos de origen de acuerdo con un sentido de escaneo, cuyos datos de origen representan, por ejemplo, una imagen, un vídeo, y 5 demás. El procedimiento puede acomodar conjuntos de datos de una variedad de tamaños y configuraciones. Se apreciará que los conjuntos multi-dimensionales de números enteros pueden ser considerados como un conjunto lineal cuando se consideran según una dirección de escaneo y, por lo tanto, la presente discusión se dirige a un caso de conjunto lineal.
10 En el bloque 110, el conjunto unidimensional de valores de datos se puede convertir, utilizando la codificación por longitud de tirada, en una lista de pares de tirada de tirada/valor de datos, donde un número entero (comúnmente, el primer número entero) en el par es la longitud de la tirada, y otro número entero (comúnmente, el segundo número entero) es el valor de los datos que comprenden la tirada correspondiente. Por ejemplo, y como se muestra en la FIG. 3, si el conjunto unidimensional consta de 10 elementos - {0, 0, 0, 3, 3, 2, 2, 2, 2, 2} - esos 10 elementos se 15 convertirían en los siguientes pares: {(3, 0), (2, 3), (5, 2)}. Los pares resultantes indican que el conjunto original constaba de tres valores iguales a 0, dos valores iguales a 3, y cinco valores iguales a 2, y en ese orden.
En una realización, la lista resultante de pares de tirada/valor de datos se puede codificar en diferencia, en el bloque 110, en una lista de pares de diferencia de tirada/valor de datos. Volviendo al ejemplo del conjunto de 10 elementos 20 utilizado anteriormente, la lista resultante de pares de diferencia de tirada/valor de datos consta de {(3, +1), (2, +3), (5, -1)}, en el que [0 - (-1) = 1], [3 - 0, = +3], y [2 - 3 = -1]. En circunstancias normales la diferencia de valor de datos no será cero, ya que ello implicaría una continuación de la tirada anterior; mediante el tratamiento del valor de tirada anterior de la tirada inicial como -1 (como se muestra en el ejemplo anterior), se puede garantizar una diferencia de valor de datos distinta de cero (a menos que una tirada se divide en sub-tiradas, como se detalla en este 25 documento).
Al hacer la codificación por longitud de tirada antes de la codificación de por diferencia, se tiene que calcular una diferencia (codificador) o suma (decodificador) solamente una vez por tirada, en lugar de una vez por cada valor de datos. Esta distinción de orden puede ser especialmente valiosa en el decodificador, donde no sólo reduce la 30 cantidad de cálculo requerido, sino que también elimina cualquier secuencia asociada, permitiendo que varios de los valores de los datos idénticos de una tirada sean emitidos simultáneamente.
Tal como descrito anteriormente, los principios de la presente invención encuentran aplicación tanto con valores de datos diferenciales como con valores de datos no diferenciales. Por lo tanto, a menos que se especifique a 35 continuación, la discusión que sigue se refiere a los "valores de datos" en un sentido genérico, para referirse por igual a valores de datos diferenciales como no diferenciales.
En los bloques 120, 130 la lista resultante de pares de tirada/ valor de datos puede se puede codificar entrópicamente; las tiradas pueden ser codificadas por separado de los valores de datos y tal codificación se pueden 40 realizar en serie (por ejemplo, tiradas antes que valores de datos, y demás) o en paralelo. Las realizaciones de la presente invención permiten la codificación por entropía basada en tabla de códigos propuesto en este documento a ser utilizado en conjunción con otros esquemas de codificación, si se desea. Por ejemplo, aunque la presente discusión propone codificar ambas tiradas y valor de datos de acuerdo con el proceso descrito a continuación con respecto a la FIG. 2, es admisible codificar sólo un tipo de datos (por ejemplo, las tiradas) de acuerdo con el 45 esquema propuesto y codificar el otro tipo de datos (por ejemplo, los valores de datos) de acuerdo con otro mecanismo. Por lo tanto, los principios de la presente invención pueden ser integrados con otros mecanismos de codificación, según se desee.
Después de codificar por entropía las tiradas y los valores de datos, la lista de palabras de código de tirada y 50 palabras de código de valor de datos pueden ser concatenadas (es decir, para cada par, la palabra de código de valor de datos resultante se concatena con la palabra de código de tirada resultante), y estas palabras de código concatenadas juntos forman el flujo de bits codificado final, como se muestra en el bloque 140. Al poner la palabra de código de valor de datos antes de la correspondiente palabra de código de tirada, el valor de datos puede ser reconstruido - durante la decodificación - antes de la determinación de la longitud de la tirada de ese valor de datos, 55 lo que permite una decodificación especializada por longitud de tirada de valores de tirada particulares. Por ejemplo, si, durante la decodificación de palabra de código de tirada, se determina que la tirada es uno, el valor de datos único puede ser emitido, debido a que el valor de datos ya se ha recuperado; por lo tanto, no hay necesidad de hacer un bucle o de otro modo intentar acomodar una situación general, lo que significa que alguna sobrecarga computacional puede ser eliminado del proceso. 60
La FIG. 2 ilustra un procedimiento de codificación entrópica de acuerdo con una realización de la presente invención. En el bloque 200, se recibe un par de tirada/valor de datos, y en el bloque 205 se comprueban las tiradas dentro de cada par para ver si están dentro de una longitud de tirada máxima predeterminada. Las tiradas son integrales y pueden variar desde 1 al tamaño del conjunto de origen. Para los fines de la codificación por entropía, las tiradas 65 pueden tener un límite superior de, por ejemplo, 2M, donde M es un parámetro general que se utiliza para asegurar
que el tamaño de la tabla de códigos de tirada es finita. Por ejemplo, con respecto a una imagen, M puede ser acorde con el tamaño de la imagen de modo que no es necesario dividir tiradas en sub-tiradas.
En caso de que una tirada sea más larga que 2M, puede ser dividida en sub-tiradas de tal manera que cada sub-tirada es menor que o igual a 2M. En el caso de una tirada dividida en sub-tiradas, la primera sub-tirada es asignada 5 el mismo valor de datos como si la tirada no se hubiera dividido en sub-tiradas, y cada sub-tirada subsecuente es asignada un valor de datos de cero. Como ejemplo, considere el par tirada/valor de datos (21, +2), en el que M = 3. En este caso, las tiradas no pueden tener más largas que 8 (es decir, 2M= 23 = 8), y por tanto los pares resultantes de sub-tiradas/valores de datos serían: {(8, +2), (8, 0), (5, 0)} (es decir, 8 + 8 + 5 = 21).
10 En función de su longitud, tiradas o sub-tiradas pueden ser codificadas en una de tres maneras, como se muestra en los bloques 210 - 225. En el bloque 210, se clasifica una tirada ya sea como uno, "corto" o "largo". Las tiradas de uno pueden ser codificadas como un solo bit '1', como se muestra en el bloque 215. El uso de un solo bit para tiradas de uno minimiza el impacto en la eficiencia de compresión cuando los valores de datos contiguos no son idénticos, y tiene la ventaja computacional de permitir que los decodificadores utilicen una prueba de signo para 15 distinguir entre tiradas codificadas de uno y los superiores a uno.
Las tiradas "cortas" pueden incluir esas tiradas superiores a 1, pero menores o iguales a un umbral predeterminado 2n, en el que n puede ser elegido arbitrariamente o de acuerdo a cualquiera de una serie de esquemas predeterminados, incluyendo, por ejemplo, un esquema que intenta lograr una compresión óptima para los datos que 20 se comprimen. Tiradas cortas pueden codificarse con n + 1 bits que constan de un preámbulo de solo bit '0' seguido por el código binario de longitud fija de n bits para uno menos el valor de tirada, tal como se representa por el bloque 220.
Las tiradas "largas" pueden incluir esas tiradas superiores a 2n. Tiradas largas pueden codificarse con n + 1 + M bits 25 que consisten en un preámbulo de n + 1 bits '0' seguido por el código binario de longitud fija M-bit para uno menos el valor de tirada, según lo representado por el bloque 225.
Nótese que las palabras de código para ambas tiradas "cortas" y "largas" son los códigos binarios de longitud fija - de longitud apropiada - para uno menos el valor de tirada. Considere, a modo de ejemplo de una tabla de códigos de 30 tirada según el esquema discutido, la Tabla 1, que ilustra una tabla de códigos de tirada, donde M = 11 y n = 4, de tal manera que la longitud máxima de una tirada es 2048 (es decir, 211= 2048), y las tiradas "cortas" son las que existen entre 2 y 16 inclusive (es decir, 24= 16).
Tabla 1 35
- PALABRA DE CÓDIGO
- CLASIFICACIÓN
- TIRADA PREÁMBULO DATOS
- 1
- 1
- 1
- Corto
- 2 0 0001
- Corto
- 3 0 0010
- ••• ••• •••
- Corto
- 16 0 1111
- Largo
- 17 00000 00000010000
- Largo
- 18 00000 00000010001
- ••• •••
- Largo
- 2048 00000 11111111111
Los valores de datos pueden ser codificados en una de dos maneras, dependiendo de su magnitud. Como se muestra en el bloque 230, los valores de datos se clasifican como "pequeño" o "grande", de acuerdo a sus valores absolutos; esto permite que un solo bit prefijo pueda distinguir entre los dos casos, y, en consecuencia, cuando se 40 decodifica una palabra de código de valor de datos, si el primer bit de la palabra de código aparece en el bit más significativo de la palabra de un ordenador, se puede realizar una simple prueba de signo (comparación a cero) para determinar si el valor de datos es pequeño o grande.
Los valores de datos "pequeños" pueden incluir aquellos valores de los datos con una magnitud (es decir, un valor 45 absoluto) mayor que 0, pero menor o igual a 2k, en el que k puede ser elegido arbitrariamente o de acuerdo a cualquiera de una serie de esquemas predeterminados, incluyendo, por ejemplo, un esquema que intenta lograr una compresión óptima para los datos que se comprimen. Pequeños valores de datos se codifican con k + 2 bits que
constan de un preámbulo de un solo bit '0', el código binario de longitud fijo de k bits para uno menos la magnitud del valor de datos, y un único bit para indicar el signo de diferencia, como se representa por el bloque 235.
Los valores de datos "grandes" pueden incluir aquellos valores de datos con una magnitud ya sea igual a 0 o mayor que 2k. Los valores de datos grandes pueden ser codificados con N + 1 bits que constan de un preámbulo de un solo 5 bit '1' seguido por el valor de datos de módulo 2N, tal como se representa por el bloque 240, donde N es el tamaño de palabra de los valores originales de datos.
Considere, a modo de ejemplo de una tabla de códigos de valor de datos según el esquema discutido, la Tabla 2, que ilustra una tabla de códigos de valor de datos, donde k = 3 y N = 8, y donde se utiliza un bit de signo de 1 para 10 indicar valores de datos negativos, de tal manera que la tabla de códigos comprende 512 entradas (es decir, 2 * 28 = 512).
Tabla 2
15
- PALABRA DE CÓDIGO
- CLASIFICACIÓN
- VALOR DE DATOS PREÁMBULO DATOS SIGNO
- Pequeño
- +1 0 000 0
- Pequeño
- -1 0 000 1
- Pequeño
- +2 0 001 0
- Pequeño
- -2 0 001 1
- Pequeño
- ••• ••• ••• •••
- Pequeño
- +8 0 111 0
- Pequeño
- -8 0 111 1
- Grande
- +9 1 00001001
- Grande
- -9 1 11110111
- ••• ••• ••• •••
- Grande
- +255 1 11111111
- Grande
- -255 1 00000001
- Grande
- +256 1 00000000
- Grande
- 0 1 00000000
Las variables n (asociadas a la codificación entrópica de tiradas) y k (asociadas s la codificación entrópica de valores de datos) pueden basarse en información estadística recogida de datos de ejemplo que son presumiblemente representativos de los tipos de cosas que pueden ser codificadas por el codificador (por ejemplo, imágenes, vídeos, y demás.). 20
La FIG. 4 ilustra un codificador 400 y un decodificador 500 de acuerdo con una realización de la presente invención. El codificador 400 puede implementarse en hardware o software y recibe datos de origen 410, un conjunto unidimensional de datos de valores enteros, como se detalla en el presente documento. Los datos de origen 410 pueden ser el resultado de varios otros procesos de codificación que son generalmente irrelevantes para la presente 25 invención, incluyendo operaciones de tratamiento de origen (por ejemplo, procesos de codificación de vídeo, procesos de codificación de audio, y demás.).
El codificador 420 de tirada/valor de datos puede codificar según tirada/valor de datos los datos de origen 410 a una lista de pares de tirada/valor de datos. El codificador por entropía 440 puede recibir la lista de pares de tirada/valor 30 de datos del codificador 420 de tirada/valor de datos y puede codificar por separado tiradas y valores de datos de acuerdo a los procesos que se detallan en este documento. El codificador por entropía 440 puede concatenar las palabras de código resultantes que comprenden cada par en la lista, los valores de datos codificados primero, para formar el flujo de bits codificados. En una realización, y como se muestra en líneas discontinuas, el codificador 430 de diferencia de tirada/valor de datos puede recibir la lista de pares de tirada/valores datos del codificador de 35 tirada/valor de datos 420 y podrá codificar por diferencia los pares a una lista de pares de diferencia de tirada/valor de datos, que pueden ser procesados por el codificador por entropía 440.
La memoria temporal de transmisión 450 puede almacenar el flujo de bits codificados antes de transferirlo a un canal, cuyo canal puede representar un medio de transmisión para llevar el flujo de bits codificados a un 40
descodificador. Los canales incluyen típicamente dispositivos de almacenamiento como memorias ópticas, magnéticas o eléctricas, y los canales de comunicación proporcionados, por ejemplo, por las redes de comunicación o redes de ordenadores.
El proceso de codificación descrito anteriormente se puede invertir en el decodificador 500, que puede incluir una 5 memoria temporal de recepción 510, el descodificador por entropía 520, el decodificador 530 por diferencia de tirada/valor de datos, el decodificador 540 de tirada/valor de datos, y almacenamiento de datos recuperados 550. Cada unidad puede realizar la inversa de su contraparte en el codificador 400, replicando los datos de origen 410. El decodificador 500 puede incluir otros bloques (no mostrados) que llevan a cabo la decodificación fuente para que coincida con los procesos de codificación de la fuente aplicada en el codificador 400. 10
Aunque el texto precedente establece una descripción detallada de diversas realizaciones, debe entenderse que el ámbito legal de la invención se define por las palabras de las reivindicaciones expuestas a continuación. La descripción detallada debe interpretarse solamente a modo de ejemplo y no describe todas las posibles realizaciones de la invención, ya que describir cada posible forma de realización sería poco práctico, si no imposible. 15 Numerosas realizaciones alternativas podrían ser implementadas, usando ya sea la tecnología actual o tecnología desarrollada después de la fecha de presentación de esta patente, que todavía caerían dentro del alcance de las reivindicaciones que definen la invención.
Debe entenderse que existen implementaciones de otras variaciones y modificaciones de la invención y sus diversos 20 aspectos, como pueden ser fácilmente evidentes para los expertos en la técnica, y que la invención no está limitada por las realizaciones específicas descritas en el presente documento.
25
Claims (7)
- REIVINDICACIONES1. Procedimiento para la codificación entrópica de datos de pares de tirada/valor de datos que corresponden a un flujo de datos de valores enteros, en el que cada tirada se codifica en una de tres maneras, comprendiendo dicho 5 procedimiento:clasificar cada una de dichas tiradas en función de su longitud siendo o 1, corta o larga;si la tirada es 1, seleccionar un primer código con una longitud de 1; 10si la tirada se clasifica como corta, seleccionar un primer código con una primera longitud predeterminada, cada primer código de primera longitud predeterminada teniendo un preámbulo para distinguir las otras clasificaciones de tirada, y teniendo un valor en función de la longitud de la tirada;15si la tirada se clasifica como larga, seleccionar un primer código con una segunda longitud predeterminada, cada primer código de segunda longitud predeterminada teniendo un preámbulo para distinguir las otras clasificaciones de tirada, y teniendo un valor en función de la longitud de la tirada; yemitir el primer código seleccionado a un canal, en el que la primera longitud predeterminada es n + 1 bits, el 20 primer código con la primera longitud predeterminada se selecciona a partir de una primera tabla de código, el primer código con la primera longitud predeterminada tiene el preámbulo para el primer bit y cuyo valor para los n bits restantes se basa en la duración de la tirada,la segunda longitud predeterminada es n + 1 + M bits, el primer código con la segunda longitud 25 predeterminada se selecciona a partir de una segunda tabla de códigos, el primer código con la segunda longitud predeterminada teniendo el preámbulo para los primeros n + 1 bits y cuyo valor para los M bits restantes se basa en la longitud de la tirada.
- 2. El procedimiento de la reivindicación 1, en el que la longitud de la tirada corta es mayor que 1 y menor o igual a 30 2n, y la longitud de la tirada larga es mayor que 2n.
- 3. El procedimiento de la reivindicación 1 en el que:para tiradas clasificadas como cortas, el preámbulo del primer código es un bit '0' y el valor de los n bits 35 restantes es el código binario para uno menos la longitud de la tirada; ypara tiradas clasificadas como largas, el preámbulo del primer código es n + 1 bits '0' y el valor de los M bits restantes es el código binario para uno menos la longitud de la tirada.40
- 4. El procedimiento de la reivindicación 1 que comprende además dividir una tirada en dos o más sub-tiradas cuando la longitud de una tirada es mayor que 2M, en el que:la longitud de cada una de las sub-tiradas es inferior o igual a 2M;el valor de datos asociado con la primera sub-tirada es igual al valor de datos asociado con la tirada; y 45el valor de datos asociado a cada sub-tirada después de la primera sub-tirada es cero.
- 5. El procedimiento de la reivindicación 1 que comprende además:clasificar cada valor de datos en función de su magnitud; 50si el valor de datos se clasifica como pequeño, seleccionar un segundo código que comprende k + 2 bits a partir de una tercera tabla de códigos, el segundo código seleccionado teniendo un preámbulo predeterminado para el primer bit y cuyo valor para los k + 1 bits restantes se basa en el valor de datos;si el valor de datos se clasifica como grande, seleccionar un segundo código que comprende N + 1 bits a 55 partir de una cuarta tabla de códigos, el segundo código seleccionado teniendo un preámbulo predeterminado para el primer bit y cuyo valor para los N bits restantes se basa en el valor de datos y en N; yemitir el segundo código seleccionado al canal.60
- 6. Un sistema para la codificación entrópica de una lista de datos de pares de tirada/valor de datos correspondientes a un flujo de datos de valores enteros, en el que cada tirada se codifica de una de tres maneras, en el que el sistema está configurado para llevar a cabo el procedimiento de acuerdo con cualquiera de las reivindicaciones 1 a 5.65
- 7. Un medio legible por ordenador codificado con un conjunto de instrucciones que, cuando se realiza por un ordenador, lleva a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 5.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US268171 | 1999-03-15 | ||
US12/268,171 US7804428B2 (en) | 2008-11-10 | 2008-11-10 | System and method for compressing a stream of integer-valued data |
PCT/US2009/063526 WO2010054178A1 (en) | 2008-11-10 | 2009-11-06 | System and method for compressing a stream of integer-valued data |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2546542T3 true ES2546542T3 (es) | 2015-09-24 |
Family
ID=41565901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES09775397.4T Active ES2546542T3 (es) | 2008-11-10 | 2009-11-06 | Sistema y procedimiento para comprimir un flujo de datos de valores enteros |
Country Status (8)
Country | Link |
---|---|
US (1) | US7804428B2 (es) |
EP (3) | EP2913932B1 (es) |
JP (3) | JP5162708B2 (es) |
KR (1) | KR101171697B1 (es) |
CN (1) | CN102210105B (es) |
AU (1) | AU2009313449B2 (es) |
ES (1) | ES2546542T3 (es) |
WO (1) | WO2010054178A1 (es) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2013000344A (es) | 2010-07-09 | 2013-03-20 | Samsung Electronics Co Ltd | Metodo y aparato para codificar/decodificar por entropia un coeficiente de transformacion. |
US10091529B2 (en) | 2010-07-09 | 2018-10-02 | Samsung Electronics Co., Ltd. | Method and apparatus for entropy encoding/decoding a transform coefficient |
US9058223B2 (en) * | 2011-04-22 | 2015-06-16 | Microsoft Technology Licensing Llc | Parallel entropy encoding on GPU |
DE102011107974A1 (de) | 2011-07-16 | 2013-01-17 | Valeo Schalter Und Sensoren Gmbh | Verfahren zum Rangieren eines Fahrzeugs in einem Umfeld sowie Rangierassistenzsystem für ein Fahrzeug |
WO2013033895A1 (zh) * | 2011-09-07 | 2013-03-14 | 速压公司 | 数据压缩和解压缩方法、程序、存储介质及电子产品 |
CN104285377A (zh) | 2012-03-15 | 2015-01-14 | 诺基亚公司 | 数据的编码和解码 |
GB2501527B (en) * | 2012-04-27 | 2014-03-12 | Broadcom Corp | Method apparatus and computer program for encoding a bit string |
GB2511493B (en) * | 2013-03-01 | 2017-04-05 | Gurulogic Microsystems Oy | Entropy modifier and method |
KR102430173B1 (ko) | 2015-11-24 | 2022-08-05 | 삼성전자주식회사 | 디스플레이 장치 |
CN108702781A (zh) * | 2016-01-08 | 2018-10-23 | 中兴通讯股份有限公司 | 使用随机接入信道来发送关键任务小数据的方法 |
US10602192B2 (en) * | 2016-02-04 | 2020-03-24 | Mediatek Inc. | Methods and apparatuses for performing entropy encoding and entropy decoding with size determination of at least one bitstream portion |
CN106656200B (zh) * | 2016-12-13 | 2019-11-08 | 合肥工业大学 | 一种程序计数器压缩方法及其硬件电路 |
CN109716660B (zh) * | 2017-01-24 | 2021-08-13 | 华为技术有限公司 | 数据压缩装置和方法 |
CN110019184B (zh) * | 2017-09-04 | 2021-04-27 | 北京字节跳动网络技术有限公司 | 一种压缩和解压缩有序整数数组的方法 |
US11176109B2 (en) * | 2019-07-15 | 2021-11-16 | Microsoft Technology Licensing, Llc | Time-series data condensation and graphical signature analysis |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4973916A (es) * | 1972-11-15 | 1974-07-17 | ||
JPS5567274A (en) * | 1978-11-14 | 1980-05-21 | Nippon Telegr & Teleph Corp <Ntt> | Picture signal coding system |
JPS57106272A (en) * | 1980-12-22 | 1982-07-02 | Ricoh Co Ltd | Method for compression of multilevel picture data |
JPH01256287A (ja) * | 1988-04-06 | 1989-10-12 | Canon Inc | 画像圧縮装置 |
CA1326898C (en) * | 1988-04-27 | 1994-02-08 | John Music | Method and system for decompressing color video encoded data |
JP3061278B2 (ja) * | 1988-04-29 | 2000-07-10 | ゼロックスコーポレーション | 可変ビット長コード語のビット長通信方法 |
JP3010631B2 (ja) * | 1989-02-14 | 2000-02-21 | ソニー株式会社 | ランレングス符号化方式 |
JPH0697839A (ja) * | 1992-09-16 | 1994-04-08 | Sharp Corp | データ圧縮方法 |
JP3259989B2 (ja) * | 1992-10-23 | 2002-02-25 | 株式会社日立製作所 | 2値と多値の混在符号化画像データ復元方法および装置 |
US5926576A (en) | 1994-03-30 | 1999-07-20 | Newton; Dale C. | Imaging method and system concatenating image data values to form an integer, partition the integer, and arithmetically encode bit position counts of the integer |
US5710561A (en) * | 1996-01-02 | 1998-01-20 | Peerless Systems Corporation | Method and apparatus for double run-length encoding of binary data |
US5831559A (en) * | 1996-01-24 | 1998-11-03 | Intel Corporation | Encoding/decoding video signals using multiple run-val mapping tables |
IN192447B (es) * | 1996-06-14 | 2004-04-24 | Daewoo Electronics Corp | |
US6028963A (en) | 1996-06-17 | 2000-02-22 | Canon Kabushiki Kaisha | Image encoding based on judgement on prediction error |
US6011499A (en) | 1996-06-27 | 2000-01-04 | Intel Corporation | Encoding/decoding video signals using multiple run-val mapping tables |
JPH10200413A (ja) * | 1996-12-26 | 1998-07-31 | Texas Instr Inc <Ti> | 可変長コード生成装置及び生成方法 |
US5798718A (en) | 1997-05-12 | 1998-08-25 | Lexmark International, Inc. | Sliding window data compression method and apparatus |
JP3410629B2 (ja) * | 1997-05-21 | 2003-05-26 | シャープ株式会社 | 可変長符号化回路及び可変長符号化方法 |
JPH11251923A (ja) * | 1998-02-27 | 1999-09-17 | Toyo Electric Mfg Co Ltd | モニタ装置 |
US6118392A (en) | 1998-03-12 | 2000-09-12 | Liquid Audio Inc. | Lossless data compression with low complexity |
KR100281321B1 (ko) | 1998-03-26 | 2001-02-01 | 전주범 | 적응적인 산술 부호화 및 그 복호화 방법 |
US6166664A (en) | 1998-08-26 | 2000-12-26 | Intel Corporation | Efficient data structure for entropy encoding used in a DWT-based high performance image compression |
JP2000115782A (ja) | 1998-10-06 | 2000-04-21 | Canon Inc | 符号化装置及び方法及び記憶媒体 |
US6317222B1 (en) | 1998-11-17 | 2001-11-13 | Xerox Corporation | Set of run-length codewords containing pointers to data sources |
US6223162B1 (en) * | 1998-12-14 | 2001-04-24 | Microsoft Corporation | Multi-level run length coding for frequency-domain audio coding |
JP3323175B2 (ja) | 1999-04-20 | 2002-09-09 | 松下電器産業株式会社 | 符号化装置 |
US6505320B1 (en) | 2000-03-09 | 2003-01-07 | Cirrus Logic, Incorporated | Multiple-rate channel ENDEC in a commuted read/write channel for disk storage systems |
US6778483B2 (en) | 2000-11-08 | 2004-08-17 | Matsushita Electric Industrial Co., Ltd. | Multilevel record modulator and demodulator |
JP3375080B2 (ja) * | 2001-08-10 | 2003-02-10 | 日本ビクター株式会社 | 画像圧縮方法 |
JP4100552B2 (ja) * | 2001-11-22 | 2008-06-11 | 松下電器産業株式会社 | 復号化方法 |
JP3778087B2 (ja) | 2002-01-18 | 2006-05-24 | 富士ゼロックス株式会社 | データ符号化装置及びデータ復号装置 |
JP3709381B2 (ja) * | 2002-04-02 | 2005-10-26 | Necビューテクノロジー株式会社 | カラー画像圧縮方法 |
US7433824B2 (en) | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
US7113115B2 (en) * | 2004-06-30 | 2006-09-26 | Intel Corporation | Variable length code table look ups |
CN101032081B (zh) * | 2004-07-14 | 2010-05-26 | 喷流数据有限公司 | 用于数据压缩优化的方法和系统 |
US7068192B1 (en) | 2004-08-13 | 2006-06-27 | Google Inc. | System and method for encoding and decoding variable-length data |
US7015837B1 (en) | 2004-10-29 | 2006-03-21 | Microsoft Corporation | Lossless adaptive encoding and decoding of integer data |
US6987468B1 (en) | 2004-10-29 | 2006-01-17 | Microsoft Corporation | Lossless adaptive encoding and decoding of integer data |
US7985246B2 (en) | 2006-03-31 | 2011-07-26 | Warsaw Orthopedic, Inc. | Methods and instruments for delivering interspinous process spacers |
US8116378B2 (en) | 2006-12-15 | 2012-02-14 | Arcsoft, Inc. | Variable length decoding method |
JP2008182448A (ja) * | 2007-01-24 | 2008-08-07 | Canon Inc | パックビッツ符号化手段 |
CN101202548A (zh) * | 2007-12-28 | 2008-06-18 | 北京邮电大学 | 一种双游程数据编码方法 |
US7683809B2 (en) * | 2008-04-11 | 2010-03-23 | Aceurity, Inc. | Advanced lossless bit coding |
-
2008
- 2008-11-10 US US12/268,171 patent/US7804428B2/en not_active Expired - Fee Related
-
2009
- 2009-11-06 EP EP15160283.6A patent/EP2913932B1/en active Active
- 2009-11-06 JP JP2011535681A patent/JP5162708B2/ja active Active
- 2009-11-06 EP EP15160282.8A patent/EP2908438B1/en active Active
- 2009-11-06 KR KR1020117013197A patent/KR101171697B1/ko active IP Right Grant
- 2009-11-06 WO PCT/US2009/063526 patent/WO2010054178A1/en active Application Filing
- 2009-11-06 ES ES09775397.4T patent/ES2546542T3/es active Active
- 2009-11-06 EP EP09775397.4A patent/EP2364530B1/en active Active
- 2009-11-06 CN CN200980144553.1A patent/CN102210105B/zh active Active
- 2009-11-06 AU AU2009313449A patent/AU2009313449B2/en active Active
-
2012
- 2012-12-17 JP JP2012275041A patent/JP2013138422A/ja active Pending
-
2015
- 2015-06-23 JP JP2015125886A patent/JP6025923B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2010054178A1 (en) | 2010-05-14 |
EP2913932B1 (en) | 2019-10-16 |
EP2364530B1 (en) | 2015-06-03 |
CN102210105A (zh) | 2011-10-05 |
EP2364530A1 (en) | 2011-09-14 |
EP2908438B1 (en) | 2020-05-27 |
KR20110094046A (ko) | 2011-08-19 |
JP6025923B2 (ja) | 2016-11-16 |
AU2009313449A1 (en) | 2010-05-14 |
US7804428B2 (en) | 2010-09-28 |
EP2908438A1 (en) | 2015-08-19 |
CN102210105B (zh) | 2014-04-23 |
EP2913932A1 (en) | 2015-09-02 |
JP2012508522A (ja) | 2012-04-05 |
JP5162708B2 (ja) | 2013-03-13 |
JP2016006961A (ja) | 2016-01-14 |
US20100117875A1 (en) | 2010-05-13 |
AU2009313449B2 (en) | 2014-06-05 |
KR101171697B1 (ko) | 2012-08-06 |
JP2013138422A (ja) | 2013-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2546542T3 (es) | Sistema y procedimiento para comprimir un flujo de datos de valores enteros | |
US6862278B1 (en) | System and method using a packetized encoded bitstream for parallel compression and decompression | |
US8718147B2 (en) | Video compression algorithm | |
RU2505931C2 (ru) | Способы и устройства выборочного шифрования данных | |
US8125357B1 (en) | Deflate decompressor | |
CN101039374B (zh) | 一种图像无损压缩方法 | |
US7327289B1 (en) | Data-modifying run length encoder to avoid data expansion | |
US8908982B2 (en) | Image encoding device and image encoding method | |
US20080231483A1 (en) | Binarizing method and device thereof | |
JPH07212242A (ja) | 可変長復号化器 | |
JP2010178339A (ja) | ビットシーケンスを符号化するための方法及び装置 | |
JP2831888B2 (ja) | Hdtv復号化器 | |
KR100647192B1 (ko) | 데이터의 복원 시간을 단축하는 데이터 압축 장치 및 그방법 | |
JPH11168389A (ja) | データ圧縮装置 | |
JP5529255B2 (ja) | 入力ビットシーケンスを符号化する方法及び装置並びに対応する復号化方法及び装置 | |
KR100636370B1 (ko) | 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법 | |
EP2819412A1 (en) | Encoding and decoding | |
KR101865560B1 (ko) | 광학 송수신기 및 이를 이용한 데이터 맵핑 방법 | |
JP2011109678A (ja) | 改良されたマルチメディアデコーダに関する方法及び装置 | |
KR20090113208A (ko) | 정수들의 시퀀스를 인코딩하기 위한 방법, 인코딩된 정수 시퀀스를 운반하는 저장 디바이스 및 신호, 그리고 정수들의 시퀀스를 디코딩하기 위한 방법 | |
KR20160055985A (ko) | 바이너리 클러스터 분할 및 유니버설 코드 매핑을 이용한 데이터 압축 및 그 해제방법 | |
KR20160117883A (ko) | 모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법 |