ES2552696T3 - Sistema y método para codificación y decodificación aritmética - Google Patents

Sistema y método para codificación y decodificación aritmética Download PDF

Info

Publication number
ES2552696T3
ES2552696T3 ES10195913.8T ES10195913T ES2552696T3 ES 2552696 T3 ES2552696 T3 ES 2552696T3 ES 10195913 T ES10195913 T ES 10195913T ES 2552696 T3 ES2552696 T3 ES 2552696T3
Authority
ES
Spain
Prior art keywords
sequence
information
events
value
encoder
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
ES10195913.8T
Other languages
English (en)
Inventor
Frank Jan Bossen
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Application granted granted Critical
Publication of ES2552696T3 publication Critical patent/ES2552696T3/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
    • H03M7/4006Conversion to or from arithmetic code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un sistema para la codificación y decodificación aritmética que comprende - un codificador de entropía (1100) para convertir al menos una secuencia de eventos, en que cada secuencia de eventos incluye una pluralidad de eventos, a al menos una secuencia de información, en que cada secuencia de información incluye al menos una parte de información, en que la al menos una secuencia de eventos representa datos de entrada particionados en una serie de segmentos, que comprende: - un codificador aritmético (1115) configurado para generar cero o más partes de información de al menos una secuencia de información codificando al menos un evento de al menos una secuencia de eventos; y - un controlador (1120) acoplado con el codificador aritmético (1115) configurado para mantener una limitación del número de eventos de la secuencia de eventos con respecto al número de partes de información generadas incluyendo el número de eventos en la al menos una secuencia de eventos para ser igual o inferior que un número determinado por una función de una combinación lineal que incluye el número de partes de información generadas en la al menos una secuencia de información y el número de segmentos y - un descodificador configurado para descodificar la al menos una secuencia de información.

Description

