FR3030976A1 - Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes - Google Patents

Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes Download PDF

Info

Publication number
FR3030976A1
FR3030976A1 FR1463137A FR1463137A FR3030976A1 FR 3030976 A1 FR3030976 A1 FR 3030976A1 FR 1463137 A FR1463137 A FR 1463137A FR 1463137 A FR1463137 A FR 1463137A FR 3030976 A1 FR3030976 A1 FR 3030976A1
Authority
FR
France
Prior art keywords
sub
partitioning
block
blocks
current block
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.)
Granted
Application number
FR1463137A
Other languages
English (en)
Other versions
FR3030976B1 (fr
Inventor
Joel Jung
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
B Com SAS
Original Assignee
Orange SA
B Com SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA, B Com SAS filed Critical Orange SA
Priority to FR1463137A priority Critical patent/FR3030976B1/fr
Priority to EP15823644.8A priority patent/EP3238449A1/fr
Priority to PCT/FR2015/053471 priority patent/WO2016102804A1/fr
Priority to US15/538,970 priority patent/US20170353722A1/en
Publication of FR3030976A1 publication Critical patent/FR3030976A1/fr
Application granted granted Critical
Publication of FR3030976B1 publication Critical patent/FR3030976B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to 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/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/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 d'une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini. Le procédé selon l'invention est particulier en ce qu'il comprend les étapes suivantes, mises en œuvre pour un bloc courant (b): a) Obtention d'un vecteur mouvement, dit vecteur mouvement de base (MVb) du bloc courant (b) par rapport à une image de référence précédemment décodée; b) Obtention d'un partitionnement (IP) en sous-blocs de la zone (Zb) pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application du partitionnement obtenu au bloc courant (b); c) Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus.

