ES2333492T3 - Codificacion y decodificacion aritmetica de una señal de informacion. - Google Patents

Codificacion y decodificacion aritmetica de una señal de informacion. Download PDF

Info

Publication number
ES2333492T3
ES2333492T3 ES99902770T ES99902770T ES2333492T3 ES 2333492 T3 ES2333492 T3 ES 2333492T3 ES 99902770 T ES99902770 T ES 99902770T ES 99902770 T ES99902770 T ES 99902770T ES 2333492 T3 ES2333492 T3 ES 2333492T3
Authority
ES
Spain
Prior art keywords
value
parameter
symbol
size
values
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
Application number
ES99902770T
Other languages
English (en)
Inventor
Renatus J. Van Der Vleuten
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of ES2333492T3 publication Critical patent/ES2333492T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code

Abstract

Procedimiento para codificar aritméticamente una señal digital de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n>=1, usando registros primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo, comprendiendo el método las etapas de (a) introducir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente del símbolo asociado para la codificación, (b) recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente, (c) dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo, (d) actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información, (e) almacenar el valor actualizado para el parámetro A en el primer registro, (f) continuar el procedimiento en la etapa (a) para codificar el siguiente símbolo, caracterizado porque la etapa (b) comprende además la subetapa de cortar el valor del parámetro A 0,b0b1... bi-1bi... hasta el bit bi-1 y añadir "1" en la posición del bit bi-1 al valor truncado de A, si bi es igual a "1".

Description

