ES2442215T3 - Procedimiento y dispositivo de codificación y descodificación aritméticas de estados binarios y programa informático correspondiente y soporte de almacenamiento correspondiente legible por ordenador - Google Patents
Procedimiento y dispositivo de codificación y descodificación aritméticas de estados binarios y programa informático correspondiente y soporte de almacenamiento correspondiente legible por ordenador Download PDFInfo
- Publication number
- ES2442215T3 ES2442215T3 ES08020010.8T ES08020010T ES2442215T3 ES 2442215 T3 ES2442215 T3 ES 2442215T3 ES 08020010 T ES08020010 T ES 08020010T ES 2442215 T3 ES2442215 T3 ES 2442215T3
- Authority
- ES
- Spain
- Prior art keywords
- probability
- state
- bit
- interval
- rlps
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Hardware Redundancy (AREA)
Abstract
Un procedimiento para codificar aritméticamente un símbolo que hay que codificar que tiene un estado binariobasado en una anchura de intervalo actual R y representando una probabilidad una estimación de probabilidad parael símbolo que hay que codificar, en el que la probabilidad está representada por un índice de probabilidad paraasignar un estado de probabilidad entre una pluralidad de estados de probabilidad representativos, en el que elprocedimiento comprende la siguiente etapa caracterizadora: codificar el símbolo que hay que codificar realizando las siguientes sub-etapas: cartografiar la anchura de intervalo actual con un índice de cuantización de entre una pluralidad de índices decuantización representativos; realizar la subdivisión de intervalo mediante el acceso a una tabla de división de intervalo utilizando el índice decuantización y el índice de probabilidad para obtener un valor de la anchura de intervalo parcial; actualizar la anchura de intervalo actual utilizando el valor de la anchura de intervalo parcial para obtener una nuevay actualizada anchura de intervalo; y renormalizar la nueva y actualizada anchura de intervalo, dando como salida un bit por operación deescalonamiento.
Description
Procedimiento y dispositivo de codificación y descodificación aritméticas de estados binarios y programa informático correspondiente y soporte de almacenamiento correspondiente legible por ordenador
[0001] La invención se refiere a un procedimiento y a un dispositivo para codificar aritméticamente y descodificar estados binarios y a un programa informático correspondiente y un medio de almacenamiento legible por ordenador correspondiente que puede en particular ser utilizado en la compresión de datos digitales.
[0002] La presente invención describe un nuevo procedimiento eficiente para la codificación aritmética binaria. Existe una demanda para la codificación aritmética binaria en la mayoría de áreas de aplicación diferentes de compresión de datos digitales; aquí, en particular, son especialmente interesantes las aplicaciones en los sectores de la compresión de imágenes digitales. En numerosas normas para la codificación de imágenes, como por ejemplo, JPEG, JPEG -2000, JPEG -LS y JPIG, se definieron procedimientos para una codificación aritmética binaria. Las actividades de normalización más nuevas también prevén de manera obvia el uso futuro de estas tecnologías de codificación en el campo de la codificación video (CABAC en H. 264/AVC) [1].
[0003] Las ventajas de la codificación aritmética (CA) en contraste con la codificación de Huffman [2] que hasta ahora se había utilizado en la práctica, se pueden caracterizar básicamente por tres características:
- 1.
- Mediante el uso de la codificación aritmética, por mecanismos de adaptación simples se puede obtener una adaptación dinámica a la presente estadística de fuente (adaptabilidad).
- 2.
- La codificación aritmética permite la asignación de un número de bits no entero por símbolo que va a codificarse y es por lo tanto adecuada para lograr resultados de codificación que ilustran una aproximación de la entropía como límite inferior dado teóricamente (aproximación de entropía) [3].
- 3.
- Se pueden utilizar enlaces estadísticas de modelos de contexto adecuados entre símbolos para una reducción adicional de datos con la codificación aritmética (redundancia entre símbolos) [4].
[0004] Como desventaja de una aplicación de la codificación aritmética, se considera en general el aumento del esfuerzo de cálculo en comparación con la codificación de Huffman.
[0005] El concepto de la codificación aritmética se remonta a la documentación básica para la teoría de información por Shannon [5]. Los primeros procedimientos de construcción conceptuales fueron publicados primeramente por Elias [6]. Una primera variante LIFO (last-in-first-out) de la codificación aritmética fue diseñada por Rissanen [7] y más tarde modificada [8] [9] [10] por diferentes autores de las implementaciones FIFO (first-in-first-out).
[0006] Todos estos documentos tienen como principio básico común la descomposición de intervalo parcial recursiva. En correspondencia con las probabilidades dadas P(“0”) y P(“1”) de dos resultados {“0”, “1”} de un alfabeto binario un intervalo dado principalmente, por ejemplo el intervalo [0, 1), se descompone de forma recursiva en intervalos parciales dependiendo de la ocurrencia de eventos individuales. Aquí, el tamaño del intervalo parcial resultante como el producto de las probabilidades individuales de los eventos que ocurren es proporcional a la probabilidad de la secuencia de eventos individuales. Como cada evento Si añade una contribución de H(Si) = log(P(Si)) del contenido de información teórica H(Si) de Si a la tasa global por la probabilidad P(Si), una relación entre el número NBit de bits para ilustrar el intervalo parcial y la entropía de la secuencia de los resultados de los eventos individuales, que viene dada por el término derecho de la ecuación siguiente:
NBIi =− log∏I P(SI) = −II logP(SI)
[0007] El principio básico, sin embargo, requiere en primer lugar de una precisión ilimitada (teóricamente) en la ilustración del intervalo parcial resultante y aparte de esto, tiene la desventaja de que sólo después de la codificación de los últimos resultados pueden darse como salida los bits para una representación de intervalo parcial resultante. A los efectos de aplicación práctica, fue decisivo por lo tanto desarrollar mecanismos para una salida gradual de bits con una representación simultánea con números con una precisión fija predeterminada. Estos mecanismos se introdujeron por primera vez en los documentos [3] [7] [11].
[0008] En la figura 1, se indican las operaciones básicas para una codificación aritmética binaria. En la implementación ilustrada el intervalo parcial actual está representado por los dos valores L y R, donde L indica el punto de desplazamiento y R el tamaño (anchura) del intervalo parcial, donde ambas cantidades se ilustran, utilizando números b bits enteros respectivamente. La codificación de un bit ∈ {0, 1} se lleva a cabo de este modo, básicamente, en cinco subetapas: En la primera etapa se determina el valor del símbolo menos probable utilizando la estimación de probabilidad. Para este símbolo, también llamado LPS (Least Probable Symbol- símbolo menos probable), en contraste con el MPS (Most Probable Symbol- símbolo más probable), se utiliza la estimación de
probabilidad PLPS en la segunda etapa para calcular la anchura RLPS del intervalo parcial correspondiente. Dependiendo del valor del bit que hay que codificar L y R se actualizan en la tercera etapa. En la cuarta etapa se actualiza la estimación de probabilidad en función del valor del bit que se acaba de codificar y finalmente el intervalo de código R se somete a la así llamada renormalización en la última etapa, es decir R se reescala por ejemplo para que se satisfaga la condición R∈[2b-2, 2b-1]. Aquí, se da como salida un bit en cada operación de escalado. Para más detalles, consulte [10].
[0009] La principal desventaja de una implementación, tal como se indica más arriba, reside ahora en el hecho de que el cálculo de la anchura de intervalo RLPS requiere una multiplicación para cada símbolo que hay que codificar. En general, las operaciones de multiplicación, en particular cuando se realizan en hardware, son costosas y requieren mucho tiempo. En varios documentos de investigación se examinaron los procedimientos para sustituir esta operación de multiplicación por una aproximación adecuada [11] [12] [13] [14]. Por la presente, los procedimientos publicados con referencia a este tema se pueden separar generalmente en tres categorías.
[0010] El primer grupo de propuestas para una codificación aritmética binaria libre de multiplicaciones, se basa en el enfoque de la aproximación de las probabilidades estimadas PLPS para que la multiplicación en la segunda etapa de La figura 1 podrá sustituirse por una o varias operaciones de suma y desplazamiento [11] [14]. Para esto, en el caso más simple las probabilidades PLPS se aproximan por valores en la forma 2-q con el entero q > 0.
[0011] En la segunda categoría de procedimientos aproximativos se propone aproximar el rango de valores de R por valores discretos en la forma (1/2 – r), donde se selecciona r ∈ {0} ∪ {2-k I k > 0, k entero} [15] [16].
[0012] La tercera categoría de procedimientos sólo se conoce por el hecho de que aquí cualquier operación aritmética se sustituye por accesos a tabla. La tercera categoría de procedimientos sólo se conoce por el hecho de que aquí cualquier operación aritmética se sustituye por accesos a tabla. A este grupo de procedimientos pertenecen, por un lado el codificador Q utilizado en los procedimientos JPEG estándar y los relacionados, tales como los codificadores QM - y MQ - [12], y por otro lado el codificador cuasi aritmético [13]. Mientras que este último procedimiento realiza una limitación drástica del número b de bits utilizados para la representación de R con el fin de obtener tablas aceptablemente dimensionadas, en el codificador Q la renormalización de R se implementa de manera que R puede al menos aproximadamente ser aproximado por 1. De esta manera se evita la multiplicación para determinar RLPS. Además, se realiza la estimación de probabilidad mediante una tabla en la forma de una máquina de estado finito. Además, se realiza la estimación de probabilidad mediante una tabla en la forma de una máquina de estado finito [12].
[0013] El documento de patente US5592162 describe un procedimiento de realización de codificación aritmética, estando el número de posibles intervalos de anchuras restringido.
[0014] Mediante el uso de un índice relativo a dichas anchuras de intervalo, la codificación aritmética libre de multiplicaciones se puede lograr con una sobrecarga reducida en términos de almacenamiento.
[0015] Esta invención se refiere a un dispositivo y a un procedimiento para la codificación aritmética, un dispositivo y a un procedimiento para la decodificación aritmética de acuerdo con las reivindicaciones adjuntas.
[0016] Un procedimiento para codificar y descodificar estados binarios aritméticamente se realiza ventajosamente de modo que en una primera etapa un rango de valores que se puede pre-establecer para la especificación de la anchura de intervalo R se separa en K anchuras de intervalo representativas {Q1, …, QK}, un rango de valores que se puede pre-establecer para la especificación de las probabilidades se separa en N estados de probabilidad representativos {P1, …, PN} y se dan unas reglas de asignación, que asignan un QK (1 ≤ k ≤ K) a cada anchura de intervalo R y un Pn (1 ≤ n ≤ N) a cada probabilidad, y que en una segunda etapa la codificación o descodificación de los estados binarios ocurre realizando el cálculo de la nueva anchura de intervalo a obtener en el proceso de codificación o descodificación, respectivamente, utilizando una anchura de intervalo representativa QK (1 ≤ k ≤ K) y un estado de probabilidad representativo Pn (1 ≤ n ≤ N) mediante operaciones aritméticas distintas de la multiplicación y la división, en el que la anchura de intervalo representativa QK se determina mediante el intervalo de base básico de la anchura R y el estado de probabilidad representativo Pn se determina mediante la estimación de probabilidad subyacente al símbolo que hay que codificar o a descodificar según las reglas de asignación dadas.
[0017] Otra realización se caracteriza por el hecho de que basado en el intervalo que se tiene que evaluar actualmente con una anchura R para determinar la anchura de intervalo asociada QK se determina un índice q_index mediante una operación de desplazamiento y ocultamiento de bits aplicada a la representación interna/binaria en ordenador de R.
[0018] También es ventajoso que a partir del intervalo que se tiene que evaluar actualmente con una anchura R para determinar la anchura de intervalo asociada QK se determina un índice q_index mediante una operación de desplazamiento aplicada a la representación interna/binaria en ordenador de R y un acceso aguas abajo a una tabla
Qtab, en el que la tabla Qtab contiene los índices de anchuras de intervalo que corresponden a los valores de R que se precuantizaron por la operación de desplazamiento.
[0019] En particular, es ventajoso cuando la estimación de probabilidad subyacente al símbolo que hay que codificar
o descodificar está asociada a un estado de probabilidad Pn utilizando un índice p_state.
[0020] También es una ventaja cuando la determinación de la anchura de intervalo RLPS que corresponde a los LPS se realiza mediante un acceso a la tabla Rtab, en el que la tabla Rtab contiene los valores que corresponden a todos los K valores cuantizados de R y a los N diferentes estados de probabilidad de la anchura de intervalo RLPS como valores de producto (QK * Pn). El esfuerzo de cálculo se reduce en particular cuando la determinación de la anchura de intervalo RLPS que corresponde a los LPS se realiza mediante un acceso a la tabla Rtab, en el que para evaluar la tabla se utilizan el índice de cuantización q_index y el índice de la probabilidad state p_state.
[0021] También se prevé que en el procedimiento para los N diferentes estados de probabilidad representativos se den unas reglas de transición, en el que las reglas de transición indican que nuevo estado se utiliza basado en el símbolo codificado o descodificado actualmente para el siguiente símbolo que hay que codificar o descodificar. Por lo tanto es una ventaja cuando se crea una tabla Next_State_LPS que contiene el índice m del nuevo estado de probabilidad Pm cuando un símbolo menos probable (LPS) ocurre además del índice n del estado de probabilidad dado actualmente Pn, y/or cuando se crea una tabla Next_State_MPS que contiene el índice m del nuevo estado de probabilidad Pm cuando un símbolo más probable (MPS) ocurre además del índice n del estado de probabilidad dado actualmente Pn.
[0022] Se consigue una optimización del procedimiento para una codificación y decodificación aritmética binaria asistida mediante tabla, en particular, gracias a que los valores de la anchura de intervalo RLPS que corresponden a todas las K anchuras de intervalo a a todos los N diferentes estados de probabilidad se entran como valores de producto (QK * Pn) en una tabla Rtab.
[0023] Una optimización adicional se consigue cuando el número K de los valores de cuantización y / o el número N de los estados representativos se seleccionan en función de la precisión preestablecida de la codificación y / o dependiendo del espacio de almacenamiento disponible.
[0024] La codificación incluye las siguientes etapas, por ejemplo:
- 1.
- Determinación del LPS
- 2.
- Cuantización de R:
3. Determinación de RLPS y R:
RLPS = Rtab [q_index, p_state]
4. Cálculo del nuevo intervalo parcial:
if (bit: LPS) then
R
RLPS
p_state
Next_State_LPS [p_state]
if (p_state = 0) then valMPS
1 – valMPS
p_state
Next_State_MPS [p_state]
5. Renormalización de L y R, bits de escritura, en el que
q_index describe el índice de un valor de cuantización leído de Qtab,
p_state describe el estado actual,
RLPS describe la anchura de intervalo correspondiente al LPS y
valMPS describe el bit que corresponde al MPS.
[0025] La descodificación incluye las siguientes etapas, por ejemplo:
- 1.
- Determinación del LPS
- 2.
- Cuantización de R:
3. Determinación de RLPS y R:
RLPS = Rtab [q_index, p_state]
R = R – RLPS
4. Determinación de bit en función de la posición del intervalo parcial:
if (V ≥ R) then
bit
LPS
V
V -R
R
RLPS
if (p_state = 0) valMPS
1 -valMPS
p_state
Next_State_LPS [p_state]
5. Renormalización de R, leer un bit y actualizar V, en el que
q_index describe el índice de un valor de cuantización leído de Qtab,
p_state describe el estado actual,
RLPS describe la anchura de intervalo correspondiente al LPS,
valMPS describe el bit que corresponde al MPS, y
V describe un valor del interior del intervalo parcial actual.
[0026] En otro procedimiento se proporciona que al codificar y/o descodificar el cálculo del índice de cuantización
q_index se realiza en la segunda sub-etapa según la regla de cálculo:
q_index = (R >> q) & Qmask
en el que Qmask ilustra una máscara de bit seleccionada adecuadamente en función de K.
[0027] Si una distribución de probabilidad uniforme está presente se puede lograr una optimización adicional del procedimiento para una codificación descodificación aritmética asistida por tabla mediante la codificación según la reivindicación 12. Las sub-etapas 1 a 4 se realizan según la siguiente regla de cálculo:
o donde las sub-etapas 1 a 4 de la codificación según la reivindicación 12 se realizan según la siguiente regla de cálculo:
y en el que en la última alternativa la renormalización (subetapa 5 según la reivindicación 12) se realiza con valores umbral de decisión doblados y no doblados de L y R, y donde en la descodificación según la reivindicación 13 las sub-etapas 1 a 4 se realizan según la siguiente regla de cálculo:
R
R >>1
if (V ≥ R) then bit
1 V
V – R
else bit
0,
o las sub-etapas 1 a 5 de la descodificación según la reivindicación 13 se realizan según la siguiente regla de cálculo:
- 1.
- Leer un bit y actualizar V
- 2.
- Determinación de bit según la posición del intervalo parcial:
else bit
0.
[0028] También resulta ventajoso cuando la inicialización de los modelos de probabilidad se realiza en función de un parámetro de cuantización SliceQP y parámetros de modelo presetablecidos m y n, en el que SliceQP describe los parámetros de cuantización presetablecido al principio de una porción y m y n describen los parámetros de modelo.
15 [0029] También es ventajoso cuando la inicialización de los modelos de probabilidad incluye las siguientes etapas:
- 1.
- preState = min(max(1, ((m * SliceQP) >>4)+n), 2*N)
- 2.
- if (preState <=N) then
p_state = N+1 – preState20 valMPS = 0
25 en el que valMPS describe el bit que corresponde al MPS, SliceQP describe los parámetros de cuantización preestablecidos al principio de una porción y m y n describen los parámetros de modelo.
[0030] Un dispositivo para codificar y descodificar aritméticamente estados binarios incluye al menos un procesador que está implementado de manera que se pueda llevar a cabo un procedimiento para codificar y descodificar 30 aritméticamente, en el que en una primera etapa un rango de valores que se puede pre-establecer para la especificación de la anchura de intervalo R se separa en K anchuras de intervalo representativas {Q1, …, QK}, un rango de valores que se puede pre-establecer para la especificación de las probabilidades se separa en N estados de probabilidad representativos {P1, …, PN} y se dan reglas de asignación, que asignan un QK (1 ≤ k ≤ K) a cada anchura de intervalo R y un Pn (1 ≤ n ≤ N) a cada probabilidad, y en el que en una segunda etapa la codificación o 35 descodificación de los estados binarios ocurre realizando el cálculo de la nueva anchura de intervalo a obtener en el proceso de codificación o descodificación, respectivamente, utilizando una anchura de intervalo representativa QK (1 ≤ k ≤ K) y un estado de probabilidad representativo Pn (1 ≤ n ≤ N) mediante operaciones aritméticas distintas de la multiplicación y la división, en el que la anchura de intervalo representativa QK se determina mediante el intervalo de base básico de la anchura R y el estado de probabilidad representativo Pn se determina mediante la estimación de
40 probabilidad subyacente al símbolo que hay que codificar o a descodificar según las reglas de asignación dadas..
[0031] Un programa de ordenador para codificar y descodificar aritméticamente de estados binarios permite a un ordenador, tras haber sido cargado en la memoria del ordenador, realizar un procedimiento para codificar y descodificar aritméticamente, en el que en una primera etapa un rango de valores que se puede pre-establecer para 45 la especificación de la anchura de intervalo R se separa en K anchuras de intervalo representativas {Q1, …, QK}, un rango de valores que se puede pre-establecer para la especificación de las probabilidades se separa en N estados de probabilidad representativos {P1, …, PN} y se dan reglas de asignación, que asignan un QK (1 ≤ k ≤ K) a cada anchura de intervalo R y un Pn (1 ≤ n ≤ N) a cada probabilidad, y en el que en una segunda etapa la codificación o descodificación de los estados binarios ocurre realizando el cálculo de la nueva anchura de intervalo a obtener en el 50 proceso de codificación o descodificación, respectivamente, utilizando una anchura de intervalo representativa QK (1 ≤ k ≤ K) y un estado de probabilidad representativo Pn (1 ≤ n ≤ N) mediante operaciones aritméticas distintas de la multiplicación y la división, en el que la anchura de intervalo representativa QK se determina mediante el intervalo de base básico de la anchura R y el estado de probabilidad representativo Pn se determina mediante la estimación de probabilidad subyacente para el símbolo que hay que codificar o a descodificar según las reglas de asignación
55 dadas.
[0032] Por ejemplo, este tipo de programas informáticos se pueden proporcionar (a cambio de una tarifa determinada o de manera gratuita, de acceso libre o protegida por contraseña) que se puede descargar en una red de datos o de comunicación. Los programas de ordenador facilitados pueden entonces hacerse utilizables por un
60 procedimiento en el que un programa de ordenador según la reivindicación 3 se descarga desde una red para la transmisión de datos, como por ejemplo, de Internet a unos medios de procesamiento de datos conectados a la red.
[0033] Para realizar un procedimiento para codificar y descodificar aritméticamente estados binarios se utiliza preferentemente un medio de almacenamiento legible por ordenador en el que hay un programa almacenado que65 permite a un ordenador, tras haber sido cargado en la memoria del ordenador, realizar un procedimiento para una
codificación y descodificación aritmética, en el que en una primera etapa un rango de valores que se puede preestablecer para la especificación de la anchura de intervalo R se separa en K anchuras de intervalo representativas {Q1, …, QK}, un rango de valores que se puede pre-establecer para la especificación de las probabilidades se separa en N estados de probabilidad representativos {P1, …, PN} y se dan reglas de asignación, que asignan un QK (1 ≤ k ≤ K) a cada anchura de intervalo R y un Pn (1 ≤ n ≤ N) a cada probabilidad, y en el que en una segunda etapa la codificación o descodificación de los estados binarios ocurre realizando el cálculo de la nueva anchura de intervalo a obtener en el proceso de codificación o descodificación, respectivamente, utilizando una anchura de intervalo representativa QK (1 ≤ k ≤ K) y un estado de probabilidad representativo Pn (1 ≤ n ≤ N) mediante operaciones aritméticas distintas de la multiplicación y la división, en el que la anchura de intervalo representativa QK se determina mediante el intervalo de base básico de la anchura R y el estado de probabilidad representativo Pn se determina mediante la estimación de probabilidad subyacente como base para el símbolo que hay que codificar o a descodificar según las reglas de asignación dadas.
[0034] En lo que sigue, la invención se explica con más detalle con referencia a una realización ilustrada en los dibujos, en los que:
La figura 1 muestra una ilustración de las operaciones básicas para una codificación aritmética binaria;
La figura 2 muestra un esquema modificado de codificación aritmética asistida por tabla;
La figura 3 muestra el principio de la decodificación aritmética asistida por tabla;
La figura 4 muestra el principio de codificación o de decodificación, respectivamente, de datos binarios que tienen
una distribución uniforme;
La figura 5 muestra una alternativa de realización de la codificación o decodificación, respectivamente, para los
datos binarios con una distribución uniforme; y
La figura 6 muestra la inicialización de los modelos de probabilidad en función de un parámetro de cuantización
SliceQP y parámetros de modelo preestablecidos m y n.
[0036] En primer lugar, sin embargo, se explica con más detalle el fondo teórico:
Estimación de probabilidad asistida por tabla
[0037] Como ya se mencionó anteriormente, el efecto de la codificación aritmética se basa en una estimación de la probabilidad de ocurrencia de los símbolos a ser codificados que debe a ser tan buena como sea posible. A fin de permitir una adaptación de estadísticas de fuentes no estacionarias, esta estimación tiene que ser actualizada en el curso del proceso de codificación. Generalmente, se utilizan para ello procedimientos habituales que operan usando contadores de frecuencia escalados de los resultados codificados [17]. Si CLPS y CMPS designan contadores para las frecuencias de ocurrencia de LPS y MPS, entonces utilizando estos contadores se puede realiza la estimación
CLPS
PLPS = (1) CLPS + CMPS
y entonces se puede llevar a cabo la operación destacada en la figura 1 de la subdivisión de intervalo. A efectos prácticos, la división necesaria en la ecuación (1) es desventajosa. A menudo es conveniente y necesario, sin embargo, llevar a cabo un cambio de escala de las lecturas de contador cuando se excede un valor umbral predeterminado Cmax del contador general CTotal = CMPS + CLPS. (En este contexto, es de señalar que con una representación de b-bits de L y R la probabilidad más pequeña que puede ser indicada correctamente es 2-b+2, de modo que para evitar salirse de este límite inferior, si es necesario se requiere un cambio de escala de las lecturas de contador.) Con una selección adecuada de Cmax se pueden tabular los valores recíprocos de CTotal, de modo que la división necesaria en la ecuación (1) puede ser sustituida por un acceso a la tabla y por una operación de multiplicación y desplazamiento. Con el fin de evitar también estas operaciones aritméticas, sin embargo, en la presente invención se utiliza un procedimiento completamente asistido por tabla para la estimación de probabilidad.
[0038] Para esto, en una fase de entrenamiento se preseleccionan los estados de probabilidad representativos {PK I 0 ≤ k < Nmax}, en la que la selección de los estados es por un lado dependiente de las estadísticas de los datos que hay que codificar y por otro lado de las condiciones laterales del número máximo predeterminado Nmax de estados. Además, se definen unas reglas de transición que indican que nuevo estado se va a utilizar para el siguiente símbolo que ha de codificarse basado en el símbolo actualmente codificado. Estas reglas de transición se proporcionan en forma de dos tablas: {Next_State_LPSk I 0 ≤ k < Nmax} y {Next_State_MPSk I 0 ≤ k < Nmax}, en el que las tablas proporcionan el índice m del nuevo estado de probabilidad Pm cuando ocurre un LPS o MPS, respectivamente, para el índice n del estado de probabilidad dado actualmente. Es de señalar aquí, que para una estimación de probabilidad en el codificador o decodificador aritmético, respectivamente, como se propone en el presente documento, no se requiere la tabulación explícita de los estados de probabilidad. Más bien, los estados se asignan solamente implícitamente utilizando sus respectivos índices, como se describe en la siguiente sección. Además de
las reglas de transición se debe especificar en qué estados de probabilidad se debe intercambiar el valor de los LPS y MPS. Por lo general, sólo habrá uno de estos estados excelentes que se podrá identificar utilizando su índice p_state.
Separación de intervalo asistido por tabla
[0039] La figura 2 muestra el esquema modificado para la codificación aritmética asistida con tabla, como se propone en el presente documento. Después de la determinación de los LPS, primero de todo se asigna la anchura de intervalo R dada a u valor cuantizado Q utilizando un cartografiado tabulado Qtab y una operación de desplazamiento adecuada (por q bit). Como alternativa, en algunos casos especiales la cuantización también se puede realizar sin la utilización del cartografiado tabulado Qtab sólo con la ayuda de una combinación de operaciones de desplazamiento y de enmascaramiento. En general, aquí se realiza una cuantificación relativamente basta a K = 2 … 8 valores representativos. También aquí, de manera similar al caso de la estimación de probabilidad, no se realiza una determinación explicita de Q; más bien, solamente se transfiere un índice q_index a
Q. Este índice se utiliza ahora junto con el índice p_state para una caracterización del estado de probabilidad actual para la determinación de la anchura de intervalo RLPS. Para ello, se utiliza ahora la entrada correspondiente de la tabla Rtab. Aquí, se introducen los K ⋅ Nmax valores de producto R x PLPS, que corresponden a todos los K valores cuantizados de R y los Nmax diferentes de los estados de probabilidad, como valores enteros con una precisión en general de b-2 bits. Para implementaciones prácticas se da aquí una posibilidad de sopesar entre los requisitos de almacenamiento del tamaño de la tabla y la precisión aritmética que finalmente también determina la eficiencia de la codificación. Ambas variables objetivo están determinadas por la granularidad de la representación de R y PLPS.
[0040] En la cuarta etapa de la figura 2 se muestra cómo se realiza la actualización del estado de probabilidad p_state en función del bit de evento anteriormente codificado. Aquí, se utilizan las tablas de transición Next_State_LPS y Next_State_MPS que ya se mencionaron anteriormente en la sección “Estimación de probabilidad asistida por tabla”. Estas operaciones corresponden al proceso de actualización que se indica en la figura 1 en la etapa 4 que no se explica con más detalle.
[0041] La figura 3 muestra el diagrama de flujo correspondiente de la decodificación aritmética asistida mediante tabla. Para caracterizar el intervalo parcial actual en el decodificador se utilizan la anchura de intervalo R y un valor
V. Este último está presente dentro del intervalo parcial y se refina sucesivamente con cada bit leído. Como se puede ver en la figura 3, las operaciones para la estimación de probabilidad y la determinación de la anchura de intervalo R se realizan según las del codificador.
[0042] Codificación con distribución de probabilidad uniforme. En aplicaciones en las que, por ejemplo, unos valores con signo que hay que codificar cuya distribución de probabilidad está dispuesta simétricamente en torno a cero, para la codificación de la información de signo puede suponerse en general una distribución equitativa. Como esta información por un lado debe incrustarse en la corriente de bits aritmética, aunque por otro lado no es sensato utilizar un aparato relativamente compacto de la estimación de probabilidad y separación de intervalo asistida por tabla para el caso de una probabilidad de p ≈ 0.5, se propone en este caso especial usar opcionalmente un procedimiento especial de codificador / decodificador que puede ser ilustrado tal como sigue.
[0043] En este caso especial la anchura de intervalo del nuevo intervalo parcial puede determinarse en el codificador mediante una simple operación de desplazamiento que corresponde a una bisección de la anchura del intervalo original R. En función del valor del bit que hay que codificar, la mitad superior o la mitad inferior de R, respectivamente, se selecciona entonces como un nuevo intervalo parcial (ver la figura 4). La renormalización y salida posteriores de bits se llevan a cabo como en el caso anterior de la solución asistida por tabla.
[0044] En el decodificador correspondiente las operaciones necesarias se reducen a determinar el bit a descodificar utilizando el valor de V en relación con la anchura de intervalo actual R mediante una simple operación de comparación. En el caso de que se establezca el bit descodificado, V debe reducirse en una cantidad de R. Como se ilustra en la figura 4, la decodificación se termina por la renormalización y la actualización de V mediante el siguiente bit que se leerá.
[0045] Una realización alternativa de la codificación de eventos con una distribución de probabilidad uniforme se ilustra en la figura 5. En esta implementación a modo de ejemplo no se modifica la anchura de intervalo actual R. En lugar de ello, primero se dobla V mediante una operación de desplazamiento en el codificador. En función del valor del bit que hay que codificar, entonces, de forma similar al ejemplo anterior, la mitad superior o inferior, respectivamente, de R se selecciona como un nuevo intervalo parcial (ver la figura 5). La renormalización y salida posterior de bits se realizan como en el caso anterior de la solución asistida mediante tabla con la diferencia de que la duplicación de R y L no se lleva a cabo y que las operaciones de comparación correspondientes se realizan con valores de umbral duplicados.
[0046] En el decodificador correspondiente de la alternativa de realización primero de todo se lee un bit y se actualiza V. La segunda etapa se realiza de la misma manera que la etapa 1 en la figura 4, es decir el bit a descodificar se determina utilizando el valor de V en relación con la anchura de intervalo actual R mediante una simple operación de comparación, y en el caso en el que se establece el bit decodificado, V debe reducirse en la cantidad de R (ver la figura 5).
5 Acceder a e inicializar los modelos de probabilidad
[0047] Cada modelo de probabilidad, tal como se utiliza en la invención propuesta, se indica utilizando dos parámetros: 1) El índice p_state que caracteriza el estado de probabilidad de los LPS, y 2) el valor valMPS de los MPS. Cada una de estas dos variables necesita ser inicializada al comienzo de la codificación o decodificación,
10 respectivamente, de una unidad de codificación completada (en aplicaciones de codificación de vídeo sobre una porción). Los valores de inicialización pueden por tanto derivarse de la información de control, como por ejemplo, el parámetro de cuantificación (de una porción), como se ilustra como un ejemplo en la figura 6.
Proceso de inicialización controlado hacia delante
15 [0048] Una posibilidad adicional de adaptación de las distribuciones de partida de los modelos se proporciona por el siguiente procedimiento. Con el fin de garantizar una mejor adaptación de las inicializaciones de los modelos, en el codificador se puede proporcionar una selección de valores iniciales predeterminados de los modelos. Estos modelos se pueden combinar en grupos de distribuciones de partida y se puede acceder a estos usando índices, de
20 modo que en el codificador se lleva a cabo la selección adaptativa de un grupo de valores de partida y se transmite al decodificador en la forma de un índice como información de página. Este procedimiento se conoce como un proceso de inicialización controlado hacia delante.
[0049] Por último, se señala una vez más que hay la posibilidad de que el número de posibles índices de
25 cuantificación y / o el número de estados de probabilidad pueda ser seleccionado como una función de la precisión predefinida de la codificación y / o como una función del espacio de almacenamiento disponible. La estimación de probabilidad de los estados puede llevarse a cabo mediante una máquina de estados finitos (FSM). Además, es posible que los estados de probabilidad se generen fuera de línea. Por último, se puede prever que la selección de los estados dependa de la estadística de los datos que hay que codificar y/o del número de estados.
5 [1] T. Wiegand, G. Sullivan, “Draft Text of Final Draft International Standard (FDIS) of Joint Video Specification (ITU-T Rec. H. 264 1ISO/IEC 14496-10 AVC)”, JVT-G050, March 2003.
[2] D. A. Huffman, “A method for Construction of Minimum Redundancy code”, Proc. IRE, Vol. 40, pp. 10981101, 1952.
[3] I. H. Witten, R. M. Neal, J. G. Cleary, “Arithmetic Coding for Data Compression”, Communication of the ACM, Vol. 30, No. 6, pp. 520-540, 1987.
[4] G. G. Langdon, J. Rissanen, “A Simple General Binary Source code”, IEEE Transactions on Information 15 Theory, Vol. 28, pp. 800-803, 1982.
[5] C. E. Shannon, “A Mathematical Theory of Communication”, Bell Syst. Tech. Journal, vol. 27, pp. 379-423, 623-656, 1948.
20 [6] P. Elias, in “Information Theory y Coding”, N. Abramson (Ed.), New York, Mc-Gra-Hill, 1963.
[7] J. Rissanen, “Generalized Kraft Inequality y Arithmetic Coding”, IBM J. Res. Develop., Vol. 20, pp. 198-203, 1976.
25 [8] R. C. Pasco, “Source Coding y Algorithms for Fast Data Compression”, Ph. D. Dissertation, Stanford University, USA, 1976.
[9] G. G. Langdon, “An Introduction to Arithmetic Coding”, IBM J. Res. Develop., Vol. 28, pp. 135-149, 1984.
30 [10] A. Moffat, R. M. Neal, I. H. Witten, “Arithmetic Coding Revisited”, Proc. IEEE Data Compression Conference, Snowbird (USA), pp. 202-211, 1996.
[11] J. Rissanen, K. M. Mohiuddin, “A Multiplication-Free Multialphabet Arithmetic Arithmetic Code”, IEEE Trans. on Communication, Vol. 37, pp. 93-98, 1989.
[12] W. B. Pennebaker, J. L. Mitchell, G. G. Langdon, R. B. Arps, “An Overview of the Basic Principles of the Q-Coder Adaptive Binary Arithmetic Coder”, IBM J. Res. Develop., Vol. 32, pp. 717-726, 1988.
[13] P. G. Howard, J. S. Vitter, “Practical Implementations of Arithmetic Coding”, in “Image y Text Compression”, 40 J. Storer (Ed.), Norwell (USA), Kluwer, 1992.
[14] L. Huynh, A. Moffat, “A Probability-Ratio Approach to Approximate Binary Arithmetic Coding”, IEEE Trans. on Information Theory, Vol. 43, pp. 1658-1662, 1997.
45 [15] D. Chevion, E. D. Karnin, E. Walach, “High-Efficiency, Multiplication Free Approximation of Arithmetic Coding”, Proc. IEEE Data Compression Conference, Snowbird (USA), pp. 43-52, 1991.
[16] G. Feygin, P. G. Gulak, P. Chow, “Minimizing Excess Code Length y VLSI Complexity in the Multiplication Free Approximation of Arithmetic Coding”, Inform. Proc. Manag., vol. 30, pp. 805-816, 1994.
[17] D. L. Duttweiler, Ch. Chamzas, “Porbability estimation in Arithmetic y Adaptive-Huffman Entropy Coders”, IEEE Trans. on Image Processing, Vol. 4, pp. 237-246, 1995.
Claims (20)
- REIVINDICACIONES1. Un procedimiento para codificar aritméticamente un símbolo que hay que codificar que tiene un estado binario basado en una anchura de intervalo actual R y representando una probabilidad una estimación de probabilidad para5 el símbolo que hay que codificar, en el que la probabilidad está representada por un índice de probabilidad para asignar un estado de probabilidad entre una pluralidad de estados de probabilidad representativos, en el que el procedimiento comprende la siguiente etapa caracterizadora:codificar el símbolo que hay que codificar realizando las siguientes sub-etapas:cartografiar la anchura de intervalo actual con un índice de cuantización de entre una pluralidad de índices de cuantización representativos;realizar la subdivisión de intervalo mediante el acceso a una tabla de división de intervalo utilizando el índice de 15 cuantización y el índice de probabilidad para obtener un valor de la anchura de intervalo parcial;actualizar la anchura de intervalo actual utilizando el valor de la anchura de intervalo parcial para obtener una nueva y actualizada anchura de intervalo; y20 renormalizar la nueva y actualizada anchura de intervalo, dando como salida un bit por operación de escalonamiento.
- 2. Un procedimiento para descodificar aritméticamente un símbolo codificado que tiene un estado binario basado en una anchura de intervalo actual R y representando una probabilidad una estimación de probabilidad para el símbolo25 codificado, en el que la probabilidad está representada por un índice de probabilidad de un estado de probabilidad entre una pluralidad de estados de probabilidad representativos, en el que el procedimiento comprende la siguiente etapa caracterizadora:descodificar el símbolo codificado realizando las siguientes sub-etapas:cartografiar la anchura de intervalo actual con un índice de cuantización de entre una pluralidad de índices de cuantización representativos;realizar la división de intervalo mediante el acceso a una tabla de división de intervalo utilizando el índice de 35 cuantización y el índice de probabilidad para obtener un valor de la anchura de intervalo parcial;actualizar la anchura de intervalo actual utilizando el valor de la anchura de intervalo parcial y un valor dentro de un intervalo parcial para obtener una nueva y actualizada anchura de intervalo; y40 renormalizar la nueva anchura de intervalo actualizada y, con cada bit leído, refinar gradualmente el valor dentro del intervalo parcial.
- 3. Un programa de ordenador que permite a un ordenador tras haber sido cargado en la memoria del ordenador realizar un procedimiento según la reivindicación 1 o la 2.
- 4. Un medio de almacenamiento legible por ordenador en el que hay un programa almacenado que permite a un ordenador tras haber sido cargado en la memoria del ordenador realizar un procedimiento según la reivindicación 1o la 2.
- 1.
- Determinación del LPS
-
- 2.
- Cálculo de las variables RLPS y RMPS:
RLPS = R X RLPSRMPS = R – RLPS - 3. Cálculo del nuevo intervalo parcial:if (bit: LPS) then L L + RMPS R RLPSelse R RMPS
-
- 4.
- Actualización de la estimación de probabilidad PLPS
-
- 5.
- Dar como salida los bits y renormalizar R
Fig.1- 1.
- Determinación del LPS
-
- 2.
- Cuantización de R:
q_index = Qtab[R>>q] - 3. Determinación de RLPS y RMPS:RLPS = Rtab [q_index, p_state] RMPS = R – RLPS
- 4. Cálculo del nuevo intervalo parcial:if (bit: LPS) thenL L + RMPSR RLPSp_state Next_State_LPS [p_state]elseR RMPSp_state Next_State_MPS [p_state]Fig.2
- 1.
- Determinación del LPS
-
- 2.
- Cuantización de R:
q_index = Qtab[R>>q] - 3. Determinación de RLPS y RMPS:RLPS = Rtab [q_index, p_state] R = R – RLPS
- 4. Determinación de bit en función de la posición del intervalo parcial:if (V ≥ RMPS) thenbit LPSV V -RMPSR RLPSp_state Next_State_LPS [p_state]else bit MPS R RMPS p_state Next_State_MPS [p_state]
- 5. Renormalización de R, leer un bit y actualizar VFig.3Codificador:1. Cálculo del nuevo intervalo parcialR R >> 1if (bit = 1) thenL L + R
- 2. Dar como salida los bits y renormalizar RDescodificador:1. Determinación de bit en función de la posición del intervalo parcial:if (V ≥ R) thenbit 1V V – Relse bit 0,
- 2. Leer un bit, renormalizar R y actualizar VFig.4Codificador:1. Cálculo del nuevo intervalo parcialL L << 1if (bit = 1) thenL L + R
- 2. Dar como salida un bit y renormalizar utilizando valores umbrales de determinación duplicados (sin duplicar R y L)Descodificador:
- 1.
- Leer un bit y actualizar V
-
- 2.
- Determinación de bit en función de la posición del intervalo parcial:
if (V ≥ R) thenbit 1V V – RelseFig.5- 1.
- preState = min(max(1, ((m * SliceQP) >>4)+n), 126)
-
- 2.
- if (preState <=63) then p_state = 63 – preState valMPS = 0
else p_state = preState – 64 valMPS = 1,Fig.6
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10220962 | 2002-05-02 | ||
DE10220962 | 2002-05-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2442215T3 true ES2442215T3 (es) | 2014-02-10 |
Family
ID=29285283
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES08020010.8T Expired - Lifetime ES2442215T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas de estados binarios y programa informático correspondiente y soporte de almacenamiento correspondiente legible por ordenador |
ES10185215.0T Expired - Lifetime ES2442174T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas utilizando varias tablas de consulta |
ES08020113.0T Expired - Lifetime ES2442173T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas con utilización de varias tablas |
ES03725141T Expired - Lifetime ES2316749T3 (es) | 2002-05-02 | 2003-05-02 | 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. |
ES10185209.3T Expired - Lifetime ES2442190T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas utilizando una pluralidad de tablas de consulta |
ES10185219.2T Expired - Lifetime ES2439996T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas de estados binarios y programa informático correspondiente y soporte de almacenamiento correspondiente legible por ordenador |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES10185215.0T Expired - Lifetime ES2442174T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas utilizando varias tablas de consulta |
ES08020113.0T Expired - Lifetime ES2442173T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas con utilización de varias tablas |
ES03725141T Expired - Lifetime ES2316749T3 (es) | 2002-05-02 | 2003-05-02 | 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. |
ES10185209.3T Expired - Lifetime ES2442190T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas utilizando una pluralidad de tablas de consulta |
ES10185219.2T Expired - Lifetime ES2439996T3 (es) | 2002-05-02 | 2003-05-02 | Procedimiento y dispositivo de codificación y descodificación aritméticas de estados binarios y programa informático correspondiente y soporte de almacenamiento correspondiente legible por ordenador |
Country Status (12)
Country | Link |
---|---|
US (1) | US6943710B2 (es) |
EP (7) | EP2296282B1 (es) |
JP (3) | JP3989485B2 (es) |
KR (1) | KR100733795B1 (es) |
AT (1) | ATE421802T1 (es) |
DE (1) | DE50311129D1 (es) |
DK (6) | DK2068448T3 (es) |
ES (6) | ES2442215T3 (es) |
HK (5) | HK1127525A1 (es) |
PT (6) | PT2037412E (es) |
SI (1) | SI1550219T1 (es) |
WO (1) | WO2003094355A2 (es) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7408486B2 (en) * | 2003-04-21 | 2008-08-05 | Qbit Corporation | System and method for using a microlet-based modem |
GB2398191B (en) * | 2004-03-10 | 2004-12-22 | David Asher Jaffa | Adaptive quantiser |
KR100694098B1 (ko) * | 2005-04-04 | 2007-03-12 | 한국과학기술원 | 산술 복호 방법 및 그 장치 |
US8572018B2 (en) * | 2005-06-20 | 2013-10-29 | New York University | Method, system and software arrangement for reconstructing formal descriptive models of processes from functional/modal data using suitable ontology |
JP4547503B2 (ja) * | 2006-03-07 | 2010-09-22 | 国立大学法人徳島大学 | 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体 |
US7262722B1 (en) * | 2006-06-26 | 2007-08-28 | Intel Corporation | Hardware-based CABAC decoder with parallel binary arithmetic decoding |
JP4717780B2 (ja) | 2006-11-01 | 2011-07-06 | キヤノン株式会社 | 符号化装置及びその制御方法 |
JP4785706B2 (ja) * | 2006-11-01 | 2011-10-05 | キヤノン株式会社 | 復号装置及び復号方法 |
JP4865509B2 (ja) * | 2006-11-01 | 2012-02-01 | キヤノン株式会社 | 復号装置及び復号方法 |
US7443318B2 (en) * | 2007-03-30 | 2008-10-28 | Hong Kong Applied Science And Technology Research Institute Co. Ltd. | High speed context memory implementation for H.264 |
TWI330006B (en) * | 2007-07-27 | 2010-09-01 | Lite On It Corp | Encoding method and encoder for generating balanced code or constant weighted code |
JP4382840B2 (ja) * | 2007-08-20 | 2009-12-16 | Nttエレクトロニクス株式会社 | 2値算術符号化装置 |
US20090231173A1 (en) * | 2008-03-14 | 2009-09-17 | Daniel Kilbank | System and method for using a microlet-based modem |
JP5133950B2 (ja) * | 2009-07-16 | 2013-01-30 | 日本電信電話株式会社 | コンテクスト適応エントロピ符号化方法および装置,コンテクスト適応エントロピ復号方法および装置,並びにそれらのプログラム |
JP5047244B2 (ja) * | 2009-09-01 | 2012-10-10 | 日本電信電話株式会社 | コンテクスト適応エントロピ符号化方法および装置,コンテクスト適応エントロピ復号方法および装置,並びにそれらのプログラム |
KR101615384B1 (ko) * | 2010-04-05 | 2016-04-25 | 삼성전자주식회사 | 통신 시스템에서의 채널 부호화 장치 및 방법 |
CN103119849B (zh) * | 2010-04-13 | 2017-06-16 | 弗劳恩霍夫应用研究促进协会 | 概率区间分割编码器和译码器 |
JP4936574B2 (ja) * | 2011-03-02 | 2012-05-23 | キヤノン株式会社 | 符号化装置及びその制御方法 |
BR112013032333B1 (pt) | 2011-06-16 | 2022-07-26 | Ge Video Compression, Llc | Comutação de modo auxiliar para codificação por entropia |
UA114674C2 (uk) | 2011-07-15 | 2017-07-10 | ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі | Ініціалізація контексту в ентропійному кодуванні |
US9871537B2 (en) | 2011-10-27 | 2018-01-16 | Qualcomm Incorporated | Mapping states in binary arithmetic coder for video coding |
KR101647244B1 (ko) | 2012-01-30 | 2016-08-09 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 이진 산술 코딩 방식 |
KR101910376B1 (ko) | 2014-06-29 | 2019-01-04 | 엘지전자 주식회사 | 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치 |
US10757412B2 (en) * | 2017-01-03 | 2020-08-25 | Avago Technologies International Sales Pte. Limited | Architecture flexible binary arithmetic coding system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5475388A (en) * | 1992-08-17 | 1995-12-12 | Ricoh Corporation | Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding |
US5272478A (en) * | 1992-08-17 | 1993-12-21 | Ricoh Corporation | Method and apparatus for entropy coding |
FR2703483B1 (fr) * | 1993-03-29 | 1995-06-02 | Digital Equipment Int | Dispositif de mise à jour de la valeur de code dans la méthode du codage arithmétique. |
US5912636A (en) * | 1996-09-26 | 1999-06-15 | Ricoh Company, Ltd. | Apparatus and method for performing m-ary finite state machine entropy coding |
JP3367370B2 (ja) * | 1997-03-14 | 2003-01-14 | 三菱電機株式会社 | 適応符号化方法 |
US5970174A (en) * | 1997-06-19 | 1999-10-19 | Electronics For Imaging | Method and apparatus for data compression and gray value estimation |
US6757436B2 (en) * | 1997-06-19 | 2004-06-29 | Electroncs For Imaging, Inc. | Methods and apparatus for data compression based on modeling schemes |
US5973626A (en) * | 1998-03-17 | 1999-10-26 | Cornell Research Foundation, Inc. | Byte-based prefix encoding |
EP1465349A1 (en) * | 2003-03-31 | 2004-10-06 | Interuniversitair Microelektronica Centrum Vzw | Embedded multiple description scalar quantizers for progressive image transmission |
US6894628B2 (en) * | 2003-07-17 | 2005-05-17 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables |
-
2003
- 2003-05-02 EP EP10185215.0A patent/EP2296282B1/de not_active Expired - Lifetime
- 2003-05-02 AT AT03725141T patent/ATE421802T1/de active
- 2003-05-02 EP EP08020010.8A patent/EP2037412B1/de not_active Expired - Lifetime
- 2003-05-02 PT PT80200108T patent/PT2037412E/pt unknown
- 2003-05-02 ES ES08020010.8T patent/ES2442215T3/es not_active Expired - Lifetime
- 2003-05-02 PT PT101852150T patent/PT2296282E/pt unknown
- 2003-05-02 SI SI200331516T patent/SI1550219T1/sl unknown
- 2003-05-02 WO PCT/EP2003/004654 patent/WO2003094355A2/de active Application Filing
- 2003-05-02 ES ES10185215.0T patent/ES2442174T3/es not_active Expired - Lifetime
- 2003-05-02 DK DK08020113.0T patent/DK2068448T3/da active
- 2003-05-02 DK DK10185209.3T patent/DK2326013T3/da active
- 2003-05-02 ES ES08020113.0T patent/ES2442173T3/es not_active Expired - Lifetime
- 2003-05-02 EP EP05009246A patent/EP1571755A3/de not_active Withdrawn
- 2003-05-02 DK DK10185219.2T patent/DK2290612T3/da active
- 2003-05-02 DE DE50311129T patent/DE50311129D1/de not_active Expired - Lifetime
- 2003-05-02 EP EP10185219.2A patent/EP2290612B1/de not_active Expired - Lifetime
- 2003-05-02 KR KR1020047017090A patent/KR100733795B1/ko active IP Right Grant
- 2003-05-02 EP EP08020113.0A patent/EP2068448B1/de not_active Expired - Lifetime
- 2003-05-02 EP EP10185209.3A patent/EP2326013B1/de not_active Expired - Lifetime
- 2003-05-02 PT PT80201130T patent/PT2068448E/pt unknown
- 2003-05-02 EP EP03725141A patent/EP1550219B1/de not_active Expired - Lifetime
- 2003-05-02 DK DK08020010.8T patent/DK2037412T3/da active
- 2003-05-02 ES ES03725141T patent/ES2316749T3/es not_active Expired - Lifetime
- 2003-05-02 PT PT101852192T patent/PT2290612E/pt unknown
- 2003-05-02 DK DK03725141T patent/DK1550219T3/da active
- 2003-05-02 PT PT101852093T patent/PT2326013E/pt unknown
- 2003-05-02 DK DK10185215.0T patent/DK2296282T3/da active
- 2003-05-02 ES ES10185209.3T patent/ES2442190T3/es not_active Expired - Lifetime
- 2003-05-02 ES ES10185219.2T patent/ES2439996T3/es not_active Expired - Lifetime
- 2003-05-02 PT PT03725141T patent/PT1550219E/pt unknown
- 2003-05-02 JP JP2004502472A patent/JP3989485B2/ja not_active Expired - Lifetime
- 2003-12-04 US US10/727,801 patent/US6943710B2/en not_active Expired - Lifetime
-
2005
- 2005-07-25 JP JP2005213727A patent/JP4054345B2/ja not_active Expired - Lifetime
-
2007
- 2007-11-01 JP JP2007284653A patent/JP4709821B2/ja not_active Expired - Lifetime
-
2009
- 2009-06-10 HK HK09105184.6A patent/HK1127525A1/xx not_active IP Right Cessation
- 2009-06-10 HK HK11108764.4A patent/HK1155000A1/xx not_active IP Right Cessation
- 2009-10-02 HK HK09109109.0A patent/HK1130372A1/xx not_active IP Right Cessation
-
2011
- 2011-08-15 HK HK11108520.9A patent/HK1154430A1/xx not_active IP Right Cessation
- 2011-11-08 HK HK11112033.1A patent/HK1157948A1/xx not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2442215T3 (es) | Procedimiento y dispositivo de codificación y descodificación aritméticas de estados binarios y programa informático correspondiente y soporte de almacenamiento correspondiente legible por ordenador | |
JP7100836B2 (ja) | エントロピー符号化におけるコンテキスト初期化 | |
ES2277174T3 (es) | Codificacion aritmetica de coeficientes de transformacion. | |
KR102588145B1 (ko) | 엔트로피 인코딩 및 디코딩 방식 | |
Howard | The design and analysis of efficient lossless data compression systems | |
US7982641B1 (en) | Context-based adaptive binary arithmetic coding engine | |
JPH06224777A (ja) | 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置、ビットストリーム生成方法及び遷移マシン生成方法 | |
JP2009100474A (ja) | コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法 | |
ES2915662T3 (es) | Método y aparato para codificación aritmética | |
Belyaev et al. | Binary Arithmetic Coding System with Adaptive Probability Estimation by" Virtual Sliding Window" | |
BR112019013916A2 (pt) | método e aparelho para derivação de faixa em codificação aritmética binária adaptativa a contexto | |
CN103428498A (zh) | 一种无损图像压缩系统 | |
JPS6345131B2 (es) | ||
CN101093998A (zh) | 解码方法及装置 | |
Sun et al. | Lossless Coders | |
Lim | Arithmetic Coding | |
Said | Resilient Parameterized Tree Codes for Fast Adaptive Coding | |
Mahapatra et al. | Parallel implementation of a multialphabet arithmetic coding algorithm | |
Choe | Data Compression | |
KR20060116384A (ko) | 균형 이진 검색 트리를 이용한 허프만 디코딩 방법 및디코딩 장치 |