FR3092719A1 - Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image. - Google Patents

Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image. Download PDF

Info

Publication number
FR3092719A1
FR3092719A1 FR1901228A FR1901228A FR3092719A1 FR 3092719 A1 FR3092719 A1 FR 3092719A1 FR 1901228 A FR1901228 A FR 1901228A FR 1901228 A FR1901228 A FR 1901228A FR 3092719 A1 FR3092719 A1 FR 3092719A1
Authority
FR
France
Prior art keywords
pixel
prediction
block
value
image
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
FR1901228A
Other languages
English (en)
Inventor
Felix Henry
Mohsen Abdoli
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.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Priority to FR1901228A priority Critical patent/FR3092719A1/fr
Priority to CN202080013072.3A priority patent/CN113412618B/zh
Priority to KR1020217025873A priority patent/KR20210128401A/ko
Priority to US17/429,174 priority patent/US12022115B2/en
Priority to CN202410522725.0A priority patent/CN118301343A/zh
Priority to BR112021014787-0A priority patent/BR112021014787A2/pt
Priority to PCT/FR2020/050146 priority patent/WO2020161413A1/fr
Priority to JP2021546344A priority patent/JP2022519739A/ja
Priority to EP20707501.1A priority patent/EP3922017A1/fr
Publication of FR3092719A1 publication Critical patent/FR3092719A1/fr
Priority to US18/662,281 priority patent/US20240298028A1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

L'invention concerne un procédé de codage et décodage et corrélativement un dispositif de codage et de décodage d'un flux de données codées représentatif d'au moins une image découpée en blocs. Pour au moins un bloc courant de l'image, un groupe de valeurs de pixel constantes pour le bloc est déterminé (E441) à partir de pixels précédemment décodés, et pour chaque pixel du bloc, un résidu de prédiction associé audit pixel est décodé (E442). Une valeur de prédiction associée au pixel est déterminée (E4411) selon un premier mode de prédiction selon lequel le pixel est prédit à partir d'au moins 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é, une information (E4422) indique si le pixel est prédit selon un deuxième mode de prédiction selon lequel le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc. Lorsque le pixel est prédit selon le deuxième mode de prédiction, la valeur de prédiction associée au pixel est remplacée (E4423) par une valeur du groupe sélectionnée. Le pixel est reconstruit (E444) à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction. Figure pour l'abrégé: Figure 4

Description

Procédés et dispositifs de codage et de décodage d'un flux de données représentatif 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 œuvre 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, Signals and Communication Technology, 2015) propose de mettre en œuvre 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 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 Intra est insérée dans un codeur 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.
Une telle technique n'est toutefois pas optimale. En effet, la prédiction d'un pixel par des pixels voisins précédemment traités est bien adaptée pour coder des données de type naturel (photos, vidéos). Toutefois, lorsque le type de contenu est artificiel, par exemple des contenus correspondant à des captures d'écran, ou à des images de synthèse, les images présentent de fortes discontinuités engendrant des transitions ayant de fortes énergies.
Plus particulièrement, les images de synthèses, par exemple, sont susceptibles de contenir des zones possédant un nombre très faible de valeurs de pixel, aussi appelé niveaux par la suite. Par exemple, certains zones peuvent présenter seulement 2 niveaux : un pour l'arrière-plan et un pour l'avant-plan, tel que du texte noir sur un fond blanc.
En présence d'une telle transition dans une zone de l'image, la valeur d'un pixel à coder est alors très éloignée de la valeur des pixels voisins. Une prédiction d'un tel pixel telle que celle décrite ci-dessus utilisant des pixels voisins précédemment traités peut alors difficilement modéliser de telles transitions.
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.
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 courant:
- la détermination d'un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
- pour chaque pixel du bloc:
  • le décodage d'un résidu de prédiction associé audit pixel,
  • la détermination d'une valeur de prédiction associée au pixel selon un premier mode de prédiction, selon lequel le pixel est prédit à partir d'au moins 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 à partir du flux de données, d'une information indiquant si le pixel est prédit selon un deuxième mode de prédiction selon lequel le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
  • lorsque l'information indique que le pixel est prédit selon le deuxième mode de prédiction:
    • sélection d'une valeur dudit groupe,
    • remplacement de ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
  • reconstruction dudit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction.
Corrélativement, l'invention concerne également un procédé de codage d'un flux de donné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:
- la détermination d'un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
- pour chaque pixel du bloc:
  • la détermination d'une valeur de prédiction associée au pixel selon un premier mode de prédiction selon lequel le pixel est prédit par la valeur de prédiction associée au pixel déterminée à partir d'au moins 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é,
  • la détermination d'un mode de prédiction pour le pixel parmi le premier mode de prédiction et un deuxième mode de prédiction selon lequel le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
  • le codage dans le flux de données, d'une information indiquant si le pixel est prédit selon le deuxième mode de prédiction,
  • lorsque l'information indique que le pixel est prédit selon le deuxième mode de prédiction:
    • sélection d'une valeur dudit groupe,
    • remplacement de ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
  • le calcul d'un résidu de prédiction associé audit pixel à l'aide de la valeur de prédiction associée au pixel et de la valeur dudit pixel,
  • le codage du résidu de prédiction associé audit pixel dans le flux de données,
  • la reconstruction dudit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction décodé.
