Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
IMAGE PROCESSING WITH DETERMINATION OF A GLOBAL MOVEMENT VECTOR FROM HISTOGRAMS
Document Type and Number:
WIPO Patent Application WO/2021/245241
Kind Code:
A1
Abstract:
The invention relates to a method for processing an image in a set of images, wherein the image is cut into a plurality of blocks, said method comprising: determining a plurality of movement vectors, each movement vector corresponding to a block of the plurality of blocks of the image, and pointing to a block correlated with the corresponding block in a reference image, the reference image being an image from the set of images, distinct from the image; distributing movement vectors among the plurality of movement vectors determined into the classes of a first histogram on the basis of an applied correspondence criterion, for each classified movement vector, to a component of the movement vector; selecting a first class of the first histogram on the basis of a selection criterion; and determining a global movement vector of the image on the basis of a movement vector corresponding to the selected first class.

Inventors:
DANTEN SIMON (FR)
Application Number:
PCT/EP2021/065021
Publication Date:
December 09, 2021
Filing Date:
June 04, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ATEME (FR)
International Classes:
H04N19/105; H04N19/139; H04N19/172; H04N19/176; H04N19/527
Foreign References:
EP0652678A21995-05-10
US20080084934A12008-04-10
Other References:
SEUNGJOON YANG ET AL: "Pattern matching assisted motion estimation and motion vector histogram analysis for interlaced-to-progaessive conversion", INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP), IEEE, vol. 3, 22 September 2002 (2002-09-22), pages 365 - 368, XP010607730, ISBN: 978-0-7803-7622-9
Attorney, Agent or Firm:
PLASSERAUD IP (FR)
Download PDF:
Claims:
Revendications

[Revendication 1] Procédé de traitement d’une image dans un ensemble d’images, dans lequel l’image est découpée en une pluralité de blocs, le procédé comprenant: déterminer une pluralité de vecteurs de mouvement, chaque vecteur de mouvement correspondant à un bloc de la pluralité de blocs de l’image, et pointant sur un bloc corrélé au bloc correspondant dans une image de référence, l’image de référence étant une image de l’ensemble d’images distincte de l’image ; distribuer des vecteurs de mouvement parmi la pluralité de vecteurs de mouvement déterminés dans des classes d’un premier histogramme sur la base d’un critère de correspondance appliqué, pour chaque vecteur de mouvement classé, à une composante du vecteur de mouvement ; sélectionner une première classe du premier histogramme sur la base d’un critère de sélection ; et déterminer un vecteur de mouvement global de l’image sur la base d’un vecteur de mouvement correspondant à la première classe sélectionnée.

[Revendication 2] Procédé de traitement selon la revendication 1, dans lequel déterminer une pluralité de vecteurs de mouvement comprend : déterminer un vecteur de mouvement pour chaque bloc de la pluralité de blocs de l’image.

[Revendication 3] Procédé selon l’une quelconque des revendications précédentes, dans lequel les vecteurs de mouvement distribués sont distribués dans les premières classes du premier histogramme sur la base du critère de correspondance appliqué à une première composante du vecteur de mouvement classé, et dans des deuxièmes classes d’un deuxième histogramme sur la base du critère de correspondance appliqué à une deuxième composante du vecteur de mouvement classé, le procédé comprenant en outre : sélectionner une deuxième classe du deuxième histogramme sur la base du critère de sélection ; et dans lequel le vecteur de mouvement global de l’image est généré sur la base de composantes de vecteur de mouvement correspondant respectivement à la première et à la deuxième classes sélectionnées. [Revendication 4] Procédé selon l’une quelconque des revendications précédentes, dans lequel le critère de sélection détermine une classe ayant le plus grand nombre de valeurs.

[Revendication 5] Procédé selon l’une des revendications 1 à 3, dans lequel le critère de sélection détermine une classe sur la base de combinaisons des valeurs d’une métrique de distorsion respectivement obtenues pour les vecteurs de mouvement de classes.

[Revendication 6] Procédé selon la revendication 5, dans lequel le vecteur de mouvement global de l’image est déterminé sur la base d’un vecteur de mouvement associé à la valeur la plus élevée de l’inverse de la combinaison de valeurs de la métrique de distorsion parmi les inverses des combinaisons respectives des valeurs de la métrique de distorsion respectivement obtenues pour les vecteurs de mouvement de classes.

[Revendication 7] Procédé selon l’une des revendications précédentes, dans lequel les vecteurs de mouvement distribués dans des classes sont sélectionnés parmi les vecteurs de mouvement déterminés sur la base d’un critère de pertinence.

[Revendication 8] Procédé selon l’une des revendications précédentes, dans lequel les vecteurs de mouvement distribués dans des classes sont sélectionnés parmi les vecteurs de mouvement déterminés sur la base d’un critère de taille.

[Revendication 9] Procédé selon l’une quelconque des revendications précédentes, dans lequel le critère de correspondance comprend un critère d’identité deux à deux, pour deux vecteurs de mouvement, des valeurs respectives de composantes représentant une translation selon une dimension respective de l’image de référence correspondante.

[Revendication 10] Dispositif de traitement d’images comprenant : une interface d’entrée configurée pour recevoir une image d’un ensemble d’images; une unité de traitement d’images, comprenant un processeur, couplée de manière opérationnelle à l’interface d’entrée, et configurée pour effectuer un traitement de l’image selon le procédé de l’une quelconque des revendications 1 à 9. [Revendication 11] Programme d’ordinateur, chargeable dans une mémoire associée à un processeur, et comprenant des portions de code pour la mise en œuvre des étapes d’un procédé selon l’une quelconque des revendications 1 à 9 lors de l’exécution dudit programme par le processeur.

Description:
Description

TRAITEMENT D'IMAGE AVEC DÉTERMINATION D'UN VECTEUR DE MOUVEMENT GLOBAL À PARTIR D'HISTORGAMMES

Domaine technique

[0001] La présente divulgation se rapporte à un procédé de traitement d’image et un dispositif pour la mise en œuvre de ce procédé. Elle s’applique notamment au codage d’images d’un flux vidéo.

Technique antérieure

[0002] Les données vidéo font en général l’objet d’un codage source visant à les compresser afin de limiter les ressources nécessaires à leur transmission et/ou à leur stockage. Il existe de nombreux standards de codage, tels que H.264/AVC, H.265/HEVC et MPEG-2, qui peuvent être utilisés à cette fin.

[0003] On considère un flux vidéo comprenant un ensemble d’images. Dans les schémas de codage classique, les images du flux vidéo à encoder sont typiquement considérées selon une séquence d’encodage, et chacune est divisée en ensembles de pixels eux aussi traités séquentiellement, par exemple en commençant en haut à gauche et en finissant en bas à droite de chaque image.

[0004] L’encodage d’une image du flux est ainsi effectué en divisant une matrice de pixels correspondant à l’image en plusieurs ensembles, par exemple des blocs de taille fixe 16 x 16, 32 x 32 ou 64 x 64, et en encodant ces blocs de pixels selon une séquence de traitement donnée. Certains standards, comme le H.264/AVC, prévoient la possibilité de décomposer des blocs de taille 16 x 16 (appelés alors macro-blocs) en sous-blocs, par exemple de taille 8 x 8 ou 4 x 4, afin d’effectuer les traitements d’encodage avec une granularité plus fine.

[0005] Les techniques actuelles de compression vidéo d’une image d’un ensemble d’images peuvent être divisées en deux grandes catégories : d’une part la compression dite « Intra », dans laquelle les traitements de compression sont effectués sur l’image à partir des pixels de l’image, et d’autre part la compression dite « Inter », dans laquelle les traitements de compression sont effectuées sur l’image à partir des pixels d’une ou de plusieurs autres images de l’ensemble d’images.

[0006] Dans le mode Intra, le traitement d’un bloc (ou ensemble) de pixels comprend typiquement une prédiction des pixels du bloc effectuée à l’aide de pixels causaux (précédemment codés) présents dans l’image en cours d’encodage (dite « image courante »), auquel cas on parle de « prédiction Intra ». Dans le mode Inter, le traitement d’un bloc (ou ensemble) de pixels comprend typiquement une prédiction des pixels du bloc effectuée à l’aide de pixels issus d’images précédemment codées, auquel cas on parle de « prédiction Inter » ou de « compensation de mouvement » (en anglais « motion compensation »).

[0007] Cette exploitation des redondances spatiales et/ou temporelles permet d’éviter de transmettre ou de stocker la valeur des pixels de chaque bloc (ou ensemble) de pixels, en représentant certains au moins des blocs par un résiduel de pixels représentant la différence (ou la distance) entre les valeurs de prédiction des pixels du bloc et les valeurs réelles des pixels du bloc prédit. L’information des résiduels de pixels est présente dans les données générées par l’encodeur après transformée (par exemple, de type DCT) et quantification afin de réduire l’entropie des données générées par l’encodeur.

[0008] Il est souhaitable de réduire autant que possible les informations additionnelles générées par la prédiction des pixels et présentes en sortie de l’encodeur afin d’augmenter l’efficacité d’un schéma de codage/compression à un niveau de distorsion donné. A l’inverse, on peut aussi chercher à réduire ces informations additionnelles pour augmenter l’efficacité d’un schéma de codage/compression à un niveau de débit de sortie de l’encodeur donné.

[0009] Un encodeur vidéo effectue typiquement un choix de mode d’encodage correspondant à une sélection de paramètres d’encodage pour un ensemble de pixels traité. Cette prise de décision peut être implémentée en optimisant une métrique de débit et distorsion, les paramètres d’encodage sélectionnés par l’encodeur étant ceux qui minimisent un critère débit-distorsion. Le choix du mode d’encodage a alors un impact sur les performances de l’encodeur, à la fois en termes de gain de débit et de qualité visuelle. [0010] Le codée AOMedia Video 1 (AV1) est un codée vidéo libre de droits développé par l’Alliance for Open Media (AOM). Né en 2018, il est le successeur d’un autre codée vidéo libre de droits, le codée Vp9, et propose de nouveaux outils de codage augmentant significativement son efficacité par rapport à son prédécesseur. Le codée AV1 se présente comme un concurrent de codées vidéo spécifiés par les standards MPEG, et notamment du codée H.265 (HEVC). Le document de spécification du codée AV1 est disponible en ligne et accessible à l’URL suivante : https://aomedia.googlesource.com/avl-spec/.

[0011] Essentiellement conçu pour la diffusion vidéo sur Internet et sur réseau IP, le codée AV1 reprend les grands principes de la compression vidéo, dont notamment l’exploitation de redondances intra et inter images, l’utilisation d’un codeur entropique et la prise en considération du système visuel humain. Il est annoncé comme étant, grâce à de nouveaux outils, 35% plus efficace que son concurrent HEVC, en ce qu’il permettrait une réduction de débit moyen de 35% à qualité visuelle équivalente par rapport au codée HEVC.

[0012] Tout comme HEVC, l’encodeur vidéo AV1 s’appuie sur une découpe de l’image en blocs de tailles variables, et teste sur ces derniers un certain nombre d’outils de codage (par exemple des modes de prédiction temporels et spatiaux, différents types de transformée, etc.), en exploitant les redondances spatiales sur une image ou les redondances temporelles sur une pluralité d’images, afin de sélectionner, pour chaque bloc, l’outil le plus efficace.

[0013] Plusieurs nouveaux outils de type inter (qui exploitent les redondances temporelles d’une séquence d’images) ont été introduits dans AV1 . Ces outils inter utilisent des images de références déjà codées (jusqu’à 7) pour représenter les mouvements des blocs d’une image (ex : le bloc B de l’image courante I est identique au bloc B’ de l’image de référence G à une translation T près).

[0014] Certains outils de codage Inter (dénommés outils « GLOBAL_MOTION » dans la spécification du codée AV1) utilisent une suite de paramètres dits de « mouvement global » propres à l’image (et donc commune à tous les blocs) qui visent à retranscrire les mouvements de caméras (allants du simple travelling aux mouvements plus complexes tels que le zoom). [0015] L’avantage pour un mode Inter d’utiliser des informations globales à l’image est de s’affranchir de transmettre une multitude de fois des informations de mouvement redondantes (car communes à beaucoup de blocs), et donc de diminuer fortement la quantité d’information à transmettre au décodeur et diminuer le débit vidéo.

[0016] Parmi les outils utilisant des paramètres globaux (GLOBAL_MOTION), le mode TRANSLATION est le plus apte à représenter un travelling latéral de la caméra (une translation 2D). Ce mode utilise deux des huit paramètres globaux d’une image (l’un représente la composante de la translation sur l’axe x et l’autre la composante de la translation sur l’axe y) afin de matérialiser un vecteur de mouvement global.

[0017] La spécification AV1 est un exemple de spécification de codée qui prévoit l’utilisation et la transmission éventuelles d’au un ou plusieurs vecteurs de mouvement global. Selon la spécification actuelle AV1, la transmission des vecteurs de mouvement globaux n’est pas obligatoire. Un symbole (flag) dans l’entête (en anglais, le « frame header ») de chaque image indique au décodeur si oui ou non les vecteurs globaux sont présents dans le flux binaire (en anglais, « bitstream ») à décoder. Si ce symbole indique qu’ils sont présents, le décodeur s’attend à recevoir autant de vecteurs globaux qu’il y a d’images de référence. La spécification AV1 prévoyant que la détermination des vecteurs globaux est uniquement à la charge de l’encodeur (donc non normative), elle ne contient actuellement aucune préconisation de détermination de vecteur de mouvement global. En revanche, les vecteurs globaux, s’ils sont utilisés dans un codée AV1, doivent répondre à des critères normatifs (de tailles par exemple).

