WO2004049724A1 - Jbig arithmetic encoder - Google Patents

Jbig arithmetic encoder Download PDF

Info

Publication number
WO2004049724A1
WO2004049724A1 PCT/FR2003/050124 FR0350124W WO2004049724A1 WO 2004049724 A1 WO2004049724 A1 WO 2004049724A1 FR 0350124 W FR0350124 W FR 0350124W WO 2004049724 A1 WO2004049724 A1 WO 2004049724A1
Authority
WO
WIPO (PCT)
Prior art keywords
register
value
arithmetic coding
coding
interval
Prior art date
Application number
PCT/FR2003/050124
Other languages
French (fr)
Inventor
Jean-Paul Verniere
Philippe Gautier
Bruno Paucard
David Fresneau
Original Assignee
Tak'asic
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tak'asic filed Critical Tak'asic
Priority to AU2003295064A priority Critical patent/AU2003295064A1/en
Publication of WO2004049724A1 publication Critical patent/WO2004049724A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code

Definitions

  • the present invention relates to the field of digital image coding, in particular lossless image coding, one of the examples of which is the JBIG standard.
  • the present invention relates more particularly to the part of coding called arithmetic coding and to the coding method implemented.
  • a method of high speed data computation and data compression includes an input module for receiving an input data stream from an input port.
  • An encoder is coupled to an input module and performs arithmetic coding to encode the input data stream.
  • An output module provides a stream of encoded data from the encoder to an output port.
  • the encoder performs a combination of parallel and serial calculation steps on the data in the input data stream. The result is that the computation cycle time for the encoding process is reduced significantly.
  • This prior art method only concerns the part specific to arithmetic coding. This coding is appended to complementary processes which can also be parallelized. This document does not concern these annexed parts.
  • the present invention intends to remedy the drawbacks of the prior art by proposing a coding method comprising a particularly optimized renormalization step.
  • the invention relates in its most general sense to a method of arithmetic coding by a hardware architecture comprising in particular an A register containing the size of the current interval, a C register containing the lower bound of the current interval and a register CX containing the context necessary for arithmetic coding, and where the value contained in said register A is renormalized if it is less than a predefined value characterized in that said renormalization consists in
  • said predefined value is 0x8000.
  • said integers used to calculate the Ai are multiples of 2.
  • the method according to the invention further comprises a step consisting in calculating the new value of the most probable symbol (MPS) of the register CX by performing an “EXCLUSIVE OR” operation on the following two values:
  • FIG. 2 illustrates the process according to the invention.
  • a standard arithmetic coder includes a first step of interval subdivision.
  • the interval subdivision according to probability and recursively is the basis of arithmetic coding.
  • a sequence of input symbols is associated with a real number x over the interval (0,1) where the bracket at the end of an interval means that the extreme value is included and the parenthesis means that the value extreme is excluded.
  • the portion of (0,1) in which it is known that x is located after coding an initial sequence of symbols is called the current coding interval.
  • the current coding interval is divided into two sub-intervals, the sizes of which are proportional to the relative probabilities of the occurrences of each value for the symbol.
  • the new current coding interval is the subinterval associated with the value actually assigned to the symbol.
  • the knowledge of the current coding interval is contained in a variable giving its size and a variable giving its base (smallest value). The output flow is obtained by the variable giving the base.
  • the subinterval for the symbol le least likely (LPS) is placed above the sub-range for the most likely symbol (MPS).
  • MPS most likely symbol
  • the decoding process relates to the question of determining, at each decision, which subinterval is pointed to by the coded chain. This is also done recursively using the same interval subdivision process as in the encoder. Each time a decision is decoded, the decoder subtracts from the code stream each interval added by the coder. Thus, the code stream in the decoder is a pointer to the current interval relative to the base of the current interval. Since the coding process involves the addition of binary fractions rather than the concatenation of entire code words, the most likely binary decisions can often be coded at a cost of less than one bit per decision.
  • a register contains the size of the current coding interval and this register is normalized so that it is always contained in the interval [0x8000,0x10000] where the prefix "Ox" characterizes a hexadecimal integer. If the result of the encoding of a symbol A temporarily falls below the value 0x8000, the said result is doubled the number of times necessary for it to be greater than or equal to 0x8000. These doublings are called "renormalizations".
  • a second register C contains the bits of the code stream corresponding to the preceding interval decisions. The C register is also doubled each time the A register is doubled. To avoid congestion in the C register, a byte is periodically removed, said byte being composed of the most significant bits of C and placed in an external buffer memory. The content of this buffer cannot be sent without any carryover carryovers being made.
  • the method according to the invention uses an architecture comprising a plurality of calculation modules placed in parallel with respect to the incoming data stream.
  • the value of register A is supplied as input to each of said modules, simultaneously.
  • Each calculation module performs the calculation for which it is programmed and provides a result Ai.
  • the operations performed by the calculation modules are preferably a multiplication of the register A by an integer.
  • each calculation module performs a multiplication of the register A by a multiple of 2.
  • N values Ai A standard logical operator makes it possible to determine what is the minimum value Ai, greater than threshold predefined by the user.
  • Said threshold is “0x8000” in the case of a JBIG arithmetic coding.
  • the determined value Ai is assigned to the new register A.
  • the operation carried out on register A by the module which provided the chosen value Ai is carried out again on said register C.
  • the method according to the invention uses a CX register which contains the context necessary for arithmetic coding.
  • ST [CX] This state is a value between 0 and 113 and is coded on seven bits.
  • Each state ST [CX] of the register CX corresponds to a switching value SWTCH [ST [CX]]. If S TCH [ST [CX]] is 1, MPS [CX] is inverted.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

