[go: up one dir, main page]

FR3012004A1 - Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants - Google Patents

Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants Download PDF

Info

Publication number
FR3012004A1
FR3012004A1 FR1360033A FR1360033A FR3012004A1 FR 3012004 A1 FR3012004 A1 FR 3012004A1 FR 1360033 A FR1360033 A FR 1360033A FR 1360033 A FR1360033 A FR 1360033A FR 3012004 A1 FR3012004 A1 FR 3012004A1
Authority
FR
France
Prior art keywords
block
current
candidate predictor
decoded
blocks
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
FR1360033A
Other languages
English (en)
Inventor
Felix Henry
Bihong Huang
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 FR1360033A priority Critical patent/FR3012004A1/fr
Priority to CN201480056598.4A priority patent/CN105745928A/zh
Priority to US15/029,738 priority patent/US20160269738A1/en
Priority to PCT/FR2014/052605 priority patent/WO2015055937A1/fr
Priority to EP14796227.8A priority patent/EP3058737A1/fr
Publication of FR3012004A1 publication Critical patent/FR3012004A1/fr
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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • H04N19/865Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness with detection of the former encoding block subdivision in decompressed video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne de codage d'au moins une image (ICj) découpée en blocs, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à coder, les étapes de : - détermination (C3), d'un ensemble de blocs prédicteurs candidats (BP11, BP1 2,..., BP1 v,..., BP1 Q), - pour au moins un bloc prédicteur candidat (BP1 v) dudit ensemble : • obtention (C4) d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant (Bu), • identification (C10), dans ledit ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant obtenu, • sélection (C12a)) dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié, - détermination (C13), parmi les blocs prédicteurs candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat (BP1 opt), à l'aide d'un critère prédéterminé (J), - codage (C15-C17) du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant (Bu).

Description