[0018] Il existe ainsi un besoin pour un procédé de traitement d’image permettant de déterminer un vecteur de mouvement global d’une image dans un ensemble d’images ou un flux vidéo à traiter (par exemple à encoder ou à analyser).

Résumé

[0019] La présente divulgation vient améliorer la situation. [0020] Selon un premier aspect, il est proposé un procédé de traitement d’une image dans un ensemble d’images, dans lequel l’image est découpée en une pluralité de blocs, le procédé comprenant: déterminer une pluralité de vecteurs de mouvement, chaque vecteur de mouvement correspondant à un bloc de la pluralité de blocs de l’image, et pointant sur un bloc corrélé au bloc correspondant dans une image de référence, l’image de référence étant une image de l’ensemble d’images distincte de l’image ; distribuer des vecteurs de mouvement parmi la pluralité de vecteurs de mouvement déterminés dans des classes d’un premier histogramme sur la base d’un critère de correspondance appliqué, pour chaque vecteur de mouvement classé, à une composante du vecteur de mouvement ; sélectionner une première classe du premier histogramme sur la base d’un critère de sélection ; et déterminer un vecteur de mouvement global de l’image sur la base d’un vecteur de mouvement correspondant à la première classe sélectionnée.

[0021] Le procédé proposé permet avantageusement de déterminer un vecteur de mouvement global d’une image d’un ensemble d’images. En particulier, le procédé proposé permet la détermination d’un vecteur de mouvement global de l’image en se basant sur l’estimation de mouvement de portions de l’image. En outre, le procédé proposé intègre avantageusement un critère de pertinence spatio- temporel qui permet de ne travailler qu’avec les vecteurs de portions qui sont pertinents selon ce critère.

[0022] De plus, le procédé proposé présente l’avantage de proposer une détermination de vecteur de mouvement global d’une image dans un ensemble d’images qui ne mobilise pas d’importantes ressources machine et dont l’implémentation, que ce soit logicielle et/ou matérielle, est peu complexe.

[0023] Par exemple, dans le cadre de sa mise en œuvre au sein d’un encodeur vidéo, par exemple de type AV1, le procédé proposé n’impacte pas significativement la complexité des calculs effectués par l’encodeur. Ainsi, le procédé proposé a l’avantage d’une mise en œuvre peu complexe, d’une complexité de calcul très faible, et d’une vitesse d’exécution rapide qui autorise notamment son intégration dans une solution d’encodage temps-réel sans impact significatif. Il permet ainsi notamment d’améliorer de façon globale la qualité du codage au sein d’une image appartenant à une séquence vidéo.

[0024] Le procédé proposé convient particulièrement bien, bien que de façon non exclusive, pour l’encodage ou la compression d’une image d’un ensemble d’images, par exemple selon un schéma standard du type AV1, H.120, H.261, MPEG-1, H.262/MPEG-2, H.263, H.263+, H.263++, MPEG-4 part 2, H.264/AVC, H.265/HEVC (High Efficiency Video Coding), ou SHVC (Scalable HEVC), WC, EVC, selon les spécifications correspondantes actuelles ou leurs évolutions, notamment dans les cas applicables pour accélérer l’encodage à certains niveaux. Mais il convient aussi pour l’encodage ou plus généralement le traitement d’images selon tout schéma d’encodage ou de traitement vidéo utilisant ou compatible avec l’utilisation d’un vecteur de mouvement global ou d’une analyse de mouvement global.

[0025] Le procédé proposé pourra avantageusement être mis en œuvre au sein de tout encodeur vidéo utilisant des vecteurs de mouvement globaux des images encodées, comme par exemple, mais de manière non limitative, un encodeur vidéo conforme à la spécification AV1 actuelle ou à ses évolutions.

[0026] Le procédé proposé n’est toutefois pas limité à des mises en œuvre au sein d’un encodeur d’image, et peut être mis en œuvre dans une unité d’estimation de mouvement global. L’unité d’estimation de mouvement global pourra être mise en œuvre sous forme logicielle, auquel cas elle prendra la forme d’un programme exécutable par un processeur, sous forme matérielle (ou « hardware »), comme un circuit intégré spécifique application (ASIC), un système sur puce (SOC), ou sous forme d'une combinaison d'éléments matériels et logiciels, auquel cas elle pourra comprendre une interface d’entrée, une mémoire couplées de manière opérationnelle avec au moins un processeur configuré pour la mise en œuvre du procédé proposé. En fonction du mode de réalisation choisi, l’unité d’estimation de mouvement global pourra être mise en œuvre au sein d’un encodeur vidéo, d’un décodeur vidéo, par exemple pour effectuer un calcul de mouvement global, d’un dispositif d’analyse vidéo, par exemple pour extraire des informations sémantiques ou des informations d’un contenu vidéo, et/ou d’un dispositif de traitement vidéo, par exemple pour isoler les avant-plans du fond dans les images d’un contenu vidéo.

[0027] Les caractéristiques exposées dans les paragraphes suivants peuvent, optionnellement, être mises en œuvre. Elles peuvent être mises en œuvre indépendamment les unes des autres ou en combinaison les unes avec les autres :

[0028] Dans un ou plusieurs modes de réalisation, la détermination de la pluralité de vecteurs de mouvement pourra comprendre : déterminer un vecteur de mouvement pour chaque bloc de la pluralité de blocs de l’image.

[0029] Dans un ou plusieurs modes de réalisation, les vecteurs de mouvement distribués pourront être distribués dans les premières classes du premier histogramme sur la base du critère de correspondance appliqué à une première composante du vecteur de mouvement classé, et dans des deuxièmes classes d’un deuxième histogramme sur la base du critère de correspondance appliqué à une deuxième composante du vecteur de mouvement classé, et le procédé proposé pourra comprendre en outre : sélectionner une deuxième classe du deuxième histogramme sur la base du critère de sélection ; et dans lequel le vecteur de mouvement global de l’image est généré sur la base de composantes de vecteur de mouvement correspondant respectivement à la première et à la deuxième classes sélectionnées.

[0030] Dans un ou plusieurs modes de réalisation, le critère de sélection utilisé pourra déterminer une classe ayant le plus grand nombre de valeurs.

[0031] Dans d’autres modes de réalisation, le critère de sélection pourra déterminer une classe sur la base de combinaisons des valeurs d’une métrique de distorsion respectivement obtenues pour les vecteurs de mouvement de classes. Une combinaison des valeurs de métrique de distorsion pourra être calculée pour chaque classe d’un ensemble de classes dans lequel le critère de sélection est appliqué. Cet ensemble de classe peut comprendre toutes les classes d’un histogramme, ou seulement une partie de ces classes. Par exemple, le critère de sélection utilisé pourra déterminer une classe parmi un ensemble de classes sur la base des moyennes respectives calculées pour une ou plusieurs des valeurs d’une métrique de distorsion respectivement obtenues pour les vecteurs de mouvement de chaque classe de l’ensemble. En fonction du mode de réalisation, les moyennes calculées pourront être des moyennes arithmétiques, ou être calculées selon toute autre formule de moyenne utilisable pour la mise en œuvre du procédé proposé.

[0032] Dans ces modes de réalisation, le vecteur de mouvement global de l’image pourra être déterminé sur la base d’un vecteur de mouvement associé à la valeur la plus élevée de l’inverse de la combinaison de valeurs de la métrique de distorsion parmi les inverses des combinaisons respectives des valeurs de la métrique de distorsion respectivement obtenues pour les vecteurs de mouvement de classes. Une combinaison des valeurs de métrique de distorsion pourra être calculée pour chaque classe d’un ensemble de classes, qui pourra comprendre toutes les classes d’un histogramme, ou seulement une partie de ces classes. Par exemple, le vecteur de mouvement global de l’image pourra être déterminé sur la base d’un vecteur de mouvement associé à l’inverse de la moyenne des valeurs de la métrique de distorsion la plus élevée parmi les inverses des moyennes respectives des valeurs de la métrique de distorsion respectivement obtenues pour les vecteurs de mouvement de classes. En fonction du mode de réalisation, les moyennes calculées pourront être des moyennes arithmétiques, ou être calculées selon toute autre formule de moyenne utilisable pour la mise en œuvre du procédé proposé.

[0033] Dans un ou plusieurs modes de réalisation, les vecteurs de mouvement distribués dans des classes pourront être sélectionnés parmi les vecteurs de mouvement déterminés sur la base d’un critère de pertinence. Dans un ou plusieurs modes de réalisation, le critère de pertinence pourra comprendre une comparaison d’une valeur de métrique de distorsion calculée pour le vecteur de mouvement à un seuil. Dans un ou plusieurs modes de réalisation, la métrique de distorsion pourra utiliser une mesure de distance.

[0034] Dans un ou plusieurs modes de réalisation, les vecteurs de mouvement distribués dans des classes pourront être sélectionnés parmi les vecteurs de mouvement déterminés sur la base d’un critère de taille. Dans un ou plusieurs modes de réalisation, le critère de taille pourra être rempli dans le cas où une ou plusieurs des composantes du vecteur de mouvement représentant une translation selon une dimension respective de l’image de référence correspondante a une valeur appartenant à une plage de valeurs prédéterminée.

[0035] Dans un ou plusieurs modes de réalisation, le critère de correspondance pourra être rempli dans le cas où une ou plusieurs des valeurs respectives de composantes de deux vecteurs de mouvement, les composantes représentant une translation selon une dimension respective de l’image de référence correspondante, sont identiques.

[0036] Dans un ou plusieurs modes de réalisation, le critère de correspondance pourra comprendre un critère d’identité deux à deux, pour deux vecteurs de mouvement, des valeurs respectives de composantes représentant une translation selon une dimension respective de l’image de référence correspondante.

[0037] Selon un autre aspect, un dispositif de traitement d’images est proposé, qui comprend : une interface d’entrée configurée pour recevoir une image d’un ensemble d’images ; une unité de traitement d’images, comprenant un processeur, couplée de manière opérationnelle à l’interface d’entrée, et configurée pour effectuer un traitement de l’image selon un ou plusieurs modes de réalisation du procédé proposé.

[0038] Selon un autre aspect, un programme d’ordinateur, chargeable dans une mémoire associée à un processeur, et comprenant des portions de code pour la mise en œuvre d’un ou de plusieurs modes de réalisation du procédé proposé lors de l’exécution dudit programme par le processeur, est proposé.

[0039] Un autre aspect concerne un ensemble de données représentant, par exemple par voie de compression ou d’encodage, un programme d’ordinateur tel que proposé.

[0040] Selon un autre aspect, un support de stockage non-transitoire d’un programme exécutable par ordinateur est proposé, qui comprend un ensemble de données représentant un ou plusieurs programmes, lesdits un ou plusieurs programmes comprenant des instructions pour, lors de l’exécution desdits un ou plusieurs programmes par un ordinateur comprenant une unité de traitement couplée de manière opérationnelle à des moyens mémoire et à un module d’interface entrées/sorties, conduire l’ordinateur à mettre en œuvre un ou plusieurs modes de réalisation du procédé proposé.Selon un autre aspect, il est proposé un programme informatique comportant des instructions pour la mise en œuvre de tout ou partie d’un procédé tel que défini dans les présentes lorsque ce programme est exécuté par un processeur. Selon un autre aspect, il est proposé un support d’enregistrement non transitoire, lisible par un ordinateur, sur lequel est enregistré un tel programme.

Brève description des dessins

[0041] D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels :

Fig. 1

[0042] [Fig. 1] montre un schéma d’encodeur vidéo pour la mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation.

Fig. 2

[0043] [Fig. 2] montre un exemple d’analyse d’estimation de mouvement sur une image courante découpée en blocs selon un ou plusieurs modes de réalisation.

Fig. 3

[0044] [Fig. 3] montre un diagramme illustrant un exemple de mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation.

Fig. 4a

[0045] [Fig. 4a] montre un exemple de génération de vecteurs de mouvement pour une image courante pour la mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation.

Fig. 4b [0046] [Fig. 4b] montre un exemple d’histogramme pour la mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation.

Description des modes de réalisation

[0047] Dans la description détaillée ci-après de modes de réalisation de l'invention, de nombreux détails spécifiques sont présentés pour apporter une compréhension plus complète. Néanmoins, l'homme du métier peut se rendre compte que des modes de réalisation peuvent être mis en pratique sans ces détails spécifiques. Dans d'autres cas, des caractéristiques bien connues ne sont pas décrites en détail pour éviter de compliquer inutilement la description.

[0048] La présente description fait référence à des fonctions, moteurs, unités, modules, plateformes, et illustrations de diagrammes des méthodes et dispositifs selon un ou plusieurs modes de réalisation. Chacun des fonctions, moteurs, modules, plateformes, unités et diagrammes décrits peut être mis en œuvre sous forme matérielle, logicielle (y compris sous forme de logiciel embarqué («firmware»), ou de «middleware»), microcode, ou toute combinaison de ces derniers. Dans le cas d’une mise en œuvre sous forme logicielle, les fonctions, moteurs, unités, modules et/ou illustrations de diagrammes peuvent être mis en œuvre par des instructions de programme d’ordinateur ou du code logiciel, qui peut être stocké ou transmis sur un support lisible par ordinateur, incluant un support non transitoire, ou un support chargé en mémoire d’un ordinateur générique, spécifique, ou de tout autre appareil ou dispositif programmable de traitement de données pour produire une machine, de telle sorte que les instructions de programme d’ordinateur ou le code logiciel exécuté(es) sur l’ordinateur ou l’appareil ou dispositif programmable de traitement de données, constituent des moyens de mise en œuvre de ces fonctions.