The invention concerns an arithmetic encoding method for a hardware architecture comprising a register A containing the size of the current interval, a register C containing the lower boundary of the current interval and a register CX containing the context required for arithmetic encoding, and wherein the value contained in said register A is renormalized if it is less than a predefined value. The method is characterized in that said renormalization consists in: calculating in parallel N Ai values, each value resulting from multiplying the value contained in register A by an integer; determining the Ai value higher than said predefined value and not greater than all the Ai values higher than said predefined value; recording the Ai value determined at the preceding step in register A.

Description

CODEUR ARITHMETIQUE JBIG JBIG ARITHMETIC ENCODER
La présente invention se rapporte au domaine du codage d'image numérique, en particulier du codage d'image sans pertes, dont un des exemples est la norme JBIG.The present invention relates to the field of digital image coding, in particular lossless image coding, one of the examples of which is the JBIG standard.
La présente invention se rapporte plus particulièrement à la partie du codage appelée codage arithmétique et au procédé de codage mis en œuvre.The present invention relates more particularly to the part of coding called arithmetic coding and to the coding method implemented.
L'art antérieur connaît déjà, par la demande de brevet américain US 5668737, un procédé de codage arithmétique parallélisé permettant de réduire le temps de codage. Un procédé de calcul de données à haute vitesse et de compression de données comprend un module d'entrée pour recevoir un flux de données d'entrée d'un port d'entrée. Un encodeur est couplé à un module d' entrée et effectue un codage arithmétique pour encoder le flux de données d'entrée. Un module de sortie fournit un flux de données encodees de l'encodeur à un port de sortie. Pendant le processus d'encodage, l'encodeur effectue une combinaison d'étapes de calcul en parallèle et en série sur les données du flux de données d'entrée. Le résultat est que le temps de cycle de calcul pour le processus d'encodage est réduit de façon significative. Ce procédé de l'art antérieur ne concerne que la partie spécifique au codage arithmétique. Ce codage est annexé de processus complémentaires qui peuvent également être parallélisés . Ce document ne concerne pas ces parties annexes .The prior art already knows, by American patent application US 5668737, a parallelized arithmetic coding method making it possible to reduce the coding time. A method of high speed data computation and data compression includes an input module for receiving an input data stream from an input port. An encoder is coupled to an input module and performs arithmetic coding to encode the input data stream. An output module provides a stream of encoded data from the encoder to an output port. During the encoding process, the encoder performs a combination of parallel and serial calculation steps on the data in the input data stream. The result is that the computation cycle time for the encoding process is reduced significantly. This prior art method only concerns the part specific to arithmetic coding. This coding is appended to complementary processes which can also be parallelized. This document does not concern these annexed parts.
L'art antérieur connaît également, par le document « Parallel design of arithmetic coding » IEEE PROCEEDINGS : COMPUTERS AND DIGITAL TECHNIQUES (JIANG et AL.), une description et une implémentation d'une architecture parallèle pour le codage arithmétique. Les symboles d'entrée sont divisés en groupes et traités en parallèle, ce qui augmente la vitesse de traitement du codage. Ce codage parallèle est aussi implémenté sur VLSI en utilisant une technique VHDL. Ce document concerne bien le codage arithmétique et son traitement parallèle. Cependant, il ne mentionne à aucun moment l'étape nécessaire de renormalisation des registres de taille d'intervalle qui est l'objet de la présente invention. Seules les données symboles sont traitées en parallèle.The prior art also knows, by the document “Parallel design of arithmetic coding” IEEE PROCEEDINGS: COMPUTERS AND DIGITAL TECHNIQUES (JIANG et AL.), A description and an implementation of an architecture parallel for arithmetic coding. The input symbols are divided into groups and processed in parallel, which increases the processing speed of the coding. This parallel coding is also implemented on VLSI using a VHDL technique. This document is concerned with arithmetic coding and its parallel processing. However, it does not at any time mention the necessary step of renormalization of the interval size registers which is the object of the present invention. Only symbol data is processed in parallel.
L'art antérieur connaît également, par le document « A parallel architecture for arithmetic coding and its VLSI implementation » CIRCUITS AND SYSTEM 1996 (HORNG-YEONG LEE et AL.), un algorithme de traitement parallèle pour l' implementation en temps réel du codage arithmétique. L' implementation comprend une matrice de traitement parallèle mise sous forme d'arbre. A chaque cycle, un groupe de symboles d'entrée peut être codé, ce qui augmente la vitesse du codage arithmétique. Ce document concerne bien le codage arithmétique et son traitement parallèle. Il mentionne dans la troisième partie la . notion de renormalisation des intervalles, son principe et son utilité. Il donne par ailleurs l'algorithme de renormalisation pour les tailles d'intervalle. Or, cet algorithme fait un traitement itératif de l'intervalle à renormaliser et n'est pas traité de façon parallèle. Le traitement en parallèle de ce type de tâche annexe au codage est par ailleurs l'objet essentiel de la présente invention.The prior art also knows, by the document "A parallel architecture for arithmetic coding and its VLSI implementation" CIRCUITS AND SYSTEM 1996 (HORNG-YEONG LEE et AL.), A parallel processing algorithm for the real-time implementation of coding arithmetic. The implementation includes a parallel processing matrix in the form of a tree. At each cycle, a group of input symbols can be coded, which increases the speed of arithmetic coding. This document is concerned with arithmetic coding and its parallel processing. He mentions in the third part. notion of renormalization of intervals, its principle and its usefulness. It also gives the renormalization algorithm for the interval sizes. However, this algorithm does iterative processing of the interval to be renormalized and is not processed in parallel. The parallel processing of this type of task annexed to the coding is moreover the essential object of the present invention.
La présente invention entend remédier aux inconvénients de l'art antérieur en proposant un procédé de codage comportant une étape de renormalisation particulièrement optimisée. A cet effet, l'invention concerne dans son acception la plus générale un procédé de codage arithmétique par une architecture matérielle comprenant notamment un registre A contenant la taille de l'intervalle courant, un registre C contenant la borne inférieure de l' intervalle courant et un registre CX contenant le contexte nécessaire au codage arithmétique, et où la valeur contenue dans ledit registre A est renormalisée si elle est inférieure à une valeur prédéfinie caractérisé en ce que ladite renormalisation consiste àThe present invention intends to remedy the drawbacks of the prior art by proposing a coding method comprising a particularly optimized renormalization step. To this end, the invention relates in its most general sense to a method of arithmetic coding by a hardware architecture comprising in particular an A register containing the size of the current interval, a C register containing the lower bound of the current interval and a register CX containing the context necessary for arithmetic coding, and where the value contained in said register A is renormalized if it is less than a predefined value characterized in that said renormalization consists in
• calculer en parallèle N valeurs Ai, chaque valeur résultant de la multiplication de la valeur contenue dans le registre A par un entier ; • déterminer la valeur Ai supérieure à ladite valeur prédéfinie et inférieure ou égale à toutes les valeurs Ai supérieures à ladite valeur prédéfinie ;• calculate in parallel N values Ai, each value resulting from the multiplication of the value contained in register A by an integer; • determining the value Ai greater than said predefined value and less than or equal to all the values Ai greater than said predefined value;
• enregistrer la valeur Ai déterminée à l'étape précédente dans le registre A.• record the value Ai determined in the previous step in register A.
De préférence, ladite valeur prédéfinie est 0x8000. Avantageusement, lesdits entiers utilisés pour calculer les Ai sont des multiples croissants de 2.Preferably, said predefined value is 0x8000. Advantageously, said integers used to calculate the Ai are multiples of 2.
Selon une variante particulière, le procédé conforme à l'invention comporte en outre une étape consistant calculer la nouvelle valeur du symbole le plus probable (MPS) du registre CX en effectuant une opération de « OU EXCLUSIF » sur les deux valeurs suivantes :According to a particular variant, the method according to the invention further comprises a step consisting in calculating the new value of the most probable symbol (MPS) of the register CX by performing an “EXCLUSIVE OR” operation on the following two values:
• la valeur de commutation correspondant à l'état du registre CX, et• the switching value corresponding to the state of the CX register, and
• la valeur du symbole le plus probable (MPS) du registre CX. On comprendra mieux la présente invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées : - La figure 1 représente le mécanisme de doublement des registres A et C ;• the value of the most probable symbol (MPS) of the CX register. The present invention will be better understood by means of the description, given below for purely explanatory purposes, of an embodiment of the invention, with reference to the appended figures: - Figure 1 shows the mechanism for doubling the registers A and C;
La figure 2 illustre le procédé conforme à l'invention.Figure 2 illustrates the process according to the invention.
Un codeur arithmétique standard comporte une première étape de subdivision d'intervalle.A standard arithmetic coder includes a first step of interval subdivision.
La subdivision d'intervalle selon la probabilité et de manière récursive est la base du codage arithmétique. Conceptuellement, une séquence de symboles d'entrée est associée à un nombre réel x sur l'intervalle (0,1) où le crochet à l'extrémité d'un intervalle signifie que la valeur extrême est incluse et la parenthèse signifie que la valeur extrême est excluse. On ne transmet alors plus la séquence originale mais l'expression binaire de x. La portion de (0,1) dans laquelle on sait que x est situé après avoir codé une séquence initiale de symboles est appelée intervalle de codage courant. Pour chaque entrée binaire, l'intervalle de codage courant est divisé en deux sous-intervalles dont les tailles sont proportionnelles aux probabilités relatives des occurrences de chaque valeur pour le symbole. Le nouvel intervalle de codage courant est le sous-intervalle associé à la valeur effectivement attribuée au symbole. Dans un codeur, la connaissance de l'intervalle de codage courant est contenue dans une variable donnant sa taille et une variable donnant sa base (plus petite valeur) . Le flux de sortie est obtenu par la variable donnant la base.The interval subdivision according to probability and recursively is the basis of arithmetic coding. Conceptually, a sequence of input symbols is associated with a real number x over the interval (0,1) where the bracket at the end of an interval means that the extreme value is included and the parenthesis means that the value extreme is excluded. We no longer transmit the original sequence but the binary expression of x. The portion of (0,1) in which it is known that x is located after coding an initial sequence of symbols is called the current coding interval. For each binary input, the current coding interval is divided into two sub-intervals, the sizes of which are proportional to the relative probabilities of the occurrences of each value for the symbol. The new current coding interval is the subinterval associated with the value actually assigned to the symbol. In an encoder, the knowledge of the current coding interval is contained in a variable giving its size and a variable giving its base (smallest value). The output flow is obtained by the variable giving the base.
Dans la partition de l'intervalle courant en deux sous-intervalles, le sous-intervalle pour le symbole le moins probable (LPS) est placé au-dessus du sous-intervalle pour le symbole le plus probable (MPS) . Ainsi, quand le LPS est codé, on ajoute le sous-intervalle MPS à la base. Cette convention de codage requiert que les symboles soient reconnus comme soit MPS, soit LPS et non comme 0 ou 1. Par conséquent, la taille de l'intervalle LPS et la signification du MPS pour chaque symbole doivent être connues pour coder ledit symbole.In the partition of the current interval into two subintervals, the subinterval for the symbol le least likely (LPS) is placed above the sub-range for the most likely symbol (MPS). Thus, when the LPS is coded, the MPS subinterval is added to the base. This coding convention requires that the symbols be recognized as either MPS or LPS and not as 0 or 1. Therefore, the size of the LPS interval and the meaning of the MPS for each symbol must be known to encode said symbol.
Comme le flux de code pointe toujours sur un nombre réel dans l'intervalle de codage courant, le processus de décodage se rapporte à la question de déterminer, à chaque décision, quel sous-intervalle est pointé par la chaîne codée. Ceci est également fait récursivement en utilisant le même processus de subdivision d' intervalle que dans le codeur. Chaque fois qu'une décision est décodée, le décodeur soustrait au flux de code chaque intervalle ajouté par le codeur. Ainsi, le flux de code dans le décodeur est un pointeur sur l'intervalle courant relatif à la base de l'intervalle courant. Comme le processus de codage implique l'addition de fractions binaires plutôt que la concaténation de mots de code entiers, les décisions binaires les plus probables peuvent souvent être codées à un coût inférieur à un bit par décision. II est possible de réaliser ces opérations de codage en utilisant l'arithmétique des entiers à précision fixe. Un registre A contient la taille de l'intervalle de codage courant et ce registre est normalisé de telle sorte qu' il est toujours contenu dans l'intervalle [0x8000,0x10000] où le préfixe « Ox » caractérise un entier hexadécimal. Si le résultat du codage d'un symbole A tombe temporairement sous la valeur 0x8000, on double ledit résultat le nombre de fois nécessaire pour qu'il soit supérieur ou égal à 0x8000. Ces doublements sont appelés « renormalisations ». Un deuxième registre C contient les bits du flux de code correspondant aux décisions d' intervalle précédentes . Le registre C est aussi doublé chaque fois que le registre A est doublé. Pour éviter une congestion du registre C, un octet est périodiquement retiré, ledit octet étant composé des bits de plus grands poids de C et placé dans une mémoire tampon extérieure. Le contenu de cette mémoire tampon ne peut être envoyé sans que d'éventuels reports de retenue ne soient effectués.Since the code stream always points to a real number in the current coding interval, the decoding process relates to the question of determining, at each decision, which subinterval is pointed to by the coded chain. This is also done recursively using the same interval subdivision process as in the encoder. Each time a decision is decoded, the decoder subtracts from the code stream each interval added by the coder. Thus, the code stream in the decoder is a pointer to the current interval relative to the base of the current interval. Since the coding process involves the addition of binary fractions rather than the concatenation of entire code words, the most likely binary decisions can often be coded at a cost of less than one bit per decision. It is possible to carry out these coding operations using the arithmetic of integers with fixed precision. A register contains the size of the current coding interval and this register is normalized so that it is always contained in the interval [0x8000,0x10000] where the prefix "Ox" characterizes a hexadecimal integer. If the result of the encoding of a symbol A temporarily falls below the value 0x8000, the said result is doubled the number of times necessary for it to be greater than or equal to 0x8000. These doublings are called "renormalizations". A second register C contains the bits of the code stream corresponding to the preceding interval decisions. The C register is also doubled each time the A register is doubled. To avoid congestion in the C register, a byte is periodically removed, said byte being composed of the most significant bits of C and placed in an external buffer memory. The content of this buffer cannot be sent without any carryover carryovers being made.
Le mécanisme de doublement des registres A et C utilisé habituellement est illustré Figure 1. Dans ce mécanisme habituel, il convient de répéter la boucle autant de fois que nécessaire, ce qui peut s'avérer gourmand en temps, notamment lorsque l'intervalle choisi au pas précédent est celui correspondant au LPS, car il est alors de taille réduite par rapport à l'intervalle qui le précédait. Afin d'éviter le coût de temps, qui peut être important et qui est surtout non maîtrisé, le procédé selon l'invention propose de paralleliser cette étape afin de garantir un nombre de coups d'horloge maximal pour la réaliser.The doubling mechanism of registers A and C usually used is illustrated in Figure 1. In this usual mechanism, the loop should be repeated as many times as necessary, which can be time-consuming, especially when the interval chosen at previous step is that corresponding to the LPS, because it is then of reduced size compared to the interval which preceded it. In order to avoid the cost of time, which can be significant and which is above all uncontrolled, the method according to the invention proposes to parallelize this step in order to guarantee a maximum number of clock strokes for carrying it out.
Le procédé selon l'invention, illustré figure 2, utilise une architecture comprenant une pluralité de modules de calcul placés en parallèle par rapport au flux de données entrant. La valeur du registre A est fournie en entrée de chacun desdits modules, simultanément. Chaque module de calcul réalise le calcul pour lequel il est programmé et fournit un résultat Ai. Les opérations réalisées par les modules de calcul sont de préférence une multiplication du registre A par un entier. Dans le cas d'un codage arithmétique JBIG, chaque module de calcul réalise une multiplication du registre A par un multiple de 2. On obtient ainsi N valeurs Ai. Un opérateur logique standard permet de déterminer quelle est la valeur Ai minimale, supérieure à seuil prédéfini par l'utilisateur. Ledit seuil est « 0x8000 » dans le cas d'un codage arithmétique JBIG. La valeur Ai déterminée est affectée au nouveau registre A. L'opération réalisée sur le registre A par le module qui a fourni la valeur Ai choisie est réalisée à nouveau sur ledit registre C.The method according to the invention, illustrated in FIG. 2, uses an architecture comprising a plurality of calculation modules placed in parallel with respect to the incoming data stream. The value of register A is supplied as input to each of said modules, simultaneously. Each calculation module performs the calculation for which it is programmed and provides a result Ai. The operations performed by the calculation modules are preferably a multiplication of the register A by an integer. In the case of a JBIG arithmetic coding, each calculation module performs a multiplication of the register A by a multiple of 2. We thus obtain N values Ai. A standard logical operator makes it possible to determine what is the minimum value Ai, greater than threshold predefined by the user. Said threshold is “0x8000” in the case of a JBIG arithmetic coding. The determined value Ai is assigned to the new register A. The operation carried out on register A by the module which provided the chosen value Ai is carried out again on said register C.
Le procédé selon l'invention utilise un registre CX qui contient le contexte nécessaire au codage arithmétique. On définit alors l'état du registre : ST[CX]. Cet état est une valeur comprise entre 0 et 113 et est codée sur sept bits. A chaque état ST[CX] du registre CX correspond une valeur de commutation SWTCH[ST[CX]] . Si S TCH[ST[CX]] vaut 1, MPS[CX] est inversé.The method according to the invention uses a CX register which contains the context necessary for arithmetic coding. We then define the state of the register: ST [CX]. This state is a value between 0 and 113 and is coded on seven bits. Each state ST [CX] of the register CX corresponds to a switching value SWTCH [ST [CX]]. If S TCH [ST [CX]] is 1, MPS [CX] is inverted.
L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l'invention sans pour autant sortir du cadre du brevet. The invention is described in the foregoing by way of example. It is understood that a person skilled in the art is able to carry out different variants of the invention without going beyond the scope of the patent.

