ES2333492T3 - Codificacion y decodificacion aritmetica de una señal de informacion. - Google Patents
Codificacion y decodificacion aritmetica de una señal de informacion. Download PDFInfo
- 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
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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- 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
- H03M7/4006—Conversion to or from arithmetic code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
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).
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.
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.
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)
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 | 株式会社リコー | 算術符号化装置および算術復号装置 |
EP2016953A3 (en) * | 1998-12-22 | 2009-04-15 | Genentech, Inc. | Vascular endothelial cell growth factor antagonists and uses thereof |
CA2323014C (en) * | 1999-01-07 | 2008-07-22 | Koninklijke Philips Electronics N.V. | Efficient coding of side information in a lossless encoder |
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 | 윤종용 | 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법 |
WO2001067616A1 (en) | 2000-03-07 | 2001-09-13 | Koninklijke Philips Electronics N.V. | Arithmetic decoding of an arithmetically encoded information signal |
KR20020020886A (ko) | 2000-03-07 | 2002-03-16 | 요트.게.아. 롤페즈 | 산술적으로 인코딩된 정보신호의 산술 디코딩 |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | 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 |
US6879988B2 (en) | 2000-03-09 | 2005-04-12 | Pkware | 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 |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | 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)
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 |
-
1999
- 1999-02-22 BR BRPI9904879-5A patent/BR9904879B1/pt not_active IP Right Cessation
- 1999-02-22 TR TR1999/02831T patent/TR199902831T1/xx unknown
- 1999-02-22 WO PCT/IB1999/000310 patent/WO1999049579A2/en active IP Right Grant
- 1999-02-22 ES ES99902770T patent/ES2333492T3/es not_active Expired - Lifetime
- 1999-02-22 AT AT99902770T patent/ATE445935T1/de active
- 1999-02-22 PT PT99902770T patent/PT983635E/pt unknown
- 1999-02-22 KR KR1019997010797A patent/KR100604364B1/ko not_active IP Right Cessation
- 1999-02-22 AU AU22953/99A patent/AU757911B2/en not_active Expired
- 1999-02-22 EP EP99902770A patent/EP0983635B1/en not_active Expired - Lifetime
- 1999-02-22 JP JP54797499A patent/JP4179640B2/ja not_active Expired - Lifetime
- 1999-02-22 ID IDW991412A patent/ID24587A/id unknown
- 1999-02-22 DE DE69941528T patent/DE69941528D1/de not_active Expired - Lifetime
- 1999-02-22 CN CNB998003514A patent/CN1134896C/zh not_active Expired - Lifetime
- 1999-02-22 IL IL13304699A patent/IL133046A/en not_active IP Right Cessation
- 1999-03-16 AR ARP990101130A patent/AR014729A1/es active IP Right Grant
- 1999-03-19 US US09/273,285 patent/US6144320A/en not_active Expired - Lifetime
- 1999-03-21 EG EG29299A patent/EG22052A/xx active
- 1999-03-22 MY MYPI99001072A patent/MY129270A/en unknown
Also Published As
Publication number | Publication date |
---|---|
EG22052A (en) | 2002-06-30 |
MY129270A (en) | 2007-03-30 |
BR9904879B1 (pt) | 2011-11-16 |
IL133046A (en) | 2004-06-01 |
AU2295399A (en) | 1999-10-18 |
TR199902831T1 (xx) | 2000-07-21 |
KR20010012832A (ko) | 2001-02-26 |
US6144320A (en) | 2000-11-07 |
PT983635E (pt) | 2009-12-16 |
AU757911B2 (en) | 2003-03-13 |
ID24587A (id) | 2000-07-27 |
WO1999049579A3 (en) | 1999-11-11 |
AR014729A1 (es) | 2001-03-28 |
IL133046A0 (en) | 2001-03-19 |
CN1134896C (zh) | 2004-01-14 |
JP2002500849A (ja) | 2002-01-08 |
WO1999049579A2 (en) | 1999-09-30 |
DE69941528D1 (de) | 2009-11-26 |
CN1262816A (zh) | 2000-08-09 |
KR100604364B1 (ko) | 2006-07-25 |
EP0983635B1 (en) | 2009-10-14 |
ATE445935T1 (de) | 2009-10-15 |
EP0983635A2 (en) | 2000-03-08 |
JP4179640B2 (ja) | 2008-11-12 |
BR9904879A (pt) | 2000-09-19 |
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) | ||
US5677690A (en) | High speed variable length code decoding apparatus | |
WO2020186535A1 (zh) | 点云属性编码方法和装置以及点云属性解码方法和装置 | |
CA2398955C (en) | Method for compressing data | |
ES2390217T3 (es) | Compresión y expansión de datos de una señal de información digital | |
US7079050B2 (en) | Arithmetic decoding of an arithmetically encoded information signal | |
US5736946A (en) | High speed apparatus and method for decoding variable length code | |
US20030126538A1 (en) | High-efficiency compact turbo-decoder | |
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 | |
CN115706623A (zh) | 用于对数据进行编码和/或解码的方法、编码器和解码器 |