Description

Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés 1. Domaine de l'invention Le domaine de l'invention est celui de la compression de signal, en particulier d'une image numérique ou d'une séquence d'images numériques, divisée en bloc de pixels. Le codage/décodage d'images numériques s'applique notamment à 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), - 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. 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. L'invention peut s'appliquer aussi au codage audio, par exemple mis en oeuvre dans les codeurs audio actuels (EVS, OPUS, MPEG-H, etc) et leurs extensions et au décodage correspondant. 2. Présentation de l'art antérieur On considère un schéma de compression classique d'une image numérique, selon lequel l'image est divisée en blocs de pixels. Un bloc courant à coder, qui constitue une unité de codage initiale, est généralement découpé en un nombre variable de sous-blocs selon un mode de découpage prédéterminé. Les codeurs standards proposent un partitionnennent régulier, qui s'appuie sur des blocs carrés ou rectangulaires de taille fixe. Le partitionnement se fait toujours à partir de l'unité de codage initiale, non partitionnée, et le partitionnement final est calculé puis signalé à partir de cette base neutre. En relation avec la Figure la, on présente un exemple de partitionnement de bloc de taille 16x16, 8x8 ou 4x4 autorisé par la norme. En relation avec la Figure lb, on illustre un exemple de partitionnement permis par la norme HEVC. Cette norme est spécifiée dans le document "ISO/IEC 23008-2:2013 - High efficiency coding and media delivery in heterogeneous environments -- Part 2: High efficiency video coding », International Organization for Standardization, publié en novembre 2013. On voit qu'il s'agit d'un partitionnement en QuadTree, qui reste régulier, mais qui est plus flexible que celui de la norme AVC, à partir de blocs de taille 64x64.
Le partitionnement selon la norme HEVC a pour avantage d'adapter le codage à la structure de l'image, notamment à la présence de zones de texture homogènes et inhonnogènes. A titre d'exemple, la figure 2a propose un bloc 64x64 présentant une zone homogène et 2 zones de détails. La figure 2h montre le partitionnement possible de HEVC pour coder le bloc de la figure 3.
Un inconvénient de ce partitionnement est de ne pas être encore assez flexible pour permettre de coller aux variations de texture de l'image, alors qu'il engendre déjà une signalisation non négligeable en termes de coût de codage. Par exemple, pour coder le partitionnement final de la Figure 4, on remarque qu'il faudrait transmettre 28 vecteurs de mouvement, et que la signalisation du partitionnement final pourrait être : 1 0 1 100001000000 1 00010000 1 001000010000. On connait de la demande de brevet publiée sous le numéro W02011/127966, un procédé de codage d'une image numérique en 3D, par plans, selon lequel le partitionnement mis en oeuvre pour le codage d'un plan de cette image, par exemple le plan de texture, est hérité lors du codage du plan de profondeur associé. Il en résulte une économie substantielle en termes de signalisation. 3. Inconvénients de l'art antérieur Un inconvénient de cet art antérieur est que le partitionnement proposé par l'art antérieur reste trop contraint et ne permet toujours pas de s'adapter finement aux formes et aux textures des objets contenus dans l'image à coder. 4. Objectifs de l'invention L'invention vient améliorer la situation. L'invention a notamment pour objectif de pallier ces inconvénients de l'art 5 antérieur. Plus précisément, un objectif de l'invention est de proposer une solution qui permette de prédire et coder plus efficacement des structures d'images complexes. Un autre objectif de l'invention est de proposer une solution qui soit plus performante en compression. 10 5. Exposé de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, caractérisé en ce que ledit 15 procédé comprend les étapes suivantes, mises en oeuvre pour un bloc courant (b) : a) Obtention d'un vecteur mouvement, dit vecteur mouvement de base du bloc courant par rapport à une image de référence précédemment décodée; b) Obtention d'un partitionnennent en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base et application du partitionnennent 20 obtenu au bloc courant (b); c) Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus. Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive du 25 codage d'images, qui consiste à appliquer au bloc courant le partitionnennent de la zone de même taille de l'image de référence pointée par le vecteur mouvement de base obtenu pour le bloc courant. Contrairement à l'art afftérieur qui, dans un cas calcule et signale un nouveau partitionnennent complet par bloc courant, et dans l'autre cas fait hériter le bloc courant 30 d'un plan de l'image à coder du partitionnement utilisé pour le bloc co-localisé d'un autre plan de l'image à coder, par exemple le plan de profondeur, l'invention tire parti des similitudes de texture qui existent entre le bloc courant de l'image courante et la zone pointée dans l'image de référence, pour optimiser le partitionnement du bloc courant. Il en résulte que la structure de partitionnement initiale du bloc courant n'a pas besoin d'être transmise au décodeur sous forme d'informations de signalisation dans le flux de données, puisqu'elle peut être obtenue à partir de l'image de référence précédemment traitée. Il en résulte également que la structure de partitionnement est irrégulière : contrairement aux codeurs standards qui appliquent un partitionnement régulier, par exemple de type « quadtree », le partitionnement proposé par l'invention n'est pas régulier et, bien que complexe, il reste simple à signaler, car il est en partie hérité de l'image de référence. L'invention permet donc de mieux adapter le partitionnement d'un bloc au contenu à coder, tout en optimisant le coût de codage.
L'invention propose ainsi un nouveau mode de codage d'un bloc courant, qui peut avantageusement être mis en compétition avec d'autres modes de codage connus des schémas de codage actuellement normalisés, tels que par exemple les modes Intra, Inter, ou Merge de la norme HEVC. Selon une caractéristique avantageuse de l'invention, l'étape d'obtention du 20 vecteur mouvement de base comprend une estimation de mouvement du bloc courant par rapport à l'image de référence précédemment décodée selon un critère de minimisation d'erreur. De façon avantageuse, l'invention met en oeuvre une estimation de mouvement 25 particulière du bloc courant par rapport à une image de référence. Elle fournit le vecteur mouvement de base qui sert à obtenir le partitionnement initial du bloc courant à partir de l'image de référence. Elle privilégie un critère de minimisation d'erreur, plutôt qu'un critère de coût de codage du bloc, de façon à garantir que le contenu de la zone pointée par le vecteur mouvement de base estimé soit la plus semblable possible à celui du bloc 30 courant.
Selon une caractéristique avantageuse de l'invention, le procédé de codage comprend en outre une étape de modification du partitionnement du bloc courant en sous-blocs selon des règles prédéterminées, une étape de codage des sous-blocs du partitionnement modifié comprenant le codage d'informations de signalisation de la modification du partitionnement et une étape de validation du partitionnement modifié par application d'un critère débit-distorsion aux sous-blocs codés du partitionnement modifié. Le partitionnement obtenu de l'image de référence constitue un partitionnement initial du bloc courant, que l'invention propose de modifier pour s'adapter plus finement à la 10 texture spécifique du bloc courant. Cette modification peut consister en une fusion de partitions voisines ou en un découpage d'une partition. Avantageusement, cette modification est validée par comparaison avec le partitionnement initial. Une fois validée, la modification est signalée dans le train binaire par exemple par différence avec le partitionnement initial. Le fait de signaler les 15 modifications de partitionnement est le faible surcoût de codage associé. Selon une caractéristique avantageuse de l'invention, la modification comprend une fusion d'un sous bloc du partitionnement courant codé avec au moins un sous bloc voisin déjà codé. Une modification proposée par l'invention est de fusionner deux ou plusieurs sous-blocs 20 voisins du bloc courant pour les coder comme une seule partition. La modification du partitionnement est signalée dans le train binaire. Du fait de l'héritage du partitionnement initial, la signalisation ne constitue pas un surcoût important, surtout qu'un vecteur mouvement de base peut être économisé du fait de cette fusion. L'invention permet de faire un compromis entre le coût additionnel lié à la modification 25 du partitionnement, et la réduction du coût associé à la signalisation du vecteur de mouvement En effet, on peut soit faire une estimation de mouvement spécifique au sous-bloc issu de la fusion, de façon à garantir un codage plus efficace du sous-bloc fusionné, soit réutiliser le vecteur mouvement de base mis en oeuvre pour au moins un des sous-blocs 30 fusionnés, de façon à minimiser la signalisation additionnelle. Par exemple, on peut prendre la moyenne des vecteurs mouvements des blocs fusionnés, ou bien le minimum des deux, ou encore celui qui correspond au sous bloc initial le plus grand, etc.
Selon un autre aspect de l'invention, la modification du partitionnement courant comprend en outre un découpage d'au moins un sous-bloc en au moins deux sous-blocs. Il est aussi possible de découper davantage un sous-bloc du partitionnement initial. Les 5 partitionnements obtenus sont codés individuellement. La modification du partitionnement est signalée dans le train binaire, ainsi que d'éventuels vecteurs mouvements de base. Avantageusement, l'étape de découpage dudit au moins un sous-bloc en au moins deux sous-blocs, dits sous-blocs découpés, comprend la mise en oeuvre des étapes a) et 10 b) d'obtention d'un vecteur mouvement de base et d'application du partitionnement de la zone pointée par le vecteur mouvement de base pour le au moins un sous-bloc courant. Le principe de définir un partitionnement initial du bloc courant à partir de celui du bloc pointé par le vecteur mouvement estimé dans l'image de référence, est ici appliqué 15 récursivement pour les sous-blocs découpés. L'avantage est d'adapter le plus finement possible le partitionnement donc la prédiction et le codage à la structure de l'image. Le procédé qui vient d'être décrit dans ses différents modes de réalisation est avantageusement mis en oeuvre par un dispositif de codage d'une image numérique selon l'invention. 20 Un tel dispositif de codage d'une image numérique est particulier en ce qu'il est apte à mettre en oeuvre les unités suivantes, mises en oeuvre pour un bloc courant : Obtention d'un vecteur mouvement, dit vecteur mouvement de base du bloc courant par rapport à une image de référence précédemment décodée; - Obtention d'un partitionnement en sous-blocs de la zone pointée dans l'image 25 de référence par le vecteur mouvement de base et application du partitionnement obtenu au bloc courant; - Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus. 30 Corrélativement, l'invention concerne aussi un procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc, dit bloc courant : a') Obtention d'un vecteur mouvement de base entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvement pointant sur une zone de l'image de référence, de même taille que celle du bloc courant; b') Obtention d'un partitionnement en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base et application du partitionnement obtenu au bloc courant; c') Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus. Ainsi, le procédé de décodeur reproduit le principe d'application au bloc courant du partitionnement d'une zone de même taille pointée par le vecteur mouvement du bloc courant dans une image de référence, proposé par l'invention.
Avantageusement, la mise en oeuvre de ce mode de codage propre à l'invention pour le bloc courant lui est signalée dans le train binaire, lequel comprend en outre un champ représentatif du vecteur mouvement de base à utiliser. Ce vecteur mouvement de base peut avoir été estimé spécifiquement pour coder le bloc courant selon l'invention et dans ce cas, le champ en question code ses composantes. Selon une variante, il correspond à un vecteur mouvement estimé pour un bloc voisin et le champ comprend un index représentatif du bloc voisin. Selon une caractéristique avantageuse de l'invention, le procédé de décodage comprend une étape de modification du partitionnement initial, obtenu pour le bloc courant en fonction de données codées représentatives d'une signalisation de la modification du partitionnement et en ce que l'étape de décodage comprend le décodage du partitionnement modifié. Le partitionnement initial est avantageusement modifié en fonction des données de signalisation lues dans le train binaire.
Selon une caractéristique avantageuse de l'invention, lorsque les données codées signalent une fusion, l'étape de modification du partitionnement initial remplace les au moins deux sous-blocs voisins du partitionnement initial par un sous-bloc dans le partitionnement modifié et l'étape de décodage comprend le décodage du sous-bloc.
Lorsque la modification est une fusion d'au moins deux sous-blocs voisins, la signalisation de cette fusion dans le train binaire permet au décodeur de mettre à jour le partitionnement initial. Selon une caractéristique avantageuse de l'invention, lorsque les données codées signalent un découpage d'un sous-bloc du partitionnement courant en au moins deux sous-blocs, l'étape de modification du partitionnement applique le découpage signalé au sous-bloc courant et l'étape de décodage décode les sous-blocs obtenus selon un ordre de parcours prédéterminé. Lorsque la modification est un découpage, la signalisation du découpage dans le train binaire permet au décodeur de mettre à jour le partitionnement initial.
Selon un aspect de l'invention, le découpage signalisé est un découpage régulier, par exemple de type « quadtree » Selon une variante avantageuse, les données de signalisation indiquent au décodeur que le mode de codage choisi pour le sous-bloc courant est le mode de codage selon l'invention, c'est-à-dire par application du partitionnement d'une zone de l'image de référence pointée par un vecteur mouvement de base. Le décodeur met alors de nouveau en oeuvre les étapes a'), b') et c') pour le sous-bloc courant, ce qui conduit à un découpage irrégulier de ce sous-bloc. Le procédé de décodage qui vient d'être décrit est avantageusement mis en oeuvre par un dispositif de décodage d'une image numérique selon Un tel dispositif de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, est particulier en ce qu'il comprend les unités suivantes, aptes à être mises en oeuvre pour un bloc, dit bloc courant : - Obtention d'un vecteur mouvement de base entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvement pointant sur une zone de l'image de référence de même taille que celle du bloc courant; - Application au bloc courant du partitionnerrient en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base ; Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus. Corrélativement, l'invention concerne un signal portant un train binaire comprenant des données codées représentatives d'Une image numérique, ladite image numérique étant divisée en blocs de pixels traités dans un ordre défini. Le signal selon l'invention est particulier en ce que, pour un bloc courant lesdites données codées comprennent un champ représentatif d'un vecteur mouvement de base du bloc courant par rapport à une image de référence et un champ représentatif d'un mode de codage par application du partitionnement de la zone de même taille que le bloc courant, pointée par le vecteur mouvement de base dans l'image de référence.
Corrélativement, l'invention concerne un terminal d'utilisateur. Un tel terminal est particulier en ce qu'il comprend un dispositif de codage d'une image numérique et un dispositif de décodage d'une image numérique selon l'invention. L'invention concerne encore un programme d'ordinateur comportant des instructions pour la mise en oeuvre des étapes d'un procédé de codage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en oeuvre des étapes d'un procédé de décodage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur. L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage d'une image numérique et au dispositif de décodage d'une image numérique selon l'invention, éventuellement amovible, mémorisant respectivement un programme d'ordinateur mettant en oeuvre un procédé de codage ét un programme d'ordinateur mettant en oeuvre un procédé de décodage, tels que décrits précédemment. 6. Liste des figures D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - les figures la et lb, déjà décrites, illustrent des exemples de partitionnement de bloc respectivement autorisés et interdits par la norme AVC ; - les figures 2a et 2b, déjà décrites, illustrent des exemples de partitionnement de bloc respectivement autorisés et interdits par la norme HEVC ; - les figures 3a, 3b, 3c et 3d, déjà décrites, illustrent respectivement un exemple de texture de bloc présentant une zone homogène et des zones de détails et des étapes de partitionnement du bloc selon la norme HEVC ; la figure 4 présente de façon schématique les étapes d'un procédé de codage d'une image numérique selon l'art antérieur ; la figure 5 présente de façon schématique les étapes d'un procédé de codage d'une image numérique selon un premier mode de réalisation de l'invention ; - la figure 6 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique selon un deuxième mode de réalisation de l'invention ; et la figure 7 détaille un premier exemple de modification du partitionnement du bloc courant par découpage d'un sous-bloc du partitionnement du bloc courant; - la figure 8 détaille un deuxième exemple de codage d'un bloc courant mettant en oeuvre une modification du partitionnement du bloc par découpage d'un sous-bloc du partitionnement du bloc courant; la figure 9 détaille un troisième exemple de codage d'un bloc courant mettant en oeuvre une modification du partitionnement du bloc par fusion d'un sous-bloc avec un sous-bloc voisin du partitionnement ; - les figures 10a et 10b présentent un exemple de fusion de deux sous-blocs d'un partitionnement initial selon un mode de réalisation de l'invention ; - les figures 11a à 11e présentent un exemple de codage d'un bloc courant selon un mode de réalisation de l'invention, lorsque plusieurs opérations successives de fusion et de découpage du partitionnement sont mises en oeuvre ; - la figure 12 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique à partir de données codées selon un mode de réalisation de l'invention ; - la figure 13 présente de façon schématique un exemple de structure matérielle 10 d'un dispositif de codage selon un mode de réalisation de l'invention ; et la figure 14 présente de façon schématique un exemple de structure matérielle d'un dispositif de décodage selon un mode de réalisation de l'invention. 7. Description d'un mode de réalisation particulier de l'invention 15 Le principe général de l'invention repose sur l'application au bloc courant du partitionnement de la zone pointée par le vecteur mouvement de base issu de l'estimation de mouvement entre l'image courante et une image de référence. On considère une vidéo originale constituée d'une suite de M images I1, 12, ...IM, avec M entier non nul. Les images sont encodées par un encodeur, les données codées 20 sont insérées un train binaire TB transmis à un décodeur via un réseau de communication, ou un fichier compressé FC, destiné à être stocké sur un disque dur par exemple. Le décodeur extrait les données codées, puis reçues et décodées par un décodeur dans un ordre prédéfini connu de l'encodeur et du décodeur, par exemple dans l'ordre temporel I1' puis 12, ..., puis IM, cet ordre pouvant différer suivant le mode de 25 réalisation. Par ailleurs, on notera ID l'image courante décodée. On notera que, dans un codeur vidéo, l'image ID est (re)construite dans l'encodeur de façon à pouvoir servir pour prédire les autres pixels de la vidéo.
Lors de l'encodage d'une image Im, avec m entier compris entre 1 et M, celle-ci est subdivisée en blocs de taille maximale prédéterminée, par exemple 64x64, appelés CTU (pour « Coding Tree Unit », en anglais) selon la norme HEVC, qui peuvent à leur tour être subdivisés en blocs plus petits, le bloc codé étant appelé CU (pour « Coding Unit », en anglais). Chaque CU va subir une opération d'encodage ou de décodage consistant en une suite d'opérations, comprenant de manière non exhaustive une prédiction, un calcul de résidu, une transformation, une quantification et un codage entropique. Cette suite d'opérations est présentée en relation avec la Figure 4. On sélectionne comme bloc courant b le premier bloc CTU à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels. On suppose qu'il existe L partitionnements en blocs CU possibles numérotées de 1 à L, et que le partitionnement utilisé sur le bloc C correspond au partitionnement numéro I. Par exemple, il peut y avoir 4 partitionnennents possibles, en sous-blocs de taille 4x4, 8x8, 16x16, et 32x32 selon un mode de découpage régulier de type « quad tree ».
Au cours d'une étape El, on détermine une prédiction Pr du bloc original b. Il s'agit d'un bloc de prédiction construit par des moyens connus, typiquement par compensation de mouvement (bloc issu d'une image de référence précédemment décodée),ou par prédiction MERGE (bloc reconstruit à partir d'un bloc issu d'une image de référence précédemment décodée pointé par un vecteur dérivé des blocs voisins du bloc courant), ou par prédiction intra (bloc construit à partir des pixels décodés immédiatement adjacents au bloc courant dans l'image ID). Les informations de prédiction liées à P sont codées dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a K modes de prédiction possibles ml, m2,..., mK, avec K entier non nul. Par exemple, le mode de prédiction choisi pour le bloc courant b est le mode mk.
Certains modes de prédiction sont associés à une prédiction de type Intra, d'autres à une prédiction de type INTER, d'autres à une prédiction de type MERGE. Au cours d'une étape E2, un résidu original R est formé, par soustraction R = b-Pr de la prédiction Pr du bloc courant b au bloc courant b. Au cours d'une étape E3, le résidu R est transformé en un bloc résidu transformé, appelé RT, par une transformée de type DCT ou transformée en ondelettes, toutes les deux connues de l'homme de métier et notamment mises en oeuvre dans les normes JPEG pour la DCT et JPEG2000 pour la transformée en ondelettes.
En E4, le résidu transformé RT est quantifié par des moyens classiques de quantification, par exemple scalaire ou vectorielle, en un bloc résidu quantifié RQ. Ce bloc quantifié RQ contient NxN coefficients. De façon connue dans l'état de l'art, ces coefficients sont scannés dans un ordre prédéterminés de façon à constituer un vecteur monodimensionnel RQ[i], où l'indice i varie de 0 à N2-1: L'indice i est appelé fréquence du coefficient RQ[i]. Classiquement, on scanne ces coefficients par ordre croissant de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes PEG. Lors d'une étape E5, on vient coder les informations d'amplitude des coefficients du bloc résidu RQ par codage entropique, par exemple selon une technique de codage de Huffman ou de codage arithmétique. Par amplitude, on entend ici la valeur absolue du coefficient. Classiquement, on peut coder pour chaque coefficient une information représentative du fait que le coefficient est non nul. Ensuite, pour chaque coefficient non nul, une ou plusieurs informations relatives à l'amplitude sont codées. On obtient les amplitudes codées CA. En général, les signes des coefficients sont simplement codés par un bit 0 ou 1. On répète les étapes précédentes El à E5 pour les I partitionnements possibles du bloc courant b. Pour un partitionnennent I, chacun des sous-blocs CU du bloc courant b sont traités comme précédemment décrit, un type de prédiction (Inter ou Intra) étant autorisé par CU. Autrement dit, les sous-blocs d'un sous-bloc CU sont tous soumis au même type de prédiction. Par exemple, les données codées pour chacun des I partitionnennents possibles sont mises en compétition selon un critère débit-distorsion et le partitionnement qui obtient le meilleur résultat selon ce critère est finalement retenu.
Les autres blocs de l'image Il sont traités de la même façon, de même pour les images suivantes de la séquence. En relation avec la Figure 5, on présente maintenant les étapes du procédé de codage selon un premier mode de réalisation de l'invention.
En entrée, on considère en particulier un bloc courant b, de type CU d'une image suivante, par exemple Ii avec i entier supérieur ou égal à 2. On se place dans un mode de prédiction de type Inter, selon lequel un bloc de prédiction Pr est obtenu par compensation de mouvement par rapport à une image de référence IR précédemment codée puis décodée. Le bloc courant b va être codé selon un mode de prédiction INTER particulier, propre à l'invention. Bien sûr, ce mode peut être mis en compétition avec d'autres modes de prédiction INTER ou INTRA connus de l'homme de métier et spécifiés par une norme de codage telle que HEVC ou une norme future. On notera qu'au moins la première image de la séquence d'images à coder a été codée de manière classique. Au cours d'une étape a) d'estimation du mouvement du bloc courant b par rapport à l'image de référence IR, on détermine un vecteur mouvement de base MVb qui pointe sur une zone de l'image de référence, de la taille du bloc courant b, aussi appelée bloc de prédiction Pr. On note que cette zone ne correspond pas nécessairement à un bloc précédemment codé dans l'image de référence IR, mais qu'elle peut se trouver à cheval sur plusieurs blocs de cette image. Autrement dit, le bloc de prédiction Pr peut être vu comme une composition de morceaux adjacents des blocs de l'image de référence qu'il recouvre. On notera que selon l'invention, la phase d'estimation de mouvement initiale ne prend en compte que la distorsion pixel à pixel, et en aucun cas des notions de coût de codage, comme ce qui est fait habituellement, par exemple dans un schéma de codage de type HEVC. En effet, l'objectif de cette estimation de mouvement est de trouver la meilleure zone de prédiction au sens de la distorsion pixel à pixel, en vue d'appliquer le partitionnement de cette zone au bloc courant. Le coût de codage est pris en compte ultérieurement lors de la compétition entre les différents modes de prédiction, en particulier celui de l'invention et ceux spécifiés par une norme de type HEVC par exemple.
Au cours d'une étape b), on obtient le partitionnement du bloc de prédiction Pr dans l'image IR. Les partitionnements des blocs de l'image de référence IR ont été à cet effet stockés dans une mémoire et le partitionnement du bloc de prédiction Pr est reconstruit à partir des informations de partitionnement stockées pour les blocs de l'image IR au moins partiellement recouverts par le bloc de prédiction Pr. On comprend que le partitionnement lp ainsi obtenu ne satisfait pas forcément les règles de partitionnement généralement imposées par les spécifications d'une norme telle que HEVC. En particulier, il n'est pas nécessairement régulier. Un exemple de partitionnement irrégulier obtenu par l'invention est illustré par la Figure 10a. On applique ensuite le partitionnement IP obtenu au bloc courant b. Au cours d'une étape c), les sous-blocs issus du partitionnement IP appliqué au bloc courant b sont parcourus selon un ordre prédéterminé et traités comme décrit précédemment en relation avec la Figure 4. Pour un sous-bloc de b, une prédiction Pr est obtenue, un résidu R est calculé à partir de cette prédiction Pr, puis le résidu est transformé, quantifié et enfin codé (RC). On notera que différents ordres de parcours des sous-blocs d'un partitionnement sont possibles, parmi lesquels : - de gauche à droite, en zig-zag ; - Par ordre de taille croissante ou décroissante ; Deux ordres de parcours différents aboutissent à des partitionnements différents. Plusieurs ordres de parcours peuvent être en compétition. Dans ce cas, l'ordre de parcours choisi sera signalé dans le train binaire. Selon un aspect de l'invention, le vecteur mouvement initial MVb est transmis dans le train binaire. De façon alternative, il n'est pas transmis, mais il est dérivé de ses voisins : 0 D'une manière reproductible au décodeur ; ou 0 Par un index signalant un choix parmi des candidats en compétition. Dans ce premier mode de réalisation de l'invention, le partitionnement appliqué au bloc courant n'a pas à être signalé puisqu'il peut être déduit de celui du bloc de prédiction de l'image de référence.
Avantageusement, les données codées obtenues sont mises en compétition avec celles issues d'un schéma de codage classique, par exemple selon la norme HEVC. Un critère débit-distorsion est pris en compte pour comparer les différents modes de codage. Les données codées issues du partitionnement qui a gagné la compétition sont insérées dans le train binaire TB ou dans un fichier FC.30 En relation avec la Figure 6, on détaille maintenant l'étape c) de codage des sous-blocs du bloc courant b selon le partitionnement IP selon un deuxième mode de réalisation de l'invention. Les sous-blocs SB du bloc courant b sont parcourus en cl, selon un ordre de parcours prédéterminés. Deux cas sont possibles : - Dans le premier cas, déjà décrit en relation avec la figure 5, le sous-bloc SB est traité de façon classique en c2 ; - Dans le deuxième cas, le sous-bloc est soumis en c3 à une modification de partitionnement. Cette modification peut être soit un découpage du sous-bloc en sous-blocs de tailles inférieures ou une fusion du sous-bloc avec un sous-bloc voisin déjà traité. Le ou les nouveaux sous-blocs obtenus sont ensuite codés en c4.
Dans ce deuxième mode de réalisation de l'invention, les modifications du partitionnement initial 'Pi appliquées au bloc courant b doivent être signalées dans le train binaire TB puisqu'elles ne peuvent pas être déduites de celles du bloc de prédiction de l'image de référence. Avantageusement, elles sont signalées par différence par rapport au partitionnement initial. On comprend qu'une signalisation possible pourrait être d'indiquer d'abord le type de modification appliqué, découpage ou fusion, puis les différences avec le partitionnement initial. En c5, les données codées obtenues dans le premier et le deuxième cas sont mises en compétition et évaluées selon un critère de débit distorsion. Est retenu le partitionnement qui réalise la meilleure performance selon ce critère. En relation avec la Figure 7, on détaille maintenant les sous-étapes de modification par découpage et de codage du partitionnement du sous-bloc courant SB selon un premier exemple de réalisation de l'invention. Par exemple, le découpage est réalisé en c31 conformément aux spécifications de la norme HEVC, selon un mode « quadtree ». Un partitionnement IP(SB) est obtenu dont les sous-blocs sont codés en d41 comme précédemment décrit. Selon un deuxième exemple de découpage d'un sous-bloc présenté en relation avec la Figure 8, le découpage du sous-bloc courant SB réalisé en c'31 met en oeuvre le principe de l'invention, c'est-à-dire qu'il met en oeuvre les étapes a), b) du procédé de codage selon l'invention. En a) une estimation de mouvement est réalisée par rapport à l'image de référence IR, un vecteur mouvement de base MVb' est obtenu, en b) le partitionnement du bloc de prédiction pointé par le vecteur mouvement MVb' est obtenu puis appliqué au sous-bloc courant SB.
On comprend qu'il s'agit d'une mise en oeuvre récursive de l'invention. Différentes manières de signaler le découpage d'un sous-bloc sont possibles : étant donné un ordre de parcours prédéterminé des sous-blocs du partitionnement, on peut citer à titre d'exemple : signaler pour chaque sous-bloc d'une partition un 0 ou un 1 pour indiquer si le sous-bloc courant est découpé par exemple selon un mode « quadtree » et pour chacun de sous-blocs obtenus, s'il est redécoupé ; si le sous-bloc est redécoupé, signaler la manière dont le nouveau partitionnement est obtenu, en concordance avec la méthode de découpage retenue. Par exemple, si le partitionnement est découpé en utilisant une méthode de type « quadtree » comme c'est la cas selon la norme HEVC, la signalisation associée suit la recommandation HEVC et en particulier la section 7.3.8.4 intitulée « Coding quadtree syntax ». En relation avec la Figure 9, on détaille maintenant les sous-étapes de modification et de codage du partitionnement du bloc courant b, lorsqu'une fusion du sous-bloc courant avec un sous-bloc voisin déjà codé est mise en oeuvre. Les sous-blocs du bloc courant sont codés selon un ordre de parcours prédéterminé. En relation avec la figure 10a, on considère un sous-bloc SB qui vient d'être codé.
L'étape c32 réalise une fusion du sous-bloc SB avec un voisin déjà codé SBV selon l'ordre de parcours. La figure 10b présente le sous-bloc agrandi SBf obtenu. Ce sous-bloc agrandi SBf est codé en c42. Au cours de cette étape, la prédiction du sous bloc fusionné SBf peut être mise en oeuvre selon un mode de prédiction de type Inter, Merge ou Intra, comme décrit précédemment. Dans le cas du mode Inter, on attribue un vecteur mouvement MVf au sous-bloc agrandi, soit en mettant en oeuvre une nouvelle étape d'estimation de mouvement qui fournit un nouveau vecteur mouvement qu'il faudra transmettre au décodeur, soit en réutilisant un des vecteurs mouvements de l'un des deux sous-blocs fusionnés. Dans ce cas le vecteur mouvement réutilisé pourra être signalé avec un index dans le train binaire. Différentes manières de signaler la fusion sont possibles : étant donné un ordre de parcours prédéterminé des sous-blocs du partitionnement, on peut à titre d'exemple : - signaler pour chaque sous-bloc d'un partitionnement un 0 ou un 1 pour indiquer si le sous-bloc courant est fusionné avec un sous-bloc voisin selon l'ordre de parcours ; ou - ne signaler que le numéro du sous-bloc courant, suivi de la distance (dans l'ordre de parcours) au sous-bloc voisin avec lequel il fusionne (par ex : 0 pour le premier voisin selon l'ordre de parcours). A l'issue de cette étape de codage, le coût RD de la fusion est calculé en c52. Avantageusement, ce calcul prend en compte le coût de codage du résidu du sous-bloc agrandi, le coût de codage de son vecteur mouvement MVf et le coût de la signalisation du la fusion des deux sous-blocs voisins.
Le coût global calculé est comparé en c52 à la somme des coûts des deux sous- blocs SB et SBV codés séparément et une décision d'adopter la fusion est prise en c62, si ce coût global est inférieur à la somme des coûts de codage des sous-blocs séparés. Sinon, la fusion n'est pas retenue. Ensuite le codeur peut tester la fusion du sous-bloc courant avec un autre sous- bloc voisin déjà codé. On comprend que fusionner permet d'économiser un vecteur mouvement, mais rend la prédiction moins fine et la signalisation du partitionnement plus coûteuse. La fusion est donc un choix du codeur. Par exemple, le codeur peut systématiquement tenter la fusion d'un sous-bloc d'un partitionnement avec l'ensemble de ses sous-blocs voisins et ne garder que les fusions judicieuses, c'est-à-dire celles qui contribuent à réduire globalement à réduire le coût de codage.
Le train binaire TB produit par le procédé de codage selon l'invention qui vient d'être décrit est donc particulier en ce qu'il comprend, pour le codage d'un bloc courant, des informations de signalisation relatives : Au fait de choisir pour le bloc courant, le mode de codage selon l'invention, à savoir le fait d'appliquer le partitionnement du bloc de prédiction au bloc courant ; A la modification éventuelle du partitionnement initial, par découpage ou fusion; Par exemple, une suite binaire peut indiquer qu'il y a eu modification du partitionnement initial (1), ou non (0). En cas de modification, une suite binaire peut indiquer s'il s'agit d'un découpage (0) ou d'une fusion (1). Dans les deux cas, une suite binaire décrit alors le découpage et la fusion. Par exemple, le découpage est signalé par une suite binaire en concordance avec la méthode de découpage retenue. Par exemple, si la partition est découpée en utilisant une méthode « quadtree » façon HEVC, la signalisation du « quadtree » associée suit la recommandation HEVC et en particulier la section 7.3.8.4 « Coding quadtree syntax ». Une fusion est signalée par une suite binaire qui décrit si le bloc courant fusionne (1) ou non (0) avec son voisin, selon un ordre prédéfini. L'ensemble de ces suites binaires peuvent être codées à l'aide d'un codeur entropique de type Huffman, ou de type arithmétique avec utilisation de contextes spécifiques afin de réduire le coût de signalisation associé ; A la réutilisation éventuelle du vecteur mouvement estimé pour le sous-bloc courant ou le sous-bloc voisin lors d'une modification du partitionnement initial.
En relation avec les Figures 11a à 11e, on présente un exemple de réalisation de l'invention selon lequel le partitionnement initial d'un bloc courant b, est modifié à plusieurs reprises, certains sous-blocs étant fusionnés, d'autres étant divisés. La figure 11a illustre le fait que le partitionnement correspondant au bloc de prédiction n'est pas forcément régulier, du fait qu'il correspond à des morceaux de partitionnement de plusieurs blocs de l'image de référence. Les figures 11b, 11c et 11d illustrent des fusions successives. La figure 11e illustre un exemple de découpage d'un sous-bloc.. On notera que dans cet exemple, le nombre de vecteurs mouvements à transmettre est de 21 pour un nombre total de 28 selon la norme HEVC. Bien sûr, si trop de fusions sont mises en oeuvre, il en résulte un coût de signalisation accru. C'est donc le codeur qui connait le coût de codage des modifications apportées au partitionnement initial et réalise le meilleur compromis débit distorsion.
Le train binaire TB produit par le procédé de codage selon l'invention est transmis à un décodeur. Ce décodeur met en oeuvre un procédé de décodage selon l'invention qui va maintenant être décrit en relation avec la Figure 12. On suppose que le décodeur lit et analyse de façon connue les données codées DC reçues dans le train binaire. On considère en particulier les données codées relatives à un bloc courant d'une image numérique Im. Selon l'invention, le décodeur extrait en Ti une information de signalisation relative au mode de partitionnement MPA mis en oeuvre pour coder le bloc courant b'. Il s'agit par exemple d'un partitionnement classique, de type « Quadtree » ou bien du mode de partitionnement selon l'invention.
Dans le cas où le mode de partitionnement MPA utilisé pour le bloc courant est celui de l'invention, le décodeur obtient en T2 le vecteur mouvement de base MVb' à utiliser pour déterminer le bloc de prédiction Pr' du bloc courant dans l'image de référence IR'. Selon le mode de réalisation mis en oeuvre, il peut obtenir soit une information de signalisation qui indique que le vecteur mouvement MVb' est déduit de celui d'un bloc voisin déjà codé soit des données représentatives du vecteur mouvement proprement dit. Une fois le vecteur mouvement MVb' obtenu, le décodeur met en oeuvre une étape T3 d'obtention d'un partitionnement initial IPi du bloc courant. Ce partitionnement est celui du bloc de prédiction Pr', c'est-à-dire de la zone Zb' pointée par le vecteur mouvement MVb' dans l'image de référence IR déjà décodée. Le décodeur calcule donc les coordonnées de cette zone dans l'image de référence et va chercher en mémoire le partitionnement des différents blocs de l'image de référence qui contribuent à cette zone. En T4, il applique ce partitionnement au bloc courant. Il s'agit de son partitionnement initial. Il commence ensuite en T5 à parcourir les sous-blocs définis par ce partitionnement initial selon un ordre de parcours prédéterminé qu'il partage avec l'encodeur. Par exemple, cet ordre de parcours est déterminé au préalable.
Pour un sous-bloc courant SB', il extrait du train binaire une éventuelle information de signalisation relative à une modification du partitionnement initial du bloc au niveau de ce sous-bloc SB'. S'il n'extrait aucune information, le sous-bloc n'a pas été modifié. Dans ce cas, il le décode à partir des données codées reçues dans le train binaire. De façon alternative, il extrait en T5 des informations de signalisation relatives à une modification du partitionnement au niveau du sous-bloc courant. Par exemple, ces informations comprennent d'abord une information représentative d'un type de modification appliquée au partitionnement initial, découpage ou fusion, suivi d'informations représentatives d'une différence entre le partitionnement modifié et le partitionnement initial. Selon un premier cas, il s'agit d'un découpage du sous-bloc courant. Comme précédemment évoqué, ce découpage peut s'appuyer sur un partitionnement classique de type « Quadtree » ou sur le mode de partitionnement selon l'invention.
S'il s'agit d'un mode de partitionnement classique, le décodeur extrait du train binaire les informations de signalisation relatives à ce partitionnement et au mode de prédiction utilisé pour chacun des sous-blocs obtenus. Il décode de façon classique les sous-blocs obtenus. S'il s'agit du mode de partitionnement selon l'invention, le décodeur répète les étapes déjà décrites, d'extraction du train binaire des informations de signalisation relatives au vecteur mouvement (réutilisé ou codé) et d'obtention du vecteur mouvement, d'obtention du partitionnement du sous-bloc de prédiction de l'image de référence, d'application de ce partitionnement au sous-bloc courant, puis de décodage des sous-blocs du sous-bloc courant redécoupé.
Selon un deuxième cas, la modification apportée au partitionnement initial est une fusion du sous-bloc courant avec un sous-bloc voisin déjà décodé. Le décodeur extrait du train binaire des informations de signalisation permettant d'identifier le sous-bloc voisin et il met à jour le partitionnement du bloc b' en remplaçant les sous-blocs fusionnés par le sous-bloc agrandi. On notera qu'il peut y avoir plus de deux sous-blocs voisins fusionnés en un seul sous-bloc agrandi.
Il lit ensuite dans le train binaire le mode de prédiction mis en oeuvre pour le sous-bloc agrandi. Dans le cas d'un mode de prédiction Inter, il obtient le vecteur mouvement de base à appliquer au sous-bloc agrandi pour le compenser en mouvement par rapport à l'image de référence. Puis il décode le sous-bloc agrandi à partir des données codées extraites du train binaire. Une fois que tous les résidus des sous-blocs du bloc courant b' ont été décodés, le procédé de décodage reconstruit en T6 le résidu quantifié RQ' du bloc b' et le déquantifie. Cette dernière opération est réalisée par des moyens adaptés à la quantification utilisée lors du codage, par exemple une déquantification scalaire ou vectorielle...). Ensuite il applique une transformation inverse du bloc courant déquantifié et reconstruit le bloc b' décodé par ajout du résidu à la prédiction Pr' du bloc courant b'. Le bloc b' reconstruit est intégré à l'image en cours de décodage. On notera que l'invention qui vient d'être décrite, peut être mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « unité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en oeuvre la ou les fonctions décrites pour le module ou l'unité concerné(e).
En relation avec la figure 13, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique selon l'invention. Le dispositif 100 met en oeuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec les Figures 4 à 9. Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur pl, et pilotée par un programme d'ordinateur Pgl 120, stocké dans une mémoire 130 et mettant en oeuvre le procédé de codage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en oeuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120. Dans cet exemple de réalisation de l'invention, le dispositif 100 comprend au moins une unité GET MVb d'obtention d'un vecteur mouvement de base pour le bloc courant par rapport à une image de référence, une unité GET PART d'obtention d'un partitionnement du bloc de prédiction PU pointé par le vecteur mouvement de base estimé, une unité MAP PART d'application du partitionnement obtenu au bloc courant et une unité COD de codage des sous-blocs du bloc courant définis par le partitionnement appliqué.
Avantageusement, le dispositif 100 comprend en outre une unité MOD IP de modification du partitionnement obtenu pour le bloc (b') et une unité VALID MOD de validation de la modification. Ces unités sont pilotées par le processeur pl de l'unité de traitement 110. De façon avantageuse, un tel dispositif 100 peut être intégré à un terminal d'utilisateur TU. Le dispositif 100 est alors agencé pour coopérer au moins un module E/R d'émission/réception de données du terminal d'utilisateur, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire ou un réseau hertzien.
En relation avec la figure 13, on présente maintenant un exemple de structure simplifiée d'un dispositif 200 de décodage d'une image numérique selon l'invention. Le dispositif 200 met en oeuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec la Figure 11. Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un processeur p2, et pilotée par un programme d'ordinateur Pg2 220, stocké dans une mémoire 230 et mettant en oeuvre le procédé de décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pg2 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en oeuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 220. Dans cet exemple de réalisation de l'invention, le dispositif 200 comprend au moins une unité GET MVb' d'obtention d'un vecteur mouvement de base MVb' entre le bloc courant et une image de référence précédemment décodée, une unité GET PART d'obtention d'un partitionnement de la zone pointée dans l'image de référence (b'), une unité MAP PART d'application du partitionnement obtenu au bloc courant (b) et une unité DEC de parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et de décodage des données codées lues dans le train binaire pour les sous-blocs parcourus. Avantageusement, le dispositif 200 comprend en outre une unité MOD IP de modification du partitionnement obtenu pour le bloc (b') à partir de données codées lues dans le train binaire TB. Ces unités sont pilotées par le processeur pt2 de l'unité de traitement 210.
De façon avantageuse, un tel dispositif 200 peut être intégré à un terminal d'utilisateur TU'. Le dispositif 200 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : Un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est reçu d'un réseau de télécommunications ; Un dispositif DISP de restitution d'images, par exemple un écran de terminal, par l'intermédiaire duquel l'image numérique décodée ou la suite d'images décodées est restituée à un utilisateur. De façon avantageuse, un terminal d'utilisateur TU, TU' peut intégrer à la fois un dispositif de codage et un dispositif de décodage selon l'invention. Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.30

Claims (17)

  1. REVENDICATIONS1. Procédé de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, caractérisé en ce que ledit procédé comprend les étapes suivantes, mises en oeuvre pour un bloc courant (b) : a) Obtention d'un vecteur mouvement, dit vecteur mouvement de base (MVb) du bloc courant (b) par rapport à une image de référence précédemment décodée; b) Obtention d'un partitionnement (IP) en sous-blocs de la zone (Zb) pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application au bloc courant (b); c) Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus.
  2. 2. Procédé de codage d'une image numérique selon la revendication 1, caractérisé en ce que l'étape d'obtention du vecteur mouvement de base comprend une estimation de mouvement du bloc courant (b) par rapport à l'image de référence précédemment décodée selon un critère de minimisation d'erreur.
  3. 3. Procédé de codage d'une image numérique selon l'une des revendications 1 ou 2, caractérisé en ce qu'il comprend en outre une étape de modification du partitionnement du bloc courant en sous-blocs selon des règles prédéterminées, une étape de codage des sous-blocs du partitionnement modifié comprenant le codage d'informations de signalisation de la modification du partitionnement et une étape de validation du partitionnement modifié par application d'un critère débit-distorsion aux sous-blocs codés du partitionnement modifié.
  4. 4. Procédé de codage d'une image numérique selon la revendication 3, caractérisé en ce que la modification comprend une fusion d'un sous bloc du partitionnement courant codé avec au moins un sous bloc voisin déjà codé.
  5. 5. Procédé de codage d'une image numérique selon les revendications 3 à 4, caractérisé en ce que la modification du partitionnement courant comprend en outre un découpage d'au moins un sous-bloc en au moins deux sous-blocs.
  6. 6. Procédé de codage d'une image numérique selon la revendication 5, caractérisé en ce que l'étape de découpage dudit au moins un sous-bloc en au moins deux sous-blocs, dits sous-blocs découpés, comprend la mise en oeuvre des étapes a) et b) pour le au moins un sous-bloc courant.
  7. 7. Dispositif (100) de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, caractérisé en ce que ledit dispositif est apte à mettre en oeuvre les unités suivantes, pour un bloc courant (b) : Obtention (GET MVb) d'un vecteur mouvement, dit vecteur mouvement de base (MVb) du bloc courant (b) par rapport à une image de référence précédemment décodée; Obtention (MAP IP) d'un partitionnement (IP) en sous-blocs de la zone (Zb) pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application au bloc courant (b); Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et codage (COD) des sous-blocs parcourus.
  8. 8. Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc, dit bloc courant : a') Obtention d'un vecteur mouvement de base (MVb) entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvementpointant sur une zone de l'image de référence (Zb), de même taille que celle du bloc courant; b') Obtention d'un partitionnement en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application du partitionnement obtenu au bloc courant (b); c') Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus.
  9. 9. Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image selon la revendication 8, caractérisé en ce qu'il comprend une étape de modification du partitionnement initial, obtenu pour le bloc courant en fonction de données codées représentatives d'une signalisation de la modification du partitionnement et en ce que l'étape de décodage comprend le décodage du partitionnement modifié.
  10. 10. Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image selon la revendication 9, caractérisé en ce que, lorsque les données codées signalent une fusion, l'étape de modification du partitionnement initial remplace les au moins deux sous-blocs voisins du partitionnement initial par un sous-bloc dans le partitionnement modifié et l'étape de décodage comprend le décodage du sous-bloc.
  11. 11. Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image selon l'une des revendications 9 et 10, caractérisé en ce que, lorsque les données codées signalent un découpage d'un sous-bloc du partitionnement courant en au moins deux sous-blocs, l'étape de modification du partitionnement applique ledécoupage signalé au sous-bloc courant et l'étape de décodage décode les sous-blocs obtenus selon un ordre de parcours prédéterminé.
  12. 12. Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées selon la revendication 11, caractérisé en ce que l'étape de découpage du sous-bloc en au moins deux sous-blocs met en oeuvre les étapes a'), b'), c') pour le sous-bloc courant.
  13. 13. Dispositif (200) de décodage d'une image numérique (ID) à partir d'un train binaire (TB) comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit dispositif comprenant les unités suivantes, aptes à être mises en oeuvre pour un bloc, dit bloc courant (b'): Obtention (GET MVb') d'un vecteur mouvement de base (MVb') entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvement pointant sur une zone de l'image de référence (zb), de même taille que celle du bloc courant; Obtention d'un partitionnement (IP') en sous-blocs de la zone (Zb') pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application (MAP IP') du partitionnement obtenu au bloc courant (b); Parcours des sous-blocs du bloc courant (b') selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus.
  14. 14. Signal portant un train binaire (TB) comprenant des données codées représentatives d'une image numérique, ladite image numérique étant divisée en blocs de pixels traités dans un ordre défini, caractérisé en ce que, pour un bloc courant, lesdites données codées comprennent un champ représentatif d'un vecteur mouvement de base du bloc courant par rapport à une image de référence et un champ représentatif d'un mode de codage par application du partitionnement de la zone de même taille que le bloc courant, pointée par levecteur mouvement de base dans l'image de référence.
  15. 15. Terminal d'utilisateur (TU, TU') caractérisé en ce qu'il comprend un dispositif de codage d'une image numérique selon la revendication 7 et un dispositif de décodage d'une image numérique selon la revendication 13.
  16. 16. Programme d'ordinateur comprenant des instructions pour la mise en oeuvre du procédé de codage d'une image numérique selon l'une des revendications 1 à 6, lorsqu'il est exécuté par un processeur.
  17. 17. Programme d'ordinateur comprenant des instructions pour la mise en oeuvre du procédé de décodage d'une image numérique selon l'une des revendications 8 à 12, lorsqu'il est exécuté par un processeur.10