Claims

REVENDICATIONS
1. Procédé de codage arithmétique par une architecture matérielle comprenant notamment un registre A contenant la taille de l'intervalle courant, un registre C contenant la borne inférieure de l'intervalle courant et un registre CX contenant le contexte nécessaire au codage arithmétique, et où -la valeur contenue dans ledit registre A est renormalisée si elle est inférieure à une valeur prédéfinie, caractérisé en ce que ladite renormalisation consiste à :1. Method of arithmetic coding by a hardware architecture comprising in particular an A register containing the size of the current interval, a C register containing the lower bound of the current interval and a CX register containing the context necessary for the arithmetic coding, and where the value contained in said register A is renormalized if it is less than a predefined value, characterized in that said renormalization consists in:
• calculer en parallèle N valeurs Ai, chaque valeur résultant de la multiplication de la valeur contenue dans le registre A par un entier ; • déterminer la valeur Ai supérieure à ladite valeur prédéfinie et inférieure ou égale à toutes les valeurs Ai supérieures à ladite valeur prédéfinie ;• calculate in parallel N values Ai, each value resulting from the multiplication of the value contained in register A by an integer; • determining the value Ai greater than said predefined value and less than or equal to all the values Ai greater than said predefined value;
•enregistrer la valeur Ai déterminée à l'étape précédente dans le registre A.• record the value Ai determined in the previous step in register A.
2. Procédé de codage arithmétique selon la revendication 1, caractérisé en ce que ladite valeur prédéfinie est 0x8000.2. Arithmetic coding method according to claim 1, characterized in that said predefined value is 0x8000.
3. Procédé de codage arithmétique selon la revendication 1 ou 2, caractérisé en ce que lesdits entiers utilisés pour calculer les Ai sont des multiples croissants de 2.3. Arithmetic coding method according to claim 1 or 2, characterized in that said integers used to calculate the Ai are multiples of 2.
4. Procédé de codage arithmétique selon l'une des revendications précédentes, caractérisé en ce qu'il comporte en outre une étape consistant calculer la nouvelle valeur du symbole le plus probable (MPS) du registre CX en effectuant une opération de « OU EXCLUSIF » sur les deux valeurs suivantes :4. Method of arithmetic coding according to one of the preceding claims, characterized in that it also comprises a step consisting in calculating the new value of the most probable symbol (MPS) of the register CX by carrying out an "EXCLUSIVE OR" operation on the following two values:
• la valeur de commutation correspondant à l'état du registre CX, et « la valeur du symbole le plus probable (MPS) du registre CX. • the switching value corresponding to the state of the CX register, and “the value of the most probable symbol (MPS) of the CX register.
PCT/FR2003/050124 2002-11-19 2003-11-19 Jbig arithmetic encoder WO2004049724A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003295064A AU2003295064A1 (en) 2002-11-19 2003-11-19 Jbig arithmetic encoder

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0214468A FR2847410B1 (en) 2002-11-19 2002-11-19 ARITHMETIC ENCODER JBIG
FR02/14468 2002-11-19