Codificación y decodificación aritmética de una señal de información.
La invención se refiere a un método de codificación aritmética de una señal de información, a un aparato para la codificación aritmética de la señal de información y a un aparato para la decodificación de la señal de información codificada aritméticamente.
La codificación aritmética es una técnica ampliamente conocida para la codificación sin pérdidas y puede encontrarse una introducción en cualquier libro sobre codificación de fuente actual. Para entender en profundidad las implementaciones de la codificación aritmética más relevantes para el trabajo actual, se remite al lector a [Lang84]. La historia de la codificación aritmética se describe muy bien en el apéndice de este documento. Además, [Howard94] proporciona una detallada explicación de la codificación aritmética.
La implementación de la codificación aritmética objeto de la presente invención usa dos registros de tamaño finito, que normalmente se denominan C y A. El diagrama de flujo del funcionamiento del codificador se muestra en la figura 1. El registro C señala al límite inferior de un intervalo en la línea de número, cuyo tamaño se almacena en A, véase, por ejemplo [Lang81] y [Penn88]. El intervalo se divide en subintervalos, correspondiendo cada subintervalo a un símbolo que va a codificarse y correspondiendo el tamaño de cada subintervalo a la probabilidad del símbolo asociado. Para codificar realmente un símbolo, el registro C se ajusta para que señale al límite inferior del subintervalo correspondiente al símbolo y el registro A se ajusta al tamaño del subintervalo seleccionado. El registro A (así como C) se normaliza entonces (se desplaza hacia la izquierda), antes de codificar el siguiente símbolo. En general, tras la renormalización, el valor de A se sitúa entre los valores k y 2k: k\leqA<2k. En el presente ejemplo, se usará k=1/2.
Por ejemplo, en el caso binario, hay dos subintervalos y por tanto dos posibles actualizaciones de los registros C y A, dependiendo de si el bit que va a codificarse es el símbolo más probable (MPS) o el símbolo menos probable (LPS). Se supone que el MPS se asigna al intervalo inferior. El bloque "Actualizar A y C" de la figura 1 se muestra para el caso binario en la figura 2. La probabilidad de que el bit introducido sea el LPS se indica mediante p (obsérvese que p\leq1/2, por la probabilidad del MPS es \geq1/2). El bit introducido que va a codificarse se indica mediante b. Los valores de b y p se proporcionan por el bloque "Leer...". Ahora, si va a codificarse un MPS, C no cambia, ya que se selecciona el intervalo inferior y C ya señala a este intervalo. Sin embargo, A no cambia y su actualización es A=A-A.p (usando el hecho de que la probabilidad del MPS es igual a 1-p). Si va a codificarse un LPS, tanto C como A cambian: C se actualiza como C=C+A-A.p y el nuevo tamaño de intervalo es A=A.p. Debe observarse además que, mediante un procesamiento previo y uno posterior, puede garantizarse que el MPS sea siempre, por ejemplo, el bit "0" y que el LPS sea siempre el bit "1". Por último, la figura 2 muestra un bloque "multiplicación de aproximación", porque sucede que la multiplicación A.p puede realizarse con una precisión baja, con sólo una pequeña pérdida de rendimiento, reduciendo así la complejidad de hardware. Técnicas para realizar la multiplicación de aproximación se comentan más adelante a continuación.
Para el caso no binario, el bloque "Actualizar A y C" de la figura 1 se muestra en la figura 3. El bloque "Leer..." proporciona ahora el símbolo que va a codificarse, s, así como dos valores de probabilidad: la probabilidad p_{s} del símbolo s y la probabilidad acumulada p_{t} de todos los símbolos alineados por debajo del símbolo s. Como puede observarse a partir de la figura 3, el símbolo M se trata de manera diferente de los otros, con el fin de "llenar" A exactamente. En [Riss89] se muestra que es ventajoso asignar el MPS al símbolo M.
Para poder decodificar, el decodificador debe conocer el valor de C, ya que determina el símbolo que se codificó. Por tanto, lo que se envía al decodificador es el valor del registro C. En realidad, cada vez que se desplaza hacia la izquierda el registro A en el proceso de renormalización, el MSB de C (también denominado como "bit de transporte") se procesa para su transmisión al decodificador. El problema con usar un registro de tamaño finito para C es que un bit que se ha desplazado fuera de C podría tener que ajustarse más tarde por un transporte provocado por el incremento de C. Para tener esto en cuenta, es necesario un control sobre el transporte. Las técnicas existentes en la técnica actualmente resuelven por completo el problema en el codificador, de modo que el decodificador no se ve afectado por esto. Estas soluciones, que minimizan la complejidad del decodificador, se comentarán también más adelante.
El diagrama de flujo del decodificador es tal como se muestra en la figura 4. Para el caso binario, el bloque "Emitir símbolo..." se muestra en la figura 5. En el caso no binario, el decodificador es más complejo, ya que tiene que hallar la inversa de "C=C+D", sin conocer el valor de s.
La invención pretende proporcionar mejoras para los codificadores aritméticos anteriormente descritos. Según la invención, el procedimiento de codificación comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, usando registros primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo, comprendiendo el método las etapas de
(a) introducir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente del símbolo asociado para la codificación,
(b) recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
(c) dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
(d) actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
(e) almacenar el valor actualizado para el parámetro A en el primer registro,
(f) continuar el procedimiento en la etapa (a) para codificar el siguiente símbolo,
caracterizado porque la etapa (b) comprende además la subetapa de cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y añadir "1" en la posición del bit b_{i-1} al valor truncado de A, si b_{i} es igual a "1". En otra elaboración, el procedimiento de codificación comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, usando registros primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo, comprendiendo el método las etapas de
(a) introducir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente del símbolo asociado para la codificación,
(b) recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
(c) dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
(d) actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
(e) almacenar el valor actualizado para el parámetro A en el primer registro,
(f) continuar el procedimiento en la etapa (a) para codificar el siguiente símbolo,
caracterizado porque la etapa (b) comprende además la subetapa de cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y, si b_{i-1} = "0" y b_{i} = "1", aumentar b_{i-1} a "1". De nuevo en otra elaboración, el procedimiento de codificación comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, usando registros primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo, comprendiendo el método las etapas de
(a) introducir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente del símbolo asociado para la codificación,
(b) recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
(c) dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
(d) actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
(e) almacenar el valor actualizado para el parámetro A en el primer registro,
(f) continuar el procedimiento en la etapa (a) para codificar el siguiente símbolo,
caracterizado porque la etapa (b) comprende además la subetapa de cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y hacer que el bit b_{i-1} sea igual a "1".
Las mejoras presentadas en esta invención se refieren a los bloques de multiplicación de aproximación (que se usan tanto en el codificador como en el decodificador) y el control sobre el transporte, que tiene lugar en el bloque "Renormalizar...", sólo en el codificador.
Estos y otros aspectos de la invención se describirán más detalladamente a continuación, en los que
la figura 1 muestra un diagrama de flujo del codificador aritmético,
la figura 2 muestra el diagrama de flujo del bloque "Actualizar A y C" del codificador en la figura 1, para el caso binario. La probabilidad del LPS es p y el valor del bit que va a codificarse está contenido en b,
la figura 3 muestra el diagrama de flujo del bloque "Actualizar A y C" del codificador en la figura 1, para el caso no binario. El valor del símbolo que va a codificarse está contenido en s y su probabilidad está contenida en p_{s}. Los M+1 símbolos se numeran 0,...M. p_{t} = p_{0} + p_{1} + ... + ps-1 es la probabilidad acumulada de todos los símbolos alienados por debajo del símbolo s.
la figura 4 muestra un diagrama de flujo del decodificador,
la figura 5 muestra el diagrama de flujo del bloque "Emitir símbolo..." del codificador en la figura 4, para el caso binario. La probabilidad del LPS es p y el valor del bit que va a codificarse está en b,
la figura 6 muestra el diagrama de flujo del bloque del codificador denominado "Renormalizar..." en la figura 1,
la figura 7 muestra el diagrama de flujo del bloque del codificador denominado "Inicializar" en la figura 1,
la figura 8 muestra un diagrama de flujo del bloque del codificador denominado "Terminar" en la figura 1,
la figura 9 muestra un diagrama de flujo del bloque del decodificador denominado "Inicializar" en la figura 4,
la figura 10 muestra un diagrama de flujo del bloque del decodificador denominado "Renormalizar..." en la figura 4,
la figura 11 muestra una realización del aparato codificador, y
la figura 12 muestra una realización del aparato decodificador.
En lo que respecta a mejoras en la multiplicación, puede decirse lo siguiente. El problema de "evitar la multiplicación" A.p se resolvió en [Lang81] aproximando p por 2 esp{-Q}, donde Q es un número entero. La multiplicación por p corresponde entonces simplemente a un desplazamiento hacia la derecha en Q posiciones. Q se denomina el número de oblicuidad. Posteriormente, como por ejemplo en [Riss89], se normalizó el registro A de manera que 0,75 \leq A < 1,5. Se suponía entonces que A\approx1, de modo que A.p\approxp.
Se obtenía un rendimiento todavía mejor en [Chev91a] y [Chev91b]. Reivindican aproximar A eliminando todos los dígitos binarios menos significativos que un dígito binario 1 predeterminado, y su realización preferida es usar el segundo dígito binario 1 más significativo. Por tanto, en la realización preferida, el valor de A se aproxima por un número binario que contiene dos bits distintos de cero, lo que implica que la multiplicación puede realizarse usando un único desplazamiento y operación de suma. Por último, [Feyg93] describe una aproximación mejorada de A, que también puede implementarse usando un único desplazamiento y operación de suma.
El (los) método(s) que se usa(n) en realidad en la presente invención para aproximar la multiplicación son como sigue. Supóngase que las probabilidades (p) se describen usando NP bits. Por ejemplo, si NP=8, entonces p=1/4=2 exp{-2}=0,01 (binario) se representaría de manera binaria como 01000000, es decir no se incluye el "0," ya que es igual para todas las probabilidades. El tamaño del registro A se elige como NA=NP+NX bits, donde NX representa el número de bits que se usan para aproximar el valor de A que se usa para la multiplicación. Por ejemplo, supóngase que NX=3 y A=3/4=0,11, entonces A sería un registro de 8+3=11 bits que contiene 11000000000 (obsérvese que de nuevo se elimina "0,", ya que se normaliza A de manera que siempre es inferior a uno). Para la multiplicación, se aproxima A por un número de 3 bits; en este caso, está claro que la mejor aproximación es 110. El resultado de la multiplicación de aproximación A.p sería 00110000000, es decir, de nuevo un número de 11 bits. Esta forma de implementar la multiplicación de aproximación se sugirió, entre otros, en [Feyg93].
A continuación se proporciona un comentario en cuanto a cómo debe aproximarse el número A de NA bits por NX bits.
La primera forma de aproximar A (el procedimiento P1) comprende la medida de redondear A a NX bits en lugar de cortarlo. Redondeo significa que A se corta hasta NX bits si el bit de orden (NX+1) de A es un 0 y que se añade 1 a esta representación cortada si el bit de orden (NX+1) es un 1. Por ejemplo, si A=1101..., la aproximación de 3 bits sería 111. El redondeo que se aplica aumenta la complejidad, ya que, en aproximadamente la mitad de los casos, tiene que añadirse 1 a la representación cortada, lo que significa o bien una operación de suma o bien que debe realizarse una consulta a una tabla.
Como alternativa (procedimiento P2), se propone adoptar lo que se denomina un "redondeo parcial". Mediante el redondeo parcial, sólo se añade un 1 a la representación cortada de A en caso de que el bit de orden (NX+1) sea un "1" y el bit de orden NX sea un "0". En la implementación, esto significa que el bit de orden NX de la aproximación de A es igual al O lógico de los bits de orden NX y (NX+1) de la A original. Por ejemplo, A=1011... se aproximaría por 101 y A=1001... se aproximaría por 101 también, mientras que A=1000... se aproximaría por 100. Obsérvese que el redondeo parcial da como resultado la misma aproximación que el "redondeo completo" en aproximadamente un 75% de los casos.
Como otra alternativa (procedimiento P3), se propone aproximar A cortándolo hasta NX bits y ajustar siempre el bit de orden NX de la aproximación a 1, con la idea de que esto reduce adicionalmente la complejidad de una implementación de hardware, ya que elimina la mitad de los posibles valores de aproximación para A.
El rendimiento de algunos procedimientos conocidos se ha comparado con los tres nuevos procedimientos descritos anteriormente. Los rendimientos de los diversos procedimientos se enumeran en la tabla I. Los procedimientos que se muestran en la tabla, además de los tres procedimientos de aproximación (P1, P2 y P3) anteriormente descritos, son un procedimiento de referencia, indicado como "referencia", que calcula la multiplicación dNAxNP bits completa y sólo entonces corta A hasta NA bits, el procedimiento de [Moff95], el procedimiento de [Chev91a], el procedimiento descrito en la sección 3 de Feyg93, indicado como Feyg93(1), y el procedimiento descrito en la sección 4 de Feyg93, indicado como Feyg93(2).
1
Los números que se enumeran son tamaños relativos de los archivos comprimidos, correspondiendo 100 a "sin pérdida" debido a una aproximación imperfecta de la multiplicación. Por ejemplo, un número de 100,57 significa que el tamaño del archivo comprimido se incrementa en un 0,57% debido a la multiplicación de aproximación.
Como se esperaba, el rendimiento del procedimiento P2 es mejor que el del procedimiento Moff95, pero no tan bueno como el del procedimiento P1.
El procedimiento P2 es un buen punto intermedio. De manera más específica, P2 para NX=3 y NX=4 proporciona un buen equilibrio entre rendimiento y complejidad, ya que su rendimiento es prácticamente el mismo que el del procedimiento P1 (véase la tabla anterior) con una menor complejidad. Para NX=2, el procedimiento P1 es el procedimiento preferido, mientras que puede usarse el procedimiento P3 para NX=5 y superiores.
En el caso no binario, los procedimientos que pueden aproximar el valor de A redondeando hacia arriba tienen el potencial problema de que podría no quedar "sitio" para el MPS, cuando aumenta el tamaño del alfabeto [Feyg93]. Para el procedimiento Feyg93(2), el límite de peor caso en el tamaño de alfabeto es 11 [Feyg93]. Los nuevos procedimientos de aproximación propuestos ahora tienen la ventaja de que la cantidad en la que puede aumentarse A mediante redondeo hacia arriba disminuye a medida que aumenta NX. Por lo tanto, si hay una aplicación en la que la distribución de probabilidad es tal que el tamaño de alfabeto es limitado (y el rendimiento de los procedimientos que sólo pueden cortar, o redondear hacia abajo, es insuficiente), puede manejarse un alfabeto mayor aumentando
NX.
El problema del control de transporte en la etapa de renormalización en el codificador se resolvió originalmente mediante una técnica denominada "relleno de bits" [Lang81]. Esta técnica "atrapa" el transporte insertando un bit 0 de relleno en el flujo codificado en caso de que se encuentre una serie de bits 1. Las desventajas de esta técnica son que reduce la eficacia de la compresión, debido a los bits de relleno adicionales, y que requiere un procesamiento especial en el decodificador.
Un procedimiento para evitar el transporte sin afectar al rendimiento de compresión se describió en [Witt87]. Este procedimiento tiene la desventaja de que la complejidad del decodificador se ve algo aumentada. La idea de [Witt87] se adaptó en [Cham90], de manera que pudiera usarse sin aumentar la complejidad del decodificador.
En el presente documento se presenta una solución que no aumenta la complejidad del decodificador. El diagrama de flujo del procedimiento de renormalización del codificador según la invención se muestra en la figura 6. La mejora principal es el bloque con C < 0,10...?. Para este mismo bloque, la técnica anterior usa C+A<=1,0...?, y por tanto requiere una operación de suma adicional, en comparación con la presente propuesta.
Para completar la descripción del codificador, se muestran los bloques de inicialización y terminación en la figura 7 y la figura 8, respectivamente. La variable contador es la misma que la usada en el bloque de renormalización del codificador mostrado en la figura 6. Puesto que el tamaño de C es (NA+1) bits (en el codificador), tiene NA bits fraccionales ("bits después de la coma"), que se emiten en la terminación, tal como muestra la figura 8.
La inicialización del decodificador se muestra en la figura 9. El registro C se llena leyendo (NA+1) bits del flujo. El primer bit leído es "falso", ya que siempre es un bit "0". El tamaño del registro C en el decodificador es sólo de NA bits, por tanto uno menos que en el codificador. No hay ninguna terminación especial en el decodificador (el bloque "terminación" en la figura 4 está vacío). La renormalización en el decodificador (el bloque "Renormalizar..." en la figura 4) se muestra en la figura 10.
La figura 11 muestra una realización del aparato codificador según la invención. El aparato comprende terminales 100 y 102 de entrada para recibir la señal de información y una señal de probabilidad, respectivamente. La señal de información comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1. La señal de probabilidad aplicada al terminal 102 de entrada comprende una o más probabilidades para cada símbolo en la señal de información. Para símbolos binarios, la señal de probabilidad comprende una probabilidad para cada símbolo. Están presentes registros 104 y 106 primero y segundo de tamaño finito, respectivamente, para almacenar el parámetro A y el parámetro C.
Una unidad 108 de procesamiento está disponible para llevar a cabo la codificación aritmética en la señal de información. Ha de entenderse que, sin entrar muy en detalle en lo que respecta a la unidad 108 de procesamiento, esta unidad comprende sistemas de circuitos para recuperar valores para los parámetros A y C desde los registros primero y segundo, así como conjuntos de circuitos para almacenar los valores actualizados y renormalizados para A y C en los registros 104 y 106 primero y segundo, respectivamente, después de haber codificado un símbolo. Además, la unidad 108 comprende sistemas de circuitos para dividir el intervalo de valores correspondiente al valor recuperado del primer registro 104 en subintervalos correspondientes a dicho al menos un valor de probabilidad aplicado al terminal 102 de entrada, y conjuntos de circuitos para seleccionar uno de los subintervalos en respuesta a dicho símbolo aplicado al terminal 100 de entrada.
También están presentes conjuntos de circuitos para actualizar los parámetros A y C, siendo estos conjuntos de circuitos necesarios para adecuar el valor A al tamaño del subintervalo seleccionado, y para adecuar el valor C a un límite de dicho subintervalo.
Un terminal 110 de salida está disponible que emite bits codificados en respuesta a los símbolos codificados.
Los medios de recuperación para recuperar los parámetros A y C de sus correspondientes registros comprenden además medios para cortar el valor del parámetro A, antes de llevar a cabo el cálculo A.p. De manera más específica este corte puede ser como sigue: se supone que el valor para A se expresa como 0,b_{0}b_{1}... b_{i-1}b_{i}... Este valor se corta hasta el bit b_{i-1} y se añade un "1" en la posición del bit b_{i-1} al valor cortado de A, si b_{i} es igual a "1".
En otra elaboración, el valor del parámetro A se corta hasta el bit b_{i-1} y, si b_{i-1} = "0" y b_{i} = "1", el bit b_{i-1} se aumenta a "1". De nuevo en otra elaboración, el parámetro A se corta hasta el bit b_{i-1} y se hace que el bit b_{i-1} sea igual a "1".
Se apreciará que la unidad 108 de procesamiento puede llevar a cabo el procedimiento, tal como se da a conocer en las figuras 1, 2, 3, 6, 7 y 8.
Preferiblemente, el aparato codificador está dotado además de una unidad 112 de codificación en canal, ampliamente conocida en la técnica, para la codificación en canal (y, en caso necesario, la codificación con corrección de errores) de la señal de información codificada en una señal de información codificada en canal, y una unidad 104 de escritura para escribir la señal codificada en canal en un soporte de grabación, tal como un soporte 116 de grabación magnético, o un soporte 118 de grabación óptico.
La figura 12 muestra una realización del aparato decodificador según la invención. El aparato decodificador comprende un terminal 120 de entrada para recibir la señal de información codificada. Están presentes registros 122 y 124 primero y segundo de tamaño finito para almacenar el parámetro A y el parámetro C, respectivamente.
Una unidad 126 de procesamiento está disponible para llevar a cabo la decodificación aritmética en la señal de información codificada que se recibe a través de la entrada 120, en respuesta a una señal de probabilidad suministrada a la unidad 126 de procesamiento a través de una entrada 134. La señal de probabilidad puede obtenerse de una manera que se conoce bien. Un ejemplo de derivación de las probabilidades para una señal de audio de 1 bit se muestra en [Bruek97]. En este ejemplo, las probabilidades se derivan a partir de la señal de salida decodificada que se suministra a la salida 128, concretamente llevando a cabo un filtrado de predicción sobre la señal de salida decodificada en el filtro 136 de predicción y generando la señal de probabilidad en respuesta a la señal de salida del filtro 136 de predicción en la unidad 138 de determinación de la probabilidad. Ha de entenderse que, sin entrar muy en detalle en lo que respecta a la unidad 126 de procesamiento, esta unidad comprende sistemas de circuitos para recuperar valores para los parámetros A y C desde los registros primero y segundo, así como conjuntos de circuitos para almacenar los valores actualizados y renormalizados para A y C en los registros 122 y 124 primero y segundo, respectivamente, después de haber decodificado un símbolo. Además, la unidad 126 de procesamiento comprende conjuntos de circuitos para llevar a cabo las etapas mostradas en las figuras 4, 5, 9 y 10.
El conjunto de circuitos para recuperar el valor del parámetro A del registro 122 comprende además medios para cortar el valor del parámetro A antes de llevar a cabo el cálculo de A.p. Este corte se realiza del mismo modo al descrito anteriormente para el codificador, de modo que se prescinde de una descripción adicional.
Preferiblemente, el aparato decodificador está dotado además de una unidad 132 de decodificación en canal, ampliamente conocida en la técnica, para la decodificación en canal (y, en caso necesario, con corrección de errores) de la señal de información codificada en canal en la señal de información codificada aritméticamente para el decodificador 126 aritmético, y una unidad 130 de lectura para leer la señal codificada en canal desde el soporte de grabación, tal como el soporte 116 de grabación magnético, o el soporte 118 de grabación óptico.
La codificación aritmética se aplica en la mayor parte de esquemas de codificación con y sin pérdidas modernos para vídeo y audio. Puede aplicarse también en la compresión de datos informáticos (tal como, por ejemplo, archivos de texto). La aplicación concebida en el presente documento es la codificación sin pérdidas de señales de audio de 1 bit. Se hacer referencia a este respecto a los documentos US n.º de serie 08/966.375, correspondiente a la solicitud de patente europea n.º 97201680.2 (PHN16405), US n.º de serie 08/937.435, correspondiente a la solicitud de patente internacional n.º IB 97/01156 (PHN16452).
Aunque la invención se ha descrito con referencia a realizaciones preferidas de la misma, ha de entenderse que no se trata de ejemplos limitativos. Por tanto, diversas modificaciones pueden resultar evidentes para los expertos en la técnica sin salirse del alcance de la invención, tal como se define por las reivindicaciones.
[Lang81]
G.G. Langdon et al, "Compression of black-white images with arithmetic coding", IEEE Trans. on Com., Vol. COM-29, págs. 858-67, junio de 1981.
[Witt87]
I.H. Witten et al, "Arithmetic coding for data compression", Communications ACM, Vol. 30, págs. 520-540, junio de 1987.
[Lang 84]
G.G. Langdon, "An introduction to arithmetic coding", IBM J. Res. Develop., Vol. 28, págs. 135-149, marzo de 1984.
[Penn88]
W.B. Pennebaker et al, "An overview of the basic principles of the Q-coder adaptive binary arithmetic coder", IBM J. Res. Develop., Vol. 32, págs. 717-26, Nov. 1988.
[Riss89]
J. Rissanen et al, "A multiplication-free multialphabet arithmetic code", IEEE Trans on Com, Vol. 37, págs. 93-8, febrero de 1989
[Cham90]
USP 4.973.961
[Chev91a]
D. Chevion et al, "High efficiency, multiplication free approximation of arithmetic coding" en Data Compression Conference (DCC '91), págs. 43-52, 1991
[Chev91b]
USP 4.989.000.
[Feyg93]
G. Feygin et al, "Minimizing error and VLSI complexity in the multiplication free approximation of arithmetic coding en Data Compression Conference" (DCC '93), págs. 118-127, 30 de marzo - 1 de abril, 1993.
[Howard94]
P.G. Howard et al, "Arithmetic coding for data compression", Proc. IEEE, Vol. 82, no. 6, págs. 857-65, junio de 1994.
[Moff95]
Conference A. Moffat et al, "Arithmetic coding revisited" en Data Compression Conference (DCC'95), págs. 202-11, 1995.
[Bruek97]
F. Bruekers et al, "Improved lossless coding of 1-bit audio signals", presentado en la 103ª Convención de la AES, 26-29 de septiembre de 1997, edición preliminar 4563(I-6)

Claims (26)

1. Procedimiento para codificar aritméticamente una señal digital de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, usando registros primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo, comprendiendo el método las etapas de
(a) introducir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente del símbolo asociado para la codificación,
(b) recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
(c) dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
(d) actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
(e) almacenar el valor actualizado para el parámetro A en el primer registro,
(f) continuar el procedimiento en la etapa (a) para codificar el siguiente símbolo,
caracterizado porque la etapa (b) comprende además la subetapa de cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y añadir "1" en la posición del bit b_{i-1} al valor truncado de A, si b_{i} es igual a "1".
2. Procedimiento para codificar aritméticamente una señal digital de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, usando registros primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo, comprendiendo el método las etapas de
(a) introducir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente del símbolo asociado para la codificación,
(b) recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
(c) dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
(d) actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
(e) almacenar el valor actualizado para el parámetro A en el primer registro,
(f) continuar el procedimiento en la etapa (a) para codificar el siguiente símbolo,
caracterizado porque la etapa (b) comprende además la subetapa de cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y, si b_{i-1} = "0" y b_{i} = "1", aumentar b_{i-1} a "1".
3. Procedimiento para codificar aritméticamente una señal digital de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, usando registros primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo, comprendiendo el método las etapas de
(a) introducir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente del símbolo asociado para la codificación,
(b) recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
(c) dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
(d) actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
(e) almacenar el valor actualizado para el parámetro A en el primer registro,
(f) continuar el procedimiento en la etapa (a) para codificar el siguiente símbolo,
caracterizado porque la etapa (b) comprende además la subetapa de cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y hacer que el bit b_{i-1} sea igual a "1".
4. Procedimiento según la reivindicación 1, 2 ó 3, comprendiendo la etapa de actualización también actualizar el valor C de modo que el valor del parámetro C se ponga en relación de correspondencia con un límite del subintervalo seleccionado, con el fin de convertirse en el nuevo parámetro C para codificar el siguiente símbolo en la señal de información, comprendiendo además la etapa de almacenamiento almacenar el valor actualizado del parámetro C en el segundo registro.
5. Procedimiento según la reivindicación 1, 2, 3 ó 4, comprendiendo además la etapa de actualización la subetapa de renormalizar los valores para los parámetros A y C, antes de almacenar los valores renormalizados para los parámetros A y C en los registros primero y segundo, respectivamente, caracterizado porque la subetapa de renormalización comprende
(g1) comparar el valor para A con un primer valor binario, si el valor para A no es más pequeño que dicho primer valor binario, abandonar la etapa de renormalización y, si el valor para A es más pequeño que dicho primer valor binario, entonces
(g2) multiplicar el valor para A por un primer valor de número entero,
(g3) volver a (g1).
6. Procedimiento según la reivindicación 5, caracterizado porque si A es más pequeño que dicho primer valor binario en (g1)
(g4) comparar el valor para C con un segundo y un tercer valor binario, siendo el segundo valor binario más grande que dicho tercer valor binario, y porque, si el valor para C es más pequeño que dicho segundo valor binario, y más grande o igual que dicho tercer valor binario, entonces
(g4) restar un cuarto valor binario del valor para C de modo que se obtiene un valor intermedio para C,
(g2) multiplicar el valor intermedio para C por un segundo valor de número entero.
7. Procedimiento según la reivindicación 5, caracterizado porque el primer valor binario es igual a 0,100...0.
8. Procedimiento según la reivindicación 5, caracterizado porque el segundo valor binario es igual a 1,000...0.
9. Procedimiento según la reivindicación 5, caracterizado porque el primer valor de número entero es igual a 2.
10. Procedimiento según la reivindicación 6, caracterizado porque el tercer valor binario es igual a 0,100...0.
11. Procedimiento según la reivindicación 6, caracterizado porque el cuarto valor binario es igual a 0,1000...0.
12. Procedimiento según la reivindicación 6, caracterizado porque el segundo valor de número entero es igual a 2.
13. Procedimiento según una cualquiera de las reivindicaciones anteriores, caracterizado porque comprende además la etapa de codificar en canal la señal de información codificada en una señal codificada de canal.
14. Procedimiento según la reivindicación 13, caracterizado porque comprende además la etapa de grabar la señal de canal en un soporte de grabación.
15. Aparato para codificar aritméticamente una señal digital de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, comprendiendo el aparato
- registros (104, 106) primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo,
- medios (100, 102) de entrada para recibir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente para el símbolo asociado para la codificación,
- medios de recuperación para recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
- medios para dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
- medios para actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
- medios para almacenar el valor actualizado para el parámetro A en el primer registro,
caracterizado porque los medios de recuperación comprenden además medios para cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y añadir "1" en la posición del bit b_{i-1} al valor truncado de A, si b_{i} es igual a "1".
16. Aparato para codificar aritméticamente una señal de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, comprendiendo el aparato
- registros (104, 106) primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo,
- medios (100, 102) de entrada para recibir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente para el símbolo asociado para la codificación,
- medios de recuperación para recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
- medios para dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
- medios para actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
- medios para almacenar el valor actualizado para el parámetro A en el primer registro,
caracterizado porque los medios de recuperación comprenden además medios para cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y, si b_{i-1} = "0" y b_{i} = "1", aumentar b_{i-1} a "1".
17. Aparato para codificar aritméticamente una señal de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, comprendiendo el aparato
- registros (104, 106) primero y segundo de tamaño finito para almacenar un parámetro A y un parámetro C, respectivamente, teniendo el parámetro C una relación con un límite de un intervalo de valores y teniendo el parámetro A una relación con el tamaño de dicho intervalo,
- medios (100, 102) de entrada para recibir un símbolo de la señal de información y al menos un valor de probabilidad correspondiente para el símbolo asociado para la codificación,
- medios de recuperación para recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
- medios para dividir el intervalo de valores correspondiente al valor recuperado del primer registro en subintervalos correspondientes a dicho al menos un valor de probabilidad, y seleccionar uno de los subintervalos en respuesta a dicho símbolo,
- medios para actualizar al menos el parámetro A de modo que su valor se adecue al tamaño del subintervalo seleccionado, con el fin de convertirse en el nuevo tamaño del intervalo para codificar el siguiente símbolo en la señal de información,
- medios para almacenar el valor actualizado para el parámetro A en el primer registro,
caracterizado porque los medios de recuperación comprenden además medios para cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y hacer que el bit b_{i-1} sea igual a "1".
18. Aparato según la reivindicación 15, 16 ó 17, que comprende además medios para renormalizar los valores para los parámetros A y C, antes de almacenar los valores renormalizados para los parámetros A y C en los registros primero y segundo, respectivamente,
caracterizado porque los medios de renormalización comprenden medios para
(g1) comparar el valor para A con un primer valor binario, si el valor para A no es más pequeño que dicho primer valor binario, abandonar la etapa de renormalización y, si el valor para A es más pequeño que dicho primer valor binario, entonces
(g2) multiplicar el valor para A por un primer valor de número entero.
19. Aparato según la reivindicación 18, caracterizado porque los medios de renormalización comprenden además medios para
(g4) comparar el valor para C con un segundo y un tercer valor binario, siendo el segundo valor binario más grande que dicho tercer valor binario,
(g4) restar un cuarto valor binario del valor para C de modo que se obtiene un valor intermedio para C,
(g2) multiplicar el valor intermedio para C por un segundo valor de número entero.
20. Aparato según una cualquiera de las reivindicaciones 15 a 19, caracterizado porque comprende además medios (112) para codificar en canal la señal de información codificada en una señal codificada de canal.
21. Aparato según la reivindicación 20, caracterizado porque comprende además medios (114) para grabar la señal de canal en un soporte de grabación.
22. Aparato para decodificar aritméticamente una señal de información codificada aritméticamente en una señal de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, comprendiendo el aparato
- medios (120) de entrada para recibir la señal de información codificada aritméticamente,
- registros (122, 124) primero y segundo de tamaño finito, siendo el primer registro (122) para almacenar un parámetro A, teniendo el parámetro A una relación con el tamaño de un intervalo de valores, siendo el segundo registro (124) para almacenar un parámetro C, obteniéndose el contenido del segundo registro antes de una etapa de decodificación a partir del contenido del segundo registro obtenido en una etapa de decodificación previa, desplazando m bits de la señal de información codificada aritméticamente en el segundo registro, siendo m un número entero variable para el que: m\geq0,
- medios (138) de generación para generar al menos un valor de probabilidad para un símbolo asociado que va a decodificarse,
- medios de recuperación para recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
- medios de derivación para derivar un símbolo en respuesta a dicho al menos un valor de probabilidad, y en respuesta a un valor para A y un valor para C,
- medios para actualizar al menos el parámetro A para convertirse en el nuevo tamaño del intervalo para decodificar el siguiente símbolo de la señal de información,
- medios (128) para emitir el símbolo derivado,
- medios para almacenar el valor actualizado para el parámetro A en el primer registro,
caracterizado porque los medios de recuperación comprenden además medios para cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y añadir "1" en la posición del bit b_{i-1} al valor truncado de A, si b_{i} es igual a "1".
23. Aparato para decodificar aritméticamente una señal de información codificada aritméticamente en una señal de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, comprendiendo el aparato
- medios (120) de entrada para recibir la señal de información codificada aritméticamente,
- registros (122, 124) primero y segundo de tamaño finito, siendo el primer registro (122) para almacenar un parámetro A, teniendo el parámetro A una relación con el tamaño de un intervalo de valores, siendo el segundo registro (124) para almacenar un parámetro C, obteniéndose el contenido del segundo registro antes de una etapa de decodificación a partir del contenido del segundo registro obtenido en una etapa de decodificación previa, desplazando m bits de la señal de información codificada aritméticamente en el segundo registro, siendo m un número entero variable para el que: m\geq0,
- medios (138) de generación para generar al menos un valor de probabilidad para un símbolo asociado que va a decodificarse,
- medios de recuperación para recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
- medios de derivación para derivar un símbolo en respuesta a dicho al menos un valor de probabilidad, y en respuesta a un valor para A y un valor para C,
- medios para actualizar al menos el parámetro A para convertirse en el nuevo tamaño del intervalo para decodificar el siguiente símbolo de la señal de información,
- medios (128) para emitir el símbolo decodificado,
- medios para almacenar el valor actualizado para el parámetro A en el primer registro,
caracterizado porque los medios de recuperación comprenden además medios para cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y, si b_{i-1} = "0" y b_{i} = "1", aumentar b_{i-1} a "1".
24. Aparato para decodificar aritméticamente una señal de información codificada aritméticamente en una señal de información que comprende una secuencia en serie de símbolos de n bits, siendo n un número entero para el que n\geq1, comprendiendo el aparato
- medios (12) de entrada para recibir la señal de información codificada aritméticamente,
- registros (122, 124) primero y segundo de tamaño finito, siendo el primer registro (122) para almacenar un parámetro A, teniendo el parámetro A una relación con el tamaño de un intervalo de valores, siendo el segundo registro (124) para almacenar un parámetro C, obteniéndose el contenido del segundo registro antes de una etapa de decodificación a partir del contenido del segundo registro obtenido en una etapa de decodificación previa, desplazando m bits de la señal de información codificada aritméticamente en el segundo registro, siendo m un número entero variable para el que: m\geq0,
- medios de generación para generar al menos un valor de probabilidad para un símbolo asociado que va a decodificarse,
- medios de recuperación para recuperar los valores para los parámetros A y C de los registros primero y segundo, respectivamente,
- medios de derivación para derivar un símbolo en respuesta a dicho al menos un valor de probabilidad, y en respuesta a un valor para A y un valor para C,
- medios para actualizar al menos el parámetro A para convertirse en el nuevo tamaño del intervalo para decodificar el siguiente símbolo de la señal de información,
- medios para emitir el símbolo decodificado,
- medios para almacenar el valor actualizado para el parámetro A en el primer registro,
caracterizado porque los medios de recuperación comprenden además medios para cortar el valor del parámetro A 0,b_{0}b_{1}... b_{i-1}bi... hasta el bit b_{i-1} y hacer que el bit b_{i-1} sea igual a "1".
25. Aparato de decodificación según la reivindicación 22, 23 ó 24, caracterizado porque comprende además medios (132) de decodificación en canal para codificar en canal la señal de información codificada aritméticamente, antes de la decodificación aritmética.
26. Aparato según la reivindicación 25, caracterizado porque comprende además medios (130) de lectura para leer la señal de información codificada en canal codificada aritméticamente desde un soporte de grabación.
ES99902770T 1998-03-23 1999-02-22 Codificacion y decodificacion aritmetica de una señal de informacion. Expired - Lifetime ES2333492T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP98200914 1998-03-23
EP98200914 1998-03-23

Publications (1)

Publication Number Publication Date
ES2333492T3 true ES2333492T3 (es) 2010-02-22

Family

ID=8233501

Family Applications (1)

Application Number Title Priority Date Filing Date
ES99902770T Expired - Lifetime ES2333492T3 (es) 1998-03-23 1999-02-22 Codificacion y decodificacion aritmetica de una señal de informacion.

Country Status (18)

Country Link
US (1) US6144320A (es)
EP (1) EP0983635B1 (es)
JP (1) JP4179640B2 (es)
KR (1) KR100604364B1 (es)
CN (1) CN1134896C (es)
AR (1) AR014729A1 (es)
AT (1) ATE445935T1 (es)
AU (1) AU757911B2 (es)
BR (1) BR9904879B1 (es)
DE (1) DE69941528D1 (es)
EG (1) EG22052A (es)
ES (1) ES2333492T3 (es)
ID (1) ID24587A (es)
IL (1) IL133046A (es)
MY (1) MY129270A (es)
PT (1) PT983635E (es)
TR (1) TR199902831T1 (es)
WO (1) WO1999049579A2 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0895361A3 (en) * 1997-07-31 2000-03-15 AT&T Corp. Z-coder: A fast adaptive binary arithmetic coder
JP4160689B2 (ja) * 1998-11-10 2008-10-01 株式会社リコー 算術符号化装置および算術復号装置
DE69926536T3 (de) * 1998-12-22 2013-09-12 Genentech, Inc. Antagonisten von vaskular-endothelialen zellwachstumsfaktoren und ihre anwendung
JP4482237B2 (ja) * 1999-01-07 2010-06-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 無損失エンコーダにおけるサイド情報の効率的な符号化
FR2792150B1 (fr) * 1999-04-08 2003-02-28 Canon Kk Procedes et dispositis de codage et de decodage de signaux numeriques, et systemes les mettant en oeuvre
KR100316785B1 (ko) * 1999-11-04 2001-12-13 윤종용 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법
JP2003526986A (ja) 2000-03-07 2003-09-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 算術的に符号化された情報信号の算術復号化
KR20020020886A (ko) 2000-03-07 2002-03-16 요트.게.아. 롤페즈 산술적으로 인코딩된 정보신호의 산술 디코딩
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US7844579B2 (en) 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
JP3620506B2 (ja) * 2002-02-28 2005-02-16 ソニー株式会社 Mq−coder方式の算術符号化/復号装置及び再正規化方法
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
WO2005034092A2 (en) * 2003-09-29 2005-04-14 Handheld Entertainment, Inc. Method and apparatus for coding information
CN101742283B (zh) * 2008-11-26 2011-11-23 财团法人工业技术研究院 解码方法及装置
US8207875B2 (en) 2009-10-28 2012-06-26 Motorola Mobility, Inc. Encoder that optimizes bit allocation for information sub-parts

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4891643A (en) * 1986-09-15 1990-01-02 International Business Machines Corporation Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US5418532A (en) * 1993-05-13 1995-05-23 Bell Communications Research, Inc. Method and system for efficient, multiplication-free arithmetic coding

Also Published As

Publication number Publication date
KR20010012832A (ko) 2001-02-26
BR9904879A (pt) 2000-09-19
IL133046A0 (en) 2001-03-19
PT983635E (pt) 2009-12-16
CN1134896C (zh) 2004-01-14
EG22052A (en) 2002-06-30
KR100604364B1 (ko) 2006-07-25
JP2002500849A (ja) 2002-01-08
CN1262816A (zh) 2000-08-09
EP0983635A2 (en) 2000-03-08
ATE445935T1 (de) 2009-10-15
WO1999049579A3 (en) 1999-11-11
AU2295399A (en) 1999-10-18
MY129270A (en) 2007-03-30
JP4179640B2 (ja) 2008-11-12
ID24587A (id) 2000-07-27
US6144320A (en) 2000-11-07
DE69941528D1 (de) 2009-11-26
AU757911B2 (en) 2003-03-13
WO1999049579A2 (en) 1999-09-30
IL133046A (en) 2004-06-01
EP0983635B1 (en) 2009-10-14
AR014729A1 (es) 2001-03-28
BR9904879B1 (pt) 2011-11-16
TR199902831T1 (xx) 2000-07-21

Similar Documents

Publication Publication Date Title
ES2333492T3 (es) Codificacion y decodificacion aritmetica de una señal de informacion.
US8711019B1 (en) Context-based adaptive binary arithmetic coding engine
KR100950607B1 (ko) 허프만 코딩
US5912636A (en) Apparatus and method for performing m-ary finite state machine entropy coding
US5973626A (en) Byte-based prefix encoding
US5272478A (en) Method and apparatus for entropy coding
US5436626A (en) Variable-length codeword encoder
US9094039B2 (en) Efficient deflate decompression
ES2316749T3 (es) Procedimiento y disposicion para la codificacion y la descodificacion aritmetica de estados binarios asi como programa informatico correspondiente y medio de almacenamiento legible por ordenador correspondiente.
US4630032A (en) Apparatus for decoding error-correcting codes
JPS6148298B2 (es)
Slattery et al. The qx-coder
US5677690A (en) High speed variable length code decoding apparatus
CA2398955C (en) Method for compressing data
ES2390217T3 (es) Compresión y expansión de datos de una señal de información digital
US5736946A (en) High speed apparatus and method for decoding variable length code
US20030126538A1 (en) High-efficiency compact turbo-decoder
US20220005229A1 (en) Point cloud attribute encoding method and device, and point cloud attribute decoding method and devcie
US5708430A (en) High speed variable length code decoding apparatus
MXPA99010754A (es) Codificacion y decodificacion aritmetica de una señal de informacion
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JP2011109678A (ja) 改良されたマルチメディアデコーダに関する方法及び装置
KR100462060B1 (ko) 유니버셜 가변 길이 코드 부호어 다중 추출 방법 및 그를위한 룩-업 테이블 구성 방법
Sun et al. Lossless Coders
JPH06311046A (ja) データ符号化方式およびデータ復号方式およびデータ符号化/復号方式