FR2978005A1 - METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS - Google Patents
METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS Download PDFInfo
- Publication number
- FR2978005A1 FR2978005A1 FR1156344A FR1156344A FR2978005A1 FR 2978005 A1 FR2978005 A1 FR 2978005A1 FR 1156344 A FR1156344 A FR 1156344A FR 1156344 A FR1156344 A FR 1156344A FR 2978005 A1 FR2978005 A1 FR 2978005A1
- Authority
- FR
- France
- Prior art keywords
- updating
- probability
- symbol
- predetermined
- symbols
- 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.)
- Withdrawn
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/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3071—Prediction
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic 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
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
L'invention concerne un procédé de codage d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder, les étapes de : - détermination (C336) d'un contexte (Cj) associé audit symbole courant, parmi un ensemble prédéterminé de contextes (C1, C2,...,Cj,...., CM), - estimation (C337) d'une probabilité p(Cj) d'apparition dudit symbole courant en fonction du contexte déterminé, - codage entropique (C338) dudit symbole courant à l'aide de ladite probabilité estimée. Selon l'invention, un tel procédé comprend en outre les étapes de : - sélection (C339) d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, - mise à jour (C240a) ou C240b)) de ladite probabilité estimée p(Cj) à l'aide de ladite méthode sélectionnée.The invention relates to a method for encoding at least one image capable of containing a plurality of predetermined symbols, comprising, for at least one current symbol to be encoded, the steps of: determining (C336) a context (Cj) associated with said current symbol, among a predetermined set of contexts (C1, C2, ..., Cj, ...., CM), - estimation (C337) of a probability p (Cj) of occurrence of said current symbol in determined context function, - entropy encoding (C338) of said current symbol using said estimated probability. According to the invention, such a method further comprises the steps of: - selecting (C339) a method for updating said estimated probability p (Cj) among at least two different methods, according to a predetermined criterion - updating (C240a) or C240b)) said estimated probability p (Cj) using said selected method.
Description
PROCÉDÉ DE CODAGE ET DÉCODAGE D'IMAGES, DISPOSITIF DE CODAGE ET DÉCODAGE ET PROGRAMMES D'ORDINATEUR CORRESPONDANTS Domaine de l'invention La présente invention se rapporte de manière générale au domaine du traitement d'images, et plus précisément au codage et au décodage d'images numériques et de séquences d'images numériques. L'invention peut ainsi, notamment, s'appliquer au codage vidéo mis en oeuvre dans les codeurs vidéo actuels (MPEG, H.264, etc) ou à venir (ITU- T/VCEG (H.265) ou ISO/MPEG (HVC). FIELD OF THE INVENTION The present invention relates generally to the field of image processing, and more specifically to the coding and decoding of images. digital images and digital image sequences. The invention can thus, in particular, apply to video coding implemented in current (MPEG, H.264, etc.) or future (ITU-T / VCEG (H.265) or ISO / MPEG ( HVC).
Arrière-plan de l'invention Les codeurs vidéo actuels (MPEG, H264, ...) utilisent une représentation par blocs de la séquence vidéo. Les images sont découpées en macro-blocs, chaque macro-bloc est lui-même découpé en blocs et chaque bloc, ou macrobloc, est codé par prédiction intra-images ou inter-images. Ainsi, certaines images sont codées par prédiction spatiale (prédiction intra), tandis que d'autres images sont codées par prédiction temporelle (prédiction inter) par rapport à une ou plusieurs images de référence codées-décodées, à l'aide d'une compensation en mouvement connue par l'homme de l'art. De plus, pour chaque bloc peut être codé un bloc résiduel correspondant au bloc original diminué d'une prédiction. Les coefficients de ce bloc sont quantifiés après une éventuelle transformation, puis codés par un codeur entropique. BACKGROUND OF THE INVENTION Current video encoders (MPEG, H264, ...) use a block representation of the video sequence. The images are divided into macroblocks, each macroblock is itself divided into blocks and each block, or macroblock, is coded by intra-image prediction or inter-image prediction. Thus, some images are coded by spatial prediction (intra prediction), while other images are coded by temporal prediction (inter prediction) with respect to one or more coded-decoded reference images, by means of compensation. in motion known to those skilled in the art. In addition, for each block can be coded a residual block corresponding to the original block minus a prediction. The coefficients of this block are quantized after a possible transformation, then coded by an entropic coder.
La prédiction intra et la prédiction inter nécessitent que certains blocs qui ont été précédemment codés et décodés soient disponibles, de façon à être utilisés, aussi bien au décodeur qu'au codeur, pour prédire le bloc courant. Un exemple schématique d'un tel codage prédictif est représenté à la figure 1A, dans laquelle une image IE est divisée en blocs, un bloc courant B; de cette image étant soumis à un codage prédictif par rapport à un nombre prédéterminé de trois blocs précédemment codés et décodés. Les trois blocs précités comprennent spécifiquement le bloc Bio situé immédiatement à gauche du bloc courant B;, et les deux blocs B3 et B4 situés respectivement immédiatement au-dessus et à droite au-dessus du bloc courant B;. On s'intéresse ici plus particulièrement au codeur entropique qui encode les informations suivant leur ordre d'arrivée. Typiquement un parcours ligne par ligne des blocs est réalisé, de type « raster-scan », comme illustré sur la figure 1A par la référence PRS, en partant du bloc B1 situé en haut à gauche de l'image. Pour chaque bloc, les différentes informations nécessaires à la représentation du bloc (type de bloc, mode de prédiction, coefficients de résidu, ...) sont envoyées séquentiellement au codeur entropique. Intra prediction and inter prediction require that some blocks that have been previously coded and decoded be available, so as to be used, both at the decoder and the encoder, to predict the current block. A schematic example of such a predictive coding is shown in FIG. 1A, in which an IE image is divided into blocks, a current block B; of this image being subjected to a predictive coding with respect to a predetermined number of three previously coded and decoded blocks. The three aforementioned blocks specifically include the Bio block located immediately to the left of the current block B ;, and the two blocks B3 and B4 respectively located immediately above and to the right above the current block B; We are interested here more particularly to the entropic coder which encodes the information according to their order of arrival. Typically a line-by-line path of the blocks is made, of "raster-scan" type, as illustrated in FIG. 1A by the reference PRS, starting from the block B1 located at the top left of the image. For each block, the various information necessary for the representation of the block (block type, prediction mode, residual coefficients, ...) are sent sequentially to the entropy coder.
On connaît déjà un codeur arithmétique efficace et de complexité raisonnable, appelé « CABAC » ("Context Adaptive Binary Arithmetic Coder" en anglais), introduit dans le standard de compression AVC (aussi connu sous le nom de ISO-MPEG4 partie 10 et ITU-T H.264). Ce codeur entropique met en oeuvre différentes fonctionnalités : - le codage arithmétique : le codeur, tel que décrit initialement dans le document J. Rissanen and G. G. Langdon Jr, "Universal modeling and coding," IEEE Trans. Inform. Theory, vol. IT-27, pp. 12-23, Jan. 1981, utilise, pour coder un symbole, une probabilité d'apparition de ce symbole ; - l'adaptation au contexte : il s'agit ici d'adapter la probabilité d'apparition des symboles à coder à partir des probabilités d'apparition de symboles précédemment codés. D'une part, un apprentissage des probabilités à la volée est réalisé. D'autre part, suivant l'état des informations préalablement codées, un contexte spécifique est utilisé pour le codage des symboles. A chaque contexte correspond une probabilité d'apparition propre du symbole. There is already known an efficient arithmetic coder of reasonable complexity, called CABAC (Context Adaptive Binary Arithmetic Coder), introduced in the AVC compression standard (also known as ISO-MPEG4 Part 10 and ITU-A). T H.264). This entropic coder implements various functionalities: arithmetic coding: the coder, as initially described in the document J. Rissanen and G. G. Langdon Jr, "Universal modeling and coding," IEEE Trans. Inform. Theory, vol. IT-27, pp. 12-23, Jan. 1981, uses, to encode a symbol, a probability of appearance of this symbol; - Adaptation to the context: this is to adapt the probability of appearance of the symbols to be coded from the probabilities of appearance of previously coded symbols. On the one hand, a learning of the probabilities on the fly is realized. On the other hand, depending on the state of the previously coded information, a specific context is used for encoding the symbols. Each context corresponds to a probability of appearance of the symbol itself.
Par exemple un contexte correspond à un type de symbole codé (la représentation d'un coefficient d'un résidu, la signalisation de mode de codage, ...) suivant une configuration donnée, ou un état du voisinage (par exemple le nombre de modes « intra » sélectionnés dans le voisinage, ...) ; - la binarisation : une mise sous la forme d'une suite de bits des symboles à coder est réalisée. Par la suite, ces différents bits sont envoyés successivement au codeur entropique binaire. Ainsi, ce codeur entropique met en oeuvre, pour chaque contexte utilisé, un système d'apprentissage des probabilités à la volée par rapport aux symboles précédemment codés pour le contexte considéré. Cet apprentissage est basé sur l'ordre de codage de ces symboles. Typiquement, l'image est parcourue selon un ordre de type « raster-scan », décrit ci-dessus. For example, a context corresponds to a type of coded symbol (the representation of a coefficient of a residue, the coding mode signaling, etc.) according to a given configuration, or a neighborhood state (for example the number of "intra" modes selected in the vicinity, ...); binarization: a setting in the form of a sequence of bits of the symbols to be encoded is performed. Subsequently, these different bits are successively sent to the binary entropic coder. Thus, this entropic coder implements, for each context used, a system for learning on-the-fly probabilities with respect to the symbols previously coded for the context in question. This learning is based on the coding order of these symbols. Typically, the image is scanned according to a "raster-scan" type order, described above.
Un exemple schématique d'un tel codage entropique est représenté à la figure 1A, dans laquelle un bloc courant B; de l'image courante IE est soumis à un codage entropique. Dans le cas où le bloc courant Bi est le premier bloc de l'image, il est procédé à une initialisation d'un intervalle représentatif de la probabilité d'apparition d'un symbole contenu dans un ensemble prédéterminé de symboles. Cette étape est symbolisée sur la figure 1A par un point noir représenté sur le premier bloc. Dans le cas où le bloc courant Bi est un bloc quelconque autre que le premier bloc, par exemple le troisième bloc de la deuxième ligne horizontale de blocs, les probabilités d'apparition de symboles utilisées sont celles obtenues après codage d'un bloc précédemment codé et décodé, qui est celui qui précède immédiatement le bloc courant B; conformément au parcours ligne par ligne des blocs de type « raster scan » précité. Un tel apprentissage basé sur la dépendance bloc à bloc est représenté sur la figure 1A pour certains blocs seulement dans un souci de clarté de la figure, par les flèches en trait fin. A schematic example of such an entropy coding is shown in Figure 1A, in which a current block B; of the current image IE is subjected to entropy encoding. In the case where the current block Bi is the first block of the image, an interval representative of the probability of occurrence of a symbol contained in a predetermined set of symbols is initialized. This step is symbolized in FIG. 1A by a black dot represented on the first block. In the case where the current block Bi is any block other than the first block, for example the third block of the second horizontal block line, the symbol appearance probabilities used are those obtained after coding a previously coded block. and decoded, which is the one immediately preceding the current block B; according to the line-by-line path of the raster scan blocks mentioned above. Such learning based block dependence is shown in Figure 1A for some blocks only for the sake of clarity of the figure, by the arrows fine line.
Plus précisément, le codeur CABAC met en oeuvre une quantification des probabilités d'apparition de symboles de la façon suivante. Au cours de l'étape d'initialisation précitée, il est déterminé dans l'ensemble prédéterminé de symboles : - le symbole binaire qui a la probabilité d'apparition la plus élevée, ce symbole étant appelé symbole le plus probable, dits MPS (de l'anglais « most probable symbol »), - le symbole binaire qui a la probabilité d'apparition la moins élevée, ce symbole étant appelé symbole le moins probable LPS (de l'anglais « least probable symbol »). More precisely, the CABAC coder implements a quantization of the symbol appearance probabilities in the following manner. During the aforementioned initialization step, it is determined in the predetermined set of symbols: the binary symbol which has the highest probability of appearance, this symbol being called the most probable symbol, called MPS (of "most likely symbol"), - the binary symbol with the lowest probability of occurrence, this symbol being called the least probable symbol LPS (of the "least likely symbol").
Comme représenté sur la figure 1B, le codeur CABAC définit, pour un modèle de contexte donné, la probabilité d'un LPS comme pouvant prendre 64 valeurs possibles p' comprises dans l'intervalle de probabilité [0.01875, 0.5], selon l'équation suivante : p'=a.p'_1 où n est un entier tel que n=1, 2,..., 63, et où a=(0.01875/0.5)1/63 et 0.95, et où po=0.5 p' représente la valeur mise à jour de la probabilité d'apparition d'un symbole donné et p' _1 représente la valeur de la probabilité d'apparition de symbole estimée lors de la dernière apparition de ce symbole. Par ailleurs, le codeur CABAC fonctionne selon deux tables de transition permettant la mise à jour de la probabilité d'apparition de symbole, le choix de l'une ou l'autre des tables étant fonction du type de symbole codé, MPS ou LPS. La table de transition pour un MPS, notée TM sur la figure 1B, contient les 63 valeurs suivantes : TM={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,2 5,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49, 5 0,51,52,53,54,55,56,57,58,59,60,61,62,62,63 }. L'évolution des probabilités selon la table TM est représentée en trait plein sur la figure I B. La table de transition pour un LPS, notée TL sur la figure 1B, contient les 63 valeurs suivantes : TL={0,0,1,2,2,4,4,5,6,7,8,9,9,11,11,12,13,13,15,15,16,16,18,18,19,19,21 ,21,22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,30,31,32,32,33,33,33,34, 34, 35,35,35,36,36,36,37,37,37,38,38,63}. L'évolution des probabilités selon la table TL est représentée en traits pointillés sur la figure I B. Lorsque un symbole LPS possède une probabilité estimée pei et qu'un nouveau symbole est codé (ou décodé), la mise à jour de la probabilité du nouveau symbole codé est effectuée de la façon suivante : - si le nouveau symbole est un LPS, la nouvelle probabilité est PTL[e]. - si le nouveau symbole est un MPS, alors, si la probabilité pe vaut po, les symboles binaires MPS et LPS sont inversés et la nouvelle probabilité reste po comme indiqué par la première flèche de gauche en pointillés sur la figure 1B, sinon la nouvelle probabilité est prM[e]. Une telle méthode d'estimation de probabilités présente l'inconvénient que la vitesse de transition pour passer d'un état de probabilité à l'autre demeure fixe. Ainsi, pour une modèle de contexte donné, lesdites tables de transition ne permettent respectivement qu'une seule façon de faire évoluer la probabilité lorsqu'un symbole codé est un LPS, et qu'une seule façon de faire évoluer la probabilité lorsqu'un symbole codé est un MPS. Avec une telle méthode, les performances de compression vidéo ne sont donc pas optimisées, en particulier lorsque le signal vidéo présentent au cours du temps différentes variations, lentes ou rapides. Dans le document A. Zandi, G. G. Langdon, « Adaption for Non-Stationary Binary Sources for Data Compression », il est proposé une méthode d'estimation de probabilités selon laquelle la vitesse d'apprentissage des probabilités varie de façon adaptative. Dans la méthode proposée, un « facteur de risque » est calculé à chaque fois qu'un symbole est codé, en fonction d'un nombre prédéterminé de symboles précédemment codés. La probabilité d'apparition dudit symbole est ensuite estimée à l'aide du facteur de risque calculé, une telle probabilité étant utilisée ultérieurement pour coder le prochain symbole. Bien que la méthode d'estimation de probabilités décrite dans ce document permette de produire un gain en compression du signal, elle nécessite toutefois de recalculer un facteur de risque pour chaque nouveau symbole codé, ce qui est coûteux en termes de complexité de calcul au codage, comme au décodage. Par ailleurs, la probabilité estimée à partir du facteur de risque recalculé peut prendre n'importe quelle valeur entre 0 et 1, ce qui multiplie grandement le nombre de variations possibles de la vitesse d'apprentissage de probabilité. Il en résulte une complexité très élevée du codeur arithmétique en termes de ressources logicielles et matérielles, ce qui nuit à la rapidité de fonctionnement de ce dernier. As represented in FIG. 1B, the CABAC coder defines, for a given context model, the probability of an LPS as being able to take 64 possible values p 'included in the probability interval [0.01875, 0.5], according to the equation following: p '= a.p'_1 where n is an integer such that n = 1, 2, ..., 63, and where a = (0.01875 / 0.5) 1/63 and 0.95, and where po = 0.5 p 'represents the updated value of the probability of appearance of a given symbol and p' _1 represents the value of the probability of occurrence of symbol estimated at the last appearance of this symbol. Moreover, the CABAC coder operates according to two transition tables allowing the updating of the probability of appearance of symbol, the choice of one or the other of the tables being a function of the type of coded symbol, MPS or LPS. The transition table for an MPS, denoted TM in FIG. 1B, contains the following 63 values: TM = {0,1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22,23,24,2 5,26,27,28,29,30,31,32,33,34,35,36,37 , 38.39,40.41,42,43,44,45,46,47,48,49,5,51,52,53,54,55,56,57,58,59,60,61, 62.62,63}. The evolution of the probabilities according to the table TM is represented in solid lines in FIG. 1B. The transition table for an LPS, denoted TL in FIG. 1B, contains the following 63 values: TL = {0,0,1, 2,2,4,4,5,6,7,8,9,9,11,11,12,13,13,15,15,16,16,18,18,19,19,21, 21, 22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,30,31,32,32,33,33,33,34, 34, 35, 35,35,36,36,36,37,37,37,38,38,63}. The evolution of the probabilities according to the table TL is represented by dashed lines in FIG. 1B. When an LPS symbol has an estimated probability pe1 and a new symbol is coded (or decoded), the update of the probability of the The new coded symbol is carried out as follows: - if the new symbol is an LPS, the new probability is PTL [e]. - if the new symbol is an MPS, then, if the probability pe is in po, the MPS and LPS binary symbols are inverted and the new probability remains po as indicated by the first left arrow in dashed lines in Figure 1B, otherwise the new probability is prM [e]. Such a probability estimation method has the disadvantage that the transition speed to move from one probability state to another remains fixed. Thus, for a given context model, said transition tables respectively allow only one way to change the probability when an encoded symbol is an LPS, and only one way to change the probability when a symbol coded is an MPS. With such a method, the video compression performance is not optimized, especially when the video signal have different variations over time, slow or fast. In A. Zandi, G. G. Langdon, "Adaption for Non-Stationary Binary Sources for Data Compression," a probability estimation method is proposed in which the learning speed of probabilities varies adaptively. In the proposed method, a "risk factor" is calculated each time a symbol is encoded, based on a predetermined number of previously encoded symbols. The probability of occurrence of said symbol is then estimated using the calculated risk factor, such probability being used later to code the next symbol. Although the probability estimation method described in this document can produce a gain in compression of the signal, it nevertheless requires to recalculate a risk factor for each new coded symbol, which is costly in terms of calculation complexity to the coding , as in decoding. On the other hand, the probability estimated from the recalculated risk factor can take any value between 0 and 1, which greatly increases the number of possible variations in the probability learning rate. This results in a very high complexity of the arithmetic coder in terms of software and hardware resources, which affects the speed of operation of the latter.
Objet et résumé de l'invention Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité. A cet effet, un objet de la présente invention concerne un procédé de codage d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder, les étapes de : - détermination d'un contexte associé au symbole courant, parmi un ensemble prédéterminé de contextes, - estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé, - codage entropique du symbole courant à l'aide de la probabilité estimée. Le procédé selon l'invention est remarquable en ce qu'il comprend en outre les étapes de : - sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, - mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée. Une telle disposition permet une implémentation matérielle facile et rapide d'un codeur entropique car elle permet un choix restreint et prédéterminé de méthodes d'apprentissage de probabilité. Grâce à la légèreté d'une telle implémentation, la complexité logicielle du codeur arithmétique s'en trouve grandement réduite, ce qui augmente sa rapidité d'exécution. Une telle disposition permet en outre d'augmenter les performances de compression en faisant évoluer les probabilités selon deux méthodes différentes. En effet, lorsque le signal a une évolution lente (stationnarité), il est intéressant de faire évoluer lentement les probabilités, pour profiter d'une estimation précise. En revanche, lorsque le signal subit des transitions rapides et irrégulières (non-stationnarités), il est intéressant de faire évoluer rapidement l'estimation de probabilité pour acquérir rapidement les nouvelles statistiques. OBJECT AND SUMMARY OF THE INVENTION One of the aims of the invention is to overcome disadvantages of the state of the art mentioned above. For this purpose, an object of the present invention relates to a method of encoding at least one image capable of containing a plurality of predetermined symbols, comprising, for at least one current symbol to be encoded, the steps of: determining a context associated with the current symbol, among a predetermined set of contexts, - estimating a probability of occurrence of the current symbol according to the determined context, - entropy coding of the current symbol using the estimated probability. The method according to the invention is remarkable in that it further comprises the steps of: selecting a method for updating the estimated probability from at least two different methods, according to a predetermined criterion; update the estimated probability using the selected method. Such an arrangement allows easy and fast hardware implementation of an entropy coder as it allows for a limited and predetermined choice of probability learning methods. Thanks to the lightness of such an implementation, the software complexity of the arithmetic encoder is greatly reduced, which increases its speed of execution. Such an arrangement also makes it possible to increase the compression performance by changing the probabilities according to two different methods. Indeed, when the signal has a slow evolution (stationarity), it is interesting to slowly evolve the probabilities, to take advantage of an accurate estimate. On the other hand, when the signal undergoes fast and irregular transitions (non-stationary), it is interesting to quickly change the probability estimate to quickly acquire the new statistics.
Dans un mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés et un nombre prédéterminé. In a particular embodiment, the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between the number of symbols already coded and a predetermined number.
Une telle disposition permet d'obtenir un codeur arithmétique fonctionnant selon un très bon compromis entre une implémentation matérielle relativement simple à mettre en oeuvre et une performance de compression élevée, ce qui est lié au fait que les symboles codés comptabilisés ont chacun été codés pour tous les contextes de l'ensemble. Such an arrangement makes it possible to obtain an arithmetic coder operating according to a very good compromise between a hardware implementation that is relatively simple to implement and a high compression performance, which is linked to the fact that the coded symbols counted have each been coded for all. the contexts of the whole.
Dans un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés selon le contexte déterminé et un nombre prédéterminé. Une telle disposition permet d'obtenir un codeur arithmétique fonctionnant selon un bon compromis entre une implémentation matérielle très simple à mettre en oeuvre et une performance de compression satisfaisante, ce qui est lié au fait que les symboles codés comptabilisés ont chacun été codés pour un seul des contextes de l'ensemble. Selon une première variante de réalisation : - la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles déjà codés selon le contexte déterminé est inférieur ou égal au nombre prédéterminé, - la méthode de mise à jour la moins rapide est sélectionnée sinon. In another particular embodiment, the predetermined criterion for selecting one or the other of the update methods depends on the result of a comparison between the number of symbols already encoded according to the determined context and a predetermined number. Such an arrangement makes it possible to obtain an arithmetic coder operating according to a good compromise between a hardware implementation that is very simple to implement and a satisfactory compression performance, which is linked to the fact that the counted coded symbols have each been coded for a single one. contexts of the whole. According to a first variant embodiment: the fastest update method is selected if the number of symbols already coded according to the determined context is less than or equal to the predetermined number, the least-rapid update method is selected if not.
Une telle disposition permet d'obtenir un codeur arithmétique dont la complexité en termes de ressources matérielles et logicielles est optimisée. Selon une deuxième variante de réalisation, lorsque le symbole courant à coder appartient à un bloc d'un sous-ensemble de blocs de l'image, cette image ayant été préalablement découpée en une pluralité de blocs, et les blocs ayant été regroupés en un nombre prédéterminé de sous-ensembles de blocs : - la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles déjà codés selon le contexte déterminé dans le sous-ensemble considéré est inférieur ou égal au nombre prédéterminé, - la méthode de mise à jour la moins rapide est sélectionnée sinon. Une telle disposition permet d'obtenir un codeur arithmétique conforme à la norme H.264/MPEG-4 AVC et dont la complexité en termes de ressources matérielles et logicielles est optimisée. Selon une troisième variante de réalisation, le procédé de codage comprend préalablement à l'étape de mise à jour de la probabilité estimée, une étape de détermination d'un premier et d'un deuxième ensemble contenant chacun des symboles précédemment codés selon le contexte déterminé, le premier ensemble contenant un nombre de symboles qui est plus élevé que le nombre de symboles du deuxième ensemble, l'étape de sélection de méthode de mise à jour consistant à choisir : - la méthode de mise à jour la plus rapide si la différence entre la fréquence d'apparition du symbole courant dans le premier ensemble et la fréquence d'apparition du symbole courant dans le deuxième ensemble est supérieure à un seuil prédéterminé, - la méthode de mise à jour la moins rapide sinon. Une telle disposition permet d'augmenter les performances de compression du codeur arithmétique, puisqu'il est tenu compte des transitions dans le signal vidéo après observation d'un nombre prédéterminé de fois où un même symbole a été codé. Dans encore un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre une estimation de la probabilité d'apparition de symbole conforme à un premier mode et une estimation simulée de la probabilité d'apparition de symbole conforme à un deuxième mode, l'étape de sélection de méthode de mise à jour consistant à choisir: - la méthode de mise à jour la plus rapide si la différence entre la probabilité estimée de façon simulée et la probabilité estimée est supérieure à un seuil prédéterminé, - la méthode de mise à jour la moins rapide sinon. Such an arrangement makes it possible to obtain an arithmetic coder whose complexity in terms of hardware and software resources is optimized. According to a second variant embodiment, when the current symbol to be encoded belongs to a block of a subset of blocks of the image, this image having been cut beforehand into a plurality of blocks, and the blocks having been grouped into one predetermined number of subsets of blocks: the fastest update method is selected if the number of symbols already coded according to the context determined in the subset considered is less than or equal to the predetermined number, the method of the least fast update is selected otherwise. Such an arrangement makes it possible to obtain an arithmetic coder conforming to the H.264 / MPEG-4 AVC standard and whose complexity in terms of hardware and software resources is optimized. According to a third variant embodiment, the coding method comprises, prior to the step of updating the estimated probability, a step of determining a first and a second set containing each of the symbols previously coded according to the determined context. , the first set containing a number of symbols which is greater than the number of symbols of the second set, the update method selecting step of choosing: - the fastest update method if the difference between the frequency of occurrence of the current symbol in the first set and the frequency of appearance of the current symbol in the second set is greater than a predetermined threshold, - the method of updating the least rapid otherwise. Such an arrangement makes it possible to increase the compression performance of the arithmetic coder, since transitions in the video signal are taken into account after observation of a predetermined number of times when the same symbol has been coded. In yet another particular embodiment, the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between an estimate of the probability of appearance of a symbol corresponding to a first mode and a simulated estimate of the probability of appearance of a second mode symbol, the update method selection step of choosing: - the fastest update method if the difference between the probability estimated simulated and the estimated probability is greater than a predetermined threshold, - the method of updating the least rapid otherwise.
Une telle disposition permet d'obtenir un codeur arithmétique particulièrement efficace pour détecter des transitions rapides dans le signal vidéo. Corrélativement, l'invention concerne encore un dispositif de codage d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder : - des moyens de détermination d'un contexte associé au symbole courant, parmi un ensemble prédéterminé de contextes, - des moyens d'estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé, - des moyens de codage entropique du symbole courant à l'aide de la probabilité estimée. Un tel dispositif de codage est remarquable en ce qu'il comprend en outre : - des moyens de sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, - des moyens de mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée. De façon correspondante, l'invention concerne aussi un procédé de décodage d'un flux représentatif d'au moins une image codée apte à contenir une pluralité de symboles prédéterminés codés, comprenant les étapes de : - identification dans le flux d'au moins un symbole codé courant, 25 - détermination d'un contexte associé au symbole codé courant identifié, parmi un ensemble prédéterminé de contextes, - estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé, - décodage entropique du symbole courant à l'aide de la 30 probabilité estimée. Un tel procédé de décodage est remarquable en ce qu'il comprend en outre les étapes de : 20 - sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, - mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée. Dans un mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés et un nombre prédéterminé. Such an arrangement makes it possible to obtain an arithmetic coder that is particularly effective in detecting fast transitions in the video signal. Correlatively, the invention also relates to a device for encoding at least one image capable of containing a plurality of predetermined symbols, comprising, for at least one current symbol to be encoded: means for determining a context associated with the current symbol among a predetermined set of contexts, means for estimating a probability of occurrence of the current symbol as a function of the determined context, entropy coding means of the current symbol using the estimated probability. Such a coding device is remarkable in that it furthermore comprises: means for selecting a method for updating the estimated probability from at least two different methods, according to a predetermined criterion; means for updating the estimated probability using the selected method. Correspondingly, the invention also relates to a method for decoding a representative stream of at least one coded picture capable of containing a plurality of coded predetermined symbols, comprising the steps of: identification in the stream of at least one current coded symbol, 25 - determination of a context associated with the identified current coded symbol, among a predetermined set of contexts, - estimation of a probability of occurrence of the current symbol according to the determined context, - entropy decoding of the current symbol to using the estimated probability. Such a decoding method is remarkable in that it further comprises the steps of: selecting a method for updating the estimated probability among at least two different methods, according to a predetermined criterion; update the estimated probability using the selected method. In a particular embodiment, the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between the number of decoded symbols and a predetermined number.
Dans un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés selon le contexte déterminé et un nombre prédéterminé. Selon une première variante de réalisation : - la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles décodés selon le contexte déterminé est inférieur ou égal au nombre prédéterminé, - la méthode de mise à jour la moins rapide est sélectionnée sinon. In another particular embodiment, the predetermined criterion for selecting one or the other of the update methods depends on the result of a comparison between the number of symbols decoded according to the determined context and a predetermined number. According to a first variant embodiment: the fastest update method is selected if the number of symbols decoded according to the determined context is less than or equal to the predetermined number, the least-rapid update method is selected otherwise .
Selon une deuxième variante de réalisation, lorsque le symbole courant à décoder appartient à un bloc d'un sous-ensemble de blocs de l'image, une telle image ayant été préalablement découpée en une pluralité de blocs, et les blocs ayant été regroupés en un nombre prédéterminé de sous-ensembles de blocs : - la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles décodés selon le contexte déterminé dans le sous-ensemble est inférieur ou égal au nombre prédéterminé, - la méthode de mise à jour la moins rapide est sélectionnée sinon. According to a second variant embodiment, when the current symbol to be decoded belongs to a block of a subset of blocks of the image, such an image having been previously divided into a plurality of blocks, and the blocks having been grouped into a predetermined number of subsets of blocks: - the fastest update method is selected if the number of decoded symbols according to the context determined in the subset is less than or equal to the predetermined number, - the setting method the slowest is selected otherwise.
Selon une troisième variante de réalisation, le procédé de décodage comprend préalablement à l'étape de mise à jour, une étape de détermination d'un premier et d'un deuxième ensemble contenant chacun des symboles décodés selon le contexte déterminé, le premier ensemble contenant un nombre de symboles qui est plus élevé que le nombre de symboles du deuxième ensemble, l'étape de sélection de méthode de mise à jour consistant à choisir : - la méthode de mise à jour la plus rapide si la différence entre la fréquence d'apparition du symbole courant dans le premier ensemble et la fréquence d'apparition du symbole courant dans le deuxième ensemble est supérieure à un seuil prédéterminé, - la méthode de mise à jour la moins rapide sinon. Dans encore un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre une estimation de la probabilité d'apparition de symbole conforme à un premier mode et une estimation simulée de la probabilité d'apparition de symbole conforme à un deuxième mode, l'étape de sélection de méthode de mise à jour consistant à choisir: - la méthode de mise à jour la plus rapide si la différence entre la probabilité estimée de façon simulée et la probabilité estimée est supérieure à un seuil prédéterminé, - la méthode de mise à jour la moins rapide sinon. According to a third variant embodiment, the decoding method comprises, prior to the updating step, a step of determining a first and a second set each containing decoded symbols according to the determined context, the first set containing a number of symbols that is greater than the number of symbols of the second set, the update method selection step of choosing: - the fastest update method if the difference between the frequency of appearance of the current symbol in the first set and the frequency of appearance of the current symbol in the second set is greater than a predetermined threshold, - the method of updating the least fast otherwise. In yet another particular embodiment, the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between an estimate of the probability of appearance of a symbol corresponding to a first mode and a simulated estimate of the probability of appearance of a second mode symbol, the update method selection step of choosing: - the fastest update method if the difference between the probability estimated simulated and the estimated probability is greater than a predetermined threshold, - the method of updating the least rapid otherwise.
Corrélativement, l'invention concerne encore un dispositif de décodage d'un flux représentatif d'au moins une image codée apte à contenir une pluralité de symboles prédéterminés codés, comprenant : - des moyens d'identification dans le flux d'au moins un symbole codé courant, - des moyens de détermination d'un contexte associé au symbole codé courant identifié, parmi un ensemble prédéterminé de contextes, - des moyens d'estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé, - des moyens de décodage entropique du symbole courant à l'aide de la probabilité estimée. Un tel dispositif de décodage est remarquable en ce qu'il comprend en outre : - des moyens de sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, - des moyens de mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée. L'invention vise également un programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de codage ou de décodage ci-dessus, lorsque le programme est exécuté par un ordinateur. Un tel programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. Encore un autre objet de l'invention vise aussi un support d'enregistrement lisible par un ordinateur, et comportant des instructions de programme d'ordinateur tel que mentionné ci-dessus. Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, un tel support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, un tel support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, un tel support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter le procédé en question ou pour être utilisé dans l'exécution de ce dernier. Correlatively, the invention also relates to a device for decoding a stream representative of at least one coded picture capable of containing a plurality of coded predetermined symbols, comprising: means for identifying in the stream of at least one symbol coded current, means for determining a context associated with the identified current coded symbol, among a predetermined set of contexts, means for estimating a probability of appearance of the current symbol as a function of the determined context, entropy decoding means of the current symbol using the estimated probability. Such a decoding device is remarkable in that it further comprises: means for selecting a method for updating the estimated probability from at least two different methods, according to a predetermined criterion; means for updating the estimated probability using the selected method. The invention also relates to a computer program comprising instructions for executing the steps of the above coding or decoding method, when the program is executed by a computer. Such a program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any another desirable form. Still another object of the invention is directed to a computer readable recording medium, and including computer program instructions as mentioned above. The recording medium may be any entity or device capable of storing the program. For example, such a medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a diskette. Hard disk. On the other hand, such a recording medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention can be downloaded in particular on an Internet type network. Alternatively, such a recording medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute the method in question or to be used in the execution of the latter.
Le dispositif de codage, le procédé de décodage, le dispositif de décodage et les programmes d'ordinateur précités présentent au moins les mêmes avantages que ceux conférés par le procédé de codage selon la présente invention. The coding device, the decoding method, the decoding device and the aforementioned computer programs have at least the same advantages as those conferred by the coding method according to the present invention.
Brève description des dessins D'autres caractéristiques et avantages apparaîtront à la lecture de deux modes de réalisation préférés décrits en référence aux figures dans lesquelles: - la figure 1A représente un schéma de codage d'image de l'art antérieur, - la figure 1B représente l'évolution des probabilités d'apparition de symboles dans un codeur CABAC de l'art antérieur, - la figure 2A représente les principales étapes du procédé de codage selon l'invention, - la figure 2B représente en détail le codage mis en oeuvre dans le procédé de codage de la figure 2A, - la figure 3A représente un premier mode de réalisation d'un dispositif de codage selon l'invention, - la figure 3B représente une unité de codage du dispositif de codage de la figure 3A, - la figure 4 représente un schéma de codage/décodage d'image selon un mode de réalisation préférentiel, - la figure 5A représente les principales étapes du procédé de décodage selon l'invention, - la figure 5B représente en détail le codage mis en oeuvre dans le procédé de décodage de la figure 5A, - la figure 6A représente un mode de réalisation d'un dispositif de décodage selon l'invention, - la figure 6B représente une unité de décodage du dispositif de décodage de la figure 6A. BRIEF DESCRIPTION OF THE DRAWINGS Other features and advantages will become apparent upon reading two preferred embodiments described with reference to the figures in which: FIG. 1A shows an image coding scheme of the prior art, FIG. 1B represents the evolution of the symbol appearance probabilities in a CABAC coder of the prior art, - Figure 2A represents the main steps of the coding method according to the invention, - Figure 2B shows in detail the coding implemented in the coding method of FIG. 2A, FIG. 3A represents a first embodiment of a coding device according to the invention; FIG. 3B represents a coding unit of the coding device of FIG. 3A; FIG. 4 represents an image coding / decoding scheme according to a preferred embodiment; FIG. 5A represents the main steps of the decoding method according to the invention; FIG. 5B shows in detail the coding implemented in the decoding method of FIG. 5A; FIG. 6A represents an embodiment of a decoding device according to the invention; FIG. 6B represents a decoding unit of FIG. decoding device of Figure 6A.
Description détaillée de la partie codage Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage selon la norme H.264/MPEG-4 AVC. Dans ce mode de réalisation, le procédé de codage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à la norme H.264/MPEG-4 AVC. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes Cl à C4, représentées à la figure 2A. Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage CO dont un mode de réalisation est représenté sur la figure 3A. En référence à la figure 2A, la première étape de codage Cl est le découpage d'une image IE d'une séquence d'images à coder dans un ordre prédéterminé, en une pluralité Z de blocs ou macro-blocs B1, B2,...,B1,..., Bz, comme représenté sur la figure 1A. Lesdits blocs sont aptes à contenir un ou plusieurs symboles, lesdits symboles faisant partie d'un ensemble prédéterminé de symboles. Dans les exemples représentés, lesdits blocs ont une forme carrée et ont tous la même taille. En fonction de la taille de l'image qui n'est pas forcément un multiple de la taille des blocs, les derniers blocs à gauche et les derniers blocs en bas peuvent ne pas être carrés. Dans un mode alternatif de réalisation, les blocs peuvent être par exemple de taille rectangulaire et/ou non alignés les uns avec les autres. Chaque bloc ou macrobloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles. DETAILED DESCRIPTION OF THE ENCODING PART An embodiment of the invention will now be described, in which the coding method according to the invention is used to encode an image sequence according to a bit stream close to that obtained by coding according to the H.264 / MPEG-4 AVC standard. In this embodiment, the coding method according to the invention is for example implemented in a software or hardware way by modifications of an encoder initially compliant with the H.264 / MPEG-4 AVC standard. The coding method according to the invention is represented in the form of an algorithm comprising steps C1 to C4, represented in FIG. 2A. According to the embodiment of the invention, the coding method according to the invention is implemented in a coding device CO, an embodiment of which is shown in FIG. 3A. With reference to FIG. 2A, the first coding step C1 is the cutting of an image IE of an image sequence to be encoded in a predetermined order, into a plurality Z of blocks or macroblocks B1, B2 ,. .., B1, ..., Bz, as shown in Figure 1A. Said blocks are able to contain one or more symbols, said symbols forming part of a predetermined set of symbols. In the examples shown, said blocks have a square shape and are all the same size. Depending on the size of the image that is not necessarily a multiple of the size of the blocks, the last blocks on the left and the last blocks on the bottom may not be square. In an alternative embodiment, the blocks may be for example of rectangular size and / or not aligned with each other. Each block or macroblock can also be itself divided into sub-blocks that are themselves subdividable.
Un tel découpage est effectué par un module PCO de partitionnement représenté à la figure 3A qui utilise par exemple un algorithme de partitionnement bien connu en tant que tel. En référence à la figure 2A, la deuxième étape de codage C2, qui est optionnelle et qui pour cette raison est représentée en pointillés sur la figure 2A, est le regroupement des blocs précités en un nombre prédéterminé P de sous-ensembles de blocs consécutifs SE1, SE2,.., SEk,...,SEP destinés à être codés séquentiellement ou en parallèle. Dans l'exemple représenté sur la figure 4, P=6. Les six sous-ensembles de blocs sont chacun représentés en trait pointillé et sont constitués respectivement par les six premières lignes de blocs de l'image IE. Un tel regroupement est effectué par un module de calcul GRCO représenté à la figure 3A, à l'aide d'un algorithme bien connu en soi. Le module GRCO étant optionnel, il est représenté en pointillé sur la figure 3A. Such splitting is performed by a partitioning PCO module shown in FIG. 3A which uses, for example, a partitioning algorithm that is well known as such. With reference to FIG. 2A, the second coding step C2, which is optional and which for this reason is represented in dotted lines in FIG. 2A, is the grouping of the aforementioned blocks into a predetermined number P of consecutive subset subsets SE1 , SE2, .., SEk, ..., SEP to be coded sequentially or in parallel. In the example shown in FIG. 4, P = 6. The six subsets of blocks are each represented in dashed line and consist respectively of the first six lines of blocks of the IE image. Such a grouping is performed by a GRCO calculation module represented in FIG. 3A, using a well-known algorithm per se. The GRCO module being optional, it is shown in dotted line in FIG. 3A.
En référence à la figure 2A, la troisième étape de codage C3 consiste dans le codage de chacun des blocs de l'image ou bien desdits sous-ensembles de blocs SE1 à SE6 si un regroupement des blocs a été mis en oeuvre à l'étape C2 précitée. Dans le cas de la figure 1A, les blocs sont codés selon par exemple le parcours « raster scan ». Dans le cas de la figure 4, les blocs sont codés selon un ordre de parcours prédéterminé, qui est par exemple de type séquentiel. Dans l'exemple représenté sur la figure 4, les blocs d'un sous-ensemble SEk courant (1 <_k<_P) sont codés les uns après les autres, de la gauche vers la droite, comme indiqué par la flèche PS. With reference to FIG. 2A, the third encoding step C3 consists in the coding of each of the blocks of the image or of said subsets of blocks SE1 to SE6 if a grouping of the blocks has been implemented at the step C2 above. In the case of FIG. 1A, the blocks are coded according to, for example, the "raster scan" path. In the case of Figure 4, the blocks are encoded in a predetermined order of travel, which is for example sequential type. In the example shown in Figure 4, the blocks of a subset SEk current (1 <_k <_P) are coded one after the other, from left to right, as indicated by the arrow PS.
D'autres types de parcours que celui qui vient d'être décrit ci-dessus sont bien sûr possibles. Ainsi, il est possible de découper l'image IE en plusieurs sous-images et d'appliquer indépendamment un découpage de ce type sur chaque sous-image. Il est également possible de coder non pas une succession de lignes, comme expliqué ci-dessus, mais une succession de colonnes. Il est également possible de parcourir les lignes ou colonnes dans un sens ou dans l'autre. Selon l'invention, un tel codage est mis en oeuvre par une unité de codage UC tel que représentée sur la figure 3A. De façon connue en tant que telle, le codeur CO comprend une mémoire tampon MT qui est adaptée pour contenir les probabilités d'apparition de symboles telles que progressivement remises à jour au fur et à mesure du codage d'un bloc courant. Comme représenté plus en détail sur la figure 3B, l'unité de codage UC comprend : - un module de codage prédictif d'un bloc courant par rapport à au moins un bloc précédemment codé et décodé, notée MCP; - un module de codage entropique dudit bloc courant par utilisation d'au moins une probabilité d'apparition de symbole calculée pour ledit bloc précédemment codé et décodé, notée MCE. Le module de codage prédictif MCP est un module logiciel qui est apte à effectuer un codage prédictif du bloc courant, selon les techniques de prédiction classiques, telles que par exemple en mode Intra et/ou Inter. Other types of course than the one just described above are of course possible. Thus, it is possible to cut the IE image into several sub-images and to independently apply a division of this type on each sub-image. It is also possible to code not a succession of lines, as explained above, but a succession of columns. It is also possible to browse the rows or columns in one direction or the other. According to the invention, such coding is implemented by a coding unit UC as represented in FIG. 3A. In a manner known per se, the coder CO comprises a buffer memory MT which is adapted to contain the symbol appearance probabilities such as progressively updated as the coding of a current block progresses. As shown in more detail in FIG. 3B, the coding unit UC comprises: a coding module predictive of a current block with respect to at least one previously coded and decoded block, denoted MCP; an entropy coding module of said current block by using at least one symbol appearance probability calculated for said previously coded and decoded block, denoted ECM. The predictive coding module MCP is a software module that is able to carry out a predictive coding of the current block, according to conventional prediction techniques, such as for example in Intra and / or Inter mode.
Le module de codage entropique MCE est quant à lui de type CABAC, mais modifié selon la présente invention comme cela sera décrit plus loin dans la description. Comme cela a déjà été mentionné plus haut dans la description, le codeur CABAC fonctionne selon différents contextes prédéfinis différents. Pour chaque ensemble prédéterminé de symboles à coder (par exemple, les vecteurs de mouvement, les coefficients quantifiés du résidu, etc...), il existe au moins un contexte. Pour la plupart des ensembles prédéterminés de symboles, il existe en réalité plusieurs contextes correspondant chacun à un environnement particulier du symbole à coder. L'environnement consiste par exemple dans les blocs précédemment codés qui avoisinent le bloc courant à coder ou bien encore dans les blocs précédemment codés d'une autre image que celle contenant le bloc courant à coder. Ainsi, un symbole à coder se trouve toujours dans un contexte connu du décodeur et du codeur. The entropic coding module MCE is CABAC type, but modified according to the present invention as will be described later in the description. As already mentioned above in the description, the CABAC encoder operates in different different predefined contexts. For each predetermined set of symbols to be encoded (for example, the motion vectors, the quantized coefficients of the residue, etc.), there is at least one context. For most predetermined sets of symbols, there are actually several contexts each corresponding to a particular environment of the symbol to be encoded. The environment consists, for example, in the previously coded blocks which are close to the current block to be coded or else in the previously coded blocks of another image than that containing the current block to be coded. Thus, a symbol to be encoded is always in a known context of the decoder and the encoder.
Le rôle des contextes est d'identifier des ensembles de symboles correspondant à une statique homogène. Une probabilité courante d'apparition de symbole est alors déterminée pour chaque contexte. Ceci nécessite de maintenir à jour autant de probabilités courantes d'apparition de symboles que de contextes. The role of contexts is to identify sets of symbols corresponding to a homogeneous statistic. A common probability of symbol occurrence is then determined for each context. This requires maintaining as many common probabilities of symbols as contexts.
Selon l'invention, il est supposé exister M contextes différents {C1, C2, Cj,..., CM}, où M est un entier supérieur ou égal à 1 et où 1 <_j<_M, avec p(Cj) la probabilité estimée courante d'apparition de symbole associée au contexte Cj. En référence à la figure 2A, la quatrième étape de codage C4 consiste à construire un flux F représentant, sous forme binaire, les blocs traités compressés par l'unité de codage UC précitée, ainsi qu'une version décodée desdits blocs traités. Lesdits blocs traités décodés sont susceptibles d'être réutilisés par l'unité de codage UC représentée sur la figure 3A ou 3B. La construction du flux binaire F est mise en oeuvre dans un module CF de construction de flux, tel que représenté sur la figure 3A. According to the invention, it is supposed to exist M different contexts {C1, C2, Cj, ..., CM}, where M is an integer greater than or equal to 1 and where 1 <_j <_M, with p (Cj) la estimated current probability of occurrence of a symbol associated with the context Cj. With reference to FIG. 2A, the fourth coding step C4 consists of constructing a stream F representing, in binary form, the processed blocks compressed by the above-mentioned coding unit UC, as well as a decoded version of said processed blocks. Said decoded processed blocks may be reused by the encoding unit UC shown in Fig. 3A or 3B. The construction of the bit stream F is implemented in a CF module of flow construction, as shown in FIG. 3A.
Le flux F est ensuite transmis par un réseau de communication (non représenté), à un terminal distant. Celui-ci comporte un décodeur qui sera décrit plus en détail dans la suite de la description. On va maintenant décrire, en référence à la figure 2B, les différentes sous-étapes spécifiques de l'invention, telles que mises en oeuvre lors de l'étape C3 de codage précitée, dans l'unité de codage UC. Au cours d'une étape C31, le module de codage entropique MCE procède à une initialisation de ses variables d'état. Selon l'exemple représenté, qui utilise le codage arithmétique décrit précédemment, il s'agit d'une initialisation d'un intervalle représentatif de la probabilité d'apparition courante p(Cj) d'un symbole contenu dans l'ensemble prédéterminé de symboles, pour chacun des M contextes Cl, C2,..., Cj,...,CM. De façon connue en tant que telle, cet intervalle est initialisé avec deux bornes L et H, respectivement inférieure et supérieure. La valeur de la borne inférieure L est fixée à 0, tandis que la valeur de la borne supérieure est fixée à 1, ce qui correspond à la probabilité d'apparition d'un premier symbole parmi tous les symboles de l'ensemble prédéterminé de symboles. La taille R de cet intervalle est donc définie à ce stade par R=H-L=1. L'intervalle initialisé est en outre partitionné classiquement en une pluralité de sous intervalles prédéterminés qui sont représentatifs respectivement des probabilités d'apparition des symboles de l'ensemble prédéterminé de symboles. Au cours d'une étape C32, l'unité de codage UC sélectionne comme bloc courant B; le premier bloc B, à coder de l'image courante IE. Comme représenté à la figure 1A ou 4, il s'agit du premier bloc de gauche de l'image 1E. Au cours d'une étape C33, l'unité de codage UC procède au codage du premier bloc courant B1. Une telle étape comprend une pluralité de sous-étapes C331 à C343 qui vont être décrites ci-dessous. Au cours de la première sous-étape C331, le module de codage prédictif MCP procède au codage prédictif du bloc courant B, par des techniques connues de prédiction intra et/ou inter, au cours duquel le bloc B, est prédit par rapport à au moins un bloc précédemment codé et décodé. The stream F is then transmitted by a communication network (not shown) to a remote terminal. This includes a decoder which will be described in more detail in the following description. Reference will now be made to FIG. 2B, the different specific sub-steps of the invention, as implemented during the aforementioned coding step C3, in the coding unit UC. During a step C31, the entropic coding module MCE initializes its state variables. According to the example shown, which uses the arithmetic coding described above, it is an initialization of an interval representative of the current occurrence probability p (Cj) of a symbol contained in the predetermined set of symbols for each of the M contexts Cl, C2, ..., Cj, ..., CM. In known manner as such, this interval is initialized with two terminals L and H, respectively lower and upper. The value of the lower bound L is set to 0, while the value of the upper bound is set to 1, which corresponds to the probability of occurrence of a first symbol among all the symbols of the predetermined set of symbols. . The size R of this interval is therefore defined at this stage by R = H-L = 1. The initialized interval is further conventionally partitioned into a plurality of predetermined sub-intervals which are respectively representative of the appearance probabilities of the symbols of the predetermined set of symbols. During a step C32, the coding unit UC selects as current block B; the first block B, to be encoded of the current image IE. As shown in FIG. 1A or 4, this is the first left block of the image 1E. During a step C33, the coding unit UC proceeds to the coding of the first current block B1. Such a step comprises a plurality of sub-steps C331 to C343 which will be described below. During the first sub-step C331, the predictive coding module MCP performs the predictive coding of the current block B, by known intra and / or inter prediction techniques, during which the block B is predicted with respect to least one block previously coded and decoded.
Il va de soi que d'autres modes de prédiction intra tels que proposé dans la norme H.264 sont possibles. Le bloc courant B1 peut être également soumis à un codage prédictif en mode inter, au cours duquel le bloc courant est prédit par rapport à un bloc issu d'une image précédemment codée et décodée. D'autres types de prédiction sont bien entendu envisageables. Parmi les prédictions possibles pour un bloc courant, la prédiction optimale est choisie selon un critère débit distorsion bien connu de l'homme du métier. Ladite étape de codage prédictif précitée permet de construire un bloc prédit Bp1 qui est une approximation du bloc courant B1. Les informations relatives à ce codage prédictif seront ultérieurement inscrites dans le flux F transmis au décodeur. De telles informations comprennent notamment le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction intra, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter. Ces informations sont compressées par le codeur CO. Au cours de la sous-étape suivante C332, il est procédé à la soustraction du bloc prédit Bp1 du bloc courant B1 pour produire un bloc résidu Br1. It goes without saying that other intra prediction modes as proposed in the H.264 standard are possible. The current block B1 may also be subjected to inter-mode predictive coding, during which the current block is predicted with respect to a block derived from a previously coded and decoded picture. Other types of prediction are of course conceivable. Among the possible predictions for a current block, the optimal prediction is chosen according to a distortion flow criterion well known to those skilled in the art. Said aforementioned predictive coding step makes it possible to construct a predicted block Bp1 which is an approximation of the current block B1. The information relating to this predictive coding will subsequently be written in the stream F transmitted to the decoder. Such information includes in particular the type of prediction (inter or intra), and if appropriate, the intra prediction mode, the type of partitioning of a block or macroblock if the latter has been subdivided, the image index of reference and displacement vector used in the inter prediction mode. This information is compressed by the CO encoder. During the following substep C332, the predicted block Bp1 of the current block B1 is subtracted to produce a residue block Br1.
Au cours de la sous-étape suivante C333, il est procédé à la transformation du bloc résidu Br1 selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt1. Au cours de la sous-étape suivante C334, il est procédé à la quantification du bloc transformé Bt1 selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bq1 est alors obtenu. L'ensemble de coefficients quantifiés du bloc Bq1 représentent les symboles à coder du bloc B1. De tels symboles sont notés x1, x2,...,xl,...,xL, avec 1<_I<_L. During the following substep C333, the residue block Br1 is transformed according to a conventional direct transformation operation such as, for example, a discrete cosine transformation of the DCT type, to produce a transformed Bt1 block. During the following sub-step C334, the transformed block Bt1 is quantized according to a conventional quantization operation, such as, for example, a scalar quantization. A block of quantized coefficients Bq1 is then obtained. The set of quantized coefficients of the block Bq1 represent the symbols to be encoded of the block B1. Such symbols are denoted x1, x2, ..., x1, ..., xL, with 1 <_I <_L.
Au cours de la sous-étape suivante C335, le module de codage entropique MCE sélectionne comme symbole courant xl à coder le premier symbole xl du bloc B1. During the next substep C335, the MCE entropy coding module selects as the current symbol x1 to encode the first symbol x1 of the block B1.
Au cours de la sous-étape suivante C336, il est procédé, dans le module de codage entropique MCE, à la détermination d'un contexte Cj associé audit symbole xl, parmi l'ensemble prédéterminé de contextes Cl, C2,..., Cj,...,CM. Une telle étape est classique en tant que telle. Le contexte Cj est déduit du type du symbole xl et des autres données disponibles, telles que par exemple les valeurs des vecteurs de mouvement, le mode de prédiction utilisé, les valeurs des pixels, etc.... Au cours de la sous-étape suivante C337, il est procédé, dans le module de codage entropique MCE, à l'estimation de la probabilité p(Cj) d'apparition du symbole xl sélectionné, en fonction du contexte Cj déterminé. Au cours de la sous-étape suivante C338, il est procédé, dans le module de codage entropique MCE, au codage arithmétique du symbole courant xl à l'aide de la probabilité estimée p(Cj). Au cours de la sous-étape suivante C339, il est procédé avantageusement selon l'invention à la sélection d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé. Dans l'exemple représenté : - l'une desdites méthodes de mise à jour, appelée méthode classique, est celle qui est mise en oeuvre dans les deux tables de transition TL et TR d'un codeur CABAC de l'art antérieur, telles que décrites plus haut dans la description, - l'autre desdites méthodes de mise à jour, appelée méthode rapide, est celle qui est mise en oeuvre dans deux tables de transition TLR et TMR spécifiques à l'invention. Les deux tables de transition TLR et TMR permettent une mise à jour de la probabilité d'apparition de symbole beaucoup plus rapide que celle effectuée dans les deux tables de transition TL et TM de l'art antérieur, le choix de l'une ou l'autre des tables étant fonction du type de symbole codé, MPS ou LPS. During the following sub-step C336, in the entropic coding module MCE, a context Cj associated with said symbol x1 is determined from among the predetermined set of contexts C1, C2, ..., Cj, ..., CM. Such a step is conventional as such. The context Cj is deduced from the type of the symbol x1 and the other available data, such as, for example, the values of the motion vectors, the prediction mode used, the values of the pixels, etc. During the substep following C337, in the entropic coding module MCE, the probability p (Cj) of the appearance of the selected symbol x1 is evaluated as a function of the context Cj determined. During the following sub-step C338, the arithmetic coding of the current symbol x1 is performed in the entropy module MCE using the estimated probability p (Cj). During the following sub-step C339, it is advantageously according to the invention to select a method of updating said estimated probability p (Cj) from at least two different methods, according to a criterion. predetermined. In the example shown: one of said updating methods, called the conventional method, is that implemented in the two transition tables TL and TR of a CABAC coder of the prior art, such as described above in the description, the other of said updating methods, called the fast method, is that which is implemented in two transition tables TLR and TMR specific to the invention. The two transition tables TLR and TMR make it possible to update the probability of occurrence of a symbol much faster than that carried out in the two transition tables TL and TM of the prior art, the choice of one or the other other tables depending on the type of coded symbol, MPS or LPS.
La table de transition TMR, pour un MPS, contient les valeurs suivantes : TMR={0,0,0,1,1,2,3,4,4,5,6,7,7,8,9,9,10,11,11,12,13,13,14,14,15,16,16,1 7,17,18,18,19,19,20,20,20,21,21,22,22,22,23,23,23,24,24,24,25,25,25,25,26, 2 6,26,26,27,27,27,27,27,27,28,28,63}. La table de transition TLR, pour un LPS, contient les valeurs suivantes : TLR={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49, 50, 51,52,53,54,55,56,57,58,59,60,61,62,62,62,631. Les différents critères prédéterminés pour sélectionner l'une ou l'autre des méthodes de mise à jour sont explicités ci-dessous. Selon un premier mode préféré de réalisation, dans le cas où les étapes C336 à C338 sont réitérées pour chacun des contextes Cl à CM précités, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés pour tous lesdits contextes Cl à CM et un nombre N1 prédéterminé, avec par exemple N1=5. The TMR transition table, for an MPS, contains the following values: TMR = {0,0,0,1,1,2,3,4,4,5,6,7,7,8,9,9, 10,11,11,12,13,13,14,14,15,16,16,1 7,17,18,18,19,19,20,20,20,21,21,22,22,22 , 23,23,23,24,24,24,25,25,25,25,26, 2 6,26,26,27,27,27,27,27,27,28,28,63}. The TLR transition table, for an LPS, contains the following values: TLR = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42, 43,44,45,46,47,48,49, 50, 51,52,53,54,55,56,57,58,59,60,61,62,62,62,631. The various predetermined criteria for selecting one or the other of the update methods are explained below. According to a first preferred embodiment, in the case where the steps C336 to C338 are repeated for each of the contexts C1 to CM mentioned above, the selection of one or the other of said updating methods depends on the result of a comparison between the number of symbols already coded for all said contexts C1 to CM and a predetermined number N1, with for example N1 = 5.
Selon ce premier mode : - la méthode de mise à jour rapide est sélectionnée si le nombre de symboles déjà codés pour tous lesdits contextes Cl à CM est inférieur ou égal au nombre N1 prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. According to this first mode: the fast update method is selected if the number of symbols already coded for all said contexts C1 to CM is less than or equal to the predetermined number N1, the conventional update method is selected otherwise.
Selon un deuxième mode préféré de réalisation, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés uniquement selon ledit contexte déterminé Cj et un nombre N2 prédéterminé, avec par exemple N2=5. Dans l'exemple représenté sur la figure 1A : - la méthode de mise à jour rapide est sélectionnée si le nombre de symboles déjà codés selon ledit contexte déterminé Cj est inférieur ou égal audit nombre N2 prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. Dans l'exemple représenté sur la figure 4 : - la méthode de mise à jour rapide est sélectionnée si le nombre de symboles déjà codés selon ledit contexte déterminé Cj, dans une ligne courante SEk, est inférieur ou égal audit nombre N2 prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. According to a second preferred embodiment, the selection of one or the other of said updating methods depends on the result of a comparison between the number of symbols already coded only according to said determined context Cj and a predetermined number N2. , with for example N2 = 5. In the example shown in FIG. 1A: the fast updating method is selected if the number of symbols already encoded according to said determined context Cj is less than or equal to said predetermined number N2; the conventional update method is selected otherwise. In the example shown in FIG. 4: the fast update method is selected if the number of symbols already encoded according to said determined context Cj, in a current line SEk, is less than or equal to said predetermined number N2; classic update method is selected otherwise.
Selon encore un autre exemple, il est procédé à la détermination de premier et deuxième ensembles contenant respectivement des nombres Q et R de symboles précédemment codés selon ledit contexte déterminé Cj, le nombre Q de symboles du premier ensemble étant plus élevé que le nombre R de symboles dudit deuxième ensemble. Dans l'exemple représenté, Q=20 et R=5. A la suite de cette étape : - la méthode de mise à jour rapide est sélectionnée si la différence entre la fréquence d'apparition dudit symbole courant dans le premier ensemble et la fréquence d'apparition dudit symbole courant dans le deuxième ensemble est supérieure à un seuil S prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. Dans cet exemple, S est un entier qui est par exemple égal à 0,5. Selon un deuxième mode préféré de réalisation, il est procédé classiquement aux étapes d'estimation de la probabilité d'apparition du symbole courant, de codage entropique dudit symbole courant et de la mise à jour de la probabilité estimée à l'aide de la table de transition TL ou TM selon le type de symbole courant codé. Parallèlement à ces étapes classiques, sont mises en oeuvre par simulation les étapes de : - estimation d'une autre probabilité du symbole courant en fonction du contexte déterminé Cj, ladite autre probabilité étant adaptée pour être mise à jour selon la méthode rapide précitée, - codage entropique dudit symbole à l'aide de ladite autre probabilité estimée. A la suite de ces étapes : - la méthode de mise à jour rapide est sélectionnée si la différence entre ladite autre probabilité estimée et ladite probabilité estimée est supérieure à un seuil S' prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. Dans cet exemple, S' est un entier qui est par exemple égal à 0,5. Si à l'issue de l'étape de sélection C339 précitée, la méthode de mise à jour classique est sélectionnée, au cours de la sous-étape C340a), la probabilité estimée p(Cj) du symbole courant est mise à jour de la même façon que dans l'art antérieur, à l'aide de l'une des tables de transition TL et TM précitées. Si à l'issue de l'étape de sélection C339 précitée, la méthode de mise à jour rapide est sélectionnée, au cours de la sous-étape C340b), la probabilité estimée p(Cj) du symbole courant est mise à jour à l'aide des tables de transition rapide TLR et TMR précitées. Une telle mise à jour rapide de la probabilité estimée du symbole courant codé est effectuée de la façon suivante : - si le symbole courant codé est un LPS, la nouvelle probabilité eSt PTLR[e]. - si le symbole courant codé est un MPS, alors, si la probabilité p(Cj) vaut po, les symboles MPS et LPS sont inversés et la nouvelle probabilité reste po, sinon la nouvelle probabilité est PTMR[e]. According to yet another example, determination is made of first and second sets respectively containing numbers Q and R of symbols previously coded according to said determined context Cj, the number Q of symbols of the first set being higher than the number R of symbols of said second set. In the example shown, Q = 20 and R = 5. Following this step: the fast update method is selected if the difference between the frequency of appearance of said current symbol in the first set and the frequency of appearance of said current symbol in the second set is greater than one. threshold S predetermined, - the conventional update method is selected otherwise. In this example, S is an integer that is for example equal to 0.5. According to a second preferred embodiment, the steps of estimating the probability of appearance of the current symbol, entropic coding of said current symbol and updating of the estimated probability using the table are conventionally carried out. of transition TL or TM according to the type of coded current symbol. In parallel with these conventional steps, are implemented by simulation the steps of: estimating another probability of the current symbol as a function of the determined context Cj, said other probability being adapted to be updated according to the aforementioned rapid method; entropy encoding said symbol using said other estimated probability. Following these steps: the fast update method is selected if the difference between said other estimated probability and said estimated probability is greater than a predetermined threshold S ', the conventional update method is selected otherwise. In this example, S 'is an integer which is for example equal to 0.5. If at the end of the selection step C339 above, the conventional updating method is selected, during the sub-step C340a), the estimated probability p (Cj) of the current symbol is updated by the same way as in the prior art, using one of the aforementioned TL and TM transition tables. If at the end of the selection step C339 above, the fast updating method is selected, during the substep C340b), the estimated probability p (Cj) of the current symbol is updated at using the aforementioned TLR and TMR fast transition tables. Such a quick update of the estimated probability of the current coded symbol is performed as follows: if the current coded symbol is an LPS, the new probability is PTLR [e]. if the coded current symbol is an MPS, then, if the probability p (Cj) is po, the symbols MPS and LPS are inverted and the new probability remains po, otherwise the new probability is PTMR [e].
Au cours de la sous-étape suivante C341, il est testé si le symbole xl courant codé est le dernier symbole du bloc courant B,. Si tel n'est pas le cas, il est procédé à l'itération des étapes C335 à C341, pour 11L. Si tel est le cas, au cours d'une sous-étape C342, l'unité de codage UC teste si le bloc courant codé est le dernier bloc de l'image IE. Si le bloc courant est le dernier bloc de l'image IE, au cours d'une étape C343, il est mis fin au procédé de codage. Si tel n'est pas le cas, il est procédé à la sélection du bloc suivant B; à coder conformément à l'ordre de parcours raster scan précité, par itération des étapes C32 à C342, pour 1 <_i<_Z. Dans l'exemple de procédé de codage qui vient d'être décrit, les étapes de codage entropique C335 à C340a)/C340b) sont mises en oeuvre une fois que tous les symboles x1, x2,..,xl,...,xL d'un bloc ont été obtenus à l'issue de l'étape C334 de quantification précitée. During the next substep C341, it is tested whether the current coded symbol x1 is the last symbol of the current block B ,. If this is not the case, it is proceeded to the iteration of the steps C335 to C341, for 11L. If this is the case, during a substep C342, the coding unit UC tests whether the coded current block is the last block of the image IE. If the current block is the last block of the IE image, during a step C343, the coding process is terminated. If this is not the case, the next block B is selected; to code in accordance with the above-mentioned raster scan order, by iterating steps C32 to C342, for 1 <_i <_Z. In the exemplary encoding method which has just been described, the entropic coding steps C335 to C340a) / C340b) are implemented once all the symbols x1, x2, .., x1,. xL of a block were obtained at the end of the quantification step C334 mentioned above.
A titre d'alternative, dès qu'un symbole est obtenu à l'issue de l'étape C334, les étapes de codage entropique C335 à C340a)/C340b) peuvent directement être mises en oeuvre relativement à ce symbole. As an alternative, as soon as a symbol is obtained at the end of step C334, the entropy coding steps C335 to C340a) / C340b) can be directly implemented relative to this symbol.
Description détaillée de la partie décodage Un mode de réalisation du procédé de décodage selon l'invention va maintenant être décrit, dans lequel le procédé de décodage est implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme H.264/MPEG-4 AVC. Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes Dl à D3 représentées à la figure 5A. Selon le mode de réalisation de l'invention, le procédé de décodage selon l'invention est implémenté dans un dispositif de décodage DO représenté à la figure 6A. En référence à la figure 5A, la première étape de décodage Dl est l'identification, dans ledit flux F, des blocs B1, B2,..., B;,..., Bz qui ont été codés par le codeur CO. Dans l'exemple représenté sur la figure 1A ou 4, lesdits blocs ont une forme carrée et ont tous la même taille. En fonction de la taille de l'image qui n'est pas forcément un multiple de la taille des blocs, les derniers blocs à gauche et les derniers blocs en bas peuvent ne pas être carrés. Dans un mode alternatif de réalisation, les blocs peuvent être par exemple de taille rectangulaire et/ou non alignés les uns avec les autres. Chaque bloc ou macrobloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles. Une telle identification est effectuée par un module logiciel EXDO d'analyse de flux, tel que représenté à la figure 6A. Dans le cas où l'étape de codage optionnelle C2 précitée a été mise en oeuvre de façon à obtenir le regroupement des blocs précités en un nombre prédéterminé P de sous-ensembles de blocs consécutifs SE1, SE2,.., SEk,...,SEP, l'étape de décodage Dl consiste à identifier dans ledit flux F des sous-flux contenant respectivement les P sous-ensembles de blocs SE1, SE2,...,SEk,..., SEP codés précédemment. Dans l'exemple représenté sur la figure 4, le nombre prédéterminé P est égal à 6. En référence à la figure 5A, la deuxième étape de décodage D2 est le décodage des blocs B, à BM précédemment codés, ou optionnellement de chacun desdits sous-ensembles de blocs SE1, SE2, SE3, SE4, SES, SE6 précédemment codés, les blocs d'un sous-ensemble considéré étant alors décodés selon un ordre de parcours séquentiel PS prédéterminé. Dans l'exemple représenté sur la figure 4, les blocs d'un sous-ensemble SEk courant (1 <_k<_P) sont décodés les uns après les autres, de la gauche vers la droite, comme indiqué par la flèche PS. A l'issue de l'étape D2, des blocs décodés BD1, BD2,..., BD;,..., BDZ sont obtenus. Selon l'invention, un tel décodage est mis en oeuvre par une unité de décodage UD tel que représentée sur la figure 6A. De façon connue en tant que telle, le décodeur DO comprend une mémoire tampon MT qui est adaptée pour contenir les probabilités d'apparition de symboles telles que progressivement remises à jour au fur et à mesure du décodage d'un bloc courant. De façon connue en tant que telle, le décodeur DO comprend une mémoire tampon MT qui est adaptée pour contenir les probabilités d'apparition de symboles telles que progressivement remises à jour au fur et à mesure du décodage d'un bloc courant. Comme représenté plus en détail sur la figure 6B, l'unité de décodage UD comprend : - un module de décodage entropique dudit bloc courant par apprentissage d'au moins une probabilité d'apparition de symbole calculée pour au moins un bloc précédemment décodé, notée MDE, - un module de décodage prédictif d'un bloc courant par rapport audit bloc précédemment décodé, notée MDP. Le module de décodage prédictif MDP est apte à effectuer un décodage prédictif du bloc courant, selon les techniques de prédiction classiques, telles que par exemple en mode Intra et/ou Inter. Le module de décodage entropique MDE est quant à lui de type CABAC, mais modifié selon la présente invention comme cela sera décrit plus loin dans la description. DETAILED DESCRIPTION OF THE DECODING PART An embodiment of the decoding method according to the invention will now be described, in which the decoding method is implemented in a software or hardware way by modifying a decoder initially conforming to the H.264 standard. / MPEG-4 AVC. The decoding method according to the invention is represented in the form of an algorithm comprising steps D1 to D3 represented in FIG. 5A. According to the embodiment of the invention, the decoding method according to the invention is implemented in a decoding device DO shown in FIG. 6A. With reference to FIG. 5A, the first decoding step D1 is the identification, in said stream F, of the blocks B1, B2,..., B1,..., Bz which have been coded by the coder CO. In the example shown in Figure 1A or 4, said blocks are square in shape and all of the same size. Depending on the size of the image that is not necessarily a multiple of the size of the blocks, the last blocks on the left and the last blocks on the bottom may not be square. In an alternative embodiment, the blocks may be for example of rectangular size and / or not aligned with each other. Each block or macroblock can also be itself divided into sub-blocks that are themselves subdividable. Such identification is performed by an EXDO flow analysis software module, as shown in FIG. 6A. In the case where the optional coding step C2 above has been implemented so as to obtain the grouping of the aforementioned blocks into a predetermined number P of subsets of consecutive blocks SE1, SE2, .., SEk,. , SEP, the decoding step D1 consists in identifying in said stream F substreams respectively containing the P subsets of blocks SE1, SE2, ..., SEk, ..., SEP coded previously. In the example shown in FIG. 4, the predetermined number P is equal to 6. With reference to FIG. 5A, the second decoding step D2 is the decoding of the previously coded blocks B, to BM, or optionally of each of said sub-codes. -sets of blocks SE1, SE2, SE3, SE4, SES, SE6 previously coded, the blocks of a subset considered then being decoded according to a predetermined sequential travel order PS. In the example shown in Figure 4, the blocks of a subset SEk current (1 <_k <_P) are decoded one after the other, from left to right, as indicated by the arrow PS. At the end of step D2, decoded blocks BD1, BD2,..., BD,..., BDZ are obtained. According to the invention, such a decoding is implemented by a decoding unit UD as shown in FIG. 6A. In a manner known per se, the decoder DO comprises a buffer memory MT which is adapted to contain the symbol appearance probabilities such as progressively updated as a current block is decoded. In a manner known per se, the decoder DO comprises a buffer memory MT which is adapted to contain the symbol appearance probabilities such as progressively updated as a current block is decoded. As shown in more detail in FIG. 6B, the decoding unit UD comprises: an entropy decoding module of said current block by learning at least one symbol appearance probability calculated for at least one previously decoded block, denoted MDE, a decoding module predictive of a current block with respect to said previously decoded block, denoted CDM. The predictive decoding module MDP is able to perform a predictive decoding of the current block, according to conventional prediction techniques, such as for example in Intra and / or Inter mode. The entropy decoding module MDE is CABAC type, but modified according to the present invention as will be described later in the description.
Selon l'invention, de la même manière qu'au codage décrit plus haut, il est supposé, au décodage, exister M contextes différents {Cl, C2, ..., Cj,..., CM}, où M est un entier supérieur ou égal à 1 et où 1 <_j<_M, avec p(Cj) la probabilité estimée courante d'apparition de symbole associée au contexte Cj. According to the invention, in the same way as in the coding described above, it is assumed, at decoding, to exist M different contexts {C1, C2, ..., Cj, ..., CM}, where M is a integer greater than or equal to 1 and where 1 <_j <_M, with p (Cj) the current estimated probability of occurrence of a symbol associated with the context Cj.
En référence à la figure 5A, la troisième étape de décodage D3 est la reconstruction d'une image décodée ID à partir des blocs décodés BD1, BD2,..., BDk,..., BDp obtenus à l'étape de décodage D2. Plus précisément, les blocs décodés sont transmis à une unité URI de reconstruction d'image telle que représentée à la figure 6A. Au cours de cette étape D3, l'unité URI écrit les blocs décodés dans une image décodée au fur et à mesure que ces blocs deviennent disponibles, de façon à délivrer une image ID entièrement décodée. On va maintenant décrire, en référence à la figure 5B, les différentes sous-étapes spécifiques de l'invention, telles que mises en oeuvre lors de l'étape D2 de décodage précitée, dans l'unité de décodage UD. Au cours d'une étape D21, le module de décodage entropique MDE procède à une initialisation de ses variables d'état. Selon l'exemple représenté et de la même façon qu'à l'étape de codage C31 précitée, il s'agit d'une initialisation d'un intervalle représentatif de la probabilité d'apparition courante p(Cj) d'un symbole contenu dans l'ensemble prédéterminé de symboles, pour chacun des M contextes Cl, C2,..., Cj,...,CM. Au cours d'une étape D22, l'unité de décodage UD sélectionne comme bloc courant B; le premier bloc B1 à décoder dans le flux F. Comme représenté à la figure 1A ou 4, il s'agit du premier bloc de gauche de l'image IE. With reference to FIG. 5A, the third decoding step D3 is the reconstruction of a decoded picture ID from the decoded blocks BD1, BD2,..., BDk,..., BDp obtained at the decoding step D2. . More specifically, the decoded blocks are transmitted to an image reconstruction URI unit as shown in FIG. 6A. During this step D3, the URI unit writes the decoded blocks in a decoded image as these blocks become available, so as to deliver a fully decoded ID image. We will now describe, with reference to FIG. 5B, the different specific sub-steps of the invention, as implemented during the aforementioned decoding step D2, in the decoding unit UD. During a step D21, the entropy decoding module MDE initializes its state variables. According to the example shown and in the same way as in the aforementioned coding step C31, it is an initialization of an interval representative of the current occurrence probability p (Cj) of a content symbol in the predetermined set of symbols, for each of the M contexts C1, C2, ..., Cj, ..., CM. During a step D22, the decoding unit UD selects as current block B; the first block B1 to be decoded in the stream F. As shown in FIG. 1A or 4, it is the first block on the left of the image IE.
Au cours d'une étape D23, l'unité de décodage UD procède au décodage du premier bloc courant B1. Une telle étape comprend une pluralité de sous-étapes D231 à D243 qui vont être décrites ci-dessous. Au cours de la sous-étape D231, le module de décodage entropique MDE sélectionne comme symbole courant xl à décoder le premier symbole xl du bloc B1. Au cours de la sous-étape suivante D232, il est procédé, dans le module de décodage entropique MDE, à la détermination d'un contexte Cj associé audit symbole xl, parmi l'ensemble prédéterminé de contextes Cl, C2,..., Cj,...,CM. Une telle étape est classique en tant que telle. Le contexte Cj est déduit du type du symbole xl et des autres données disponibles, telles que par exemple les valeurs des vecteurs de mouvement, le mode de prédiction utilisé, les valeurs des pixels, etc.... During a step D23, the decoding unit UD decodes the first current block B1. Such a step comprises a plurality of substeps D231 to D243 which will be described below. During substep D231, the entropy decoding module MDE selects as the current symbol x1 to decode the first symbol x1 of block B1. During the following sub-step D232, in the entropy decoding module MDE, a context Cj associated with said symbol x1 is determined from among the predetermined set of contexts C1, C2, ..., Cj, ..., CM. Such a step is conventional as such. The context Cj is deduced from the type of the symbol x1 and the other available data, such as, for example, the values of the motion vectors, the prediction mode used, the values of the pixels, etc.
Au cours de la sous-étape suivante D233, il est procédé, dans le module de décodage entropique MDE, à l'estimation de la probabilité p(Cj) d'apparition du symbole xl sélectionné, en fonction du contexte Cj déterminé. Au cours de la sous-étape suivante D234, il est procédé, dans le module de décodage entropique MDE, au décodage arithmétique du symbole courant xl à l'aide de la probabilité estimée p(Cj). Au cours de la sous-étape suivante D235, il est procédé avantageusement selon l'invention à la sélection d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé. Dans l'exemple représenté : - l'une desdites méthodes de mise à jour est la méthode classique utilisée à l'étape de codage C339 précitée, - l'autre desdites méthodes de mise à jour est la méthode rapide utilisée à l'étape de codage C339 précitée, laquelle est mise en oeuvre dans les deux tables de transition TLR et TMR spécifiques à l'invention. Les deux tables de transition TLR et TMR ayant déjà été décrites lors de la description du procédé de codage précité, elles ne seront donc pas à nouveau décrites ici. During the following substep D233, in the entropy decoding module MDE, estimation of the probability p (Cj) of appearance of the selected symbol x1 is carried out as a function of the context Cj determined. During the following substep D234, the arithmetic decoding of the current symbol x1 is performed in the entropy decoding module MDE using the estimated probability p (Cj). During the following substep D235, it is advantageously according to the invention to select a method for updating said estimated probability p (Cj) from at least two different methods, according to a criterion predetermined. In the example shown: - one of said updating methods is the conventional method used in the aforementioned coding step C339, - the other of said updating methods is the quick method used in the step of updating. coding C339 above, which is implemented in the two transition tables TLR and TMR specific to the invention. Since both TLR and TMR transition tables have already been described in the description of the aforementioned coding method, they will not be described again here.
Les différents critères prédéterminés pour sélectionner l'une ou l'autre des méthodes de mise à jour sont explicités ci-dessous. Selon un premier mode préféré de réalisation, dans le cas où les étapes D232 à D234 sont réitérées pour chacun des contextes Cl à CM précités, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés pour tous lesdits contextes Cl à CM et un nombre N1 prédéterminé, avec par exemple N1=5. Selon ce premier mode : - la méthode de mise à jour rapide est sélectionnée si le nombre de symboles décodés pour tous lesdits contextes Cl à CM est inférieur ou égal au nombre N1 prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. Selon un deuxième mode préféré de réalisation, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés uniquement selon ledit contexte déterminé Cj et un nombre N2 prédéterminé, avec par exemple N2=5. Dans l'exemple représenté sur la figure 1A : - la méthode de mise à jour rapide est sélectionnée si le nombre de symboles décodés selon ledit contexte déterminé Cj est inférieur ou égal audit nombre N2 prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. Dans l'exemple représenté sur la figure 4 : - la méthode de mise à jour rapide est sélectionnée si le nombre de symboles décodés selon ledit contexte déterminé Cj, dans une ligne courante SEk, est inférieur ou égal audit nombre N2 prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. Selon encore un autre exemple, il est procédé à la détermination de 15 premier et deuxième ensembles contenant respectivement des nombres Q et R de symboles précédemment décodés selon ledit contexte déterminé Cj, le nombre Q de symboles du premier ensemble étant plus élevé que le nombre R de symboles dudit deuxième ensemble. Dans l'exemple représenté, Q=20 et R=5. 20 A la suite de cette étape : - la méthode de mise à jour rapide est sélectionnée si la différence entre la fréquence d'apparition dudit symbole courant dans le premier ensemble et la fréquence d'apparition dudit symbole courant dans le deuxième ensemble est supérieure à un seuil S prédéterminé, 25 - la méthode de mise à jour classique est sélectionnée sinon. Dans cet exemple, S est un entier qui est par exemple égal à 0,5. Selon un deuxième mode préféré de réalisation, il est procédé classiquement aux étapes d'estimation de la probabilité d'apparition du symbole courant, de décodage entropique dudit symbole courant et de la mise 30 à jour de la probabilité estimée à l'aide de la table de transition TL ou TM selon le type de symbole courant décodé. Parallèlement à ces étapes classiques, sont mises en oeuvre par simulation les étapes de : 10 - estimation d'une autre probabilité du symbole courant en fonction du contexte déterminé Cj, ladite autre probabilité étant adaptée pour être mise à jour selon la méthode rapide précitée, - décodage entropique dudit symbole courant à l'aide de ladite autre probabilité estimée. A la suite de ces étapes : - la méthode de mise à jour rapide est sélectionnée si la différence entre ladite autre probabilité estimée et ladite probabilité estimée est supérieure à un seuil S' prédéterminé, - la méthode de mise à jour classique est sélectionnée sinon. Dans cet exemple, S' est un entier qui est par exemple égal à 0,5. Si à l'issue de l'étape de sélection D235 précitée, la méthode de mise à jour classique est sélectionnée, au cours de la sous-étape D236a), la probabilité estimée p(Cj) du symbole courant est mise à jour de la même façon que dans l'art antérieur, à l'aide de l'une des tables de transition TL et TM précitées. Si à l'issue de l'étape de sélection D235 précitée, la méthode de mise à jour rapide est sélectionnée, au cours de la sous-étape D239b), la probabilité estimée p(Cj) du symbole courant est mise à jour à l'aide des tables de transition rapide TLR et TMR précitées. Une telle mise à jour rapide de la probabilité estimée du symbole courant codé est effectuée de la façon suivante : - si le symbole courant codé est un LPS, la nouvelle probabilité eSt PTLR[e]. - si le symbole courant codé est un MPS, alors, si la probabilité p(Cj) vaut po, les symboles MPS et LPS sont inversés et la nouvelle probabilité reste po, sinon la nouvelle probabilité est PTMR[e]. Au cours de la sous-étape suivante D237, il est testé si le symbole xl courant décodé est le dernier symbole du bloc courant B,. The various predetermined criteria for selecting one or the other of the update methods are explained below. According to a first preferred embodiment, in the case where the steps D232 to D234 are repeated for each of the contexts C1 to CM mentioned above, the selection of one or the other of said updating methods depends on the result of a comparison between the number of symbols decoded for all said contexts C1 to CM and a predetermined number N1, with for example N1 = 5. According to this first mode: the fast update method is selected if the number of symbols decoded for all said contexts C1 to CM is less than or equal to the predetermined number N1, the conventional updating method is selected otherwise. According to a second preferred embodiment, the selection of one or the other of said updating methods is a function of the result of a comparison between the number of symbols decoded only according to said determined context Cj and a predetermined number N2, with for example N2 = 5. In the example shown in FIG. 1A: the fast update method is selected if the number of symbols decoded according to said determined context Cj is less than or equal to said predetermined number N2; the conventional update method is selected if not. In the example shown in FIG. 4: the fast update method is selected if the number of symbols decoded according to said determined context Cj, in a current line SEk, is less than or equal to said predetermined number N2, the method Classic update is selected otherwise. According to yet another example, first and second sets respectively containing numbers Q and R of symbols previously decoded according to said determined context Cj are determined, the number Q of symbols of the first set being higher than the number R. symbols of said second set. In the example shown, Q = 20 and R = 5. Following this step: the fast updating method is selected if the difference between the frequency of appearance of said current symbol in the first set and the frequency of appearance of said current symbol in the second set is greater than a predetermined threshold S, 25 - the conventional updating method is selected otherwise. In this example, S is an integer that is for example equal to 0.5. According to a second preferred embodiment, the steps of estimating the probability of occurrence of the current symbol, of entropy decoding of said current symbol and of updating the estimated probability using the method are conventionally carried out. TL or TM transition table depending on the type of decoded current symbol. In parallel with these conventional steps, the following steps are implemented by simulation: estimation of another probability of the current symbol as a function of the determined context Cj, said other probability being adapted to be updated according to the aforementioned rapid method, entropy decoding said current symbol using said other estimated probability. Following these steps: the fast update method is selected if the difference between said other estimated probability and said estimated probability is greater than a predetermined threshold S ', the conventional update method is selected otherwise. In this example, S 'is an integer which is for example equal to 0.5. If, at the end of the selection step D235 mentioned above, the conventional update method is selected, during the sub-step D236a), the estimated probability p (Cj) of the current symbol is updated by the same way as in the prior art, using one of the aforementioned TL and TM transition tables. If at the end of the aforementioned selection step D235, the fast update method is selected, during the substep D239b), the estimated probability p (Cj) of the current symbol is updated to using the aforementioned TLR and TMR fast transition tables. Such a quick update of the estimated probability of the current coded symbol is performed as follows: if the current coded symbol is an LPS, the new probability is PTLR [e]. if the coded current symbol is an MPS, then, if the probability p (Cj) is po, the symbols MPS and LPS are inverted and the new probability remains po, otherwise the new probability is PTMR [e]. During the next substep D237, it is tested whether the decoded current symbol xl is the last symbol of the current block B ,.
Si tel n'est pas le cas, il est procédé à l'itération des étapes D231 à D237, pour 11L. If this is not the case, it is proceeded to the iteration of the steps D231 to D237, for 11L.
Si tel est le cas, au cours de la sous-étape D238, il est procédé, dans le module de décodage prédictif MDP, au décodage prédictif du bloc courant B,. Un tel décodage prédictif est effectué classiquement par des techniques connues de prédiction intra et/ou inter, au cours duquel le bloc B, est prédit par rapport à au moins un bloc précédemment décodé. Il va de soi que d'autres modes de prédiction intra tels que proposé dans la norme H.264 sont possibles. Au cours de cette étape, le décodage prédictif est effectué à l'aide des éléments de syntaxe décodés à l'étape précédente et comprenant notamment le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction intra, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter. Ladite étape de décodage prédictif précitée permet de construire un bloc prédit Bpi. Au cours de la sous-étape suivante D239, il est procédé, dans le module de décodage prédictif MDP, à la construction d'un bloc résidu quantifié Bq, à l'aide des éléments de syntaxe décodés précédemment. Au cours de la sous-étape suivante D240, il est procédé à la déquantification du bloc résidu quantifié Bq, selon une opération classique de déquantification qui est l'opération inverse de la quantification effectuée au codage à l'étape C334 précitée, pour produire un bloc déquantifié décodé BDt,. Au cours de la sous-étape suivante D241, il est procédé à la transformation inverse du bloc déquantifié BDt, qui est l'opération inverse de la transformation directe effectuée au codage à l'étape C333 précité. Un bloc résidu décodé BDr, est alors obtenu. Au cours de la sous-étape suivante D242, il est procédé à la construction du bloc décodé BD, en ajoutant ou bloc prédit Bpi le bloc résidu décodé BDr,. Au cours de la sous-étape D243, l'unité de décodage UD teste si le bloc courant décodé est le dernier bloc identifié dans le flux F. Si le bloc courant est le dernier bloc du flux F, au cours de la sous-étape D244, il est mis fin au procédé de décodage. If this is the case, during the sub-step D238, the predictive decoding of the current block B 1 is carried out in the predictive decoding module MDP. Such predictive decoding is performed conventionally by known intra and / or inter prediction techniques, in which block B is predicted with respect to at least one previously decoded block. It goes without saying that other intra prediction modes as proposed in the H.264 standard are possible. During this step, the predictive decoding is performed using the syntax elements decoded in the previous step and including in particular the type of prediction (inter or intra), and if appropriate, the intra prediction mode, the type of partitioning of a block or macroblock if the latter has been subdivided, the reference image index and the displacement vector used in the inter prediction mode. Said aforementioned predictive decoding step makes it possible to construct a predicted block Bpi. During the next substep D239, in the predictive decoding module MDP, a quantized residual block Bq is constructed using previously decoded syntax elements. During the following substep D240, the quantized residue block Bq is dequantized according to a conventional dequantization operation which is the inverse operation of the quantization performed at the coding step C334 above, to produce a dequantized block decoded BDt ,. During the following substep D241, the inverse transformation of the dequantized block BDt is carried out, which is the inverse operation of the direct transformation carried out at the coding in the aforementioned step C333. A decoded residue block BDr is then obtained. During the following substep D242, the decoded block BD is constructed, by adding or block predicts Bpi the decoded residue block BDr. During the sub-step D243, the decoding unit UD tests whether the decoded current block is the last block identified in the stream F. If the current block is the last block of the stream F, during the substep D244, the decoding process is terminated.
Si tel n'est pas le cas, il est procédé à la sélection du bloc suivant B; à décoder conformément à l'ordre de parcours raster scan précité, par itération des étapes D22 à D243, pour 1 <_i<_Z. Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention. Ainsi, la sélection d'une méthode de mise à jour n'est pas obligatoirement limitée à un ensemble de seulement deux méthodes possibles. If this is not the case, the next block B is selected; to be decoded according to the above-mentioned raster scan order, by iterating steps D22 to D243, for 1 <_i <_Z. It goes without saying that the embodiments which have been described above have been given for purely indicative and non-limiting purposes, and that many modifications can easily be made by those skilled in the art without departing from the scope. of the invention. Thus, the selection of an updating method is not necessarily limited to a set of only two possible methods.
Dans un mode de réalisation alternatif, trois méthodes de mise à jour pourraient être sélectionnées alternativement : - une méthode de mise à jour classique, celle de l'art antérieur, - la méthode de mise à jour rapide telle que mentionnée plus haut dans la description, - une méthode de mise à jour moins rapide que la méthode de mise à jour classique, appelée méthode lente. In an alternative embodiment, three updating methods could alternatively be selected: a conventional updating method, that of the prior art, the fast updating method as mentioned above in the description. , - a method of updating slower than the conventional update method, called slow method.
Claims (15)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1156344A FR2978005A1 (en) | 2011-07-12 | 2011-07-12 | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS |
PCT/FR2012/051551 WO2013007920A1 (en) | 2011-07-12 | 2012-07-03 | Method of coding and decoding images, device for coding and decoding and computer programs corresponding thereto |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1156344A FR2978005A1 (en) | 2011-07-12 | 2011-07-12 | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2978005A1 true FR2978005A1 (en) | 2013-01-18 |
Family
ID=46579216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1156344A Withdrawn FR2978005A1 (en) | 2011-07-12 | 2011-07-12 | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2978005A1 (en) |
WO (1) | WO2013007920A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049527A (en) * | 2019-12-23 | 2020-04-21 | 云南大学 | Image coding and decoding method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011022047A1 (en) * | 2009-08-21 | 2011-02-24 | Thomson Licensing | Methods and apparatus for explicit updates for symbol probabilities of an entropy encoder or decoder |
-
2011
- 2011-07-12 FR FR1156344A patent/FR2978005A1/en not_active Withdrawn
-
2012
- 2012-07-03 WO PCT/FR2012/051551 patent/WO2013007920A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011022047A1 (en) * | 2009-08-21 | 2011-02-24 | Thomson Licensing | Methods and apparatus for explicit updates for symbol probabilities of an entropy encoder or decoder |
Non-Patent Citations (5)
Title |
---|
A. ZANDI ET AL: "Adaptation for non-stationary binary sources for data compression", CONFERENCE RECORD OF THE TWENTY-NINTH ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS AND COMPUTERS, vol. 1, 1 January 1996 (1996-01-01), pages 224 - 228, XP055012865, ISBN: 978-0-81-867370-2, DOI: 10.1109/ACSSC.1995.540545 * |
BIN GUO ET AL: "A High Speed CABAC Algorithm Based on Probability Estimation Update", INTERNATIONAL CONFERENCE ON IMAGE AND GRAPHICS, 2007, 1 August 2007 (2007-08-01), pages 195 - 199, XP031131284, ISBN: 978-0-7695-2929-5 * |
MARPE D ET AL: "Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 13, no. 7, 1 July 2003 (2003-07-01), pages 620 - 636, XP011099255, ISSN: 1051-8215, DOI: 10.1109/TCSVT.2003.815173 * |
MICHAEL ADAMS ET AL: "The JPEG-2000 Still Image Compression Standard", JOINT PHOTOGRAPHIC EXPERT GROUP CONFERENCE, CROWBOROUGH : JPEG FORUM LTD, GB, 14 January 2002 (2002-01-14), XP017206008 * |
TAUBMAN D S ET AL: "JPEG2000: image compression fundamentals, standards and practice", 1 January 2002, JPEG2000 IMAGE COMPRESSION FUNDAMENTALS, STANDARDS AND PRACTICE; [KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE], NORWELL, MA : KLUWER ACADEMIC PUBL, US, PAGE(S) 71 - 77, ISBN: 978-0-7923-7519-7, XP002566993 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049527A (en) * | 2019-12-23 | 2020-04-21 | 云南大学 | Image coding and decoding method |
CN111049527B (en) * | 2019-12-23 | 2023-03-17 | 云南大学 | Image coding and decoding method |
Also Published As
Publication number | Publication date |
---|---|
WO2013007920A1 (en) | 2013-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3182707B1 (en) | Method and recording medium storing coded image data | |
EP2991350B1 (en) | Method for decoding images | |
FR2972588A1 (en) | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS | |
FR2977111A1 (en) | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS | |
EP2932714B1 (en) | Method of coding and decoding images, device for coding and decoding and computer programs corresponding thereto | |
WO2016024067A1 (en) | Image encoding and decoding method, image encoding and decoding device, and corresponding computer programs | |
EP2716045B1 (en) | Method, apparatus and computer programs for encoding and decoding of images | |
FR2978005A1 (en) | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS | |
EP3259909B1 (en) | Image encoding and decoding method, encoding and decoding device, and corresponding computer programs | |
FR3033114A1 (en) | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS | |
EP2832093A1 (en) | Method and device for coding and decoding images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20140331 |