Publications (1)

Publication Number Publication Date
WO2004049724A1 true WO2004049724A1 (en) 2004-06-10

Family

ID=32187733

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2003/050124 WO2004049724A1 (en) 2002-11-19 2003-11-19 Jbig arithmetic encoder

Country Status (3)

Country Link
AU (1) AU2003295064A1 (en)
FR (1) FR2847410B1 (en)
WO (1) WO2004049724A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668737A (en) * 1995-03-22 1997-09-16 Pixel Magic, Inc. High-speed data processor and coding method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668737A (en) * 1995-03-22 1997-09-16 Pixel Magic, Inc. High-speed data processor and coding method

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"INFORMATION TECHNOLOGY - CODED REPRESENTATION OF PICTURE AND AUDIO INFORMATION - PROGRESSIVE BI-LEVEL IMAGE COMPRESSION", ITU-T RECOMMENDATION T.82, XX, XX, March 1993 (1993-03-01), pages A - B,I-IX,1-71, XP000994688 *
HORNG-YEONG LEE ET AL: "A parallel architecture for arithmetic coding and its VLSI implementation", CIRCUITS AND SYSTEMS, 1996., IEEE 39TH MIDWEST SYMPOSIUM ON AMES, IA, USA 18-21 AUG. 1996, NEW YORK, NY, USA,IEEE, US, 18 August 1996 (1996-08-18), pages 1309 - 1312, XP010222853, ISBN: 0-7803-3636-4 *
JIANG J ET AL: "Parallel design of arithmetic coding", IEE PROCEEDINGS: COMPUTERS AND DIGITAL TECHNIQUES, IEE, GB, vol. 141, no. 6, 1 November 1994 (1994-11-01), pages 327 - 33, XP006001618, ISSN: 1350-2387 *
SLATTERY M J ET AL: "THE QX-CODER", IBM JOURNAL OF RESEARCH AND DEVELOPMENT, IBM CORPORATION, ARMONK, US, vol. 42, no. 6, November 1998 (1998-11-01), pages 767 - 784, XP000952031, ISSN: 0018-8646 *