FR1463137A 2014-12-22 2014-12-22 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes Expired - Fee Related FR3030976B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1463137A FR3030976B1 (fr) 2014-12-22 2014-12-22 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
EP15823644.8A EP3238449A1 (fr) 2014-12-22 2015-12-14 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
PCT/FR2015/053471 WO2016102804A1 (fr) 2014-12-22 2015-12-14 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
US15/538,970 US20170353722A1 (en) 2014-12-22 2015-12-14 A method for encoding a digital image, decoding method, devices, and associated computer programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1463137A FR3030976B1 (fr) 2014-12-22 2014-12-22 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes

Publications (2)

Publication Number Publication Date
FR3030976A1 true FR3030976A1 (fr) 2016-06-24
FR3030976B1 FR3030976B1 (fr) 2018-02-02

Family

ID=53177571

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1463137A Expired - Fee Related FR3030976B1 (fr) 2014-12-22 2014-12-22 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes

Country Status (4)

Country Link
US (1) US20170353722A1 (fr)
EP (1) EP3238449A1 (fr)
FR (1) FR3030976B1 (fr)
WO (1) WO2016102804A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116233416A (zh) * 2017-01-16 2023-06-06 世宗大学校产学协力团 影像编码/解码方法
KR102479492B1 (ko) * 2018-01-08 2022-12-20 삼성전자주식회사 차량 주변의 이미지를 제공하는 전자 장치 및 방법
GB2584723A (en) * 2019-06-13 2020-12-16 Canon Kk Method, device, and computer program for coding and decoding a picture

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030035477A1 (en) * 1997-04-24 2003-02-20 Shunichi Sekiguchi Method and apparatus for region-based moving image encoding and decoding
WO2008150113A1 (fr) * 2007-06-08 2008-12-11 Samsung Electronics Co., Ltd. Procédé et appareil de codage et de décodage d'une image en utilisant une séparation basée sur une délimitation d'objet
US20120328015A1 (en) * 2009-12-17 2012-12-27 Sk Telecom Co., Ltd. Image encoding/decoding method and device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE045579T2 (hu) 2010-04-13 2020-01-28 Ge Video Compression Llc Síkközi predikció

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030035477A1 (en) * 1997-04-24 2003-02-20 Shunichi Sekiguchi Method and apparatus for region-based moving image encoding and decoding
WO2008150113A1 (fr) * 2007-06-08 2008-12-11 Samsung Electronics Co., Ltd. Procédé et appareil de codage et de décodage d'une image en utilisant une séparation basée sur une délimitation d'objet
KR20080107965A (ko) * 2007-06-08 2008-12-11 삼성전자주식회사 객체 경계 기반 파티션을 이용한 영상의 부호화, 복호화방법 및 장치
US20120328015A1 (en) * 2009-12-17 2012-12-27 Sk Telecom Co., Ltd. Image encoding/decoding method and device