L'invention permet ainsi d'améliorer les performances en compression d'un mode de codage utilisant une prédiction locale par des pixels voisins d'un pixel à coder. Avantageusement, un groupe de valeurs de pixels représentatives des valeurs de pixels voisins d'un bloc à coder est déterminé. Par exemple, ce groupe comprend un nombre prédéterminé de valeurs de pixel les plus fréquentes parmi les pixels voisins du bloc à coder. Typiquement, ce groupe de valeurs peut comprendre des valeurs d'intensité des couches de l'image lorsque l'image est représentée en couches, par exemple pour des images de synthèses, ou comprenant des zones avec un avant-plan et un arrière-plan délimité, tel qu'un texte noir sur fond blanc.
Selon un mode particulier de réalisation de l'invention, le groupe de valeurs comprend deux valeurs représentatives des deux valeurs les plus fréquentes dans le voisinage du bloc.
Lorsqu'un pixel situé dans une zone de transition est détecté, sa valeur de prédiction est modifiée pour prendre une des valeurs du groupe ainsi déterminé.
Les valeurs d'un tel groupe sont dits constantes pour le bloc courant car elles sont déterminées une seule fois pour tous les pixels du bloc courant.
Selon un mode particulier de réalisation de l'invention, la sélection d'une valeur du groupe est faite en fonction d'une distance entre la valeur de prédiction associée audit pixel et déterminée selon le premier mode de prédiction par rapport aux valeurs de pixel constantes du groupe.
Ce mode particulier de réalisation de l'invention permet de sélectionner aisément une valeur de prédiction du groupe pour un pixel situé dans une zone de transition et ne nécessite pas de transmettre d'informations supplémentaires pour indiquer cette sélection.
Selon un autre mode particulier de réalisation de l'invention, le groupe comprenant une première valeur et une deuxième valeur, lorsqu'une distance entre la valeur de prédiction associée audit pixel et la première valeur est inférieure à une distance entre la valeur de prédiction associée audit pixel et la deuxième valeur, la valeur dudit groupe sélectionnée est la première valeur, et la valeur dudit groupe sélectionnée est la deuxième valeur sinon.
Selon un autre mode particulier de réalisation de l'invention, l'information indiquant si le pixel est prédit selon le deuxième mode de prédiction est décodée à partir du flux de données ou codée dans le flux de données seulement lorsque le résidu de prédiction du pixel est différent de 0.
Ce mode particulier de réalisation permet d'éviter le codage de l'information indiquant une prédiction selon le deuxième mode de prédiction lorsque le résidu de prédiction est différent de 0. Ainsi, selon ce mode particulier de réalisation, au décodeur, le premier mode de prédiction est utilisé par défaut pour prédire le pixel courant.
Ce mode particulier de réalisation de l'invention permet d'éviter le codage d'informations inutiles par le codeur. En effet, au codeur, lorsque la prédiction selon le premier mode de prédiction permet d'obtenir un résidu de prédiction nul, i.e. une prédiction optimale, l'information indiquant que le deuxième mode de prédiction n'est pas utilisé pour le pixel courant est implicite.
Un tel mode particulier de réalisation de l'invention peut être mis en œuvre au codeur, par une étape préalable de calcul du résidu de prédiction à partir de la prédiction issue du premier mode de prédiction ou bien par une étape de détermination si la valeur d'origine du pixel à coder est éloignée ou non de la valeur de prédiction issue du premier mode de prédiction.
Selon un autre mode particulier de réalisation de l'invention, la détermination d'un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés est réalisée par un calcul d'un histogramme des valeurs de pixels voisins du bloc courant et précédemment reconstruits et la sélection d'au moins deux valeurs de pixels représentatives respectivement de deux valeurs de pixels les plus fréquentes parmi les pixels voisins du bloc courant.
Selon un autre mode particulier de réalisation de l'invention, une valeur de seuil est déterminée à partir d'au moins une valeur dudit groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés. Lors de la détermination d'un mode de prédiction pour le pixel, le deuxième mode de prédiction est choisi:
- lorsque la valeur originale dudit pixel est supérieure à ladite valeur de seuil et la valeur de seuil est supérieure à la valeur de prédiction associée au pixel déterminée selon le premier mode de prédiction, ou
- lorsque la valeur originale dudit pixel est inférieure à ladite valeur de seuil et la valeur de seuil est inférieure à la valeur de prédiction associée au pixel déterminée selon le premier mode de prédiction.
L'invention concerne également un dispositif 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 dispositif de décodage comprend un processeur configuré pour, pour au moins un bloc de l'image, dit bloc courant:
- déterminer un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
- pour chaque pixel du bloc:
  • décoder un résidu de prédiction associé audit pixel,
  • déterminer une valeur de prédiction associée au pixel, à partir d'au moins 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é,
  • déterminer à partir du flux de données, une information indiquant si le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
  • lorsque l'information indique que le pixel est prédit à l'aide d'une prédiction issue du groupe de valeurs de pixel constantes pour le bloc:
    • sélectionner une valeur dudit groupe,
    • remplacer ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
  • reconstruire ledit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de décodage est compris dans un terminal.
L'invention concerne également un dispositif de codage d'un flux de données représentatif d'au moins une image découpée en blocs. Un tel dispositif de codage comprend un processeur configuré pour, pour au moins un bloc de l'image, dit bloc courant:
- déterminer un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
- pour chaque pixel du bloc:
  • déterminer une valeur de prédiction associée au pixel selon un premier mode de prédiction, selon lequel le pixel est prédit à partir d'au moins 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é,
  • déterminer un mode de prédiction pour le pixel parmi le premier mode de prédiction et un deuxième mode de prédiction selon lequel le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
  • coder dans le flux de données, une information indiquant si le pixel est prédit selon le deuxième mode de prédiction,
  • lorsque l'information indique que le pixel est prédit selon le deuxième mode de prédiction:
    • sélectionner une valeur dudit groupe,
    • remplacer ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
  • calculer un résidu de prédiction associé audit pixel à l'aide de la valeur de prédiction associée au pixel et de la valeur dudit pixel,
  • coder le résidu de prédiction associé audit pixel dans le flux de données,
  • reconstruire ledit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction décodé.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de codage est compris dans un terminal, ou un serveur.
