PROCEDE ET DISPOSITIF DE PREDICTION INTER-IMAGE ET PROCEDE ET APPAREIL DE CODAGE CORRESPONDANTS
1. Domaine de l'invention
L'invention se rapporte au domaine général du codage d'images et plus particulièrement à celui de la prédiction inter-image.
2. Etat de l'art
La prédiction inter-image consiste à tirer avantage des redondances temporelles qui existent entre des images consécutives d'une vidéo pour obtenir des taux de compression élevés de cette vidéo.
Le principe de la prédiction inter-image consiste à diviser une image courante en bloc ou macrobloc. Ensuite, le codeur trouve un bloc similaire dans une autre image (précédente ou future) de la vidéo. Cette autre image est habituellement appelée image de référence. Le codeur encode alors un vecteur de mouvement qui définit la position du bloc trouvé dans ladite (lesdites) image(s) de référence à partir du bloc à prédire. Le codeur calcule alors la différence entre ces deux blocs et code l'erreur de prédiction. Le vecteur de mouvement et l'erreur de prédiction sont alors émis au décodeur qui peut ainsi reconstruire le bloc.
Il est connu de très nombreux schémas de codage/décodage vidéo qui utilisent ce type de méthode. On peut citer, notamment, les standards MPEG- 2 (ISO/IEC JTC1 /SC29/WG1 1 MPEG00/ October 2000, Coding of moving pictures and audio), MPEG-4/AVC (T. Wiegand, G.J. Sullivan, G. Bjontegaard, and A. Luthra, "Overview of the H.264/AVC" Circuits and Systems for Video Technology, IEEE Transactions, Vo 13,7, 560 - 576, July 2003, ou encore HEVC (ITU-T Q.6/SG et ISO/IEC Moving Picture Experts Group (ISO/IEC JTC 1/SC 29/WG 1 1 ).
La définition des blocs (ou plus généralement des zones) pour prédire un bloc sont prépondérantes pour l'efficacité de codage. En effet, si les contenus du bloc courant et du bloc de prédiction sont très différents, l'erreur de prédiction sera importante ce qui induira un nombre important de bits pour coder cette erreur de prédiction.
Il est donc nécessaire de minimiser les risques de choisir des zones de prédiction éloignées en terme de contenu du bloc à prédire.
Par ailleurs, dans un contexte de transmission entre un émetteur et un récepteur, le coût de codage des éléments de syntaxe requis par le décodeur distant pour reconstruire une image prédite est relativement important. Par exemple, dans le cas de la norme MPEG-4/AVC, les images de référence sont regroupées dans deux listes : celle regroupant des images (décodées ou reconstruites) antérieures temporellement à une image à laquelle appartient le bloc à prédire et celle regroupant des images (décodées ou reconstruites) postérieures temporellement. Par la suite, lorsque l'on parlera d'images antérieures et/ou postérieures temporellement on sous-entendra que ces images sont décodées et reconstruites. Ainsi, pour désigner un bloc d'une image de référence, il est nécessaire de transmettre à un décodeur une information pour designer l'une des deux listes d'images, une information pour indiquer un index d'une image (de référence) dans cette liste et une dernière information pour indiquer les coordonnées du bloc dans l'image de référence.
3. Résumé de l'invention
L'invention a pour but de pallier au moins un des inconvénients de l'art antérieur et notamment d'améliorer l'efficacité des procédés de codage interimage.
A cet effet, l'invention concerne un procédé de prédiction d'un bloc de pixels d'une image qui comprend :
- une étape de définition d'un voisinage causal dudit bloc à prédire, - une étape de recherche de patchs candidats au cours de laquelle un ensemble de patchs candidats est formé d'au moins un patch appartenant à une image autre que l'image à laquelle appartient le bloc à prédire, chaque patch étant formé d'un bloc et d'un voisinage qui est causal de ce bloc et
- une étape de prédiction de bloc au cours de laquelle le bloc est prédit à partir, au moins, du bloc d'au moins un patch dudit ensemble de patchs candidats.
Ainsi, le procédé réduit les éléments de syntaxe qu'il est nécessaire de transmettre au décodeur tels que par exemple ceux relatifs à la norme MPEG- 4/AVC.
Selon un mode de réalisation, au cours de l'étape de prédiction de bloc, le bloc est prédit à partir d'un bloc d'un patch dudit ensemble de patchs candidats, ledit bloc étant proche, en terme de contenu, du bloc à prédire.
Selon un autre mode de réalisation, l'étape de prédiction de bloc comporte
- une sous-étape de définition de dictionnaire au cours de laquelle au moins un dictionnaire est formé d'au moins un patch dudit ensemble de patchs candidats,
- une sous-étape de prédiction de voisinage au cours de laquelle, pour chaque dictionnaire, il est déterminé une prédiction du voisinage causal du bloc à prédire par une combinaison linéaire pondérée de voisinages des patchs de ce dictionnaire, des paramètres de pondération qui optimisent la prédiction sont alors retenus, et
- une étape de prédiction de bloc au cours de laquelle le bloc de pixels de l'image est prédit par une combinaison linéaire pondérée des pixels des blocs des patchs d'un dictionnaire, les paramètres de pondération de ladite combinaison linéaire étant ceux optimaux qui ont été déterminés au cours de l'étape de prédiction de voisinage.
Selon ce mode de réalisation, la prédiction du bloc est déterminée par une combinaison linéaire de blocs appartenant à un dictionnaire. Les paramètres de pondération de cette combinaison linéaire sont ceux qui permettent d'obtenir la meilleure prédiction du voisinage causal du bloc à prédire au sens d'une distance. Ainsi, l'erreur de prédiction du bloc est réduite car les paramètres de pondération sont définis pour minimiser une erreur de prédiction d'une zone (voisinage) située autour du bloc à prédire et non directement une erreur de prédiction de ce bloc favorisant ainsi une continuité du contenu des images.
Par ailleurs, comme les voisinages sont causaux, le décodeur est en mesure de calculer les paramètres de pondération utilisés pour la prédiction du bloc côté codeur. Ceci évite la transmission de ces paramètres de pondération et ainsi favorise l'efficacité de codage.
La présente invention concerne également un procédé de codage/décodage qui met en œuvre ce procédé ainsi qu'un dispositif et un appareil de codage/décodage de séquence d'images qui comportent des moyens pour mettre en œuvre le procédé. Elle concerne aussi un signal dont la trame est particulière car elle porte une information spécifique qui influence le fonctionnement dudit dispositif et/ou appareil de codage et/ou décodage.
4. Listes des figures
L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en œuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles :
- la Figure 1 présente un diagramme des étapes du procédé de prédiction d'un bloc de pixels d'une image selon la présente invention;
- la Figure 2 donne un exemple de définition de voisinage causal;
- la Figure 3 illustre un mode de réalisation de l'étape de prédiction de bloc du procédé;
- la Figure 4 illustre un autre mode de réalisation de l'étape de prédiction de bloc du procédé;
- la Figure 5 illustre le cas où les patchs d'un dictionnaire appartiennent à une même image ;
- la Figure 6 illustre le cas où les patchs d'un dictionnaire n'appartiennent pas tous à une même image ;
- la Figure 7 illustre le cas où de dictionnaires définis à partir de premier patch ;
- la Figure 8 illustre le cas où des patchs d'un dictionnaire n'appartiennent pas tous à une même image ;
- la Figure 9 représente schématiquement un exemple d'architecture d'un dispositif mettant en œuvre l'invention. 5. Description détaillée de l'invention
La Figure 1 présente un diagramme des étapes du procédé de prédiction d'un bloc de pixels d'une image selon la présente invention.
Le procédé comporte une étape 1 de définition d'un voisinage V causal d'un bloc s à prédire d'une image courante lc.
La Figure 2 donne un exemple de définition de voisinage causal. Selon cet exemple, le voisinage V est formé, par exemple, de trois blocs situés à gauche et au-dessus du bloc à prédire B. Un voisinage est un vecteur de N valeurs, chaque valeur correspondant à la valeur d'un pixel appartenant à ce voisinage. L'invention n'est en rien limitée à cette définition de voisinage mais au contraire s'étend à toute définition de voisinage causal c'est-à-dire à tout voisinage qui est disponible au niveau d'un décodeur préalablement au décodage du bloc courant à prédire.
Par la suite, nous emploierons le terme patch, noté Xk , pour désigner un regroupement des pixels d'un bloc Bk et des pixels d'un voisinage Vk de ce bloc Bk. Le voisinage Vk est causal de ce bloc Bk et a une forme identique à celle du voisinage V situé autour du bloc à prédire B. La causalité d'un voisinage par rapport à un bloc de pixels indique que les valeurs de pixels sont connues préalablement à la prédiction de ce bloc. On note également par la suite, le patch X, pour désigner le regroupement des pixels du bloc à prédire B et des pixels du voisinage V.
De retour à la Figure 1 , le procédé comporte également une étape 2 de recherche de patchs candidats au cours de laquelle un ensemble de patchs candidats PS est formé d'au moins un patch xk appartenant à une image autre que l'image à laquelle appartient le bloc à prédire. Le procédé comporte, de plus, une étape 3 de prédiction de bloc au cours de laquelle le bloc B est prédit à partir, au moins, du bloc d'au moins un patch dudit ensemble PS.
Selon un mode de réalisation, chaque patch xk de l'ensemble de patchs candidats est tel que son voisinage Vk est proche, en terme de contenu, du voisinage V du patch X.
En termes mathématiques, un patch Xk de l'ensemble de patchs candidats est tel qu'il vérifie l'équation (1 ) :
Ainsi, l'ensemble PS regroupe les N patchs candidats qui minimisent la norme euclidienne donnée à l'équation (1 ). Des distances autres que la
norme euclidienne peuvent être utilisées sans pour cela sortir de la portée de l'invention.
Selon un mode de réalisation, au cours de l'étape de recherche de patchs candidats, pour chaque dite autre image est considéré un nombre prédéterminé de patchs candidats.
Ce mode de réalisation est avantageux car en limitant le nombre de patchs candidats par image et le nombre d'images, la complexité de calcul de l'étape de prédiction de voisinage (et de bloc) est fortement réduite tout en préservant l'homogénéité du contenu souvent présente dans une image ou dans des images consécutives.
Selon une variante, un seul patch candidat est ainsi choisi par image. Selon un mode de réalisation, sont seuls considérés comme patchs candidats les patchs qui appartiennent à une zone prédéterminée SW définie sur une ou plusieurs images.
Selon une variante, la zone prédéterminée (ou une partie d'elle appelée sous-zone) est définie aux alentours d'un patch.
Ainsi, la zone prédéterminée SW peut-être définie sur une seule image sous la forme d'une région spatiale mais peut également avoir un caractère temporel c'est-à-dire que cette zone prédéterminée SW est définie sur plusieurs images, images qui peuvent ou non être temporellement consécutives.
Par exemple, cette zone, référencée SW, est définie sur la Figure 2, d'une part, par une sous-zone d'une image /c--1 antérieure temporellement à l'image lc (à laquelle appartient le bloc à prédire), ladite sous-zone étant centrée autour du patch X ( dont son co-localisé est représenté sur cette image en pointillé) et, d'autre part, par une sous-zone d'une autre image lc+1 postérieure temporellement à l'image Ic. Au travers de cet exemple, on comprend que la zone prédéterminée SW peut être composée d'une ou plusieurs sous-zone(s), chaque sous-zone peut-être définie autour d'un co- localisé de ce patch X, éventuellement centrée autour de lui, et que ces sous- zone peuvent être situées dans différentes images antérieures et/ou postérieures à l'image à laquelle appartient le bloc à prédire.
Selon un mode de réalisation, illustré à la Figure 3, au cours de l'étape 3 de prédiction de bloc, le bloc B est prédit à partir du bloc Bopt d'un patch dudit ensemble de patchs candidats, ledit bloc étant proche, en terme de contenu, du bloc à prédire.
En termes mathématiques, cette prédiction du bloc à prédire B consiste à déterminer un patch de l'ensemble PS qui minimise une distance entre les valeurs des pixels du bloc Bk de ce patch et les valeurs des pixels du bloc B (mise en correspondance de bloc).
Ce mode de réalisation est particulièrement avantageux car le coût de codage de l'index du bloc Bopt ou du patch auquel il appartient dans l'ensemble PS est réduit par rapport au coût de codage des éléments de syntaxe des systèmes de codages et/ou décodage habituels.
Selon un mode de réalisation, cette distance est exprimée dans l'espace euclidien par une minimisation, au sens des moindres carrés, exprimée par l'équation (2) :
opt = argmin
k\\B -
avec k G {0; K— 1} (2) Selon ce mode de réalisation, une information (index) désignant le patch auquel appartient le bloc de prédiction B
opt doit être connue d'un décodeur distant. En effet, un tel décodeur peut reconstruire l'ensemble des patchs candidats PS et peut, à partir de cette information, retrouver quel est le patch de cet ensemble auquel appartient ce bloc B
opt. A cet effet, un signal porteur de cette information de désignation de ce patch est émis à destination d'un décodeur destiné à utiliser ce bloc de prédiction.
Selon un mode de réalisation, illustrée à la Figure 4, l'étape 3 de prédiction de bloc comporte une sous-étape 31 de définition de dictionnaire au cours de laquelle L dictionnaires Dl sont formés (L est supérieur ou égal à 1 ). Chaque dictionnaire est formé d'au moins un patch de l'ensemble de patchs candidats PS.
Le nombre L de dictionnaires et le nombre de patchs par dictionnaire sont des valeurs connues a priori.
Selon une variante, le nombre K de patchs de chaque dictionnaire est commun à tous les dictionnaires.
Selon une variante, le nombre K est variable selon le block à prédire.
Dans ce cas, ce nombre K peut-être optimisé pour chaque bloc à prédire. Il est alors nécessaire, dans un contexte de transmission entre émetteur/récepteur d'émettre ce nombre au récepteur pour chaque bloc à prédire.
Un dictionnaire peut regrouper des patchs choisis aléatoirement parmi ceux de l'ensemble de patch candidat PS.
L'étape de prédiction de bloc comporte également une sous-étape 32 de prédiction de voisinage. Au cours de cette sous-étape, pour chaque dictionnaire Dl il est déterminé une prédiction du voisinage causal V du bloc à prédire B par une combinaison linéaire pondérée des voisinages Vk des patchs Xk de ce dictionnaire, des paramètres de pondération qui optimisent la prédiction sont alors retenus.
En termes mathématiques, la prédiction du voisinage causal V du bloc à prédire B par une combinaison linéaire pondérée des voisinages Vk des patchs Xk d'un dictionnaire Di consiste à déterminer des paramètres de pondération Wm avec m G {0; K - 1} qui minimisent une distance entre les valeurs pondérées des pixels des voisinages Vk des patchs de ce dictionnaire Dl et les valeurs des pixels du voisinage V.
Selon un mode de réalisation, cette distance est exprimée dans l'espace euclidien par une minimisation, au sens des moindres carrés, exprimée par l'équation (3) :
opt = ar
sous la contrainte∑
m = 1 (3) avec A
1 une matrice de dimension MxK qui regroupent les valeurs des pixels de K voisinages V
k des patchs du dictionnaire D
l, les M valeurs de pixels de chaque voisinage sont regroupées pour former une colonne de cette matrice.
K paramètres de pondération sont ainsi optimisés, en pratique par l'équation (4) :
avec COi une matrice de covariance locale (en référence avec le voisinage V) des valeurs des pixels de la matrice A1 et / est un vecteur colonne unité.
Les K paramètres de pondération optimaux Wgpt sont donc obtenus pour prédire le voisinage V par une combinaison linéaire des K voisinages Vk du dictionnaire Dl.
Selon un mode de réalisation, au cours de l'étape de prédiction de voisinage, L dictionnaires Di avec l G {0; L - 1} ayant été considérés et des paramètres de pondération w vt ayant été déterminés pour chacun de ces dictionnaires, les paramètres de pondération W utilisés pour prédire le bloc B sont ceux qui procurent la prédiction la plus proche, au sens d'un critère, dudit bloc à prédire.
Selon un mode de réalisation, ce critère est une erreur quadratique entre le bloc prédit reconstruit (après codage et décodage) et le bloc à prédire.
En termes mathématiques, les paramètres de pondération optimaux W sont alors ceux donnés par l'équation (5) :
2
min^B - AlWopt \\ sous la contrainte∑m Wopt = 1 (5)
Selon un autre mode de réalisation, le critère utilisé est un critère débit- distorsion (Rate-Distorsion en anglais) particulièrement adapté au contexte de compression vidéo.
En termes mathématiques, les paramètres de pondération optimaux W sont alors ceux donnés par l'équation (6) :
min^SSE1 + ÀRl) (6)
avec SSE1 une mesure au sens des moindres carrés de l'erreur de reconstruction entre le bloc à prédire et le bloc prédit reconstruit (bloc décodé), Rl le coût de codage du bloc (erreur de prédiction et autres éléments de syntaxe), et λ le Lagrangien.
De plus, l'étape de prédiction de bloc comporte une sous-étape 33 de prédiction de bloc au cours de laquelle le bloc B est prédit par une combinaison linéaire pondérée des pixels des blocs Bk des patchs Xk du dictionnaire Dl , les paramètres de pondération (W si plusieurs dictionnaires formés ou w vt dans le cas d'un seul dictionnaire) étant ceux qui ont été déterminés au cours de l'étape de prédiction du voisinage causal du bloc à prédire.
En termes mathématiques, la prédiction B du bloc B est donnée par l'équation (7) :
B = A * W (7)
avec A est une matrice de dimension PxK qui regroupent les P valeurs des pixels des K blocs Bk, et W les paramètres de pondération.
Dans un contexte de transmission entre un émetteur et un récepteur, aucune information particulière n'est à émettre au récepteur (décodeur) pour prédire le bloc B dans le cas où le nombre de paramètres à utiliser est préalablement connu du décodeur et dans le cas d'un seul dictionnaire construit sur la base uniquement de voisinage. En effet, le procédé de prédiction peut-être mis en œuvre par le récepteur sans information particulière car, d'une part, les voisinages utilisés par la prédiction sont causaux, ce qui permet au récepteur de retrouver les blocs des patchs pour reconstruire la matrice A et, d'autre part, en mettant en œuvre la prédiction du voisinage V, les K paramètres de pondération alors obtenus sont identiques à ceux (W ) obtenus lors de la sous-étape de prédiction de voisinage alors mise en œuvre par l'émetteur (codeur).
On comprend ainsi qu'un procédé de codage mettant en œuvre ce procédé de prédiction procure des gains de codage significatifs comparés aux techniques traditionnelles de codage inter-image telles que celles utilisées par exemple dans H.264/AVC.
Selon une variante de ce mode de réalisation qui correspond au cas de plusieurs dictionnaires, une information spécifique qui identifie le dictionnaire utilisé doit être connue d'un décodeur pour reconstruire le bloc à prédire. A cet effet, un signal porteur d'une information spécifique qui identifie le dictionnaire à partir duquel est issu la prédiction du bloc à prédire. Ce signal est destiné à être reçu par un décodeur configuré pour utiliser ce dictionnaire.
Selon un mode de réalisation, illustré par la Figure 5, les K patchs Xk avec k G {0; K— 1} d'un dictionnaire Dl sont tous situés dans une même image If autre que l'image courante Ic. L'image If peut-être antérieure ou postérieure temporellement à l'image lc lorsque ces deux images appartiennent à une même séquence d'images.
Selon un mode de réalisation, illustré par la Figure 6, les K patchs Xk avec k e {0; K - l} d'un dictionnaire Dl sont situés dans différentes images. Selon l'exemple de la Figure 6, le dictionnaire Dl comporte (K-1 ) patchs Χί , ... , XK-i dans une image lc_x antérieure temporellement à l'image courante Ic et un patch X0 dans une image Ic+1 postérieure temporellement à l'image courante lc.
Ce mode de réalisation est avantageux car il permet de multiplier les possibilités de patchs dans un même dictionnaire qui peuvent ainsi appartenir à différentes images. Ceci permet de diminuer d'avantage l'erreur de prédiction du bloc à prédire car le procédé profite alors de redondances temporelles entre images d'une même vidéo.
Ces deux modes de réalisation, illustrés par les Figures 5 et 6, ne limitent en rien la définition de dictionnaire. Ils ont été donnés pour illustrer qu'un dictionnaire peut-être formé par des patchs situés dans une ou plusieurs image autre que celle à laquelle appartient le bloc à prédire.
Selon un mode de réalisation, au cours de l'étape de définition de dictionnaire, il est déterminé, pour chaque dictionnaire Dl à définir, d'une part un premier patch X0 parmi les patchs de l'ensemble PS, ledit premier patch est proche, en terme de contenu, du patch X et, d'autre part, (K-1 ) patchs Xk parmi les patchs de l'ensemble PS, chacun d'entre eux étant proche, en terme de contenu, de ce premier patch X0 . Le dictionnaire Dl regroupe alors le premier patch X0 et les (K-1 ) patchs Xk .
La proximité des contenus de deux patchs est quantifiée par une distance calculée entre les valeurs des pixels des patchs. Cette distance est, par exemple, la somme des différences absolues entre les pixels de ces deux patchs.
Selon un mode de réalisation, la zone prédéterminée SW est définie par au moins une sous-zone qui est localisée aux alentours d'un premier patch. Elle peut, par exemple, être centrée autour de ce premier patch.
Cette variante est avantageuse car elle permet de fortement limiter la complexité de calcul de l'étape de prédiction de voisinage tout en préservant l'homogénéité du contenu souvent présente dans une image.
Selon un mode de réalisation, la position d'un premier patch X0 d'un dictionnaire Dl dans une image (autre que l'image à laquelle appartient le bloc à prédire) est donnée par une information de déplacement d définie à partir du patch X.
L'information de déplacement d peut, selon un mode de réalisation, être obtenue par une méthode de mise en correspondance de bloc {block matching en anglais) qui permet de déterminer un déplacement de chaque premier patch par rapport au patch X. Cette méthode de mise en correspondance de bloc est similaire à celle décrite en relation avec la Figure 3 en considérant que les blocs sont formés de l'ensemble des pixels des patchs et non plus seulement les pixels des blocs de ces patchs comme cela est décrit dans le mode de réalisation de l'étape 3 de prédiction de bloc.
Dans un contexte de transmission entre émetteur et décodeur, l'information de déplacement doit être transmise au décodeur et ce dans le but que ce décodeur puisse déterminer quel a été le premier patch utilisé. Il n'est pas nécessaire de transmettre d'autres informations pour déterminer les autres (K-1 ) patchs du dictionnaire car le décodeur est en mesure de les déterminer en mettant en œuvre des opérations similaires à celles décrites ci- dessus.
La Figure 7 illustre le cas où L dictionnaires ont été définis, chacun à partir d'un premier patch. On voit ainsi que chacun des L premiers patch X0 l avec / G {0; L - 1} sont obtenus à partir du déplacement du patch X (ou plus exactement, virtuellement de son co-localisé X' dans l'image / ).
Chaque déplacement est exprimé sous la forme d'un vecteur d .
Sur la Figure 8 est représenté le cas où des patchs de dictionnaires n'appartiennent pas tous à la même image On peut noter qu'une image lc+1 ne précède pas temporellement l'image courant lc lors du décodage de cette image courante. Selon cet exemple, le dictionnaire D0 est formé d'un premier patch X% appartenant à l'image lc+1 et de patchs qui n'appartiennent pas tous à l'image Ic+1. Par exemple, un patch X^_ appartient à l'image /c_2. De même, le dictionnaire DL--1 est formé d'un premier patch X^'1 appartenant à l'image /c_2 et de patchs qui n'appartiennent pas tous à l'image /c_2. Par exemple, un patch x ~x appartient à l'image /c--1.
Au travers de ces exemples, on comprend que la distance qui quantifie la proximité des contenus de deux patchs est à prendre au sens large car elle peut être définie pour quantifier la ressemblance entre patchs qui n'appartiennent pas forcément à une même image.
La Figure 9 montre un exemple d'architecture d'un dispositif comprenant des moyens configurés pour mettre en œuvre l'invention décrite en relation avec les Figures 1 à 8.
Le dispositif 900 comprend les éléments suivants, interconnectés par un bus 901 numérique d'adressage et de données :
- Une unité de calcul 903 (encore appelé Central Processing Unit en anglais) ;
- Une mémoire 905 ;
- Une interface réseau 904, pour des interconnexions entre le dispositif 900 et d'autres dispositifs distants connectés via une connexion 902;
L'unité de calcul 903 peut être implémentée par un microprocesseur, éventuellement dédié, un microcontrôleur également éventuellement dédié, etc. La mémoire 905 peut être implémentée sous une forme volatile et/ou non volatile telle qu'une RAM (Random Access Memory en anglais), un disque dur, une EPROM (Erasable Programmable ROM), etc.
Les moyens 903, 905 et éventuellement 904 coopèrent entre eux pour définir un voisinage causal d'un bloc à prédire, pour rechercher un ensemble de patchs candidats qui est formé d'au moins un patch appartenant à une image autre que l'image à laquelle appartient le bloc à prédire, chaque patch étant formé d'un bloc et d'un voisinage qui est causal de ce bloc.
Les moyens 903, 905 et éventuellement 904 coopèrent entre eux pour prédire un bloc à partir, au moins, du bloc d'au moins un patch dudit ensemble de patchs candidats.
Les moyens du dispositif sont configurés, selon un mode de réalisation, pour mettre en œuvre un procédé décrit en relation avec les Figures 1 à 8.
Selon un mode de réalisation du dispositif 900, les moyens 904 sont configurés pour émettre et/ou recevoir un signal dont la trame est particulière. En effet, dans le cas où les moyens pour prédire du dispositif 900 sont configurés pour mettre en œuvre une étape de prédiction de voisinage telle
que décrite en relation avec la Figure 3, la trame de ce signal porte une information qui désigne le patch auquel appartient le bloc de prédiction du bloc à prédire et, selon une variante qui correspond au cas où les moyens pour prédire sont configurés pour mettre en œuvre une étape de prédiction de voisinage telle que décrite en relation avec la Figure 4, la trame de ce signal porte une information spécifique qui identifie le dictionnaire à partir duquel est issu la prédiction du bloc à prédire. Selon une autre variante, qui correspond au cas où les moyens pour prédire sont configurés pour mettre en œuvre une sous-étape de définition de dictionnaire au cours de laquelle un dictionnaire est formé, entre autres, d'un premier patch, la trame de ce signal porte une information de déplacement relative à la position de ce premier patch dans une image, ladite information de déplacement étant définie à partir du patch formé du bloc à prédire et de son voisinage.
L'invention concerne également un procédé de codage et/ou de décodage d'une séquence d'images au cours duquel un bloc de prédiction est calculé à partir d'un bloc d'image image de référence. Le procédé est caractérisé en ce que le bloc de prédiction est calculé selon un procédé décrit en relation avec les Figures 1 à 8.
L'invention concerne aussi un appareil de codage et/ou de décodage d'une séquence d'images qui est caractérisé en ce qu'il comporte un dispositif décrit en relation avec la Figure 9.
Sur la Figure 9, les modules représentés sont des unités fonctionnelles, qui peuvent ou non correspondre à des unités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant ou circuit, ou constituer des fonctionnalités d'un même logiciel. A contrario, certains modules peuvent éventuellement être composés d'entités physiques séparées. Les dispositifs de prédiction inter-image compatibles avec l'invention sont mis en œuvre selon une réalisation purement matérielle ("hardware" en anglais), par exemple sous forme d'un composant dédié (par exemple dans un ASIC ou FPGA ou VLSI) (respectivement « Application Spécifie Integrated Circuit » en anglais, signifiant « Circuit Intégré à vocation d'une application spécifique », « Field-Programmable Gâte Array » en anglais, signifiant « Réseau de Portes Programmable In-Situ », « Very Large Scale Intégration » en anglais,
signifiant « Intégration à très grande échelle ») ou de plusieurs composants électroniques intégrés dans un appareil ou encore sous forme d'un mélange d'éléments matériels et d'éléments logiciels (« software » en anglais).