Brevet FR2872974A1 — publié le 20060113

L'invention concerne un procédé ou dispositif de codage d'une séquence d'images sources, plus particulièrement un procédé comportant une phase de préanalyse avec estimation de mouvement de type pel-récursif et une phase de codage proprement dite avec estimation de mouvement par appariement de blocs. Le domaine est celui de la compression vidéo. On s'intéresse en particulier aux circuits de codage compatibles des normes MPEG 4. L'estimation de mouvement de type appariement de blocs plus connue sous l'appellation anglaise block matching est mise en oeuvre dans un codeur, pour exploiter la corrélation temporelle des images d'une séquence d'images. Elle permet le calcul de blocs prédits soustrait à un bloc courant pour un codage en mode inter. Du fait des différents choix dans les paramètres de codage proposés par les normes, par exemple la taille du bloc d'image pour l'estimation de mouvement, l'image ou les images de référence à partir desquelles sont effectuées ces estimations de mouvement, la trame supérieure; la trame inférieure ou l'image bi- trame pour ces images de référence, etc., une sélection étant ensuite effectuée en fonction de critères tels que le coût de codage, un nombre important de calculs de mouvement doit être réalisé par le codeur. Ces calculs sont coûteux en termes de temps et capacité de traitement. Les estimateurs de mouvement doivent être spécifiques au codeur ou du moins être compatibles de la multitude de choix proposés dans la norme et mis en oeuvre par le codeur. Par exemple dans le cas d'un estimateur de mouvement hiérarchique de type appariement de blocs pour un codeur compatible de la norme H264 ou MPEG4 part 10, un champ de vecteurs mouvement est calculé pour chaque taille de bloc (4x4, 4x8, 8x4, 8x8, 8x16, 16x8, 16x16) et pour chaque image de référence. Dans le cas du codage par paire de macroblocs, connu sous l'appellation MBAFF, acronyme de l'anglais MacroBlock Adaptive Frame Field, l'estimateur fournit, par macrobloc, 1 champ de vecteurs mouvement pour l'image bi-trame, 2 champs de vecteurs mouvement pour les trames. Ainsi, pour des macroblocs de taille 16x16, 41 x 3 vecteurs mouvement peuvent être calculés pour chaque image de référence, ce nombre étant multiplié si plusieurs images de référence sont exploitées, tel que dans le mode multi-références. 2872974 2 Un autre problème concerne l'exploitation même d'un estimateur de mouvement de type hiérarchique. S'il un tel estimateur donne un champ de mouvement plus uniforme, il ne permet pas de s'accrocher facilement sur les mouvements de petits objets, du fait de l'approche faible résolution/haute résolution. L'invention a pour but de pallier les inconvénients précités. A cet effet, un des objets de l'invention est un procédé de codage d'une séquence d'images sources comprenant une phase de préanalyse avec estimation de mouvement de type pel-récursif et une phase de codage proprement dite avec estimation de mouvement par appariement de blocs pour des blocs d'images constitués d'un ou plusieurs sous-blocs, caractérisé en ce que la phase de codage comporte également - une étape de sélection de vecteurs mouvement pour les sous- blocs d'image à partir des vecteurs mouvement calculés par appariement pour le bloc contenant le sous-bloc et à partir des vecteurs mouvement calculés par l'estimation de type pel-récursif pour les pixels ou groupes de pixels appartenant au sous-bloc, - et une étape de calcul de la meilleure partition d'un bloc d'image 20 en sous-blocs à partir de calculs de corrélation prenant en compte les vecteurs mouvement sélectionnés des sous-blocs constituant un bloc. Selon une mise en oeuvre particulière, le procédé est caractérisé en ce que l'étape de sélection calcule les niveaux de corrélations des sousblocs pour les vecteurs mouvement de type pel-récursif correspondant à ces sous-blocs, les vecteurs mouvement obtenus par appariement de blocs étant sélectionnés d'office. Selon une mise en oeuvre particulière, la taille des blocs d'image est celle définie dans le standard MPEG2 et les tailles ses sous-blocs sont celles disponibles dans le standard MPEG 4. Selon une mise en oeuvre particulière, l'estimation de mouvement par appariement de blocs est de type hiérarchique. Selon une mise en oeuvre particulière, la phase de préanalyse comporte une étape d'estimation de mouvement de type pel-récursif entre l'image courante et une image précédente, pour une même résolution ou pour une résolution plus faible et une étape de réduction de bruit par filtrage compensé en mouvement à partir du mouvement calculé par la dite estimation de mouvement. Selon une réalisation particulière, la phase de préanalyse effectue également des calculs de corrélation pour les différentes trames de l'image courante pour déterminer, pour chaque bloc à coder et pour une image de référence, la trame ou image bi-trame correspondante à exploiter en fonction de la meilleure corrélation et transmet cette information au circuit d'estimation de mouvement de type appariement de blocs pour effectuer cette estimation sur l'image de référence correspondante. L'invention concerne également un dispositif de codage comprenant un circuit de préanalyse avec un estimateur de mouvement de type pelrécursif et un circuit de codage proprement dit par sous-blocs, avec un estimateur de mouvement par appariement de blocs d'images constitués d'un ou plusieurs sous-blocs, caractérisé en ce que le circuit de codage comporte également un circuit de décision de mode de codage - pour la sélection de vecteurs mouvement pour les sous-blocs d'imagé; à partir des vecteurs mouvement calculés par l'estimateur de mouvement par blocs et relatifs au bloc contenant le sous-bloc et à partir des vecteurs mouvement calculés par l'estimateur de type pel-récursif et relatifs aux pixels ou groupes de pixels appartenant au sous-bloc, - et pour le calcul de la meilleure partition d'un bloc d'image en 20 sous-blocs à partir de calculs de corrélation prenant en compte les vecteurs mouvement sélectionnés des sous-blocs constituant un bloc. La combinaison d'un estimateur de mouvement de type appariement par bloc, bien adapté à la compression de données et d'un estimateur de mouvement pel-récursif, bien adapté au calcul du mouvement physique permet d'obtenir un champ de mouvement de bonne qualité et un bon taux de compression. Les calculs sont réduits. Grâce à la combinaison des champs de vecteurs mouvement de ces estimateurs, il est par exemple plus facile de s'accrocher sur des petits objets en déplacement dans l'image, qui auraient été ignorés par l'estimateur de mouvement de type appariement de blocs . En exploitant les informations relatives aux vecteurs de mouvement représentant le champ physique, l'estimateur de mouvement de type appariement de blocs , par exemple hiérarchique, peut initialiser une recherche de mouvement sur de tels vecteurs en les utilisant comme prédicteurs. Il est également possible d'utiliser un circuit d'estimation de mouvement de type appariement de blocs conçu pour des blocs d'image de 2872974 4 taille plus élevée que celle des sous-macroblocs, par exemple un estimateur de type standard MPEG2, donc de moindre coût. Le calcul de corrélation ou de coût de codage des modes prédictifs, pour les sousmacroblocs de taille plus petite est alors effectué à partir des champs de vecteurs mouvement fournis par l'estimateur de mouvement de type pelrécursif et par le circuit d'estimation de mouvement de type appariement de blocs mentionné, par exemple en combinant les vecteurs ou en les sélectionnant. Un autre avantage consiste en l'exploitation des informations provenant de l'estimateur de mouvement pel-récursif, par l'estimateur de mouvement hiérarchique, afin de limiter ses calculs, par exemple en sélectionnant les images de référence, trames ou bi-trames à exploiter. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description donnée à titre d'exemple non limitatif et faite en 15 regard des figurés qui réprésentént - la figure 1, un.synoptique d'un codeur selon l'invention, - la figure 2, des partitions d'un macrobloc: etsous-macrobioc, - la figure 3, un algorithme de décision de mode de codage. La figure 1 représente un codeur d'une séquence vidéo, selon l'invention. Les données vidéo numériques de l'image source sont reçues en entrée du codeur pour être transmises à un circuit de préanalyse 6. Les images sont filtrées et transmises, par bloc d'image, à une première entrée d'un soustracteur 1. Selon le mode de codage, intra ou inter, le soustracteur 1 transmets l'information relative au bloc courant reçue sur sa première entrée ou bien soustrait à cette dernière les informations correspondant à un bloc prédit disponibles sur sa deuxième entrée. Les données en sortie du soustracteur sont transmises à un circuit de transformation cosinus discrète et quantification 2. Les coefficients quantifiés en sortie de ce circuit subissent un codage entropique à travers le codeur entropique 3 puis sont mémorisées dans une mémoire tampon 4. Le niveau de remplissage de cette mémoire est transmis à un circuit de régulation de débit 5, qui reçoit également des données du circuit de préanalyse, et qui agit sur le pas de quantification du quantificateur 2. L'image courante est reconstruite pour fournir des blocs prédits. Ainsi, les coefficients quantifiés subissent une quantification inverse et une 2872974 5 transformation cosinus discrète inverse à travers le circuit référencé 7 pour donner des valeurs de luminance décodées. L'additionneur 8 permet d'ajouter le bloc prédit au bloc de coefficients décodé, s'il est codé en mode inter. Le bloc reconstruit est filtré par le circuit de filtrage 9 avant d'être mémorisé dans une mémoire image 10 qui mémorise l'image courante reconstruite. Un circuit d'estimation de mouvement par blocs 11 comportant un estimateur de mouvement hiérarchique reçoit les informations relatives à l'image décodée ou reconstruite mémorisée par la mémoire d'image 10 et les informations relatives au macrobloc courant à coder de l'image source provenant du circuit de préanalyse 6. L'estimateur de mouvement hiérarchique effectue un calcul de corrélation entre ce macrobloc courant et l'image reconstruite selon un principe connu, pour fournir des vecteurs mouvement par macrobloc. Ces vecteurs sont transmis au circuit de décision de mode de codage 13. Ce circuit reçoit également, du circuit de préanalyse, des vecteurs mouvement calculés par l'estimateur de mouvement de type pel-récursif. Il sélectionne la meilleure partition des macroblocs avec leurs modes de codage correspondants. Le mode de codage et les vecteurs mouvement correspondants sont transmis à un circuit de compensation de mouvement 12 qui réalise la compensation de mouvement de la ou des images de référence reconstruites pour fournir un bloc d'image prédit. Les vecteurs de mouvement sont également transmis au circuit de codage entropique 3 pour leur codage et transmission au décodeur. De manière plus détaillée, en entrée du codeur se trouve un circuit de préanalyse 6 comportant un circuit de réduction de résolution, un circuit d'estimation de mouvement de type pel-récursif et un circuit de filtrage. Ces circuits permettent de procéder à une réduction de bruit sur l'image avant son codage. Dans ce domaine, il est reconnu qu'une estimation de mouvement de type pel-récursif est plus adaptée à la réduction de bruit qu'une estimation de mouvement par blocs. C'est donc ce type d'algorithme qui est mis en oeuvre dans cette phase de préanalyse du codeur. Les images sources de la séquence d'images reçue en entrée du codeur sont sous-échantillonnées par le circuit de préanalyse pour fournir des images de plus faible résolution. L'estimation de mouvement de type pelrécursif est réalisée par ce circuit de préanalyse, préalablement au codage effectif des images. Elle est donc calculée par pixel, sur une image de plus 2872974 6 faible résolution de taille divisée par deux en horizontal et vertical dans notre exemple. Cette estimation peut également fournir, à l'avance, un certain nombre d'indications utiles pour le module d'encodage, telles que détection de zones en mouvement, de zones non prédictibles, direction de prédiction privilégiée... Un filtrage compensé en mouvement, à partir de cette estimation de mouvement, est ensuite réalisé sur les images pleine résolution. Ce filtrage permet de diminuer le bruit de l'image et donc d'améliorer le rendement du codeur. Le circuit de préanalyse peut être exploité pour définir la structure en GOPs de la séquence à coder, c'est à dire le type des images, inter ou intra, images de référence, bidirectionnelles.... Ce terme GOP, acronyme de l'anglais Group Of Pictures , signifie groupe d'images et est défini dans la norme MPEG. La préanalyse se fait sur un nombre prédéfini d'images. Le temps de retard entre la préanalyse et le codage effectif des images peut être de l'ordre du groupe d'images considéré pour la régulation de débit. II correspond par exemple à un ou plusieurs GOPs dans le cas de la norme MPEG. Dans notre exemple, le circuit d'estimation de mouvement 11 est basé sur une structure hiérarchique et sur une approche appariement par bloc. Le macrobloc courant est comparé à l'image décodée, construite selon une pyramide de résolution croissante, en partant de la résolution la plus faible de la pyramide, et du macrobloc, jusqu'au niveau de résolution le plus élevé. Les champs de vecteurs mouvement sont estimés pour chaque niveau de résolution, du niveau le plus faible au niveau le plus élevé, les estimations faites à un niveau pouvant servir de prédiction pour le niveau supérieur. Les pyramides dépendent des différents modes de codage du circuit de codage. II existe donc des pyramides pour les images bitrames, pour les trames, et cela, pour une image de référence donnée. Dans l'approche références multiples, ce nombre est donc multiplié. Le circuit de filtrage 9, dans la boucle de codage, réalise un filtrage de l'image reconstruite pour diminuer les effets de blocs. C'est cette image filtrée qui est mémorisée dans la mémoire d'image 10. Le circuit de préanalyse 6 est relié au circuit de régulation de débit 5 pour lui fournir des informations de structure de GOP et des informations de coût de codage par type d'image afin de faciliter la régulation de débit qui peut donc prendre en compte des informations a posteriori. Le circuit de préanalyse 2872974 7 détermine, par exemple, lors d'une première passe en mode intra, la complexité des images, en termes de codage et transmet une estimation du coût de codage par type d'image au circuit de régulation pour permettre à ce dernier d'initialiser un pas de quantification pour le circuit TCD +Q. Comme indiqué précédemment, le circuit de décision de mode de codage 13 sélectionne la meilleure partition des macroblocs et le mode de codage des macroblocs. La figure 2 représente différents types de répartition d'un 10 macrobloc de taille 16 lignes de 16 échantillons, pour un codeur exploitant la norme MPEG 4 part 10. La première ligne correspond à une découpe horizontale et verticale d'un macrobloc de taille 16x16 respectivement en deux sousmacroblocs de taille 16x8 et 8x16 et en une découpe en quatre sous- macroblocs de taille 8x8. La deuxième ligne correspond à ces mêmes découpes mais à un niveau inférieur, pour un sous-macrobloc de taille 8x8. L'estimation de mouvement de type pel-récursif est effectuée sur une image de plus faible résolution, par exemple 2 fois moindre en horizontal et vertical que celle de l'image source. Le circuit d'estimation de mouvement par appariement de blocs 11 est du type MPEG2, c'est à dire que la taille des macroblocs de luminance traités est de 16 lignes de 16 échantillons. L'organisation interne des macroblocs est différente selon le type d'image, trame ou bi-trame. Ainsi, il peut s'agir de macroblocs de luminance en codage DCT d'images à deux trames ou en codage DCT d'images à une trame, un macrobloc, dans ce dernier cas, étant constitué d'un bloc supérieur de 16x8 pour la trame impaire et d'un bloc inférieur de 16x8 pour la trame paire Les vecteurs mouvement calculés dépendent du type d'image codée, image à codage prédictif P ou bidirectionnel B. II s'agit de vecteurs de mouvement anticipé ( forward vector dans la norme MPEG2) et de vecteurs de mouvement différé ( backward vector ). La figure 3 représente un organigramme de décision de mode de codage mis en oeuvre par le circuit de décision de mode de codage 13. Le champ de vecteurs mouvement par blocs 2x2 est reçu du circuit de préanalyse 6, étape 14. Le champ de vecteurs mouvement par macroblocs 16x16 est reçu du circuit d'estimation de mouvement 11, étape 15. 2872974 8 L'étape 16 traite les vecteurs mouvement des champs de vecteurs de l'étape 14 et de l'étape 15. Elle attribue des vecteurs mouvement aux différentes partitions de macroblocs possibles. Dans l'exemple, les partitions possibles se limitent au sous- macrobloc, c'est à dire à un bloc de taille 8x8, les sous-macroblocs n'étant pas partitionnés. Dans une première phase, les vecteurs mouvement sont rattachés aux blocs. Ainsi, pour un sous-macrobloc considéré, les vecteurs mouvement du macrobloc 16x16 comprenant ce sous-macrobloc ainsi que les vecteurs mouvement des blocs 2x2 inclus dans ce sous-macrobloc sont rattachés au sous-macrobloc. Dans une deuxième phase, des vecteurs mouvement sont attribués au sousmacrobloc. Différents modes d'attribution sont possibles: Par exemple, il peut s'agir simplement d'attribuer l'ensemble des vecteurs mouvement rattachés au sous-macrobloc. Le nombre de vecteurs attribués peut également être limité, en effectuant une présélection parmi les vecteurs mouvement des blocs 2x2 rattachés au sous-macrobloc, en choisissant les valeurs médianes des composantes de ces vecteurs ou bien en choisissant celui fournissant la meilleure corrélation par calculs SAD ou Hadamart. L'étape 17 reçoit les vecteurs attribués aux sous-macroblocs des différentes partitions et provenant de l'étape 16. Une sélection des vecteurs mouvement est effectuée en réalisant, pour chacun des sousmacroblocs, un calcul de corrélation à partir du ou des vecteurs mouvement attribués et en choisissant le vecteur mouvement donnant la meilleure corrélation. L'étape 18 reçoit les vecteurs sélectionnés attribués aux sousmacroblocs des partitions. Cette étape effectue une sélection de la meilleure partition en réalisant, pour chacune des partitions possibles, un calcul de corrélation pour l'ensemble du macrobloc, en effectuant la somme des corrélations de chacun des sous-macro-blocs constituant le macrobloc, à partir des vecteurs mouvement attribués aux sous-macro-blocs correspondant à cette partition. La partition donnant le meilleur taux de corrélation est choisie. Les étapes précédentes sont effectuées pour chacun des modes à tester, mode prédictif avec un vecteur mouvement et une image de référence 2872974 9 donnée ou biprédictif avec deux vecteurs mouvement et deux images de référence. La décision du mode de codage, intra, inter prédictif, inter biprédictif.. .pour la partition sélectionnée, est prise en comparant les coûts de 5 codage correspondants. Selon une variante de l'invention, les vecteurs mouvement calculés par l'estimateur de mouvement pel-récursif du circuit de préanalyse 6 sont transmis à l'estimateur de mouvement hiérarchique 11 pour être utilisés en tant que prédicteurs. Le prédicteur ou prédicteurs choisis sont exploités, de manière connue, pour positionner une ou plusieurs fenêtres de recherche dans lesquelles sont effectuées les corrélations pour déterminer le vecteur mouvement. Si plusieurs vecteurs mouvement correspondent au bloc traité par l'estimateur de mouvement 11, les prédicteurs pour ce bloc sont par exemple chacun de ces vecteurs, une moyenne des composantes de ces vecteurs ou bien les valeurs médianes. Selon une variante de l'invention, le circuit de préanalyse effectue des calculs de corrélation pour fournir des informations de décision de codage image/trame au circuit d'estimation de mouvement 11. Il réalise une présélection du mode trame ou image bi-trame qu'il transmet au circuit d'estimation de mouvement afin d'alléger les calculs réalisés par ce circuit. Selon une autre variante de l'invention, le circuit de préanalyse effectue des calculs de corrélation pour fournir des informations de décision de codage image/trame au circuit de décision de mode de codage 13, par exemple une présélection du mode trame ou image bi-trame. Ce circuit élimine alors, parmi les vecteurs de mouvement reçus, ceux correspondant aux modes non sélectionnées par le circuit de préanalyse. Les calculs de la meilleure partition sont effectués pour les seuls modes présélectionnés. II s'agit ici d'exemples de réalisation. Bien évidemment, l'invention s'applique à tout partitionnement de macrobloc, pour les parties duquel sont effectués des calculs de corrélation. Les estimateurs de mouvement peuvent également être d'un autre type que pel-récursif ou hiérarchique sans que l'on sorte du domaine de 35 l'invention. Les applications concernent la compression de données vidéo pour la transmission ou l'enregistrement. REVENDICATIONS 1 Procédé de codage d'une séquence d'images sources comprenant une phase de préanalyse (6) avec estimation de mouvement de type pel-récursif et une phase de codage proprement dite avec estimation de mouvement (11) par appariement de blocs pour des blocs d'images constitués d'un ou plusieurs sous-blocs, caractérisé en ce que la phase de codage comporte également une étape de sélection (16, 17) de vecteurs mouvement pour les sous- blocs d'image à partir des vecteurs mouvement calculés par appariement pour le bloc contenant le sous-bloc et à partir des vecteurs mouvement calculés par l'estimation de type pel-récursif pour les pixels ou groupes de pixels appartenant au sous-bloc, - et une étape de calcul (18) de la meilleure partition d'un bloc d'image en sous-blocs à partir de calculs de corrélation prenant en compte les vecteurs mouvement sélectionnés des sous-blocs constituant un bloc. 2 Procédé selon la revendication 1, caractérisé en ce que l'étape de sélection (17) calcule les niveaux de corrélations des sous-blocs pour les vecteurs mouvement de type pel-récursif correspondant à ces sous- blocs, les vecteurs mouvement obtenus par appariement de blocs étant sélectionnés d'office. 3 Procédé selon la revendication 2, caractérisé en ce que la taille des blocs prédéfinie correspond à la taille des blocs dans le standard MPEG2 et en ce que les tailles inférieures correspondent aux tailles disponibles dans le standard MPEG 4. 4 Procédé selon la revendication 1, caractérisé en ce que la taille des blocs d'image est celle définie dans le standard MPEG2 et en ce que les tailles des sous-blocs sont celles disponibles dans le standard MPEG 4. 5 Procédé selon la revendication 1, caractérisé en ce que l'estimation de mouvement par appariement de blocs est de type hiérarchique. 6 Procédé selon la revendication 1, caractérisé en ce que la phase de préanalyse (6) comporte une étape d'estimation de mouvement de type pelrécursif entre l'image courante et une image précédente, pour une même résolution ou pour une résolution plus faible et une étape de réduction de bruit par filtrage compensé en mouvement à partir du mouvement calculé par la dite estimation de mouvement. 7 Procédé selon la revendication 1, caractérisé en ce que la phase de préanalyse effectue également des calculs de corrélation pour les différentes trames de l'image courante pour déterminer, pour chaque bloc à coder et pour une image de référence, la trame ou image bi-trame correspondante à exploiter en fonction de la meilleure corrélation et transmet cette information au circuit d'estimation de mouvement de type appariement de blocs (11) pour effectuer cette estimation sur l'image de référence correspondante. 8 Dispositif de codage pour la mise en oeuvre du procédé de la revendication 1, comprenant un circuit de préanalyse (6) avec un estimateur de mouvement de type pel-récursif et un circuit de codage proprement dit comportant un estimateur de mouvement (11) par appariement de blocs pour des blocs d'images constitués d'un ou plusieurs sous-blocs, caractérisé en ce que le circuit de codage comporte également un circuit de décision de mode de codage (12) - pour la sélection (16, 17) de vecteurs mouvement pour les sous-blocs d'image, à partir des vecteurs mouvement calculés par l'estimateur de mouvement par blocs (11) et relatifs au bloc contenant le sous-bloc et à partir des vecteurs mouvement calculés par l'estimateur de type pel- récursif (6) et relatifs aux pixels ou groupes de pixels appartenant au sous-bloc, - et pour le calcul (18) de la meilleure partition d'un bloc d'image en sous-blocs à partir de calculs de corrélation prenant en compte les vecteurs 30 mouvement sélectionnés des sous-blocs constituant un bloc.