[go: up one dir, main page]

FR3057131A1 - METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES, TERMINAL AND COMPUTER PROGRAMS - Google Patents

METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES, TERMINAL AND COMPUTER PROGRAMS Download PDF

Info

Publication number
FR3057131A1
FR3057131A1 FR1659589A FR1659589A FR3057131A1 FR 3057131 A1 FR3057131 A1 FR 3057131A1 FR 1659589 A FR1659589 A FR 1659589A FR 1659589 A FR1659589 A FR 1659589A FR 3057131 A1 FR3057131 A1 FR 3057131A1
Authority
FR
France
Prior art keywords
block
image
list
current block
transform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR1659589A
Other languages
French (fr)
Inventor
Thibaud Biatek
Victorien Lorcy
Pierrick Philippe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telediffusion de France ets Public de Diffusion
Orange SA
B Com SAS
Original Assignee
Telediffusion de France ets Public de Diffusion
Orange SA
B Com SAS
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 Telediffusion de France ets Public de Diffusion, Orange SA, B Com SAS filed Critical Telediffusion de France ets Public de Diffusion
Priority to FR1659589A priority Critical patent/FR3057131A1/en
Priority to PCT/FR2017/052603 priority patent/WO2018065698A1/en
Publication of FR3057131A1 publication Critical patent/FR3057131A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé de codage d'une image d'une séquence d'images numériques, 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, dit bloc courant, de l'image courante, de dimensions prédéterminées : Prédiction (E1) des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence, Calcul (E2) d'un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant, Transformation (E6) du bloc résidu par application d'une transformée, la transformée appartenant à une liste prédéterminée de transformées; Codage (E7) du bloc résidu transformé et d'une information d'identification de la transformée appliquée ; Selon l'invention, le procédé comprend en outre une étape (E3) d'obtention d'un indicateur de variabilité du bloc par rapport à la au moins une image de référence, une étape (E4) d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminés au moins en fonction de l'indicateur obtenu et l'étape de transformation applique une transformée de la liste obtenue.A method of encoding an image of a sequence of digital images, 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 block, called current block, of the current image, of predetermined dimensions: Prediction (E1) of the values of the current block from at least one previously processed block of a previous or next image, called reference image, Calculation ( E2) of a residue block (R) by subtraction of the predicted values from the original values of the current block; Transformation (E6) of the residual block by application of a transform, the transform belonging to a predetermined list of transforms; Coding (E7) of the transformed residue block and identification information of the applied transform; According to the invention, the method further comprises a step (E3) of obtaining an indicator of variability of the block with respect to the at least one reference image, a step (E4) of obtaining a list of transformed from among a plurality of predetermined lists at least according to the indicator obtained and the transformation step applies a transformed list obtained.

Description

Titulaire(s) : BoCOM,ORANGE Société anonyme, TDF Société par actions simplifiée.Holder (s): BoCOM, ORANGE Public limited company, TDF Simplified joint stock company.

Demande(s) d’extensionExtension request (s)

Mandataire(s) : AVOXA.Agent (s): AVOXA.

PROCEDE DE CODAGE D'UNE IMAGE NUMERIQUE, PROCEDE DE DECODAGE, DISPOSITIFS, TERMINAL ET PROGRAMMES D'ORDINATEURS ASSOCIES.METHOD FOR ENCODING A DIGITAL IMAGE, METHOD FOR DECODING, DEVICES, TERMINAL AND COMPUTER PROGRAMS THEREOF.

FR 3 057 131 - A1 (57) L'invention concerne un procédé de codage d'une image d'une séquence d'images numériques, 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 oeuvre pour un bloc, dit bloc courant, de l'image courante, de dimensions prédéterminées:FR 3 057 131 - A1 (57) The invention relates to a method of coding an image of a sequence of digital images, 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 block, called the current block, of the current image, of predetermined dimensions:

Prédiction (E 1 ) des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence,Prediction (E 1) of the values of the current block from at least one block previously processed from a previous or next image, called the reference image,

Calcul (E2) d'un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant,Calculation (E2) of a residual block (R) by subtracting the predicted values from the original values of the current block,

Transformation (E6) du bloc résidu par application d'une transformée, la transformée appartenant à une liste prédéterminée de transformées;Transformation (E6) of the residual block by application of a transform, the transform belonging to a predetermined list of transforms;

Codage (E7) du bloc résidu transformé et d'une information d'identification de la transformée appliquée;Coding (E7) of the transformed residual block and of information identifying the applied transform;

Selon l'invention, le procédé comprend en outre une étape (E3) d'obtention d'un indicateur de variabilité du bloc par rapport à la au moins une image de référence, une étape (E4) d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminés au moins en fonction de l'indicateur obtenu et l'étape de transformation applique une transformée de la liste obtenue.According to the invention, the method further comprises a step (E3) of obtaining an indicator of variability of the block with respect to the at least one reference image, a step (E4) of obtaining a list of transforms among a plurality of predetermined lists at least as a function of the indicator obtained and the transformation step applies a transform of the list obtained.

ii

Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associésMethod for coding a digital image, method for decoding, devices, terminal equipment and associated computer programs

1. Domaine de l'invention1. 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, divisée en blocs de pixels.The field of the invention is that of signal compression, in particular of a digital image or of a sequence of digital images, divided into blocks of pixels.

L'invention concerne plus particulièrement la signalisation d'une transformée appliquée à un bloc de pixels, dans un contexte de compétition de transformées.The invention relates more particularly to the signaling of a transform applied to a block of pixels, in a context of transform competition.

Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant :The coding / 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 from the same camera and successively in time (2D type coding / decoding),

- 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 (3D type coding / decoding),

- 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 (pour « Advanced Video Coding », en anglais) et HEVC (pour « High Efficiency Video Coding », en anglais) et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant.The invention can in particular, but not exclusively, be applied to the video coding implemented in current video coders AVC (for “Advanced Video Coding”, in English) and HEVC (for “High Efficiency Video Coding”, in English) and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), and to the corresponding decoding.

2. Présentation de l'art antérieur2. 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, qui constitue une unité de codage initiale, est généralement découpé en un nombre variable de sous-blocs selon un mode de découpage prédéterminé.We consider a classical compression scheme of a digital image, according to which the image is divided into blocks of pixels. A current block to be coded, which constitutes an initial coding unit, is generally divided into a variable number of sub-blocks according to a predetermined cutting mode.

En relation avec la Figure 1, on considère une séquence d'images numériques Ii, I2, Ik, avec K entier non nul. Une image Ik est découpée en unités de codage initiales ou CTU (pour « Coding Tree Unit » en anglais) selon la terminologie de la norme HEVC, telle que spécifiée dans le document ISO/IEC 23008-2:2013 - High efficiency coding and media delivery in heterogeneous environments — Part 2: High efficiency video coding », International Organization for Standardization, publié en novembre 2013 ou dans la spécification ITU-T H.265 intitulée « High Efficiency Video Coding », publiée en avril 2015.In relation to Figure 1, we consider a sequence of digital images Ii, I2, Ik, with K non-zero integer. An Ik image is divided into initial coding units or CTU (for “Coding Tree Unit” in English) according to the terminology of the HEVC standard, as specified in the document ISO / IEC 23008-2: 2013 - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding ”, International Organization for Standardization, published in November 2013 or in the ITU-T H.265 specification entitled“ High Efficiency Video Coding ”, published in April 2015.

. Les codeurs standards proposent généralement un partitionnement régulier, qui s'appuie sur des blocs carrés ou rectangulaires, appelés CU (pour « Coding Units », en anglais) de taille fixe. Le partitionnement se fait toujours à partir de l'unité de codage initiale, non partitionnée, et le partitionnement final est calculé puis signalé à partir de cette base neutre.. Standard coders generally offer regular partitioning, based on square or rectangular blocks, called CU (for “Coding Units”, in English) of fixed size. Partitioning is always done from the initial coding unit, not partitioned, and the final partitioning is calculated and then signaled from this neutral base.

Chaque CU subit 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 est connue de l'art antérieur et présentée en relation avec la Figure 2.Each CU undergoes an encoding or decoding operation consisting of a series of operations, including in a non-exhaustive manner a prediction, a residue calculation, a transformation, a quantification and an entropy coding. This sequence of operations is known from the prior art and presented in relation to Figure 2.

On sélectionne comme bloc courant c le premier bloc CTU à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels, avec N entier non nul, par exemple égal à 64 selon la norme HEVC.The first CTU block to be processed is selected as the current block c. For example, this is the first block (in lexicographic order). This block comprises NxN pixels, with N non-zero integer, for example equal to 64 according to the HEVC standard.

Au cours d'une étape El, on détermine une prédiction Pr du bloc original b. 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 appartenant à l'image ID). Les informations de prédiction liées à Pr sont codées dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a P modes de prédiction possibles rrii, mp, avec P entier non nul. Par exemple, le mode de prédiction choisi pour le bloc courant c est le mode mp. Certains modes de prédiction sont associés à une prédiction de type Intra, d'autres à une prédiction de type INTER.During a step E1, a prediction Pr of the original block b is determined. It is a prediction block constructed by known means, typically by motion compensation (block from a previously decoded reference image), or by intra prediction (block constructed from decoded pixels belonging to the image ID). The prediction information linked to Pr is coded in the bit stream TB or compressed file FC. We assume here that there are P possible prediction modes rrii, m p , with P non-zero integer. For example, the prediction mode chosen for the current block c is the mode m p . Certain prediction modes are associated with an Intra type prediction, others with an INTER type prediction.

Au cours d'une étape E2, un résidu original R est formé, par soustraction R = c-Pr de la prédiction Pr du bloc courant c au bloc courant c.During a step E2, an original residue R is formed, by subtraction R = c-Pr from the prediction Pr from the current block c to the current block c.

En E3, on identifie une transformée à appliquer au résidu R obtenu.In E3, a transform is identified to be applied to the residue R obtained.

L'étape de transformation joue un rôle crucial dans un tel schéma de codage vidéo : en effet c'est elle qui concentre l'information avant l'opération de quantification. Il en résulte qu'un ensemble de pixels résiduel avant encodage se voit représenté sur un faible nombre de coefficients fréquentiels non-nuls représentant la même information. Ainsi, au lieu de transmettre un grand nombre de coefficients, seul un petit nombre sera nécessaire pour reconstituer avec fidélité un bloc de pixels.The transformation stage plays a crucial role in such a video coding scheme: it is in fact it which concentrates the information before the quantification operation. As a result, a set of residual pixels before encoding is represented on a small number of non-zero frequency coefficients representing the same information. Thus, instead of transmitting a large number of coefficients, only a small number will be necessary to faithfully reconstruct a block of pixels.

En codage d'image et vidéo, on utilise généralement des transformées blocs (4x4, 8x8 etc), orthogonales ou quasi-orthogonales. Les transformées les plus employées sont à base de bases cosinus. La DCT est ainsi présente dans la plupart des standards pour l'image et la vidéo. Récemment la norme HEVC a également introduit la DST (pour « Discrète Sine Transform », en anglais) pour le codage de résidus particuliers dans le cas de blocs de taille 4x4.In image and video coding, block transforms (4x4, 8x8, etc.), orthogonal or quasi-orthogonal are generally used. The most widely used transforms are based on cosine bases. The DCT is thus present in most standards for image and video. Recently, the HEVC standard has also introduced DST (for “Discrete Sine Transform”, in English) for coding particular residues in the case of blocks of 4x4 size.

Dans les faits, ce sont des approximations de ces transformées qui sont employées, les calculs étant effectués sur des entiers. En général, les bases de transformées sont approximées à l'entier le plus proche, sur une précision donnée (généralement de 8 bits).In fact, it is approximations of these transforms that are used, the calculations being carried out on integers. In general, the bases of transforms are approximated to the nearest integer, on a given precision (generally of 8 bits).

A titre d'exemple on présente en relation avec les Figures 2A et 2B, les transformées utilisées par la norme HEVC sur les blocs de taille 4x4 : Il s'agit des transformées DCT et DST. Les valeurs présentées dans ce tableau sont à diviser par 128 pour retrouver les transformations quasiorthonormales.By way of example, in relation to FIGS. 2A and 2B, the transforms used by the HEVC standard on 4x4 size blocks are presented: These are DCT and DST transforms. The values presented in this table are to be divided by 128 to find the quasiorthonormal transformations.

Plus récemment la notion de compétition de transformées a été introduite. Pour une taille de bloc et un mode de prédiction donnés, l'encodeur a le choix entre T transformées, avec T entier non nul, généralement supérieur ou égal à 2. De la même manière que pour le partitionnement d'un bloc, il les applique chacune à leur tour au bloc courant, puis les évalue selon un critère débit-distorsion. La transformée choisie est celle qui obtient les meilleures performances :More recently the concept of transform competition has been introduced. For a given block size and prediction mode, the encoder has the choice between T transformed, with non-zero integer T, generally greater than or equal to 2. In the same way as for partitioning a block, it each applies in turn to the current block, then evaluates them according to a flow-distortion criterion. The transform chosen is the one that obtains the best performance:

La norme HEVC prévoit, pour les blocs 4x4, le choix entre une transformation de type DST ou une absence de transformée « Transform Skip » (c'est-à-dire que les coefficients résiduels ne subissent pas de transformée).The HEVC standard provides, for 4x4 blocks, the choice between a DST type transformation or the absence of a "Transform Skip" transform (that is to say that the residual coefficients do not undergo a transform).

Dans la publication de A. Arrufat et al, intitulée « Rate-distortion optimised transform compétition for intra coding in HEVC », publiée dans les Proceedings de la conférence IEEE Visual Communication on Image Processing, en décembre 2014, qui s'est tenue à La Valette, Malta. pp.73, l'encodeur a le choix entre de multiples transformées. Par exemple, il est proposé 5 transformées pour les blocs de taille 4x4 et 17 transformées pour les blocs de taille 8x8. L'étape E3 identifie donc une transformées parmi celles disponibles en fonction de la taille du bloc courant.In the publication by A. Arrufat et al, entitled “Rate-distortion optimized transformed competition for intra coding in HEVC”, published in the Proceedings of the IEEE Visual Communication on Image Processing conference, in December 2014, held at La Valletta, Malta. pp.73, the encoder has the choice between multiple transforms. For example, 5 transforms are proposed for 4x4 size blocks and 17 transforms for 8x8 size blocks. Step E3 therefore identifies a transform among those available as a function of the size of the current block.

Au cours d'une étape E4, le résidu R est transformé en un bloc résidu transformé, appelé RT, par la transformée identifiée. Il s'agit par exemple d'une transformée de type block (communément DCT voire DST voire des transformations adaptées) ou d'une transformée en ondelettes, toutes connues de l'homme de métier et notamment mises en œuvre dans les normes JPEG/MPEG pour la DCT/DST et JPEG2000 pour la transformée en ondelettes.During a step E4, the residue R is transformed into a transformed residue block, called RT, by the identified transform. It is for example a block type transform (commonly DCT or even DST or even adapted transformations) or a wavelet transform, all known to those skilled in the art and notably implemented in the JPEG / MPEG standards for DCT / DST and JPEG2000 for transforming into wavelets.

En E5, 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[j], où l'indice j varie de 0 à Nb-1, avec Nb entier égal au nombre de pixels du bloc c. L'indice j est appelé fréquence du coefficient RQ[j]. Classiquement, on scanne ces coefficients par ordre globalement croissant ou décroissant de valeurs de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG.In E5, as is known in the state of the art, these coefficients are scanned in a predetermined order so as to constitute a one-dimensional vector RQ [j], where the index j varies from 0 to Nb-1, with Nb integer equal to the number of pixels in block c. The index j is called the frequency of the coefficient RQ [j]. Conventionally, these coefficients are scanned in globally increasing or decreasing order of frequency values, for example according to a zigzag path, which is known from the JPEG fixed image coding standard.

En E6, 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 comprenant autant de coefficients que le bloc résidu RQ contient de pixels, par exemple Nb, avec Nb entier non nul.In E6, the transformed residue RT is quantified by conventional quantification means, for example scalar or vector, into a quantized residue block RQ comprising as many coefficients as the residue block RQ contains pixels, for example Nb, with non-zero integer Nb .

Lors d'une étape E7, on vient coder les informations relatives aux coefficients du bloc résidu RQ par codage entropique, par exemple selon une technique de codage de Huffman ou de codage arithmétique. Ces informations comprennent au moins l'amplitude des coefficients, leur signe et une signalisation de la transformée appliquée au bloc par l'encodeur. Par amplitude, on entend ici la valeur absolue du coefficient. 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. On code aussi les signes des coefficients non nuis. En général, ils sont simplement codés par un bit 0 ou 1, chaque valeur correspondant à une polarité donnée. Un tel codage obtient des performances efficaces, car, du fait de la transformation, les valeurs des amplitudes à coder sont en grande majorité nulles.During a step E7, the information relating to the coefficients of the residual block RQ is coded by entropy coding, for example according to a Huffman coding technique or arithmetic coding. This information includes at least the amplitude of the coefficients, their sign and a signaling of the transform applied to the block by the encoder. By amplitude is meant here the absolute value of the coefficient. Conventionally, information representative of the fact that the coefficient is not zero can be coded for each coefficient. Then, for each non-zero coefficient, one or more pieces of information relating to the amplitude are coded. The amplitudes coded CA are obtained. We also code the signs of the non-harmful coefficients. In general, they are simply coded by a bit 0 or 1, each value corresponding to a given polarity. Such coding obtains efficient performance because, due to the transformation, the values of the amplitudes to be coded are largely zero.

Concernant la transformée appliquée, dans le cas de la norme HEVC, on indique au décodeur par un bit, appelé transform_skip_flag, la transformée inverse à appliquer parmi les deux alternatives DST ou absence de transformée.Concerning the applied transform, in the case of the HEVC standard, one indicates to the decoder by a bit, called transform_skip_flag, the inverse transform to be applied among the two alternatives DST or absence of transform.

Dans le cas de la publication de A. Arrufat et al, on la signale au décodeur par une approche indicateur plus signalisation explicite : l'encodeur signale par un indicateur (indicateur en position 0) si la transformée est une transformée de type HEVC (selon la taille, il s'agit d'une DCT ou d'une DST) ou une transformation particulière (indicateur en position 1). Si l'indicateur indique une transformation particulière, l'indice de la transformation particulière utilisée est signalé au décodeur sur un code de longueur fixe (2 pour les blocs 4x4 et 4 pour les blocs 8x8 afin de signaler respectivement les 4 et 16 transformations particulières possibles).In the case of the publication of A. Arrufat et al, it is signaled to the decoder by an indicator approach plus explicit signaling: the encoder signals by an indicator (indicator in position 0) if the transform is a HEVC type transform (according to size, it is a DCT or a DST) or a specific transformation (indicator in position 1). If the indicator indicates a particular transformation, the index of the particular transformation used is signaled to the decoder on a fixed length code (2 for 4x4 blocks and 4 for 8x8 blocks in order to signal respectively 4 and 16 possible specific transformations ).

