PROCÉDÉ DE CODAGE D'UNE IMAGE NUMÉRIQUE, PROCÉDÉ DE DÉCODAGE, DISPOSITIFS, ET PROGRAMMES D'ORDINATEURS ASSOCIÉS DIGITAL IMAGE ENCODING METHOD, DECODING METHOD, DEVICES, AND COMPUTER PROGRAMS
1. Domaine de l'invention 1. Field of the invention
Le domaine de l'invention est celui de la compression de signal, en particulier d'une image numérique ou d'une séquence d'images numériques, dans lequel une prédiction d'une portion du signal à coder est réalisée à partir d'une portion du signal déjà codée. The field of the invention is that of signal compression, in particular of a digital image or of a sequence of digital images, in which a prediction of a portion of the signal to be coded is made from a portion of the already coded signal.
Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant : The encoding / decoding of digital images applies in particular to images from at least one video sequence comprising:
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D), images coming from the same camera and succeeding each other temporally (coding / decoding of 2D type),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D), images from different cameras oriented according to different views (coding / decoding of 3D type),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D), corresponding texture and depth components (3D type coding / decoding),
- etc. - etc.
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D. The present invention applies similarly to the coding / decoding of 2D or 3D type images.
L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC et HEVC et leurs extensions (MVC, 3D- AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant. The invention may especially, but not exclusively, apply to video coding implemented in current AVC and HEVC video encoders and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), and to corresponding decoding.
L'invention peut s'appliquer aussi au codage audio, par exemple mis en œuvre dans les codeurs audio actuels (EVS, OPUS, MPEG-H, etc) et leurs extensions et au décodage correspondant. The invention can also be applied to audio coding, for example implemented in current audio encoders (EVS, OPUS, MPEG-H, etc.) and their extensions and the corresponding decoding.
2. Présentation de l'art antérieur 2. Presentation of the prior art
On considère un schéma de compression classique d'une image numérique, selon lequel l'image est divisée en blocs de pixels. Un bloc courant à coder est prédit à partir d'un bloc précédemment codé décodé. Un bloc résidu est obtenu par soustraction des valeurs originales aux valeurs prédites. Il est ensuite transformé à l'aide d'une transformation de type DCT (pour « Discrète Cosinus Transform », en anglais) ou
ondelettes. Les coefficients transformés sont quantifiés puis leurs amplitudes sont soumises à un codage entropique de type Huffmann ou arithmétique. Un tel codage obtient des performances efficaces, car, du fait de la transformation, les valeurs des amplitudes à coder sont en grande majorité nulles. En revanche, il ne s'applique pas aux valeurs des signes des coefficients, dont les valeurs + et - sont généralement associées à des probabilités d'apparition équivalentes. Ainsi, les signes des coefficients sont codés par un bit 0 ou 1. We consider a conventional compression scheme of a digital image, according to which the image is divided into blocks of pixels. A current block to be coded is predicted from a previously coded decoded block. A residual block is obtained by subtracting the original values from the predicted values. It is then transformed using a DCT type transformation (for "Discrete Cosine Transform", in English) or wavelets. The transformed coefficients are quantized and their amplitudes are subjected to entropic coding of the Huffmann or arithmetic type. Such coding obtains effective performances because, because of the transformation, the values of the amplitudes to be coded are for the most part zero. On the other hand, it does not apply to the values of the signs of the coefficients, whose + and - values are generally associated with equivalent appearance probabilities. Thus, the signs of the coefficients are coded by a bit 0 or 1.
On connaît de l'article de Koyama, J. et al, intitulé « Coefficient sign bit compression in video coding », et publié dans les proceedings de la conférence «Picture Coding Symposium (PCS) », en mai 2012, une méthode de sélection de signes de coefficients d'un bloc résidu à prédire. La sélection proposée est basée sur un nombre de coefficients prédéterminé en fonction de leur amplitude et de la taille du bloc dont ils sont issus. Les signes sélectionnés sont prédits. Les prédictions obtenues sont comparées aux valeurs originales des signes pour déterminer la valeur d'un indicateur de prédiction, appelé aussi résidu d'un signe prédit. Cet indicateur peut prendre deux valeurs, qui sont une première valeur représentative d'une prédiction correcte et une deuxième valeur représentative d'une prédiction incorrecte. Le reste des signes est codé de façon explicite, sans prédiction. The article by Koyama, J. et al, titled "Coefficient signal bit compression in video coding", and published in the proceedings of the "Picture Coding Symposium (PCS)" conference in May 2012, is known from a selection method. of coefficient signs of a residual block to predict. The proposed selection is based on a predetermined number of coefficients as a function of their amplitude and the size of the block from which they come. The selected signs are predicted. The predictions obtained are compared with the original values of the signs to determine the value of a prediction indicator, also called the residue of a predicted sign. This indicator can take two values, which are a first value representative of a correct prediction and a second value representative of an incorrect prediction. The rest of the signs are coded explicitly, without prediction.
Un avantage d'une telle sélection est de prédire la valeur d'un signe avec une probabilité de prédiction correcte supérieure à 50%, donc de permettre l'application d'un codage entropique aux valeurs des indicateurs de prédiction. Ce codage entropique code l'information de signe avec un débit moyen inférieur à un bit par signe, et permet ainsi d'augmenter le taux de compression. An advantage of such a selection is to predict the value of a sign with a correct prediction probability greater than 50%, thus to allow the application of entropic coding to the values of the prediction indicators. This entropic coding encodes the sign information with an average bit rate less than one bit per sign, and thus makes it possible to increase the compression ratio.
3. Inconvénients de l'art antérieur 3. Disadvantages of prior art
Néanmoins, cette technique présente au moins deux inconvénients majeurs : Nevertheless, this technique has at least two major disadvantages:
- Certains signes dont la probabilité de prédiction correcte est proche de 50 % entrent dans la sélection de coefficients à prédire. Si ceci n'a pas d'impact sur la performance de compression (pas de gain), il y a une augmentation inutile du nombre de calculs à effectuer ;
- Certains coefficients dont la probabilité de prédiction correcte est élevée (supérieure à 50%) ne sont pas retenus dans la sélection de coefficients à prédire. Il y a alors une perte d'efficacité de compression, car ces coefficients pourraient être utilisés pour diminuer encore la taille du signal codé. - Some signs whose correct prediction probability is close to 50% enter the selection of coefficients to predict. If this has no impact on the compression performance (no gain), there is an unnecessary increase in the number of calculations to be performed; - Some coefficients whose probability of correct prediction is high (greater than 50%) are not retained in the selection of coefficients to be predicted. There is then a loss of compression efficiency, because these coefficients could be used to further reduce the size of the coded signal.
4. Objectifs de l'invention 4. Objectives of the invention
L'invention vient améliorer la situation. The invention improves the situation.
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de proposer une solution qui sélectionne plus efficacement les signes à prédire. The invention particularly aims to overcome these disadvantages of the prior art. More specifically, an object of the invention is to propose a solution that more effectively selects the signs to be predicted.
Un autre objectif de l'invention est de proposer une solution qui soit plus performante en compression. Another objective of the invention is to propose a solution that is more efficient in compression.
5. Exposé de l'invention 5. Presentation of the invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant : - Prédiction des valeurs du bloc courant à partir d'au moins un bloc précédemment traité selon un mode de prédiction choisi parmi une pluralité de modes prédéterminés, These objectives, as well as others that will appear later, are achieved by a method of coding a digital image, said image being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block: prediction of the values of the current block from at least one previously processed block according to a prediction mode chosen from among a plurality of predetermined modes,
Calcul d'un bloc résidu par soustraction des valeurs prédites aux valeurs originales du bloc courant, Calculation of a residual block by subtraction of the predicted values from the original values of the current block,
- Obtention d'un bloc résidu transformé par application d'une transformée à des pixels du bloc résidu, ledit bloc résidu transformé comprenant des coefficients, Sélection des signes des coefficients à prédire dans le bloc résidu transformé ; Prédiction des signes sélectionnés;
Calcul d'un indicateur de prédiction des signes sélectionnés à partir des prédictions des signes sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : - Obtaining a residue block transformed by applying a transform to pixels of the residue block, said transformed residue block comprising coefficients, selecting the signs of the coefficients to be predicted in the transformed residue block; Prediction of selected signs; Calculating a prediction indicator of the selected signs from the predictions of the selected signs and their original values, the indicator being adapted to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
Codage entropique des valeurs d'indicateurs obtenues pour les signes prédits. Entropy coding of the indicator values obtained for the predicted signs.
Selon l'invention, le procédé comprend une étape de détermination d'un contexte d'un coefficient du bloc résidu courant parmi une pluralité de contextes prédéterminés, en fonction d'au moins une caractéristique appartenant à un groupe comprenant au moins la taille du bloc, l'amplitude du coefficient, la fréquence du coefficient et le mode de prédiction du bloc courant, et le signe d'un coefficient d'un bloc courant à prédire est sélectionné en fonction d'un score prédéterminé associé au contexte de codage du coefficient, ledit score étant représentatif d'un niveau de fiabilité de la prédiction du signe. According to the invention, the method comprises a step of determining a context of a coefficient of the current residual block among a plurality of predetermined contexts, as a function of at least one characteristic belonging to a group comprising at least the size of the block , the coefficient amplitude, the frequency of the coefficient and the prediction mode of the current block, and the sign of a coefficient of a current block to be predicted is selected according to a predetermined score associated with the coding context of the coefficient , said score being representative of a reliability level of the prediction of the sign.
Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive du codage d'images, qui consiste à prédire la valeur des signes des coefficients d'un bloc résidu, lorsque leur prédiction est considérée comme suffisamment fiable. Pour ce faire, un coefficient est associé à un contexte de codage pour lequel on a préalablement établi des valeurs de scores représentatives d'un niveau de fiabilité. Thus, the invention is based on an entirely new and inventive approach to image coding, which consists in predicting the value of the signs of the coefficients of a residual block, when their prediction is considered sufficiently reliable. To do this, a coefficient is associated with a coding context for which it has previously established score values representative of a reliability level.
Contrairement à l'art antérieur qui sélectionne un nombre prédéterminé de signes à prédire en fonction de l'amplitude de leur coefficient et de la taille du bloc dont ils sont issus, l'invention base sa sélection sur une fiabilité préétablie de la prédiction de signes dans un contexte de codage particulier. Un contexte de codage d'un coefficient peut être défini par un ensemble de caractéristiques de codage du coefficient et du bloc auquel il appartient. On comprend que la fiabilité de la prédiction du signe varie en fonction de telles caractéristiques. Unlike the prior art, which selects a predetermined number of signs to be predicted as a function of the amplitude of their coefficient and the size of the block from which they come, the invention bases its selection on a predetermined reliability of the prediction of signs. in a particular coding context. A coding context of a coefficient can be defined by a set of coding characteristics of the coefficient and the block to which it belongs. It is understood that the reliability of the prediction of the sign varies according to such characteristics.
Avec l'invention, on définit ainsi une pluralité de contextes, associés à des niveaux de fiabilité distincts les uns des autres. Les caractéristiques prises en compte pour définir le contexte de codage du coefficient correspondent à celles pour lesquelles on a pu observer un impact sur la fiabilité du résultat de prédiction. Par exemple, il a été constaté que les prédictions de signes étaient
plus fiables pour un bloc de grande taille (par exemple, 16x16 ou 32x32 pixels) que pour un bloc de petite taille (par exemple 4x4 ou 8x8 pixels). De même, la prédiction d'un signe est plus fiable pour un coefficient de fréquence faible que de fréquence élevée. With the invention, a plurality of contexts is thus defined, associated with levels of reliability that are distinct from one another. The characteristics taken into account in defining the coding context of the coefficient correspond to those for which an impact on the reliability of the prediction result has been observed. For example, it was found that the sign predictions were more reliable for a large block (for example, 16x16 or 32x32 pixels) than for a small block (for example 4x4 or 8x8 pixels). Similarly, the prediction of a sign is more reliable for a low frequency coefficient than a high frequency one.
L'invention permet ainsi de résoudre le problème technique du coût du codage de signes des coefficients d'un bloc résidu dans un schéma de codage d'une image numérique. En effet, avec l'invention, on s'assure au préalable que les valeurs des indicateurs de prédiction des signes prédits qui sont effectivement codées dans le train binaire prendront la valeur représentative d'une prédiction correcte dans la grande majorité des cas, afin de procurer un contexte favorable au codage entropique et donc garantir une performance de compression accrue. The invention thus makes it possible to solve the technical problem of the cost of coding the signs of the coefficients of a residue block in a coding scheme of a digital image. Indeed, with the invention, it is first of all ensured that the values of the prediction indicators of the predicted signs that are actually encoded in the bit stream will take the representative value of a correct prediction in the vast majority of cases, in order to provide a favorable context for entropy coding and thus guarantee increased compression performance.
Selon une caractéristique avantageuse de l'invention, le score est prédéterminé au cours d'une étape préalable d'estimation d'une probabilité de prédiction correcte du signe dans le contexte du coefficient. According to an advantageous characteristic of the invention, the score is predetermined during a preliminary step of estimating a probability of correct prediction of the sign in the context of the coefficient.
Ainsi, le score correspond à la valeur exacte de probabilité de prédiction correcte, ce qui assure un niveau de performance maximal de la compression. Thus, the score corresponds to the exact value of probability of correct prediction, which ensures a maximum level of performance of the compression.
Par exemple, ces probabilités sont construites pour un contexte de codage du coefficient prédéterminé, avant l'encodage et le décodage, soit par accumulation statistique sur un ensemble de signaux représentatifs des signaux à coder, soit par calcul mathématique à partir d'hypothèses sur la distribution des signes des coefficients. For example, these probabilities are constructed for a coding context of the predetermined coefficient, before encoding and decoding, either by statistical accumulation on a set of signals representative of the signals to be coded, or by mathematical calculation from hypotheses on the distribution of the signs of the coefficients.
Selon un autre aspect de l'invention, le signe d'un coefficient quantifié est sélectionné lorsque ledit score est supérieur à un seuil prédéterminé. Plus le score est élevé, plus la prédiction du signe du coefficient peut être considérée comme fiable. La sélection se fait par comparaison du score du coefficient à un seuil et le signe du coefficient est sélectionné, lorsque que le score du coefficient est supérieur à ce seuil. According to another aspect of the invention, the sign of a quantized coefficient is selected when said score is greater than a predetermined threshold. The higher the score, the more the prediction of the sign of the coefficient can be considered reliable. The selection is made by comparing the score of the coefficient with a threshold and the sign of the coefficient is selected, when the score of the coefficient is greater than this threshold.
Un avantage d'une telle solution est qu'elle est simple et économe en ressources de calculs.
Selon un autre aspect de l'invention, le score peut prendre des valeurs binaires, une première valeur étant représentative d'un signe à prédire, une deuxième valeur étant représentative d'un signe à ne pas prédire. One advantage of such a solution is that it is simple and economical in computing resources. According to another aspect of the invention, the score may take binary values, a first value being representative of a sign to be predicted, a second value being representative of a sign not to be predicted.
Dans ce mode de réalisation, le score est binaire. Les signes sélectionnés sont ceux associés à un score représentatif d'un niveau de fiabilité considéré comme suffisant. Ceci permet de réduire la complexité de la méthode, car il n'y a plus de comparaison du score avec un seuil pré-établi, dans la mesure où le score lui-même est indicateur de la sélection ou non-sélection d'un signe donné. In this embodiment, the score is binary. The signs selected are those associated with a representative score of a level of reliability deemed sufficient. This reduces the complexity of the method, because there is more comparison of the score with a pre-established threshold, insofar as the score itself is indicative of the selection or non-selection of a sign given.
Selon encore un autre aspect de l'invention, la valeur du seuil est prédéterminée. La valeur du seuil est fixée. Elle est connue du codeur et du décodeur. Par exemple, elle est déterminée empiriquement par analyse statistique des performances du codage entropique appliqué aux signes prédits sur un ensemble représentatif d'échantillons. According to yet another aspect of the invention, the value of the threshold is predetermined. The threshold value is fixed. It is known to the coder and the decoder. For example, it is empirically determined by statistical analysis of entropy encoding performance applied to the predicted signs over a representative set of samples.
Un avantage de cette solution est qu'elle est simple et facile à mettre en œuvre. An advantage of this solution is that it is simple and easy to implement.
Selon encore un autre aspect de l'invention, la valeur du seuil est adaptée en cours de codage en fonction de caractéristiques du codage. According to yet another aspect of the invention, the value of the threshold is adapted during coding according to characteristics of the coding.
La valeur du seuil peut varier en cours de codage en fonction des caractéristiques du signal ou de l'unité qui réalise l'encodage. The value of the threshold may vary during coding depending on the characteristics of the signal or the unit that performs the encoding.
Un avantage de cette solution est qu'elle permet d'optimiser les performances du codage entropique au cours du temps. An advantage of this solution is that it makes it possible to optimize the performance of the entropy coding over time.
Selon une première variante, la valeur du seuil est calculée par le codeur et transmise au décodeur dans le train binaire. According to a first variant, the value of the threshold is calculated by the coder and transmitted to the decoder in the bit stream.
Selon une deuxième variante, la valeur du seuil est calculée de façon similaire par le codeur et le décodeur. According to a second variant, the value of the threshold is similarly calculated by the coder and the decoder.
Selon encore un autre aspect de l'invention, l'étape de codage entropique de la valeur d'indicateur de prédiction du signe d'un coefficient prend en compte le score prédéterminé associé au contexte de codage du coefficient. According to yet another aspect of the invention, the entropy coding step of the prediction indicator value of the sign of a coefficient takes into account the predetermined score associated with the coding context of the coefficient.
De cette manière, on tire au mieux parti de la connaissance a priori du niveau de fiabilité
de la prédiction des signes du bloc courant et on améliore les performances de compression. In this way, we make the most of a priori knowledge of the level of reliability predicting the signs of the current block and improving the compression performance.
Le procédé qui vient d'être décrit dans ses différents modes de réalisation est avantageusement mis en œuvre par un dispositif de décodage d'une image numérique selon l'invention. Un tel dispositif comprend les unités suivantes : The method that has just been described in its various embodiments is advantageously implemented by a device for decoding a digital image according to the invention. Such a device comprises the following units:
Prédiction des valeurs du bloc courant à partir d'au moins un bloc précédemment traité selon un mode de prédiction choisi parmi une pluralité de modes prédéterminés, Prediction of the values of the current block from at least one block previously processed according to a prediction mode selected from a plurality of predetermined modes,
- Calcul d'un bloc résidu par soustraction des valeurs prédites aux valeurs originales du bloc courant, - Calculation of a residual block by subtraction of the predicted values from the original values of the current block,
Obtention d'un bloc résidu transformé par application d'une transformée à des pixels du bloc résidu, ledit bloc résidu transformé comprenant des coefficients, Sélection des signes des coefficients à prédire dans le bloc résidu transformé ; - Prédiction des signes sélectionnés; Obtaining a residue block transformed by applying a transform to pixels of the residue block, said transformed residue block comprising coefficients, selecting the signs of the coefficients to be predicted in the transformed residue block; Prediction of selected signs
Calcul d'un indicateur de prédiction des signes sélectionnés à partir des prédictions des signes sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Calculating a prediction indicator of the selected signs from the predictions of the selected signs and their original values, the indicator being adapted to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
Codage entropique des valeurs d'indicateurs obtenues pour les signes prédits. Ledit dispositif est particulier en ce qu'il comprend une unité de détermination d'un contexte d'un coefficient du bloc résidu courant parmi une pluralité de contextes prédéterminés, en fonction d'au moins une caractéristique appartenant à un groupe comprenant au moins la taille du bloc, l'amplitude du coefficient, la fréquence du coefficient et le mode de prédiction du bloc courant, et en ce que le signe d'un coefficient du bloc résidu courant est sélectionné en fonction d'un score prédéterminé associé à un contexte de codage dudit coefficient, ledit score étant représentatif d'un niveau de fiabilité de la prédiction du signe. Entropy coding of the indicator values obtained for the predicted signs. Said device is particular in that it comprises a unit for determining a context of a coefficient of the current residual block among a plurality of predetermined contexts, as a function of at least one characteristic belonging to a group comprising at least the size of the block, the amplitude of the coefficient, the frequency of the coefficient and the prediction mode of the current block, and in that the sign of a coefficient of the current residual block is selected according to a predetermined score associated with a context of coding said coefficient, said score being representative of a reliability level of the prediction of the sign.
Corrélativement, l'invention concerne aussi un procédé de décodage d'une image
numérique. Un tel procédé comprend les étapes suivantes : Correlatively, the invention also relates to a method of decoding an image digital. Such a method comprises the following steps:
Prédiction du bloc courant à partir d'au moins un bloc précédemment traité et d'informations relatives à un mode de prédiction du bloc courant; Prediction of the current block from at least one previously processed block and information relating to a prediction mode of the current block;
Décodage entropique des amplitudes codées des coefficients d'un bloc résidu transformé, extraites du train binaire; Entropic decoding of the coded amplitudes of the coefficients of a transformed residue block, extracted from the bit stream;
Sélection des signes des coefficients à prédire dans le bloc résidu transformé; Prédiction des valeurs des signes sélectionnés ; Selection of the signs of the coefficients to be predicted in the transformed residue block; Prediction of the values of the selected signs;
Décodage de valeurs d'indicateurs de prédiction des signes sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Decoding prediction indicator values of the selected signs from encoded data extracted from the bitstream, the indicator being adapted to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; o une deuxième valeur représentative d'une prédiction incorrecte ; Calcul des valeurs décodées des signes sélectionnés à partir des valeurs d'indicateurs de prédiction décodées; a first value representative of a correct prediction; a second value representative of an incorrect prediction; Calculating the decoded values of the selected signs from the decoded prediction indicator values;
- Reconstruction des coefficients du bloc résidu à partir des amplitudes décodées, et des signes décodés. - Reconstruction of the residual block coefficients from the decoded amplitudes, and decoded signs.
Selon l'invention, ledit procédé est particulier en ce qu'il comprend une étape de détermination d'un contexte d'un coefficient du bloc résidu courant parmi une pluralité de contextes prédéterminés, en fonction d'au moins une caractéristique appartenant à un groupe comprenant au moins la taille du bloc, l'amplitude du coefficient, la fréquence du coefficient et le mode de prédiction du bloc courant, et en ce que le signe d'un coefficient du bloc résidu courant est sélectionné en fonction d'un score prédéterminé associé à un contexte de codage dudit coefficient, ledit score étant représentatif d'un niveau de fiabilité de la prédiction du signe. According to the invention, said method is particular in that it comprises a step of determining a context of a coefficient of the current residual block among a plurality of predetermined contexts, as a function of at least one characteristic belonging to a group comprising at least the size of the block, the magnitude of the coefficient, the frequency of the coefficient and the prediction mode of the current block, and in that the sign of a coefficient of the current residue block is selected according to a predetermined score associated with a coding context of said coefficient, said score being representative of a reliability level of the prediction of the sign.
On notera que l'étape de sélection des signes à prédire est mise en œuvre de façon similaire dans le procédé de codage et dans le procédé de décodage. Il en résulte que les différents modes ou caractéristiques de réalisation du procédé de codage précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de décodage tel que défini ci-dessus.
En particulier, selon un aspect de l'invention, le score est prédéterminé au cours d'une étape préalable d'estimation d'une probabilité de prédiction correcte du signe dans le contexte du coefficient. It will be noted that the step of selecting the signs to be predicted is implemented in a similar way in the coding method and in the decoding method. As a result, the various embodiments or embodiments of the aforementioned coding method can be added independently or in combination with each other, to the steps of the decoding method as defined above. In particular, according to one aspect of the invention, the score is predetermined during a prior step of estimating a probability of correct prediction of the sign in the context of the coefficient.
Selon un autre aspect de l'invention, le signe d'un coefficient est sélectionné lorsque ledit score est supérieur à un seuil prédéterminé. According to another aspect of the invention, the sign of a coefficient is selected when said score is greater than a predetermined threshold.
Selon encore un autre aspect de l'invention, le score peut prendre des valeurs binaires, une première valeur étant représentative d'une prédiction correcte du signe du coefficient quantifié, une deuxième valeur étant représentative d'une prédiction incorrecte du signe du coefficient quantifié. Selon encore un autre aspect, la valeur du seuil est prédéterminée. According to yet another aspect of the invention, the score may take binary values, a first value being representative of a correct prediction of the sign of the quantized coefficient, a second value being representative of an incorrect prediction of the sign of the quantized coefficient. In yet another aspect, the threshold value is predetermined.
Selon encore un autre aspect de l'invention, la valeur du seuil est adaptée en cours de décodage en fonction de caractéristiques du codage. According to yet another aspect of the invention, the value of the threshold is adapted during decoding according to characteristics of the coding.
Selon encore un autre aspect, l'étape de décodage entropique de la valeur d'indicateur de prédiction du signe d'un coefficient prend en compte le score prédéterminé associé au contexte de codage du coefficient. In yet another aspect, the entropy decoding step of the prediction indicator value of the sign of a coefficient takes into account the predetermined score associated with the coding context of the coefficient.
Le procédé de décodage qui vient d'être décrit est avantageusement mis en œuvre par un dispositif de décodage d'une image numérique selon l'invention. Un tel dispositif est particulier en ce qu'il comprend les unités suivantes : The decoding method that has just been described is advantageously implemented by a device for decoding a digital image according to the invention. Such a device is particular in that it comprises the following units:
Prédiction du bloc courant à partir d'au moins un bloc précédemment traité et d'informations relatives à un mode de prédiction du bloc courant; Prediction of the current block from at least one previously processed block and information relating to a prediction mode of the current block;
Décodage entropique des amplitudes codées des coefficients d'un bloc résidu transformé extraites du train binaire; Entropic decoding of the coded amplitudes of the coefficients of a transformed residue block extracted from the bit stream;
- Sélection des signes des coefficients à prédire dans le bloc résidu transformé; - Selection of the signs of the coefficients to be predicted in the transformed residue block;
Prédiction des valeurs des signes sélectionnés;
Décodage de valeurs d'indicateurs de prédiction des signes sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Prediction of the values of the selected signs; Decoding prediction indicator values of the selected signs from encoded data extracted from the bitstream, the indicator being adapted to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; et a second value representative of an incorrect prediction; and
Calcul des valeurs décodées des signes sélectionnés à partir des valeurs d'indicateurs de prédiction décodées; Calculating the decoded values of the selected signs from the decoded prediction indicator values;
Selon l'invention, le dispositif de décodage est particulier en ce qu'il comprend une unité de détermination d'un contexte d'un coefficient du bloc résidu courant parmi une pluralité de contextes prédéterminés, en fonction d'au moins une caractéristique appartenant à un groupe comprenant au moins la taille du bloc, l'amplitude du coefficient, la fréquence du coefficient et le mode de prédiction du bloc courant, et en ce que le signe d'un coefficient du bloc résidu courant est sélectionné en fonction d'un score prédéterminé associé à un contexte de codage dudit coefficient, ledit score étant représentatif d'un niveau de fiabilité de la prédiction du signe. According to the invention, the decoding device is particular in that it comprises a unit for determining a context of a coefficient of the current residual block among a plurality of predetermined contexts, as a function of at least one characteristic belonging to a group comprising at least the size of the block, the amplitude of the coefficient, the frequency of the coefficient and the prediction mode of the current block, and in that the sign of a coefficient of the current residual block is selected according to a predetermined score associated with a coding context of said coefficient, said score being representative of a reliability level of the prediction of the sign.
Corrélativement, l'invention concerne un terminal d'utilisateur. Correlatively, the invention relates to a user terminal.
Un tel terminal est particulier en ce qu'il comprend un dispositif de codage d'une image numérique et un dispositif de décodage d'une image numérique selon l'invention. L'invention concerne encore un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de codage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. Such a terminal is particular in that it comprises a device for encoding a digital image and a device for decoding a digital image according to the invention. The invention also relates to a computer program comprising instructions for implementing the steps of a method of encoding a digital image as described above, when this program is executed by a processor.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de décodage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. The invention also relates to a computer program comprising instructions for implementing the steps of a method of decoding a digital image as described above, when this program is executed by a processor.
Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur.
L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage d'une image numérique et au dispositif de décodage d'une image numérique selon l'invention, éventuellement amovible, mémorisant respectivement un programme d'ordinateur mettant en œuvre un procédé de codage et un programme d'ordinateur mettant en œuvre un procédé de décodage, tels que décrits précédemment. These programs can use any programming language. They can be downloaded from a communication network and / or recorded on a computer-readable medium. The invention finally relates to recording media, readable by a processor, integrated or not integrated with the encoding device of a digital image and the decoding device of a digital image according to the invention, possibly removable, respectively memorizing a computer program implementing an encoding method and a computer program implementing a decoding method, as described above.
6. Liste des figures 6. List of figures
D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1 présente de façon schématique les étapes du procédé de codage d'une image numérique selon un exemple de réalisation de l'invention ; la figure 2 présente de façon schématique un bloc courant décodé d'une image numérique décodée; la figure 3 présente de façon schématique les étapes du procédé de décodage d'une image numérique selon un exemple de réalisation de l'invention ; la figure 4 présente un exemple de structure simplifiée d'un dispositif de codage d'une image numérique et d'un dispositif de décodage d'une image numérique selon un mode de réalisation de l'invention. Other advantages and characteristics of the invention will emerge more clearly on reading the following description of a particular embodiment of the invention, given as a simple illustrative and nonlimiting example, and the appended drawings, among which: FIG. 1 schematically shows the steps of the method of encoding a digital image according to an exemplary embodiment of the invention; Figure 2 schematically shows a decoded current block of a decoded digital image; FIG. 3 schematically shows the steps of the method of decoding a digital image according to an exemplary embodiment of the invention; FIG. 4 shows an example of a simplified structure of a device for coding a digital image and a device for decoding a digital image according to one embodiment of the invention.
7. Description d'un mode de réalisation particulier de l'invention 7. Description of a particular embodiment of the invention
Le principe général de l'invention repose sur la sélection des signes de coefficients à prédire en fonction d'un score prédéterminé représentatif d'un niveau de fiabilité de la prédiction du signe pour un contexte de codage associé au coefficient. The general principle of the invention is based on the selection of the signs of coefficients to be predicted as a function of a predetermined score representative of a reliability level of the prediction of the sign for a coding context associated with the coefficient.
En relation avec la Figure 1, on considère une vidéo originale constituée d'une suite de M images II, 12, ...IM, avec M entier non nul. Les images sont encodées par un encodeur, les données codées sont insérées un train binaire TB transmis à un décodeur via un réseau de communication, ou un fichier compressé FC, destiné à être stocké sur
un disque dur par exemple. Le décodeur extrait les données codées, puis reçues et décodées par un décodeur dans un ordre prédéfini connu de l'encodeur et du décodeur, par exemple dans l'ordre temporel II, puis 12, puis IM, cet ordre pouvant différer suivant le mode de réalisation. Lors de l'encodage d'une image Im, avec m entier compris entre 1 et M, celle-ci est subdivisée en blocs de taille maximale qui peuvent à leur tour être subdivisés en blocs plus petits. Chaque bloc va subir une opération d'encodage ou de décodage consistant en une suite d'opérations, comprenant de manière non exhaustive une prédiction, un calcul de résidu, une transformation, une quantification et un codage entropique. Cette suite d'opérations sera détaillée par la suite. In relation to FIG. 1, an original video consisting of a sequence of M images II, 12,... IM, with M nonzero integer is considered. The images are encoded by an encoder, the encoded data is inserted into a bit stream TB transmitted to a decoder via a communication network, or a compressed file FC, intended to be stored on a hard disk for example. The decoder extracts the coded data, then received and decoded by a decoder in a predefined order known from the encoder and the decoder, for example in the temporal order II, then 12, and then IM, this order being able to differ according to the mode of the decoder. production. When encoding an image Im, with m integer between 1 and M, it is subdivided into blocks of maximum size which can in turn be subdivided into smaller blocks. Each block will undergo an encoding or decoding operation consisting of a sequence of operations, including non-exhaustively a prediction, a residue calculation, a transformation, a quantization and an entropy coding. This sequence of operations will be detailed later.
Au cours d'une étape E0 on sélectionne comme bloc courant C le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels. During a step E0, the first block to be processed is selected as the current block C. For example, this is the first block (in lexicographic order). This block has NxN pixels.
On suppose qu'il existe L découpes en blocs possibles numérotées de 1 à L, et que la découpe utilisée sur le bloc C est la découpe numéro I. Par exemple, il peut y avoir 4 découpes possibles, en blocs de taille 4x4, 8x8, 16x16, et 32x32. It is assumed that there are L cuts in possible blocks numbered from 1 to L, and that the cut used on the block C is the cut number I. For example, there may be 4 possible cuts, in blocks of size 4x4, 8x8 , 16x16, and 32x32.
Par ailleurs, on notera ID l'image courante décodée. On notera que, dans un codeur vidéo, l'image ID est (re)construite dans le codeur de façon à pouvoir servir pour prédire les autres pixels de la vidéo. Au cours d'une étape El, on détermine une prédiction P du bloc original C. Il s'agit d'un bloc de prédiction construit par des moyens connus, typiquement par compensation de mouvement (bloc issu d'une image de référence précédemment décodée), ou par prédiction intra (bloc construit à partir des pixels décodés immédiatement adjacents au bloc courant dans l'image ID). Les informations de prédiction liées à P sont codées dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a K modes de prédiction possibles m l, m2,..., mK, avec K entier non nul, et que le mode de prédiction choisi pour le bloc C est le mode mk. Moreover, the current decoded picture ID will be noted. Note that, in a video encoder, the ID image is (re) constructed in the encoder so that it can be used to predict the other pixels of the video. During a step E1, a prediction P of the original block C is determined. It is a prediction block constructed by known means, typically by motion compensation (block derived from a previously decoded reference image ), or intra prediction (block constructed from the decoded pixels immediately adjacent to the current block in the ID image). The prediction information related to P is encoded in the bit stream TB or compressed file FC. It is assumed here that there are K possible prediction modes m1, m2, ..., mK, with K nonzero integer, and that the prediction mode chosen for block C is the mode mk.
Au cours d'une étape E2, un résidu original R est formé, par soustraction R = C-P de la prédiction P du bloc courant C au bloc courant C. Au cours d'une étape E3, le résidu R est transformé en un bloc résidu transformé, appelé RT, par une transformée de type DCT ou transformée en ondelettes, toutes les
deux connues de l'homme de métier et notamment mises en œuvre dans les normes JPEG pour la DCT et JPEG2000 pour la transformée en ondelettes. During a step E2, an original residue R is formed, by subtraction R = CP of the prediction P of the current block C to the current block C. During a step E3, the residue R is transformed into a residue block transformed, called RT, by a DCT transform or wavelet transform, all two known to those skilled in the art and in particular implemented in the JPEG standards for the DCT and JPEG2000 for the wavelet transform.
En E4, le résidu transformé RT est quantifié par des moyens classiques de quantification, par exemple scalaire ou vectorielle, en un bloc résidu quantifié RQ. Ce bloc quantifié RQ contient NxN coefficients. De façon connue dans l'état de l'art, ces coefficients sont scannés dans un ordre prédéterminés de façon à constituer un vecteur monodimensionnel RQ[i], où l'indice i varie de 0 à N2-l . L'indice i est appelé fréquence du coefficient RQ[i] . Classiquement, on scanne ces coefficients par ordre croissant de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG. In E4, the transformed residue RT is quantized by conventional quantization means, for example scalar or vector, into a quantized residue block RQ. This quantized block RQ contains NxN coefficients. As known in the state of the art, these coefficients are scanned in a predetermined order so as to constitute a one-dimensional vector RQ [i], where the index i varies from 0 to N 2 -1. The index i is called the frequency of the coefficient RQ [i]. Classically, these coefficients are scanned in increasing frequency order, for example along a zigzag path, which is known from the JPEG fixed image coding standard.
Lors d'une étape E5, on vient coder les informations d'amplitude des coefficients du bloc résidu RQ par codage entropique, par exemple selon une technique de codage de Huffman ou de codage arithmétique. Par amplitude, on entend ici la valeur absolue du coefficient. Des moyens de codage des amplitudes sont par exemple décrits dans la norme HEVC et dans l'article de Sole et al, intitulé « Transform Coefficient Coding in HEVC », publié dans la revue IEEE Transactions on Circuits and Systems for Video Technology, Volume 22, Issue: 12, pp. 1765 - 1777, en décembre 2012. Classiquement, on peut coder pour chaque coefficient une information représentative du fait que le coefficient est non nul. Ensuite, pour chaque coefficient non nul, une ou plusieurs informations relatives à l'amplitude sont codées. On obtient les amplitudes codées CA. During a step E5, the amplitude information of the coefficients of the residual block RQ is encoded by entropy coding, for example according to a Huffman coding or arithmetic coding technique. By amplitude is meant here the absolute value of the coefficient. Amplitude coding means are for example described in the HEVC standard and in the article by Sole et al, entitled "Transform Coefficient Coding in HEVC", published in the journal IEEE Transactions on Circuits and Systems for Video Technology, Volume 22, Issue: 12, pp. 1765 - 1777, December 2012. Classically, we can code for each coefficient representative information because the coefficient is non-zero. Then, for each nonzero coefficient, one or more information relating to the amplitude is encoded. CA amplitudes are obtained.
Au cours d'une étape E6, on associe à chaque coefficient du bloc RQ un contexte Cxj parmi une pluralité J de contextes prédéterminés, avec J entier non nul. Un tel contexte est défini par au moins une caractéristique de codage du coefficient ou du bloc dont il est issu. De façon avantageuse, on considère les caractéristiques suivantes : During a step E6, we associate to each coefficient of the block RQ a context Cxj among a plurality J of predetermined contexts, with J nonzero integer. Such a context is defined by at least one coding characteristic of the coefficient or block from which it is derived. Advantageously, the following characteristics are considered:
- la taille du bloc RQ, - the size of the RQ block,
l'amplitude du coefficient quantifié RQ[i], the amplitude of the quantized coefficient RQ [i],
la fréquence du coefficient ou indice i dans le bloc RQ, the frequency of the coefficient or index i in the block RQ,
le mode de prédiction du bloc courant mk parmi les K modes possibles. the mode of prediction of the current block mk among the K possible modes.
En effet, la prédiction du signe est d'autant plus fiable que l'amplitude est élevée. Indeed, the prediction of the sign is all the more reliable as the amplitude is high.
De même, il a été constaté que lorsque le bloc est de taille plus grande, la fréquence du coefficient plus faible, la prédiction est plus fiable. Enfin, il a été constaté que la
prédiction est plus fiable lorsque le bloc courant est associé à une prédiction intra d'un certain type. Similarly, it was found that when the block is larger in size, the frequency of the coefficient lower, the prediction is more reliable. Finally, it was found that prediction is more reliable when the current block is associated with intra prediction of a certain type.
De façon alternative, d'autres contextes sont envisageables. Ainsi, il est possible de tenir compte du type d'image dans lequel se trouve le bloc courant, par exemple du type Intra ou Inter, connu de la norme HEVC, en fonction de l'énergie du prédicteur P, ou encore en fonction du nombre total de coefficients non nuls dans le bloc courant. Alternatively, other contexts are conceivable. Thus, it is possible to take into account the type of image in which the current block is located, for example of the Intra or Inter type, known from the HEVC standard, as a function of the energy of the predictor P, or depending on the total number of non-zero coefficients in the current block.
Au cours d'une étape E7, on sélectionne les signes des coefficients du bloc RQ à prédire, en fonction d'un score prédéterminé Sj, avec j entier compris entre 1 et J, pour le contexte Cxj associé au coefficient RQ[i] considéré. Un tel score Sj est représentatif d'un niveau de fiabilité du signe du coefficient RQ[i]. During a step E7, one selects the signs of the coefficients of the block RQ to predict, according to a predetermined score Sj, with j integer between 1 and J, for the context Cxj associated with the coefficient RQ [i] considered . Such a score Sj is representative of a reliability level of the sign of the coefficient RQ [i].
Selon un premier mode de réalisation de l'invention, le score Sj prend des valeurs dans un ensemble prédéterminé, par exemple de 0 à 10. According to a first embodiment of the invention, the score Sj takes values in a predetermined set, for example from 0 to 10.
Selon un deuxième mode de réalisation, le score est une simple indication binaire, dont l'une des deux valeurs indique que le signe sera prédit, et l'autre que le signe ne sera pas prédit. According to a second embodiment, the score is a simple binary indication, one of which indicates that the sign will be predicted, and the other that the sign will not be predicted.
Selon un troisième mode de réalisation de l'invention, les scores Sj correspondent à des probabilités connues a priori, dépendantes du contexte Cxj associé au coefficient RQ[i] . On dispose, dans l'encodeur, d'un ensemble de probabilités de détection correcte des signes des coefficients RQ. Par exemple cet ensemble de probabilités est stocké en mémoire. According to a third embodiment of the invention, the scores Sj correspond to probabilities known a priori, dependent on the context Cxj associated with the coefficient RQ [i]. We have, in the encoder, a set of probabilities of correct detection of the signs of the coefficients RQ. For example, this set of probabilities is stored in memory.
Ces probabilités ont été construites avant l'encodage et le décodage, soit par accumulation statistique sur un ensemble de signaux représentatifs des signaux à coder, soit par calcul mathématique à partir d'hypothèses sur la distribution des signes des coefficients. Pour un coefficient RQ[i] associé au contexte Cxj, on peut donc obtenir le score Sj[i] en calculant la probabilité p[l] [mk] [i] [ | RQ[i] | ] de prédiction correcte du signe du coefficient RQ[i] . These probabilities were constructed before encoding and decoding, either by statistical accumulation on a set of signals representative of the signals to be coded, or by mathematical calculation from hypotheses on the distribution of the signs of the coefficients. For a coefficient RQ [i] associated with the context Cxj, we can thus obtain the score Sj [i] by calculating the probability p [l] [mk] [i] [| RQ [i] | ] correct prediction of the sign of the coefficient RQ [i].
Avantageusement, les signes à prédire sont sélectionnés par seuillage des scores auxquels ils sont associés. Ainsi, pour chaque coefficient RQ[i] qui a un signe (c'est-à- dire, qui n'est pas nul) et qui est associé à un contexte Cxj de score Sj, on prédit le signe si et seulement si Sj>T, où T est un seuil prédéterminé, par exemple égal à 0,7. Par exemple, le seuil T est connu du codeur et du décodeur.
Selon une variante, le seuil T peut être choisi en cours de codage et inscrit dans le fichier compressé ou dans le train binaire comprenant les données codées représentatives de l'image numérique Im . Par exemple, si l'unité qui effectue l'encodage ne dispose pas d'assez de ressources de calcul à un moment donné, il lui est possible d'augmenter ce seuil T de façon à prédire moins de signes, et donc mettre en oeuvre moins de calculs. Advantageously, the signs to be predicted are selected by thresholding the scores with which they are associated. Thus, for each coefficient RQ [i] which has a sign (that is to say, which is not zero) and which is associated with a context Cxj of score Sj, the sign is predicted if and only if Sj > T, where T is a predetermined threshold, for example equal to 0.7. For example, the threshold T is known from the encoder and the decoder. According to one variant, the threshold T may be chosen during encoding and written in the compressed file or in the bit stream comprising the coded data representative of the digital image Im. For example, if the unit that performs the encoding does not have enough computing resources at a given time, it is possible to increase this threshold T so as to predict fewer signs, and therefore implement fewer calculations.
Il serait également possible de faire varier le seuil T en fonction du contenu des images à coder : une image comportant beaucoup de contenu, tel que des variations de luminosité importantes ou des mouvements nombreux utiliserait un seuil élevé, et une image comportant peu de contenu tel que des variations de luminosité faibles ou mouvements peu nombreux, utiliserait un seuil T plus bas, de façon à lisser la complexité ou la mémoire nécessaire au codage de chaque image. It would also be possible to vary the threshold T according to the content of the images to be encoded: an image containing a lot of content, such as large variations in brightness or large movements would use a high threshold, and an image with little content such as that low luminosity variations or few movements, would use a lower threshold T, so as to smooth the complexity or the memory necessary for the coding of each image.
Dans l'exemple de réalisation de l'invention de la figure 1, les étapes E6 et E7 de détermination du contexte des coefficients et la sélection des signes à prédire s'appuient sur les valeurs des coefficients quantifiés du bloc résidu transformé. On notera que l'invention ne se limite pas à ce cas particulier, ces étapes pouvant aussi être mises en œuvre avant celle de quantification des coefficients du bloc résidu. In the exemplary embodiment of the invention of FIG. 1, the steps E6 and E7 for determining the context of the coefficients and the selection of the signs to be predicted are based on the values of the quantized coefficients of the transformed residue block. Note that the invention is not limited to this particular case, these steps can also be implemented before the quantization of the residual block coefficients.
Au cours d'une étape E8, l'ensemble des signes de RQ qui ne sont pas prédits sont codés de façon classique. Il est connu notamment de la norme H EVC, en particulier de l'article de Sole et al., déjà cité, le fait de transmettre chaque signe sous forme d'un élément binaire 0 ou 1, avec une convention associant l'un au signe plus et l'autre au signe moins. During a step E8, the set of RQ signs that are not predicted are coded in a conventional manner. It is known in particular from the H EVC standard, in particular from the article by Sole et al., Already mentioned, the fact of transmitting each sign in the form of a binary element 0 or 1, with a convention associating one with the sign more and the other sign less.
Au cours d'une étape E9, on prédit les signes sélectionnés comme « à prédire » dans le bloc RQ. Ceci est effectué par des moyens connus de l'homme de métier, par exemple selon la technique décrite dans l'article de Ponomarenko et al, intitulé «Prédiction of signs of DCT coefficients in block-based lossy image compression », publié dans les Proceedings de la Conférence SPIE 6497, Image Processing : Algorithms and Systems V, 64970L, en février 2007. Dans un mode de réalisation de l'invention, on construit autant de blocs décodés que de combinatoires des signes à prédire. Chaque version décodée utilise une combinaison différente des signes à prédire. Par exemple, supposons que le bloc RQ soit égal à { +8, +7, 0, -6, -3,0,0,2,-1,0,0,0,0,0,0,0}. Supposons également que les signes à
prédire soient ceux des 1er et 4eme coefficients (d'amplitude 8 et 6 respectivement). On connaît déjà les signes des 2eme, 5eme, 8eme et 9eme coefficients, qui n'étaient pas à prédire. Dans notre exemple, il y a deux signes à prédire, qui peuvent prendre les valeurs {+,+}, {+,-}, {-,+} et {-,-}. On va donc construire 4 blocs virtuels RQVs suivants : During a step E9, the selected signs are predicted as "to be predicted" in the RQ block. This is carried out by means known to those skilled in the art, for example according to the technique described in the article by Ponomarenko et al., Entitled "Prediction of DCT signals in block-based lossy image compression", published in the Proceedings of the SPIE 6497 Conference, Image Processing: Algorithms and Systems V, 64970L, February 2007. In one embodiment of the invention, as many decoded blocks as combinatorics of the signs to be predicted are constructed. Each decoded version uses a different combination of the signs to predict. For example, suppose the RQ block equals {+8, +7, 0, -6, -3,0,0,2, -1,0,0,0,0,0,0,0}. Suppose also that the signs to predict are those of 1 and 4 th coefficients (amplitude 8 and 6 respectively). We already know the signs of the 2 nd , 5 th , 8 th and 9 th coefficients, which were not to be predicted. In our example, there are two signs to predict, which can take the values {+, +}, {+, -}, {-, +} and {-, -}. We will build four virtual blocks RQVs:
RQVO = { +8, +7, 0, +6, -3,0,0,2,-1,0,0,0,0,0,0,0} RQVO = {+8, +7, 0, +6, -3,0,0,2, -1,0,0,0,0,0,0,0}
RQV1 = { +8, +7, 0, -6, -3,0,0,2,-1,0,0,0,0,0,0,0} RQV1 = {+8, +7, 0, -6, -3,0,0,2, -1,0,0,0,0,0,0,0}
RQV2 = { -8, +7, 0, +6, -3,0,0,2,-1,0,0,0,0,0,0,0} RQV2 = {-8, +7, 0, +6, -3,0,0,2, -1,0,0,0,0,0,0,0}
RQV3 = { -8, +7, 0, -6, -3,0,0,2,-1,0,0,0,0,0,0,0} RQV3 = {-8, +7, 0, -6, -3,0,0,2, -1,0,0,0,0,0,0,0}
On décode ensuite chaque bloc RQVs avec les moyens classiques de déquantification et de transformée inverse, leur ajoute le bloc prédit P, pour produire S blocs décodés virtuels BDVs. La vraisemblance de chacun de ces blocs est testée avec un critère de vraisemblance. Est retenue la combinaison de signes correspondant au bloc décodé virtuel qui maximise le critère de vraisemblance. Each RQVs block is then decoded with the conventional means of dequantization and inverse transform, adding the predicted block P to produce S virtual decoded blocks BDVs. The likelihood of each of these blocks is tested with a likelihood criterion. The combination of signs corresponding to the virtual decoded block that maximizes the likelihood criterion is retained.
Avantageusement, le critère de vraisemblance utilisé est la minimisation de l'erreur quadratique le long de la frontière entre le bloc décodé virtuel et les pixels précédemment décodés. Advantageously, the likelihood criterion used is the minimization of the quadratic error along the boundary between the virtual decoded block and the previously decoded pixels.
En relation avec la Figure 2, on a représenté une image décodée ID et un bloc décodé virtuel DVs de taille NxN pixels de cette image, où DVs(n,m) est la valeur du pixel du bloc DVs situé sur la n'eme ligne et la mieme colonne du bloc. La ligne brisée F représente la frontière entre le bloc virtuel décodée et le reste de l'image (précédemment décodé). ID(k,l) est la valeur du pixel de ID situé sur la keme ligne et la ieme colonne de l'image, et (lin, col) sont les coordonnées du bloc DVs (coordonnées du pixel en haut à gauche de DVS) dans l'image ID. On considère un opérateur « Side Matching » SM(3, B)), avec 3 image courante et B bloc courant, défini comme suit : iV- l iV- 1 In relation to Figure 2, there is shown a decoded image ID and DVs virtual decoded block of size NxN pixels of the image, where DVs (n, m) is the value of DVs pixel of the block located on the n 'th row and m th column of the block. The broken line F represents the boundary between the decoded virtual block and the rest of the image (previously decoded). ID (k, l) is the value of the ID pixel located on the k th line and the i th column of the image, and (lin, col) are the coordinates of the DVs block (coordinates of the pixel at the top left of DVS) in the image ID. We consider a "Side Matching" operator SM (3, B)), with 3 current image and B current block, defined as follows: iV-l iV-1
5M(3, B) = V (5(0, a) - 3(Zin - 1, col + a f + Y (β(α, 0) - 3(Zin + a, col - l))2
Sur la figure 2, ceci revient à former la somme (xl-yl)2+ (x2-y2)2+ (x3-y3)2+ (x4- y4)2+ (x5-y4)2+ (x6-y5)2+ (x7-y6)2+ (x8-y7)2. 5M (3, B) = V (5 (0, a) - 3 (Zin - 1, col + af + Y (β (α, O) - 3 (Zin + a, col - 1)) 2 In FIG. 2, this amounts to forming the sum (x1-yl) 2 + (x2-y2) 2 + (x3-y3) 2 + (x4-y4) 2 + (x5-y4) 2 + (x6-y5) ) 2 + (x7-y6) 2 + (x8-y7) 2 .
Nous allons déterminer le bloc décodé virtuel optimal DVopt qui minimise cette mesure : We will determine the optimal virtual decoded DVopt block that minimizes this measure:
DVopt = argminDV SM(lD, DVs) où ID représente l'image reconstruite après décodage. DV opt = argmin SM DV (lD, DV s ) where ID represents the reconstructed image after decoding.
Alternativement, le critère de vraisemblance utilisé est la minimisation de l'erreur avec le prédicteur P. Cela consiste à sélectionner le bloc décodé virtuel qui minimise l'erreur avec le prédicteur P. Alternatively, the likelihood criterion used is the minimization of the error with the predictor P. This consists in selecting the virtual decoded block which minimizes the error with the predictor P.
Le résidu virtuel associé au bloc décodé virtuel optimal est ainsi identifié. Supposons par exemple que DVopt = DV3, le bloc virtuel associé est alors RQV3. On considère alors les signes affectés au résidu virtuel identifié, dans notre exemple {-,-}. Ces signes deviennent la prédiction des signes : la prédiction du signe associé au 1er coefficient est - et la prédiction associée au signe du 4eme coefficient est également -. The virtual residue associated with the optimal virtual decoded block is thus identified. Suppose for example that DV opt = DV3, the associated virtual block is then RQV3. We then consider the signs assigned to the identified virtual residue, in our example {-, -}. These signs become predicting signs prediction sign associated with the coefficient is 1 - and the prediction associated with the sign of the 4 th coefficient is also -.
Au cours d'une étape E10, on calcule pour chaque signe à prédire une information représentative de la différence entre la prédiction du signe et la valeur réelle du signe, appelée indicateur de prédiction IP ou résidu du signe. During a step E10, for each sign to be predicted, information is calculated representative of the difference between the prediction of the sign and the real value of the sign, called the IP prediction indicator or the sign's residual.
Ainsi, dans l'exemple précédent, la prédiction de signe est {-,-} tandis que les vrais signes sont {+,-}. Thus, in the previous example, the sign prediction is {-, -} while the true signs are {+, -}.
Par convention, l'indicateur de prédiction IP est mis à 1 lorsque la prédiction est correcte et à 0 lorsque la prédiction est incorrecte. By convention, the IP prediction indicator is set to 1 when the prediction is correct and to 0 when the prediction is incorrect.
Au cours d'une étape El i, les valeurs de l'indicateur de prédiction IP pour chaque signe à prédire sont codées par une technique de codage entropique connue, telle que par exemple un codage de Huffman, codage arithmétique ou encore codage CABAC tel qu'utilisé dans la norme HEVC. On obtient une valeur CIP de l'indicateur de prédiction codé. During a step El i, the values of the IP prediction indicator for each sign to be predicted are coded by a known entropy coding technique, such as for example a Huffman coding, arithmetic coding or CABAC coding such as 'used in the HEVC standard. A CIP value of the coded prediction indicator is obtained.
Selon l'invention, du fait que seuls sont prédits les signes qui sont associés à un score représentatif d'un niveau de fiabilité suffisant, l'indicateur de prédiction prend plus souvent la valeur 1 que la valeur 0. Ceci est mis à profit par le codage entropique pour réduire la taille du signal compressé.
Avantageusement, le codage entropique tient compte du score Sj associé au signe prédit pour coder l'indicateur IP. Par exemple, dans le mode de réalisation de l'invention selon lequel le score a une valeur comprise entre 0 (faible fiabilité de la prédiction) et 10 (haute fiabilité de la prédiction), le codage entropique des indicateurs est paramétré en tenant compte du score, de façon à exploiter la répartition plus ou moins uniforme des indicateurs. Par exemple, on utilise un codage entropique de type CABAC, connu de la norme HEVC, en initialisant les probabilités utilisées dans CABAC en fonction des scores prédéterminés. According to the invention, since only the signs that are associated with a representative score of a sufficient level of reliability are predicted, the prediction indicator more often takes the value 1 than the value 0. This is exploited by entropy coding to reduce the size of the compressed signal. Advantageously, the entropy coding takes into account the score Sj associated with the predicted sign for coding the IP indicator. For example, in the embodiment of the invention in which the score has a value between 0 (low reliability of the prediction) and 10 (high reliability of the prediction), the entropic coding of the indicators is parameterized taking into account the score, so as to exploit the more or less uniform distribution of the indicators. For example, CABAC-type entrapic coding, known from the HEVC standard, is used by initializing the probabilities used in CABAC based on the predetermined scores.
Au cours d'une étape E12, on construit le bloc décodé D correspondant au bloc RQ, en appliquant au résidu quantifié RQ les étapes de déquantification et de transformée inverse (connues en soi). On obtient un bloc résidu décodé RD. On ajoute à RD le bloc prédicteur P pour obtenir le bloc décodé D. During a step E12, the decoded block D corresponding to the block RQ is constructed by applying to the quantized residue RQ the dequantization and reverse transform steps (known per se). A decoded residue block RD is obtained. The predictor block P is added to RD to obtain the decoded block D.
Au cours de cette étape on vient également ajouter le bloc décodé D à l'image reconstruite ID. Ceci permet de disposer dans le codeur d'une version décodée de l'image courante. Cette version décodée est utilisée dans notamment au cours de l'étape de construction d'une prédiction des signes sélectionnés pour être prédits. During this step we also add the decoded block D to the reconstructed image ID. This makes it possible to have in the encoder a decoded version of the current image. This decoded version is used in particular during the step of constructing a prediction of the signs selected to be predicted.
Au cours d'une étape E13 les données codées, c'est-à-dire les amplitudes des coefficients CA, les signes non prédits codés CS, les indicateurs des signes prédits CIP sont insérés dans le train binaire TB ou dans le fichier compressé FC. Au cours d'une étape E14, on vient tester si le bloc courant C est le dernier bloc à traiter par l'unité de codage, compte tenu de l'ordre de parcours défini précédemment. Si oui, l'unité de codage a terminé son traitement. Si non, l'étape suivante est l'étape de sélection du bloc suivant E0. Ce bloc devient le bloc courant à traiter, et l'étape suivante est l'étape de prédiction El . Dans un exemple de réalisation de l'invention, le contexte Cxj dépend de la taille de blocs I (parmi 4 tailles possibles, comme décrit précédemment), du mode de prédiction intra mk parmi 35 modes de prédiction possibles (tels que décrits dans la norme HEVC évoquée précédemment), de la fréquence i (parmi 16, 64, 256 ou 1024 fréquences possibles, en fonction de la taille des blocs), et de l'amplitude | RQ[i] | (qui peut prendre 256 valeurs possibles lorsqu'elle elle est codée sur 8 bits). Dans cet exemple, le nombre J de contextes utilisés est égal à 35x(16+64+256+ 1024)x256 = 12185600.
Un examen préalable sur des séquences vidéo typiques permet de calculer une probabilité de détection correcte du signe pour chacun des contextes Cxj. Cette probabilité est le score Sj associé à chaque contexte Cxj, ce qui permet de sélectionner les signes à prédire à partir d'un seuil de 0.7, comme décrit précédemment. Ainsi, un gain en compression de 1 à 2 % est observé par rapport à l'état de l'art. During a step E13 the coded data, that is to say the amplitudes of the coefficients CA, the unpredictable signs coded CS, the indicators of the predicted signs CIP are inserted in the bit stream TB or in the compressed file FC . During a step E14, it is tested whether the current block C is the last block to be processed by the coding unit, given the order of travel defined above. If yes, the coding unit has finished processing. If not, the next step is the step of selecting the next block E0. This block becomes the current block to be processed, and the next step is the prediction step E1. In an exemplary embodiment of the invention, the context Cxj depends on the size of blocks I (out of 4 possible sizes, as previously described), of the intra mk prediction mode among 35 possible prediction modes (as described in the standard HEVC mentioned above), the frequency i (among 16, 64, 256 or 1024 possible frequencies, depending on the size of the blocks), and the amplitude | RQ [i] | (which can take 256 possible values when encoded on 8 bits). In this example, the number J of contexts used is equal to 35x (16 + 64 + 256 + 1024) x256 = 12185600. A preliminary examination on typical video sequences makes it possible to calculate a probability of correct detection of the sign for each context Cxj. This probability is the score Sj associated with each context Cxj, which makes it possible to select the signs to be predicted from a threshold of 0.7, as previously described. Thus, a compression gain of 1 to 2% is observed compared to the state of the art.
En relation avec la Figure 3, on présente maintenant les étapes du procédé de décodage d'une image numérique codée selon un exemple de réalisation de l'invention. In relation to FIG. 3, the steps of the method of decoding a coded digital image according to an exemplary embodiment of the invention are now presented.
On considère un train de bits TB ou un fichier compressé FC produit par le procédé de codage selon l'invention qui vient d'être décrit. L'un ou l'autre encode une vidéo composée d'une suite de M images numériques Im, avec M entier non nul et m entier compris entre 1 et M . Une image Im est subdivisée en blocs de taille NxN, avec N entier non nul et par exemple égal à 4, 8, 16 ou 32 pixels. A TB bitstream or an FC compressed file produced by the encoding method according to the invention which has just been described is considered. One or the other encodes a video composed of a sequence of M digital images Im, with M nonzero integer and m integer between 1 and M. An image Im is subdivided into blocks of size NxN, with N nonzero integer and for example equal to 4, 8, 16 or 32 pixels.
Le procédé de décodage selon l'invention comprend une étape DO de sélection d'un premier bloc à décoder D', qui est identique à l'étape EO de sélection d'un premier bloc à coder présentée en relation avec la Figure 1. The decoding method according to the invention comprises a step D0 of selecting a first block to be decoded D ', which is identical to the step E0 of selecting a first block to be coded presented in relation with FIG.
Au cours d'une étape Dl, on détermine une prédiction P' du bloc à décoder D'. Les informations de prédiction liées à P' sont lues dans le train de bits ou le fichier compressé et sont décodées. Ces informations de prédiction comprennent un mode de prédiction mk du bloc à décoder C courant. During a step D1, a prediction P 'of the block to be decoded D' is determined. The prediction information related to P 'is read in the bit stream or the compressed file and is decoded. This prediction information comprises a prediction mode mk of the block to be decoded C current.
Selon une variante, le mode de prédiction peut au contraire être totalement inféré. According to one variant, the prediction mode can instead be totally inferred.
Au cours d'une étape D2, les informations d'amplitude d'un bloc résidu quantifié RQ' correspondant au bloc à décoder D' sont lues dans le train binaire ou le fichier compressé puis décodées. A l'issue de cette étape, on connaît donc les amplitudes des coefficients du bloc résidu quantifié RQ'[i], avec i entier compris entre 1 et NxN, mais pas encore les signes. During a step D2, the amplitude information of a quantized residual block RQ 'corresponding to the block to be decoded D' are read in the bit stream or the compressed file and then decoded. At the end of this step, we therefore know the magnitudes of the coefficients of the quantized residual block RQ '[i], with i integer between 1 and NxN, but not yet the signs.
Au cours d'une étape D3, on détermine les contextes de codage Cxj' des coefficients du bloc résidu quantifié RQ' parmi une pluralité de contextes prédéterminés. Cette étape est identique à celle du procédé de codage. Au cours d'une étape D4, on sélectionne les signes des coefficients RQ'[i] à prédire. Cette étape est identique à celle mise en œuvre au codage. Elle associe à chaque coefficient
RQ'[i] le contexte de codage Cxj' précédemment déterminé et s'appuie sur un score prédéterminé Sj' représentatif d'un niveau de fiabilité d'une prédiction du signe pour le contexte Cxj' de coefficient considéré. During a step D3, the coding contexts Cxj 'of the coefficients of the quantized residual block RQ' are determined from among a plurality of predetermined contexts. This step is identical to that of the coding method. During a step D4, the signs of the coefficients RQ '[i] to be predicted are selected. This step is identical to that implemented at coding. It associates with each coefficient RQ '[i] the coding context Cxj' previously determined and is based on a predetermined score Sj 'representative of a reliability level of a prediction of the sign for the context Cxj' coefficient considered.
Au cours d'une étape D5, on décode les signes non prédits avec des moyens adaptés à ceux utilisés lors du codage. Typiquement, le décodage mis en œuvre est binaire, par exemple entropique ou de Huffman. On obtient les signes décodés non prédits NPS'. During a step D5, the unpredicted signs are decoded with means adapted to those used during the coding. Typically, the decoding implemented is binary, for example entropic or Huffman. The unpredicted NPS 'decoded signs are obtained.
Au cours d'une étape D6, on prédit les signes des coefficients sélectionnés. Cette étape est identique à celle mise en œuvre au codage. On obtient donc une liste de blocs résidus virtuels RQV, similaire à celle des blocs résidus RQV obtenue au codeur. On décode ensuite chaque bloc RQV avec les moyens classiques de déquantification et transformée inverse, leur ajoute le bloc prédit P', pour produire S blocs décodés virtuels BDV's. La vraisemblance de chacun de ces blocs est testée avec un critère de vraisemblance. Est retenu celui dont la combinaison de signes maximise ce critère. During a step D6, the signs of the selected coefficients are predicted. This step is identical to that implemented at coding. A list of RQV virtual residue blocks is thus obtained, similar to that of the RQV residue blocks obtained at the coder. Each RQV block is then decoded with the conventional means of dequantization and inverse transform, adds the predicted block P 'to produce S virtual decoded blocks BDV's. The likelihood of each of these blocks is tested with a likelihood criterion. The one whose combination of signs maximizes this criterion is selected.
Dans l'exemple précédent, il s'agissait de la combinaison {-,-}. In the previous example, it was the combination {-, -}.
Au cours d'une étape D7, on extrait du train de bits et on décode les valeurs DIP' d'un indicateur de prédiction IP des signes prédits. Il s'agit d'une information représentative d'une différence entre la prédiction d'un signe et la valeur réelle de ce signe, c'est-à-dire d'un résidu de signe. Elle peut prendre les valeurs suivantes : - une valeur représentative d'une prédiction correcte ; une valeur représentative d'une prédiction incorrecte. During a step D7, the bitstream is extracted and the DIP values' of an IP prediction indicator of the predicted signs are decoded. It is an information representative of a difference between the prediction of a sign and the real value of this sign, that is to say of a sign residue. It can take the following values: - a value representative of a correct prediction; a value representative of an incorrect prediction.
Au cours d'une étape D8, les valeurs de cet indicateur IP dans le bloc résidu quantifié courant RQV sont utilisées pour corriger si nécessaire les valeurs prédites des signes sélectionnés. During a step D8, the values of this IP indicator in the current quantized residual block RQV are used to correct, if necessary, the predicted values of the selected signs.
Ainsi, dans l'exemple précédent, les valeurs de l'indicateur de prédiction présente dans le train binaire sont représentatives d'une première prédiction fausse et d'une deuxième prédiction juste. Ceci nous permet de décoder les signes réels des coefficients du bloc résidu courant {+,-}, et de reconstruire le résidu décodé complet RQ' = { +8, +7, 0, -6, -3,0,0,2,-1,0,0,0,0,0,0,0}.
Au cours d'une étape D9, le bloc RQ' est déquantifié pour obtenir un bloc RT' déquantifié. Ceci est réalisé par des moyens adaptés à la quantification utilisée lors du codage (déquantification scalaire, déquantification vectorielle...) Thus, in the preceding example, the values of the prediction indicator present in the bit stream are representative of a first false prediction and a second right prediction. This allows us to decode the real signs of the coefficients of the current residue block {+, -}, and to reconstruct the complete decoded residue RQ '= {+8, +7, 0, -6, -3,0,0,2 , -1,0,0,0,0,0,0,0}. During a step D9, the block RQ 'is dequantized to obtain a dequantized block RT'. This is done by means adapted to the quantification used during the coding (scalar dequantization, vector dequantization ...)
Au cours d'une étape D10, on applique au résidu déquantifié RT' une transformée inverse de celle utilisée au codage. On obtient alors le résidu décodé R'. During a step D10, the dequantized residue RT 'is subjected to a transform that is the inverse of that used for coding. The decoded residue R 'is then obtained.
Au cours d'une étape DU, le résidu décodé R' est ajouté à la prédiction P', pour reconstruire le bloc décodé D'. Ce bloc D' est intégré à l'image ID en cours de décodage. During a step DU, the decoded residue R 'is added to the prediction P', to reconstruct the decoded block D '. This block D 'is integrated in the image ID being decoded.
Au cours d'une étape D12, on teste si le bloc courant est le dernier bloc à traiter par l'unité de décodage, compte tenu de l'ordre de parcours défini précédemment. Si oui, l'unité de codage a terminé son traitement. Si non, l'étape suivante est l'étape de sélection du bloc suivant DO. During a step D12, it is tested whether the current block is the last block to be processed by the decoding unit, given the order of travel defined above. If yes, the coding unit has finished processing. If not, the next step is the step of selecting the next block DO.
Au cours d'une étape D13, on vient sélectionner le bloc suivant à traiter par l'unité de décodage, suivant le parcours défini précédemment. Ce bloc devient le bloc courant à décoder, et l'étape suivante est l'étape de prédiction Dl. During a step D13, one comes to select the next block to be processed by the decoding unit, following the path defined above. This block becomes the current block to be decoded, and the next step is the prediction step D1.
On notera que l'invention qui vient d'être décrite, peut être mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « entité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en œuvre la ou les fonctions décrites pour le module ou l'entité concerné(e). It will be noted that the invention which has just been described can be implemented by means of software and / or hardware components. In this context, the terms "module" and "entity", used in this document, may correspond either to a software component, or to a hardware component, or to a set of hardware and / or software components, capable of implementing perform the function (s) described for the module or entity concerned.
En relation avec la figure 4, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique selon l'invention. Le dispositif 100 met en œuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec la Figure 1. With reference to FIG. 4, an example of a simplified structure of a device 100 for encoding a digital image according to the invention is now presented. The device 100 implements the coding method according to the invention which has just been described in relation with FIG.
Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur μΐ, et pilotée par un programme d'ordinateur Pg l 120, stocké dans une mémoire 130 et mettant en œuvre le procédé de codage selon l'invention. For example, the device 100 comprises a processing unit 110, equipped with a μΐ processor, and driven by a computer program Pg l 120, stored in a memory 130 and implementing the coding method according to the invention.
A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur
de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120. At initialization, the code instructions of the computer program Pgi 120 are for example loaded into a RAM before being executed by the processor of the processing unit 110. The processor of the processing unit 110 implements the steps of the method described above, according to the instructions of the computer program 120.
Dans cet exemple de réalisation de l'invention, le dispositif 100 comprend au moins une unité PRED de prédiction des valeurs du bloc courant à partir d'au moins un bloc précédemment traité selon un mode de prédiction choisi parmi une pluralité de modes prédéterminés, une unité CALC de calcul d'un bloc résidu par soustraction des valeurs prédites aux valeurs originales du bloc courant, une unité TRANS d'obtention d'un bloc résidu transformé par application d'une transformée aux pixels du bloc résidu, ledit bloc résidu transformé comprenant des coefficients, une unité DET de détermination d'un contexte d'un coefficient du bloc résidu courant parmi une pluralité de contextes prédéterminés, en fonction d'au moins une caractéristique appartenant à un groupe comprenant au moins la taille du bloc, l'amplitude du coefficient, la fréquence du coefficient et le mode de prédiction du bloc courant, une unité SEL de sélection des signes des coefficients à prédire dans le bloc courant, le signe d'un coefficient du bloc résidu transformé étant sélectionné en fonction d'un score prédéterminé associé au contexte de codage dudit coefficient, ledit score étant représentatif d'un niveau de fiabilité de la prédiction du signe, une unité PRED SIGNS de prédiction des signes sélectionnés dans le bloc courant à partir de blocs voisins codés décodés selon un critère de minimisation d'erreur, une unité CALC IP de calcul d'un indicateur de prédiction des signes sélectionnés à partir des prédictions des signes sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant une première valeur représentative d'une prédiction correcte et une deuxième valeur représentative d'une prédiction incorrecte, une unité COD IP de codage entropique des valeurs d'indicateurs obtenues pour les signes prédits et une unité COD NPS de codage des signes non prédits. In this exemplary embodiment of the invention, the device 100 comprises at least one prediction unit PRED of the values of the current block from at least one block previously processed according to a prediction mode chosen from among a plurality of predetermined modes, a CALC unit for calculating a residue block by subtracting the predicted values from the original values of the current block, a TRANS unit for obtaining a residue block transformed by application of a transform to the pixels of the residue block, said transformed residue block comprising coefficients, a DET unit for determining a context of a coefficient of the current residual block among a plurality of predetermined contexts, as a function of at least one characteristic belonging to a group comprising at least the size of the block, the amplitude of the coefficient, the frequency of the coefficient and the prediction mode of the current block, a unit SEL of selection of the signs of the coefficients to be predicted e in the current block, the sign of a coefficient of the transformed residue block being selected according to a predetermined score associated with the coding context of said coefficient, said score being representative of a reliability level of the prediction of the sign, a PRED SIGNS unit for prediction of the selected signs in the current block from coded neighboring blocks decoded according to an error minimization criterion, an IP CALC unit for calculating a prediction indicator of the selected signs from the predictions of the selected signs and their original values, the flag being intended to take a value in a group comprising a first value representative of a correct prediction and a second value representative of an incorrect prediction, an IP coding unit of entropic coding of the values of indicators obtained for the predicted signs and an NPS COD unit coding the signs not predicted.
Le dispositif 100 comprend en outre une unité BD1 de stockage des contextes de codage des coefficients et des scores prédéterminés associés à chacun de ces contextes. Ces unités sont pilotées par le processeur μΐ de l'unité de traitement 110.
De façon avantageuse, un tel dispositif 100 peut être intégré à un terminal d'utilisateur TU. Le dispositif 100 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire ou un réseau hertzien. The device 100 further comprises a unit BD1 for storing the coding contexts of the coefficients and predetermined scores associated with each of these contexts. These units are driven by the μΐ processor of the processing unit 110. Advantageously, such a device 100 can be integrated with a user terminal TU. The device 100 is then arranged to cooperate at least with the following module of the terminal TU: a data transmission / reception module E / R, through which the bit stream TB or the compressed file FC is transmitted in a network telecommunications network, for example a wired network or a wireless network.
Toujours en relation avec la figure 4, on présente maintenant un exemple de structure simplifiée d'un dispositif 200 de décodage d'une image numérique selon l'invention. Le dispositif 200 met en œuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec la Figure 3. Still in relation to FIG. 4, an example of a simplified structure of a device 200 for decoding a digital image according to the invention is now presented. The device 200 implements the decoding method according to the invention which has just been described in relation to FIG.
Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un processeur μ2, et pilotée par un programme d'ordinateur Pg2 220, stocké dans une mémoire 230 et mettant en œuvre le procédé de décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pg2 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 220. Dans cet exemple de réalisation de l'invention, le dispositif 200 comprend au moins une unité PRED' de prédiction du bloc courant à partir d'au moins un bloc précédemment traité et d'informations relatives à un mode de prédiction du bloc courant, une unité DEC RES de décodage entropique des amplitudes codées des coefficients d'un bloc résidu extraites du train binaire, ledit bloc résidu ayant été obtenu par soustraction des valeurs prédites à partir dudit au moins un bloc précédemment traité et des informations relatives à un mode de prédiction mk du bloc courant, aux valeurs originales du bloc courant, une unité DET' de détermination d'un contexte d'un coefficient du bloc résidu courant parmi une pluralité de contextes prédéterminés, en fonction d'au moins une caractéristique appartenant à un groupe comprenant au moins la taille du bloc, l'amplitude du coefficient, la fréquence du coefficient et le mode de prédiction du bloc
courant, une unité SEL' de sélection des signes des coefficients à prédire dans le bloc résidu transformé, le signe d'un coefficient du bloc résidu courant étant sélectionné en fonction d'un score prédéterminé associé au contexte de codage dudit coefficient, ledit score étant représentatif d'un niveau de fiabilité de la prédiction du signe, une unité DEC NPS' de décodage des signes non prédits à partir des données codées extraites du train binaire, une unité PRED' SIGNS de prédiction des valeurs des signes sélectionnés à partir des signes de pixels d'au moins un bloc voisin décodé du bloc courant selon un critère de minimisation d'erreur, une unité DEC IP de décodage de valeurs d'indicateurs de prédiction des signes sélectionnés à partir des données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant une première valeur représentative d'une prédiction correcte et une deuxième valeur représentative d'une prédiction incorrecte, une unité CALC des valeurs décodées des signes prédits à partir des valeurs d'indicateurs de prédiction décodées des signes sélectionnés, une unité TRANSF-1 de transformation inverse des amplitudes de coefficients du bloc résidu transformé RQ'[i], une unité RECONST de reconstruction des coefficients du bloc résidu à partir des amplitudes décodées et des signes décodés. For example, the device 200 comprises a processing unit 210, equipped with a processor μ2, and driven by a computer program Pg2 220, stored in a memory 230 and implementing the decoding method according to the invention. At initialization, the code instructions of the computer program Pg2 220 are for example loaded into a RAM before being executed by the processor of the processing unit 210. The processor of the processing unit 210 sets implement the steps of the method described above, according to the instructions of the computer program 220. In this embodiment of the invention, the device 200 comprises at least one prediction unit PRED 'of the current block from at least a previously processed block and information relating to a prediction mode of the current block, a DEC RES unit for entropic decoding of the coded amplitudes of the coefficients of a residue block extracted from the bit stream, said residual block having been obtained by subtraction of the values predicted from said at least one previously processed block and information relating to a prediction mode mk of the current block, to the original values of the current block, a e DET 'unit for determining a context of a coefficient of the current residual block among a plurality of predetermined contexts, as a function of at least one characteristic belonging to a group comprising at least the size of the block, the amplitude of the coefficient , the frequency of the coefficient and the prediction mode of the block current, a unit SEL 'for selecting the signs of the coefficients to be predicted in the transformed residue block, the sign of a coefficient of the current residue block being selected according to a predetermined score associated with the coding context of said coefficient, said score being Representative of a reliability level of the prediction of the sign, a DEC NPS 'unit for decoding unpredicted signs from the coded data extracted from the bitstream, a PRED' SIGNS unit for predicting the values of the signs selected from the signs of pixels of at least one decoded neighbor block of the current block according to an error minimization criterion, a DEC decoding unit of prediction indicator value values of the selected signs from the coded data extracted from the bit stream, the indicator being intended to take a value in a group comprising a first value representative of a correct prediction and a second value representative of an incorrect prediction, a CALC unit of the decoded values of the signs predicted from the values of decoded prediction indicators of the selected signs, a TRANSF-1 unit of inverse transformation of the amplitudes of coefficients of the transformed residue block RQ '[i ], a RECONST unit for reconstructing the coefficients of the residual block from decoded amplitudes and decoded signs.
Le dispositif 200 comprend en outre une unité BD2 de stockage des contextes de codage des coefficients et des scores prédéterminés associés à chacun de ces contextes. The device 200 further comprises a unit BD2 for storing the coding contexts of the coefficients and predetermined scores associated with each of these contexts.
Ces unités sont pilotées par le processeur μ2 de l'unité de traitement 210. De façon avantageuse, un tel dispositif 200 peut être intégré à un terminal d'utilisateur TU. Le dispositif 200 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : These units are driven by the processor μ2 of the processing unit 210. Advantageously, such a device 200 can be integrated with a user terminal TU. The device 200 is then arranged to cooperate at least with the following module of the terminal TU:
Un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est reçu d'un réseau de télécommunications ; A data transmission / reception module E / R, through which the bit stream TB or the compressed file FC is received from a telecommunications network;
Un dispositif DISP de restitution d'images, par exemple un écran de terminal, par l'intermédiaire duquel l'image numérique décodée ou la suite d'images décodées est restituée à un utilisateur. An image rendering device DISP, for example a terminal screen, through which the decoded digital image or the sequence of decoded images is returned to a user.
II 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.
It goes without saying that the embodiments which have been described above have been given for purely indicative and in no way limiting, and that many modifications can easily be made by those skilled in the art without departing from the scope of the invention.