PROCEDE ET DISPOSITIF D'INSERTION D'INFORMATIONS DANS DES IMAGES FIXES OU ANIMEES.
La présente invention concerne l'insertion d'informations dans des images fixes ou animées.
Elle s'applique notamment, mais non exclusivement à la création et l'insertion de filigranes dans une image ou séquence d'images, à l'insertion d'informations dans le but d'indexer les images d'une séquence, ou encore au brouillage d'images vidéo. Dans les applications d'insertion de filigranes et d'indexation d'images, l'insertion d'informations doit être effectuée de manière à être imperceptible. Par contre, dans les applications de brouillage d'images, cette insertion doit dégrader fortement la qualité des images.
Les techniques de numérisation de contenus tels que les images fixes ou animées permettent de réaliser des copies de ces contenus en quantité illimitée et sans dégradation de qualité. En parallèle, le développement des réseaux informatiques et des ordinateurs personnels entraîne une dissémination incontrôlée de ces contenus. Il devient donc de plus en plus difficile de faire respecter les droits des auteurs de ces contenus.
Il existe des techniques de protection permettant de contrôler cette dissémination d' œuvres protégées par le droit d'auteur qui peuvent être classées en deux catégories. La première catégorie rassemble les techniques cryptographiques qui consiste à appliquer au contenu numérisé un chiffrement qui le rend illisible sans une clé de déchiffrement. La seconde catégorie rassemble les techniques d'insertion de filigranes non perceptibles portant des informations permettant d'identifier une copie légale d'une œuvre ou un code limitant les possibilités de duplication.
Pour qu'une technique d'insertion de filigrane soit efficace, il ne faut pas que les filigranes puissent être retirés du contenu sans dégradation substantielle de la qualité des images. En particulier, il ne doit pas être possible de supprimer des filigranes en combinant plusieurs copies d'un même contenu. Par ailleurs, les images et en particulier les séquences vidéo subissent couramment de nombreux traitements tels que des conversions numériques/analogiques et analogiques/numériques, des traitements de compression/décompression, des
traitements de modification d'échelle ou de recadrage ou encore d'ajustement de la luminosité, du contraste et des couleurs. Les filigranes doivent également résister à ces traitements.
La technique employée doit également permettre d'insérer une quantité d'informations suffisante, sachant que plus on augmente cette quantité, plus l'insertion de filigrane affectera la qualité des images, et donc la robustesse du filigrane.
II existe de nombreuses techniques d'insertion de filigrane dans des images fixes ou animées, plus ou moins robustes aux attaques et traitements d'image. Parmi ces techniques, le brevet . US 6 557 103 décrit un procédé de stéganographie faisant intervenir une modulation préalable du message à insérer dans des images par une séquence d'étalement de spectre. Par rapport aux autres techniques d'insertion de filigranes, ce procédé présente de bonnes performances en termes de robustesse et de bande passante pour l'information insérée dans l'image.
Toutefois, ce procédé, bien que générique, n'est pas optimal dans le cas d'images et nécessite d'encoder préalablement le message à insérer dans l'image à l'aide d'un codage avec correction d'erreur, ce qui contribue à réduire la bande passante ou la quantité d'informations utiles susceptibles d'être insérées dans l'image.
La présente invention a pour but de supprimer cet inconvénient. Cet objectif est atteint par la prévision d'un procédé d'insertion d'informations comprenant un nombre prédéterminé de symboles, dans une séquence d'images d'au moins une image comportant un nombre prédéterminé de lignes rassemblant chacune un nombre prédéterminé de pixels.
Selon l'invention, ce procédé comprend des étapes consistant à :
- générer un ensemble de fonctions présentant un spectre en forme de peigne s 'intercalant dans le spectre de la séquence d'image, et comprenant une fonction respective pour chaque symbole des informations à insérer,
- déphaser chaque fonction de l'ensemble de fonctions par une valeur représentative d'un symbole respectif des informations à insérer,
- superposer les fonctions déphasées, et
- combiner les pixels de la séquence d'images au résultat obtenu par la superposition des fonctions déphasées.
Selon un mode de réalisation préféré de l'invention, ce procédé comprend en outre une étape d'entrelacement des symboles des informations à insérer, préalablement au déphasage de chaque fonction de l'ensemble de fonctions.
Selon un mode de réalisation préféré de l'invention, ce procédé comprend, préalablement au déphasage modulation de chaque fonction de l'ensemble de fonctions, des étapes de génération d'une séquence pseudo-aléatoire comprenant un symbole respectif pour chaque symbole des informations à insérer, et de brassage des symboles des information à insérer avec la séquence pseudo-aléatoire.
De préférence, l'étape de brassage consiste à combiner par une opération OU exclusif des symboles des informations à insérer et la séquence pseudo¬ aléatoire.
Selon un mode de réalisation préféré de l'invention, les fonctions de l'ensemble de fonctions présentent des raies spectrales principales respectives espacées d'un pas constant correspondant à la fréquence ligne de la séquence d'images.
Selon un mode de réalisation préféré de l'invention, la séquence d'images présente un spectre en forme de peigne, le spectre en forme de peigne de l'ensemble de fonctions étant décalé par rapport au spectre de la séquence d'image d'une fréquence qui est ajustée.
Selon un mode de réalisation préféré de l'invention, la combinaison des pixels de la séquence d'images au résultat de la superposition des fonctions déphasées est effectuée par une modulation de la luminance des pixels de la séquence d'images.
Selon un mode de réalisation préféré de l'invention, la combinaison des pixels de la séquence d'images au résultat de la superposition des fonctions déphasées est effectuée par une rotation des composantes couleur des pixels de la séquence d'images.
Selon un mode de réalisation préféré de l'invention, ce procédé comprend en
outre une étape de prétraitement de l'image pour éviter des phénomènes de saturation des pixels de la séquence d'images lors de la combinaison de ceux-ci au résultat de la superposition des fonctions déphasées.
Selon un mode de réalisation préféré de l'invention, ce procédé comprend en outre une étape de codage des symboles des informations à insérer, pour obtenir une séquence de symboles distincte pour chaque composante couleur des pixels de la séquence d'images, les fonctions de l'ensemble de fonctions étant déphasées par chacune des séquences de symboles obtenues, superposées, puis combinées respectivement aux composantes couleur des pixels de la séquence d'images.
Selon un mode de réalisation préféré de l'invention, le codage appliqué aux symboles des informations à insérer, pour obtenir une séquence de symboles distincte pour chaque composante couleur est un codage de type convolutif.
Selon un mode de réalisation préféré de l'invention, la combinaison des pixels de la séquence d'images au résultat de la superposition des fonctions déphasées est effectuée de manière à être peu visible dans la séquence d'images.
Selon un mode de réalisation préféré de l'invention, la combinaison des pixels de la séquence d'images au résultat de la superposition des fonctions déphasées est effectuée de manière à embrouiller les images de la séquence d'images.
L'invention concerne également un procédé d'extraction d'informations d'une séquence d'images d'au moins une image comportant un nombre prédéterminé de lignes rassemblant chacune un nombre prédéterminé de pixels. Selon l'invention, les informations ont été insérées conformément au procédé d'insertion défini ci-avant.
L'invention concerne également un procédé de désembrouillage d'une séquence d'images d'au moins une image comportant un nombre prédéterminé de lignes rassemblant chacune un nombre prédéterminé de pixels. Selon l'invention, la séquence d'images a été embrouillée conformément au procédé d'insertion défini ci-avant.
L'invention concerne en outre un dispositif d'insertion d'informations comprenant un nombre prédéterminé de symboles, dans une séquence d'images
d'au moins une image comportant un nombre prédéterminé de lignes rassemblant chacune un nombre prédéterminé de pixels. Selon l'invention, ce dispositif comprend des moyens pour mettre en œuvre le procédé d'insertion d'informations défini ci-avant.
L'invention concerne encore un dispositif d'extraction d'informations d'une séquence d'images d'au moins une image comportant un nombre prédéterminé de lignes rassemblant chacune un nombre prédéterminé de pixels. Selon l'invention, ce dispositif comprend des moyens pour mettre en œuvre le procédé d'extraction d'informations défini ci-avant.
L'invention concerne encore un dispositif de désembrouillage d'une séquence d'images d'au moins une image comportant un nombre prédéterminé de lignes rassemblant chacune un nombre prédéterminé de pixels. Selon l'invention, ce dispositif comprend des moyens pour mettre en œuvre le procédé de désembrouillage d'images défini ci-avant.
Un mode de réalisation préféré de l'invention sera décrit ci-après, à titre d'exemple non limitatif, avec référence aux dessins annexés dans lesquels :
La figure 1 représente le spectre d'une séquence vidéo d'images ;
La figure 2 représente schématiquement un dispositif selon l'invention d'insertion d'informations dans une image fixe ou dans une séquence d'images ;
La figure 3 représente schématiquement un dispositif selon l'invention d'extraction d'informations insérées dans une image fixe ou dans une séquence d'images, à l'aide du dispositif représenté sur la figure 2 ;
La figure 4 représente schématiquement un dispositif selon l'invention de restitution d'images brouillées à l'aide du dispositif représenté sur la figure 2 ;
La figure 5 représente schématiquement une variante du dispositif représenté sur la figure 2 ;
La figure 6 représente schématiquement un dispositif selon l'invention d'extraction d'informations insérées dans une image fixe ou dans une séquence d'images, à l'aide du dispositif représenté sur la figure 5 ;
La figure 7 représente schématiquement un dispositif selon l'invention de restitution d'images brouillées à l'aide du dispositif représenté sur la figure 5.
La présente invention est basée sur l'exploitation de la forme spectrale d'une image ou séquence d'images numériques en bande de base (non modulée) telle qu'illustrée sur la figure 1. Sur cette figure, on peut constater que l'énergie du spectre d'une séquence d'images est répartie dans des ensembles de raies espacées de la fréquence image, chaque ensemble de raies présentant un maximum d'énergie à une fréquence n.fH multiple de la fréquence ligne fH des lignes de l'image. Deux maximum d'énergie consécutifs sont donc espacés de la fréquence ligne fπ (H pour horizontal).
La présente invention se propose d'utiliser les intervalles du spectre entre les pics d'énergie correspondant à des multiples de la fréquence ligne fH pour y insérer des informations formant une marque. On peut également envisager d'insérer des informations entre les raies espacées de la fréquence des images.
La figure 1 représente un dispositif selon l'invention pour insérer une marque dans une image ou une séquence d'images. Ce dispositif comprend un module 1 d'extraction des paramètres de l'image produisant des signaux de synchronisation permettant de repérer les lignes et les pixels dans l'image, et s'il s'agit d'une séquence d'images, les images de la séquence.
Les signaux de synchronisation à la fréquence ligne et pixel sont appliqués à un générateur 3 de fonctions, ces fonctions présentant la particularité d'être orthogonales entre elles, l'orthogonalité se définissant ici au sens du produit scalaire des fonctions. De plus, elles doivent former une base orthogonale dans l'espace vectoriel des fonctions de manière à former un spectre en peigne s 'intercalant dans le spectre d'image tel qu'illustré sur la figure 1. Le nombre de fonctions est variable et lié au nombre de symboles constituant le message à insérer dans l'image. Dans l'exemple de la figure 1, les fonctions orthogonales utilisées sont des fonctions sinusoïdales dont les fréquences respectives sont
espacées de la fréquence ligne fH et décalées en fréquence d'un certain pas par exemple égal fH/2 par rapport aux maximum d'énergie situés aux fréquences n.fH de l'image. De telles fonctions orthogonales sont de la forme : sin(kωt), dans laquelle k est un nombre entier variant entre 1 et K paramétrable, ω = 2π(fH+fd), et fd est une fréquence de décalage de la fonction sinusoïdale égale à une fraction de la fréquence ligne f^. On prévoit avantageusement d'ajuster finement la position fréquentielle de chaque fonction orthogonale formant le peigne dans l'intervalle [n.fH, (n+l).fH], c'est-à-dire la fréquence de décalage fd, ceci afin d'optimiser la robustesse et la visibilité de la marque dans l'image. Des tests montrent aisément qu'une condition optimum est obtenue avec fd = 0,9 fH.
On peut également appliquer un décalage en fréquence f0 égal à un nombre entier fois la fréquence ligne fΗ de manière à ajuster la position fréquentielle de l'ensemble du peigne formé par l'ensemble des fonctions orthogonales par rapport au spectre de l'image. Il est ainsi parfois préférable de décaler le peigne des fonctions orthogonales vers les fréquences élevées où le message inséré dans l'image sera moins perturbé par les signaux d'image.
Ces réglages permettent d'obtenir une condition de quasi-orthogonalité par rapport au spectre de l'image. Néanmoins, cette condition n'est pas toujours requise. En effet, si l'on souhaite brouiller l'image, ce décalage fin peut être employé à supprimer l'orthogonalité entre le peigne et le spectre de l'image.
On peut envisager d'utiliser d'autres fonctions telles que des fonctions d'ondelettes comme les fonctions de Haar ou de Hadamard, ou encore des sinusoïdes fenêtrées. De telles fonctions sont de la forme :
Re[exρ(jkωHt)] x F(t)
où Re(c) est la partie réelle du nombre complexe c, et F(t) est une fonction de fenêtrage périodique telle qu'une fonction de Hanning, de Hamming, de Blackmann, ou en cosinus surélevé ou encore une fonction Gaussienne tronquée, ou une fonction d'ondelettes telle que Haar.
L'ensemble de fonctions orthogonales produites par le générateur 3 est par exemple généré sous la forme d'un tableau logiciel ou d'une mémoire indexée.
On peut également envisager des fonctions orthogonales espacées non pas de la fréquence ligne fH, mais de la fréquence image qui est en général de quelques dizaines de Hertz.
Par ailleurs, le message à insérer dans l'image ou la séquence d'images est traité par un module 4 qui complète le message par des signaux de début et de fin de marque, et dans le cas d'une séquence d'images, qui effectue une répartition du message dans N images successives, par recopie ou découpe du message.
Chaque partie de message à insérer dans chaque image peut être traitée par un module 7 d'entrelacement qui effectue une permutation des bits de la partie de message. L'entrelacement permet de répartir de manière équilibrée les symboles du message sur les fonctions de base. L'entrelacement s'effectue pendant une durée équivalente à un certain nombre Le de lignes. Toutes les Le lignes, la loi de permutation est modifiée.
Le dispositif représenté sur la figure 2 peut également comprendre un module 2 de génération d'une séquence pseudo aléatoire utilisée comme séquence de brassage à partir d'une valeur initiale et du signal de synchronisation ligne, reçu en entrée.
La séquence de brassage générée est combinée au message en sortie du module 4 ou 7 par une opération 5 de type OU Exclusif produisant les symboles élémentaires du message.
Le traitement du message par une séquence de brassage permet d'éviter les redondances décelables à l'œil ou par des moyens électroniques. Le brassage s'effectue pendant un temps équivalent à un certain nombre Lb de lignes. Toutes les Lb lignes la séquence de brassage est modifiée.
Les symboles élémentaires du message en sortie de l'opération 5 sont appliqués à un déphaseur 6 recevant également en entrée l'ensemble de fonctions de base produites par le générateur 3. Le déphaseur 6 utilise chacun des symboles élémentaires du message, issus de l'opération 5 pour déterminer une phase à l'origine de chacune des fonctions de base. Dans le cas d'une base de fonctions sinusoïdales, cela revient à appliquer sur chacune des fonctions une modulation de phase de type BPSK (Binary Phase-shift Keying) dont le rythme dépend des paramètres Le, Lb et d'un signal de synchronisation lié au message. On peut
aisément étendre ce principe à des modulations de type QPSK (Quadrature Phase-shift Keying), ou QAM (Quadrature Amplitude Modulation), voire même des modulations non linéaires du type GMSK (Gaussian mimmum-shift keying), par exemple.
Les fonctions déphasées délivrées par le déphaseur 6 sont superposées ou additionnées par un sommateur 9, de manière à obtenir une fonction résultante qui est ensuite échantillonnée, puis mélangée à l'image par un module 10 de transformation de l'image appliquant aux pixels de l'image une transformation dépendant d'un échantillon respectif de la fonction résultante.
La transformation appliquée aux pixels de l'image peut être par exemple une modification de la luminance par ajout des échantillons de la fonction résultante obtenue par le déphaseur ou une rotation des composantes couleur de l'image, ou toute autre opération sur les composantes élémentaires des pixels. Selon l'application de l'invention à l'insertion de filigranes ou au brouillage d'images, l'amplitude de la transformation sera choisie plus ou moins faible.
Dans le cas de l'insertion de filigranes, on peut prévoir d'appliquer un prétraitement 8 à l'image avant sa transformation, afin de réduire la dynamique de variation des valeurs des pixels, pour éviter une saturation au moment de l'insertion de la marque par le module 10 de transformation. Ainsi, si chaque composante couleur des pixels est codée de 0 à 255 (sur 8 bits), ce prétraitement peut consister à convertir les valeurs des composantes des pixels pour qu'elles soient comprises entre 16 et 235, par exemple.
Les paramètres Le et Lb correspondent de préférence à un nombre entier de symboles dans la marque à insérer dans l'image. Toutefois, dans le cas contraire, on peut choisir de compléter chaque ligne de l'image par un symbole particulier ou de répéter le dernier symbole de la marque jusqu'à la fin de la ligne.
La figure 3 représente un dispositif permettant d'extraire une marque d'une image ou une séquence d'images. Ce dispositif comprend un module 21 d'extraction des paramètres de l'image produisant à partir de l'image marquée des signaux de synchronisation permettant de repérer les lignes et les pixels de l'image, ainsi que les marques de début et de fin du message inséré, et s'il s'agit d'une séquence d'images, des signaux de synchronisation permettant de repérer
les images de la séquence.
Les signaux de synchronisation pixel et ligne sont appliqués à un générateur 22 de fonctions orthogonales qui est analogue à celui utilisé dans le dispositif représenté sur la figure 2.
L'image marquée est appliquée à un module 23 recevant les fonctions orthogonales et extrayant pixel par pixel les symboles du message en multipliant les fonctions orthogonales générées par le module 22 respectivement aux pixels de l'image. Les symboles du message obtenus sont accumulés dans un accumulateur local 23 synchronisé sur la fréquence de la marque produite par le module d'extraction 21 et recevant les paramètres Le et Lb définissant les nombres de lignes de l'image sur lesquelles la même loi de permutation et la même séquence de brassage sont appliquées.
Les signaux de synchronisation ligne, image et marque sont appliqués à un module 25 de débrassage et de désentrelacement recevant en entrée la séquence de brassage et la loi de permutation utilisées par le dispositif représenté sur la figure 2. Le module 25 effectue un traitement inverse à celui effectué par les modules 2, 5 et 7 du dispositif représenté sur la figure 2, de manière à obtenir les bits du mot inséré dans l'image, qui sont accumulés dans un accumulateur 26 délivrant finalement le mot inséré dans l'image.
La figure 4 représente un dispositif permettant de décoder une image embrouillée. Ce dispositif est identique à celui représenté sur la figure 2, mis à part que le module 4 est supprimé, le module 1 est remplacé par le module 21 du dispositif de la figure 3 qui extrait, non pas un signal de synchronisation image, mais un signal de synchronisation marque, pour détecter dans l'image des repères de début et de fin de marque, et le module de transformation 10 de l'image est remplacé par un module 31 d'extraction des pixels de l'image qui effectue une transformation inverse à celle appliquée par le module 10 pour obtenir les pixels de l'image d'origine.
Dans la variante du dispositif d'insertion représenté sur la figure 5, on peut effectuer appliquer le signal de marquage obtenu en sortie de l'opérateur 5 à un module de codage 41 pour générer un signal de marquage distinct pour chacune des composantes couleur de l'image. Les signaux de marquage obtenus sont appliqués à l'entrée d'un déphaseur 42 respectif produisant des fonctions
déphasées pour chaque fonction de base et pour chacune des composantes couleur de l'image. Ces fonctions sont ensuite superposées par un sommateur respectif 44 pour chaque composante couleur et appliquées en entrée d'un module de transformation 43 qui combine les fonctions superposées respectivement aux composantes couleur des pixels de l'image.
Dans l'application à l'insertion de filigranes, le codage réalisé par le module de 41 est de préférence choisi pour introduire davantage de redondance entre les composantes couleur de l'image, sur la marque insérée dans l'image. Ce codage est ainsi par exemple de type convolutif 1/3. Dans l'application au brouillage des images, le codage réalisé par le module 41 est de préférence choisi pour au contraire supprimer les redondances entre les marquages insérés respectivement dans les composantes couleur de l'image.
La figure 6 représente un dispositif d'extraction d'une marque insérée à l'aide du dispositif représenté sur la figure 5. Par rapport au dispositif représenté sur la figure 3, ce dispositif comprend un module d'extraction des symboles du message qui délivre des symboles de message pour chacune des composantes couleur des pixels de l'image. Ce dispositif d'extraction comprend ensuite une chaîne de traitement pour chaque composante couleur comportant un module d'accumulation locale 52, un module de débrassage et de désentrelacement et un module d'accumulation 54, ces modules étant identiques à ceux du dispositif représenté sur la figure 3. Ce dispositif d'extraction comprend en outre un module de décodage 55, réalisant une fonction inverse à celle du module 41, de manière à restituer le mot de marquage à partir des mots de marquage accumulés pour chaque composante couleur par les modules d'accumulation 54. Si le codage appliqué par le module de codage 41 est de type convolutif 1/3, le décodeur 55 peut être par exemple du type décodeur de Viterbi.
La figure 7 représente un dispositif permettant de décoder une image embrouillée à l'aide du dispositif d'insertion représenté sur la figure 5. Ce dispositif est analogue à celui représenté sur la figure 4 et présente les mêmes modifications que celles réalisées sur le dispositif représenté sur la figure 2 pour obtenir celui de la figure 5. En outre, le module 31 d'extraction des pixels de l'image du dispositif de la figure 4 est remplacé par un module d'extraction 45 qui extrait de l'image embrouillée, les fonctions superposées obtenues par les sommateurs 44 respectivement pour les composantes couleur.