Grâce à l'augmentation du nombre de transformées, la performance de codage est améliorée, car chaque transformée est adaptée à la statistique d'un type de signal résiduel donné.Thanks to the increase in the number of transforms, the coding performance is improved, since each transform is adapted to the statistics of a given type of residual signal.

Des gains sur les signaux de type texte et graphique sont rapportés par la technique « transform skip » et sur des signaux de nature quelconque (images contenant des textes, graphiques synthétiques, ou représentant des scènes filmées naturelles) par la technique présentée dans la publication A. Arrufat.Gains on text and graphic signals are reported by the "transform skip" technique and on signals of any kind (images containing text, synthetic graphics, or representing natural filmed scenes) by the technique presented in publication A Arrufat.

En E8, l'encodeur évalue la transformée appliquée, sous contrôle d'un critère débit distorsion, à partir du résidu encodé.In E8, the encoder evaluates the applied transform, under control of a distortion rate criterion, from the encoded residue.

On répète les étapes précédentes El à E8 appliquées au bloc courant c pour les T transformée disponibles à l'encodeur.The preceding steps E1 to E8 applied to the current block c are repeated for the transformed Ts available at the encoder.

En E9, une fois que toutes les transformées disponibles ont été appliquées, elles sont mises en compétition selon un critère débit-distorsion Les résidus transformés quantifiés associés à chaque transformée candidate sont donc décodés pour évaluer une mesure de performance et la transformée qui maximise ce critère est finalement retenue.In E9, once all the available transforms have been applied, they are put into competition according to a flow-distortion criterion The quantified transformed residues associated with each candidate transform are therefore decoded to evaluate a performance measure and the transform which maximizes this criterion is finally retained.

En E10, les données codées relatives au bloc courant sont insérées dans le train binaire TB.In E10, the coded data relating to the current block are inserted in the bit stream TB.

Les autres blocs de l'image II sont traités de la même façon, de même pour les images suivantes de la séquence.The other blocks of image II are treated in the same way, the same for the following images of the sequence.

3. Inconvénients de l'art antérieur3. Disadvantages of the prior art

Les inconvénients de l'art antérieur sont les suivants :The disadvantages of the prior art are as follows:

• la multiplication du nombre de transformées induit une signalisation accrue pour indiquer la transformée choisie par l'encodeur au décodeur.• the multiplication of the number of transforms induces an increased signaling to indicate the transform chosen by the encoder to the decoder.

• ce coût accru en signalisation, qui est pris en compte lors de la compétition entre transformées, impacte les performances de compression.• this increased cost in signaling, which is taken into account during competition between transforms, has an impact on compression performance.

4. Objectifs de l'invention4. 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.The invention particularly aims to overcome these drawbacks of the prior art.

Plus précisément, un objectif de l'invention est de proposer une solution qui, en réduise les besoins en ressources de calcul et le volume de données transmises, tout en préservant les performances de compression d'un codeur d'images numériques.More specifically, an objective of the invention is to propose a solution which, by reducing the need for computing resources and the volume of data transmitted, while preserving the compression performance of a digital image coder.

5.5.

Exposé de l'inventionStatement 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 d'une séquence d'images, 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, dit bloc courant, de l'image courante:These objectives, as well as others which will appear subsequently, are achieved using a method of coding an image of a sequence of images, said image being divided into a plurality of blocks of processed pixels. in a defined order, said method comprising the following steps, implemented for a block, called the current block, of the current image:

Prédiction des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite de référence,Prediction of the values of the current block from at least one block previously processed from a previous or next image, called a reference image,

Calcul d'un bloc résidu par soustraction des valeurs prédites aux valeurs originales du bloc courant,Calculation of a residual block by subtracting the predicted values from the original values of the current block,

Transformation du bloc résidu par application d'une transformée;Transformation of the residual block by application of a transform;

Codage du bloc résidu transformé;Coding of the transformed residue block;

Selon l'invention, le procédé comprend en outre une étape d'obtention d'un indicateur de variabilité du bloc par rapport à la au moins une image de référence, une étape d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu et l'étape de transformation applique une transformée de la liste obtenue.According to the invention, the method further comprises a step of obtaining an indicator of variability of the block with respect to the at least one reference image, a step of obtaining a list of transforms among a plurality of lists predetermined at least as a function of the indicator obtained and the transformation step applies a transform from the list obtained.

L'invention propose de choisir la transformée à appliquer au bloc courant dans un sous ensemble de transformées adapté au bloc courant. Les inventeurs ont en effet constaté qu'il existait un lien entre la variabilité du bloc courant par rapport à sa ou ses références, et donc entre la qualité de la prédiction du bloc et les transformées les mieux adaptées pour compresser l'information du résidu obtenu.The invention proposes to choose the transform to be applied to the current block in a subset of transforms adapted to the current block. The inventors have indeed found that there is a link between the variability of the current block with respect to its reference (s), and therefore between the quality of the prediction of the block and the transforms best suited to compress the information of the residue obtained. .

L'invention repose donc sur une approche tout-à-fait nouvelle et inventive du codage d'images qui consiste à regrouper les meilleures transformées candidates pour le codage du résidu d'un bloc en fonction d'une information représentative d'une variabilité du contenu du bloc à coder et à imposer au codeur de faire son choix dans ce sous-ensemble.The invention is therefore based on an entirely new and inventive approach to image coding which consists in grouping together the best candidate transforms for coding the residue of a block as a function of information representative of a variability of the content of the block to be coded and to force the coder to make its choice in this subset.

En choisissant la transformée dans un sous-ensemble de l'ensemble initial de transformées disponible au niveau du codeur, on réduit nécessairement le coût de l'information à transmettre.By choosing the transform from a subset of the initial set of transforms available at the coder level, the cost of the information to be transmitted is necessarily reduced.

Avantageusement, la configuration des listes peut être figée ou bien évoluer au cours du temps.Advantageously, the configuration of the lists can be fixed or evolve over time.

Si elle est figée, sa connaissance est partagée par le codeur et le décodeur et ne nécessite pas de signalisation. Si elle est adaptative, son évolution au cours du temps doit être signalée. Par exemple, la configuration des listes peut être destinée à un groupe d'images et son évolution est signalée au niveau des informations de syntaxe relatives à ce groupe ou bien la configuration vaut pour la séquence d'images entière et son évolution est signalée au niveau des informations de syntaxe relatives à cette séquence.If it is frozen, its knowledge is shared by the coder and the decoder and does not require signaling. If it is adaptive, its evolution over time must be reported. For example, the configuration of the lists can be intended for a group of images and its evolution is indicated at the level of the syntax information relating to this group or else the configuration is valid for the entire sequence of images and its evolution is indicated at the level syntax information relating to this sequence.

Selon un aspect de l'invention, l'étape de transformation est répétée pour les transformées de la liste obtenue, le procédé comprend une étape de sélection d'une transformée parmi les transformées de la liste selon un critère débit distorsion et une étape de codage d'une information d'identification de la transformée sélectionnée dans la liste.According to one aspect of the invention, the transformation step is repeated for the transforms of the list obtained, the method comprises a step of selecting a transform from the transforms of the list according to a distortion bit rate criterion and a coding step information identifying the transform selected in the list.

Par exemple, le codeur signale un index de position de la transformée sélectionnée dans la liste, ce qui présuppose que la liste est ordonnée de façon similaire au codeur et au décodeur.For example, the coder signals a position index of the transform selected in the list, which presupposes that the list is ordered in a similar way to the coder and to the decoder.

Dans un contexte de compétition de transformées, le fait d'avoir moins de transformées à tester réduit la complexité de l'encodeur et du décodeur. Cet avantage de l'invention s'ajoute à celui d'avoir moins d'informations à signaler car le nombre de transformées candidates est réduit.In a context of transform competition, having fewer transforms to test reduces the complexity of the encoder and the decoder. This advantage of the invention is added to that of having less information to report because the number of candidate transforms is reduced.

De façon correspondante, l'invention concerne aussi un procédé de décodage d'une image d'une séquence d'images à partir de données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant :Correspondingly, the invention also relates to a method of decoding an image of a sequence of images from coded data representative of said image, said image being divided into a plurality of blocks processed in a defined order, said process comprising the following steps, implemented for a block, known as the current block:

Prédiction du bloc courant à partir d'au moins un bloc précédemment traité issu d'au moins une image précédente ou suivante, dite de référence;Prediction of the current block from at least one previously processed block from at least one preceding or following image, called the reference image;

Décodage des données codées représentatives des coefficients du bloc résidu transformé ; Transformation inverse du bloc résidu transformé;Decoding of the coded data representative of the coefficients of the transformed residual block; Reverse transformation of the transformed residue block;

Reconstruction du bloc décodé à partir du bloc résidu et de la prédiction du bloc courant;Reconstruction of the decoded block from the residual block and the prediction of the current block;

Selon l'invention, le procédé comprend une étape d'obtention d'un indicateur de variabilité du bloc courant par rapport à ladite au moins une image de référence, une étape d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu et une étape d'identification de la transformée à appliquer dans la liste obtenue.According to the invention, the method comprises a step of obtaining an indicator of variability of the current block with respect to said at least one reference image, a step of obtaining a list of transforms among a plurality of predetermined lists at least as a function of the indicator obtained and a step of identifying the transform to be applied in the list obtained.

Un avantage de l'invention est que les étapes d'obtention d'un indicateur de variabilité du bloc courant et d'obtention d'une liste de transformées en fonction de cet indicateur peuvent être réalisées au niveau du décodeur de façon correspondante au codeur, ce qui permet de réduire la signalisation.An advantage of the invention is that the steps of obtaining a variability indicator of the current block and of obtaining a list of transforms as a function of this indicator can be carried out at the level of the decoder in a manner corresponding to the coder, which reduces signaling.

Selon un aspect de l'invention, le nombre de transformées de la liste obtenue est fonction de l'indicateur de variabilité du bloc.According to one aspect of the invention, the number of transforms in the list obtained is a function of the block variability indicator.

Avec un indicateur de variabilité faible, le résidu du bloc contient peu d'énergie et sera facile à compresser. Un petit nombre de transformées sera suffisant. Au contraire, avec un indicateur de variabilité élevée, on peut s'attendre à un résidu de bloc comprenant beaucoup d'énergie et difficile à compresser. En conséquence, on choisira de tester un plus grand nombre de transformées. Ainsi l'invention proposer d'adapter la taille du sous-ensemble de transformées disponibles pour le bloc courant à sa variabilité ce qui permet d'optimiser la signalisation de la transformée en fonction du bloc courant. Dans un contexte de compétition de transformées, les coûts de calcul sont aussi réduits.With a low variability indicator, the block residue contains little energy and will be easy to compress. A small number of transforms will be sufficient. On the contrary, with a high variability indicator, one can expect a block residue comprising a lot of energy and difficult to compress. Consequently, we will choose to test a larger number of transforms. The invention thus proposes to adapt the size of the subset of transforms available for the current block to its variability, which makes it possible to optimize the signaling of the transform as a function of the current block. In a context of transform competition, the calculation costs are also reduced.

Selon un autre aspect de l'invention, l'indicateur de variabilité du bloc est fonction d'une information représentative d'une distance temporelle entre le bloc courant et la au moins une image de référence.According to another aspect of the invention, the block variability indicator is a function of information representative of a time distance between the current block and the at least one reference image.

En effet, la variabilité des résidus générés par la prédiction augmente avec l'éloignement temporel. Le sous-ensemble associé à une valeur ou une plage de valeurs de distance temporelle entre image courante et image de référence peut être défini lors d'une phase préalable d'apprentissage au cours de laquelle différents regroupements de transformées sont testés.Indeed, the variability of the residuals generated by the prediction increases with the temporal distance. The subset associated with a value or a range of values of temporal distance between current image and reference image can be defined during a prior learning phase during which different groupings of transforms are tested.

Par exemple, on détermine une liste comprenant d'autant moins de transformées que la distance temporelle entre l'image courante et l'image de référence est plus faible. En effet, la variabilité des résidus entre les deux images est supposée être suffisamment faible pour qu'un petit nombre de transformées bien ciblé permette de bien compresser l'information qu'ils contiennent.For example, a list is determined comprising all the less transforms the shorter the time distance between the current image and the reference image. Indeed, the variability of the residues between the two images is supposed to be low enough for a small number of well-targeted transforms to allow the information they contain to be well compressed.

Selon un autre aspect de l'invention, les images d'un groupe d'images de la séquence étant réparties entre plusieurs couches temporelles, l'information représentative d'une distance temporelle est évaluée à partir d'un identifiant de couche temporelle de l'image du bloc courant dans le groupe.According to another aspect of the invention, the images of a group of images of the sequence being distributed between several temporal layers, the information representative of a temporal distance is evaluated on the basis of a temporal layer identifier of the image of the current block in the group.

On connaît le modèle hiérarchique de couches temporelles décrit par Wien, selon lequel on regroupe dans une même couche temporelle les images qui sont au même niveau dans la hiérarchie des images servant de références. Par exemple, une première couche comprend les images I ou Intra, qui sont éloignées les unes des autres, mais ne sont pas prédites, une deuxième couche comprend les images prédites à partir des images I de la couche précédente et qui s'intercalent entre les images I, une troisième couche comprenant des images qui s'intercalent temporellement entre des images de la deuxième et des images de la première couche et qui sont prédites par rapport à des images des couches précédentes, etc.We know the hierarchical model of temporal layers described by Wien, according to which we group in the same temporal layer the images which are at the same level in the hierarchy of images serving as references. For example, a first layer comprises the I or Intra images, which are distant from each other, but are not predicted, a second layer comprises the images predicted from the I images of the previous layer and which are inserted between the images I, a third layer comprising images which overlap in time between images of the second and images of the first layer and which are predicted with respect to images of the previous layers, etc.

On comprend que plus on monte dans les couches plus la distance temporelle entre l'image courante et sa référence diminue.It is understood that the more one goes up in the layers the more the temporal distance between the current image and its reference decreases.

L'information de numéro de couche est une information qui est connue du codeur, comme du décodeur et qui est facilement accessible. Par exemple, dans H.265/HEVC, l'information de numéro de couche temporelle est transmise dans l'en-tête de chaque paquet NAL unit (pour Network Abstraction Layer), et est donc directement accessible lors du décodage (voir section 7.4.2.2 de la norme ITU-T H.265, « NAL unit header semantics »). L'évaluation de distance temporelle sur la base d'une telle information est donc simple et peu coûteuse.Layer number information is information that is known to the encoder, as well as the decoder, and that is readily available. For example, in H.265 / HEVC, the time layer number information is transmitted in the header of each NAL unit packet (for Network Abstraction Layer), and is therefore directly accessible during decoding (see section 7.4 .2.2 of standard ITU-T H.265, "NAL unit header semantics"). The evaluation of temporal distance on the basis of such information is therefore simple and inexpensive.

Selon encore un autre aspect de l'invention, l'information représentative d'une distance temporelle est évaluée par différence entre une information représentative d'un instant temporel associé à l'image du bloc courant et une information représentative d'un instant temporel associé à la au moins une image du bloc de référence.According to yet another aspect of the invention, the information representative of a time distance is evaluated by difference between information representative of a time instant associated with the image of the current block and information representative of an associated time instant at least one image of the reference block.

Un avantage de ces informations est qu'elles sont connues du codeur et du décodeur lors du traitement d'un bloc courant.An advantage of this information is that it is known to the coder and the decoder during the processing of a current block.

Par exemple, l'information représentative d'un instant temporel est un numéro d'ordre de l'image courante dans la séquence. Un avantage de cette information est d'être facile à obtenir. La différence entre deux numéros d'images ou delta POC est même directement accessible, sans nécessiter d'opération de calcul. Par exemple dans H.265/HEVC le delta POC est un paramètre essentiel lors de la construction du RPS (pour Référencé Picture Set, en anglais) comme décrit dans la section 8.3.2 de la norme ITU-T H.265 intitulée HEVC, « Decoding process for référencé picture set »), et il s'agit donc un paramètre directement accessible lors de l'encodage et du décodage.For example, the information representative of a time instant is a sequence number of the current image in the sequence. One advantage of this information is that it is easy to obtain. The difference between two image numbers or POC delta is even directly accessible, without requiring a calculation operation. For example in H.265 / HEVC the POC delta is an essential parameter during the construction of the RPS (for Referenced Picture Set) as described in section 8.3.2 of the ITU-T H.265 standard entitled HEVC, “Decoding process for referenced picture set”), and this is therefore a parameter directly accessible during encoding and decoding.

Si le bloc courant appartient à un groupe de blocs d'une image, de type slice, sa ou ses images de référence sont définies dans deux listes au niveau du slice segment header (voir 7.3.6.2 de la norme ITU-T H.265 intitulée HEVC, Référencé picture list modification syntax). On peut imaginer une image découpée en plusieurs slices ayant chacune des listes distinctes. Il se peut donc que deux slices d'une même image n'utilisent pas les mêmes images de références pour leurs blocs, et donc que l'information de distance temporelle ne prenne pas la même valeur.If the current block belongs to a group of blocks of an image, of slice type, its reference image (s) are defined in two lists at the level of the slice segment header (see 7.3.6.2 of standard ITU-T H.265 entitled HEVC, Referenced picture list modification syntax). One can imagine an image cut into several slices each having separate lists. It is therefore possible that two slices of the same image do not use the same reference images for their blocks, and therefore that the time distance information does not take the same value.

Selon un autre aspect de l'invention, l'étape de prédiction comprend l'obtention d'un vecteur mouvement entre le bloc courant et un bloc de l'image de référence et l'indicateur de variabilité du bloc est obtenu à partir d'au moins une caractéristique du vecteur mouvement obtenu.According to another aspect of the invention, the prediction step comprises obtaining a motion vector between the current block and a block of the reference image and the variability indicator of the block is obtained from at least one characteristic of the motion vector obtained.

L'amplitude ou la précision de quantification du vecteur mouvement sont des informations à partir desquelles on peut évaluer la variabilité du contenu à coder par rapport à sa référence. L'amplitude du vecteur mouvement indique si le contenu à coder dans le bloc courant s'est beaucoup déplacé par rapport à l'image de référence. De même, le niveau de précision de quantification est choisi par le codeur lors de l'interpolation de l'image de référence (par exemple 1/4, 1/8 ou encore 1/16 pixels).The amplitude or the precision of quantification of the motion vector are information from which one can evaluate the variability of the content to be coded compared to its reference. The amplitude of the motion vector indicates whether the content to be coded in the current block has moved a lot compared to the reference image. Likewise, the level of quantization precision is chosen by the coder during the interpolation of the reference image (for example 1/4, 1/8 or even 1/16 pixels).

Selon un autre aspect de l'invention, la liste comprenant plusieurs transformées, le procédé de décodage comprend en outre une étape de décodage d'une information d'identification de la transformée dans la liste.According to another aspect of the invention, the list comprising several transforms, the decoding method further comprises a step of decoding information identifying the transform in the list.

Par exemple, lorsque la liste comprend une séquence ordonnée de transformées, l'information d'identification est un index de position de la transformée dans la séquence.For example, when the list includes an ordered sequence of transforms, the identification information is an index of position of the transform in the sequence.

Les différents modes ou caractéristiques de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux caractéristiques du procédé de décodage et/ou du procédé de codage définis ci-dessus.The various embodiments or features mentioned below can be added independently or in combination with each other, to the features of the decoding method and / or of the encoding method defined above.

L'invention concerne également un dispositif de codage adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif de codage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de codage sont les mêmes que ceux du procédé de décodage, et ne sont pas détaillés plus amplement.The invention also relates to a coding device suitable for implementing the coding method according to any one of the particular embodiments defined above. This coding device could of course include the various characteristics relating to the coding method according to the invention. Thus, the characteristics and advantages of this coding device are the same as those of the decoding method, and are not described in more detail.

L'invention concerne également un dispositif de décodage adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif de décodage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de décodage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de décodage sont les mêmes que ceux du procédé de décodage, et ne sont pas détaillés plus amplement.The invention also relates to a decoding device suitable for implementing the decoding method according to any one of the particular embodiments defined above. This decoding device could of course include the various characteristics relating to the decoding method according to the invention. Thus, the characteristics and advantages of this decoding device are the same as those of the decoding method, and are not described in more detail.

Corrélativement, l'invention concerne un signal portant un train binaire comprenant des données codées représentatives d'une image d'une séquence d'images, ladite image étant divisée en blocs de pixels traités dans un ordre défini, les valeurs d'un bloc courant étant prédites à partir des valeurs d'au moins un bloc précédemment traité d'au moins une image de référence, les valeurs d'un bloc résidu étant calculées par soustraction des valeurs prédites aux valeurs originales du bloc courant, un bloc résidu transformé étant obtenu par application d'une transformée à des pixels du bloc résidu;Correlatively, the invention relates to a signal carrying a bit stream comprising coded data representative of an image of a sequence of images, said image being divided into blocks of pixels processed in a defined order, the values of a current block being predicted from the values of at least one block previously processed from at least one reference image, the values of a residual block being calculated by subtracting the predicted values from the original values of the current block, a transformed residual block being obtained by applying a transform to pixels of the residual block;

Selon l'invention, ledit signal comprend une information codée représentative d'un index position de la transformée à appliquer au bloc résidu courant dans une liste comprenant une séquence ordonnée de transformées, la liste étant destinée à être obtenue au moins en fonction d'un indicateur de variabilité du bloc courant par rapport à ladite au moins une image de référence.According to the invention, said signal comprises coded information representative of a position index of the transform to be applied to the current residual block in a list comprising an ordered sequence of transforms, the list being intended to be obtained at least as a function of a variability indicator of the current block with respect to said at least one reference image.

Corrélativement, l'invention concerne aussi un équipement terminal comprenant un module d'émission et un module de réception de données vers et en provenance d'un réseau de télécommunications, un dispositif de codage et un dispositif de décodage selon l'invention.Correlatively, the invention also relates to terminal equipment comprising a transmission module and a data reception module to and from a telecommunications network, a coding device and a decoding device according to the 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.The invention also relates to a computer program comprising instructions for implementing the steps of a method for coding 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 for 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.These programs can use any programming language. They can be downloaded from a communication network and / or saved on a computer-readable medium.

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.The invention finally relates to recording media, readable by a processor, integrated or not in the device for coding a digital image and in the device for decoding a digital image according to the invention, optionally removable, storing respectively a computer program implementing a coding method and a computer program implementing a decoding method, as described above.

6. Liste des figures6. 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 :Other advantages and characteristics of the invention will appear more clearly on reading the following description of a particular embodiment of the invention, given by way of simple illustrative and nonlimiting example, and the appended drawings, among which :

la figure 1 (déjà décrite) présente de façon schématique une séquence d'images numériques découpées en blocs de pixels ;Figure 1 (already described) schematically shows a sequence of digital images cut into blocks of pixels;

les figures 2A et 2B (déjà décrites) présentent les transformées DCT et DST mises en œuvre par l'encodeur de la norme HEVC ;FIGS. 2A and 2B (already described) show the DCT and DST transforms implemented by the encoder of the HEVC standard;

la figure 3 présente de façon schématique les étapes d'un procédé de codage d'une image numérique selon l'invention ;FIG. 3 schematically presents the steps of a method for coding a digital image according to the invention;

la figure 4 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique selon l'invention ;FIG. 4 schematically presents the steps of a method for decoding a digital image according to the invention;

la figure 5 présente de façon schématique un modèle de structure temporelle hiérarchique d'un groupe d'images mis en œuvre par un mode de réalisation de l'invention ;FIG. 5 schematically presents a model of hierarchical temporal structure of a group of images implemented by an embodiment of the invention;

la figure 6 présente de façon schématique une compensation de mouvement mise en œuvre lors de la prédiction en mode inter d'un bloc courant par rapport à une ou plusieurs images de référence passées ou futures selon l'art antérieur ;FIG. 6 schematically shows a motion compensation implemented during the prediction in inter mode of a current block with respect to one or more past or future reference images according to the prior art;

la figure 7 présente un premier exemple de table de transformées associant un numéro de couche temporelle à une liste selon un mode de réalisation de l'invention ;FIG. 7 presents a first example of a transform table associating a time layer number with a list according to an embodiment of the invention;

les figure 8A et 8B présente un deuxième exemple basé sur deux tables associant pour la première table un numéro de couche temporelle à un nombre de transformées, à identifier dans une liste de transformées indiquées dans la deuxième table, selon un deuxième mode de réalisation de l'invention ;FIGS. 8A and 8B present a second example based on two tables associating for the first table a time layer number with a number of transforms, to be identified in a list of transforms indicated in the second table, according to a second embodiment of the invention;

la figure 9 présente des exemples de configurations de listes de transformées en fonction d'un numéro de couche temporelle ;FIG. 9 presents examples of configurations of lists of transforms as a function of a time layer number;

la figure 10 présente les performances réalisées par un codeur mettant en œuvre le procédé de codage selon l'invention, lorsque l'indicateur de variabilité utilisé est un numéro de couche temporelle ;FIG. 10 shows the performances achieved by an encoder implementing the encoding method according to the invention, when the variability indicator used is a time layer number;

la figure 11 présente de façon schématique la structure matérielle d'un dispositif de codage d'une image numérique selon l'invention ; et la figure 12 présente de façon schématique la structure matérielle d'un dispositif de décodage d'une image numérique selon l'invention.FIG. 11 schematically presents the hardware structure of a device for coding a digital image according to the invention; and FIG. 12 schematically presents the hardware structure of a device for decoding a digital image according to the invention.

7. Description d'un mode de réalisation particulier de l'invention7. Description of a particular embodiment of the invention

Le principe général de l'invention repose sur une association préalable de sous-ensembles de transformées à des valeurs ou à des plages de valeurs d'un indicateur de variabilité du bloc courant par rapport à au moins une image de référence. Cet indicateur est estimé de façon similaire au codeur et au décodeur. Le codeur obtient une valeur d'indicateur pour le bloc courant, choisit la transformée à appliquer au bloc courant dans le sous ensemble de transformées associé à cette valeur de l'indicateur. Si besoin, il signale ensuite au décodeur quelle transformée il a utilisé dans ce sous-ensemble. De façon correspondante, le décodeur obtient une valeur d'indicateur de variabilité pour le bloc courant et accède au sous-ensemble de transformée qui lui est associé. A l'aide de la signalisation éventuelle, il identifie la transformée appliquée au bloc courant et applique la transformée inverse.The general principle of the invention is based on a prior association of sub-sets of transforms with values or ranges of values of a variability indicator of the current block with respect to at least one reference image. This indicator is estimated similarly to the coder and the decoder. The encoder obtains an indicator value for the current block, chooses the transform to be applied to the current block in the subset of transforms associated with this value of the indicator. If necessary, it then signals to the decoder which transform it has used in this subset. Correspondingly, the decoder obtains a variability indicator value for the current block and accesses the transform subset associated with it. Using the possible signaling, it identifies the transform applied to the current block and applies the reverse transform.

Dans la suite de la description, on considère une vidéo originale constituée d'une suite de K images Ii, I2, ...Ik, avec K entier non nul, telle que celle déjà présentée en relation avec la Figure 1. 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 I2, ..., puis IK, cet ordre pouvant différer suivant le mode de réalisation.In the following description, we consider an original video made up of a sequence of K images Ii, I2, ... Ik, with K non-zero integer, such as that already presented in relation to Figure 1. The images are encoded by an encoder, the encoded data is inserted a binary train 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 to the encoder and the decoder, for example in the time order Ii, then I2, ..., then IK, this order may differ according to the embodiment.

Dans la suite de la description, on se place dans un contexte de compétition de transformées, selon lequel le codeur teste les transformées d'un sous-ensemble de transformées et choisit pour le bloc courant celle qui réalise les meilleures performances de compression selon un critère débit-distorsion.In the following description, we place ourselves in a context of transform competition, according to which the coder tests the transforms of a subset of transforms and chooses for the current block the one which achieves the best compression performance according to a criterion. flow-distortion.

7.1 Procédé de codage d'une image d'une séquence7.1 Method for coding an image of a sequence

En relation avec la Figure 3, on considère maintenant les étapes d'un procédé de codage selon un mode de réalisation de l'invention. Dans la suite de la description, on se place en particulier dans un contexte de compétition de transformées.In relation to Figure 3, we now consider the steps of a coding method according to an embodiment of the invention. In the following description, we place ourselves in particular in a context of transform competition.

Une image Ik est découpée en blocs CTU (pour « Coding Tree Unit », en anglais) de taille, par exemple égale à 64x64 pixels.An Ik image is cut into CTU blocks (for “Coding Tree Unit”, in English) of size, for example equal to 64 × 64 pixels.

Au cours d'une étape E0, on sélectionne un bloc à traiter, dit bloc courant c. Par exemple, il s'agit d'un bloc CU (pour « Coding Unit », en anglais), carré ou rectangulaire, de dimensions MxN, avec M et N entiers non nuis, obtenu par partitionnement d'un bloc CTU.During a step E0, a block to be processed is selected, called the current block c. For example, it is a CU block (for “Coding Unit”, in English), square or rectangular, of dimensions MxN, with M and N integers not harmful, obtained by partitioning of a CTU block.

Au cours d'une étape El, il est procédé à une étape de prédiction du bloc c. Cette opération, conforme à l'art antérieur, est réalisée à partir de pixels issus de l'image en cours de codage (codage intra) ou reposant sur une image déjà traitée par l'opération d'encodage (codage inter). On obtient un bloc prédit Pr.During a step E1, a step of predicting the block c is carried out. This operation, in accordance with the prior art, is carried out from pixels originating from the image being coded (intra coding) or based on an image already processed by the encoding operation (inter coding). We get a predicted block Pr.

Dans la suite de la description, on suppose que le bloc courant est prédit selon un mode de prédiction inter, c'est-à-dire par rapport à un ou plusieurs images précédemment traitées, dites images de référence.In the following description, it is assumed that the current block is predicted according to an inter prediction mode, that is to say with respect to one or more previously processed images, called reference images.

Au cours d'une étape E2, le bloc de pixels courant est soustrait, pixel à pixel, au bloc prédit au cours de l'opération précédente. On obtient un bloc de pixels résiduels R.During a step E2, the current block of pixels is subtracted, pixel by pixel, from the block predicted during the previous operation. We obtain a block of residual pixels R.

Selon l'invention, on obtient en E3 un indicateur de variabilité IV d'une prédiction du bloc courant par rapport au(x) images de référence. Plusieurs modes de réalisation de cette étape seront détaillés ci-après.According to the invention, an indicator of variability IV of a prediction of the current block with respect to the reference image (s) is obtained in E3. Several embodiments of this step will be detailed below.

Au cours d'une étape E4, on identifie les transformées possibles pour le mode de prédiction considéré et la taille du bloc courant. On désigne par transformées possibles une pluralité T de transformées disponibles en mémoire de l'encodeur de façon préétablie, avec T entier non nul, par exemple T est égal à 32. Par exemple, cette pluralité est stockée sous forme d'une liste L ordonnée ou non, de transformées. On notera que cette liste peut être prédéterminée ou adaptative.During a step E4, the possible transforms are identified for the prediction mode considered and the size of the current block. The term “possible transforms” denotes a plurality T of transforms available in the memory of the encoder in a preset manner, with T non-zero integer, for example T is equal to 32. For example, this plurality is stored in the form of an ordered list L or not, transforms. Note that this list can be predetermined or adaptive.

Selon l'invention, une pluralité de listes Ll à LJ, avec J entier non nul, a été formée à partir des transformées disponibles et on associe à la valeur d'indicateur de variabilité IV obtenue une de ces listes. Par exemple, une table stockée en mémoire comprend des enregistrements EGj, avec j entier inférieur à T qui font chacun correspondre à une valeur ou une plage de valeurs particulières de cet indicateur de variabilité, une liste Lj issue de la liste L. Avantageusement, un enregistrement EGj de la table associe à chaque valeur ou plage de valeurs de l'indicateur, un pointeur vers cette liste Lj. Des exemples de tables seront présentés ci-après en relation avec les figures 7 et 8.According to the invention, a plurality of lists L1 to LJ, with nonzero integer J, has been formed from the available transforms and one of these lists is associated with the value of variability indicator IV obtained. For example, a table stored in memory includes records EGj, with j an integer less than T which each correspond to a particular value or range of values of this variability indicator, a list Lj coming from the list L. Advantageously, a EGj record of the table associates with each value or range of values of the indicator, a pointer to this list Lj. Examples of tables will be presented below in relation to Figures 7 and 8.

Dans certains cas, la configuration des listes associées aux différentes valeurs d'indicateurs de variabilité peut varier au cours du temps, pour s'adapter au changement de contenu de la séquence. Par exemple, la table comprend un premier enregistrement comprenant une première liste associée à une valeur ou une plage de valeurs prédéterminées de l'indicateur de variabilité. On suppose que le codeur décide, suite à un changement de scène, de remplacer le premier enregistrement par un deuxième enregistrement comprenant une deuxième liste, associée à la même plage de valeurs. Cette mise à jour doit être signalée dans le train binaire afin que le décodeur mette à jour sa propre table.In some cases, the configuration of the lists associated with the different values of variability indicators may vary over time, to adapt to the change in content of the sequence. For example, the table includes a first record comprising a first list associated with a predetermined value or range of values of the variability indicator. It is assumed that the coder decides, following a change of scene, to replace the first record by a second record comprising a second list, associated with the same range of values. This update must be signaled in the bit stream so that the decoder updates its own table.

Au cours d'une étape E5, on identifie une transformée Tri particulière dans la liste Lj obtenue.During a step E5, a particular Tri transform is identified in the list Lj obtained.

Au cours d'une étape E6, pour la transformée Τη identifiée, avec i entier non nul compris entre 0 etT-1, il est procédé à la transformation du signal résiduel R. Un signal résiduel transformé RT, est obtenu.During a step E6, for the identified transform Τη, with i non-zero integer between 0 and T-1, the residual signal R is transformed. A residual residual signal RT, is obtained.

En E7, de façon connue dans l'état de l'art, les coefficients du bloc résiduel transformé sont scannés dans un ordre prédéterminé de façon à constituer un vecteur monodimensionnel RTi[m], où l'indice m varie de 0 à Nb-1, avec Nb nombre de pixels dans le bloc courant c. L'indice m est appelé fréquence du coefficient R[m], Classiquement, on scanne ces coefficients par ordre globalement croissant ou décroissant de valeurs de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG. Ce mode de parcours (pour « scanning » en anglais) peut aussi dépendre de la transformée appliquée. Comme le mode de parcours influence nécessairement l'ordre final des coefficients transformés dans le vecteur RTi[m], on considère dans la suite qu'une transformée identifiée Τη dans la liste Lj est associée à un mode de parcours particulier. Autrement dit, la même transformée associée à un autre mode de parcours se verra affecter un autre identifiant de transformée dans la liste Lj et sera de ce fait considérée comme une transformée distincte.In E7, as is known in the state of the art, the coefficients of the transformed residual block are scanned in a predetermined order so as to constitute a one-dimensional vector RTi [m], where the index m varies from 0 to Nb- 1, with Nb number of pixels in the current block c. The index m is called the frequency of the coefficient R [m]. Conventionally, these coefficients are scanned in globally increasing or decreasing order of frequency values, for example according to a zigzag path, which is known from the image coding standard. fixed JPEG. This route mode (for “scanning” in English) can also depend on the transform applied. As the path mode necessarily influences the final order of the coefficients transformed in the vector RTi [m], we consider below that a transform identified Τη in the list Lj is associated with a particular path mode. In other words, the same transform associated with another path mode will be assigned another transform identifier in the list Lj and will therefore be considered as a distinct transform.

Les composantes du vecteur RTi sont ensuite quantifiées suivant une méthode de quantification donnée, scalaire ou vectorielle connue de l'homme de l'art, avec un paramètre de quantification QP réglant la précision de l'approximation réalisée dans cette étape. On obtient un vecteur quantifié RTQi.The components of the vector RTi are then quantified according to a given quantification method, scalar or vector known to those skilled in the art, with a quantization parameter QP regulating the precision of the approximation carried out in this step. An RTQi quantified vector is obtained.

En E8, les informations relatives au bloc courant, comprenant notamment les données quantifiées et des éléments de description du bloc tels que le mode de prédiction, sont encodé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.In E8, the information relating to the current block, comprising in particular the quantified data and elements of description of the block such as the prediction mode, are encoded by a known entropy coding technique, such as for example Huffman coding, arithmetic coding or CABAC coding as used in the HEVC standard.

Au cours de cette étape, on examine s'il est nécessaire de signaler une information d'identification de la transformée Tri appliquée au bloc courant. On distingue deux cas :During this step, it is examined whether it is necessary to report identification information of the Tri transform applied to the current block. There are two cases:

Lorsque la liste Lj ne comprend qu'un seul identifiant de transformée, il n'est pas nécessaire de signaler quoi que ce soit. En effet, comme nous le verrons ci-après, le décodeur selon l'invention est agencé pour obtenir la liste Lj de façon correspondante à celle de l'encodeur. Un avantage de ce mode de réalisation est qu'il est simple à mettre en œuvre et qu'il ne nécessite pas de signalisation, dans la mesure où la configuration de la liste est figée.When the list Lj includes only one transform identifier, it is not necessary to report anything. Indeed, as we will see below, the decoder according to the invention is arranged to obtain the list Lj correspondingly to that of the encoder. An advantage of this embodiment is that it is simple to implement and that it does not require signaling, insofar as the configuration of the list is fixed.

Lorsque la liste Lj comprend plus d'un identifiant de transformée, le codeur signale au décodeur un index de position POS de la transformée Tri appliquée au bloc courant dans la liste Lj. Pour ce faire, la liste est avantageusement ordonnée de telle sorte que le codeur et le décodeur partagent la connaissance des positions des transformées dans la liste. Par exemple un identifiant de la transformée Tri dans une liste de quatre éléments est codé sur 4 bits (transformées TrO, tri, Tr2 et Tr3 respectivement pour un code 00, 01, 10, 11) alors qu'une liste de 8 éléments coûterait 3 bits (000, 001, 010, 011, 100, 101, 110 et 111 respectivement pour les transformées TrO, Tri, Tr2, Tr3, Tr4, Tr5, Tr6, Tr7 et Tr8), dans le cas d'un code à longueur fixe.When the list Lj comprises more than one transform identifier, the coder signals to the decoder a position index POS of the transform Tri applied to the current block in the list Lj. To do this, the list is advantageously ordered so that the coder and the decoder share the knowledge of the positions of the transforms in the list. For example, an identifier of the Tri transform in a list of four elements is coded on 4 bits (transforms TrO, tri, Tr2 and Tr3 respectively for a code 00, 01, 10, 11) while a list of 8 elements would cost 3 bits (000, 001, 010, 011, 100, 101, 110 and 111 respectively for the transforms TrO, Tri, Tr2, Tr3, Tr4, Tr5, Tr6, Tr7 and Tr8), in the case of a fixed length code .

Un avantage de l'invention est que peu de bits sont nécessaires pour signaler la transformées Tri dans le train binaire, contrairement à l'état de l'art qui transmet explicitement son identifiant complet.An advantage of the invention is that few bits are necessary to signal the Tri transforms in the binary train, contrary to the state of the art which explicitly transmits its complete identifier.

En E9, les performances de codage du bloc courant, pour cette transformée Tri sont évaluées, de façon connue de l'homme du métier, à partir d'une fonction de coût. La transformée choisie est celle qui maximise les performances de compression, selon un critère débit distorsion.In E9, the coding performance of the current block, for this Tri transform, is evaluated, in a manner known to those skilled in the art, from a cost function. The transform chosen is that which maximizes the compression performance, according to a distortion rate criterion.

Par exemple à travers une mesure de coût Lagrangien J = D + À x R, où D est la distorsion mesurée sur le bloc reconstruit, R le débit généré lors du codage et À le multiplicateur de Lagrange.For example, through a Lagrangian cost measure J = D + À x R, where D is the distortion measured on the reconstructed block, R the bit rate generated during coding and À the Lagrange multiplier.

En E10, on vérifie si toutes les transformées de la liste Lj ont été appliquées.In E10, it is checked whether all the transforms of the list Lj have been applied.

Si ce n'est pas le cas, on retourne à l'étape E5 au cours de laquelle une autre transformée de la liste Lj est identifiée. Les étapes E6 à E10 sont répétées pour la nouvelle transformée.If this is not the case, we return to step E5 during which another transform of the list Lj is identified. Steps E6 to E10 are repeated for the new transform.

Si c'est le cas, on décide au cours de l'étape Eli de la meilleure transformée, à partir des valeurs de fonction de coût obtenues par chacune des transformées de la liste Lj et selon un critère d'optimisation débit-distorsion.If this is the case, the best transform is decided during step Eli, on the basis of the cost function values obtained by each of the transforms of the list Lj and according to a flow-distortion optimization criterion.

On notera que dans le cas d'un bloc CTU, la compétition de transformées est imbriquée avec la sélection du meilleur découpage en sous-blocs CU, c'est-à-dire qu'au cours de l'étape Eli on choisit la meilleure transformée pour chacun des sous-blocs CU du bloc courant CTU.It will be noted that in the case of a CTU block, the competition of transforms is nested with the selection of the best division into sub-blocks CU, that is to say that during the step Eli the best is chosen. transformed for each of the sub-blocks CU of the current block CTU.

Les données codées correspondant à la transformée choisie sont insérées dans le train binaire ou fichier compressé en E12.The coded data corresponding to the chosen transform are inserted into the bit stream or file compressed in E12.

En E13, on teste s'il reste des blocs à traiter dans l'image courante. Si oui, le procédé continue avec l'étape EO de sélection d'un bloc C à traiter. Sinon, le traitement est terminé pour cette image et on passe à l'image suivante selon l'ordre d'encodage.In E13, we test if there are still blocks to process in the current image. If so, the process continues with the step EO of selecting a block C to be processed. Otherwise, the processing is finished for this image and we go to the next image according to the encoding order.

Le fichier compressé ou train binaire produit par le procédé de codage qui vient d'être décrit est transmis à un décodeur par exemple via un réseau de télécommunications.The compressed file or bit stream produced by the coding method which has just been described is transmitted to a decoder for example via a telecommunications network.

7.2 Procédé de décodage d'image d'une séquence d'images7.2 Image decoding process of a sequence of images

On suppose que le train binaire TB a été reçu par un dispositif de décodage mettant en œuvre un procédé de décodage selon l'invention. Ce procédé de décodage va maintenant être décrit en relation avec la Figure 4.It is assumed that the bit stream TB has been received by a decoding device implementing a decoding method according to the invention. This decoding process will now be described in relation to Figure 4.

En DO, on commence par sélectionner comme bloc courant C' le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte MxN pixels, avec M et N entiers non nuis.In DO, we start by selecting as current block C 'the first block to be processed. For example, this is the first block (in lexicographic order). This block contains MxN pixels, with M and N integers not harmful.

Comme décrit pour le procédé d'encodage, le bloc C' considéré peut être un bloc CTU ou un sous-bloc CU obtenu par découpage du bloc CTU ou encore un bloc ou sous-bloc résidu obtenu par soustraction d'une prédiction du bloc courant au bloc courant.As described for the encoding method, the block C ′ considered can be a CTU block or a CU sub-block obtained by cutting out the CTU block or a residue block or sub-block obtained by subtracting a prediction from the current block to the current block.

Au cours d'une étape Dl, les données codées relatives au bloc courant C' sont lues et décodées. Les données codées, comprennent des paramètres de codage, tels que par exemple le mode de prédiction utilisé et les valeurs relatives aux amplitudes et aux signes des coefficients résidus quantifiés du bloc courant.During a step D1, the coded data relating to the current block C 'are read and decoded. The coded data includes coding parameters, such as for example the prediction mode used and the values relating to the amplitudes and to the signs of the quantized residual coefficients of the current block.

Lorsque le mode de prédiction déterminé indique qu'une prédiction a été faite par l'encodeur, le bloc courant est prédit en D2, selon le mode de prédiction déterminé à partir d'un bloc déjà traité. Un bloc prédit Pr' est obtenu.When the prediction mode determined indicates that a prediction has been made by the encoder, the current block is predicted in D2, according to the prediction mode determined from a block already processed. A predicted block Pr 'is obtained.

Au cours d'une étape D3, on décode les données lues représentatives des valeurs quantifiées, résiduelles du bloc courant (valeurs et signes des coefficients), sous la forme d'un vecteur de valeurs RQ'. On comprend qu'il s'agit de l'opération inverse de celle de codage entropique précédemment décrite en relation avec le procédé d'encodage.During a step D3, the read data representative of the quantized, residual values of the current block (values and signs of the coefficients) is decoded, in the form of a vector of values RQ ′. It is understood that this is the opposite operation to that of entropy coding previously described in relation to the encoding method.

Au cours d'une étape D4, on déquantifie les coefficients du vecteurs RQ' à l'aide d'un pas de quantification prédéterminé ou lu dans le fichier compressé.During a step D4, the coefficients of the vectors RQ ′ are dequantized using a quantization step predetermined or read from the compressed file.

En D5, on reconstruit un bloc résidu transformé RT' à partir du vecteur déquantifié.In D5, a transformed block RT ′ is reconstructed from the dequantified vector.

En D6, selon l'invention, on obtient un indicateur de variabilité IV du bloc courant par rapport à sa ou ses références, de façon correspondante à celle du codeur. Plusieurs modes de réalisation vont être détaillés ci-après. On verra que, selon les mises en œuvre considérées, l'obtention peut être réalisée une fois pour tous les blocs d'une même image ou d'un même groupe d'image, ou bien doit être répétée pour chaque bloc courant.In D6, according to the invention, an indicator of variability IV of the current block is obtained with respect to its reference (s), corresponding to that of the coder. Several embodiments will be detailed below. It will be seen that, depending on the implementations considered, the obtaining can be carried out once for all the blocks of the same image or of the same group of images, or else must be repeated for each current block.

En D7, on récupère une liste de transformées Lj associée à la valeur de l'indicateur obtenue. Par exemple, lorsque les configurations des listes sont prédéterminées, elles sont connues du décodeur et associées respectivement à une valeur ou une plage de valeurs de l'indicateur. Si les configurations ne sont pas prédéterminées, elles sont signalées dans le train binaire préalablement au décodage de l'image de façon à être connues du décodeur.In D7, we recover a list of transforms Lj associated with the value of the indicator obtained. For example, when the configurations of the lists are predetermined, they are known to the decoder and associated respectively with a value or a range of values of the indicator. If the configurations are not predetermined, they are signaled in the bit stream prior to the decoding of the image so as to be known to the decoder.

En D8, on identifie la transformée Tri appliquée au bloc résidu par le codeur. Deux cas sont envisagés :In D8, we identify the Tri transform applied to the residual block by the encoder. Two cases are considered:

la liste Lj ne contient qu'une seule transformée. Le décodeur y accède directement sans besoin d'information supplémentaire ;the list Lj contains only one transform. The decoder accesses it directly without the need for additional information;

la liste Lj contient plus qu'une transformée. Le décodeur lit dans le train binaire ou le fichier compressé une information de signalisation de la transformée Tri dans la liste. Il s'agit par exemple d'un index de position POS de la transformée dans la liste. L'hypothèse sous3057131 jacente est que le codeur et le décodeur partagent une même connaissance d'un ordre des transformées dans la liste. .the Lj list contains more than one transform. The decoder reads signaling information from the Sort transform from the list in the binary train or the compressed file. This is for example a POS position index of the transform in the list. The underlying hypothesis is that the coder and the decoder share the same knowledge of an order of the transforms in the list. .

De façon correspondante au codage, on note que le décodeur peut être amené à identifier une transformée Tri par sous-bloc CU du bloc CTU courant.Correspondingly to the coding, it is noted that the decoder may have to identify a Sort transform by sub-block CU of the current CTU block.

En D9, la transformée inverse de Tri est appliqué au bloc résidu R'. Un bloc résidu de pixels r' est obtenu.In D9, the inverse transform of Tri is applied to the residue block R '. A residual block of pixels r 'is obtained.

En D10, le bloc c' est reconstruit à partir de sa prédiction Pr' et du bloc résidu r'. Il est stocké dans une mémoire Ml, de façon à pouvoir servir de prédiction pour un bloc suivant.In D10, the block c 'is reconstructed from its prediction Pr' and the residue block r '. It is stored in a memory M1, so that it can serve as a prediction for a next block.

Au cours d'une étape D12, on vient tester si le bloc courant est le dernier bloc à traiter le décodeur, compte tenu de l'ordre de parcours défini précédemment. Si oui, le procédé de décodage a terminé le traitement de l'image courante et passe à l'image suivante. Si non, l'étape suivante est l'étape de sélection du bloc suivant DO et les étapes de décodage Dl à D12 précédemment décrites sont répétées pour le bloc suivant sélectionné.During a step D12, we come to test if the current block is the last block to process the decoder, taking into account the order of traversal defined previously. If so, the decoding process has finished processing the current image and goes to the next image. If not, the next step is the step of selecting the next block DO and the decoding steps D1 to D12 previously described are repeated for the next block selected.

7.3 Obtention d'un indicateur de variabilité d'un bloc courant7.3 Obtaining a variability indicator for a current block

On décrit maintenant plusieurs modes de réalisation de l'étape E3 d'obtention d'un indicateur de variabilité d'un bloc courant C et de l'étape E4 d'obtention d'une liste en fonction de cet indicateur. De façon correspondante ces modes de réalisation s'appliquent aux étapes D6 et D7 du procédé de décodage selon l'invention.We will now describe several embodiments of step E3 of obtaining a variability indicator of a current block C and of step E4 of obtaining a list as a function of this indicator. Correspondingly, these embodiments apply to steps D6 and D7 of the decoding method according to the invention.

7.3.1 Obtention d'une information représentative d'une distance temporelle entre le bloc courant et au moins un bloc de référence7.3.1 Obtaining information representative of a time distance between the current block and at least one reference block

Selon un premier mode de réalisation de l'invention, l'indicateur de variabilité est obtenu à partir d'une information représentative d'une distance temporelle entre le bloc courant et sa ou ses images de référence.According to a first embodiment of the invention, the variability indicator is obtained from information representative of a time distance between the current block and its reference image or images.

En relation avec la Figure 4, on considère un modèle de représentation hiérarchique en couches temporelles, dit modèle de Wien, d'un groupe d'images ou GoP (pour « Group of Pictures », en anglais) de la séquence, typiquement mise en œuvre par les normes successives de compression vidéo, telles que par exemple H265 ou HEVC.In relation to Figure 4, we consider a hierarchical representation model in time layers, known as the Wien model, of a group of images or GoP (for “Group of Pictures”, in English) of the sequence, typically set works by successive video compression standards, such as for example H265 or HEVC.

Dans l'exemple représenté, le GoP comprend 9 images. Dans la séquence d'entrée, les images du GoP sont ordonnées de 10 à 18 avec des instants temporels associés tel que tOctl<...<t8, correspondant à un ordre de restitution des images de la vidéo. A l'encodage, ces images sont traitées selon un ordre d'encodage qui diffère de l'ordre de restitution. La structure temporelle d'encodage s'appuie sur différents types d'images, parmi lesquels on distingue :In the example shown, the GoP includes 9 images. In the input sequence, the GoP images are ordered from 10 to 18 with associated time instants such as tOctl <... <t8, corresponding to an order of restitution of the video images. When encoding, these images are processed according to an encoding order which differs from the restitution order. The temporal encoding structure is based on different types of images, among which there are:

les images Intra, qui sont codées indépendamment d'autres images précédemment traitées et servent de référence pour la prédiction inter d'autres images du GoP ; les images Inter de type P, qui sont codées par prédiction temporelle à partir d'une image de référence déjà traitée, qui peut correspondre à un instant de restitution passé ou futur ; une image P peut servir elle-même de référence temporelle à une autre image ; les images Inter de type B, qui sont codées par prédiction temporelle à partir de deux images de référence, une passée et une future. Une image B peut servir de référence temporelle à une autre image.Intra images, which are coded independently of other previously processed images and serve as a reference for the inter prediction of other GoP images; Inter type P images, which are coded by temporal prediction from a reference image already processed, which may correspond to a past or future restitution instant; an image P can itself serve as a temporal reference to another image; Inter type B images, which are coded by time prediction from two reference images, a past and a future. An image B can serve as a time reference to another image.

Dans l'exemple représenté, 10 et 18 sont des images Intra. Les images II à 17 sont des images B. Il n'y a pas d'image P.In the example shown, 10 and 18 are Intra images. Images II to 17 are images B. There is no image P.

Selon le modèle de Wien, on décompose le GoP en plusieurs couches temporelles :According to the Wien model, the GoP is broken down into several time layers:

une première couche tidO, comprenant les images 110 et 18 . L'image 10 est codée la première, elle a donc le rang de codage rcO = 0 et l'image 18 est codée en deuxième, son rang est rc8 = 1 ;a first layer tidO, comprising the images 110 and 18. Image 10 is coded first, so it has the coding rank rcO = 0 and image 18 is coded second, its rank is rc8 = 1;

une deuxième couche tidl, comprenant l'image 14 de type B. Ses images de référence sont 10 et 18. Son rang de codage est rc4 = 2 ;a second layer tidl, comprising the image 14 of type B. Its reference images are 10 and 18. Its coding rank is rc4 = 2;

une troisième couche tid2, comprenant les images 12 et 16 de type B. 12 a pour références 10 et 14. 16 a pour références 14 et 18. Leurs rangs de codage sont rc2 = 3 et rc6 = 4 ; une quatrième couche tid3 comprenant les images II, 13, 15 et 17. Il a pour références 10 et 12, son rang de codage vaut rcl = 5 ; 13 a pour références 12 et 14, son rang de codage vaut rc3 = 6 ; 15 a pour références 14 et 16, son rang de codage vaut rc5 = 7 ; 17 a pour références 16 et 18, son rang de codage vaut rc 7.a third layer tid2, comprising images 12 and 16 of type B. 12 has references 10 and 14. 16 has references 14 and 18. Their coding ranks are rc2 = 3 and rc6 = 4; a fourth layer tid3 comprising images II, 13, 15 and 17. It has references 10 and 12, its coding rank is rcl = 5; 13 has references 12 and 14, its coding rank is rc3 = 6; 15 has references 14 and 16, its coding rank is rc5 = 7; 17 has references 16 and 18, its coding rank is rc 7.

On constate qu'une image est d'autant plus éloignée de ses références qu'elle appartient à une couche temporelle plus basse.It can be seen that an image is all the more distant from its references that it belongs to a lower temporal layer.

Or les inventeurs ont constaté que plus l'image courante est éloignée temporellement de ses références, plus la variabilité du bloc augmente. En effet, la probabilité que le contenu de l'image courante ait changé par rapport à celui de ses références est alors d'autant plus grande.The inventors have found that the more temporally distant the current image from its references, the more the variability of the block increases. Indeed, the probability that the content of the current image has changed compared to that of its references is then all the greater.

Selon ce mode de réalisation de l'invention, l'indicateur de variabilité du bloc comprend le numéro de couche temporelle à laquelle l'image courante appartient. Un avantage est que cette valeur est disponible au niveau du codeur et très facile à obtenir côté décodeur car, selon la norme ITU-T H265/HEVC par exemple, cette information est spécifiée dans l'élément de syntaxe nuh_temporaljd_plusl situé dans l'en-tête nal_unit_header() tel que spécifié dans la sectionAccording to this embodiment of the invention, the block variability indicator comprises the time layer number to which the current image belongs. An advantage is that this value is available at the encoder level and very easy to obtain on the decoder side because, according to the ITU-T H265 / HEVC standard for example, this information is specified in the syntax element nuh_temporaljd_plusl located in the nal_unit_header () header as specified in section

7.3.1.2 de la spécification ITU-T H.265 intitulée « High Efficiency Video Coding », publiée en avril 2015.7.3.1.2 of the ITU-T H.265 specification entitled "High Efficiency Video Coding", published in April 2015.

Le numéro de couche temporelle est commun à tous les blocs d'une même image ou d'un sousensemble de cette image, par exemple de type « slice ». Néanmoins, cette valeur est lue dans une mémoire pour chaque bloc à traiter. Côté codeur, l'étape E3 d'obtention d'un indicateur de variabilité est donc répétée pour chaque bloc courant. Côté décodeur, même si la valeur de numéro de couche temporelle est lue dans le train binaire une fois pour toutes, elle est stockée en mémoire, de telle sorte que le décodeur puisse y accéder pour le traitement du bloc courant.The time layer number is common to all the blocks of the same image or of a subset of this image, for example of the “slice” type. However, this value is read from a memory for each block to be processed. On the encoder side, step E3 of obtaining a variability indicator is therefore repeated for each current block. On the decoder side, even if the time layer number value is read from the bitstream once and for all, it is stored in memory, so that the decoder can access it for processing the current block.

En E4, on obtient donc une liste Lj de transformées associées au numéro de couche temporelle tidj du bloc courant.In E4, we therefore obtain a list Lj of transforms associated with the time layer number tidj of the current block.

On a donc créé au préalable une liste de transformées spécifique pour chaque numéro de couche temporelle. Par exemple, une table de correspondance fait correspondre un niveau temporel donné à une telle liste. Cette correspondance est soit fixe (connue du codeur et du décodeur), ou bien adaptative. Le cas adaptatif implique la signalisation des informations nécessaires, par exemple un pointeur vers une nouvelle liste. Ces informations seront par exemple placées et transmises pour une séquence d'images donnée, par exemple dans la structure syntaxique SPS (pour Sequence Parameter Set, en anglais) décrite dans la section 7.3.2.2 de la spécification ITU-T H.265, ou encore dans la structure syntaxique PPS pour (picture parameter set, en anglais), décrite dans la section 7.3.2.3 de la même norme. Ces structures syntaxiques sont transmises au décodeur dans le train binaire préalablement aux informations de décodage de la séquence d'images ut (comprenant les données codées représentatives des résidus, vecteurs de mouvements, modes de prédictions, filtres, etc).We therefore previously created a specific transform list for each time layer number. For example, a lookup table maps a given time level to such a list. This correspondence is either fixed (known to the coder and the decoder), or adaptive. The adaptive case involves signaling the necessary information, for example a pointer to a new list. This information will for example be placed and transmitted for a given sequence of images, for example in the syntax structure SPS (for Sequence Parameter Set, in English) described in section 7.3.2.2 of the specification ITU-T H.265, or also in the PPS syntactic structure for (picture parameter set, in English), described in section 7.3.2.3 of the same standard. These syntactic structures are transmitted to the decoder in the binary train prior to the decoding information of the image sequence ut (comprising the coded data representative of the residues, motion vectors, prediction modes, filters, etc.).

L'étape d'obtention de la liste Lj en fonction du numéro de couche temporelle est donc elle aussi réalisée une fois pour tous les blocs de l'image ou de la slice considérée.The step of obtaining the list Lj as a function of the time layer number is therefore also carried out once for all the blocks of the image or of the slice considered.

On détaille maintenant un exemple de mise en œuvre de ce mode de réalisation de l'invention dans le cadre du JEM-3.0, qui est le logiciel de test utilisé actuellement dans le groupe de normalisation JVET (pour Joint Video Exploration Team, groupe conjoint formé par des experts de MPEG et VCEG, respectivement rattachés à l'ISO/IEC et l'ITU). Ce logiciel est décrit dans le document JVET-C1001 à l'adresse http://phenix.it-sudparis.eu/ivet/doc end user/documents/3 Geneva/wqll/JVETC1001-v3.zip.We now detail an example of implementation of this embodiment of the invention in the context of JEM-3.0, which is the test software currently used in the JVET standardization group (for Joint Video Exploration Team, joint group formed by experts from MPEG and VCEG, respectively attached to ISO / IEC and ITU). This software is described in the document JVET-C1001 at the address http://phenix.it-sudparis.eu/ivet/doc end user / documents / 3 Geneva / wqll / JVETC1001-v3.zip.

On considère à titre d'exemples 4 listes de transformées distinctes, de tailles croissantes :Consider as examples 4 distinct transform lists, of increasing sizes:

. LO : DCT-2 . Ll : DCT-2 + {TO, Tl} . L2 : DCT-2 + {TO, Tl, T2, T3} . L3 : DCT-2 + {TO, Tl, T2, T3, T4, T5, T6, T7}.. LO: DCT-2. Ll: DCT-2 + {TO, Tl}. L2: DCT-2 + {TO, Tl, T2, T3}. L3: DCT-2 + {TO, Tl, T2, T3, T4, T5, T6, T7}.

En relation avec la Figure 7, on présente un exemple d'association de liste avec un numéro de couche temporelle : tid3 est associé avec LO, tid2 avec Ll, tidl avec L2 et tidO avec L3.In relation to Figure 7, an example of a list association with a time layer number is presented: tid3 is associated with LO, tid2 with L1, tidl with L2 and tidO with L3.

En variante, ces listes peuvent être obtenues à partir des tables des Figures 8A et 8B. La Figure 8A associe à un identifiant de liste un nombre de transformées, par exemple 1 pour L3, 3 pour L2, 5 pour Ll et 7 pour LO et la Figure 8B comprend une table composée de plusieurs lignes, une ligne ou enregistrement de la table associant à des valeurs particulières de taille du bloc une séquence ordonnées de T-l transformées. Cette table est avantageusement stockée en mémoire du codeur ou du décodeur.Alternatively, these lists can be obtained from the tables of Figures 8A and 8B. Figure 8A associates with a list identifier a number of transforms, for example 1 for L3, 3 for L2, 5 for L1 and 7 for LO and Figure 8B comprises a table composed of several rows, a row or record of the table associating with particular values of block size an ordered sequence of transformed T1s. This table is advantageously stored in memory of the coder or of the decoder.

On voit que les listes Lj sont obtenues à partir de cette unique table.We see that the lists Lj are obtained from this single table.

Les T-l transformées sont rangées selon un ordre inversement proportionnel à leur fréquence d'appartenance aux listes préconfigurées. Autrement dit, les deux premières transformées de la séquence font partie de toutes les 4 listes, les deux suivantes des 3 dernières listes L2, Ll, LO, les deux encore suivantes des 2 dernières listes Ll, LO et les deux dernières de la plus grande liste LO. Une première transformée, en l'espèce la DCT2-2D est commune à toutes les listes et n'est pas indiquée dans le tableau.The transformed T-1s are arranged in an order inversely proportional to their frequency of belonging to the preconfigured lists. In other words, the first two transforms of the sequence are part of all 4 lists, the next two from the last 3 lists L2, Ll, LO, the next two from the last 2 lists L1, LO and the last two from the largest LO list. A first transform, in this case the DCT2-2D is common to all the lists and is not indicated in the table.

On comprend que pour récupérer les identifiants des transformées d'une liste Lj, il suffit dans ce mode de réalisation d'aller lire dans la table de la figure 8A le nombre de transformées qu'elle comprend et de lire le nombre d'identifiants correspondant dans la bonne ligne de la table de la figure 8BIt is understood that to recover the identifiers of the transforms of a list Lj, it suffices in this embodiment to go and read in the table of FIG. 8A the number of transforms which it comprises and to read the number of corresponding identifiers in the correct row of the table of figure 8B

On note que la table de la Figure 8B indique des couples de transformées plutôt que des transformées uniques ce qui correspond au fait qu'en codage d'image et vidéo, les transformées les plus utilisées sont généralement des transformées blocs linéaires et orthogonales, applicables aussi bien aux lignes qu'aux colonnes du bloc courant. Dans ce cas on spécifie un couple de transformées L-C lesquelles s'appliquent respectivement aux lignes et aux colonnes du résidu selon la relation exprimée dans l'équation ci-dessous :Note that the table in Figure 8B indicates pairs of transforms rather than single transforms, which corresponds to the fact that in image and video coding, the most used transforms are generally linear and orthogonal block transforms, also applicable. both in rows and columns of the current block. In this case one specifies a couple of transforms L-C which apply respectively to the rows and the columns of the residue according to the relation expressed in the equation below:

X - L - (c -xf , avec x bloc résidu de pixels et X bloc résidu transformé.X - L - (c -xf, with x residual pixel block and X transformed residual block.

En relation avec la table de la Figure 9, on considère maintenant des exemples de configurations de listes par couche temporelle. Ces différentes configurations sont mises à disposition d'un codeur type JEM-3 :In relation to the table in Figure 9, we now consider examples of list configurations by time layer. These different configurations are made available to a JEM-3 type encoder:

Ces différentes configurations ont été testées dans le codeur et le décodeur JEM-3.0 et ont conduit aux résultats de la Figure 10. On constate qu'une configuration de liste adaptée permet d'améliorer les performances de codage du codeur JEM-3.0. Ici, la configuration est mise à jour pour chaque nouvelle séquence.These different configurations have been tested in the JEM-3.0 coder and decoder and have led to the results of Figure 10. It can be seen that a suitable list configuration makes it possible to improve the coding performance of the JEM-3.0 coder. Here, the configuration is updated for each new sequence.

Par exemple, pour la séquence ClassD-S02-BQSquare_416x240_60, les configurations suivantes sont utilisées :For example, for the ClassD-S02-BQSquare_416x240_60 sequence, the following configurations are used:

• pour les pas de quantification QP22 et QP32, utilisation de la configuration 0 ;• for quantization steps QP22 and QP32, use of configuration 0;

• pour le pas de quantification QP27 -a utilisation de la configuration 2 ;• for the quantification step QP27 -a use of configuration 2;

• pour le pas de quantification QP37 -a utilisation de la configuration 5.• for the quantification step QP37 -a use of configuration 5.

Sur les séquences testées, ce mode de réalisation de l'invention permet d'améliorer en moyenne de débit de 0.14% avec des résultats plus élevés sur certaines séquences (jusqu'à -0.33%). Dans cet exemple, la configuration des listes et leur association aux numéros de couches temporelles par séquence est signalée dans l'en-tête SPS.On the sequences tested, this embodiment of the invention makes it possible to improve on average bit rate by 0.14% with higher results on certain sequences (up to -0.33%). In this example, the configuration of the lists and their association to the time layer numbers by sequence is signaled in the SPS header.

On note qu'une augmentation du niveau de granularité (par exemple en passant au niveau image ou PPS) avec une mise à jour plus régulière des listes rendrait le système encore plus performant, puisque plus adapté aux variations temporelles du contenu et donc plus à même de traiter la variété et le type de résidus rencontrés. Par exemple, si l'encodeur évalue que la -liste associée à une couche temporelle n'est plus adaptée au contenu qu'il encode, par exemple parce qu'il a détecté un changement de scène, alors il peut choisir signaler dans le train binaire, par exemple au niveau de l'en-tête PPS, les informations nécessaires à la mise à jour des listes, d'une façon que le décodeur est configuré pour décoder et interpréter.It is noted that an increase in the level of granularity (for example by passing to the image or PPS level) with a more regular updating of the lists would make the system even more efficient, since it is more adapted to temporal variations in content and therefore more to deal with the variety and type of residues encountered. For example, if the encoder evaluates that the list associated with a time layer is no longer suited to the content it encodes, for example because it has detected a change of scene, then it can choose to signal on the train binary, for example at the level of the PPS header, the information necessary for updating the lists, so that the decoder is configured to decode and interpret.

Avantageusement, le codeur insère systématiquement un bit dans le PPS pour indiquer au décodeur si une mise à jour des listes associées aux numéros de couches temporelles doit être faite ou non. Si ce bit est à 1, alors la signalisation suivante doit être décodée (exemple pour le cas ou J =2N listes sont disponibles) :Advantageously, the coder systematically inserts a bit into the PPS to indicate to the decoder whether an update of the lists associated with the time layer numbers should be made or not. If this bit is at 1, then the following signaling must be decoded (example for the case where J = 2 N lists are available):

• Couche temporelle tidO • Couche temporelle tidl • Couche temporelle tid2 • Couche temporelle tid3• tidO time layer • tidl time layer • tid2 time layer • tid3 time layer

N bits pour signaler le numéro de liste. N bits pour signaler le numéro de liste. N bits pour signaler le numéro de liste. N bits pour signaler le numéro de liste.N bits to signal the list number. N bits to signal the list number. N bits to signal the list number. N bits to signal the list number.

Selon un deuxième mode de réalisation de l'invention, l'information représentative d'une distance temporelle entre le bloc courant et le bloc de référence correspond à un nombre d'images séparant l'image courante de sa référence.According to a second embodiment of the invention, the information representative of a time distance between the current block and the reference block corresponds to a number of images separating the current image from its reference.

Cette information est directement connue du codeur et elle est signalée au décodeur sous le nom de paramètre Delta POC pour différence de rang entre images (Delta Picture Order Count, en anglais) dans un en-tête du fichier compressé ou du train binaire. Elle est notamment transmise pour une séquence d'images donnée, d'une part dans le sequence parameter set (SPS, voirThis information is directly known to the coder and it is signaled to the decoder under the parameter name Delta POC for difference in rank between images (Delta Picture Order Count, in English) in a header of the compressed file or of the bit stream. It is notably transmitted for a given sequence of images, on the one hand in the sequence parameter set (SPS, see

7.3.2.2 de la norme ITU-T H265), ou d'autre part dans le slice_segment_header (voir 7.3.6.1 de la norme ITU-T H265). Plus précisément cette information est dérivée directement lors du décodage du short-term référencé picture set (st_ref_pic_set, voir 7.3.7 de la norme ITU-T H265), qui est inclus dans le SPS et le slice_segment_header. Un avantage de cette information est qu'elle est directement disponible, sans nécessiter de calcul préalable.7.3.2.2 of the ITU-T H265 standard), or on the other hand in the slice_segment_header (see 7.3.6.1 of the ITU-T H265 standard). More precisely, this information is derived directly during the decoding of the short-term referenced picture set (st_ref_pic_set, see 7.3.7 of the ITU-T H265 standard), which is included in the SPS and the slice_segment_header. An advantage of this information is that it is directly available, without requiring prior calculation.

En variante, on peut calculer une distance temporelle par différence entre les instants temporels associés respectivement à l'image courante et à l'image de référence.As a variant, it is possible to calculate a time distance by difference between the time instants associated respectively with the current image and with the reference image.

Pour une image B, deux références sont utilisées. On peut par exemple faire une moyenne entre les deux distances temporelles obtenues ou encore conserver la distance la plus grande.For an image B, two references are used. We can for example make an average between the two temporal distances obtained or even keep the largest distance.

Cette mesure de distance temporelle est commune à tous les blocs d'une même image et le cas échéant d'une même slice, dont tous les blocs partagent les mêmes références. Elle peut donc être obtenue une fois pour tous les blocs de la même image/slice et stockée dans une mémoire à laquelle le codeur accède pour le traitement d'un bloc courant.This measurement of temporal distance is common to all the blocks of the same image and, where appropriate, of the same slice, of which all the blocks share the same references. It can therefore be obtained once for all the blocks of the same image / slice and stored in a memory to which the coder accesses for processing a current block.

Dans ce deuxième mode de réalisation de l'invention, des listes sont donc associées aux différentes valeurs de distances temporelles obtenues.In this second embodiment of the invention, lists are therefore associated with the different values of temporal distances obtained.

Cette correspondance est faite préalablement, à partir d'un apprentissage basé sur un ensemble représentatif de séquences. Elle peut ensuite être fixe et dans ce cas, connue du codeur et du décodeur ou bien être adaptative, ce qui nécessite une signalisation appropriée. L'encodeur peut choisir de transmettre dans le train binaire les informations nécessaires à la mise à jour de la table de correspondance.This correspondence is made beforehand, from a learning based on a representative set of sequences. It can then be fixed and in this case known to the coder and the decoder or else be adaptive, which requires appropriate signaling. The encoder can choose to transmit the information necessary for updating the correspondence table in the bit stream.

Le codeur obtient la liste associée à la mesure de distance temporelle de l'image /slice avec sa ou ses références et l'utilise pour tous les blocs qu'elle comprend.The coder obtains the list associated with the measurement of the temporal distance of the image / slice with its reference or references and uses it for all the blocks which it comprises.

Pour chaque bloc de l'image, le codeur applique successivement les transformées de la liste obtenue à son résidu, choisit la meilleure transformée et code un index correspondant à une position de la transformée choisie dans la liste. :For each block of the image, the coder successively applies the transforms of the list obtained to its residue, chooses the best transform and codes an index corresponding to a position of the transform chosen in the list. :

7.3.2 Obtention d'un indicateur de variabilité de prédiction en fonction d'une caractéristique d'un vecteur mouvement7.3.2 Obtaining a predictive variability indicator as a function of a characteristic of a motion vector

Dans le cas d'une prédiction Inter, l'étape El de prédiction comprend, de façon connue, une sousétape d'estimation d'un vecteur de mouvement du bloc courant vers une zone de l'image de référence, de la même taille que le bloc, selon un critère de similarité et une sous-étape de compensation du mouvement du bloc courant par rapport à l'image de référence en fonction du vecteur estimé.In the case of an Inter prediction, the prediction step E 1 comprises, in a known manner, a substep for estimating a motion vector from the current block to an area of the reference image, of the same size as the block, according to a similarity criterion and a sub-step of compensation for the movement of the current block with respect to the reference image as a function of the estimated vector.

Sur la Figure 6, on a représenté un premier vecteur mouvement MV1 estimé entre le bloc Bl d'une image de référence IR1, colocalisé avec le bloc courant C de l'image courante Ik et une zone ZI de l'image IR1. Ce vecteur mouvement est ensuite utilisé pour compenser le mouvement du bloc colocalisé Bl par rapport au bloc courant C. De façon analogue, on a représenté un deuxième vecteur mouvement MV2 estimé en le bloc courant B2 d'une image de référence IR2 colocalisé avec le bloc courant C et une zone Z2 de l'image IR2. MV2 est utilisé pour compenser le mouvement du bloc B2 par rapport à C.In FIG. 6, a first motion vector MV1 is estimated, estimated between the block Bl of a reference image IR1, collocated with the current block C of the current image Ik and a zone ZI of the image IR1. This motion vector is then used to compensate for the movement of the collocated block B1 with respect to the current block C. In a similar manner, a second motion vector MV2 has been estimated estimated in the current block B2 of a reference image IR2 collocated with the block current C and an area Z2 of the image IR2. MV2 is used to compensate for the movement of block B2 with respect to C.

Dans le cas bidirectionnel, on estime un indicateur de variabilité globale. Les indicateurs sont estimés individuellement pour chaque vecteur mouvement et on en choisit un. On peut par exemple choisir la valeur d'indicateur la plus faible comme valeur d'indicateur global, par exemple le vecteur mouvement de plus faible amplitude ou celui qui requiert la plus fine précision de quantification. Le vecteur mouvement calculé est ensuite quantifié puis codé dans le fichier compressé ou train binaire.In the bidirectional case, an indicator of global variability is estimated. The indicators are estimated individually for each motion vector and one is chosen. It is possible, for example, to choose the lowest indicator value as the global indicator value, for example the motion vector of lower amplitude or that which requires the finest quantization precision. The calculated motion vector is then quantified and then coded in the compressed file or binary train.

En variante, on peut construire un indicateur de variabilité à partir des vecteurs mouvements estimés, par exemple comme la moyenne de ces vecteurs.As a variant, an indicator of variability can be constructed from the estimated motion vectors, for example as the average of these vectors.

L'invention propose d'exploiter la connaissance de caractéristiques de ce vecteur mouvement pour estimer un indicateur de variabilité de prédiction du bloc courant.The invention proposes to use the knowledge of characteristics of this motion vector to estimate an indicator of variability for predicting the current block.

On note que le décodeur accède au vecteur mouvement utilisé pour la prédiction du bloc courant, car il est transmis dans le train binaire. Il peut donc réaliser les mêmes opérations que le codeur.It is noted that the decoder accesses the motion vector used for the prediction of the current block, since it is transmitted in the binary train. It can therefore perform the same operations as the encoder.

Selon un troisième mode de réalisation alternatif l'indicateur de variabilité de prédiction du bloc courant est obtenu à partir d'une information représentative d'une précision du vecteur de mouvement utilisé lors de la prédiction inter. Il s'agit par exemple de la précision d'interpolation requise par le déplacement induit par le vecteur de mouvement (par exemple 1A de pixel, 1/8, 1/16, etc...).According to a third alternative embodiment, the prediction variability indicator for the current block is obtained from information representative of an accuracy of the motion vector used during inter prediction. This is for example the interpolation precision required by the displacement induced by the motion vector (for example 1 A pixel, 1/8, 1/16, etc.).

Selon un quatrième mode de réalisation de l'invention, l'indicateur de variabilité est obtenu à partir de l'amplitude du déplacement induit par le vecteur mouvement lors de la prédiction. Dans ce cas, cela signifie que le contenu de l'image s'est beaucoup déplacé entre l'image de référence et l'image courante et que la variabilité de prédiction est élevée. Par exemple cette amplitude est comparée à un ou plusieurs seuils, en fonction du nombre de listes constitué. Plus l'amplitude du vecteur mouvement est élevée, plus l'indicateur de variabilité obtient une valeur élevée et plus on s'attend à une prédiction difficile. Avantageusement, la liste de transformées associée à une plage de valeurs d'amplitude élevées, comprend un nombre de transformées supérieur à celui d'une liste associée à des valeurs faibles d'amplitude.According to a fourth embodiment of the invention, the variability indicator is obtained from the amplitude of the displacement induced by the motion vector during the prediction. In this case, this means that the content of the image has moved a lot between the reference image and the current image and that the prediction variability is high. For example, this amplitude is compared with one or more thresholds, depending on the number of lists created. The higher the amplitude of the motion vector, the higher the variability indicator and the more difficult it is to predict. Advantageously, the list of transforms associated with a range of high amplitude values comprises a number of transforms greater than that of a list associated with low amplitude values.

L'estimation de mouvement étant réalisée pour chaque bloc courant en mode inter, l'étape E3 d'obtention de l'information de précision d'interpolation du vecteur mouvement doit être répétée pour chaque bloc en mode inter. On notera que selon la norme HEVC, tous les blocs d'une slice inter ne sont pas nécessairement en mode inter. Certains blocs peuvent être codés en mode intra et dans ce cas l'invention ne s'applique pas à eux.The motion estimation being performed for each current block in inter mode, step E3 of obtaining the interpolation precision information of the motion vector must be repeated for each block in inter mode. It will be noted that according to the HEVC standard, all the blocks of an inter slice are not necessarily in inter mode. Certain blocks can be coded in intra mode and in this case the invention does not apply to them.

Par exemple, des listes de transformées sont associées au préalable aux différentes valeurs possibles de précision pour les vecteurs mouvements, telles que par exemple :For example, lists of transforms are associated beforehand with the different possible values of precision for the motion vectors, such as for example:

• 1/4 pel *· L3 : DCT-2 + {TO, Tl, T2, T3, T4, T5, T6, T7}.• 1/4 pel * · L3: DCT-2 + {TO, Tl, T2, T3, T4, T5, T6, T7}.

• 1/8 pel *· L2 : DCT-2 + {TO, Tl, T2, T3} • 1/16 pel *· Ll : DCT-2 + {TO, Tl} • 1/32 pel * LO : DCT-2• 1/8 pel * · L2: DCT-2 + {TO, Tl, T2, T3} • 1/16 pel * · Ll: DCT-2 + {TO, Tl} • 1/32 pel * LO: DCT- 2

Plus la précision des vecteurs mouvements est importante, plus on peut s'attendre à ce que la prédiction soit correcte et donc moins il est nécessaire de tester de transformées.The higher the precision of the motion vectors, the more we can expect the prediction to be correct and therefore the less it is necessary to test transforms.

Si la configuration des listes est fixe, elle est connue du codeur et du décodeur. Si elle varie au cours du temps, alors une nouvelle configuration est transmise dans le signal par exemple, pour une séquence d'images données, dans la partie SPS (voir 7.3.2.2 de la norme ITU-T H. 265) ou encore dans le PPS (voir 7.3.2.3 de la norme ITU-T H. 265). Le décodeur obtient donc la pIf the configuration of the lists is fixed, it is known to the coder and the decoder. If it varies over time, then a new configuration is transmitted in the signal for example, for a given image sequence, in the SPS part (see 7.3.2.2 of the standard ITU-T H. 265) or in PPS (see 7.3.2.3 of standard ITU-T H. 265). The decoder therefore obtains the p

Par exemple si le codeur a à sa disposition 2N sous-listes, avec N entier, on code successivement les informations suivantes :For example, if the coder has at its disposal 2 N sublists, with N integer, the following information is successively coded:

• Précision 1/4 -> N bits pour signaler le numéro de liste.• Precision 1/4 -> N bits to signal the list number.

• Précision 1/8 -> N bits pour signaler le numéro de liste.• Accuracy 1/8 -> N bits to signal the list number.

• Précision 1/16 -> N bits pour signaler le numéro de liste.• Accuracy 1/16 -> N bits to signal the list number.

• Précision 1/32 -> N bits pour signaler le numéro de liste.• Accuracy 1/32 -> N bits to signal the list number.

Dans le cas où le codeur aurait à disposition N=4 listes, avec l'attribution 1/4 -» L3, 1/8 -» L2, 1/16 -> Ll et 1/32 -> LO, on signalerait l'information suivante dans le SPS : 0000-1111-01001100.In the case where the coder would have available N = 4 lists, with the allocation 1/4 - »L3, 1/8 -» L2, 1/16 -> Ll and 1/32 -> LO, we would indicate the following information in the SPS: 0000-1111-01001100.

Bien sûr, l'invention ne se limite pas aux modes de réalisations qui viennent d'être décrits. Ils peuvent notamment être combinés entre eux, par exemple pour obtenir un indicateur de variabilité de prédiction du bloc courant à la fois à partir d'une information représentative d'une distance temporelle entre le bloc courant et l'image de référence et d'une information caractéristique du vecteur mouvement estimé pour le bloc. Par exemple, l'indicateur de variabilité est construit comme une somme pondérée des deux valeurs ou bien il comprend ce couple de valeurs auquel on associe une liste de transformées. Un avantage est de combiner une information commune à tous les blocs d'une image/slice (par exemple le numéro de couche temporelle) avec une information spécifique au bloc courant (par exemple une caractéristique de son vecteur mouvement) et rendre ainsi la valeur de l'indicateur de variabilité encore plus pertinente.Of course, the invention is not limited to the embodiments which have just been described. They can in particular be combined with each other, for example to obtain an indicator of variability for predicting the current block both from information representative of a time distance between the current block and the reference image and of a characteristic information of the motion vector estimated for the block. For example, the variability indicator is constructed as a weighted sum of the two values or else it includes this pair of values to which a list of transforms is associated. An advantage is to combine information common to all the blocks of an image / slice (for example the number of time layer) with information specific to the current block (for example a characteristic of its motion vector) and thus render the value of the even more relevant variability indicator.

Les procédés de codage et de décodage décrits précédemment peuvent être intégrés dans des codeurs/décodeurs vidéo standards tels que HEVC/H.265, AVC/H.264, les codeurs/décodeurs d'une norme à venir ou tout type de codeurs/décodeurs vidéo propriétaires. Les procédés de codage et de décodage selon l'invention s'appliquent également à tous types de signaux utilisant un codage prédictif.The coding and decoding methods described above can be integrated into standard video coders / decoders such as HEVC / H.265, AVC / H.264, coders / decoders of a future standard or any type of coders / decoders video owners. The coding and decoding methods according to the invention also apply to all types of signals using predictive coding.

La figure 11 présente la structure simplifiée d'un dispositif de codage 100 adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention, qui viennent d'être décrits en relation avec les figures 3 et 5. Le dispositif de codage 100 est adapté pour coder au moins une image découpée en blocs sous la forme d'un train binaire TB ou fichier compressé FC.FIG. 11 shows the simplified structure of a coding device 100 adapted to implement the coding method according to any one of the particular embodiments of the invention, which have just been described in relation to FIGS. 3 and 5. The coding device 100 is suitable for coding at least one image cut into blocks in the form of a bit stream TB or compressed file FC.

Le dispositif de codage 100 est notamment configuré pour:The coding device 100 is notably configured to:

prédire des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence, calculer un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant, transformer un bloc résidu par application d'une transformée, la transformée appartenant à une liste prédéterminée de transformées;predict values of the current block from at least one previously processed block of a previous or next image, called the reference image, calculate a residual block (R) by subtracting the predicted values from the original values of the current block, transforming a block residue by application of a transform, the transform belonging to a predetermined list of transforms;

coder le bloc résidu transformé et d'une information d'identification de la transformée appliquée ;coding the transformed residue block and of information identifying the applied transform;

Selon l'invention, le dispositif est en outre configuré pour :According to the invention, the device is further configured to:

obtenir un indicateur de variabilité de prédiction du bloc par rapport du au moins un bloc de référence ;obtaining a predictive variability indicator of the block with respect to the at least one reference block;

obtenir une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu ; et appliquer une transformée identifiée appartenant à la liste obtenue.obtaining a list of transforms from among a plurality of predetermined lists at least as a function of the indicator obtained; and apply an identified transform belonging to the list obtained.

Selon un mode particulier de réalisation de l'invention, les étapes du procédé de codage sont mises en œuvre par des instructions de programme d'ordinateur. Pour cela, le dispositif de codage 100 a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM1, une unité de traitement UT1, équipée par exemple d'un microprocesseur pl, et pilotée par le programme d'ordinateur Pgl stocké en mémoire MEM1. Le programme d'ordinateur Pgl comprend des instructions pour mettre en œuvre les étapes du procédé de codage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur μΐ.According to a particular embodiment of the invention, the steps of the coding method are implemented by computer program instructions. For this, the coding device 100 has the conventional architecture of a computer and in particular comprises a memory MEM1, a processing unit UT1, equipped for example with a microprocessor pl, and controlled by the computer program Pgl stored in MEM1 memory. The computer program Pgl includes instructions for implementing the steps of the coding method as described above, when the program is executed by the processor μΐ.

A l'initialisation, les instructions de code du programme d'ordinateur Pgl sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur PROC. Le processeur pl de l'unité de traitement UT1 met notamment en œuvre les étapes du procédé de codage décrit cidessus, selon les instructions du programme d'ordinateur Pgl.On initialization, the code instructions of the computer program Pgl are for example loaded into a RAM memory before being executed by the processor PROC. The processor p1 of the processing unit UT1 implements in particular the steps of the coding method described above, according to the instructions of the computer program Pgl.

Selon un autre mode particulier de réalisation de l'invention, le procédé de codage est mis en œuvre par des modules ou unités fonctionnel(le)s. Pour cela, le dispositif de codage 100 comprend en outre les modules suivants:According to another particular embodiment of the invention, the coding method is implemented by modules or functional units (s). For this, the coding device 100 further comprises the following modules:

Prédiction des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence,Prediction of the values of the current block from at least one previously processed block of a previous or next image, called the reference image,

Calcul d'un bloc résidu par soustraction des valeurs prédites aux valeurs originales du bloc courant,Calculation of a residual block by subtracting the predicted values from the original values of the current block,

Transformation du bloc résidu par application d'une transformée;Transformation of the residual block by application of a transform;

Codage du bloc résidu transformé ;Coding of the transformed residue block;

Selon l'invention, le dispositif comprend en outre une unité d'obtention d'un indicateur de variabilité de prédiction du bloc courant, une unité d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins à partir de l'indicateur obtenu et l'unité de transformation applique une transformée de la liste déterminée.According to the invention, the device further comprises a unit for obtaining a predictive variability indicator of the current block, a unit for obtaining a list of transforms among a plurality of predetermined lists at least from l 'indicator obtained and the transformation unit applies a transform from the determined list.

L'unité de traitement UT1 coopère avec les différents modules fonctionnels décrits ci-dessus et la mémoire MEM1 afin de mettre en œuvre les étapes du procédé de codage.The processing unit UT1 cooperates with the various functional modules described above and the memory MEM1 in order to implement the steps of the coding method.

Selon un mode de réalisation de l'invention, le dispositif 100 comprend en outre une unité Mi de stockage des tables précédemment décrites dans les différents modes de réalisation de l'invention, telles que par exemple une table comprenant des enregistrements associant à une valeur ou une plage de valeurs de l'indicateur de variabilité une liste de transformées.According to one embodiment of the invention, the device 100 further comprises a unit Mi for storing the tables previously described in the various embodiments of the invention, such as for example a table comprising records associating with a value or a range of values for the variability indicator a list of transforms.

Ces unités sont pilotées par le processeur μι de l'unité de traitement 110.These units are controlled by the processor μι of the processing unit 110.

De façon avantageuse, un tel dispositif de codage 100 peut être intégré à un équipement terminal d'utilisateur TU, tel qu'un ordinateur personnel, une tablette, une caméra numérique, un téléphone mobile intelligent (pour « smartphone », en anglais), etc. Le dispositif 100 est alors agencé pour coopérer au moins avec le module suivant du terminal TU :Advantageously, such a coding device 100 can be integrated into user terminal equipment TU, such as a personal computer, a tablet, a digital camera, a smart mobile phone (for “smartphone”, in English), etc. The device 100 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 transmis dans un réseau de télécommunications, par exemple un réseau filaire, radio, ou hertzien.a data transmission / reception E / R module, via which the bit stream TB or the compressed file FC is transmitted in a telecommunications network, for example a wired, radio, or wireless network.

Les différents modules fonctionnels décrits ci-dessus peuvent être sous forme matérielle et/ou logicielle. Sous une forme logicielle, un tel module fonctionnel peut comprendre un processeur, une mémoire et des instructions de code de programme pour mettre en œuvre la fonction correspondante au module lorsque les instructions de code sont exécutées par un le processeur. Sous une forme matérielle, un tel module fonctionnel peut mis en œuvre par tout type de circuits d'encodage adaptés, tels que par exemple et de manière non limitative des microprocesseurs, des processeurs de traitement du signal (DSP pour Digital Signal Processor en anglais), des circuits intégrés spécifiques à des applications (ASICs pour Application Spécifie Integrated Circuit en anglais), des circuits FPGA pour Field Programmable Gâte Arrays en anglais, un câblage d'unités logiques.The different functional modules described above can be in hardware and / or software. In software form, such a functional module can comprise a processor, a memory and program code instructions for implementing the function corresponding to the module when the code instructions are executed by a processor. In a physical form, such a functional module can be implemented by any type of suitable encoding circuits, such as for example and without limitation microprocessors, signal processing processors (DSP for Digital Signal Processor in English) , application-specific integrated circuits (ASICs for Application Specifies Integrated Circuit in English), FPGA circuits for Field Programmable Gate Arrays in English, wiring of logic units.

La figure 12 présente la structure simplifiée d'un dispositif de décodage 200 adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention qui viennent d'être décrits en relation avec les Figures 4 et 5. Le dispositif de décodage 200 est adapté pour décoder un train binaire ou un fichier comprenant des données codées représentatives d'au moins une image, ladite image étant découpée en blocs. Le dispositif de décodage 200 est notamment configuré pour:FIG. 12 shows the simplified structure of a decoding device 200 adapted to implement the decoding method according to any one of the particular embodiments of the invention which have just been described in relation to FIGS. 4 and 5. The decoding device 200 is suitable for decoding a bit stream or a file comprising coded data representative of at least one image, said image being divided into blocks. The decoding device 200 is notably configured to:

Prédire un bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence;Predict a current block from at least one previously processed block from a previous or next image, called the reference image;

Décoder des valeurs codées des coefficients du bloc résidu transformé extraites du train binaire ;Decode coded values of the coefficients of the transformed residual block extracted from the binary train;

Réaliser une transformation inverse du bloc résidu transformé;Carry out a reverse transformation of the transformed residue block;

Reconstruire le bloc décodé à partir du bloc résidu et de la prédiction du bloc courant;Rebuild the decoded block from the residual block and the prediction of the current block;

Selon l'invention, il est en outre configuré pour obtenir un indicateur de variabilité de prédiction du bloc courant par rapport à au moins une image de référence, obtenir une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu et identifier la transformée à appliquer dans la liste déterminée.According to the invention, it is further configured to obtain an indicator for predicting variability of the current block with respect to at least one reference image, obtaining a list of transforms from a plurality of predetermined lists at least according to the indicator. obtained and identify the transform to apply in the determined list.

Selon un mode particulier de réalisation de l'invention, le dispositif de décodage 200 a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM2, une unité de traitement UT2, équipée par exemple d'un microprocesseur μ2, et pilotée par le programme d'ordinateur Pg2 stocké en mémoire MEM2. Le programme d'ordinateur Pg2 comprend des instructions pour mettre en œuvre les étapes du procédé de décodage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur μ2.According to a particular embodiment of the invention, the decoding device 200 has the conventional architecture of a computer and in particular comprises a memory MEM2, a processing unit UT2, equipped for example with a microprocessor μ2, and controlled by the computer program Pg2 stored in memory MEM2. The computer program Pg2 includes instructions for implementing the steps of the decoding method as described above, when the program is executed by the processor μ2.

A l'initialisation, les instructions de code du programme d'ordinateur Pg2 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur μ2. Le processeur μ2 de l'unité de traitement UT2 met notamment en œuvre les étapes du procédé de décodage décrit cidessus, selon les instructions du programme d'ordinateur Pg2.At initialization, the code instructions of the computer program Pg2 are for example loaded into a RAM memory before being executed by the processor μ2. The processor μ2 of the processing unit UT2 implements in particular the steps of the decoding method described above, according to the instructions of the computer program Pg2.

Selon un autre mode particulier de réalisation de l'invention, le procédé de décodage est mis en œuvre par des modules fonctionnels. Pour cela, le dispositif de décodage 200 comprend en outre les modules suivants :According to another particular embodiment of the invention, the decoding method is implemented by functional modules. For this, the decoding device 200 further comprises the following modules:

Prédiction d'un bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence;Prediction of a current block from at least one previously processed block of a previous or next image, called the reference image;

Décodage des valeurs codées des coefficients du bloc résidu transformé extraites du train binaire ;Decoding of the coded values of the coefficients of the transformed residual block extracted from the binary train;

Transformation inverse du bloc résidu transformé par application d'une transformée;Inverse transformation of the transformed residual block by application of a transform;

Reconstruction du bloc décodé à partir du bloc résidu et de la prédiction du bloc courant;Reconstruction of the decoded block from the residual block and the prediction of the current block;

Selon l'invention, il comprend en outre une unité d'obtention d'un indicateur de variabilité de prédiction du bloc courant par rapport à au moins une image de référence, une unité d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur évalué et une unité d'identification de la transformée dans la liste obtenue.According to the invention, it further comprises a unit for obtaining an indicator of variability for predicting the current block with respect to at least one reference image, a unit for obtaining a list of transforms among a plurality of predetermined lists at least as a function of the indicator evaluated and a unit of identification of the transform in the list obtained.

L'unité de traitement μ2 coopère avec les différents modules fonctionnels décrits ci-dessus et la mémoire MEM2 afin de mettre en œuvre les étapes du procédé de décodage.The processing unit μ2 cooperates with the various functional modules described above and the memory MEM2 in order to implement the steps of the decoding process.

Le dispositif 200 comprend en outre une unité M2 de stockage d'une table associant à une valeur ou plage de valeur de l'indicateur de variabilité une liste de transformées.The device 200 further comprises a unit M 2 for storing a table associating with a value or range of value of the variability indicator a list of transforms.

Ces unités sont pilotées par le processeur μ2 de l'unité de traitement μ2.These units are controlled by the processor μ2 of the processing unit μ2.

Les différents modules fonctionnels décrits ci-dessus peuvent être sous forme matérielle et/ou logicielle. Sous une forme logicielle, un tel module fonctionnel peut comprendre un processeur, une mémoire et des instructions de code de programme pour mettre en œuvre la fonction correspondante au module lorsque les instructions de code sont exécutées par un le processeur.The different functional modules described above can be in hardware and / or software. In software form, such a functional module can comprise a processor, a memory and program code instructions for implementing the function corresponding to the module when the code instructions are executed by a processor.

Sous une forme matérielle, un tel module fonctionnel peut mis en œuvre par tout type de circuits d'encodage adaptés, tels que par exemple et de manière non limitative des microprocesseurs, des processeurs de traitement du signal (DSP pour Digital Signal Processor en anglais), des circuits intégrés spécifiques à des applications (ASICs pour Application Spécifie Integrated Circuit en anglais), des circuits FPGA pour Field Programmable Gâte Arrays en anglais, un câblage d'unités logiques.In a physical form, such a functional module can be implemented by any type of suitable encoding circuits, such as for example and without limitation microprocessors, signal processing processors (DSP for Digital Signal Processor in English) , application-specific integrated circuits (ASICs for Application Specifies Integrated Circuit in English), FPGA circuits for Field Programmable Gate Arrays in English, wiring of logic units.

De façon avantageuse, un tel dispositif 200 peut être intégré à un terminal d'utilisateur TU, par exemple un décodeur, un boitier de connexion TV (pour « Set-Top-Box», en anglais), un téléviseur numérique, un ordinateur, une tablette, un téléphone mobile intelligent, etc. Le dispositif 200 est alors agencé pour coopérer au moins avec le module suivant du terminal TU :Advantageously, such a device 200 can be integrated into a user terminal TU, for example a decoder, a TV connection box (for “Set-Top-Box”, in English), a digital television set, a computer, tablet, smart phone, etc. 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 binairea data transmission / reception I / O module, through which the bit stream

TB ou le fichier compressé FC est reçu du réseau de télécommunications.TB or the FC compressed file is received from the telecommunications network.

un module DISP d'affichage des images numériques décodées.a DISP module for displaying decoded digital images.

L'invention qui vient d'être présentée peut être utilisée dans tout système de codage d'images ou de vidéo. Notamment elle a vocation à être valorisée dans un futur standard de compression ITU/MPEG. Elle peut trouver de nombreuses applications, nécessitant une compression de signal vidéo, audio (paroles, son), d'images fixes, d'images acquises par un module d'imagerie médicale. Elle s'applique par exemple aussi bien aux contenus bidimensionnels (2D), tridimensionnels (3D) incluant une carte de profondeur, ou encore d'images multispectrales (dont les intensités de couleur sont différentes des trois bandes rouge vert bleu) ou enfin d'images intégrales. L'invention.The invention which has just been presented can be used in any image or video coding system. In particular, it is intended to be valued in a future ITU / MPEG compression standard. It can find many applications, requiring compression of video signal, audio signal (speech, sound), still images, images acquired by a medical imaging module. It applies for example both to two-dimensional (2D), three-dimensional (3D) content including a depth map, or even multispectral images (whose color intensities are different from the three red green blue bands) or finally full images. The invention.

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

Claims (15)

REVENDICATIONS 1. Procédé de codage d'une image d'une séquence d'images numériques, 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, dit bloc courant, de l'image courante, de dimensions prédéterminées :1. A method of coding an image of a sequence of digital images, 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 block, known as current block, of the current image, of predetermined dimensions: Prédiction (El) des valeurs du bloc courant à partir d'au moins un bloc précédemment traité issu d'au moins une image précédente ou suivante, dite de référence,Prediction (El) of the values of the current block from at least one previously processed block originating from at least one preceding or following image, called the reference image, Calcul (E2) d'un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant,Calculation (E2) of a residual block (R) by subtracting the predicted values from the original values of the current block, Transformation (E6) du bloc résidu par application d'une transformée;Transformation (E6) of the residual block by application of a transform; Codage (E7) du bloc résidu transformé;Coding (E7) of the transformed residue block; caractérisé en ce que le procédé comprend en outre une étape (E3) d'obtention d'un indicateur de variabilité du bloc par rapport à la au moins une image de référence, une étape d'obtention (E4) d'une liste de transformées parmi une pluralité de listes au moins en fonction de l'indicateur obtenu et en ce que l'étape de transformation applique une transformée de la liste obtenue.characterized in that the method further comprises a step (E3) of obtaining an indicator of variability of the block with respect to the at least one reference image, a step of obtaining (E4) of a list of transforms among a plurality of lists at least as a function of the indicator obtained and in that the transformation step applies a transform of the list obtained. 2. Procédé de décodage d'une image d'une séquence d'images à partir de données codées représentatives de ladite image, ladite image (Ik) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc (C'), dit bloc courant :2. Method for decoding an image of a sequence of images from coded data representative of said image, said image (Ik) being divided into a plurality of blocks processed in a defined order, said method comprising the following steps , implemented for a block (C '), known as the current block: Prédiction (D2) du bloc courant à partir d'au moins un bloc précédemment traité d'au moins une image précédente ou suivante, dite image de référence;Prediction (D2) of the current block from at least one previously processed block of at least one previous or next image, called the reference image; Décodage (D3) des données codées représentatives des coefficients du bloc résidu transformé ;Decoding (D3) of the coded data representative of the coefficients of the transformed residual block; Transformation inverse (D9) du bloc résidu transformé;Inverse transformation (D9) of the transformed residue block; Reconstruction (D10) du bloc décodé à partir du bloc résidu et de la prédiction du bloc courant;Reconstruction (D10) of the decoded block from the residual block and the prediction of the current block; ledit procédé étant caractérisé en ce qu'il comprend une étape (D6) d'obtention d'un indicateur de variabilité du bloc courant par rapport à ladite au moins une image de référence, une étape d'obtention (D7) d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu et une étape d'identification (D8) de la transformée à appliquer dans la liste obtenue.said method being characterized in that it comprises a step (D6) of obtaining an indicator of variability of the current block with respect to said at least one reference image, a step of obtaining (D7) of a list transforms among a plurality of predetermined lists at least as a function of the indicator obtained and an identification step (D8) of the transform to be applied in the list obtained. 3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que le nombre de transformées de la liste obtenue est fonction de l'indicateur de variabilité du bloc.3. Method according to one of claims 1 or 2, characterized in that the number of transforms from the list obtained is a function of the block variability indicator. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'obtention de l'indicateur de variabilité du bloc comprend l'obtention d'une information représentative d'une distance temporelle entre le bloc courant et ladite au moins une image de référence.4. Method according to one of claims 1 to 3, characterized in that obtaining the block variability indicator comprises obtaining information representative of a time distance between the current block and said at least a reference image. 5. Procédé selon la revendication 4, caractérisé en ce que, les images d'un groupe d'images de la séquence étant réparties entre plusieurs couches temporelles, l'information représentative d'une distance temporelle obtenue à partir un identifiant de couche temporelle de l'image du bloc courant dans le groupe d'images.5. Method according to claim 4, characterized in that, the images of a group of images of the sequence being distributed between several time layers, the information representative of a time distance obtained from a time layer identifier of the image of the current block in the group of images. 6. Procédé selon la revendication 4, caractérisé en ce que l'information représentative d'une distance temporelle est obtenue par différence entre une information représentative d'un instant temporel associé à l'image du bloc courant et une information représentative d'un instant temporel associé à ladite au moins une image de référence.6. Method according to claim 4, characterized in that the information representative of a time distance is obtained by difference between information representative of a time instant associated with the image of the current block and information representative of a time temporal associated with said at least one reference image. 7. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que, l'étape de prédiction comprenant une sous-étape d'obtention d'un vecteur mouvement entre le bloc courant et l'image de référence, l'indicateur de variabilité du bloc est obtenu à partir d'au moins une caractéristique du vecteur mouvement.7. Method according to one of claims 1 to 3, characterized in that, the prediction step comprising a sub-step of obtaining a motion vector between the current block and the reference image, the indicator variability of the block is obtained from at least one characteristic of the motion vector. 8. Procédé de codage d'une image selon l'une des revendications 1 et 3 à 7, caractérisé en ce que, lorsque la liste obtenue comprend une séquence ordonnée de plusieurs transformées, l'étape de transformation est répétée pour les transformées de la liste, le procédé comprend une étape de sélection d'une transformée parmi les transformées de la liste appliquées au bloc courant selon un critère débit distorsion et une étape de codage d'une information représentative d'un index de position de la transformée sélectionnée dans la liste obtenue.8. Image coding method according to one of claims 1 and 3 to 7, characterized in that, when the list obtained comprises an ordered sequence of several transforms, the transformation step is repeated for the transforms of the list, the method comprises a step of selecting a transform from among the transforms of the list applied to the current block according to a distortion rate criterion and a step of coding information representative of a position index of the transform selected in the list obtained. 9. Procédé de décodage d'une image numérique selon l'une des revendications 2 à 7, caractérisé en ce que, lorsque la liste comprend plusieurs transformées, l'étape d'identification de la transformée comprend en outre une étape de décodage d'une information d'identification de la transformée dans la liste.9. Method for decoding a digital image according to one of claims 2 to 7, characterized in that, when the list includes several transforms, the step of identifying the transform further comprises a step of decoding information identifying the transform in the list. 10. Dispositif (100) de codage d'une image numérique, ladite image (Ik) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit dispositif comprenant une machine de calcul dédiée à et configurée pour :10. Device (100) for coding a digital image, said image (Ik) being divided into a plurality of blocks of pixels processed in a defined order, said device comprising a calculation machine dedicated to and configured for: Prédire (PRED) des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence,Predict (PRED) values of the current block from at least one block previously processed from a previous or next image, called the reference image, Calculer (CALC) un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant,Calculate (CALC) a residual block (R) by subtracting the predicted values from the original values of the current block, Transformer (TRANSF) le bloc résidu par application d'une transformée;Transform (TRANSF) the residual block by applying a transform; Coder (COD) le bloc résidu transformé ;Code (COD) the transformed residue block; caractérisé en ce que la machine de calcul est en outre configurée pour obtenir (OBT IV) un indicateur de variabilité du bloc courant par rapport à ladite au moins une image de référence, obtenir (OBT L) une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu et pour appliquer au bloc résidu une transformée identifiée dans la liste obtenue.characterized in that the calculating machine is further configured to obtain (OBT IV) an indicator of variability of the current block with respect to said at least one reference image, to obtain (OBT L) a list of transforms among a plurality of lists predetermined at least as a function of the indicator obtained and to apply to the residue block a transform identified in the list obtained. 11. Dispositif (200) de décodage d'une image d'une séquence d'images à partir de données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit dispositif comprenant une machine de calcul dédiée à et configurée pour :11. Device (200) for decoding an image of a sequence of images from coded data representative of said image, said image being divided into a plurality of blocks processed in a defined order, said device comprising a machine for calculation dedicated to and configured for: Prédire (PRED) un bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence;Predict (PRED) a current block from at least one previously processed block of a previous or next image, called the reference image; Décoder (DEC) des valeurs codées des coefficients du bloc résidu transformé extraites du train binaire ;Decode (DEC) coded values of the coefficients of the transformed residual block extracted from the binary train; Réaliser une transformation inverse (TRANS-1) du bloc résidu transformé;Carry out a reverse transformation (TRANS-1) of the transformed residue block; Reconstruire (RECONST) le bloc décodé à partir du bloc résidu et de la prédiction du bloc courant;Reconstruct (RECONST) the decoded block from the residual block and from the prediction of the current block; ledit dispositif étant caractérisé en ce que la machine de calcul est en outre configurée pour obtenir (OBT IV) un indicateur de variabilité de prédiction du bloc courant par rapport à au moins une image de référence, obtenir (OBT L) une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu et identifier (ID TR) la transformée dans la liste obtenue.said device being characterized in that the calculating machine is further configured to obtain (OBT IV) an indicator of variability for predicting the current block with respect to at least one reference image, obtaining (OBT L) a list of transforms from a plurality of predetermined lists at least as a function of the indicator obtained and identifying (ID TR) the transformed in the list obtained. 12. Signal portant un train binaire (TB) comprenant des données codées représentatives d'une image d'une séquence d'images, ladite image étant divisée en blocs de pixels traités dans un ordre défini, les valeurs d'un bloc courant étant prédites à partir des valeurs d'au moins un bloc précédemment traité d'au moins une image précédente ou suivante, dite de référence, les valeurs12. Signal carrying a bit stream (TB) comprising coded data representative of an image of a sequence of images, said image being divided into blocks of pixels processed in a defined order, the values of a current block being predicted from the values of at least one block previously processed from at least one previous or next image, called the reference image, the values 5 d'un bloc résidu étant calculées par soustraction des valeurs prédites aux valeurs originales du bloc courant, un bloc résidu transformé étant obtenu par application d'une transformée à des pixels du bloc résidu;5 of a residual block being calculated by subtracting the predicted values from the original values of the current block, a transformed residual block being obtained by applying a transform to pixels of the residual block; caractérisé en ce que ledit signal comprend une information codée représentative d'un index position de la transformée à appliquer au bloc résidu courant dans une liste comprenant unecharacterized in that said signal comprises coded information representative of a position index of the transform to be applied to the current residual block in a list comprising a 10 séquence ordonnée de transformées, la liste étant destinée à être obtenue au moins en fonction d'un indicateur de variabilité du bloc courant par rapport à ladite au moins une image de référence.10 ordered sequence of transforms, the list being intended to be obtained at least as a function of an indicator of variability of the current block with respect to said at least one reference image. 13. Equipement terminal (TU) caractérisé en ce qu'il comprend un module d'émission (E/R) et un module (E/R) de réception de données vers et en provenance d'un réseau de télécommunications, un dispositif (100) de codage d'une image numérique selon la revendication 10 et un dispositif13. Terminal equipment (TU) characterized in that it comprises a transmission module (E / R) and a module (E / R) for receiving data to and from a telecommunications network, a device ( 100) for coding a digital image according to claim 10 and a device 15 de décodage (200) selon la revendication 11.15 decoding (200) according to claim 11. 14. Programme d'ordinateur (Pgl) comprenant des instructions pour la mise en œuvre du procédé de codage d'une image numérique selon l'une des revendications 1 et 3 à 8, lorsqu'il est exécuté par un processeur.14. Computer program (Pgl) comprising instructions for implementing the method of coding a digital image according to one of claims 1 and 3 to 8, when executed by a processor. 15. Programme d'ordinateur comprenant des instructions pour la mise en œuvre du procédé de 20 décodage d'une image numérique selon l'une des revendications 2 à 7 et 9, lorsqu'il est exécuté par un processeur.15. Computer program comprising instructions for implementing the method of decoding a digital image according to one of claims 2 to 7 and 9, when executed by a processor. 1/81/8
FR1659589A 2016-10-04 2016-10-04 METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES, TERMINAL AND COMPUTER PROGRAMS Withdrawn FR3057131A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1659589A FR3057131A1 (en) 2016-10-04 2016-10-04 METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES, TERMINAL AND COMPUTER PROGRAMS
PCT/FR2017/052603 WO2018065698A1 (en) 2016-10-04 2017-09-27 Method for encoding a digital image and associated decoding method, devices, terminal equipment and computer programs

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1659589A FR3057131A1 (en) 2016-10-04 2016-10-04 METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES, TERMINAL AND COMPUTER PROGRAMS
FR1659589 2016-10-04

Publications (1)

Publication Number Publication Date
FR3057131A1 true FR3057131A1 (en) 2018-04-06

Family

ID=58501458

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1659589A Withdrawn FR3057131A1 (en) 2016-10-04 2016-10-04 METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES, TERMINAL AND COMPUTER PROGRAMS

Country Status (2)

Country Link
FR (1) FR3057131A1 (en)
WO (1) WO2018065698A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941323A (en) * 2022-12-07 2023-04-07 合肥工业大学 Picture encryption and decryption method and device based on lossless compression algorithm and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding
EP2418855A1 (en) * 2009-04-08 2012-02-15 Sharp Kabushiki Kaisha Video encoding device and video decoding device
JP2014045434A (en) * 2012-08-28 2014-03-13 Nippon Hoso Kyokai <Nhk> Image encoder, image decoder and programs thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding
EP2418855A1 (en) * 2009-04-08 2012-02-15 Sharp Kabushiki Kaisha Video encoding device and video decoding device
JP2014045434A (en) * 2012-08-28 2014-03-13 Nippon Hoso Kyokai <Nhk> Image encoder, image decoder and programs thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GARY J. SULLIVAN ET AL: "Overview of the High Efficiency Video Coding (HEVC) Standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY., vol. 22, no. 12, 1 December 2012 (2012-12-01), US, pages 1649 - 1668, XP055284729, ISSN: 1051-8215, DOI: 10.1109/TCSVT.2012.2221191 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941323A (en) * 2022-12-07 2023-04-07 合肥工业大学 Picture encryption and decryption method and device based on lossless compression algorithm and storage medium

Also Published As

Publication number Publication date
WO2018065698A1 (en) 2018-04-12

Similar Documents

Publication Publication Date Title
US10187657B2 (en) Method and device for configuring merge candidate list for decoding and encoding of interlayer video
CN104885460B (en) Gradual decoding refresh with temporal scalability support in video coding
CN108632625A (en) A kind of method for video coding, video encoding/decoding method and relevant device
US9538239B2 (en) Decoder and method for decoding encoded input data containing a plurality of blocks or packets
EP3183879A1 (en) Method for encoding a digital image, and associated decoding method, devices and computer programmes
FR2894421A1 (en) METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING
EP3061246B1 (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
US20240333944A1 (en) Method and apparatus for deriving rice parameter in video/image coding system
EP3314897B1 (en) Method for encoding a digital image, and associated decoding method, devices and computer programs
FR2947134A1 (en) METHODS OF ENCODING AND DECODING IMAGES, CODING AND DECODING DEVICES, DATA STREAMS AND CORRESPONDING COMPUTER PROGRAM.
EP3075155B1 (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
EP3398330A1 (en) Method for encoding a digital image and associated decoding method, devices, user terminal and computer programs
EP3449631B1 (en) Method of decoding a digital image, method of coding, devices, and computer programs associated therewith
WO2011072893A1 (en) Video coding using pixel-streams
US20180176579A1 (en) Methods and devices for encoding and decoding frames with a high dynamic range, and corresponding signal and computer program
FR3030976A1 (en) METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES AND COMPUTER PROGRAMS
WO2017037368A2 (en) Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto
FR3057131A1 (en) METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES, TERMINAL AND COMPUTER PROGRAMS
CN115604486A (en) Video image coding and decoding method and device
Kavitha et al. A survey of image compression methods for low depth-of-field images and image sequences
FR3057130B1 (en) METHOD OF ENCODING AN IMAGE, DECODING METHOD, DEVICES, TERMINAL EQUIPMENT AND COMPUTER PROGRAMS
FR3071690A1 (en) METHOD OF DECODING AN IMAGE, ENCODING METHOD, DEVICES, TERMINAL EQUIPMENT AND COMPUTER PROGRAMS
FR3057429A1 (en) METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES AND COMPUTER PROGRAMS
Ponomarenko et al. Prediction of signs of DCT coefficients in block-based lossy image compression
FR3035761A1 (en) IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20180406

PLFP Fee payment

Year of fee payment: 3

ST Notification of lapse

Effective date: 20200906