5
10
15
20
25
30
35
40
45
50
55
60
Sistema y metodo para codificacion y decodificacion aritmetica.
SOLICITUDES RELACIONADAS
Esta solicitud de patente reivindica prioridad de la solicitud de patente provisional de Estados Unidos titulada "Limitar la Complejidad de un Codificador Aritmetico", de Frank Bossen, presentada el 23 de abril de 2002 y asignada como S / N 60 / 374.770.
ANTECEDENTES DE LA INVENCION
Esta solicitud se refiere al tratamiento de datos, y mas particularmente, a la codificacion y decodificacion de secuencias de datos en forma de una limitacion de complejidad reducida.
Es habitual comprimir una secuencia de datos (es decir, informacion binaria o M-aria) para su envfo desde una primera ubicacion a una segunda ubicacion. Por ejemplo, unos datos de video se pueden generar en la primera ubicacion, donde los datos representan una llamada de videoconferencia. Los datos se convierten habitualmente a una secuencia de eventos (es decir, eventos binarios). Para transmitir la secuencia de eventos a la segunda ubicacion, es deseable comprimir, o codificar, la secuencia de eventos a una secuencia de informacion, con el fin de reducir el tiempo necesario para la transmision de la secuencia de eventos a la segunda ubicacion. Habitualmente se utiliza un codificador aritmetico para comprimir la secuencia de eventos (es decir, los eventos binarios) a una secuencia de informacion de partes de informacion (es decir, bits binarios de informacion) para enviarla a la segunda ubicacion. Cuanto mayor sea la compresion, o la eficiencia de la codificacion, de la secuencia de informacion, mayor es la velocidad de transmision de la secuencia de informacion a la segunda ubicacion.
La compresion se consigue mediante la generacion de menos de una parte de informacion por evento que se codifica, en que las proporciones de eventos por partes de informacion que se codifica pueden llegar a 64:1 o incluso 128:1, dependiendo de la distribucion de probabilidad de los eventos. Se utiliza un decodificador aritmetico en la segunda ubicacion para descomprimir la secuencia de informacion a la secuencia de eventos, permitiendo de esta manera que los datos de video que representan la llamada de conferencia de video se presenten a un individuo en la segunda ubicacion.
La compresion de datos se utiliza tambien para otras finalidades. Otra de dichas utilizaciones puede ser para aumentar la calidad de video dada una cantidad de medios de almacenamiento para almacenar la secuencia de eventos. En este ejemplo se pueden utilizar codificadores para almacenar video (es decir, que representa una pelfcula) en una Memoria de Disco Compacto de Solo Lectura (CD-ROM) o Memoria de Video Disco Digital de Solo Lectura (DVD-ROM), o cualquier otro medio de almacenamiento incluyendo opticos, magneticos o de otro tipo, para su reproduccion en un momento posterior. Tal como se ha descrito anteriormente, la relacion de eventos por partes de informacion codificada puede llegar a 64:1 o 128:1, dependiendo de la distribucion de probabilidad de los eventos. En el momento posterior, se utiliza un decodificador para descomprimir la secuencia de informacion a la secuencia de eventos, permitiendo de ese modo que se utilice el video correspondiente u otros datos.
Sin embargo, a medida que la codificacion aumenta la eficiencia en el codificador, se requiere una mayor cantidad de proceso (es decir, operaciones de descodificacion) en el decodificador para decodificar la secuencia de partes de informacion de una longitud determinada a la secuencia de eventos. Dicho aumento de las necesidades de proceso puede ser perjudicial, especialmente cuando se desea que se proporcione la secuencia de eventos en modo de tiempo real. Por ejemplo, en el caso de una secuencia de eventos que representa video, en tiempo real indica que para la secuencia de informacion que representa un perfodo de tiempo (es decir, 1 segundo) de video, el decodificador es capaz de recibir la secuencia de informacion, y de decodificar la secuencia de informacion a la secuencia de eventos correspondiente dentro del perfodo de tiempo. A veces, dicho proceso en tiempo real no es posible con los esquemas de eficiencia aumentada utilizados en los codificadores convencionales.
Esta invencion esta dirigida a resolver uno o mas de los problemas expuestos anteriormente en una forma nueva y simple.
La patente US 6198848 describe un aparato de proceso de imagenes que implementa un sistema de control de frecuencia de manera que la cantidad de bits de datos por unidades de bloques individuales sean los mismos. Los datos de imagen transformada DCT se cuantifican y se codifican y tienen una longitud variable. El proceso iterativo se implementa para ajustar la cuantificacion si se excede un cierto presupuesto. Tambien se menciona el rellenado con ceros para garantizar una cantidad fija de datos por bloque.
5
10
15
20
25
30
35
40
45
50
55
60
WO9827734 describe un aparato de compresion y descompresion de bloques de longitud fija en que se adapta la frecuencia de bits por palabra comprimida sobre la base de los bits restantes en el bloque de salida.
BREVE RESUMEN DE LA INVENCION
La invencion se define mediante las reivindicaciones adjuntas.
BREVE DESCRIPCION DE VARIAS VISTAS DE LOS DIBUJOS
La Figura 1 es un diagrama de bloques de un codificador de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 2 es un diagrama de flujo que ilustra la inicializacion del codificador de la Figura 1 de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 3 es un diagrama de flujo que ilustra el funcionamiento del nucleo del motor del codificador de la Figura 1 de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 4 es un diagrama de flujo que ilustra el procedimiento de re-normalizacion para el codificador de la Figura 1 de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 5 es un diagrama de flujo que ilustra el funcionamiento del nucleo del motor del codificador de la Figura 1 al recibir una senal de finalizacion de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 6 es un diagrama de flujo que ilustra una rutina de Bit y Seguir llevada a cabo por el nucleo del motor de la Figura 1 de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 7 es un diagrama de bloques que ilustra un decodificador de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 8 es un diagrama de flujo que ilustra la inicializacion del decodificador de la Figura 7 de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 9 es un diagrama de flujo que ilustra el funcionamiento del nucleo del motor del decodificador de la Figura 7 de acuerdo con un ejemplo para la comprension de la invencion;
La Figura 10 es un diagrama de flujo que ilustra la re-normalizacion del nucleo del motor del decodificador de la Figura 7 de acuerdo con un ejemplo para la comprension de la invencion; y
La Figura 11 es un diagrama de bloques de un codificador de acuerdo con otra realizacion de la invencion. DESCRIPCION DETALLADA DE LA INVENCION
De acuerdo con un ejemplo para la comprension de la invencion, se proporciona un codificador aritmetico para convertir una secuencia de eventos compuesta por una pluralidad de eventos a una secuencia de informacion que consta de al menos una parte de informacion, que incluye al menos un puerto de entrada para recibir eventos de la secuencia de eventos, y al menos un puerto de salida, en que un secuenciador esta acoplado con el al menos un puerto de entrada y el al menos un puerto de salida e incluye un generador de contexto para la generacion de informacion de contexto para al menos uno de los eventos recibidos. Se proporciona un estimador de probabilidades, junto con el secuenciador, para recibir un evento de la secuencia de eventos y la correspondiente informacion de contexto desde el secuenciador, y para generar una estimacion de la probabilidad de que el evento tenga un valor particular. Un nucleo del motor esta acoplado con el secuenciador y el estimador de probabilidad para recibir el evento de la secuencia de eventos desde el secuenciador, y la estimacion de probabilidades desde el estimador de probabilidades, y generar 0 o mas partes de la secuencia de informacion en respuesta al evento recibido y la estimacion de probabilidades. El nucleo del motor puede limitar la relacion de eventos por partes de informacion, y proporciona las 0 o mas partes de informacion de la secuencia de informacion al secuenciador, donde se proporcionan las partes de informacion generadas como la secuencia de informacion en el al menos un puerto de salida.
De acuerdo con otro ejemplo para la comprension de la invencion, tambien se proporciona un decodificador aritmetico para convertir una secuencia de informacion que consta de al menos una parte de informacion a una secuencia de eventos compuesta por una pluralidad de eventos, incluyendo al menos un puerto de entrada para recibir partes de informacion de la secuencia de informacion, al menos un puerto de salida, y un secuenciador junto con el al menos un puerto de entrada y el al menos un puerto de salida y que incluye un generador de contexto para generar informacion de contexto para al menos un evento generado. El estimador de probabilidades se acopla con el secuenciador para recibir un evento generado de la secuencia de eventos y la informacion de contexto correspondiente, y para determinar una estimacion de las probabilidades. Un nucleo del motor esta acoplado con el secuenciador y el estimador de probabilidad para el proceso de cero o mas partes de informacion de la secuencia de informacion desde el secuenciador sensible a la estimacion de la probabilidad de generar un evento para explicar una relacion limitada de eventos por partes de informacion. El evento generado se proporciona al estimador de probabilidad con la correspondiente informacion de contexto desde el secuenciador para actualizar la estimacion de probabilidad, y el evento generado se proporciona al secuenciador para su transmision como la secuencia de eventos desde el al menos un puerto de salida.
5
10
15
20
25
30
35
40
45
50
55
60
Tener el codificador aritmetico que codifica la secuencia de eventos a la secuencia de informacion limitando la relacion de eventos por partes de informacion permite la compresion de una secuencia de datos (es decir, eventos binarios o Marios) de una manera que permite el uso en tiempo real de la secuencia de eventos. Ademas, la reduccion de la complejidad de la secuencia de la informacion generada limitando la relacion de eventos por partes de informacion permite a los decodificadores con una capacidad de proceso limitada (por ejemplo, decodificadores moviles) decodificar la secuencia de informacion de nuevo a su secuencia de evento correspondiente a la vez que manteniendo potencialmente una capacidad de proceso en tiempo real, o al menos sin la necesidad de que un usuario de la informacion tenga que esperar una cantidad significativa de tiempo, mientras dichos descodificadores realizan las operaciones de descodificacion.
Del mismo modo, proporcionar un decodificador que decodifica la secuencia de informacion a una secuencia de eventos explicando una relacion limitada de eventos por parte de informacion proporciona dicho uso en tiempo real de la secuencia de eventos, por ejemplo, durante una llamada de videoconferencia, o la recuperacion y proceso de la informacion desde los medios de almacenamiento, por ejemplo la recuperacion de informacion de video, como una pelfcula de un DVD-ROM y el proceso de los datos de video para su utilizacion.
De acuerdo con otra realizacion de la invencion, se proporciona un codificador de entropfa para la conversion de al menos una secuencia de eventos, en que cada secuencia de eventos incluye una pluralidad de eventos, a al menos una secuencia de informacion, en que cada secuencia de informacion incluye al menos una parte de informacion, incluyendo un codificador aritmetico para la generacion de cero o mas partes de informacion de al menos una secuencia de informacion en respuesta a al menos un evento de al menos una secuencia de eventos. El codificador de entropfa incluye ademas un controlador acoplado con el codificador aritmetico para limitar una serie de eventos en al menos una secuencia de eventos como una funcion de la cantidad de partes de informacion generadas en al menos una secuencia de informacion. La al menos una secuencia de eventos puede representar datos de entrada divididos en un numero de segmentos, en que el controlador limita una serie de eventos como una funcion del numero de partes de informacion al limitar un numero maximo de eventos en al menos una secuencia de eventos como una funcion de una combinacion lineal que incluye un numero de partes de informacion generadas en al menos una secuencia de informacion, y el numero de segmentos. El codificador de entropfa puede estar acoplado con un procesador para convertir datos de entrada en la al menos una secuencia de eventos, donde el codificador de entropfa es capaz de enviar informacion relativa a una serie de partes de informacion generadas en al menos una secuencia de informacion al procesador. Ademas, el procesador puede ser capaz de reducir una frecuencia de eventos de al menos una secuencia de eventos en respuesta a la informacion recibida desde el codificador de entropfa.
Tener un codificador de entropfa, capaz de limitar un numero de eventos en una secuencia de eventos como una funcion del numero de partes de informacion generadas en una secuencia de informacion puede permitir que los datos de video sean decodificados de forma consistente, lo que representa un numero maximo de partes de informacion por grupo de segmentos, a la vez que se mantiene la calidad de codificacion de video, en comparacion con los codificadores de la tecnica anterior. Ademas, cuando el codificador recibe una indicacion de que el umbral de complejidad esta a punto de ser excedido, el codificador puede generar menos eventos para el siguiente segmento de datos de entrada, por ejemplo reduciendo la posibilidad de que se supere el umbral de limitacion para el siguiente segmento. Asimismo, dado que el controlador es capaz de desencadenar la adicion de bits de relleno cuando se supera el umbral de limitacion, el procesador puede ser implementado de una manera tal que el procesador no necesita explicar o tratar la restriccion de la complejidad. Los codificadores y el decodificador se pueden utilizar en el proceso de datos de video, por ejemplo, como generado por un procesador de video (es decir, el codec de video). En el ejemplo del procesador de video, se graba una imagen de video, y se divide en bloques de muestra de los datos que puedan representar muestras de 16x16, 8x8, o 4x4 de la imagen grabada. A continuacion, los bloques son transformados por el procesador de video (es decir, utilizando una transformacion discreta del coseno), y cuantificados para producir valores enteros que representan el bloque de muestras. Los valores enteros son convertidos en una secuencia de eventos (es decir, eventos binarios) por el procesador de video, y se envfan al codificador para la codificacion. Alternativamente, el procesador de video puede operar directamente sobre muestras individuales, transformandolas y cuantificandolas, y convirtiendo el valor entero cuantificado particular para la muestra en una secuencia de eventos.
Aunque una utilizacion de este tipo para el codificador y el decodificador que se describen en el presente documento es en la codificacion y decodificacion de datos de video, un experto en la tecnica apreciara que el codificador y el decodificador que se describen en el presente documento se pueden utilizar en cualquier situacion en la que una secuencia de eventos se comprime a una secuencia de informacion en el caso del codificador, y en que una secuencia de dicha informacion se descomprime en el caso del decodificador. Ademas, aunque la siguiente descripcion del codificador es en el contexto del proceso de una secuencia de eventos que comprenden una pluralidad de eventos binarios a una secuencia de informacion que comprende al menos una informacion de bit binario, y para el decodificador es en el contexto del proceso de una secuencia de informacion que comprende al menos una informacion de bit binario a una secuencia de eventos que comprenden una pluralidad de eventos binarios, el hecho de que el codificador y el decodificador podrfan operar en secuencias de eventos y secuencias de informacion que constan de eventos que son
5
10
15
20
25
30
35
40
45
50
55
60
M-arios en su naturaleza (es decir, cada evento M-ario representa > 1 bits de datos) utilizando las ensenanzas descritas en este documento, sena apreciado por un experto en la tecnica.
La Figura 1 ilustra un diagrama de bloques de un codificador aritmetico 100 de acuerdo con un ejemplo para la comprension de la invencion. El codificador aritmetico 100 incluye un secuenciador 105, un estimador de probabilidades 110, y un nucleo del motor 115, que se acoplan entre sL Una o mas lmeas de datos de entrada 120 proporcionan un puerto de entrada para recibir una secuencia de eventos 125, en este caso una secuencia ordenada de eventos binarios, al codificador 100. Los eventos binarios de la secuencia 125 pueden tener un valor "A" o "B". La secuencia de eventos es procesada por el codificador, tal como se describe a continuacion, para generar una secuencia de informacion que es una secuencia ordenada compuesta de al menos una parte de informacion, en este caso bits binarios, en que el numero de partes de informacion en la secuencia de informacion es menor que el numero de eventos en la secuencia de eventos. Las lmeas de datos de salida 130 proporcionan un puerto de salida para el envm de la secuencia de informacion 135 desde el codificador 100. La secuencia ordenada de bits binarios de la secuencia de informacion incluye uno o mas bits que tienen un valor de "0" o "1".
Al recibir la secuencia ordenada de eventos binarios 125, el secuenciador 105 transmite secuencialmente los eventos 125 tanto al estimador de probabilidades 110 como al nucleo del motor 115 a traves de lmeas de transmision de evento 140 y 145, respectivamente. Para cada evento binario de la secuencia de eventos 125, el secuenciador 105 tambien transmite informacion de contexto para el estimador de probabilidades 110 al evento binario a traves de una lmea de transmision de contexto 150. El estimador de probabilidades 110, utilizando la informacion de contexto recibida a traves de las lmeas de transmision de contexto 150, genera una estimacion de la probabilidad P (A) que se transmite al nucleo del motor 115 a traves de la lmea de transmision de probabilidad 155. El estimador de probabilidades 110 a continuacion, actualiza su estado interno basandose en el valor del evento binario recibido a traves de la lmea de transmision de evento binario 140. El nucleo del motor 115 produce 0 o mas bits de informacion utilizando el evento binario recibido a traves de la lmea de transmision de eventos 145 y la estimacion de probabilidad P (A) correspondiente recibida a traves de la lmea de transmision de probabilidad 155, a la vez que delimita una relacion de eventos por bits de informacion, tal como se describira en mas detalle a continuacion.
El secuenciador 105, tras la recepcion de un primer evento binario de la secuencia de eventos 125, envfa una senal de inicializacion al estimador de probabilidades 110 y el nucleo del motor 115 a traves de las lmeas de inicializacion 185 y 190, respectivamente.
En la produccion de los cero o mas bits de informacion para la transmision, a traves de la lmea de transmision de bits 158, el nucleo del motor 115 utiliza varios registros, incluyendo un registro de gama 165, un registro bajo 170, un registro de bits pendientes 175, y un registro de contador 180. El funcionamiento del codificador 100 se describe con respecto a los diagramas de flujo de las Figuras 2-6.
La Figura 2 ilustra un diagrama de flujo que describe el funcionamiento del nucleo del motor 115 tras la recepcion de una senal de inicializacion desde el secuenciador 105. Tal como se muestra en el diagrama de flujo de la Figura 2, el nucleo del motor 115 inicializa el intervalo de registro 165, por ejemplo a un valor hexadecimal 8000 (H), tal como se muestra en el paso 205. El nucleo del motor 115 tambien inicializa el registro bajo 170, el registro de bits pendientes 175 y el registro de contador 180 para, por ejemplo, un valor de 0, tal como se muestra en los pasos 210, 215 y 220 respectivamente.
Despues de la inicializacion, y al recibir un evento binario de la secuencia de eventos 125; el nucleo del motor opera tal como se ilustra en el diagrama de flujo de la Figura 3 de acuerdo con un ejemplo para la comprension de la invencion.
Tal como se muestra en el paso 305 de la Figura 3, el nucleo del motor 115 calcula un valor de sub-intervalo R (A) para un valor de evento en particular, por ejemplo un valor del evento "A", utilizando un valor actual del registro de intervalos 165 y la estimacion de probabilidad para ese valor de evento en particular recibida a traves de la lmea de transmision de probabilidades 155. En este caso, el valor de sub-intervalo R (A) se calcula multiplicando el valor del registro de intervalos "R" por la estimacion de la probabilidad P (A). Tal como se muestra en el paso 310, un comparador del nucleo del motor 115 (que no se muestra) compara un valor "X" del evento binario recibido a traves de la lmea de transmision de eventos 145 con el valor del evento en particular A para el que se ha generado la probabilidad P (A). Cuando el valor de evento recibido X es igual a A, el registro de intervalos 165 se establece en el valor sub-intervalo R (A), tal como se muestra en el paso 315 (es decir, el valor de R (A) se almacena en el registro de intervalos 165). Sin embargo, cuando el valor de evento X recibido no es igual al evento A en el paso 310, el R sub-intervalo (A) se resta del valor R del registro de intervalos 165, donde el valor resultante se almacena en el registro de intervalos 165 tal como se muestra en el paso 320. Un valor L del registro bajo 170 se suma con el valor de sub-intervalo R (A) y se almacena en el registro bajo 170 tal como se muestra en el paso 325. Al recalcular el valor del registro de intervalos 165 en la etapa 315, o el registro bajo 170 en el paso 325, el nucleo del motor llama a una rutina de re-normalizacion, tal como se muestra en el paso 330 y que se describe mas adelante con respecto al diagrama de flujo de la Figura 4, de acuerdo con un ejemplo para la comprension de la invencion.
5
10
15
20
25
30
35
40
45
50
55
60
Tal como se muestra en la Figura 4, la re-normalizacion comienza cuando un valor del registro de intervalos 165 se compara con un valor de intervalo predeterminado, en este caso 4000H tal como se muestra en el paso 405. Cuando el valor R del registro de intervalos 165 > 4000H, el registro de contador se incrementa en 1, un valor de incremento predeterminado, en este caso tal como se muestra en el paso 410. Cuando se determina en el nucleo del motor 115 que el valor de R es menor o igual a 4000H en el paso 405, el valor L del registro bajo 170 y el valor R del registro de intervalos 165 se suman, y se compara con el valor 8000H tal como se muestra en el paso 415. Cuando la suma es menor o igual a 8000H, se llama a una rutina de “bit y seguir” que tiene un parametro B igual a "0" tal como se muestra en el paso 420 y tal como se describira mas adelante. A continuacion, el valor del registro bajo se dobla tal como se muestra en el paso 425, y el valor C del registro de contador 180 se compara con 0 tal como se muestra en el paso 430. Cuando el valor C del registro de contador 180 no es menor que 0, un valor de decremento, en este caso 4H, se resta del registro de contador 180, tal como se muestra en el paso 435, y el flujo vuelve al paso 405 y opera tal como se describe anteriormente. Sin embargo, cuando se determina en el paso 430 que el valor C del registro de contador es menor que 0, el registro de intervalos se reajusta duplicando el valor R del registro de intervalos 165, tal como se muestra en el paso 440, y el flujo del programa continua al paso 435 tal como se ha descrito anteriormente.
Cuando se determina en el paso 415 que la suma de los valores L y R no es menor que o igual a 8000H, el valor L del registro bajo 170 se compara con 8000H tal como se muestra en el paso 445. Cuando el valor L es mayor que o igual a 8000H, se llama a la rutina de “bit y seguir” con un parametro B igual a "1" tal como se muestra en el paso 450 y se analiza mas adelante. Un valor 8000H se resta del registro bajo 170 tal como se muestra en el paso 455, y el flujo continua al paso 425 tal como se ha descrito anteriormente. No obstante, cuando se determina que L no es mayor que o igual a 8000H en el paso 445, el registro de bits pendientes 175 se incrementa en 1, tal como se muestra en el paso 460, y se resta un valor 4000H del registro bajo 170 tal como se muestra en el paso 465. A continuacion, el flujo sigue al paso 425 tal como se ha descrito anteriormente.
Tras la recepcion de un evento final de la secuencia de eventos 125, el secuenciador 105 envfa una senal de terminar al nucleo del motor 115 a traves de la lfnea de terminar la transmision 195. El funcionamiento del nucleo del motor 115 cuando se recibe una senal de terminar se muestra en el diagrama de flujo de la Figura 5, de acuerdo con un ejemplo para la comprension de la invencion.
Tal como se muestra en la Figura 5, se llama a una rutina de bit y seguir, el paso 505, con un argumento B que tiene el valor del bit mas significativo (MSB) del registro bajo 170. Los bits menos significativos (LSB) de un registro bajo 170 se envfan al secuenciador 105 tal como se muestra en el paso 510. La rutina de bit y seguir se muestra con mas detalle en el diagrama de flujo de la Figura 6, de acuerdo con un ejemplo para la comprension de la invencion.
Tal como se muestra en la Figura 6, un valor B se envfa como un bit de la secuencia de informacion 135 al secuenciador 105 a traves de la lfnea de transmision de bits 158, tal como se muestra en el paso 605. Un valor BO del registro de bits pendientes 175 se compara con 0, en el paso 610. Cuando un valor BO del registro de bits pendientes 175 no es mayor que 0, el flujo vuelve a cualquier segmento de programa / rutina que haya llamado a la rutina de bit y seguir (es decir, la caja 420 o la caja 450 de la Figura 4 o la caja 505 de la Figura 5). Sin embargo, cuando el valor BO es mayor que 0 en el paso 610, un bit de la secuencia de informacion 135 que tiene un valor de 1 menos el valor B se envfa al secuenciador 105 a traves de la lfnea de transmision de bits 158, tal como se muestra en el paso 615. El valor BO del registro de bits pendientes se decrementa en 1 tal como se muestra en el paso 620, y el flujo vuelve al paso 610, y continua como se ha descrito anteriormente.
Por lo tanto, proporcionar al codificador 100, que tiene un nucleo del motor 115, el contador 180 permite el seguimiento de la relacion de eventos por partes de informacion, permitiendo de esta manera que dicha relacion este delimitada con el fin de reducir el lfmite de complejidad de la secuencia de informacion proporcionada por el codificador. El valor de incremento del contador que se ha descrito con respecto al paso 410, el valor del contador de decremento discutido con respecto al paso 435 y el valor con el que se compara el registro de contador 180 en el paso 430 se utilizan para regir la relacion media de eventos en relacion con las partes de informacion. Por ejemplo, con los valores descritos anteriormente con respecto a la Figura 4, tener un valor de decremento 4 en el paso 435 da como resultado que la relacion media de eventos por partes de informacion esta limitado a 4. La alteracion del valor de decremento altera la relacion media de los eventos por partes de informacion. En consecuencia, el valor de incremento, el valor de decremento y el valor con el que se compara el contador son meramente ejemplares, ya que dichos valores, junto con el valor al que se ha inicializado el registro de contador 180 en el cuadro 220 de la Figura 2, no necesitan ser tal como se han descrito anteriormente, sino que pueden ser cualquier valor entero, en el que se seleccionan los valores correspondientes para lograr la relacion media limitada deseada de eventos por partes de informacion tal como apreciara un experto en la tecnica.
Las Figuras 7-10 ilustran un decodificador aritmetico y el funcionamiento del mismo que es capaz de decodificar una secuencia de informacion que consta de al menos una parte de informacion por una secuencia de eventos que comprende una pluralidad de eventos, que representa una relacion limitada de eventos por partes de informacion en la
5
10
15
20
25
30
35
40
45
50
55
60
secuencia de informacion. La Figura 7 es un diagrama de bloques del decodificador, donde las Figuras 8-10 son diagramas de flujo que ilustran el funcionamiento del decodificador.
La Figura 7 ilustra un decodificador aritmetico 700 de acuerdo con un ejemplo para la comprension de la invencion. El decodificador 700 incluye un secuenciador 705, un estimador de probabilidad 710, y un nucleo del motor 715 acoplados uno con el otro. Una o mas lfneas de datos de entrada de secuencia de informacion 720 proporcionan un puerto de importacion de una secuencia de informacion 725, en este caso en una secuencia ordenada de bits binarios, al decodificador 700. Los bits binarios de la secuencia 725 pueden tener un valor de "0" o "1". El decodificador procesa la secuencia de informacion para generar una secuencia de eventos teniendo en cuenta la relacion limitada de eventos por partes de informacion en la secuencia de informacion, tal como se describe mas adelante. La secuencia de eventos generada es una secuencia de eventos ordenada que comprende una pluralidad de eventos, en este caso eventos binarios, que pueden tener un valor de "A" o "B". La secuencia de eventos se proporciona a las lfneas de datos de secuencias de eventos de salida 730, que proporciona al menos un puerto de salida desde el decodificador 700.
Al recibir la secuencia ordenada de bits binarios 725, el secuenciador 705 transmite secuencialmente los uno o mas bits al nucleo del motor 715 a traves de la lfnea de transmision de bits 740. Tras la recepcion de los uno o mas bits, el nucleo del motor 715 comienza la generacion de eventos, en este caso eventos binarios, que se transmiten al secuenciador 705 y al estimador de probabilidad 710 a traves de las lfneas de transmision de evento 745 y 750 respectivamente. Tal como se describe mas adelante, el estimador de probabilidad envfa una estimacion de probabilidad inicial al nucleo del motor para generar el primer evento binario. A continuacion, para cada evento binario generado por el nucleo del motor 715 y enviado al secuenciador 705, el secuenciador 705 transmite un contexto correspondiente al estimador de probabilidades 210 sobre la lfnea de transmision de contexto 755. Basandose en el valor del contexto recibido a traves de lfnea de transmision de contexto 755, el estimador de probabilidad 710 genera una estimacion de la probabilidad correspondiente P (A), que se envfa al nucleo del motor 715 sobre la lfnea de transmision de probabilidad 760, y es utilizada por el nucleo del motor 715 para generar otros eventos. Despues de transmitir la estimacion de probabilidad P (A), el estimador de probabilidad 710 actualiza su estado interno basandose en el valor del evento binario recibido desde el nucleo del motor 715 sobre la lfnea de transmision de evento 750. El nucleo del motor 715 consume cero o mas bits de informacion por cada evento binario generado. El nucleo del motor 715 utiliza varios registros en la generacion de los eventos de la secuencia de eventos 735, incluyendo un registro de intervalo 765, un registro de valores 770 y un registro de contador 775. Se proporciona una senal de inicializacion al nucleo del motor 715 y al estimador de probabilidad 710 a traves de lfneas de transmision de inicializacion 780 y 785, respectivamente. Se proporciona una senal de terminar al motor central 715 a traves de una lfnea de finalizar senal 790. El funcionamiento del decodificador 700 se muestra en los diagramas de flujo de las Figuras 8-10.
La Figura 8 ilustra el funcionamiento del decodificador 700 al recibir una senal de inicializacion a traves de la lfnea de senal de inicializacion 780 de acuerdo con un ejemplo para la comprension de la invencion. Tal como se muestra en la
Figura 8, el nucleo del motor 715 inicializa el registro de intervalos 765 a un valor de 8000H tal como se muestra en el
paso 800, e inicializa el valor del registro 770 a un valor particular representado por 16 bits (que se describe mas adelante) tal como se muestra en el paso 805. Ademas, el nucleo del motor 715 inicializa el registro de contador 775 a un valor de cero tal como se muestra en el paso 810.
El valor de registro 770 se inicializa en el paso 805 mediante la recopilacion de 16 bits en el valor del registro 770, por ejemplo, las primeras 16 partes de informacion de la secuencia de informacion, tal como se describe en Arithmetic Coding Revisited, de Moffat et al., ACM Transactions on Information Systems, VOL. 16, NO. 3, Julio 1998, paginas 256294, que se incorpora como referencia en el presente documento, y como serfa apreciado por un experto en la tecnica.
La Figura 9 es un diagrama de flujo que ilustra el funcionamiento de los motores de nucleo 715 en la generacion de la secuencia de evento 725 de acuerdo con un ejemplo para la comprension de la invencion. Tal como se muestra en el
paso 900, un valor de subintervalo R (A) es calculado por el nucleo del motor 715 para un valor del evento "A". El valor
de subintervalo R (A) se calcula basandose en el valor del registro de intervalos 765 y la estimacion de probabilidad determinada P (A) recibida a traves de la lfnea de transmision de estimacion de probabilidad 760 del estimador de probabilidad 710, multiplicando el valor R del registro de intervalos 765 por la estimacion de probabilidad P (A). Cuando se calcula el valor de sub-intervalo R (A) por primera vez para una secuencia de informacion 735 en particular, el estimador de probabilidad 710 determina que la estimacion de la probabilidad P (A) es alguna estimacion de probabilidad inicial / predeterminada (es decir, que se ha acordado con anterioridad). A partir de entonces, mientras los eventos se emiten desde el nucleo del motor 715, el estimador de probabilidad 710 utiliza los eventos emitidos junto con informacion de contexto correspondiente recibida a traves de la lfnea de la informacion de contexto 755 en la actualizacion de la estimacion de la probabilidad P (A) proporcionada a traves de la lfnea de transmision de estimacion de la probabilidad 760, tal como se describe a continuacion.
El valor de subintervalo R (A) se compara entonces con un valor V del registro de valores 770, tal como se muestra en el paso 905. Cuando el valor de subintervalo R (A) es menor que el valor V del valor del registro 765, el registro de intervalos 165 se establece en el valor de subintervalo R (A) tal como se muestra en el paso 910, y un evento "A" se
5
10
15
20
25
30
35
40
45
50
55
60
emite al secuenciador 705 a traves de la linea de transmision de eventos 745 tal como se muestra en el paso 915. A continuacion se llama a un procedimiento de renormalizacion, tal como se muestra en el paso 920, y que se describira con mas detalle con respecto al diagrama de flujo de la Figura 10.
Cuando el valor de subintervalo R (A) no es menor que el valor V del registro de valores 770 en el paso 905, el valor de subintervalo R (A) se resta del registro de intervalos 765 tal como se muestra en el paso 925. El valor de subintervalo R (A) se resta del valor de registro 770, tal como se muestra en el paso 930, y un evento "B" se emite desde el nucleo del motor al secuenciador 705 a traves de linea de transmision de evento 745, tal como se muestra en el paso 935. El flujo continua con el procedimiento de renormalizacion en el paso 920.
Tal como se ha descrito anteriormente, tras la emision de un evento a traves de la linea de transmision de evento 745, el secuenciador 705 transmite un contexto a traves de la linea de transmision de contexto 755 al estimador de probabilidad 210, en el que el estimador de probabilidad 710 actualiza su estado interno basandose en el valor del evento binario emitido por el nucleo del motor 715.
La Figura 10 es un diagrama de flujo que ilustra el funcionamiento del nucleo del motor 115 al realizar la renormalizacion descrita anteriormente con respecto al paso 920 de acuerdo con un ejemplo para la comprension de la invencion. Tal como se muestra en el paso 1000, el valor R del registro de intervalos 765 se compara con un valor de intervalo predeterminado, en este caso 4000H. Cuando el valor predeterminado R no es menor que o igual a 4000H, el registro de contador 775 se incrementa en un valor de incremento predeterminado, en este caso 1, tal como se muestra en el paso 1005, y la re-normalizacion es completa. Sin embargo, cuando el valor R del registro de intervalos 765 es menor o igual a 4000h un valor C del registro de contador 775 se compara con 0 tal como se muestra en el paso 1010. Cuando el valor C del registro de contador 775 no es menor que 0, el valor V del valor del registro 770 se duplica, y se le anade un valor del bit recibido mas reciente en el nucleo del motor 715 a traves de la linea de transmision de bits 740, en donde la suma resultante se almacena en el registro de valor 770 tal como se muestra en el paso 1015. Tal como se muestra en el paso 1020, un valor C del registro de contador 775 se decrementa en un valor de decremento predeterminado, en este caso 4H, y el flujo vuelve al paso 1000. Cuando un valor C del registro de contador es menor que 0, en el paso 1010, el registro de intervalos 765 se reajusta duplicando el valor R del registro de intervalos tal como se muestra en el paso 1025, y el flujo continua al paso 1015 tal como se ha descrito anteriormente.
Despues de que una pieza final de la informacion de la secuencia de informacion 725 se transmite a, y es procesada por, el nucleo del motor 715, el secuenciador 705 transmite una senal de terminar al nucleo del motor 715 a traves de lfneas de transmision de senal de terminar 790 que indican al nucleo del motor 715 que la decodificacion de la secuencia de informacion 725 se ha completado. El nucleo del motor 715 no necesita realizar ninguna operacion en respuesta a la senal de terminacion.
El codificador 100 con un lfmite de complejidad reducido que es capaz de codificar una secuencia de eventos a una secuencia de informacion limitando una relacion de eventos por partes de informacion resulta ventajoso, ya que proporciona una secuencia de informacion que puede ser decodificada y utilizada para soportar la prestacion de la informacion para su utilizacion en tiempo real, sin afectar significativamente la eficiencia de codificacion de la secuencia de informacion. Ademas, una codificacion de complejidad reducida de este tipo puede ser beneficiosa cuando el decodificador utilizado en la decodificacion de la secuencia de la informacion posee capacidades de proceso reducidas (es decir, esta en un dispositivo movil) ya que un decodificador de este tipo serfa capaz de decodificar la secuencia de informacion sin un retraso indebido en espera de que la decodificacion se lleve a cabo. Ademas, el decodificador 700 capaz de decodificar una secuencia de informacion a una secuencia de eventos asignando una relacion limitada de eventos por partes de informacion en la secuencia de informacion, puede ser ventajoso al permitir una decodificacion eficiente de la secuencia de informacion para su uso en, por ejemplo, uso en tiempo real de la secuencia de evento.
La Figura 11 ilustra un codificador 1100 de acuerdo con otra realizacion de la invencion. Tal como se muestra en la Figura 11, el codificador incluye un procesador 1105, junto con un codificador de entropfa 1110. El codificador de entropfa incluye un codificador aritmetico 1115 junto con un controlador 1120. Los datos de entrada 1125 son recibidos en el codificador, y se codifican a una o mas secuencias de partes de informacion que se muestran en 1130.
Los datos de entrada 1125 pueden ser cualquier dato que va a ser codificado por el codificador 1100, incluyendo, por ejemplo, datos de video. El procesador 1105 recibe los datos de entrada, y convierte los datos de entrada en una o mas secuencias de eventos 1135. El procesador 1105 puede particionar los datos de entrada en uno o mas segmentos de informacion (que no se muestran). Por ejemplo, cuando los datos de entrada 1125 son datos de video, el procesador puede particionar los datos de video en bloques de datos, por ejemplo representando muestras de 16x16 de la imagen de video correspondiente. Una secuencia de eventos 1135 puede representar uno o mas segmentos (bloques de video).
El codificador de entropfa 1110 recibe la secuencia de eventos 1135 que va a ser aritmeticamente codificada, donde el codificador aritmetico 1115 genera 0 o mas bits de la secuencia de informacion 1130 para cada caso de la secuencia de eventos 1135. El controlador 1120 es capaz de regular el codificador de entropfa 1110 al limitar el numero de partes de
5
10
15
20
25
30
35
40
45
50
55
60
informacion de la secuencia de informacion 1130 como una funcion del numero de los eventos de la secuencia de eventos 1135, de tal manera que el numero de eventos no exceda un umbral con respecto al numero de partes de informacion generadas. Cuando se supera el umbral, el controlador 1120 puede controlar el codificador de entropfa para anadir una o mas piezas de informacion de relleno a la secuencia de informacion 1130 para alcanzar el umbral.
El codificador de entropfa puede codificar la secuencia de eventos 1135 de una manera similar a la descrita anteriormente con respecto al codificador aritmetico 100 de la Figura 1. Por ejemplo, el codificador aritmetico 1115 puede incluir, en su caso, un secuenciador, y un estimador de probabilidad tal como se ha descrito anteriormente con respecto a la Figura 1. El codificador aritmetico 1115 puede incluir ademas un motor central con Registros de Intervalo, Bajo y de Bits Pendientes. El controlador 1120 puede incluir uno o mas contadores para el seguimiento de una serie de eventos de la secuencia de eventos 1135 procesados y una serie de partes de informacion de la secuencia de informacion 1130 generada. Alternativamente, los uno o mas contadores pueden estar presentes en el codificador de entropfa 1110, donde el controlador 1120 es capaz de monitorizar el/los contador (es) para asegurar que el umbral entre eventos procesados y partes de informacion generados se mantiene sustancialmente. El controlador 1120 puede limitar el numero de partes de informacion, por ejemplo, sobre cada secuencia individual de eventos que ha sido codificada. Por ejemplo, el controlador puede garantizar que (# partes de informacion generadas) x (umbral) > (# eventos procesados). Esto se puede conseguir, por ejemplo, de una manera similar a como se ha descrito anteriormente con respecto a las Figuras 1-6, y, espedficamente, a la Figura 4, donde el controlador incrementa un contador para cada evento procesado, y resta un numero desde el contador que representa el valor de umbral, por ejemplo, "4" cuando se procesa un bit. El controlador puede entonces comparar el valor del contador, por ejemplo, con el valor 0, y activar la insercion de un bit de relleno si el valor del contador es mayor que 0. De esta manera, el controlador es capaz de asegurar que el codificador aritmetico 1115 esta limitado sustancialmente a una proporcion de 4:1 de eventos procesados por partes de informacion generados.
Ademas, o como alternativa, el controlador puede limitar el numero de eventos de la secuencia de eventos 1135 como una funcion del numero de partes de informacion en la secuencia de partes de informacion, y un numero de segmentos de los datos de entrada 1125 representados en la secuencia de eventos. Por ejemplo, la limitacion puede tomar la forma de una combinacion lineal:
imagen1
donde
e es el numero de eventos representados en la secuencia de partes de informacion,
B es un numero de partes de informacion en la secuencia de partes de informacion,
S es un numero de segmentos representados en la secuencia de eventos, y
a y p representan un valor de decremento para un contador utilizado por el controlador para mantener sustancialmente una limitacion del numero de eventos de la secuencia de eventos con respecto a un numero de partes de informacion generadas.
Los valores de a y p se proporcionan habitualmente al controlador 1120, y la derivacion de a y p se describira a
continuacion. El valor de a puede representar un valor de decremento, por ejemplo, para un contador tras la generacion
de una parte de informacion en el codificador, donde el valor p puede representar el valor de decremento, por ejemplo, para un contador tras la finalizacion del proceso de un segmento. En la alternativa, el valor p puede restarse de un valor de contador al comienzo del proceso de un segmento, o en cualquier otro momento durante el proceso de un segmento tal como resultana evidente para un experto en la tecnica.
Se puede utilizar una lmea de control de frecuencia 1140 para limitar el numero de eventos de la secuencia de eventos 1135 como una funcion del numero de partes de informacion en la secuencia de partes de informacion, y un numero de segmentos de los datos de entrada 1125 representados en la secuencia de eventos. Por ejemplo, la lmea de control de frecuencia 1140 se puede utilizar para transportar informacion relativa a la limitacion de la complejidad (MEPS y / o PMEPS, ver mas abajo) desde el codificador de entropfa 1110 al procesador 1105. El codificador de entropfa puede indicar al procesador que el umbral de limitacion esta a punto de ser excedido, o que ya se ha excedido, por ejemplo, mediante la transmision de informacion sobre el valor del/de los contador (es). El procesador 1105 puede por lo tanto reducir la frecuencia de eventos (es decir, reducir el numero de eventos por segmento / bloque), por ejemplo, para reducir la probabilidad de que el controlador 1120 desencadene la insercion de bits de relleno en la secuencia de informacion 1130.
En algunas circunstancias, el numero particular de segmentos de datos de los datos de entrada 1125 que seran procesados puede ser conocido en el codificador 1100, por ejemplo, cuando la secuencia de partes de informacion no tiene por que limitarse sustancialmente para la transmision sobre un medio de comunicacion particular. En estas circunstancias, la secuencia de partes de informacion generada en el codificador 1100 puede representar una imagen
5
10
15
20
25
30
35
40
45
50
55
60
codificada completa para la transmision generada a partir de un numero conocido de segmentos de los datos de entrada 1125. Cuando el numero particular de segmentos de datos de los datos de entrada que se van a procesar es conocido, el controlador puede, por ejemplo, limitar el numero de eventos en la secuencia de eventos 1135 como:
imagen2
Dado que el numero total de segmentos, S, y el valor p son conocidos, el producto de p x S puede ser restado del numero de eventos, E, por la secuencia de eventos 1135 durante o despues del proceso de los uno o mas segmentos de los datos de entrada 1125. Por ejemplo, cuando se utiliza un contador para limitar el numero de eventos que responden a la cantidad de bits que se ha generado, el contador puede inicialmente ser decrementado en un valor de p x S, y puede ser decrementado en un valor a para cada parte de informacion generada, mientras que el contador se incrementa en "1" para cada caso de la secuencia de eventos 1135 procesados por el codificador de entropfa 1110. El valor de p puede ser cualquier valor, habitualmente en el intervalo de 1 a 100, y puede ser determinado, por ejemplo, tal como se describe mas adelante. El valor de a puede ser cualquier valor, habitualmente en el intervalo de 1 a 10, y puede ser determinado, por ejemplo, tal como se describe mas adelante.
En algunas circunstancias, un numero de segmentos de los datos de entrada 1125 que se van a procesar no es conocido previamente, por ejemplo, cuando el medio de comunicacion limita el numero de partes de informacion que puede proporcionarse en la secuencia de informacion 1130. Esto puede ocurrir, por ejemplo, cuando la secuencia de informacion 1130 se va a transmitir a traves de Internet, como un paquete de Protocolo de Internet (IP), en que el paquete IP tiene una limitacion de tamano maximo. En estas circunstancias, dependiendo de la complejidad de una imagen en particular, pueden ser necesarias una o mas secuencias de partes de informacion para representar una sola imagen de los datos de entrada 1125. Sin embargo, el numero de segmentos utilizados para la generacion de una secuencia de partes de informacion no se puede saber de antemano, ya que no se puede saber despues de cuantos segmentos procesados se alcanza el tamano maximo de una secuencia de partes de informacion. Cuando un numero de segmentos de los datos de entrada 1125 que se van a procesar no es conocido de antemano, el controlador puede explicar la pluralidad de secuencias de eventos mientras se codifica el uno o mas segmentos que representan una secuencia particular de los eventos. Por ejemplo, cuando se utiliza un contador para limitar el numero de eventos que responden a la cantidad de bits que se han generado, el contador puede ser decrementado en un valor p para cada segmento procesado, y puede ser decrementado en un valor a para cada pieza de informacion generada, mientras que el contador puede ser incrementado en "1" para cada caso de la secuencia de eventos 1135 procesados por el codificador de entropfa 1110.
Los valores de a y p pueden ser determinados, por ejemplo, teniendo en cuenta las limitaciones impuestas por una norma particular (es decir, una codificacion de video reguladora estandar), y / o limitaciones con respecto a un decodificador que se utiliza para decodificar la secuencia de informacion codificada por el codificador 1100. Dichas limitaciones impuestas por la norma particular pueden incluir informacion con respecto a un numero maximo de bits por segundo (MBPS), un numero maximo de segmentos (bloques) por segundo (MSPS), y un numero maximo de pico de bits por segundo (PMBPS). El PMBPS puede representar, por ejemplo, un numero maximo de bits de una imagen dividido por la distancia temporal entre dos imagenes a codificar.
El MBPS puede representar la capacidad del canal, por ejemplo, aproximadamente 64 000 bits por segundo para aplicaciones de comunicaciones moviles, 500 000 bits por segundo para la lfnea de abonado digital (DSL), y 4 000 000 bits por segundo para aplicaciones de difusion como la television (TV). El MSPS puede representar la norma de formato de video, por ejemplo, 176x144 pfxeles a 10 o 15 fotogramas por segundo para aplicaciones moviles (es decir, telefonfa movil), 320x240 pfxeles a 24 fotogramas por segundo para aplicaciones DSL, 720x480 pfxeles a 30 fotogramas por segundo para aplicaciones de television estandar y 1920x1088 pfxeles a 30 fotogramas por segundo para TV de alta definicion. PMBPs puede ser cualquier multiplo del MBPS, habitualmente varias veces MBPS, por ejemplo, PMBPS “ 10 x MBPS.
Dependiendo de la implementacion particular, los recursos de un decodificador (es decir, las capacidades de proceso y / o la memoria intermedia disponible) pueden ser limitados, y pueden tambien tomarse en cuenta al determinar los valores de a y p. Dichas limitaciones pueden incluir valores reales o supuestos con un numero maximo de eventos por segundo (MEPS) que pueden ser procesados por el decodificador, y / o un numero maximo pico de eventos por segundo (PMEPS) que pueden ser procesados por el decodificador (es decir, un numero maximo de eventos en una imagen dividida por la distancia temporal entre dos imagenes a descodificar).
La explicacion de una o mas de las anteriores limitaciones del decodificador, a y p puede ser representada en un sistema lineal como:
PMEPS = a*PMBPS + I3*MSPS,
5
10
15
20
25
30
35
40
45
50
55
60
y
MEPS = a*MBPS + I3*MSPS.
Los valores de a y p pueden determinarse resolviendo el sistema lineal para a y p, dadas por ejemplo, las limitaciones de PMBPS y mSPs fijadas por la norma en particular, y una o las dos limitaciones de PMEPS y MEPS del decodificador. Los valores de a y p no necesitan ser valores enteros, sino que pueden ser cualquier valor para cumplir sustancialmente el sistema lineal.
Los valores de a y p pueden ser determinados de antemano, por un disenador de sistemas del codificador 1100 que representa una o mas de las limitaciones mencionadas anteriormente, y que se proporcionan al controlador 1120. Alternativamente, o ademas, los valores de a y p pueden ser determinados por el controlador 1120, o cualquier otro componente del codificador 1100, de acuerdo con una o mas de las limitaciones mencionadas anteriormente, o como valores por defecto del codificador 1100. Cuando el controlador 1120 determina valores para a y p utilizando una o las dos limitaciones impuestas por la norma o por un dispositivo de decodificacion, la informacion relativa a una o mas de las limitaciones se puede almacenar en una memoria (que no se muestra) del controlador 1120, y ser utilizada por el controlador 1120 en la determinacion de los valores a y p. Ademas, o como alternativa, se puede proporcionar informacion con respecto a las limitaciones al controlador 1120, por ejemplo, mediante algun dispositivo externo, como una memoria externa (es decir, un disco de video digital (DVD)), un dispositivo reproductor de DVD, o por parte de un ingeniero de sistemas, por ejemplo, manipulando algunas de las funciones en relacion con la codificacion de los datos de entrada particulares 1125. En este ultimo caso, el ingeniero de sistemas puede introducir en una consola u otro dispositivo de entrada (que no se muestra), o especificar de otra manera, la informacion con respecto a las limitaciones impuestas como resultado de una norma de codificacion y / o un dispositivo de decodificacion, tal como seria apreciado por un experto en la tecnica.
Cuando una o las dos limitaciones PMEPS y MEPS de los decodificadores no son conocidas, se pueden suponer valores para PMEPS y MEPS, por ejemplo, como los requisitos operativos minimos que debe tener un decodificador para ser capaz de decodificar la secuencia de informacion 1130 generada por el codificador 1100. Ademas, al asumir los valores para PMEPS y / o MEPS, pueden tenerse en cuenta las consideraciones en cuanto a, por ejemplo, el porcentaje de tiempo que utilizara el decodificador para la decodificacion aritmetica de los datos. Por ejemplo, se puede suponer que el decodificador sera capaz de gastar no mas del 30% de su tiempo / capacidades de proceso para llevar a cabo la decodificacion aritmetica de una secuencia de informacion recibida en el decodificador.
Ademas, a pesar de que los valores de a y p pueden determinarse utilizando el sistema lineal anterior, dichos valores pueden ser ajustados para lograr un rendimiento de codificacion deseado, en que los valores ajustados para a y p pueden ser posteriormente utilizados por el codificador 1100 para codificar los datos de entrada 1125 a la secuencia de informacion 1130. Por ejemplo, los valores de a y p pueden ser ajustados con consideraciones en relacion a una posible perdida de la calidad de video debido a las partes de informacion con que se ha rellenado la secuencia de informacion 1130. Puede ser deseable, por ejemplo, reducir al mfnimo el numero de partes de informacion de relleno de este tipo para mantener una optima calidad de video (es decir, video con poca o ninguna distorsion), a la vez que limitando la complejidad de decodificacion. Dicha compensacion entre la complejidad de decodificacion y la calidad de video puede determinarse experimentalmente, y puede tener en cuenta el algoritmo de codificacion de video particular utilizado por el codificador 1100.
Ademas, cuando se determinan los valores de a y p, se pueden hacer consideraciones en cuanto a si la limitacion de la complejidad es demasiado ajustada, por ejemplo, si los valores de a y / o p son demasiado bajos. Una alta proporcion de partes de informacion de relleno en la secuencia de partes de informacion (es decir, una serie de piezas de relleno superior a aproximadamente un 1% o un 2% de las partes de informacion de la secuencia de informacion) puede indicar que la limitacion es demasiado ajustada. Un experto se darfa cuenta de que otras proporciones pueden indicar una alta proporcion de relleno de partes de informacion, por ejemplo, teniendo en cuenta la norma y / o el decodificador particulares que se pueden utilizar.
Cuando se determina, por ejemplo, que los valores de a y p son demasiado ajustados, los valores de a y p pueden aumentarse para reducir la probabilidad de que se anadan bits de relleno (es decir, reducir la probabilidad de una penalizacion en la calidad de la secuencia de informacion codificada). Al aumentar los valores de a y p, se pueden hacer consideraciones en cuanto al efecto sobre los lfmites de complejidad resultante (es decir, MEPS y / o PMEPS) con respecto al decodificador que se utiliza para decodificar la secuencia de informacion codificada. Estas consideraciones pueden incluir el coste de implementar el decodificador. Si el lfmite de complejidad es mayor, mas potencia de proceso puede ser necesaria en el decodificador. Un aumento de la potencia de proceso requerida probablemente podrfa dar como resultado un mayor coste de implementacion.
Como alternativa, a y p se pueden determinar experimentalmente, utilizando tecnicas de regresion lineal. Se puede codificar una serie de secuencias de eventos, cada uno en representacion de los segmentos S, sin imponer ninguna
5
10
15
20
25
30
35
40
45
50
55
60
restriccion de complejidad. Para cada secuencia z de eventos, se conoce para el numero de eventos e(z), el numero de partes de informacion generada resultante B (z). Se puede determinar, mediante regresion lineal, una lmea e = c*B + d que se aproxima a los pares de datos (e(z), B (z)). Un valor inicial de a puede estar indicado por c, y un valor inicial de p puede estar indicado por d / S. Los valores de a y / o p pueden entonces ser incrementados para reducir al mmimo el numero de pares de datos (e (z), B (z)) que se encuentran por encima de la lmea e = a*B + p*S. La cantidad por la cual a y / o p se incrementan probablemente tambien tiene en cuenta los valores resultantes de MEPS y / o PMEPS, por ejemplo, para controlar los costes de implementacion de un decodificador.
Utilizando los valores de a y p tal como se determina mediante una o mas de las diversas tecnicas descritas anteriormente, el codificador 1100 puede representar un valor de a (es decir, disminuir un contador por el valor de a) para cada pieza informacion generada, y puede representar un valor de p (es decir, disminuir un contador por el valor de p) sobre la finalizacion de un segmento de los datos de entrada 1125. Por ejemplo, cuando a y p son valores enteros, dicha representacion (es decir, reducciones de uno o mas contadores) puede llevarse a cabo directamente.
Cuando, por ejemplo, uno de ellos o tanto a como p son valores fraccionarios, se puede determinar un denominador comun para proporcionar valores no fraccionarios para a y p. En esta circunstancia, los valores nuevos, no fraccionales para a y p pueden ser contabilizados tal como se describe anteriormente, por ejemplo, decrementando un contador por los valores de a y p tras generar la parte de informacion y la finalizacion del proceso de segmento, respectivamente. El denominador comun determinado puede determinarse, por ejemplo, mediante la adicion del valor del denominador comun al valor del contador en el proceso de cada evento de la secuencia de evento 1135. Por ejemplo, cuando se determina que los valores de a y p son 4/3 y 25 respectivamente, se puede determinar un denominador comun como 3. Los valores no fraccionarios para a y p pueden por lo tanto ser determinados como 4 y 75 respectivamente, utilizando el denominador comun. Por lo tanto, cuando se utiliza un contador para determinar los valores de a y p, el contador puede ser decrementado en 4 para cada parte de informacion generada, decrementado en 75 tras la finalizacion del proceso de cada segmento, e incrementado enr 3 para cada evento procesado.
Tener un codificador capaz de limitar un numero de partes de informacion a traves de uno o mas segmentos de los datos de entrada puede permitir que los datos de video sean decodificados constantemente, lo que representa un numero maximo de partes de informacion por grupo de segmentos, manteniendo la calidad de la codificacion de video en comparacion con los codificadores de la tecnica anterior. Ademas, cuando el codificador recibe una senal a traves de la lmea de control de la velocidad de que el umbral de complejidad esta a punto de ser superado, el codificador puede generar menos eventos, por ejemplo p o menos eventos a partir del siguiente segmento de datos de entrada, para evitar superar ese umbral para este siguiente segmento / bloque. Por lo tanto, tener un valor de p diferente de cero puede ayudar al procesador 1105 en el ajuste de la calidad de video. Ademas, dado que el controlador normalmente desencadena la adicion de bits de relleno cuando se supera el umbral de limitacion, el procesador puede ser implementado de una manera tal que el procesador no tenga por que tener en cuenta o tratar la limitacion de la complejidad. Por lo tanto, si el procesador cumple los lfmites impuestos por la norma en particular, por ejemplo, los lfmites en relacion con uno o mas entre MSPS, MBPS y PMBPS, tambien satisfara los lfmites de complejidad de MEPS y / o PMEPS (es decir, derivados de a y p tal como se describe mas arriba).
Aunque se ha descrito la limitacion del numero de eventos que responden a la cantidad de partes de informacion generadas con respecto al codificador 1100, un experto se dara cuenta de que una limitacion similar del numero de eventos de la secuencia de eventos que responde a la serie de partes de informacion en la secuencia de informacion puede tenerse en cuenta en el codificador 100 descrito anteriormente con respecto a la Figura 1. Ademas, aunque el controlador 1120 se ha descrito como acoplado al codificador aritmetico 1115, un experto se dara cuenta de que dicho acoplamiento puede ser directo, o a traves de otros dispositivos intermedios. Dicho acoplamiento permite la comunicacion directa y / o indirecta entre el controlador 1120 y el codificador aritmetico 1115, de tal manera que el controlador 1120 es capaz de regular el codificador de entropfa 1110 al limitar el numero de partes de informacion de la secuencia de informacion 1130 como una funcion del numero de eventos de la secuencia de eventos 1135.
Los codificadores 100 y 1100, y el decodificador 700, descritos en el presente documento pueden estar compuestos completamente de hardware, como software que se ejecuta en un microprocesador adecuado, o como una combinacion de hardware y software. La funcionalidad de los motores de nucleo 115 y 715, asf como el codificador aritmetico 1115, el controlador 1120 y el procesador 1105, puede llevarse a cabo mientras un programa de ordenador se ejecuta en un microprocesador adecuado, y los registros de contador 180 y 775 pueden ser un registro que reside dentro del microprocesador, o puede ser residente en algun medio de almacenamiento externo en comunicacion con el microprocesador, por ejemplo, RAM, EEPROM, o cualquier medio de almacenamiento magnetico, optico o de otro tipo regrabable tal como sena apreciado por un experto en la tecnica. Tal como se ha descrito anteriormente, aunque los codificadores 100 y 1100, y el decodificador 700, han sido descritos como el proceso de una secuencia de eventos binaria a una secuencia de informacion binaria en el caso de los codificadores, y de una secuencia de informacion binaria a una secuencia de evento binario en el caso del decodificador, un experto en la tecnica apreciana que, utilizando las ensenanzas descritas en el presente documento, la secuencia de eventos M-arios puede ser procesada y producida sin dejar de conseguir las ventajas descritas en el presente documento.
5
10
15
20
25
30
35
40
45
50
Ademas, la senal de los registros de contador 180 y 775 puede invertirse sin dejar de conseguir las ventajas descritas en el presente documento, donde los incrementos en el registro de contador descritos en los pasos 410 y 1005 serfan cambiados a decrementos, los decrementos en el registro de contador descritos en los pasos 435 y 1020 serfan cambiados a incrementos, y las comparaciones con el registro de contador en los pasos 430 y 1010 serfan cambiadas para determinar si el valor del registro de contador respectivo es > cero.
Ademas se pueden utilizar dos contadores en lugar de uno. El primer contador C1 puede contar eventos, y el segundo contador C2 puede contar bits. En tal caso, una comparacion entre los dos contadores puede ser si C1 < 4*C2 para determinar (o explicar) si se mantiene sustancialmente la relacion predeterminada de los eventos para los bits.
Ademas, aunque el codificador 100 y el decodificador 700 se han descrito como hardware separado, un experto en la tecnica se dara cuenta de que la funcionalidad llevada a cabo por cada uno de ellos tal como se describe en el presente documento podrfa integrarse en una sola unidad, por ejemplo, que puede ser util en el caso de un ordenador personal (PC) que se utiliza para una conferencia de video, donde el procesador y el almacenamiento de medios del PC serfan utilizados para llevar a cabo la funcionalidad del codificador y el decodificador que se describen en el presente documento.
La relacion de limitacion de eventos por partes de informacion y que constituyen una proporcion limitada de eventos para partes de informacion realizadas por los motores de nucleo analizados en el presente documento puede llevarse a cabo en otros disenos de motores de nucleo, incluyendo el de un codificador Q, un codificador MQ, un codificador Z, asf como los que se describen en "Low Complexity Arithmetic Coding Implementation", Rene van der Vleuten, Documento JVT - B033, reunion JVT en Ginebra, Suiza, enero de 2002, y "Low-Complexity Arithmetic Coding Engine", Winger, Documento JVT- B036, JVT reunion en Ginebra, Suiza, enero de 2002, los cuales se incorporan como referencia en el presente documento.
Por lo tanto, se ha descrito un codificador con un lfmite de complejidad reducido que es capaz de codificar una secuencia de eventos a una secuencia de informacion mediante la limitacion una frecuencia de eventos por partes de informacion. Dicho codificador resulta ventajoso ya que proporciona una secuencia de informacion que puede ser decodificada y utilizada para apoyar la prestacion de la informacion para su uso en tiempo real, sin afectar significativamente a la eficiencia de codificacion de la secuencia de informacion. Ademas, una codificacion de complejidad reducida de este tipo puede ser beneficiosa cuando el decodificador utilizado en la decodificacion de la secuencia de la informacion posee capacidades de proceso reducidas (es decir, esta en un dispositivo movil) ya que un decodificador de este tipo serfa capaz de decodificar la secuencia de informacion sin retraso indebido a la espera de que se lleve a cabo la decodificacion. Ademas, se ha descrito un codificador capaz de limitar un numero de partes de informacion a traves de uno o mas segmentos de los datos de entrada, que pueden permitir que los datos de video se descodifiquen de forma consistente, lo que representa un numero maximo de partes de informacion por grupo de segmentos, a la vez que se mantiene la calidad de codificacion de video, en comparacion con los codificadores de la tecnica anterior. Cuando el codificador recibe una senal a traves de la lfnea de control de frecuencia de que el umbral de complejidad esta a punto de ser superado, el codificador puede generar menos eventos, para evitar superar el umbral para este segmento siguiente de los datos de entrada. Ademas, dado que el controlador normalmente activa la adicion de bits de relleno cuando se supera el umbral de limitacion, el procesador puede ser implementado de una manera tal que el procesador no tenga por que tener en cuenta o tratar la limitacion de la complejidad. Ademas, se describe un descodificador capaz de decodificar una secuencia de informacion para una secuencia de eventos que explica una relacion acotada de eventos por partes de informacion en la secuencia de informacion, permitiendo de esta manera una decodificacion eficiente de la secuencia de informacion para su uso en, por ejemplo, la utilizacion en tiempo real de la secuencia de eventos.
Aunque esta invencion se ha mostrado y descrito en conexion con realizaciones particulares, es evidente que pueden realizarse ciertos cambios y modificaciones, ademas de los mencionados anteriormente, de las caracterfsticas basicas de esta invencion. Ademas, puede haber muchos tipos diferentes de software y hardware que se pueden utilizar para la practica de la invencion, y la invencion no se limita a los ejemplos descritos anteriormente. Por consiguiente, las realizaciones descritas han de ser consideradas en todos los aspectos solo como ilustrativas y no restrictivas, y por lo tanto el alcance de la invencion esta indicado por las reivindicaciones adjuntas mas que por la descripcion anterior.

Claims (11)

  1. 5
    10
    15
    20
    25
    30
    35
    1. Un sistema para la codificacion y decodificacion aritmetica que comprende
    • un codificador de entropfa (1100) para convertir al menos una secuencia de eventos, en que cada secuencia de eventos incluye una pluralidad de eventos, a al menos una secuencia de informacion, en que cada secuencia de informacion incluye al menos una parte de informacion, en que la al menos una secuencia de eventos representa datos de entrada particionados en una serie de segmentos, que comprende:
    • un codificador aritmetico (1115) configurado para generar cero o mas partes de informacion de al menos una secuencia de informacion codificando al menos un evento de al menos una secuencia de eventos; y
    • un controlador (1120) acoplado con el codificador aritmetico (1115) configurado para mantener una limitacion del numero de eventos de la secuencia de eventos con respecto al numero de partes de informacion generadas incluyendo el numero de eventos en la al menos una secuencia de eventos para ser igual o inferior que un numero determinado por una funcion de una combinacion lineal que incluye el numero de partes de informacion generadas en la al menos una secuencia de informacion y el numero de segmentos y
    • un descodificador configurado para descodificar la al menos una secuencia de informacion.
  2. 2. El sistema de la reivindicacion 1, en que el controlador (1120) tambien esta configurado para limitar el numero de eventos de al menos un secuencia de eventos al numero de partes de informacion de la al menos una secuencia de informacion generando cero o mas partes de relleno en al menos la secuencia de informacion.
  3. 3. El sistema de la reivindicacion 1, en que los datos de entrada son datos de video.
  4. 4. El sistema de la reivindicacion 3, en que cada segmento comprende un bloque de muestras de 16 x 16 de los datos de entrada.
  5. 5. El sistema de la reivindicacion 1, en que al menos una de las partes de informacion y los eventos son M-arios en su naturaleza.
  6. 6. El sistema de la reivindicacion 1, que comprende tambien
    • un procesador configurado para convertir los datos de entrada en la al menos una secuencia de eventos.
  7. 7. El sistema de la reivindicacion 6 en que el procesador tambien esta configurado para particionar los datos de entrada en el numero de segmentos.
  8. 8. El sistema de la reivindicacion 7, en que el codificador aritmetico y el controlador comprenden un codificador de entropfa, en que el codificador de entropfa esta acoplado con el procesador, y esta configurado para enviar informacion relativa al numero de partes de informacion generadas en la al menos una secuencia de informacion al procesador.
  9. 9. El sistema de la reivindicacion 8, en que el procesador esta configurado para reducir una frecuencia de eventos de la al menos una secuencia de eventos en respuesta a la informacion recibida desde el codificador de entropfa.
  10. 10. El sistema de la reivindicacion 7, en que el controlador tambien esta configurado para limitar el numero maximo de eventos generando cero o mas partes de relleno en la al menos una secuencia de informacion.
  11. 11. Un metodo para codificar y decodificar, que comprende
    10
    • convertir al menos una secuencia de eventos, en que cada secuencia de eventos incluye una pluralidad de eventos, en al menos una secuencia de informacion, en que cada secuencia de informacion incluye al menos una parte de informacion, en que la al menos una secuencia de eventos representa datos de entrada particionados en una serie de segmentos, que comprende:
    • pasos implementados por ordenador realizados por un procesador de un sistema de ordenador a implementar:
    • generar cero o mas partes de informacion de al menos una secuencia de informacion codificando al menos un evento de al menos una secuencia de eventos de acuerdo con una codificacion aritmetica; y
    • mantener una limitacion del numero de eventos de la secuencia de eventos con respecto a un numero de partes de informacion generadas que incluye el numero de eventos en al menos una secuencia de eventos para que sea igual o inferior a un numero determinado por una funcion de una combinacion lineal que incluye el numero de partes de informacion generadas en al menos una secuencia de informacion y el numero de segmentos; y
    • decodificar la al menos una secuencia de informacion.
    15
ES10195913.8T 2002-04-23 2003-04-23 Sistema y método para codificación y decodificación aritmética Expired - Lifetime ES2552696T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37477002P 2002-04-23 2002-04-23
US374770P 2002-04-23

Publications (1)

Publication Number Publication Date
ES2552696T3 true ES2552696T3 (es) 2015-12-01

Family

ID=29270547

Family Applications (3)

Application Number Title Priority Date Filing Date
ES10195913.8T Expired - Lifetime ES2552696T3 (es) 2002-04-23 2003-04-23 Sistema y método para codificación y decodificación aritmética
ES15169825T Expired - Lifetime ES2797349T3 (es) 2002-04-23 2003-04-23 Sistema y método para codificación y decodificación aritmética
ES03718500.6T Expired - Lifetime ES2559406T3 (es) 2002-04-23 2003-04-23 Sistema y método para codificación aritmética

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES15169825T Expired - Lifetime ES2797349T3 (es) 2002-04-23 2003-04-23 Sistema y método para codificación y decodificación aritmética
ES03718500.6T Expired - Lifetime ES2559406T3 (es) 2002-04-23 2003-04-23 Sistema y método para codificación aritmética

Country Status (9)

Country Link
US (1) US7822283B2 (es)
EP (5) EP2933756B1 (es)
JP (2) JP4252532B2 (es)
CN (1) CN100349379C (es)
AU (1) AU2003221760A1 (es)
DK (3) DK2312498T3 (es)
ES (3) ES2552696T3 (es)
PT (2) PT2933756T (es)
WO (1) WO2003091942A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260735B2 (en) * 2003-12-18 2007-08-21 Lsi Corporation Method and system for maintaining a running count of events updated by two asynchronous processes
KR100696191B1 (ko) 2004-12-10 2007-03-20 한국전자통신연구원 유비쿼터스 환경에서 컨텍스트를 수집하고 관리하기 위한시스템 및 방법
US7240620B2 (en) 2005-04-03 2007-07-10 Suzanne Malott Yatsko Easy vehicle turnaround
US7934098B1 (en) 2005-04-11 2011-04-26 Alliedbarton Security Services LLC System and method for capturing and applying a legal signature to documents over a network
CN100584025C (zh) * 2005-08-04 2010-01-20 华为技术有限公司 一种基于内容自适应的算术解码系统及装置
US9558109B2 (en) 2014-04-04 2017-01-31 Samsung Israel Research Corporation Method and apparatus for flash memory arithmetic encoding and decoding

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4935882A (en) * 1986-09-15 1990-06-19 International Business Machines Corporation Probability adaptation for arithmetic coders
US5086488A (en) * 1989-08-19 1992-02-04 Mitsubishi Denki Kabushiki Kaisha Transform coding apparatus
DE69130275T2 (de) 1990-07-31 1999-04-08 Canon K.K., Tokio/Tokyo Verfahren und Gerät zur Bildverarbeitung
US5550540A (en) * 1992-11-12 1996-08-27 Internatioal Business Machines Corporation Distributed coding and prediction by use of contexts
US5414423A (en) * 1993-04-29 1995-05-09 International Business Machines Corporation Stabilization of probability estimates by conditioning on prior decisions of a given context
US5452006A (en) * 1993-10-25 1995-09-19 Lsi Logic Corporation Two-part synchronization scheme for digital video decoders
US5471207A (en) * 1994-02-23 1995-11-28 Ricoh Company Ltd. Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
JPH07249995A (ja) * 1994-03-10 1995-09-26 Seiko Epson Corp データ符号化装置
JP3201448B2 (ja) 1994-03-31 2001-08-20 三菱電機株式会社 符号化復号化装置,符号化装置,および復号化装置
JP3082585B2 (ja) * 1994-09-09 2000-08-28 富士ゼロックス株式会社 画像情報符号化処理装置、画像情報復号化処理装置及び画像情報符号化復号化処理装置
US6195465B1 (en) 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US5689589A (en) 1994-12-01 1997-11-18 Ricoh Company Ltd. Data compression for palettized video images
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
JPH0918350A (ja) * 1995-06-28 1997-01-17 Hitachi Ltd 符号化復号化装置及び符号化復号化方法
US5680129A (en) * 1995-07-18 1997-10-21 Hewlett-Packard Company System and method for lossless image compression
US5877812A (en) * 1995-11-21 1999-03-02 Imedia Corporation Method and apparatus for increasing channel utilization for digital video transmission
US6072909A (en) * 1995-12-13 2000-06-06 Fuji Xerox Co., Ltd. Image coding devise and image decoding devise using with image disassembly
US6188795B1 (en) * 1996-06-13 2001-02-13 Dublin City University Data compression
JP3621512B2 (ja) * 1996-06-19 2005-02-16 株式会社ルネサステクノロジ ディジタル情報符号化装置、ディジタル情報復号化装置、ディジタル情報符号化・復号化装置、ディジタル情報符号化方法、及びディジタル情報復号化方法
CN1196319C (zh) * 1996-07-31 2005-04-06 松下电器产业株式会社 图象解码装置和图象解码方法
JPH1093827A (ja) * 1996-09-11 1998-04-10 Canon Inc 画像処理方法とその装置
EP0945022B1 (en) * 1996-12-18 2003-02-26 Thomson Consumer Electronics, Inc. Efficient fixed-length block compression and decompression
US6225925B1 (en) * 1998-03-13 2001-05-01 At&T Corp. Z-coder: a fast adaptive binary arithmetic coder
CN1174634C (zh) * 1998-01-26 2004-11-03 株式会社大宇电子 基于上下文的算术编码/解码方法及装置
JP3391251B2 (ja) * 1998-03-25 2003-03-31 三菱電機株式会社 適応確率推定方法及び適応符号化方法並びに適応復号方法
FR2780792B1 (fr) * 1998-07-03 2000-09-22 St Microelectronics Sa Appareillage de test de puces electroniques
US6643405B1 (en) * 1998-09-30 2003-11-04 Canon Kabushiki Kaisha Image processing apparatus and method and computer-readable storage medium
US6804401B2 (en) * 2000-05-12 2004-10-12 Xerox Corporation Method for compressing digital documents with control of image quality subject to multiple compression rate constraints
JP3457269B2 (ja) 2000-07-18 2003-10-14 パナソニック コミュニケーションズ株式会社 算術符号化・復号化方法および算術符号化・復号化装置
US6661927B1 (en) * 2000-07-27 2003-12-09 Motorola, Inc. System and method for efficiently encoding an image by prioritizing groups of spatially correlated coefficients based on an activity measure
US6677869B2 (en) * 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
JP2003143411A (ja) * 2001-11-02 2003-05-16 Canon Inc 画像処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体
US20030185302A1 (en) * 2002-04-02 2003-10-02 Abrams Thomas Algie Camera and/or camera converter
US7260735B2 (en) * 2003-12-18 2007-08-21 Lsi Corporation Method and system for maintaining a running count of events updated by two asynchronous processes

Also Published As

Publication number Publication date
DK2312498T3 (en) 2015-11-16
EP3709217A1 (en) 2020-09-16
DK1504408T3 (en) 2016-01-25
JP2009060667A (ja) 2009-03-19
JP4252532B2 (ja) 2009-04-08
US20040208383A1 (en) 2004-10-21
JP4722990B2 (ja) 2011-07-13
DK2933756T3 (da) 2020-06-02
PT2933756T (pt) 2020-06-16
ES2559406T3 (es) 2016-02-12
CN1647099A (zh) 2005-07-27
EP1504408A4 (en) 2010-06-16
EP2312498A1 (en) 2011-04-20
EP1504408A1 (en) 2005-02-09
EP2933756A1 (en) 2015-10-21
CN100349379C (zh) 2007-11-14
EP1504408B1 (en) 2015-10-28
WO2003091942A1 (en) 2003-11-06
JP2005524267A (ja) 2005-08-11
EP2312498B1 (en) 2015-08-12
AU2003221760A1 (en) 2003-11-10
EP2933756B1 (en) 2020-04-29
ES2797349T3 (es) 2020-12-02
US7822283B2 (en) 2010-10-26
PT1504408E (pt) 2016-02-25
EP2933755A1 (en) 2015-10-21

Similar Documents

Publication Publication Date Title
CN100461858C (zh) 用于图像或视频处理的通用参考解码器
JP5390004B2 (ja) 確率推定のための状態マシンを生成する方法、算術エンコーダ、算術デコーダ、及び、復号方法
US20070024475A1 (en) Variable length coding method and variable length decoding method
TW201031128A (en) Adaptive canonical huffman decoder and method thereof and video decoder
JP4722990B2 (ja) 算術的符号化及び復号のためのシステム及び方法
JP3832797B2 (ja) 符号化装置及び符号化方法
JPH1198502A (ja) 動画像符号化装置
US10291255B2 (en) System and method for arithmetic encoding and decoding
CN106603081B (zh) 一种通用算术编码方法及其解码方法
JPS6352812B2 (es)
JP2931328B2 (ja) 画像信号圧縮符号化装置
JP2001298741A (ja) 画像圧縮方法、画像伸張方法、画像圧縮装置、画像伸張装置および画像圧縮伸張装置