[0049] Les modes de réalisation d’un support lisible par ordinateur incluent, de manière non exhaustive, des supports de stockage informatique et des supports de communication, y compris tout support facilitant le transfert d’un programme d’ordinateur d’un endroit vers un autre. Par «support(s) de stockage informatique», on entend tout support physique pouvant être accédé par ordinateur. Les exemples de support de stockage informatique incluent, de manière non limitative, les disques ou composants de mémoire flash ou tous autres dispositifs à mémoire flash (par exemple des clés USB, des clés de mémoire, des sticks mémoire, des disques-clés), des CD-ROM ou autres dispositifs de stockage optique de données, des DVD, des dispositifs de stockage de données à disque magnétique ou autres dispositifs de stockage magnétique de données, des composants de mémoire de données, des mémoires RAM, ROM, EEPROM, des cartes mémoires («Smart cards»), des mémoires de type SSD («Solid State Drive»), et toute autre forme de support utilisable pour transporter ou stocker ou mémoriser des données ou structures de données qui peuvent être lues par un processeur d’ordinateur.

[0050] En outre, diverses formes de support lisible par ordinateur peuvent transmettre ou porter des instructions vers un ordinateur, telles qu’un routeur, une passerelle, un serveur, ou tout équipement de transmission de données, qu’il s’agisse de transmission filaire (par câble coaxial, fibre optique, fils téléphoniques, câble DSL, ou câble Ethernet), sans-fil (par infrarouge, radio, cellulaire, microondes), ou des équipements de transmission virtualisés (routeur virtuel, passerelle virtuelle, extrémité de tunnel virtuel, pare-feu virtuel). Les instructions peuvent, selon les modes de réalisation, comprendre du code de tout langage de programmation informatique ou élément de programme informatique, tel que, sans limitation, les langages assembleur, C, C++, Visual Basic, HyperText Markup Language (HTML), Extensible Markup Language (XML), HyperText Transfer Protocol (HTTP), Hypertext Preprocessor (PHP), SQL, MySQL, Java, JavaScript, JavaScript Object Notation (JSON), Python, et bash scripting.

[0051] De plus, les termes «notamment», «par exemple», «exemple», «typiquement» sont utilisés dans la présente description pour désigner des exemples ou illustrations de modes de réalisation non limitatifs, qui ne correspondent pas nécessairement à des modes de réalisation préférés ou avantageux par rapport à d’autres aspects ou modes de réalisation possibles.

[0052] Les termes «couplé de manière opérationnelle», «couplé», «monté», «connecté» et leurs variantes et formes diverses utilisés dans la présente description font référence à des couplages, connexions, montages, qui peuvent être directs ou indirects, et comprennent notamment des connexions entre équipements électroniques ou entre des portions de tels équipements qui permettent des opérations et fonctionnements tels que décrits dans la présente description. De plus, les termes «connectés» et «couplés» ne sont pas limités à des connections ou des couplages physiques ou mécaniques. Par exemple, un couplage de manière opérationnelle peut inclure une ou plusieurs connexion(s) filaire(s) et/ou une ou plusieurs connexion(s) sans-fil entre deux équipements ou plus qui permettent des liaisons de communication simplex et/ou duplex entre les équipements ou des portions des équipements. Selon un autre exemple, un couplage opérationnel ou une connexion peut inclure un couplage par liaison filaire et/ou sans-fil pour permettre des communications de données entre un serveur du système proposé et un autre équipement du système.

[0053] La figure 1 montre, à titre d’exemple non limitatif de dispositif de traitement d’images, un exemple d’encodeur vidéo selon un ou plusieurs modes de réalisation.

[0054] En référence à la figure 1 , l’encodeur 100 reçoit en entrée 107 un flux vidéo d’entrée 101 comprenant une pluralité d’images à traiter pour effectuer l’encodage du flux. L’encodeur 100 comprend un contrôleur 102, couplé de manière opérationnelle à l’interface d’entrée 107, qui pilote une unité d’estimation de mouvement 106 et une unité de prédiction 104 pour les prédictions selon différents modes mis en oeuvre par l’encodeur 100, tels que des modes Intra, Inter et Skip, ainsi qu’une unité de détermination de vecteur de mouvement global 103. Les données reçues sur l’interface d’entrée 107 sont transmises en entrée des unités de détermination de vecteur de mouvement global 103, d’estimation de mouvement 106, du contrôleur 102, et de prédiction 104. L’ensemble contrôleur 102, unité d’estimation de mouvement 106, unité de prédiction 104, et unité de détermination de vecteur de mouvement global 103 forme une unité d’encodage 108 couplée de manière opérationnelle à l’interface d’entrée 107.

[0055] L’unité de détermination de vecteur de mouvement global 103 est configurée pour la mise en oeuvre d’un ou plusieurs modes de réalisation du procédé proposé. Elle est ainsi apte à générer des données de vecteurs de mouvement globaux qui sont fournies en entrée de l’unité de prédiction 104. L’unité d’estimation de mouvement 106 est configurée pour effectuer une analyse d’estimation de mouvement sur les images à traiter, et notamment pour la mise en œuvre d’un ou plusieurs modes de réalisation du procédé proposé par la mise en œuvre d’une analyse préliminaire afin de découper l’image à traiter en blocs et effectuer une analyse d’estimation de mouvement sur certains au moins des blocs de l’image, et est apte à générer des données, dont des données d’estimation de mouvement, qui sont fournies au contrôleur 102, à l’unité de détermination de vecteur de mouvement global 103 pour la mise en œuvre du procédé proposé, ainsi qu’à l’unité de prédiction 104 pour les besoins de la prédiction en mode Inter. L’unité de prédiction 104 génère des données de prédiction (par exemple des données de prédiction de mode Intra, Inter et/ou Skip) qui sont fournies en entrée du codeur entropique 105. Par exemple, les données fournies au décodeur pour une prédiction de type Inter peuvent comprendre un résiduel de pixels et des informations concernant un ou plusieurs vecteurs de mouvement. Ces informations relatives à un ou plusieurs vecteurs de mouvement peuvent comprendre un ou plusieurs indices identifiant un vecteur prédicteur dans une liste de vecteurs prédicteurs connue du décodeur. Le contrôleur 102 peut être configuré pour générer des données de contrôle qui sont aussi fournies en entrée du codeur entropique 105.

[0056] Le contrôleur 102 est configuré pour piloter l’unité d’estimation de mouvement 106, l’unité de détermination de vecteur de mouvement global 103 et l’unité de prédiction 104 afin de contrôler les données de prédiction qui sont respectivement fournies en entrée du codeur entropique 105 par l’unité de prédiction 104. En fonction du schéma d’encodage mis en œuvre par l’encodeur 100, le contrôleur 102 peut en outre être configuré pour sélectionner parmi les différents types de mode de prédiction (mode Intra, mode Inter ou mode Skip en fonctions des modes de codage implémentés dans l’unité d’encodage 108) celui pour lequel des données de prédiction seront transmises au codeur entropique 105. Ainsi, le schéma d’encodage peut comprendre une décision pour chaque ensemble d’image traité visant à choisir le type de prédiction pour lequel des données seront transmises au codeur entropique 105. Ce choix sera typiquement mis en œuvre par le contrôleur 102, pour décider de l’application du mode de prédiction Inter, du mode de prédiction Intra ou du mode de prédiction Skip au bloc en cours de traitement. Cela permet de commander l’envoi au codeur entropique de données de prédiction Intra ou bien de données de prédiction Inter ou Skip en fonction de la décision prise par le contrôleur 102.

[0057] L’encodeur 100 peut être un ordinateur, un réseau d’ordinateurs, un composant électronique, ou un autre appareil comportant un processeur couplé de manière opérationnelle à une mémoire, ainsi que, selon le mode de réalisation choisi, une unité de stockage de données, et d'autres éléments matériels associés comme une interface de réseau et un lecteur de support pour lire un support de stockage amovible et écrire sur un tel support (non représentés sur la figure). Le support de stockage amovible peut être, par exemple, un disque compact (CD), un disque vidéo/polyvalent numérique (DVD), un disque flash, une clé USB, etc. En fonction du mode de réalisation, la mémoire, l’unité de stockage de données ou le support de stockage amovible contient des instructions qui, lorsqu'elles sont exécutées par le contrôleur 102, amènent ce contrôleur 102 à effectuer ou contrôler les parties interface d’entrée 107, détermination de vecteur de mouvement global 103, prédiction 104, estimation de mouvement 106 et/ou traitement de données des exemples de mise en œuvre du procédé proposé décrits dans les présentes. Le contrôleur 102 peut être un composant implémentant un processeur ou une unité de calcul pour l’encodage d’images selon le procédé proposé et le contrôle des unités 107, 106, 103, 104, 105 de l’encodeur 100.

[0058] En outre, l’encodeur 100 peut être mis en œuvre sous forme logicielle, comme décrit ci-dessus, auquel cas il prend la forme d’un programme exécutable par un processeur, ou sous forme matérielle (ou « hardware »), comme un circuit intégré spécifique application (ASIC), un système sur puce (SOC), ou sous forme d'une combinaison d'éléments matériels et logiciels, comme par exemple un programme logiciel destiné à être chargé et exécuté sur un composant de type FPGA (de l’anglais « Field Programmable Gâte Array »). Les SOC (de l’anglais « System On Chip ») ou système sur puce sont des systèmes embarqués qui intègrent tous les composants d’un système électronique dans une puce unique. Un ASIC (de l’anglais « Application-Specific Integrated Circuit ») est un circuit électronique spécialisé qui regroupe des fonctionnalités sur mesure pour une application donnée. Les ASIC sont généralement configurés lors de leur fabrication et ne peuvent être que simulés par l’utilisateur. Les circuits logiques programmables de type FPGA (de l’anglais « Field-Programmable Gâte Array ») sont des circuits électroniques reconfigurables par l’utilisateur.

[0059] Un encodeur peut également utiliser des architectures hybrides, comme par exemple des architectures basées sur un CPU+FPGA, un GPU (de l’anglais « Graphics Processing Unit ») ou un MPPA (de l’anglais « Multi-Purpose Processor Array »).

[0060] La figure 2 est un diagramme illustrant le procédé proposé selon un ou plusieurs modes de réalisation.

[0061] Dans un ou plusieurs modes de réalisation, une analyse de l’image en cours de traitement est effectuée afin de générer des données d’analyse qui seront utilisées lors de la mise en oeuvre du procédé proposé. L’analyse peut comprendre un découpage de l’image courante en blocs suivie d’une estimation de mouvement sur un ou plusieurs des blocs de l’image courante.

[0062] Dans un ou plusieurs modes de réalisation, l’image courante est ainsi divisée en blocs ou unités de codage (en anglais « Coding Unit », ou CU), dont la forme et/ou la taille, qui peuvent varier d’un bloc à un autre, peuvent être déterminées en fonction notamment de la taille de la matrice de pixels représentant l’image, par exemple en macroblocs de forme carrée de 16 x 16 pixels. On forme ainsi un ensemble de blocs pour lequel on définit une séquence de traitement (parfois aussi appelée « parcours de traitement », « parcours d’analyse » ou « séquence d’analyse »). Dans le cas de blocs de forme carrée, on peut par exemple traiter les blocs de l’image courante en commençant par celui situé en haut à gauche de l’image, suivi de celui immédiatement à droite du précédent, jusqu’à arriver à la fin de la première ligne de blocs pour passer au bloc le plus à gauche dans la ligne de blocs immédiatement en-dessous de cette première ligne, pour terminer le traitement par le bloc le plus en bas et à droite de l’image. Cete séquence de traitement est parfois désignée par les termes anglais de séquence « raster » ou « raster scan » de l’image en cours de traitement.

[0063] Dans un ou plusieurs modes de réalisation, on effectue ensuite une estimation de mouvement sur un ou plusieurs des blocs de l’image courante, afin de générer des données d’estimation de mouvement pour l’image courante.

[0064] Dans un ou plusieurs modes de réalisation, on pourra considérer un « bloc courant », c’est-à-dire un bloc en cours de traitement dans l’image courante. Le traitement du bloc courant pourra comprendre le partitionnement du bloc en sous- blocs, afin de traiter le bloc avec une granularité spatiale plus fine que celle obtenue avec le bloc. En fonction du mode de réalisation, par exemple dans le cadre d’une application de codage vidéo, le traitement d’un bloc pourra comprendre par ailleurs la prédiction des pixels du bloc, en exploitant la corrélation spatiale (dans la même image) ou temporelle (dans les images précédemment codées) entre les pixels. Lorsque plusieurs types de prédiction, comme par exemple une prédiction de type Intra, une prédiction de type Inter, et/ou une prédiction de type skip sont utilisé pour l’encodage vidéo, la prédiction des pixels du bloc pourra typiquement comprendre la sélection d’un type de prédiction du bloc et d’informations de prédiction correspondants au type sélectionné, l’ensemble formant un jeu de paramètres d’encodage. La prédiction du bloc de pixels traité permet de calculer un résiduel de pixels, qui correspond à l’écart entre les pixels du bloc courant et les pixels du bloc de prédiction, qui pourra être transmis dans certains modes de réalisation au décodeur après transformée et quantification.

[0065] On décrit ci-après plus en détails l’estimation de mouvement pour un bloc courant selon un ou plusieurs modes de réalisation.

