Brevet FR2876531A1 — publié le 20060414

Procédé et dispositif de lecture de tatouage, produit programme d'ordinateur et moyen de stockage correspondants. 1. Domaine de l'invention 1.1 Contexte de l'invention L'invention se place dans le domaine du tatouage de vidéo numérique ( watermarking en anglais). Plus précisément, l'invention concerne un procédé de lecture de tatouage. L'invention a de nombreuses applications, telles que par exemple la lecture de tatouage sur fichier vidéo (de type MPEG 2 par exemple). Elle permet par exemple la protection contre le piratage de films par copie d'écran ( screeners DVD ), c'est-à-dire par enregistrement illégal en filmant un écran de cinéma. Plus généralement, la présente invention peut s'appliquer dans tous les cas où les données à traiter peuvent être stockées sur une certaine profondeur, de façon à pouvoir revenir en arrière lors du traitement de ces données. L'invention peut être appliquée à tout type de données support (vidéo, image, audio, texte, données 3D, etc.). Par ailleurs, l'invention s'applique quel que soit le format des données support: sous forme d'un flux (par exemple un signal vidéo capté sur un canal de télévision), sous forme de fichier, sous forme d'enregistrement (cassette, DVD...), etc. Dans un seul souci de simplification, et pour la bonne compréhension du lecteur, on explique ci-après plus en détails le contexte de l'invention en prenant à titre d'exemple le cas d'une séquence de données de type vidéo. On rappelle que l'invention peut cependant être appliquée à tout type d'ensemble de données. La lecture du tatouage peut être rendue difficile par les altérations subies par la vidéo support du tatouage. Les compressions à bas débit (MPEG 2) ou très bas débit (DivX, WindowsMedia) dégradent ainsi généralement très fortement la qualité du signal de tatouage. Les déformations géométriques (décalage et découpage, changement d'échelle...) peuvent rendre le tatouage illisible si on ne procède pas à une étape préalable de recalage de l'image dans le repère d'origine. Dans l'application de protection contre le piratage de copies d'écran ( screeners ), on tatoue chaque DVD avec un numéro différent, identifiant de façon 2876531 2 unique chaque récipiendaire. Si on constate par la suite un piratage (diffusion du film sur Internet, revente du DVD sur des sites d'enchères), on peut alors en identifier la source et entamer des poursuites. Pour cela, il faut que le tatouage soit robuste à des manipulations de la vidéo (typiquement encodage DivX bas débit pour une diffusion sur Internet), et surtout que l'on puisse le relire avec le maximum de fiabilité (afin de ne pas incriminer quelqu'un à tort). 1.2 Rappel des principes génériques des systèmes de tatouage Un système de tatouage est un système de transmission d'information. Comme illustré sur la figure 1, il comprend donc (au moins) un émetteur 1 (le tatoueur proprement dit), qui modifie une vidéo support pour insérer le message de tatouage, et (au moins) un récepteur ( lecteur de tatouage ) 2, qui à la réception d'une vidéo quelconque détermine si celle ci est tatouée et, si oui, quel est le message inséré. Comme illustré sur la figure 2, l'émetteur (tatoueur) 1 prend en entrée un ensemble de données support (typiquement des données vidéo) et un certain nombre de paramètres. Au nombre des paramètres figure notamment généralement le message de tatouage (aussi appelé tatouage porteur ), qui est représenté par une suite de M éléments binaires (M>_1). Généralement, on trouve également d'autres paramètres, comme la clé qui assure un certain niveau de sécurité, la force de marquage... En fonction de ces paramètres et de la vidéo elle-même, le tatoueur modifie la vidéo pour produire une vidéo tatouée. Comme illustré sur la figure 3, le récepteur (lecteur de tatouage) 2 prend en entrée une vidéo, ainsi qu'éventuellement un certain nombre de paramètres (par exemple une clé). Eventuellement, il prend également en entrée la vidéo originale, qui peut servir à faciliter la détermination des paramètres de canal, par comparaison entre la vidéo originale et la vidéo testée (vidéo sur laquelle on cherche à relire le tatouage). La vidéo originale peut également être utilisée pour faciliter la lecture du message de tatouage: par exemple la soustraction de l'original de la vidéo testée permet de réduire l'impact du bruit affectant le tatouage, en particulier du bruit produit par la vidéo originale elle-même. A partir de ces données il réalise généralement une étape de détection, qui détermine si la vidéo est ou non tatouée. Si la détection est positive, il réalise une étape de détermination (ou décodage) du ou des messages de tatouage (on peut avoir plusieurs 2876531 3 messages de tatouage si les données support sont issues d'une opération de compositage, par exemple montage de plusieurs séquences vidéo, moyennage d'images, réalisation d'un montage ou d'une mosaïque à l'aide de plusieurs données support, etc. ). Les messages de tatouage détectés sont éventuellement accompagnés d'informations auxiliaires: par exemple un indice de fiabilité (estimation de la probabilité que le message de tatouage estimé soit erroné), une information de localisation du tatouage (localisation temporelle et/ou spatiale, dans les cas de compositage). Remarquons que toutes les étapes comprises dans le processus de lecture peuvent être effectuées soit directement sur les données vidéo elle-même, soit sur une représentation transformée des données (Transformée de Fourier, transformée en cosinus discret DCT-, transformée en ondelettes etc.). La localisation du tatouage est utile, voir indispensable. En effet, le tatouage n'a généralement d'intérêt qu'en étant qu'associé à des données supports, par exemple pour permettre d'identifier un extrait diffusé. Lorsque l'on retrouve plusieurs messages de tatouage sur un même ensemble de données support, il est donc important de savoir le plus précisément possible à quel sous-ensemble de données support chacun des messages de tatouage correspond. On introduit maintenant la notion de canal de tatouage. Entre le tatoueur 1 et le lecteur 2, les données support (vidéo) subissent généralement toute une série de transformations. Ces transformations sont liées aux contingences techniques de la vie de l'image (transmission, stockage, exploitation...), mais également à d'éventuelles attaques intentionnelles visant à rendre le tatouage inutilisable. Par analogie avec le domaine des transmissions, on nomme canal de tatouage toutes les modifications subies par le signal de tatouage du fait des modifications des données support. Ces modifications peuvent engendrer une altération ( bruit ) du signal de tatouage et donc rendre la lecture plus difficile et/ou sujette à erreurs. Parmi les altérations dues au canal de tatouage, citons les plus fréquentes (liste non exhaustive) : - compression à perte (JPEG, MPEG, divX...), d'effet d'autant plus néfaste que le taux de compression est élevé ; 2876531 4 transformations géométriques: décalage et découpage, changement d'échelle, déformations... ; transformations temporelles: remontage, coupures, changement de fréquence image (standards PAL / NTSC) ; compositage, temporel et/ou spatial; transformations colorimétriques ou de luminance. Les modifications engendrées par le canal de tatouage sont généralement inconnues ( aléatoires ) lors de la lecture du tatouage. Afin que ces modifications n'entraînent pas d'erreur ou d'incapacité de lecture, deux grandes familles de stratégies sont possibles: lors du processus de tatouage, faire en sorte que le signal de tatouage (ou certaines de ses caractéristiques) soit intrinsèquement invariant après passage dans le canal de tatouage (choix de la technique de modulation, codage redondant.. .) ; lors de la lecture du tatouage, estimer préalablement la valeur des altérations engendrées par le canal de tatouage (paramètres de canal) afin si possible d'inverser la transformation réalisée par le canal. Cette deuxième stratégie est très utilisée pour estimer les paramètres des transformations géométriques causées par le canal de tatouage. Elle utilise parfois un signal de tatouage auxiliaire (aussi appelé cotatouage ). 1.3 Différents paramètres estimés par le lecteur de tatouage Comme illustré sur la figure 4, le processus de lecture se déroule généralement en trois étapes principales: une étape (41) de détermination de certains des paramètres de canal (typiquement des déformations géométriques), éventuellement en utilisant un signal de cotatouage; une étape (42) de recalage de la vidéo: à partir des paramètres de canal préalablement estimés, on estime la transformation correspondant au canal de tatouage, puis on inverse cette transformation estimée (si cela est possible) et enfin on applique la transformation estimée inverse sur la vidéo test; une étape (43) de détermination du message de tatouage sur la vidéo test recalée. 2876531 5 Le signal de cotatouage (nommé également signal ou tatouage de référence, signal de synchronisation, signal auxiliaire, signal d'apprentissage, signal de service) est inséré par le tatoueur 1. Il est connu du lecteur 2 et permet d'estimer certaines altérations (paramètres de canal) subies par la vidéo. Notons cependant qu'on peut concevoir des systèmes se passant de tatouage de synchronisation, soit parce que l'étape (41) d'estimation des altérations n'est pas effectuée (ce n'est pas nécessaire dans certaines applications), soit parce que l'étape (41) d'estimation des altérations n'utilise pas de tatouage auxiliaire. 2. Art antérieur 2.1 Techniques connues de tatouage numérique Une première technique connue de tatouage numérique est décrite dans l'article suivant: S.Baudry, J.F.Delaigle, B.Sankur, B.Macq, H.Maitre, "Analyses of error correction strategies for typical communication channels in watermarking", pp 1239- 1250 in Signal Processing, Vol 81, No 6, June 2001. Dans cet article est proposée une méthode de codage et de décodage du signal de tatouage porteur dans une image ou une vidéo. Un code correcteur est utilisé, formé par concaténation d'un code BCH et d'un code de répétition. Une méthode de décodage souple est proposée, qui permet d'augmenter les performances de détection par rapport à un décodage ferme classique. Cependant, le décodage est réalisé image par image et ne prend pas en compte la globalité de la vidéo. Une deuxième technique connue de tatouage numérique est décrite dans l'article suivant: J.P.M.G. Linnartz, A.A.C. Kalker, J. Haitsma, "Detecting electronic watermarks in digital video", Paper 3010, Invited paper for special session at ICCASP '99, Phoenix, AR, March 1999. Les auteurs proposent ici une méthode de détection de tatouage de type additif (étalement de spectre). Elle permet de contrôler le taux de fausses alarmes (tatouage détecté sur une image non marquée) en même temps que le taux de détection. Cependant, le message tatoué contient seulement 1 bit: la lecture consiste simplement à déterminer si le tatouage est présent ou absent. Si on insère un message avec un nombre de bits important, la méthode n'est plus adaptée car elle demande un nombre 2876531 6 d'opérations trop important (voir ci-dessous les considérations sur le décodage exhaustif). Une troisième technique connue de tatouage numérique est décrite dans l'article suivant: Y. Zhao, R. Lagendijk, video watermarking scheme resistant to geometric attacks, proceedings of ICIP, vol.2, Rochester, NY, p.145-149, sept. 2002. Les auteurs proposent une méthode de tatouage vidéo reposant sur une modulation temporelle de la luminance moyenne des images de la séquence. L'intérêt de cette méthode est d'être robuste aux transformations géométriques opérant sur les images. Par contre, elle ne permet d'enfouir qu'un tatouage de faible densité d'information (quelques bits par minutes) . De plus, si la séquence est remontée, ou si elle subit une attaque par collusion (plusieurs utilisateurs fusionnent leurs séquences tatouées avec des messages différents dans l'espoir de brouiller les tatouages), la méthode de détection proposée ne permet pas de décoder le tatouage correctement. Une quatrième technique connue de tatouage numérique est décrite dans le brevet américain US 6516079, intitulé Digital watermarking screening and detecting strategies . Ce brevet US 6516079 décrit un procédé de détection de tatouage en deux ou plus étapes. Chaque étape consiste en la mesure de probabilités de présence ( detection value ) calculées de manières différentes. Notamment, les auteurs proposent deux types de mesures: l'une absolue, consiste en la comparaison d'un score de détection (corrélation) par rapport à un seuil; l'autre, relative, en la comparaison du plus grand score absolu par rapport aux autres scores. Chaque étape permet de rejeter de plus en plus de portions du signal comme non tatoué (ou même de rejeter la totalité du signal le cas échéant). Il a donc pour but de rendre la lecture du tatouage plus rapide en rejetant rapidement certaines portions considérées comme non tatouées, afin de concentrer les ressources de calcul sur d'autres portions considérées comme potentiellement tatouées. 2.2 Rappels sur le décodage exhaustif et le décodage incomplet Comme le canal de tatouage est bruité et induit des erreurs sur le signal de tatouage, le message de tatouage est généralement encodé en utilisant un code correcteur d'erreur. A partir de k bits de message, un tel code fournit un mot de n bits (n>k). L'ensemble des mots de n bits obtenus à partir du codage de tous les mots possibles de k 2876531 7 bits s'appelle le code (l'ensemble des mots de code). Comme n>k, tous les mots de n bits n'appartiennent pas au code. Lors du décodage, on reçoit un mot de n bits. Celui ci n'est pas forcément un mot de code (certains bits ont pu être modifiés à cause des erreurs de canal). On peut montrer que, pour la plupart des canaux réalistes , le décodage optimal (qui produit la probabilité d'erreur de décodage minimal) est le décodage MAP (Maximum A Posteriori). Un décodage MAP recherche, parmi l'ensemble des mots de code, celui qui est le plus proche au sens de la distance de Hamming du mot reçu. On rappelle que la distance de Hamming entre 2 mots ml et m2 est le nombre de bits différents entre ces mots ml et m2. La fiabilité du décodage pourra alors être donnée en fonction de la distance de Hamming entre mot reçu et mot décodé. On peut implémenter simplement un décodage MAP en réalisant un décodage exhaustif. Pour cela, on génère l'ensemble des mots de code (2k mots possibles), puis, pour chacun des mots de code, on calcule sa distance de Hamming au mot reçu. Le mot décodé est alors le mot de code dont la distance au mot reçu est minimale. Cependant, un tel algorithme n'est pas utilisé en pratique car il conduit à des temps de calcul extrêmement longs dès lors que k dépasse la dizaine de bits. Par exemple, pour un code avec k=64 (ordre de grandeur typique pour les applications de tatouage), on a environ 1.8 1019 mots de code. Le nombre d'opérations requises pour réaliser un décodage exhaustif croît exponentiellement avec k. Si on considère le problème du point de vue des statistiques, réaliser un décodage exhaustif est équivalent à effectuer un test à 2k hypothèses (ou 2k+l hypothèses, si on inclut l'hypothèse nulle: vidéo non tatouée ). Il a donc été proposé des algorithmes de décodage plus rapides que le décodage exhaustif. Malheureusement, pour la plupart des codes correcteurs, ces algorithmes sont incomplets. Cela signifie qu'ils permettent de trouver le mot le plus proche d'un mot reçu donné, mais seulement dans certaines conditions. Pour la plupart des codes correcteurs, l'algorithme de décodage ne fournit le mot le plus proche que si la distance entre mot reçu et mot de code est inférieure à une distance dmrn donnée. Cela a pour effet que le taux de détection est plus faible que pour un décodage exhaustif, notamment 2876531 8 lorsque le taux d'erreur du canal est élevé (ce qui est souvent le cas dans les applications de tatouage). La figure 5 est une représentation géométrique d'un décodage de tatouage incomplet. Les régions de décodage sont des sphères de rayon dmtn, centrées chacune sur un mot de code C, distinct. Le mot reçu R2 est situé dans une sphère de décodage, il peut donc être décodé en C3. Par contre, le mot reçu R, est situé à l'extérieur des régions de décodage et donc ne peut être décodé. En pratique, la densité des sphères de décodage par rapport à l'ensemble des mots possibles est très faible. Cela signifie que, pour un mot aléatoire, le décodage a très peu de chances d'aboutir. Si le canal est très bruité, le taux de décodage du tatouage sera également très faible. 3. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique. Plus précisément, l'un des objectifs de la présente invention, dans au moins un mode de réalisation, est de fournir une technique de lecture de tatouage qui combine les avantages d'un décodage exhaustif et d'un décodage incomplet, tout en palliant leurs inconvénients respectifs. En d'autres termes, dans au moins un mode de réalisation de l'invention, il s'agit d'obtenir une technique de lecture de tatouage plus rapide qu'un procédé classique basé sur un décodage exhaustif, tout en permettant d'obtenir des taux de détection plus élevés et de réduire les taux d'erreur par rapport à un procédé classique basé sur un décodage incomplet. L'invention a également pour objectif, dans au moins un mode de réalisation, de fournir une telle technique permettant d'obtenir facilement une mesure de fiabilité du décodage effectué. Un autre objectif de l'invention, dans au moins un mode de réalisation, est de fournir une telle technique permettant d'obtenir, outre la valeur du ou des messages de tatouage, des informations complémentaires qui peuvent être indispensables dans certaines applications: typiquement évaluation de la fiabilité du tatouage relu, localisation de ce tatouage dans les données support. 2876531 9 Un objectif complémentaire de l'invention, dans au moins un mode de réalisation, est de fournir une telle technique permettant d'économiser la place mémoire nécessaire à sa mise en oeuvre dans le lecteur de tatouage. 4. Caractéristiques essentielles de l'invention Ces différents objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints selon l'invention à l'aide d'un procédé de lecture de tatouage, du type comprenant une étape de détermination d'au moins un message de tatouage contenu dans un ensemble de données, éventuellement précédée d'une étape de détermination d'au moins un jeu de paramètres d'un canal de tatouage subi par ledit ensemble de données, chaque jeu de paramètres de canal comprenant au moins un paramètre de canal. Ladite étape de détermination d'au moins un message de tatouage et/ou ladite étape préalable de détermination d'au moins un jeu de paramètres de canal comprend(nent) : une phase d'estimation, consistant à traiter au moins un lot de données comprenant des données dudit ensemble de données, de façon à obtenir N éléments estimé(s), avec N 0; et - une phase de vérification, consistant à valider ou invalider, au vu de la totalité ou d'au moins un sous-ensemble dudit ensemble de données, chaque élément estimé ; où chaque élément estimé est un message de tatouage estimé, dans le cas de ladite étape de détermination d'au moins un message de tatouage, et un jeu de paramètres de canal estimé, dans le cas de ladite étape préalable de détermination d'au moins un jeu de paramètres de canal. Ainsi, l'invention permet d'améliorer les performances d'au moins une des deux étapes de détermination classiquement comprises dans un procédé de lecture de tatouage, à savoir (cf. figure 4) : l'étape (41) de détermination d'au moins un paramètre de canal et l'étape (43) de détermination d'au moins un message de tatouage. Plus précisément, le principe général de l'invention consiste à remplacer dans l'une et/ou l'autre de ces deux étapes de détermination (41, 43), un mécanisme de traitement classique, réalisé en une seule passe et portant sur la totalité des données, par un mécanisme de traitement nouveau et inventif, réalisé en deux phases successives: 2876531 10 tout d'abord une phase d'estimation portant uniquement sur un ou plusieurs lots de données de l'ensemble de données, puis une phase de vérification portant sur la totalité ou un ou plusieurs sous-ensembles des données de l'ensemble de données. L'invention met en avant les similitudes entre la détermination des paramètres de canal et la lecture des messages de tatouage. En effet, lors de la lecture du ou des messages de tatouage, on cherche à estimer les paramètres du système de tatouage ( émetteur ), que sont les messages de tatouage eux-mêmes. D'une façon générale, l'invention peut également être vue comme une adaptation d'un procédé de décodage de tatouage et/ou d'estimation de paramètres de canal au fil de l'eau (c'est-à-dire adapté à une lecture temps réel), à un contexte non temps réel (sauf à disposer de moyens de traitement très performants) où on peut se permettre des retours arrière . Dans un mode de réalisation particulier de l'invention, chaque lot de données ne comprend qu'une partie dudit ensemble de données. Le procédé de lecture de tatouage selon l'invention est d'autant plus rapide que la taille de chaque lot de données est faible. De façon avantageuse, ladite phase d'estimation consiste à traiter au moins deux lots de données, de façon à obtenir Ni élément(s) estimé(s) pour chaque lot de données, avec Ni >_ O. En augmentant le nombre de lot de données, on augmente la probabilité de traiter une partie non (ou peu) altérée de l'ensemble des données, et donc d'estimer correctement un jeu de paramètres de canal ou un message de tatouage à partir de cette partie de l'ensemble des données. En effet, les différentes parties de l'ensemble des données sont altérées de façon inégale. Avantageusement, ledit ensemble de données est une séquence de données de type vidéo comprenant une pluralité d'images successives, et en ce que chaque lot de données appartient au groupe comprenant: des lots constitués chacun d'une portion d'image; des lots constitués chacun d'une image; des lots constitués chacun d'un groupe d'images. 2876531 11 Dans un mode de réalisation avantageux de l'invention, ladite phase de vérification comprend les étapes suivantes, pour chaque élément estimé : découpage de la totalité ou d'une partie dudit ensemble de données en un ou plusieurs sous-ensembles de données; - pour chacun des sous-ensembles: * calcul de la probabilité a posteriori dudit élément estimé, conditionnellement audit sous-ensemble; * comparaison de ladite probabilité a posteriori, calculée conditionnellement audit sous-ensemble, à un premier seuil prédéterminé ; * si la probabilité a posteriori, calculée conditionnellement au sous- ensemble, est supérieure audit premier seuil prédéterminé, validation de l'élément estimé pour le sous-ensemble correspondant, sinon invalidation de l'élément estimé pour le sous-ensemble correspondant. On notera que la probabilité a posteriori d'un élément estimé constitue une mesure de fiabilité du décodage effectué (c'est-à-dire de l'estimation de cet élément, jeu de paramètres de canal ou message de tatouage). Avantageusement, ladite étape de calcul de la probabilité a posteriori dudit élément estimé conditionnellement à un sous-ensemble donné comprend les étapes suivantes: - calcul intermédiaire de la probabilité a posteriori dudit élément, conditionnellement à au moins deux sous-portions formant ensemble ledit sous-ensemble; - combinaison des résultats obtenus à l'issue de ladite étape de calcul intermédiaire, pour lesdits au moins deux sous-portions, de façon à obtenir ladite probabilité a posteriori dudit élément estimé conditionnellement à la totalité dudit sous-ensemble. De façon avantageuse, ladite phase de vérification permet de localiser chaque élément estimé sur chaque sous-ensemble pour lequel ledit élément estimé est validé. De façon avantageuse, ledit ensemble de données est une séquence de données de type vidéo comprenant une pluralité d'images successives, et en ce que chaque sous- séquence comprend une ou plusieurs images. 2876531 12 Par exemple, ledit ensemble de données appartient au groupe comprenant: - des ensembles de données de type vidéo; - des ensembles de données de type image; des ensembles de données de type audio; des ensembles de données de type texte; des ensembles de données de type données 3D. Avantageusement, ladite phase d'estimation et/ou ladite phase de vérification permet(tent) également d'obtenir une mesure de fiabilité associée à moins un élément estimé. Dans un mode de réalisation avantageux de l'invention, le procédé comprend en outre une étape de recalage dudit ensemble de données en un ensemble de données recalé, ladite étape de recalage étant exécutée pour au moins certain(s) jeu(x) de paramètres de canal déterminé(s) au cours de ladite étape de détermination d'au moins un jeu de paramètres de canal. En outre, ladite étape de détermination d'au moins un message de tatouage est mise en oeuvre avec chaque ensemble de données recalé résultant d'une exécution distincte de ladite étape de recalage. De façon avantageuse, ladite étape de recalage n'est exécutée que pour le(s) jeu(x) de paramètres de canal estimé(s) dont une mesure de fiabilité associée est supérieure à un second seuil prédéterminé. L'invention concerne également un dispositif de lecture de tatouage, du type comprenant un module de détermination d'au moins un message de tatouage contenu dans un ensemble de données, et éventuellement un module de détermination d'au moins un jeu de paramètres d'un canal de tatouage subi par ledit ensemble de données, chaque jeu de paramètres de canal comprenant au moins un paramètre de canal. Ledit module de détermination d'au moins un message de tatouage et/ou ledit module de détermination d'au moins un jeu de paramètres de canal comprend(nent) : des moyens d'estimation, effectuant un traitement d'au moins un lot de données comprenant des données dudit ensemble de données, de façon à obtenir N éléments estimé(s), avec N 0; et 2876531 13 des moyens de vérification, effectuant une validation ou une invalidation, au vu de la totalité ou d'au moins un sous-ensemble dudit ensemble de données, de chaque élément estimé ; où chaque élément estimé est un message de tatouage estimé, dans le cas du module de détermination d'au moins un message de tatouage, et un jeu de paramètres de canal estimé, dans le cas du module de détermination d'au moins un jeu de paramètres de canal. L'invention concerne aussi un produit programme d'ordinateur, comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'invention précité, lorsque ledit programme est exécuté sur un ordinateur. L'invention concerne encore un moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé selon l'invention précité. 5. Liste des figures D'autres caractéristiques et avantages de l'inventionapparaîtront à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels: la figure 1 présente un schéma générique d'un système de tatouage; - la figure 2 présente un schéma générique de fonctionnement d'un tatoueur apparaissant sur la figure 1; - la figure 3 présente un schéma générique de fonctionnement d'un lecteur de tatouage apparaissant sur la figure 1; la figure 4 présente un schéma générique d'un processus de lecture de tatouage; la figure 5 est une représentation géométrique d'un décodage de tatouage incomplet; la figure 6 illustre le principe du mécanisme générique de traitement en deux phases selon l'invention (une phase d'estimation puis une phase de vérification), pouvant être mis en oeuvre dans un procédé de lecture de tatouage, et plus précisément dans l'étape de détermination d'au moins un paramètre de canal et/ou dans l'étape de détermination d'au moins un message de tatouage; 2876531 14 la figure 7 illustre la mise en oeuvre du mécanisme générique de la figure 6 dans l'étape de détermination d'au moins un message de tatouage; la figure 8 illustre la mise en oeuvre du mécanisme générique de la figure 6 dans l'étape de détermination d'au moins un paramètre de canal; la figure 9 illustre un mode de réalisation particulier de l'invention, dans lequel le mécanisme générique de la figure 6 est mis en oeuvre dans l'étape de détermination d'au moins un paramètre de canal et aussi dans l'étape de détermination d'au moins un message de tatouage. 6. Description d'un mode de réalisation de l'invention Les figures 1 à 5 sont relatives au domaine et au contexte technique de la présente invention. Elles ont déjà été décrites ci-dessus et ne sont donc pas décrites à nouveau. Les figures 6 à 9 sont spécifiques à la présente invention. Elles sont décrites de façon détaillée ci-après. Dans la suite de la description, on prend à titre d'exemple le cas d'un ensemble de données de type vidéo. On rappelle que l'invention peut cependant être appliquée à tout type d'ensemble de données (image, audio, texte, données 3D, etc.). On présente maintenant, en relation avec la figure 6, le mécanisme générique de traitement en deux phases selon l'invention, qui comprend une phase 61 d'estimation des meilleurs candidats, suivie d'une phase 62 de vérification des meilleurs candidats estimés. Ce mécanisme selon l'invention peut être mis en oeuvre dans un procédé de lecture de tatouage. En d'autres termes, l'invention s'applique à la partie lecteur d'un système de tatouage, qu'elle rend plus performant. Plus précisément, le mécanisme selon l'invention peut être mis en oeuvre: dans l'étape de détermination d'au moins un paramètre de canal (étape effectuée par le lecteur de co-tatouage (signal auxiliaire de synchronisation) ou par des moyens mettant en oeuvre une autre technique n'utilisant pas de signal auxiliaire de synchronisation) ; et/ou dans l'étape de détermination d'au moins un message de tatouage (étape effectuée par le lecteur de tatouage porteur). 2876531 15 Dans la phase d'estimation 61 (première phase), on estime les paramètres (aussi appelés éléments) désirés à partir de la vidéo. Dans le cas du tatouage porteur, ces paramètres (ou éléments) sont les messages de tatouage (paramètres du tatoueur). Dans le cas de la détermination des paramètres de canal, ce sont les paramètres de canal eux mêmes (par exemple les paramètres de la transformation géométrique). Les paramètres (ou éléments) estimés lors de cette phase d'estimation 61 seront les paramètres a priori de la phase de vérification 62. Dans la phase de vérification 62 (deuxième phase), à partir de la vidéo, on consolide et on valide l'ensemble des paramètres a priori issus de la phase précédente 61. Lors de cette phase de vérification 62, on peut également calculer des informations supplémentaires, comme par exemple une estimation de la fiabilité des paramètres estimés, ou chercher à localiser de façon plus précise les différents paramètres (par exemple, trouver quelles images précises sont associées à une valeur donnée de message de tatouage). On détermine alors de nouveaux sous-ensembles d'images (éventuellement différents des lots de la première phase) ; chaque sous-ensemble d'image correspondant à une valeur de tatouage, ou bien à une valeur d'un jeu de paramètres de canal. Le mécanisme selon l'invention comprend éventuellement une phase de recalage 63 (troisième phase), uniquement dans le cas de la détermination des paramètres de canal. Dans cette phase de recalage 63, on applique à la totalité de la séquence ou à chaque ensemble d'images le ou les paramètres de canal déterminés lors de la deuxième phase 62 (voir dans le paragraphe ci-dessus la notion de sous-ensemble d'images). Plus précisément, et comme déjà été discuté ci-dessus en relation avec la figure 4 (cf. étape 42), le recalage de la vidéo consiste à estimer la transformation correspondant au canal de tatouage à partir des paramètres de canal estimés, puis à inverser cette transformation estimée (si cela est possible) et enfin à appliquer la transformation estimée inverse sur la vidéo. On obtient ainsi une vidéo recalée, sensée posséder les mêmes paramètres spatiaux et géométriques qu'avant la modification par le canal de tatouage. C'est cette vidéo recalée qui est dans ce cas utilisée par le lecteur de tatouage porteur pour effectuer les phases d'estimation 61 et de vérification 62 comprises dans l'étape de détermination d'au moins un message de tatouage. 2876531 16 On détaille maintenant, en relation avec la figure 7, un exemple de mise en oeuvre du mécanisme générique de la figure 6 dans l'étape de détermination d'au moins un message de tatouage (aussi appelé tatouage porteur). Dans ce cas, le mécanisme selon l'invention comprend une phase 71 d'estimation des valeurs de tatouage porteur et une phase 72 de vérification des valeurs de tatouage porteur estimées lors de la phase précédente 71. Dans la phase 71 d'estimation des valeurs de tatouage porteur, on effectue une succession de décodages du tatouage porteur, chaque décodage ayant lieu sur un lot d'images de la vidéo. Un lot d'images est constitué soit d'une image, soit d'une portion d'image, soit d'un groupe d'images (le nombre d'images par groupe peut être fixe ou variable). Les différents lots d'images peuvent être disjoints ou se recouper (auquel cas une portion du signal peut faire partie de deux lots distincts). Le décodage peut être incomplet (par exemple si les lots d'images sont de taille importante) ou exhaustif (par exemple si les lots d'images sont de faible taille et/ou si le nombre de valeurs possibles pour le message de tatouage est faible). Notons que le décodage peut soit utiliser uniquement la vidéo testée, soit utiliser la vidéo testée et la vidéo originale. On peut par exemple soustraire les données originales des données testées, afin de réduire le bruit dû à l'interférence des données originales avec le tatouage. A l'issue du décodage sur un lot, on obtient un certain nombre d'estimations de la valeur du tatouage porteur. Le nombre d'estimations peut être nul (on n'a pas réussi à décoder le lot), égal à 1, ou supérieur à 1 (on a plusieurs estimations possibles). Chacune des estimations peut être accompagnée d'une mesure de fiabilité (par exemple: probabilité d'erreur estimée, proportion du lot sur lequel on estime que le signal de tatouage est présent...). A l'issue de la première phase 71, on obtient donc un ensemble de valeurs estimées pour le tatouage porteur, éventuellement accompagnées chacune d'une mesure de fiabilité. Dans la phase 72 de vérification, on considère l'ensemble des valeurs m; préalablement estimées pour le tatouage porteur, éventuellement accompagnées chacune d'un indice de fiabilité. Certaines de ces valeurs m; peuvent avoir été détectées sur plusieurs lots différents (si par exemple la totalité de la vidéo est marquée avec le même message, et que la vidéo n'a pas été trop fortement altérée). 2876531 17 On cherche à confirmer ou infirmer la présence de chacune de ces valeurs m; sur la totalité ou sur une ou plusieurs sous-séquences de la vidéo. Ceci est équivalent à un test de présence ou encore à une détection, ou encore à un test à deux hypothèses: HO, pour m; absent, H1 pour m; présent. Pour cela on calcule la probabilité a posteriori de chaque valeur m; conditionnellement au signal reçu r (r peut être la séquence vidéo toute entière, une unique sous-séquence de la vidéo, ou encore l'une d'une pluralité de sous-séquences de la vidéo, comportant chacune une ou plusieurs images) : P(m/r). On compare ensuite cette probabilité à un seuil S, déterminé à l'avance: si elle est supérieure on décide qu'un message de tatouage de valeur m; est présent (on accepte H1), sinon on décide que le message de tatouage de valeur m; est absent (on accepte HO). La probabilité a posteriori peut être calculée par exemple par une mesure de corrélation entre les deux signaux (m; et r), consistant elle-même par exemple en une mesure de la distance de Hamming entre les deux signaux, éventuellement pondérée par une mesure de la fiabilité pour chacun des bits de la valeur m; estimée. Dans un premier cas de calcul de probabilité conditionnellement à la séquence vidéo entière, on peut calculer la probabilité a posteriori soit globalement sur la vidéo entière, soit sur des sous-séquences de la vidéo (comprenant chacune une ou plusieurs images). Dans un second cas de calcul de probabilité conditionnellement à une sousséquence donnée de la vidéo, on peut calculer la probabilité a posteriori soit globalement sur la sous-séquence donnée, soit sur des portions de la sous-séquence donnée (comprenant chacune une ou plusieurs images). Si des calculs intermédiaires sont effectués (sur des sous-séquences de la séquence vidéo dans le premier cas précité, ou sur des portions d'une sous-séquence donnée dans le second cas précité, il faut ensuite fusionner la suite des mesures obtenues lors de ces calculs intermédiaires. On peut par exemple compter le nombre d'images sur lesquelles la probabilité calculée est supérieure à un seuil S2, et décider que m; est présent si ce nombre est supérieur à un autre seuil S3. L'avantage de cette deuxième phase (phase 72 de vérification) est qu'une détection est beaucoup plus rapide à réaliser qu'un décodage. On a en effet uniquement 2876531 18 deux hypothèses à tester pour chaque valeur m; estimée (calcul d'une probabilité a posteriori), alors que dans le cas du décodage exhaustif on en avait 2k (calcul de 2k probabilités a posteriori). De plus, on est sûr d'obtenir à l'issue du procédé une mesure de fiabilité du décodage obtenu (probabilité a posteriori), alors qu'avec un décodage incomplet on n'avait aucune information dans le cas où le décodage échouait. On peut ainsi conforter la présence d'un message de tatouage sur des portions de la vidéo où le décodage avait échoué lors de la première phase (phase 71 d'estimation). Supposons par exemple que la vidéo ait été fortement bruitée, par exemple suite à une compression divX bas débit. Une telle compression a souvent pour effet d'altérer de façon inégale les différentes portions de la vidéo. Il se peut donc que le tatouage ne soit décodable que de façon fugace, sur quelques images de la séquence. Sur les autres images, le tatouage est toujours présent, mais trop bruité pour être décodé directement (il peut par exemple se trouver à la limite extérieure des sphères de décodage de la figure 5). Par contre, un test de détection appliqué à ces images lors de la deuxième phase 72, connaissant le message de tatouage m; estimé lors de la première phase 71, donnera sans doute un résultat positif, et ceci sera d'autant plus vrai que le nombre d'images considérées sera grand. La deuxième phase 72 permettra donc de mieux localiser les portions de la séquence sur lesquelles le message de tatouage m; est présent. La deuxième phase 72 présente également l'avantage de réduire les risques d'erreur de décodage. Si en effet on décode une valeur erronée me de tatouage lors de la première phase 71, il est peu probable que cette valeur se retrouve par hasard dans le reste de la vidéo. On aura donc une probabilité a posteriori de me très faible sur la majeure partie de la vidéo. Le message erroné sera donc éliminé à l'issue de la deuxième phase 72. On détaille maintenant, en relation avec la figure 8, un exemple de mise en oeuvre du mécanisme générique de la figure 6 dans l'étape de détermination d'au moins un paramètre de canal de tatouage. Dans ce cas, le mécanisme selon l'invention comprend une phase 81 d'estimation d'au moins un jeu de paramètres de canal de tatouage et une phase 82 de vérification des jeux de paramètres de canal estimés lors de la phase précédente 81. 2876531 19 Les phases 81 et 82 pour le calcul des paramètres de canal seront décrites plus simplement que les phases 71 et 72 pour le calcul des messages de tatouage (voir figure 7), puisqu'elles sont en grande partie similaires à ces dernières. Dans la phase 81 d'estimation des valeurs des paramètres de canal, on traite chaque lot d'images de la vidéo, et on obtient un certain nombre de jeux de paramètres estimés, chacun accompagné éventuellement d'une mesure de fiabilité. Comme déjà indiqué plus haut, les paramètres de canal peuvent être estimés soit à partir d'un signal de cotatouage, soit par d'autres techniques n'utilisant pas de signal auxiliaire de synchronisation. On peut par exemple utiliser la vidéo originale en plus de la vidéo testée, afin par comparaison entre les deux de déterminer les paramètres du canal. Par exemple, si le canal est constitué d'une translation des images de paramètre inconnu, on peut déterminer cette translation en calculant l'intercorrélation entre les images de la vidéo originale et les images de la vidéo testée. La position du maximum d'intercorrélation donnera la valeur de la translation réalisée par le canal. La phase 81 d'estimation des paramètres de canal peut être automatique, ou bien être réalisée manuellement, par exemple en recalant la séquence originelle et la séquence sur laquelle on cherche à relire le tatouage. La phase 82 de vérification des jeux de paramètres de canal estimés est similaire à la phase 72 (figure 7) de vérification des valeurs de tatouage porteur estimées. Optionnellement, on peut en outre tenir compte dans la présente deuxième phase 82 des hypothèses a priori sur l'évolution des paramètres de canal. Par exemple, on peut considérer que les transformations géométriques varient très lentement à l'échelle de la vidéo (sinon on observerait un effet de bougé désagréable). A l'extrême, si on considère que la transformation géométrique est fixe tout au long de la vidéo, alors on va sélectionner les paramètres dont la fiabilité apparaît maximale. Ce jeu de paramètres est alors appliqué à l'intégralité de la vidéo. La mesure de fiabilité obtenue pour chaque jeu de paramètres dans la deuxième phase 82 (ou, dans une variante, dans la première phase 81) peut être utilisée lors de l'étape suivante d'estimation/vérification du tatouage porteur (phases référencées 71 et 72 sur la figure 7). On peut ainsi recaler la vidéo (phase de recalage 83, équivalente à la phase de recalage 63 de la figure 6), en essayant chacun des différents jeux de 2876531 20 paramètres estimés (sous réserve que leur fiabilité soit considérée comme suffisante). En d'autres termes, on dispose alors de plusieurs vidéos recalées et on effectue avec chacune d'elles l'étape suivante d'estimation 71 /vérification 72 du tatouage porteur. On introduit donc une tolérance, qui permet de réduire l'impact d'une mauvaise estimation des paramètres de canal sur l'estimation du tatouage porteur. La figure 9 illustre un mode de réalisation particulier de l'invention (déjà évoqué ci-dessus), dans lequel le mécanisme générique de la figure 6 est mis en oeuvre à la fois dans l'étape de détermination d'au moins un paramètre de canal et dans l'étape de détermination d'au moins un message de tatouage. Dans ce mode de réalisation particulier de l'invention, le procédé de lecture de tatouage comprend alors: - une étape 91 de détermination d'au moins un paramètre de canal, du type présentée ci-dessus en relation avec la figure 8 et comprenant donc elle- même: * une phase 81 d'estimation d'au moins un jeu de paramètres de canal de tatouage, et * une phase 82 de vérification des jeux de paramètres de canal estimés lors de la phase précédente 81; - une étape 92 de détermination d'au moins un message de tatouage, du type présentée ci-dessus en relation avec la figure 7 et comprenant donc elle-même: * une phase 71 d'estimation d'au moins une valeur de tatouage porteur, et * une phase 72 de vérification des valeurs de tatouage porteur estimées lors de la phase précédente 71. En résumé, la présente invention présente de nombreux avantages par rapport à l'art antérieur. En effet, elle combine les avantages d'un décodage complet et ceux d'un décodage incomplet, tout en palliant leurs inconvénients respectifs: - par rapport à un décodage complet, l'invention est beaucoup plus rapide (notamment par rapport à la deuxième technique connue décrite ci-dessus) ; - par rapport à un décodage incomplet, l'invention permet d'obtenir des taux de détection plus élevés et de réduire les taux d'erreur (notamment par rapport aux 2876531 21 première et quatrième techniques connues décrites ci-dessus). Elle permet aussi d'obtenir plus facilement une mesure de fiabilité du décodage effectué. Par rapport à la troisième technique, l'invention permet d'estimer les messages de tatouage même si la vidéo a été remontée ou compositée. Elle est plus générale que la troisième technique et peut s'appliquer à toute technique de tatouage. L'invention permet également d'obtenir, outre la valeur du ou des messages tatoués, des informations complémentaires qui peuvent être indispensables dans certaines applications: typiquement évaluation de la fiabilité du tatouage relu, localisation de ce tatouage dans les données support. L'invention permet aussi d'économiser de la place mémoire, si l'on ne considère que des lots d'images et non pas la vidéo toute entière lors de la première phase 71, 81. Ensuite, l'information nécessaire pour traiter la deuxième phase 72, 82 (liste des paramètres estimés) est de taille réduite. La présente invention peut être utilisée dans toutes les applications de tatouage nécessitant une grande fiabilité de la valeur lue et/ou du calcul des paramètres de canal de tatouage (notamment les paramètres de déformation spatiale) : - traçage des supports sur les réseaux de diffusion; - identification des destinataires de copies du support; mesure d'audience; - qualité du service de fourniture du support; transport de méta-données ou d'informations dynamiques dans les supports; Bien que l'invention ait été décrite ci-dessus en relation avec un mode de réalisation particulier, l'homme du métier, à la lecture de la présente description, comprendra que d'autres modes de réalisation peuvent être imaginés sans sortir du cadre de la présente invention. En conséquence, la portée de l'invention n'est limitée que par les revendications ci-jointes. 2876531 22 REVENDICATIONS 1. Procédé de lecture de tatouage, du type comprenant une étape (92) de détermination d'au moins un message de tatouage contenu dans un ensemble de données, éventuellement précédée d'une étape (91) de détermination d'au moins un jeu de paramètres d'un canal de tatouage subi par ledit ensemble de données, chaque jeu de paramètres de canal comprenant au moins un paramètre de canal, caractérisé en ce que ladite étape de détermination d'au moins un message de tatouage et/ou ladite étape préalable de détermination d'au moins un jeu de paramètres de canal comprend(nent) : une phase d'estimation (61; 71; 81), consistant à traiter au moins un lot de données comprenant des données dudit ensemble de données, de façon à obtenir N éléments estimé(s), avec N 0; et - une phase de vérification (62; 72; 82), consistant à valider ou invalider, au vu de la totalité ou d'au moins un sous-ensemble dudit ensemble de données, chaque élément estimé ; où chaque élément estimé est un message de tatouage estimé, dans le cas de ladite étape de détermination d'au moins un message de tatouage, et un jeu de paramètres de canal estimé, dans le cas de ladite étape préalable de détermination d'au moins un jeu de paramètres de canal. 2. Procédé selon la revendication 1, caractérisé en ce que chaque lot de données ne comprend qu'une partie dudit ensemble de données. 3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ladite phase d'estimation consiste à traiter au moins deux lots de données, de façon à obtenir Ni élément(s) estimé(s) pour chaque lot de données, avec Ni >_ O. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit ensemble de données est une séquence de données de type vidéo comprenant une pluralité d'images successives, et en ce que chaque lot de données appartient au groupe comprenant: - des lots constitués chacun d'une portion d'image; - des lots constitués chacun d'une image; - des lots constitués chacun d'un groupe d'images. 2876531 23 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite phase de vérification comprend les étapes suivantes, pour chaque élément estimé : découpage de la totalité ou d'une partie dudit ensemble de données en un ou plusieurs sous-ensembles de données; pour chacun des sous-ensembles: * calcul de la probabilité a posteriori dudit élément estimé, conditionnellement audit sous-ensemble; * comparaison de ladite probabilité a posteriori, calculée conditionnellement audit sous-ensemble, à un premier seuil prédéterminé ; * si la probabilité a posteriori, calculée conditionnellement au sousensemble, est supérieure audit premier seuil prédéterminé, validation de l'élément estimé pour le sous-ensemble correspondant, sinon invalidation de l'élément estimé pour le sous-ensemble correspondant. 6. Procédé selon la revendication 5, caractérisé en ce que ladite étape de calcul de la probabilité a posteriori dudit élément estimé conditionnellement à un sous-ensemble donné comprend les étapes suivantes: - calcul intermédiaire de la probabilité a posteriori dudit élément, conditionnellement à au moins deux sous-portions formant ensemble ledit sous-ensemble; - combinaison des résultats obtenus à l'issue de ladite étape de calcul intermédiaire, pour lesdits au moins deux sous-portions, de façon à obtenir ladite probabilité a posteriori dudit élément estimé conditionnellement à la totalité dudit sous-ensemble. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite phase de vérification permet de localiser chaque élément estimé sur chaque sous-ensemble pour lequel ledit élément estimé est validé. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que ledit ensemble de données est une séquence de données de type vidéo comprenant une pluralité d'images successives, et en ce que chaque sous-séquence comprend une ou plusieurs images. 2876531 24 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ledit ensemble de données appartient au groupe comprenant: - des ensembles de données de type vidéo; - des ensembles de données de type image; - des ensembles de données de type audio; - des ensembles de données de type texte; - des ensembles de données de type données 3D. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ladite phase d'estimation et/ou ladite phase de vérification permet(tent) également d'obtenir une mesure de fiabilité associée à moins un élément estimé. 11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comprend en outre une étape (63; 83) de recalage dudit ensemble de données en un ensemble de données recalé, ladite étape de recalage étant exécutée pour au moins certain(s) jeu(x) de paramètres de canal déterminé(s) au cours de ladite étape de détermination d'au moins un jeu de paramètres de canal, et en ce que ladite étape (92) de détermination d'au moins un message de tatouage est mise en oeuvre avec chaque ensemble de données recalé résultant d'une exécution distincte de ladite étape de recalage. 12. Procédé selon les revendications 10 et 11, caractérisé en ce que ladite étape de recalage n'est exécutée que pour le(s) jeu(x) de paramètres de canal estimé(s) dont une mesure de fiabilité associée est supérieure à un second seuil prédéterminé. 13. Dispositif de lecture de tatouage, du type comprenant un module de détermination d'au moins un message de tatouage contenu dans un ensemble de données, et éventuellement un module de détermination d'au moins un jeu de paramètres d'un canal de tatouage subi par ledit ensemble de données, chaque jeu de paramètres de canal comprenant au moins un paramètre de canal, caractérisé en ce que ledit module de détermination d'au moins un message de tatouage et/ou ledit module de détermination d'au moins un jeu de paramètres de canal comprend(nent) : - des moyens d'estimation, effectuant un traitement d'au moins un lot de données comprenant des données dudit ensemble de données, de façon à obtenir N éléments estimé(s), avec N z 0; et 2876531 25 - des moyens de vérification, effectuant une validation ou une invalidation, au vu de la totalité ou d'au moins un sous-ensemble dudit ensemble de données, de chaque élément estimé ; où chaque élément estimé est un message de tatouage estimé, dans le cas du module de détermination d'au moins un message de tatouage, et un jeu de paramètres de canal estimé, dans le cas du module de détermination d'au moins un jeu de paramètres de canal. 14. Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 12, lorsque ledit programme est exécuté sur un ordinateur. 15. Moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 12.