FR 2910766 A1 20080627 FR 0655846 A 20061222 Procédé et système de détection d'un message dans un signal numérique tatoué L'invention se rapporte à un procédé et à un dispositif de détection d'un message dans un signal numérique tatoué. Le signal numérique peut être un signal audiovisuel, notamment un signal audio. Le tatouage permet de transmettre une information additionnelle dans des données support de manière imperceptible. Pour des données audiovisuelles cela revient à établir un canal de communication de données dissimulé, en parallèle avec l'infrastructure classique de transport de l'information. Un des principaux avantages du tatouage est que les données auxiliaires sont dissimulées et attachées au signal et par là même sont capables de supporter des changements de format et de fréquence d'échantillonnage donnant au tatouage une interopérabilité au niveau des terminaux et des réseaux, seules les extrémités au niveau de la détection devant être compatibles avec l'insertion. Une trame du canal de communication dissimulé dans le signal porteur est par exemple constituée d'une marque de synchronisation que l'on peut également appeler identificateur de tatouage, suivie du message inséré dans le signal, le début du message étant indiqué par l'identificateur de tatouage. Après transmission du signal tatoué, à la lecture du media, la détection consiste d'abord à détecter l'identificateur de tatouage qui a été inséré en début de trame. Une fois cet identificateur repéré dans le contenu audio par exemple, la détection des bits du message peut commencer. Les séquences "identificateur de tatouage + message éventuel" sont insérées en continu dans le média, les débuts d'identificateur coïncidant avec les zones d'énergie suffisante propices à l'insertion. En réception, la détection de chaque séquence se fait également en continu permettant ainsi de se resynchroniser en cas de coupure dans le média porteur (édition du signal, coupures par un pirate ou encore pertes de trames de la transmission). Les identificateurs de tatouage ainsi que les messages sont formés à partir de séquences aléatoires gaussiennes issues d'un générateur de nombres aléatoires ou de séquences Pseudo-Aléatoires (Pseudo-Noise Sequences en Anglais ou séquences PN) 2910766 -2 générées par un registre à décalage dont les cellules sont bouclées de façon à produire une séquence de sortie de longueur maximale. Toute autre séquence aléatoire issue de la théorie des machines à états finis (séquences de Gold, codes de Baker, séquences de Walsh, ...) peut convenir à condition que sa fonction de corrélation soit proche d'une 5 distribution de Dirac. Une procédure classique de génération d'un signal tatoué est illustrée à la figure 1. Ainsi, le module 11 permet de générer un ensemble de séquences aléatoires de longueur L à partir d'une ou de plusieurs valeur(s) d'initialisation K ou KI,. KkC fixée(s)à l'avance. On obtient ainsi un dictionnaire de séquences 10 aléatoires wi (n), n = 0, ..., L -1; i = 0, ..., Nb -1, Nb étant le nombre de bits du symbole. Dans le cas où on veut transmettre un symbole d'information ib , la modulation va faire correspondre au symbole ib la forme d'onde wtb (n) d'indice ib dans le dictionnaire. Cette étape de génération est effectuée dans le module 12 et génère une séquence modulée wib (n) . 15 Le cas de l'insertion d'un identificateur de tatouage correspond à la création d'un nouveau dictionnaire ne contenant qu'une forme d'onde wI (n) ayant une longueur LI . Cette séquence aléatoire n'est pas modulée. Un modèle psycho-acoustique 13 est pris en compte par le module 14 pour générer l'identificateur de tatouage ou le message wf b (n) de façon à le rendre 20 inaudible. Une étape d'ajustage par un gain est effectuée en 15. Cet identificateur de tatouage ou ce message est ensuite additionné en 16 au signal audio sa(n) pour former le signal tatoué s(n). Ce signal est soit stocké sur un média pour lecture ultérieure par un lecteur soit transmis sur un réseau de transmission fixe, mobile ou de diffusion. 25 En réception, l'identificateur de tatouage doit être détecté pour agir sur le signal reçu, par exemple en bloquant le lecteur en cas de détection de contenu piraté. Une procédure classique de détection d'identificateur de tatouage est illustré en figure 2. 2910766 -3 Le signal audio tatoué s(n) est d'abord blanchi par filtrage inverse par le module 21 (correspondant à l'inverse du filtrage par le modèle psycho-acoustique du module 13). L'opération de détection de la présence de l'identificateur de tatouage et du contenu de la trame elle-même est ensuite effectuée par calcul de corrélation par le module 22 5 entre le signal filtré x(n) et la séquence aléatoire w;(n) générée par le module 23 de la même façon que lors de l'insertion. Cette détection détermine soit un repère de trame ks lors de la détection de l'identificateur de tatouage, soit une estimation ib du symbole d'information ib qui a effectivement été inséré. 10 Ne connaissant pas l'instant de début de trame dans le signal porteur, le calcul de corrélation se fait de manière glissante. On parle alors d'intercorrélation glissante ou, plus simplement, de corrélation en continu. Cette méthode consiste à effectuer un calcul de corrélation entre les échantillons du signal tatoué et la séquence aléatoire wI (n) pour chaque décalage d'un échantillon 15 du signal tatoué, jusqu'à ce que le début de l'identificateur de tatouage soit révélé par le fait que le coefficient de corrélation RxW (k) dépasse un seuil S. Pour chaque instant d'échantillonnage k , le coefficient de corrélation est donné par: L, -1 RxW (k) _ w1(n) x(n+k) k = 0,...,ks (1) n=0 Une fois le début de trame détecté, un seul calcul de corrélation suffit pour 20 détecter le message: LB -1 RxBi _ wB.(n) x(n) (2) n=0 sur LB échantillons du signal porteur pour chacune des Nb occurences possibles de chaque symbole du message. Le symbole détecté est celui dont l'indice a une corrélation message maximale: 25 RxBîb = Max(RXBi) i = 0,...Nb -1. Les systèmes existants de détection de message utilisent un processus séquentiel de détection des différentes composantes d'une trame du signal tatoué. Un exemple de structure d'une trame du signal tatoué est décrit en référence à la figure 3. 2910766 -4 Cette trame est constituée d'un identificateur initial ou synchronisation initiale SI référencé 30 permettant de détecter le début du message inséré qui est formé d'une succession de symboles ou de bits Dk référencés 31 et qui sont séparés par une synchronisation locale ou encore identificateur local SL référencé 32. Cet identificateur 5 local est inséré tous les Kb symboles et a pour but d'affiner la détermination de début d'un groupe de symboles ou de bits en resynchronisant le détecteur en cas d'attaque dite de désynchronisation. Au détecteur, on opère de façon séquentielle en détectant d'abord l'identificateur initial puis les ensembles constitués des Kb symboles Dk séparés par un 10 identificateur local et qui constituent le message. Un exemple de ce type de détection opérant séquentiellement est décrit dans l'article "Controlling the Inaudibility and Maximising the Robustness in an Audio Annotation Watermarking system" de C. Baras, N. Moreau et P. Dymarski, IEEE Transactions on audio, speech, and language processing, Vol.14, No.5.September 2006, p1772 à 1782. 15 Cette façon de procéder séquentiellement présente des inconvénients. En effet, en cas de fausse détection de l'identificateur initial, la détection du message qui suit sera également erronée. Il n'est en effet pas possible de reprendre la détection de l'identificateur initial pendant la détection des identificateurs locaux et des symboles. Il en résulte que le message détecté est faux et le message inséré irrémédiablement perdu. 20 Les solutions possibles pour résoudre le problème de fausse détection de l'identificateur initial sont soit de répéter l'identificateur initial de manière régulière soit d'augmenter sa longueur. A capacité fixée, ces deux façons de procéder conduisent à une réduction de la longueur des symboles, donc à une diminution des performances. La présente invention offre une solution qui ne présente pas ces inconvénients 25 en proposant un procédé de détection d'un message permettant de prendre une décision fiable sur la détection du message ou de l'identificateur initial dans un signal tatoué. La solution selon l'invention ne nécessite pas d'insertion périodique de l'identificateur initial et ne nécessite pas de prévoir une longueur importante pour cet identificateur initial. 2910766 - 5 A cet effet, la présente invention propose un procédé de détection d'un message dans un signal numérique tatoué, une trame du signal tatoué comportant un identificateur initial ayant été inséré à partir d'une séquence de référence prédéfinie. Le procédé est tel qu'il comporte les étapes suivantes: 5 - analyse par une pluralité d'analyseurs d'un système de détection, par calcul des corrélations entre le signal tatoué et la séquence de référence prédéfinie; - association à chacun des analyseurs d'un score de corrélation d'identificateur initial; 10 - détermination de l'identificateur initial en fonction du score de corrélation d'identificateur initial des analyseurs. Ainsi, la pluralité d'analyses effectuées permet d'avoir plusieurs scores de corrélation d'identificateur afin de prendre une décision plus fiable sur la détection de l'identificateur initial. Le risque d'erreur sur la détection de l'identificateur initial est 15 donc diminué. Dans un mode préféré de réalisation, dans lequel une trame du signal tatoué comporte un identificateur initial et plusieurs séries de symboles constituant le message inséré, les symboles ayant été insérés à partir de séquences de référence prédéfinies, le procédé est tel que: - lors de l'étape d'analyse (E61) par une pluralité d'analyseurs un calcul des corrélations entre le signal tatoué et les séquences de référence utilisées pour l'insertion des symboles est effectué, - lors de l'étape d'association (E62) un score de corrélation de symboles dépendant du calcul des corrélations est associé à chaque analyseur; et qu'il comporte en outre les étapes de: détermination (E63) d'un score global de corrélation par analyseur, dépendant de son score de corrélation d'identificateur initial, de son score de corrélation de symboles; - détermination (E64) du message à détecter en fonction des scores globaux des analyseurs. 20 25 30 2910766 -6 De même, lorsqu'une trame du signal tatoué comporte en outre des identificateurs locaux entourant les séries de symboles du message inséré, les identificateurs ayant été insérés à partir de séquences de référence prédéfinies, le procédé est tel que: 5 - lors de l'étape d'analyse (E61) par une pluralité d'analyseurs un calcul des corrélations entre le signal tatoué et les séquences de référence utilisées pour l'insertion des identificateurs locaux est effectué, - lors de l'étape d'association (E62) un score de corrélation d'identificateur local dépendant du calcul des corrélations est associé à chaque 10 analyseur; - la détermination (E63) d'un score global de corrélation par analyseur, dépend de son score de corrélation d'identificateur initial, de son score de corrélation de symboles et de son score de corrélation d'identificateur local; 15 Ainsi, la détection du message prend en compte les détections respectives de l'identificateur initial, des identificateurs locaux et des symboles. Cette méthode de détection combinée des ensembles constitutifs de la trame du signal tatoué permet de s'affranchir d'une erreur possible dans la détection de l'identificateur initial. Ainsi, la détermination du message à détecter est plus fiable. 20 Dans un mode particulier de réalisation, le signal tatoué est prétraité lors d'une étape de filtrage comportant un filtrage inverse et un filtrage de Wiener utilisant un filtre calculé à partir d'une fonction de corrélation d'au moins une séquence d'apprentissage de l'identificateur initial. Par la prise en compte de certaines caractéristiques de la séquence utilisée pour 25 insérer l'identificateur initial , cette étape de filtrage permet d'améliorer la détection de l'identificateur initial par l'accentuation des pics éventuels de corrélation. Dans un mode de réalisation de l'invention, le procédé comporte une procédure d'activation des analyseurs qui comporte les étapes suivantes: - calcul de corrélation en continu entre le signal tatoué et la séquence de 30 référence utilisée pour l'insertion de l'identificateur initial; 2910766 -7 - comparaison des valeurs de corrélation ainsi calculées à un seuil prédéterminé; à la détection d'une valeur de corrélation supérieure au seuil prédéterminé: - déclenchement d'un analyseur et association d'un score de corrélation 5 d'identificateur initial à cet analyseur. Dans un mode particulier de réalisation, le déclenchement de l'analyseur s'effectue à la détection d'un maxima local des valeurs de corrélations supérieures au seuil. Ainsi, la sélection d'un maxima local permet de diminuer le nombre de 10 démarrages des analyseurs du système. Dans un mode de réalisation préféré, le déclenchement d'un analyseur s'effectue après vérification de la disponibilité de cet analyseur dans le système de détection et en cas d'indisponibilité d'analyseur, le procédé comporte les étapes suivantes: 15 - comparaison des scores de corrélation d'identificateur initial des analyseurs du système de détection; dans le cas où l'analyseur qui a le plus mauvais score de corrélation d'identificateur initial a également un score de corrélation d'identificateur initial inférieur à la valeur de corrélation à l'origine de l'étape de déclenchement: 20 - arrêt de l'analyseur qui est associé au plus mauvais score et redémarrage pour une nouvelle analyse dudit analyseur avec un nouveau score d'identificateur initial. Ceci permet d'effectuer une bonne gestion des démarrages et des arrêts des analyseurs de manière à ne prévoir qu'un nombre raisonnable d'analyseurs dans le 25 système de détection. Avantageusement, le calcul de corrélation en continu entre le signal tatoué et la séquence de référence utilisée pour l'insertion de l'identificateur initial s'effectue par un calcul de corrélation sur un bloc courant de LI échantillons du signal tatoué, LI étant le nombre d'échantillons de l'identificateur initial, et de façon itérative 30 sur les LI échantillons décalés de N échantillons, LI étant multiple de N. 2910766 - 8 Une telle méthode en recouvrement minimise le nombre d'opérations à effectuer et la complexité des calculs tout en permettant une décision fiable. Ce calcul de corrélation entre le signal tatoué et la séquence de référence utilisée pour l'insertion de l'identificateur initial s'effectue dans un mode préféré de 5 réalisation, par une méthode de type transformée de Fourier qui comporte les étapes suivantes: - segmentation en sous-séquences d'un bloc courant de LI échantillons du signal tatoué; - segmentation en sous-séquences de la séquence de référence, la 10 deuxième moitié de la sous-séquence de référence étant mise à 0; - application d'une transformée de Fourier aux sous-séquences du bloc courant et aux sous-séquences de la séquence de référence; - calcul de corrélations partielles par le produit sur les échantillons résultant de la transformée des sous-séquences du bloc courant et ceux du complexe 15 conjugué des sous-séquences de la séquence de référence; - sommation des corrélations partielles calculées; -application d'une transformée de Fourier inverse à la somme issue de l'étape de sommation pour obtenir les valeurs de corrélation. Selon un mode préféré de réalisation de l'invention, le score d'identificateur 20 initial est fonction de la valeur de corrélation à l'origine de l'étape de déclenchement et du nombre d'échantillons de l'identificateur initial. Pour diminuer les erreurs de détection de symboles dues à une prise en compte d'un début de détection erroné, le calcul de corrélation entre le signal tatoué et les séquences utilisées pour l'insertion des symboles s'effectue sur une plage de débuts 25 possibles, le calcul donnant à la fois la valeur du symbole et le décalage par rapport à une position de début idéal. Ceci permet de remédier notamment aux erreurs dues à des attaques sur le signal tatoué. Ainsi, le score de corrélation de symboles est déterminé à partir des scores 30 respectifs d'un ensemble prédéterminé de symboles, un score d'un symbole étant 2910766 - 9 fonction de la valeur du maximum de corrélation du symbole, du décalage et du nombre d'échantillons du symbole. De même, le calcul de corrélation entre le signal tatoué et la séquence utilisée pour l'insertion de l'identificateur local s'effectue sur une plage de débuts possibles 5 autour du dernier échantillon du dernier symbole détecté, le calcul donnant à la fois la valeur de corrélation et le décalage par rapport à une position de début idéal et le score de corrélation d'identificateur local est fonction de la valeur de corrélation, du décalage et du nombre d'échantillons de l'identificateur local. Avantageusement, le procédé comporte en outre une étape de ré- 10 échantillonnage du signal tatoué en fonction de la fréquence d'échantillonnage du système de détection. Ainsi, il est possible de prévoir un système de détection de moindre complexité et donc de moindre coût de traitement en utilisant une fréquence d'échantillonnage inférieure à celle du signal tatoué. 15 Dans un mode de réalisation de l'invention, l'étape de détermination du message à détecter s'effectue en examinant le score global des analyseurs qui ont terminé leur analyse, les recouvrements des plages d'analyse desdits analyseurs afin de résoudre d'éventuels conflits temporels. L'invention vise également un système de détection d'un message dans un 20 signal numérique tatoué, une trame du signal tatoué comportant un identificateur initial et plusieurs séries de symboles constituant le message inséré, entourés d'identificateurs locaux, les symboles ainsi que les identificateurs ayant été insérés à partir de séquences de référence prédéfinies. Le système est tel qu'il comporte: -une pluralité d'analyseurs effectuant des analyses par calcul des 25 corrélations entre le signal tatoué et les séquences de référence utilisées pour l'insertion de l'identificateur initial, des identificateurs locaux et des symboles; - des moyens d'association à chacun des analyseurs d'un score de corrélation d'identificateur initial, d'un score de corrélation 30 d'identificateur local et d'un score de corrélation de symboles dépendants 2910766 -10- du calcul des corrélations; - des moyens de détermination d'un score global de corrélation par analyseur, dépendant de son score de corrélation d'identificateur initial, de son score de corrélation d'identificateur local et de son score de 5 corrélation de symboles; et - des moyens de détermination du message à détecter en fonction des scores globaux des analyseurs. Le système ainsi décrit est apte à mettre en oeuvre le procédé selon l'invention. L'invention vise aussi un terminal multimédia apte à recevoir un signal 10 numérique tatoué qui comporte des moyens nécessaires à la mise en oeuvre du procédé selon l'invention L'invention vise enfin un programme d'ordinateur comprenant des instructions de code pour la mise en oeuvre des étapes du procédé selon l'invention, lorsque ledit programme est exécuté par un processeur. 15 L'invention concerne 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 les étapes du procédé selon l'invention. Le système et le programme d'ordinateur présentent les mêmes avantages que 20 le procédé qu'ils mettent en oeuvre. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels: 25 - la figure 1 représente un schéma bloc d'une méthode d'insertion de l'état de l'art; -la figure 2 représente un schéma bloc d'une méthode de détection de l'état de - la figure 3 illustre un exemple de structure d'une trame de signal tatoué; l'art; 2910766 -11- - la figure 4 représente un schéma bloc d'un système de détection selon l'invention; - la figure 5 représente le module détaillé de ré-échantillonnage; - la figure 6 illustre sous forme d'organigramme les principales étapes d'un 5 procédé de détection d'un message conforme à l'invention; - la figure 7 illustre sous forme d'organigramme les étapes de la procédure de gestion des analyseurs selon l'invention; - la figure 8 illustre un mode particulier de réalisation de la procédure de déclenchement d'un analyseur selon l'invention; 10 - les figures 9a et 9b illustrent une méthode de détection de l'identificateur initial utilisée dans l'invention; - la figure 10 illustre sous forme d'organigramme les étapes d'un mode de réalisation pour le calcul de corrélation relatif à l'identificateur initial; - la figure 11 illustre sous forme d'organigramme les étapes d'un second mode 15 de réalisation pour le calcul de corrélation relatif à l'identificateur initial; - la figure 12 illustre sous forme d'organigramme, une méthode de calcul de corrélation pour la détection de symboles du message selon l'invention; et - la figure 13 illustre un dispositif mettant en oeuvre le procédé selon l'invention. 20 La figure 4 représente un système de détection d'un message dans un signal numérique tatoué conforme à l'invention. Ce système de détection comporte un module 47 de ré-échantillonnage qui peut être utilisé lorsque la fréquence d'échantillonnage du signal tatoué s(n) reçu par le détecteur n'est pas égale à la fréquence d'échantillonnage interne du système de détection. Cette fréquence interne F; du détecteur est celle de 25 toutes les opérations de traitement du signal du système. Il peut être en effet intéressant d'effectuer les opérations de traitement du signal à une fréquence plus faible que celle du signal tatoué reçu. Ceci a pour avantage de diminuer la complexité du système de détection dans un rapport de l'ordre de FS/F; où FS est la fréquence d'échantillonnage du signal tatoué reçu et F; la fréquence interne du 2910766 - 12- système de détection. Des valeurs typiques de F; sont de 16 kHz ou de 22.05 kHz. La fréquence d'échantillonnage FS du signal tatoué reçu est par exemple de 44.1kHz. Ce principe de ré-échantillonnage est décrit en référence à la figure 5. Dans un premier temps, le rapport FS/F; est approximé, dans le module 50, par le rapport de deux 5 entiers K/P. La valeur de K est limitée par exemple à 20. Ainsi, le module référencé 51 consiste à insérer K échantillons de valeur 0 entre les échantillons du signal sF (n) de façon à ne pas changer le spectre du signal. Ce signal est ensuite filtré par le module de filtrage 52. Ce module de filtrage comporte un filtre symétrique à réponse impulsionnelle finie composé de composantes polyphases. 10 La fréquence d'échantillonnage est ensuite réduite par le module 53, en ne conservant qu'un échantillon sur P. On obtient ainsi un signal tatoué sF (n) qui a une fréquence d'échantillonnage de F. Pour revenir à la figure 4, le signal tatoué s(n), éventuellement ré-échantillonné, est ensuite traité par un module de filtrage 40 pour donner un signal 15 tatoué "rehaussé". Ce module de filtrage 40 comporte un filtre inverse 41 (1/H(z)) dont les coefficients sont calculés à partir du modèle psycho-acoustique 43 du signal. A la sortie du filtre 41, le signal est ensuite filtré par un filtre de Wiener 42 pour donner le signal tatoué "rehaussé" x(n). Le filtrage de Wiener comporte un module de détermination du filtre qui fait intervenir la fonction de corrélation statistiquement 20 représentative d'une séquence d'apprentissage de l'identificateur initial ou d'une séquence d'apprentissage calculée par concaténation des séquences de référence de l'identificateur initial, de l'identificateur local et des symboles. Ainsi, la prise en compte de certaines caractéristiques des séquences utilisées pour insérer l'identificateur initial, les identificateurs locaux et les symboles permet 25 d'améliorer la détection des identificateurs et des symboles par l'accentuation des pics éventuels de détection. Dans la suite de la description, nous parlerons de signal tatoué à la fois pour désigner le signal tatoué reçu par le système de détection et le signal tatoué rehaussé. Ce signal tatoué est par exemple du type de celui décrit en référence à la figure 3. 2910766 - 13 - Ainsi, le signal tatoué arrive en entrée du module 44 de gestion des analyseurs qui fonctionnent en parallèle et qui sont gérés par une procédure que l'on décrira en référence à la figure 7. En résumé, le module 44 comporte Na analyseurs qui réalisent en parallèle des 5 calculs de corrélation entre le signal tatoué et les séquences de référence utilisées pour l'insertion de l'identificateur initial, des identificateurs locaux et des symboles du message. Un score de corrélation d'identificateur initial (Sel), un score de corrélation d'identificateur local (ScL) et un score de corrélation de symboles (ScB) sont associés à chacun des analyseurs en fonction des calculs de corrélation effectués. 10 Ces scores permettent de calculer un score global par analyseur. Le déclenchement des analyseurs se fait en fonction d'une valeur de corrélation relative à l'identificateur initial. Cette procédure de déclenchement sera explicitée en référence aux figures 7 et 8. La détection des différents identificateurs et des symboles du message à 15 détecter par les analyseurs, utilise différentes séquences de référence qui sont crées dans le domaine fréquentiel par le module 46. La génération de ces séquences de référence sera explicitée ultérieurement. Le module 45 permet de prendre une décision sur la détection du message en fonction des analyses qui ont été effectuées par les analyseurs du module 44. Cette 20 décision est prise en fonction du score global de chacun des analyseurs. En sortie du module 45, on retrouve donc le message détecté (M). Un exemple de message que l'on peut détecter est la suite de caractères DRM+ ("Digital Right Management" en anglais) (32 bits) insérée dans un signal audio et qui s'affiche par exemple toutes les 15 secondes pour un flux binaire à 2.13 bit/s transporté 25 par le flux audio. A titre d'exemple, le système de détection selon l'invention, peut être intégré à un lecteur de support multimédia comme un lecteur DVD, il peut être intégré à un téléphone mobile, un décodeur audiovisuel, soit plus généralement, un terminal multimédia ou encore un micro-ordinateur comme représenté en figure 13. 2910766 - 14- Ainsi, si le message est une suite de caractères DRM+ comme mentionné ci-dessus, une détection d'un identifiant qui n'est pas conforme aux droits attribués inhibe la lecture du contenu concerné. Dans une autre application possible de l'invention, le message (numéro de 5 décodeur ou identifiant de l'utilisateur) a été inséré dans un contenu à droits de diffusion restreints par un équipement de type décodeur audiovisuel. L'application de l'invention permettra de suivre la diffusion du contenu par la détection du message et donc de détecter des fraudes éventuelles de diffusion du contenu. Le signal tatoué peut ne comporter qu'un identificateur initial. Dans ce cas, les 10 analyseurs effectuent un calcul de corrélation entre le signal tatoué etla séquence de référence utilisée pour l'insertion de l'identificateur initial. Un score de corrélation d'identificateur initial est associé à chaque analyseur et la décision prise sur la détection de l'identificateur initial est alors faite en fonction du score de corrélation d'identificateur initial. 15 De même lorsque que le signal tatoué comporte un identificateur initial et des symboles (sans identificateurs locaux), les analyseurs effectuent un calcul de corrélation entre le signal tatoué et les séquences de référence utilisées pour l'insertion de l'identificateur initial et des symboles. Un score de corrélation d'identificateur initial et un score de corrélation de symboles sont associés à chaque analyseur. 20 En fonction de ces deux scores, un score global par analyseur est calculé et va servir à prendre une décision sur le message inséré. Le procédé de détection d'un message selon l'invention est maintenant décrit en référence à la figure 6. Pour un ensemble de blocs t du signal numérique tatoué (xr(n)), le procédé selon l'invention comporte une étape E61 d'analyse par une pluralité 25 d'analyseurs fonctionnant en parallèle, par calcul des corrélations (R_` ) entre le signal tatoué et les séquences de référence qui ont été utilisées pour l'insertion de l'identificateur initial, des identificateurs locaux et des symboles dans le cas où les trois types d'information sont insérés dans le signal tatoué. A l'étape E62, on associe à chaque analyseur ayant effectuée une analyse par 30 calcul de corrélations en E61, un score de corrélation d'identificateur initial (Sel), un 2910766 - 15 - score de corrélation d'identificateur local (ScL) et un score de corrélation de symboles (ScB). Ces scores de corrélations sont calculés en fonction des résultats de calcul de corrélations effectuées en E61. L'étape E63 est une étape de détermination d'un score global de corrélation par 5 analyseur qui dépend du score de corrélation d'identificateur initial, du score de corrélation de l'identificateur local et du score de corrélation de symboles de l'analyseur en question. L'étape E64 est une étape de détermination du message (M) à détecter. Ce message est obtenu en effectuant un diagnostic des résultats des analyseurs qui ont 10 terminé leurs analyses. Cette détermination se fait en fonction des scores globaux de ces analyseurs. Ce diagnostic sera explicité en référence à la figure 7. La figure 7 illustre sous la forme d'un organigramme, les principales étapes de la procédure de gestion des analyseurs conformément à l'invention. L'étape E700 est une étape d'initialisation de l'indice t du bloc du signal tatoué, 15 du nombre na d'analyseurs en cours et du repère temporel La(i) dans les séquences d'analyse des analyseurs, i allant de 1 à N. Naniax est le nombre maximum d'analyseurs du système de détection. A l'étape E701, on initialise également l'indice k de l'échantillon du bloc courant de signal tatoué. 20 L'étape E702 est une étape de calcul de corrélation entre le signal tatoué et la séquence de référence wI de l'identificateur initial. On obtient ainsi une valeur de corrélation Rx (k) à l'indice k du bloc courant. On compare cette valeur à un seuil S à l'étape E703. A la détection d'une valeur supérieure au seuil S, en réponse positive de l'étape 25 E703, l'étape E704 teste si la valeur du nombre d'analyseurs en cours, na, est égale à la valeur maximale. On regarde donc si tous les analyseurs du système de détection sont déjà utilisés donc indisponibles. Dans la négative, on passe à l'étape E705 d'incrémentation de une unité du nombre d'analyseurs en cours (na= na+l) et on démarre à l'étape E706 un analyseur 30 disponible. Cet analyseur démarre ainsi une nouvelle analyse à partir de l'indice 2910766 -16-temporel La(na)=LI, le nombre d'échantillons de l'identificateur initial. On associe également à cet analyseur un score de corrélation d'identificateur initial qui dépend de la valeur de corrélation R1 ,v (k) à l'origine du démarrage de cet analyseur et de la longueur LI. 5 Le score d'identificateur initial est donné par l'expression suivante: ScI(na) = R L(k) (3) L'analyseur na va effectuer son analyse en calculant les corrélations entre le signal tatoué et les séquences de référence respectives des identificateurs locaux et des symboles. Un score de corrélation d'identificateur local ScL est associé ainsi qu'un score 10 de corrélation de symboles ScB. On peut ainsi calculer un score global pour cet analyseur qui est donné par l'expression suivante: NL NB -1 SCI Lj + I ScL(i)LL + ScB(i)LB ScG = `ùo i=o LI + NLLL + NBLB Où L1, LL, LB sont les longueurs respectives de l'identificateur initial, de 15 l'identificateur local et des symboles, NL est le nombre d'identificateurs locaux et NB, le nombre de symboles. En réponse positive à l'étape E704, c'est-à-dire s'il n'y a plus d'analyseurs disponibles dans le système de détection, on passe à l'étape E707 où on compare les scores de corrélation d'identificateur initial des analyseurs du système de détection. Si 20 l'analyseur (ina) qui a le plus mauvais score d'identificateur initial a également un score de corrélation d'identificateur initial inférieur à la valeur de corrélation Rx (k) de l'étape E703, alors cet analyseur est arrêté et redémarré (étape E708) pour une nouvelle analyse en initialisant le repère temporel La(ina) à LI (étape E709) et un nouveau score d'identificateur initial Sel dépendant de la valeur Rx (k) et de la longueur LI, est 25 associé à cet analyseur ina. Cet analyseur effectue son analyse comme explicité ci-dessus pour l'analyseur na. (4) 2910766 - 17 - Si à l'étape E703, le test est négatif, on teste à l'étape E710 s'il existe un analyseur qui a fini sa séquence d'analyse. On regarde pour cela si l'indice temporel La(i) est égal à la longueur LMaX 1, ceci pour tous les analyseurs en cours, i allant de 1 à na. LMaR est la longueur d'une séquence d'analyse d'un analyseur. Cette longueur est 5 égale à LI+NLLL+NBLB où LI, LL, LB sont les longueurs respectives de l'identificateur initial, des identificateurs locaux et des symboles et NL, NB sont les nombres respectifs d'identificateurs locaux et de symboles. En cas de réponse positive, un test E720 est effectué pour déterminer s'il y a 10 conflit entre l'analyseur qui a terminé son analyse et les autres analyseurs qui ont fini leur analyse. Il y a conflit entre analyseurs si les analyses effectuées se chevauchent sur au moins une plage temporelle. S'il y a conflit, l'étape E730 arrête l'analyseur en conflit qui a le plus mauvais score global ScG. Cet analyseur sera recyclé en E722, le nombre d'analyseurs en cours 15 est donc décrémenté ici de une unité. S'il n'y a pas conflit à l'étape E720, l'étape E721 valide le message M détecté (l'ensemble des symboles détectés) de l'analyseur de meilleur score global. Les analyseurs qui ont fini leur analyse et dont les conflits ont été résolus, sont arrêtés et recyclés en E722, où le nombre d'analyseur est décrémenté. Cette procédure d'arrêt des 20 analyseurs et de décision de message valide peut également dans un autre mode de réalisation être effectuée en mettant en oeuvre un algorithme de type Viterbi (E740) qui prendra des décisions en fonction de valeurs stockées par les différents analyseurs. Cet algorithme va chercher le chemin sans recouvrement (message détecté par un analyseur) qui présente le score maximum. 25 Dans le cas d'une réponse négative à l'étape E710, les analyses en cours continuent en incrémentant l'indice dans le bloc k (E715). A la fin du bloc courant (E713), on passe au bloc suivant (E714) puis on retourne à l'étape E701. Dans une variante de réalisation, le déclenchement des analyseurs se fait selon les étapes explicitées à présent en référence à la figure 8. 2910766 - 18 - Dans une première étape E80, on initialise l'indice t du bloc courant. A l'étape E81, un calcul de corrélation en continu s'effectue entre le signal tatoué et la séquence de référence utilisée pour l'insertion de l'identificateur initial. Cette étape sera explicitée plus en détails en référence aux figures 9a, 9b, 10 et 11. 5 On obtient ainsi les valeurs de corrélation Rx (k) pour tous les échantillons du bloc, k allant de 0 à N-1. N est le nombre d'échantillons du bloc courant. Ces valeurs sont ensuite comparées à l'étape E83 à une valeur de seuil S, ceci pour tous les échantillons (E86). Cette comparaison est faite après initialisation des valeurs de l'indice k dans le bloc courant, de l'indice d'un maxima de corrélation iMax et de la 10 valeur maximale de corrélation Max(i) pour i, indice des maxima de corrélation allant de 0 à NMaX 1, NMax étant le nombre maximum d'échantillons retenus dans un tableau Max. Lorsqu'une valeur de corrélation dépasse le seuil S, on incrémente l'indice iMax et on retient la valeur de cet indice et de la corrélation Rx (k) correspondante en 15 les stockant dans les tableaux Max et Debl (E84). On stocke ces valeurs en mémoire. A l'étape E85, on regroupe en un seul point les points qui sont situés dans un même voisinage et qui dépassent le seuil S. On regarde donc tous les points voisins qui dépassent sans discontinuité, le seuil S et on prend le maxima de ces points voisins. On sélectionne ainsi un seul maxima local. 20 La détermination de ce maxima va déclencher le démarrage d'un analyseur du système de détection en E88. Cette étape correspond à l'entrée en étape E704 de la figure 7. On fait ceci pour tous les blocs (E87). La sélection d'un seul maxima parmi un ensemble de maxima locaux permet de 25 limiter le nombre de démarrages des analyseurs. Le nouvel analyseur (iAna) déclenché à l'étape E88, va également poursuivre son travail et effectuer un calcul de corrélation entre le signal tatoué et les séquences de références utilisées lors de l'insertion des identificateurs locaux et des symboles. Au démarrage de cet analyseur, on lui associe un score d'identificateur initial qui est 2910766 -19fonction du maxima de corrélation sélectionné qui a déclenché son démarrage et de la longueur de la séquence de référence de l'identificateur initial (LI). Le score d'identificateur local Sel de l'analyseur en question iAna est obtenu par la formule suivante: R (Debl (iMax)) 5 Sel (iAna) _ xw' Où RX (Debl (iMax)) représente le maxima de la valeur de corrélation et LI, la longueur de la séquence de référence de l'identificateur initial, c'est-à-dire le nombre d'échantillons. Nous allons expliciter à présent en référence aux figures 9a et 9b, un mode de 10 réalisation d'un calcul de corrélation en continu entre le signal tatoué filtré et la séquence de référence utilisée pour l'insertion de l'identificateur initial. Ce calcul correspond aux étapes E702 et E81 des figures 7 et 8. Le signal tatoué représenté en 90 est reçu en continu. L'identificateur initial issu d'une séquence de référence de longueur LI est constituée de R blocs de N 15 échantillons, soit de LI =R*N échantillons. Cet identificateur initial est représenté en grisé sous la référence 91 sur les figures 9a et 9b. Une analyse par bloc de LI échantillons est effectuée. Ce bloc courant n ) pour n allant de 0 à LI -1 est référencé sur la figure en 92. Un calcul de corrélation est effectué entre ce bloc courant et la séquence de référence wj(n) générée comme lors de l'insertion. On compare ensuite les 20 valeurs de corrélation obtenue pour les N premiers échantillons comme représenté en 93 sur les figures 9a et 9b. Pour passer au nouveau bloc courant, le bloc précédent est décalé vers la gauche de N échantillons et le bloc x`+ n), n = 0,..., N -1 de signal tatoué est placé dans sa partie droite. C'est ce qui est indiqué sur la figure 9b où le bloc analysé en 92 devient 25 le bloc courant. On constate sur la figure 9b que l'identificateur inséré représenté en grisé en 91 s'est décalé de N échantillons vers la gauche par rapport au bloc précédent représenté en 92 sur la figure 9a (et qui était le bloc courant de l'étape précédente). LI (5) 2910766 - 20 - Sur cette figure 9b, on constate que le calcul de corrélation donne une valeur supérieure au seuil sur les N premiers échantillons. Ceci indique donc la position ks du début de l'identificateur initial. Avec cette méthode d'analyse par recouvrement, un exemple de calcul de la 5 corrélation est donné par l'expression suivante: L,ù1 Rx (k) _ (n)z`(n+k) k=0,..., L1-1 (6) n=0 Cette méthode pour calculer la corrélation pour des blocs en recouvrement peut avantageusement s'effectuer dans le domaine de Fourier. 10 La technique proposée consiste à subdiviser la séquence z` (n) en sous-séquences x t (n) qui se recouvrent comme suit: xi` (n)=x (n+Ni)n=0,1,...,2Nû1,i=0,1,...,Rû1 (7) et la séquence w, (n) en sous-séquences w1 (n) telles que : w 1(n + Ni) n = 0,1,..., N -1 15 wl (n) = i = 0,1,..., R -1 (8) 0 n = N,...,2N -1 Pour chaque paire de sous-séquence x r (n) et w1 (n) de longueur 2N, la séquence Cor (m) représentant la corrélation périodique de x n) et 1121, (n) est calculée. Ce qui s'écrit avec les séquences originales z` (n) et wl (n) : Nù1 Cor (m) = E wj (n + iN) z` (n + iN + m) m = 0,1,...,N -1 (9) n=0 20 En sommant ces corrélations partielles sur les R sous-blocs, on obtient la corrélation totale entre les deux séquences. Il existe cependant une méthode plus efficace pour calculer les inter-corrélations en passant par la transformée de Fourier ou FFT. Pour cela on calcule Xi k) et Wl (k) , les FFT des signaux zi` (n) et w1, (n) 25 puis le produit: 2910766 -21-Y~(k) = X~ (k)WI*(k) (10) En sommant les contributions sur les R sous-trames de f dans le domaine fréquentiel et en effectuant une transformée de Fourier inverse, on obtient l'intercorrélation cherchée: R-1 5 =IFFT(IY) (11) t=o Une façon d'accélérer encore plus les calculs est obtenue en constatant que le calcul de la corrélation pour un bloc t+l et celui pour un bloc t ont en commun les R-1 blocs de signal tatoué les plus récents, z1` (n) , zz` (n) , ..., xR_1` (n) . Le seul nouveau bloc de signal entrant dans la corrélation est le bloc (n) qui prend la place du bloc 10 de la trame précédente. Les FFT des signaux tatoués pour le bloc t et le bloc t+l auront donc également R-1 blocs spectraux en recouvrement. Une façon efficace d'effectuer les calculs au bloc t+l connaissant les signaux spectraux au bloc t est donc de décaler les signaux spectraux, de laisser tomber les coefficients du bloc le plus ancien et de rajouter la FFT du bloc de signal entrant en 15 position des coefficients spectraux les plus récents. Dans cette façon de procéder une seule FFT de taille 2N sera effectuée par bloc courant de LI échantillons référencé en 92. La figure 10 illustre sous forme d'organigramme les étapes pour mettre en oeuvre une telle procédure. 20 Ainsi, à l'étape E100 on obtient W~ = FFT (w1) , les transformées de Fourier des sous-blocs wI définis par l'équation (8) de la sequence de référence de l'identificateur initial, pour i allant de 0 à R-1. On initialise le tableau Y contenant les corrélations partielles à 0. On s'intéresse au bloc de signal entrant jR_lt Dans la première boucle de E101 à E104, pour i=0 (E101) à i=R-2 25 (E103), on garde en mémoire (E102) les FFT calculées pour les blocs précédant le bloc courant entrant. On décale de 2N échantillons le buffer des signaux spectraux stockés en mémoire référencés par les R tableaux complexes Xt de taille 2N. 2910766 - 22 - Puis, à l'étape E105, on calcule la FFT du bloc entrant XR1` (n) . On obtient XR = FFT(ÎR1) . Dans la boucle suivante, de E106 à E109, on calcule le produit des coefficients complexes de l'identificateur initial conjugué et du signal tatoué et on somme les résultats partiels dans f (E107), ce qui revient à calculer: R1 5 =ti (k)W,*(k). Finalement, on retrouve à l'étape E110, R (k) k=0,...,2N-1, les corrélations de x et ù corrélations , par FFT inverse de Y . Seuls les N premiers échantillons de RX (k) sont à conserver. L'opération de conjugaison complexe en E107 peut être effectuée une fois pour toutes à l'initialisation de l'étape E100. 10 La figure 11 illustre à présent un organigramme représentant les étapes d'un second mode de réalisation pour le calcul de corrélation entre le signal tatoué et l'identificateur initial. Dans cette autre réalisation, on ne garde pas en mémoire les FFT des R blocs de signal tatoué Xit , i=0,...,R-1. Cette méthode consiste à calculer pour chaque bloc 15 courant t, la contribution du bloc courant XR pour toutes les intercorrélations partielles i=0,...,Rù1. Ainsi, à l'étape El 11 de la figure 11, on obtient W1 = FFT (wI ) , les transformées de Fourier des sous-blocs wr (n) définis par l'équation (8) de la séquence de référence de l'identificateur initial, pour i allant de 0 à R-1. On s'intéresse au bloc de 20 signal entrant xR` (n) . Les mémoires Y des corrélations partielles dans le domaine spectral sont initialisées à 0. A l'étape E112, on calcule la FFT du bloc courant . On obtient X R = FFT(). Dans la boucle E113 à E116, les contributions spectrales du bloc courant 25 W XR_1 sont ajoutées à chacune des corrélations partielles Y+1 et stockées dans Y . 2910766 -23- A l'étape E117, il reste à initialiser la corrélation partielle YR par les valeurs du tableau W1*0XR ~ . Au cours de cette procédure itérative, on notera que YR ne contient qu'une contribution de XR YR_z contient la contribution de XR et de XR z et ainsi de 5 suite. La corrélation recherchée RX (k) k=0,...,2N-1 est obtenue par FFT inverse de Yo . Seuls les N premiers échantillons de RX (k) sont à conserver. L'opération de conjugaison complexe en E114 et E117 peut être effectuée une fois pour toutes à l'initialisation de l'étape El11. 10 En référence à la figure 12, nous allons à présent décrire les principales étapes mises en oeuvre pour la détection des symboles du message inséré. Un symbole se trouve immédiatement, soit après un autre symbole soit après un identificateur local soit après l'identificateur initial comme représenté en référence à la figure 3. Sa position "idéale" th est donc donnée soit par celle du premier échantillon 15 qui suit le dernier échantillon du symbole précédent soit par celle du premier échantillon qui suit l'identificateur initial ou un identificateur local placé tous les Kb symboles. Cependant, du fait d'attaques du signal tatoué, le détecteur ne trouve pas forcément la position du début de symbole à sa position "idéale". 20 Dans un mode de réalisation de l'invention, la détection des symboles prévoit d'effectuer les recherches sur des séquences qui peuvent commencer un peu avant ou un peu après cette position "idéale". Les recherches sont effectuées dans une plage de débuts possibles, plage appelée "fenêtre de recherche". 25 Cette façon de procéder a l'avantage de tenir compte de la possibilité que des échantillons soient perdus ou insérés (problèmes de transmission, attaques, ré-échantillonnage) et de la possibilité d'ajout de bruit sur le signal tatoué. 2910766 -24- L'information binaire des symboles est transportée par des séquences temporelles de référence WB de LB échantillons qui sont générées par des générateurs de nombres aléatoires. Ces séquences, connues à l'insertion et à la détection sont stockées en mémoire dans un dictionnaire. 5 Deux types de modulations sont considérés, la modulation de formes d'ondes orthogonales et la modulation de formes d'ondes bi-orthogonales. Dans le cas d'une modulation de formes d'ondes orthogonales, la forme d'onde à insérer sera choisie dans un répertoire de formes d'ondes orthogonales identique à l'insertion et à la détection: 10 {wBi(n) i = 0,...,2N6-1 (12) n = L'indice i dans le dictionnaire est composé de Nb bits d'information codée ~cNb 1cNb 2 cic0 } donné par l'expression: Nb -1 i = c(i) 2k (13) k=0 Pour faciliter la détection, les formes d'ondes wBi(n) des dictionnaires 15 d'insertion et de détection sont orthogonalisées par une procédure dite de Gram- Schmidt. Dans une procédure classique de détection, si on suppose que le premier échantillon du symbole à rechercher est donné par tB , la détection du symbole émis consiste à rechercher celui des 2Nb symboles qui donne le maximum de la corrélation: LB -1 R, (i) = x(tB + n)wBi(n) i = 0, 2NB -1 n=0 (14) Dans la méthode selon l'invention, la recherche sur les symboles est effectuée comme précédemment avec en plus, une recherche de corrélation autour de la position idéale du début du symbole. 20 2910766 - 25 - La recherche est faite sur une plage [tB û NDB; tB + NDB Ide débuts possibles, centrés autour de tB où NDB représente le nombre d'échantillons de recherche avant et après tB . Une valeur typique de NDB est de 5 échantillons. La recherche des symboles fournit donc deux informations: Le symbole trouvé 5 iopt donné par sa décomposition binaire par l'équation (13) et le décalage dBopt par rapport à la position de début idéale tB pour lesquels la corrélation suivante est maximisée: LB-1 Rx,,,,B (i, j) _ .x(tB +n+ j) wBti (n) i = 0,...,2N' -1, j = ûNDB,...,NDB (i5) n=o 10 Ainsi, en référence à la figure 12, la détection des symboles se fait par les étapes E120 à E122. A l'étape E120, un calcul de corrélation spécifiée par l'équation (15) ci-dessus est effectué. A l'étape E121, on calcule le décalage optimal j = dBopt et le symbole détecté 15 iopt . Ces valeurs sont telles que: (Lopr, dBopt) = arg max(HB.RX1,,B (i, j)) pour i = 0,...,2N' -1, j = ûNDB ,..., NDB (16) (i,i) Elles sont ainsi obtenues dans une double boucle de calcul sur les indices i et j à partir de la corrélation RX711B (k, j) pondérée par une fenêtre HB (n) centrée sur tB . A titre d'exemple non limitatif, on peut prendre une fenêtre symétrique de 20 Hanning donnée par: HB (n) 2 1ù cos ( 2TC.(n+NDB +1) 2(NDB + 1)n = ûNDB,...,NDB (17) Cette fenêtre reflète le fait que la confiance que l'on a de trouver la séquence est plus forte près de son début "idéal" tB . A l'étape E122, on calcule alors le score de corrélation du symbole qui est 25 fonction de la valeur du maximum de la corrélation du symbole détecté, et du décalage par rapport à la position de début initial. Ce score est donné par l'expression suivante: 2910766 -26- ScBNc = H ( Bopt )Rz(iopt, dBopt) / LB (18) Où HB (n) est une fenêtre de pondération, de Hanning à titre d'exemple. Le score de chaque détection symbole non corrigée ScBNc est dirigé vers le décodage canal pour correction éventuelle. Dans le cas d'une modulation de forme d'ondes bi-orthogonales, la forme d'onde à insérer sera choisie dans un répertoire de formes d'ondes orthogonales pour la première moitié du dictionnaire et par inversion de signe pour la seconde moitié: a = 0,1,..., 2Nb ù1 -1 2Nb ù (i + 1) = 2Nbù1,..., 2Nb -1 (19) n = 0,..., LB ù 1 10 La recherche du symbole qui a été inséré est effectuée en recherchant les indices iopt et dBopt tels que: (iopt, dBopt) = arg max(HB.RX1,,,B j)) pour i = 0,...,2Nbù1 -1, j = ùNDB ,..., NDB (20) (i,i) Si la valeur de la corrélation RX B (iopt, dopt) est négative, cela veut dire que c'est 15 l'indice iopt = 2Nb-1 +iopt qui a été inséré. Cette façon de procéder permet de réduire la complexité de la recherche de l'indice inséré de façon significative dans un rapport 2. La procédure de recherche pour le cas de la modulation bi-orthogonale est analogue à celle décrite en référence à la figure 12 avec le calcul de R.Î.B (i, j) donné par l'équation (20). 20 Les bits correspondant aux symboles reconnus par le détecteur sont transmis au décodage canal. Quand le codage utilisé permet la détection et la correction d'erreurs de transmission, le procédé selon l'invention effectue si possible la correction. Les bits sont transmis au décodeur canal avec leur score. Si des erreurs sont détectées, les scores des bits décodés sont alors modifiés. Le codage de Hamming (7,4), 25 le codage de Viterbi 3/2 et 4/2 ont été expérimentés et donnent de bons résultats. 5 2910766 - 27 - La modification des scores pour le codage de Hamming (7,4) est décrite à titre d'exemple non limitatif. Les 7 bits qui entrent dans le décodeur de Hamming sont pourvus des scores ScBNc (0), ..., ScBNc (6) obtenus en sortie de la détection de corrélation de symboles. Lorsqu'une erreur est détectée sur le bit d'ordre k, le score 5 correspondant à ScBNc (k) est corrigé par mise de ScBc (k) à 0 sinon la valeur ScBNc (k) est affectée à ScBc (k) . Le score des 4 bits décodés sera identique et donné par une moyenne des scores des bits après correction: 6 ScBc (i) ScB(j)= `=0 7 j=0,...,3 (21) Chaque analyseur décrit précédemment concatène les groupes de 4 bits et 10 délivre à l'organe de décision l'ensemble des scores de symboles ScB(i),i = 0,..,NB -1. Le score global peut alors être calculé conformément à l'équation (4) décrite précédemment. Dans le cas où, à l'insertion, un même symbole est inséré plusieurs fois dans le signal porteur pour améliorer la fiabilité de la corrélation, les corrélations correspondant 15 aux messages détectés coté détecteur, seront accumulées en fonction du paramètre de répétition d'insertion KYep de la façon suivante: ) LBù1K,,ù1 RX (i, j) _ .x(tB +n+kTLB + j)wBt n=0 k,=0i = 0,...,2Nb -1,i = ùNoms,..., Noms (22) où KYep est le nombre de répétitions de l'insertion du symbole. 20 Pour éviter l'apparition de la périodicité de la séquence de référence du message, la clef ou graine de génération de la séquence de référence pourra être dépendante de l'indice de répétition kY . Une généralisation de cette façon de procéder est de segmenter la synchronisation initiale et locale en tronçons comme décrit pour les symboles. En 25 réception, les corrélations seront accumulées suivant une procédure semblable à celle de l'équation (22). 2910766 - 28 - Le calcul des corrélations des identificateurs locaux est proche de celui effectué pour les symboles. Rappelons que l'identificateur local ou synchronisation locale est ajouté devant un groupe de Kb symboles (voir figure 3) de façon à permettre une détection assez 5 précise du début de groupe de symboles. Cet identificateur local est utile pour lutter contre les désynchronisations dues à l'ajout ou la perte d'échantillons (cropping en l'anglais). L'instant probable de début de la synchronisation locale tL est donc le premier échantillon qui suit le dernier échantillon du dernier symbole. La recherche de 10 l'identificateur local est effectuée sur une plage [tL û NDL; tL + NDL ] de débuts possibles, centrés autour de tL où NDL représente le nombre d'échantillons de recherche avant et après tL . Une valeur typique de NDL est de 25. La recherche de l'identificateur local fournit donc l'information de décalage dLopt par rapport à la position idéale de début conformément à l'équation suivante: LL 15 R ~ (j) = x(tL + n + j)wL (n) j = ûNDL,..., NDL (23) n=0 où wL(n) est la séquence de référence de l'identificateur local, c'est-à-dire une séquence de LL nombres aléatoires générés avec une graine spécifique. Une valeur typique de LL est de 4096. Le décalage optimal j = dLopt est obtenu dans une boucle de calcul sur tous les 20 décalages possibles à partir de la corrélation R .Î.L (j) pondérée par une fenêtre HL (n) centrée sur tL . Le score de la détection de l'identificateur local est donné par l'expression: ScL = HL (dLopt )R.Î.L (dLopt ) / LL (24) où HL(n) est une fenêtre de pondération, une fenêtre de Hanning à titre 25 d'exemple. 2910766 - 29 - Le score de la synchronisation locale ScL est dirigé vers l'organe de décision de message qui calcule le score global ScG conformément à l'équation (4) décrite précédemment. La description qui suit vise à expliquer les étapes mises en oeuvre pour la 5 génération d'une séquence de référence. Les séquences aléatoires de référence wi, wLet W sont calculées dans le domaine fréquentiel, filtrées dans ce domaine avant d'être repassées dans le domaine temporel. La séquence de référence dans le domaine de Fourier est donnée par: 10 W(k) = m(k)e'nialea''') k = LMin,..., LMax où j est la racine carrée de -1. Le signal W(k) a été filtré dans le domaine fréquentiel pour ne retenir que les fréquences supérieures à FMtn et inférieures à Flua, correspondant aux raies LMin et LM . Ceci permet de tenir compte du fait que les très basses fréquences ne sont pas utiles et que les fréquences supérieures à Flua, peuvent 15 être éliminées par certains codecs de compression de débit tels ceux du type AAC ou HE-AAC. Flua, et LM sont liés par la formule suivante: F = F M L Mac ac L) Où F est la fréquence d'échantillonnage interne du détecteur et L la longueur 20 de la séquence de référence (égale à LI , LL ou LB selon qu'il s'agit de la séquence d'identificateur initial, local ou de symbole). aleat(k) est un nombre aléatoire uniformément réparti entre 0 et 1 fourni par un générateur de nombres aléatoires initialisé par une graine donnée par la clef Ki qui doit être connue à l'insertion et à la détection. 25 Le module du signal m(k) est donné par: m(k) =1 + 6gauss(k) (27) = 0 k = [0,..., LMin -1] u [LM,, + 1,..., L/2 -1] (25) (26 2910766 -30 - où gauss(k) est un nombre aléatoire gaussien de variance 1 et 6 un facteur de gain de cadrage. gauss(k) est obtenu en sortie d'un générateur de nombres aléatoires gaussien initialisé au moyen d'une clef K2 connue de l'insertion et de la détection. La symétrie Hermitienne est rendue au signal de référence dans le domaine 5 fréquentiel par symétrie et l'opération de complexe conjugué: W(Lûk)=W*(k)k=1,...,L12û1 (28) Moyennant la symétrie Hermitienne, la séquence de référence donnée dans le domaine temporel par FFT inverse sera réelle: = IFFT (W ) 10 Dans le cas des séquences de référence de symboles, 2Nb séquences aléatoires sont générées. A ce stade, on peut éventuellement utiliser une procédure d'orthogonalisation dite de Gram-Schmidt. Selon un mode de réalisation de l'invention représenté à la figure 13, un dispositif ou système mettant en oeuvre l'invention est par exemple un micro-ordinateur 15 210 qui comporte de façon connue, notamment une unité de traitement 220 équipée d'un microprocesseur, une mémoire morte de type ROM 230, une mémoire vive de type RAM 240. Le micro-ordinateur 210 peut comporter de manière classique et non exhaustive les éléments suivants: un clavier, un écran, un microphone, un haut-parleur, une interface de communication, un lecteur de disque, un moyen de stockage... 20 La mémoire morte 230 comporte des registres mémorisant un programme d'ordinateur PG comportant des instructions de programme adaptées à mettre en oeuvre un procédé de détection de message selon l'invention tel que décrit en référence à la figure 6. Ce programme PG comporte plusieurs modules logiciels ou analyseurs. Ce programme est ainsi adapté à calculer par une pluralité d'analyseurs, des corrélations 25 entre le signal audio tatoué et les séquences de références utilisées pour l'insertion de l'identificateur initial, des identificateurs locaux et des symboles, à associer à chacun des analyseurs un score de corrélation d'identificateur initial, un score de corrélation d'identificateur local et un score de corrélation de symboles dépendants du calcul des corrélations, à déterminer un score global de corrélation par analyseur, dépendant de 30 son score de corrélation d'identificateur initial, de son score de corrélation 2910766 - 31 - d'identificateur local et de son score de corrélation de symboles et à déterminer le message à détecter en fonction des scores globaux des analyseurs. Ce message ainsi détecté pourra être affiché en sortie 270. Le signal numérique tatoué est par exemple reçu en flux continu en provenance 5 d'un réseau extérieur 250 ou est stocké dans un espace mémoire 230 ou encore est lisible sur un support de stockage amovible de type CD, DVD ou autre lorsque ce support est inséré dans le lecteur correspondant. Les séquences de référence sont retrouvées grâce à la connaissance des clés qui ont permis de les générer à l'insertion. Ces clés sont soit reçues d'un réseau extérieur en 10 260, soit stockées dans un espace mémoire 230 du dispositif ou sur un support mémoire amovible. Lors de la mise sous tension, le programme PG stocké dans la mémoire morte 230 est transféré dans la mémoire vive qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en 15 oeuvre de l'invention. De manière plus générale un moyen de stockage, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé de détection de message selon l'invention. 20 25 REVENDICATIONS 1. Procédé de détection d'un message dans un signal numérique tatoué, une trame du signal tatoué comportant un identificateur initial ayant été inséré à partir d'une séquence de référence prédéfinie, le procédé étant caractérisé en ce qu'il comporte les étapes suivantes: - analyse (E61) par une pluralité d'analyseurs d'un système de détection, par calcul des corrélations entre le signal tatoué et la séquence de référence prédéfinie; - association (E62) à chacun des analyseurs d'un score de corrélation d'identificateur initial dépendant du calcul des corrélations; - détermination (E64) de l'identificateur initial en fonction du score d'identificateur initial des analyseurs. 2. Procédé selon la revendication 1 dans lequel une trame du signal tatoué comporte au moins un identificateur initial et plusieurs séries de symboles constituant le message inséré, les symboles ayant été insérés à partir de séquences de référence prédéfinies, caractérisé en ce que: -lors de l'étape d'analyse (E61) par une pluralité d'analyseurs un calcul des corrélations entre le signal tatoué et les séquences de référence utilisées pour l'insertion des symboles est effectué, - lors de l'étape d'association (E62) un score de corrélation de symboles dépendant du calcul des corrélations est associé à chaque analyseur; et en ce qu'il comporte en outre les étapes de: - détermination (E63) d'un score global de corrélation par analyseur, dépendant de son score de corrélation d'identificateur initial, de son score de corrélation de symboles; -détermination (E64) du message à détecter en fonction des scores globaux des analyseurs. 3. Procédé selon la revendication 2 dans lequel une trame du signal tatoué comporte en outre des identificateurs locaux entourant les séries de symboles du 2910766 - 33 - message inséré, les identificateurs ayant été insérés à partir de séquences de référence prédéfinies, caractérisé en ce que: - lors de l'étape d'analyse (E61) par une pluralité d'analyseurs un calcul des corrélations entre le signal tatoué et les séquences de référence utilisées pour 5 l'insertion des identificateurs locaux est effectué, - lors de l'étape d'association (E62) un score de corrélation d'identificateur local dépendant du calcul des corrélations est associé à chaque analyseur; - la détermination (E63) d'un score global de corrélation par analyseur, dépend de son score de corrélation d'identificateur initial, de son score de corrélation de 10 symboles et de son score de corrélation d'identificateur local; 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que le signal tatoué est prétraité lors d'une étape de filtrage (40) comportant un filtrage inverse et un filtrage de Wiener utilisant un filtre calculé à partir d'une fonction de corrélation d'au moins une séquence d'apprentissage de l'identificateur initial. 15 5. Procédé selon l'une des revendications 1 ou 4, caractérisé en ce qu'il comporte une procédure d'activation des analyseurs qui comporte les étapes suivantes: - calcul de corrélation (E702) en continu entre le signal tatoué et la séquence de référence utilisée pour l'insertion de l'identificateur initial; - comparaison (E703) des valeurs de corrélation ainsi calculées à un seuil 20 prédéterminé; à la détection d'une valeur de corrélation supérieure au seuil prédéterminé: - déclenchement (E706, E709) d'un analyseur et association d'un score de corrélation d'identificateur initial à cet analyseur. 6. Procédé selon la revendication 5, caractérisé en ce que le déclenchement de 25 l'analyseur s'effectue à la détection d'un maxima local (E85) des valeurs de corrélations supérieures au seuil. 7. Procédé selon l'une des revendications 5 ou 6, caractérisé en ce que le déclenchement d'un analyseur s'effectue après vérification (E704) de la disponibilité de cet analyseur dans le système de détection. 30 8. Procédé selon la revendication 7, caractérisé en ce qu'il comporte les étapes 2910766 - 34 - suivantes, en cas d'indisponibilité d'analyseur: -comparaison des scores de corrélation d'identificateur initial des analyseurs du système de détection; dans le cas où l'analyseur qui a le plus mauvais score de corrélation d'identificateur 5 initial a également un score de corrélation d'identificateur initial inférieur à la valeur de corrélation à l'origine de l'étape de déclenchement: - arrêt de l'analyseur qui est associé au plus mauvais score et redémarrage pour une nouvelle analyse dudit analyseur avec un nouveau score d'identificateur initial. 10 9. Procédé selon l'une des revendications 5 à 8, caractérisé en ce que le calcul de corrélation en continu entre le signal tatoué et la séquence de référence utilisée pour l'insertion de l'identificateur initial s'effectue par un calcul de corrélation sur un bloc courant de LI échantillons du signal tatoué, LI étant le nombre d'échantillons de l'identificateur initial, et de façon itérative sur les LI échantillons décalés de N 15 échantillons, LI étant multiple de N. 10. Procédé selon la revendication 9, caractérisé en ce que le calcul de corrélation entre le signal tatoué et la séquence de référence utilisée pour l'insertion de l'identificateur initial s'effectue par une méthode de type transformée de Fourier qui comporte les étapes suivantes: 20 -segmentation en sous-séquences d'un bloc courant de LI échantillons du signal tatoué; - segmentation en sous-séquences de la séquence de référence, la deuxième moitié de la sous-séquence de référence étant mise à 0; - application d'une transformée de Fourier aux sous-séquences du bloc courant 25 et aux sous-séquences de la séquence de référence; - calcul de corrélations partielles par le produit sur les échantillons résultant de la transformée des sous-séquences du bloc courant et ceux du complexe conjugué des sous-séquences de la séquence de référence; - sommation des corrélations partielles calculées; 30 - application d'une transformée de Fourier inverse à la somme issue de l'étape 2910766 - 35 - de sommation pour obtenir les valeurs de corrélation. 11. Procédé selon l'une des revendications 5 à 10, caractérisé en ce que le score d'identificateur initial est fonction de la valeur de corrélation à l'origine de l'étape de déclenchement et du nombre d'échantillons de l'identificateur initial. 5 12. Procédé selon l'une des revendications 2 à 11, caractérisé en ce que le calcul de corrélation entre le signal tatoué et les séquences utilisées pour l'insertion des symboles s'effectue sur une plage de débuts possibles, le calcul donnant à la fois la valeur du symbole et le décalage par rapport à une position de début idéal. 13. Procédé selon la revendication 12, caractérisé en ce que le score de 10 corrélation de symboles est déterminé à partir des scores respectifs d'un ensemble prédéterminé de symboles, un score d'un symbole étant fonction de la valeur du maximum de corrélation du symbole, du décalage et du nombre d'échantillons du symbole. 14. Procédé selon l'une des revendications 3 à 13, caractérisé en ce que le 15 calcul de corrélation entre le signal tatoué et la séquence utilisée pour l'insertion de l'identificateur local s'effectue sur une plage de débuts possibles autour du dernier échantillon du dernier symbole détecté, le calcul donnant à la fois la valeur de corrélation et le décalage par rapport à une position de début idéal. 15. Procédé selon la revendication 14, caractérisé en ce que le score de 20 corrélation d'identificateur local est fonction de la valeur de corrélation, du décalage et du nombre d'échantillons de l'identificateur local. 16. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte en outre une étape de ré-échantillonnage du signal tatoué en fonction de la fréquence d'échantillonnage du système de détection. 25 17. Procédé selon l'une des revendications 2 à 16, caractérisé en ce que l'étape de détermination du message à détecter s'effectue en examinant le score global des analyseurs qui ont terminé leur analyse, les recouvrements des plages d'analyse desdits analyseurs afin de résoudre d'éventuels conflits temporels. 18. Système de détection d'un message dans un signal numérique tatoué, une 30 trame du signal tatoué comportant un identificateur initial ayant été inséré à partir d'une 2910766 - 36 - séquence de référence prédéfinie, le système étant caractérisé en ce qu'il comporte: - une pluralité d'analyseurs effectuant des analyses par calcul des corrélations entre le signal tatoué et la séquence de référence prédéfinie; - des moyens d'association à chacun des analyseurs d'un score de corrélation 5 d'identificateur initial; - des moyens de détermination de l'identificateur initial en fonction du score d'identificateur initial des analyseurs. 19. Programme d'ordinateur comprenant des instructions de code pour la mise en oeuvre des étapes d'un procédé de détection d'un message conforme à l'une des 10 revendications 1 à 17, lorsque ledit programme est exécuté par un processeur. 20. Terminal multimédia apte à recevoir un signal numérique tatoué, caractérisé en ce qu'il comporte des moyens nécessaires à la mise en oeuvre d'un procédé conforme à l'une des revendications 1 à 17. 15