Also Published As

Publication number Publication date
WO2016102804A1 (fr) 2016-06-30
EP3238449A1 (fr) 2017-11-01
US20170353722A1 (en) 2017-12-07
FR3030976B1 (fr) 2018-02-02

Similar Documents

Publication Publication Date Title
US10187657B2 (en) Method and device for configuring merge candidate list for decoding and encoding of interlayer video
JP6231109B2 (ja) コンテキスト適応型、マルチレベル有意性コーディングに関するコンテキスト導出
EP2446628B1 (fr) Procédé de décodage d'images, dispositifs de décodage et programme d'ordinateur correspondants
US9420280B2 (en) Adaptive upsampling filters
WO2015197945A1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés
EP3061246B1 (fr) Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
FR2906433A1 (fr) Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
EP3694209A1 (fr) Procédé de décodage d'images, dispositif de décodage d'images, et programme d'ordinateur correspondant
FR3038196A1 (fr) Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
FR2933565A1 (fr) Procede et dispositif de codage d'une sequence d'images mettant en oeuvre une prediction temporelle, signal, support de donnees, procede et dispositif de decodage, et produit programme d'ordinateur correspondants
FR3008840A1 (fr) Procede et dispositif de decodage d'un train scalable representatif d'une sequence d'images et procede et dispositif de codage correspondants
EP2377323A2 (fr) Prédiction d'images par repartionnement d'une portion de zone causale de référence, codage et decodage utilisant une telle prédiction
EP3238449A1 (fr) Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
WO2017115028A1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associés
EP4344203A2 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d ordinateur correspondants
EP3972247A1 (fr) Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
US10349084B2 (en) Video encoding method using inter-view prediction and device thereof, and video decoding method and device thereof
FR3057130B1 (fr) Procede de codage d'une image, procede de decodage, dispositifs, equipement terminal et programmes d'ordinateurs associes
WO2019008253A1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
EP3272122A1 (fr) Codage d'images par quantification vectorielle
FR3033115A1 (fr) Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2018065698A1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associés
EP3596923A1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'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: 20160624

PLFP Fee payment

Year of fee payment: 3

CA Change of address

Effective date: 20170627

PLFP Fee payment

Year of fee payment: 4

ST Notification of lapse

Effective date: 20190906