[go: up one dir, main page]

HK40009225B - Method and recording medium storing coded image data - Google Patents

Method and recording medium storing coded image data

Info

Publication number
HK40009225B
HK40009225B HK19132915.0A HK19132915A HK40009225B HK 40009225 B HK40009225 B HK 40009225B HK 19132915 A HK19132915 A HK 19132915A HK 40009225 B HK40009225 B HK 40009225B
Authority
HK
Hong Kong
Prior art keywords
coefficients
coefficient
sign
data items
zero
Prior art date
Application number
HK19132915.0A
Other languages
German (de)
French (fr)
Chinese (zh)
Other versions
HK40009225A (en
Inventor
Félix Henry
Gordon Clare
Original Assignee
Dolby International Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby International Ab filed Critical Dolby International Ab
Publication of HK40009225A publication Critical patent/HK40009225A/en
Publication of HK40009225B publication Critical patent/HK40009225B/en

Links

Description

Domaine de l'inventionField of invention

La présente invention se rapporte de manière générale au domaine du traitement d'images, et plus précisément au codage et au décodage d'images numériques et de séquences d'images numériques.The present invention relates generally to the field of image processing, and more specifically to the coding and decoding of digital images and digital image sequences.

L'invention peut ainsi, notamment, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels (MPEG, H.264, etc) ou à venir (ITU-T/VCEG (H.265) ou ISO/MPEG (HEVC).The invention can thus, in particular, be applied to video coding implemented in current video coders (MPEG, H.264, etc.) or future ones (ITU-T/VCEG (H.265) or ISO/MPEG (HEVC).

Arrière-plan de l'inventionBackground of the invention

Les codeurs vidéo actuels (MPEG, H.264, ...) utilisent une représentation par blocs de la séquence vidéo. Les images sont découpées en macro-blocs, chaque macro-bloc est lui-même découpé en blocs et chaque bloc, ou macro-bloc, est codé par prédiction intra-images ou inter-images. Ainsi, certaines images sont codées par prédiction spatiale (prédiction intra), tandis que d'autres images sont codées par prédiction temporelle (prédiction inter) par rapport à une ou plusieurs images de référence codées-décodées, à l'aide d'une compensation en mouvement connue par l'homme de l'art.Current video coders (MPEG, H.264, ...) use a block representation of the video sequence. The images are divided into macro-blocks, each macro-block is itself divided into blocks and each block, or macro-block, is coded by intra-image or inter-image prediction. Thus, some images are coded by spatial prediction (intra prediction), while other images are coded by temporal prediction (inter prediction) with respect to one or more coded-decoded reference images, using motion compensation known to those skilled in the art.

Pour chaque bloc est codé un bloc résiduel, encore appelé résidu de prédiction, correspondant au bloc original diminué d'une prédiction. Les blocs résiduels sont transformés par une transformée de type transformée en cosinus discrète (DCT), puis quantifiés à l'aide d'une quantification par exemple de type scalaire. Des coefficients dont certains sont positifs et d'autres négatifs sont obtenus à l'issue de l'étape de quantification. Ils sont ensuite parcourus dans un ordre de lecture généralement en zigzag (comme dans la norme JPEG), ce qui permet d'exploiter le nombre important de coefficients nuls dans les hautes fréquences. A l'issue du parcours précité, une liste monodimensionnelle de coefficients est obtenue, laquelle sera appelée « résidu quantifié ». Les coefficients de cette liste sont alors codés par un codage entropique.For each block, a residual block, also called a prediction residual, is coded, corresponding to the original block reduced by a prediction. The residual blocks are transformed by a discrete cosine transform (DCT), then quantized using a quantization, for example a scalar one. Coefficients, some of which are positive and others negative, are obtained at the end of the quantization step. They are then scanned in a generally zigzag reading order (as in the JPEG standard), which makes it possible to exploit the large number of zero coefficients in the high frequencies. At the end of the aforementioned scan, a one-dimensional list of coefficients is obtained, which will be called the "quantized residual". The coefficients in this list are then coded by an entropy coding.

Le codage entropique (par exemple de type codage arithmétique ou codage de Huffman) est effectué de la façon suivante :

  • une information est codée entropiquement pour indiquer l'emplacement du dernier coefficient non nul de la liste,
  • pour chaque coefficient situé avant le dernier coefficient non nul, une information est codée entropiquement pour indiquer si le coefficient est nul ou pas,
  • pour chaque coefficient non nul indiqué précédemment, une information est codée entropiquement pour indiquer si le coefficient est égal à un ou pas,
  • pour chaque coefficient non nul et non égal à un situé avant le dernier coefficient non nul, une information d'amplitude (valeur absolue du coefficient diminuée de deux) est codée entropiquement,
  • pour chaque coefficient non nul, le signe qui lui est affecté est codé par un '0' (pour le signe +) ou un '1' (pour le signe -).
Entropy coding (e.g. arithmetic coding or Huffman coding) is performed as follows:
  • information is entropically encoded to indicate the location of the last non-zero coefficient in the list,
  • for each coefficient located before the last non-zero coefficient, information is entropically coded to indicate whether the coefficient is zero or not,
  • for each non-zero coefficient indicated previously, information is entropically coded to indicate whether the coefficient is equal to one or not,
  • for each non-zero coefficient not equal to one located before the last non-zero coefficient, amplitude information (absolute value of the coefficient reduced by two) is entropically coded,
  • for each non-zero coefficient, the sign assigned to it is coded by a '0' (for the + sign) or a '1' (for the - sign).

Selon la technique H.264 par exemple, lorsqu'un macrobloc est découpé en blocs, un signal de données, correspondant à chaque bloc, est transmis au décodeur. Un tel signal comprend :

  • les résidus quantifiés contenus dans la liste précitée,
  • des informations représentatives du mode de codage utilisé, en particulier: le mode de prédiction (prédiction intra, prédiction inter, prédiction par défaut réalisant une prédiction pour laquelle aucune information n'est transmise au décodeur (« en anglais « skip »)) ;des informations précisant le type de prédiction (orientation, image de référence, ...) ;le type de partitionnement ;le type de transformée, par exemple DCT 4x4, DCT 8x8, etc...les informations de mouvement si nécessaire ;etc.
According to the H.264 technique for example, when a macroblock is divided into blocks, a data signal, corresponding to each block, is transmitted to the decoder. Such a signal includes:
  • the quantified residues contained in the aforementioned list,
  • information representative of the coding mode used, in particular: the prediction mode (intra prediction, inter prediction, default prediction making a prediction for which no information is transmitted to the decoder ("skip" in English)); information specifying the type of prediction (orientation, reference image, etc.); the type of partitioning; the type of transform, for example DCT 4x4, DCT 8x8, etc.; motion information if necessary; etc.

Le décodage est fait image par image, et pour chaque image, macrobloc par macrobloc. Pour chaque partition d'un macrobloc, les éléments correspondants du flux sont lus. La quantification inverse et la transformation inverse des coefficients des blocs sont effectuées pour produire le résidu de prédiction décodé. Puis, la prédiction de la partition est calculée et la partition est reconstruite en ajoutant la prédiction au résidu de prédiction décodé.Decoding is done frame by frame, and for each frame, macroblock by macroblock. For each partition of a macroblock, the corresponding elements of the stream are read. Inverse quantization and inverse transformation of the block coefficients are performed to produce the decoded prediction residual. Then, the partition prediction is calculated and the partition is reconstructed by adding the prediction to the decoded prediction residual.

Le codage intra ou inter par compétition, tel que mis en œuvre dans la norme H.264, repose ainsi sur la mise en compétition de différentes informations de codage, telles que celles précitées, dans le but de sélectionner le meilleur mode, c'est-à-dire celui qui optimisera le codage de la partition considérée selon un critère de performance prédéterminé, par exemple le coût débit/distorsion bien connu de l'homme du métier.Intra or inter coding by competition, as implemented in the H.264 standard, is thus based on the competition of different coding information, such as that mentioned above, with the aim of selecting the best mode, i.e. the one which will optimize the coding of the partition considered according to a predetermined performance criterion, for example the bitrate/distortion cost well known to those skilled in the art.

Les informations représentatives du mode de codage sélectionné sont contenues dans le signal de données transmis par le codeur au décodeur. Le décodeur est ainsi capable d'identifier le mode de codage sélectionné au codeur, puis d'appliquer la prédiction conforme à ce mode.The information representative of the selected coding mode is contained in the data signal transmitted by the encoder to the decoder. The decoder is thus able to identify the coding mode selected by the encoder, then apply the prediction consistent with this mode.

Dans le document « Data Hiding of Motion Information in Chroma and Luma Samples for Video Compression », J.-M. Thiesse, J. Jung and M. Antonini, International workshop on multimedia signal processing, 2011 , il est présenté un procédé de dissimulation de données (traduction anglaise de « Data Hiding ») mis en œuvre au cours d'une compression vidéo.In the document “Data Hiding of Motion Information in Chroma and Luma Samples for Video Compression”, J.-M. Thiesse, J. Jung and M. Antonini, International workshop on multimedia signal processing, 2011 , a data hiding process is presented, implemented during video compression.

Plus précisément, il est proposé d'éviter d'inclure dans le signal à transmettre au décodeur au moins un index de compétition tel qu'issu d'une pluralité d'index de compétition à transmettre. Un tel index est par exemple l'index MVComp qui représente une information permettant d'identifier le prédicteur de vecteur de mouvement utilisé pour un bloc prédit en mode Inter. Un tel index qui peut valoir 0 ou 1, n'est pas inscrit directement dans le signal de données codées, mais transporté par la parité de la somme des coefficients du résidu quantifié. Une association est créée entre la parité du résidu quantifié et l'index MVComp. A titre d'exemple, la valeur paire du résidu quantifié est associée à l'index MVComp de valeur 0, tandis que la valeur impaire du résidu quantifié est associée à l'index MVComp de valeur 1. Deux cas peuvent se présenter. Dans un premier cas, si la parité du résidu quantifié correspond déjà à celle de l'index MVComp que l'on veut transmettre, le résidu quantifié est codé de façon classique. Dans un deuxième cas, si la parité du résidu quantifié est différente de celle de l'index MVComp que l'on veut transmettre, il est procédé à une modification du résidu quantifié de manière à ce que sa parité soit la même que celle de l'index MVComp. Une telle modification consiste à incrémenter ou décrémenter un ou plusieurs coefficients du résidu quantifié d'une valeur impaire (ex : +1, -1, +3, -3, +5, -+5...) et de ne retenir que la modification qui optimise un critère prédéterminé, en l'occurrence le coût débit-distorsion précité.More precisely, it is proposed to avoid including in the signal to be transmitted to the decoder at least one competition index such as originating from a plurality of competition indices to be transmitted. Such an index is for example the MVComp index which represents information making it possible to identify the motion vector predictor used for a predicted block in Inter mode. Such an index which can be 0 or 1, is not written directly in the coded data signal, but carried by the parity of the sum of the coefficients of the quantized residue. An association is created between the parity of the quantized residue and the MVComp index. For example, the even value of the quantized residue is associated with the MVComp index of value 0, while the odd value of the quantized residue is associated with the MVComp index of value 1. Two cases can arise. In a first case, if the parity of the quantized residue already corresponds to that of the MVComp index which one wishes to transmit, the quantized residue is coded in a conventional manner. In a second case, if the parity of the quantized residue is different from that of the MVComp index that we want to transmit, a modification of the quantized residue is carried out so that its parity is the same as that of the MVComp index. Such a modification consists of incrementing or decrementing one or more coefficients of the quantized residue by an odd value (e.g.: +1, -1, +3, -3, +5, -+5...) and retaining only the modification that optimizes a predetermined criterion, in this case the aforementioned bitrate-distortion cost.

Au décodeur, l'index MVComp n'est pas lu dans le signal. Le décodeur se contente simplement de déterminer classiquement le résidu. Si la valeur de ce résidu est paire, l'index MVComp est mis à 0. Si la valeur de ce résidu est impaire, l'index MVComp est mis à 1.At the decoder, the MVComp index is not read from the signal. The decoder simply determines the residual in the conventional way. If the value of this residual is even, the MVComp index is set to 0. If the value of this residual is odd, the MVComp index is set to 1.

Conformément à la technique qui vient d'être présentée, les coefficients qui subissent la modification ne sont pas toujours choisis de façon optimale, de sorte que la modification appliquée entraîne des perturbations dans le signal transmis au décodeur. De telles perturbations nuisent inévitablement à l'efficacité de la compression vidéo.In accordance with the technique just presented, the coefficients that undergo modification are not always chosen optimally, so that the applied modification causes disturbances in the signal transmitted to the decoder. Such disturbances inevitably harm the efficiency of video compression.

Objet et résumé de l'inventionSubject matter and summary of the invention

Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité.One of the aims of the invention is to remedy drawbacks of the aforementioned state of the art.

Conformément a l'invention, un dispositif de codage est prévu selon la revendication 1. Les autres modes de réalisation de l'invention sont prévus selon les revendications dépendantes.Tout les autres modes de réalisation mentionnés dans la description, sont seulement considérés comme exemples illustratifs. According to the invention, a coding device is provided according to claim 1. Further embodiments of the invention are provided according to the dependent claims. All other embodiments mentioned in the description are only considered as illustrative examples.

Brève description des dessinsBrief description of the drawings

D'autres caractéristiques et avantages apparaîtront à la lecture de deux modes de réalisation préférés décrits en référence aux figures dans lesquelles:

  • la figure 1 représente les principales étapes du procédé de codage selon l'invention,
  • la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention,
  • la figure 3 représente les principales étapes du procédé de décodage selon l'invention,
  • la figure 4 représente un mode de réalisation d'un dispositif de décodage selon l'invention.
Other features and advantages will become apparent upon reading two preferred embodiments described with reference to the figures in which:
  • Figure 1 represents the main steps of the coding method according to the invention,
  • Figure 2 represents an embodiment of a coding device according to the invention,
  • Figure 3 represents the main steps of the decoding method according to the invention,
  • Figure 4 represents an embodiment of a decoding device according to the invention.

Description détaillée de la partie codageDetailed description of the coding part

Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage selon la norme H.264/MPEG-4 AVC. Dans ce mode de réalisation, le procédé de codage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à la norme H.264/MPEG-4 AVC. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes C1 à C40, représentées à la figure 1 . An embodiment of the invention will now be described, in which the coding method according to the invention is used to code a sequence of images according to a bit stream close to that obtained by coding according to the H.264/MPEG-4 AVC standard. In this embodiment, the coding method according to the invention is for example implemented in software or hardware by modifications of a coder initially compliant with the H.264/MPEG-4 AVC standard. The coding method according to the invention is represented in the form of an algorithm comprising steps C1 to C40, represented in figure 1 .

Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage ou codeur CO dont un mode de réalisation est représenté sur la figure 2 . According to the embodiment of the invention, the coding method according to the invention is implemented in a coding device or CO coder, one embodiment of which is shown in the figure 2 .

Conformément à l'invention, il est procédé, préalablement au codage proprement dit, à un découpage d'une image IE d'une séquence d'images à coder dans un ordre prédéterminé, en une pluralité Z de partitions B1, B2, .... Bi,.... Bz, comme représenté sur la figure 2 . In accordance with the invention, prior to the actual coding, an image IE of a sequence of images to be coded in a predetermined order is divided into a plurality Z of partitions B 1 , B 2 , .... B i ,.... B z , as shown in the figure 2 .

Il convient de noter qu'au sens de l'invention, le terme « partition » signifie unité de codage (de l'anglais « coding unit »). Cette dernière terminologie est notamment utilisée dans la norme HEVC/H.265 en cours d'élaboration, par exemple dans le document accessible à l'adresse Internet suivante :It should be noted that for the purposes of the invention, the term "partition" means coding unit. This latter terminology is used in particular in the HEVC/H.265 standard currently being developed, for example in the document accessible at the following Internet address:

http://phenix.int-evry.fr/jct/doc end user/current document.php?id=3286http://phenix.int-evry.fr/jct/doc end user/current document.php?id=3286

En particulier, une telle unité de codage regroupe des ensembles de pixels de forme rectangulaire ou carrée, encore appelés blocs, macroblocs, ou bien des ensembles de pixels présentant d'autres formes géométriques.In particular, such a coding unit groups together sets of pixels of rectangular or square shape, also called blocks, macroblocks, or sets of pixels presenting other geometric shapes.

Dans l'exemple représenté sur la figure 2 , lesdites partitions sont des blocs qui ont une forme carrée et ont tous la même taille. En fonction de la taille de l'image qui n'est pas forcément un multiple de la taille des blocs, les derniers blocs à gauche et les derniers blocs en bas peuvent ne pas être carrés. Dans un mode alternatif de réalisation, les blocs peuvent être par exemple de taille rectangulaire et/ou non alignés les uns avec les autres.In the example shown in the figure 2 , said partitions are blocks that have a square shape and all have the same size. Depending on the size of the image which is not necessarily a multiple of the size of the blocks, the last blocks on the left and the last blocks at the bottom may not be square. In an alternative embodiment, the blocks may for example be rectangular in size and/or not aligned with each other.

Chaque bloc ou macrobloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.Each block or macroblock can also be divided into sub-blocks which are themselves subdivisible.

Un tel découpage est effectué par un module PCO de partitionnement représenté à la figure 2 qui utilise par exemple un algorithme de partitionnement bien connu en tant que tel.Such a division is carried out by a partitioning PCO module represented in figure 2 which uses for example a well-known partitioning algorithm as such.

A la suite de ladite étape de découpage, il est procédé au codage de chacune des partitions courantes Bi (i étant un entier tel que 1≤i≤Z) de ladite image IE.Following said cutting step, each of the current partitions B i (i being an integer such that 1≤i≤Z) of said image IE is encoded.

Dans l'exemple représenté sur la figure 2 , un tel codage est appliqué successivement à chacun des blocs B1 à Bz de l'image courante IE. Les blocs sont codés selon par exemple un parcours tel que le parcours « raster scan » bien connu de l'homme du métier.In the example shown in the figure 2 , such coding is applied successively to each of the blocks B 1 to B z of the current image IE. The blocks are coded according to, for example, a path such as the “raster scan” path well known to those skilled in the art.

Le codage selon l'invention est mis en œuvre dans un module logiciel de codage MC_CO du codeur CO, tel que représenté sur la figure 2 . The coding according to the invention is implemented in a coding software module MC_CO of the CO coder, as shown in the figure 2 .

Au cours d'une étape C1 représentée à la figure 1 , le module de codage MC_CO de la figure 2 sélectionne comme bloc courant Bi le premier bloc B1 à coder de l'image courante IE. Comme représenté à la figure 2 , il s'agit du premier bloc de gauche de l'image IE.During a C1 step represented in the figure 1 , the MC_CO coding module of the figure 2 selects as current block B i the first block B 1 to be coded from the current image IE. As shown in figure 2 , this is the first block on the left of the IE image.

Au cours d'une étape C2 représentée à la figure 1 , il est procédé au codage prédictif du bloc courant B1 par des techniques connues de prédiction intra et/ou inter, au cours duquel le bloc B1 est prédit par rapport à au moins un bloc précédemment codé et décodé. Une telle prédiction est effectuée par un module logiciel de prédiction PRED_CO tel que représenté à la figure 2 . During a C2 step represented in the figure 1 , the current block B 1 is predicted by known intra and/or inter prediction techniques, during which the block B 1 is predicted with respect to at least one previously coded and decoded block. Such a prediction is carried out by a PRED_CO prediction software module as shown in figure 2 .

Il va de soi que d'autres modes de prédiction intra tels que proposé dans la norme H.264 sont possibles.It goes without saying that other intra prediction modes such as those proposed in the H.264 standard are possible.

Le bloc courant B1 peut être également soumis à un codage prédictif en mode inter, au cours duquel le bloc courant est prédit par rapport à un bloc issu d'une image précédemment codée et décodée. D'autres types de prédiction sont bien entendu envisageables. Parmi les prédictions possibles pour un bloc courant, la prédiction optimale est choisie selon un critère débit distorsion bien connu de l'homme du métier.The current block B 1 can also be subjected to predictive coding in inter mode, during which the current block is predicted with respect to a block from a previously coded and decoded image. Other types of prediction are of course possible. Among the possible predictions for a current block, the optimal prediction is chosen according to a rate distortion criterion well known to those skilled in the art.

Ladite étape de codage prédictif précitée permet de construire un bloc prédit Bp1 qui est une approximation du bloc courant B1. Les informations relatives à ce codage prédictif sont destinées à être inscrites dans un signal à transmettre au décodeur. De telles informations comprennent notamment le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction intra, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter. Ces informations sont compressées par le codeur CO.Said aforementioned predictive coding step makes it possible to construct a predicted block Bp 1 which is an approximation of the current block B 1 . The information relating to this predictive coding is intended to be written in a signal to be transmitted to the decoder. Such information includes in particular the type of prediction (inter or intra), and where appropriate, the intra prediction mode, the type of partitioning of a block or macroblock if the latter has been subdivided, the reference image index and the displacement vector used in the inter prediction mode. This information is compressed by the coder CO.

Au cours d'une étape suivante C3 représentée à la figure 1 , le module de prédiction PRED_CO compare les données relatives au bloc courant B1 aux données du bloc prédit Bp1. Plus précisément, au cours de cette étape, il est procédé classiquement à la soustraction du bloc prédit Bp1 du bloc courant B1 pour produire un bloc résidu Br1.During a following step C3 represented in the figure 1 , the prediction module PRED_CO compares the data relating to the current block B 1 with the data of the predicted block Bp 1 . More precisely, during this step, the predicted block Bp 1 is conventionally subtracted from the current block B 1 to produce a residual block Br 1 .

Au cours d'une étape suivante C4 représentée à la figure 1 , il est procédé à la transformation du bloc résidu Br1 selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt1. Une telle opération est effectuée par un module logiciel MT_CO de transformée, tel que représenté figure 2 . During a following step C4 represented in the figure 1 , the residue block Br 1 is transformed using a classic direct transformation operation such as, for example, a discrete cosine transformation of the DCT type, to produce a transformed block Bt 1 . Such an operation is performed by a transform software module MT_CO, as shown figure 2 .

Au cours d'une étape suivante C5 représentée à la figure 1 , il est procédé à la quantification du bloc transformé Bt1 selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc Bq1 de coefficients quantifiés est alors obtenu. Une telle étape est effectuée au moyen d'un module logiciel de quantification MQ_CO tel que représenté à la figure 2 . During a following step C5 represented in the figure 1 , the transformed block Bt 1 is quantized using a conventional quantization operation, such as scalar quantization. A block Bq 1 of quantized coefficients is then obtained. Such a step is performed using a quantization software module MQ_CO as shown in figure 2 .

Au cours d'une étape suivante C6 représentée à la figure 1 , il est procédé à un parcours, dans un ordre prédéfini, des coefficients quantifiés du bloc Bq1. Dans l'exemple représenté, il s'agit d'un parcours en zigzag classique. Une telle étape est effectuée par un module logiciel de lecture ML_CO, tel que représenté à la figure 2 . A l'issue de l'étape C6, une liste monodimensionnelle E1=(ε1, ε2,..., εL) de coefficients est obtenue, plus connue sous l'appellation « résidu quantifié », où L est un entier supérieur ou égal à 1. Chacun des coefficients de la liste E1 est associé à différentes informations numériques qui sont destinées à subir un codage entropique. De telles informations numériques sont décrites ci-dessous à titre d'exemple.During a following step C6 represented in the figure 1 , a traversal is carried out, in a predefined order, of the quantized coefficients of the block Bq 1 . In the example shown, this is a classic zigzag traversal. Such a step is carried out by a reading software module ML_CO, as shown in figure 2 . At the end of step C6, a one-dimensional list E 1 =(ε1, ε2,..., εL) of coefficients is obtained, better known as the "quantified residue", where L is an integer greater than or equal to 1. Each of the coefficients in the list E 1 is associated with different digital information which is intended to undergo entropic coding. Such digital information is described below as an example.

Supposons que dans l'exemple représenté, L=16 et que la liste E1 contient les seize coefficients suivants : E1=(0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).Suppose that in the example shown, L=16 and that the list E 1 contains the following sixteen coefficients: E 1 =(0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).

En l'espèce :

  • pour chaque coefficient situé avant le dernier coefficient non nul de la liste E1, une information numérique, telle qu'un bit, est destinée à être codée entropiquement pour indiquer si le coefficient est nul ou pas : si le coefficient est nul, c'est par exemple le bit de valeur 0 qui sera codé, tandis que si le coefficient est non nul, c'est le bit de valeur 1 qui sera codé ;
  • pour chaque coefficient non nul +9, -7, +1, -1, +2, +1, une information numérique, telle qu'un bit, est destinée à être codée entropiquement pour indiquer si la valeur absolue du coefficient est égal à un ou pas : si elle est égale à 1, c'est par exemple le bit de valeur 1 qui sera codé, tandis que si elle est égale à 0, c'est le bit de valeur 0 qui sera codé ;
  • pour chaque coefficient non nul et dont la valeur absolue est non égale à un situé avant le dernier coefficient non nul, tels les coefficients de valeur +9, -7, +2, une information d'amplitude (valeur absolue du coefficient à laquelle est retranchée la valeur deux) est codée entropiquement,
  • pour chaque coefficient non nul, le signe qui lui est affecté est codé par une information numérique, telle qu'un bit par exemple mis à '0' (pour le signe +) ou à '1' (pour le signe -).
In this case:
  • for each coefficient located before the last non-zero coefficient of the list E1, digital information, such as a bit, is intended to be entropically coded to indicate whether the coefficient is zero or not: if the coefficient is zero, it is for example the bit with value 0 which will be coded, while if the coefficient is non-zero, it is the bit with value 1 which will be coded;
  • for each non-zero coefficient +9, -7, +1, -1, +2, +1, a digital information, such as a bit, is intended to be entropically coded to indicate whether the absolute value of the coefficient is equal to one or not: if it is equal to 1, it is for example the bit with value 1 which will be coded, while if it is equal to 0, it is the bit with value 0 which will be coded;
  • for each non-zero coefficient whose absolute value is not equal to one located before the last non-zero coefficient, such as coefficients with values +9, -7, +2, amplitude information (absolute value of the coefficient from which the value two is subtracted) is entropically coded,
  • for each non-zero coefficient, the sign assigned to it is coded by digital information, such as a bit for example set to '0' (for the + sign) or to '1' (for the - sign).

On va maintenant décrire, en référence à la figure 1 , les étapes spécifiques de codage selon l'invention.We will now describe, with reference to the figure 1 , the specific coding steps according to the invention.

Conformément à l'invention, il est décidé d'éviter de coder entropiquement au moins une des informations numériques précitées. Pour les raisons expliquées plus haut dans la description, dans un mode préféré de réalisation, il est décidé de ne pas coder entropiquement au moins un signe d'un desdits coefficients de la liste E1.According to the invention, it is decided to avoid entropically coding at least one of the aforementioned digital information. For the reasons explained above in the description, in a preferred embodiment, it is decided not to entropically code at least one sign of one of said coefficients of the list E 1 .

A titre d'exemple alternatif, il pourrait notamment être décidé de coder entropiquement le bit de poids faible de la représentation binaire de l'amplitude du premier coefficient non nul de ladite liste E1.As an alternative example, it could in particular be decided to entropically code the least significant bit of the binary representation of the amplitude of the first non-zero coefficient of said list E 1 .

A cet effet, au cours d'une étape C7 représentée à la figure 1 , il est procédé au choix du nombre de signes à cacher au cours de l'étape ultérieure de codage entropique. Une telle étape est effectuée par un module logiciel de traitement MTR_CO, tel que représenté sur la figure 2 . For this purpose, during a step C7 represented in the figure 1 , the number of signs to be hidden is chosen during the subsequent entropy coding step. Such a step is performed by a processing software module MTR_CO, as shown in the figure 2 .

Dans le mode préféré de réalisation, le nombre de signes à cacher est un ou zéro. En outre, conformément audit mode de réalisation préféré, c'est le signe du premier coefficient non nul qui est destiné à être caché. Dans l'exemple représenté, il s'agit donc de cacher le signe du coefficient ε2=+9.In the preferred embodiment, the number of signs to be hidden is one or zero. Furthermore, in accordance with said preferred embodiment, it is the sign of the first non-zero coefficient which is intended to be hidden. In the example shown, it is therefore a question of hiding the sign of the coefficient ε2=+9.

Dans un mode de réalisation alternatif, le nombre de signes à cacher est soit zéro, soit un, soit deux, soit trois, soit plus.In an alternative embodiment, the number of signs to be hidden is either zero, one, two, three, or more.

Conformément au mode de réalisation préféré de l'étape C7, il est procédé, au cours d'une première sous-étape C71 représentée à la figure 1 , à la détermination, à partir de ladite liste E1, d'une sous-liste SE1 contenant des coefficients aptes à être modifiés ε'1, ε'2,..., ε'M où M<L. De tels coefficients seront appelés coefficients modifiables dans la suite de la description.In accordance with the preferred embodiment of step C7, during a first sub-step C71 shown in figure 1 , to the determination, from said list E 1 , of a sub-list SE 1 containing coefficients capable of being modified ε'1, ε'2,..., ε'M where M<L. Such coefficients will be called modifiable coefficients in the remainder of the description.

Selon l'invention, un coefficient est modifiable si la modification de sa valeur quantifiée ne provoque pas de désynchronisation au décodeur, une fois que ce coefficient modifié est traité par le décodeur. Ainsi, le module de traitement MTR_CO est configuré initialement pour ne pas modifier :

  • le ou les coefficients nuls situés avant le premier coefficient non nul, de façon à ce que le décodeur n'affecte pas la valeur du signe caché à ce ou ces coefficients nuls,
  • et pour des raisons de complexité de calcul, le ou les coefficients nuls situés après le dernier coefficient non nul.
According to the invention, a coefficient is modifiable if the modification of its quantified value does not cause desynchronization in the decoder, once this modified coefficient is processed by the decoder. Thus, the MTR_CO processing module is initially configured not to modify:
  • the zero coefficient(s) located before the first non-zero coefficient, so that the decoder does not assign the value of the hidden sign to this or these zero coefficients,
  • and for reasons of calculation complexity, the zero coefficient(s) located after the last non-zero coefficient.

Dans l'exemple représenté, à l'issue de la sous-étape C71, la sous-liste SE1 obtenue est telle que SE1=(9,-7,0,0,1,0,-1,2,0,0,1). En conséquence, onze coefficients modifiables sont obtenus.In the example shown, at the end of sub-step C71, the sub-list SE 1 obtained is such that SE 1 = (9, -7, 0, 0, 1, 0, -1, 2, 0, 0, 1). As a result, eleven modifiable coefficients are obtained.

Au cours d'une sous-étape suivante C72 représentée à la figure 1 , le module de traitement MTR_CO procède à la comparaison du nombre de coefficients modifiables avec un seuil prédéterminé TSIG. Dans le mode préféré de réalisation, TSIG vaut 4.During a following sub-step C72 shown in the figure 1 , the processing module MTR_CO compares the number of modifiable coefficients with a predetermined threshold TSIG. In the preferred embodiment, TSIG is equal to 4.

Si le nombre de coefficients modifiables est inférieur au seuil TSIG, il est procédé, au cours d'une étape C20 représentée à la figure 1 , à un codage entropique classique des coefficients de la liste E1, tel que celui réalisé par exemple dans un codeur CABAC, désigné par la référence CE_CO sur la figure 2 . A cet effet, le signe de chaque coefficient non nul de la liste E1 est codé entropiquement.If the number of modifiable coefficients is lower than the TSIG threshold, the following procedure is carried out during a step C20 represented in figure 1 , to a classic entropic coding of the coefficients of the list E 1 , such as that carried out for example in a CABAC coder, designated by the reference CE_CO on the figure 2 . For this purpose, the sign of each non-zero coefficient in the list E 1 is entropically coded.

Si le nombre de coefficients modifiables est supérieur au seuil TSIG, au cours d'une étape C8 représentée à la figure 1 , le module de traitement MTR_CO calcule la valeur d'une fonction f qui est représentative des coefficients de la sous-liste SE1.If the number of modifiable coefficients is greater than the TSIG threshold, during a step C8 represented in figure 1 , the MTR_CO processing module calculates the value of a function f which is representative of the coefficients of the sublist SE 1 .

Dans le mode préféré de réalisation où un seul signe est destiné à être caché dans le signal à transmettre au décodeur, la fonction f est la parité de la somme des coefficients de la sous-liste SE1.In the preferred embodiment where only one sign is intended to be hidden in the signal to be transmitted to the decoder, the function f is the parity of the sum of the coefficients of the sublist SE 1 .

Au cours d'une étape C9 représentée à la figure 1 , le module de traitement MTR_CO vérifie si la parité de la valeur du signe à cacher correspond à la parité de la somme des coefficients de la sous-liste SE1 en vertu d'une convention définie préalablement au codeur CO. During a step C9 represented in the figure 1 , the MTR_CO processing module checks whether the parity of the value of the sign to be hidden corresponds to the parity of the sum of the coefficients of the sublist SE 1 by virtue of a convention defined previously in the CO encoder.

Dans l'exemple proposé, ladite convention est telle qu'un signe positif est associé à un bit de valeur égale à zéro, tandis qu'un signe négatif est associé à un bit de valeur égale à un.In the proposed example, the said convention is such that a positive sign is associated with a bit of value equal to zero, while a negative sign is associated with a bit of value equal to one.

Si, d'après la convention adoptée dans le codeur CO selon l'invention, le signe est positif, ce qui correspond à une valeur de bit de codage à zéro, et que la somme des coefficients de la sous-liste SE1 est paire, il est procédé à l'étape C20 de codage entropique des coefficients de la liste E1 précitée, à l'exception du signe du coefficient ε2.If, according to the convention adopted in the CO coder according to the invention, the sign is positive, which corresponds to a coding bit value of zero, and the sum of the coefficients of the sub-list SE 1 is even, step C20 of entropic coding of the coefficients of the aforementioned list E 1 is carried out, with the exception of the sign of the coefficient ε2.

Si, toujours d'après la convention adoptée dans le codeur CO selon l'invention, le signe est négatif, ce qui correspond à une valeur de bit de codage à un, et que la somme des coefficients de la sous-liste SE1 est impaire, il est également procédé à l'étape C20 de codage entropique des coefficients de la liste E1 précitée, à l'exception du signe du coefficient ε2.If, still according to the convention adopted in the CO coder according to the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the coefficients of the sub-list SE 1 is odd, step C20 of entropic coding of the coefficients of the aforementioned list E 1 is also carried out, with the exception of the sign of the coefficient ε2.

Si, d'après la convention adoptée dans le codeur CO selon l'invention, le signe est positif, ce qui correspond à une valeur de bit de codage à zéro, et que la somme des coefficients de la sous-liste SE1 est impaire, il est procédé, au cours d'une étape C10 représentée sur la figure 1 , à une modification d'au moins un coefficient modifiable de la sous-liste SE1.If, according to the convention adopted in the CO coder according to the invention, the sign is positive, which corresponds to a coding bit value of zero, and the sum of the coefficients of the sub-list SE 1 is odd, the following procedure is carried out during a step C10 shown in the figure 1 , to a modification of at least one modifiable coefficient of the sublist SE 1 .

Si, toujours d'après la convention adoptée dans le codeur CO selon l'invention, le signe est négatif, ce qui correspond à une valeur de bit de codage à un, et que la somme des coefficients de la sous-liste SE1 est paire, il est également procédé à l'étape C10 de modification d'au moins un coefficient modifiable de la sous-liste SE1.If, still according to the convention adopted in the CO coder according to the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the coefficients of the sub-list SE 1 is even, step C10 is also carried out to modify at least one modifiable coefficient of the sub-list SE 1 .

Une telle opération de modification est effectuée par le module de traitement MTR_CO de la figure 2 . Such a modification operation is performed by the MTR_CO processing module of the figure 2 .

Dans l'exemple de réalisation où SE1=(+9,-7,0,0,+1,0,-1,+2,0,0,+1), la somme totale f des coefficient est égale à 5, et est donc impaire. Afin que le décodeur puisse reconstruire le signe positif affecté au premier coefficient non nul, ε2=+9, sans que le codeur CO n'ait à transmettre ce coefficient au décodeur, il faut que la parité de la somme devienne paire. En conséquence, le module de traitement MTR_CO teste, au cours de ladite étape C10, différentes modifications de coefficients de la sous-liste SE1, visant toutes à changer la parité de la somme des coefficients. Dans le mode préféré de réalisation, il est procédé à l'ajout de +1 ou -1 à chaque coefficient modifiable et à la sélection d'une modification parmi toutes celles qui sont effectuées.In the exemplary embodiment where SE 1 =(+9,-7,0,0,+1,0,-1,+2,0,0,+1), the total sum f of the coefficients is equal to 5, and is therefore odd. In order for the decoder to be able to reconstruct the positive sign assigned to the first non-zero coefficient, ε2=+9, without the coder CO having to transmit this coefficient to the decoder, the parity of the sum must become even. Consequently, the processing module MTR_CO tests, during said step C10, different modifications of coefficients of the sub-list SE 1 , all aimed at changing the parity of the sum of the coefficients. In the preferred embodiment, +1 or -1 is added to each modifiable coefficient and a modification is selected from among all those that are made.

Dans le mode préféré de réalisation, une telle sélection constitue la prédiction optimale selon un critère de performance qui est par exemple le critère débit distorsion bien connu de l'homme du métier. Un tel critère s'exprime par l'équation (1) ci-dessous: où D représente la distorsion entre le macrobloc original et le macrobloc reconstruit, R représente le coût en bits du codage des informations de codage et λ représente un multiplicateur de Lagrange, dont la valeur peut être fixée préalablement au codage.In the preferred embodiment, such a selection constitutes the optimal prediction according to a performance criterion which is for example the rate distortion criterion well known to those skilled in the art. Such a criterion is expressed by equation (1) below: where D represents the distortion between the original macroblock and the reconstructed macroblock, R represents the bit cost of coding the coding information and λ represents a Lagrange multiplier, the value of which can be fixed prior to coding.

Dans l'exemple proposé, la modification qui entraîne une prédiction optimale selon le critère débit-distorsion précité est l'ajout de la valeur 1 au deuxième coefficient -7 de la sous-liste SE1.In the proposed example, the modification that results in an optimal prediction according to the aforementioned rate-distortion criterion is the addition of the value 1 to the second coefficient -7 of the sublist SE 1 .

Il est alors obtenu, à l'issue de l'étape C10, une sous-liste modifiée SEm1=(+9,+6,0,0,+1,0,-1,+2,0,0,+1)At the end of step C10, a modified sublist SEm 1 =(+9,+6,0,0,+1,0,-1,+2,0,0,+1) is then obtained.

Il convient de noter qu'au cours de cette étape, certaines modifications sont interdites. Ainsi, dans le cas où le premier coefficient non nul ε2 aurait valu +1, il n'aurait pas été possible de lui ajouter -1, car il serait devenu nul, et il aurait alors perdu sa caractéristique de premier coefficient non nul de la liste E1. Le décodeur aurait alors attribué ultérieurement le signe décodé (par calcul de la parité de la somme des coefficients) à un autre coefficient, et il y aurait alors eu une erreur de décodage.It should be noted that during this step, certain modifications are prohibited. Thus, in the case where the first non-zero coefficient ε2 had been +1, it would not have been possible to add -1 to it, because it would have become zero, and it would then have lost its characteristic of being the first non-zero coefficient in the list E 1 . The decoder would then have subsequently assigned the decoded sign (by calculating the parity of the sum of the coefficients) to another coefficient, and there would then have been a decoding error.

Au cours d'une étape C11 représentée à la figure 1 , le module de traitement MTR_CO procède à une modification correspondante de la liste E1. La liste modifiée suivante Em1= (0,+9,-6,0,0,+1,0,-1,+2,0,0,+1,0,0,0,0) est alors obtenue.During a step C11 represented in the figure 1 , the processing module MTR_CO makes a corresponding modification to the list E 1 . The following modified list Em 1 = (0,+9,-6,0,0,+1,0,-1,+2,0,0,+1,0,0,0,0) is then obtained.

Il est ensuite procédé à l'étape C20 de codage entropique des coefficients de la liste Em1 précitée, à l'exception du signe du coefficient ε2, qui est le signe + du coefficient 9 dans l'exemple proposé, lequel signe est caché dans la parité de la somme des coefficients. Step C20 is then carried out for entropic coding of the coefficients of the aforementioned list Em 1 , with the exception of the sign of the coefficient ε2, which is the + sign of the coefficient 9 in the proposed example, which sign is hidden in the parity of the sum of the coefficients.

Il convient de noter que l'ensemble des amplitudes des coefficients de la liste E1 ou de la liste modifiée Em1 est codé avant l'ensemble des signes, à l'exclusion du signe du premier coefficient non nul ε2 qui n'est pas codé comme cela a été expliqué ci-dessus.It should be noted that the set of amplitudes of the coefficients of the list E 1 or the modified list Em 1 is coded before the set of signs, excluding the sign of the first non-zero coefficient ε2 which is not coded as explained above.

Au cours d'une étape suivante C30 représentée à la figure 1 , le module de codage MC_CO de la figure 2 teste si le bloc courant codé est le dernier bloc de l'image IE.During a following step C30 represented in the figure 1 , the MC_CO coding module of the figure 2 tests if the current encoded block is the last block of the IE image.

Si le bloc courant est le dernier bloc de l'image IE, au cours d'une étape C40 représentée à la figure 1 , il est mis fin au procédé de codage.If the current block is the last block of the IE image, during a step C40 represented in figure 1 , the coding process is terminated.

Si tel n'est pas le cas, il est procédé à la sélection du bloc suivant Bi qui est alors codé conformément à l'ordre de parcours raster scan précité, par itération des étapes C1 à C20, pour 1 <i<Z.If this is not the case, the next block B i is selected and is then coded in accordance with the aforementioned raster scan order, by iteration of steps C1 to C20, for 1 <i<Z.

Une fois réalisé le codage entropique de tous les blocs B1 à Bz, il est procédé à la construction d'un signal F représentant, sous forme binaire, lesdits blocs codés.Once the entropic coding of all the blocks B 1 to B z has been carried out, a signal F is constructed representing, in binary form, said coded blocks.

La construction du signal binaire F est mise en œuvre dans un module logiciel CF de construction de flux, tel que représenté sur la figure 2 . The construction of the binary signal F is implemented in a CF flow construction software module, as shown in the figure 2 .

Le flux F est ensuite transmis par un réseau de communication (non représenté), à un terminal distant. Celui-ci comporte un décodeur qui sera décrit plus en détail dans la suite de la description.The stream F is then transmitted by a communication network (not shown) to a remote terminal. This terminal includes a decoder which will be described in more detail later in the description.

On va maintenant décrire, principalement en référence à la figure 1 , un autre mode de réalisation de l'invention.We will now describe, mainly with reference to the figure 1 , another embodiment of the invention.

Cet autre mode de réalisation se distingue du précédent uniquement par le nombre de coefficients à cacher qui est soit 0, soit N, N étant un entier tel que N≥2.This other embodiment differs from the previous one only by the number of coefficients to be hidden which is either 0 or N, N being an integer such that N≥2.

A cet effet, la sous-étape de comparaison C72 précitée est remplacée par la sous-étape C72a représentée en pointillé sur la figure 1 , au cours de laquelle il est procédé à la comparaison du nombre de coefficients modifiables avec plusieurs seuils prédéterminés 0<TSIG_1<TSIG_2<TSIG_3..., de telle façon que si le nombre de coefficients modifiables est compris entre TSIG_N et TSIG_N+1, N signes sont destinés à être cachés. For this purpose, the aforementioned comparison sub-step C72 is replaced by sub-step C72a shown in dotted lines on the figure 1 , during which the number of modifiable coefficients is compared with several predetermined thresholds 0<TSIG_1<TSIG_2<TSIG_3..., in such a way that if the number of modifiable coefficients is between TSIG_N and TSIG_N+1, N signs are intended to be hidden.

Si le nombre de coefficients modifiables est inférieur au premier seuil TSIG_1, il est procédé, au cours de l'étape C20 précitée, au codage entropique classique des coefficients de la liste E1. A cet effet, le signe de chaque coefficient non nul de la liste E1 est codé entropiquement.If the number of modifiable coefficients is less than the first threshold TSIG_1, the conventional entropic coding of the coefficients in list E 1 is carried out during the aforementioned step C20. For this purpose, the sign of each non-zero coefficient in list E 1 is entropically coded.

Si le nombre de coefficients modifiables est compris entre le seuil TSIG_N et TSIG_N+1, au cours d'une étape C8 représentée à la figure 1 , le module de traitement MTR_CO calcule la valeur d'une fonction f qui est représentative des coefficients de la sous-liste E1.If the number of modifiable coefficients is between the threshold TSIG_N and TSIG_N+1, during a step C8 represented in figure 1 , the MTR_CO processing module calculates the value of a function f which is representative of the coefficients of the sublist E 1 .

Dans cet autre mode de réalisation, la décision au codeur étant de cacher N signes, la fonction f est le reste modulo 2N de la somme des coefficients de la sous-liste SE1. On suppose que dans l'exemple proposé, N=2, les deux signes à cacher étant les deux premiers signes des deux premiers coefficients non nuls respectivement, à savoir ε2 et ε3.In this other embodiment, the decision of the encoder being to hide N signs, the function f is the remainder modulo 2 N of the sum of the coefficients of the sub-list SE 1 . We assume that in the proposed example, N=2, the two signs to be hidden being the first two signs of the first two non-zero coefficients respectively, namely ε2 and ε3.

Au cours de l'étape suivante C9 représentée à la figure 1 , le module de traitement MTR_CO vérifie si la configuration des N signes, soit 2N configurations possibles, correspond à la valeur du reste modulo 2N de la somme des coefficients de la sous-liste SE1.In the next step C9 shown in the figure 1 , the MTR_CO processing module checks whether the configuration of the N signs, i.e. 2 N possible configurations, corresponds to the value of the remainder modulo 2 N of the sum of the coefficients of the sublist SE 1 .

Dans l'exemple proposé où N=2, il existe 22=4 configurations de signes différentes.In the proposed example where N=2, there are 2 2 =4 different sign configurations.

Ces quatre configurations obéissent à une convention au codeur CO, laquelle est par exemple déterminée de la façon suivante :

  • un reste égal à zéro correspond à deux signes positifs consécutifs : +, + ;
  • un reste égal à un correspond à un signe positif et un signe négatif consécutifs : +, - ;
  • un reste égal à deux correspond à un signe négatif et un signe positif consécutifs : -, + ;
  • un reste égal à trois correspond à deux signes négatifs consécutifs : -, -.
These four configurations obey a convention at the CO encoder, which is for example determined as follows:
  • a remainder equal to zero corresponds to two consecutive positive signs: +, +;
  • a remainder equal to one corresponds to a consecutive positive sign and a negative sign: +, -;
  • a remainder equal to two corresponds to a consecutive negative sign and a consecutive positive sign: -, +;
  • a remainder equal to three corresponds to two consecutive negative signs: -, -.

Si la configuration des N signes correspond à la valeur du reste modulo 2N de la somme des coefficients de la sous-liste SE1, il est procédé à l'étape C20 de codage entropique des coefficients de la liste E1 précitée, à l'exception du signe du coefficient ε2 et du coefficient ε3, lesquels signes sont cachés dans la parité de la somme modulo 2N des coefficients.If the configuration of the N signs corresponds to the value of the remainder modulo 2 N of the sum of the coefficients of the sub-list SE 1 , step C20 of entropic coding of the coefficients of the aforementioned list E 1 is carried out, with the exception of the sign of the coefficient ε2 and of the coefficient ε3, which signs are hidden in the parity of the sum modulo 2 N of the coefficients.

Si tel n'est pas le cas, il est procédé à l'étape C10 de modification d'au moins un coefficient modifiable de la sous-liste SE1. Une telle modification est effectuée par le module de traitement MTR_CO de la figure 2 de telle manière que le reste modulo 2N de la somme des coefficients modifiables de la sous-liste SE1 atteigne la valeur de chacun des deux signes à cacher.If this is not the case, step C10 is carried out to modify at least one modifiable coefficient of the sub-list SE 1. Such a modification is carried out by the processing module MTR_CO of the figure 2 in such a way that the remainder modulo 2 N of the sum of the modifiable coefficients of the sublist SE 1 reaches the value of each of the two signs to be hidden.

Au cours de l'étape C11 précitée, le module de traitement MTR_CO procède à une modification correspondante de la liste E1. Une liste modifiée Em1 est alors obtenue.During the aforementioned step C11, the processing module MTR_CO makes a corresponding modification to the list E 1 . A modified list Em 1 is then obtained.

Il est ensuite procédé à l'étape C20 de codage entropique des coefficients de la liste Em1 précitée, à l'exception du signe du coefficient ε2 et du signe du coefficient ε3, lesquels signes sont cachés dans la parité de la somme modulo 2N des coefficients.Step C20 is then carried out for entropic coding of the coefficients of the aforementioned list Em 1 , with the exception of the sign of the coefficient ε2 and the sign of the coefficient ε3, which signs are hidden in the parity of the sum modulo 2 N of the coefficients.

Description détaillée de la partie décodageDetailed description of the decoding part

Un mode de réalisation du procédé de décodage selon l'invention va maintenant être décrit, dans lequel le procédé de décodage est implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme H.264/MPEG-4 AVC.An embodiment of the decoding method according to the invention will now be described, in which the decoding method is implemented in software or hardware by modifications of a decoder initially compliant with the H.264/MPEG-4 AVC standard.

Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D1 à D12 représentées à la figure 3 . The decoding method according to the invention is represented in the form of an algorithm comprising steps D1 to D12 represented in figure 3 .

Selon le mode de réalisation de l'invention, le procédé de décodage selon l'invention est implémenté dans un dispositif de décodage ou décodeur DO, tel que représenté à la figure 4 . According to the embodiment of the invention, the decoding method according to the invention is implemented in a decoding device or decoder DO, as shown in figure 4 .

Au cours d'une étape préliminaire non représentée sur la figure 3 , il est procédé à l'identification, dans le signal de données F reçu, des partitions B1 à Bz qui ont été codées précédemment par le codeur CO. Dans le mode préféré de réalisation, lesdites partitions sont des blocs qui ont une forme carrée et ont tous la même taille. En fonction de la taille de l'image qui n'est pas forcément un multiple de la taille des blocs, les derniers blocs à gauche et les derniers blocs en bas peuvent ne pas être carrés. Dans un mode alternatif de réalisation, les blocs peuvent être par exemple de taille rectangulaire et/ou non alignés les uns avec les autres.During a preliminary stage not shown on the figure 3 , the partitions B 1 to B z which have been previously coded by the coder CO are identified in the received data signal F. In the preferred embodiment, said partitions are blocks which have a square shape and all have the same size. Depending on the size of the image which is not necessarily a multiple of the size of the blocks, the last blocks on the left and the last blocks at the bottom may not be square. In an alternative embodiment, the blocks may for example be rectangular in size and/or not aligned with each other.

Chaque bloc ou macrobloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.Each block or macroblock can also be divided into sub-blocks which are themselves subdivisible.

Une telle identification est effectuée par un module logiciel EX_DO d'analyse de flux, tel que représenté à la figure 4 . Such identification is performed by a flow analysis software module EX_DO, as shown in figure 4 .

Au cours d'une étape D1 représentée à la figure 3 , le module EX_DO de la figure 4 sélectionne comme bloc courant Bi le premier bloc B1 à décoder. Une telle sélection consiste par exemple à placer un pointeur de lecture dans le signal F au début des données du premier bloc B1.During a D1 step represented in the figure 3 , the EX_DO module of the figure 4 selects as current block B i the first block B 1 to be decoded. Such a selection consists, for example, of placing a read pointer in the signal F at the start of the data of the first block B 1 .

Il est ensuite procédé au décodage de chacun des blocs codés sélectionnés.Each of the selected coded blocks is then decoded.

Dans l'exemple représenté sur la figure 3 , un tel décodage est appliqué successivement à chacun des blocs codés B1 à Bz. Les blocs sont décodés selon par exemple un parcours « raster scan » bien connu de l'homme du métier.In the example shown in the figure 3 , such decoding is applied successively to each of the coded blocks B 1 to B z . The blocks are decoded according to, for example, a “raster scan” path well known to those skilled in the art.

Le décodage selon l'invention est mis en œuvre dans un module logiciel de décodage MD_DO du décodeur DO, tel que représenté sur la figure 4 . The decoding according to the invention is implemented in a software decoding module MD_DO of the DO decoder, as shown in the figure 4 .

Au cours d'une étape D2 représentée à la figure 3 , il est d'abord procédé au décodage entropique du premier bloc courant B1 qui a été sélectionné. Une telle opération est effectuée par un module de décodage entropique DE_DO représenté sur la figure 4 , par exemple de type CABAC. Au cours de cette étape, le module DE_DO effectue un décodage entropique des informations numériques correspondant à l'amplitude de chacun des coefficients codés de la liste E1 ou de la liste modifiée Em1. A ce stade, seuls les signes des coefficients de la liste E1 ou de la liste modifiée Em1 ne sont pas décodés.During a D2 step represented in the figure 3 , first the entropy decoding of the first current block B 1 which has been selected is carried out. Such an operation is carried out by an entropy decoding module DE_DO shown in the figure 4 , for example of type CABAC. During this step, the DE_DO module performs an entropic decoding of the digital information corresponding to the amplitude of each of the coded coefficients of the list E 1 or the modified list Em 1 . At this stage, only the signs of the coefficients of the list E 1 or the modified list Em 1 are not decoded.

Au cours d'une étape D3 représentée à la figure 3 , il est procédé à la détermination du nombre de signes susceptibles d'avoir été cachés au cours de l'étape précédente de codage entropique C20. Une telle étape D3 est effectuée par un module logiciel de traitement MTR_DO, tel que représenté sur la figure 4 . L'étape D3 est similaire à l'étape C7 précitée de détermination du nombre de signes à cacher. During a step D3 represented in the figure 3 , the number of signs likely to have been hidden during the previous entropic coding step C20 is determined. Such a step D3 is carried out by a processing software module MTR_DO, as shown in the figure 4 . Step D3 is similar to the aforementioned step C7 of determining the number of signs to be hidden.

Dans le mode préféré de réalisation, le nombre de signes cachés est un ou zéro. En outre, conformément audit mode de réalisation préféré, c'est le signe du premier coefficient non nul qui est caché. Dans l'exemple représenté, il s'agit donc du signe positif du coefficient ε2=+9.In the preferred embodiment, the number of hidden signs is one or zero. Furthermore, in accordance with said preferred embodiment, it is the sign of the first non-zero coefficient that is hidden. In the example shown, this is therefore the positive sign of the coefficient ε2=+9.

Dans un mode de réalisation alternatif, le nombre de signes cachés est soit zéro, soit un, soit deux, soit trois, soit plus.In an alternative embodiment, the number of hidden signs is either zero, one, two, three, or more.

Conformément au mode de réalisation préféré de l'étape D3, il est procédé, au cours d'une première sous-étape D31 représentée à la figure 3 , à la détermination, à partir de ladite liste E1 ou de la liste modifiée Em1, d'une sous-liste contenant des coefficients ε'1, ε'2,..., ε'M où M<L susceptibles d'avoir été modifiés au codage.In accordance with the preferred embodiment of step D3, during a first sub-step D31 shown in figure 3 , to the determination, from said list E 1 or from the modified list Em 1 , of a sub-list containing coefficients ε'1, ε'2,..., ε'M where M<L likely to have been modified during coding.

Une telle détermination est effectuée de la même manière qu'à l'étape de codage C7 précitée.Such a determination is carried out in the same manner as in the aforementioned coding step C7.

Comme le module de traitement MTR_CO précité, le module de traitement MTR_DO est configuré initialement pour ne pas modifier :

  • le ou les coefficients nuls situés avant le premier coefficient non nul,
  • et pour des raisons de complexité de calcul, le ou les coefficients nuls situés après le dernier coefficient non nul.
Like the aforementioned MTR_CO processing module, the MTR_DO processing module is initially configured not to modify:
  • the zero coefficient(s) located before the first non-zero coefficient,
  • and for reasons of calculation complexity, the zero coefficient(s) located after the last non-zero coefficient.

Dans l'exemple représenté, à l'issue de la sous-étape D31, il s'agit de la sous-liste SEm1 telle que SEm1 = (9, -6, 0, 0, 1, 0, -1, 2, 0, 0, 1). En conséquence, onze coefficients susceptibles d'avoir été modifiés sont obtenus.In the example shown, at the end of sub-step D31, this is the sub-list SEm 1 such that SEm 1 = (9, -6, 0, 0, 1, 0, -1, 2, 0, 0, 1). As a result, eleven coefficients that may have been modified are obtained.

Au cours d'une sous-étape suivante D32 représentée à la figure 3 , le module de traitement MTR_DO procède à la comparaison du nombre de coefficients susceptibles d'avoir été modifiés avec un seuil prédéterminé TSIG. Dans le mode préféré de réalisation, TSIG vaut 4.During a following sub-step D32 shown in the figure 3 , the processing module MTR_DO compares the number of coefficients likely to have been modified with a predetermined threshold TSIG. In the preferred embodiment, TSIG is equal to 4.

Si le nombre de coefficients susceptibles d'avoir été modifiés est inférieur au seuil TSIG, il est procédé, au cours d'une étape D4 représentée à la figure 3 , à un décodage entropique classique de tous les signes des coefficients de la liste E1. Un tel décodage est effectué par le décodeur CABAC, désigné par la référence DE_DO sur la figure 4 . A cet effet, le signe de chaque coefficient non nul de la liste E1 est décodé entropiquement. If the number of coefficients likely to have been modified is lower than the TSIG threshold, the following procedure is carried out during a step D4 represented in figure 3 , to a classical entropic decoding of all the signs of the coefficients of the list E 1 . Such decoding is carried out by the CABAC decoder, designated by the reference DE_DO on the figure 4 . For this purpose, the sign of each non-zero coefficient in the list E 1 is entropically decoded.

Si le nombre de coefficients susceptibles d'avoir été modifiés est supérieur au seuil TSIG, il est procédé, au cours de ladite étape D4, au décodage entropique classique de tous les signes des coefficients de la liste Em1, à l'exception du signe du premier coefficient non nul ε2.If the number of coefficients likely to have been modified is greater than the TSIG threshold, during said step D4, the classic entropic decoding of all the signs of the coefficients in the list Em 1 is carried out, with the exception of the sign of the first non-zero coefficient ε2.

Au cours d'une étape D5 représentée à la figure 3 , le module de traitement MTR_DO calcule la valeur d'une fonction f qui est représentative des coefficients de la sous-liste SEm1 de façon à déterminer si la valeur calculée est paire ou impaire.During a step D5 represented in the figure 3 , the MTR_DO processing module calculates the value of a function f which is representative of the coefficients of the sublist SEm 1 in order to determine whether the calculated value is even or odd.

Dans le mode préféré de réalisation où un seul signe est caché dans le signal F, la fonction f est la parité de la somme des coefficients de la sous-liste SEm1.In the preferred embodiment where only one sign is hidden in the signal F, the function f is the parity of the sum of the coefficients of the sublist SEm 1 .

Conformément à la convention utilisée au codeur CO, qui est la même au décodeur DO, une valeur paire de la somme des coefficients de la sous-liste SEm1 signifie que le signe du premier coefficient non nul de la liste modifiée Em1 est positif, tandis qu'une valeur impaire de la somme des coefficients de la sous-liste SEm1 signifie que le signe du premier coefficient non nul de la liste modifiée Em1 est négatif.According to the convention used at the CO encoder, which is the same at the DO decoder, an even value of the sum of the coefficients of the sublist SEm 1 means that the sign of the first non-zero coefficient of the modified list Em 1 is positive, while an odd value of the sum of the coefficients of the sublist SEm 1 means that the sign of the first non-zero coefficient of the modified list Em 1 is negative.

Dans l'exemple de réalisation où SEm1=(+9,-6,0,0,+1,0,-1,+2,0,0,+1), la somme totale des coefficient est égale à 6, et est donc paire. En conséquence, à l'issue de l'étape D5, le module de traitement MTR_DO en déduit que le signe caché du premier coefficient non nul ε2 est positif.In the example embodiment where SEm 1= (+9,-6,0,0,+1,0,-1,+2,0,0,+1), the total sum of the coefficients is equal to 6, and is therefore even. Consequently, at the end of step D5, the processing module MTR_DO deduces that the hidden sign of the first non-zero coefficient ε2 is positive.

Au court d'une étape D6 représentée à la figure 3 , et à l'aide de toutes les informations numériques reconstruites au cours des étapes D2, D4 et D5, il est procédé à la reconstruction des coefficients quantifiés du bloc Bq1 dans un ordre prédéfini. Dans l'exemple représenté, il s'agit d'un parcours en zigzag inverse au parcours en zigzag effectué au cours de l'étape de codage C6 précitée. Une telle étape est effectuée par un module logiciel de lecture ML_DO, tel que représenté à la figure 4 . Plus précisément, le module ML_DO procède à l'inscription des coefficients de la liste E1 (monodimensionnelle) dans le bloc Bq1 (bidimensionnel), en utilisant ledit ordre de parcours en zigzag inverse. During a D6 stage represented in the figure 3 , and using all the digital information reconstructed during steps D2, D4 and D5, the quantized coefficients of block Bq 1 are reconstructed in a predefined order. In the example shown, this is a zigzag path that is the opposite of the zigzag path performed during the aforementioned coding step C6. Such a step is performed by a reading software module ML_DO, as shown in figure 4 . More precisely, the ML_DO module proceeds to register the coefficients of the list E 1 (one-dimensional) in the block Bq 1 (two-dimensional), using the said reverse zigzag traversal order.

Au cours d'une étape D7 représentée à la figure 3 , il est procédé à la déquantification du bloc résidu quantifié Bq1 selon une opération classique de déquantification qui est l'opération inverse de la quantification effectuée à l'étape de codage C5 précitée, pour produire un bloc déquantifié décodé BDq1. Une telle étape est effectuée au moyen d'un module logiciel de déquantification MDQ_DO tel que représenté à la figure 4 . During a step D7 represented in the figure 3 , the quantized residue block Bq 1 is dequantized according to a conventional dequantization operation which is the inverse operation of the quantization carried out in the aforementioned coding step C5, to produce a decoded dequantized block BDq 1 . Such a step is carried out by means of a dequantization software module MDQ_DO as represented in figure 4 .

Au cours d'une étape D8 représentée à la figure 3 , il est procédé à la transformation inverse du bloc déquantifié BDq1 qui est l'opération inverse de la transformation directe effectuée au codage à l'étape C4 précitée. Un bloc résidu décodé BDr1 est alors obtenu. Une telle opération est effectuée par un module logiciel MTI_DO de transformée inverse tel que représenté figure 4 . During a step D8 represented in the figure 3 , the inverse transformation of the dequantized block BDq 1 is carried out, which is the inverse operation of the direct transformation carried out during coding in the aforementioned step C4. A decoded residue block BDr 1 is then obtained. Such an operation is carried out by an inverse transform software module MTI_DO as shown figure 4 .

Au cours d'une étape D9 représentée à la figure 3 , il est procédé au décodage prédictif du bloc courant β1. Un tel décodage prédictif est effectué classiquement par des techniques connues de prédiction intra et/ou inter, au cours duquel le bloc β1 est prédit par rapport à au moins un bloc précédemment décodé. Une telle opération est effectuée par un module de décodage prédictif PRED_DO tel que représenté figure 4 . During a step D9 represented in the figure 3 , the current block β 1 is predictively decoded. Such predictive decoding is conventionally performed by known intra and/or inter prediction techniques, during which the block β 1 is predicted with respect to at least one previously decoded block. Such an operation is performed by a predictive decoding module PRED_DO as shown figure 4 .

Il va de soi que d'autres modes de prédiction intra tels que proposés dans la norme H.264 sont possibles.It goes without saying that other intra prediction modes such as those proposed in the H.264 standard are possible.

Au cours de cette étape, le décodage prédictif est effectué à l'aide des éléments de syntaxe décodés à l'étape précédente et comprenant notamment le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction intra, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter.During this step, predictive decoding is performed using the syntax elements decoded in the previous step and including in particular the prediction type (inter or intra), and where appropriate, the intra prediction mode, the partitioning type of a block or macroblock if the latter has been subdivided, the reference image index and the displacement vector used in the inter prediction mode.

Ladite étape de décodage prédictif précitée permet de construire un bloc prédit Bp1.The aforementioned predictive decoding step makes it possible to construct a predicted block Bp 1 .

Au cours d'une étape D10 représentée à la figure 3 , il est procédé à la construction du bloc décodé BD1 en ajoutant au bloc prédit Bp1 le bloc résidu décodé BDr1. Une telle opération est effectuée par un module logiciel de reconstruction MR_DO représenté à la figure 4 . During a step D10 represented in the figure 3 , the decoded block BD 1 is constructed by adding the decoded residue block BDr 1 to the predicted block Bp 1. Such an operation is carried out by a reconstruction software module MR_DO represented in figure 4 .

Au cours d'une étape D11 représentée à la figure 3 , le module de décodage MD_DO teste si le bloc courant décodé est le dernier bloc identifié dans le signal F.During a step D11 represented in the figure 3 , the MD_DO decoding module tests whether the current decoded block is the last block identified in the F signal.

Si le bloc courant est le dernier bloc du signal F, au cours d'une étape D12 représentée à la figure 3 , il est mis fin au procédé de décodage.If the current block is the last block of signal F, during a step D12 shown in figure 3 , the decoding process is terminated.

Si tel n'est pas le cas, il est procédé à la sélection du bloc suivant Bi à décoder conformément à l'ordre de parcours raster scan précité, par itération des étapes D1 à D10, pour 1≤i≤Z.If this is not the case, the next block B i to be decoded is selected in accordance with the aforementioned raster scan order, by iteration of steps D1 to D10, for 1≤i≤Z.

On va maintenant décrire, principalement en référence à la figure 3 , un autre mode de réalisation de l'invention.We will now describe, mainly with reference to the figure 3 , another embodiment of the invention.

Cet autre mode de réalisation se distingue du précédent uniquement par le nombre de coefficients cachés qui est soit 0, soit N, N étant un entier tel que N≥2.This other embodiment differs from the previous one only by the number of hidden coefficients which is either 0 or N, N being an integer such that N≥2.

A cet effet, la sous-étape de comparaison D32 précitée est remplacée par la sous-étape D32a représentée en pointillé sur la figure 3 , au cours de laquelle il est procédé à la comparaison du nombre de coefficients susceptibles d'avoir été modifiés avec plusieurs seuils prédéterminés 0<TSIG_1<TSIG_2<TSIG_3..., de telle façon que si le nombre desdits coefficients est compris entre TSIG_N et TSIG_N+1, N signes ont été cachés.For this purpose, the aforementioned comparison sub-step D32 is replaced by sub-step D32a shown in dotted lines on the figure 3 , during which the number of coefficients likely to have been modified is compared with several predetermined thresholds 0<TSIG_1<TSIG_2<TSIG_3..., in such a way that if the number of said coefficients is between TSIG_N and TSIG_N+1, N signs have been hidden.

Si le nombre desdits coefficients est inférieur au premier seuil TSIG_1, il est procédé, au cours de l'étape D4 précitée, au décodage entropique classique de tous les signes des coefficients de la liste E1. A cet effet, le signe de chaque coefficient non nul de la liste E1 est décodé entropiquement.If the number of said coefficients is less than the first threshold TSIG_1, the classic entropic decoding of all the signs of the coefficients in the list E 1 is carried out during the aforementioned step D4. For this purpose, the sign of each non-zero coefficient in the list E 1 is entropically decoded.

Si le nombre desdits coefficients est compris entre le seuil TSIG_N et TSIG_N+1, il est procédé, au cours de l'étape D4 précitée, au décodage entropique classique de tous les signes des coefficients de la liste E1, à l'exception des N signes respectifs des premiers coefficients non nuls de ladite liste modifiée Em1, lesdits N signes étant cachés.If the number of said coefficients is between the threshold TSIG_N and TSIG_N+1, during the aforementioned step D4, the conventional entropic decoding of all the signs of the coefficients of the list E 1 is carried out, with the exception of the N respective signs of the first non-zero coefficients of said modified list Em 1 , said N signs being hidden.

Dans cet autre mode de réalisation, le module de traitement MTR_DO calcule, au cours de l'étape D5, la valeur de la fonction f qui est le reste modulo 2N de la somme des coefficients de la sous-liste SEm1. On suppose que dans l'exemple proposé, N=2.In this other embodiment, the processing module MTR_DO calculates, during step D5, the value of the function f which is the remainder modulo 2 N of the sum of the coefficients of the sub-list SEm 1 . It is assumed that in the proposed example, N=2.

Le module de traitement MTR_DO en déduit alors la configuration des deux signes cachés qui sont affectés respectivement à chacun des deux premiers coefficients non nuls ε2 et ε3, selon la convention utilisée au codage.The MTR_DO processing module then deduces the configuration of the two hidden signs which are assigned respectively to each of the first two non-zero coefficients ε2 and ε3, according to the convention used in coding.

Une fois ces deux signes reconstruits, il est procédé à la réalisation des étapes D6 à D12 décrites ci-dessus.Once these two signs have been reconstructed, steps D6 to D12 described above are carried out.

Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art.It goes without saying that the embodiments described above have been given for purely indicative purposes and are in no way limiting, and that numerous modifications can easily be made by those skilled in the art.

Ainsi par exemple, selon un mode de réalisation simplifié par rapport à celui représenté à la figure 1 , le codeur CO pourrait être configuré pour cacher au moins N' signes prédéterminés, avec N'≥1, au lieu de soit zéro, soit un ou N signes prédéterminés. Dans ce cas, l'étape de comparaison C72 ou C72a serait supprimée. De façon correspondante, selon un mode de réalisation simplifié par rapport à celui représenté à la figure 3 , le décodeur DO serait configuré pour reconstruire N' signes prédéterminés au lieu de soit zéro, soit un ou N signes prédéterminés. Dans ce cas, l'étape de comparaison D32 ou D32a serait supprimée.Thus, for example, according to a simplified embodiment compared to that shown in the figure 1 , the CO encoder could be configured to hide at least N' predetermined signs, with N'≥1, instead of either zero, one or N predetermined signs. In this case, the comparison step C72 or C72a would be omitted. Correspondingly, according to a simplified embodiment compared to that shown in figure 3 , the DO decoder would be configured to reconstruct N' predetermined signs instead of either zero, one, or N predetermined signs. In this case, the comparison step D32 or D32a would be removed.

En outre, le critère de décision appliqué à l'étape de codage C72 et à l'étape de décodage D32 pourrait être remplacé par un autre type de critère. A cet effet, au lieu de comparer à un seuil le nombre de coefficients modifiables ou le nombre de coefficients susceptibles d'avoir été modifiés, le module de traitement MTR_CO ou MTR_DO pourrait appliquer un critère de décision qui est respectivement fonction de la somme des amplitudes des coefficients modifiables ou susceptibles d'avoir été modifiés, ou encore du nombre de zéros présents parmi les coefficients modifiables ou susceptibles d'avoir été modifiés.Furthermore, the decision criterion applied in the coding step C72 and in the decoding step D32 could be replaced by another type of criterion. For this purpose, instead of comparing the number of modifiable coefficients or the number of coefficients likely to have been modified with a threshold, the processing module MTR_CO or MTR_DO could apply a decision criterion which is respectively a function of the sum of the amplitudes of the modifiable coefficients or those likely to have been modified, or of the number of zeros present among the modifiable coefficients or those likely to have been modified.

Claims (5)

  1. Device (DO) for decoding a data signal representative of at least one image split into partitions which has been previously encoded, comprising means (DE_DO) for obtaining, by the entropy decoding of data items of said signal, digital information items associated with residual data items relating to at least one previously encoded partition, said decoding device being characterized in that it comprises processing means (MTR_DO) which are able to:
    - determine, from said residual data items, a subset containing residual data items able to have been modified during a previous encoding, the subset being determined by a first non-zero coefficient and a last non-zero coefficient, the zero coefficients situated before the first non-zero coefficient and the zero coefficients situated after the last non-zero coefficient not being able to have been modified,
    - calculate the value of a representative function of the coefficients of the residual data items of said determined subset, the representative function being the parity of the sum of the coefficients of the residual data items of said determined subset,
    - obtain, in addition to the digital information items obtained by the entropy decoding, at least one sign of the first non-zero coefficient, the sign of the first non-zero coefficient being obtained from the parity of the sum of the coefficients of the residual data items of said determined subset, the sign of the first non-zero coefficient being obtained using a predetermined convention.
  2. Decoding device (DO) according to Claim 1, wherein N respective signs of the first non-zero coefficients of said subset are obtained.
  3. Decoding device (DO) according to Claim 1, wherein said steps that follow said step of determining said subset of residual data items are implemented only if a predetermined criterion dependent on the residual data items able to have been modified is complied with.
  4. Decoding device (DO) according to Claim 1, wherein a plurality of values associated respectively with a plurality of digital information items different from those obtained by the entropy decoding is obtained from said calculated value.
  5. Decoding device (DO) according to Claim 1, wherein the predetermined convention is such that an even value of the sum of the coefficients of the residual data items of said determined subset means that the sign of the first non-zero coefficient is positive, whereas an odd value of the sum of the coefficients of the residual data items of said determined subset means that the sign of the first non-zero coefficient is negative.
HK19132915.0A 2011-11-07 2019-11-28 Method and recording medium storing coded image data HK40009225B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1160109 2011-11-07

Publications (2)

Publication Number Publication Date
HK40009225A HK40009225A (en) 2020-06-19
HK40009225B true HK40009225B (en) 2022-04-08

Family

ID=

Similar Documents

Publication Publication Date Title
EP3490258B2 (en) Device for decoding a data signal representing at least one image
EP3442228B1 (en) Method for image decoding
EP3183879A1 (en) Method for encoding a digital image, and associated decoding method, devices and computer programmes
EP2932714B1 (en) Method of coding and decoding images, device for coding and decoding and computer programs corresponding thereto
EP3058737A1 (en) Method for encoding and decoding images, device for encoding and decoding images, and corresponding computer programmes
WO2015079179A1 (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
EP3409016A1 (en) Method for encoding and decoding data, device for encoding and decoding data, and corresponding computer programs
HK40009225B (en) Method and recording medium storing coded image data
EP3259909B1 (en) Image encoding and decoding method, encoding and decoding device, and corresponding computer programs
WO2016132074A1 (en) Encoding of images by vector quantization