PROCÉDÉ DE CODAGE ET DE DÉCODAGE D'IMAGES, DISPOSITIF DE CODAGE ET DE DÉCODAGE D'IMAGES ET PROGRAMMES D'ORDINATEUR CORRESPONDANTS Domaine de l'invention La présente invention se rapporte de manière générale au domaine du traitement d'images et plus précisément au codage et au décodage d'images numériques et de séquences d'images numériques. Le codage/décodage d'images numériques s'applique notamment à 10 des images issues d'au moins une séquence vidéo comprenant : - des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D), - des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D), 15 - des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D), - etc... La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D. 20 L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en oeuvre dans les codeurs vidéo actuels AVC et HEVC et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant. 25 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, lorsqu'on transmet ces images, de les compresser afin d'éviter les problèmes d'encombrement sur le réseau de communication utilisé pour cette transmission, le débit utilisable sur 30 celui-ci étant généralement limité. Cette compression est également souhaitable en vue du stockage de ces données. On connaît déjà de nombreuses techniques de compression de données vidéo. Parmi celles-ci, de nombreuses techniques de codages vidéo, notamment la technique HEVC, utilisent des techniques de prédiction spatiale ou temporelle de groupes de blocs de pixels d'une image courante par rapport à d'autres groupes de blocs de pixels appartenant à la même image ou à une image précédente ou suivante.
Plus précisément, selon la technique HEVC, des images I sont codées par prédiction spatiale (prédiction intra), et des images P et B sont codées par prédiction temporelle (prédiction inter) par rapport à d'autres images I, P ou B codées/décodées à l'aide d'une compensation en mouvement. A cet effet, les images sont découpées une première fois en blocs de pixels appelés CTU (abréviation anglaise de « Coded Treeblocks Unit ») qui sont similaires aux macroblocs de la norme H.264. Ces blocs peuvent être ensuite subdivisés en blocs plus petits, chacun de ces blocs plus petits ou chaque bloc CTU étant codé par prédiction intra ou inter images. Selon la technique HEVC, lorsqu'un bloc CTU est subdivisé en blocs plus petits, un signal de données, correspondant à chaque bloc, est transmis au décodeur. Un tel signal comprend : - des données résiduelles qui sont les coefficients des blocs résiduels quantifiés, - des paramètres de codage qui sont représentatifs du mode de codage utilisé, en particulier: - le mode de prédiction (prédiction intra, prédiction inter, prédiction par défaut réalisant une prédiction pour laquelle aucune information n'est transmise au décodeur (« en anglais « skip »)) ; - des informations précisant le type de prédiction (orientation, image de référence, ...) ; - le type de subdivision ; - le type de transformée, par exemple DCT 4x4, DCT 8x8, etc... - les informations de mouvement si nécessaire ; - etc. Le décodage est fait image par image, et pour chaque image, bloc CTU par bloc CTU. Pour chaque bloc plus petit d'un bloc CTU, les éléments correspondants du flux sont lus. La quantification inverse et la transformation inverse des coefficients des blocs plus petits sont effectuées. Puis, la prédiction de chaque bloc CTU est calculée et chaque bloc CTU est reconstruit en ajoutant la prédiction au résidu de prédiction décodé.
Le codage intra ou inter par compétition, tel que mis en oeuvre dans la norme HEVC, repose ainsi sur la mise en compétition de différents paramètres de codage, tels que ceux précités, dans le but de sélectionner le meilleur mode de codage, c'est-à-dire celui qui optimisera le codage du bloc considéré selon un critère de performance prédéterminé, par exemple le coût débit/distorsion bien connu de l'homme du métier. Les paramètres de codage relatifs au mode de codage sélectionné sont contenus dans le flux de données transmis par le codeur au décodeur, sous la forme d'identifiants appelés généralement indices de compétition. Le décodeur est ainsi capable d'identifier le mode de codage sélectionné au codeur, puis d'appliquer la prédiction conforme à ce mode. La bande passante allouée à ces indices de compétition n'est pas négligeable, puisqu'elle atteint environ 30%. Elle tend par ailleurs à augmenter en raison de l'apport toujours grandissant de nouveaux paramètres de codage tels que de nouvelles dimensions et/ou formes de blocs de pixels, de nouveaux paramètres de prédiction Infra, Inter, etc.... Objet et résumé de l'invention Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité.
A cet effet, un objet de la présente invention concerne un procédé de codage d'au moins une image découpée en blocs. Un tel procédé de codage est remarquable en ce qu'il comprend, pour un bloc courant à coder, les étapes de : - détermination, d'un ensemble de blocs prédicteurs candidats, - pour au moins un bloc prédicteur candidat de l'ensemble précité: - obtention d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant, - identification, dans l'ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, une telle identification étant fonction du bloc résiduel courant obtenu, - sélection dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié, - détermination, parmi les blocs prédicteurs candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat, à l'aide d'un critère prédéterminé, - codage du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant. Une telle disposition permet, lors du codage d'une image, d'éviter d'inclure dans le signal à transmettre au décodeur les indices des blocs prédicteurs qui sont utilisés pour prédire respectivement les blocs de l'image.
Il en résulte ainsi une diminution non négligeable du coût de signalisation, dans la mesure où une telle disposition est reproductible au décodeur. En outre, l'identification de blocs prédicteurs candidats en vue de la prédiction du bloc courant est particulièrement fiable. Elle résulte du fait que pour un bloc résiduel courant considéré, les caractéristiques des blocs prédicteurs candidats sont très différentes les unes des autres, ce qui facilite la sélection finale du bloc prédicteur candidat le plus adapté lors de l'étape de détermination selon un critère prédéterminé. Selon un mode de réalisation particulier, les blocs de l'image précédant le bloc courant étant codés dans un ordre déterminé, l'identification précitée 25 est fonction des pixels de l'image précédemment codés. Une telle disposition permet ainsi de tenir compte d'informations de l'image qui sont déjà disponibles au moment du codage du bloc courant, augmentant ainsi les performances de l'identification des blocs prédicteurs candidats. 30 Selon un mode de réalisation préféré de l'invention, les pixels précédemment codés de l'image sont situés le long du bloc courant.
Une telle disposition permet ainsi de minimiser les discontinuités susceptibles d'apparaître le long des frontières du bloc courant, tout en correspondant mieux à la réalité de l'image. Selon un mode de réalisation particulier, le critère prédéterminé est la minimisation du coût débit-distorsion de l'image. Le choix d'un tel critère optimise la prédiction effectuée au codage. Selon un mode de réalisation particulier, le bloc courant est un bloc qui a été préalablement obtenu à la suite d'une prédiction. Une telle disposition a pour but d'affiner davantage la prédiction du 10 bloc courant de façon à obtenir des performances de codage optimisées. Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de codage tel que défini ci-dessus. L'invention concerne également un dispositif de codage d'au moins une 15 image découpée en blocs, un tel dispositif étant remarquable en ce qu'il comprend, pour un bloc courant à coder : - un module de détermination, d'un ensemble de blocs prédicteurs candidats, - pour au moins un bloc prédicteur candidat de l'ensemble : 20 - un module d'obtention d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant, - un module d'identification, dans l'ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, en 25 fonction du bloc résiduel courant obtenu, - un module de sélection dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié, - un module de détermination, parmi les blocs prédicteurs 30 candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat, à l'aide d'un critère prédéterminé, - un module de codage du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant.
Un tel dispositif de codage est apte à mettre en oeuvre le procédé de codage précité. L'invention concerne également un procédé de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, un tel 5 procédé comprenant les étapes de : - détermination, dans le signal de données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder, - décodage du bloc résiduel courant. 10 Le procédé de décodage selon l'invention est remarquable en ce qu'il comprend, pour un bloc courant à reconstruire, les étapes de : - détermination d'un ensemble de blocs prédicteurs candidats, - identification, dans l'ensemble précité, d'un bloc prédicteur candidat, une telle identification étant fonction dudit bloc résiduel courant 15 décodé, - reconstruction du bloc courant à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé. Un avantage d'un tel procédé de décodage réside dans le fait que l'étape d'identification du bloc prédicteur apte à reconstruire le bloc courant 20 est reproductible au décodage. Le signal de données reçu au décodeur ne contient avantageusement pas d'informations associées à ce bloc prédicteur identifié, ce qui réduit notablement le coût de signalisation de ces informations. En outre, le fait que l'identification du bloc prédicteur soit fonction du 25 bloc résiduel courant décodé permet une reconstruction fiable du bloc courant. Les caractéristiques des blocs prédicteurs candidats de l'ensemble déterminé étant très différentes les unes des autres, l'identification du bloc prédicteur retenu pour la reconstruction du bloc courant s'en trouve facilitée. Il en résulte un décodage de l'image de meilleure qualité. 30 Selon un mode de réalisation particulier, les blocs de l'image précédant le bloc courant étant décodés dans un ordre déterminé, l'identification d'un bloc prédicteur est fonction des pixels de l'image précédemment décodés. Selon un autre mode de réalisation particulier, les pixels précédemment décodés de l'image sont situés le long du bloc courant.
Selon un autre mode de réalisation particulier, le procédé de décodage comprend en outre une étape de détermination, dans le signal de données, d'une information associée à une prédiction préalable du bloc courant, ladite étape de reconstruction du bloc courant étant mise en oeuvre à partir d'une telle prédiction préalable, du bloc prédicteur identifié et du bloc résiduel courant déterminé. Une telle disposition permet d'affiner davantage la prédiction de façon à obtenir des performances de décodage optimisées. Les différents modes ou caractéristiques de réalisation précités 10 peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de décodage tel que défini ci-dessus. De façon correspondante, l'invention concerne aussi un dispositif de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, un tel dispositif comprenant : 15 - un module de détermination, dans le signal de données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder, - un module de décodage dudit bloc résiduel courant. Un tel dispositif de décodage est remarquable en ce qu'il comprend, 20 pour un bloc courant à reconstruire : - un module de détermination d'un ensemble de blocs prédicteurs candidats, - un module d'identification, dans ledit ensemble, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel 25 courant décodé, - un module de reconstruction du bloc courant à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé. Un tel dispositif de décodage est apte à mettre en oeuvre le procédé de décodage précité. 30 L'invention concerne encore un programme d'ordinateur comportant des instructions pour mettre en oeuvre l'un des procédés de codage et de décodage selon l'invention, lorsqu'il est exécuté sur un 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 également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce 5 programme comportant des instructions adaptées à la mise en oeuvre de l'un des procédés selon l'invention, tels que décrits ci-dessus. L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre du 10 procédé de codage ou de décodage selon l'invention, tels que décrits ci- dessus. Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM 15 ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur. D'autre part, le support d'enregistrement peut être 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 20 programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'enregistrement peut être 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é de codage ou de décodage 25 précité. Le procédé de décodage, le dispositif de codage, le dispositif de décodage, les programmes d'ordinateur et les supports d'enregistrement correspondants précités présentent au moins les mêmes avantages que ceux conférés par le procédé de codage et de décodage selon la présente 30 invention. Brève description des dessins D'autres caractéristiques et avantages apparaîtront à la lecture d'un mode de réalisation préféré décrits en référence aux figures dans lesquelles: - les figures 1A et 1B représentent des étapes du procédé de codage selon un mode de réalisation de l'invention, - la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention apte à mettre en oeuvre le procédé de codage des figures 1A et 1 B, - la figure 3 représente un exemple de partitionnement de l'image courante en plusieurs blocs de pixels, - la figure 4 représente un mode de réalisation selon l'invention de l'étape d'identification d'un bloc prédicteur candidat en fonction du bloc résidu décodé courant obtenu, - la figure 5 représente des étapes du procédé de codage selon un autre mode de réalisation de l'invention, - la figure 6 représente un mode de réalisation d'un dispositif de codage selon l'invention apte à mettre en oeuvre le procédé de codage de la figure 5, - la figure 7 représente des étapes du procédé de décodage selon un mode de réalisation de l'invention, - la figure 8 représente un mode de réalisation d'un dispositif de décodage selon l'invention apte à mettre en oeuvre le procédé de décodage de la figure 7, - la figure 9 représente des étapes du procédé de décodage selon un autre mode de réalisation de l'invention, - la figure 10 représente un mode de réalisation d'un dispositif de décodage selon l'invention apte à mettre en oeuvre le procédé de décodage de la figure 9. Description détaillée d'un mode de réalisation de la partie codage Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une image ou une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage conforme par exemple à la norme HEVC. Dans ce mode de réalisation, le procédé de codage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à la norme HEVC. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes Cl à C22 telles que représentées aux figures 1A et 1B. Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage CO1 représenté à la figure 2. Comme illustré en figure 2, un tel dispositif de codage comprend une mémoire MEM CO1 comprenant une mémoire tampon MT_CO1, une unité de traitement UT CO1 équipée par exemple d'un microprocesseur pP et pilotée par un programme d'ordinateur PG_CO1 qui met en oeuvre le procédé de codage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_CO1 sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur de l'unité de traitement UT _C01.
Le procédé de codage représenté sur les figures 1A et 1B s'applique à toute image courante d'une séquence SQ d'images à coder. Au cours d'une première étape Cl représentée à la figure 1A, il est procédé, de façon connue en soi, au partitionnement d'une image courante 1C; appartenant à la séquence SQ d'images 1C1, 1C;,..., 1Cm (1M), en une pluralité de blocs B1, B2, ..., Bu,..., Bs (1 nKS), par exemple de taille 64x64 pixels. Une telle étape de partitionnement est mise en oeuvre par un module logiciel de partitionnement MP1 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _C01. L'image 1C; ainsi partitionnée est représentée à la figure 3. Dans l'exemple représenté, l'image 1C; est partitionnée en quatre bloc B1, B2, B3 et B4. Il convient de noter qu'au sens de l'invention, le terme « bloc » signifie unité de codage (de l'anglais « coding unit »). Cette dernière terminologie est notamment utilisée dans la norme HEVC, par exemple dans le document « B.
Bross, W.-J. Han, J.-R. Ohm, G. J. Sullivan, and T. Wiegand, "High efficiency video coding (HEVC) text specification draft 10," document JCTVC-L1003 of JCT-VC, Genève, CH, 14-23 January 2013».
En particulier, une telle unité de codage regroupe des ensembles de pixels de forme rectangulaire ou carrée, encore appelés blocs, macroblocs, ou bien des ensembles de pixels présentant d'autres formes géométriques. Lesdits blocs B1, B2, ..., Bu,..., Bs sont destinés à être codés selon un 5 ordre de parcours prédéterminé, qui est par exemple du type raster scan. Cela signifie que les blocs sont codés les uns après les autres, de la gauche vers la droite. D'autres types de parcours sont bien sûr possibles. Ainsi, il est possible de découper l'image IC; en plusieurs sous-images appelées slices et 10 d'appliquer indépendamment un découpage de ce type sur chaque sous-image. Il est également possible de coder non pas une succession de lignes, comme expliqué ci-dessus, mais une succession de colonnes. Il est également possible de parcourir les lignes ou colonnes dans un sens ou dans l'autre. 15 Au cours d'une étape C2 représentée à la figure 1A, le codeur CO1 sélectionne comme bloc courant un premier bloc à coder Bu de l'image ICi, tel que par exemple le premier bloc B1. Au cours d'une étape C3 représentée à la figure 1A, il est procédé selon l'invention à la détermination d'un ensemble de Q blocs prédicteurs 20 candidats BP11, BP12,..., BP1v,...,BP1c) (1 Nt<)). De tels blocs prédicteurs candidats sont par exemple des blocs de pixels qui ont été déjà codés ou non. De tels blocs sont préalablement stockés dans la mémoire tampon MT_CO1 du codeur telle que représentée à la figure 2. Dans l'exemple représenté, il s'agit en particulier d'un nombre prédéterminé de blocs qui ont 25 été codés juste avant le bloc courant considéré. Une telle étape de détermination est mise en oeuvre par un module logiciel de détermination DET_CO1 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _C01. Au cours d'une étape C4 représentée à la figure 1A, pour un bloc 30 prédicteur candidat BP1v considéré, il est procédé à la soustraction du bloc prédicteur candidat BP1v du bloc courant Bu pour produire un bloc résidu Bru. Au cours d'une étape C5 représentée à la figure 1A, il est procédé à la transformation du bloc résidu Br' selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt,. Au cours d'une étape C6 représentée à la figure 1A, il est procédé à la quantification du bloc transformé Bt, selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bq, est alors obtenu. Les étapes C4 à C6 sont mises en oeuvre par un module logiciel de codage prédictif PRED_CO1 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _C01. Le module de codage prédictif PRED_CO1 est apte à effectuer un codage prédictif du bloc courant, selon les techniques de prédiction classiques, telles que par exemple en mode Infra et/ou Inter. Au cours d'une étape C7 représentée à la figure 1A, il est procédé au codage entropique du bloc de coefficients quantifiés Bq,. Dans le mode préféré de réalisation, il s'agit d'un codage entropique CABAC. Une telle étape consiste à : a) lire le ou les symboles de l'ensemble prédéterminé de symboles qui sont associés audit bloc courant, b) associer des informations numériques, telles que des bits, au(x) symbole(s) lu(s). Une telle étape de codage entropique est mise en oeuvre par un module logiciel de codage entropique MCE1 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_C01. Le module de codage entropique MCE1 est par exemple de type CABAC. Il peut également s'agir d'un codeur de Huffman connu en tant que tel. Au cours d'une étape C8 représentée à la figure 1A, il est procédé à la déquantification du bloc Bq, selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C6. Un bloc de coefficients déquantifiés BDq, est alors obtenu.
Au cours d'une étape C9 représentée à la figure 1A, il est procédé à la transformation inverse du bloc de coefficients déquantifiés BDq, qui est l'opération inverse de la transformation directe effectuée à l'étape C5 ci-dessus. Un bloc résidu décodé BDr, est alors obtenu.
Les étapes C8 et C9 sont mises en oeuvre par un module logiciel de codage prédictif inverse PREDIC01 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _C01. Du fait que pour le bloc courant Bu considéré, les étapes C4 à C9 sont réitérées pour chaque bloc prédicteur de l'ensemble de blocs prédicteurs BP1 1, BP12,..., BP1v,... ,BP1Q, Q blocs résidus décodés BDr1, BDr2,..- , BDrv,...,BDrc) sont obtenus à l'issue de l'étape C9. Au cours d'une étape C10 représentée à la figure 1A, il est procédé selon l'invention à l'identification, parmi l'ensemble des Q blocs prédicteurs BP11, BP12,..., BP1v,... ,BP1Q, d'au moins un bloc prédicteur capable d'être retrouvé au décodage du bloc courant Bu. Selon l'invention, une telle étape d'identification est fonction du bloc résidu décodé courant BDrv obtenu. Une telle étape d'identification est mise en oeuvre par un module logiciel de calcul CAL1_CO1 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _C01. Selon un mode particulier de réalisation représenté sur la figure 4, une telle identification consiste, pour un bloc résidu decodé courant BDrv, à construire un bloc décodé courant BDvm en ajoutant au bloc résidu décodé courant BDrv un bloc prédicteur candidat BP1,(1\nr<)).
Dans ce mode particulier, est appliqué un critère de minimisation de la différence entre les pixels décodés de l'image courante ICi, qui sont représentés par des points sur la figure 4, et les pixels du bloc décodé BDvm le long de sa frontière F. Ce critère est un opérateur mathématique noté SM(BDV,W, ICi). L'opérateur SM(BDV,W, ICi) est en fait représentatif de l'erreur quadratique le long de la frontière F du bloc résiduel décodé BDrv avec l'image ICi. Il s'écrit de la façon suivante : SM (BD,,w, /Ci) N-1 = (131),,w(0, a) - I Ci(lin - 1, col + a)) 2 a=0 N-1 + > (131),,w(a, 0) - I Ci (lin + a, col - 1)) 2 a=0 où : - BD,,, est le bloc décodé considéré de taille NxN pixels, - BD,,''(n,m) est la valeur du pixel du bloc résidu décodé BD,,,'' situé sur la nième ligne et la mième colonne de ce bloc, - IC; est l'image courante, - IC;(k, I) est la valeur du pixel de l'image IC; situé sur la k ième ligne et la I ième colonne de cette image, et (lin,col) sont les coordonnées du bloc décodé BDv,w dans l'image ICJ. A titre d'alternative, on peut utiliser un critère simplifié, où l'on vient comparer la moyennes des pixels de l'image IC; le long de la frontière F et la moyenne des pixels du bloc décodé BD,,,''. L'opérateur SM(BDv,'', IC;) s'écrit alors : SM (BD,,w, /Ci) N-1 1 (2N - 1) Ci(lin - 1, col + a) = abs a=0 + I Ci (lin + a, col - 1)) (131),,w(a, b)) - N2 a=0 b=0 Où abs() représente la valeur absolue.
Au cours de l'étape C10, il est procédé à la détermination du bloc décodé B Dvmmin qui minimise l'un des deux critères précités choisis, tel que : wmin = argmin, SM(3D,,w, /Ci) Le bloc B Dvmmin est égal à la somme du bloc prédicteur candidat BP1wmin et du bloc résidu décodé courant BDrv.
Au cours d'une étape C11 représentée à la figure 1A, il est procédé à la comparaison du bloc prédicteur candidat identifié BP1wmin avec le bloc prédicteur candidat BP1v associée au bloc résidu décodé BDrv. Une telle étape de comparaison est mise en oeuvre par un module logiciel de calcul CAL2_CO1 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _C01.
Pour le bloc courant Bu, considéré, les étapes C4 à C11 sont réitérées pour chaque bloc prédicteur de l'ensemble de blocs prédicteurs BP1i, BP12,..., BP1v,...,BP1C) déterminé à l'étape C3. Dans le cas où il y a identité entre le bloc BP1'in et le bloc BP1v, il est procédé, au cours d'une étape C12a) représentée à la figure 1A, à la sélection du bloc BP1'in qui devient un bloc prédicteur identifié. Dans le cas où il n'y a pas identité entre le bloc BP1'in et le bloc BP1v, le bloc BP1'in n'est pas sélectionné en tant que bloc prédicteur identifié. A l'issue de l'étape de sélection C12a), une pluralité T de blocs prédicteurs identifiés BP1i, BP12, BP1z, BP1T est obtenue, où Au cours d'une étape C13 représentée à la figure 1B, il est procédé à la détermination, parmi tous les blocs prédicteurs BP1i, BP12, BP1z, , BP1T qui ont été obtenus à l'étape C12a), d'un bloc prédicteur candidat préférentiel BPlopt, à l'aide de la minimisation d'un critère prédéterminé. Un tel critère s'exprime par l'équation (1) ci-dessous: (1) J=D+ÀR où D représente la distorsion entre le bloc courant B1 original et le bloc B1 reconstruit, R représente le coût en bits du codage des paramètres de codage utilisés pour coder le bloc B1 et À représente un multiplicateur de Lagrange dont la valeur est fixée au codeur. Selon une variante particulièrement avantageuse d'un point de vue réduction du temps de calcul au codeur, le critère de performance prédéterminé ne dépend que de la distorsion et s'exprime par l'équation (2) ci-25 dessous : (2) J'=D. Les critères J et J' sont calculés classiquement par simulation par un module de calcul CAL3 CO1 représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _C01. 30 Au cours d'une étape C14 représentée à la figure 1, le module prédictif PRED CO1 de la figure 2 procède à la soustraction du bloc prédicteur candidat préférentiel BP1upt du bloc courant Bu pour produire un bloc résidu Broptu- Au cours d'une étape C15 représentée à la figure 1B, le module PRED CO1 de la figure 2 procède à la transformation du bloc résidu Brom, selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Btoptu. Au cours d'une étape C16 représentée à la figure 1B, le module PRED CO1 de la figure 2 procède à la quantification du bloc transformé Btopt, selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bqopt, est alors obtenu. Au cours d'une étape C17 représentée à la figure 1B, le module de codage entropique MCE1 de la figure 2 procède au codage entropique du bloc de coefficients quantifiés Bqoptu. Un flux de données cp qui contient les données encodées du bloc de coefficients quantifiés Bqopt, est alors délivré à l'issue de l'étape C17. Un tel flux est ensuite transmis par un réseau de communication (non représenté), à un terminal distant. Celui-ci comporte le décodeur DO1 représenté à la figure 7. De façon connue en soi, le flux cp comprend en outre certaines informations encodées par le codeur C01, telles que le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction, le type de partitionnement du bloc si ce dernier a été partitionné, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter. Au cours d'une étape C18 représentée à la figure 1B, le module PRED-1 CO1 de la figure 2 procède à la déquantification du bloc Bqopt, selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C16. Un bloc de coefficients déquantifiés BDqopt, est alors obtenu. Au cours d'une étape C19 représentée à la figure 1B, le module PRED-1 CO1 de la figure 2 procède à la transformation inverse du bloc de coefficients déquantifiés BDqoptu qui est l'opération inverse de la transformation directe effectuée à l'étape C15 ci-dessus. Un bloc résidu décodé BDropt, est alors obtenu.
Au cours d'une étape C20 représentée à la figure 1B, il est procédé à la construction du bloc décodé BD, en ajoutant au bloc prédicteur candidat préférentiel BP1opt le bloc résidu décodé BDropt,. Il est à noter que ce dernier bloc est le même que le bloc décodé obtenu à l'issue du procédé de décodage de l'image IC; qui sera décrit plus loin dans la description. Le bloc décodé BD, est alors stocké dans la mémoire tampon MT_CO1 de la figure 2, afin d'être utilisé par le codeur CO1 comme bloc prédicteur candidat d'un bloc suivant à coder. Au cours d'une étape C21 représentée à la figure 1B, le codeur CO1 teste si le bloc courant Bu qui vient d'être codé est le dernier bloc de l'image ICi. Si le bloc courant est le dernier bloc de l'image ICi, au cours d'une étape suivante C22 représentée à la figure 1B, il est mis fin au procédé de codage.
Si tel n'est pas le cas, il est procédé à nouveau à l'étape de sélection C2 du bloc suivant à coder conformément à l'ordre de parcours raster scan précité, puis les étapes C3 à C21 sont réitérées pour ce bloc suivant sélectionné. Les étapes de codage qui viennent d'être décrites ci-dessus sont mises en oeuvre pour tous les blocs B1, B2, , Bs à coder de l'image courante IC; considérée. Description détaillée d'un autre mode de réalisation de la partie codage Cet autre mode de réalisation se distingue du mode de réalisation précédent en ce qu'il met en oeuvre deux types de prédiction qui vont être décrites ci-dessous en référence à la figure 5. Le procédé de codage selon cet autre mode de réalisation est représenté sous la forme d'un algorithme comportant des étapes C'1 à C'9 telles que représentées à la figure 5. Le procédé de codage selon cet autre mode de réalisation de l'invention est implémenté dans un dispositif de codage CO2 représenté à la figure 6. Comme illustré en figure 6, un tel dispositif de codage CO2 comprend une mémoire MEM CO2 comprenant une mémoire tampon MT_CO2, une unité de traitement UT CO2 équipée par exemple d'un microprocesseur pP et pilotée par un programme d'ordinateur PG_CO2 qui met en oeuvre le procédé de codage selon cet autre mode de réalisation. A l'initialisation, les instructions de code du programme d'ordinateur PG_CO2 sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur de l'unité de traitement UT_CO2. Le procédé de codage représenté sur la figure 5 s'applique à toute image courante d'une séquence SQ d'images à coder. Au cours d'une étape C'l représentée à la figure 5, il est procédé au 10 partitionnement d'une image courante IC; appartenant à la séquence SQ d'images 1C1, , , ICm (1M), en une pluralité de blocs B1, B2, Be,..., Bs (1 nKS), par exemple de taille 64x64 pixels. Une telle étape de partitionnement est mise en oeuvre par un module logiciel de partitionnement MP2 représenté sur la figure 6, lequel module est piloté par le 15 microprocesseur pP de l'unité de traitement UT_CO2. L'étape C'l étant identique à l'étape Cl de la figure 1A, elle ne sera pas décrite plus longuement. Comme dans le mode de réalisation des figures 1A et 1B, lesdits blocs B1, B2, ..., Bu,..., Bs sont destinés à être codés selon un ordre de 20 parcours prédéterminé, qui est par exemple du type raster scan. Cela signifie que les blocs sont codés les uns après les autres, de la gauche vers la droite. Au cours d'une étape C'2 représentée à la figure 5, le codeur CO2 sélectionne comme bloc courant un premier bloc à coder Be de l'image ICi, tel que par exemple le premier bloc B1. 25 Au cours d'une étape C'3 représentée à la figure 5, il est procédé, de façon connue en soi, à la prédiction du bloc courant Be par des techniques classiques de prédiction intra et/ou inter à l'aide d'un bloc prédicteur BP1sel. Une telle prédiction sera appelée « prédiction primaire » dans la suite de la description. 30 L'étape de prédiction précitée permet de construire un bloc résidu Brl qui est obtenu par calcul de la différence entre le bloc courant Be et le bloc prédicteur BPI sel.
L'étape C'3 est mise en oeuvre par un module logiciel de codage prédictif PRED1_CO2 représenté sur la figure 6, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO2. Au cours d'une étape C'4 représentée à la figure 5, conformément à l'invention, il est procédé à la détermination d'un ensemble de Q blocs prédicteurs candidats BP21, BP22,..., BP2v,...,BP2c) (1v<)). Une telle étape étant identique à l'étape de détermination C3 de la figure 1A, elle ne sera pas décrite plus longuement. Une telle étape de détermination C'4 est mise en oeuvre par un module logiciel de détermination DET_CO2 représenté sur la figure 6, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO2. Au cours d'une étape C'S représentée à la figure 5, conformément à l'invention, il est procédé à une prédiction du bloc résidu Br1, en mettant en oeuvre les étapes C4 à C13 décrites ci-dessus en liaison avec les figures 1A et 1B. Une telle prédiction sera appelée « prédiction secondaire » dans la suite de la description. Au cours de cette prédiction secondaire, un bloc prédicteur candidat préférentiel BP2opt est sélectionné. En référence à la figure 6, l'étape C'S est mise en oeuvre à l'aide : - d'un module logiciel de prédiction PRED2_CO2 qui est identique au module PRED_CO de la figure 2, - d'un module logiciel de codage entropique MCE2_CO2 qui est identique au module MCE1 de la figure 2, - d'un module logiciel de prédiction inverse PRED2-1_CO2 qui 25 est identique au module PREDIC01 de la figure 2, - d'un module logiciel de calcul CAL1_CO2 qui est identique au module CALI CO1 de la figure 2, - d'un module logiciel de calcul CAL2_CO2 qui est identique au module CAL2 CO1 de la figure 2. 30 Au cours d'une étape C'6 représentée à la figure 5, conformément à l'invention, il est procédé au test de l'efficacité du bloc prédicteur candidat préférentiel BP2opt qui a été sélectionné.
L'étape de test C'6 est mise en oeuvre par un module logiciel de calcul CAL4 CO2 représenté sur la figure 6, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO2. Dans un mode préféré de réalisation, un tel test consiste à vérifier si l'énergie du bloc Br1,-BP2opt est inférieure à un seuil qui correspond à la valeur de l'énergie du bloc Br1'. Si le test négatif, le codage du bloc courant Bu se poursuit de manière classique. Si le test est positif, cela signifie que le bloc prédicteur candidat préférentiel BP2opt est proche du bloc original courant Bu. Par conséquent, la prédiction secondaire est appliquée au bloc courant Bu. Test négatif Dans le cas où le test effectué à l'étape C'6 est négatif, au cours d'une étape C'610 représentée à la figure 5, il est procédé à la transformation du bloc résidu Br1, selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt1,. Au cours d'une étape C'611 représentée à la figure 5, il est procédé à la quantification du bloc transformé Bt1, selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bq1, est alors obtenu. Les étapes C'610 et C'611 sont mises en oeuvre par le module logiciel de codage prédictif PRED1_CO2 représenté sur la figure 6. Au cours d'une étape C'612 représentée à la figure 5, il est procédé au codage entropique du bloc de coefficients quantifiés Bq1, par un module logiciel de codage entropique MCE1_CO2 identique au module logiciel de codage entropique MCE_CO1 de la figure 2. En outre, un indicateur Id associé au bloc prédicteur candidat préférentiel BP2opt est codé selon une première valeur prédéterminée (bit à 0 par exemple) pour signaler que la prédiction secondaire n'a pas été appliquée. Un flux de données (p1, qui contient les données encodées du bloc de coefficients quantifiés Bq11 ainsi que le bit à 0 de l'indicateur Id, est alors délivré à l'issue de l'étape C'612. Un tel flux est ensuite transmis par un réseau de communication (non représenté), à un terminal distant. Celui-ci comporte le décodeur DO2 représenté à la figure 10. De façon connue en soi, le flux (p1contient des informations encodées par le codeur CO2, telles que le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été partitionné, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter. Au cours d'une étape C'613 représentée à la figure 5, il est procédé à la déquantification du bloc Bq1, selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C'611. Un bloc de coefficients déquantifiés BDq1, est alors obtenu. Au cours d'une étape C'614 représentée à la figure 5, il est procédé à la transformation inverse du bloc de coefficients déquantifiés BDq1, qui est l'opération inverse de la transformation directe effectuée à l'étape C'610 ci-dessus. Un bloc résidu décodé BDr1, est alors obtenu.
Les étapes C'613 et C'614 sont mises en oeuvre par un module logiciel de codage prédictif inverse PRED1-1_CO2 représenté sur la figure 6, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO2. Un tel module est identique au module logiciel PREDIC01 de la figure 2. Au cours d'une étape C'7 représentée à la figure 5, il est procédé à la construction du bloc décodé BD, en ajoutant au bloc prédicteur BP1sel le bloc résidu décodé BDr1,. Le bloc décodé BD, est alors stocké dans la mémoire tampon MT_CO2 de la figure 6, afin d'être utilisé par le codeur CO2 comme bloc prédicteur candidat à une prédiction secondaire d'un bloc résidu décodé suivant.
Au cours d'une étape C'8 représentée à la figure 5, le codeur CO2 teste si le bloc courant B, qui vient d'être codé est le dernier bloc de l'image Ici. Si le bloc courant B, est le dernier bloc de l'image ICi, au cours d'une étape C'9 représentée à la figure 5, il est mis fin au procédé de codage.
Si tel n'est pas le cas, il est procédé à nouveau à l'étape de sélection C'2 du bloc suivant à coder conformément à l'ordre de parcours raster scan précité, puis les étapes C'3 à C'6 sont réitérées pour ce bloc suivant sélectionné.
Test positif Si le test effectué à l'étape C'6 est positif, au cours d'une étape C'620 représentée à la figure 5, le module PRED2_CO2 de la figure 6 procède à la soustraction du bloc prédicteur candidat préférentiel BP2opt du bloc résidu Br1i, pour produire un bloc résidu Br2optu. Au cours d'une étape C'621 représentée à la figure 5, le module PRED2 CO2 de la figure 6 procède à la transformation du bloc résidu Br2opt, selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt2optu. Au cours d'une étape C'622 représentée à la figure 5, le module PRED2 CO2 de la figure 6 procède à la quantification du bloc transformé Bt2opt, selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bq2opt, est alors obtenu. Au cours d'une étape C'623 représentée à la figure 5, le module de codage entropique MCE2_CO2 de la figure 6 procède au codage entropique du bloc de coefficients quantifiés Bq2optu. En outre, l'indicateur Id associé au bloc prédicteur candidat préférentiel BP2opt est codé selon une seconde valeur prédéterminée (bit à 1 par exemple) pour signaler que la prédiction secondaire a été appliquée. Un flux de données (p2, qui contient les données encodées du bloc de coefficients quantifiés Bq2opt, ainsi que le bit à 1 de l'indicateur Id, est alors délivré à l'issue de l'étape C'623. Un tel flux est ensuite transmis par un réseau de communication (non représenté) au décodeur DO2 représenté à la figure 10. Au cours d'une étape C'624 représentée à la figure 5, le module PRED2-1 CO2 de la figure 6 procède à la déquantification du bloc Bq2opt, selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C'622. Un bloc de coefficients déquantifiés BDq2opt, est alors obtenu. Au cours d'une étape C'625 représentée à la figure 5, le module PRED2-1 CO2 de la figure 6 procède à la transformation inverse du bloc de coefficients déquantifiés BDq2opt, qui est l'opération inverse de la transformation directe effectuée à l'étape C'621 ci-dessus. Un bloc résidu décodé BDr2opt' est alors obtenu. Au cours de l'étape C'7 mentionnée plus haut, il est procédé à la construction du bloc décodé BD, en ajoutant au bloc prédicteur candidat préférentiel BP2opt le bloc résidu décodé BDr2opt,. Le bloc décodé BD, ainsi construit est alors stocké dans la mémoire tampon MT_CO2 de la figure 6, afin d'être utilisé par le codeur CO2 comme bloc prédicteur candidat à une prédiction secondaire d'un bloc résidu décodé suivant.
Au cours de l'étape C'8 représentée à la figure 5, le codeur CO2 teste si le bloc courant B, qui vient d'être codé est le dernier bloc de l'image ICi. Si le bloc courant est le dernier bloc de l'image ICi, au cours de l'étape C'9 représentée à la figure 5, il est mis fin au procédé de codage. Si tel n'est pas le cas, il est procédé à nouveau à l'étape de sélection 15 C'2 du bloc suivant à coder conformément à l'ordre de parcours raster scan précité, puis les étapes C'3 à C'6 sont réitérées pour ce bloc suivant sélectionné. Les étapes de codage qui viennent d'être décrites ci-dessus sont mises en oeuvre pour tous les blocs B1, B2, , Bs à coder de l'image courante 20 IC; considérée. Description détaillée d'un mode de réalisation de la partie décodage Un mode de réalisation du procédé de décodage selon l'invention va maintenant être décrit, dans lequel le procédé de décodage est implémenté 25 de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme HEVC. Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D1 à D11 telles que représentées à la figure 8. Comme illustré en figure 7, un décodeur DO1 selon l'invention 30 comprend une mémoire MEM_DO1 comprenant une mémoire tampon MT _D01, une unité de traitement UT_DO1 équipée par exemple d'un microprocesseur pP et pilotée par un programme d'ordinateur PG_DO1 qui met en oeuvre le procédé de décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_DO1 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement UT D01. Le procédé de décodage représenté sur la figure 8 s'applique à toute 5 image courante d'une séquence SQ d'images à décoder. A cet effet, des informations représentatives de l'image courante IC; à décoder sont identifiées dans le flux cp reçu au décodeur. En référence à la figure 8, la première étape de décodage D1 est l'identification dans ledit flux cp des données encodées Bq1, Bq2,..., Bq,, ...Bqs 10 associées respectivement aux blocs résiduels Br1, Br2, , Bru,..., Brs codés précédemment conformément au parcours raster scan précité, selon le procédé de codage représenté sur les figures lA et 1 B. Une telle étape d'identification est mise en oeuvre par un module d'identification MI DO1 telle que représenté à la figure 8, ledit module étant 15 pilotée par le microprocesseur pP de l'unité de traitement UT _D01. Lesdits blocs Bq1, Bq2, Bqu,..., Bqs sont destinés à être décodés selon un ordre de parcours prédéterminé, qui est par exemple du type séquentiel, c'est à dire qu'ils sont destinés à être décodés l'un après l'autre dans l'ordre raster scan où ils ont été codés. 20 D'autres types de parcours que celui qui vient d'être décrit ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage, dont des exemples ont été mentionnés plus haut. Au cours d'une étape D2 représentée à la figure 8, le décodeur DO1 sélectionne comme bloc courant un premier bloc à coder Bq, de l'image ICi, 25 tel que par exemple le premier bloc Bq1. Au cours d'une étape D3 représentée à la figure 8, il est procédé au décodage entropique du bloc Bq,. Dans le mode préféré de réalisation, il s'agit d'un décodage entropique CABAC. Une telle étape consiste à : a) lire le ou les symboles de l'ensemble prédéterminé de symboles 30 qui sont associés audit bloc résiduel courant, b) associer des informations numériques, telles que des bits, au(x) symbole(s) lu(s).
Une telle étape de décodage entropique est mise en oeuvre par un module logiciel de décodage entropique MDE1 représenté sur la figure 7, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_D01. Le module de codage entropique MDE1 est par exemple de type CABAC. Il peut également s'agir d'un décodeur de Huffman connu en tant que tel. Au cours d'une étape D4 représentée à la figure 8, il est procédé à la déquantification du bloc BDq, selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C16 de la figure 1B. Un bloc déquantifié décodé BDtU est alors obtenu. Au cours d'une étape D5 représentée à la figure 8, il est procédé à la transformation inverse du bloc déquantifié décodé BDtU qui est l'opération inverse de la transformation directe effectuée à l'étape C15 de la figure 1B.
Un bloc résidu décodé BDr, est alors obtenu. Les étapes D4 et D5 sont mises en oeuvre par un module logiciel de décodage prédictif inverse PREDIDO1 représenté sur la figure 7, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _D01. Au cours d'une étape D6 représentée à la figure 8, il est procédé selon l'invention à la détermination d'un ensemble de Q blocs prédicteurs candidats BP1 1, BP12,..., BP1v,...,BP1c) (1 Nt<)). De tels blocs prédicteurs candidats sont par exemple des blocs de pixels qui ont été déjà décodés ou non. De tels blocs sont préalablement stockés dans la mémoire tampon MT_DO1 du décodeur telle que représentée à la figure 7. Dans l'exemple représenté, il s'agit en particulier d'un nombre prédéterminé de blocs qui ont été décodés juste avant le bloc courant à décoder considéré. Une telle étape de détermination est mise en oeuvre par un module logiciel de détermination DET_DO1 représenté sur la figure 7, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _D01.
Au cours d'une étape D7 représentée à la figure 8, il est procédé selon l'invention à l'identification, parmi l'ensemble des Q blocs prédicteurs BP1 1, BP12,..., BP1v,...,BP1Q, d'un bloc prédicteur candidat préférentiel BP1 °m.
Selon l'invention, de la même façon qu'au codage précité, une telle étape d'identification est fonction du bloc résidu décodé BDr, obtenu. Ladite étape d'identification est mise en oeuvre par un module logiciel de calcul CALI DO1 représenté sur la figure 7, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _D01. De la même façon qu'au procédé de codage décrit en référence aux figures lA et 1B, une telle identification consiste, pour un bloc résidu decodé courant BDru, à construire un bloc décodé courant BD,,, en ajoutant au bloc résidu décodé courant BDr, un bloc prédicteur candidat BP1, (1 \,^fQ).
Dans ce mode particulier, et de façon correspondante au codage, est appliqué un critère de minimisation de la différence entre les pixels décodés de l'image courante IC;, qui sont représentés par des points sur la figure 4, et les pixels du bloc décodé BD,,, situés le long de sa frontière F. Ce critère est un opérateur mathématique noté SM(BD,,,, IC;). L'opérateur SM(BD,,,, IC;) est en fait représentatif de l'erreur quadratique le long de la frontière F du bloc résiduel décodé BDr, avec l'image IC;. Il s'écrit de la façon suivante : SM (BD,,w, /Ci ) N-1 = > (BD',w(0, a) - I Ci (lin - 1, col + a)) 2 a=0 N-1 + > (13 D',w(a, 0) - I Ci (lin + a, col - 1)) 2 a=0 où : - BD,,, est le bloc décodé considéré de taille NxN pixels, - BD,,''(n,m) est la valeur du pixel du bloc résidu décodé BD,,, situé sur la nième ligne et la mième colonne de ce bloc, - IC; est l'image courante, - IC;(k, I) est la valeur du pixel de l'image IC; situé sur la k ième ligne et la I ième colonne de cette image, et (lin,col) sont les coordonnées du bloc décodé BD,,, dans l'image IC;. A titre d'alternative, on peut utiliser un critère simplifié, où l'on vient comparer la moyennes des pixels de l'image IC; le long de la frontière F et la moyenne des pixels du bloc décodé BDom. L'opérateur SM(BDo,w, ICi) s'écrit alors : SM (BD,,w, /Ci) N-1 1 (2N - 1) Ci(lin - 1, col + a) = abs a=0 + I Ci(lin + a, col - 1)) BD',w(a, b)) N2 a=0 b=0 Où abs() représente la valeur absolue. Au cours de l'étape D7, il est procédé à l'identification du bloc décodé Bpv,wmin qui minimise l'un des deux critères précités choisis, tel que : wmin = argmin, SM(3D',w, /Ci) Le bloc Bpv,wmin est égal à la somme du bloc prédicteur candidat BP1wmin et du bloc résidu décodé courant BDrv. A l'issue de l'étape D7, le bloc prédicteur candidat BP1wmin est considéré comme le bloc prédicteur préférentiel candidat BP1opt en vue de la prédiction inverse du bloc résidu décodé courant BDru. Au cours d'une étape D8 représentée à la figure 8, il est procédé à la reconstruction du bloc courant Bu en ajoutant au bloc résiduel courant décodé BDr, le bloc prédicteur candidat préférentiel BP1 op{ identifié à l'étape D7.
Ladite étape D8 est mise en oeuvre par un module logiciel de calcul CAL2 DO1 représenté sur la figure 7, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT _D01. Un bloc décodé BDo est alors obtenu et stocké dans la mémoire tampon MT_DO1 de la figure 7, afin d'être utilisé par le décodeur DO1 20 comme bloc prédicteur candidat d'un bloc suivant à décoder. Au cours d'une étape D9 représentée à la figure 8, ledit bloc décodé BDo est écrit dans une image décodée ID;. Une telle étape est mise en oeuvre un module logiciel URI1 de reconstruction d'image tel que représenté sur la figure 7, ledit module étant piloté par le microprocesseur pP du module de 25 traitement UT _D01.
Au cours d'une étape suivante D10 représentée à la figure 8, le décodeur DO1 teste si le bloc courant BD, qui vient d'être décodé est le dernier bloc contenu dans le flux (p. Si tel est le cas, au cours d'une étape D11 représentée à la figure 8, il 5 est mis fin au procédé de décodage. Si tel n'est pas le cas, il est procédé, au cours de l'étape D2, à la sélection du bloc résiduel suivant à décoder conformément à l'ordre de parcours raster scan précité. Les étapes de décodage qui viennent d'être décrites ci-dessus sont 10 mises en oeuvre pour tous les blocs Bq1, Bq2, Bqu,..., Bqs à décoder de l'image courante IC; considérée. Description détaillée d'un autre mode de réalisation de la partie décodage Un autre mode de réalisation du procédé de décodage selon l'invention 15 va maintenant être décrit, dans lequel le procédé de décodage est implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme HEVC. Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D'1 à D'7 telles que représentées à la figure 9. 20 Comme illustré en figure 10, un décodeur DO2 selon cet autre mode de réalisation de l'invention comprend une mémoire MEM_DO2 comprenant une mémoire tampon MT_D02, une unité de traitement UT_DO2 équipée par exemple d'un microprocesseur pP et pilotée par un programme d'ordinateur PG DO2 qui met en oeuvre le procédé de décodage selon l'invention. A 25 l'initialisation, les instructions de code du programme d'ordinateur PG_DO2 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement UT_D02. Le procédé de décodage représenté sur la figure 9 s'applique à toute image courante d'une séquence SQ d'images à décoder. 30 A cet effet, des informations représentatives de l'image courante IC; à décoder sont identifiées dans un flux de données (p1 ou (p2 reçu au décodeur, tel que délivré à la suite du procédé de codage de la figure 5.
En référence à la figure 9, la première étape de décodage D'i est l'identification : - dans ledit flux (pi des données encodées Bqii, Bq12,--- , Bql u, ...Bqi s (1i_JS) associées respectivement aux blocs résiduels Br11, Br12, - - - , Bri , Bris codés précédemment conformément au parcours raster scan précité, dans le cas où a été mise en oeuvre la prédiction primaire du procédé de codage de la figure 5, - dans ledit flux (p2 des données encodées Bq20pt1, Bq2002,--- , Bq20pt,, ...Bq20pts (1i.JS) associées respectivement aux blocs résiduels Br2001, Br2002, ... , Br2uptu, - - - , Br2upts codés précédemment conformément au parcours raster scan précité, dans le cas où a été mise en oeuvre la prédiction secondaire du procédé de codage représenté sur la figure 5. Une telle étape d'identification est mise en oeuvre par un module d'identification MI DO2 telle que représenté à la figure 10, ledit module étant piloté par le microprocesseur pP de l'unité de traitement UT_D02. Lesdits blocs Bqi 1, Bq12, Bq1',..., Bqi s ou Bq20pti, Bq2002,--- , Bq20pt', ...Bq2opts sont destinés à être décodés selon un ordre de parcours prédéterminé, qui est par exemple séquentiellement, c'est à dire qu'ils sont destinés à être décodés l'un après l'autre conformément à l'ordre raster scan où ils ont été codés. D'autres types de parcours que celui qui vient d'être décrit ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage, dont des exemples ont été mentionnés plus haut. Au cours d'une étape D'2 représentée à la figure 9, le décodeur DO2 25 sélectionne comme bloc courant un premier bloc à coder Bqi U ou Bq20pt, de l'image ICi, tel que par exemple le premier bloc Bqi ' ou Bg2optU. Au cours d'une étape D'3 représentée à la figure 9, il est procédé à la lecture, dans le flux (pi ou (p2, de l'indice Id associé au bloc Bq, sélectionné. Une telle étape de lecture est mise en oeuvre par un module logiciel de 30 lecture ML DO2 telle que représenté à la figure 10, ledit module étant piloté par le microprocesseur pP de l'unité de traitement UT_D02. Si l'indice Id est égal à zéro, cela signifie que le bloc courant à décoder a subi une prédiction primaire conformément aux étapes C'610 à C'614 du procédé de codage représenté sur la figure 5. C'est donc le flux (p1 que le décodeur DO2 est destiné à traiter. Si l'indice Id est égal à un, cela signifie que le bloc courant à décoder a subi une prédiction secondaire conformément aux étapes C'5 à C'625 du procédé de codage représenté sur la figure 5. C'est donc le flux (p2 que le décodeur DO2 est destiné à traiter. cas où Id=0 Au cours d'une étape D'310 représentée à la figure 9, il est procédé au décodage entropique du bloc Bq1u. Une telle étape étant identique à l'étape D3 précitée, elle ne sera pas décrite plus longuement. Une telle étape de décodage entropique est mise en oeuvre par un module logiciel de décodage entropique MDE1_DO2 représenté sur la figure 10, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_D02. Le module de codage entropique MDE1_DO2 est par exemple de type CABAC. Il peut également s'agir d'un décodeur de Huffman connu en tant que tel. Au cours d'une étape D'311 représentée à la figure 9, il est procédé à la déquantification du bloc BDq1u. Une telle étape étant identique à l'étape D4 précitée, elle ne sera pas décrite plus longuement. Un bloc déquantifié décodé BDt1, est alors obtenu. Au cours d'une étape D'312 représentée à la figure 9, il est procédé à la transformation inverse du bloc déquantifié décodé BDt1u. Une telle étape étant identique à l'étape D5 précitée, elle ne sera pas décrite plus longuement. Un bloc résidu décodé BDr1, est alors obtenu. Au cours d'une étape D'4 représentée à la figure 9, il est procédé, de façon connue en soi, à la reconstruction du bloc courant Bu par des techniques classiques de prédiction intra et/ou inter à l'aide d'un bloc prédicteur BP1sel. Une telle étape consiste à ajouter au bloc résiduel courant décodé BDr1, le bloc prédicteur BP1sel sélectionné classiquement. Un bloc décodé BDu est alors obtenu à la suite de l'étape D'4 et stocké dans la mémoire tampon MT_DO2 de la figure 10, afin d'être utilisé par le décodeur DO2 comme bloc prédicteur candidat d'un bloc suivant à décoder.
Les étapes D'311 à D'4 sont mises en oeuvre par un module logiciel de décodage prédictif inverse PRED1-1_DO2 représenté sur la figure 10, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_D02. Au cours d'une étape D'5 représentée à la figure 9, ledit bloc décodé BD, est écrit dans une image décodée ID;. Une telle étape est mise en oeuvre un module logiciel URI2 de reconstruction d'image tel que représenté sur la figure 10, ledit module étant piloté par le microprocesseur pP du module de traitement UT_D02. Au cours d'une étape suivante D'6 représentée à la figure 9, le décodeur DO2 teste si le bloc courant BDu qui vient d'être décodé est le dernier bloc contenu dans le flux (p1. Si tel est le cas, au cours d'une étape D'7 représentée à la figure 9, il est mis fin au procédé de décodage. Si tel n'est pas le cas, il est procédé, au cours de l'étape D'2, à la sélection du bloc résiduel suivant Bq1, à décoder conformément à l'ordre séquentiel précité. Le procédé de décodage décrit ci-dessus est alors itéré pour l'ensemble des S blocs à décoder. Cas où Id=1 Au cours d'une étape D'320 représentée à la figure 9, il est procédé au décodage entropique du bloc Bq2opt,. Une telle étape étant identique à l'étape D3 précitée, elle ne sera pas décrite plus longuement. Un bloc quantifié décodé BDq2opt, est alors obtenu à l'issue de cette étape. Une telle étape de décodage entropique est mise en oeuvre par un 25 module logiciel de décodage entropique MDE2_DO2 représenté sur la figure 10. Au cours d'une étape D'321 représentée à la figure 9, il est procédé à la déquantification du bloc BDq2opt,. Une telle étape étant identique à l'étape D4 précitée, elle ne sera pas décrite plus longuement. Un bloc déquantifié 30 décodé BDt2opt' est alors obtenu. Au cours d'une étape D'322 représentée à la figure 9, il est procédé à la transformation inverse du bloc déquantifié décodé BDt2opt,. Une telle étape étant identique à l'étape D5 précitée, elle ne sera pas décrite plus longuement. Un bloc résidu décodé BDr2opt, est alors obtenu. Ledit bloc résiduel décodé BDr20pt, est alors stocké dans la mémoire tampon MT_DO2 de la figure 10, afin d'être utilisé par le décodeur DO2 comme bloc prédicteur candidat d'un bloc suivant à décoder. Les étapes D'321 et D'322 sont mises en oeuvre par un module logiciel 5 de décodage prédictif inverse PRED2-1_DO2 représenté sur la figure 10, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT D02. Au cours d'une étape D'323 représentée à la figure 9, il est procédé selon l'invention à la détermination d'un ensemble de Q blocs prédicteurs 10 candidats BP21, BP22,..., BP2v,...,BP2c) (1 Nt<)). Une telle étape étant identique à l'étape D6 de la figure 8, elle ne sera pas décrite plus longuement. Une telle étape de détermination est mise en oeuvre par un module logiciel de détermination DET_DO2 représenté sur la figure 10, lequel 15 module est piloté par le microprocesseur pP de l'unité de traitement UT_D02. Au cours d'une étape D'324 représentée à la figure 9, il est procédé selon l'invention à l'identification, parmi l'ensemble des Q blocs prédicteurs BP21, BP22,..., BP2v,...,BP2Q, d'un bloc prédicteur candidat préférentiel BP2opt. Selon l'invention, de la même façon qu'au codage précité, une telle 20 étape d'identification est fonction du bloc résidu décodé BDr20pt, obtenu. Ladite étape d'identification est mise en oeuvre par un module logiciel de calcul CALI DO2 représenté sur la figure 10, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_D02. De la même façon qu'a l'étape D6 de la figure 8, le procédé de décodage 25 selon cet autre mode de réalisation utilise un critère de minimisation de la différence entre les pixels décodés de l'image courante ICJ, qui sont représentés par des points sur la figure 4, et les pixels du bloc décodé BDr1,,, situés le long de sa frontière F. Ce critère est un opérateur mathématique noté SM(BDr1,,,, IC;). 30 Il s'écrit de la façon suivante : SM(13Dr1,,w,ICi) N-1 = > (BDr1,,w(0, a) - I Ci (lin - 1, col + a)) 2 a=0 N-1 + > (BDr1,,w(a, 0) - I Ci(lin + a, col - 1)) 2 a=0 où : - BDr1, est le bloc décodé considéré de taille NxN pixels, - BDr1,,w(n,m) est la valeur du pixel du bloc décodé BDr1,,w situé sur la nième ligne et la mième colonne de ce bloc, - IC; est l'image courante, - IC;(k,l) est la valeur du pixel de l'image IC; situé sur la k ième ligne et la I ième colonne de cette image, et (lin,col) sont les coordonnées du bloc résidu décodé BDr1,,w dans l'image IC; A titre d'alternative, on peut utiliser un critère simplifié, où l'on vient comparer la moyennes des pixels de l'image IC; le long de la frontière F et la moyenne des pixels du bloc décodé BDr1,,w. L'opérateur SM(BDr1,,w, IC;) s'écrit alors : SM (BDrlum' /Ci) N-1 (2N - 1) Ci(lin - 1, col + a) = abs 1 a=0 + I Ci(lin + a, col - 1)) 1 N-1 N-1 - N2 (BDrlu,w (a, b)) a=0 b=0 Où abs() représente la valeur absolue.
Au cours de l'étape D'324, il est procédé à l'identification du bloc décodé BDr1v,wmin qui minimise l'un des deux critères précités choisis, tel que : wmin = argmin, SM (3Dr1',w, Ici) Le bloc BDr1v,wmin est égal à la somme du bloc prédicteur candidat BP2wmin et du bloc résidu décodé courant BDr2opti,. A l'issue de l'étape D'324, le bloc prédicteur candidat BP2wmin est considéré comme le bloc prédicteur préférentiel candidat BP2opt en vue de la prédiction inverse du bloc résidu décodé courant BDr2optU Au cours d'une étape D'325 représentée à la figure 9, il est procédé à la reconstruction du bloc résiduel courant BDr, en ajoutant au bloc résiduel courant décodé BDr200, le bloc prédicteur candidat préférentiel BP20pt identifié à l'étape D'324. Ladite étape D'325 est mise en oeuvre par un module logiciel de calcul CAL2 DO2 représenté sur la figure 10, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_D02. Les étapes D'4 et D'5 précitées sont ensuite réitérées pour délivrer un bloc courant BD,. Puis l'étape D'6 est à nouveau mise en oeuvre pour tester si le bloc courant BD, est le dernier bloc de l'image. Les étapes de décodage du flux (pi (respectivement (p2) qui viennent d'être décrites ci-dessus sont mises en oeuvre pour tous les blocs Bq11, Bq12, Bq1',..., Bqs (respectivement Bq20pt1, 8q2002,- - - , Bq2optu, Bq20pts) à décoder de l'image courante IC; considérée. Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention. 25 30

Claims (13)

  1. REVENDICATIONS1. Procédé de codage d'au moins une image (IC;) découpée en blocs, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à coder, les étapes de : - détermination (C3), d'un ensemble de blocs prédicteurs candidats (BP11, BP12,..., BP1v,..., BP1Q), - pour au moins un bloc prédicteur candidat (BP1v) dudit ensemble : - obtention (C4) d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant (Bu), - identification (C10), dans ledit ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant obtenu, - sélection (C12a)) dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié, - détermination (C13), parmi les blocs prédicteurs candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat (BP10pt), à l'aide d'un critère prédéterminé (J), - codage (C15-C17) du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant (Bu).
  2. 2. Procédé de codage selon la revendication 1, dans lequel, lesdits blocs de l'image précédant le bloc courant étant codés dans un ordre déterminé, ladite identification est fonction des pixels de l'image précédemment codés.
  3. 3. Procédé de codage selon la revendication 2, dans lequel lesdits pixels précédemment codés puis décodés de l'image sont situés le long du bloc courant.
  4. 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, dans lequel ledit critère prédéterminé est la minimisation du coût débit-distorsion de l'image.
  5. 5. Procédé de codage selon l'une quelconque des revendications 1 à 4, dans lequel le bloc courant est un bloc (Br1,) qui a été préalablement obtenu à la suite d'une prédiction.
  6. 6. Dispositif (D01) de codage d'au moins une image (IC;) découpée en blocs, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à coder : - des moyens (DET_C01) de détermination d'un ensemble de blocs prédicteurs candidats, - pour au moins un bloc prédicteur candidat dudit ensemble : - des moyens (PRED_CO1) d'obtention d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant (Bu), - des moyens (CAL1_C01) d'identification, dans ledit ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, en fonction dudit bloc résiduel courant obtenu, - des moyens (CAL2_CO1) de sélection dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié, - des moyens (CAL3_CO1) de détermination, parmi les blocs prédicteurs candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat, à l'aide d'un critère prédéterminé, - des moyens (MCE1) de codage du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant 30 (Bu).
  7. 7. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé de codage selon l'unequelconque des revendications 1 à 5, lorsque ledit programme est exécuté sur un ordinateur.
  8. 8. Procédé de décodage d'un signal de données ((p) représentatif d'au moins une image (IC;) découpée en blocs, ledit procédé comprenant les étapes de : - détermination (D1), dans le signal de données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder, - décodage (D3-D5) dudit bloc résiduel courant, ledit procédé de décodage étant caractérisé en ce qu'il comprend, pour un bloc courant à reconstruire, les étapes de : - détermination (D6) d'un ensemble de blocs prédicteurs candidats, - identification (D7), dans ledit ensemble, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant décodé, - reconstruction (D8) du bloc courant (Bu) à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé.
  9. 9. Procédé de décodage selon la revendication 8, dans lequel lesdits blocs de l'image précédant le bloc courant étant décodés dans un ordre déterminé, ladite identification est fonction des pixels de l'image précédemment décodés.
  10. 10. Procédé de décodage selon la revendication 9, dans lequel lesdits pixels précédemment décodés de l'image sont situés le long du bloc courant.
  11. 11. Procédé de décodage selon l'une quelconque des revendications 30 8 à 10, comprenant en outre une étape (D'3) de détermination, dans le signal de données, d'une information (Id) associée à une prédiction préalable du bloc courant, ladite étape de reconstruction du bloc courant étant mise en oeuvre à partir de ladite prédiction préalable, dudit bloc prédicteur identifié et du bloc résiduel courant déterminé. 25
  12. 12. Dispositif (D01) de décodage d'un signal de données représentatif d'au moins une image (IC;) découpée en blocs, ledit dispositif comprenant : - des moyens (MI_DO1) de détermination, dans le signal de 5 données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder, - des moyens (MDE1) de décodage dudit bloc résiduel courant, ledit dispositif de décodage étant caractérisé en ce qu'il comprend, pour un bloc courant à reconstruire : 10 - des moyens (DET_DO1) de détermination d'un ensemble de blocs prédicteurs candidats, - des moyens (CAL1_DO1) d'identification, dans ledit ensemble, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant décodé, 15 - des moyens (CAL2_DO1) de reconstruction du bloc courant (Bu) à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé.
  13. 13. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé de décodage selon l'une 20 quelconque des revendications 8 à 11, lorsque ledit programme est exécuté sur un ordinateur. 25 30
FR1360033A 2013-10-15 2013-10-15 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants Withdrawn FR3012004A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR1360033A FR3012004A1 (fr) 2013-10-15 2013-10-15 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
CN201480056598.4A CN105745928A (zh) 2013-10-15 2014-10-13 用于对图像进行编码和解码的方法、用于对图像进行编码和解码的设备以及相应的计算机程序
US15/029,738 US20160269738A1 (en) 2013-10-15 2014-10-13 Method for encoding and decoding images, device for encoding and decoding images, and corresponding computer programmes
PCT/FR2014/052605 WO2015055937A1 (fr) 2013-10-15 2014-10-13 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
EP14796227.8A EP3058737A1 (fr) 2013-10-15 2014-10-13 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1360033A FR3012004A1 (fr) 2013-10-15 2013-10-15 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Publications (1)

Publication Number Publication Date
FR3012004A1 true FR3012004A1 (fr) 2015-04-17

Family

ID=50231278

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1360033A Withdrawn FR3012004A1 (fr) 2013-10-15 2013-10-15 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Country Status (5)

Country Link
US (1) US20160269738A1 (fr)
EP (1) EP3058737A1 (fr)
CN (1) CN105745928A (fr)
FR (1) FR3012004A1 (fr)
WO (1) WO2015055937A1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3044507A1 (fr) * 2015-11-30 2017-06-02 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
CN108111833A (zh) * 2016-11-24 2018-06-01 阿里巴巴集团控股有限公司 用于立体视频编解码的方法、装置及系统
FR3064145A1 (fr) * 2017-03-16 2018-09-21 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR3068558A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
KR102707017B1 (ko) * 2018-10-05 2024-09-13 엘지전자 주식회사 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치
CN110677655B (zh) * 2019-06-21 2022-08-16 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及存储介质
CN113453013B (zh) * 2019-06-21 2022-02-18 杭州海康威视数字技术股份有限公司 预测模式的解码、编码方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247029A1 (en) * 2003-06-09 2004-12-09 Lefan Zhong MPEG motion estimation based on dual start points
WO2008103348A2 (fr) * 2007-02-22 2008-08-28 Intellectual Ventures Holding 35 Llc Codage vidéo avec vecteurs de mouvement déterminés par le décodeur
WO2011054879A2 (fr) * 2009-11-06 2011-05-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codage vidéo hybride

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338364B (zh) * 2007-06-29 2016-07-06 夏普株式会社 图像编码装置、图像编码方法、图像译码装置、图像译码方法
GB2491589B (en) * 2011-06-06 2015-12-16 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of image
CN103096053B (zh) * 2011-11-04 2015-10-07 华为技术有限公司 一种变换模式的编解码方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247029A1 (en) * 2003-06-09 2004-12-09 Lefan Zhong MPEG motion estimation based on dual start points
WO2008103348A2 (fr) * 2007-02-22 2008-08-28 Intellectual Ventures Holding 35 Llc Codage vidéo avec vecteurs de mouvement déterminés par le décodeur
WO2011054879A2 (fr) * 2009-11-06 2011-05-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codage vidéo hybride

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LAM W M ET AL: "Recovery of lost or erroneously received motion vectors", 1993 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, 1993. ICASSP-93; [PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING (ICASSP)], PISCATAWAY, NJ, USA, vol. 5, 27 April 1993 (1993-04-27), pages 417 - 420, XP010110891, ISBN: 978-0-7803-0946-3, DOI: 10.1109/ICASSP.1993.319836 *
TIANMI CHEN ET AL: "Predictive patch matching for inter-frame coding", VISUAL COMMUNICATIONS AND IMAGE PROCESSING; 11-7-2010 - 14-7-2010; HUANG SHAN, AN HUI, CHINA,, 11 July 2010 (2010-07-11), XP030082187 *
TOURAPIS: "Direct Prediction in P and B frames", 3. JVT MEETING; 60. MPEG MEETING; 06-05-2002 - 10-05-2002; FAIRFAX,US; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, no. JVT-C128, 10 May 2002 (2002-05-10), XP030005240, ISSN: 0000-0442 *

Also Published As

Publication number Publication date
EP3058737A1 (fr) 2016-08-24
US20160269738A1 (en) 2016-09-15
CN105745928A (zh) 2016-07-06
WO2015055937A1 (fr) 2015-04-23

Similar Documents

Publication Publication Date Title
EP3061246B1 (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
FR3012004A1 (fr) Procede de codage et de decodage d&#39;images, dispositif de codage et de decodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3075155B1 (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
EP2716045B1 (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
EP3180914B1 (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
EP3649778B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP3198876B1 (fr) Génération et codage d&#39;images intégrales résiduelles
EP2761871B1 (fr) Estimation de mouvement au niveau du décodeur par mise en correspondance de modèles
WO2017037368A2 (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
EP3409016A1 (fr) Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d&#39;ordinateur correspondants
EP3649786A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP3272122A1 (fr) Codage d&#39;images par quantification vectorielle
EP3259909A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR3064145A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
FR2988960A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
FR2927494A1 (fr) Procede de decodage et codage d&#39;une sequence d&#39;images avec compensation de mouvement

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150630