ES2316749T3 - PROCEDURE AND PROVISION FOR THE CODIFICATION AND ARITHMETIC DECODIFICATION OF BINARY STATES AS WELL AS A CORRESPONDING COMPUTER PROGRAM AND LEGIBLE STORAGE MEDIA BY CORRESPONDING COMPUTER. - Google Patents
PROCEDURE AND PROVISION FOR THE CODIFICATION AND ARITHMETIC DECODIFICATION OF BINARY STATES AS WELL AS A CORRESPONDING COMPUTER PROGRAM AND LEGIBLE STORAGE MEDIA BY CORRESPONDING COMPUTER. Download PDFInfo
- Publication number
- ES2316749T3 ES2316749T3 ES03725141T ES03725141T ES2316749T3 ES 2316749 T3 ES2316749 T3 ES 2316749T3 ES 03725141 T ES03725141 T ES 03725141T ES 03725141 T ES03725141 T ES 03725141T ES 2316749 T3 ES2316749 T3 ES 2316749T3
- Authority
- ES
- Spain
- Prior art keywords
- probability
- interval
- width
- index
- current
- 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
Description
Procedimiento y disposición para la codificación y la descodificación aritmética de estados binarios así como programa informático correspondiente y medio de almacenamiento legible por ordenador correspondiente.Procedure and provision for coding and arithmetic decoding of binary states as well as corresponding computer program and storage medium corresponding computer readable.
La invención se refiere a un procedimiento y a una disposición para la codificación y la descodificación aritmética de estados binarios así como a un programa informático correspondiente y a un medio de almacenamiento legible por ordenador correspondiente, que pueden utilizarse especialmente en la compresión de datos digital.The invention relates to a method and to an arrangement for coding and arithmetic decoding from binary states as well as to a computer program corresponding and to a storage medium readable by corresponding computer, which can be used especially in the digital data compression
La presente invención describe un nuevo procedimiento eficaz para la codificación aritmética binaria. La necesidad de codificación aritmética binaria surge en los más diversos campos de aplicación de la compresión de datos digital; a este respecto son interesantes a modo de ejemplo sobre todo aplicaciones en los campos de la compresión de imagen digital. En numerosas normas para la codificación de imagen, como por ejemplo JPEG, JPEG-2000, JPEG-LS y JBIG se han definido procedimientos para la codificación aritmética binaria. Nuevas actividades de normalización permiten reconocer también el futuro uso de este tipo de técnicas de codificación en el campo de la codificación de vídeo (CABAC en H.264/AVC) [1].The present invention describes a new Effective procedure for binary arithmetic coding. The need for binary arithmetic coding arises in the most various fields of application of digital data compression; to this respect are interesting by way of example especially applications in the fields of digital image compression. In numerous standards for image coding, such as JPEG, JPEG-2000, JPEG-LS and JBIG are have defined procedures for binary arithmetic coding. New standardization activities also recognize the future use of this type of coding techniques in the field of Video encoding (CABAC in H.264 / AVC) [1].
Las ventajas de la codificación aritmética (AK) frente a la codificación Huffman [2] empleada hasta ahora con frecuencia en la práctica pueden caracterizarse esencialmente por tres características:The advantages of arithmetic coding (AK) against Huffman coding [2] used so far with frequency in practice can be characterized essentially by three characteristics:
1. Mediante el uso de la codificación aritmética puede conseguirse mediante mecanismos de adaptación sencillos una adaptación dinámica a la estadística de fuente existente (adaptividad).1. Through the use of arithmetic coding can be achieved through simple adaptation mechanisms a dynamic adaptation to existing source statistics (adaptivity).
2. La codificación aritmética permite la asignación de un número no entero de bits por cada símbolo que va a codificarse y de este modo es adecuada para conseguir resultados de codificación que representan una aproximación de la entropía como el límite inferior teóricamente dado (aproximación de entropía) [3].2. Arithmetic coding allows the assignment of a non-integer number of bits for each symbol that is going to be coded and thus is suitable to achieve results of coding that represent an approximation of entropy as the theoretically given lower limit (entropy approximation) [3].
3. Con ayuda de modelos de contexto adecuados pueden aprovecharse con la codificación aritmética combinaciones estadísticas entre símbolos para la reducción de datos adicional (redundancia entre símbolos) [4].3. With the help of appropriate context models combinations with arithmetic coding can be used cross-symbol statistics for additional data reduction (redundancy between symbols) [4].
Como desventaja de una aplicación de la codificación aritmética se considera el gran esfuerzo de cálculo en general en comparación con la codificación Huffman.As a disadvantage of an application of the arithmetic coding is considered the great calculation effort in overall compared to Huffman coding.
El concepto de la codificación aritmética se basa en los trabajos básicos con respecto a la teoría de información de Shannon [5]. Se publicaron los primeros métodos de construcción conceptuales en [6] por primera vez por Elias. Rissanen [7] diseñó una primera variante LIFO (last-in-first-out) de la codificación aritmética y se modificó posteriormente por diferentes autores para obtener configuraciones FIFO (first-in-first-out) [8] [9] [10].The concept of arithmetic coding is based on basic work with respect to Shannon's theory of information [5]. The first conceptual construction methods were published in [6] for the first time by Elias. Rissanen [7] designed a first LIFO ( last-in-first-out ) variant of arithmetic coding and was subsequently modified by different authors to obtain FIFO ( first-in-first-out ) configurations [8] [9] [10 ].
Todos estos trabajos tienen en común que se basan en el principio de la división de subintervalos recursiva: de manera correspondiente a las probabilidades P("0") y P("1") dadas de dos eventos {"0", "1"} de un alfabeto binario se divide de manera recursiva en subintervalos un intervalo dado inicialmente, por ejemplo el intervalo [0, 1), según la aparición de eventos individuales. A este respecto el tamaño del subintervalo resultante como producto de las probabilidades individuales de los eventos aparecidos es proporcional a la probabilidad de la secuencia de los eventos individuales. Puesto que cada evento S_{i} con la probabilidad P(S_{i}) aporta una contribución de H(S_{i}) = -log (P(S_{i})) del contenido de información teórico H(S_{i}) de S_{i} a la tasa compuesta, se obtiene una relación entre el número N_{Bit} de bits para la representación del subintervalo y la entropía de la secuencia de eventos individuales que se indica mediante el lado derecho de la siguiente ecuaciónAll these works have in common that based on the principle of recursive subintervals division: of corresponding to the probabilities P ("0") and P ("1") given from two events {"0", "1"} of an alphabet binary is recursively divided into subintervals an interval initially given, for example the interval [0, 1), according to the appearance of individual events. In this respect the size of the resulting subinterval as a product of the probabilities individual events appeared is proportional to the sequence probability of individual events. Market Stall that each event S_ {i} with the probability P (S_ {i}) provides a contribution of H (S_ {i}) = -log (P (S_ {i})) of the theoretical information content H (S_ {i}) of S_ {i} at the compound rate, a relationship between the number N_ {Bit} of bits for representation of the subinterval and the entropy of the sequence of events individual indicated by the right side of the following equation
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Sin embargo, el principio básico requiere en primer lugar una precisión ilimitada (teóricamente) en la representación del subintervalo resultante y tiene además la desventaja de que sólo tras la codificación del último evento pueden salir los bits para la representación del subintervalo resultante. Para fines de aplicación prácticos fue decisivo por tanto desarrollar mecanismos para una salida incremental de bits con representación simultánea con números de precisión fija preestablecida. Éstos se presentaron por primera vez en los trabajos [3] [7] [11].However, the basic principle requires in first of all an unlimited precision (theoretically) in the representation of the resulting subinterval and also has the disadvantage that only after the coding of the last event bits can be output for subinterval representation resulting. For practical application purposes it was decisive for both develop mechanisms for incremental bit output with simultaneous representation with fixed precision numbers preset These were presented for the first time in the works [3] [7] [11].
En la figura 1 están esbozadas las operaciones esenciales para la codificación aritmética binaria. En la implementación representada se representa el subintervalo actual mediante los dos valores L y R, designando L el punto de partida y R el tamaño (anchura) del subintervalo y representándose ambas magnitudes en cada caso con números enteros de b bits. La codificación de un bit \in {0, 1} se realiza a este respecto esencialmente en cinco subetapas: en la primera etapa se determina mediante la estimación de probabilidad el valor del símbolo menos probable. Para este símbolo, también denominado LPS (least probable symbol, símbolo menos probable) en contraposición a MPS (most probable symbol, símbolo más probable), se recurre a la estimación de probabilidad P_{LPS} en la segunda etapa para calcular la anchura R_{LPS} del subintervalo correspondiente. Según el valor del bit, bit, que va a codificarse se actualizan L y R en la tercera etapa. En la cuarta etapa se actualiza la estimación de probabilidad según el valor del bit que acaba de codificarse y finalmente el intervalo de código R se somete en la última etapa a una denominada renormalización, es decir, R se reajusta a escala por ejemplo de modo que se cumple la condición R\in[2^{b-2}, 2^{b-1}). A este respecto sale en cada operación de ajuste a escala un bit. Para más detalles se hace referencia a [10].The essential operations for binary arithmetic coding are outlined in Figure 1. In the implementation shown, the current sub-interval is represented by the two values L and R, designating L as the starting point and R the size (width) of the sub-interval and representing both quantities in each case with whole numbers of b bits. The coding of a bit \ in {0, 1} is done in this respect essentially in five sub-stages: in the first stage the value of the least probable symbol is determined by the probability estimation. For this symbol, also called LPS ( least probable symbol ), as opposed to MPS ( most probable symbol ), the probability estimate P_ {LPS} is used in the second stage to calculate the width R_ {LPS} of the corresponding subinterval. Depending on the value of the bit, bit, to be encoded, L and R are updated in the third stage. In the fourth stage the probability estimate is updated according to the value of the bit that has just been encoded and finally the code range R is subjected to a so-called renormalization in the last stage, that is, R is reset to scale for example so that the condition R \ in [2 b-2, 2 b-1) is met. In this respect a bit is output in each scaling operation. For more details, reference is made to [10].
La desventaja esencial de una implementación, tal como se ha esbozado anteriormente, consiste ahora en que el cálculo de la anchura de intervalo R_{LPS} requiere una multiplicación por cada símbolo que va a codificarse. Habitualmente las operaciones de multiplicación son complicadas y caras, especialmente cuando se realizan en hardware. En varios trabajos de investigación se analizaron por tanto procedimientos para sustituir esta operación de multiplicación por una aproximación adecuada [11] [12] [13] [14]. A este respecto los procedimientos publicados con respecto a este tema pueden clasificarse de manera aproximada en tres categorías.The essential disadvantage of an implementation, as outlined above, it is now that the calculation of the interval width R_ {LPS} requires a multiplication for each symbol to be encoded. Habitually multiplication operations are complicated and expensive, especially when they are made in hardware. In several works of investigation were therefore analyzed procedures to replace this multiplication operation by an appropriate approximation [11] [12] [13] [14]. In this regard the procedures published with Regarding this topic, they can be roughly classified into Three categories
El primer grupo de propuestas con respecto a una codificación aritmética binaria sin multiplicación se basa en el planteamiento de aproximar las probabilidades P_{LPS} estimadas de modo que la multiplicación en la 2ª etapa de la figura 1 puede sustituirse por una (o varias) operación (operaciones) de desplazamiento y suma [11] [14]. Para ello se aproximan en el caso más sencillo las probabilidades P_{LPS} mediante valores en la forma 2^{-q} con q > 0 entero.The first group of proposals regarding a binary arithmetic coding without multiplication is based on the approach to approximate the estimated P_ {LPS} probabilities of so that multiplication in the 2nd stage of figure 1 can replaced by one (or several) operation (operations) of displacement and sum [11] [14]. For this they approach in the case simpler the probabilities P_ {LPS} by means of values in the form 2 - q with q> 0 integer.
En la segunda categoría de procedimientos aproximativos se propone aproximar el rango de valores de R mediante valores discretos en la forma (1/2 - r), eligiéndose r\in{0}\cup{2^{-k} | k>0, k entero} [15] [16].In the second category of procedures approximate it is proposed to approximate the range of R values by discrete values in the form (1/2 - r), being chosen r \ in {0} \ cup {2 ^ {- k} | k> 0, k integer} [15] [16].
La tercera categoría de procedimientos se caracteriza finalmente porque en la misma se sustituyen todas las operaciones aritméticas por accesos a tablas. A este grupo de procedimientos pertenecen por un lado el codificador Q utilizado en la norma JPEG y procedimientos relacionados, como el codificador QM y MQ [12], y por otro lado el codificador casi aritmético [13]. Mientras que el procedimiento mencionado en último lugar efectúa una limitación drástica del número b de bits utilizado para la representación de R para llegar a tablas dimensionadas de manera aceptable, en el codificador Q la renormalización de R se diseña de modo que R puede aproximarse al menos de manera aproximada mediante 1. De este modo se evita la multiplicación para la determinación de R_{LPS}. Adicionalmente se lleva a cabo la estimación de probabilidad mediante una tabla en forma de una máquina de estados finita. Para detalles adicionales a este respecto se hace referencia a [12].The third category of procedures is It is finally characterized because all the arithmetic operations by access to tables. To this group of procedures belong on the one hand the Q encoder used in JPEG standard and related procedures, such as the QM encoder and MQ [12], and on the other hand the almost arithmetic encoder [13]. While the last mentioned procedure performs a drastic limitation of the number b of bits used for the representation of R to reach tables sized in a way acceptable, in the Q encoder the renormalization of R is designed from so that R can be approximated at least approximately by 1. This avoids multiplication for the determination of R_ {LPS}. Additionally, the estimation of probability using a table in the form of a state machine finite For additional details in this regard reference is made to [12].
El documento US5592162 describe un procedimiento para llevar a cabo una codificación aritmética, limitándose el número de las posibles anchuras de intervalo. Mediante el uso de un índice que se refiere a estas anchuras de intervalo puede conseguirse una codificación aritmética sin multiplicación con un esfuerzo de almacenamiento reducido.Document US5592162 describes a procedure to carry out an arithmetic coding, limiting the number of possible interval widths. By using a index that refers to these interval widths can achieve an arithmetic coding without multiplication with a reduced storage effort
Un procedimiento para la codificación y la descodificación aritmética de estados binarios se realiza de manera ventajosa de modo que en una primera etapa se subdivide un rango de valores que puede preestablecerse para la especificación de la anchura de intervalo R en K anchuras de intervalo {Q_{1},..., Q_{K}} representativas, un rango de valores que puede preestablecerse para la especificación de las probabilidades en N estados de probabilidad {P_{1},..., P_{N}} representativos y se indican reglas de asignación que a cada anchura de intervalo R asignan una Q_{k} (1 \leq k \leq K) y a cada probabilidad una P_{n} (1 \leq n \leq N), en una segunda etapa se realiza la codificación o descodificación de los estados binarios, realizándose el cálculo de la nueva anchura de intervalo que va a derivarse en el proceso de codificación o descodificación utilizando una anchura de intervalo Q_{k} (1 \leq k \leq K) representativa y un estado de probabilidad P_{n} (1 \leq n \leq N) representativo mediante operaciones aritméticas diferentes de multiplicación y división, determinándose la anchura de intervalo Q_{k} representativa mediante el intervalo básico que se toma como base de la anchura R y el estado de probabilidad P_{n} representativo mediante la estimación de probabilidad en que se basa el símbolo que va a codificarse o descodificarse según las reglas de asignación indicadas.A procedure for coding and arithmetic decoding of binary states is done so advantageous so that in a first stage a range of values that can be preset for the specification of the interval width R in K interval widths {Q_ {1}, ..., Representative Q_ {K}}, a range of values that can preset for the specification of the probabilities in N probability states {P_ {1}, ..., P_ {N}} representative and indicate allocation rules that at each width of interval R assign a Q_ {k} (1 \ leq k \ leq K) and to each probability a P_ {n} (1 \ leq n \ leq N), in a second stage the coding or decoding of binary states, performing the calculation of the new interval width to be derived in the coding or decoding process using a width of interval Q_ {k} (1 ≤ k ≤ K) representative and a representative probability state P_ {n} (1 \ leq n \ leq N) by different arithmetic operations of multiplication and division, determining the interval width Q_ {k} representative using the basic interval that is taken as the basis of the width R and the probability state P_ {n} representative by estimating the probability on which the symbol is based to be encoded or decoded according to the allocation rules indicated.
Otra forma de realización preferida del procedimiento está caracterizada porque, partiendo del intervalo que va a evaluarse actualmente con anchura R para la determinación de la anchura de intervalo Q_{k} asignada, se determina un índice q_index mediante una operación de enmascaramiento de bits y desplazamiento aplicada a la representación binaria/interna del ordenador de R.Another preferred embodiment of the procedure is characterized because, starting from the interval that is going to be currently evaluated with width R for the determination of the interval width Q_ {k} assigned, an index is determined q_index through a bit masking operation and displacement applied to the binary / internal representation of the R. computer
También resulta ventajoso si, partiendo del intervalo que va a evaluarse actualmente con anchura R para la determinación de la anchura de intervalo Q_{k} asignada, se determina un índice q_index mediante una operación de desplazamiento aplicada a la representación binaria/interna del ordenador de R y un acceso aguas abajo a una tabla Qtab, conteniendo la tabla Qtab los índices de anchuras de intervalo que corresponden a los valores de R precuantificados mediante operación de desplazamiento.It is also advantageous if, starting from interval to be currently evaluated with width R for the determination of the interval width Q_ {k} assigned, is determine a q_index index by an operation of displacement applied to the binary / internal representation of the R computer and a downstream access to a Qtab table, the Qtab table containing the interval width indices that correspond to prequantified R values by operation of displacement.
Especialmente resulta ventajoso cuando la estimación de probabilidad en que se basa el símbolo que va a codificarse o descodificarse se asigna con ayuda de un índice p_state a un estado de probabilidad P_{n}.Especially advantageous when the probability estimate on which the symbol that is going to be based is based Encode or decode is assigned with the help of an index p_state to a probability state P_ {n}.
También es ventajoso cuando la determinación de la anchura de intervalo R_{LPS} que corresponde al LPS se realiza mediante un acceso a una tabla Rtab, conteniendo la tabla Rtab los valores de la anchura de intervalo R_{LPS} correspondientes a todos los K valores cuantificados de R y los N estados de probabilidad diferentes como valores de producto (Q_{k} * P_{n}). El esfuerzo de cálculo se reduce especialmente cuando la determinación de la anchura de intervalo R_{LPS} que corresponde al LPS se realiza mediante un acceso a la tabla Rtab, utilizándose para la evaluación de la tabla el índice de cuantificación q_index y el índice del estado de probabilidad p_state.It is also advantageous when determining the interval width R_ {LPS} corresponding to the LPS is realized by accessing an Rtab table, containing the Rtab table the values of the interval width R_ {LPS} corresponding to all K quantified values of R and N states of different probabilities as product values (Q_ {k} * P_ {n}). The calculation effort is reduced especially when the determination of the corresponding width of interval R_ {LPS} The LPS is done by accessing the Rtab table, using for the evaluation of the table the quantification index q_index and the index of the probability state p_state.
Está previsto además que para los N estados de probabilidad representativos diferentes se preestablezcan reglas de transición, indicando las reglas de transición qué nuevo estado se utiliza partiendo del símbolo actualmente codificado o descodificado para el siguiente símbolo que va a codificarse o descodificarse. A este respecto resulta ventajoso cuando se establece una tabla Next_State_LPS que, con respecto al índice n del estado de probabilidad P_{n} actualmente dado, contiene el índice m del nuevo estado de probabilidad P_{m} al aparecer un símbolo menos probable (LPS), y/o se establece una tabla Next_State_MPS que, con respecto al índice n del estado de probabilidad P_{n} actualmente dado, contiene el índice m del nuevo estado de probabilidad P_{m} al aparecer un símbolo más probable (MPS).It is also planned that for the N states of different representative probability preset rules of transition, indicating the transition rules what new state is use starting from the currently encoded symbol or decoded for the next symbol to be encoded or decode In this respect it is advantageous when set a Next_State_LPS table that, with respect to index n of the probability state P_ {n} currently given, contains the index m of the new probability state P_ {m} when a symbol appears less likely (LPS), and / or a Next_State_MPS table is established that, with respect to the index n of the probability state P_ {n} currently given, it contains the index m of the new state of probability P_ {m} when a more probable symbol (MPS) appears.
Una optimización del procedimiento para la codificación y descodificación aritmética binaria basada en tablas se consigue especialmente porque los valores de la anchura de intervalo R_{LPS} correspondientes a todas las K anchuras de intervalo y a todos los N estados de probabilidad diferentes se depositan como valores de producto (Q_{k} * P_{n}) en una tabla Rtab.An optimization of the procedure for table-based binary arithmetic coding and decoding it is achieved especially because the width values of R_ {LPS} interval corresponding to all K widths of interval and to all N different probability states are deposit as product values (Q_ {k} * P_ {n}) in a table Rtab
Una optimización adicional se consigue cuando el número K de valores de cuantificación y/o el número N de estados representativos se eligen en función de la precisión preestablecida de la codificación y/o en función del espacio de memoria disponible.An additional optimization is achieved when the number K of quantification values and / or number N of states Representative are chosen based on the preset accuracy of coding and / or depending on memory space available.
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Una forma de realización especial de la codificación comprende las siguientes etapas:A special embodiment of the coding comprises the following stages:
1. Determinación del LPS1. Determination of the LPS
2. Cuantificación de R:2. Quantification of R:
\hskip0,3cm
3. Determinación de R_{LPS} y R:3. Determination of R_ {LPS} and R:
\hskip0,4cm
4. Cálculo del nuevo subintervalo:4. Calculation of the new subinterval:
\hskip0,3cm
5. Renormalización de L y R, escritura de bits,5. Renormalization of L and R, deed of bits,
describiendodescribing
q_index, el índice de un valor de cuantificación extraído mediante lectura de Qtab,q_index, the index of a quantization value extracted by reading Qtab,
p_state, el estado actual,p_state, the current state,
R_{LPS}, la anchura de intervalo que corresponde al LPS yR_ {LPS}, the interval width that corresponds to the LPS and
ValMPS, el bit que corresponde al MPS.ValMPS, the bit that corresponds to the MPS.
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
La descodificación en una forma de realización especial comprende las siguientes etapas:Decoding in an embodiment Special includes the following stages:
1. Determinación del LPS1. Determination of the LPS
2. Cuantificación de R:2. Quantification of R:
\hskip0,3cm
3. Determinación de R_{LPS} y R:3. Determination of R_ {LPS} and R:
\hskip0,3cm
4. Determinación del bit, según la posición del subintervalo:4. Bit determination, according to the position of the subinterval:
\hskip0,3cm
5. Renormalización de R, extracción mediante lectura de un bit y actualización de V,5. Renormalization of R, extraction by One bit reading and V update,
describiendodescribing
q_index, el índice de un valor de cuantificación extraído mediante lectura de Qtab,q_index, the index of a quantization value extracted by reading Qtab,
p_state, el estado actual,p_state, the current state,
R_{LPS}, la anchura de intervalo que corresponde al LPS,R_ {LPS}, the interval width that corresponds to the LPS,
valMPS, el bit que corresponde al MPS yvalMPS, the bit that corresponds to the MPS and
V, un valor del interior del subintervalo actual.V, a value inside the subinterval current.
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
En una forma de realización del procedimiento según la invención está previsto que en la codificación y/o descodificación se realice el cálculo del índice de cuantificación q_index en la segunda subetapa según la regla de cálculo:In an embodiment of the procedure according to the invention it is provided that in the coding and / or decoding the calculation of the quantification index is performed q_index in the second sub-stage according to the calculation rule:
q_index = (R >> q) & Qmaskq_index = (R >> q) & Qmask
representando Qmask una máscara de bits elegida de manera adecuada en función de K.Qmask representing a bit mask chosen adequately based on K.
Además resulta ventajoso cuando la inicialización de los modelos de probabilidad se realiza en función de un parámetro de cuantificación SliceQP y parámetros de modelo m y n preestablecidos, describiendo SliceQP el parámetro de cuantificación preestablecido en el inicio de un sector y m y n los parámetros de modelo.It is also advantageous when the initialization of the probability models is performed based on of a SliceQP quantification parameter and model parameters m and n preset, SliceQP describing the parameter of quantification preset at the beginning of a sector and m and n the model parameters.
\newpage\ newpage
Asimismo es ventajoso cuando la inicialización de los modelos de probabilidad comprende las siguientes etapas:It is also advantageous when initialization of the probability models includes the following stages:
\hskip0,3cm
describiendo valMPS el bit que corresponde al MPS, SliceQP el parámetro de cuantificación preestablecido en el inicio de un sector y m y n los parámetros de modelo.describing valMPS the bit that corresponds to the MPS, SliceQP the quantification parameter preset at the beginning of a sector and m and n the parameters of model.
Una disposición para la codificación y la descodificación aritmética de estados binarios comprende al menos un procesador que está(n) configurado(s) de modo que puede realizarse un procedimiento para la codificación y descodificación aritmética, subdividiéndose en una primera etapa un rango de valores que puede preestablecerse para la especificación de la anchura de intervalo R en K anchuras de intervalo {Q_{1},..., Q_{k}} representativas, un rango de valores que puede preestablecerse para la especificación de las probabilidades en N estados de probabilidad {P_{1},..., P_{N}} representativos e indicándose reglas de asignación que a cada anchura de intervalo R asignan una Q_{k} (1 \leq k \leq K) y a cada probabilidad una P_{n} (1 \leq n \leq N), en una segunda etapa se realiza la codificación o descodificación de los estados binarios, realizándose el cálculo de la nueva anchura de intervalo que va a derivarse en el proceso de codificación o descodificación utilizando una anchura de intervalo Q_{k} (1 \leq k \leq K) representativa y un estado de probabilidad P_{n} (1 \leq n \leq N) representativo mediante operaciones aritméticas diferentes de multiplicación y división, determinándose la anchura de intervalo Q_{k} representativa mediante el intervalo básico que se toma como base de la anchura R y el estado de probabilidad P_{n} representativo mediante la estimación de probabilidad en que se basa el símbolo que va a codificarse o descodificarse según las reglas de asignación indicadas.A provision for coding and arithmetic decoding of binary states comprises at least a processor that is configured so that it can perform a procedure for coding and decoding arithmetic, subdividing a range of values in a first stage which can be preset for the width specification of interval R in K interval widths {Q_ {1}, ..., Q_ {k}} representative, a range of values that can be preset to the specification of the probabilities in N states of probability {P_ {1}, ..., P_ {N}} representative and indicating allocation rules that at each interval width R assign a Q_ {k} (1 \ leq k \ leq K) and at each probability a P_ {n} (1 \ leq n \ leq N), in a second stage the coding is carried out or decoding of the binary states, performing the calculation of the new interval width to be derived in the process of encoding or decoding using an interval width Q_ {k} (1 \ leq k \ leq K) representative and a state of probability P_ {n} (1 \ leq n \ leq N) representative by different arithmetic operations of multiplication and division, determining the representative width Q_ {k} by the basic interval that is taken as the basis of the width R and the representative probability state P_ {n} through the probability estimate on which the symbol that is going to be based is based be encoded or decoded according to the allocation rules indicated.
Un programa informático para la codificación y la descodificación aritmética de estados binarios posibilita a un ordenador, una vez cargado en la memoria del ordenador, realizar un procedimiento para la codificación y la descodificación aritmética, subdividiéndose en una primera etapa un rango de valores que puede preestablecerse para la especificación de la anchura de intervalo R en K anchuras de intervalo representativas {Q_{1},..., Q_{K}}, un rango de valores que puede preestablecerse para la especificación de las probabilidades en N estados de probabilidad representativos {P_{1},..., P_{N}} e indicándose reglas de asignación, que asignan a cada anchura de intervalo R una Q_{k} (1 \leq k \leq K) y a cada probabilidad una P_{n} (1 \leq n \leq N), produciéndose en una segunda etapa la codificación o descodificación de los estados binarios, realizándose el cálculo de la nueva anchura de intervalo que va a derivarse en el proceso de codificación o descodificación utilizando una anchura de intervalo Q_{k} representativa (1 \leq k \leq K) y un estado de probabilidad P_{n} representativo (1 \leq n \leq N) mediante operaciones aritméticas diferentes de multiplicación y división, determinándose la anchura de intervalo Q_{k} representativa mediante el intervalo básico que se toma como base de la anchura R y el estado de probabilidad P_{n} representativo mediante la estimación de probabilidad en la que se basa el símbolo que va a codificarse o a descodificarse según las reglas de asignación indicadas.A computer program for coding and arithmetic decoding of binary states enables a computer, once loaded into the computer memory, perform a procedure for coding and arithmetic decoding, subdividing in a first stage a range of values that can preset for the interval width specification R in K representative interval widths {Q_ {1}, ..., Q_ {K}}, a range of values that can be preset for the specification of the probabilities in N representative probability states {P_ {1}, ..., P_ {N}} and indicating allocation rules, which assign to each interval width R a Q_ {k} (1 \ leq k \ leq K) and at each probability a P_ {n} (1 \ leq n \ leq N), occurring in a second stage the coding or decoding of the binary states, performing the calculation of the new interval width to be derived in the process of encoding or decoding using an interval width Representative Q_ {k} (1 \ leq k \ leq K) and a state of representative probability P_ {n} (1 \ leq n \ leq N) by different arithmetic operations of multiplication and division, determining the representative width Q_ {k} by the basic interval that is taken as the basis of the width R and the representative probability state P_ {n} through the probability estimate on which the symbol to be based is based be encoded or decoded according to the assignment rules indicated.
Por ejemplo, tales programas informáticos (pagando tasas o de forma gratuita, con libre acceso o protegidos con contraseña) pueden proporcionarse con posibilidad de descarga en una red de datos o de comunicación. Los programas informáticos así proporcionados pueden hacerse útiles entonces mediante un procedimiento, en el que un programa informático se descarga desde una red para la transmisión de datos como por ejemplo desde Internet a un medio de procesamiento de datos conectado a la red.For example, such computer programs (paying fees or for free, with free access or protected with password) can be provided with the possibility of downloading in a data or communication network. Computer programs like this provided can then be made useful by procedure, in which a computer program is downloaded from a network for data transmission such as from Internet to a data processing medium connected to the net.
Para la realización de un procedimiento para la codificación y la descodificación aritmética de estados binarios se utiliza ventajosamente un medio de almacenamiento legible por ordenador, en el que está almacenado un programa, que posibilita a un ordenador, una vez cargado en la memoria del ordenador, realizar un procedimiento para la codificación y la descodificación aritmética, subdividiéndose en una primera etapa un rango de valores que puede preestablecerse para la especificación de la anchura de intervalo R en K anchuras de intervalo {Q_{1},..., Q_{k}} representativas, un rango de valores que puede preestablecerse para la especificación de las probabilidades en N estados de probabilidad {P_{1},..., P_{N}} representativos e indicándose reglas de asignación, que a cada anchura de intervalo R asignan una Q_{k} (1 \leq k \leq K) y a cada probabilidad una P_{n} (1 \leq n \leq N), produciéndose en una segunda etapa la codificación o descodificación de los estados binarios, realizándose el cálculo de la nueva anchura de intervalo que va a derivarse en el proceso de codificación o descodificación utilizando una anchura de intervalo Q_{k} (1 \leq k \leq K) representativa y un estado de probabilidad P_{n} (1 \leq n \leq N) representativo mediante operaciones aritméticas diferentes de multiplicación y división, determinándose la anchura de intervalo Q_{k} representativa mediante el intervalo básico que se toma como base de la anchura R y el estado de probabilidad P_{n} representativo mediante la estimación de probabilidad en la que se basa el símbolo que va a codificarse o a descodificarse según las reglas de asignación indicadas.To carry out a procedure for coding and arithmetic decoding of binary states are advantageously use a storage medium readable by computer, in which a program is stored, which enables a computer, once loaded into the computer memory, perform a procedure for coding and decoding arithmetic, subdividing a range of values in a first stage which can be preset for the width specification of interval R in K interval widths {Q_ {1}, ..., Q_ {k}} representative, a range of values that can be preset to the specification of the probabilities in N states of probability {P_ {1}, ..., P_ {N}} representative and indicating assignment rules, which at each interval width R assign a Q_ {k} (1 \ leq k \ leq K) and at each probability a P_ {n} (1 \ leq n \ leq N), occurring in a second stage the encoding or decoding of binary states, performing the calculation of the new interval width that is going to derive in the coding or decoding process using an interval width Q_ {k} (1 \ leq k \ leq K) representative and a probability state P_ {n} (1 \ leq n ≤ N) representative by different arithmetic operations of multiplication and division, determining the width of representative Q_ {interval} by the basic interval that it is taken as the basis of the width R and the probability state P_ {n} representative by estimating probability in the that the symbol to be encoded or decoded is based on the allocation rules indicated.
\newpage\ newpage
El nuevo procedimiento se caracteriza por la combinación de tres características. En primer lugar, de manera similar al codificador Q se produce la estimación de probabilidad mediante una máquina de estados finita (FSM: finite state machine), produciéndose la generación de los N estados representativos de la FSM fuera de línea. Las reglas de transición correspondientes se depositan a este respecto en forma de tablas.The new procedure is characterized by the combination of three characteristics. First, similar to the Q encoder, the probability estimation is produced by a finite state machine (FSM), generating the N representative states of the FSM offline. The corresponding transition rules are deposited in this respect in the form of tables.
La segunda característica de la invención es una precuantificación de la anchura de intervalo R hasta un número de K valores de cuantificación previamente definidos. Esto permite, con un dimensionamiento adecuado de K y N la elaboración de una tabla, que contiene todas las combinaciones K x N de valores de producto R x P_{LPS} calculados previamente para una determinación sin multiplicación de R_{LPS}.The second feature of the invention is a prequantification of the interval width R up to a number of K previously defined quantification values. This allows, with an adequate sizing of K and N the elaboration of a table, which contains all combinations K x N of product values R x P_ {LPS} previously calculated for a determination without multiplication of R_ {LPS}.
Para el uso de la presente invención en un entorno, en el que se utilizan diferentes modelos de contexto, entre los que se encuentran también aquéllos con una distribución de probabilidades (casi) uniforme, se prevé como elemento adicional (opcional) una rama separada en la máquina de codificación, en la que suponiendo una distribución uniforme se reduce claramente otra vez la determinación de las magnitudes L y R así como la renormalización con respecto al esfuerzo de cálculo.For the use of the present invention in a environment, in which different context models are used, Among those are also those with a distribution of (almost) uniform probabilities, expected as an additional element (optional) a separate branch in the coding machine, in the that assuming a uniform distribution clearly reduces another time the determination of the magnitudes L and R as well as the renormalization regarding the calculation effort.
Muestran:They show:
la figura 1 una representación de las operaciones esenciales para la codificación aritmética binaria;Figure 1 a representation of the essential operations for binary arithmetic coding;
la figura 2 un esquema modificado para la codificación aritmética basada en tablas;Figure 2 a modified scheme for the arithmetic coding based on tables;
la figura 3 el principio de la descodificación aritmética basada en tablas;figure 3 the decoding principle table-based arithmetic;
la figura 4 el principio de la codificación o descodificación para datos binarios con distribución uniforme;Figure 4 the principle of coding or decoding for binary data with uniform distribution;
la figura 5 una realización alternativa de la codificación o descodificación para datos binarios con distribución uniforme.Figure 5 an alternative embodiment of the encoding or decoding for binary data with distribution uniform.
La figura 6 la inicialización de los modelos de probabilidad en función de un parámetro de cuantificación SliceQP y los parámetros de modelo m y n preestablecidosFigure 6 the initialization of the models of probability based on a SliceQP quantification parameter and the preset m and n model parameters
Sin embargo, en primer lugar se explicará la base teórica de forma algo más detallada:However, in the first place the theoretical basis in a somewhat more detailed way:
Estimación de probabilidad basada en tablasProbability estimation based on tables
Como ya se explicó con más detalle anteriormente, el modo de acción de la codificación aritmética se basa en una estimación lo mejor posible de la probabilidad de aparición de los símbolos que van a codificarse. Para posibilitar una adaptación a estadísticas de fuente no estacionarias debe actualizarse esta estimación a lo largo del proceso de codificación. Por regla general se utilizan para ello habitualmente procedimientos, que operan con ayuda de contadores de frecuencia ajustados a escala de los eventos codificados [17]. Si C_{LPS} y C_{MPS} designan contadores para las frecuencias de aparición de LPS y MPS, entonces mediante estos contadores puede llevarse a cabo la estimaciónAs explained in more detail previously, the mode of action of arithmetic coding is based on a best possible estimate of the probability of appearance of the symbols to be encoded. To enable an adaptation to non-stationary source statistics should update this estimate throughout the process of coding. As a general rule they are usually used for this procedures, which operate with the help of frequency counters scaled to encoded events [17]. If C_ {LPS} and C_ {MPS} designate counters for the frequencies of occurrence of LPS and MPS, then through these counters can be carried out the estimate
y así realizar la operación esbozada en la figura 1 de la subdivisión de intervalo. Desventajosa para fines prácticos es la división necesaria en la ecuación (1). Sin embargo, con frecuencia es conveniente y necesario, al superar un valor umbral C_{max} preestablecido del contador total C_{Total} = C_{MPS} + C_{LPS} llevar a cabo un reajuste a escala de los estados del contador. (En este contexto se considerará que en una representación de b bits de L y R la menor probabilidad, que aún puede representarse correctamente, asciende a 2^{-b+2}, de modo que para evitar quedar por debajo de este límite inferior dado el caso es necesario un reajuste a escala de los estados del contador). Con una elección adecuada de C_{max} pueden presentarse en forma de tabla los valores recíprocos de C_{Total}, de modo que la división necesaria en la ecuación (1) puede sustituirse por un acceso a la tabla así como una operación de multiplicación y desplazamiento. Sin embargo, para evitar también estas operaciones aritméticas, en la presente invención se utiliza un procedimiento basado completamente en tablas para la estimación de probabilidad.and thus perform the operation outlined in figure 1 of the interval subdivision. Disadvantageous for practical purposes it is the necessary division in equation (1). However, it is often convenient and necessary to overcome a preset threshold value C_ {max} of the total counter C_ {Total} = C_ {MPS} + C_ {LPS} carry out a reset to scale of the counter states. (In this context it will be considered that in a representation of b bits of L and R the least probability, which can still be represented correctly, amounts to 2 - b + 2, so that to avoid being below this lower limit if necessary, a readjustment at scale of the states of the accountant). With an appropriate choice of C_ {max} they can be presented in table form the reciprocal values of C_ {Total}, so that the necessary division in equation (1) can be replaced by an access to the table as well as a multiplication operation and displacement. However, to also avoid these operations arithmetic, in the present invention a method is used based entirely on tables for estimating probability.
Para este fin se eligen previamente en una fase de entrenamiento estados de probabilidad representativos {P_{k}|0 \leq k < N_{max}}, dependiendo la elección de los estados por un lado de la estadística de los datos que van a codificarse y por otro lado de la condición secundaria del número máximo N_{max} preestablecido de estados. Adicionalmente se definen reglas de transición, que indican qué nuevo estado ha de utilizarse partiendo del símbolo actualmente codificado para el siguiente símbolo que va a codificarse. Estas reglas de transición se proporcionan en forma de dos tablas: {Next_State_LPS_{k} | 0 \leq k < N_{max}} y {Next_State_MPS_{k} | 0 \leq k < N_{max}}, proporcionando las tablas para el índice n del estado de probabilidad P_{n} dado actualmente el índice m del nuevo estado de probabilidad P_{m} al aparecer un LPS o MPS. En este punto cabe destacar que para la estimación de probabilidad en el codificador o descodificador aritmético tal como se propone en este caso, no se requiere una presentación explícita en forma de tabla de los estados de probabilidad. Más bien se direccionan los estados sólo mediante sus índices correspondientes de manera implícita, tal como se describe en el párrafo siguiente. Adicionalmente a las reglas de transición debe especificarse en qué estados de probabilidad debe cambiarse el valor del LPS y MPS. Por regla general sólo habrá un estado marcado tal, que a continuación puede identificarse mediante su índice p_state.For this purpose they are previously chosen in one phase of training representative probability states {P_ {k} | 0 \ leq k <N_ {max}}, depending on the choice of states by one side of the statistics of the data to be encoded and by other side of the secondary condition of the maximum number N_ {max} preset states. Additionally, rules of transition, which indicates which new state should be used starting of the currently coded symbol for the next symbol that goes to be codified. These transition rules are provided in the form of two tables: {Next_State_LPS_ {k} | 0 \ leq k <N_ {max}} and {Next_State_MPS_ {k} | 0 ≤ k <N_ {max}}, providing the tables for index n of the state of probability P_ {n} currently given the index m of the new state of probability P_ {m} when an LPS or MPS appears. In this point it should be noted that for the estimation of probability in the arithmetic encoder or decoder as proposed in this case, an explicit presentation in the form of a table is not required the states of probability. Rather the states are addressed only by means of their corresponding indices implicitly, such as described in the following paragraph. Additionally at transition rules must be specified in what states of Probability should change the value of LPS and MPS. As a rule In general there will only be a state marked such that you can then Identify yourself using your p_state index.
La figura 2 muestra el esquema modificado para la codificación aritmética basada en tablas, tal como se propone en este caso. Tras determinar el LPS se mapea en primer lugar la anchura de intervalo R dada mediante un mapeo Qtab presentado en forma de tabla y una operación de desplazamiento adecuada (por q bit) con un valor Q cuantificado. Alternativamente, la cuantificación también puede realizarse en casos especiales sin recurrir a un mapeo Qtab presentado en forma de tabla sólo con ayuda de una combinación de operaciones de desplazamiento y enmascaramiento. Por regla general se realiza en este caso una cuantificación relativamente aproximada hasta K = 2...8 valores representativos. Tampoco en este caso, de manera similar al caso de la estimación de probabilidad, se produce una determinación explícita de Q; más bien se transmite sólo un índice q_index a Q. Este índice se utiliza ahora junto con el índice p_state para caracterizar el estado de probabilidad actual para determinar la anchura de intervalo R_{LPS}. Para ello se utiliza la entrada correspondiente de la tabla Rtab. En ésta están depositados los K \cdot N_{max} valores de producto R x P_{LPS} correspondientes a todos los K valores cuantificados de R y N_{max} estados de probabilidad diferentes como valores de número entero con una exactitud de en general b-2 bits. Para implementaciones prácticas se da en este caso una posibilidad de sopesar entre la necesidad de memoria para el tamaño de la tabla y la exactitud aritmética, que en última instancia determina también la eficiencia de la codificación. Ambas magnitudes objetivo se determinan mediante la granularidad de la representación de R y P_{LPS}.Figure 2 shows the modified scheme for arithmetic coding based on tables, as proposed in this case. After determining the LPS, the first R interval width given by Qtab mapping presented in table shape and proper scrolling operation (why bit) with a quantified Q value. Alternatively, the quantification can also be done in special cases without resort to a Qtab mapping presented as a table only with help of a combination of scroll operations and masking As a general rule, a relatively approximate quantification up to K = 2 ... 8 values representative. Nor in this case, similar to the case of the probability estimate, a determination occurs explicit of Q; rather, only a q_index index is transmitted to Q. This index is now used together with the p_state index to characterize the current probability state to determine the interval width R_ {LPS}. The entry is used for this corresponding from the Rtab table. In this the K are deposited \ Nd {max} corresponding product values R x P_ {LPS} to all K quantified values of R and N_ {max} states of different probabilities as integer values with a accuracy of in general b-2 bits. For practical implementations in this case there is a possibility of weigh between the need for memory for table size and arithmetic accuracy, which ultimately also determines coding efficiency Both target quantities are determined by the granularity of the representation of R and P_ {LPS}.
En la cuarta etapa de la figura 2 se muestra cómo se lleva a cabo la actualización del estado de probabilidad p_state en función del evento bit recién codificado. En este caso se utilizan las tablas de transición Next_State_LPS y Next_State_MPS ya mencionadas en el párrafo anterior "Estimación de probabilidad basada en tablas". Estas operaciones corresponden al proceso de actualización indicado en la figura 1 en la 4ª etapa, aunque no especificado con más detalle.In the fourth stage of figure 2 it is shown how the probability status update is carried out p_state based on the newly encoded bit event. In this case it use the Next_State_LPS and Next_State_MPS transition tables already mentioned in the previous paragraph "Probability estimation based on tables. "These operations correspond to the process of update indicated in figure 1 in the 4th stage, although not specified in more detail.
La figura 3 muestra el esquema de desarrollo correspondiente de la descodificación aritmética basada en tablas. Para caracterizar el subintervalo actual se utiliza en el descodificador la anchura de intervalo R y un valor V. Éste último se encuentra dentro del subintervalo y se afina sucesivamente con cada bit leído. Tal como se deduce de la figura 3, las operaciones para la estimación de probabilidad y la determinación de la anchura de intervalo R se corrigen correspondientemente a las del codificador.Figure 3 shows the development scheme corresponding arithmetic decoding based on tables. To characterize the current subinterval is used in the decoder the interval width R and a V value. The latter is within the sub-interval and is successively tuned with Each bit read. As can be deduced from Figure 3, the operations for probability estimation and width determination of interval R are corrected correspondingly to those of encoder
En aplicaciones en las que deben codificarse por ejemplo valores con signo, cuya distribución de probabilidades está dispuesta simétricamente respecto al cero, se podrá partir para la codificación de la información de signo por regla general de una distribución uniforme. Puesto que esta información debe introducirse por un lado en el flujo de bits aritmético, aunque por otro lado no es útil para el caso de una probabilidad de P \approx 0,5 utilizar el aparato aún relativamente complejo de la estimación de probabilidad y subdivisión de intervalo basadas en tablas, se propone para este caso especial utilizar opcionalmente un procedimiento de codificador/descodificador separado que se representa de la siguiente manera.In applications where they must be encoded by example signed values, whose probability distribution is symmetrically arranged with respect to zero, it may be split for coding of the sign information as a general rule of a uniform distribution Since this information must be entered on the one hand in the arithmetic bit stream, although on the other hand not It is useful in the case of a probability of P \ approx 0.5 use the still relatively complex apparatus of estimating probability and subdivision of interval based on tables, it proposes for this special case to optionally use a separate encoder / decoder procedure that is Represents as follows.
En el codificador puede determinarse para este caso especial la anchura de intervalo del nuevo subintervalo mediante una operación de desplazamiento sencilla correspondientemente a una división por la mitad de la anchura del intervalo de partida R. Según el valor del bit que va a codificarse se elige entonces la mitad superior o inferior de R como nuevo subintervalo (véase la figura 4). La renormalización y salida posterior de bits se realiza como en el caso anterior de la solución basada en tablas.In the encoder it can be determined for this special case the interval width of the new subinterval by a simple scroll operation correspondingly to a division by half the width of the starting interval R. According to the value of the bit to be encoded then the upper or lower half of R is chosen as new sub-interval (see figure 4). Renormalization and exit subsequent bit is done as in the previous case of the solution based on tables.
En el descodificador correspondiente se reducen las operaciones necesarias a determinar el bit que va a descodificarse mediante el valor de V respecto a la anchura de intervalo R actual mediante una operación de comparación sencilla. En caso de establecer el bit descodificado, se reducirá V por la cantidad de R. Tal como representa la figura 4, se termina la descodificación mediante la renormalización y la actualización de V con el siguiente bit que va a introducirse mediante lectura.In the corresponding decoder they are reduced the operations necessary to determine the bit that is going to be decoded by the value of V with respect to the width of Current R interval by a simple comparison operation. If the decoded bit is set, V will be reduced by amount of R. As shown in Figure 4, the decoding by renormalization and updating of V with the next bit to be entered by reading.
Una realización alternativa de la codificación de eventos con distribución de probabilidades uniforme se representa en la figura 5. En esta implementación a modo de ejemplo no se modifica la anchura de intervalo R actual. En su lugar se duplica en el codificador en primer lugar V mediante una operación de desplazamiento. Según el valor del bit que va a codificarse, de manera similar al ejemplo anterior, se elige entonces la mitad superior o inferior de R como nuevo subintervalo (véase la figura 5). La renormalización y salida posterior de bits se produce como en el caso anterior de la solución basada en tablas con la diferencia de que no se lleva a cabo la duplicación de R y L y se llevan a cabo las operaciones de comparación correspondientes con valores umbral duplicados.An alternative embodiment of coding of events with uniform probability distribution is represented in figure 5. In this implementation as an example, you do not Modify the current R interval width. Instead it doubles in the first encoder V by an operation of displacement. According to the value of the bit to be encoded, of similar to the previous example, then half is chosen upper or lower R as new subinterval (see figure 5). Renormalization and subsequent output of bits occurs as in the previous case of the solution based on tables with the difference that the duplication of R and L is not carried out and it carry out the corresponding comparison operations with duplicate threshold values.
\newpage\ newpage
En el descodificador correspondiente de la realización alternativa en primer lugar se extrae un bit mediante lectura y se actualiza V. La segunda etapa se lleva a cabo de la misma manera que la etapa 1 en la figura 4, es decir, el bit que va a descodificarse se determina mediante el valor de V respecto a la anchura de intervalo R actual mediante una operación de comparación sencilla y en caso de que se establezca el bit descodificado, se reducirá V por la cantidad de R (véase la figura 5).In the corresponding decoder of the alternative embodiment first a bit is extracted by reading and update V. The second stage is carried out of the same way as stage 1 in figure 4, that is, the bit that goes to be decoded is determined by the value of V with respect to the current R interval width by a comparison operation simple and in case the decoded bit is set, it reduce V by the amount of R (see figure 5).
Cada modelo de probabilidad, tal como se utiliza en la presente invención, se caracteriza con ayuda de dos parámetros: 1) el índice p_state, que caracteriza el estado de probabilidad del LPS, y 2) el valor valMPS del MPS. Cada una de estas magnitudes debe inicializarse al inicio de la codificación o descodificación de una unidad de codificación terminada (en aplicaciones de la codificación de vídeo aproximadamente un sector). Los valores de inicialización pueden derivarse a este respecto a partir de información de control, como el parámetro de cuantificación (de un sector), tal como se representa a modo de ejemplo en la figura 6.Each probability model, as used in the present invention, it is characterized with the help of two parameters: 1) the p_state index, which characterizes the state of probability of the LPS, and 2) the valMPS value of the MPS. Each of these quantities must be initialized at the beginning of the coding or decoding of a finished coding unit (in video coding applications approximately one sector). The initialization values can be derived in this respect to from control information, such as the parameter of quantification (of a sector), as represented by way of example in figure 6.
Otra posibilidad de adaptación de las distribuciones de inicio de los modelos se proporciona mediante el siguiente método. Para garantizar una mejor adaptación de las inicializaciones de los modelos puede proporcionarse en el codificador una elección de valores de inicio preestablecidos de los modelos. Estos modelos pueden agruparse en grupos de distribuciones de inicio y direccionarse con índices, de modo que en el codificador se produce la elección adaptiva de un grupo de valores de inicio y se transmite al descodificador en forma de un índice como información lateral. Este método se denomina proceso de inicialización controlado hacia delante.Another possibility of adapting Starter distributions of the models is provided by the following method. To ensure a better adaptation of Model initializations can be provided in the encoder a choice of preset start values of the Models. These models can be grouped into distribution groups start and address with indexes, so that in the encoder adaptive choice of a group of start values occurs and it is transmitted to the decoder in the form of an index like lateral information. This method is called the process of controlled initialization forward.
[1] T. Wiegand, G. Sullivan, "Draft Text of Final Draft International Standard (FDIS) of Joint Video Specification (ITUT Rec. H.264 | ISO/IEC 14496-10 AVC)", JVT-G050, marzo de 2003.[1] T. Wiegand , G. Sullivan , "Draft Text of Final Draft International Standard (FDIS) of Joint Video Specification (ITUT Rec. H.264 | ISO / IEC 14496-10 AVC)", JVT-G050, March 2003
[2] D. A. Huffman, "A Method for Construction of Minimum Redundancy code", Proc. IRE, Vol. 40, págs. 1098-1101, 1952.[2] DA Huffman , "A Method for Construction of Minimum Redundancy code", Proc. IRE , Vol. 40, p. 1098-1101, 1952 .
[3] I. H. Witten, R. M. Neal, J. G. Cleary, "Arithmetic Coding for Data Compression", Communication of the ACM, Vol. 30, No. 6, págs. 520-540, 1987.[3] IH Witten , RM Neal , JG Cleary , "Arithmetic Coding for Data Compression", Communication of the ACM , Vol. 30, No. 6, p. 520-540, 1987 .
[4] G. G. Langdon, J. Rissanen, "A Simple General Binary Source code", IEEE Transactions on Information Theory, Vol. 28, págs. 800-803, 1982.[4] GG Langdon , J. Rissanen , "A Simple General Binary Source code", IEEE Transactions on Information Theory , Vol. 28, p. 800-803, 1982 .
[5] C. E. Shannon, "A Mathematical Theory of Communication", Bell Syst. Tech. Journal, vol. 27, págs. 379-423, 623-656, 1948.[5] CE Shannon , "A Mathematical Theory of Communication", Bell Syst. Tech. Journal , vol. 27, p. 379-423, 623-656, 1948 .
[6] P. Elias, "in information Theory and Coding", N. Abramson (Ed.), New York, MC-Crawl-Hill, 1963.[6] P. Elias , "in information Theory and Coding", N. Abramson (Ed.), New York, MC-Crawl-Hill , 1963 .
[7] J. Rissanen, "Generalizad Kraft Inequality and Arithmetic Coding", IBM J. Res. Develop., Vol. 20, págs. 198-203. 1976.[7] J. Rissanen , "Generalized Kraft Inequality and Arithmetic Coding", IBM J. Res. Develop ., Vol. 20, p. 198-203. 1976
[8] R. C. Pasco, "Source Coding and Algorithms for Fast Data Compression", Ph. D. Dissertation, Stanford University, EE.UU., 1976.[8] RC Pasco , "Source Coding and 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, págs. 135-149, 1984.[9] GG Langdon , "An Introduction to Arithmetic Coding", IBM J. Res. Develop ., Vol. 28, p. 135-149, 1984 .
[10] A. Moffat, R. M. Neal, I. H. Witten, "Arithmetic Coding Revisited", Proc. IEEE Data Compression Conference, Snowbird (USA), págs. 202-211, 1996.[10] A. Moffat , RM Neal , IH Witten , "Arithmetic Coding Revisited", Proc. IEEE Data Compression Conference, Snowbird (USA), p. 202-211, 1996 .
[11] J. Rissanen, K. M. Mohiuddin, "A Multiplication-Free Multialphabet Arithmetic Arithmetic Code", IEEE Trans. on Communication, Vol. 37, págs. 93-98, 1989.[11] J. Rissanen , KM Mohiuddin , "A Multiplication-Free Multialphabet Arithmetic Arithmetic Code", IEEE Trans. on Communication , Vol. 37, p. 93-98, 1989 .
[12] W. B. Pennebaker, J. L. Mitchell, G. G. Langdon, R. B. Arps, "An Overview of the Basic Principles of the QCoder Adaptive Binary Arithmetic Coder", IBM J. Res. Develop., Vol. 32, págs. 717-726, 1988.[12] WB Pennebaker , JL Mitchell , GG Langdon , RB Arps , "An Overview of the Basic Principles of the QCoder Adaptive Binary Arithmetic Coder", IBM J. Res. Develop ., Vol. 32, p. 717-726, 1988 .
[13] P. G. Howard, J. S. Vitter, "Practical Implementations of Arithmetic Coding", in "Image and Text Compression", J. Storer (Ed.), Norwell (EE.UU.), Kluwer, 1992.[13] PG Howard , JS Vitter , "Practical Implementations of Arithmetic Coding", in "Image and Text Compression", 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, págs. 1658-1662, 1997.[14] L. Huynh , A. Moffat , "A Probability-Ratio Approach to Approximate Binary Arithmetic Coding", IEEE Trans. on Information Theory , Vol. 43, p. 1658-1662, 1997 .
[15] D. Chevion, E. D. Karnin, E. Walach, "High-Efficiency, Multiplication Free Approximation of Arithmetic Coding", Proc. IEEE Data Compression Conference, Snowbird (USA), págs. 43-52, 1991.[15] D. Chevion , ED Karnin , E. Walach , "High-Efficiency, Multiplication Free Approximation of Arithmetic Coding", Proc. IEEE Data Compression Conference , Snowbird (USA), p. 43-52, 1991 .
[16] G. Feygin, P. G. Gulak, P. Chow, "Minimizing Excess Code Length and VLSI Complexity in the Multiplication Free Approximation of Arithmetic Coding", Inform. Proc. Manag., vol. 30, págs. 805-816, 1994.[16] G. Feygin , PG Gulak , P. Chow , "Minimizing Excess Code Length and VLSI Complexity in the Multiplication Free Approximation of Arithmetic Coding", Inform. Proc. Manag ., Vol. 30, p. 805-816, 1994 .
[17] D. L. Duttweiler, Ch. Chamzas, "Probability Estimation in Arithmetic and Adaptive-Huffman Entropy Coders", IEEE Trans. on Image Processing, Vol. 4, págs. 237-246, 1995.[17] DL Duttweiler , Ch. Chamzas , "Probability Estimation in Arithmetic and Adaptive-Huffman Entropy Coders", IEEE Trans. on Image Processing , Vol. 4, p. 237-246, 1995 .
Claims (38)
- codificar el símbolo que va a codificarse, llevando a cabo las siguientes subetapas:encode the symbol to be encoded, carrying out the following subcaps:
- mapear la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos; ymap the Current interval width with a quantification index from of a plurality of representative quantification indices; Y
- realizar la subdivisión de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo,perform the interval subdivision through access, using the index of quantification and probability index, to a division table of interval, to obtain a width value of subinterval,
- actualizar la anchura de intervalo actual utilizando el valor de anchura de intervalo, para obtener una nueva anchura de intervalo actualizada.update it current interval width using the width value of interval, to obtain a new interval width updated.
- adaptar la estimación de probabilidad, presentando la adaptación de la estimación de probabilidad la consulta, con el índice de probabilidad, en una tabla de regla de transición LPS (Next_State_LPS), para obtener un nuevo índice de probabilidad, si el símbolo que va a codificarse presenta un estado menos probable, y la consulta, con el índice de probabilidad, en una tabla de regla de transición MPS (Next_State_MPS), para obtener un nuevo índice de probabilidad, si el símbolo que va a codificarse presenta un estado más probable.adapt the probability estimation, presenting the adaptation of the query probability estimate, with the index of probability, in an LPS transition rule table (Next_State_LPS), to get a new probability index, if the symbol to be encoded has a less probable state, and the query, with the probability index, in a rule table MPS transition (Next_State_MPS), to obtain a new index of probability, if the symbol to be coded presents a state most likely.
- igualar la nueva anchura de intervalo con la diferencia de la anchura de intervalo actual menos el valor de anchura de subintervalo; ymatch the new interval width with the difference in the interval width current minus the subinterval width value; Y
- a continuación, en caso de que el símbolo que va a codificarse presente un estado menos probable, igualar la nueva anchura de intervalo con el valor de anchura de subintervalo.then, in case the symbol to be encoded has a state less likely, match the new interval width with the value of subinterval width.
- sumar el punto de partida actual y una diferencia de anchura de intervalo actual y valor de anchura de subintervalo, para obtener un nuevo punto de partida actualizado, si el símbolo que va a codificarse presenta un estado menos probable.add the point current departure and a current interval width difference and subinterval width value, to obtain a new point of updated item, if the symbol to be coded presents a less likely state
\newpage\ newpage
- descodificar el símbolo codificado, llevándose a cabo las siguientes subetapas:decode the coded symbol, carrying out the following subcaps:
- mapear la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos; ymap the Current interval width with a quantification index from of a plurality of representative quantification indices; Y
- realizar la división de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo,perform the interval division by access, using the index of quantification and probability index, to a division table of interval, to obtain a width value of subinterval,
- actualizar la anchura de intervalo actual utilizando el valor de anchura de subintervalo, para obtener una nueva anchura de intervalo actualizada.update it current interval width using the width value of subinterval, to obtain a new interval width updated.
- igualar el estado binario del símbolo codificado con uno de entre un estado no más probable y uno más probable en función de si el valor situado dentro del nuevo subintervalo es mayor o menor que una diferencia de la anchura de intervalo actual y el valor de anchura de subintervalo.match the binary state of the symbol coded with one of a non-state more likely and one more likely depending on whether the value located within the new subinterval is greater or less than a difference of the current interval width and the width value of subinterval.
\newpage\ newpage
- actualizar la estimación de probabilidad, realizándose la actualización de la estimación de probabilidad mediante reglas de transición, indicando las reglas de transición, qué nuevo estado de probabilidad de la pluralidad de estados de probabilidad se utiliza, partiendo del símbolo que va a codificarse o codificado, para un siguiente símbolo que va a codificarse o codificado.update it probability estimation, performing the update of the probability estimation by transition rules, indicating the transition rules, what new probability state of the plurality of probability states is used, starting from symbol to be coded or coded, for a following symbol to be encoded or encoded.
- actualizar la estimación de probabilidad, presentando la actualización de la estimación de probabilidad la consulta, con el índice de probabilidad, en una tabla de regla de transición (Next_State_LPS), para obtener un nuevo índice de probabilidad.update it probability estimation, presenting the update of the query probability estimate, with the index of probability, in a transition rule table (Next_State_LPS), to get a new probability index.
- renormalizar el nuevo punto de partida actualizado y la nueva anchura de intervalo actualizada.renormalize the new updated starting point and new interval width updated.
- --
- en la codificación se realiza la siguiente regla de cálculo:in the coding the following calculation rule is performed:
- o se realiza la siguiente regla de cálculo:or the following calculation rule:
- y como última alternativa se realiza una renormalización con valores umbral de decisión duplicados y no se efectúa ningún duplicado de L y R,and as last alternatively a renormalization with threshold values of duplicate decision and no duplicate of L and R,
- --
- en la descodificación según la reivindicación 13 se realiza la siguiente regla de cálculo:in the decoding according to claim 13 the following is performed slide rule:
- o la siguiente regla de cálculo:or the next slide rule:
- 3.3.
- extraer mediante lectura un bit y actualizar Vextract by reading a bit and update V
\newpage\ newpage
- 4.Four.
- determinar el bit, según la posición del subintervalo:determine the bit, depending on the position of the subinterval:
- un medio para la codificación del símbolo que va a codificarse, que presenta los siguientes medios:a means to coding of the symbol to be encoded, which presents the following means:
- un medio para el mapeo de la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos; ya means to him mapping the current interval width with an index of quantification from a plurality of indices of representative quantification; Y
- un medio para realizar la subdivisión de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo, estando configurado el medio de mapeo para aplicar una operación de enmascaramiento de bits y desplazamiento a una representación binaria/interna del ordenador de la anchura de intervalo actual, concretamente según la siguiente regla de cálculo q_index = (R >> q) & Qmask, representando Qmask una máscara de bits elegida de manera adecuada en función del número de índices de cuantificación representativos, R la anchura de intervalo actual y q un número de bits.a means to perform interval subdivision through access, using the quantification index and the probability index, at a interval division table, to obtain a width value of sub-interval, the mapping medium being configured to apply a bit masking operation and shifting to a binary / internal computer representation of the width of current interval, specifically according to the following calculation rule q_index = (R >> q) & Qmask, representing Qmask a bit mask appropriately chosen based on the number of Representative quantification indices, R the interval width current and q a number of bits.
- un medio para la descodificación del símbolo codificado, que presenta los siguientes medios:a means to decoding of the coded symbol, which has the following media:
- un medio para el mapeo de la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos: ya means to him mapping the current interval width with an index of quantification from a plurality of indices of Representative quantification: and
- un medio para realizar la subdivisión de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo, estando configurado el medio de mapeo para aplicar una operación de enmascaramiento de bits y desplazamiento a una representación binaria/interna del ordenador de la anchura de intervalo actual, concretamente según la siguiente regla de cálculo q_index = (R >> q) & Qmask, representando Qmask una máscara de bits elegida de manera adecuada en función del número de índices de cuantificación representativos, R la anchura de intervalo actual y q un número de bits.a means to perform interval subdivision through access, using the quantification index and the probability index, at a interval division table, to obtain a width value of sub-interval, the mapping medium being configured to apply a bit masking operation and shifting to a binary / internal computer representation of the width of current interval, specifically according to the following calculation rule q_index = (R >> q) & Qmask, representing Qmask a bit mask appropriately chosen based on the number of Representative quantification indices, R the interval width current and q a number of bits.
- codificar el símbolo que va a codificarse, llevándose a cabo las siguientes subetapas:encode the symbol to be encoded, carrying out the following subcaps:
- mapear la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos; ymap the Current interval width with a quantification index from of a plurality of representative quantification indices; Y
- realizar la subdivisión de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo,perform the interval subdivision through access, using the index of quantification and probability index, to a division table of interval, to obtain a width value of subinterval,
- presentando la subetapa de mapeo la aplicación de una operación de enmascaramiento de bits y desplazamiento a una representación binaria/interna del ordenador de la anchura de intervalo actual, concretamente según la siguiente regla de cálculo q_index = (R >> q) & Qmask, representando Qmask una máscara de bits elegida de manera adecuada en función del número de índices de cuantificación representativos, R la anchura de intervalo actual y q un número de bits.presenting the mapping subcap the application of a masking operation bit and offset to a binary / internal representation of the computer of the current interval width, specifically according to the following calculation rule q_index = (R >> q) & Qmask, Qmask representing a bit mask appropriately chosen based on the number of representative quantification indices, R the current interval width and q a number of bits.
- descodificar el símbolo codificado, llevándose a cabo las siguientes subetapas:decode the coded symbol, carrying out the following subcaps:
- mapear la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos; ymap the Current interval width with a quantification index from of a plurality of representative quantification indices; Y
- realizar la división de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo, presentando la subetapa de mapeo la aplicación de una operación de enmascaramiento de bits y desplazamiento a una representación binaria/interna del ordenador de la anchura de intervalo actual, concretamente según la siguiente regla de cálculo q_index = (R >> q) & Qmask, representando Qmask una máscara de bits elegida de manera adecuada en función del número de índices de cuantificación representativos, R la anchura de intervalo actual y q un número de bits.perform the interval division by access, using the index of quantification and probability index, to a division table interval, to obtain a subinterval width value, presenting the mapping sub-stage the application of an operation of bit masking and moving to a representation binary / internal computer of the current interval width, specifically according to the following calculation rule q_index = (R >> q) & Qmask, representing Qmask a bit mask appropriately chosen based on the number of indices of Representative quantification, R the current interval width and q A number of bits
- codificar el símbolo que va a codificarse, llevándose a cabo las siguientes subetapas:encode the symbol to be encoded, carrying out the following subcaps:
- mapear la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos; ymap the Current interval width with a quantification index from of a plurality of representative quantification indices; Y
- realizar la subdivisión de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo, presentando la subetapa de mapeo la aplicación de una operación de enmascaramiento de bits y desplazamiento a una representación binaria/interna del ordenador de la anchura de intervalo actual, concretamente según la siguiente regla de cálculo q_index= (R >> q) & Qmask, representando Qmask una máscara de bits elegida de manera adecuada en función del número de índices de cuantificación representativos, R la anchura de intervalo actual y q un número de bits.perform the interval subdivision through access, using the index of quantification and probability index, to a division table interval, to obtain a subinterval width value, presenting the mapping sub-stage the application of an operation of bit masking and moving to a representation binary / internal computer of the current interval width, specifically according to the following calculation rule q_index = (R >> q) & Qmask, representing Qmask a bit mask appropriately chosen based on the number of indices of Representative quantification, R the current interval width and q A number of bits
- descodificar el símbolo codificado, llevándose a cabo las siguientes subetapas:decode the coded symbol, carrying out the following subcaps:
- mapear la anchura de intervalo actual con un índice de cuantificación a partir de una pluralidad de índices de cuantificación representativos; ymap the Current interval width with a quantification index from of a plurality of representative quantification indices; Y
- realizar la división de intervalo mediante el acceso, utilizando el índice de cuantificación y el índice de probabilidad, a una tabla de división de intervalo, para obtener un valor de anchura de subintervalo, presentando la subetapa de mapeo la aplicación de una operación de enmascaramiento de bits y desplazamiento a una representación binaria/interna del ordenador de la anchura de intervalo actual, concretamente según la siguiente regla de cálculo q_index = (R >> q) & Qmask, representando Qmask una máscara de bits elegida de manera adecuada en función del número de índices de cuantificación representativos, R la anchura de intervalo actual y q un número de bits.perform the interval division by access, using the index of quantification and probability index, to a division table interval, to obtain a subinterval width value, presenting the mapping sub-stage the application of an operation of bit masking and moving to a representation binary / internal computer of the current interval width, specifically according to the following calculation rule q_index = (R >> q) & Qmask, representing Qmask a bit mask appropriately chosen based on the number of indices of Representative quantification, R the current interval width and q A number of bits
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 |
---|---|
ES2316749T3 true ES2316749T3 (en) | 2009-04-16 |
Family
ID=29285283
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03725141T Expired - Lifetime ES2316749T3 (en) | 2002-05-02 | 2003-05-02 | PROCEDURE AND PROVISION FOR THE CODIFICATION AND ARITHMETIC DECODIFICATION OF BINARY STATES AS WELL AS A CORRESPONDING COMPUTER PROGRAM AND LEGIBLE STORAGE MEDIA BY CORRESPONDING COMPUTER. |
ES08020010.8T Expired - Lifetime ES2442215T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding device and procedure for binary states and corresponding computer program and corresponding computer-readable storage media |
ES10185209.3T Expired - Lifetime ES2442190T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding method and device using a plurality of query tables |
ES08020113.0T Expired - Lifetime ES2442173T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding procedure and device using several tables |
ES10185219.2T Expired - Lifetime ES2439996T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding device and procedure for binary states and corresponding computer program and corresponding computer-readable storage media |
ES10185215.0T Expired - Lifetime ES2442174T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding procedure and device using several query tables |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES08020010.8T Expired - Lifetime ES2442215T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding device and procedure for binary states and corresponding computer program and corresponding computer-readable storage media |
ES10185209.3T Expired - Lifetime ES2442190T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding method and device using a plurality of query tables |
ES08020113.0T Expired - Lifetime ES2442173T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding procedure and device using several tables |
ES10185219.2T Expired - Lifetime ES2439996T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding device and procedure for binary states and corresponding computer program and corresponding computer-readable storage media |
ES10185215.0T Expired - Lifetime ES2442174T3 (en) | 2002-05-02 | 2003-05-02 | Arithmetic coding and decoding procedure and device using several query tables |
Country Status (12)
Country | Link |
---|---|
US (1) | US6943710B2 (en) |
EP (7) | EP2037412B1 (en) |
JP (3) | JP3989485B2 (en) |
KR (1) | KR100733795B1 (en) |
AT (1) | ATE421802T1 (en) |
DE (1) | DE50311129D1 (en) |
DK (6) | DK2068448T3 (en) |
ES (6) | ES2316749T3 (en) |
HK (5) | HK1127525A1 (en) |
PT (6) | PT2037412E (en) |
SI (1) | SI1550219T1 (en) |
WO (1) | WO2003094355A2 (en) |
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 (en) * | 2005-04-04 | 2007-03-12 | 한국과학기술원 | Arithmetic decoding method and apparatus using the same |
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 (en) * | 2006-03-07 | 2010-09-22 | 国立大学法人徳島大学 | Arithmetic coding apparatus, arithmetic coding method, arithmetic coding program, and computer-readable recording medium storing the program |
US7262722B1 (en) * | 2006-06-26 | 2007-08-28 | Intel Corporation | Hardware-based CABAC decoder with parallel binary arithmetic decoding |
JP4865509B2 (en) * | 2006-11-01 | 2012-02-01 | キヤノン株式会社 | Decoding device and decoding method |
JP4717780B2 (en) | 2006-11-01 | 2011-07-06 | キヤノン株式会社 | Encoding apparatus and control method thereof |
JP4785706B2 (en) * | 2006-11-01 | 2011-10-05 | キヤノン株式会社 | Decoding device and decoding method |
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 (en) * | 2007-08-20 | 2009-12-16 | Nttエレクトロニクス株式会社 | Binary arithmetic coding device |
US20090231173A1 (en) * | 2008-03-14 | 2009-09-17 | Daniel Kilbank | System and method for using a microlet-based modem |
JP5133950B2 (en) * | 2009-07-16 | 2013-01-30 | 日本電信電話株式会社 | Context adaptive entropy encoding method and apparatus, context adaptive entropy decoding method and apparatus, and program thereof |
JP5047244B2 (en) * | 2009-09-01 | 2012-10-10 | 日本電信電話株式会社 | Context adaptive entropy encoding method and apparatus, context adaptive entropy decoding method and apparatus, and program thereof |
KR101615384B1 (en) * | 2010-04-05 | 2016-04-25 | 삼성전자주식회사 | Apparatus and method for channel encoding in a communication system |
PL2559166T3 (en) | 2010-04-13 | 2018-04-30 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Probability interval partioning encoder and decoder |
JP4936574B2 (en) * | 2011-03-02 | 2012-05-23 | キヤノン株式会社 | Encoding apparatus and control method thereof |
JP5925884B2 (en) | 2011-06-16 | 2016-05-25 | ジーイー ビデオ コンプレッション エルエルシー | Context initialization in entropy coding |
UA114674C2 (en) | 2011-07-15 | 2017-07-10 | ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі | CONTEXT INITIALIZATION IN ENTHROPIC CODING |
US9871537B2 (en) | 2011-10-27 | 2018-01-16 | Qualcomm Incorporated | Mapping states in binary arithmetic coder for video coding |
EP2810371B1 (en) * | 2012-01-30 | 2017-12-20 | Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. | Binary arithmetic coding scheme |
KR101910376B1 (en) | 2014-06-29 | 2019-01-04 | 엘지전자 주식회사 | Method and apparatus for performing arithmetic coding on basis of concatenated rom-ram table |
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 (en) * | 1993-03-29 | 1995-06-02 | Digital Equipment Int | Device for updating the code value in the arithmetic coding method. |
US5912636A (en) * | 1996-09-26 | 1999-06-15 | Ricoh Company, Ltd. | Apparatus and method for performing m-ary finite state machine entropy coding |
JP3367370B2 (en) * | 1997-03-14 | 2003-01-14 | 三菱電機株式会社 | Adaptive coding method |
US6757436B2 (en) * | 1997-06-19 | 2004-06-29 | Electroncs For Imaging, Inc. | Methods and apparatus for data compression based on modeling schemes |
US5970174A (en) * | 1997-06-19 | 1999-10-19 | Electronics For Imaging | Method and apparatus for data compression and gray value estimation |
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 WO PCT/EP2003/004654 patent/WO2003094355A2/en active Application Filing
- 2003-05-02 PT PT80200108T patent/PT2037412E/en unknown
- 2003-05-02 PT PT80201130T patent/PT2068448E/en unknown
- 2003-05-02 DK DK08020113.0T patent/DK2068448T3/en active
- 2003-05-02 PT PT03725141T patent/PT1550219E/en unknown
- 2003-05-02 EP EP08020010.8A patent/EP2037412B1/en not_active Expired - Lifetime
- 2003-05-02 ES ES03725141T patent/ES2316749T3/en not_active Expired - Lifetime
- 2003-05-02 EP EP03725141A patent/EP1550219B1/en not_active Expired - Lifetime
- 2003-05-02 DK DK08020010.8T patent/DK2037412T3/en active
- 2003-05-02 ES ES08020010.8T patent/ES2442215T3/en not_active Expired - Lifetime
- 2003-05-02 PT PT101852150T patent/PT2296282E/en unknown
- 2003-05-02 EP EP05009246A patent/EP1571755A3/en not_active Withdrawn
- 2003-05-02 ES ES10185209.3T patent/ES2442190T3/en not_active Expired - Lifetime
- 2003-05-02 EP EP08020113.0A patent/EP2068448B1/en not_active Expired - Lifetime
- 2003-05-02 EP EP10185209.3A patent/EP2326013B1/en not_active Expired - Lifetime
- 2003-05-02 KR KR1020047017090A patent/KR100733795B1/en active IP Right Grant
- 2003-05-02 EP EP10185215.0A patent/EP2296282B1/en not_active Expired - Lifetime
- 2003-05-02 PT PT101852093T patent/PT2326013E/en unknown
- 2003-05-02 DK DK10185215.0T patent/DK2296282T3/en active
- 2003-05-02 PT PT101852192T patent/PT2290612E/en unknown
- 2003-05-02 ES ES08020113.0T patent/ES2442173T3/en not_active Expired - Lifetime
- 2003-05-02 SI SI200331516T patent/SI1550219T1/en unknown
- 2003-05-02 ES ES10185219.2T patent/ES2439996T3/en not_active Expired - Lifetime
- 2003-05-02 DK DK10185219.2T patent/DK2290612T3/en active
- 2003-05-02 DK DK03725141T patent/DK1550219T3/en active
- 2003-05-02 AT AT03725141T patent/ATE421802T1/en active
- 2003-05-02 JP JP2004502472A patent/JP3989485B2/en not_active Expired - Lifetime
- 2003-05-02 ES ES10185215.0T patent/ES2442174T3/en not_active Expired - Lifetime
- 2003-05-02 DK DK10185209.3T patent/DK2326013T3/en active
- 2003-05-02 EP EP10185219.2A patent/EP2290612B1/en not_active Expired - Lifetime
- 2003-05-02 DE DE50311129T patent/DE50311129D1/en 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/en not_active Expired - Lifetime
-
2007
- 2007-11-01 JP JP2007284653A patent/JP4709821B2/en not_active Expired - Lifetime
-
2009
- 2009-06-10 HK HK09105184.6A patent/HK1127525A1/en not_active IP Right Cessation
- 2009-06-10 HK HK11108764.4A patent/HK1155000A1/en not_active IP Right Cessation
- 2009-10-02 HK HK09109109.0A patent/HK1130372A1/en not_active IP Right Cessation
-
2011
- 2011-08-15 HK HK11108520.9A patent/HK1154430A1/en not_active IP Right Cessation
- 2011-11-08 HK HK11112033.1A patent/HK1157948A1/en not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2316749T3 (en) | PROCEDURE AND PROVISION FOR THE CODIFICATION AND ARITHMETIC DECODIFICATION OF BINARY STATES AS WELL AS A CORRESPONDING COMPUTER PROGRAM AND LEGIBLE STORAGE MEDIA BY CORRESPONDING COMPUTER. | |
Núñez et al. | Gbit/s lossless data compression hardware | |
KR102588145B1 (en) | Entropy encoding and decoding scheme | |
Salomon | Variable-length codes for data compression | |
US5973626A (en) | Byte-based prefix encoding | |
US9094039B2 (en) | Efficient deflate decompression | |
JP4179640B2 (en) | Arithmetic coding and decoding of information signals | |
US20110128167A1 (en) | Unicode-compatible dictionary compression | |
US5708430A (en) | High speed variable length code decoding apparatus | |
Hsieh et al. | An adaptive multialphabet arithmetic coding for video compression | |
Li et al. | Lossless compression algorithms | |
Sun et al. | Lossless Coders | |
Bloom | New Techniques in Context Modeling and Arithmetic Encoding. | |
Aulí-Llinàs | Fast and efficient entropy coding architectures for massive data compression. Technologies 2023, 1, 0 | |
Mahapatra et al. | Parallel implementation of a multialphabet arithmetic coding algorithm | |
Ribeiro | Data Compression Algorithms in FPGAs | |
Kasera et al. | A survey of lossless data compression techniques | |
Salomon et al. | Dictionary methods | |
Reddy et al. | LosslessGrayscaleImage Compression Using Intra Pixel Redundancy | |
Srivastava et al. | Data Compression Algorithms and Techniques | |
Lelewer | Data compression on machines with limited memory | |
JPH11163737A (en) | High speed device for coding and decoding information source | |
KR20050037307A (en) | Huffman decoding method based on n-tree searching and apparatus thereof | |
KR20060116384A (en) | Method and apparatus for huffman decoding by using balanced binary search tree |