L'invention concerne également un flux de données représentatif d'au moins une image découpée en blocs. Un tel flux de données comprend, pour au moins un bloc de l'image, dit bloc courant, et pour chaque pixel du bloc courant:
- une information représentative d'un résidu de prédiction associé audit pixel,
- une information indiquant si le pixel est prédit à l'aide d'une prédiction issue d'un groupe de valeurs de pixel constantes pour le bloc, le groupe de valeurs de pixel constantes pour le bloc étant déterminé à partir de pixels précédemment décodés.
Le procédé de décodage, respectivement le procédé de codage, selon l'invention peut être mis en œuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle. 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 œuvre par un programme d'ordinateur. L'invention concerne également un programme d'ordinateur comportant des instructions pour la mise en œuvre 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 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.
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.
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 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é 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 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 2A illustre un exemple d'une partie d'un flux de données codées selon un mode particulier de réalisation de l'invention.
La figure 2B illustre un exemple d'une partie d'un flux de données codées selon un autre mode particulier de réalisation de l'invention.
La figure 3A illustre un exemple de position des blocs voisins d'un bloc courant pour déterminer un mode de prédiction intra selon un mode particulier de réalisation de l'invention.
La figure 3B 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 réalisation de l'invention.
La figure 5 illustre des exemples de blocs comprenant du contenu de type écrans présentant chacun deux couches de contenus, ainsi que leur voisinage respectif dans l'image selon un mode particulier de réalisation de l'invention.
La figure 6 illustre un exemple de bloc 16x16 comprenant du contenu de type écrans présentant deux couches de contenus et une carte de transition montrant les états de transition des pixels pour ce bloc selon un mode particulier de réalisation de l'invention.
La figure 7 présente la structure simplifiée d’un dispositif de codage adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention.
La figure 8 présente la structure simplifiée d’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 de l'invention.
5. Description d'un mode de réalisation de l'invention
5.1 Principe général
L'invention permet d'améliorer un mode de codage d'un bloc d'une image utilisant une prédiction locale pour des pixels du bloc localisés sur une transition entre deux niveaux de valeurs de pixels très distincts.
Un mode de codage d'un bloc à coder utilisant une prédiction locale permet l'utilisation de pixels de référence appartenant au bloc à coder pour prédire d'autres pixels du bloc à coder. Ce mode de prédiction permet de réduire le résidu de prédiction grâce à l'utilisation de pixels du bloc très proches spatialement du pixel à coder.
Toutefois, ce mode de codage introduit un résidu de codage relativement grand lorsque les pixels d'origine sont éloignés de leur prédiction. C'est généralement le cas pour les contenus de type captures d'écrans, ou image de synthèse. Dans ce type de contenus, un bloc à coder peut présenter de fortes discontinuités. Dans ce cas, des pixels de référence appartenant à un arrière-plan peuvent être utilisés pour prédire des pixels du même bloc appartenant à un avant-plan, ou vice-versa. Dans ce cas, l'information disponible dans les pixels de référence n'est pas adéquate pour une prédiction précise. Les pixels localisés à la frontière entre une zone d'arrière-plan et une zone d'avant-plan sont appelés par la suite pixels de transition.
Avantageusement, l'invention propose de dériver pour un bloc à coder une information relative à chaque couche de l'image, par exemple une information relative à l'avant-plan et une information relative à l'arrière-plan, dans le cas où seulement deux couches sont considérées. Des couches supplémentaires de contenus peuvent évidemment être prises en compte, augmentant d'autant le nombre d'informations à dériver. Par exemple, la dérivation de telles informations consiste à déterminer un groupe de valeurs de pixels constantes pour le bloc.
Selon un mode particulier de réalisation de l'invention, ces informations relatives à chaque couche de l'image sont dérivées à partir d'un voisinage local du bloc à coder.
Avantageusement, ces informations sont utilisées avec un mécanisme de détection des pixels de transition dans le bloc à coder. Ceci permet de réduire l'énergie résiduelle de tels pixels.
La figure 5 illustre des blocs (Bi-bl) comprenant du contenu de type écrans présentant chacun deux couches de contenus, ainsi que leur voisinage (Neigh) respectif dans l'image. Tel qu'illustré sur la figure 5, le voisinage local d'un bloc courant à coder contient des informations utiles relatives au niveau d'intensité des deux couches.
Selon l'invention, lorsque des pixels de transition dans le bloc à coder sont détectés, la valeur de prédiction pour ces pixels est corrigée à l'aide d'un niveau d'intensité de la couche correspondant à celle à laquelle le pixel est susceptible d'appartenir.
Selon un mode particulier de réalisation de l'invention, afin d'avoir une prédiction optimale pour chaque pixel du bloc et un coût en débit limité, un tel mécanisme est limité aux pixels satisfaisant certaines conditions.
En fonction d'un voisinage local d'un pixel à prédire, trois états du pixel à prédire peuvent être définis:
- s1: le pixel appartient à une région homogène dans laquelle la prédiction locale à partir des pixels voisins est très efficace, par exemple elle fournit un résidu de prédiction quantifié nul. Dans ce cas, le pixel n'est pas un pixel de transition. Selon une variante de réalisation, cet état peut être détecté de manière implicite au décodeur,
- s2: le pixel appartient à une région dans laquelle la prédiction locale à partir des pixels voisins est modérément efficace, par exemple elle fournit un résidu de prédiction faible. La prédiction du pixel par le mécanisme de correction cité ci-dessus est autorisée pour ce pixel, mais le mécanisme de correction n'est pas appliqué si l'erreur de prédiction résiduelle n'est pas suffisamment grande par rapport à une valeur de seuil déterminée en fonction des niveaux d'intensité des couches. Dans ce cas, un indicateur est codé spécifiquement pour signaler la non-utilisation du mécanisme de correction,
- s3: le pixel appartient à une région dans laquelle la prédiction locale à partir des pixels voisins n'est pas efficace, par exemple elle fournit un résidu de prédiction important. La prédiction du pixel par le mécanisme de correction cité ci-dessus est autorisée pour ce pixel, et un indicateur est codé spécifiquement pour signaler cette utilisation.
La figure 6 illustre à droite un exemple de bloc 16x16 comprenant un texte clair sur un fond sombre et à droite une carte de transition pour ce bloc montrant comment les états décrits ci-dessus peuvent être assignés aux pixels du bloc.
5. 2 Exemples de mise en œuvre
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 I1, I2, ..., INbsous 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 œuvre par un dispositif de codage tel que décrit plus loin en relation avec la figure 7.
Une séquence d'images I1, I2, ..., 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 I1, I2, ..., INbest fait image par image selon un ordre de codage préalablement établi et connu du codeur. Par exemple, les images peuvent être codées dans l'ordre temporel I1, I2, ..., INbou selon un autre ordre, par exemple I1,I3, I2,..., INb.
Lors d'une étape E0, une image Ijà coder de la séquence d'images I1,I2, ..., INbest découpée en blocs, par exemple en blocs de taille 32x32, ou 64x64 pixels ou plus. Un tel bloc peut être 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-blocX b à coder de l'image Ijest sélectionné selon un sens de parcours de l'image Ijprédéterminé. Par exemple, il peut s'agir du premier bloc dans l'ordre lexicographique de parcours de l'image.
Lors d'une étape E2, l’encodeur choisit le mode de codage pour coder le bloc courantX b .
Selon le mode particulier de réalisation décrit ici, l'encodeur sélectionne le mode de codage pour coder le bloc courantX b 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 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 à un mode de codage par prédiction dit In Loop Residual (ILR) ou DPCM décrit plus loin.
Le principe de l'invention peut être étendu à d'autres types de modes de codage pour le premier mode de codage M1. 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" - pour appariement de modèle-, etc...).
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 courantX b 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 , 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 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 courantX b 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 courantX b est codé selon le deuxième 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 M1, 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.
Lors d'une étape E210, un pas de quantification est déterminé. Par exemple, le pas de quantification 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 , où D représente la distorsion introduite par 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 est déterminé par l’équation 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 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 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. 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 (https://jvet.hhi.fraunhofer.de/), 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 du bloc à coder à partir de pixels des blocs voisins et transmission 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.
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 3A illustre un exemple de position des blocs voisins Abet Bbdu bloc courant Xbpour 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.
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 3A, une telle approche consiste à identifier le mode de prédiction intra mAassocié au bloc Absitué au-dessus du bloc courant, et le mode de prédiction intra mBassocié au bloc Bbsitué juste à gauche du bloc courant. En fonction de la valeur de mAet de mB, une liste dite MPM (pour Most Probable Mode), 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 :
-un indicateur binaire indiquant si le mode de prédiction à coder pour le bloc courant est 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é.
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.
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 RTcomprenant 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 ETet de signaler la transformée utilisée au décodeur.
Lors d'une étape E215, le bloc de résidu transformé RTest quantifié à l'aide par exemple d’une quantification scalaire de pas de quantification . Ceci produit le bloc de résidu de prédiction transformé quantifié RTQ.
Lors d'une étape E216, les coefficients du bloc quantifié RTQsont codés par un codeur entropique. On peut par exemple utiliser le codage entropique spécifié dans la norme HEVC.
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 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 deuxième mode de codage correspond à un codage par prédiction dit ILR.
Au cours d'une étape préalable E220, un pas de quantification est déterminé. Par exemple, le pas de quantification dépend d'un même paramètre de quantification que le pas de quantification qui serait déterminé à l'étape E210 si le bloc courant était codé selon le premier mode de codage.
Selon l'invention, dans ce mode de codage, les pixels du bloc courant peuvent être prédits selon un premier mode de prédiction ou un deuxième mode de prédiction.
Selon le premier mode de prédiction, un pixel du bloc courant est prédit par des pixels précédemment reconstruits d'un bloc voisin du bloc courant et/ou des pixels précédemment traités du bloc courant lui-même. De préférence, pour prédire un pixel, on choisit des pixels qui sont les plus proches possibles du pixel à prédire. Pour cette raison, on parle de prédicteur local.
Selon le deuxième mode de prédiction, un pixel du bloc courant est prédit par une valeur de niveau de couches sélectionnées par un groupe de valeurs déterminées à partir, par exemple, du voisinage du bloc courant.
Au cours d'une étape E221, un groupe de valeurs de pixel constantes pour le bloc est déterminé à partir de pixels précédemment décodés. On détermine plusieurs niveaux de reconstruction du bloc courant, par exemple deux, appelés f et b. Ces niveaux sont construits par analyse des valeurs prises par les pixels de référence du bloc courant, i.e. les pixels issus de blocs précédemment traités et voisins du bloc courant. Il existe plusieurs techniques pour déterminer les niveaux f et b. Ainsi, il est possible de calculer l’histogramme des valeurs des pixels de référence et d’attribuer à b la valeur la plus fréquente et à f la deuxième valeur la plus fréquente. Une autre approche consiste à identifier les maxima locaux de l’histogramme, i.e. les plus grandes valeurs entourées de valeurs plus petites. Le niveau f est alors affecté du plus grand maximum local et le niveau b du deuxième plus grand maximum local.
Par ailleurs, selon un mode particulier de réalisation de l'invention, une valeur seuilthrest déterminée, qui est typiquement à mi-chemin de f et de b et définie telle que . Selon un mode alternatif de réalisation, on peut également choisir dynest la valeur maximum du signal.
Les variantes de réalisation décrites ci-dessus pour déterminer le groupe de valeurs de pixel constantes pour le bloc permettent une détection implicite des couches de l'image qui peut être mise en œuvre également au décodeur, sans nécessiter la transmission d'informations supplémentaires.
Par exemple, pour limiter la complexité de la détection des couches de l'image, le voisinage direct du bloc courant est utilisé : par exemple seuls les pixels de la colonne à gauche, et de la ligne au-dessus du bloc courant sont utilisés.
Selon d'autres variantes, plus de deux valeurs peuvent être déterminées, en considérant les maxima locaux suivants de l'histogramme par exemple.
Les valeurs f et b ainsi déterminées correspondent aux valeurs du groupe de valeurs utilisées pour le deuxième mode de prédiction.
On réalise les étapes suivantes pour chaque pixel du bloc courant.
Au cours d'une étape E2201, un prédicteur local PL pour le pixel considéré est déterminé. Ce prédicteur local PL correspond au prédicteur obtenu selon le premier mode de prédiction.
Le prédicteur local PL peut être déterminé comme suit. 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-dessus de X, tel qu'illustré en figure 3B montrant un bloc courant Xb. Le prédicteur local PL est défini par:
PL(X) = min(A,B) si C ≥ max(A,B)
max(A,B) si C ≤ min(A,B)
A+B-C sinon
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 la valeur de A et la valeur de B.
D'autres fonctions de prédiction locales peuvent être utilisées. Selon une autre variante, plusieurs fonctions de prédiction locale peuvent être disponibles et une même fonction de prédiction locale est sélectionnée pour tous les pixels du bloc courant. Par exemple, une orientation de la texture des pixels de blocs voisins précédemment codés est analysée. Par exemple, les pixels précédemment codés dans un bloc voisin 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:
- si aucune orientation ne se dégage, la fonction de prédiction est celle définie ci-dessus,
- si l'orientation est horizontale, la fonction de prédiction est PL(X)=A,
- si l'orientation est verticale, la fonction de prédiction est PL(X)=B,
- si l'orientation est diagonale, la fonction de prédiction est PL(X)=C.
La valeur de prédiction PL(X) associée au pixel courant X du bloc courant est ainsi obtenue en fonction de la localisation du pixel dans le bloc courant à l’aide soit des pixels extérieurs au bloc et déjà reconstruits (et donc disponibles avec leur valeur décodée), soit des pixels précédemment reconstruits dans le bloc courant, soit des deux. Dans tous les cas, le prédicteur PL utilise des pixels précédemment reconstruits. Sur la figure 3B, 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 référence (pour construire la valeur de prédiction PL(X)) des pixels extérieurs au bloc et déjà reconstruits (pixels en gris sur la figure 3B) 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 de prédiction PL(X) sont situés à l'intérieur du bloc courant.
Au cours d'une étape E2202, on détermine le mode de prédiction parmi le premier mode de prédiction et le deuxième mode de prédiction à utiliser pour prédire le pixel courant.
Selon un mode particulier de réalisation de l'invention, le deuxième mode de prédiction est choisi lorsque PL(X) <thr< X ou lorsque PL(X) >thr> X. Autrement dit, le deuxième mode de prédiction est choisi:
- lorsque la valeur originale X du pixel est supérieure à la valeur de seuilthret la valeur de seuilthrest supérieure à la valeur de prédiction PL(X) associée au pixel déterminée selon le premier mode de prédiction, ou
- lorsque la valeur originale X du pixel est inférieure à la valeur de seuilthret la valeur de seuilthrest inférieure à la valeur de prédiction PL(X) associée au pixel déterminée selon le premier mode de prédiction.
Si l'une des conditions ci-dessus est satisfaite, l'état du pixel à prédire est alors s=3 et le codeur passe à l'étape suivante E2203.
Au cours de l'étape E2203, un indicateur t indiquant que le pixel à prédire est prédit selon le deuxième mode de prédiction est positionné à 1 par exemple, et codé dans le flux de données STR par exemple par un codage entropique ou transmis tel quel dans le flux.
Au cours d'une étape E2204, une valeur du groupe de valeurs déterminées lors de l'étape E221 est sélectionnée pour prédire le pixel courant.
Selon un mode particulier de réalisation de l'invention, la sélection d'une valeur du groupe est faite en fonction de la distance entre la valeur de prédiction associée audit pixel déterminée selon le premier mode de prédiction par rapport aux valeurs de pixel du groupe déterminées lors de l'étape E221. Par exemple, lorsque la distance entre la valeur de prédiction PL(X) associée audit pixel selon le premier mode de prédiction et la valeur b du groupe est inférieure à la distance entre la valeur de prédiction PL(X) associée audit pixel selon le premier mode de prédiction et la valeur f, la valeur sélectionnée est b, et la valeur sélectionnée est f sinon.
Comme mesure de distance, la norme L1 ou L2 peut par exemple être utilisée.
Ainsi, si , alors , sinon .
Le procédé passe ensuite à l'étape E2205.
Si au cours de l'étape E2202, il est déterminé que le pixel courant n'est pas prédit selon le deuxième mode de prédiction, le pixel courant est alors prédit selon le premier mode de prédiction. La valeur de prédiction PL(X) associée au pixel courant et obtenue selon le premier mode de prédiction n'est alors pas modifiée. Le pixel courant est alors dans l'état s=1 ou s=2.
Au cours d'une étape E2205, un résidu de prédiction R1(X) est calculé pour le pixel courant comme la différence entre la valeur originale X du pixel courant et la valeur de prédiction associée PL(X) au pixel courant, soit R1(X)= X-PL(X). Ici, la valeur de prédiction PL(X) peut avoir été obtenue soit par le premier mode de prédiction, soit par le deuxième mode de prédiction.
Le résidu de prédiction R1(X) est ensuite quantifié en Q(X), par un quantificateur scalaire de pas de quantification , par , le quantificateur scalaire étant par exemple un quantificateur scalaire au plus proche voisin tel que: où Δ est le pas de quantification et la valeur à quantifier.
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 de prédiction PL(X) du pixel X et la valeur 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é R1Q, qui sera codé ultérieurement.
Lors d'une étape E2206, la valeur prédite décodée P1(X) de X est calculée en ajoutant à la valeur de prédiction PL(X) 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 . Par exemple, la fonction inverse de quantification scalaire au plus proche est donnée par: .
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, on peut définir le bloc P1 comprenant les valeurs décodées/reconstruites P1(X) des pixels du bloc courant. Un tel bloc P1constitue le prédicteur ILR du bloc courant (par opposition au prédicteur intra classique).
Selon un mode particulier de réalisation de l'invention, au cours d'une étape E2207, lorsque le résidu de prédiction quantifié Q1(X) n'est pas nul, autrement dit lorsque l'amplitude a du résidu de prédiction quantifié Q1(X) n'est pas nulle, l'indicateur t est positionné à 0 par exemple, et codé dans le flux de données STR. Dans ce cas, le pixel courant est considéré dans l'état s=2.
Selon ce mode particulier de réalisation de l'invention, lorsque le résidu de prédiction quantifié Q1(X) est nul, i.e. l'amplitude a du résidu de prédiction quantifié Q1(X) est nulle, l'indicateur t est également positionné à 0 puisque le pixel courant n'est pas prédit par le deuxième mode de prédiction, mais l'indicateur t n'est pas codé dans le flux de données STR. Ce mode de prédiction sera déduit de manière implicite au décodeur à partir de la valeur décodée de l'amplitude du résidu de prédiction quantifié Q1(X). Dans ce cas, le pixel courant est considéré dans l'état s=1. Dans ce cas, le procédé passe de l'étape E2206 à l'étape E223 directement.
Bien entendu, en pratique, lorsqu'il est codé explicitement (s=2 ou s=3), l'indicateur t est codé dans le flux de données après le codage du résidu de prédiction quantifié Q1(X).
Selon un autre mode particulier de réalisation de l'invention, l'indicateur t est positionné à 0, et codé au cours de l'étape E2207 de manière systématique pour chaque pixel, dans le flux de données STR, quelle que soit la valeur de l'amplitude a du résidu de prédiction Q1(X). Ainsi, au décodeur, il est déterminé de manière explicite par le décodeur si le pixel courant est prédit ou non selon le deuxième mode de prédiction, par lecture de l'indicateur t, quelle que soit la valeur du résidu de prédiction quantifié. Dans ce cas, il n'est pas différencié si le pixel est dans l'état s=1 ou s=2.
Selon une variante, dans ce mode particulier de réalisation de l'invention, puisque l'indicateur t est codé de manière systématique, lors de l'étape E2202, la détermination du mode de prédiction parmi le premier mode de prédiction et le deuxième mode de prédiction à utiliser pour prédire le pixel courant, peut par exemple être faite par comparaison d'une mesure de distance entre la valeur de prédiction fournie par le premier mode de prédiction et la valeur originale X du pixel courant et une mesure de distance entre la valeur de prédiction fournie par le deuxième mode de prédiction et la valeur originale X du pixel courant.
Les é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 locale soient disponibles.
Selon une variante de réalisation, l’ordre de parcours du bloc courant est l’ordre 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
-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 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 E2205, le bloc de résidu quantifié R1Qa été déterminé. Ce bloc de résidu quantifié R1Qdoit être codé pour être transmis au décodeur. Le prédicteur P1 du bloc courant a également été déterminé.
Lors d'une étape E223, le bloc de résidu quantifié R1Qest 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.
De manière classique, chaque résidu de prédiction quantifié Q1(X) du bloc courant est décomposé en une valeur d'amplitudeaet un indicateur de signesgnlorsque l'amplitudeaest distincte de 0.
Selon le mode particulier de réalisation de l'invention décrit ici, les valeurs amplitude et signe du bloc de résidu quantifié R1Qsont codées à l'aide d'un codeur entropique dans le 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. 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é R1Q.
Afin de coder un résidu de prédiction additionnel R2 pour le bloc courant, les étapes suivantes sont mises en œuvre.
Lors d'une étape E224, la différence R2 entre le prédicteur P1 et le bloc courant original Xbest calculée afin de constituer un résidu additionnel R2 : R2= Xb-P1. Les étapes suivantes correspondent aux étapes classiques de codage de ce résidu R2.
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 ET2et de signaler la transformée utilisée au décodeur. Dans ce cas, l’ensemble ET2peut être différent de l’ensemble ET, afin de s’adapter aux statistiques particulières du résidu R2.
Lors d'une étape E226, le bloc de coefficients R2Test quantifié, par exemple à l’aide d’une quantification scalaire de pas de quantification . Ceci produit le bloc R2TQ.
Le pas de quantification peut être fixé par l’utilisateur. Il peut également être calculé à l’aide du paramètre 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 ou être déterminé de manière similaire à celui-ci.
Lors d'une étape E227, les coefficients du bloc quantifié R2TQsont alors transmis de façon codée. On peut par exemple utiliser le codage spécifié dans la norme HEVC.
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 Xrecdu bloc courant peut ensuite être utilisée ultérieurement pour prédire 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 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.
Si tous les blocs de l'image ont été codés, le procédé passe à l'application de méthodes de post-traitements à appliquer à l'image reconstruite lors d'une étape E231. Par exemple de telles méthodes de post-traitements peuvent être un filtrage de déblocage et/ou une méthode SAO (pour Sample Adaptive Offset) telle que définie dans la norme HEVC.
Le procédé passe au codage (étape E25) de l'image suivante de la vidéo le cas échéant.
Les figures 2A et 2B illustrent de manière schématique une partie de flux de données issu du codage tel que décrit ci-dessus selon différents modes particuliers de réalisation de l'invention.
La figure 2A illustre un exemple de flux pour trois pixels (X1, X2, X3) d'un bloc de l'image codés selon un mode particulier de réalisation de l'invention, dans lequel il a été déterminé que le pixel X1 est considéré dans l'état s=3, le pixel X2 est considéré dans l'état s=2 et le pixel X3 est considéré dans l'état s=1.
On voit que selon la variante décrite ici, les données codées pour le pixel X1 sont la valeur d'amplitude du résidu de prédiction quantifié a(X1), son signe sgn(X1) et la valeur de l'indicateur t positionnée à 1. Les données codées pour le pixel X2 sont la valeur d'amplitude du résidu de prédiction quantifié a(X2), son signe sgn(X2) et la valeur de l'indicateur t. Pour X2, la valeur de l'amplitude du résidu de prédiction quantifié étant distincte de 0, l'indicateur t positionné à 0 est codé explicitement dans le flux.
Les données codées pour le pixel X3 sont la valeur d'amplitude du résidu de prédiction quantifié a(X3) qui est nulle. Dans ce cas, la valeur de l'amplitude du résidu de prédiction quantifié est distincte de 0, l'indicateur t positionné à 0 n'est alors pas codé explicitement dans le flux et sera déduit de manière implicite au décodeur.
La figure 2B illustre un exemple de flux pour trois pixels (X1, X2, X3) d'un bloc de l'image codés selon un autre mode particulier de réalisation de l'invention, dans lequel il a été déterminé que le pixel X1 est considéré dans l'état s=3, le pixel X2 est considéré dans l'état s=2 et le pixel X3 est considéré dans l'état s=1.
On voit que selon la variante décrite ici, les données codées pour le pixel X1 sont la valeur d'amplitude du résidu de prédiction quantifié a(X1), son signe sgn(X1) et la valeur de l'indicateur t positionnée à 1. Les données codées pour le pixel X2 sont la valeur d'amplitude du résidu de prédiction quantifié a(X2), son signe sgn(X2) et la valeur de l'indicateur t positionnée à 0.
Les données codées pour le pixel X3 sont la valeur d'amplitude du résidu de prédiction quantifié a(X3) qui est nulle, et l'indicateur t positionné à 0.
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 I1, I2, ..., 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 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 8.
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 Ijà décoder est subdivisée en blocs. Chaque bloc va subir 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-blocX b à décoder de l'image Ijest sélectionné comme bloc courant selon un sens de parcours de l'image Ijqui est prédéterminé. Par exemple, il peut s'agir du premier bloc dans l'ordre lexicographique de 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 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 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 M1.
Lors d'une étape E430, un pas de quantification est déterminé. Par exemple, le pas de quantification est déterminé à partir d'un paramètre de quantification QP transmis dans le flux de données STR ou de manière similaire à ce qui a été fait au codeur. 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 est déterminé par l’équation où levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } pour k = 0..5.
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.
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 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 lu,
- 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 lu.
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 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é RTQest dé-quantifié, par exemple à l’aide d’une dé-quantification scalaire de pas de quantification . 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 coefficients dé-quantifiés RTQDde façon à produire le bloc de résidu de prédiction décodé RTQDI. 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 ETIen 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 à l'étape E432 et le bloc de résidu décodé RTQDIobtenu à 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.
Lors d'une étape E440, le pas de quantification est déterminé, de manière similaire à ce qui a été fait au codeur.
Selon l'invention, dans ce mode de codage M2, les pixels du bloc courant peuvent être prédits selon le premier mode de prédiction ou le deuxième mode de prédiction déjà présentés en relation avec la figure 1.
Lors d'une étape E441, le groupe de valeurs de pixel constantes pour le bloc est déterminé à partir de pixels précédemment décodés de l'image, de manière similaire à ce qui a été fait au codeur. On considère comme pour le codeur, que les valeurs de niveaux f et b ont été déterminées.
On réalise les étapes suivantes pour chaque pixel du bloc courant.
Lors d'une étape E4411, la valeur de prédiction du pixel courant selon le premier mode de prédiction est déterminée. Pour cela, on utilise le même prédicteur local PL que celui utilisé au codeur. Lorsque plusieurs prédicteurs locaux sont possibles, le prédicteur local PL est déterminé de manière identique à ce qui a été fait au codeur.
Lors d'une étape E442, le résidu quantifié R1Qest décodé à partir du flux de données STR. Il 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. On obtient alors l'amplitudeadu résidu de prédiction quantifié Q1'(X) pour le pixel courant.
Selon un mode particulier de réalisation de l'invention, lors d'une étape E4421, lorsque l'amplitudeadu résidu de prédiction quantifié Q1'(X) est nulle, un indicateur t indiquant si le pixel courant est prédit selon le deuxième mode de prédiction est implicitement positionné à 0. Dans ce cas, le pixel courant est considéré dans l'état s=1, et il sera prédit par la valeur de prédiction issue du premier mode de prédiction. Le résidu de prédiction quantifié Q1'(X) est alors reconstruit par
Sinon, lorsque l'amplitudeadu résidu de prédiction quantifié Q1'(X) n'est pas nulle, le signesgnassocié au résidu de prédiction quantifié Q1'(X) est lu dans le flux de données STR. Le résidu de prédiction quantifié Q1'(X) est alors reconstruit par
Puis, au cours d'une étape E4422, l'indicateur t pour le pixel courant est lu dans le flux de données STR. Si la valeur de l'indicateur t lue est 0, l'état du pixel courant est s=2. Si la valeur de l'indicateur t lue est 1, l'état du pixel courant est s=3.
Selon un autre mode particulier de réalisation de l'invention, l'indicateur t est codé de manière systématique pour chaque pixel du bloc courant. Dans ce cas, au cours de l'étape E4422, la valeur 0 ou 1 de l'indicateur t est lue dans le flux de données STR et l'état du pixel s est positionné en conséquence.
Lorsque l'état du pixel courant est s=3, le pixel courant est prédit selon le deuxième mode de prédiction. Dans ce cas, lors d'une étape E4423, une valeur du groupe de valeurs déterminées lors de l'étape E441 est sélectionnée et affectée à la valeur de prédiction PL(X) associée au pixel courant pour prédire le pixel courant de manière similaire à ce qui a été fait au codeur. Par exemple, si , alors , sinon .
Le procédé passe ensuite à l'étape E443.
Lorsque l'état du pixel courant est s=2 ou s=1, le pixel courant est prédit selon le premier mode de prédiction. Dans ce cas, la valeur de prédiction PL(X) du pixel courant déterminée selon le premier mode de prédiction au cours de l'étape E4411 n'est pas modifiée.
Lors d'une étape E443, le résidu quantifié Q1'(X) est dé-quantifié à l’aide du pas de quantification , de façon à produire le résidu dé-quantifié QD1(X).
Lors d'une étape E444, la valeur reconstruite du pixel courant X' est obtenue à l'aide de la valeur de prédiction PL(X) déterminée lors de l'étape E4411 ou E4423 et du résidu de prédiction dé-quantifié QD1(X): X'=PL(X)+QD1(X).
Les résidus de prédiction Q1(X) des pixels du bloc courant sont placés dans un bloc de résidu de prédiction R1Q,les résidus de prédiction dé-quantifiés QD1(X) des pixels du bloc courant sont placés dans un bloc de résidu de prédiction dé-quantifié R1QD,Les valeurs reconstruites X' des pixels du bloc courant sont placées dans un bloc reconstruit P1.
Les étapes ci-dessus sont mises en œuvre pour tous les pixels du bloc courant, dans un ordre de parcours qui assure que les pixels utilisés pour la prédiction locale soient disponibles.
Par exemple, l’ordre de parcours est l’ordre lexicographique (de gauche à droite, puis les lignes de haut en bas).
Selon un mode particulier de réalisation de l'invention, le bloc P1 comprenant les valeurs reconstruites PL(X)+QD1(X) de chaque pixel du bloc courant constitue ici le bloc courant décodé Xrec.
Selon un autre mode particulier de réalisation de l'invention, on considère qu'un résidu de 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 Xrec.
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 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é R2TQsont décodés du flux de données STR, à l'aide de moyens adaptés à ceux mis en œuvre au codeur, par exemple les moyens mis en œuvre dans un décodeur HEVC.
Lors d'une étape E446, le bloc de coefficients quantifiés R2TQest dé-quantifié, par exemple à l’aide d’une dé-quantification scalaire de pas de quantification . Ceci produit le bloc de coefficients dé-quantifiés R2TQD.
Lors d'une étape E447, une transformée fréquentielle inverse est appliquée au bloc R2TQDde façon à produire le bloc de résidu de prédiction décodé R2TQDI.
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 ET2et de décoder l’information signalant la transformée à utiliser au décodeur. Dans ce cas, l’ensemble ET2est 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é R2TQDI.
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 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 de méthodes de post-traitement à appliquer à l'image reconstruite lors d'une étape E451 si besoin. De telles méthodes de post-traitement peuvent être un filtrage de déblocage et/ou une méthode SAO.
Le procédé passe ensuite au décodage (étape E47) de l'image suivante de la vidéo le cas échéant.
La figure 7 présente la structure simplifiée d’un dispositif de codage COD adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention.
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 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 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 PROC.
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 œuvre les étapes du procédé de codage décrit ci-dessus, selon les instructions du programme d'ordinateur PG.
La figure 8 présente la structure simplifiée d’un dispositif de décodage DEC adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention.
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 MEM0, une unité de traitement UT0, équipée par exemple d'un processeur PROC0, et pilotée par le programme d'ordinateur PG0 stocké en mémoire MEM0. Le programme d'ordinateur PG0 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 PROC0.
A l'initialisation, les instructions de code du programme d'ordinateur PG0 sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROC0. Le processeur PROC0 de l'unité de traitement UT0 met notamment en œuvre les étapes du procédé de décodage décrit ci-dessus, selon les instructions du programme d'ordinateur PG0.