Also Published As

Publication number Publication date
AU2003295064A1 (en) 2004-06-18
FR2847410B1 (en) 2005-04-15
FR2847410A1 (en) 2004-05-21

Similar Documents

Publication Publication Date Title
EP0484259A1 (en) Binary coding method with uniform switching rate of the binary elements and incrementation/decrementation method therefor
US6819271B2 (en) Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US20020101367A1 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6384761B1 (en) Second and higher order dynamic element matching in multibit digital to analog and analog to digital data converters
EP2002546B1 (en) Improved encoding/decoding of digital signals, especially in vector quantisation with transposition codes
JPH0793586B2 (en) Data compression model selection method and system
CN109587483B (en) Code stream extraction module
CN1379930A (en) Sigma delta modulator
FR2900004A1 (en) ARITHMETIC DECODING METHOD AND DEVICE
FR2903269A1 (en) CABAC TYPE ENCODING DEVICE AND METHOD
Güntürk Approximating a bandlimited function using very coarsely quantized data: improved error estimates in sigma-delta modulation
FR2703483A1 (en) Device for updating the code value in the arithmetic coding method
JP2003124812A (en) Trellis type noise shaping modulator
WO2004049724A1 (en) Jbig arithmetic encoder
EP1972061B1 (en) Cabac-type encoding method
US20030080883A1 (en) Arithmetic decoding of an arithmetically encoded information signal
Andra et al. A multi-bit binary arithmetic coding technique
US20020059351A1 (en) Digital filter
FR2842671A1 (en) ROBUST DIGITAL DATA WITH TRANSMISSION NOISE
WO2008104725A1 (en) Optimised algebraic encoding and decoding method, and related modules and computer software
EP2269141A1 (en) Coding method and device, associated electronic system and recording medium
CN113098519A (en) Pre-adding circuit for expanding single-bit coherent accumulation algorithm
EP0667680A1 (en) Method and device for vectorial quantification of a digital signal, applied in particular for compressing digital pictures
FR2893432A1 (en) Vector quantization method for dynamic element matching process used for e.g. digital to analog converter, involves comparing components in each end space asynchronously to determine sub-space of end space having closest match
EP2507720A1 (en) Method for processing digital data having a butterfly operator for performing an fft/ifft and telecommunications terminal

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP