FR3111253A1 - IMAGE PROCESSING PROCESS AND EQUIPMENT FOR IMPLEMENTING THE PROCESS - Google Patents

IMAGE PROCESSING PROCESS AND EQUIPMENT FOR IMPLEMENTING THE PROCESS Download PDF

Info

Publication number
FR3111253A1
FR3111253A1 FR2005855A FR2005855A FR3111253A1 FR 3111253 A1 FR3111253 A1 FR 3111253A1 FR 2005855 A FR2005855 A FR 2005855A FR 2005855 A FR2005855 A FR 2005855A FR 3111253 A1 FR3111253 A1 FR 3111253A1
Authority
FR
France
Prior art keywords
image
vectors
motion
class
motion vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2005855A
Other languages
French (fr)
Other versions
FR3111253B1 (en
Inventor
Simon DANTEN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ateme SA
Original Assignee
Ateme SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ateme SA filed Critical Ateme SA
Priority to FR2005855A priority Critical patent/FR3111253B1/en
Priority to PCT/EP2021/065021 priority patent/WO2021245241A1/en
Publication of FR3111253A1 publication Critical patent/FR3111253A1/en
Application granted granted Critical
Publication of FR3111253B1 publication Critical patent/FR3111253B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

Un procédé de de traitement d’une image dans un ensemble d’images, dans lequel l’image est découpée en une pluralité de blocs, est proposé, qui comprend: 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. Figure de l’abrégé : Figure 3A method for processing an image in a set of images, in which the image is cut into a plurality of blocks, is proposed, which comprises: determining a plurality of motion vectors, each motion vector corresponding to a block of the plurality of blocks of the image, and pointing to a block correlated to the corresponding block in a reference image, the reference image being an image of the set of images distinct from the image; distributing motion vectors among the plurality of determined motion vectors into classes of a first histogram based on a matching criterion applied, for each classified motion vector, to a component of the motion vector; select a first class of the first histogram based on a selection criterion; and determining an overall motion vector of the image based on a motion vector corresponding to the selected first class. Abstract Figure: Figure 3

Description

PROCEDE DE TRAITEMENT D’IMAGE ET EQUIPEMENT POUR LA MISE EN ŒUVRE DU PROCEDEIMAGE PROCESSING METHOD AND EQUIPMENT FOR IMPLEMENTING THE METHOD

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.The present disclosure relates to an image processing method and a device for implementing this method. It applies in particular to the coding of images of a video stream.

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.Video data is generally subject to source coding aimed at compressing it in order to limit the resources necessary for its transmission and/or storage. There are many encoding standards, such as H.264/AVC, H.265/HEVC and MPEG-2, which can be used for this purpose.

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.We consider a video stream comprising a set of images. In classic coding schemes, the images of the video stream to be encoded are typically considered according to an encoding sequence, and each is divided into sets of pixels which are also processed sequentially, for example starting at the top left and ending at the bottom. to the right of each image.

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.The encoding of an image of the stream is thus carried out by dividing a matrix of pixels corresponding to the image into several sets, for example blocks of fixed size 16 x 16, 32 x 32 or 64 x 64, and encoding these blocks of pixels according to a given processing sequence. Certain standards, such as H.264/AVC, provide for the possibility of breaking down blocks of size 16 x 16 (then called macro-blocks) into sub-blocks, for example of size 8 x 8 or 4 x 4, in order to perform encoding processing with finer granularity.

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.Current techniques for video compression of an image of a set of images can be divided into two main categories: on the one hand, so-called "Intra" compression, in which compression processing is carried out on the image from of the pixels of the image, and on the other hand the so-called "Inter" compression, in which the compression processing is carried out on the image from the pixels of one or more other images of the set of images .

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 »).In the Intra mode, the processing of a block (or set) of pixels typically includes a prediction of the pixels of the block carried out using causal pixels (previously coded) present in the image being encoded (known as " current image”), in which case we speak of “Intra prediction”. In the Inter mode, the processing of a block (or set) of pixels typically includes a prediction of the pixels of the block performed using pixels from previously coded images, in which case we speak of "Inter prediction" or "motion compensation".

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.This exploitation of spatial and/or temporal redundancies makes it possible to avoid transmitting or storing the value of the pixels of each block (or set) of pixels, by representing at least some of the blocks by a residual of pixels representing the difference (or the distance) between the prediction values of the pixels of the block and the actual values of the pixels of the predicted block. The pixel residual information is present in the data generated by the encoder after transform (for example, of DCT type) and quantization in order to reduce the entropy of the data generated by the encoder.

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é.It is desirable to reduce as much as possible the additional information generated by the prediction of the pixels and present at the output of the encoder in order to increase the efficiency of a coding/compression scheme at a given level of distortion. Conversely, one can also seek to reduce this additional information to increase the efficiency of a coding/compression scheme at a given encoder output rate level.

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.A video encoder typically performs an encoding mode choice corresponding to a selection of encoding parameters for a set of processed pixels. This decision-making can be implemented by optimizing a bitrate and distortion metric, the encoding parameters selected by the encoder being those which minimize a bitrate-distortion criterion. The choice of encoding mode then has an impact on the performance of the encoder, both in terms of bitrate gain and visual quality.

Le codec AOMedia Video 1 (AV1) est un codec vidéo libre de droits développé par l’Alliance for Open Media (AOM). Né en 2018, il est le successeur d’un autre codec vidéo libre de droits, le codec Vp9, et propose de nouveaux outils de codage augmentant significativement son efficacité par rapport à son prédécesseur. Le codec AV1 se présente comme un concurrent de codecs vidéo spécifiés par les standards MPEG, et notamment du codec H.265 (HEVC). Le document de spécification du codec AV1 est disponible en ligne et accessible à l’URL suivante : https://aomedia.googlesource.com/avl-spec/.The AOMedia Video 1 (AV1) codec is a royalty-free video codec developed by the Alliance for Open Media (AOM). Born in 2018, it is the successor of another royalty-free video codec, the Vp9 codec, and offers new coding tools that significantly increase its efficiency compared to its predecessor. The AV1 codec presents itself as a competitor to video codecs specified by the MPEG standards, and in particular the H.265 (HEVC) codec. The AV1 codec specification document is available online and accessible at the following URL: https://aomedia.googlesource.com/avl-spec/.

Essentiellement conçu pour la diffusion vidéo sur Internet et sur réseau IP, le codec 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 codec HEVC.Essentially designed for video broadcasting on the Internet and on an IP network, the AV1 codec incorporates the main principles of video compression, including in particular the use of intra and inter-image redundancy, the use of an entropy coder and the consideration of the human visual system. It is announced as being, thanks to new tools, 35% more efficient than its competitor HEVC, in that it would allow a reduction in average bit rate of 35% at equivalent visual quality compared to the HEVC codec.

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.Just like HEVC, the AV1 video encoder is based on dividing the image into blocks of variable sizes, and tests a certain number of coding tools on them (for example temporal and spatial prediction modes, different types of transform, etc.), by exploiting the spatial redundancies on an image or the temporal redundancies on a plurality of images, in order to select, for each block, the most effective tool.

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 I’ à une translation T près).Several new inter-type tools (which exploit the temporal redundancies of an image sequence) have been introduced in AV1. These inter tools use already coded reference images (up to 7) to represent the movements of the blocks of an image (e.g. block B of the current image I is identical to block B' of the reference image I' to within a translation T).

Certains outils de codage Inter (dénommés outils « GLOBAL_MOTION » dans la spécification du codec 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).Certain Inter coding tools (called "GLOBAL_MOTION" tools in the AV1 codec specification) use a series of so-called "global motion" parameters specific to the image (and therefore common to all the blocks) which aim to transcribe the movements of cameras (ranging from simple tracking shots to more complex movements such as zooming).

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.The advantage for an Inter mode of using information global to the image is to avoid transmitting redundant motion information a multitude of times (because it is common to many blocks), and therefore to greatly reduce the quantity of information to be transmitted to the decoder and reduce the video bit rate.

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.Among the tools using global parameters (GLOBAL_MOTION), the TRANSLATION mode is the most suitable for representing a lateral traveling of the camera (a 2D translation). This mode uses two of the eight global parameters of an image (one represents the component of the translation on the x axis and the other the component of the translation on the y axis) in order to materialize a global motion vector .

La spécification AV1 est un exemple de spécification de codec 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 codec AV1, doivent répondre à des critères normatifs (de tailles par exemple).The AV1 specification is an example of a codec specification that provides for the possible use and transmission of one or more global motion vectors. According to the current AV1 specification, the transmission of global motion vectors is not mandatory. A symbol (flag) in the header (in English, the “frame header”) of each image indicates to the decoder whether or not the global vectors are present in the binary stream (in English, “bitstream”) to be decoded. If this symbol indicates that they are present, the decoder expects to receive as many global vectors as there are reference images. The AV1 specification providing that the determination of global vectors is solely the responsibility of the encoder (therefore non-normative), it does not currently contain any recommendation for determining global motion vectors. On the other hand, the global vectors, if they are used in an AV1 codec, must meet normative criteria (size for example).

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).There is thus a need for an image processing method making it possible to determine an overall motion vector of an image in a set of images or a video stream to be processed (for example to be encoded or analyzed).

RésuméSummary

La présente divulgation vient améliorer la situation.This disclosure improves the situation.

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.According to a first aspect, there is proposed a method for processing an image in a set of images, in which the image is cut into a plurality of blocks, the method comprising: determining a plurality of motion vectors, each vector of movement corresponding to a block of the plurality of blocks of the image, and pointing to a block correlated to the block corresponding in a reference image, the reference image being an image of the set of images distinct from the picture ; distributing motion vectors among the plurality of determined motion vectors into classes of a first histogram based on a matching criterion applied, for each classified motion vector, to a component of the motion vector; selecting a first class of the first histogram on the basis of a selection criterion; and determining an overall motion vector of the image based on a motion vector corresponding to the selected first class.

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.The proposed method advantageously makes it possible to determine a global motion vector of an image of a set of images. In particular, the proposed method allows the determination of a global motion vector of the image based on the motion estimation of portions of the image. In addition, the proposed method advantageously integrates a spatio-temporal relevance criterion which makes it possible to work only with the vectors of portions which are relevant according to this criterion.

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.In addition, the proposed method has the advantage of proposing a determination of the global motion vector of an image in a set of images which does not mobilize significant machine resources and whose implementation, whether software and/or or material, is not very complex.

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.For example, in the context of its implementation within a video encoder, for example of the AV1 type, the proposed method does not significantly impact the complexity of the calculations performed by the encoder. Thus, the proposed method has the advantage of an implementation that is not very complex, of a very low computational complexity, and of a fast execution speed which in particular allows its integration into a real-time encoding solution. without significant impact. It thus makes it possible in particular to globally improve the quality of the coding within an image belonging to a video sequence.

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), VVC, 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.The proposed method is particularly suitable, although not exclusively, for encoding or compressing an image of a set of images, for example according to a standard scheme of the AV1, H.120, H.261 type. , 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 ), or SHVC (Scalable HEVC), VVC, EVC, according to the current corresponding specifications or their evolutions, in particular in the applicable cases to accelerate the encoding at certain levels. But it is also suitable for the encoding or more generally the processing of images according to any encoding or video processing scheme using or compatible with the use of a global motion vector or global motion analysis.

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.The proposed method can advantageously be implemented within any video encoder using global motion vectors of the encoded images, such as for example, but in a non-limiting way, a video encoder conforming to the current AV1 specification or its evolutions.

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.The proposed method is however not limited to implementations within an image encoder, and can be implemented within a global motion estimation unit. The global motion estimation unit may be implemented in software form, in which case it will take the form of a program executable by a processor, in hardware form (or "hardware"), such as an application-specific integrated circuit ( ASIC), a system on chip (SOC), or in the form of a combination of hardware and software elements, in which case it may comprise an input interface, a memory operationally coupled with at least one processor configured for the implementation of the proposed method. Depending on the embodiment chosen, the global motion estimation unit may be implemented within a video encoder, a video decoder, for example to perform a global motion calculation, a device for video analysis, for example to extract semantic information or information from video content, and/or a video processing device, for example to isolate foregrounds from backgrounds in images of video content .

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 :The characteristics exposed in the following paragraphs can, optionally, be implemented. They can be implemented independently of each other or in combination with each other:

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.In one or more embodiments, determining the plurality of motion vectors may include: determining a motion vector for each block of the plurality of blocks of the image.

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.In one or more embodiments, the distributed motion vectors may be distributed into first classes of the first histogram based on the match criterion applied to a first component of the classified motion vector, and into second classes of a second histogram based on the matching criterion applied to a second component of the classified motion vector, and the proposed method may further comprise: selecting a second class of the second histogram based on the selection criterion; and wherein the overall motion vector of the image is generated based on motion vector components corresponding to the selected first and second classes, respectively.

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.In one or more embodiments, the selection criterion used may determine a class having the greatest number of values.

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é.In other embodiments, the selection criterion could determine a class on the basis of combinations of the values of a distortion metric respectively obtained for the motion vectors of classes. A combination of distortion metric values can be calculated for each class of a set of classes in which the selection criterion is applied. This set of classes can include all the classes of a histogram, or only a part of these classes. For example, the selection criterion used could determine a class among a set of classes on the basis of the respective averages calculated for one or more of the values of a distortion metric respectively obtained for the motion vectors of each class of the set . Depending on the embodiment, the averages calculated may be arithmetic averages, or be calculated according to any other average formula that can be used for implementing the proposed method.

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é.In these embodiments, the global motion vector of the image could be determined on the basis of a motion vector associated with the highest value of the inverse of the combination of values of the distortion metric among the inverses of the respective combinations of the values of the distortion metric respectively obtained for the class motion vectors. A combination of the distortion metric values can be calculated for each class of a set of classes, which can include all the classes of a histogram, or only a part of these classes. For example, the global motion vector of the image could be determined on the basis of a motion vector associated with the inverse of the average of the values of the highest distortion metric among the inverses of the respective averages of the values of the distortion metric respectively obtained for the class motion vectors. Depending on the embodiment, the averages calculated may be arithmetic averages, or be calculated according to any other average formula that can be used for implementing the proposed method.

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.In one or more embodiments, the motion vectors distributed in classes may be selected from among the motion vectors determined on the basis of a criterion of relevance. In one or more embodiments, the relevance criterion may include a comparison of a computed distortion metric value for the motion vector to a threshold. In one or more embodiments, the distortion metric may use a distance measurement.

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.In one or more embodiments, the motion vectors distributed in classes may be selected from among the motion vectors determined on the basis of a size criterion. In one or more embodiments, the size criterion may be fulfilled in the case where one or more of the components of the motion vector representing a translation along a respective dimension of the corresponding reference image has a value belonging to a range of predetermined values.

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.In one or more embodiments, the correspondence criterion may be fulfilled in the case where one or more of the respective component values of two motion vectors, the components representing a translation along a respective dimension of the corresponding reference image, are the same.

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.In one or more embodiments, the correspondence criterion may comprise a two-by-two identity criterion, for two motion vectors, of the respective values of components representing a translation along a respective dimension of the corresponding reference image.

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é.According to another aspect, an image processing device is proposed, which comprises: an input interface configured to receive an image from a set of images; an image processing unit, comprising a processor, operatively coupled to the input interface, and configured to perform image processing according to one or more embodiments of the proposed method.

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é.According to another aspect, a computer program, loadable into a memory associated with a processor, and comprising code portions for the implementation of one or more embodiments of the proposed method during the execution of said program by the processor, is offered.

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é.Another aspect relates to a set of data representing, for example by way of compression or encoding, a computer program as proposed.

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.According to another aspect, a non-transitory storage medium of a computer-executable program is provided, which comprises a set of data representing one or more programs, said one or more programs comprising instructions for, when executing said one or more programs by a computer comprising a processing unit operationally coupled to memory means and to an input/output interface module, causing the computer to implement one or more embodiments of the proposed method. Another aspect, there is provided a computer program comprising instructions for the implementation of all or part of a method as defined herein when this program is executed by a processor. In another aspect, there is provided a non-transitory, computer-readable recording medium on which such a program is recorded.

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 :Other characteristics, details and advantages will appear on reading the following description of non-limiting embodiments, with reference to the appended drawings, in which:

Fig. 1Fig. 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. shows a video encoder diagram for the implementation of the proposed method according to one or more embodiments.

Fig. 2Fig. 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. shows an example of motion estimation analysis on a current image divided into blocks according to one or more embodiments.

Fig. 3Fig. 3

montre un diagramme illustrant un exemple de mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation. shows a diagram illustrating an exemplary implementation of the proposed method according to one or more embodiments.

Fig. 4aFig. 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. shows an example of generation of motion vectors for a current image for the implementation of the proposed method according to one or more embodiments.

Fig. 4bFig. 4b

montre un exemple d’histogramme pour la mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation. shows an example of a histogram for the implementation of the proposed method according to one or more embodiments.

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.In the following detailed description of embodiments of the invention, many specific details are presented to provide a more complete understanding. Nevertheless, those skilled in the art can appreciate that embodiments can be practiced without these specific details. In other cases, well-known features are not described in detail to avoid unnecessarily complicating the description.

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.This description refers to functions, engines, units, modules, platforms, and illustrations of diagrams of the methods and devices according to one or more embodiments. Each of the described functions, engines, modules, platforms, units, and diagrams may be implemented in hardware, software (including embedded software (“firmware”), or “middleware”), firmware, or any combination of these. In the case of software implementation, the functions, engines, units, modules and/or diagram illustrations may be implemented by computer program instructions or software code, which may be stored or transmitted on a computer-readable medium, including a non-transitory medium, or a medium loaded into the memory of a generic, specific computer, or other programmable data processing device or device to produce a machine, such that the computer program instructions or the software code executed on the computer or the apparatus or programmable data processing device, constitute means of implementing these functions.

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.Embodiments of a computer-readable medium include, but are not limited to, computer storage media and communication media, including any media that facilitates the transfer of a computer program from one location to another. . “Computer storage medium(s)” means any physical medium that can be accessed by computer. Examples of computer storage media include, but are not limited to, flash memory disks or components or any other flash memory devices (e.g. USB drives, memory sticks, memory sticks, disk drives), CD-ROMs or other optical data storage devices, DVDs, magnetic disk data storage devices or other magnetic data storage devices, data memory components, RAM, ROM, EEPROM, memory cards (“smart cards”), memories of the SSD (“Solid State Drive”) type, and any other form of medium usable for transporting or storing or memorizing data or data structures which can be read by a computer processor computer.

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.In addition, various forms of computer-readable media can transmit or carry instructions to a computer, such as a router, gateway, server, or any data transmission equipment, whether wired transmission ( via coaxial cable, optical fiber, telephone wires, DSL cable, or Ethernet cable), wireless (via infrared, radio, cellular, microwave), or virtualized transmission equipment (virtual router, virtual gateway, virtual tunnel end, virtual firewall). Instructions may, depending on embodiments, include code of any computer programming language or computer program element, such as, without limitation, assembly languages, 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, and bash scripting.

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.In addition, the terms "in particular", "for example", "example", "typically" are used in this description to designate examples or illustrations of non-limiting embodiments, which do not necessarily correspond to embodiments preferred or advantageous over other possible aspects or embodiments.

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.The terms "operably coupled", "coupled", "mounted", "connected" and their various variations and forms used in this description refer to couplings, connections, assemblies, which can be direct or indirect, and include in particular connections between electronic equipment or between portions of such equipment which allow operations and functioning as described in the present description. Further, the terms "connected" and "coupled" are not limited to physical or mechanical connections or couplings. For example, an operational coupling may include one or more wired connection(s) and/or one or more wireless connection(s) between two or more devices that allow simplex and/or duplex communication links. between equipment or portions of equipment. According to another example, an operational coupling or a connection can include a coupling by wired and/or wireless link to allow data communications between a server of the proposed system and other equipment of the system.

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.Figure 1 shows, by way of non-limiting example of an image processing device, an example of a video encoder according to one or more embodiments.

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 œuvre 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.Referring to Figure 1, the encoder 100 receives at input 107 an input video stream 101 comprising a plurality of images to be processed to perform the encoding of the stream. Encoder 100 includes a controller 102, operatively coupled to input interface 107, which drives a motion estimation unit 106 and a prediction unit 104 for predictions according to different modes implemented by the encoder 100, such as Intra, Inter and Skip modes, as well as a global motion vector determination unit 103. The data received on the input interface 107 is transmitted as input to the motion vector determination units global 103, motion estimation 106, controller 102, and prediction 104. The set of controller 102, motion estimation unit 106, prediction unit 104, and global motion vector determination unit 103 forms a encoding unit 108 operatively coupled to input interface 107.

L’unité de détermination de vecteur de mouvement global 103 est configurée pour la mise en œuvre 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.The global motion vector determination unit 103 is configured to implement one or more embodiments of the proposed method. It is thus able to generate data of global motion vectors which are supplied as input to the prediction unit 104. The motion estimation unit 106 is configured to perform a motion estimation analysis on the images to be process, and in particular for the implementation of one or more embodiments of the method proposed by the implementation of a preliminary analysis in order to cut the image to be processed into blocks and perform a motion estimation analysis on at least some of the blocks of the image, and is able to generate data, including motion estimation data, which are supplied to the controller 102, to the global motion vector determination unit 103 for setting implementation of the proposed method, as well as to the prediction unit 104 for the needs of prediction in Inter mode. The prediction unit 104 generates prediction data (for example Intra, Inter and/or Skip mode prediction data) which are supplied as input to the entropy coder 105. For example, the data supplied to the decoder for a prediction of type Inter may include a residual of pixels and information concerning one or more motion vectors. This information relating to one or more motion vectors can comprise one or more indices identifying a predictor vector in a list of predictor vectors known to the decoder. Controller 102 can be configured to generate control data which is also supplied as input to entropy encoder 105.

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.The controller 102 is configured to drive the motion estimation unit 106, the global motion vector determination unit 103 and the prediction unit 104 in order to control the prediction data which is respectively provided at the input of the encoder entropy 105 by the prediction unit 104. Depending on the encoding scheme implemented by the encoder 100, the controller 102 can further be configured to select among the different types of prediction mode (Intra mode, Inter mode or Skip mode depending on the coding modes implemented in the encoding unit 108) the one for which prediction data will be transmitted to the entropy coder 105. Thus, the encoding scheme can include a decision for each image set process aimed at choosing the type of prediction for which data will be transmitted to the entropy coder 105. This choice will typically be implemented by the controller 102, to decide on the application of the Inter prediction mode, the Intra prediction mode or the Skip prediction mode to the block being processed. This makes it possible to control the sending to the entropic coder of Intra prediction data or else of Inter or Skip prediction data according to the decision taken by the controller 102.

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.The encoder 100 can be a computer, a network of computers, an electronic component, or another device comprising a processor operatively coupled to a memory, as well as, according to the chosen embodiment, a data storage unit. , and other associated hardware such as a network interface and a media drive for reading removable storage media and writing to such media (not shown in the figure). The removable storage medium can be, for example, a compact disc (CD), a digital video/versatile disc (DVD), a flash disc, a USB key, etc. Depending on the embodiment, the memory, data storage unit, or removable storage medium contains instructions which, when executed by controller 102, cause controller 102 to perform or control interface portions of input 107, global motion vector determination 103, prediction 104, motion estimation 106 and/or data processing of the exemplary implementations of the proposed method described herein. The controller 102 can be a component implementing a processor or a calculation unit for the encoding of images according to the proposed method and the control of the units 107, 106, 103, 104, 105 of the encoder 100.

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 Gate 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 Gate Array ») sont des circuits électroniques reconfigurables par l’utilisateur.In addition, the encoder 100 can be implemented in software form, as described above, in which case it takes the form of a program executable by a processor, or in hardware form (or "hardware"), such as a application specific integrated circuit (ASIC), a system on chip (SOC), or in the form of a combination of hardware and software elements, such as for example a software program intended to be loaded and executed on an FPGA type component (of English “Field Programmable Gate Array”). SOCs (System On Chip) or system on chip are embedded systems that integrate all the components of an electronic system into a single chip. An ASIC (from the English "Application-Specific Integrated Circuit") is a specialized electronic circuit that brings together tailor-made functionalities for a given application. ASICs are usually configured when manufactured and can only be simulated by the user. FPGA-type programmable logic circuits (Field-Programmable Gate Array) are user-reconfigurable electronic circuits.

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 »).An encoder can also use hybrid architectures, such as architectures based on a CPU+FPGA, a GPU (from the English "Graphics Processing Unit") or an MPPA (from the English "Multi-Purpose Processor Array") .

La figure 2 est un diagramme illustrant le procédé proposé selon un ou plusieurs modes de réalisation.Figure 2 is a diagram illustrating the proposed method according to one or more embodiments.

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 œuvre 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.In one or more embodiments, an analysis of the image being processed is performed to generate analysis data that will be used when implementing the proposed method. The analysis can include a division of the current image into blocks followed by a motion estimation on one or more of the blocks of the current image.

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. Cette 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.In one or more embodiments, the current image is thus divided into blocks or coding units (in English “Coding Unit”, or CU), whose shape and/or size, which can vary from one block to another, can be determined as a function in particular of the size of the matrix of pixels representing the image, for example in macroblocks of square shape of 16×16 pixels. A set of blocks is thus formed for which a processing sequence is defined (sometimes also called “processing path”, “analysis path” or “analysis sequence”). In the case of square-shaped blocks, it is for example possible to process the blocks of the current image starting with the one located at the top left of the image, followed by the one immediately to the right of the previous one, until arriving at the end of the first line of blocks to move to the leftmost block in the line of blocks immediately below this first line, to complete processing by the lowermost and rightmost block of the image. This processing sequence is sometimes designated by the English terms “raster” sequence or “raster scan” of the image being processed.

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.In one or more embodiments, a motion estimation is then performed on one or more of the blocks of the current image, in order to generate motion estimation data for the current image.

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.In one or more embodiments, it will be possible to consider a “current block”, that is to say a block being processed in the current image. The processing of the current block may comprise the partitioning of the block into sub-blocks, in order to process the block with a finer spatial granularity than that obtained with the block. Depending on the embodiment, for example in the context of a video coding application, the processing of a block may also include the prediction of the pixels of the block, by exploiting the spatial correlation (in the same image) or temporal (in previously coded images) between pixels. When several types of prediction, such as an Intra type prediction, an Inter type prediction, and/or a skip type prediction are used for video encoding, the block pixel prediction may typically include the selection of a prediction type of the block and prediction information corresponding to the selected type, the whole forming a set of encoding parameters. The prediction of the block of pixels processed makes it possible to calculate a residual of pixels, which corresponds to the difference between the pixels of the current block and the pixels of the prediction block, which can be transmitted in certain embodiments to the decoder after transform and quantization .

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.The motion estimation for a current block according to one or more embodiments is described below in more detail.

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.Motion estimation analysis in a current frame typically uses one or more sets of pixels belonging respectively to one or more previously analyzed frames (for example, in a video encoder, one or more previously encoded frames), commonly referred to as frames( s) reference, according to a sequence of analysis of a set of images comprising the current image.

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.For a given block in the current image (the "current block" or "original block"), the motion estimation can consist in studying the displacement of the current block (belonging to the current image) with respect to the position of a block (or more generally, a set of pixels) belonging to a reference image by exploiting the temporal correlation between the pixels of the two blocks. The motion estimation of the current block can thus lead to the selection of a set of pixels (called "reference block") that most closely resembles in a reference image, by representing the motion of the current block as positioned in the current image by relative to the reference block as positioned in the reference image by one or more motion parameters of the current block. These parameters can define a vector, called motion vector, whose coordinates can represent the movement, according to each of the dimensions of the image, of a projection of the current block in the reference image to coincide with the position of the block of reference in the reference image. The motion vector can for example be a vector in a two-dimensional frame, for example horizontal and vertical, whose coordinates correspond respectively to a horizontal displacement and a vertical displacement to superimpose a projection in the reference image of the current block with the reference block.

La figure 2 illustre un exemple d’estimation de mouvement selon un ou plusieurs modes de réalisation du procédé proposé.Figure 2 illustrates an example of motion estimation according to one or more embodiments of the proposed method.

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é.FIG. 2 shows the projection of a current block of a current image onto a reference image, as well as the translations in each of the dimensions of the image to be performed in order to reach a correlated block in the reference image (estimated block in the figure) with the current block. As illustrated in the figure, in one or more embodiments, the motion vector corresponds to the displacement of the projection of the current block in the reference image to reach the estimated block.

Le procédé d’estimation de mouvement est non normatif et est donc susceptible de différer d’un encodeur à un autre.The motion estimation process is non-normative and is therefore likely to differ from one encoder to another.

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.For example, the motion estimation method may include searching in a more or less extensive area of the reference image, for example defined from the block of the reference image corresponding to the original block in the original image, in order to test the degree of resemblance (or correlation) of the original block with a more or less large number of candidate blocks of the reference image.

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.Thus, in one or more embodiments, the motion estimation makes it possible to search, for each current block of a set of blocks of the current image, for one or more reference images, for example by successive steps, the block having the most resemblance to the current block.

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 Differences », ou « SAD ») : est le pixel à la position du bloc courant et le pixel à la position du bloc de référence. Une SAD faible sera interprétée comme une indication que les deux blocs sont très ressemblants.In one or more embodiments, the degree of correlation between a block and its displacement according to a motion vector may be estimated using a distortion metric, such as the Sum of Absolute Differences (in English “Sum of Absolute Differences”, or “SAD”): Or is the pixel at position of the current block and the pixel at position of the reference block. A low SAD will be interpreted as an indication that the two blocks are very similar.

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.In one or more embodiments, the relevance of the motion vector determined for a block to characterize the real motion of the block (and not to minimize the SAD) can be measured using a self-distortion value of the block, by example by calculating the distortion between the block and a version of this block shifted by a first predetermined number of pixel(s) according to a first dimension and by a second predetermined number of pixel(s) according to a second dimension of the block. This self-distortion value, referred to below as “AUTOSAD” in the case where the distortion metric used is the SAD metric, can be used to be compared with the distortion value calculated initially, for example by using the ratio between the distortion value initially calculated on the self-distortion value, to obtain a relevance value of the motion vector corresponding to the distortion value initially calculated. In the case where the distortion metric used is the SAD metric, it will thus be possible to calculate a value of SAD/AUTOSAD to measure the relevance of the value of SAD.

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.The AUTOSAD advantageously provides an indicator of the spatial complexity of the block. A complex block will contain for example details/pixels which make it different from one block to another, and/or which contains a lot of spatial information (for example a lot of texture). Since to determine a global motion vector, it is desirable to encode the real motion of the current block, it is advantageous to use the AUTOSAD parameter. Indeed, unlike a motion estimation carried out for the encoding of the block, we are not looking for a resembling block, but rather to characterize the movement of the block from one image to another. There may be in a following image a more similar block, but which does not represent the true translation of the current block. However, to determine a global motion vector, we seek to obtain a global characterization of the motion of the majority of the blocks of the image. To do this, in one or more embodiments, the proposed method uses the AUTOSAD to exclude vectors whose SAD would certainly be very low, but which would not truly represent the true movement of the block in the set of images.

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.Thus, if the self-distortion of a block is weak, it can be considered that there are not many details in the block, and that it will therefore be difficult to find a relevant vector (representing the actual translation of the block). In other words, it can be considered that the distortion criterion value does not necessarily represent the actual movement of the block. It may indeed be that a low distortion criterion value corresponds to a block (in a reference image) which is certainly close to the current block, but which does not characterize the movement of the current block with respect to the image of reference.

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.In one or more embodiments, it may be decided not to use a vector having a low self-distortion value (for example from AUTOSAD) for the determination of a global motion vector, even if its value of distortion (for example its SAD) would indicate that it is very similar to the block, given that we are not looking to find a block very similar to the current block, but a vector representing the real translation of this block in an image of reference.

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.The use of a self-distortion criterion thus advantageously makes it possible to avoid, for example, using a motion vector corresponding to a block identified in a reference image having a distortion value (for example an SAD) of less than the distortion value (e.g. SAD) of the original block translated with its actual motion.

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 : , où et 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 à , où AUTOSAD est l’auto-distorsion mesurée pour le bloc courant.In one or more embodiments, the relevance of a determined motion vector for a block can be measured by calculating a self-distortion criterion for that block, and comparing the distortion value with the self-distortion value. distortion. For example, the distortion value can be compared to a normalized self-distortion value, for example of the form: , Or And are two parameters. In the embodiments where the distortion criteria used are of the SAD type, the value of SAD obtained for a vector corresponding to the current block can be compared to , where AUTOSAD is the measured self-distortion for the current block.

Dans un ou plusieurs modes de réalisation, le paramètre 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 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.In one or more embodiments, the parameter can be used to compensate for block deformation and/or motion estimation inaccuracy (1 pixel, ½ pixel, ¼ pixel), and be chosen constant. In one or more embodiments, the parameter can be used to compensate for the overall noise level of the image, and be chosen constant. Parameter value can be determined dynamically so as to adapt to the content of the image or of the video sequence in order to evolve according to the level of noise.

Par exemple, dans un ou plusieurs modes de réalisation, la valeur du paramètre 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 ) et un seuil prédéterminé (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.For example, in one or more embodiments, the value of the parameter can be chosen equal to 0. Thus, a comparison between a relevance criterion value comprising a ratio between a distortion value and a self-distortion value (for example, a value ) and a predetermined threshold (for example chosen equal to 2) can be used to select the determined motion vectors to be used for the determination of the global motion vector. For example, a vector corresponding to a current block for which the value of SAD/AUTOSAD is greater than 2 may not be used for determining the global motion vector of the current image, for example by not using it for constitute the histogram(s) from which the global vector is determined. Indeed, even if the value of SAD (obtained for the motion vector obtained for the current block for a reference image) is low (in particular in the case where a block has been found in the reference image which looks very similar to the current block, to which the motion vector corresponds, but which does not characterize the motion of the current block or characterizes it little), the value of AUTOSAD of the current block may also be low, making the SAD/AUTOSAD ratio high, which which could result in not selecting the motion vector for determining the global motion vector of the current image.

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 codec 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.According to the embodiment, the motion estimation can be performed for a given current block for one or more reference images. For example, in the context of an implementation of the proposed method on an AV1 type video codec, the motion estimation performed on each current block among the blocks of the current image can be performed for up to 7 images thus generating, for each current block, 7 sets of motion estimation parameters for the current block corresponding respectively to the 7 reference images.

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.Several sets of motion vectors could thus be generated, corresponding respectively to a reference image of a set of reference images, and the proposed method could be implemented in one or more embodiments from one of these sets of motion vectors.

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.FIG. 3 illustrates a non-limiting example of implementation (200) of the proposed method according to one or more embodiments.

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 codec vidéo.Referring to Figure 3, we consider an image being processed (current image) in a set of images. The current picture is broken into blocks, for example as part of its analysis or processing for compression according to a video codec specification.

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.In one or more embodiments, in particular when the proposed method is used for encoding the current image, provision may be made to encode each block of the image according to one of a plurality of coding modes comprising at least one temporal correlation prediction type coding mode using a plurality of images from the set of images.

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.In one or more embodiments, a motion estimation analysis can be performed on one or more blocks of the image, using for each block analyzed a reference image, which can be chosen from a set comprising several images of reference, depending on the embodiment. Depending on the embodiment, this analysis can generate motion estimation parameters for the reference image and for the blocks of the image for which it is performed, which can take include one or more components of a vector of movement, as well as possibly a measure of correlation (or distortion), for example of the SAD type, between the reference block (the block of the reference image) corresponding to the movement vector and the current block.

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 peut avoir deux composantes de déplacement ( et ), correspondant pour une première composante ( ) à 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 ( ) dans un repère de l’image, et pour une deuxième composante ( ) à un déplacement du projeté selon une deuxième dimension ( ) 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 : .The motion estimation analysis thus makes it possible to obtain, for a reference image of the set of images considered, a set of motion vectors corresponding respectively to blocks of the current image and pointing to respective blocks. of the reference image, as well as, for each motion vector, a distortion (or correlation) parameter between the block corresponding to the vector and the block in the reference image towards which the vector points. Each motion vector can have two displacement components ( And ), corresponding for a first component ( ) to a displacement (for example a translation) of a projection of the current block in the reference image along a first dimension ( ) in a frame of the image, and for a second component ( ) to a displacement of the projection along a second dimension ( ) in the image marker. The motion estimation analysis may thus generate, in one or more embodiments, a set of vectors and their associated SAD values: .

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.The motion estimation analysis performed on the current image may thus comprise, in one or more embodiments, the determination (201) of a plurality of motion vectors, each vector corresponding to a block of the plurality of picture blocks. Each motion vector may be configured to point to a block correlated to the corresponding block in a respective reference image of a set of reference images, each reference image being an image of the set of images distinct from the picture.

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.In one or more embodiments, a set of reference frames may be predefined, including one or more reference frames, for implementing block motion estimation analysis of the current frame. A reference image corresponding to the current image will typically have been processed (for example encoded) prior to the current image, for example by following an image processing sequence of the set of images considered, possibly constituted dynamically. In the embodiments in which the set of images is a video sequence, a reference image may be an image located before or after the current image in the video sequence, depending on the embodiment chosen.

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.One or more motion vectors can thus for example be generated for a block of the current image, and correspond respectively to one or more reference images corresponding to the current image.

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.Several motion vectors can thus be obtained, for a plurality of blocks of the current image, each motion vector corresponding to a block and to a reference image, and representing for example the displacement of the corresponding block and its distortion measurement ( for example of the SAD type) associated.

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 de vecteurs de mouvement à deux composantes de déplacement (par exemple une composante correspondant à un déplacement selon une première dimension dans un repère de l’image de référence correspondante et une composante correspondant à un déplacement selon une deuxième dimension dans le repère), auxquels est associé un paramètre de mesure de distorsion (par exemple une mesure de SAD) respectif.For example, in one or more embodiments, motion estimation analysis performed on the current frame may generate a set motion vectors with two displacement components (for example a component corresponding to a displacement along a first dimension in a reference frame of the corresponding reference image and a component corresponding to a displacement along a second dimension in the reference), with which is associated a parameter distortion measurement (e.g. an SAD measurement) respectively.

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).One or more histograms can then be created based on a set of motion vectors (corresponding to a reference image).

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.In one or more embodiments, it is thus possible to distribute (202) motion vectors among the plurality of motion vectors determined in classes of a first histogram.

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.The distribution of the motion vectors to create the first histogram can be performed based on a match criterion chosen depending on the embodiment.

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 et/ou composante ) déterminées pour le vecteur de mouvement à distribuer.For example, in one or more embodiments, the correspondence criterion used may relate to one or more components of the motion vector to which it is applied to distribute the vector in a class of the histogram. Each component can advantageously be chosen from components of displacement (component and/or component ) determined for the motion vector to be distributed.

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.Furthermore, depending on the chosen embodiment, all or part of the motion vectors may be distributed for the generation of a histogram. In one or more embodiments, all the determined motion vectors may be distributed in the different classes of one or more histograms according to chosen correspondence criteria. In other embodiments, only part of the determined motion vectors will be used for the constitution of each histogram among the histogram(s) used.

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.Different embodiments for generating one or more motion vector histograms are described in more detail below.

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é.In one or more embodiments, the proposed method provides for selecting (203) a first class of the first histogram on the basis of a selection criterion once the first histogram has been constituted.

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.In one or more embodiments, a global motion vector of the image can then be determined (204) based on a motion vector corresponding to the first class selected in the histogram.

Dans un ou plusieurs modes de réalisation, le procédé proposé pourra n’utiliser qu’un seul histogramme ( ), 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).In one or more embodiments, the proposed method may use only one histogram ( ), generated on the basis of a first motion vector classification mode among the set of motion vectors obtained by motion estimation analysis of the current image. The motion vectors used for this classification may correspond to at least one displacement parameter, for example in the form of one or more displacement coordinates along the directions of a standardized reference, and to a distance parameter between the blocks to which the vector corresponds located respectively in the current image and in a reference image (for example to characterize the displacement between a projection of the current block in the reference image and the block of the reference image towards which the vector points) .

Dans ce qui suit, on considère l’exemple non limitatif de deux composantes de déplacement (par exemple une composante correspondant à un déplacement selon une première dimension dans un repère de l’image de référence et une composante correspondant à un déplacement selon une deuxième dimension dans le repère), et d’une composante 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 , et/ou , qui sont décrites seulement à titre d’exemple.In what follows, we consider the non-limiting example of two components of displacement (for example a component corresponding to a displacement along a first dimension in a reference frame of the reference image and a component corresponding to a displacement along a second dimension in the frame), and a component distortion measurement (for example an SAD measurement). Nevertheless, those skilled in the art will be able to realize that any other components of a motion vector suitable for classification in a histogram, such as for example any other motion components, and/or any other distortion measurement component for the motion vector, may be used instead of or in addition to the components , and or , which are described by way of example only.

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.In one or more embodiments, the correspondence criterion may comprise a two-by-two identity criterion, for two motion vectors, of the respective values of components representing a translation along a respective dimension of the corresponding reference image.

Selon le premier mode de classification de vecteurs de mouvement, les vecteurs ayant des paires de composantes de déplacement ( ; ) identiques pourront être distribués dans une même classe de vecteurs de mouvement. Par exemple, deux vecteurs et ayant des composantes de déplacements identiques deux à deux ( et ) pourront être distribués dans une même classe sur la base de leurs composantes identiques.According to the first mode of classifying motion vectors, vectors having pairs of motion components ( ; ) identical can be distributed in the same class of motion vectors. For example, two vectors And having two-by-two identical displacement components ( And ) may be distributed in the same class on the basis of their identical components.

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.Thus, in one or more embodiments, the correspondence criterion can be defined as being fulfilled in the case where one or more of the respective values of components of two motion vectors, the components representing a translation according to a respective dimension of the corresponding reference image, are identical.

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.In these embodiments, the correspondence criterion applied to at least one component of the motion vector to be distributed in a class comprises an identity criterion of this component with the other vectors of the class. In the example described previously, the correspondence criterion comprises a two-by-two identity criterion of the displacement components of the vector with the displacement components of another vector of the class.

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.In one or more embodiments, a new class of H1 histogram vectors may be created to distribute a motion vector therein for which no H1 histogram class to distribute the vector based on the matching criterion n still exists when distributing the vector in one of the classes of the histogram.

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 . 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.As a variant, the distribution of the vectors in classes could be implemented by using a table, for example two-dimensional, whose entries correspond respectively to pairs of coordinates (components of displacement), which are filled in by classifying the vectors selected to generate the histogram . This implementation, which involves storing in memory an array of dimension(s) corresponding to the number of possible combinations of pairs of coordinates of vectors, has the advantage of allowing a very rapid distribution of vectors in classes, from because of its simplicity from a computational complexity point of view, since it does not use classes created dynamically but a priori.

Dans un ou plusieurs modes de réalisation, les vecteurs de mouvement distribués dans des classes de l’histogramme 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.In one or more embodiments, the motion vectors distributed in classes of the histogram can be selected beforehand from among the motion vectors determined on the basis of a relevance criterion. The purpose of the relevance criterion used may be to avoid selecting for the distribution into classes of the histogram motion vectors that are not very relevant, for example with regard to a corresponding distortion metric value, and which could have been selected for lack of better vectors obtained during motion estimation analysis. The relevance criterion may therefore, in one or more embodiments, be advantageously defined on the basis of one or more distortion metrics.

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.Therefore, in one or more embodiments, the relevance criterion may comprise a comparison of a distortion metric value calculated for the motion vector with a predetermined threshold. The predetermined threshold may advantageously be chosen according to the type of distortion metric used for the relevance criterion.

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.In one or more embodiments, the distortion metric value used may be of the SAD type, as described above. In other embodiments, the distortion metric value used may also use a so-called “AUTOSAD” metric, for example when using a criterion of the SAD/AUTOSAD type (ratio of the value of SAD to AUTOSAD value), as described above.

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.In what follows, we consider the non-limiting example of a relevance criterion using a distortion measure of the SAD/AUTOSAD type and corresponding threshold values. Nevertheless, those skilled in the art will be able to realize that any other criterion suitable for a measurement of the relevance of an assignment of a motion vector in a class of the histogram, on the basis in particular of any measurement of distortion that can be used for this purpose, may be used instead of or in addition to a criterion based on a measurement of SAD/AUTOSAD, which is only described here by way of non-limiting example.

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.It will be possible to choose, in one or more embodiments using a relevance criterion using a distortion measurement of the SAD/AUTOSAD type, a comparison threshold in the interval [-1/2; +8], for example equal to 2.

Ainsi, dans un ou plusieurs modes de réalisation, un histogramme 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 .Thus, in one or more embodiments, a histogram is generated from motion vectors of the set of motion vectors determined for the current image, on the basis of a correspondence criterion according to which the vectors having identical displacement components in pairs along respective directions are distributed in the same class, possibly after having been selected on the basis of a relevance criterion comparing a value of SAD/AUTOSAD which is associated with them with a predetermined threshold, for example chosen equal to 2. For example, the vectors resulting from motion estimation analysis can first of all be selected on the basis of the relevance criterion, and only the vectors whose SAD/AUTOSAD value does not exceed the threshold can be retained. Once selected, these vectors can then be distributed in classes in order to constitute the histogram .

Dans un ou plusieurs modes de réalisation, le procédé proposé pourra utiliser un histogramme 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.In one or more embodiments, the proposed method may use a histogram generated on the basis of the first motion vector classification mode among the set of motion vectors obtained by motion estimation analysis of the current image. The motion vectors used for this classification may correspond to at least one displacement parameter, for example in the form of one or more displacement coordinates along the directions of a standardized frame (corresponding respectively to dimensions), and to a distance parameter between the blocks to which the vector corresponds located respectively in the current image and in a reference image.

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.In one or more embodiments, the correspondence criterion may comprise a two-by-two identity criterion, for two motion vectors, of the respective values of components representing a translation along a respective dimension of the corresponding reference image.

Selon le premier mode de classification de vecteurs de mouvement, les vecteurs ayant des paires de composantes de déplacement ( ; ) identiques pourront être distribués dans une même classe de vecteurs de mouvement. Par exemple, deux vecteurs et ayant des composantes de déplacements identiques deux à deux ( et ) pourront être distribués dans une même classe sur la base de leurs composantes identiques.According to the first mode of classifying motion vectors, vectors having pairs of motion components ( ; ) identical can be distributed in the same class of motion vectors. For example, two vectors And having two-by-two identical displacement components ( And ) may be distributed in the same class on the basis of their identical components.

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.Thus, in one or more embodiments, the correspondence criterion can be defined as being fulfilled in the case where one or more of the respective values of components of two motion vectors, the components representing a translation according to a respective dimension of the corresponding reference image, are identical.

De même que pour l’histogramme , dans un ou plusieurs modes de réalisation, une nouvelle classe de vecteurs de l’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 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.Same as for the histogram , in one or more embodiments, a new class of histogram vectors can be created to distribute therein a motion vector for which no class of the histogram allowing to distribute the vector on the basis of the match criterion still exists when distributing the vector in one of the classes of the histogram . As a variant, it is possible to use a two-dimensional table, in the case of vectors with two coordinates, stored in memory and which is filled in by associating vectors therewith with their corresponding entries.

Dans un ou plusieurs modes de réalisation, l’histogramme 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 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 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 , chaque classe comprenant un nombre de vecteurs de mouvement auxquels sont respectivement associées valeurs de SAD , on calcule une combinaison de ces valeurs de SAD pour la classe , par exemple une moyenne de ces valeurs de SAD de type : .In one or more embodiments, the histogram could represent the means of the values of a distortion criterion, for example the SAD, of the vectors of each class. Thus, in one or more embodiments, a histogram is generated from motion vectors of the set of motion vectors determined for the current image, on the basis of a correspondence criterion according to which the vectors having identical displacement components in pairs along respective directions are distributed in the same class, then we determine for each class of the histogram an average of the distortion values (for example values of SAD) respectively associated with the vectors of the class. For example, we add each vector in the class that corresponds to it on the basis of the identity of its coordinates with those of the class, then when the histogram is finished (for example when all the vectors used to generate the histogram have been distributed in respective classes), a combination is made of the values of SAD corresponding to the vectors of all or part of the classes of the histogram. For example, for each class of the histogram, a linear combination of the values of SAD corresponding to the motion vectors of the class is calculated. In particular, in one or more embodiments, an average (for example an arithmetic average) of the values of SAD corresponding to the motion vectors of the class is calculated. For example, if the histogram H2 includes C classes , each class including a number motion vectors with which are respectively associated SAD values , we calculate a combination of these SAD values for the class , for example an average of these SAD values of type: .

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 .In one or more embodiments, no selection may be made on the vectors resulting from the motion estimation analysis prior to the generation of the histogram .

En variante, de manière similaire au schéma de sélection décrit ci-dessus pour l’histogramme , 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.Alternatively, similarly to the selection scheme described above for the histogram , a selection can be made on the motion vectors resulting from the motion estimation analysis on the basis of a relevance criterion, for example by comparing a value of SAD/AUTOSAD associated with each vector with a predetermined threshold, for example chosen equal to 2, so as not to distribute irrelevant vectors in the classes of the histogram which may have been retained during the motion estimation for lack of finding better vectors (in terms of distortion). For example, the vectors resulting from the motion estimation analysis can first of all be selected on the basis of the criterion of relevance, and can be retained only the vectors whose value of SAD/AUTOSAD does not exceed the threshold. Once selected, these vectors can then be distributed in classes in order to constitute the histogram.

Ainsi, dans un ou plusieurs modes de réalisation, un histogramme 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 , 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.Thus, in one or more embodiments, a histogram is generated from motion vectors of the set of motion vectors determined for the current image, on the basis of a correspondence criterion according to which the vectors having identical displacement components in pairs along respective directions are distributed in the same class, by determining for each class the mean of the SAD values of the vectors of the class, after having been selected on the basis of a criterion of relevance comparing a value of SAD/AUTOSAD which is associated with them with a threshold predetermined, for example chosen equal to 2. This will allow, unlike the histogram , to select a class, not on the basis of the number of elements of each class, but on the basis of a comparison of combinations of the distortion values associated with the vectors of each class, for example of a comparison of the means of the SAD values of the motion vectors of each class.

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.In one or more embodiments, the proposed method may use several histograms, each generated on the basis of a respective method of classifying motion vectors among the set of motion vectors obtained by motion estimation analysis of the current picture. The motion vectors used for this classification may correspond to at least one displacement parameter, for example in the form of one or more displacement coordinates along the directions of a standardized reference, and to a distance parameter between the blocks to which the vector corresponds located respectively in the current image and in a reference image.

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.In one or more embodiments, the correspondence criterion may comprise an identity criterion, for two motion vectors, of the respective values of components representing a translation along a respective dimension of the corresponding reference image. This correspondence criterion can thus be applied for each of the dimensions of the current image, to generate a corresponding histogram.

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 ( ) pourront être distribués dans une même classe de vecteurs de mouvement d’un premier histogramme . Par exemple, deux vecteurs et ayant des composantes de déplacements selon une première dimension identiques ( ) pourront être distribués dans une même classe du premier histogramme sur la base de leurs composantes identiques.According to a second method of classifying motion vectors, the vectors having displacement components along an identical first dimension ( ) can be distributed in the same class of motion vectors of a first histogram . For example, two vectors And having displacement components along an identical first dimension ( ) can be distributed in the same class of the first histogram based on their identical components.

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 ( ) pourront être distribués dans une même classe de vecteurs de mouvement d’un deuxième histogramme . Par exemple, deux vecteurs et ayant des composantes de déplacements selon une deuxième dimension identiques ( ) pourront être distribués dans une même classe du deuxième histogramme sur la base de leurs composantes identiques.According to a third method of classifying motion vectors, the vectors having displacement components along an identical first dimension ( ) can be distributed in the same class of motion vectors of a second histogram . For example, two vectors And having components of displacements along an identical second dimension ( ) can be distributed in the same class of the second histogram based on their identical components.

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.In one or more embodiments, a new class of vectors of each histogram may be created to distribute therein a motion vector for which no class of the histogram for distributing the vector based on the matching criterion does not yet exist when distributing the vector in one of the classes of the histogram. As a variant, it will be possible to generate each set of classes by filling in tables stored in memory whose entries correspond respectively to classes.

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 ) 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 ) identiques dans des classes. Le premier histogramme H4 pourra donc représenter les nombres de coordonnées identiques, et le deuxième histogramme H5 représenter les nombres de coordonnées identiques.It will thus be possible, in one or more embodiments, to distribute all or part of the motion vectors generated during the motion estimation analysis in two histograms, a first histogram bringing together the motion vectors having displacement components according to a first dimension (e.g. coordinates ) identical in classes, and the second histogram gathering the motion vectors having displacement components according to a second dimension (for example coordinates ) identical in classes. The first histogram H4 can therefore represent the numbers of coordinates identical, and the second histogram H5 represent the numbers of coordinates identical.

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.In one or more embodiments, the motion vectors distributed in classes of the first and/or second histograms may be selected beforehand from among the motion vectors determined on the basis of a relevance criterion, as described above for scenarios where only one histogram is used. Here again, the purpose of the relevance criterion used may be to avoid selecting for the distribution in classes of the histogram motion vectors that are not very relevant, for example with regard to a corresponding distortion metric value, and which would have could be selected for lack of better vectors obtained during the motion estimation analysis. The relevance criterion may therefore, in one or more embodiments, be advantageously defined on the basis of one or more distortion metrics.

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.Therefore, in one or more embodiments, the relevance criterion may comprise a comparison of a distortion metric value calculated for the motion vector with a predetermined threshold. The predetermined threshold may advantageously be chosen according to the type of distortion metric used for the relevance criterion.

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.In one or more embodiments, the distortion metric value used may be of the SAD type, as described above. In other embodiments, the distortion metric value used may also use a so-called “AUTOSAD” metric, for example when using a criterion of the SAD/AUTOSAD type (ratio of the value of SAD to AUTOSAD value), as described above.

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.It will be possible in particular to choose, in one or more embodiments using a relevance criterion using a distortion measurement of the SAD/AUTOSAD type, a comparison threshold in the interval [-1/2; +8], for example equal to 2.

Ainsi, dans un ou plusieurs modes de réalisation, deux histogrammes et 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 et .Thus, in one or more embodiments, two histograms And are generated from motion vectors of the set of motion vectors determined for the current image, on the basis of a correspondence criterion according to which the vectors having identical displacement components according to a dimension of the image of corresponding reference are distributed in the same class of the respective histogram, possibly after having been selected on the basis of a relevance criterion comparing a value of SAD/AUTOSAD which is associated with them with a predetermined threshold, for example chosen equal to 2 For example, the vectors resulting from the motion estimation analysis can first of all be selected on the basis of the criterion of relevance, and can be retained only the vectors whose value of SAD/AUTOSAD does not exceed not the threshold. Once selected, these vectors can then be distributed in classes in order to constitute the first and second histograms And .

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 et , 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.In one or more embodiments, the proposed method may use several histograms, each generated on the basis of a respective method of classifying motion vectors among the set of motion vectors obtained by motion estimation analysis of the current picture. Similar to the generation of histograms And , the motion vectors used for this classification may correspond to at least one displacement parameter, for example in the form of one or more displacement coordinates along directions of a standardized reference frame of the reference image, and to a distance parameter between the blocks to which the vector corresponds located respectively in the current image and in a reference image.

Dans un ou plusieurs modes de réalisation, comme décrit ci-dessus pour les histogrammes et , 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.In one or more embodiments, as described above for histograms And , the correspondence criterion may comprise an identity criterion, for two motion vectors, of the respective values of components representing a translation along a respective dimension of the corresponding reference image. This correspondence criterion can thus be applied for each of the dimensions of the current image, to generate a corresponding histogram.

Des classes d’histogramme pourront être ainsi générées comme décrit ci-dessus pour les histogrammes et pour constituer deux histogrammes et .Histogram classes can thus be generated as described above for histograms And to build two histograms And .

Dans un ou plusieurs modes de réalisation, les histogrammes et 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 et 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.In one or more embodiments, the histograms And may each represent combinations of values of a distortion criterion (calculated for the vectors of each class), for example the SAD, respectively associated with the vectors of each of their respective classes. Thus, in one or more embodiments, two histograms And may be generated from motion vectors of the set of motion vectors determined for the current image, on the basis of correspondence criteria according to which the vectors having identical motion components along a respective dimension are distributed in the same class, by representing for each class a combination of the values of SAD of the vectors of the class.

Par exemple, pour chaque classe de chacun des histogrammes et , 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 (ou ) comprend C classes , chaque classe comprenant un nombre de vecteurs de mouvement auxquels sont respectivement associées valeurs de SAD , on calcule une combinaison de ces valeurs de SAD pour la classe , par exemple une moyenne de ces valeurs de SAD de type : .For example, for each class of each of the histograms And , we can calculate a linear combination of the values of SAD corresponding to the motion vectors of the class. In particular, in one or more embodiments, it will be possible to calculate an average (for example an arithmetic average) of the values of SAD corresponding to the motion vectors of the class. For example, if the histogram (Or ) includes C classes , each class including a number motion vectors with which are respectively associated SAD values , we calculate a combination of these SAD values for the class , for example an average of these SAD values of type: .

Ainsi, dans un ou plusieurs modes de réalisation, l’histogramme pourra représenter les moyennes des valeurs de SADs déterminées pour les vecteurs des classes respectives de vecteurs aux coordonnées identiques, et l’histogramme pourra représenter les moyennes des valeurs de SADs déterminées pour les vecteurs des classes respectives de vecteurs aux coordonnées 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 et .Thus, in one or more embodiments, the histogram may represent the averages of the values of SADs determined for the vectors of the respective classes of vectors at the coordinates identical, and the histogram may represent the averages of the values of SADs determined for the vectors of the respective classes of vectors at the coordinates identical. It is possible, for example, to calculate an average of the values of SADs associated with the motion vectors of the same class, for one or more classes, or even each of the classes of the histograms And .

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 ou .In one or more embodiments, no selection may be made on the vectors resulting from the motion estimation analysis prior to the generation of the histogram Or .

En variante, de manière similaire au schéma de sélection décrit ci-dessus pour l’histogramme 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 et , la distribution des vecteurs dans des classes étant effectuée de manière similaire à ce qui est décrit ci-dessus pour les histogrammes et , selon un ou plusieurs modes de réalisation.Alternatively, similarly to the selection scheme described above for the histogram a selection can be made on the motion vectors resulting from the motion estimation analysis on the basis of a relevance criterion, for example by comparing a value of SAD/AUTOSAD associated with each vector with a predetermined threshold, by example chosen equal to 2, so as not to distribute in the classes of one and/or the other of the histograms irrelevant vectors which may have been retained during the motion estimation for lack of finding better vectors ( for example in terms of distortion). For example, the vectors resulting from the motion estimation analysis can first of all be selected on the basis of the criterion of relevance, and can be retained only the vectors whose value of SAD/AUTOSAD does not exceed the threshold. Once selected, these vectors can then be distributed in respective classes in order to constitute two histograms And , the distribution of vectors into classes being done similarly to what is described above for histograms And , according to one or more embodiments.

Dans un ou plusieurs modes de réalisation, les histogrammes et 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.In one or more embodiments, the histograms And may each represent combinations of values of a distortion criterion (calculated for the vectors of each class), for example the SAD, respectively associated with the vectors of each of their respective classes.

Ainsi, dans un ou plusieurs modes de réalisation, deux histogrammes et 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.Thus, in one or more embodiments, two histograms And may be generated from motion vectors of a set of motion vectors determined for the current image, on the basis of correspondence criteria according to which the vectors having identical motion components along a respective dimension are distributed in the same class, by representing for each class a combination (for example an average, for example arithmetic) of the values of SAD of the vectors of the class, after having been selected on the basis of a criterion of relevance comparing a value of SAD/AUTOSAD which is associated with them with a predetermined threshold, for example chosen equal to 2.

Par exemple, pour chaque classe de chacun des histogrammes et , 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 (ou ) comprend C classes , chaque classe comprenant un nombre de vecteurs de mouvement auxquels sont respectivement associées valeurs de SAD , on calcule une combinaison de ces valeurs de SAD pour la classe , par exemple une moyenne de ces valeurs de SAD de type : .For example, for each class of each of the histograms And , we can calculate a linear combination of the values of SAD corresponding to the motion vectors of the class. In particular, in one or more embodiments, it will be possible to calculate an average (for example an arithmetic average) of the values of SAD corresponding to the motion vectors of the class. For example, if the histogram (Or ) includes C classes , each class including a number motion vectors with which are respectively associated SAD values , we calculate a combination of these SAD values for the class , for example an average of these SAD values of type: .

Par exemple, l’histogramme 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 identiques, et l’histogramme 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 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 et .For example, the histogram may represent the averages of the values of SADs determined for the vectors of the respective classes of motion vectors at the coordinates identical, and the histogram may represent the averages of the values of SADs determined for the vectors of the respective classes of motion vectors at the coordinates identical, the vectors used to generate the histograms H8 and H9 having been previously selected from among the set of motion vectors generated by the motion estimation analysis on the basis of a relevance criterion. It is possible, for example, to calculate an average of the values of SADs associated with the motion vectors of the same class, for one or more classes, or even each of the classes of the histograms And .

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.Different embodiments of determining the global motion vector of the image are now described, with reference to the different embodiments for generating one or more histograms described above.

En référence aux modes de réalisation dans lesquels un histogramme de type l’histogramme 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 ) 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.With reference to the embodiments in which a histogram of type the histogram described above is generated, a global motion vector for the current frame can be determined by selecting the class of the histogram (e.g. histogram ) having the largest number of elements. In the case where several classes of the histogram contain the largest number of elements, an additional selection criterion can be applied. For example, this additional selection criterion may consist in selecting the first class of the histogram from among the classes which contain the most elements. As a variant, this additional selection criterion can use a combination of the distortion values associated with the vectors of each of the classes which contain the most elements, such as for example an average of these distortion values.

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 et/ou des vecteurs de mouvement compris dans la classe.The selected class corresponds to motion vector components, on the basis of which the class was formed. For example, the selected class corresponds to displacement components according to respective dimensions and or motion vectors included in the class.

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 et , le vecteur de mouvement global de l’image courante peut être déterminé comme ayant ces composantes et : .A global motion vector can then be determined on the basis of a motion vector corresponding to the selected class. In the previous example, each vector of the class having components And , the global motion vector of the current frame can be determined to have these components And : .

En référence aux modes de réalisation dans lesquels un histogramme de type l’histogramme ou 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 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.With reference to the embodiments in which a histogram of type the histogram Or described above is generated, a global motion vector for the current image can be determined by selecting the class of the histogram (for example the histogram or the histogram H3) corresponding to the inverse value of the combination (for example the average) of the values of SAD highest among the values of combinations (for example the values of average) of values of SAD used to generate the histogram . In the case where several classes of the histogram can be selected because they fulfill the selection criterion, an additional selection criterion can be applied. For example, this additional selection criterion may consist in selecting the first class of the histogram from among the classes which can be selected.

Pour reprendre l’exemple de l’histogramme (cet exemple étant transposable au mode de réalisation de l’histogramme pour ce qui suit) dans le cas où l’histogramme comprend classes , chaque classe comprenant un nombre de vecteurs de mouvement auxquels sont respectivement associées valeurs de SAD , on pourra calculer pour chaque classe une combinaison de ces valeurs de SAD. Par exemple, pour la classe , on pourra calculer une combinaison des valeurs de SAD , par exemple une moyenne de ces valeurs de SAD de type : . On obtiendra ainsi valeurs de moyenne , chacune correspondant à une classe respective . On pourra alors, dans un ou plusieurs modes de réalisation, déterminer les inverses des valeurs de moyenne , et sélectionner une classe de l’histogramme 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 .To take the example of the histogram (this example being transposable to the embodiment of the histogram for what follows) in the case where the histogram understand classes , each class including a number motion vectors with which are respectively associated SAD values , a combination of these SAD values can be calculated for each class. For example, for the class , we can calculate a combination of SAD values , for example an average of these SAD values of type: . We will thus obtain mean values , each corresponding to a respective class . It will then be possible, in one or more embodiments, to determine the inverses of the mean values , and select a class from the histogram whose mean inverse value is the highest among the respective mean inverse values of the classes of the histogram .

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 et des vecteurs de mouvement correspondant à la classe sélectionnée.The selected class will correspond to a combination (for example an average) of SAD values for vectors having two-by-two identical displacement components, and therefore indirectly to displacement components of motion vectors, on the basis of which the class has been constituted. For example, the selected class will correspond to displacement components according to respective dimensions And motion vectors corresponding to the selected class.

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 et , le vecteur de mouvement global de l’image courante peut être déterminé comme ayant ces composantes et : .A global motion vector can then be determined on the basis of a motion vector corresponding to the selected class. In the previous example, each vector of the class having components And , the global motion vector of the current frame can be determined to have these components And : .

En référence aux modes de réalisation dans lesquels deux histogrammes de type des histogrammes et 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 selon une première dimension (par exemple horizontale) et une composante 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 pour la dimension horizontale, et dans 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 de classes issues respectivement des histogrammes et (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 ( ) comprend des classes formées avec des vecteurs de mouvement ayant des composantes selon une première dimension identiques, et qu’un premier histogramme ( ) comprend des classes formées avec des vecteurs de mouvement ayant des composantes selon une deuxième dimension identiques, on peut sélectionner dans le premier histogramme ( ) la classe correspondant à la valeur la plus représentée, c’est-à-dire ayant le plus grand nombre d’éléments, et sélectionner dans le deuxième histogramme ( ) la classe correspondant à la valeur la plus représentée, c’est-à-dire ayant le plus grand nombre d’éléments.With reference to the embodiments in which two histograms of type histograms And described above are generated, the classes of each of these histograms corresponding to a displacement component along a respective dimension (for example a component according to a first dimension (for example horizontal) and a component according to a second dimension (for example vertical)), a global motion vector for the current image can be determined by selecting in each histogram corresponding to a dimension (for example in for the horizontal dimension, and in for the vertical dimension) the class with the largest number of elements. In the case where several classes of one of the histograms contain the greatest number of elements, an additional selection criterion can be applied. For example, this additional selection criterion may consist in selecting the first class of the histogram from among the classes which contain the most elements. Alternatively, this additional selection criterion can use a combination of the distortion values (for example) associated with the vectors of each of the classes which contain the most elements, as an average of these distortion values. In one or more embodiments, this additional selection criterion can test different combinations of classes resulting respectively from the histograms And (of which at least one histogram comprises a plurality of classes with a greater number of elements) to identify whether one or more of these combinations corresponds to one of the motion vectors obtained by the motion estimation analysis. If one of the combinations matches a motion vector obtained by the motion estimation analysis, it may be chosen and the overall motion vector determined based on that combination. For example, when a first histogram ( ) includes classes formed with motion vectors having components along a first dimension identical, and that a first histogram ( ) includes classes formed with motion vectors having components along a second dimension identical, we can select in the first histogram ( ) the class corresponding to the value most represented, i.e. having the largest number of elements, and select in the second histogram ( ) the class corresponding to the value the most represented, that is to say having the greatest number of elements.

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 et des vecteurs de mouvement respectivement compris dans les classes.The selected classes correspond respectively to motion vector components, on the basis of which each of them has been constituted. For example, the selected classes correspond respectively to displacement components according to respective dimensions And motion vectors respectively comprised in the classes.

Un vecteur de mouvement global peut 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 et , le vecteur de mouvement global de l’image courante peut être déterminé comme ayant ces composantes et : .A global motion vector can then be determined on the basis of the motion vector components corresponding respectively to the classes selected in the first and second histograms. In the previous example, the components of each of the classes having respectively values And , the global motion vector of the current frame can be determined to have these components And : .

En référence aux modes de réalisation dans lesquels deux histogrammes de type des histogrammes et , ou et 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 selon une première dimension (par exemple horizontale) et une composante 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 ou pour la dimension horizontale, et dans ou 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.With reference to the embodiments in which two histograms of type histograms And , Or And described above are generated, the classes of each of these histograms corresponding to a displacement component along a respective dimension (for example a component according to a first dimension (for example horizontal) and a component according to a second dimension (for example vertical)), a global motion vector for the current image can be determined by selecting in each histogram corresponding to a dimension (for example in Or for the horizontal dimension, and in Or for the vertical dimension) the class of the histogram corresponding to the inverse value of the combination (for example the average) of the values of SAD highest among the values of combinations (for example the values of average) of values of SAD used to generate the histogram. In the case where several classes of a histogram can be selected because they fulfill the selection criterion, an additional selection criterion can be applied. For example, this additional selection criterion may consist in selecting the first class of the histogram from among the classes which can be selected.

Pour reprendre l’exemple de l’histogramme (cet exemple étant transposable au mode de réalisation des histogrammes , et pour ce qui suit) dans le cas où l’histogramme comprend classes , chaque classe comprenant un nombre de vecteurs de mouvement auxquels sont respectivement associées valeurs de SAD , on pourra calculer pour chaque classe une combinaison de ces valeurs de SAD. Par exemple, pour la classe , on pourra calculer une combinaison des valeurs de SAD , par exemple une moyenne de ces valeurs de SAD de type : . On obtiendra ainsi valeurs de moyenne , chacune correspondant à une classe respective . On pourra alors, dans un ou plusieurs modes de réalisation, déterminer les inverses des valeurs de moyenne , et sélectionner une classe de l’histogramme 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 .To take the example of the histogram (this example being transposable to the embodiment of the histograms , And for what follows) in the case where the histogram understand classes , each class including a number motion vectors with which are respectively associated SAD values , a combination of these SAD values can be calculated for each class. For example, for the class , we can calculate a combination of SAD values , for example an average of these SAD values of type: . We will thus obtain mean values , each corresponding to a respective class . It will then be possible, in one or more embodiments, to determine the inverses of the mean values , and select a class from the histogram whose mean inverse value is the highest among the respective mean inverse values of the classes of the histogram .

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 ou ), à une composante de déplacement selon une première dimension des vecteurs de mouvement correspondant à la classe sélectionnée dans ce premier histogramme, et pour le deuxième histogramme (par exemple ou ), à une composante de déplacement selon une deuxième dimension des vecteurs de mouvement correspondant à la classe sélectionnée dans ce deuxième histogramme.For each histogram, the selected class corresponds to a combination (for example an average) of SAD values for vectors having identical one-dimensional displacement components, and therefore indirectly to displacement components of motion vectors, on the basis which the class was formed. For example, the selected class corresponds, for the first histogram (for example Or ), to a displacement component along a first dimension motion vectors corresponding to the class selected in this first histogram, and for the second histogram (for example Or ), to a displacement component along a second dimension motion vectors corresponding to the class selected in this second histogram.

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 et : .A global motion vector can then be determined on the basis of the motion vectors corresponding respectively to the classes selected in the first and second histograms. In the previous example, the global motion vector of the current frame can be determined to have the components And : .

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.Various embodiments proposed for determining a global motion vector for an image of a set of images are described below.

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.In one or more embodiments, a pre-analysis can be performed on the image to be processed, to cut this image into blocks, and then to perform a motion estimation analysis on these blocks. For example, the current image can be cut into blocks of dimension 16 x 16 pixels, then a motion estimation of these blocks can be performed in order to extract, for each block, a motion vector (determined by components) and a value of SAD associated with this motion vector.

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 et à un déplacement vertical 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 ; 11y), 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 œuvre du procédé proposé.Figure 4a shows an image cut into blocks of equal size. A motion estimation analysis was performed on each of the blocks of the image based on a reference image, generating at least one motion vector per block. Identical motion vectors (for example whose components correspond respectively to a horizontal displacement and a vertical displacement are two by two identical) are indicated by hatching of identical orientation. In the example illustrated, the motion estimation analysis of the image generates, for a given reference image, sets of identical motion vectors comprising respectively 51 vectors (of components (59x; 85y)), 11 vectors (of components (56x; 495y)), 6 vectors (of components (19x; 11y)), and 9 vectors (of components (1050x; 32y)). A value of SAD/AUTOSAD can be calculated for each vector, then compared to a predetermined threshold. In the example illustrated in figure 4a, among the 51 component vectors (59x; 85y), 45 vectors have an SAD/AUTOSAD value lower than 2 (the other 6 vectors having an SAD/AUTOSAD value higher than 2) , among the 11 component vectors (56x; 495y), 10 vectors have an SAD/AUTOSAD value less than 2 (1 other vector having an SAD/AUTOSAD value greater than 2), among the 6 component vectors (19x; 11y), 1 vector has a value of SAD/AUTOSAD less than 2 (the other 5 vectors have a value of SAD/AUTOSAD greater than 2), and all 9 component vectors (1050x; 32y) have a value of SAD/ AUTOSAD less than 2. In certain embodiments, the 6 component vectors (19x; 11y) are therefore not used for the construction of a histogram for the implementation of the proposed method.

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 Δx et Δy correspondant respectivement à des dimensions de l’image courante) le plus représenté (en nombre) dans cet histogramme.In one or more embodiments, a histogram could then be created from all the collected vectors, without input conditions neither on their respective sizes, nor on their respective SAD values, in order to classify the number of motion vectors identical, for example by distributing the motion vectors having identical components in classes. It will then be possible to choose as global vector of the current image the vector (for example determined by the pair of components Δx and Δy corresponding respectively to dimensions of the current image) the most represented (in number) in this histogram.

Dans un ou plusieurs modes de réalisation, les valeurs Δx et Δy 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.In one or more embodiments, the values Δx and Δy of this global motion vector may advantageously be thresholded (clipped) over a predefined interval, such as for example the interval [-512; +511] in order to be normative, and thus respect a maximum size value imposed by a standard specification, for example.

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 l’histogramme. 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 Δx et Δy 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 l’histogramme 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 Δx et Δy correspondant respectivement à des dimensions de l’image courante) le plus représenté (en nombre) dans l’histogramme. Etant donné que l’histogramme ne contiendra que des vecteurs ayant une amplitude normative, le vecteur global ainsi obtenu ne nécessitera avantageusement aucun seuillage.In one or more embodiments, the histogram may be created not from all the collected vectors, but only from the collected vectors that satisfy one or more entry conditions in the histogram. Some of the collected vectors will therefore be selected to create the histogram, based on one or more criteria to be met. For example, in a particular embodiment, a histogram could be created only from collected vectors whose values Δx and Δy are included in a predefined interval, such as for example the interval [-512; +511] (without entry conditions on their SAD values), in order to distribute in classes of the histogram vectors which have a “natively” normative amplitude, and thus for example classify the number of identical vectors which have this normative amplitude. This will advantageously make it possible to avoid modifying the components of the global motion vector once determined so that they are normative. We can then choose as global vector of the current image the vector (for example determined by the pair of components Δx and Δy corresponding respectively to dimensions of the current image) most represented (in number) in the histogram. Given that the histogram will only contain vectors having a normative amplitude, the global vector thus obtained will advantageously not require any thresholding.

Dans un ou plusieurs modes de réalisation, une pluralité de conditions d’entrée pourront être utilisés pour la création de l’histogramme. Par exemple, dans un mode de réalisation particulier, l’histogramme 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 Δx et Δy appartiennent à un intervalle prédéfini, comme par exemple l’intervalle [-512 ; +511], et dont la valeur « SAD/AUTOSAD » est inférieure à 2.In one or more embodiments, a plurality of entry conditions could be used for the creation of the histogram. For example, in a particular embodiment, the histogram could be created solely from motion vectors fulfilling a size criterion and a distortion criterion. The selected vectors could for example be motion vectors whose values Δx and Δy belong to a predefined interval, such as for example the interval [-512; +511], and whose “SAD/AUTOSAD” value is less than 2.

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 Δx et Δy correspondant respectivement à des dimensions de l’image courante) le plus représenté (en nombre) dans cet histogramme.In one embodiment, a self-distortion value (AUTOSAD) may be determined beforehand for all or part of the blocks of the image being processed. The histogram can only be generated by using vectors having a value of SAD/AUTOSAD lower than a predetermined threshold, for example chosen equal to 2. One can then choose as global vector of the current image the vector (for example determined by the pair of components Δx and Δy corresponding respectively to dimensions of the current image) most represented (in number) in this histogram.

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 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.FIG. 4b illustrates an example of a histogram constructed from the results of the motion estimation illustrated in FIG. 4a and using a preselection on the basis of a size criterion (the size, for example expressed in number of bits, of the vectors selected to construct the histogram that must belong to a predetermined interval, such as for example an interval of type corresponding to signed n-bit vectors (for example the interval [-512;+511] which corresponds to signed 10-bit vectors) and on the basis of a relevance criterion of the distortion value associated with the vector ( for example the SAD, the relevance of the SAD being measured by comparing a value of SAD/AUTOSAD with a predetermined threshold). Thus, the motion vectors obtained in the example of FIG. 4a which have a size that does not fulfill a pre-selection criterion on the size (for example the 9 vectors of components (1050x; 32y) do not have the desired size of [-512;+512]) and/or which do not fulfill a criterion of relevance of the SAD (for example the 6 vectors of components (59x; 85y), the vector of components (56x; 495y) and the 5 vectors of components (19x; 11y) which have an SAD/AUTOSAD value greater than 2) are not used for the construction of the histogram illustrated in FIG. 4b.

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 ( ou ) 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 Δx des vecteurs de mouvement (translations horizontales) et pour l’autre que les valeurs Δy 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 Δx identiques et de Δy identiques dans des histogrammes respectifs.In one or more embodiments, two histograms could be generated from all the collected vectors, without entry conditions either on their respective sizes, or on their respective distortion values (for example their SAD values), in order to classify in each histogram the number of motion vectors having a displacement component ( Or ) identical, for example by distributing the motion vectors having components according to a dimension of the current image that are identical in respective classes of the histograms. For example, in a particular embodiment, the proposed method may include the creation of two histograms comprising for one only the values Δx of the movement vectors (horizontal translations) and for the other only the values Δy of the vectors of motion (vertical translations), without input conditions either on their amplitudes or on their distortion values (for example their SAD values), in order to classify the number of identical Δx and identical Δy in respective histograms.

On pourra alors choisir comme vecteur global de l’image courante le vecteur (par exemple déterminé par la paire de composantes Δx et Δy 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 Δx et Δy les plus représentées, éventuellement seuillées sur l’intervalle [-512 ; +512].We can then choose as global vector of the current image the vector (for example determined by the pair of components Δx and Δy corresponding respectively to dimensions of the current image) the most represented (in number) in the corresponding histogram. For example, the resulting global vector may come from the combination of the most represented Δx and Δy values, possibly thresholded over the interval [-512; +512].

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 Δx et un pour les Δy), mais uniquement à partir des valeurs de Δx et de Δy directement incluses dans l’intervalle [-512 ; +512]. Le vecteur global résultant sera ainsi issu de la combinaison des valeurs de Δx et de Δy les plus représentées et ne nécessitera avantageusement pas de seuillage.In one or more embodiments, two histograms could be generated from all the vectors collected as described above, but using input conditions on their respective sizes and/or on their distortion values (for example their values of SAD) respectively. For example, in a particular embodiment, two histograms can be constructed (one for the Δx and one for the Δy), but only from the values of Δx and of Δy directly included in the interval [-512; +512]. The resulting global vector will thus be derived from the combination of the most represented values of Δx and of Δy and will advantageously not require thresholding.

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.Depending on the chosen embodiment, certain acts, actions, events or functions of each of the methods described in this document may be performed or occur in a different order from that in which they were described, or may be added, merged or else not be effected or not occur, as the case may be. Further, in some embodiments, certain acts, actions or events are performed or occur concurrently and not sequentially.

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 œuvre 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.Although described through a certain number of detailed exemplary embodiments, the proposed piloting method and the device for the implementation of an embodiment of the method include various variants, modifications and improvements which will become evident in skilled in the art, it being understood that these different variants, modifications and improvements are part of the scope of the present disclosure, as defined by the following claims. Additionally, various aspects and features described above may be implemented together, or separately, or substituted for each other, and all of the various combinations and sub-combinations of the aspects and features are within the scope of this disclosure. Additionally, some systems and equipment described above may not incorporate all of the modules and functions described for the preferred embodiments.

Claims (11)

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.
A method of processing an image in a set of images, wherein the image is cut into a plurality of blocks, the method comprising:
determining a plurality of motion vectors, each motion vector corresponding to a block of the plurality of blocks of the image, and pointing to a block correlated to the corresponding block in a reference image, the reference image being an image of the set of images distinct from the image;
distributing motion vectors among the plurality of determined motion vectors into classes of a first histogram based on a matching criterion applied, for each classified motion vector, to a component of the motion vector;
selecting a first class of the first histogram based on a selection criterion; And
determining an overall motion vector of the image based on a motion vector corresponding to the first selected class.
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.A processing method according to claim 1, wherein determining a plurality of motion vectors comprises: determining a motion vector for each block of the plurality of blocks of the image. 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.A method according to any preceding claim, wherein the distributed motion vectors are distributed into first classes of the first histogram based on the match criterion applied to a first component of the classified motion vector, and into second classes of a second histogram based on the match criterion applied to a second component of the classified motion vector, the method further comprising: selecting a second class of the second histogram based on the selection criterion; and wherein the overall motion vector of the image is generated based on motion vector components corresponding to the selected first and second classes, respectively. 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.A method according to any preceding claim, wherein the selection criterion determines a class having the greatest number of values. 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.Method according to one of Claims 1 to 3, in which the selection criterion determines a class on the basis of combinations of the values of a distortion metric respectively obtained for the class motion vectors. 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.A method according to claim 5, wherein the overall motion vector of the image is determined based on a motion vector associated with the highest value of the inverse of the combination of values of the distortion metric among the inverses of the respective combinations of the values of the distortion metric respectively obtained for the class motion vectors. 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.Method according to one of the preceding claims, in which the motion vectors distributed in classes are selected from the motion vectors determined on the basis of a relevance criterion. 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.Method according to one of the preceding claims, in which the motion vectors distributed in classes are selected from the motion vectors determined on the basis of a size criterion. 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.Method according to any one of the preceding claims, in which the correspondence criterion comprises a two-by-two identity criterion, for two motion vectors, of the respective values of components representing a translation along a respective dimension of the reference image corresponding. 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.
Image processing device comprising:
an input interface configured to receive one image from a set of images;
an image processing unit, comprising a processor, operatively coupled to the input interface, and configured to perform image processing according to the method of any of claims 1 to 9.
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.Computer program, loadable into a memory associated with a processor, and comprising portions of code for the implementation of the steps of a method according to any one of claims 1 to 9 during the execution of said program by the processor.
FR2005855A 2020-06-04 2020-06-04 IMAGE PROCESSING METHOD AND EQUIPMENT FOR IMPLEMENTING THE METHOD Active FR3111253B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2005855A FR3111253B1 (en) 2020-06-04 2020-06-04 IMAGE PROCESSING METHOD AND EQUIPMENT FOR IMPLEMENTING THE METHOD
PCT/EP2021/065021 WO2021245241A1 (en) 2020-06-04 2021-06-04 Image processing with determination of a global movement vector from histograms

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2005855A FR3111253B1 (en) 2020-06-04 2020-06-04 IMAGE PROCESSING METHOD AND EQUIPMENT FOR IMPLEMENTING THE METHOD
FR2005855 2020-06-04

Publications (2)

Publication Number Publication Date
FR3111253A1 true FR3111253A1 (en) 2021-12-10
FR3111253B1 FR3111253B1 (en) 2023-08-25

Family

ID=72560763

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2005855A Active FR3111253B1 (en) 2020-06-04 2020-06-04 IMAGE PROCESSING METHOD AND EQUIPMENT FOR IMPLEMENTING THE METHOD

Country Status (2)

Country Link
FR (1) FR3111253B1 (en)
WO (1) WO2021245241A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0652678A2 (en) * 1993-11-04 1995-05-10 AT&T Corp. Method and apparatus for improving motion compensation in digital video coding
US20080084934A1 (en) * 2006-10-10 2008-04-10 Texas Instruments Incorporated Video error concealment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0652678A2 (en) * 1993-11-04 1995-05-10 AT&T Corp. Method and apparatus for improving motion compensation in digital video coding
US20080084934A1 (en) * 2006-10-10 2008-04-10 Texas Instruments Incorporated Video error concealment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
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 *

Also Published As

Publication number Publication date
FR3111253B1 (en) 2023-08-25
WO2021245241A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
EP3225029B1 (en) Image encoding method and equipment for implementing the method
TR201808770T4 (en) Image coding method, image coding apparatus, image decoding method, image decoding apparatus and image coding / decoding apparatus.
EP3318061B1 (en) Method of image encoding and facility for the implementation of the method
FR2894421A1 (en) METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING
FR3098072A1 (en) Process for processing a set of images from a video sequence
CN114268792A (en) Method and device for determining video transcoding scheme and method and device for video transcoding
EP1972156B1 (en) Adaptive encoding and decoding
FR3041495A1 (en) IMAGE ENCODING METHOD AND EQUIPMENT FOR IMPLEMENTING THE METHOD
FR3111253A1 (en) IMAGE PROCESSING PROCESS AND EQUIPMENT FOR IMPLEMENTING THE PROCESS
EP3972246A1 (en) Method for encoding and decoding of images, corresponding device for encoding and decoding of images and computer programs
EP3158749B1 (en) Method for encoding and decoding images, device for encoding and decoding images, and corresponding computer programmes
WO2018073523A1 (en) Method for coding and decoding image parameters, device for coding and decoding image parameters and computer programs corresponding thereto
WO2016051083A1 (en) Method of transcoding video data with fusion of coding units, computer program, transcoding module and telecommunications equipment associated therewith
WO2021048498A1 (en) Ai prediction for video compression
Tiotsop et al. How to Train No Reference Video Quality Measures for New Coding Standards using Existing Annotated Datasets?
FR2957744A1 (en) METHOD FOR PROCESSING A VIDEO SEQUENCE AND ASSOCIATED DEVICE
Shao et al. Analysis‐aware microscopy video compression
FR3098070A1 (en) Video encoding and decoding method by signaling a candidate subset
WO2020161413A1 (en) Methods and devices for coding and decoding a data stream representing at least one image
WO2021160955A1 (en) Method and device for processing multi-view video data
EP3815366A1 (en) Methods and devices for coding and decoding a data stream representing at least one image
EP4222950A1 (en) Method for encoding and decoding a multi-view video
FR2938146A1 (en) Video image encoding rate optimizing method for video encoder, involves transmitting physical candidate weights of each physical candidate group into video flow for current image encoding purpose to minimize total square error
FR3018149A1 (en) METHOD AND DEVICE FOR SELECTING IMAGE DYNAMIC CONVERTING OPERATOR, COMPUTER PROGRAM AND CORRESPONDING STORAGE MEDIUM
FR2878384A1 (en) VIDEO COMPRESSION BY MODIFICATION OF QUANTIFICATION BY ZONES OF IMAGES

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20211210

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5