Claims (12)

  1. 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:
    - la détermination (E441) d'un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
    - pour chaque pixel du bloc:
    (i) le décodage (E442) d'un résidu de prédiction associé audit pixel,
    (ii) la détermination (E4411) d'une valeur de prédiction associée au pixel selon un premier mode de prédiction, selon lequel le pixel est prédit à partir d'au moins 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é,
    (iii) le décodage (E4422) à partir du flux de données, d'une information indiquant si le pixel est prédit selon un deuxième mode de prédiction selon lequel le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
    (iv) lorsque l'information indique que le pixel est prédit selon le deuxième mode de prédiction:
    (a) sélection (E4423) d'une valeur dudit groupe,
    (b) remplacement (E4423) de ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
    (v) reconstruction (E444) dudit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction.
  2. Procédé de codage d'un flux de donné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 bloc de l'image, dit bloc courant:
    - la détermination (E221) d'un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
    - pour chaque pixel du bloc:
    (i) la détermination (E2201) d'une valeur de prédiction associée au pixel selon un premier mode de prédiction, selon lequel le pixel est prédit à partir d'au moins 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é,
    (ii) la détermination (E2202) d'un mode de prédiction pour le pixel parmi le premier mode de prédiction et , un deuxième mode de prédiction selon lequel le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
    (iii) le codage (E2203, E2207) dans le flux de données, d'une information indiquant si le pixel est prédit selon le deuxième mode de prédiction,
    (iv) lorsque l'information indique que le pixel est prédit selon le deuxième mode de prédiction:
    (a) sélection (E2204) d'une valeur dudit groupe,
    (b) remplacement (E2204) de ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
    (v) le calcul (E2205) d'un résidu de prédiction quantifié associé audit pixel à l'aide de la valeur de prédiction associée au pixel et de la valeur dudit pixel,
    (vi) la reconstruction (E2206) dudit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction décodé,
    (vii) le codage (E223) du résidu de prédiction quantifié associé audit pixel dans le flux de données.
  3. Procédé de décodage selon la revendication 1 ou de codage selon la revendication 2, dans lequel la sélection d'une valeur dudit groupe à utiliser est faite en fonction d'une distance entre la valeur de prédiction associée audit pixel par rapport aux valeurs de pixel constantes du groupe.
  4. Procédé selon la revendication 3, dans lequel, le groupe comprenant une première valeur et une deuxième valeur, lorsqu'une distance entre la valeur de prédiction associée audit pixel et la première valeur est inférieure à une distance entre la valeur de prédiction associée audit pixel et la deuxième valeur, la valeur dudit groupe sélectionnée est la première valeur, et la valeur dudit groupe sélectionnée est la deuxième valeur sinon.
  5. Procédé de décodage selon la revendication 1 ou de codage selon la revendication 2, dans lequel le décodage à partir du flux de données ou le codage dans le flux de données, de l'information indiquant si le pixel est prédit selon le deuxième mode de prédiction est réalisé seulement lorsque le résidu de prédiction est différent de 0.
  6. Procédé de décodage selon la revendication 1 ou de codage selon la revendication 2, dans lequel la détermination d'un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés est réalisée par un calcul d'un histogramme des valeurs de pixels voisins du bloc courant et précédemment reconstruits et la sélection d'au moins deux valeurs de pixels représentatives respectivement de deux valeurs de pixels les plus fréquentes parmi les pixels voisins du bloc courant.
  7. Procédé de codage selon la revendication 2, dans lequel une valeur de seuil est déterminée à partir d'au moins une valeur dudit groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés, lors de la détermination d'un mode de prédiction pour le pixel, le deuxième mode de prédiction est choisi:
    - lorsque la valeur originale dudit pixel est supérieure à ladite valeur de seuil et la valeur de seuil est supérieure à la valeur de prédiction associée au pixel déterminée selon le premier mode de prédiction, ou
    - lorsque la valeur originale dudit pixel est inférieure à ladite valeur de seuil et la valeur de seuil est inférieure à la valeur de prédiction associée au pixel déterminée selon le premier mode de prédiction.
  8. 8. Dispositif 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 dispositif de décodage comprend un processeur (PROC0) configuré pour, pour au moins un bloc de l'image, dit bloc courant:
    - déterminer un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
    - pour chaque pixel du bloc:
    (i) décoder un résidu de prédiction associé audit pixel,
    (ii) déterminer une valeur de prédiction associée au pixel, à partir d'au moins 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é,
    (iii) déterminer à partir du flux de données, une information indiquant si le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
    (iv) lorsque l'information indique que le pixel est prédit à l'aide d'une prédiction issue du groupe de valeurs de pixel constantes pour le bloc:
    (a) sélectionner une valeur dudit groupe,
    (b) remplacer ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
    (v) reconstruire ledit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction.
  9. Dispositif de codage d'un flux de donné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:
    - déterminer un groupe de valeurs de pixel constantes pour le bloc à partir de pixels précédemment décodés,
    - pour chaque pixel du bloc:
    (i) déterminer une valeur de prédiction associée au pixel selon un premier mode de prédiction, selon lequel le pixel est prédit à partir d'au moins 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é,
    (ii) déterminer un mode de prédiction pour le pixel parmi le premier mode de prédiction et un deuxième mode de prédiction selon lequel le pixel est prédit à l'aide d'une prédiction issue dudit groupe de valeurs de pixel constantes pour le bloc,
    (iii) coder dans le flux de données, une information indiquant si le pixel est prédit selon le deuxième mode de prédiction,
    (iv) lorsque l'information indique que le pixel est prédit selon le deuxième mode de prédiction:
    (a) sélectionner une valeur dudit groupe,
    (b) remplacer ladite valeur de prédiction associée au pixel par ladite valeur sélectionnée,
    (v) calculer un résidu de prédiction associé audit pixel à l'aide de la valeur de prédiction associée au pixel et de la valeur dudit pixel,
    (vi) coder le résidu de prédiction associé audit pixel dans le flux de données,
    (vii) reconstruire ledit pixel à l'aide de la valeur de prédiction associée au pixel et du résidu de prédiction décodé.
  10. Flux de données représentatif d'au moins une image, ladite image étant découpée en blocs, le flux de données comprend, pour au moins un bloc de l'image, dit bloc courant, et pour chaque pixel du bloc courant:
    - une information représentative d'un résidu de prédiction associé audit pixel,
    - une information indiquant si le pixel est prédit à l'aide d'une prédiction issue d'un groupe de valeurs de pixel constantes pour le bloc, le groupe de valeurs de pixel constantes pour le bloc étant déterminé à partir de pixels précédemment décodés.
  11. Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de décodage selon l’une quelconque des revendications 1 ou 3 à 6 ou du procédé de codage selon l'une quelconque des revendications 2 à 7, lorsque ledit programme est exécuté par un processeur.
  12. Support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur selon la revendication 11.
