Brevet FR3086487A1 — publié le 20200327

PROCEDES ET DISPOSITIFS DE CODAGE ET DE DECODAGE D'UN FLUX DE DONNEES REPRESENTATIF D'AU MOINS UNE IMAGE. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage d'images ou de séquences d'images, et notamment de flux vidéo. Plus précisément, l'invention concerne la compression d'images ou de séquences d'images utilisant une représentation par blocs des images. L'invention peut notamment s'appliquer au codage image ou vidéo mis en oeuvre dans les codeurs actuels ou à venir (JPEG, MPEG, H.264, HEVC, etc et leurs amendements), et au décodage correspondant. 2. Art Antérieur Les images et séquences d'images numériques occupent beaucoup d'espace en termes de mémoire, ce qui nécessite, lorsque l'on transmet ces images, de les compresser afin d'éviter les problèmes d'encombrement sur le réseau utilisé pour cette transmission. On connaît déjà de nombreuses techniques de compression de données vidéo. Parmi celles-ci, le standard de compression HEVC ("High Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signais and Communication Technology, 2015) propose de mettre en oeuvre une prédiction de pixels d'une image courante par rapport à d'autres pixels appartenant à la même image (prédiction intra) ou à une image précédente ou suivante (prédiction inter). Plus précisément, la prédiction intra exploite les redondances spatiales au sein d'une image. Pour ce faire, les images sont découpées en blocs de pixels. Les blocs de pixels sont alors prédits à l'aide d'informations déjà reconstruites, correspondant aux blocs précédemment codés/décodés dans l'image courante selon l'ordre de parcours des blocs dans l'image. Par ailleurs, de manière classique, le codage d'un bloc courant est réalisé à l'aide d'une prédiction du bloc courant, dit bloc prédicteur, et d'un résidu de prédiction ou « bloc résiduel », correspondant à une différence entre le bloc courant et le bloc prédicteur. Le bloc résiduel obtenu est alors transformé, par exemple en utilisant une transformée de type DCT (transformée en cosinus discrète). Les coefficients du bloc résiduel transformé sont ensuite quantifiés, puis codés par un codage entropique et transmis au décodeur, qui peut reconstruire le bloc courant en ajoutant ce bloc résiduel au bloc prédicteur. Le décodage est fait image par image, et pour chaque image, bloc par bloc. Pour chaque bloc, les éléments correspondants du flux sont lus. La quantification inverse et la transformation inverse des coefficients du bloc résiduel sont effectuées. Puis, la prédiction 2 du bloc est calculée pour obtenir le bloc prédicteur et le bloc courant est reconstruit en ajoutant la prédiction (i.e. le bloc prédicteur) au bloc résiduel décodé. Dans US9253508, une technique de codage DPCM (pour Differential Pulse Code Modulation en anglais) pour coder des blocs en mode Infra est insérée dans un codeur 5 HEVC. Une telle technique consiste à prédire un ensemble de pixels d'un bloc intra par un autre ensemble de pixels du même bloc qui ont été précédemment reconstruits. Dans US9253508, un ensemble de pixels du bloc intra à coder correspond à une ligne du bloc, ou une colonne ou une ligne et une colonne et la prédiction intra utilisée pour prédire l'ensemble de pixels est l'une des prédictions intra directionnelles définies dans le standard HEVC. 10 Une telle technique n'est toutefois pas optimale. En effet, la reconstruction d'un ensemble de pixels du bloc intra correspond soit à l'ajout d'un résidu de prédiction dans le cas d'un codage sans pertes, offrant donc un taux de compression assez faible, soit à l'ajout d'un résidu de prédiction après transformation inverse et/ou quantification inverse dudit autre ensemble de pixels servant de prédiction. Une telle technique ne permet donc pas de prédire 15 chaque pixel du bloc intra à l'aide d'une fonction locale de prédiction et de reconstruire le pixel prédit avant de prédire un pixel suivant. En effet, cette technique nécessite de reconstruire un ensemble de pixels (ligne/colonne du bloc par exemple) pour prédire un autre ensemble de pixels. Autrement dit, à chaque prédiction et reconstruction d'une partie du bloc, plusieurs pixels du bloc sont prédits et reconstruits. 20 De plus, dans US9253508, il n'est pas décrit comment faire cohabiter des modes de prédiction intra classiques tels que définis dans le standard HEVC par exemple et le mode de prédiction DPCM. Il existe donc un besoin pour une nouvelle méthode de codage et de décodage pour améliorer la compression des données image ou vidéo. 25 3. Exposé de l'invention L'invention vient améliorer l'état de la technique. Elle concerne à cet effet un procédéde décodage d'un flux de données codées représentatif d'au moins une image découpée en blocs. Un tel procédé de décodage comprend, pour au moins un bloc de l'image, dit bloc 30 courant: - le décodage d'une information indiquant un mode de codage du bloc courant parmi au moins un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage étant un mode de codage selon lequel le bloc courant est décodé via, pour chaque pixel du bloc courant: 35 - l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé 3 appartenant audit bloc courant ou à un bloc de l'image précédemment décodé, - le décodage d'un résidu de prédiction associé audit pixel, - la reconstruction dudit pixel à partir de la prédiction dudit pixel 5 obtenue et du résidu de prédiction décodé associé audit pixel, - le décodage du bloc courant selon le mode de codage indiqué par l'information décodée, - lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du deuxième mode de codage, l'application d'au moins une méthode de traitement au bloc courant reconstruit, 10 - lorsque le mode de codage du bloc courant correspond au deuxième mode de codage, la désactivation de l'application de ladite au moins une méthode de traitement au bloc courant reconstruit pour au moins un pixel dudit bloc courant. Ainsi, selon l'invention, l'application de traitements sur un bloc reconstruit n'est pas réalisée dans le cas d'un bloc décodé selon un mode de codage utilisant une prédiction des pixels à 15 partir de pixels précédemment reconstruits du même bloc. Selon ce mode de codage, le résidu de prédiction associé à chaque pixel n'est pas transformé. Les méthodes de traitement visent à améliorer la qualité des blocs de pixels reconstruits, par exemple en réduisant les effets de discontinuités entre blocs dus au codage de résidu de prédiction avec une transformée (filtre de "deblocking" en anglais), ou en corrigeant la valeur individuelle de 20 chaque pixel (aussi connu sous le nom de SAO pour Sample Adaptive Offset en anglais). Selon l'invention, le deuxième mode de codage n'utilise pas de transformée du résidu de prédiction puisque le résidu de prédiction associé à chaque pixel doit être disponible immédiatement pour reconstruire le pixel et qu'il puisse servir à la prédiction des pixels suivants du bloc courant. Ainsi, lorsque le bloc courant est décodé selon le deuxième mode 25 de codage, il n'est pas nécessaire de réduire les discontinuités aux frontières de ce bloc courant. De même, lorsque le bloc courant est décodé selon le deuxième mode de codage, la valeur de chaque pixel est codée individuellement à l'aide d'un résidu de prédiction associé à chaque pixel. Il n'est donc pas nécessaire de corriger la valeur de chaque pixel. Les méthodes de traitement appliquées aux blocs reconstruits nécessitent en général la 30 transmission de paramètres au niveau bloc. Désactiver ces méthodes de traitement pour les blocs codés selon le deuxième mode de codage permet ainsi un gain en débit. De plus, le processus de décodage peut substantiellement être accéléré puisque ces méthodes de traitement ne sont pas appliquées pour ces blocs. 35 L'invention concerne également un procédé de codage d'un flux de données codées représentatif d'au moins une image découpée en blocs. Un tel procédé de codage comprend, pour au moins un bloc de l'image, dit bloc courant: 4 - le codage d'une information indiquant un mode de codage du bloc courant parmi au moins un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage étant un mode de codage selon lequel le bloc courant est codé via, pour chaque pixel du bloc courant: 5 - l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé, - le codage d'un résidu de prédiction associé audit pixel obtenu à partir de la prédiction dudit pixel, 10 - la reconstruction dudit pixel à partir du résidu de prédiction décodé associé audit pixel et de la prédiction dudit pixel, le codage du bloc courant selon le mode de codage indiqué par l'information codée, lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du deuxième mode de codage, l'application d'au moins une méthode de 15 traitement au bloc courant reconstruit, - lorsque le mode de codage du bloc courant correspond au deuxième mode de codage, la désactivation de l'application de ladite au moins une méthode de traitement au bloc courant reconstruit pour au moins un pixel dudit bloc courant. 20 Selon un mode particulier de réalisation de l'invention, la méthode de traitement est un filtrage de déblocage appliqué aux pixels du bloc courant reconstruit qui sont situés à la frontière du bloc courant reconstruit avec un bloc voisin reconstruit dans l'image. Selon ce mode particulier de réalisation de l'invention, la méthode de traitement correspond à un filtre de "deblocking" classiquement appliqué en frontières de blocs pour réduire les effets de 25 discontinuités entre blocs. Selon un mode particulier de réalisation de l'invention, lorsque le bloc courant est décodé ou codé selon le deuxième mode de codage: - l'application du filtrage de déblocage au bloc courant reconstruit est 30 désactivée pour tous les pixels du bloc courant reconstruit, - lorsque le bloc courant est décodé ou codé selon un mode de codage distinct du deuxième mode de codage: - le filtrage de déblocage est appliqué à un pixel du bloc courant reconstruit si ledit pixel est situé sur une frontière dudit bloc courant reconstruit avec un bloc reconstruit 35 voisin dans l'image et si ledit bloc voisin est décodé ou codé selon un mode de codage distinct du deuxième mode de codage. 5 Selon ce mode particulier de réalisation de l'invention, le filtrage de déblocage est appliqué seulement aux pixels en frontière de deux blocs qui sont tous les deux codés ou décodés selon des modes de codage distincts du deuxième mode de codage. Autrement dit, pour un bloc courant codé ou décodé selon un mode de codage distinct du deuxième mode de 5 codage, le filtrage de déblocage est désactivé pour les pixels du bloc courant reconstruit qui sont situés sur la frontière avec un bloc voisin codé ou décodé selon le deuxième mode de codage. Selon un autre mode particulier de réalisation de l'invention, lorsque le bloc courant est 10 décodé ou codé selon le deuxième mode de codage: - l'application du filtrage de déblocage au bloc courant reconstruit est désactivée pour un pixel du bloc courant reconstruit si ledit pixel est situé sur une frontière dudit bloc courant reconstruit avec un bloc voisin dans l'image et si ledit bloc voisin est décodé ou codé selon le deuxième mode de codage, et 15 - le filtrage de déblocage est appliqué à un pixel du bloc courant reconstruit, si ledit pixel est situé sur une frontière dudit bloc courant reconstruit avec un bloc voisin reconstruit dans l'image et si ledit bloc voisin est décodé ou codé selon un mode de codage distinct du deuxième mode de codage. Selon cet autre mode particulier de réalisation de l'invention, le filtrage de déblocage est 20 appliqué aux pixels situés en frontière de deux blocs dont au moins un des blocs est codé ou décodé selon un mode de codage distinct du deuxième mode de codage. . En revanche, le filtrage de déblocage est désactivé pour les pixels situés en frontière de deux blocs qui sont tous les deux codés ou décodés selon le deuxième mode de codage. Ce mode particulier de réalisation de l'invention permet de lisser les effets de blocs pour les 25 blocs codés ou décodés selon le premier mode de codage ou tout autre mode de codage distinct du deuxième mode de codage, même lorsque ceux-ci sont voisins d'un bloc reconstruit qui a été codé ou décodé selon le deuxième mode de codage. Selon un autre mode particulier de réalisation de l'invention, la méthode de traitement est 30 une méthode de correction d'au moins un pixel du bloc courant reconstruit par ajout à la valeur reconstruite dudit pixel d'une valeur obtenue à partir d'une information codée dans le flux de données ou décodée depuis le flux de données. Selon ce mode particulier de réalisation de l'invention, la méthode de traitement correspond à la méthode dite SAO qui a été intégrée au standard de compression HEVC. 35 6 Selon un mode particulier de réalisation de l'invention, lorsque le bloc courant est décodé ou codé selon le deuxième mode de codage, l'application de ladite méthode de correction au bloc courant reconstruit est désactivée pour tous les pixels du bloc courant reconstruit. 5 L'invention concerne également un dispositif de décodage configuré pour mettre en oeuvre 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 10 pas détaillés plus amplement. Le dispositif de décodage comprend notamment un processeur configuré pour, pour au moins un bloc de l'image, dit bloc courant: - décoder une information indiquant un mode de codage du bloc courant parmi au moins un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage 15 étant un mode de codage selon lequel le bloc courant est décodé via, pour chaque pixel du bloc courant: - l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment 20 décodé, - le décodage d'un résidu de prédiction associé audit pixel, - la reconstruction dudit pixel à partir de la prédiction dudit pixel obtenue et du résidu de prédiction décodé associé audit pixel, - décoder le bloc courant selon le mode de codage indiqué par l'information décodée, 25 - lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du deuxième mode de codage, appliquer au moins une méthode de traitement au bloc courant reconstruit, - lorsque le mode de codage du bloc courant correspond au deuxième mode de codage, désactiver l'application de ladite au moins une méthode de traitement au bloc courant 30 reconstruit pour au moins un pixel dudit bloc courant. Selon un mode particulier de réalisation de l'invention, un tel dispositif de décodage est compris dans un terminal. 35 L'invention concerne également un dispositif de codage configuré pour mettre en oeuvre 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 7 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 codage, et ne sont pas détaillés plus amplement. Le dispositif de codage comprend notamment un processeur configure pour, pour au moins 5 un bloc de l'image, dit bloc courant: - coder une information indiquant un mode de codage du bloc courant parmi au moins un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage étant un mode de codage selon lequel le bloc courant est codé via, pour chaque pixel du bloc courant: 10 - l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé, - le codage d'un résidu de prédiction associé audit pixel obtenu à partir de la prédiction dudit pixel, 15 - la reconstruction dudit pixel à partir du résidu de prédiction décodé associé audit pixel et de la prédiction dudit pixel, - coder le bloc courant selon le mode de codage indiqué par l'information codée, - lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du deuxième mode de codage, appliquer au moins une méthode de traitement au 20 bloc courant reconstruit, - lorsque le mode de codage du bloc courant correspond au deuxième mode de codage, désactiver l'application de ladite au moins une méthode de traitement au bloc courant reconstruit pour au moins un pixel dudit bloc courant. 25 Selon un mode particulier de réalisation de l'invention, un tel dispositif de codage est compris dans un terminal, ou un serveur. Le procédé de décodage, respectivement le procédé de codage, selon l'invention peut être mis en oeuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle. 30 Selon un mode particulier de réalisation de l'invention, le procédé de décodage, respectivement le procédé de codage, est mis en oeuvre par un programme d'ordinateur. L'invention concerne également un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de décodage ou du procédé de codage selon l'un quelconque des modes particuliers de réalisation décrits précédemment, lorsque ledit programme est 35 exécuté par un processeur. Un tel programme peut utiliser n'importe quel langage de programmation. Il peut être téléchargé depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur. 8 Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. 5 L'invention vise aussi un support d'enregistrement ou support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Les supports d'enregistrement mentionnés ci-avant peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage telle qu'une mémoire. D'autre part, les supports 10 d'enregistrement peuvent correspondre à un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, les supports d'enregistrement peuvent correspondre à un circuit intégré 15 dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. 4. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture 20 de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1 présente des étapes du procédé de codage selon un mode particulier de réalisation de l'invention, - la figure 2 illustre un exemple de position des blocs voisins d'un bloc courant pour 25 déterminer un mode de prédiction intra selon un mode particulier de réalisation de l'invention, - la figure 3 illustre un exemple de position des pixels de référence utilisés pour prédire des pixels d'un bloc courant selon un mode particulier de réalisation de l'invention, - la figure 4 présente des étapes du procédé de décodage selon un mode particulier de 30 réalisation de l'invention, - les figures 5A et 5B illustrent des blocs de pixels reconstruits sur lesquels un post-traitement est appliqué ou non aux pixels selon le mode de codage du bloc auquel les pixels appartiennent, selon des modes particuliers de réalisation de l'invention, - la figure 6 présente la structure simplifiée d'un dispositif de codage adapté pour mettre en 35 oeuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de 9 - la figure 7 présente la structure simplifiée d'un dispositif de décodage adapté pour mettre en oeuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention. 5 5. Description d'un mode de réalisation de l'invention 5.1 Principe général Des traitements réalisés après le décodage d'une image, aussi connus sous le nom de post-traitement, sont intégrées aux normes de codage vidéo afin d'améliorer la qualité des images reconstruites. Par exemple, de tels post-traitements peuvent être l'application d'un filtrage de 10 déblocage ou "deblocking filter" en anglais ou bien un post-traitement dit SAO pour Sample Adaptive Offset en anglais. Le filtrage de deblocking permet d'effacer, après décodage de chaque bloc, la discontinuité qui existe entre chaque bloc et à laquelle l'ceil humain est très sensible. D'autre part, le traitement SAO permet de modifier individuellement la valeur de chaque pixel d'un bloc 15 décodé. Ces deux méthodes de post-traitement ont été intégrées par exemple dans le standard de compression HEVC et apportent des gains en compression et en qualité. Toutefois, selon l'invention, un nouveau mode de codage des blocs d'une image, dit codage ILR pour In-Loop Residual en anglais, permet de se passer avantageusement de ces deux 20 méthodes de post-traitement. Concernant les effets de discontinuités entre blocs, ils sont principalement dus au codage du résidu classique sous forme d'une transformée. Les vecteurs de base de la transformée étant à l'échelle du bloc, ils ne permettent pas un contrôle individuel des valeurs des pixels le long de la frontière du bloc. En revanche, le mode de codage ILR permet de coder l'intensité 25 de chaque pixel indépendamment des autres. Il n'y a donc pas d'effets de blocs constatés, et le filtrage est inutile. De même, le traitement SAO vise à corriger la valeur individuelle de certains pixels après un codage classique. Or, le mode de codage ILR qui sera décrit plus loin, permet déjà de coder la valeur de chaque pixel individuellement. Il n'est donc pas besoin de traitement SAO pour 30 ces pixels. En revanche, il est nécessaire pour le codeur de pouvoir choisir pour chaque bloc à coder entre un mode de codage classique ou un mode de codage ILR afin d'optimiser le coût de codage de la séquence vidéo. Le principe général de l'invention est donc de permettre d'activer ou non l'application d'une 35 méthode de post-traitement à un bloc reconstruit selon que le bloc a été codé/décodé selon le mode de codage ILR. 10 Il y a plusieurs avantages à activer les traitements de deblocking et/ou SAO uniquement pour les blocs codés par une méthode de codage classique, i.e. un mode de codage autre que ILR. En effet, ceci permet de réduire le débit à transmettre car aucun élément de syntaxe relatif au deblocking filter ou au traitement SAO n'est transmis pour les blocs 5 codés/décodés selon le mode de codage ILR. Ceci permet également d'accélérer substantiellement le décodage, puisque les blocs codés/décodés selon le mode de codage ILR n'ont pas besoin d'appliquer les étapes de traitement de deblocking et/ou SAO qui sont assez lourdes à mettre en oeuvre en terme de calculs et de ressources mémoires. 10 5. 2 Exemples de mise en oeuvre La figure 1 présente des étapes du procédé de codage selon un mode particulier de réalisation de l'invention. Par exemple, on code une séquence d'images 11, 12, ..., INb sous la forme d'un flux de données codées STR selon un mode particulier de réalisation de l'invention. Par exemple, un tel procédé de codage est mis en oeuvre par un dispositif de 15 codage tel que décrit plus loin en relation avec la figure 6. Une séquence d'images 12, ..., INb, Nb étant le nombre d'images de la séquence à coder, est fournie en entrée du procédé de codage. Le procédé de codage délivre en sortie un flux de données codées STR représentatif de la séquence d'images fournie en entrée. De manière connue, le codage de la séquence d'images 11, 12, ..., INb est fait image par image 20 selon un ordre de codage préalablement établi et connu du codeur. Par exemple, les images peuvent être codées dans l'ordre temporel 11, 12, ..., 1Nb ou selon un autre ordre, par exemple 11.13, 12, ..., I Nb- Lors d'une étape E0, une image 1; à coder de la séquence d'images 11,12, ..., INb est découpée en blocs, par exemple en blocs de taille 32x32, ou 64x64 pixels ou plus. Un tel bloc peut être 25 subdivisé en sous-blocs carrés ou rectangulaires, par exemple de taille 16x16, 8x8, 4x4, 16x8, 8x16, Lors d'une étape E1, un premier bloc ou sous-bloc Xb à coder de l'image I; est sélectionné selon un sens de parcours de l'image I; prédéterminé. Par exemple, il peut s'agir du premier bloc dans l'ordre lexicographique de parcours de l'image. 30 Lors d'une étape E2, l'encodeur va choisir le mode de codage pour coder le bloc courant Xb. Selon le mode particulier de réalisation décrit ici, l'encodeur sélectionne le mode de codage pour coder le bloc courant Xb parmi un premier mode de codage M1 et un deuxième mode de codage M2. Des modes de codage supplémentaires (non décrits ici) peuvent être utilisés. Selon le mode particulier de réalisation décrit ici, le premier mode de codage MI correspond 35 au codage du bloc courant par prédiction intra classique, par exemple tel que défini selon le standard HEVC et le deuxième mode de codage M2 correspond au codage par prédiction In Loop Residual (ILR). 11 Le principe de l'invention peut être étendu à d'autres types de modes de codage pour le premier mode de codage Ml.. Par exemple, le premier mode de codage peut correspondre à tout type de modes de codage utilisant une transformation du résidu de prédiction (codage par prédiction inter-images, codage par prédiction spatiale avec template matching, etc...). 5 Lors de l'étape E2, le codeur peut réaliser une optimisation débit/distorsion pour déterminer le meilleur mode de codage pour coder le bloc courant. Au cours de cette optimisation débit/distorsion, des modes de codage supplémentaires distincts du premier et du deuxième mode de codage peuvent être testés, par exemple un mode de codage en mode inter. Au cours de cette optimisation débit/distorsion, le codeur simule le codage du bloc courant Xb 10 selon les différents modes de codage disponibles afin de déterminer le débit et la distorsion associés à chaque mode de codage et sélectionne le mode de codage offrant le meilleur compromis débit/distorsion, par exemple selon la fonction D+ÀR, où R représente le débit nécessaire pour coder le bloc courant selon le mode de codage évalué, D la distorsion mesurée entre le bloc décodé et le bloc courant original et un multiplicateur lagrangien, par 15 exemple entré par l'utilisateur ou défini au codeur. Lors d'une étape E20, une information indiquant le mode de codage sélectionné pour le bloc courant est codée dans le flux de données STR. Si le bloc courant Xb est codé selon le premier mode de codage M1, le procédé passe à l'étape E21 de codage du bloc selon M1. Si le bloc courant Xb est codé selon le deuxième 20 mode de codage M2, le procédé passe à l'étape E22 de codage du bloc selon M2. On décrit ci-après l'étape E21 de codage du bloc selon le premier mode de codage Ml, selon un mode particulier de réalisation de l'invention. Selon le mode particulier décrit ici, le premier mode de codage correspond à une prédiction intra classique, telle que celle définie dans le standard HEVC. 25 Lors d'une étape E210, un pas de quantification Si est déterminé. Par exemple, le pas de quantification (51 peut être fixé par l'utilisateur, ou bien calculé à l'aide d'un paramètre de quantification fixant un compromis entre compression et qualité et entré par l'utilisateur ou défini par le codeur. Ainsi, un tel paramètre de quantification peut être le paramètre À, utilisé dans la fonction de coût débit-distorsion D+ À .R où D représente la distorsion introduite par 30 le codage et R le débit utilisé pour coder. Cette fonction sert à faire des choix de codage, classiquement on cherche la façon de coder l'image qui minimise cette fonction. En variante, le paramètre de quantification peut être le QP, correspondant au paramètre de quantification utilisé classiquement dans les normes AVC ou HEVC. Ainsi, dans la norme HEVC, le pas de quantification S1 est déterminé par l'équation 35 Si=levelScale[ QP°/06 ] « (QP/6)) où levelScale[ k = { 40, 45, 51, 57, 64, 72 } pour k = 0..5. Lors d'une étape E211, une prédiction du bloc courant est déterminée à l'aide d'un mode de prédiction intra classique. Selon cette prédiction intra classique, chaque pixel prédit est 12 calculé uniquement à partir des pixels décodés issus des blocs voisins (pixels de référence) situés au-dessus du bloc courant, et à gauche du bloc courant. La façon dont les pixels sont prédits à partir des pixels de référence dépend d'un mode de prédiction qui est transmis au décodeur, et qui est choisi par le codeur parmi un ensemble prédéterminé de modes connus 5 du codeur et du décodeur. Ainsi, dans HEVC il y a 35 modes de prédiction possibles : 33 modes qui interpolent les pixels de référence dans 33 directions angulaires différentes, et 2 autres modes: le mode DC dans lequel chaque pixel du bloc prédit est produit à partir de la moyenne des pixels de référence, et le mode PLANAR, qui effectue une interpolation plane et non directionnelle. 10 Cette approche dite « prédiction intra classique » est bien connue et également utilisée dans le standard ITU-T H.264 (où il n'y a que 9 modes différents) ainsi que dans le logiciel expérimental JEM disponible à l'adresse internet (bilks://ivethhi.fraunhoferde/), où il y a 67 modes de prédiction différents. Dans tous les cas, la prédiction intra classique respecte les deux aspects cités ci-dessus (prédiction des pixels à partir des blocs voisins et transmission 15 au décodeur d'un mode de prédiction optimal). Au cours de l'étape E211, le codeur choisit donc un des modes de prédiction disponibles parmi la liste prédéterminée de modes de prédiction. Une façon de choisir consiste par exemple à évaluer tous les modes de prédiction et à conserver le mode de prédiction qui minimise une fonction de coût tel que, classiquement, le coût débit-distorsion. 20 Lors d'une étape E212, le mode de prédiction choisi pour le bloc courant est codé à partir des blocs voisins du bloc courant. La figure 2 illustre un exemple de position des blocs voisins Ab et Bb du bloc courant Xb pour coder le mode de prédiction du bloc courant Xb. Au cours de l'étape E212, le mode de prédiction intra choisi pour le bloc courant est codé en utilisant les modes de prédiction intra associés aux blocs voisins. 25 Par exemple, l'approche décrite dans la norme HEVC pour coder le mode de prédiction du bloc courant peut être utilisée. Dans l'exemple de la figure 2, une telle approche consiste à identifier le mode de prédiction intra mA associé au bloc Ab situé au-dessus du bloc courant, et le mode de prédiction intra me associé au bloc Bb situé juste à gauche du bloc courant. En fonction de la valeur de mA et de mB, une liste dite MPM (pour Most Probable Mode), 30 contenant 3 modes de prédiction intra, et une liste dite non-MPM, contenant les 32 autres modes de prédiction, sont créées. Selon la norme HEVC, afin de coder le mode de prédiction intra du bloc courant, des éléments de syntaxe sont transmis : 35 -un indicateur binaire indiquant si le mode de prédiction à coder pour le bloc courant est dans la liste MPM ou non, 13 -si le mode de prédiction du bloc courant appartient à la liste MPM, un index dans la liste MPM correspondant au mode de prédiction du bloc courant est codé, - si le mode de prédiction du bloc courant n'appartient pas à la liste MPM, un index dans la liste non-MPM correspondant au mode de prédiction du bloc courant est codé. 5 Lors d'une étape E213, le résidu de prédiction R pour le bloc courant est construit. Au cours de l'étape E213, de manière classique, un bloc prédit P est construit en fonction du mode de prédiction choisi à l'étape E211. Puis le résidu de prédiction R est obtenu en calculant la différence pour chaque pixel, entre le bloc prédit P et le bloc courant original. Lors d'une étape E214, le résidu de prédiction R est transformé en RT. 10 Au cours de l'étape E214, une transformée fréquentielle est appliquée au bloc de résidu R de façon à produire le bloc RT comprenant des coefficients transformés. La transformée pourra être une transformée de type DCT par exemple. Il est possible de choisir la transformée à utiliser parmi un ensemble prédéterminé de transformées ET et de signaler la transformée utilisée au décodeur. 15 Lors d'une étape E215, le bloc de résidu transformé RT est quantifié à l'aide par exemple d'une quantification scalaire de pas de quantification S. Ceci produit le bloc de résidu de prédiction transformé quantifié RTQ. Lors d'une étape E216, les coefficients du bloc quantifié RTQ sont codés par un codeur entropique. On peut par exemple utiliser le codage entropique spécifié dans la norme HEVC. 20 De manière connue, le bloc courant est décodé en dé-quantifiant les coefficients du bloc quantifié RTQ, puis en appliquant la transformée inverse aux coefficients dé-quantifiés pour obtenir le résidu de prédiction décodé. La prédiction est ensuite ajoutée au résidu de prédiction décodé afin de reconstruire le bloc courant et d'obtenir sa version décodée. La version décodée du bloc courant peut ensuite être utilisée ultérieurement pour prédire 25 spatialement d'autres blocs voisins de l'image ou bien pour prédire des blocs d'autres images par prédiction inter-images. On décrit ci-après l'étape E22 de codage du bloc selon le deuxième mode de codage M2, selon un mode particulier de réalisation de l'invention. Selon le mode particulier décrit ici, le 30 deuxième mode de codage correspond à un codage par prédiction ILR. Au cours d'une étape E220, un prédicteur local PL pour le bloc courant est déterminé. Selon le mode de codage décrit ici, les pixels du bloc courant sont prédits par des pixels précédemment reconstruits d'un bloc voisin du bloc courant ou du bloc courant lui-même. De préférence, pour prédire, on choisit des pixels qui sont les plus proches possibles du 35 pixel à prédire. Pour cette raison, on parle de prédicteur local. Le prédicteur local PL peut également être assimilé à un mode de prédiction du bloc courant associé au deuxième mode de codage M2. Selon cette interprétation, dans le mode particulier de réalisation décrit ici, le 14 premier mode de codage utilise un premier groupe de modes de prédiction intra, par exemple les modes de prédiction intra définis par le standard HEVC, et le deuxième mode de codage, ici le mode ILR, utilise un deuxième groupe de modes de prédiction distinct du premier groupe de modes de prédiction intra. 5 Le prédicteur local PL peut être unique ou il peut être sélectionné parmi un ensemble de prédicteurs locaux prédéterminés (deuxième groupe de modes de prédiction). Selon une variante de réalisation, 4 prédicteurs locaux sont définis. Ainsi, si on appelle X un pixel courant à prédire du bloc courant, A le pixel situé immédiatement à gauche de X, B le pixel situé immédiatement à gauche et au-dessus de X, C le pixel situé immédiatement au- 10 dessus de X, tel qu'illustré en figure 3 montrant un bloc courant Xb. 4 prédicteurs locaux PLI, PL2, PL3, PL4 peuvent être définis comme suit: PLI (X) = min(A,B) si C a max(A,B) max(A,B) si C min(A,B) A+B-C sinon 15 PL2(X) = A PL3(X) = B PL4(X) = C où min(A,B) correspond à la fonction retournant la valeur la plus petite entre la valeur de A et la valeur de B et max(A,B) correspond à la fonction retournant la valeur la plus grande entre 20 la valeur de A et la valeur de B. Au cours de l'étape E220, on détermine quel prédicteur local PL utiliser pour le bloc courant. Autrement dit, le même prédicteur local sera utilisé pour tous les pixels du bloc courant, i.e. la même fonction de prédiction. Pour cela, plusieurs variantes de réalisation sont possibles. Le codage du bloc courant avec chacun des prédicteurs peut être simulé (de manière 25 similaire à une optimisation pour choisir un mode de codage pour le bloc courant), et le prédicteur local qui optimise une fonction de coût (par exemple, qui minimise la fonction D + À .R où R est le débit utilisé pour coder le bloc, D est la distorsion du bloc décodé par rapport au bloc original, et À est un paramètre fixé par l'utilisateur) est sélectionné. Ou bien, afin de limiter la complexité de la sélection d'un prédicteur local pour le bloc 30 courant, une orientation de la texture des pixels précédemment codés est analysée. Par exemple, les pixels précédemment codés dans le bloc qui sont situés au-dessus ou à gauche du bloc courant sont analysés à l'aide d'un opérateur de type Sobel. S'il est déterminé que: - l'orientation est horizontale, le prédicteur local PL2 est sélectionné, 35 - l'orientation est verticale, le prédicteur local PL3 est sélectionné, - l'orientation est diagonale, le prédicteur local PL4 est sélectionné, - si aucune orientation ne se dégage, le prédicteur local PLI est sélectionné. 15 Un élément de syntaxe est codé dans le flux de données STR pour indiquer au décodeur quel prédicteur local a été utilisé pour prédire le bloc courant. Au cours d'une étape E221, un pas de quantification 82 est déterminé. Par exemple, le pas de quantification 62 dépend d'un même paramètre de quantification que le pas de 5 quantification Siqui serait déterminé à l'étape E210 si le bloc courant était codé selon le premier mode de codage. Lors d'une étape E222, un résidu de prédiction R1 est calculé pour le bloc courant. Pour cela, une fois le prédicteur local choisi, pour chaque pixel courant du bloc courant: -le pixel courant X du bloc courant est prédit par le prédicteur local PL sélectionné, à l'aide 10 soit des pixels extérieurs au bloc et déjà reconstruits (et donc disponibles avec leur valeur décodée), soit de pixels précédemment reconstruits dans le bloc courant, soit des deux, afin d'obtenir une valeur prédite PRED. Dans tous les cas le prédicteur PL utilise des pixels précédemment reconstruits. Sur la figure 3, on voit que les pixels du bloc courant situés sur la première ligne et/ou la première colonne du bloc courant utiliseront comme pixels de 15 référence (pour construire la valeur prédite PRED) des pixels extérieurs au bloc et déjà reconstruits (pixels en gris sur la figure 3) et éventuellement des pixels déjà reconstruits du bloc courant. Pour les autres pixels du bloc courant, les pixels de référence utilisés pour construire la valeur prédite PRED sont situés à l'intérieur du bloc courant. -la différence DIFF entre PRED et X est quantifiée en une valeur Q(X), par un quantificateur 20 scalaire de pas de quantification (5'2, par Q(X) = ScalarQuant(DIFF) = ScalarQuant(82, X- PRED), le quantificateur scalaire étant par exemple un quantificateur scalaire au plus proche X-F- A voisin tel que: ScalarQuant(4, x) = floor t ( Q(X) est le résidu quantifié associé à X. Il est calculé dans le domaine spatial, i.e. calculé directement à partir de la différence entre la valeur prédite PRED du pixel X et la valeur 25 originale de X. Un tel résidu quantifié Q(X) pour le pixel X est mémorisé dans un bloc de résidu de prédiction quantifié R1 Q, qui sera codé ultérieurement. -la valeur prédite décodée P1(X) de X est calculée en ajoutant à la valeur prédite PRED la valeur dé-quantifiée du résidu quantifié Q(X). La valeur prédite décodée P1(X) de X est ainsi obtenue par P1(X) = PRED + ScalarDequant(62, Q(X)). Par exemple, la fonction inverse de 30 quantification scalaire au plus proche est donnée par: ScalarDequant(a,x) = axx. La valeur prédite décodée P1(X) permet ainsi de prédire d'éventuels pixels qui restent à traiter dans le bloc courant. Par ailleurs, le bloc P1 comprenant les valeurs décodées/reconstruites des pixels du bloc courant constitue le prédicteur ILR du bloc courant (par opposition au prédicteur intra classique). 35 16 Les sous-étapes décrites ci-dessus sont effectuées pour tous les pixels du bloc courant, dans un ordre de parcours qui assure que les pixels utilisés pour la prédiction choisie parmi PL1,..., PL4 soient disponibles. Selon une variante de réalisation, l'ordre de parcours du bloc courant est l'ordre 5 lexicographique, i.e. de gauche à droite, et de haut en bas. Selon une autre variante de réalisation, plusieurs ordres de parcours du bloc courant peuvent être utilisés, par exemple : -l'ordre lexicographique, ou 10 -en parcourant la première colonne de haut en bas, puis la colonne juste à sa droite, etc . ou bien, -en parcourant les diagonales les unes après les autres. Selon cette autre variante, il est possible de simuler le coût de codage associé à chacun des ordres de parcours et de choisir le meilleur ordre de parcours du bloc courant au sens 15 débit/distorsion, puis de coder pour le bloc courant une information représentative de l'ordre de parcours choisi. A l'issue de l'étape E222, le bloc de résidu quantifié R1Q a été déterminé. Ce bloc de résidu quantifié R1Q doit être codé pour être transmis au décodeur. Le prédicteur P1 du bloc 20 courant a également été déterminé. Lors d'une étape E223, le bloc de résidu quantifié R1Q est codé afin de le transmettre au décodeur. Il est possible d'utiliser toute approche connue telle que la méthode décrite dans HEVC pour coder les coefficients quantifiés d'un résidu de prédiction classique. 25 Selon le mode particulier de réalisation de l'invention décrit ici les valeurs du bloc de résidu quantifié R1Q sont codées à l'aide d'un codeur entropique à partir du flux de données STR. Selon un mode particulier de réalisation de l'invention, il est possible de déterminer et coder un résidu de prédiction additionnel R2 à partir du prédicteur ILR obtenu pour le bloc courant. 30 Le codage d'un résidu de prédiction additionnel R2 est toutefois optionnel. Il est possible en effet de simplement coder le bloc courant par sa version prédite P1 et le résidu quantifié R1 Q. Afin de coder un résidu de prédiction additionnel R2 pour le bloc courant, les étapes suivantes sont mises en oeuvre. 35 Lors d'une étape E224, la différence R2 entre le prédicteur Pl et le bloc courant original Xb est calculée afin de constituer un résidu additionnel R2 : R2= Xb-Pl. Les étapes suivantes correspondent aux étapes classiques de codage de ce résidu R2. 17 Lors d'une étape E225, le résidu R2 est transformé à l'aide d'une transformée fréquentielle de façon à produire le bloc de coefficients R2T. La transformée peut être une transformée de type DCT par exemple. Il est possible de choisir la transformée à utiliser parmi un ensemble prédéterminé de transformées ET2 et de 5 signaler la transformée utilisée au décodeur. Dans ce cas, l'ensemble ET2 peut être différent de l'ensemble El-, afin de s'adapter aux statistiques particulières du résidu R2. Lors d'une étape E226, le bloc de coefficients R2T est quantifié, par exemple à l'aide d'une quantification scalaire de pas de quantification ô. Ceci produit le bloc R2TQ. Le pas de quantification 6 peut être fixé par l'utilisateur, il peut également être calculé à 10 l'aide d'un autre paramètre 2 fixant le compromis entre compression et qualité et entré par l'utilisateur ou le codeur. Par exemple, le pas de quantification ô peut correspondre au pas de quantification 6, ou être déterminé de manière similaire à celui-ci. Lors d'une étape E227, les coefficients du bloc quantifié R2TQ sont alors transmis de façon codée. On peut par exemple utiliser le codage spécifié dans la norme HEVC. 15 De manière connue, le bloc courant est décodé en dé-quantifiant les coefficients du bloc quantifié R2TQ, puis en appliquant la transformée inverse aux coefficients dé-quantifiés pour obtenir le résidu de prédiction décodé. La prédiction P1 est ensuite ajoutée au résidu de prédiction décodé afin de reconstruire le bloc courant et d'obtenir sa version décodée Xrec. La version décodée Xre, du bloc courant peut ensuite être utilisée ultérieurement pour prédire 20 spatialement d'autres blocs voisins de l'image ou bien pour prédire des blocs d'autres images par prédiction inter-images. Lors d'une étape E23, il est vérifié si le bloc courant est le dernier bloc de l'image à traiter par 25 le procédé de codage, compte tenu de l'ordre de parcours défini précédemment. Si le bloc courant n'est pas le dernier bloc de l'image à traiter, lors d'une étape E24, le bloc suivant de l'image à traiter est sélectionné selon le parcours de l'image défini précédemment et le procédé de codage passe à l'étape E2, où le bloc sélectionné devient le bloc courant à traiter. 30 Si tous les blocs de l'image ont été codés, le procédé passe à l'application des méthodes de post-traitements à appliquer à l'image reconstruite lors d'une étape E231. Comme discuté plus haut, ces méthodes de post-traitements peuvent être un filtrage deblocking et/ou une méthode SAO. L'application des post-traitements étant faite de manière similaire au codeur et au décodeur, l'étape E231 sera décrite plus loin. 35 Après l'application d'au moins une méthode de post-traitement, le procédé passe au codage (étape E25) de l'image suivante de la vidéo le cas échéant. 18 La figure 4 présente des étapes du procédé de décodage d'un flux STR de données codées représentatif d'une séquence d'images Ii, 12, ..., INb à décoder selon un mode particulier de réalisation de l'invention. Par exemple, le flux de données STR a été généré via le procédé de codage présenté en 5 relation avec la figure 1. Le flux de données STR est fourni en entrée d'un dispositif de décodage DEC, tel que décrit en relation avec la figure 7. Le procédé de décodage procède au décodage du flux image par image et chaque image est décodée bloc par bloc. Lors d'une étape E40, une image I; à décoder est subdivisée en blocs. Chaque bloc va subir 10 une opération de décodage consistant en une suite d'étapes qui sont détaillées par la suite. Les blocs peuvent être de même taille ou de tailles différentes. Lors d'une étape E41, un premier bloc ou sous-bloc Xb à décoder de l'image I; est sélectionné comme bloc courant selon un sens de parcours de l'image I; qui est prédéterminé. Par exemple, il peut s'agir du premier bloc dans l'ordre lexicographique de 15 parcours de l'image. Lors d'une étape E42, une information indiquant un mode codage pour le bloc courant est lue à partir du flux de données STR. Selon le mode particulier de réalisation décrit ici, cette information indique si le bloc courant est codé selon un premier mode de codage M1 ou selon un deuxième mode de codage M2. Selon le mode particulier de réalisation décrit ici, le 20 premier mode de codage M1 correspond au codage du bloc courant par prédiction intra classique, par exemple tel que défini selon le standard HEVC, et le deuxième mode de codage M2 correspond au codage par prédiction In Loop Residual (ILR). Dans d'autres modes particuliers de réalisation, l'information lue à partir du flux STR peut également indiquer l'utilisation d'autres modes de codage pour coder le bloc courant (non 25 décrits ici). On décrit ci-après l'étape E43 de décodage du bloc courant lorsque le bloc courant est codé selon le premier mode de codage Ml. Lors d'une étape E430, un pas de quantification 81 est déterminé. Par exemple, le pas de quantification 81 est déterminé à partir du paramètre de quantification QP lu lors de l'étape 30 E401 ou de manière similaire à ce qui a été fait au codeur. Par exemple, le pas de quantification Si peut être calculé à l'aide du paramètre de quantification QP lu lors de l'étape E401. Par exemple, le paramètre de quantification QP peut être le paramètre de quantification utilisé classiquement dans les normes AVC ou HEVC. Ainsi, dans la norme HEVC, le pas de quantification Si est déterminé par l'équation 35 Si=levelScale[ QPV06 ] « (QP/6)) où levelScale[ k = { 40, 45, 51, 57, 64, 72 } pour k = 0..5. 19 Lors d'une étape E431, le mode de prédiction utilisé pour coder le bloc courant est décodé à partir des blocs voisins. Pour cela, comme ce qui a été fait au codeur, le mode de prédiction intra choisi pour le bloc courant est décodé, en utilisant les modes de prédiction intra associés aux blocs voisins du bloc courant. 5 La construction des deux listes MPM et non-MPM est strictement similaire à ce qui a été fait lors du codage. Selon le standard HEVC, des éléments de syntaxe du type suivant sont décodés : -un indicateur binaire indiquant si le mode de prédiction à coder pour le bloc courant est 10 dans la liste MPM ou non, -si le mode de prédiction du bloc courant appartient à la liste MPM, un index dans la liste MPM correspondant au mode de prédiction du bloc courant est codé, - si le mode de prédiction du bloc courant n'appartient pas à la liste MPM, un index dans la liste non-MPM correspondant au mode de prédiction du bloc courant est codé. 15 L'indicateur binaire et l'index du mode de prédiction sont donc lus pour le bloc courant à partir du flux de données STR, pour décoder le mode de prédiction intra du bloc courant. Lors d'une étape E432, le décodeur construit un bloc prédit P pour le bloc courant à partir du mode de prédiction décodé. Lors d'une étape E433, le décodeur décode les coefficients du bloc quantifié RTQ à partir du 20 flux de données STR, par exemple en utilisant le décodage spécifié dans la norme HEVC. Lors d'une étape E434, le bloc décodé RTQ est dé-quantifié, par exemple à l'aide d'une dé-quantification scalaire de pas de quantification 81. Ceci produit le bloc de coefficients dé-quantifiés RTQD. Lors d'une étape E435, une transformée fréquentielle inverse est appliquée au bloc de 25 coefficients dé-quantifiés RTQD de façon à produire le bloc de résidu de prédiction décodé RTaDi. La transformée pourra être une transformée de type DCT inverse par exemple. Il est possible de choisir la transformée à utiliser parmi un ensemble prédéterminé de transformées En en décodant un indicateur à partir du flux de données STR. Lors d'une étape E436, le bloc courant est reconstruit à partir du bloc prédit P obtenu à 30 l'étape E432 et le bloc de résidu décodé RTQDI obtenu à l'étape E435, afin de produire le bloc courant décodé Xrec, par Xrec= P + RTQDI. On décrit ci-après l'étape E44 de décodage du bloc courant lorsque le bloc courant est codé selon le deuxième mode de codage M2. 35 Lors d'une étape E440, le prédicteur local PL utilisé pour prédire les pixels du bloc courant est déterminé. Dans le cas où un seul prédicteur est disponible, le prédicteur local est par 20 exemple défini par défaut au niveau du décodeur et aucun élément de syntaxe n'a besoin d'être lu dans le flux STR pour le déterminer. Dans le cas où plusieurs prédicteurs locaux sont disponibles, par exemple les prédicteurs PL1-PL4 décrits plus haut, un élément de syntaxe est décodé du flux de données STR pour 5 identifier quel prédicteur local a été utilisé pour prédire le bloc courant. Le prédicteur local est donc déterminé à partir de cet élément de syntaxe décodé. Lors d'une étape E441, le pas de quantification 62 est déterminé, de manière similaire à ce qui a été fait au codeur. Lors d'une étape E442, le résidu quantifié Rio est décodé à partir du flux de données STR. Il 10 est possible d'utiliser toute approche connue telle que la méthode décrite dans HEVC pour décoder les coefficients quantifiés du résidu de prédiction classique. Lors d'une étape E443, le bloc résidu quantifié R1Q est dé-quantifié à l'aide du pas de quantification 62, de façon à produire le bloc de résidu dé-quantifié R1 QD. Lors d'une étape E444, lorsque le bloc de résidu dé-quantifié R1 QD est obtenu, le bloc prédit 15 P1 est construit à l'aide du prédicteur local PL déterminé lors de l'étape E440. Au cours de l'étape E444, chaque pixel du bloc courant est prédit et reconstruit de la manière suivante: -le pixel courant X du bloc courant est prédit par le prédicteur PL sélectionné, à l'aide soit des pixels extérieurs au bloc et déjà décodés, soit de pixels précédemment reconstruits du 20 bloc courant, soit des deux, afin d'obtenir une valeur prédite PRED. Dans tous les cas, le prédicteur PL utilise des pixels précédemment décodés. -la valeur prédite décodée P1(X) du pixel courant X est calculée en ajoutant à la valeur prédite PRED, la valeur dé-quantifiée du résidu de prédiction R1QD, tel que P1(X) = PRED + R1QD(X). 25 Ces étapes sont mises en oeuvre pour tous les pixels du bloc courant, dans un ordre de parcours qui assure que les pixels utilisés pour la prédiction choisie parmi PL1,... ,PL4 soient disponibles. Par exemple, l'ordre de parcours est l'ordre lexicographique (de gauche à droite, puis les 30 lignes de haut en bas). Selon un mode particulier de réalisation de l'invention, le bloc prédit P1 comprenant les valeurs prédites décodées P1(X) de chaque pixel du bloc courant constitue ici le bloc courant décodé X.. Selon un autre mode particulier de réalisation de l'invention, on considère ici qu'un résidu de 35 prédiction additionnel a été codé pour le bloc courant. Il est donc nécessaire de décoder ce résidu de prédiction additionnel afin de reconstruire la version décodée du bloc courant X. 21 Par exemple, cet autre mode particulier de réalisation peut être activé ou non par défaut au niveau du codeur et du décodeur. Ou bien, un indicateur peut être codé dans le flux de données avec les informations de niveau bloc pour indiquer pour chaque bloc codé selon le mode de codage ILR si un résidu de prédiction additionnel est codé. Ou bien encore un 5 indicateur peut être codé dans le flux de données avec les informations de niveau image ou séquence d'images pour indiquer pour tous les blocs de l'image ou de la séquence d'images codés selon le mode de codage ILR si un résidu de prédiction additionnel est codé. Lorsqu'un résidu de prédiction additionnel est codé pour le bloc courant, lors d'une étape E445, les coefficients du résidu de prédiction quantifié R2-ro sont décodés du flux de données 10 STR, à l'aide de moyens adaptés à ceux mis en oeuvre au codeur, par exemple les moyens mis en oeuvre dans un décodeur HEVC. Lors d'une étape E446, le bloc de coefficients quantifiés R2-ro est dé-quantifié, par exemple à l'aide d'une dé-quantification scalaire de pas de quantification Si. Ceci produit le bloc de coefficients dé-quantifiés R2TQD. 15 Lors d'une étape E447, une transformée fréquentielle inverse est appliquée au bloc R2TQD de façon à produire le bloc de résidu de prédiction décodé R2Tool. La transformée inverse pourra être une transformée de type DCT inverse par exemple. Il est possible de choisir la transformée à utiliser parmi un ensemble prédéterminé de transformées ET2 et de décoder l'information signalant la transformée à utiliser au décodeur. 20 Dans ce cas, l'ensemble ET2 est différent de l'ensemble ET, afin de s'adapter aux statistiques particulières du résidu R2. Lors d'une étape E448, le bloc courant est reconstruit en ajoutant le bloc prédit P1 obtenu lors de l'étape E444 au résidu de prédiction décodé R2TQD'. 25 Lors d'une étape E45, il est vérifié si le bloc courant est le dernier bloc de l'image à traiter par le procédé de décodage, compte tenu de l'ordre de parcours défini précédemment. Si le bloc courant n'est pas le dernier bloc de l'image à traiter, lors d'une étape E46, le bloc suivant de l'image à traiter est sélectionné selon le parcours de l'image défini précédemment et le 30 procédé de décodage passe à l'étape E42, le bloc sélectionné devenant le bloc courant à traiter. Si tous les blocs de l'image ont été décodés, le procédé passe à l'application d'au moins une méthode de post-traitement à appliquer à l'image reconstruite lors d'une étape E451. Comme discuté plus haut, ces méthodes de post-traitement peuvent être un filtrage 35 deblocking et/ou une méthode SAO. Après l'application d'au moins une méthode de post-traitement, le procédé passe au décodage (étape E47) de l'image suivante de la vidéo le cas échéant. 22 On décrit ci-après les étapes E231 et E451 d'application d'au moins une méthode de post-traitement respectivement au codeur et au décodeur selon l'invention. Les post-traitements nécessitent généralement d'avoir accès à des données contenues dans 5 les blocs voisins d'un bloc courant à traiter, y compris les blocs « futurs » ou non encore reconstruits selon l'ordre de parcours des blocs dans l'image utilisé au codeur et au décodeur. Les post-traitements sont donc généralement effectués en faisant une deuxième boucle complète sur tous les blocs reconstruits de l'image. Ainsi, au codeur et au décodeur, une première boucle sur l'ensemble des blocs de l'image construit une version reconstruite 10 des blocs à partir des informations codées pour les blocs, puis une boucle de post-traitement parcourt à nouveau les blocs reconstruits afin d'améliorer leur reconstruction. Deux exemples d'amélioration sont donnés ci-dessus, le principe général de l'invention s'applique bien sür à d'autres méthodes de post-traitement. 15 Filtrage deblocking Au cours de ce traitement, un filtrage dit de « deblocking » est appliqué à des blocs reconstruits de l'image. Ce filtrage consiste en général à appliquer un filtre passe-bas aux pixels qui se trouvent à la frontière d'un bloc reconstruit. Un tel filtre est décrit de manière générale dans l'article 20 Andrey Norkin et AL, "HEVC deblocking filtef, IEEE Transactions on Circuits and Systems for Video Technology (Volume: 22, Issue: 12, Dec. 2012), page(s): 1746 - 1754'05 October 2012. Selon un mode particulier de réalisation de l'invention, le filtrage de deblocking n'est appliqué qu'à la frontière de deux blocs reconstruits qui ont été précédemment codés par un mode de 25 codage classique, i.e. autre que ILR. Ce mode particulier de réalisation de l'invention est par exemple illustré sur la figure 5A montrant: - un bloc de pixels 80 reconstruit et ayant été décodé selon le mode de codage M2 (ILR), 30 - un bloc de pixels 81 reconstruit et ayant été décodé selon un mode de codage M1 (non ILR), voisin du bloc 80, - un bloc de pixels 82 reconstruit et ayant été décodé selon un mode de codage M1 (non ILR), voisin du bloc 81. Sur la figure 5A : 35 - les pixels hachurés correspondent aux pixels pour lesquels l'application du filtrage de deblocking est désactivée, 23 - les pixels remplis par des points sont des pixels qui ne sont, de par leur emplacement dans le bloc reconstruit, non concernés par le filtrage de deblocking, - et les pixels blancs sont les pixels auxquels le filtrage de deblocking est appliqué. Ainsi, selon le mode particulier de réalisation de l'invention décrit, lorsque le bloc courant, 5 par exemple le bloc 80, est décodé ou codé selon le mode de codage M2, l'application du filtrage de deblocking au bloc courant reconstruit est désactivée pour tous les pixels du bloc courant. Ceci est illustré en figure 5A, sur laquelle tous les pixels à la frontière du bloc 80 sont hachurés. De plus, lorsque le bloc courant, par exemple le bloc 81, est décodé ou codé selon un mode 10 de codage classique ou non ILR, le filtrage de deblocking est appliqué à un pixel du bloc courant reconstruit si le pixel est situé sur une frontière du bloc courant reconstruit avec un bloc voisin et si le bloc voisin a été décodé ou codé selon un mode de codage classique, i.e. non ILR. Ceci est illustré en figure 5A, sur laquelle tous les pixels de bloc 81 situés à la frontière avec le bloc 80 sont hachurés et tous les pixels de bloc 81 situés à la frontière avec 15 le bloc 82 sont blancs. Selon un mode particulier de réalisation de l'invention, le filtrage de deblocking n'est appliqué qu'à la frontière de deux blocs dont au moins un des deux blocs est un bloc codé/décodé selon un mode de codage classique (par exemple M1 dans l'exemple décrit en relation avec 20 les figures 2 et 4). Ce mode particulier de réalisation de l'invention est par exemple illustré sur la figure 5B montrant: - un bloc de pixels 83 reconstruit et ayant été décodé selon le mode de codage M1 (non ILR), 25 - un bloc de pixels 84 reconstruit et ayant été décodé selon un mode de codage M2 (ILR), voisin du bloc 83, - un bloc de pixels 85 reconstruit et ayant été décodé selon un mode de codage M2 (ILR), voisin du bloc 84. Sur la figure 5B : 30 - les pixels hachurés correspondent aux pixels pour lesquels l'application du filtrage de deblocking est désactivée, - les pixels remplis par des points sont des pixels qui ne sont, de par leur emplacement dans le bloc, non concernés par le filtrage de deblocking, - les pixels blancs sont les pixels auxquels le filtrage de deblocking est appliqué. 35 Ainsi, selon le mode particulier de réalisation de l'invention décrit, lorsque le bloc courant, par exemple le bloc 84, a été décodé ou codé selon le mode de codage M2 (ILR), 24 l'application du filtrage de deblocking est désactivée pour un pixel du bloc courant 84 reconstruit si le pixel est situé sur une frontière du bloc courant 84 reconstruit avec un bloc voisin et si ledit bloc voisin a été décodé ou codé selon le mode de codage M2 (ILR). Ceci est illustré en figure 5B sur laquelle tous les pixels du bloc 84 situés à la frontière avec le 5 bloc 85 sont hachurés. De plus, selon ce mode particulier de réalisation de l'invention, le filtrage de deblocking est appliqué à un pixel du bloc courant (84) reconstruit, si le pixel est situé sur une frontière du bloc courant reconstruit avec un bloc voisin et si le bloc voisin a été décodé ou codé selon un mode de codage distinct du mode de codage M2. Ceci est illustré en figure 5B sur laquelle 10 tous les pixels du bloc 84 situés à la frontière avec le bloc 83 sont blancs. Traitement SAO Classiquement, le traitement SAO s'applique à tous les pixels d'un bloc reconstruit. Un tel traitement SAO consiste à décaler la valeur décodée de chaque pixel du bloc d'une valeur 15 transmise explicitement au décodeur, en fonction de l'environnement dudit pixel. Le traitement SAO est décrit dans Chih-Ming Fu, Elena Alshina, Alexander Alshin, Yu-Wen Huang, Ching-Yeh Chen, and Chia-Yang Tsai, Chih-Wei Hsu, Shaw-Min Lei, Jeong-Hoon Park, and Woo-Jin Han, "Semple Adoptive Offset in the HEVC Standard' IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 22, 20 NO. 12, DECEMBER 2012, 1755. Selon un mode particulier de réalisation de l'invention, le traitement SAO est appliqué uniquement sur les blocs reconstruits qui ont été codés par un mode de codage classique, i.e. non ILR. Autrement dit, lorsque le bloc courant est décodé ou codé selon le mode de codage ILR (M2 dans les exemples décrits précédemment), l'application de la méthode SAO 25 au bloc courant reconstruit est désactivée pour tous les pixels du bloc courant reconstruit. La figure 6 présente la structure simplifiée d'un dispositif de codage COD adapté pour mettre en oeuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention. 30 Selon un mode particulier de réalisation de l'invention, les étapes du procédé de codage sont mises en oeuvre par des instructions de programme d'ordinateur. Pour cela, le dispositif de codage COD a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM, une unité de traitement UT, équipée par exemple d'un processeur PROC, et pilotée par le programme d'ordinateur PG stocké en mémoire MEM. Le programme d'ordinateur PG 35 comprend des instructions pour mettre en oeuvre les étapes du procédé de codage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur PROC. 25 A l'initialisation, les instructions de code du programme d'ordinateur PG sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROC. Le processeur PROC de l'unité de traitement UT met notamment en oeuvre les étapes du procédé de codage décrit ci-dessus, selon les instructions du 5 programme d'ordinateur PG. La figure 7 présente la structure simplifiée d'un dispositif de décodage DEC adapté pour mettre en oeuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention. 10 Selon un mode particulier de réalisation de l'invention, le dispositif de décodage DEC a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEMO, une unité de traitement UTO, équipée par exemple d'un processeur PROCO, et pilotée par le programme d'ordinateur PGO stocké en mémoire MEMO. Le programme d'ordinateur PGO comprend des instructions pour mettre en oeuvre les étapes du procédé de décodage tel que 15 décrit ci-dessus, lorsque le programme est exécuté par le processeur PROCO. A l'initialisation, les instructions de code du programme d'ordinateur PGO sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROCO. Le processeur PROCO de l'unité de traitement UTO met notamment en oeuvre les étapes du procédé de décodage décrit ci-dessus, selon les instructions du 20 programme d'ordinateur REVENDICATIONS1. Procédé de décodage d'un flux de données codées représentatif d'au moins une image, ladite image étant découpée en blocs, le procédé de décodage comprend, pour au moins un bloc de l'image, dit bloc courant: - le décodage (E42) d'une information indiquant un mode de codage du bloc courant parmi au moins un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage étant un mode de codage selon lequel le bloc courant est décodé (E44) via, pour chaque pixel du bloc courant: - l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé, - le décodage d'un résidu de prédiction associé audit pixel, - la reconstruction dudit pixel à partir de la prédiction dudit pixel obtenue et du résidu de prédiction décodé associé audit pixel, - le décodage (E44, E43) du bloc courant selon le mode de codage indiqué par l'information 20 décodée, - lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du deuxième mode de codage, l'application d'au moins une méthode de traitement au bloc courant reconstruit, - lorsque le mode de codage du bloc courant correspond au deuxième mode de codage, la 25 désactivation de l'application de ladite au moins une méthode de traitement au bloc courant reconstruit pour au moins un pixel dudit bloc courant. 2. Procédé de codage d'un flux de données codées représentatif d'au moins une image, ladite image étant découpée en blocs, le procédé de codage comprend, pour au moins un 30 bloc de l'image, dit bloc courant: - le codage (E20) d'une information indiquant un mode de codage du bloc courant parmi au moins un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage étant un mode de codage selon lequel le bloc courant est codé (E22) via, pour chaque pixel du bloc courant: 35 - l'obtention (E222) d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé, 27 - le codage (E223) d'un résidu de prédiction associé audit pixel obtenu à partir de la prédiction dudit pixel, - la reconstruction dudit pixel à partir du résidu de prédiction décodé associé audit pixel et de la prédiction dudit pixel, 5 le codage (E21, E22) du bloc courant selon le mode de codage indiqué par l'information codée, - lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du deuxième mode de codage, l'application d'au moins une méthode de traitement au bloc courant reconstruit, 10 - lorsque le mode de codage du bloc courant correspond au deuxième mode de codage, la désactivation de l'application de ladite au moins une méthode de traitement au bloc courant reconstruit pour au moins un pixel dudit bloc courant. 3. Procédé selon l'une quelconque des revendications 1 ou 2, dans lequel ladite méthode de 15 traitement est un filtrage de déblocage appliqué aux pixels du bloc courant reconstruit qui sont situés à la frontière du bloc courant reconstruit avec un bloc voisin reconstruit dans l'image. 4. Procédé selon la revendication 3, dans lequel: - lorsque le bloc courant est décodé ou codé selon le deuxième mode de codage: - l'application du filtrage de déblocage au bloc courant reconstruit est désactivée pour tous les pixels du bloc courant reconstruit, - lorsque le bloc courant est décodé ou codé selon un mode de codage distinct du deuxième mode de codage: - le filtrage de déblocage est appliqué à un pixel du bloc courant reconstruit si ledit pixel est situé sur une frontière dudit bloc courant reconstruit avec un bloc reconstruit voisin dans l'image et si ledit bloc voisin est décodé ou codé selon un mode de codage distinct du deuxième mode de codage. 5. Procédé selon la revendication 3, dans lequel: - lorsque le bloc courant est décodé ou codé selon le deuxième mode de codage: - l'application du filtrage de déblocage au bloc courant reconstruit est désactivée pour un pixel du bloc courant reconstruit si ledit pixel est situé sur une frontière dudit bloc courant reconstruit avec un bloc voisin dans l'image et si ledit bloc voisin est décodé ou codé selon le deuxième mode de codage, et - le filtrage de déblocage est appliqué à un pixel du bloc courant reconstruit, si ledit pixel est situé sur une frontière dudit bloc courant reconstruit avec un bloc voisin 28 reconstruit dans l'image et si ledit bloc voisin est décodé ou codé selon un mode de codage distinct du deuxième mode de codage. 6. Procédé selon l'une quelconque des revendications 1 ou 2, dans lequel ladite méthode de 5 traitement est une méthode de correction d'au moins un pixel du bloc courant reconstruit par ajout à la valeur reconstruite dudit pixel d'une valeur obtenue à partir d'une information codée dans le flux de données ou décodée depuis le flux de données. 10 7. Procédé selon la revendication 6, dans lequel, lorsque le bloc courant est décodé ou codé selon le deuxième mode de codage, l'application de ladite méthode de correction au bloc courant reconstruit est désactivée pour tous les pixels du bloc courant reconstruit. 8. Dispositif de décodage d'un flux de données codées représentatif d'au moins une image, 15 ladite image étant découpée en blocs, le dispositif de décodage comprend un processeur (PROCO) configuré pour, pour au moins un bloc de l'image, dit bloc courant: - décoder une information indiquant un mode de codage du bloc courant parmi au moins un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage étant un mode de codage selon lequel le bloc courant est décodé via, pour chaque pixel du 20 bloc courant: - l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé, 25 - le décodage d'un résidu de prédiction associé audit pixel, - la reconstruction dudit pixel à partir de la prédiction dudit pixel obtenue et du résidu de prédiction décodé associé audit pixel, - décoder le bloc courant selon le mode de codage indiqué par l'information décodée, - lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du 30 deuxième mode de codage, appliquer au moins une méthode de traitement au bloc courant reconstruit, - lorsque le mode de codage du bloc courant correspond au deuxième mode de codage, désactiver l'application de ladite au moins une méthode de traitement au bloc courant reconstruit pour au moins un pixel dudit bloc courant. 35 29 9. Dispositif de codage d'un flux de données codées représentatif d'au moins une image, ladite image étant découpée en blocs, le dispositif de codage comprend un processeur (PROC) configuré pour, pour au moins un bloc de l'image, dit bloc courant: - coder une information indiquant un mode de codage du bloc courant parmi au moins 5 un premier mode de codage et un deuxième mode de codage, le deuxième mode de codage étant un mode de codage selon lequel le bloc courant est codé via, pour chaque pixel du bloc courant: - l'obtention (E222) d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé 10 appartenant audit bloc courant ou à un bloc de l'image précédemment décodé, - le codage (E223) d'un résidu de prédiction associé audit pixel obtenu à partir de la prédiction dudit pixel, - la reconstruction dudit pixel à partir du résidu de prédiction décodé associé audit pixel et de la prédiction dudit pixel, 15 - coder le bloc courant selon le mode de codage indiqué par l'information codée, - lorsque le mode de codage du bloc courant correspond à un mode de codage distinct du deuxième mode de codage, appliquer au moins une méthode de traitement au bloc courant reconstruit, - lorsque le mode de codage du bloc courant correspond au deuxième mode de 20 codage, désactiver l'application de ladite au moins une méthode de traitement au bloc courant reconstruit pour au moins un pixel dudit bloc courant. 10. Programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de décodage selon l'une quelconque des revendications 1 ou 3 à 7 ou du procédé de 25 codage selon l'une quelconque des revendications 2 à 7, lorsque ledit programme est exécuté par un processeur. 11. Support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur selon la revendication 10. 30