[0066] L’analyse d’estimation de mouvement dans une image courante utilise typiquement un ou plusieurs ensembles de pixels appartenant respectivement à une ou plusieurs images précédemment analysées (par exemple, dans un encodeur vidéo, une ou plusieurs images précédemment encodées), communément appelées image(s) de référence, selon une séquence d’analyse d’un ensemble d’images comprenant l’image courante. [0067] Pour un bloc donné dans l’image courante (le « bloc courant » ou « bloc d’origine »), l'estimation de mouvement peut consister à étudier le déplacement du bloc courant (appartenant à l’image courante) par rapport à la position d’un bloc (ou plus généralement, un ensemble de pixel) appartenant à une image de référence en exploitant la corrélation temporelle entre les pixels des deux blocs. L’estimation de mouvement du bloc courant peut ainsi conduire à sélectionner un ensemble de pixels (dénommé « bloc de référence ») le plus ressemblant dans une image de référence, en représentant le mouvement du bloc courant tel que positionné dans l’image courante par rapport au bloc de référence tel que positionné dans l’image de référence par un ou plusieurs paramètres de mouvement du bloc courant. Ces paramètres peuvent définir un vecteur, dit vecteur de mouvement, dont les coordonnées peuvent représenter le mouvement, selon chacune des dimensions de l’image, d’une projection du bloc courant dans l’image de référence pour coïncider avec la position du bloc de référence dans l’image de référence. Le vecteur de mouvement peut par exemple être un vecteur dans un repère à deux dimensions, par exemple horizontale et verticale, dont les coordonnées correspondent respectivement à un déplacement horizontal et un déplacement vertical pour superposer une projection dans l’image de référence du bloc courant avec le bloc de référence.

[0068] La figure 2 illustre un exemple d’estimation de mouvement selon un ou plusieurs modes de réalisation du procédé proposé.

[0069] La figure 2 montre la projection d’un bloc courant d’une image courante sur une image de référence, ainsi que les translations dans chacune des dimensions de l’image à effectuer pour atteindre dans l’image de référence un bloc corrélé (bloc estimé sur la figure) avec le bloc courant. Comme illustré sur la figure, dans un ou plusieurs modes de réalisation, le vecteur de mouvement correspond au déplacement de la projection du bloc courant dans l’image de référence pour atteindre le bloc estimé.

[0070] Le procédé d’estimation de mouvement est non normatif et est donc susceptible de différer d’un encodeur à un autre. [0071] Par exemple, le procédé d’estimation de mouvement pourra comprendre la recherche dans une zone plus ou moins étendue de l’image de référence, par exemple définie à partir du bloc de l’image de référence correspondant au bloc d’origine dans l’image d’origine, afin de tester le degré de ressemblance (ou de corrélation) du bloc d’origine avec un nombre plus ou moins grand de blocs candidats de l’image de référence.

[0072] Ainsi, dans un ou plusieurs modes de réalisation, l’estimation de mouvement permet de rechercher, pour chaque bloc courant d’un ensemble de blocs de l’image courante, pour une ou plusieurs images de référence, par exemple par pas successifs, le bloc ayant le plus de ressemblances avec le bloc courant.

[0073] Dans un ou plusieurs modes de réalisation, le degré de corrélation entre un bloc et son déplacement selon un vecteur de mouvement pourra être estimé à l’aide d’une métrique de distorsion, telle que la Somme des Différences Absolues (en anglais « Sum of Absolute Différences », ou « SAD ») : SAD = — p' xy\ où p x y est le pixel à la position ( x,y ) du bloc courant et ' xy le pixel à la position (x, y) du bloc de référence. Une SAD faible sera interprétée comme une indication que les deux blocs sont très ressemblants.

[0074] Dans un ou plusieurs modes de réalisation, la pertinence du vecteur de mouvement déterminé pour un bloc pour caractériser le mouvement réel du bloc (et non pas pour minimiser la SAD) peut être mesurée en utilisant une valeur d’auto-distorsion du bloc, par exemple en calculant la distorsion entre le bloc et une version de ce bloc décalée d’un premier nombre prédéterminé de pixel(s) selon une première dimension et d’un deuxième nombre prédéterminé de pixel(s) selon une deuxième dimension du bloc. Cette valeur d’auto-distorsion, dénommée dans la suite « AUTOSAD » dans le cas où la métrique de distorsion utilisée est la métrique SAD, peut être utilisée pour être comparée à la valeur de distorsion calculée initialement, par exemple en utilisant le rapport entre la valeur de distorsion calculée initialement sur la valeur d’auto-distorsion, pour obtenir une valeur de pertinence du vecteur de mouvement correspondant à la valeur de distorsion calculée initialement. Dans le cas où la métrique de distorsion utilisée est la métrique SAD, on pourra ainsi calculer une valeur de SAD/AUTOSAD pour mesurer la pertinence de la valeur de SAD.

[0075] L'AUTOSAD fournit avantageusement un indicateur de la complexité spatiale du bloc. Un bloc complexe contiendra par exemple des détails/pixels qui le rendent différents d’un bloc à l’autre, et/ou qui contient beaucoup d’information spatiale (par exemple beaucoup de texture). Dans la mesure où pour déterminer un vecteur de mouvement global, il est souhaitable de coder le vrai mouvement du bloc courant, il est avantageux d’utiliser le paramètre d’AUTOSAD. En effet, à la différence d’une estimation de mouvement effectuée pour l’encodage du bloc, on ne cherche pas un bloc ressemblant, mais plutôt à caractériser le mouvement du bloc d’une image à l’autre. Il peut y avoir dans une image suivante un bloc plus similaire, mais qui ne représente pas la vraie translation du bloc courant. Or, pour déterminer un vecteur de mouvement global, on cherche à obtenir une caractérisation globale du mouvement de la majorité des blocs de l’image. Pour ce faire, dans un ou plusieurs modes de réalisation, le procédé proposé utilise l’AUTOSAD pour exclure des vecteurs dont la SAD serait certes très faible, mais qui ne représenteraient pas véritablement le vrai mouvement du bloc dans l’ensemble d’images.

[0076] Ainsi, si l’auto-distorsion d’un bloc est faible, il peut être considéré qu'il n'y a pas beaucoup de détails dans le bloc, et qu'il va donc être difficile de trouver un vecteur pertinent (représentant la translation réelle du bloc). Autrement dit, il peut être considéré que la valeur de critère de distorsion ne représente pas nécessairement le mouvement réel du bloc. Il se peut en effet qu’une faible valeur de critère de distorsion corresponde à un bloc (dans une image de référence) qui est certes proche du bloc courant, mais qui ne caractérise pas le mouvement du bloc courant par rapport à l’image de référence.

[0077] Dans un ou plusieurs modes de réalisation, il peut être décidé de ne pas utiliser un vecteur ayant une faible valeur d’auto-distorsion (par exemple d’AUTOSAD) pour la détermination d’un vecteur de mouvement global, quand bien même sa valeur de distorsion (par exemple sa SAD) indiquerait qu'il est très ressemblant au bloc, étant donné qu’on ne cherche pas à trouver un bloc très ressemblant au bloc courant, mais un vecteur représentant la translation réelle de ce bloc dans une image de référence.

[0078] L’utilisation d’un critère d’auto-distorsion permet ainsi avantageusement d’éviter par exemple d’utiliser un vecteur de mouvement correspondant à un bloc identifié dans une image de référence ayant une valeur de distorsion (par exemple une SAD) inferieure à la valeur de distorsion (par exemple la SAD) du bloc d'origine translaté avec son mouvement réel.

[0079] Dans un ou plusieurs modes de réalisation, la pertinence d’un vecteur de mouvement déterminé pour un bloc peut être mesurée en calculant un critère d’auto-distorsion pour ce bloc, et en comparant la valeur de distorsion avec la valeur d’auto-distorsion. Par exemple, la valeur de distorsion peut être comparée à une valeur d’auto-distorsion normalisée, par exemple de forme : a x auto_dist + b, où a et b sont deux paramètres. Dans les modes de réalisation où les critères de distorsion utilisés sont de type SAD, la valeur de SAD obtenue pour un vecteur correspondant au bloc courant peut être comparée à a x AUTOSAD + b , où AUTOSAD est l’auto-distorsion mesurée pour le bloc courant.

[0080] Dans un ou plusieurs modes de réalisation, le paramètre a peut être utilisé pour compenser la déformation du bloc et/ou l’imprécision de l’estimation de mouvement (1 pixel, ½ pixel, ¼ pixel), et être choisi constant. Dans un ou plusieurs modes de réalisation, le paramètre b peut être utilisé pour compenser le niveau de bruit global de l’image, et être choisi constant. La valeur du paramètre/? peut être déterminée dynamiquement de manière à s’adapter au contenu de l’image ou de la séquence vidéo pour évoluer en fonction du niveau de bruit.