FR1901228A 2019-02-07 2019-02-07 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image. Withdrawn FR3092719A1 (fr)

Priority Applications (10)

Application Number Priority Date Filing Date Title
FR1901228A FR3092719A1 (fr) 2019-02-07 2019-02-07 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image.
BR112021014787-0A BR112021014787A2 (pt) 2019-02-07 2020-01-30 Métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem
KR1020217025873A KR20210128401A (ko) 2019-02-07 2020-01-30 적어도 하나의 이미지를 표현하는 데이터 스트림을 코딩 및 디코딩하기 위한 방법들 및 디바이스들
US17/429,174 US12022115B2 (en) 2019-02-07 2020-01-30 Methods and devices for coding and decoding a data stream representative of at least one image
CN202410522725.0A CN118301343A (zh) 2019-02-07 2020-01-30 用于编码和解码表示至少一个图像的数据流的方法和设备
CN202080013072.3A CN113412618B (zh) 2019-02-07 2020-01-30 用于编码和解码表示至少一个图像的数据流的方法和设备
PCT/FR2020/050146 WO2020161413A1 (fr) 2019-02-07 2020-01-30 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image
JP2021546344A JP2022519739A (ja) 2019-02-07 2020-01-30 少なくとも1つの画像を表すデータストリームをコード化および復号するための方法およびデバイス
EP20707501.1A EP3922017A1 (fr) 2019-02-07 2020-01-30 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image
US18/662,281 US20240298028A1 (en) 2019-02-07 2024-05-13 Methods and devices for coding and decoding a data stream representative of at least one image

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1901228 2019-02-07
FR1901228A FR3092719A1 (fr) 2019-02-07 2019-02-07 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image.

Publications (1)

Publication Number Publication Date
FR3092719A1 true FR3092719A1 (fr) 2020-08-14

Family

ID=67185272

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1901228A Withdrawn FR3092719A1 (fr) 2019-02-07 2019-02-07 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image.

Country Status (8)

Country Link
US (2) US12022115B2 (fr)
EP (1) EP3922017A1 (fr)
JP (1) JP2022519739A (fr)
KR (1) KR20210128401A (fr)
CN (2) CN118301343A (fr)
BR (1) BR112021014787A2 (fr)
FR (1) FR3092719A1 (fr)
WO (1) WO2020161413A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253508B2 (en) 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
FR3066873A1 (fr) * 2017-05-29 2018-11-30 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2977111A1 (fr) * 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
FR3023112A1 (fr) * 2014-06-27 2016-01-01 Bcom Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
FR3046321B1 (fr) * 2015-12-29 2018-01-26 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes
TW201907732A (zh) * 2017-07-05 2019-02-16 財團法人工業技術研究院 視訊編碼方法、視訊解碼方法、視訊編碼器及視訊解碼器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253508B2 (en) 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
FR3066873A1 (fr) * 2017-05-29 2018-11-30 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
C-C CHEN ET AL: "Description of screen content coding technology proposal by NCTU and ITRI International", 17. JCT-VC MEETING; 27-3-2014 - 4-4-2014; VALENCIA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-Q0032-v2, 27 March 2014 (2014-03-27), XP030115918 *
GUO X ET AL: "AHG8: Major-color-based screen content coding", 15. JCT-VC MEETING; 23-10-2013 - 1-11-2013; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-O0182-v3, 25 October 2013 (2013-10-25), XP030115219 *
Y-C SUN ET AL: "CE15-related: Combination of palette mode and intra prediction", no. m44233, 5 October 2018 (2018-10-05), XP030192576, Retrieved from the Internet <URL:http://phenix.int-evry.fr/mpeg/doc_end_user/documents/124_Macao/wg11/m44233-JVET-L0213-v3-JVET-L0213_v3.zip JVET-L0213_v3.docx> [retrieved on 20181005] *

