CODAGE ET DECODAGE AVEC ÉLIMINATION D'UN OU PLUSIEURS PRÉDICTEURS PRÉDÉTERMINÉS
Arrière-plan 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 par compétition d'images numériques et de séquences d'images numériques.
Plusieurs procédés de codage et de décodage existent pour la transmission d'images. On distingue notamment des grands types de codage tels que le codage dit "intra" où une image est codée de manière autonome, c'est-à-dire sans référence à d'autres images, ou encore le codage dit "inter" qui consiste à coder une image courante par rapport à des images passées de manière à exprimer et ne transmettre que la différence entre ces images. Les procédés de codage du type précité comprennent généralement une étape de codage prédictif selon laquelle des groupes de pixels, appelés blocs ou macroblocs, d'une image courante sont prédits par rapport à d'autres blocs ou macroblocs de référence, c'est-à-dire précédemment codés puis décodés. Dans le cas par exemple de la norme H264/MPEG-4 AVC
(d'après l'anglais "Advanced Video Coding"), le codage prédictif d'un macrobloc consiste à découper les macroblocs selon une pluralité de partitions ayant généralement la forme de blocs de plus petite taille.
Dans le cas du codage Intra 16x16, le macrobloc est considéré comme une unique partition qui est prédite par rapport à un ensemble de quatre prédicteurs spatiaux. Dans le cas du codage Intra 8x8 ou 4x4, chaque bloc de plus petite taille est prédit par rapport à un ensemble de neuf prédicteurs spatiaux comprenant les quatre prédicteurs spatiaux utilisés dans le codage Intra 16x16. Dans le cas du codage inter, le macrobloc peut être partitionné selon les modes 16x16, 8x16, 16x8 et 8x8. Si le mode 8x8 est sélectionné,
chaque bloc 8x8 est à nouveau partitionné selon les modes 8x8, 4x8, 8x4 et 4x4. Chaque bloc courant est comparé à un ou plusieurs blocs d'une ou de plusieurs images de référence. Un prédicteur temporel est alors défini par un vecteur qui décrit le mouvement entre le bloc courant et le bloc de référence. Si par exemple un macrobloc est partitionné en 16 blocs (mode 4x4), 24 vecteurs de déplacement vont être codés. Un tel codage inter peut par ailleurs être affiné en fractionnant le vecteur de déplacement afin d'atteindre une précision qui, au-delà du pixel entier, peut s'étendre au demi-pixel, au quart de pixel, voire au huitième de pixel. Le codage intra ou inter par compétition, tel que mis en œuvre dans la norme H264/AVC, repose ainsi sur la mise en compétition des différents prédicteurs précités, qu'ils soient de type spatiaux ou temporels, dans le but de sélectionner le meilleur prédicteur, c'est-à-dire le prédicteur qui optimisera le codage du bloc considéré selon un critère prédéterminé, par exemple le coût débit/distorsion.
Un inconvénient d'un tel codage prédictif réside dans le nombre important de prédicteurs proposés et il a été constaté que certains codages mis en compétition sont très similaires pour certains contenus de l'image et certains débits utilisés, ce qui augmente inutilement le débit de l'information de compétition induit par ces multiples prédicteurs.
Un autre inconvénient d'un tel codage prédictif, réside dans le fait que le calcul d'un critère de sélection, tel que le coût débit/distorsion, est effectué pour l'ensemble des prédicteurs et est donc très consommateur en termes de puissance de calcul et de temps de traitement de l'unité centrale.
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'une image ou d'une séquence d'images générant un flux
de données comportant des données représentatives d'au moins un groupe de pixels dans une des images, un tel procédé comprenant les étapes de :
- calcul d'un nombre prédéterminé de prédicteurs en relation avec le groupe de pixels, - sélection d'un prédicteur optimal par rapport à un critère de choix prédéterminé,
Le procédé selon l'invention est remarquable en ce qu'il comprend, entre les étapes de calcul et de sélection, une étape d'élimination d'au moins un prédicteur du nombre prédéterminé calculé, qui consiste, pour au moins deux ième et jème prédicteurs, à:
- calculer la différence entre les jème et ième prédicteurs,
- appliquer une transformée à la différence calculée,
- effectuer une opération de quantification sur le résultat de la transformée appliquée, - comparer le résultat de l'opération de quantification à une valeur prédéterminée,
- éliminer le jème prédicteur dans le cas où le résultat de l'opération de quantification est inférieur ou égal à la valeur prédéterminée.
Une telle disposition permet donc d'utiliser moins de prédicteurs pour le codage des blocs et de réduire ainsi de façon satisfaisante le débit de l'information de compétition précitée.
Par ailleurs, une telle disposition permet avantageusement de définir un critère d'élimination optimal de prédicteurs qui ne dépend pas de l'image originale à coder. Par conséquent, un tel critère d'élimination, lorsqu'il est adopté au niveau du codeur, est reproductible au niveau du décodeur.L
Une telle disposition permet enfin, grâce à l'élimination d'un ou de plusieurs prédicteurs prédéterminés, d'obtenir un codage adapté au contenu des prédicteurs et aux différents contenus de l'image.
De façon correspondante, l'invention concerne aussi le décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, le flux comportant des données représentatives d'au moins un groupe de
pixels dans une des images, un tel procédé de décodage comprenant les étapes de :
- lecture d'un indice de prédicteur optimal contenu dans le flux, l'indice étant fonction d'un nombre prédéterminé de prédicteurs en relation avec le groupe de pixels,
- calcul du prédicteur optimal à partir de l'indice lu.
Un tel décodage est remarquable en ce que préalablement à l'étape de lecture, il comprend les étapes consistant à :
- calculer le nombre prédéterminé de prédicteurs, - pour au moins deux ième et jème prédicteurs, calculer la différence entre les jème et ième prédicteurs,
- appliquer une transformée à la différence calculée,
- effectuer une opération de quantification sur le résultat de la transformée appliquée, - comparer le résultat de l'opération de quantification à une valeur prédéterminée,
- éliminer le jème prédicteur dans le cas où le résultat de l'opération de quantification est inférieur ou égal à la valeur prédéterminée, de façon à ce que l'indice de prédicteur optimal lu au cours de l'étape de lecture soit fonction d'un nombre réduit de prédicteurs.
Selon une caractéristique avantageuse des procédés de codage et de décodage précités, l'opération de quantification est déterminée selon un critère d'optimisation du nombre de prédicteurs à éliminer.
Une telle disposition permet ainsi d'adapter au fil de l'eau, c'est- à-dire macrobloc après macrobloc d'une image courante à coder, l'opération de quantification de la transformée de la différence entre les jème et ième prédicteurs, afin d'obtenir, pour chaque macrobloc, une élimination optimale du nombre de prédicteurs.
Selon une autre caractéristique avantageuse des procédés de codage et de décodage précités, l'opération de quantification utilise, comme
paramètre, le pas de quantification qui est lui-même utilisé par une opération de quantification effectuée lors du codage et de décodage.
Une telle disposition permet, grâce à l'élimination d'un ou plusieurs prédicteurs prédéterminés, d'obtenir un codage des indices de prédicteurs adapté au contenu des prédicteurs et aux différents contenus de l'image.
Selon encore une autre caractéristique avantageuse des procédés de codage et de décodage précités, les prédicteurs sont de type spatial ou temporel. Une telle disposition permet ainsi la mise en œuvre de l'élimination des prédicteurs aussi bien pour le codage (respectivement décodage) intra que pour le codage (respectivement décodage) inter.
L'invention concerne encore un dispositif de codage d'une image ou d'une séquence d'images générant un flux de données comportant des données représentatives d'au moins un groupe de pixels dans une des images, un tel dispositif comprenant :
- un module de calcul d'un nombre prédéterminé de prédicteurs en relation avec le groupe de pixels,
- un module de décision pour déterminer un prédicteur optimal par rapport à un critère de choix prédéterminé,
Un tel dispositif de codage est remarquable en ce qu'il comprend en outre :
- un module d'élimination d'au moins un prédicteur du nombre prédéterminé qui comporte des moyens de calcul pour, relativement à au moins deux ième et jème prédicteurs:
• déterminer la différence entre les jème et ième prédicteurs,
• appliquer une transformée à la différence calculée, • effectuer une opération de quantification sur le résultat de la transformée appliquée,
• comparer le résultat de l'opération de quantification à une valeur prédéterminée,
• éliminer le jème prédicteur dans le cas où le résultat de l'opération de quantification est inférieur ou égal à la valeur prédéterminée.
L'invention concerne aussi un dispositif de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, le flux comportant des données représentatives d'au moins un groupe de pixels dans une des images, un tel dispositif comprenant : - un module de lecture d'un indice de prédicteur optimal contenu dans le flux, l'indice étant fonction d'un nombre prédéterminé de prédicteurs en relation avec le groupe de pixels,
- un module de calcul du prédicteur optimal à partir de l'indice lu. Un tel dispositif est remarquable en ce qu'il comprend en outre:
- un module de calcul du nombre prédéterminé de prédicteurs,
- un module d'élimination d'au moins un prédicteur du nombre prédéterminé qui comporte : • des moyens de calcul pour, relativement à au moins deux ième et jème prédicteurs : v déterminer la différence entre les jème et ième prédicteurs, s appliquer une transformée à la différence calculée,
</ effectuer une opération de quantification sur le résultat de la transformée appliquée, s comparer le résultat de l'opération de quantification à une valeur prédéterminée,
s éliminer le jème prédicteur dans le cas où le résultat de l'opération de quantification est inférieur ou égal à la valeur prédéterminée,
• des moyens de transmission pour transmettre audit module de lecture le nombre prédéterminé réduit de prédicteurs obtenu.
L'invention concerne encore un programme d'ordinateur comportant des instructions pour mettre en oeuvre l'un des procédés selon l'invention, lorsqu'il est exécuté sur un ordinateur.
Brève description des dessins
D'autres caractéristiques et avantages apparaîtront à la lecture de deux modes de réalisation préférés décrits en référence aux figures dans lesquelles:
- la figure 1 représente des étapes du procédé de codage selon l'invention,
- la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention,
- la figure 3 représente différentes formes de partitions susceptibles d'êtres sélectionnées dans le dispositif de codage selon l'invention,
- la figure 4 représente des macroblocs partitionnés suite à la sélection des différentes partitions initiales représentées à la figure 3,
- la figure 5 représente les prédicteurs spatiaux utilisés dans le cas du mode de codage intra de la figure 3A, - la figure 6 représente un critère d'optimisation du nombre de prédicteurs à éliminer,
- la figure 7 représente un dispositif de décodage selon l'invention,
- la figure 8 représente des étapes du procédé de décodage selon l'invention,
- la figure 9 représente les prédicteurs temporels utilisés dans le cas du codage inter 4x4, avec résolution au demi-pixel.
Description détaillée d'un premier mode de réalisation 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 séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage selon la norme H.264/MPEG-4 AVC. 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 H.264/MPEG-4 AVC. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes C1 à C12, représentées à la figure 1.
Il est à noter que le procédé de décodage selon l'invention est également implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme H.264/MPEG-4 AVC.
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 CO représenté à la figure 2. Le codage effectué par le codeur CO est par exemple de type Intra.
La première étape C1 , représentée à la figure 1, est la sélection, pour un macrobloc appartenant à une image IE de la séquence d'images à coder, d'une partition particulière plus petite choisie dans un ensemble prédéterminé de partitions de forme prédéterminée. Pour cela, un macrobloc MB appartenant à l'image IE, par exemple de taille 16x16, est appliqué en entrée d'un module SP de sélection de partitions, représenté à la figure 2.
Ce module SP de sélection de partitions utilise par exemple une méthode de choix par compétition exhaustive ou bien encore une méthode de choix à l'aide d'un algorithme avec à-priori. De telles méthodes sont bien connues de l'homme du métier (cf: GJ. Sullivan and T.Wiegand, "Rate-
distortion optimization for video compression", IEEE Signal Proc. Mag., pp.74- 90, 1998J. Elles ne seront donc pas décrites plus avant.
Lesdites partitions sont regroupées dans une base de données BD du codeur CO. De telles partitions peuvent être de n'importe quelle forme. Différentes partitions d'un macrobloc susceptibles d'être sélectionnées par le module de sélection SP, sont représentées à titre d'exemples non limitatifs sur la figure 3.
La figure 3A représente une partition initiale PA1 ayant la forme d'un carré. La figure 3B représente une partition initiale PA1 ayant la forme d'une ligne.
L'étape suivante C2 représentée à la figure 1 est le découpage du macrobloc MB selon une partition initiale PA1 choisie, telle que l'une de celles représentées à la figure 3, en n partitions PA1 , PA2,..., PAn. Un tel découpage est effectué par un module PMB1 de partitionnement de macroblocs représenté à la figure 2 qui utilise un algorithme de partitionnement ou qui effectue le partitionnement selon des partitions prédéterminées.
La figure 4 représente les macroblocs MBpart qui ont été obtenus après découpage selon les partitions initiales PA1 représentées à la figure 3.
La figure 4A représente un macrobloc partitionné MBpart comprenant quatre partitions PA1 PA4, ayant toutes la forme d'un carré et le même nombre de pixels. La figure 4B représente un macrobloc partitionné MBpart comprenant quatre partitions PA1...PA4, ayant toutes la forme d'une ligne et le même nombre de pixels.
Au cours d'une étape C3 représentée à la figure 1, le module de partitionnement PMB1 transmet le macrobloc MBpart qui vient d'être partitionné à un module de calcul CAL1 représenté à la figure 2.
Au cours d'une étape C4 représentée à la figure 1, le module de calcul CAL1 détermine un nombre E1 de prédicteurs spatiaux à utiliser pour calculer les différentes prédictions possibles du macrobloc partitionné MBpart reçu. Dans le cas par exemple où le mode de codage intra est de type 8x8, comme représenté en figure 4A, le module de calcul CAL1 détermine, de façon connue en soi, qu'il existe neuf prédicteurs spatiaux possibles P1, P2..... P9.
En référence à la figure 5, ces neuf prédicteurs spatiaux correspondent respectivement à neuf directions possibles par rapport auxquelles une partition PA1 , PA2, PA3 ou PA4 courante peut être prédite par rapport à une partition de référence contenue dans la même image. Ces neuf directions comprennent classiquement :
- la direction verticale P1 ,
- la direction horizontale P2, - la direction DC, P3, qui est une moyenne des deux directions précédentes,
- plusieurs directions diagonales P4 à P9.
En référence à la figure 2, une telle partition de référence est codée conformément à la norme H.264/MPEG-4AVC, c'est-à-dire qu'elle subit, de façon connue en soi:
- un codage par transformée en cosinus discrète et quantification qui est effectué par un module MTQ1 de transformée et de quantification,
- puis un décodage par transformée en cosinus discrète inverse et quantification inverse, lequel est effectué par le module MTQI1 de transformée et de quantification inverse.
Conformément à l'invention, au cours d'une étape C5, le module de calcul CAL1 transmet l'ensemble E1 des prédicteurs calculés à un module d'élimination de prédicteurs MELP1 dont la fonction est de supprimer les prédicteurs spatiaux redondants de cet ensemble, c'est-à-dire les prédicteurs susceptibles d'aboutir à des codages similaires.
_
A cet effet, le module MELP1 effectue l'algorithme suivant pour l'ensemble E1 contenant les neuf prédicteurs spatiaux P1 Pj,..., P9 précités.
Pour 1≤i≤9 et pour 2≤j≤9, le module MELP1 calcule, au cours d'une étape C6, la différence Pj-Pi.
Au cours d'une étape C7, le module MELP1 applique une transformée à la différence calculée T1 (Pj-Pi).
Une telle transformée est, par exemple, en cosinus discrète telle que celle utilisée pour le codage et le décodage précités des partitions de référence.
En variante, d'autres transformées connues peuvent être utilisées, en particulier les transformées par ondelettes discrète, fractale, etc
Au cours d'une étape C8, le module MELP1 effectue l'opération de quantification suivante sur les coefficients de transformée obtenus: QI(TI(Pj-Pi)).
L'opération de quantification consiste en une matrice à coefficients qui peut être de type psycho-visuelle, plane, etc...
Au cours d'une étape C9, le module MELP1 compare le résultat de la quantification obtenue à une valeur prédéterminée q1 comme suit:
Q1(T1(Pj-Pi))≤q1 Dans la pratique, le module MELP1 calcule l'équation suivante:
Q1opt(T1 (Pj-Pi))=O où Q1opt définit une matrice dont les coefficients sont choisis de façon à obtenir une élimination optimale des prédicteurs de l'ensemble E1.
La matrice de quantification Q1opt utilise un pas de quantification QPIopt qui, selon un mode de réalisation de l'invention, est fixé de manière empirique pour chaque mode de codage intra utilisé.
Il a été évalué après approximation que pour chaque mode intra, QPIopt est compris dans la fourchette suivante:
0≤QP1opt≤QP1+6 où QP1 est le pas de quantification de la quantification utilisée pour le codage et le décodage précités des partitions de référence.
Comme on peut le voir sur la figure 6, dans le cas du mode de codage intra 8x8, en faisant varier QPIopt sur un ensemble d'images, une réduction maximale du débit est obtenue lorsque QP1opt=4. Au cours de l'étape C9 précitée:
- si l'équation Q1opt(T1(Pj-Pi))=0 est vérifiée, le module MELP1 élimine le prédicteur Pj de l'ensemble E1 des prédicteurs E1 res=E1- {Pj},
- si l'équation Q1opt(T1(Pj-Pi))=0 n'est pas vérifiée, c'est- à-dire Q1opt(T1 (Pj-Pi))^O, le module MELP1 conserve en mémoire le prédicteur Pj.
Au cours d'une étape C10, un module de calcul de prédiction PRED1 (figure 1) calcule les prédictions spatiales possibles de chaque partition PA1 PAn du macrobloc MBpart, par rapport un ensemble restreint de prédicteurs E1 res comprenant uniquement les prédicteurs qui n'ont pas été éliminés précédemment. Une telle disposition a ainsi pour principal avantage de permettre d'obtenir une réduction du coût de l'indice du ou des prédicteurs, lequel indice est destiné à être transmis au décodeur DO représenté à la figure 7.
Une fois les différentes prédictions possibles calculées par le module de calcul de prédiction PRED1 , au cours d'une étape C11 représentée à la figure 1 , un module de décision DCN1 , représenté à la figure 2, parcourt les macroblocs partitionnés de l'image IE et choisit, dans cette étape C11 , le prédicteur utilisé pour coder chacun de ces macroblocs. Parmi les prédictions possibles pour un macrobloc, le module de décision DCN1 choisit la prédiction optimale selon un critère débit distorsion bien connu de l'homme du métier.
Pour un macrobloc MB courant à coder, le module de décision DCN1 met en compétition les prédicteurs de l'ensemble restreint de prédicteurs E 1 res.
Chaque macrobloc prédit MBpréd est ensuite codé, au cours d'une étape C12, comme dans la norme H.264/MPEG-4 AVC.
Une fois ce codage structurel effectué par le module de décision
DCN1 , les coefficients de résidus s'ils existent, correspondants aux blocs de l'image IE, sont envoyés au module MTQ1 de transformée et de quantification, pour subir des transformées en cosinus discrètes puis une quantification. Les tranches de macroblocs avec ces coefficients quantifiés sont ensuite transmises au module CE de codage entropique, pour produire, avec les autres images de la séquence vidéo déjà codées de la même façon que l'image IE, un flux vidéo F, binaire, codé selon l'invention.
Le flux binaire F ainsi codé est transmis par un réseau de communication, à un terminal distant. Celui-ci comporte le décodeur DO représenté à la figure 7.
Le flux binaire F est d'abord envoyé à un module DE de décodage entropique, décodage inverse de celui effectué par le module de codage entropique CE représenté à la figure 2. Puis, pour chaque macrobloc d'image à reconstruire, les coefficients décodés par le module DE sont envoyés à un module MQTI2 de quantification inverse et de transformée inverse. Un module Rl de reconstruction d'image reçoit alors des données décodées correspondant aux données produites par le module DCN1 (figure 2) à l'étape C12 de codage selon l'invention, aux erreurs de transmission près. Le module Rl met en œuvre des étapes D1 à D11 du procédé de décodage selon l'invention, telle que représentées à la figure 8. La première étape D1 est le décodage de structures de données codées dans une tranche d'un macrobloc courant de l'image IE à décoder. De façon connue en soi, le module de reconstruction Rl détermine à partir des données de ladite tranche de macrobloc:
- le type de codage desdites données, Intra ou Inter: Intra dans le mode réalisation décrit,
- le type de partitionnement du macrobloc à reconstruire, Intra 4x4, 8x8, ligne, etc.: Intra 8x8 dans le mode de réalisation décrit.
- l'indice du prédicteur optimal tel que sélectionné par le module de décision DCN1 à l'étape C11. L'étape suivante D2 représentée à la figure 8 est le découpage du macrobloc courant à décoder, conformément au partitionnement déterminé à l'étape D1. A cet effet, un module PMB2 de partitionnement de macroblocs, qui ressemble en tous points à celui représenté à la figure 2, découpe le macrobloc en une pluralité de n partitions PA1 , PA2,..., PAn. A la suite de l'étape de partitionnement D2, au cours d'une étape
D3 représentée à la figure 8, le module de partitionnement PMB2 transmet le macrobloc courant à décoder et qui vient d'être partitionné en n partitions, à un module de calcul CAL2 représenté à la figure 7, qui est en tous points semblable au module de calcul CAL1 du codeur CO de la figure 1. Au cours d'une étape D4 représentée à la figure 8, le module de calcul CAL2 détermine le nombre E2 de prédicteurs spatiaux à utiliser pour calculer les différentes prédictions possibles du macrobloc partitionné MBpart reçu.
Au cours d'une étape D5, le module de calcul CAL2 transmet l'ensemble E2 des prédicteurs calculés à un module d'élimination de prédicteurs MELP2, qui est en tous points semblable au module d'élimination de prédicteurs MELP1 du codeur CO de la figure 1.
Au cours des étapes D6 à D9, le module d'élimination de prédicteurs MELP2 effectue le même algorithme que celui effectué par le module MELP1 du codeur CO précité, pour supprimer les prédicteurs spatiaux redondants de l'ensemble E2, c'est-à-dire les prédicteurs susceptibles d'aboutir à des décodages similaires, et obtenir un ensemble réduit E2res de prédicteurs.
Au cours d'une étape D10 représentée à la figure 8, un module de décision DCN2, représenté à la figure 7, parcourt les macroblocs partitionnés et choisit un prédicteur pour décoder chacun de ces macroblocs.
Parmi les prédictions possibles pour un macrobloc, le module de décision DCN2 choisit la prédiction optimale selon un critère débit distorsion bien connu de l'homme du métier.
Pour un macrobloc MB courant à décoder, le module de décision DCN2 met en compétition les prédicteurs de l'ensemble restreint de prédicteurs E2res.
Chaque macrobloc prédit est ensuite décodé, au cours d'une étape D11 , comme dans la norme H.264/MPEG-4 AVC.
Une fois tous les macroblocs de l'image IE décodés, le module Rl de reconstruction d'image fournit en sortie du décodeur DO, une image ID correspondant au décodage de l'image IE.
Compte tenu du fait que l'algorithme d'élimination de prédicteurs effectué au décodeur DO est en tous point le même que celui effectué au codeur CO, le coût de l'information induit par les prédicteurs utilisés s'en trouve fortement réduit.
Description détaillée d'un second mode de réalisation
Le second mode de réalisation décrit ci-dessous se distingue du précédent, par le fait que le dispositif de codage CO représenté à la figure 2 effectue un codage de type Inter au lieu d'un codage de type intra.
Un but du second mode de réalisation est de parvenir, pour chaque bloc à coder, à éliminer la résolution subpixellique de façon à réduire le coût des vecteurs de déplacement considérés.
De façon similaire à l'étape C1 précédente du mode intra, le module SP de sélection sélectionne des partitions qui, dans l'exemple décrit, ont toutes la forme d'un bloc.
De façon similaire à l'étape C2 précédente du mode intra, un macrobloc courant est découpé selon n partitions, par exemple en seize blocs 4x4. L'étape suivante C3 est la même que celle effectuée lors du codage intra précité.
A l'étape C4 suivante, un module de calcul CAL1 du module de prédiction PRED1 détermine le nombre de prédicteurs non plus spatiaux, mais temporels, à utiliser pour calculer les différentes prédictions possibles d'un bloc courant 4x4. De façon connue en soi, le module de calcul CAL1 détermine les différentes directions prises par le vecteur de déplacement qui décrit le mouvement entre le bloc courant et un bloc de référence Bref représenté figure 9. Le bloc de référence Bref appartient à une image de référence, par exemple l'image précédente de la séquence. Dans le cas par exemple où le vecteur de déplacement est fractionné au demi-pixel, de façon connue en tant que telle, le module de calcul CAL1 calcule au total, pour un pixel de référence, les neuf prédicteurs suivants, tels que représentés à la figure 9:
- P'1 : vecteur au pixel entier,
- P'2: vecteur au Vz pixel dans la direction verticale montante,
- P'3: vecteur au Vz pixel dans la direction verticale descendante,
- P'4: vecteur au Vz pixel dans la direction horizontale droite, - P'5: vecteur au Vz pixel dans la direction horizontale gauche,
- P'6: vecteur au Vz pixel dans la direction diagonale droite montante,
- P7: vecteur au Vz pixel dans la direction diagonale droite descendante,
- P'8: vecteur au Vz pixel dans la direction diagonale gauche montante,
- P'9: vecteur au Vz pixel dans la direction diagonale gauche descendante.
De façon similaire à l'étape C5 précitée, le module de calcul CAL1 transmet l'ensemble E'1 des vecteurs P'1 à P'9 calculés au module d'élimination de prédicteurs MELP1.
De façon similaire aux étapes C6 à C9 du mode Intra, le module d'élimination MELP1 effectue l'algorithme suivant pour l'ensemble E'1 contenant les neuf prédicteurs temporels P'1 , .... P1J1... , P'9 précités.
Dans la pratique, le module MELP1 calcule l'équation suivante:
Q'1opt(T'1(P'j-P'1 ))=0 pour 2≤j≤n où Q'iopt définit une matrice dont les coefficients sont choisis de façon à obtenir une élimination optimale de l'ensemble E'1 des vecteurs au demi-pixel.
La matrice de quantification Q'iopt utilise un pas de quantification QP'iopt qui, selon un mode de réalisation de l'invention, est fixé de manière empirique pour chaque mode de codage inter utilisé.
Il a été évalué après approximation que, dans le cas du mode inter 4x4, avec résolution au demi-pixel, une compression maximale était obtenue avec QP'1opt=17.
Au cours de l'étape C9 précitée:
- si l'équation Q'1opt(T'1(P'j-P'1))=0 est vérifiée M fois, par exemple pour la moitié des vecteurs au demi-pixel considérés, le module MELP1 élimine de l'ensemble E'1 tous les prédicteurs P'2 à P'9 au demi-pixel, de façon à obtenir un ensemble réduit de prédicteurs à savoir un ensemble E'1 res=P'1 qui est réduit au vecteur P'1 au pixel entier,
- si l'équation Q'1opt(T'1(P'j-P'1))=0 n'est pas vérifiée, le module MELP1 conserve en mémoire le prédicteur P'j. Les étapes suivantes de choix de prédiction optimale C11 et de codage C12 sont respectivement semblables aux étapes précitées C11 et C12 du mode Intra et, pour cette raison, ne seront pas décrites à nouveau.
Le module de reconstruction Rl du décodeur DO met ensuite en oeuvre des étapes D1 à D11 similaires à celles du procédé de décodage qui a été décrit ci-dessus pour le mode Intra, mais adapté cette fois au mode Inter.
La première étape D1 est le décodage de structures de données codées dans une tranche d'un macrobloc courant de l'image IE à décoder. De façon connue en soi, le module de reconstruction Rl détermine à partir des données de ladite tranche de macrobloc: - le type de codage desdites données Inter, dans le mode de éalisation décrit,
- le type de partitionnement du macrobloc à reconstruire, Inter 4x4 dans le mode réalisation décrit,
- l'indice du vecteur de déplacement optimal tel que sélectionné par le module de décision DCN1 à l'étape C11.
Au cours de l'étape suivante D2, le module PMB2 de partitionnement de macroblocs découpe le macrobloc en seize blocs 4x4.
A la suite de l'étape de partitionnement D2, au cours d'une étape D3 similaire à celle du mode Intra précitée, le module de partitionnement PMB2 transmet le macrobloc courant à décoder et qui vient d'être partitionné en seize partitions, au module de calcul CAL2 précité.
Le module de calcul CAL2 détermine au cours d'une étape D4 le nombre E'2 de prédicteurs temporels à utiliser pour calculer les différentes prédictions possibles du macrobloc partitionné MBpart reçu. Au cours d'une étape D5, le module de calcul CAL2 transmet l'ensemble E'2 des neufs vecteurs de déplacement P'1 à P'9 calculés au module d'élimination de prédicteurs MELP2 précité.
Au cours des étapes D6 à D9, le module d'élimination de prédicteurs MELP2 effectue le même algorithme que celui effectué par le module MELP1 du codeur CO précité, pour supprimer les vecteurs au demi- pixel de l'ensemble E'2, et obtenir ainsi un ensemble réduit E2res qui ne comprend plus que le vecteur au pixel entier P'1.
Au cours d'une étape D10, le module de décision DCN2 parcourt les macroblocs partitionnés et choisit un vecteur pour décoder chacun de ces macroblocs. Parmi les prédictions possibles pour un
macrobloc, le module de décision DCN2 choisit le vecteur de déplacement optimal selon un critère débit distorsion bien connu de l'homme du métier.
Pour un macrobloc MB courant à décoder, le module de décision DCN2 met en compétition les vecteurs de l'ensemble restreint de prédicteurs E'2res. Compte tenu du fait que E'2res ne contient que le vecteur P'1 , le module de décision DCN2 sélectionne ce vecteur par défaut.
Chaque macrobloc prédit est ensuite décodé, au cours de l'étape D11 , comme dans la norme H.264/MPEG-4 AVC.
Une fois tous les macroblocs de l'image IE décodés, le module Rl de reconstruction d'image fournit en sortie du décodeur DO, une image ID correspondant au décodage de l'image IE.
Compte tenu du fait que l'algorithme d'élimination de prédicteurs effectué au décodeur DO est en tous point le même que celui effectué au codeur CO, le coût de l'information induit par les vecteurs au demi-pixel utilisés s'en trouve fortement réduit.
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. Ainsi par exemple, les opérations de quantification Q1
(respectivement Q2) utilisées pour éliminer un certain nombre de prédicteurs calculés pour le codage (respectivement le décodage) peuvent subir des posttraitements au même titre que l'opération de quantification effectuée au moment du codage (respectivement du décodage). Un exemple d'un tel post- traitement consiste par exemple à mettre à zéro l'ensemble des coefficients de la matrice de quantification lorsque les coefficients sont en majorité égaux à zéro.
S'agissant du second mode de réalisation, il est également possible de prendre en compte, en plus des vecteurs de déplacement au demi-pixel, les vecteurs de déplacement au quart de pixel et/ou au huitième de pixel, ..., et/ou au nième de pixel. Le choix d'un ou de plusieurs types de
fractionnement du vecteur de déplacement sera effectué en fonction de la résolution de l'image à coder.