FR2819331A1 - Procede et dispositif de traitement et de marquage d'un ensemble de coefficients representatifs d'une image numerique - Google Patents

Procede et dispositif de traitement et de marquage d'un ensemble de coefficients representatifs d'une image numerique Download PDF

Info

Publication number
FR2819331A1
FR2819331A1 FR0100266A FR0100266A FR2819331A1 FR 2819331 A1 FR2819331 A1 FR 2819331A1 FR 0100266 A FR0100266 A FR 0100266A FR 0100266 A FR0100266 A FR 0100266A FR 2819331 A1 FR2819331 A1 FR 2819331A1
Authority
FR
France
Prior art keywords
blocks
marking
coefficients
marking information
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0100266A
Other languages
English (en)
Other versions
FR2819331B1 (fr
Inventor
Ioana Donescu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0100266A priority Critical patent/FR2819331B1/fr
Priority to US10/041,576 priority patent/US6990213B2/en
Publication of FR2819331A1 publication Critical patent/FR2819331A1/fr
Application granted granted Critical
Publication of FR2819331B1 publication Critical patent/FR2819331B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • G06T1/0064Geometric transfor invariant watermarking, e.g. affine transform invariant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0052Embedding of the watermark in the frequency domain

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé de traitement d'un ensemble de coefficients représentatifs d'une image numérique (300) en vue d'une insertion d'au moins une information de marquage dans ladite image, cette image étant susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs, ledit procédé étant caractérisé en ce qu'il comporte une étape de détermination (E220) parmi au moins une partie des dits blocs, d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage; et une étape d'ordonnancement (E230) selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles, dans un ordre invariant par rapport à au moins une des dites transformations géométriques.

Description

La présente invention concerne un procédé et un dispositif de traitement
d'un ensemble de coefficients représentatifs d'une image numérique
en vue d'une insertion d'au moins une information de marquage.
Plus précisément, I'invention concerne ceux de ces procédés et dispositifs pour lesquels la méthode d'insertion de l'information de marquage est dite robuste, c'est à dire que la marque insérée doit être décodable après
diverses distorsions subies par l'image.
Plus particulièrement encore, I'invention s'intéresse à la robustesse visà-vis d'un groupe de transformations géométriques, qui sont des combinaisons de rotation de multiples de 90 degrés et de symétries d'axe
vertical.
On connaît par le brevet américain délivré sous le numéro US5.748.783, une méthode de marquage d'image, représentée par un ensemble de coefficients répartis en blocs, qui est robuste aux rotations et aux symétries. La marque qui est insérée est formée de cercles disposés en rosace et se superposant partiellement. Cette marque peut, par cette méthode, être
retrouvée après que l'image a subi une rotation de 90 par exemple.
Malheureusement, cette méthode n'est pas adaptable à des méthodes de marquage de type "étalement de spectre", o chaque bit d'information de marquage est inséré par addition d'un signal pseudo-aléatoire
sur tous les coefficients d'un bloc.
Le marquage robuste d'une image numérique par une méthode de type "étalement de spectre" pose en effet un problème particulier qui va maintenant être décrit. Comme rappelé ci-dessus, le marquage par "étalement de spectre", tel que décrit par exemple dans la demande de brevet EP1.043.687 de la société Canon publiée le 11 octobre 2000, permet, par l'insertion d'un signal de marquage au codeur, d'insérer un seul bit d'information de marquage dans un bloc de coefficients. Pour insérer un plus grand nombre de bits d'information dans l'image numérique, en particulier lorsqu'on souhaite avoir un code de marquage C composé de c bits Cl, C2, Cc, indiquant, par exemple, le nom du propriétaire de l'image, il est nécessaire de réitérer le procédé d'insertion autant de fois qu'il y a de bits d'information à insérer. Il est donc nécessaire de choisir un nombre correspondant de blocs de coefficients adaptés à être marqués par chacun des bits d'information de marquage. De façon plus précise, par exemple, un premier bloc Bi recevra un premier bit b1 en fonction du premier bit Cl du code de marquage C, un deuxième bloc B2 recevra un deuxième bit b2 en fonction du deuxième bit C2 du code de marquage C, et ainsi de suite jusqu'au dernier bloc Bc qui recevra un dernier bit bc en fonction du bit Cc du code de marquage. De façon connue, le décodeur est capable, de façon statistique, et si les blocs BI ont été convenablement choisis, de retrouver le bit bi fonction du bit Ci du code de marquage C inséré dans le bloc B'. Cependant, pour que la méthode de marquage soit qualifiée de robuste, il faut que le décodeur soit également capable de remettre les bits décodés Ci du code de marquage dans l'ordre original des bits du code de marquage C, et ce, même après que l'image a subi une transformation géométrique. Autrement dit, le décodeur doit pouvoir
retrouver l'ordre dans lequel les blocs de coefficients BI ont été marqués.
Toutefois, les méthodes connues ne permettent pas de retrouver cet ordre.
En recherchant un procédé de marquage d'une image qui soit robuste vis-àvis d'un ensemble de transformations géométriques, la demanderesse s'est aperçue qu'il serait intéressant de trouver un procédé de traitement de l'image préalable au marquage, qui permette, lorsque l'image
marquée est ultérieurement décodée, de retrouver l'ordre indiqué cidessus.
La présente invention a ainsi pour objet, un procédé de traitement d'un ensemble de coefficients représentatifs d'une image numérique en vue d'une insertion d'au moins une information de marquage dans ladite image, cette image étant susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs, ledit procédé étant caractérisé en ce qu'il comporte les étapes suivantes: détermination parmi au moins une partie des dits blocs, d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage; et - ordonnancement selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles, dans un ordre invariant
par rapport à au moins une des dites transformations géométriques.
Corrélativement, I'invention a pour objet un dispositif de traitement d'un ensemble de coefficients représentatifs d'une image numérique en vue d'une insertion d'au moins une information de marquage dans ladite image, cette image étant susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs, ledit dispositif étant caractérisé en ce qu'il comporte: - des moyens de détermination parmi au moins une partie des dits blocs, d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage; et - des moyens d'ordonnancement selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles, dans un ordre invariant par rapport à au moins une des dites transformations
géométriques.
L'invention permet ainsi de préparer et d'ordonner un certain nombre de blocs destinés à être marqués par au moins une information de marquage, avec l'assurance que l'ordre de ces blocs pourra être retrouvé de façon non ambiguë même si l'image a subi au moins une desdites transformations
géométriques.
Selon une caractéristique, lesdits blocs de coefficients représentatifs d'une image numérique correspondent aux sous-bandes de fréquence d'une
décomposition en ondelettes de ladite image numérique.
Ainsi, I'ordonnancement des blocs peut se faire en parallèle d'une compression de l'image numérique en ondelettes. L'invention a également pour objet un procédé de marquage d'un ensemble de coefficients représentatifs d'une image numérique qui est susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs, ledit procédé étant caractérisé en ce qu'il comporte les étapes suivantes: - détermination d'un ensemble de blocs dits admissibles et ordonnancement selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles, dans un ordre invariant par rapport à au moins une des dites transformations géométriques, selon le procédé de traitement brièvement exposé ci-dessus; et - insertion d'au moins une information de marquage, pour au moins certains blocs de ladite au moins une partie dudit ensemble de blocs admissibles, ladite au moins une information de marquage étant invariante par
rapport à au moins une des dites transformations géométriques.
Corrélativement, I'invention vise un dispositif de marquage d'un ensemble de coefficients représentatifs d'une image numérique qui est susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs, ledit dispositif étant caractérisé en ce qu'il comporte: - des moyens de détermination parmi au moins une partie des dits blocs, d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage; - des moyens d'ordonnancement selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles, dans un ordre invariant par rapport à au moins une des dites transformations géométriques; et - des moyens d'insertion d'au moins une information de marquage, pour au moins certains blocs de ladite au moins une partie dudit ensemble de blocs admissibles, ladite au moins une information de marquage étant
invariante par rapport à au moins une des dites transformations géométriques.
Ainsi, l'invention permet de marquer les blocs ordonnés conformément au traitement selon l'invention avec une information de
marquage elle-même invariante par rapport aux transformations géométriques.
La combinaison du traitement et du marquage permet ainsi de réaliser un marquage robuste par rapport à ces transformations géométriques, ce
marquage étant constitué de plusieurs informations de marquage.
Selon une caractéristique, I'insertion de ladite au moins une information de marquage pour un bloc admissible correspond à l'étalement d'un signal pseudo-aléatoire sur l'ensemble des coefficients dudit bloc, ce
signal étant généré à partir d'une clef spécifique audit bloc.
Cette caractéristique permet ainsi d'augmenter considérablement la sécurité du marquage, sans pour autant dégrader l'aspect de l'image numérique. L'invention vise également un procédé de décodage d'un code de marquage constitué d'au moins une information de marquage insérée dans un ensemble de coefficients représentatifs d'une image numérique, cette image étant susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs, ledit procédé étant caractérisé en ce qu'il comporte les étapes suivantes: - détermination parmi au moins une partie des dits blocs, d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage; - détermination d'un ensemble de blocs dits marqués parmi ledit ensemble de blocs admissibles, lesdits blocs marqués ayant reçu ladite au moins une information de marquage; - décodage pour chacun desdits blocs marqués de ladite au moins une information de marquage; - ordonnancement selon au moins un critère prédéterminé desdits blocs marqués, dans un ordre invariant par rapport à au moins une des dites transformations géométriques; et - reconstitution dudit code de marquage par ordonnancement desdites informations de marquage en fonction dudit ordonnancement desdits
blocs marqués.
Corrélativement, I'invention vise aussi un dispositif de décodage d'un code de marquage constitué d'au moins une information de marquage insérée dans un ensemble de coefficients représentatifs d'une image numérique, cette image étant susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs, ledit dispositif étant caractérisé en ce qu'il comporte: - des moyens de détermination parmi au moins une partie des dits blocs, d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage; - des moyens de détermination d'un ensemble de blocs dits marqués parmi ledit ensemble de blocs admissibles, lesdits blocs marqués ayant reçu ladite au moins une information de marquage; - des moyens de décodage pour chacun desdits blocs marqués de ladite au moins une information de marquage; - des moyens d'ordonnancement selon au moins un critère prédéterminé desdits blocs marqués, dans un ordre invariant par rapport à au moins une des dites transformations géométriques; et - des moyens de reconstitution dudit code de marquage par ordonnancement desdites informations de marquage en fonction dudit
ordonnancement desdits blocs marqués.
L'invention permet ainsi à un décodeur de retrouver un marquage constitué de plusieurs informations de marquage insérées dans une image numérique, après que celle ci a subi au moins une desdites transformations
géométriques.
L'invention vise en outre un appareil programmable comportant un dispositif de traitement, de marquage ou de décodage tel que brièvement
exposé ci-dessus.
L'invention vise par ailleurs un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un ordinateur ou un processeur contenant des instructions d'un programme d'ordinateur P1, caractérisé en ce qu'il permet la mise en oeuvre du procédé de traitement
brièvement exposé ci-dessus.
L'invention vise aussi un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un ordinateur ou un processeur contenant des instructions d'un programme d'ordinateur P2, caractérisé en ce qu'il permet la mise en oeuvre du procédé de marquage
brièvement exposé ci-dessus.
L'invention vise par ailleurs un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un ordinateur ou un processeur contenant des instructions d'un programme d'ordinateur P3, caractérisé en ce qu'il permet la mise en oeuvre du procédé de décodage
brièvement exposé ci-dessus.
L'invention vise également un produit "programme d'ordinateur" ("computer program product" en terminologie anglo-saxonne) chargeable dans un appareil programmable, comportant des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé de traitement, du procédé de marquage ou du procédé de décodage, tels que brièvement exposés ci-dessus, lorsque ledit "programme d'ordinateur" est
exécuté par un appareil programmable.
On comprendra mieux l'invention à la lumière de la description qui va
suivre, donnée à titre d'exemple et faite en référence aux figures annexées dans lesquelles: - la figure 1 représente un tableau d'un ensemble de transformations géométriques considérées par l'invention; - la figure 2 représente les principales étapes d'un procédé de traitement d'une image numérique en vue d'un marquage robuste à l'égard d'un ensemble de transformations géométriques selon l'invention; - les figures 3a et 3c représentent respectivement une image numérique et sa symétrie par rapport à un axe horizontal; - les figures 3b et 3d représentent des transformées en ondelettes respectives des figures 3a et 3c; - la figure 4 représente les principales étapes d'ordonnancement du procédé de traitement selon l'invention; - la figure 5 représente un ensemble de blocs de coefficients à ordonner de l'image transformée de la figure 3b, selon au moins un critère prédéterminé, dans un ordre invariant par rapport à un ensemble de transformations géométriques; - la figure 6 représente les principales étapes de marquage du procédé de marquage selon l'invention; - la figure 7 représente les principales étapes du procédé de décodage d'un code de marquage inséré dans une image numérique selon l'invention; - la figure 8 représente schématiquement un ordinateur adapté à mettre en oeuvre les procédés de traitement et de marquage d'une image numérique selon l'invention; et - la figure 9 représente schématiquement un ordinateur adapté à mettre en oeuvre le procédé de décodage du code de marquage d'une image
numérique selon l'invention.
Le tableau de la figure I détaille un exemple d'un ensemble des transformations géométriques considérées par l'invention. On constate effectivement que ces transformations forment un groupe de transformations au sens mathématique du terme, c'est à dire que n'importe quelle transformation obtenue par combinaison de ces transformations est une transformation du tableau. Sur chaque ligne du tableau, on trouve dans la colonne de gauche le nom de l'une de ces transformations et, dans la colonne de droite, la matrice de transformation correspondant à cette transformation, dans un repère centré par rapport à un point invariant par rapport au groupe
des transformations.
Le procédé de traitement selon l'invention comporte des étapes E210 à E230 (figure 2) et des étapes E410 à E460 (figure 4) mises en oeuvre lors de l'exécution d'une ou plusieurs séquences d'instructions d'un programme d'ordinateur P1. Comme illustré à la figure 2, de manière connue dans le domaine de l'insertion d'un signal de marquage dans une image numérique 300, une transformation spectrale ou spatio-fréquentielle est appliquée à I'image à marquer 300 lors d'une première étape E210. On obtient ainsi une représentation de l'image dans un domaine spectral ou spatio- fréquentiel. Dans cet exemple, on utilise une transformation spatio- fréquentielle basée sur une décomposition en ondelettes classique de type DWT (en anglais "Discrete Wavelet Transform") qui permet d'obtenir des coefficients hybrides, c'est à dire des coefficients spectraux également localisés dans le plan de l'image dans le
domaine spatial.
Un schéma de décomposition en ondelettes classique d'une image
300 illustré par les figures 3a et 3b est maintenant décrit.
L'image 300 de la figure 3a est constituée d'une suite d'échantillons numériques. L'image 300 est par exemple représentée par une suite d'octets, chaque valeur d'octet représentant un pixel de l'image 300, qui peut être une
image en noir et blanc, à 256 niveaux de gris.
Les moyens de décomposition spectrale multi-résolution sont constitués d'un circuit de décomposition en sous-bandes ou circuit d'analyse, formé d'un ensemble de filtres d'analyse, respectivement associés à des décimateurs par deux. Ce circuit de décomposition filtre le signal d'image 300 selon deux directions, en sous-bandes de basses fréquences et de hautes fréquences spatiales. Le circuit comporte plusieurs blocs successifs d'analyse pour décomposer l'image 300 en sous-bandes selon plusieurs niveaux de résolution. A titre d'exemple, et comme illustré à la figure 3b, I'image 300 est décomposée ici en sous-bandes à un niveau de décomposition maximal égal à
3 (,max=3).
Chacune des sous-bandes est caractérisée par son niveau de
décomposition (X) et son orientation (0).
Un premier bloc d'analyse reçoit le signal d'image 300 et le filtre à travers deux filtres numériques respectivement passe-bas et passe-haut, selon une première direction, par exemple horizontale. Après passage dans des décimateurs par deux, les signaux filtrés résultants sont à leur tour filtrés par deux filtres respectivement passe-bas et passe-haut, selon une seconde direction, par exemple verticale. Chaque signal est à nouveau passé dans un décimateur par deux. On obtient alors en sortie de ce premier bloc d'analyse, quatre sous-bandes LL1 (X=1, 0=0), LH1 (X=1, 0=2), HL1 (X=1, 0=1) et HH1
(X=1, 0=3) de résolution la plus élevée dans la décomposition.
La sous-bande LL1 comporte les composantes de basse fréquence selon les deux directions du signal d'image 300. La sous-bande LH1 comporte les composantes de basse fréquence selon une première direction et de haute fréquence selon une seconde direction du signal image 300. La sous-bande HLI comporte les composantes de haute fréquence selon la première direction et les composantes de basse fréquence selon la seconde direction. Enfin, la sous-bande HH1 comporte les composantes de haute fréquence selon les
deux directions.
Un second bloc d'analyse filtre à son tour la sous-bande de basses fréquences LL1 pour fournir de la même manière quatre sous-bandes LL2 (X=2, 0=0), LH2 (XL=2, 0=2), HL2 (X=2, 0=1) et HH2 (X=2, 0=3) de niveau de résolution intermédiaire dans la décomposition. Enfin, dans cet exemple, la sous-bande LL2 est à son tour analysée par un troisième bloc d'analyse pour fournir quatre sous-bandes LL3 (X=3, 0=0), LH3 (X=3, 0=2), HL3 (X=3, 0=1) et
HH3 (X=3, 0=3) de résolution la plus faible dans cette décomposition.
On obtient ainsi dix sous-bandes et trois niveaux de résolution. Bien
entendu, le nombre de niveaux de résolution, et par conséquent de sous-
bandes, peut être choisi différemment, et par exemple être égal à quatre
niveaux de résolution avec treize sous-bandes.
Certaines sous-bandes (LHn) contiennent les contours horizontaux (filtrage passe bas horizontal (lignes) et passe-haut vertical (colonnes)) à chaque niveau de décomposition. D'autres sous-bandes (HLn) contiennent les contours verticaux (filtrage passe-haut par lignes et passe-bas par colonnes) à chaque niveau de décomposition. Enfin, d'autres sous-bandes (HHn) contiennent les contours diagonaux ce qui correspond à un filtrage passe-haut dans les deux directions. La sous-bande de plus basse fréquence LL3 contient les résultats des filtrages passe-bas dans les deux directions pour trois niveaux de décomposition. Elle contient une version filtrée et sous-échantillonnée de
l'image originale et est appelée sous-bande d'approximation. Les autres sous-
bandes sont des sous-bandes de détail.
La figure 3d montre la décomposition de l'image 310 représentée à la figure 3c et qui correspond à l'image 300 après qu'elle a subi une symétrie d'axe horizontal. Cette symétrie d'axe horizontal correspond à la composition de la symétrie d'axe vertical notée A10 et de la rotation de 180 degrés notée A20 selon le tableau de la figure 1. Il apparaît clairement sur la figure 3d que la transformation géométrique est appliquée dans chacune des sous bandes. A titre d'exemple, la sous-bande d'approximation LL'3 correspondant à l'image 310, est bien obtenue par une symétrie d'axe horizontal de la sous-bande LL3 correspondant à l'image 300. Notons de plus que, lorsqu'il s'agit d'une rotation
d'un nombre impair de fois 90 degrés, il faut également intervertir les sous-
bandes LH et HL puisque les contours verticaux deviennent les contours
horizontaux et vice versa.
Notons ici que la décomposition en ondelettes pourrait être omise.
Elle peut-être requise par la méthode de marquage appliquée ou par d'autres considérations, comme par exemple la nécessité d'obtenir une compression de
l'image en même temps que le marquage.
De retour à la figure 2, l'étape E210, est suivie par deux étapes E220 et E230 respectivement de sélection et d'ordonnancement de supports admissibles. L'étape E220 réalise la sélection de supports admissibles pour l'insertion d'au moins une information de marquage, par exemple un ensemble
de blocs de coefficients B1,..., BN. Lors de la description du marquage par une
méthode "d'étalement de spectre" qui va suivre, chaque bloc de coefficients B'
est dans ce cas susceptible d'être modifié pour encoder un bit d'information.
Comme décrit précédemment, lorsque l'image 300 a subi une décomposition en ondelettes classique, il peut par exemple être avantageux de retenir les sous-bandes de fréquence telles que la probabilité de retrouver un bit de marquage inséré dans ces sous-bandes est supérieure à un seuil prédéterminé. Cette méthode est décrite dans la demande de brevet publiée
sous le numéro EP1.043.687.
L'étape E230, consécutive à l'étape E220 de la figure 2, concerne I'ordonnancement, selon au moins un critère prédéterminé, d'au moins une partie des blocs admissibles sélectionnés à l'étape E220. Cette étape E230 va
maintenant être détaillée en référence à la figure 4.
Quoiqu'il en soit, I'ordonnancement des supports admissibles {B1, BN} doit être fait de telle manière que cet ordonnancement soit effectué de la même manière au codeur et au décodeur, de façon invariante par rapport aux transformations géométriques représentées dans le tableau de la figure 1 et par rapport aux combinaisons de ces transformations géométriques. Il convient de noter que les éventuelles transformations géométriques subies par
l'image numérique ne sont pas connues du décodeur.
Dans le mode de réalisation préféré décrit ici, l'ordonnancement se fait tout d'abord au cours des étapes E410 et E420 selon un ensemble de g critères {G1,... Gg} appelés "critères géométriques", qui sont indépendants des
coefficients de l'image numérique et du signal de marquage.
Parmi ces critères, pourront être retenus, par exemple, pour ordonner des blocs de coefficients correspondant aux sous bandes de fréquences d'une décomposition en ondelettes classique d'une image numérique, la taille du bloc considéré G1, le type de sous-bande G2, la distance du centre du bloc au centre de la sous-bande G3, et l'indice du niveau de
résolution dans la décomposition en ondelettes G4, correspondant à la valeur;.
décrite en référence à la figure 3b. Pour le critère G3, la distance du centre du
bloc au centre de la sous-bande est obtenue par le théorème de Pythagore.
Pour le critère G2, on distinguera les sous-bandes de type LH ou HL, d'une
part, et les sous-bandes de type HH d'autre part.
L'ordonnancement commence par une première étape E410 de
calcul des critères géométriques pour les blocs admissibles.
Le tableau 1 ci dessous regroupe les valeurs prises pour ces
différents critères pour les blocs B à B5 de l'image 300 représentée figure 5.
Ces valeurs sont maintenant explicitées pour le bloc B'.
Premièrement, en ce qui concerne le critère Gl, on trouve que le bloc B1 est un bloc de 128 pixels de côté. Comme décrit précédemment, ce bloc correspond à une sous bande de fréquence de niveau 1, de type LH ou HL ce qui donne les valeurs des critères G2 et G4. Bien entendu, la distance du centre du bloc B1 au centre de la sous-bande est 0. Les valeurs pour les autres blocs sont obtenues de façon similaire. Par la suite, nous adopterons l'écriture G'k pour désigner la valeur du critère Gk pour le bloc Bi. Par exemple, G14 = 1 Bi B2 B3 B4 B5
G. 128*128 64*64 64*64 32*32 64*64
G2 (LH ou HL) (LH ou HL) (LH ou HL) (LH ou HL) (HH)
G3 O (322+322)Y (322+322) (162+482) (322+322)
G4 1 1 1 1 1
Tableau 1
A l'issue de l'étape E410, le procédé effectue une étape E420
d'ordonnancement des blocs admissibles selon les critères géométriques.
Cette étape commence par ordonner les blocs B1 à B5 selon un premier critère
géométrique, par exemple G1.
En adoptant la convention suivante: Pour G1: Bi < Bi si et seulement si G1i < G1i et B' = Bi si et seulement si G1i = G1i,
on obtient en référence au tableau 1: B4 < B2 = B3 = B5< B1.
Pour les blocs non ordonnés selon le critère géométrique G1, le procédé selon l'invention essaie d'ordonner les blocs selon un deuxième critère
géométrique, par exemple G2.
En supposant que pour G2, Bi < Bi si et seulement si G2i =(HH) et G2J
2 3
=(LH ou HL), on obtient B5 < B = B. Soit, à l'issue de l'étape E420 d'ordonnancement selon les critères G1 et G2:
B4< B5< B2= B3< B1
L'ordonnancement selon les critères géométriques de l'étape E420 se poursuit de la même façon avec les critères géométriques G3 et G4. Cet ordonnancement se termine soit lorsque l'ensemble des blocs admissibles est entièrement ordonné, soit lorsque tous les g critères géométriques ont été utilisés. Dans l'exemple du tableau 1, les valeurs prises pour les blocs B2 et B3 sont identiques pour chacun des critères G1 à G4. Ces deux blocs ne peuvent
donc pas être ordonnés selon ces critères.
Le procédé effectue alors, à l'étape E430, un test au cours duquel il vérifie si tous les blocs admissibles ont été ordonnés selon les critères géométriques. Si tel est le cas, le résultat du test E430 est positif et
l'ordonnancement est terminé.
En revanche, dans le cas o certains blocs ne sont pas ordonnés, le résultat du test E430 est négatif et le procédé effectue alors, pour les blocs non
ordonnés, un ordonnancement selon un ensemble de critères de type "signal".
Un critère de type "signal" est tel que la valeur prise par un bloc pour ce critère
dépend des coefficients de ce bloc.
Le principe d'ordonnancement selon l'ensemble de critères de type "signal" est analogue à celui décrit pour l'ordonnancement selon les critères géométriques. Il se fait selon un certain nombre s de critères de type"signal" hiérarchisés. Cependant, il est important de noter que l'utilisation des critères de type "signal" est plus délicate que celle des critères géométriques. En effet, la valeur d'un critère de type "signal" est susceptible de varier si une distorsion, telle qu'une compression, par exemple, est appliquée à l'image. De même, le
marquage du bloc est susceptible de modifier la valeur d'un tel critère.
C'est pourquoi l'étape E440 consécutive à l'étape E430 calcule les valeurs prises par les blocs pour les critères de type "signal" en supposant que
les blocs seront marqués.
Dans le mode de réalisation préféré, o le marquage d'un bloc est effectué par étalement d'un bit égal à +1 ou -1 sur l'ensemble des coefficients du bloc, on calcule, au cours de l'étape E440, les valeurs prises par les blocs B' pour les critères de type "signal" Sk, en supposant, d'une part, I'insertion d'un bit +1 et, d'autre part, I'insertion d'un bit -1. Ces valeurs sont notées
respectivement Ski(+1) et Ski(-1).
En pratique, les critères de type "signal" sont liés à l'énergie du signal du bloc considéré, et sont tels que la variation de cette énergie par
étalement d'un bit dans l'ensemble des coefficients d'un bloc est faible.
Cependant, afin de s'assurer que l'ordre de deux blocs B' et Bi ordonnés selon un critère de type "signal" Sk reste inchangé après marquage, on ne choisit, à l'étape E450, de ne réaliser l'ordonnancement que lorsque les
valeurs Ski(+1) et Ski(+1) sont suffisamment éloignées.
En pratique, I'ordonnancement n'est effectué que lorsque la condition suivante est remplie: min I Sk'(b) - Sk(b') > Tk, b,b' E {-1,1}
Tk étant un seuil prédéterminé dépendant du critère de type "signal" Sk.
En supposant, par exemple, que les valeurs prises par les blocs B2 et B3 pour un critère S1 soient S12(+1)=50, S12(-1)=60, S13(+1)=200, S13(+1) =205, et que T1 = 80, alors on obtient: min 1 S12(b) - S,3(b')I = 140, b, b' E {-1,1} et les blocs B2 et B3 peuvent être ordonnés selon Si. En supposant que pour Si, (Bi < B1) si et seulement si max (Ski(+1), Ski(-1)) < min(Ski(+1), Ski(-1)), on
trouve B2 < B3 selon Si.
Le procédé d'ordonnancement se poursuit au cours de l'étape E450 pour tous les couples de blocs qui n'ont pas pu être ordonnés selon des critères géométriques à l'étape E420. Il se termine, soit lorsque tous les blocs admissibles sont ordonnés, soit lorsque tous les critères de type "signal" ont été utilisés. Le procédé se prépare alors à exécuter une étape E460 o les blocs non ordonnés sont rejetés. Le nombre m de blocs effectivement ordonnés, représente, comme nous allons le voir ci- dessous, la capacité de l'image. Dans le cas de l'exemple décrit ci- dessus, les blocs B2 et B3 non ordonnés par les critères géométriques ont été ordonnés selon le critère S1 et on obtient l'ordonnancement final:
B4 < B5 < B2 < B3 < B1
En supposant maintenant que l'on dispose d'un ensemble de m blocs {B1,..., Bm} admissibles et ordonnés, par exemple B1 >...> Bm, on va décrire en référence à la figure 6, un procédé de marquage de l'image
numérique conforme à l'invention.
Le procédé de marquage selon l'invention comporte des étapes E610 à E680 mises en oeuvre lors de l'exécution d'une séquence d'instructions
d'un programme d'ordinateur P2.
Le procédé de marquage décrit ici réalise une opération de marquage de l'image numérique 300 par un code de marquage C, ce code de
marquage étant composé de c bits d'information Cl, C2,..., Cc.
Comme précédemment décrit, le marquage par "étalement de spectre" permet d'insérer un bit d'information de marquage dans un bloc de coefficients. Les m blocs admissibles étant ordonnés de façon non ambiguë permettent donc d'insérer dans l'image un message de m bits. On dit dans ce
cas que la capacité de l'image est m.
Dans le cas o m est inférieur ou égal à c, il suffit par exemple
d'insérer un bit d'information Ci du code C dans chacun des i premiers blocs B'.
Dans le cas, au contraire, o la capacité m de l'image est insuffisante, il est par exemple envisageable de tronquer ou de comprimer le code de marquage C. Au cours de l'étape E610 de la figure 6, le procédé de marquage conforme à l'invention initialise un compteur r à 1. Puis, le procédé prévoit d'effectuer une étape de test E620 au cours de laquelle la variable r est comparée à la valeur m. Tant que la variable r est inférieure ou égale au nombre m de blocs admissibles et ordonnés, le test E620 permet d'effectuer
une boucle constituée des étapes E630 à E680.
Plus précisément, le résultat du test E620 est positif et le procédé prévoit d'effectuer les étapes E630 à E670 de marquage du bloc Br, décrites ultérieurement. A l'issue de ces étapes, le compteur r est incrémenté à l'étape E680 et le procédé prévoit à nouveau d'effectuer le test E620. Lorsque le résultat de ce test devient négatif, c'est-à-dire dès que r devient strictement
supérieur à m, le procédé de marquage se termine.
Dans le mode de réalisation décrit ici, I'insertion d'un bit d'information dans un bloc de coefficients est réalisé par ajout d'une séquence constituée de nombres pseudo-aléatoires sur l'ensemble des coefficients du bloc considéré. Ce procédé de marquage, par ailleurs décrit dans la demande de brevet publiée sous le numéro EP1.043.687 utilise une clef globale secrète K pour l'initialisation de la génération de ces nombres pseudo-aléatoires. Cette
clef secrète K est donc un paramètre d'entrée du procédé de marquage.
Etant rappelé que l'image marquée est susceptible de subir un ensemble de transformations géométriques, le marquage d'un bloc doit lui aussi être invariant par rapport à ces transformations géométriques. Le marquage invariant d'un bloc Br de coefficients admissibles va maintenant être
décrit en référence aux étapes E630 à E670 de la figure 6.
A l'étape E630 une clef K(Br) de marquage du bloc Br est calculée à partir de la clef globale secrète K. Il est en effet préférable, afin d'augmenter la sécurité du marquage, d'utiliser une clef dépendante du bloc. Puisque le décodeur doit également être capable de recalculer de façon non ambiguë cette clef K(Br) pour le bloc Br, on utilisera un algorithme de génération de K(Br) prenant en compte la clef globale secrète K, et également des paramètres invariants pour le bloc par rapport aux transformations géométriques du tableau
de la figure 1, telles que les valeurs des critères géométriques Gk.
Une fois cette clef K(Br) calculée, le procédé de marquage génère, à l'étape E640, une séquence pseudo-aléatoire {wr1,...,wrp} à partir de K(Br). De façon connue dans le domaine du codage par étalement de spectre, toute distribution connue et de moyenne nulle peut convenir. Les distributions les plus courantes sont la distribution uniforme sur [-1, 1] et la distribution
Gaussienne normalisée N(0,1).
Dans le cas o Br est un bloc de coefficients X;,j tels que 1 _<i <2P et 1 <j 2Q, le nombre p d'éléments pour la séquence aléatoire sera p= P * Q. Ces p coefficients, sont arrangés dans une matrice wr de P lignes et Q colonnes à l'étape E650, en choisissant, dans le cas d'une matrice rectangulaire de remplir la matrice selon la direction comportant le plus
d'éléments. Puis, à l'étape E660, une matrice Wr de taille 2Px2Q est construite.
Cette matrice est composée de la sous-matrice wr formée à l'étape E650 et des trois sous-matrices (wrV), (wrH) (wrV) correspondant respectivement aux
transposées verticale, horizontale et diagonale de wr.
r wrV Plus précisément: Wr wrH (w rH(wry)"i Par construction, la matrice Wr, également appelée porteuse, est invariante pour toute transformation géométrique donnée à la figure 1, ainsi que pour toute combinaison de ces transformations géométriques. On pourra
noter que la matrice Wr est symétrique lorsque P et Q sont identiques,.
Enfin, l'étape E670 est l'étape proprement dite d'insertion du bit br en
fonction du bit d'information Cr dans l'ensemble des coefficients du bloc Br.
De façon connue dans le domaine du marquage par étalement de spectre, et tel que décrit dans la demande de brevet numéro EP1.043.687, le bloc B'r correspondant au bloc Br marqué est un bloc de coefficients X'i,j tels que: 1 _<i <2P et 1 <j <2Q, et X,J = Xij + br rf- W - avec: br= 1 si Cr = 1 et br=-1 si Cr =0,
c% désignant une amplitude de pondération.
En résumé, la description précédente a permis d'expliciter un
procédé de traitement et plus particulièrement d'ordonnancement des blocs de coefficients d'une image numérique et un procédé de marquage par "étalement de spectre" de ces blocs qui sont tous deux invariants par rapport aux transformations géométriques de la figure 1. En combinant ces deux procédés,
on obtient un procédé de marquage robuste et particulièrement fiable.
On va maintenant décrire le procédé de décodage du code de
marquage selon l'invention, en référence à la figure 7.
Le procédé de décodage selon l'invention comporte des étapes E710 à E750 mises en oeuvre lors de l'exécution d'une séquence d'instructions
d'un programme d'ordinateur P3.
L'objectif de ce décodage est de retrouver le code de marquage C inséré dans l'image numérique 300 par le procédé de marquage dont l'algorithme est représenté à la figure 6, cette image ayant pu subir au moins
une transformation géométrique du tableau de la figure 1.
Au cours d'une première étape E710, une transformation spatio-
temporelle est appliquée à l'image à décoder 320. Cette étape E710 est similaire à l'étape E210 de la figure 2 et ne sera donc pas décrite une nouvelle
fois ici.
L'étape E710 est suivie par une étape E720 de sélection des supports admissibles, similaire à l'étape E220. Comme décrit précédemment, les supports admissibles sont les seuls supports susceptibles d'avoir été
marqués par un bit d'information de marquage.
Le procédé de décodage effectue ensuite une étape E730 de décodage de chacun de ces supports admissibles {B'1,..., B'N}. Cette étape permet de décoder de manière fiable un bit b'i fonction du bit du code de marquage C'i inséré dans le support B'i. Ce décodage est entièrement dépendant de la méthode de marquage appliquée au codeur. En pratique, dans le cas d'un codage par une méthode de type " étalement de spectre ", les
étapes E720 et E730 sont réalisées simultanément.
Dans le mode de réalisation préféré, ce décodage commence par
les étapes E630, E640, E650 et E660 déjà décrites en référence à la figure 6.
Plus précisément, il permet pour chaque bloc B'" de retrouver la porteuse pseudo-aléatoire W'". Un calcul de corrélation est ensuite effectué entre cette porteuse W'i et le bloc de coefficients B'" testé. Ce calcul, comme décrit dans la demande de brevet EP1.043.687, permet de retrouver pour chaque bloc B'", d'une part, s'il a été marqué ou non par un bit, et pour le cas o il a été marqué,
d'autre part, la valeur b', = {-1, +1} de ce bit.
On supposera par la suite que le résultat de cette étape E730 de décodage des supports admissibles {B'1,..., B'N} est le suivant: Pour 1 < i < 3 B'" marqué avec b'j = -1, Pour 4 < i < 5 B'i marqué avec b'j = +1,
Pour i > 5 B'i non marqué.
Le procédé de décodage comporte ensuite une étape E740 d'ordonnancement des supports identifiés marqués au cours de l'étape E730, c'est-à-dire pour les supports B'", avec 1 < i < 5 dans cet exemple. Cette étape
est similaire à celle de la figure E230 de la figure 2.
On supposera par la suite que l'ordonnancement réalisé à l'étape E740 donne, pour l'exemple décrit, le résultat suivant:
B'4 < B'5 < B'2 < B'3 < B'1
Le procédé de décodage comporte ensuite une étape E750 d'ordonnancement des bits décodés à l'étape E730 selon l'ordre des supports marqués obtenu à l'étape E740. En appliquant la correspondance C', = 1 pour b', = +1 et C'i = 0 pour b'j = -1, le code du message inséré par le codeur dans l'image 300 est reconstruit. De façon évidente, on obtient pour l'exemple décrit
ici le code de marquage C'=11000.
La présente invention concerne également un dispositif de traitement d'un ensemble de coefficients représentatifs d'une image numérique en vue d'une insertion d'au moins une information de marquage, cette image étant susceptible de subir un ensemble de transformations géométriques et
lesdits coefficients étant regroupés en blocs.
Ce dispositif comprend par exemple des moyens de transformation spatiofréquentielle, comme des filtres d'analyse associés à des décimateurs
par deux adaptés à réaliser une décomposition en ondelettes d'une image 300.
Il comporte également des moyens de détermination d'un ensemble de blocs dits admissibles adaptés à recevoir au moins une information de marquage. Ces moyens sont par exemple adaptés à calculer une probabilité de détectabilité de l'information de marquage dans un bloc, et à sélectionner les
blocs pour lesquels cette probabilité est importante.
Il comporte également des moyens d'ordonnancement selon au moins un critère prédéterminé, d'au moins une partie des blocs admissibles, dans un ordre invariant par rapport à au moins une transformation
géométrique.
Ces moyens sont par exemple adaptés à calculer, pour la partie des blocs admissibles, une valeur pour un ensemble de critères prédéterminés et à classer les blocs en fonction de ces valeurs. Ces moyens d'ordonnancement peuvent en particulier être intégrés dans un circuit mettant en oeuvre les étapes
d'ordonnancement décrites en référence à la figure 4.
Un tel dispositif peut être inclus dans tout système de traitement d'informations et en particulier d'images numériques, comme par exemple un
appareil photographique numérique, ou un scanner.
Ce dispositif peut en particulier être intégré dans un ordinateur 1000
tel qu'illustré à la figure 8 et qui constitue un appareil programmable.
Dans ce mode de réalisation, le procédé de traitement d'un ensemble de coefficients représentatifs d'une image numérique est mis en oeuvre sous la forme d'un programme d'ordinateur P1 associé à des éléments électroniques (en anglais "hardware") nécessaires à son stockage et à son exécution. Ce programme d'ordinateur comporte une ou plusieurs séquences d'instructions dont l'exécution par l'ordinateur permet la mise en oeuvre des étapes du procédé de traitement selon l'invention, dont l'algorithme est
représenté sur les figures 2 et 4.
Dans l'ordinateur représenté à la figure 8, les moyens mentionnés ci-
dessus du dispositif sont incorporés notamment, dans un microprocesseur 1001, une mémoire morte 1008 mémorisant un ou des programmes P1 pour mettre en oeuvre le procédé de traitement selon l'invention et une mémoire vive 1011 comportant des registres adaptés à mémoriser des variables modifiées
lors de l'exécution du ou des programmes.
Le microprocesseur 1001 est intégré à un ordinateur 1000 qui peut être connecté à différents périphériques, comme par exemple, une caméra numérique 1002. Cette caméra numérique 1002 permet notamment de fournir
des images à authentifier par insertion d'un signal de marquage.
Cet ordinateur 1000 comporte une interface de communication 1003 reliée à un réseau de communication 1004 pour recevoir éventuellement des
images à marquer.
L'ordinateur 1000 comporte en outre des moyens de stockage de documents, tels qu'un disque dur 1005, ou est adapté à coopérer au moyen d'un lecteur de disquettes 1006 avec des moyens de stockage de documents
amovibles tels que des disquettes 1007.
Ces moyens de stockage fixes ou amovibles peuvent comporter en outre le code du procédé de traitement conforme à l'invention, qui, une fois lu
par le microprocesseur 1001, sera stocké dans le disque dur 1005.
A titre de variante, le programme permettant au dispositif de traitement de mettre en oeuvre l'invention pourra être stocké dans la mémoire
* morte 1008 (ROM ou Read Only Memory en anglais).
Selon une autre variante, le programme pourra être reçu pour être stocké comme décrit précédemment par l'intermédiaire du réseau de
communication 1004.
L'ordinateur 1000 possède également un écran 1009 permettant par exemple de servir d'interface avec un opérateur à l'aide du clavier 1010 ou de
tout autre moyen.
Le microprocesseur 1001 (CPU) va exécuter les instructions relatives à la mise en oeuvre de l'invention. Lors de la mise sous tension, le ou les programmes sur lesquels est basé le procédé de traitement relatif à l'invention et qui sont stockés dans une mémoire non volatile, par exemple la mémoire morte 1008, sont transférés dans la mémoire vive 1011 (RAM ou Random Access Memory en anglais). Cette mémoire contiendra alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en
oeuvre de l'invention.
Cette mémoire vive 1011 comporte un ensemble de registres pour stockerles variables nécessaires à l'exécution du ou des programmes, et notamment un registre pour stocker les coefficients représentatifs de l'image numérique (300) sous forme de blocs, un registre pour stocker les valeurs Gik prises par certains blocs pour des critères géométriques, et un registre pour stocker les valeurs Sik(+1) et Sik(-1) prises pour certains de ces blocs pour des
critères de type "signal".
Un bus de communication 1012 permet la communication entre les
différents éléments de l'ordinateur 1000 et les périphériques.
L'invention concerne également un dispositif de marquage d'un ensemble de coefficients représentatifs d'une image numérique qui est susceptible de subir un ensemble de transformations géométriques, lesdits
coefficients étant regroupés en blocs.
Ce dispositif comporte en particulier des moyens de détermination et
d'ordonnancement tels que ceux décrits ci-dessus.
Il comporte également des moyens d'insertion d'au moins une information de marquage invariante par rapport à au moins une des dites transformations géométriques. Ces moyens sont par exemple adaptés à mettre en oeuvre les étapes du procédé de marquage décrites en référence à la figure 6. De tels moyens d'insertion peuvent en particulier être intégrés dans
I'ordinateur 1000 décrit précédemment.
Pour ce faire, le microprocesseur 1001 met en oeuvre un programme d'ordinateur P2 comportant plusieurs instructions dont l'exécution par le microprocesseur permet la mise en oeuvre des étapes du procédé de marquage selon l'invention, dont l'algorithme est représenté figure 6. Ce programme est par exemple stocké dans la mémoire morte 1008. D'autre part, la mémoire vive 1011 comporte un ensemble de registres pour stocker les variables nécessaires à l'exécution du programme de marquage, et notamment un registre pour stocker les coefficients représentatifs des blocs admissibles B', un registre pour stocker le code de marquage C, un registre pour stocker la clef K(Bi) dépendante du bloc en cours de marquage, un registre pour stocker la séquence pseudo-aléatoire {w1,..., wp} et un registre pour stocker la porteuse W. Enfin, I'invention concerne un dispositif de décodage d'un code de marquage constitué d'au moins une information de marquage insérée dans un ensemble de coefficients représentatifs d'une image numérique, cette image étant susceptible de subir un ensemble de transformations géométriques et
lesdits coefficients étant regroupés en blocs.
Ce dispositif comporte en particulier des moyens de détermination d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins
une information de marquage tel que précédemment décrit.
Il comporte également des moyens de détermination d'un ensemble de blocs dits marqués parmi les blocs admissibles, lesdits blocs marqués ayant
effectivement reçu ladite au moins une information de marquage.
Il comporte également des moyens de décodage de l'information de
marquage pour chacun desdits blocs marqués.
Ces deux derniers moyens peuvent être réalisés par un circuit mettant en oeuvre les instructions décrites en référence à l'étape E730 de la
figure 7, et détaillé dans la demande de brevet EP1.043.687.
Le dispositif de décodage comporte également des moyens d'ordonnancement selon au moins un critère prédéterminé tels que ceux du
dispositif de traitement déjà décrit plus haut.
Il comporte enfin des moyens de reconstitution du code de marquage par ordonnancement des informations de marquage en fonction de l'ordonnancement des blocs marqués. Ces moyens peuvent être réalisés par un circuit mettant en oeuvre les instructions décrites en référence à l'étape
E750 de la figure 7.
De façon générale, ce dispositif de décodage peut être inclus dans un appareil programmable identique à l'ordinateur 1000 de la figure 8 et qui est représenté sur la figure 9 par la référence notée 2000. Sur cette figure seules la mémoire morte 2008 et la mémoire vive
2011 diffèrent des éléments correspondants de l'ordinateur 1000 de la figure 8.
Les autres éléments de cette figure restant inchangés par rapport aux éléments correspondants de la figure 8, ils conservent leurs références et ne seront pas
à nouveau décrit.
Le microprocesseur 1001 met en oeuvre un programme d'ordinateur P3 comportant plusieurs instructions dont l'exécution par l'ordinateur 2000 permet la mise en oeuvre des étapes du procédé de décodage selon l'invention dont l'algorithme est représenté sur la figure 7. Ce programme est par exemple stocké dans la mémoire morte 2008. D'autre part, la mémoire vive 2011 comporte un ensemble de registres pour stocker les variables nécessaires à l'exécution du programme, et notamment: - un registre pour stocker les coefficients représentatifs des blocs de l'image numérique 320 à décoder; - un registre pour stocker les valeurs Gik prises par certains de ces blocs pour des critères géométriques; - un registre pour stocker les valeurs Sik(+1) et Sik(-1) prises pour certains de ces blocs pour des critères de type "signal"; - un registre pour stocker la clef K(B) dépendante d'un bloc en cours de décodage; - un registre pour stocker la séquence pseudo-aléatoire {wl,...,wp}; - un registre pour stocker la porteuse W; - un registre pour stocker, le cas échéant, une partie d'une information de marquage détectée dans ce bloc; et - un registre pour stocker le code de marquage C reconstitué à
partir de ces parties d'information de marquage.
Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire,
toute variante à la portée de l'homme du métier.

Claims (31)

REVENDICATIONS
1. Procédé de traitement d'un ensemble de coefficients (Xi,j) représentatifs d'une image numérique (300) en vue d'une insertion d'au moins une information de marquage (Wr) dans ladite image, cette image étant susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs (BI), ledit procédé étant caractérisé en ce qu'il comporte les étapes suivantes: - détermination (E220) parmi au moins une partie des dits blocs (Bi), d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage (Wr); et - ordonnancement (E230) selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles (B'), dans un ordre
invariant par rapport à au moins une des dites transformations géométriques.
2. Procédé selon la revendication 1, caractérisé en ce que ladite au moins une partie dudit ensemble de blocs admissibles est ordonnée, selon ledit au moins un critère prédéterminé, dans un ordre invariant par rapport à au moins une combinaison d'au moins certaines des dites transformations géométriques.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que l'ensemble des transformations géométriques comporte l'identité, les rotations de 90, 180 (A20) et 270 degrés, la symétrie d'axe vertical (A10), la symétrie d'axe vertical (A10) suivie d'une rotation de 90 degrés, la symétrie d'axe vertical suivie d'une rotation de 180 degrés et la symétrie d'axe vertical suivie d'une
rotation de 270 degrés.
4. Procédé selon l'une quelconque des revendications I à 3,
caractérisé en ce que l'étape d'ordonnancement (E230) de ladite au moins une partie dudit ensemble de blocs admissibles (BI) est effectuée selon au moins un critère géométrique (Gk) prédéterminé dont la valeur pour un bloc de
coefficients (Xi,j) est indépendante desdits coefficients de l'image.
5. Procédé selon l'une des quelconque des revendications 1 à 4,
caractérisé en ce que lesdits blocs (Bi) de coefficients représentatifs d'une image numérique correspondent aux sous-bandes de fréquence d'une
décomposition en ondelettes (DWT) de ladite image numérique.
6. Procédé selon les revendications 4 et 5, caractérisé en ce que
ledit critère géométrique (Gk) est choisi parmi la taille d'un bloc, son indice du niveau de résolution, son type de sous-bande et la distance de son centre par
rapport au centre de sa sous-bande.
7. Procédé selon l'une quelconque des revendications 1 à 6,
caractérisé en ce que l'étape d'ordonnancement (E230) de ladite au moins une partie dudit ensemble de blocs admissibles (BI) est effectuée selon au moins un critère prédéterminé (Sk) dont la valeur pour un bloc de coefficients (Xi,j)
dépend des coefficients dudit bloc.
8. Procédé selon la revendication 7, caractérisé en ce que l'étape d'ordonnancement (E230) de ladite au moins une partie dudit ensemble de blocs admissibles (BI) comporte notamment une évaluation des valeurs (S'k(+1), Sik(-1)) que prendrait ledit critère (Sk) lors de l'insertion de ladite au
moins une information de marquage (W').
9. Procédé selon les revendications 4 et 7, caractérisé en ce que
l'étape d'ordonnancement (E230) est effectuée selon un sous-ensemble de critères géométriques (Gk) avant d'être effectuée selon un sous-ensemble de critères (Sk) dont la valeur pour un bloc de coefficients (Xi,j) dépend des
coefficients dudit bloc.
10. Procédé de traitement selon l'une quelconque des
revendications 1 à 9, caractérisé en ce que lesdits blocs admissibles (Bi) sont
tels que la probabilité de détection de ladite au moins une information de
marquage reçue par ces blocs est supérieure à un seuil prédéterminé.
11. Procédé de marquage d'un ensemble de coefficients (Xi,j) représentatifs d'une image numérique (300) qui est susceptible de subir un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs (BI), ledit procédé étant caractérisé en ce qu'il comporte les étapes suivantes: - détermination (E220) d'un ensemble de blocs (Bi) dits admissibles et ordonnancement (E230) selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles, dans un ordre invariant par rapport à au moins une des dites transformations
géométriques conformément à l'une des revendications 1 à10; et
- insertion d'au moins une information de marquage (Wr), pour au moins certains blocs de ladite au moins une partie dudit ensemble de blocs admissibles, ladite au moins une information de marquage (Wr) étant invariante
par rapport à au moins une des dites transformations géométriques.
12. Procédé selon la revendication 11, caractérisé en ce que ladite au moins une information de marquage (Wr) est invariante par rapport à au moins une combinaison d'au moins certaines des dites transformations géométriques.
13. Procédé selon la revendication 11 ou 12, caractérisé en ce que l'insertion de ladite au moins une information de marquage (Wr) pour un bloc (Br) de ladite partie dudit ensemble de blocs admissibles correspond à l'étalement d'un signal pseudo-aléatoire dans l'ensemble des coefficients (Xij)
dudit bloc.
14. Procédé selon la revendication 13, caractérisé en ce que le signal pseudo-aléatoire étalé dans l'ensemble des coefficients d'un bloc est
dépendant dudit bloc.
15. Procédé selon la revendication 14, caractérisé en ce qu'il comporte une étape de génération du signal pseudo-aléatoire dépendant dudit bloc (Br) à partir d'une clef spécifique (K(Br)) audit bloc (Br) et qui est
dépendante d'une clef globale secrète (K).
16. Procédé de décodage d'un code de marquage (C') obtenu à partir d'au moins une information de marquage (W') insérée dans un ensemble de coefficients (X'I,j) représentatifs d'une image numérique (320), cette image (320) étant susceptible d'avoir subi un ensemble de transformations géométriques et lesdits coefficients étant regroupés en blocs (B'"), ledit procédé étant caractérisé en ce qu'il comporte les étapes suivantes: détermination (E720) parmi au moins une partie des dits blocs (B'"), d'un ensemble de blocs dits admissibles, adaptés à recevoir ladite au moins une information de marquage (W'i); - détermination d'un ensemble de blocs (B'i) dits marqués parmi ledit ensemble de blocs admissibles, lesdits blocs (B'i) marqués ayant reçu ladite au moins une information de marquage (W'); - décodage (E730) pour chacun desdits blocs marqués (B'i) de ladite au moins une information de marquage (W"); - ordonnancement (E740) selon au moins un critère prédéterminé desdits blocs marqués (B'), dans un ordre invariant par rapport à au moins une des dites transformations géométriques; et - reconstitution dudit code de marquage (C') par ordonnancement desdites informations de marquage (W') en fonction dudit ordonnancement
desdits blocs marqués.
17. Procédé selon la revendication 16, caractérisé en ce que lesdits blocs marqués (B'") sont ordonnés, selon ledit au moins un critère prédéterminé, dans un ordre invariant par rapport à au moins une combinaison
d'au moins certaines des dites transformations géométriques.
18. Procédé selon la revendication 16 ou 17, caractérisé en ce que ladite au moins une information de marquage (W'I) est invariante par rapport à
au moins une des dites transformations géométriques.
19. Procédé selon l'une quelconque des revendications 16 à 18,
caractérisé en ce que ladite au moins une information de marquage (W') est invariante par rapport à au moins une combinaison d'au moins certaines des
dites transformations géométriques.
20. Procédé selon l'une quelconque des revendications 16 à 19,
caractérisé en ce que lesdits blocs admissibles (X',j) sont tels que la probabilité de détection de ladite au moins une information de marquage reçue par ces
blocs est supérieure à un seuil prédéterminé.
21. Procédé selon l'une quelconque des revendications 16 à 20,
caractérisé en ce que la dite au moins une information de marquage (W'r) reçue par un bloc marqué (B'r) est un signal pseudo-aléatoire étalé dans
I'ensemble des coefficients (X'i,j) dudit bloc.
22. Procédé selon la revendication 21, caractérisé en ce que ledit signal pseudo-aléatoire étalé dans l'ensemble des coefficients d'un bloc
marqué est dépendant dudit bloc marqué.
23. Dispositif de traitement d'un ensemble de coefficients (Xi,j) représentatifs d'une image numérique (300) en vue d'une insertion d'au moins une information de marquage (Wr) dans ladite image, cette image (300) étant susceptible de subir un ensemble de transformations géométriques et lesdits coefficients (Xi,j) étant regroupés en blocs (Bi), ledit dispositif étant caractérisé en ce qu'il comporte: - des moyens de détermination parmi au moins une partie desdits blocs d'un ensemble de blocs admissibles (Bi), adaptés à recevoir ladite au moins une information de marquage (Wr); et - des moyens d'ordonnancement selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles (B'), dans un ordre invariant par rapport à au moins une des dites transformations géométriques.
24. Dispositif de traitement selon la revendication 23, caractérisé en ce que les moyens de détermination et d'ordonnancement sont incorporés dans: - un microprocesseur (1001); - une mémoire morte (1008) comportant au moins un programme (P1) pour traiter les coefficients (Xi,j); et - une mémoire vive (1011) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit au moins un
programme.
25. Dispositif de marquage d'un ensemble de coefficients (Xij) représentatifs d'une image numérique (300) qui est susceptible de subir un ensemble de transformations géométriques et lesdits coefficients (Xij) étant regroupés en blocs (Bi), ledit dispositif étant caractérisé en ce qu'il comporte: - des moyens de détermination parmi au moins une partie des dits blocs, d'un ensemble de blocs (BI) dits admissibles, adaptés à recevoir ladite au moins une information de marquage (Wr); - des moyens d'ordonnancement selon au moins un critère prédéterminé, d'au moins une partie dudit ensemble de blocs admissibles (B'), dans un ordre invariant par rapport à au moins une des dites transformations géométriques; et des moyens d'insertion d'au moins une information de marquage (Wr), pour au moins certains blocs (Br) de ladite au moins une partie dudit ensemble de blocs admissibles, ladite au moins une information de marquage (Wr) étant invariante par rapport à au moins une des dites transformations géométriques. -
26. Dispositif de marquage selon la revendication 25, caractérisé en ce que les moyens de détermination, d'ordonnancement et d'insertion sont incorporés dans: - un microprocesseur (1001); - une mémoire morte (1008) comportant au moins un programme (P2) pour marquer les coefficients (X,j); et - une mémoire vive (1011) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit au moins un programme.
27. Dispositif de décodage d'un code de marquage (C') constitué d'au moins une information de marquage (W'i) insérée dans un ensemble de coefficients (X'I,j) représentatifs d'une image numérique (320), cette image étant susceptible d'avoir subi un ensemble de transformations géométriques et lesdits coefficients (X'i, j) étant regroupés en blocs (B'i), ledit dispositif étant caractérisé en ce qu'il comporte: - des moyens de détermination parmi au moins une partie des dits blocs, d'un ensemble de blocs (B'") dits admissibles, adaptés à recevoir ladite au moins une information de marquage (W'i); - des moyens de détermination d'un ensemble de blocs (B'") dits marqués parmi ledit ensemble de blocs admissibles, lesdits blocs marqués ayant reçu ladite au moins une information de marquage (W'i); - des moyens de décodage pour chacun desdits blocs marqués de ladite au moins une information de marquage (W'"); - des moyens d'ordonnancement selon au moins un critère prédéterminé, desdits blocs marqués (B') dans un ordre invariant par rapport à au moins une des dites transformations géométriques; et - des moyens de reconstitution dudit code de marquage (C') par ordonnancement desdites informations de marquage (W') en fonction dudit
ordonnancement desdits blocs marqués (B'i).
28. Dispositif de décodage d'un code de marquage (C') selon la revendication 27, caractérisé en ce que les moyens de détermination d'un ensemble de blocs (B'") dits admissibles, de détermination d'un ensemble de blocs (B'") dits marqués, de décodage, et de reconstitution dudit code de marquage sont incorporés dans: - un microprocesseur (1001); - une mémoire morte (2008) comportant au moins un programme (P3) pour décoder le code de marquage (C'); et - une mémoire vive (2011) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit au moins un programme.
29. Appareil programmable, caractérisé en ce qu'il incorpore un
dispositif de traitement selon l'une quelconque des revendications 23 ou 24.
30. Appareil programmable, caractérisé en ce qu'il incorpore un
dispositif de marquage selon l'une quelconque des revendications 25 ou 26.
31. Appareil programmable, caractérisé en ce qu'il incorpore un
dispositif de décodage selon l'une quelconque des revendications 27 ou 28.
FR 01 00266 - revendications modifiées le 16 juillet 2001
FR0100266A 2001-01-10 2001-01-10 Procede et dispositif de traitement et de marquage d'un ensemble de coefficients representatifs d'une image numerique Expired - Fee Related FR2819331B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0100266A FR2819331B1 (fr) 2001-01-10 2001-01-10 Procede et dispositif de traitement et de marquage d'un ensemble de coefficients representatifs d'une image numerique
US10/041,576 US6990213B2 (en) 2001-01-10 2002-01-10 Method and device for processing and watermarking a set of coefficients representing a digital image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0100266A FR2819331B1 (fr) 2001-01-10 2001-01-10 Procede et dispositif de traitement et de marquage d'un ensemble de coefficients representatifs d'une image numerique

Publications (2)

Publication Number Publication Date
FR2819331A1 true FR2819331A1 (fr) 2002-07-12
FR2819331B1 FR2819331B1 (fr) 2003-03-28

Family

ID=8858654

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0100266A Expired - Fee Related FR2819331B1 (fr) 2001-01-10 2001-01-10 Procede et dispositif de traitement et de marquage d'un ensemble de coefficients representatifs d'une image numerique

Country Status (2)

Country Link
US (1) US6990213B2 (fr)
FR (1) FR2819331B1 (fr)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076659B2 (en) * 2002-02-25 2006-07-11 Matsushita Electric Industrial Co., Ltd. Enhanced method for digital data hiding
FR2841422B1 (fr) * 2002-06-19 2004-11-12 Canon Kk Insertion et extraction d'un message dans une image
US7228006B2 (en) * 2002-11-25 2007-06-05 Eastman Kodak Company Method and system for detecting a geometrically transformed copy of an image
EP1583356B1 (fr) * 2002-12-27 2013-04-10 Nikon Corporation Dispositif de traitement d'images et programme de traitement d'images
JP2004221950A (ja) * 2003-01-15 2004-08-05 Ricoh Co Ltd 画像処理装置、プログラムおよび記憶媒体
JP3922369B2 (ja) * 2003-01-21 2007-05-30 日本ビクター株式会社 埋め込み情報の記録装置及び再生装置並びに記録用プログラム及び再生用プログラム
KR20050119692A (ko) * 2003-04-11 2005-12-21 코닌클리케 필립스 일렉트로닉스 엔.브이. 워터마크들을 검출하는 방법
JP5129053B2 (ja) * 2007-07-27 2013-01-23 パナソニック株式会社 コンテンツ再生装置、コンテンツ再生方法、コンテンツ再生プログラム及び集積回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748783A (en) * 1995-05-08 1998-05-05 Digimarc Corporation Method and apparatus for robust information coding
US7158654B2 (en) * 1993-11-18 2007-01-02 Digimarc Corporation Image processor and image processing method
US6590996B1 (en) * 2000-02-14 2003-07-08 Digimarc Corporation Color adaptive watermarking
US6332030B1 (en) * 1998-01-15 2001-12-18 The Regents Of The University Of California Method for embedding and extracting digital data in images and video
US6792128B1 (en) * 1999-02-16 2004-09-14 Canon Kabushiki Kaisha Method of inserting and extracting a digital signature
US7031491B1 (en) 1999-04-09 2006-04-18 Canon Kabushiki Kaisha Method for determining a partition in order to insert a watermark, and associated insertion and decoding methods
US6456744B1 (en) * 1999-12-30 2002-09-24 Quikcat.Com, Inc. Method and apparatus for video compression using sequential frame cellular automata transforms
US6385329B1 (en) * 2000-02-14 2002-05-07 Digimarc Corporation Wavelet domain watermarks
AU2001285291A1 (en) * 2000-08-24 2002-03-04 Digimarc Corporation Watermarking recursive hashes into frequency domain regions and wavelet based feature modulation watermarks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DUGAD R ET AL: "A NEW WAVELET-BASED SCHEME FOR WATERMARKING IMAGES", PROCEEDINGS OF THE 1998 INTERNATIONAL CONFERENCE ON IMAGE PROCESSING. ICIP '98. CHICAGO, IL, OCT. 4 - 7, 1998, INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, LOS ALAMITOS, CA: IEEE COMPUTER SOC, US, vol. 2 CONF. 5, October 1998 (1998-10-01), pages 419 - 423, XP000669442, ISBN: 0-8186-8822-X *
WEI Z H ET AL: "PERCEPTUAL DIGITAL WATERMARK OF IMAGE USING WAVELET TRANSFORM", INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS. 1998 DIGEST OF TECHNICAL PAPERS. ICCE. JUNE 2 - 4, 1998, INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS. ICCE, NEW YORK, NY: IEEE, US, vol. CONF. 17, November 1998 (1998-11-01), pages 1267 - 1272, XP000965759, ISBN: 0-7803-4358-1 *

Also Published As

Publication number Publication date
US20020141612A1 (en) 2002-10-03
FR2819331B1 (fr) 2003-03-28
US6990213B2 (en) 2006-01-24

Similar Documents

Publication Publication Date Title
FR2826227A1 (fr) Procede et dispositif de traitement d&#39;un signal numerique code
FR2815748A1 (fr) Procede et dispositif de traitement et de decodage d&#39;un signal numerique code
FR2803710A1 (fr) Procede et dispositif d&#39;insertion d&#39;un signal de marquage dans une image
FR2826823A1 (fr) Procede et dispositif de traitement d&#39;un signal numerique code
FR2842691A1 (fr) Procede et dispositif de transformation d&#39;un signal numerique
FR2816154A1 (fr) Insertion d&#39;information supplementaire dans des donnees numeriques
FR2889382A1 (fr) Procede et dispositif de filtrage d&#39;un signal numerique multidimensionnel et procedes et dispositifs de codage et decodage associes
FR2787604A1 (fr) Procede d&#39;insertion d&#39;une marque secrete et d&#39;authentification d&#39;un signal numerique
FR2819331A1 (fr) Procede et dispositif de traitement et de marquage d&#39;un ensemble de coefficients representatifs d&#39;une image numerique
FR2803676A1 (fr) Determination d&#39;une segmentation d&#39;un signal numerique pour inserer des signaux de marquage et insertion associee
FR2906093A1 (fr) Procedes et dispositifs de codage et de decodage, systeme de telecommunication et programme d&#39;ordinateur les mettant en oeuvre
FR2792150A1 (fr) Procedes et dispositis de codage et de decodage de signaux numeriques, et systemes les mettant en oeuvre
FR2782861A1 (fr) Transcodage geometrique d&#39;un signal numerique
FR2927744A1 (fr) Procede et dispositif de filtrage d&#39;un signal numerique.
FR2816138A1 (fr) Decodage de donnees numeriques
FR2927745A1 (fr) Procede et dispositif de codage d&#39;un signal numerique.
FR2929431A1 (fr) Procede et dispositif de classification des echantillons representatifs d&#39;un signal numerique d&#39;image
FR2782224A1 (fr) Procede et dispositif d&#39;insertion et de decodage d&#39;une marque dans des donnees numeriques
FR2795585A1 (fr) Procede de determination d&#39;une partition pour inserer un signal de marquage et procede d&#39;insertion associe
FR2792153A1 (fr) Procede de determination d&#39;une partition pour inserer un signal de marquage et procede de decodage associe
WO2022136538A1 (fr) Procédé et dispositif de transmission de données représentatives d&#39;un hologramme numérique, procédé et dispositif de construction d&#39;un hologramme numérique et système de transmission et de construction d&#39;un hologramme numérique
FR2792152A1 (fr) Procede et dispositif d&#39;insertion d&#39;un signal de marquage dans une image
FR2914467A1 (fr) Procedes et dispositifs de codage et de decodage de signaux numeriques multidimensionnels.
WO2023247208A1 (fr) Procede de segmentation d&#39;une pluralite de donnees, procede de codage, procede de decodage, dispositifs, systemes et programme d&#39;ordinateur correspondants
Noory Rehaussement d'images fortement quantifiées

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140930