Codage/Décodage Compatibles Sous-Bandes d ' Images de Télévi sion
La présente invention concerne un codeur-décodeur pour un codage compatible sous-bande d'images de télévision et son application au codage de mouvement hiérarchique par des structures arborescentes.
Elle s'applique aux systèmes de transmission numérique et notamment, à la transmission de séquences d'images numériques. Les récents progrès technologiques en matière de transmission numérique ainsi que le développement de réseaux numériques large bande ont rendu stratégique le rôle de la compression numérique. Alors que les débits alloués pour la transmission des données ne cessent de diminuer, l'exigence en matière de qualité de codage s'accroît. Ainsi, pour la transmission de séquences d'images numériques, les algorithmes développés nécessitent l'utilisation de techniques de plus en plus perfectionnées et complexes, le plus souvent basées sur une exploitation de la redondance temporelle avec estimation du mouvement. C'est le cas par exemple du codage bidirectionnel, du "frame skip" dénomination anglo- saxonne définissant une technique de saut d'images, ou des techniques d'interpolation temporelle.
Ces techniques entraînent cependant l'apparition de nouvelles contraintes vis-à-vis de l'estimation de mouvement. Le codage bidirectionnel nécessite de pouvoir estimer des mouvements de forte amplitude, surtout si les images traitées sont au format Haute Définition (HD). Le "frame skip" et l'interpolation temporelle demandent des champs de vecteurs précis et aussi proches du champ physique que possible. De plus, comme l'information de mouvement à transmettre devient importante, il est impératif de réduire au maximum le coût de codage du champ de mouvement : le moyen le plus efficace pour cela est de le rendre le plus homogène possible. Précision, homogénéité, fortes amplitudes et adéquation au champ physique sont les principales caractéristiques à prendre en compte par l'estimateur de mouvement.
La plupart des codeurs-décodeurs d'images connus utilisent un codage par transformée cosinus discrète, connu sous l'abréviation anglo- saxonne DCT fonctionnant en mode intra et inter avec une technique
d'estimation de mouvement de type "block matching" dénomination anglo- saxonne d'une technique suivant laquelle l'image est découpée en blocs, un vecteur mouvement par bloc étant déterminé par un calcul de corrélation, cette technique permettant d'obtenir des vecteurs mouvements calculés en nombres entiers de pixels, ou plus rarement de type "pel-récursif ', ou pel est l'abréviation pour pixel, développé notamment dans "Motion estimation and compensation for image séquence coding", publié dans "Image Communication 4, 1992, pp 161-174". Le pel-récursif ne permet pas d'atteindre une précision suffisante au niveau du mouvement des contours et reste trop sensible au bruit.
Une technique plus répandue et donnant des meilleurs résultats en terme de réduction de l'erreur de prédiction est la technique connue sous la dénomination anglo-saxonne "block matching full search". Cette technique ne permet cependant pas l'estimation des mouvements de forte amplitude : l'augmentation de la fenêtre de recherche est rapidement limitée par les considérations d'implémentation dans les matériels. De plus, la technique "full search" ne prend pas en compte la corrélation spatiale entre les vecteurs issus de blocs adjacents, ce qui se traduit souvent par un champ bruité et éloigné du mouvement réel. Un accroissement de la taille de la fenêtre de recherche ne peut qu'accentuer l'inhomogeneité du champ estimé et, par conséquent, son coût de codage non négligeable à bas débit. La technique "full search" n'est donc plus adaptée aux nouvelles contraintes.
Des techniques "block matching" plus complexes mais plus rapides et autorisant des excursions de vecteurs plus importantes ont été développées dans plusieurs articles et notamment dans une publication de Q. Wang and R.J. Clarke intitulée "Motion estimation and compensation for image séquence coding" parue dans "Image Communication 4, 1992, pp.161 -174", et dans une publication de L.Lee, J.WANG, J. Lee et J. Shie intitulée "Dynamic Search Window Adjustment and Interlaced Search for Block Matching Algorithm" parue dans "International Workshop on HDTV'93, Proceedings vol.2, Nov.1992, Kawasaki".
Le but de ces techniques est de réduire au maximum le nombre de positions testées par bloc. L'intérêt de ces méthodes est d'éviter une recherche exhaustive. Cependant elles n'assurent pas une plus grande cohérence du champ de mouvement et, au contraire, augmentent les
possibilités de divergence de l'estimateur de mouvement. Les techniques d'estimation hiérarchique quant à elles permettent de satisfaire les contraintes définies précédemment sur le codage du champ de mouvement. Un type de codée, abréviation pour codeur-décodeur, connu utilisant ces techniques de codage et d'estimation comporte une structure compatible à deux boucles de prédiction afin d'éviter une dérive entre le codeur pleine résolution de la première boucle appelé codeur TVHD, abréviation pour Télévision Haute Définition, et le décodeur quart de résolution de la deuxième boucle, appelé décodeur TV, abréviation pour Télévision sous entendu de type "standard". Une telle structure est développée dans une publication intitulée "draft Spécification of a TV/HDTV Compatible Coding Scheme", publiée dans "Document CMTT/2-SRG, July 1992."
Le principe du codage utilisé par ce codée consiste à décomposer le spectre d'une image source en sous-bandes, chaque bande étant codée séparément. Dans un premier temps le codée choisit le mode de codage, intra ou inter, puis quantifie la bande elle-même pour le mode intra, ou l'erreur de prédiction pour cette bande pour le mode inter. Les bandes sont ensuite transmises l'une après l'autre, dans l'ordre, via un canal de transmission après codage par VLC, abréviation pour l'expression anglo saxonne "Variable Lenght Coding".
En mode de prédiction inter, le codée reconstruit deux images de résolutions différentes à partir des coefficients transmis : une image pleine résolution dans la boucle TVHD et une image quart de résolution dans la boucle TV. L'image pleine résolution est obtenue grâce à un banc de filtres de synthèse utilisant toutes les bandes de fréquences transmises. L'image quart de résolution n'utilise qu'un quart des sous-bandes transmises.
Ces deux images décodées sont ensuite stockées en mémoire et utilisées pour fournir la prédiction inter pour l'image source suivante après estimation et compensation de mouvement entre l'image décodée précédente et l'image source courante. Les deux images sont ensuite recalées et décomposées en sous-bandes : la boucle TV fournit un quart des sous-bandes, correspondant aux basses fréquences et le reste des sous-bandes provient de la boucle TVHD.
Dans ce type de codée, l'image compatible quart de résolution est recalée pour la prédiction inter en utilisant les vecteurs estimés entre les images pleine résolution, après une mise à l'échelle. Cependant le recalage correspondant, s'il est bien adapté au niveau pleine résolution, ne l'est pas forcément au niveau quart de résolution.
De plus, tous les vecteurs mouvement transmis pour l'image pleine résolution doivent être également décodés par le décodeur compatible, ce qui augmente considérablement le débit correspondant à la partie compatible pour de faibles débits. Le but de l'invention est de pallier les inconvénients précités.
A cet effet, l'invention a pour objet un codeur-décodeur pour un codage compatible sous-bande d'images de télévision du type comportant un circuit principal de codage et des boucles de codage de format déterminé, couplés à un estimateur de mouvement hiérarchique entre deux images sources consécutives, une image précédente et une image courante, caractérisé en ce qu'il comporte des moyens pour construire à partir de l'image décodée précédente et de l'image source courante respectivement deux pyramides d'images de résolution différente comportant chacune un même nombre déterminé d'images ordonnées identiquement suivant leur résolution, où chaque image correspond à un niveau de résolution moitié plus faible dans les directions horizontale et verticale de l'image que le niveau de résolution précédent, et en ce que chaque pyramide est appliquée respectivement à une première et une deuxième série d'entrées de l'estimateur de mouvement hiérarchique qui délivre en sortie un vecteur mouvement dont l'amplitude est proportionnelle au mouvement estimé entre les deux pyramides.
L'invention a pour avantage qu'elle permet, d'une part, de s'appuyer sur une structure connue d'un codée double boucle pour la génération d'une pyramide multirésolution, et permet d'autre part, d'améliorer les performances du codée en matière de qualité d'images à un débit donné, notamment au niveau de la partie compatible.
D'autres caractéristiques et avantages de l'invention apparaîtront dans la description qui suit faite en regard des dessins annexés qui représentent :
- la figure 1 , un mode de réalisation d'un codeur-décodeur selon l'invention, et
- la figure 2, une représentation à deux dimensions d'une partie d'une pyramide d'images illustrant un choix de prédicteurs spatiaux par un estimateur de mouvement hiérarchique utilisé par le codeur-décodeur selon l'invention.
Un mode de réalisation d'un codeur-décodeur, ou codée, à quatre niveaux de résolution selon l'invention, incorporant un estimateur de mouvement hiérarchique multirésolution, est représenté par la figure 1. Ce mode de réalisation utilise le principe de décomposition en sous-bandes développé dans une publication intitulée "Perfect Reconstruction Modulated Filter Banks" de J. Mau, publiée dans "ICASSP, March 1992, San Francisco".
Une décomposition d'une image en sous-bandes s'obtient à l'aide d'une structure parallèle basée sur l'utilisation de bancs de filtres separables à deux dimensions. De tels bancs comportent des filtres d'analyse et des filtres de synthèse. Les bancs de filtres d'analyse décomposent une image en un nombre déterminé M de bandes suivant les directions horizontale X et verticale Y de l'image, définissant respectivement un nombre M de lignes et M de colonnes. L'aspect séparable des filtres permet de traiter indépendamment les lignes et les colonnes de l'image. Pour une découpe d'une image en sous-bandes MxM, le banc de filtres d'analyse est monodimensionnel et décompose en M sous-bandes successivement les lignes puis les colonnes de l'image. Les sous-bandes sont sous- échantillonnées par le nombre de bandes M dans chaque direction X et Y.
De la même façon, la reconstruction de l'image s'obtient à l'aide d'un banc comportant un nombre M de filtres de synthèse monodimensionnel correspondant au nombre M de sous-bandes, et d'une interpolation par un facteur déterminé du nombre de sous-bandes M. Les filtres d'analyse et de synthèse sont calculés en modulant un même filtre prototype passe-bas à phase linéaire ; les phases de modulation à l'analyse et à la synthèse sont opposées afin d'éliminer le repliement de spectre lors de la reconstruction de l'image.
A partir d'une décomposition de l'image pleine résolution en MxM sous-bandes, le codée selon l'invention reconstruit une sous-image quart de
résolution, à condition que M soit pair. Pour cela, le codée sélectionne les M/2xM/2 sous-bandes qui correspondent à ce niveau de résolution, les sous-bandes correspondant aux basses fréquences, et calcule un banc de synthèse déduit simplement du banc de synthèse pleine résolution. Le banc des M/2 filtres de synthèse s'obtient en modulant une version sous- échantillonnée par deux du filtre prototype d'origine pour la découpe en M sous-bandes. Si M est une puissance de 2, le processus est réitéré et génère des sous-images au seizième de résolution, etc... jusqu'à l'utilisation du banc de synthèse 1 x1. Le mode de réalisation d'un codée selon l'invention comporte un circuit principal de codage 1 délimité par une ligne fermée discontinue. Ce circuit permet d'envoyer sur un canal de transmission soit, en mode intra, une image source courante ln codée, soit en mode inter, un signal d'erreur codé résultant de la différence entre l'image source courante ln et une image issue d'une prédiction faite à partir de l'image décodée précédente ln_<| .
Le circuit principal comporte de l'entrée E vers la sortie S, un premier banc de filtres d'analyse haute définition, ou banc d'analyse HD 2, recevant sur son entrée l'image source courante ln, et délivrent sur sa sortie la même image pleine résolution décomposée en 64 bandes, 8 bandes suivant la direction horizontale X et la direction Y de l'image. La sortie du banc d'analyse HD 2 est soit couplée directement à l'entrée d'un circuit de quantification, ou quantificateur 3, par l'intermédiaire d'un commutateur 4 en position "mode intra" sélectionnée par le codée, soit couplée à une première entrée d'opérande d'un opérateur de soustraction, ou soustracteur 5, dont la sortie est couplée à l'entrée du quantificateur 3 par l'intermédiaire du commutateur 4 en position "mode inter" sélectionné par le codée.
La sortie du quantificateur 3 délivrant soit l'image HD décomposée et quantifiée, en mode intra, soit le signal d'erreur quantifié, en mode inter, est couplée d'une part sur une première entrée d'un dispositif de codage à longueur variable, ou VLC 6, incorporant un multiplexeur, MUX, et dont la sortie est couplée au canal de transmission, et couplée d'autre part à l'entrée d'un circuit de déquantification, ou déquantificateur 7, dont la sortie est soit couplée directement à l'entrée de quatre boucles de codage 8 à 11 , représentées respectivement à l'intérieur d'une ligne fermée discontinue, par l'intermédiaire d'un deuxième commutateur 12 en position
"mode intra" sélectionné par le codée, soit couplée à une première entrée d'opérande d'un opérateur d'addition, ou additionneur 13, dont la sortie est couplée à l'entrée des quatre boucles de codage 8 à11 respectivement dénommée par leur format HD, TV, VT et DC signifiant respectivement, format haute définition, format télévision, format vidéotéléphone et format "direct current" signifiant que la moyenne du signal est nulle, par l'intermédiaire du deuxième commutateur 12 en position mode "inter" sélectionnée par le codée.
Chaque boucle 8 à 11 délivre une image reconstituée à partir de l'image décodée précédente ln_<| et construit respectivement une image pleine résolution au format HD, une image 1/4 de résolution au format TV, une image 1/16 de résolution au format VT, et une image 1/64 de résolution au format DC. La première et la deuxième boucle 8 et 9 correspondent respectivement à une boucle de prédiction HD et une boucle de prédiction TV.
La boucle de prédiction HD 8, et la boucle de prédiction TV 9 comportent respectivement, de l'entrée vers la sortie, un banc de filtres de synthèse, ou banc de synthèse, 12 et 13, pour reconstruire à partir de l'image pleine résolution décomposée en sous-bandes, une image au format HD pleine résolution R = 1 , et une image au format TV 1/4 de résolution R = 1/4.
Les bancs de synthèses 12 et 13 sont couplées, respectivement à l'entrée d'une mémoire d'image 14 et 15 permettant de stocker les images précédente au format HD et TV. La sortie de chaque mémoire d'image 14 et 15 est couplée respectivement à une première entrée d'un dispositif de compensation de mouvement 16 et 17 permettant de recaler les images de format HD et TV en fonction d'une estimation de mouvement effectuée entre l'image source courante lπ et l'image décodée précédente ln_ι par une commande, sous la forme d'un vecteur mouvement V, arrivant sur une deuxième entrée du dispositif de compensation de mouvement 16 et 17. L'amplitude totale du vecteur mouvement V est appliquée sur le dispositif de compensation de mouvement 16 de la boucle HD, et la moitié de cette amplitude sur le dispositif de compensation de mouvement 17 de la boucle TV, du fait de la résolution de la boucle TV qui représente la moitié de la résolution de la boucle HD dans les deux directions X et Y de l'image. Les
sorties de ces dispositifs 16 et 17 sont couplées respectivement à l'entrée d'un banc d'analyse 18 et 19. Les deux images au format HD et TV recalées sont alors décomposées en sous-bandes et servent de prédiction pour l'image source lπ suivante. Les sorties respectives des bancs d'analyse 18 et 19 sont couplées entre elles et couplées d'une part, sur la deuxième entrée d'opérande du soustracteur 5 et d'autre part sur la deuxième entrée d'opérande de l'additionneur 13. La troisième et la quatrième boucle 10 et 11 correspondent respectivement à une boucle au format VT et DC et comportent respectivement un banc de synthèse 20 et 21. La sortie de chaque banc de synthèse 20 et 21 est couplée respectivement à l'entrée d'une mémoire d'image 22 et 23.
Les sorties des mémoires d'image 14, 15, 22 et 23 respectives aux quatre boucles 8, 9, 10 et 11 sont couplées respectivement à une première série de quatre entrées ordonnées d'un estimateur hiérarchique de mouvement multirésolution 24.
Les sorties des quatre boucles 8, 9, 10 et 11 génèrent une première pyramide multirésolutions P<| ou chaque image reconstituée dans chacune des boucles 8, 9, 10 et 11 correspond à un des quatre niveaux n = 1 à 4 de la pyramide P-| . Le premier niveau n = 1 correspond à l'image pleine résolution R = 1 au format HD, le deuxième niveau n = 2 à l'image 1/4 de résolution R = 1/4 au format TV, le troisième niveau n = 3 à l'image 1/16 de résolution R = 1/16 au format VT et le quatrième niveau n = 4 à l'image 1/64 de résolution R = 1/64 au format DC. L'estimateur 24 reçoit sur une deuxième série de quatre entrées ordonnées comme la première série des quatre entrées précédentes, une deuxième pyramide multirésolution ?2-
La première entrée reçoit l'image source courante ln pleine résolution avant décomposition en sous-bandes par le banc d'analyse HD 2 du circuit principal de codage 1. Les trois entrées suivantes reçoivent respectivement, dans l'ordre, une image reconstituée par un banc de synthèse TV 25, un banc de synthèse VT 26 et un banc de synthèse DC 27 à partir de l'image source courante ln décomposée en MxM sous bandes par le banc d'analyse 2 du circuit principal de codage 1 injectée sur chacune de leur entrée.
Une estimation de mouvement hiérarchique est effectuée ensuite par l'estimateur 24 entre l'image source ln courante et une image source précédemment codée ln_<| . La première pyramide P-| correspondant à cette dernière image décodée ln_ι contient déjà l'image pleine résolution décodée présente dans la boucle HD 8, l'image 1/4 de résolution présente dans la boucle TV 9 et l'image DC obtenue directement à partir des coefficients du filtre de synthèse 21 de la boucle DC 11. Le codée reconstruit uniquement l'image 1/16 de résolution à partir du banc de synthèse 20 de la boucle VT 10. La sortie de l'estimateur 24 générant un vecteur mouvement V résultant de l'estimation de mouvement effectuée à partir des deux pyramides multirésolution P<| et ?2, est couplée d'une part à la deuxième entrée de la mémoire d'image 16 de la première boucle de prédiction HD 8 et d'autre part sur une deuxième entrée du VLC du circuit principal de codage 1. Le même vecteur V mais dont l'amplitude est divisée par deux est couplé également à la deuxième entrée de la mémoire d'image 17 de la deuxième boucle de prédiction TV 9.
L'utilisation d'un estimateur hiérarchique multirésolution dans un codée selon l'invention ne nécessite pas de modifications de la structure de l'algorithme d'estimation : les vecteurs mouvement V utilisés pour les images compatibles au format TV, sont les vecteurs des images pleine résolution, format HD, remis à l'échelle. Le champ des vecteurs V assure un recalage aussi bien pour les images pleine résolution HD que pour les images compatibles TV après mise à l'échelle des vecteurs V. Les différents niveaux n = 1 à n = 4 de la première pyramide P-| sont en effet reconstitués à partir des images compatibles. En particulier, les vecteurs V estimés au dernier niveau n = 4 sont initialisés à l'aide des vecteurs calculés au niveau n = 3 précédent assurant ainsi le meilleur recalage pour l'image compatible TV. Le champ du vecteur mouvement V pleine résolution, lorsqu'il est remis à l'échelle pour le recalage de l'image compatible TV, a donc beaucoup de chance de ressembler au champ réel tel qu'il a été estimé à l'avant-demier niveau n = 3 de la première pyramide P-|
Un exemple de processus d'estimation est décrit succinctement ci-après : une image source est décomposée en un nombre déterminé de blocs où chaque bloc est défini par l'intersection d'une ligne et de sa
colonne respective et dont la taille reste identique pour tous les niveaux de résolution. Dans cet exemple l'estimation de mouvement doit aboutir, pour l'image pleine résolution, à un vecteur de mouvement par bloc 16x16 pour un format progressif ou 16x8 pour un format entrelacé. La recherche débute au niveau de résolution le plus faible.
L'estimateur comporte un prédicteur temporel par bloc pour initialiser la recherche ; la valeur de ce prédicteur est celle du vecteur qui correspond à un même bloc et à un même niveau de résolution lors de la précédente estimation. En début de séquence, les prédicteurs temporels sont mis à zéro. L'estimateur calcule ensuite la différence inter-images déplacée, connue sous l'abréviation anglo-saxonne DFD, correspondant à la prédiction temporelle ainsi que celle correspondant à un déplacement nul. Le vecteur dont la DFD est minimale est retenu. Ce vecteur est ensuite affiné à l'aide d'une fenêtre de recherche de taille ±x dans la direction horizontale X et ±y dans une direction verticale Y et elle est centrée sur l'extrémité du vecteur. Le vecteur corrigé produisant la DFD la plus faible est retenu et est utilisé pour initialiser la recherche au niveau de résolution suivant. Cette technique est développée notamment par P. Anandan dans un article intitulé "Computing dense displacement fields with confidence measures in scènes containing occlusions", publié dans "SPIE Vol. 521 Intelligent Robots and Computer Vision, 1986".
Pour deux niveaux successifs n-1 et n, chaque bloc du niveau supérieur n dispose de quatre prédicteurs : un prédicteur temporel et trois prédicteurs spatiaux provenant de l'estimation précédente faite au niveau inférieur n-1. A chaque bloc du niveau inférieur n-1 correspondent quatre blocs du niveau supérieur n. Le vecteur attribué à un bloc du niveau inférieur n - 1 est propagé sur chacun des quatre blocs du niveau supérieur n après une mise à l'échelle du vecteur. Pour chaque bloc du niveau supérieur n, une répartition des trois prédicteurs spatiaux est déterminée. Dans l'exemple de la figure 2, neuf blocs numérotés de 1 à 9, de niveau inférieur n = 1 sont représentés hachurés. A chaque bloc 1 à 9 correspondent quatre blocs du niveau supérieur n = 2 désignés respectivement par un même vecteur V^ à Vg : un bloc haut gauche, un bloc haut droit, un bloc bas gauche et un bloc bas droit.
Au bloc 5 correspondent quatre blocs désignés respectivement par un vecteur V5, le bloc 5 étant centré sur les quatre blocs du niveau supérieur n = 2. Trois prédicteurs spatiaux sont attribués à chacun des quatre blocs désignés par le vecteur V5. Un premier prédicteur spatial correspond respectivement à un des quatre blocs repéré par le vecteur V5 de niveau supérieur n = 2, les deux autres prédicteurs correspondent respectivement aux deux blocs adjacents au premier prédicteur. L'ensemble des 4x3 prédicteurs forment une croix sur le niveau supérieur n = 2. Le reste de la recherche se déroule de la même façon pour les autres blocs de niveau inférieur n = 1 et la même opération est effectuée pour les niveaux supérieurs suivants n = 3 et 4 ; cependant pour le niveau pleine résolution correspondant au niveau n = 4, l'estimateur n'utilise plus le prédicteur temporel et n'utilise que les trois prédicteurs spatiaux pour initialiser la recherche afin de minimiser la complexité de réalisation. Un vecteur entier par bloc 16x16, ou 16x8, est ainsi obtenu sur les quatre niveaux n = 1 à n = 4.
Pour obtenir une précision sous-pixel, il est possible d'utiliser une interpolation bilinéaire ou autre et de tester les positions correspondantes autour du vecteur entier précédemment trouvé. L'amplitude entière maximale des vecteurs estimés à l'aide de cet estimateur hiérarchique est de : pour le niveau n = 1 |V]χ| + x V|y + y, pour le niveau n = 2 2|V|x| + 3x 2 ]y + 3y, pour le niveau n = 3 4|V|x| + 7x 4|V|y| + 7y, et pour le niveau n = 4 8|V|x| + 15x 8|Vjy| + 15y ou |Vιx| et IVi l représentent respectivement la norme du vecteur V<| suivant la direction X et la norme du vecteur V-j suivant la direction Y. Ainsi, avec une fenêtre d'excursion ±3 pixels horizontalement et verticalement, dans le cas progressif, l'estimateur peut estimer des vecteurs dont l'amplitude peut aller jusqu'à ±45 pixels dans chaque direction. En fait, l'utilisation du prédicteur temporel au premier niveau de la pyramide autorise l'estimation de vecteur d'amplitude plus élevée ; il faut tout de même limiter à tous les niveaux de la pyramide l'amplitude maximale pouvant être estimée afin de réduire les risques de divergence de l'estimateur.
Le codée selon l'invention peut être appliqué au codage des champs de vecteurs mouvement utilisant des structures arborescentes de type "quadtree" par exemple.
Dans cette application les vecteurs utilisés pour la partie compatible doivent être directement transmis via la structure arborescente. Cette application est intéressante d'un point de vue réduction du coût de codage du champ total par rapport à un codage différentiel classique, mais un autre avantage plus intéressant encore réside dans le fait que le décodeur compatible n'est pas obligé de décoder toute l'information de mouvement mais uniquement la partie de l'arbre allant de la racine jusqu'au niveau de résolution désiré.