[0081] Par exemple, dans un ou plusieurs modes de réalisation, la valeur du paramètre b peut être choisie égale à 0. Ainsi, une comparaison entre une valeur de critère de pertinence comprenant un rapport entre une valeur de distorsion et une valeur d’auto-distorsion (par exemple, une valeur SAD / AÜTOSAD^ e * un seuil prédéterminé a (par exemple choisi égal à 2) peut être utilisée pour sélectionner les vecteurs de mouvement déterminés à utiliser pour la détermination du vecteur de mouvement global. Par exemple, un vecteur correspondant à un bloc courant pour lequel la valeur de SAD/AUTOSAD est supérieure à 2 pourra ne pas être utilisé pour la détermination du vecteur de mouvement global de l’image courante, par exemple en ne l’utilisant pas pour constituer le ou les histogrammes à partir desquels le vecteur global est déterminé. En effet, quand bien même la valeur de SAD (obtenue pour le vecteur de mouvement obtenu pour le bloc courant pour une image de référence) est faible (notamment dans le cas où on a trouvé dans l’image de référence un bloc qui ressemble beaucoup au bloc courant, auquel le vecteur de mouvement correspond, mais qui ne caractérise pas le mouvement du bloc courant ou le caractérise peu), la valeur d’AUTOSAD du bloc courant pourra elle aussi être faible, rendant le rapport SAD/AUTOSAD élevé, ce qui pourra conduire à ne pas sélectionner le vecteur de mouvement pour la détermination du vecteur de mouvement global de l’image courante.

[0082] Selon le mode de réalisation, l’estimation de mouvement peut être réalisée pour un bloc courant donné pour une ou plusieurs images de référence. Par exemple, dans le cadre d’une mise en œuvre du procédé proposé sur un codée vidéo de type AV1 , l’estimation de mouvement réalisée sur chaque bloc courant parmi les blocs de l’image courante peut être effectuée pour jusqu’à 7 images de référence, générant ainsi, pour chaque bloc courant, 7 ensemble de paramètres d’estimation de mouvement pour le bloc courant correspondant respectivement aux 7 images de référence.

[0083] Plusieurs ensembles de vecteurs de mouvement pourront ainsi être générés, correspondant respectivement à une image de référence d’un ensemble d’images de référence, et le procédé proposé pourra être mis en œuvre dans un ou plusieurs modes de réalisation à partir d’un parmi ces ensembles de vecteurs de mouvement.

[0084] La figure 3 illustre un exemple non limitatif de mise en œuvre (200) du procédé proposé selon un ou plusieurs modes de réalisation.

[0085] En référence à la figure 3, on considère une image en cours de traitement (image courante) dans un ensemble d’images. L’image courante est découpée en blocs, par exemple dans le cadre de son analyse ou de son traitement pour compression conformément à une spécification de codée vidéo. [0086] Dans un ou plusieurs modes de réalisation, notamment lorsque le procédé proposé est utilisé à des fins d’encodage de l’image courante, il peut être prévu d’encoder chaque bloc de l’image selon un parmi une pluralité de modes de codage comprenant au moins un mode de codage de type à prédiction par corrélation temporelle utilisant une pluralité d’images de l’ensemble d’images.

[0087] Dans un ou plusieurs modes de réalisation, une analyse d’estimation de mouvement peut être effectuée sur un ou plusieurs blocs de l’image, en utilisant pour chaque bloc analysé une image de référence, qui peut être choisie parmi un ensemble comprenant plusieurs images de référence, selon le mode de réalisation. En fonction du mode de réalisation, cette analyse peut générer des paramètres d’estimation de mouvement pour l’image de référence et pour les blocs de l’image pour laquelle elle est réalisée, qui peuvent prendre comprendre une ou plusieurs composantes d’un vecteur de mouvement, ainsi qu’éventuellement une mesure de corrélation (ou de distorsion), par exemple de type SAD, entre le bloc de référence (le bloc de l’image de référence) correspondant au vecteur de mouvement et le bloc courant.

[0088] L’analyse d’estimation de mouvement permet ainsi d’obtenir, pour une image de référence de l’ensemble d’images considéré, un ensemble de vecteurs de mouvement correspondant respectivement à des blocs de l’image courant et pointant vers des blocs respectifs de l’image de référence, ainsi que, pour chaque vecteur de mouvement, un paramètre de distorsion (ou de corrélation) entre le bloc correspondant au vecteur et le bloc dans l’image de référence vers lequel pointe le vecteur. Chaque vecteur de mouvement v* peut avoir deux composantes de déplacement (Dc* et Ay , correspondant pour une première composante (Dc;) à un déplacement (par exemple une translation) d’un projeté du bloc courant dans l’image de référence selon une première dimension ([ Ox )) dans un repère de l’image, et pour une deuxième composante ( Ay t ) à un déplacement du projeté selon une deuxième dimension ( [Oy) ) dans le repère de l’image. L’analyse d’estimation de mouvement peut ainsi générer, dans un ou plusieurs modes de réalisation, un ensemble de vecteurs et leurs valeurs de SAD associées : {ViiàxïAyilSADJi. [0089] L’analyse d’estimation de mouvement effectuée sur l’image courante peut ainsi comprendre, dans un ou plusieurs modes de réalisation, la détermination (201) d’une pluralité de vecteurs de mouvement, chaque vecteur correspondant à un bloc de la pluralité de blocs de l’image. Chaque vecteur de mouvement peut être configuré pour pointer sur un bloc corrélé au bloc correspondant dans une image de référence respective d’un ensemble d’images de référence, chaque image de référence étant une image de l’ensemble d’images distincte de l’image.

[0090] Dans un ou plusieurs modes de réalisation, un ensemble d’images de référence peut être prédéfini, comprenant une ou plusieurs images de référence, pour la mise en œuvre de l’analyse d’estimation de mouvement de blocs de l’image courante. Une image de référence correspondant à l’image courante aura typiquement été traitée (par exemple encodée) précédemment à l’image courante, par exemple en suivant une séquence de traitement des images de l’ensemble d’images considéré, éventuellement constituée dynamiquement. Dans les modes de réalisation dans lesquels l’ensemble d’images est une séquence vidéo, une image de référence pourra être une image se situant avant ou après l’image courante dans la séquence vidéo, selon le mode de réalisation choisi.

[0091] Un ou plusieurs vecteurs de mouvement peuvent ainsi par exemple être généré pour un bloc de l’image courante, et correspondre respectivement à une ou plusieurs images de référence correspondant à l’image courante.

[0092] Plusieurs vecteurs de mouvement peuvent être ainsi obtenus, pour une pluralité de blocs de l’image courante, chaque vecteur de mouvement correspondant à un bloc et à une image de référence, et représentant par exemple le déplacement du bloc correspondant et sa mesure de distorsion (par exemple de type SAD) associée.

[0093] Par exemple, dans un ou plusieurs modes de réalisation, l’analyse d’estimation de mouvement effectuée sur l’image courante peut générer un ensemble {v j (Ax j ,-Ay j ),SAD j ( j )} de vecteurs de mouvement à deux composantes de déplacement (par exemple une composante Ax j correspondant à un déplacement selon une première dimension dans un repère de l’image de référence correspondante et une composante Ay j correspondant à un déplacement selon une deuxième dimension dans le repère), auxquels est associé un paramètre SAD j de mesure de distorsion (par exemple une mesure de SAD) respectif.

[0094] Un ou plusieurs histogrammes peuvent ensuite être créés sur la base d’un ensemble de vecteurs de mouvement (correspondant à une image de référence).

[0095] Dans un ou plusieurs modes de réalisation, on peut ainsi distribuer (202) des vecteurs de mouvement parmi la pluralité de vecteurs de mouvement déterminés dans des classes d’un premier histogramme.

[0096] La distribution des vecteurs de mouvement pour créer le premier histogramme peut être effectuée sur la base d’un critère de correspondance choisi en fonction du mode de réalisation.

[0097] Par exemple, dans un ou plusieurs modes de réalisation, le critère de correspondance utilisé pourra être relatif à une ou plusieurs composantes du vecteur de mouvement auquel il est appliqué pour distribuer le vecteur dans une classe de l'histogramme. Chaque composante pourra avantageusement être choisie parmi des composantes de déplacement (composante Ax j et/ou composante Ay j ) déterminées pour le vecteur de mouvement à distribuer.

[0098] En outre, en fonction du mode de réalisation choisi, tout ou partie des vecteurs de mouvement pourront être distribués pour la génération d’un histogramme. Dans un ou plusieurs modes de réalisation, tous les vecteurs de mouvement déterminés pourront être distribués dans les différentes classes d’un ou de plusieurs histogrammes selon des critères de correspondance choisis. Dans d’autres modes de réalisation, une partie seulement des vecteurs de mouvement déterminés seront utilisés pour la constitution de chaque histogramme parmi le ou les histogrammes utilisés.

[0099] Différents modes de réalisation pour la génération d’un ou de plusieurs histogrammes de vecteurs de mouvement sont décrits plus en détails ci-dessous. [0100] Dans un ou plusieurs modes de réalisation, le procédé proposé prévoit de sélectionner (203) une première classe du premier histogramme sur la base d’un critère de sélection une fois le premier histogramme constitué.

[0101] Dans un ou plusieurs modes de réalisation, on pourra ensuite déterminer (204) un vecteur de mouvement global de l’image sur la base d’un vecteur de mouvement correspondant à la première classe sélectionnée dans l'histogramme.

[0102] Dans un ou plusieurs modes de réalisation, le procédé proposé pourra n’utiliser qu’un seul histogramme (H 1), généré sur la base d’un premier mode de classification de vecteurs de mouvement parmi l’ensemble des vecteurs de mouvements obtenus par analyse d’estimation de mouvement de l’image courante. Les vecteurs de mouvements utilisés pour cette classification pourront correspondre à au moins un paramètre de déplacement, par exemple sous la forme d’une ou plusieurs coordonnées de déplacement selon des directions d’un repère normé, et à un paramètre de distance entre les blocs auxquels le vecteur correspond situés respectivement dans l’image courante et dans une image de référence (par exemple pour caractériser le déplacement entre un projeté du bloc courant dans l’image de référence et le bloc de l’image de référence vers lequel le vecteur pointe).

[0103] Dans ce qui suit, on considère l’exemple non limitatif de deux composantes de déplacement (par exemple une composante Ax j correspondant à un déplacement selon une première dimension dans un repère de l’image de référence et une composante Ay,· correspondant à un déplacement selon une deuxième dimension dans le repère), et d’une composante SAD j de mesure de distorsion (par exemple une mesure de SAD). Néanmoins, l’homme du métier pourra se rendre compte que toutes autres composantes d’un vecteur de mouvement convenant pour une classification dans un histogramme, comme par exemple toutes autres composantes de déplacement, et/ou tout autre composante de mesure de distorsion pour le vecteur de mouvement, pourront être utilisés à la place ou en complément des composantes Ax jt Ay,· et/ou SAD j , qui sont décrites seulement à titre d’exemple. [0104] Dans un ou plusieurs modes de réalisation, le critère de correspondance pourra comprendre un critère d’identité deux à deux, pour deux vecteurs de mouvement, des valeurs respectives de composantes représentant une translation selon une dimension respective de l’image de référence correspondante.

[0105] Selon le premier mode de classification de vecteurs de mouvement, les vecteurs ayant des paires de composantes de déplacement ( Ax j ; Ay,·) identiques pourront être distribués dans une même classe de vecteurs de mouvement. Par exemple, deux vecteurs ^(Ax^Ay ) et v k (Ax ;A y k ) ayant des composantes de déplacements identiques deux à deux (Ac έ = Ax k et Ayi = Ay fc ) pourront être distribués dans une même classe sur la base de leurs composantes identiques.

[0106] Ainsi, dans un ou plusieurs modes de réalisation, le critère de correspondance peut être défini comme étant rempli dans le cas où une ou plusieurs des valeurs respectives de composantes de deux vecteurs de mouvement, les composantes représentant une translation selon une dimension respective de l’image de référence correspondante, sont identiques.

[0107] Dans ces modes de réalisation, le critère de correspondance appliqué à au moins une composante du vecteur de mouvement à distribuer dans une classe comprend un critère d’identité de cette composante avec les autres vecteurs de la classe. Dans l’exemple décrit précédemment, le critère de correspondance comprend un critère d’identité deux à deux de composantes de déplacement du vecteur avec les composantes de déplacement d’un autre vecteur de la classe.

[0108] Dans un ou plusieurs modes de réalisation, une nouvelle classe de vecteurs de l’histogramme H1 peut être créée pour y distribuer un vecteur de mouvement pour lequel aucune classe de l’histogramme H1 permettant de distribuer le vecteur sur la base du critère de correspondance n’existe encore lors de la distribution du vecteur dans l’une des classes de l’histogramme.

[0109] En variante, la distribution des vecteurs dans des classes pourra être mise en oeuvre en utilisant un tableau, par exemple bi-dimensionnel, dont les entrées correspondent respectivement à des paires de coordonnées (composantes de déplacement), que l’on remplit en y classant les vecteurs sélectionnés pour générer l’histogramme Hl. Cette mise en œuvre, qui implique un stockage en mémoire d’un tableau de dimension(s) correspondant au nombre de combinaisons possibles de paires de coordonnées de vecteurs, a l’avantage de permettre une distribution des vecteurs dans des classes très rapide, du fait de sa simplicité d’un point de vue complexité des calculs, puisqu’elle n’utilise pas des classes créées dynamiquement mais a priori.

[0110] Dans un ou plusieurs modes de réalisation, les vecteurs de mouvement distribués dans des classes de l’histogramme Hl peuvent être au préalable sélectionnés parmi les vecteurs de mouvement déterminés sur la base d’un critère de pertinence. Le critère de pertinence utilisé peut avoir pour objet d’éviter de sélectionner pour la distribution dans des classes de l’histogramme des vecteurs de mouvement peu pertinents, par exemple eu égard à une valeur de métrique de distorsion correspondante, et qui auraient pu être sélectionnés faute de meilleurs vecteurs obtenus lors de l’analyse d’estimation de mouvement. Le critère de pertinence pourra donc, dans un ou plusieurs modes de réalisation, être avantageusement défini sur la base d’une ou plusieurs métriques de distorsion.

[0111] Dès lors, dans un ou plusieurs modes de réalisation, le critère de pertinence pourra comprendre une comparaison d’une valeur de métrique de distorsion calculée pour le vecteur de mouvement à un seuil prédéterminé. Le seuil prédéterminé pourra être avantageusement choisi en fonction du type de métrique de distorsion utilisé pour le critère de pertinence.

[0112] Dans un ou plusieurs modes de réalisation, la valeur de métrique de distorsion utilisée pourra être de type SAD, comme décrit ci-dessus. Dans d’autres modes de réalisation, la valeur de métrique de distorsion utilisée pourra en outre utiliser une métrique dite « AUTOSAD », par exemple lors de l’utilisation d’un critère de type SAD/AUTOSAD (rapport de la valeur de SAD sur la valeur de l’AUTOSAD), comme décrit ci-dessus.

[0113] Dans ce qui suit, on considère l’exemple non limitatif d’un critère de pertinence utilisant une mesure de distorsion de type SAD/AUTOSAD et des valeurs de seuil correspondantes. Néanmoins, l’homme du métier pourra se rendre compte que tout autre critère convenant pour une mesure de la pertinence d’une affectation d’un vecteur de mouvement dans une classe de l’histogramme, sur la base notamment de toute mesure de distorsion utilisable pour cet objet, pourra être utilisé à la place ou en complément d’un critère sur la base d’une mesure de SAD/AUTOSAD, qui n’est ici décrit qu’à titre d’exemple non limitatif.

[0114] On pourra choisir, dans un ou plusieurs modes de réalisation utilisant un critère de pertinence utilisant une mesure de distorsion de type SAD/AUTOSAD, un seuil de comparaison dans l’intervalle [-1/2 ; +8], par exemple égal à 2.

[0115] Ainsi, dans un ou plusieurs modes de réalisation, un histogramme H1 est généré à partir de vecteurs de mouvement de l’ensemble de vecteurs de mouvement déterminés pour l’image courante, sur la base d’un critère de correspondance selon lequel les vecteurs ayant des composantes de déplacement identiques deux à deux selon des directions respectives sont distribués dans la même classe, éventuellement après avoir été sélectionnés sur la base d’un critère de pertinence comparant une valeur de SAD/AUTOSAD qui leur est associée à un seuil prédéterminé, par exemple choisi égal à 2. Par exemple, les vecteurs issus de l’analyse d’estimation de mouvement peuvent tout d’abord être sélectionnés sur la base du critère de pertinence, et peuvent n’être retenus que les vecteurs dont la valeur de SAD/AUTOSAD n’excède pas le seuil. Une fois sélectionnés, ces vecteurs peuvent être ensuite distribués dans des classes afin de constituer l'histogramme H 1.

[0116] Dans un ou plusieurs modes de réalisation, le procédé proposé pourra utiliser un histogramme H2 généré sur la base du premier mode de classification de vecteurs de mouvement parmi l’ensemble des vecteurs de mouvements obtenus par analyse d’estimation de mouvement de l’image courante. Les vecteurs de mouvements utilisés pour cette classification pourront correspondre à au moins un paramètre de déplacement, par exemple sous la forme d’une ou plusieurs coordonnées de déplacement selon des directions d’un repère normé (correspondant respectivement à des dimensions), et à un paramètre de distance entre les blocs auxquels le vecteur correspond situés respectivement dans l’image courante et dans une image de référence. [0117] Dans un ou plusieurs modes de réalisation, le critère de correspondance pourra comprendre un critère d’identité deux à deux, pour deux vecteurs de mouvement, des valeurs respectives de composantes représentant une translation selon une dimension respective de l’image de référence correspondante.

[0118] Selon le premier mode de classification de vecteurs de mouvement, les vecteurs ayant des paires de composantes de déplacement ( Ax j ; Ay,·) identiques pourront être distribués dans une même classe de vecteurs de mouvement. Par exemple, deux vecteurs ^(Ax^Ay ) et v k (Ax ;A y k ) ayant des composantes de déplacements identiques deux à deux (Ac έ = Ax k et Ayi = Ay fc ) pourront être distribués dans une même classe sur la base de leurs composantes identiques.

[0119] Ainsi, dans un ou plusieurs modes de réalisation, le critère de correspondance peut être défini comme étant rempli dans le cas où une ou plusieurs des valeurs respectives de composantes de deux vecteurs de mouvement, les composantes représentant une translation selon une dimension respective de l’image de référence correspondante, sont identiques.

[0120] De même que pour l’histogramme Hl, dans un ou plusieurs modes de réalisation, une nouvelle classe de vecteurs de l’histogramme H2 peut être créée pour y distribuer un vecteur de mouvement pour lequel aucune classe de l’histogramme H2 permettant de distribuer le vecteur sur la base du critère de correspondance n’existe encore lors de la distribution du vecteur dans l’une des classes de l’histogramme H2 . En variante, on peut utiliser un tableau bidimensionnel, dans le cas de vecteurs à deux coordonnées, stocké en mémoire et que l’on remplit en y associant des vecteurs avec leurs entrées correspondantes.

[0121] Dans un ou plusieurs modes de réalisation, l’histogramme H2 pourra représenter les moyennes des valeurs d’un critère de distorsion, par exemple le SAD, des vecteurs de chaque classe. Ainsi, dans un ou plusieurs modes de réalisation, un histogramme H2 est généré à partir de vecteurs de mouvement de l’ensemble de vecteurs de mouvement déterminés pour l’image courante, sur la base d’un critère de correspondance selon lequel les vecteurs ayant des composantes de déplacement identiques deux à deux selon des directions respectives sont distribués dans la même classe, puis on détermine pour chaque classe de l'histogramme H2 une moyenne des valeurs de distorsion (par exemple des valeurs de SAD) respectivement associées aux vecteurs de la classe. Par exemple, on ajoute chaque vecteur dans la classe qui lui correspond sur la base de l’identité de sa/ses coordonnées avec celles de la classe, puis lorsque l'histogramme est terminé (par exemple lorsque tous les vecteurs utilisés pour générer l’histogramme ont été distribués dans des classes respectives), on effectue une combinaison des valeurs de SAD correspondant aux vecteurs de tout ou partie des classes de l'histogramme. Par exemple, pour chaque classe de l'histogramme, on calcule une combinaison linéaire des valeurs de SAD correspondant aux vecteurs de mouvement de la classe. En particulier, dans un ou plusieurs modes de réalisation, on calcule une moyenne (par exemple une moyenne arithmétique) des valeurs de SAD correspondant aux vecteurs de mouvement de la classe. Par exemple, si l’histogramme H2 comprend C classes [ c H2,i} i-1 c . chaque classe C H2 i comprenant un nombre N t de vecteurs de mouvement {p fe i } fc i N auxquels sont respectivement associées N t valeurs de SAD {SAD k i } k=i N , on calcule une combinaison de ces valeurs de SAD pour la classe C H2 ,i , par exemple une moyenne de ces valeurs de SAD de type :

[0122] Dans un ou plusieurs modes de réalisation, aucune sélection pourra n’être effectuée sur les vecteurs issus de l’analyse d’estimation de mouvement préalablement à la génération de l'histogramme H2.

[0123] En variante, de manière similaire au schéma de sélection décrit ci-dessus pour l’histogramme H 1, une sélection pourra être effectuée sur les vecteurs de mouvement issus de l’analyse d’estimation de mouvement sur la base d’un critère de pertinence, par exemple en comparant une valeur de SAD/AUTOSAD associée à chaque vecteur à un seuil prédéterminé, par exemple choisi égal à 2, afin de ne pas distribuer dans les classes de l'histogramme des vecteurs non pertinents qui ont pu avoir été retenus lors de l’estimation de mouvement faute de trouver de meilleurs vecteurs (en termes de distorsion). Par exemple, les vecteurs issus de l’analyse d’estimation de mouvement peuvent tout d’abord être sélectionnés sur la base du critère de pertinence, et peuvent n’être retenus que les vecteurs dont la valeur de SAD/AUTOSAD n’excède pas le seuil. Une fois sélectionnés, ces vecteurs peuvent être ensuite distribués dans des classes afin de constituer l’histogramme.

[0124] Ainsi, dans un ou plusieurs modes de réalisation, un histogramme H3 est généré à partir de vecteurs de mouvement de l’ensemble de vecteurs de mouvement déterminés pour l’image courante, sur la base d’un critère de correspondance selon lequel les vecteurs ayant des composantes de déplacement identiques deux à deux selon des directions respectives sont distribués dans la même classe, en déterminant pour chaque classe la moyenne des valeurs de SAD des vecteurs de la classe, après avoir été sélectionnés sur la base d’un critère de pertinence comparant une valeur de SAD/AUTOSAD qui leur est associée à un seuil prédéterminé, par exemple choisi égal à 2. Cela permettra, à la différence de l'histogramme H 1, de sélectionner une classe, non pas sur la base du nombre d’éléments de chaque classe, mais sur la base d’une comparaison de combinaisons des valeurs de distorsion associées aux vecteurs de chaque classe, par exemple d’une comparaison des moyennes des valeurs de SAD des vecteurs de mouvement de chaque classe.

[0125] Dans un ou plusieurs modes de réalisation, le procédé proposé pourra utiliser plusieurs histogrammes, chacun générés sur la base d’un mode respectif de classification de vecteurs de mouvement parmi l’ensemble des vecteurs de mouvements obtenus par analyse d’estimation de mouvement de l’image courante. Les vecteurs de mouvements utilisés pour cette classification pourront correspondre à au moins un paramètre de déplacement, par exemple sous la forme d’une ou plusieurs coordonnées de déplacement selon des directions d’un repère normé, et à un paramètre de distance entre les blocs auxquels le vecteur correspond situés respectivement dans l’image courante et dans une image de référence.

[0126] Dans un ou plusieurs modes de réalisation, le critère de correspondance pourra comprendre un critère d’identité, pour deux vecteurs de mouvement, des valeurs respectives de composantes représentant une translation selon une dimension respective de l’image de référence correspondante. Ce critère de correspondance pourra ainsi être appliqué pour chacune des dimensions de l’image courante, pour générer un histogramme correspondant.

[0127] Selon un deuxième mode de classification de vecteurs de mouvement, les vecteurs ayant des composantes de déplacement selon une première dimension identiques ( Axj ) pourront être distribués dans une même classe de vecteurs de mouvement d’un premier histogramme HA . Par exemple, deux vecteurs ViÇAxi) Ag[) et v k (Ax k ; Ay k ) ayant des composantes de déplacements selon une première dimension identiques (Ax t = Ax k ) pourront être distribués dans une même classe du premier histogramme HA sur la base de leurs composantes identiques.

[0128] Selon un troisième mode de classification de vecteurs de mouvement, les vecteurs ayant des composantes de déplacement selon une première dimension identiques (Ay ; ) pourront être distribués dans une même classe de vecteurs de mouvement d’un deuxième histogramme HS . Par exemple, deux vecteurs Vi(Axi) Ay[) et v k (Ax k ; Ay k ) ayant des composantes de déplacements selon une deuxième dimension identiques ( Ay t = Ay k ) pourront être distribués dans une même classe du deuxième histogramme HS sur la base de leurs composantes identiques.

[0129] Dans un ou plusieurs modes de réalisation, une nouvelle classe de vecteurs de chaque histogramme peut être créée pour y distribuer un vecteur de mouvement pour lequel aucune classe de l’histogramme permettant de distribuer le vecteur sur la base du critère de correspondance n’existe encore lors de la distribution du vecteur dans l’une des classes de l’histogramme. En variante, on pourra générer chaque ensemble de classes en remplissant des tables stockées en mémoire dont les entrées correspondent respectivement à des classes.

[0130] On pourra ainsi, dans un ou plusieurs modes de réalisation, distribuer tout ou partie des vecteurs de mouvement générés lors de l’analyse d’estimation de mouvement dans deux histogrammes, un premier histogramme rassemblant les vecteurs de mouvement ayant des composantes de déplacements selon une première dimension (par exemple des coordonnées Ax j ) identiques dans des classes, et le deuxième histogramme rassemblant les vecteurs de mouvement ayant des composantes de déplacements selon une deuxième dimension (par exemple des coordonnées Ay } ) identiques dans des classes. Le premier histogramme H4 pourra donc représenter les nombres de coordonnées Ax j identiques, et le deuxième histogramme H5 représenter les nombres de coordonnées Ay j identiques.

[0131] Dans un ou plusieurs modes de réalisation, les vecteurs de mouvement distribués dans des classes des premier et/ou deuxième histogrammes pourront être au préalable sélectionnés parmi les vecteurs de mouvement déterminés sur la base d’un critère de pertinence, comme décrit ci-dessus pour les cas de figure où un seul histogramme est utilisé. Là encore, le critère de pertinence utilisé peut avoir pour objet d’éviter de sélectionner pour la distribution dans des classes de l’histogramme des vecteurs de mouvement peu pertinents, par exemple eu égard à une valeur de métrique de distorsion correspondante, et qui auraient pu être sélectionnés faute de meilleurs vecteurs obtenus lors de l’analyse d’estimation de mouvement. Le critère de pertinence pourra donc, dans un ou plusieurs modes de réalisation, être avantageusement défini sur la base d’une ou plusieurs métriques de distorsion.

[0132] Dès lors, dans un ou plusieurs modes de réalisation, le critère de pertinence pourra comprendre une comparaison d’une valeur de métrique de distorsion calculée pour le vecteur de mouvement à un seuil prédéterminé. Le seuil prédéterminé pourra être avantageusement choisi en fonction du type de métrique de distorsion utilisé pour le critère de pertinence.

[0133] Dans un ou plusieurs modes de réalisation, la valeur de métrique de distorsion utilisée pourra être de type SAD, comme décrit ci-dessus. Dans d’autres modes de réalisation, la valeur de métrique de distorsion utilisée pourra en outre utiliser une métrique dite « AUTOSAD », par exemple lors de l’utilisation d’un critère de type SAD/AUTOSAD (rapport de la valeur de SAD sur la valeur de l’AUTOSAD), comme décrit ci-dessus. [0134] On pourra notamment choisir, dans un ou plusieurs modes de réalisation utilisant un critère de pertinence utilisant une mesure de distorsion de type SAD/AUTOSAD, un seuil de comparaison dans l’intervalle [-1/2 ; +8], par exemple égal à 2.

[0135] Ainsi, dans un ou plusieurs modes de réalisation, deux histogrammes H4 et H 5 sont générés à partir de vecteurs de mouvement de l’ensemble de vecteurs de mouvement déterminés pour l’image courante, sur la base d’un critère de correspondance selon lequel les vecteurs ayant des composantes de déplacement Identiques selon une dimension de l’image de référence correspondante sont distribués dans la même classe de l’histogramme respectif, éventuellement après avoir été sélectionnés sur la base d’un critère de pertinence comparant une valeur de SAD/AUTOSAD qui leur est associée à un seuil prédéterminé, par exemple choisi égal à 2. Par exemple, les vecteurs issus de l’analyse d’estimation de mouvement peuvent tout d’abord être sélectionnés sur la base du critère de pertinence, et peuvent n’être retenus que les vecteurs dont la valeur de SAD/AUTOSAD n’excède pas le seuil. Une fois sélectionnés, ces vecteurs peuvent être ensuite distribués dans des classes afin de constituer les premier et deuxième histogrammes H4 et H 5.

[0136] Dans un ou plusieurs modes de réalisation, le procédé proposé pourra utiliser plusieurs histogrammes, chacun générés sur la base d’un mode respectif de classification de vecteurs de mouvement parmi l’ensemble des vecteurs de mouvements obtenus par analyse d’estimation de mouvement de l’image courante. De manière similaire à la génération des histogrammes H4 et HS, les vecteurs de mouvements utilisés pour cette classification pourront correspondre à au moins un paramètre de déplacement, par exemple sous la forme d’une ou plusieurs coordonnées de déplacement selon des directions d’un repère normé de l’image de référence, et à un paramètre de distance entre les blocs auxquels le vecteur correspond situés respectivement dans l’image courante et dans une image de référence.

[0137] Dans un ou plusieurs modes de réalisation, comme décrit ci-dessus pour les histogrammes H4 et HS, le critère de correspondance pourra comprendre un critère d’identité, pour deux vecteurs de mouvement, des valeurs respectives de composantes représentant une translation selon une dimension respective de l’image de référence correspondante. Ce critère de correspondance pourra ainsi être appliqué pour chacune des dimensions de l’image courante, pour générer un histogramme correspondant.

[0138] Des classes d’histogramme pourront être ainsi générées comme décrit ci- dessus pour les histogrammes HA et HS pour constituer deux histogrammes H6 et H7.

[0139] Dans un ou plusieurs modes de réalisation, les histogrammes H 6 et H 7 pourront chacun représenter des combinaisons de valeurs d’un critère de distorsion (calculées pour les vecteurs de chaque classe), par exemple la SAD, respectivement associées aux vecteurs de chacune de leurs classes respectives. Ainsi, dans un ou plusieurs modes de réalisation, deux histogrammes H6 et H 7 pourront être générés à partir de vecteurs de mouvement de l’ensemble de vecteurs de mouvement déterminés pour l’image courante, sur la base de critères de correspondance selon lequel les vecteurs ayant des composantes de déplacement identiques selon une dimension respective sont distribués dans la même classe, en représentant pour chaque classe une combinaison des valeurs de SAD des vecteurs de la classe.

[0140] Par exemple, pour chaque classe de chacun des histogrammes H6 et H7, on pourra calculer une combinaison linéaire des valeurs de SAD correspondant aux vecteurs de mouvement de la classe. En particulier, dans un ou plusieurs modes de réalisation, on pourra calculer une moyenne (par exemple une moyenne arithmétique) des valeurs de SAD correspondant aux vecteurs de mouvement de la classe. Par exemple, si l'histogramme H6 (ou H 7 ) comprend C classes {C /i6, i}._ 1 c , chaque classe C H6 i comprenant un nombre N t de vecteurs de mouvement {v k i } k i N auxquels sont respectivement associées i valeurs de on calcule une combinaison de ces valeurs de SAD pour la classe C H6 i , par exemple une moyenne de ces valeurs de SAD de type :

[0141] Ainsi, dans un ou plusieurs modes de réalisation, l'histogramme H 6 pourra représenter les moyennes des valeurs de SADs déterminées pour les vecteurs des classes respectives de vecteurs aux coordonnées Dc identiques, et l'histogramme H7 pourra représenter les moyennes des valeurs de SADs déterminées pour les vecteurs des classes respectives de vecteurs aux coordonnées Ay identiques. On pourra par exemple calculer une moyenne des valeurs de SADs associées aux vecteurs de mouvement d’une même classe, pour une ou plusieurs classes, voire chacune des classes des histogrammes H6 et H 7.

[0142] Dans un ou plusieurs modes de réalisation, aucune sélection pourra n’être effectuée sur les vecteurs issus de l’analyse d’estimation de mouvement préalablement à la génération de l’histogramme H6 ou H 7.

[0143] En variante, de manière similaire au schéma de sélection décrit ci-dessus pour l’histogramme H 1, une sélection pourra être effectuée sur les vecteurs de mouvement issus de l’analyse d’estimation de mouvement sur la base d’un critère de pertinence, par exemple en comparant une valeur de SAD/AUTOSAD associée à chaque vecteur à un seuil prédéterminé, par exemple choisi égal à 2, afin de ne pas distribuer dans les classes de l’un et/ou l’autre des histogrammes des vecteurs non pertinents qui ont pu avoir été retenus lors de l’estimation de mouvement faute de trouver de meilleurs vecteurs (par exemple en termes de distorsion). Par exemple, les vecteurs issus de l’analyse d’estimation de mouvement peuvent tout d’abord être sélectionnés sur la base du critère de pertinence, et peuvent n’être retenus que les vecteurs dont la valeur de SAD/AUTOSAD n’excède pas le seuil. Une fois sélectionnés, ces vecteurs peuvent être ensuite distribués dans des classes respectives afin de constituer deux histogrammes H8 et H9, la distribution des vecteurs dans des classes étant effectuée de manière similaire à ce qui est décrit ci-dessus pour les histogrammes H 6 et H 7, selon un ou plusieurs modes de réalisation. [0144] Dans un ou plusieurs modes de réalisation, les histogrammes H 8 et H9 pourront chacun représenter des combinaisons de valeurs d’un critère de distorsion (calculées pour les vecteurs de chaque classe), par exemple la SAD, respectivement associées aux vecteurs de chacune de leurs classes respectives. [0145] Ainsi, dans un ou plusieurs modes de réalisation, deux histogrammes H8 et

H9 pourront être générés à partir de vecteurs de mouvement d’un ensemble de vecteurs de mouvement déterminés pour l’image courante, sur la base de critères de correspondance selon lequel les vecteurs ayant des composantes de déplacement identiques selon une dimension respective sont distribués dans la même classe, en représentant pour chaque classe une combinaison (par exemple une moyenne, par exemple arithmétique) des valeurs de SAD des vecteurs de la classe, après avoir été sélectionnés sur la base d’un critère de pertinence comparant une valeur de SAD/AUTOSAD qui leur est associée à un seuil prédéterminé, par exemple choisi égal à 2. [0146] Par exemple, pour chaque classe de chacun des histogrammes H8 et H9, on pourra calculer une combinaison linéaire des valeurs de SAD correspondant aux vecteurs de mouvement de la classe. En particulier, dans un ou plusieurs modes de réalisation, on pourra calculer une moyenne (par exemple une moyenne arithmétique) des valeurs de SAD correspondant aux vecteurs de mouvement de la classe. Par exemple, si l’histogramme H8 (ou H9 ) comprend C classes { c H8,i} i=1 c . chaque classe C H8 i comprenant un nombre N t de vecteurs de mouvement {î7 fc i } fc=i N auxquels sont respectivement associées i valeurs de SAD { SAD k i } k=i N , on calcule une combinaison de ces valeurs de SAD pour la classe C m i , par exemple une moyenne de ces valeurs de SAD de type :

[0147] Par exemple, l’histogramme H 8 pourra représenter les moyennes des valeurs de SADs déterminées pour les vecteurs des classes respectives de vecteurs de mouvement aux coordonnées Dc identiques, et l'histogramme H9 pourra représenter les moyennes des valeurs de SADs déterminées pour les vecteurs des classes respectives de vecteurs de mouvement aux coordonnées Ay identiques, les vecteurs utilisés pour générer les histogrammes H8 et H9 ayant été au préalable sélectionnés parmi l’ensemble des vecteurs de mouvement générés par l’analyse d’estimation de mouvement sur la base d’un critère de pertinence. On pourra par exemple calculer une moyenne des valeurs de SADs associées aux vecteurs de mouvement d’une même classe, pour une ou plusieurs classes, voire chacune des classes des histogrammes H 8 et H 9.

[0148] Différents modes de réalisation de la détermination du vecteur de mouvement global de l’image sont maintenant décrits, en référence aux différents modes de réalisation pour générer un ou plusieurs histogrammes décrits ci-dessus.

[0149] En référence aux modes de réalisation dans lesquels un histogramme de type l’histogramme H 1 décrit ci-dessus est généré, un vecteur de mouvement global pour l’image courante v^°^ 1 peut être déterminé en sélectionnant la classe de l’histogramme (par exemple l'histogramme H 1) ayant le plus grand nombre d’éléments. Dans le cas où plusieurs classes de l'histogramme contiennent le plus grand nombre d’éléments, un critère supplémentaire de sélection peut être appliqué. Par exemple, ce critère supplémentaire de sélection peut consister à sélectionner la première classe de l’histogramme parmi les classes qui contiennent le plus d’éléments. En variante, ce critère supplémentaire de sélection peut utiliser une combinaison des valeurs de distorsion associées aux vecteurs de chacune des classes qui contiennent le plus d’éléments, comme par exemple une moyenne de ces valeurs de distorsion.

[0150] La classe sélectionnée correspond à des composantes de vecteur de mouvement, sur la base desquelles la classe a été constituée. Par exemple, la classe sélectionnée correspond à des composantes de déplacement selon des dimensions respectives AX A et/ou Ay A des vecteurs de mouvement compris dans la classe.

[0151] Un vecteur de mouvement global v^ o uv 1 peut alors être déterminé sur la base d’un vecteur de mouvement correspondant à la classe sélectionnée. Dans l’exemple précédent, chaque vecteur de la classe ayant des composantes AX A et Ly A , le vecteur de mouvement global de l’image courante peut être déterminé comme ayant ces composantes A¾et Ay A :

[0152] En référence aux modes de réalisation dans lesquels un histogramme de type l'histogramme H 2 ou H3 décrit ci-dessus est généré, un vecteur de mouvement global pour l’image courante peut être déterminé en sélectionnant la classe de l’histogramme (par exemple l’histogramme H 2 ou l’histogramme H3) correspondant à la valeur inverse de la combinaison (par exemple la moyenne) des valeurs de SAD la plus élevée parmi les valeurs de combinaisons (par exemple les valeurs de moyenne) de valeurs de SAD utilisées pour générer l’histogramme. Dans le cas où plusieurs classes de l'histogramme peuvent être sélectionnées parce qu’elles remplissent le critère de sélection, un critère supplémentaire de sélection peut être appliqué. Par exemple, ce critère supplémentaire de sélection peut consister à sélectionner la première classe de l’histogramme parmi les classes qui peuvent être sélectionnées.

[0153] Pour reprendre l’exemple de l’histogramme H 2 (cet exemple étant transposable au mode de réalisation de l'histogramme H 3 pour ce qui suit) dans le cas où l’histogramme H2 comprend C 2 classes {C H2 i }. =l C2 , chaque class eC H2 i comprenant un nombre/^ de vecteurs de mouvement{v fc £ } fc=i N auxquels sont respectivement associées N t valeurs de SAD [SAD k i } k=i N , on pourra calculer pour chaque classe une combinaison de ces valeurs de SAD. Par exemple, pour la classe C H2 i , on pourra calculer une combinaison des N t valeurs de SAD r exemple une moyenne de ces valeurs de SAD de type : On obtiendra ainsi Ni valeurs de moyenne M £ , chacune correspondant à une classe respective C H2 i . On pourra alors, dans un ou plusieurs modes de réalisation, déterminer les inverses ^/ M, des N t valeurs de moyenne M i t et sélectionner une classe de l’histogramme H2 dont la valeur d’inverse de moyenne est la plus élevée parmi les valeurs d’inverse de moyennes respectives des classes de l'histogramme H2. [0154] La classe sélectionnée correspondra à une combinaison (par exemple une moyenne) de valeurs de SAD pour des vecteurs ayant des composantes de déplacement identiques deux à deux, et donc indirectement à des composantes de déplacement de vecteurs de mouvement, sur la base desquelles la classe a été constituée. Par exemple, la classe sélectionnée correspondra à des composantes de déplacement selon des dimensions respectives Ax B et Ay B des vecteurs de mouvement correspondant à la classe sélectionnée.

[0155] Un vecteur de mouvement global peut alors être déterminé sur la base d’un vecteur de mouvement correspondant à la classe sélectionnée. Dans l’exemple précédent, chaque vecteur de la classe ayant des composantes Ax B et Ay B , le vecteur de mouvement global de l’image courante peut être déterminé comme ayant ces composantes Ax B et Ay B : .

[0156] En référence aux modes de réalisation dans lesquels deux histogrammes de type des histogrammes HA et H 5 décrit ci-dessus sont générés, les classes de chacun de ces histogrammes correspondant à une composante de déplacement selon une dimension respective (par exemple une composante Ax selon une première dimension (par exemple horizontale) et une composante Ay selon une deuxième dimension (par exemple verticale)), un vecteur de mouvement global pour l’image courante v^ g ^ 1 peut être déterminé en sélectionnant dans chaque histogramme correspondant à une dimension (par exemple dans HA pour la dimension horizontale, et dans HS pour la dimension verticale) la classe ayant le plus grand nombre d’éléments. Dans le cas où plusieurs classes d’un des histogrammes contiennent le plus grand nombre d’éléments, un critère supplémentaire de sélection peut être appliqué. Par exemple, ce critère supplémentaire de sélection peut consister à sélectionner la première classe de l’histogramme parmi les classes qui contiennent le plus d’éléments. En variante, ce critère supplémentaire de sélection peut utiliser une combinaison des valeurs de distorsion (par exemple) associées aux vecteurs de chacune des classes qui contiennent le plus d’éléments, comme une moyenne de ces valeurs de distorsion. Dans un ou plusieurs modes de réalisation, ce critère supplémentaire de sélection peut tester différentes combinaisons (Ax i (HA ' );Ay j (HS) ' ) de classes issues respectivement des histogrammes HA et H 5 (dont au moins un histogramme comporte une pluralité de classes avec un plus grand nombre d’éléments) pour identifier si une ou plusieurs de ces combinaisons correspond à un des vecteurs de mouvement obtenus par l’analyse d’estimation de mouvement. Si une des combinaisons correspond à un vecteur de mouvement obtenu par l’analyse d’estimation de mouvement, elle peut être choisie et le vecteur de mouvement global être déterminé sur la base de cette combinaison. Par exemple, lorsque un premier histogramme (HA) comprend des classes formées avec des vecteurs de mouvement ayant des composantes selon une première dimension Ax identiques, et qu’un premier histogramme (H 5) comprend des classes formées avec des vecteurs de mouvement ayant des composantes selon une deuxième dimension Ay identiques, on peut sélectionner dans le premier histogramme (HA) la classe correspondant à la valeur Ax c la plus représentée, c’est-à-dire ayant le plus grand nombre d’éléments, et sélectionner dans le deuxième histogramme (H 5) la classe correspondant à la valeur Ay c la plus représentée, c’est-à-dire ayant le plus grand nombre d’éléments.

[0157] Les classes sélectionnées correspondent respectivement à des composantes de vecteur de mouvement, sur la base desquelles chacune d’elle a été constituée. Par exemple, les classes sélectionnées correspondent respectivement à des composantes de déplacement selon des dimensions respectives Ax c et Ay c des vecteurs de mouvement respectivement compris dans les classes.

[0158] Un vecteur de mouvement global v^ouv 1 P eut alors être déterminé sur la base des composantes de vecteur de mouvement correspondant respectivement aux classes sélectionnées dans les premier et deuxième histogrammes. Dans l’exemple précédent, les composantes de chacune des classes ayant respectivement des valeurs Ax c et Ay c , le vecteur de mouvement global de l’image courante peut être déterminé comme ayant ces composantes Ax c et Ay c : v^ouv Axc t Ay c .

[0159] En référence aux modes de réalisation dans lesquels deux histogrammes de type des histogrammes H 6 et H 7, ou H8 et H9 décrit ci-dessus sont générés, les classes de chacun de ces histogrammes correspondant à une composante de déplacement selon une dimension respective (par exemple une composante Ax selon une première dimension (par exemple horizontale) et une composante Ay selon une deuxième dimension (par exemple verticale)), un vecteur de mouvement global pour l’image courante peut être déterminé en sélectionnant dans chaque histogramme correspondant à une dimension (par exemple dans H6 ou H8 pour la dimension horizontale, et dans H7 ou H9 pour la dimension verticale) la classe de l’histogramme correspondant à la valeur inverse de la combinaison (par exemple la moyenne) des valeurs de SAD la plus élevée parmi les valeurs de combinaisons (par exemple les valeurs de moyenne) de valeurs de SAD utilisées pour générer l'histogramme. Dans le cas où plusieurs classes d’un histogramme peuvent être sélectionnées parce qu’elles remplissent le critère de sélection, un critère supplémentaire de sélection peut être appliqué. Par exemple, ce critère supplémentaire de sélection peut consister à sélectionner la première classe de l'histogramme parmi les classes qui peuvent être sélectionnées.

[0160] Pour reprendre l’exemple de l'histogramme H 6 (cet exemple étant transposable au mode de réalisation des histogrammes H 7, H8 et H9 pour ce qui suit) dans le cas où l'histogramme H6 comprend C6 classes c6 , chaque classe C H6 i comprenant un nombre N t de vecteurs de mouvement {/¾} fe=1 N auxquels sont respectivement associées N t valeurs de SAD {SAD k i } k i N , on pourra calculer pour chaque classe une combinaison de ces valeurs de SAD. Par exemple, pour la classe C H6 i , on pourra calculer une combinaison des N £ v aleurs de S par exemple une moyenne de ces valeurs de SAD de type N Q n obtiendra ainsi N t valeurs de moyenne Ai £ , chacune correspondant à une classe respective C H6 i . On pourra alors, dans un ou plusieurs modes de réalisation, déterminer les inverses M des /V £ valeurs de moyenne M £ , et sélectionner une classe de l'histogramme H 6 dont la valeur d’inverse de moyenne est la plus élevée parmi les valeurs d’inverse de moyennes respectives des classes de l’histogramme H6.

[0161] Pour chaque histogramme, la classe sélectionnée correspond à une combinaison (par exemple une moyenne) de valeurs de SAD pour des vecteurs ayant des composantes de déplacement selon une dimension identiques, et donc indirectement à des composantes de déplacement de vecteurs de mouvement, sur la base desquelles la classe a été constituée. Par exemple, la classe sélectionnée correspond, pour le premier histogramme (par exemple H 6 ou H 8), à une composante de déplacement selon une première dimension Ax c des vecteurs de mouvement correspondant à la classe sélectionnée dans ce premier histogramme, et pour le deuxième histogramme (par exemple H 7 ou H9), à une composante de déplacement selon une deuxième dimension Ay c des vecteurs de mouvement correspondant à la classe sélectionnée dans ce deuxième histogramme.

[0162] Un vecteur de mouvement global peut alors être déterminé sur la base des vecteurs de mouvement correspondant respectivement aux classes sélectionnées dans les premier et deuxième histogrammes. Dans l’exemple précédent, le vecteur de mouvement global de l’image courante peut être déterminé comme ayant les composantes Ax c e[ Ay c : Ay c ).

[0163] On décrit ci-après différents modes de réalisation proposés pour la détermination d’un vecteur de mouvement global pour une image d’un ensemble d’images.

[0164] Dans un ou plusieurs modes de réalisation, une pré-analyse peut être effectuée sur l’image à traiter, pour découper cette image en blocs, puis pour effectuer une analyse d’estimation de mouvement sur ces blocs. Par exemple, l’image courante peut être découpée en blocs de dimension 16 x 16 pixels, puis une estimation de mouvement de ces blocs peut être effectuée afin d’extraire, pour chaque bloc, un vecteur de mouvement (déterminé par des composantes) et une valeur de SAD associée à ce vecteur de mouvement. [0165] La figure 4a montre une image découpée en blocs de taille égale. Une analyse d’estimation de mouvement a été effectuée sur chacun des blocs de l’image sur la base d’une image de référence, générant au moins un vecteur de mouvement par bloc. Les vecteurs de mouvement identiques (par exemple dont les composantes correspondent respectivement à un déplacement horizontal Ax et à un déplacement vertical Ay sont deux à deux identiques) sont indiqués par des hachures d’orientation identique. Dans l’exemple illustré, l’analyse d’estimation de mouvement de l’image génère, pour une image de référence donnée, des ensembles de vecteurs de mouvement identiques comprenant respectivement 51 vecteurs (de composantes (59x ; 85y)), 11 vecteurs (de composantes (56x ; 495y)), 6 vecteurs (de composantes (19x ; 11y)), et 9 vecteurs (de composantes (1050x ; 32y)). Une valeur de SAD/AUTOSAD peut être calculée pour chaque vecteur, puis comparée à un seuil prédéterminé. Dans l’exemple illustré sur la figure 4a, parmi les 51 vecteurs de composantes (59x ; 85y), 45 vecteurs ont une valeur de SAD/AUTOSAD inférieure à 2 (les 6 autres vecteurs ayant une valeur de SAD/AUTOSAD supérieure à 2), parmi les 11 vecteurs de composantes (56x ; 495y), 10 vecteurs ont une valeur de SAD/AUTOSAD inférieure à 2 (1 autre vecteur ayant une valeur de SAD/AUTOSAD supérieure à 2), parmi les 6 vecteurs de composantes (19x ; 11 y), 1 vecteur a une valeur de SAD/AUTOSAD inférieure à 2 (les 5 autres vecteurs ayant une valeur de SAD/AUTOSAD supérieure à 2), et tous les 9 vecteurs de composantes (1050x ; 32y) ont une valeur de SAD/AUTOSAD inférieure à 2. Dans certains modes de réalisation, les 6 vecteurs de composantes (19x ; 11y) ne sont donc pas utilisés pour la construction d’un histogramme pour la mise en oeuvre du procédé proposé.

[0166] Dans un ou plusieurs modes de réalisation, un histogramme pourra ensuite être créé à partir de tous les vecteurs collectés, sans conditions d’entrée ni sur leurs tailles respectives, ni sur leurs valeurs de SAD respectives, afin de classifier le nombre de vecteurs de mouvement identiques, par exemple en distribuant les vecteurs de mouvement ayant des composantes identiques dans des classes. On pourra alors choisir comme vecteur global de l’image courante le vecteur (par exemple déterminé par la paire de composantes Ax et Ay correspondant respectivement à des dimensions de l’image courante) le plus représenté (en nombre) dans cet histogramme.

[0167] Dans un ou plusieurs modes de réalisation, les valeurs Dc et Ay de ce vecteur de mouvement global pourront avantageusement être seuillées (écrêtées) sur un intervalle prédéfini, comme par exemple l’intervalle [-512 ; +511] afin d’être normatives, et ainsi respecter une valeur de taille maximum imposée par une spécification de norme, par exemple.

[0168] Dans un ou plusieurs modes de réalisation, l’histogramme pourra être créé non pas à partir de tous les vecteurs collectés, mais seulement à partir des vecteurs collectés qui satisfont une ou plusieurs conditions d’entrée dans rhistogramme. Certains des vecteurs collectés seront donc sélectionnés pour créer l’histogramme, sur la base d’un ou plusieurs critères à remplir. Par exemple, dans un mode de réalisation particulier, un histogramme pourra être créé uniquement à partir des vecteurs collectés dont les valeurs Dc et Ay sont incluses dans un intervalle prédéfini, comme par exemple l’intervalle [-512 ; +511] (sans conditions d’entrée sur leurs valeurs de SAD), afin de distribuer dans des classes de rhistogramme des vecteurs qui ont une amplitude « nativement » normative, et ainsi par exemple classifier le nombre de vecteurs identiques qui ont cette amplitude normative. Cela permettra avantageusement d’éviter de modifier les composantes du vecteur de mouvement global une fois déterminées afin qu’elles soient normatives. On pourra alors choisir comme vecteur global de l’image courante le vecteur (par exemple déterminé par la paire de composantes Ax et Ay correspondant respectivement à des dimensions de l’image courante) le plus représenté (en nombre) dans rhistogramme. Etant donné que rhistogramme ne contiendra que des vecteurs ayant une amplitude normative, le vecteur global ainsi obtenu ne nécessitera avantageusement aucun seuillage.

[0169] Dans un ou plusieurs modes de réalisation, une pluralité de conditions d’entrée pourront être utilisés pour la création de rhistogramme. Par exemple, dans un mode de réalisation particulier, rhistogramme pourra être créé uniquement à partir de vecteurs de mouvement remplissant un critère de taille et un critère de distorsion. Les vecteurs sélectionnés pourront par exemple être les vecteurs de mouvement dont les valeurs Dc et Ay appartiennent à un intervalle prédéfini, comme par exemple l’intervalle [-512 ; +511], et dont la valeur « SAD/AUTOSAD » est inférieure à 2.

[0170] Dans un mode de réalisation, une valeur d’auto-distorsion (AUTOSAD) pourra être déterminée au préalable pour tout ou partie des blocs de l’image en cours de traitement. L’histogramme ne pourra être généré qu’en utilisant des vecteurs ayant une valeur de SAD/AUTOSAD inférieure à un seuil prédéterminé, par exemple choisi égal à 2. On pourra alors choisir comme vecteur global de l’image courante le vecteur (par exemple déterminé par la paire de composantes Dc et Ay correspondant respectivement à des dimensions de l’image courante) le plus représenté (en nombre) dans cet histogramme.

[0171] La figure 4b illustre un exemple d’histogramme construit à partir des résultats de l’estimation de mouvement illustrée en figure 4a et utilisant une présélection sur la base d’un critère de taille (la taille, par exemple exprimée en nombre de bits, des vecteurs sélectionnés pour construire l’histogramme devant appartenir à un intervalle prédéterminé, comme par exemple un intervalle de type [-(2 n-1 ); +(2 n-1 ) - 1] correspondant à des vecteurs de n bits signés (par exemple l’intervalle [-512 ;+511] qui correspond à des vecteurs de 10 bits signés) et sur la base d’un critère de pertinence de la valeur de distorsion associée au vecteur (par exemple la SAD, la pertinence de la SAD étant mesurée par la comparaison d’une valeur de SAD/AUTOSAD avec un seuil prédéterminé). Ainsi, les vecteurs de mouvement obtenus sur l’exemple de la figure 4a qui ont une taille ne remplissant pas un critère de présélection sur la taille (par exemple les 9 vecteurs de composantes (1050x ; 32y) n’ont pas la taille souhaitée de [- 512 ;+512]) et/ou qui ne remplissent pas un critère de pertinence de la SAD (par exemple les 6 vecteurs de composantes (59x ; 85y), le vecteur de composantes (56x ; 495y) et les 5 vecteurs de composantes (19x ; 11y) qui ont une valeur de SAD/AUTOSAD supérieure à 2) ne sont pas utilisés pour la construction de l’histogramme illustré sur la figure 4b. [0172] Dans un ou plusieurs modes de réalisation, deux histogrammes pourront être générés à partir de tous les vecteurs collectés, sans conditions d’entrée ni sur leurs tailles respectives, ni sur leurs valeurs de distorsion (par exemple leurs valeurs de SAD) respectives, afin de classifier dans chaque histogramme le nombre de vecteurs de mouvement ayant une composante de déplacement ( Ax ou Ay) identiques, par exemple en distribuant les vecteurs de mouvement ayant des composantes selon une dimension de l’image courante identiques dans des classes respectives des histogrammes. Par exemple, dans un mode de réalisation particulier, la procédé proposé pourra comprendre la création de deux histogrammes ne comportant pour l’un que les valeurs Dc des vecteurs de mouvement (translations horizontales) et pour l’autre que les valeurs Ay des vecteurs de mouvement (translations verticales), sans conditions d’entrée ni sur leurs amplitudes, ni sur leurs valeurs de distorsion (par exemple leurs valeurs de SAD), afin de classifier le nombre de Ax identiques et de Ay identiques dans des histogrammes respectifs.

[0173] On pourra alors choisir comme vecteur global de l’image courante le vecteur (par exemple déterminé par la paire de composantes Ax et Ay correspondant respectivement à des dimensions de l’image courante) le plus représenté (en nombre) dans l’histogramme correspondant. Par exemple, le vecteur global résultant pourra être issu de la combinaison des valeurs Ax et Ay les plus représentées, éventuellement seuillées sur l’intervalle [-512 ; +512].

[0174] Dans un ou plusieurs modes de réalisation, deux histogrammes pourront être générés à partir de tous les vecteurs collectés comme décrit précédemment, mais en utilisant des conditions d’entrée sur leurs tailles respectives et/ou sur leurs valeurs de distorsion (par exemple leurs valeurs de SAD) respectives. Par exemple, dans un mode de réalisation particulier, on pourra construire deux histogrammes (un pour les Ax et un pour les Ay), mais uniquement à partir des valeurs de Ax et de Ay directement incluses dans l’intervalle [-512 ; +512] Le vecteur global résultant sera ainsi issu de la combinaison des valeurs de Ax et de Ay les plus représentées et ne nécessitera avantageusement pas de seuillage. [0175] En fonction du mode de réalisation choisi, certains actes, actions, évènements ou fonctions de chacune des méthodes décrites dans le présent document peuvent être effectués ou se produire selon un ordre différent de celui dans lequel ils ont été décrits, ou peuvent être ajoutés, fusionnés ou bien ne pas être effectués ou ne pas se produire, selon le cas. En outre, dans certains modes de réalisation, certains actes, actions ou évènements sont effectués ou se produisent concurremment et non pas successivement.

[0176] Bien que décrits à travers un certain nombre d’exemples de réalisation détaillés, le procédé de pilotage proposé et le dispositif pour la mise en oeuvre d’un mode de réalisation du procédé comprennent différentes variantes, modifications et perfectionnements qui apparaîtront de façon évidente à l’homme de l’art, étant entendu que ces différentes variantes, modifications et perfectionnements font partie de la portée de la présente divulgation, telle que définie par les revendications qui suivent. De plus, différents aspects et caractéristiques décrits ci-dessus peuvent être mis en œuvre ensemble, ou séparément, ou bien substitués les uns aux autres, et l’ensemble des différentes combinaisons et sous-combinaisons des aspects et caractéristiques font partie de la portée de la présente divulgation. En outre, il se peut que certains systèmes et équipements décrits ci-dessus n’incorporent pas la totalité des modules et fonctions décrits pour les modes de réalisation préférés.