Also Published As

Publication number Publication date
US20240298028A1 (en) 2024-09-05
US12022115B2 (en) 2024-06-25
US20220103862A1 (en) 2022-03-31
CN118301343A (zh) 2024-07-05
BR112021014787A2 (pt) 2021-09-28
JP2022519739A (ja) 2022-03-24
CN113412618B (zh) 2024-05-17
WO2020161413A1 (fr) 2020-08-13
CN113412618A (zh) 2021-09-17
KR20210128401A (ko) 2021-10-26
EP3922017A1 (fr) 2021-12-15

Similar Documents

Publication Publication Date Title
FR2947134A1 (fr) Procedes de codage et de decodages d&#39;images, dispositifs de codage et de decodage, flux de donnees et programme d&#39;ordinateur correspondants.
FR2906433A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;images, programme d&#39;ordinateur les mettant en oeuvre et support d&#39;informaton permettant de les mettre en oeuvre
EP3225029B1 (fr) Procede d&#39;encodage d&#39;image et equipement pour la mise en oeuvre du procede
FR2904494A1 (fr) Procede et dispositif de compression d&#39;image, systeme de telecommunication comportant un tel dispositif et programme mettant en oeuvre un tel procede
EP4222968A1 (fr) Codage vidéo à filtrage en boucle basé sur un réseau neuronal
EP3318061B1 (fr) Procede d&#39;encodage d&#39;image et equipement pour la mise en oeuvre du procede
WO2010149914A1 (fr) Procedes de codage et de decodage d&#39;images, dispositifs de codage et de decodage, et programme d&#39;ordinateur correspondants
WO2020058594A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3972246B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3479572A1 (fr) Procédé de codage intra d&#39;une image numérique et procédé de décodage correspondant
EP3815369B1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
FR3092719A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image.
EP3941045A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3854085A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
WO2020002795A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
FR3086486A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;un flux de donnees representatif d&#39;au moins une image.
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
FR3098070A1 (fr) Procédé d’encodage et de décodage vidéo par signalisation d’un sous-ensemble de candidat
Nasiri Machine learning based optimization for VVC low bitrate coding
FR2891966A1 (fr) Dispositifs et procedes de codage et de decodage echelonnables de flux de donnees d&#39;images, signal, programme d&#39;ordinateur et module d&#39;adaptation de qualite d&#39;images correspondants
FR3064145A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20200814

ST Notification of lapse

Effective date: 20211005