EP1887565A1 - Method and device for detecting a tattooing identifier in an audio signal - Google Patents

Method and device for detecting a tattooing identifier in an audio signal Download PDF

Info

Publication number
EP1887565A1
EP1887565A1 EP07301153A EP07301153A EP1887565A1 EP 1887565 A1 EP1887565 A1 EP 1887565A1 EP 07301153 A EP07301153 A EP 07301153A EP 07301153 A EP07301153 A EP 07301153A EP 1887565 A1 EP1887565 A1 EP 1887565A1
Authority
EP
European Patent Office
Prior art keywords
samples
random sequence
identifier
current block
tattoo
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.)
Withdrawn
Application number
EP07301153A
Other languages
German (de)
French (fr)
Inventor
Olivier Develle
Alain Le Guyader
André Gilloire
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.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP1887565A1 publication Critical patent/EP1887565A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/018Audio watermarking, i.e. embedding inaudible data in the audio signal
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients

Definitions

  • the invention relates to a method and a device for detecting a tattoo or mark identifier in an audiovisual signal and in particular an audio signal.
  • Tattooing makes it possible to transmit additional information in support data imperceptibly. For audio-visual data this amounts to establishing a concealed data communication channel, in parallel with the conventional information transport infrastructure.
  • auxiliary data is concealed and attached to the signal and is therefore able to withstand changes in format and sampling frequency giving the tattoo interoperability at the terminals and networks, only the detection-level ends to be compatible with the insertion.
  • a frame of the communication channel concealed in the carrier signal consists of a synchronization mark which may also be called a tattoo identifier, followed by the message inserted in the signal, the beginning of the message being indicated by the identifier. tattoo.
  • the detection After transmitting the tattooed signal, when reading the media, the detection first consists in detecting the tattoo identifier that has been inserted at the beginning of the frame. Once this identifier is identified in the audio content, for example, the detection of the bits of the message can begin. The sequences "tattoo identifier + eventual message" are continuously inserted in the media, the identifier starts coinciding with the areas of sufficient energy suitable for insertion. In reception, the detection of each sequence is also done continuously, thus making it possible to resynchronize in the event of a break in the carrier medium (editing of the signal, cuts by a hacker or even frame losses of the transmission).
  • Tattoo identifiers and messages are formed from random Gaussian sequences from a random number generator or Pseudo-Random sequences (Pseudo-Noise Sequences in English or PN sequences) generated by a shift register whose cells are looped so as to produce an output sequence of maximum length.
  • Any other random sequence resulting from the theory of finite state machines Gold sequences, Baker codes, Walsh sequences, (7) may be suitable provided that its correlation function is close to a Dirac distribution.
  • FIG. 1 A standard procedure for generating a tattooed signal is illustrated in FIG. 1.
  • the module 11 makes it possible to generate a random sequence of length N from an initialization value K fixed in advance. This gives a random sequence w (n).
  • this sequence is modulated by the information to be transmitted by multiplying it by 1 if the bit to be transmitted is 1 and by -1 if the bit to be transmitted is 0.
  • This generation step is performed in the module 12 and generates a modulated sequence ⁇ w (n). In case we just want to insert a tattoo identifier, the random sequence is not modulated.
  • a psychoacoustic model 13 is taken into account by the module 14 to generate the tattoo identifier or the message w f (n) so as to make it inaudible.
  • a gain adjustment step is performed at 15. This tattoo identifier or message is then added at 16 to the audio signal s (n) to form the tattooed signal s w (n).
  • This signal is either stored on a media for later reading by a reader or transmitted over a fixed, mobile or broadcast transmission network.
  • the tattoo identifier In reception, the tattoo identifier must be detected to act on the signal received, for example by blocking the reader in the event of detection of pirated content.
  • FIG. 1 A typical tattoo identifier detection procedure is illustrated in FIG. 1
  • the tattooed audio signal s w (n) is first bleached by inverse filtering by the module 21 (corresponding to the inverse of the consideration of the psycho-acoustic model).
  • the operation of detecting the presence of the tattoo identifier and the content of the frame itself is then carried out by calculation of correlation by the module 22 between the filtered signal x w (n) and the random sequence w (n ) generated by the module 23 in the same way as during the insertion.
  • This detection determines either a frame mark k s when the tattoo identifier is detected, or the bits of the inserted information.
  • This method consists of performing a correlation calculation between the samples of the tattooed signal and the random sequence for each offset of a sample of the tattooed signal, until the beginning of the tattoo identifier is revealed by the fact that the correlation coefficient Cor (k) exceeds a threshold S.
  • N the number of multiplications to be performed per second will be 18010 6 multiplications per second, which is much greater than the capacity of the processors Trade.
  • the property that is exploited to calculate the correlation is the renewed and cyclic application of the random sequence.
  • This method therefore does not apply to the case where it is desired to detect the beginning of a tattoo frame that represents the tattoo identifier in an audio tattoo system.
  • the tattoo is inserted into the Fourier domain, the frequency mark is added to the signal after a shift linked one-to-one with the inserted identifier.
  • the tattooed signal in the time domain is obtained by inverse Fourier transform.
  • each frame is passed in the frequency domain by Fourier transform.
  • Several frames of Fourier coefficients are accumulated, the result of the accumulation being correlated with the frequency mark.
  • the maximum of the correlation gives the value of the offset therefore the content of the message of the frame.
  • the correlation maximum is calculated by inverse Fourier transform of the product of the Fourier transform of the signal accumulated by the conjugate of the Fourier transform of the frequency mark.
  • This method requires many passages from a frequency domain to a transformed domain of the frequency domain and vice versa, the insertion taking place in the frequency domain.
  • the present invention provides a solution that does not have these disadvantages by providing a method of detecting a tattoo identifier that minimizes the number of operations to be performed and the complexity of calculations while allowing a reliable decision.
  • the method according to the invention offers the possibility of using fast correlation calculation algorithms that do not require periodic insertion of synchronization marks.
  • the method according to the invention can be implemented in real time on low capacity processors and in the case of continuous reception of a tattooed signal.
  • this method of block recovery together with the implementation of a rapid transformation method, decreases the number of correlation calculations and the complexity of this calculation with respect to the sliding-window correlation calculation performed sample by sample.
  • the tattoo identifier indicates the position in the audio signal of an inserted message.
  • the detection of the tattoo identifier makes it possible to know where the detection of the inserted message can be carried out.
  • the current block preparation step comprises, in a preferred embodiment, an inverse filtering step of the tattooed signal and a Wiener filtering step using a filter calculated from a correlation function of a training sequence. the tattoo identifier.
  • the at least one initialization value is a key (K a ) that makes it possible to generate the random sequence.
  • the random sequence is obtained by two initialization values, the first being a first key (K a ) making it possible to generate an intermediate random sequence, the second being a second key (K b ) making it possible to encrypt the intermediate random sequence to obtain the random sequence.
  • the method comprises a preliminary initialization step in which the first and second permutation tables as well as the random sequence are calculated and stored.
  • the calculation of the random sequence, of the first and of the second permutation table is optimized by a minimum number of bit operations performed on the bits of an integer representing in each case the shift register. generating the sequence or table.
  • the method comprises an initialization step in which the Fourier transform of the random sequence and its conjugate complex are calculated and stored.
  • the method further comprises a step of correcting the correlation values by eliminating parasitic terms.
  • This variant makes it possible to dispense with the use of a large Fourier transform when the tattoo identifier has a large size.
  • the device thus described is able to implement the method according to the invention.
  • the invention finally relates to a computer program comprising code instructions for implementing the steps of the method according to the invention, when said program is executed by a processor.
  • the device and the computer program have the same advantages as the method they implement.
  • FIG. 3 illustrates the main steps of a tattoo identifier detection method according to the invention.
  • the step E31 is an initialization step which can make it possible to carry out calculations beforehand and to memorize them, for example the generation of the random sequence.
  • Step E32 consists in preparing a first current block of the filtered tattooed signal comprising an N number of samples.
  • a reading of a block of Ns samples of the tattooed signal, N being multiple of Ns, is performed.
  • This filtering step corresponds to the inverse step of the filtering by the psycho-acoustic model carried out during the insertion.
  • Step E32 is followed by step E33 in which a correlation calculation by a fast transformation method is performed on the samples of the current block and the samples of the random sequence generated from the same (s).
  • Initialization value (s) used during insertion This random sequence generation can be carried out just before calculating the correlation or at the initialization stage. It is then in the latter case stored in the initialization step and read during the calculation step.
  • step E34 a test is performed to find out whether the maximum of the correlation values from the correlation calculation of step E33 of the first Ns samples is greater than a threshold S.
  • the tattoo identifier is detected. This value of the correlation maximum greater than the threshold S then indicates the beginning of the tattoo identifier.
  • the detection device can then from this tattoo identifier determine the position in the audio signal of a message that would have been inserted. This message is placed just after the last sample of the tattoo identifier represented by the random sequence of length N.
  • the detection of the inserted message is carried out in a simple manner as mentioned with reference to FIG. 2, by a single correlation calculation. Once the message is detected, the detector will return to the search mode for the tattoo synchronization or identifier to locate the next message. In the case where only tattoo identifiers have been inserted at defined points of the signal, the tattooed signal is scanned as in the previous case continuously. When an identifier is detected, a flag is set to 1 and the detector returns to polling mode.
  • step E34 In the case where in step E34, none of the correlation values of the first Ns samples exceed the threshold S, then a new current block is taken into account by shifting Ns samples E35.
  • FIGS 4a and 4b schematically illustrate the method of the invention.
  • the tattooed signal represented at 40 is continuously received.
  • This tattoo identifier is shown in gray under the reference 41 in FIGS. 4a and 4b.
  • a block analysis of N samples is performed.
  • This current block x w (n) for n ranging from 0 to N-1 is referenced in FIG. 42.
  • a correlation calculation is performed between this current block and the random sequence w (n) generated as at the time of insertion. .
  • the correlation values obtained for the first Ns are then compared as shown at 43 in FIGS. 4a and 4b. If the maximum of the correlation values does not exceed the threshold S, then the current block to be analyzed is shifted by an Ns number of samples as illustrated in FIGS. 4a and 4b.
  • Filtered signal is placed in its right part. This is indicated in FIG. 4b where the block analyzed at 42 becomes the current block. It can be seen in FIG. 4b that the inserted identifier represented in gray at 41 shifted N s samples to the left with respect to the previous block represented at 42 in FIG. 4a (and which was the current block of the step previous).
  • VS ⁇ ⁇ gold w ⁇ vs ⁇ x ⁇ w
  • the matrix w c is a circulating matrix constructed from its first line w T , where T is the transposition operator.
  • Ms 12 and 13 which gives synchronization sequences of size 4095 and 8191.
  • This device comprises a module for obtaining a random sequence w (n) from at least one initialization value.
  • the random sequence can be obtained from a single initialization value, for example, a first key K a .
  • This first key K a will allow in a first embodiment to directly generate the random sequence w (n) used to generate the tattoo identifier.
  • the encryption module 53 is not present.
  • the encryption module 53 is present.
  • the random sequence w (n) used to generate the tattoo identifier is obtained from two initialization values.
  • the first is for example a first key K a which will make it possible to generate an intermediate random sequence w s (n)
  • the second is a second key K b which will make it possible to encrypt this intermediate random sequence to obtain the random sequence w (n ).
  • the random sequence w (n) obtained by the module 51 will serve as in the insertion device of Figure 1 to generate the tattoo identifier by the module 54.
  • a psycho-acoustic model 55 is also taken into account as well as a gain 56 to be added at 57 to the audio signal s (n) and form the tattooed signal s w (n).
  • FIG. 6 represents a device for detecting a tattoo identifier according to the invention.
  • This detection device just like the device insertion includes a module for obtaining the random sequence that has been used to generate the tattoo identifier.
  • this random sequence obtaining module 61 can in a first embodiment comprise only a module for generating the random sequence w (n) from the first key K has or comprise both the module 62 for generating an intermediate random sequence w s (n) from the first key K a and an encryption module 63 of this intermediate sequence from the second key K b for get the random sequence w (n).
  • the detection device can detect the tattoo identifier only if it knows the one or two keys used to obtain the random sequence.
  • An example of a possible application in the embodiment with a single key is for example to associate with each audio content, a user or operator number as a tattoo identifier.
  • the key will be deduced from this number through a correspondence table.
  • the tattoo identifier makes it possible to detect transfers or abusive exchanges of content and to trace the origin of the problem. Indeed, in the presence of pirated content found on a website, the entity holding the user keys can test the detection of the tattoo identifier for each of the keys.
  • the one that will detect the tattoo identifier will be the one that belongs to the user who is at the origin of the abuse. The detection being very fast, the search can be carried out quickly for a large number of keys.
  • the key of the identifier makes it possible to affirm that the signal is tattooed when the presence of the identifier is detected.
  • the possibility of detecting the message can be conditioned by the knowledge of the same key as that of the identifier.
  • the identifier key and the message key may be different.
  • the key K b may represent an order number on a user or dealer and the key K may be specific to the owner of the work or a company operating for several operators.
  • the leakage of pirated content can be located as follows: given a pirated content, the trusted third party holder of the key K has will search for all keys K b, which gives a positive response detection and who will be at the origin of the leak?
  • the key K a represents a user number and the key K b , the number of the work. It is then possible to test if the work number of the right of access license corresponds to that which has actually been inserted by tattooing. If the test result is negative, then the content is hacked and the drive is blocked.
  • one of the keys can be public, for example K b while keeping K a secret.
  • K b represents a content number, it makes it possible to give access to this content.
  • the association of audio sequences with keys K b may be known to all, for example via a database available on the internet.
  • the detection device also comprises a filter module referenced at 64 for whitening and equalizing the tattooed signal during reception and thus forming a signal vector x w sub (n).
  • R wx is a To ⁇ plitz matrix formed from the autocorrelation function of the signal s wz and R dx a correlation vector calculated from a training sequence.
  • the sequence w can be taken as an example from different starting or offset samples.
  • the correlation function is then calculated for offsets ranging from 0 to M k , where M k is the number of filter coefficients.
  • the training sequence makes it possible to take into account certain characteristics of the sequence w and thus to accentuate the possible peaks of detection.
  • the correlation detection module 65 comprises means for preparing a current block of N samples of the filtered tattooed signal, correlation calculation means between the samples of the current block and the random sequence w (n) and comparison means. correlation values obtained at a threshold S.
  • the encryption performed both in the module 53 and the module 63 on a random sequence w s (n) can be performed by random permutation of the samples of the sequence w s (n) or by an encryption method such as that described for example in the document B. Schneier "Applied Cryptography, Protocols and Sources in C”. John Wiley & Sons, Inc., 1996 p397 and 398 .
  • the heart of the algorithm is to calculate a permutation matrix by means of a key of 16 bytes or 128 bits.
  • a TabS array is first initialized in step E71 at values from 0 to N-1.
  • a 256-byte size TabK table is initialized at step E72 by repetition, as many as many times as necessary, the contents of the Key key table containing the 16 bytes of the key.
  • the CurPos integer is initialized to 0.
  • a CurPos index is generated randomly by addition of CurPos, TabS of index i and TabK of index i modulo 256, the TabK table being of size 256, the whole being taken modulo N.
  • the permutation table that will be used to scramble or encrypt the random sequence is obtained by permuting the two values it contains to the index curpos and to the index i with the aid of the intermediate variable TmpVal.
  • a method of generating a PN sequence is for example a method as described in the document B. Schneier. "Applied cryptography, protocols and sources in C”. John Wiley & Sons, Inc., 1996, pages 372 to 375 .
  • the loopback points of the register are given by the generator polynomial of the sequence.
  • the loopback points then correspond to the bits equal to 1 in the binary decomposition of poly.
  • the integer state contains the current state of the shift register, each cell of the register being represented by a bit location of the integer state. It is initialized to 1. To calculate the state state at the next instant, the state content is shifted to the left of the bit position, then a mask is made by doing a binary operation "and" of the result with N the integer containing M s bits of low weight to 1. It remains only to insert in the least significant bit position, by addition by means of a binary operation "or", the operation of " or exclusive '(xor) bits of the bitwise product of the register state with the polynomial generator (poly & state).
  • the function xor (n) calculates one or exclusive bits of the integer n as an argument.
  • This PN sequence thus generated can be used for example in the first embodiment described with reference to FIG. 8.
  • FIG. 8 illustrates in detail, in flowchart form, the correlation calculation step E33 of FIG. 3 in the case of a first embodiment of the invention.
  • This first embodiment uses the fast transform method of Hadamard as a method of rapid transformation.
  • step E32 a current block x w ( n ) of N samples has been prepared.
  • the next operation E81 is to swap the vector x w ( n ), that is to say the re index according to a first permutation Pe.
  • a vector xe ( i ), i 0, ..., N -1.
  • An explanation of Hadamard's method can be found in the paper A. Alrutz, MR Schroeder "A Fast Hadamard Transforms Method for the Evaluation of Measurement Using Pseudo Random Test Signals", Proceedings of the 11th Conference on Acoustics, Paris, 1983 .
  • Step E82 is followed by step E83 in which a second permutation Ps is applied to the vector resulting from the Hadamard transform, in order to obtain the correlation values corresponding to the order of the initial sampling times.
  • step E83 correlation values Cor (k) are obtained which can be used directly in step E34 described with reference to FIG.
  • a correction step E84 is implemented.
  • step E84 corrected correlation values Cor (k) are compared with a threshold at step E34 as described with reference to FIG.
  • the permutations Pe and Ps are defined by respective tables TabPe and TabPs which are calculated at the initialization step E31 of FIG.
  • the state of the state register will take all values between 1 and N-1 but in an order that will be characterized by the permutation table.
  • the state state is first initialized to 1.
  • the state bits at the current time are shifted to the left of a position and masked by the integer having M s bits of low weight to 1.
  • the result of this operation in the least significant bit position, the result of the exclusive or the product of the polynomial by the state (poly & state) masked by the integer 1.
  • the permutation sequence is calculated using the minimum number of bit operations as previously described for generation of the PN sequence.
  • the state variable of the state register is first initialized to 2 Ms -1. Then, to calculate the state state at the next instant, the state bits at the current time are first shifted one position to the right. The state at the next instant is the result of the operation "or exclusive" bit by bit of the result of the previous operation with the product of the polynomial by the state (poly & state) masked by the integer 1.
  • the permutation sequence is calculated using the minimum number of bit operations.
  • the fast transformation method is a Fourier transform method.
  • step E32 a current block x w ( n ) of N samples was prepared.
  • the following operation E91 consists of calculating the Fourier transform of the vector x w ( n ) to get the transform X w .
  • the transform of the random sequence w is either performed during step E91, or performed at the initialization step and then stored as for obtaining the random sequence.
  • this sequence is not generated according to the PN sequence generation method described above but according to a random sequence generation based for example on a generation of random numbers.
  • the conjugate complex W * of the Fourier transform W is also calculated and stored in memory.
  • step E92 the product of W * X w in the Fourier domain is performed.
  • Y ( k ) X w ( k ) W * ( k ) for k ranging from 0 to N-1.
  • step E93 an inverse Fourier transform of this product is applied to deduce the cross-correlation as described by equation (12).
  • the correlation values Cor (k) are thus obtained which are compared with a threshold for the first Ns samples as described in step E34 with reference to FIG.
  • a device embodying the invention is for example a microcomputer 210 which comprises, in a known manner, notably a processing unit 220 equipped with a microprocessor, a read-only memory type ROM 230, RAM RAM type 240.
  • the microcomputer 210 may include in a conventional and non-exhaustive manner the following elements: a keyboard, a screen, a microphone, a speaker, a communication interface, a disk drive, a storage medium ...
  • the ROM 230 includes registers storing a computer program PG including program instructions adapted to implement a tattoo identifier detection method according to the invention as described with reference to Figure 3.
  • This program PG is thus adapted to prepare a current block of N samples of a tattooed signal received at input 250, to perform a correlation calculation by a method of rapid transformation between the samples of the current block and those of the random sequence obtained from at least one initialization value received at input 260 and comparing the resulting correlation values to a threshold to derive the position of the output tattoo identifier 270.
  • the PG program stored in the read-only memory 230 is transferred into the random access memory which will then contain the executable code of the invention as well as registers for storing the variables necessary for the implementation of the invention. .
  • a means of storage readable by a computer or by a microprocessor, whether or not integrated into the device, possibly removable, stores a program implementing the tattoo identifier detection method according to the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The method involves preparing a current block of samples from a digitally tattooed audio signal, and calculating a correlation by a hadamard type or Fourier transform type rapid transformation method, between the samples of the block and a random sequence that is obtained from an initialization key. Correlation values of a specific number of the samples are compared to a predetermined threshold. The preparation, calculation and comparison operations are performed with another block that is shifted by the number of samples. Independent claims are also included for the following: (1) a device for detecting a tattooing identifier in an audio signal (2) a computer program comprising code instructions for implementation of a method for detecting a digital tattooing identifier in an audio signal.

Description

L'invention se rapporte à un procédé et à un dispositif de détection d'un identificateur de tatouage ou de marque dans un signal audiovisuel et notamment un signal audio.The invention relates to a method and a device for detecting a tattoo or mark identifier in an audiovisual signal and in particular an audio signal.

Le tatouage permet de transmettre une information additionnelle dans des données support de manière imperceptible. Pour des données audiovisuelles cela revient à établir un canal de communication de données dissimulé, en parallèle avec l'infrastructure classique de transport de l'information.Tattooing makes it possible to transmit additional information in support data imperceptibly. For audio-visual data this amounts to establishing a concealed data communication channel, in parallel with the conventional information transport infrastructure.

Un des principaux avantages du tatouage est que les données auxiliaires sont dissimulées et attachées au signal et par la même sont capables de supporter des changements de format et de fréquence d'échantillonnage donnant au tatouage une interopérabilité au niveau des terminaux et des réseaux, seules les extrémités au niveau de la détection devant être compatibles avec l'insertion.One of the main advantages of watermarking is that the auxiliary data is concealed and attached to the signal and is therefore able to withstand changes in format and sampling frequency giving the tattoo interoperability at the terminals and networks, only the detection-level ends to be compatible with the insertion.

Une trame du canal de communication dissimulé dans le signal porteur est par exemple constituée d'une marque de synchronisation que l'on peut également appeler identificateur de tatouage, suivie du message inséré dans le signal, le début du message étant indiqué par l'identificateur de tatouage.For example, a frame of the communication channel concealed in the carrier signal consists of a synchronization mark which may also be called a tattoo identifier, followed by the message inserted in the signal, the beginning of the message being indicated by the identifier. tattoo.

Après transmission du signal tatoué, à la lecture du media, la détection consiste d'abord à détecter l'identificateur de tatouage qui a été inséré en début de trame. Une fois cet identificateur repéré dans le contenu audio par exemple, la détection des bits du message peut commencer. Les séquences "identificateur de tatouage + message éventuel" sont insérées en continu dans le média, les débuts d'identificateur coïncidant avec les zones d'énergie suffisante propices à l'insertion. En réception la détection de chaque séquence se fait également en continu permettant ainsi de se resynchroniser en cas de coupure dans le média porteur (édition du signal, coupures par un pirate ou encore pertes de trames de la transmission).After transmitting the tattooed signal, when reading the media, the detection first consists in detecting the tattoo identifier that has been inserted at the beginning of the frame. Once this identifier is identified in the audio content, for example, the detection of the bits of the message can begin. The sequences "tattoo identifier + eventual message" are continuously inserted in the media, the identifier starts coinciding with the areas of sufficient energy suitable for insertion. In reception, the detection of each sequence is also done continuously, thus making it possible to resynchronize in the event of a break in the carrier medium (editing of the signal, cuts by a hacker or even frame losses of the transmission).

Les identificateurs de tatouage ainsi que les messages sont formés à partir de séquences aléatoires gaussiennes issues d'un générateur de nombres aléatoires ou de séquences Pseudo-Aléatoires (Pseudo-Noise Séquences en Anglais ou séquences PN) générées par un registre à décalage dont les cellules sont bouclées de façon à produire une séquence de sortie de longueur maximale. Toute autre séquence aléatoire issue de la théorie des machines à états finis (séquences de Gold, codes de Baker, séquences de Walsh, ...) peut convenir à condition que sa fonction de corrélation soit proche d'une distribution de Dirac. Dans la suite de la description, nous parlerons de séquences aléatoires aussi bien pour désigner des séquences aléatoires que des séquences pseudo-aléatoires.Tattoo identifiers and messages are formed from random Gaussian sequences from a random number generator or Pseudo-Random sequences (Pseudo-Noise Sequences in English or PN sequences) generated by a shift register whose cells are looped so as to produce an output sequence of maximum length. Any other random sequence resulting from the theory of finite state machines (Gold sequences, Baker codes, Walsh sequences, ...) may be suitable provided that its correlation function is close to a Dirac distribution. In the remainder of the description, we will speak of random sequences as well to designate random sequences as pseudo-random sequences.

Une procédure classique de génération d'un signal tatoué est illustrée à la figure 1. Ainsi, le module 11 permet de générer une séquence aléatoire de longueur N à partir d'une valeur d'initialisation K fixée à l'avance. On obtient ainsi une séquence aléatoire w(n).A standard procedure for generating a tattooed signal is illustrated in FIG. 1. Thus, the module 11 makes it possible to generate a random sequence of length N from an initialization value K fixed in advance. This gives a random sequence w (n).

Dans le cas où on veut transmettre un bit d'information 0 ou 1, cette séquence est modulée par l'information à transmettre en la multipliant par 1 si le bit à transmettre est 1 et par -1 si le bit à transmettre est 0. Cette étape de génération est effectué dans le module 12 et génère une séquence modulée ±w(n).
Dans le cas où on veut juste insérer un identificateur de tatouage, la séquence aléatoire n'est pas modulée.
In the case where it is desired to transmit an information bit 0 or 1, this sequence is modulated by the information to be transmitted by multiplying it by 1 if the bit to be transmitted is 1 and by -1 if the bit to be transmitted is 0. This generation step is performed in the module 12 and generates a modulated sequence ± w (n).
In case we just want to insert a tattoo identifier, the random sequence is not modulated.

Un modèle psycho-acoustique 13 est pris en compte par le module 14 pour générer l'identificateur de tatouage ou le message wf(n) de façon à le rendre inaudible. Une étape d'ajustage par un gain est effectuée en 15. Cet identificateur de tatouage ou ce message est ensuite additionné en 16 au signal audio s(n) pour former le signal tatoué sw(n).A psychoacoustic model 13 is taken into account by the module 14 to generate the tattoo identifier or the message w f (n) so as to make it inaudible. A gain adjustment step is performed at 15. This tattoo identifier or message is then added at 16 to the audio signal s (n) to form the tattooed signal s w (n).

Ce signal est soit stocké sur un média pour lecture ultérieure par un lecteur soit transmis sur un réseau de transmission fixe, mobile ou de diffusion.
En réception l'identificateur de tatouage doit être détecté pour agir sur le signal reçu, par exemple en bloquant le lecteur en cas de détection de contenu piraté.
This signal is either stored on a media for later reading by a reader or transmitted over a fixed, mobile or broadcast transmission network.
In reception, the tattoo identifier must be detected to act on the signal received, for example by blocking the reader in the event of detection of pirated content.

Une procédure classique de détection d'identificateur de tatouage est illustré en figure 2.A typical tattoo identifier detection procedure is illustrated in FIG.

Le signal audio tatoué sw(n) est d'abord blanchi par filtrage inverse par le module 21 (correspondant à l'inverse de la prise en compte du modèle psycho-acoustique). L'opération de détection de la présence de l'identificateur de tatouage et du contenu de la trame elle-même est ensuite effectuée par calcul de corrélation par le module 22 entre le signal filtré xw(n) et la séquence aléatoire w(n) générée par le module 23 de la même façon que lors de l'insertion.The tattooed audio signal s w (n) is first bleached by inverse filtering by the module 21 (corresponding to the inverse of the consideration of the psycho-acoustic model). The operation of detecting the presence of the tattoo identifier and the content of the frame itself is then carried out by calculation of correlation by the module 22 between the filtered signal x w (n) and the random sequence w (n ) generated by the module 23 in the same way as during the insertion.

Cette détection détermine soit un repère de trame ks lors de la détection du l'identificateur de tatouage, soit les bits de l'information insérée.This detection determines either a frame mark k s when the tattoo identifier is detected, or the bits of the inserted information.

Ne connaissant pas l'instant de début de trame dans le signal porteur, le calcul de corrélation se fait de manière glissante. On parle alors d'intercorrélation glissante.Not knowing the start time of the frame in the carrier signal, the correlation calculation is slippery. This is called slippery intercorrelation.

Cette méthode consiste à effectuer un calcul de corrélation entre les échantillons du signal tatoué et la séquence aléatoire pour chaque décalage d'un échantillon du signal tatoué, jusqu'à ce que le début de l'identificateur de tatouage soit révélé par le fait que le coefficient de corrélation Cor(k) dépasse un seuil S. Pour chaque instant d'échantillonnage k , le coefficient de corrélation est donné par: Cor k = n = 0 N - 1 x w n + k w n k = 0 , , k s

Figure imgb0001
This method consists of performing a correlation calculation between the samples of the tattooed signal and the random sequence for each offset of a sample of the tattooed signal, until the beginning of the tattoo identifier is revealed by the fact that the correlation coefficient Cor (k) exceeds a threshold S. For each sampling instant k, the correlation coefficient is given by: Horn k = Σ not = 0 NOT - 1 x w not + k w not k = 0 , ... , k s
Figure imgb0001

Une fois le début de trame détecté, un seul calcul de corrélation suffit pour détecter le message: Cor m = n = 0 N m - 1 x w n w n

Figure imgb0002
sur Nm échantillons du signal porteur pour un bit de message. Le bit détecté sera 0 si la corrélation message Corm est négative, il sera de 1 dans le cas contraire.Once the frame start is detected, a single correlation calculation is sufficient to detect the message: Horn m = Σ not = 0 NOT m - 1 x w not w not
Figure imgb0002
on N m samples of the carrier signal for a message bit. The detected bit will be 0 if the correlation message Cor m is negative, it will be 1 otherwise.

Il apparaît donc que pour détecter la position de l'identificateur de tatouage, c'est-à-dire l'instant où le message a été inséré il est nécessaire d'effectuer une intercorrélation pour chaque échantillon du signal porteur jusqu'à ce que l'identificateur soit trouvé. Pour des valeurs de N importantes, la recherche de l'identificateur est donc longue et complexe alors que la détection du bit émis se fait rapidement.It therefore appears that in order to detect the position of the tattoo identifier, i.e. the moment the message has been inserted, it is necessary to perform an intercorrelation for each sample of the carrier signal until the identifier is found. For important values of N , the search for the identifier is therefore long and complex while the detection of the transmitted bit is done quickly.

A titre d'exemple, pour une valeur de N égale à 4096 et une fréquence d'échantillonnage de 44100 Hz, le nombre de multiplications à effectuer par seconde sera de 180106 multiplications par seconde, ce qui est largement supérieur à la capacité des processeurs du commerce.By way of example, for a value of N equal to 4096 and a sampling frequency of 44100 Hz, the number of multiplications to be performed per second will be 18010 6 multiplications per second, which is much greater than the capacity of the processors Trade.

Il est donc important de réduire cette complexité de calcul pour la recherche de l'identificateur de tatouage dans le signal porteur notamment pour une mise en oeuvre dans des terminaux mobiles.It is therefore important to reduce this computational complexity for searching for the tattoo identifier in the carrier signal, in particular for implementation in mobile terminals.

Par ailleurs, certaines techniques de calcul de corrélation rapides et efficaces sont décrites dans l'état de l'art.Moreover, some techniques of fast and efficient correlation calculation are described in the state of the art.

Le document A. Alrutz, M. R. Schroëder "A fast Hadamard transform method for the évaluation of measurement using pseudo random test signals". Proceeding of the 11th conférence on acoustics, Paris, 1983 , décrit une méthode qui permet de calculer efficacement les intercorrélations. Cette méthode s'applique dans le cas où on a inséré une séquence aléatoire de façon périodique.The document A. Alrutz, MR Schroeder "A fast Hadamard transform method for the evaluation of measurement using pseudo random test signals". Proceeding of the 11th lecture on acoustics, Paris, 1983 , describes a method that efficiently calculates intercorrelations. This method applies in the case where a random sequence has been inserted periodically.

La propriété qui est exploitée pour calculer la corrélation est l'application renouvelée et de façon cyclique de la séquence aléatoire.The property that is exploited to calculate the correlation is the renewed and cyclic application of the random sequence.

Cette méthode ne s'applique donc pas au cas où on désire détecter le début d'une trame de tatouage qui représente l'identificateur de tatouage dans un système de tatouage audio.This method therefore does not apply to the case where it is desired to detect the beginning of a tattoo frame that represents the tattoo identifier in an audio tattoo system.

En effet, un seul identificateur étant inséré à la fois, mais à plusieurs endroits du signal porteur, par exemple toutes les 10 à 50 secondes, et dans un endroit propice à la détection, l'application de la méthode d'Hadamard cité dans le présent document engendrerait dans le calcul du vecteur de corrélation, des termes de repliement parasites d'autant plus importants que le décalage entre le bloc d'analyse du signal tatoué et la séquence insérée est grand. Ces termes de repliement proviennent du produit du vecteur de signal tatoué par la diagonale inférieure de la matrice de la séquence aléatoire décalée circulairement. Les éléments de cette diagonale sont égaux à la séquence aléatoire repliée, pris dans un ordre miroir inverse d'où l'appellation "termes de repliement". Ces termes parasites, qui n'existent pas quand la séquence aléatoire est périodique comme utilisée dans le document d'Alrutz et Schroeder, diminueraient la valeur du pic de corrélation dans le cas d'une séquence aléatoire non périodique affectant ainsi la fiabilité de la détection de l'identificateur.Indeed, a single identifier being inserted at a time, but in several places of the carrier signal, for example every 10 to 50 seconds, and in a location favorable to the detection, the application of the method of Hadamard cited in the This document would generate in the computation of the correlation vector, spurious folding terms all the more important that the offset between the analysis block of the tattooed signal and the inserted sequence is large. These folding terms come from the product of the signal vector tattooed by the lower diagonal of the matrix of the circularly shifted random sequence. The elements of this diagonal are equal to the folded random sequence, taken in a reverse mirror order, hence the term "folding terms". These parasitic terms, which do not exist when the random sequence is periodic as used in the document of Alrutz and Schroeder, would decrease the value of the correlation peak in the case of a non-periodic random sequence thus affecting the reliability of the detection of the identifier.

D'autres techniques d'insertion et de détection de tatouage qui améliorent la rapidité du calcul de corrélation lors de la détection existent. Dans la demande de brevet WO 2004/010376 , le tatouage est inséré dans le domaine de Fourier, la marque fréquentielle est ajoutée au signal après un décalage lié de façon biunivoque avec l'identificateur inséré. Le signal tatoué dans le domaine temporel est obtenu par transformée de Fourier inverse. En détection chaque trame est passée dans le domaine fréquentiel par transformée de Fourier. Plusieurs trames de coefficients de Fourier sont accumulées, le résultat de l'accumulation étant corrélé avec la marque fréquentielle. Le maximum de la corrélation donne la valeur du décalage donc le contenu du message de la trame. Le maximum de corrélation est calculé par transformée de Fourier inverse du produit de la transformée de Fourier du signal accumulé par le conjugué de la transformée de Fourier de la marque fréquentielle. Cette méthode nécessite de nombreux passages d'un domaine fréquentiel à un domaine transformé du domaine fréquentiel et inversement, l'insertion s'effectuant dans le domaine fréquentiel.Other tattoo insertion and detection techniques that improve the speed of the correlation calculation during detection exist. In the patent application WO 2004/010376 , the tattoo is inserted into the Fourier domain, the frequency mark is added to the signal after a shift linked one-to-one with the inserted identifier. The tattooed signal in the time domain is obtained by inverse Fourier transform. In detection each frame is passed in the frequency domain by Fourier transform. Several frames of Fourier coefficients are accumulated, the result of the accumulation being correlated with the frequency mark. The maximum of the correlation gives the value of the offset therefore the content of the message of the frame. The correlation maximum is calculated by inverse Fourier transform of the product of the Fourier transform of the signal accumulated by the conjugate of the Fourier transform of the frequency mark. This method requires many passages from a frequency domain to a transformed domain of the frequency domain and vice versa, the insertion taking place in the frequency domain.

La présente invention offre une solution qui ne présente pas ces inconvénients en proposant un procédé de détection d'un identificateur de tatouage qui minimise le nombre d'opérations à effectuer et la complexité des calculs tout en permettant une décision fiable.The present invention provides a solution that does not have these disadvantages by providing a method of detecting a tattoo identifier that minimizes the number of operations to be performed and the complexity of calculations while allowing a reliable decision.

Le procédé selon l'invention offre la possibilité d'utiliser des algorithmes rapides de calcul de corrélation qui ne nécessitent pas d'insertion périodique de marques de synchronisation.The method according to the invention offers the possibility of using fast correlation calculation algorithms that do not require periodic insertion of synchronization marks.

Le procédé selon l'invention peut être mis en oeuvre en temps réel sur des processeurs de faible capacité et dans le cas d'une réception en continu d'un signal tatoué.The method according to the invention can be implemented in real time on low capacity processors and in the case of continuous reception of a tattooed signal.

A cet effet, l'invention propose un procédé de détection d'un identificateur de tatouage dans un signal audio, l'identificateur de tatouage ayant été inséré dans le signal audio à partir d'une séquence aléatoire d'une longueur de N échantillons, N étant multiple de Ns, obtenue par au moins une valeur d'initialisation. Le procédé est tel qu'il comporte les étapes suivantes:

  • préparation d'un bloc courant de N échantillons à partir du signal tatoué;
  • calcul de corrélation par une méthode de transformation rapide entre les échantillons du bloc courant et ceux de la séquence aléatoire obtenue à partir de la au moins une valeur d'initialisation;
  • comparaison à un seuil prédéterminé des valeurs de corrélation issues du calcul de corrélation des Ns premiers échantillons;
  • itération des étapes précédentes avec un bloc courant décalé par rapport au bloc précédent de Ns échantillons tant que le maximum des dites valeurs de corrélation n'est pas supérieure au seuil prédéterminé, le maximum des valeurs de corrélation supérieur au seuil prédéterminé indiquant le début de l'identificateur de tatouage
For this purpose, the invention provides a method of detecting a tattoo identifier in an audio signal, the tattoo identifier having been inserted into the audio signal from a random sequence of a length of N samples, N being a multiple of Ns, obtained by at least one initialization value. The method is such that it comprises the following steps:
  • preparing a current block of N samples from the tattooed signal;
  • correlation calculation by a method of rapid transformation between the samples of the current block and those of the random sequence obtained from the at least one initialization value;
  • comparing with a predetermined threshold the correlation values derived from the correlation calculation of the first Ns samples;
  • iteration of the preceding steps with a current block shifted with respect to the preceding block of Ns samples as long as the maximum of said correlation values is not greater than the predetermined threshold, the maximum of the correlation values greater than the predetermined threshold indicating the beginning of the tattoo identifier

Ainsi, cette méthode de recouvrement par bloc, conjointement à la mise en oeuvre d'une méthode de transformation rapide, diminue le nombre de calcul de corrélation et la complexité de ce calcul par rapport au calcul de corrélation par fenêtre glissante effectué échantillon par échantillon.Thus, this method of block recovery, together with the implementation of a rapid transformation method, decreases the number of correlation calculations and the complexity of this calculation with respect to the sliding-window correlation calculation performed sample by sample.

De plus, une telle méthode permet d'effectuer une scrutation rapide du signal tatoué ne serait ce que pour détecter l'existence d'un tatouage.In addition, such a method makes it possible to carry out a rapid scan of the tattooed signal even if only to detect the existence of a tattoo.

Dans un mode particulier de réalisation l'identificateur de tatouage indique la position dans le signal audio d'un message inséré.In a particular embodiment, the tattoo identifier indicates the position in the audio signal of an inserted message.

Ainsi, la détection de l'identificateur de tatouage permet de savoir où la détection du message inséré peut être effectuée.Thus, the detection of the tattoo identifier makes it possible to know where the detection of the inserted message can be carried out.

L'étape de préparation de bloc courant comprend dans un mode préféré de réalisation, une étape de filtrage inverse du signal tatoué et une étape de filtrage de Wiener utilisant un filtre calculé à partir d'une fonction de corrélation d'une séquence d'apprentissage de l'identificateur de tatouage.The current block preparation step comprises, in a preferred embodiment, an inverse filtering step of the tattooed signal and a Wiener filtering step using a filter calculated from a correlation function of a training sequence. the tattoo identifier.

Ainsi, la prise en compte de certaines caractéristiques de la séquence utilisée pour insérer l'identificateur de tatouage permet d'améliorer la détection de l'identificateur de tatouage par l'accentuation des pics éventuels de détection.Thus, taking into account certain characteristics of the sequence used to insert the tattoo identifier makes it possible to improve the detection of the tattoo identifier by accentuating any detection peaks.

Selon un mode de réalisation, la au moins une valeur d'initialisation est une clé (Ka) qui permet de générer la séquence aléatoire.According to one embodiment, the at least one initialization value is a key (K a ) that makes it possible to generate the random sequence.

Dans un autre mode de réalisation, la séquence aléatoire est obtenue par deux valeurs d'initialisation, la première étant une première clé (Ka) permettant de générer une séquence aléatoire intermédiaire, la seconde étant une seconde clé (Kb) permettant de crypter la séquence aléatoire intermédiaire pour obtenir la séquence aléatoire.In another embodiment, the random sequence is obtained by two initialization values, the first being a first key (K a ) making it possible to generate an intermediate random sequence, the second being a second key (K b ) making it possible to encrypt the intermediate random sequence to obtain the random sequence.

L'utilisation d'une deuxième clé apporte donc une sécurité accrue.The use of a second key therefore provides increased security.

Dans un premier mode de réalisation, la méthode de transformation rapide est une méthode du type d'Hadamard qui comporte les étapes suivantes:

  • permutation des échantillons du bloc courant selon une première table de permutation;
  • application de la transformée d'Hadamard aux échantillons ainsi permutés;
  • permutation des échantillons du vecteur résultant de la transformée d'Hadamard selon une seconde table de permutation pour obtenir les valeurs de corrélations.
In a first embodiment, the fast transformation method is a method of the Hadamard type which comprises the following steps:
  • permutation of the samples of the current block according to a first permutation table;
  • application of the Hadamard transform to the samples thus permuted;
  • permutation of the samples of the vector resulting from the Hadamard transform according to a second permutation table to obtain the correlation values.

L'utilisation de la méthode d'Hadamard dans le procédé conforme à l'invention est particulièrement bien adaptée. Le procédé ainsi réalisé permet de s'affranchir des termes de repliement.The use of the Hadamard method in the process according to the invention is particularly well suited. The method thus produced makes it possible to dispense with the terms of folding.

Avantageusement, le procédé comporte une étape préalable d'initialisation dans laquelle les première et seconde tables de permutation ainsi que la séquence aléatoire sont calculées et mémorisées.Advantageously, the method comprises a preliminary initialization step in which the first and second permutation tables as well as the random sequence are calculated and stored.

Dans un mode particulier de réalisation, le calcul de la séquence aléatoire, de la première et de la seconde table de permutation est optimisé par un nombre minimum d'opérations binaires réalisées sur les bits d'un entier représentant dans chaque cas le registre à décalage de génération de la séquence ou de la table.In a particular embodiment, the calculation of the random sequence, of the first and of the second permutation table is optimized by a minimum number of bit operations performed on the bits of an integer representing in each case the shift register. generating the sequence or table.

La méthode de recouvrement de l'invention permet dans un second mode de réalisation d'utiliser une méthode de type de Fourier comme méthode de transformation rapide. Cette méthode comporte les étapes suivantes:

  • application d'une transformée de Fourier au bloc courant;
  • calcul d'un produit sur les échantillons résultant de la transformée du bloc courant et ceux du complexe conjuguée de la séquence aléatoire ayant subi une transformée de Fourier;
  • application d'une transformée inverse de Fourier pour obtenir les valeurs de corrélation.
In a second embodiment, the recovery method of the invention makes it possible to use a Fourier-type method as a method of rapid transformation. This method consists of the following steps:
  • applying a Fourier transform to the current block;
  • calculating a product on the samples resulting from the transform of the current block and those of the conjugate complex of the Fourier transformed random sequence;
  • application of a Fourier inverse transform to obtain the correlation values.

Avantageusement, le procédé comporte une étape d'initialisation dans laquelle la transformée de Fourier de la séquence aléatoire et son complexe conjugué sont calculés et mémorisés.Advantageously, the method comprises an initialization step in which the Fourier transform of the random sequence and its conjugate complex are calculated and stored.

Pour améliorer la détection, le procédé comporte en outre une étape de correction des valeurs de corrélation par élimination de termes parasites.To improve the detection, the method further comprises a step of correcting the correlation values by eliminating parasitic terms.

Dans une variante de réalisation utilisant la méthode de type transformée de Fourier, le procédé comporte les étapes suivantes:

  • segmentation en sous-séquences du bloc courant;
  • segmentation en sous-séquences de la séquence aléatoire, la deuxième moitié de la sous-séquence aléatoire étant mise à zéro;
  • application d'une transformée de Fourier aux sous-séquences du bloc courant et aux sous-séquences de la séquence aléatoire;
  • calcul de corrélations partielles par le produit sur les échantillons résultant de la transformée des sous-séquences du bloc courant et ceux du complexe conjugué des sous-séquences de la séquence aléatoire;
  • sommation des corrélations partielles calculées;
  • application d'une transformée de Fourier inverse à la somme issue de l'étape de sommation pour obtenir les valeurs de corrélation.
In an alternative embodiment using the Fourier transform method, the method comprises the following steps:
  • segmentation into subsequences of the current block;
  • segmentation into subsequences of the random sequence, the second half of the random subsequence being set to zero;
  • applying a Fourier transform to the subsequences of the current block and the subsequences of the random sequence;
  • calculating partial correlations by the product on the samples resulting from the transformation of the sub-sequences of the current block and those of the conjugate complex of the subsequences of the random sequence;
  • summation of calculated partial correlations;
  • applying an inverse Fourier transform to the sum resulting from the summing step to obtain the correlation values.

Cette variante permet de s'affranchir de l'utilisation d'une transformée de Fourier de grande taille lorsque l'identificateur de tatouage a une taille importante.This variant makes it possible to dispense with the use of a large Fourier transform when the tattoo identifier has a large size.

Dans une seconde variante, le procédé comporte les étapes suivantes:

  • segmentation en sous-séquences du bloc courant;
  • segmentation en sous-séquences de la séquence aléatoire, la première moitié de la sous-séquence aléatoire étant mise à zéro;
  • application d'une transformée de Fourier aux sous-séquences du bloc courant et aux sous-séquences de la séquence aléatoire;
  • calcul de corrélations partielles par le produit sur le complexe conjugué des échantillons résultant de la transformée des sous-séquences du bloc courant et ceux des échantillons résultant de la transformée des sous-séquences de la séquence aléatoire;
  • sommation des corrélations partielles calculées;
  • application d'une transformée de Fourier inverse à la somme issue de l'étape de sommation pour obtenir les valeurs de corrélation.
In a second variant, the method comprises the following steps:
  • segmentation into subsequences of the current block;
  • segmentation into subsequences of the random sequence, the first half of the random subsequence being set to zero;
  • applying a Fourier transform to the subsequences of the current block and the subsequences of the random sequence;
  • calculating partial correlations by the product on the conjugate complex of the samples resulting from the transformation of the subsequences of the current block and those of the samples resulting from the transformation of the subsequences of the random sequence;
  • summation of calculated partial correlations;
  • applying an inverse Fourier transform to the sum resulting from the summing step to obtain the correlation values.

L'invention vise également un dispositif de détection d'un identificateur de tatouage dans un signal audio, l'identificateur de tatouage ayant été inséré dans le signal audio à partir d'une séquence aléatoire d'une longueur de N échantillons, N étant multiple de Ns, obtenue par au moins une valeur d'initialisation. Le dispositif est tel qu'il comporte:

  • des moyens de préparation d'un bloc courant de N échantillons à partir du signal tatoué;
  • des moyens de calcul de corrélation par une méthode de transformation rapide entre les échantillons du bloc courant et ceux de la séquence aléatoire obtenue à partir de la au moins une valeur d'initialisation;
  • des moyens de comparaison à un seuil prédéterminé des valeurs de corrélation issues du calcul de corrélation des Ns premiers échantillons;
  • des moyens d'obtention d'un nouveau bloc courant par décalage de Ns échantillons par rapport au bloc précédent mis en oeuvre tant qu'une des dites valeurs de corrélation n'est pas supérieure au seuil prédéterminé.
The invention also relates to a device for detecting a tattoo identifier in an audio signal, the tattoo identifier having been inserted in the audio signal from a random sequence of a length of N samples, N being multiple Ns, obtained by at least one initialization value. The device is such that it comprises:
  • means for preparing a current block of N samples from the tattooed signal;
  • correlation calculation means by a method of rapid transformation between the samples of the current block and those of the random sequence obtained from the at least one initialization value;
  • means for comparing a predetermined threshold of the correlation values derived from the correlation calculation of the first Ns samples;
  • means for obtaining a new current block by shifting Ns samples with respect to the preceding block implemented as long as one of said correlation values is not greater than the predetermined threshold.

Le dispositif ainsi décrit est apte à mettre en oeuvre le procédé selon l'invention.The device thus described is able to implement the method according to the invention.

L'invention vise enfin un programme d'ordinateur comprenant des instructions de code pour la mise en oeuvre des étapes du procédé selon l'invention, lorsque ledit programme est exécuté par un processeur.The invention finally relates to a computer program comprising code instructions for implementing the steps of the method according to the invention, when said program is executed by a processor.

Le dispositif et le programme d'ordinateur présentent les mêmes avantages que le procédé qu'ils mettent en oeuvre.The device and the computer program have the same advantages as the method they implement.

D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels:

  • la figure 1 représente un schéma bloc d'une méthode d'insertion de l'état de l'art;
  • la figure 2 représente un schéma bloc d'une méthode de détection de l'état de l'art;
  • la figure 3 illustre sous forme d'organigramme, les principales étapes d'un procédé de détection d'identificateur de tatouage conforme à l'invention;
  • les figures 4a et 4b illustrent la méthode par recouvrement selon l'invention;
  • la figure 5 représente les principaux modules d'un dispositif d'insertion d'identificateur de tatouage;
  • la figure 6 représente les principaux modules d'un dispositif de détection d'identificateur de tatouage selon l'invention;
  • la figure 7 illustre sous forme d'organigramme, une méthode de cryptage qui peut être utilisée par l'invention;
  • la figure 8 illustre de façon détaillée, sous forme d'organigramme, l'étape de calcul de corrélation dans un premier mode de réalisation de l'invention;
  • la figure 9 illustre de façon détaillée, sous forme d'organigramme, l'étape de calcul de corrélation dans un second mode de réalisation de l'invention;
  • la figure 10 illustre une variante de réalisation du second mode de réalisation selon l'invention; et
  • la figure 11 illustre un dispositif mettant en oeuvre le procédé selon l'invention.
Other features and advantages of the invention will appear more clearly on reading the following description, given solely by way of nonlimiting example, and with reference to the appended drawings, in which:
  • FIG. 1 represents a block diagram of an insertion method of the state of the art;
  • FIG. 2 represents a block diagram of a method of detection of the state of the art;
  • Figure 3 illustrates in flowchart form, the main steps of a tattoo identifier detection method according to the invention;
  • Figures 4a and 4b illustrate the overlay method according to the invention;
  • Figure 5 shows the main modules of a tattoo identifier insertion device;
  • FIG. 6 represents the main modules of a tattoo identifier detection device according to the invention;
  • Figure 7 illustrates in flowchart form, an encryption method that can be used by the invention;
  • FIG. 8 illustrates in detail, in flowchart form, the correlation calculation step in a first embodiment of the invention;
  • FIG. 9 illustrates in detail, in flowchart form, the correlation calculation step in a second embodiment of the invention;
  • FIG. 10 illustrates an alternative embodiment of the second embodiment according to the invention; and
  • FIG. 11 illustrates a device implementing the method according to the invention.

La figure 3 illustre les principales étapes d'un procédé de détection d'identificateur de tatouage conforme à l'invention. Figure 3 illustrates the main steps of a tattoo identifier detection method according to the invention.

L'étape E31 est une étape d'initialisation qui peut permettre d'effectuer des calculs au préalable et de les mémoriser comme par exemple la génération de la séquence aléatoire.The step E31 is an initialization step which can make it possible to carry out calculations beforehand and to memorize them, for example the generation of the random sequence.

L'étape E32 consiste à préparer un premier bloc courant du signal tatoué filtré comportant un nombre N d'échantillons.Step E32 consists in preparing a first current block of the filtered tattooed signal comprising an N number of samples.

Avant d'obtenir le bloc courant, une lecture d'un bloc de Ns échantillons du signal tatoué, N étant multiple de Ns, est effectuée. Ce bloc de Ns échantillons sw (n), n=0,.., Ns-1 est celui qui est disponible en lecture sur le disque de stockage ou reçu directement par flux continu.Before obtaining the current block, a reading of a block of Ns samples of the tattooed signal, N being multiple of Ns, is performed. This block of Ns samples s w ( n ), n = 0, .., N s -1 is that which is available for reading on the storage disk or received directly by continuous flow.

Ce bloc est blanchi par un filtrage inverse suivi d'un filtrage adaptatif pour donner un vecteur de signal x w sub n , n = 0 , , N s - 1.

Figure imgb0003
Cette étape de filtrage correspond à l'étape inverse du filtrage par le modèle psycho-acoustique effectué lors de l'insertion.This block is whitened by inverse filtering followed by adaptive filtering to give a signal vector x w sub not , not = 0 , ... , NOT s - 1.
Figure imgb0003
This filtering step corresponds to the inverse step of the filtering by the psycho-acoustic model carried out during the insertion.

Ce vecteur de signal est mis à la suite des vecteurs précédemment reçus pour constituer le bloc courant de N échantillons xw (n),n=,0,...,N-1.This signal vector is put following the previously received vectors to constitute the current block of N samples x w ( n ), n =, 0, ..., N- 1.

L'étape E32 est suivie de l'étape E33 dans laquelle un calcul de corrélation par une méthode de transformation rapide est effectué sur les échantillons du bloc courant et les échantillons de la séquence aléatoire générée à partir de la (des) même(s) valeur(s) d'initialisation utilisée(s) lors de l'insertion. Cette génération de séquence aléatoire peut s'effectuer juste avant le calcul de la corrélation ou bien à l'étape d'initialisation. Elle est alors dans ce dernier cas mémorisée à l'étape d'initialisation et lue lors de l'étape de calcul.Step E32 is followed by step E33 in which a correlation calculation by a fast transformation method is performed on the samples of the current block and the samples of the random sequence generated from the same (s). Initialization value (s) used during insertion. This random sequence generation can be carried out just before calculating the correlation or at the initialization stage. It is then in the latter case stored in the initialization step and read during the calculation step.

A l'étape E34, un test est effectué pour savoir si le maximum des valeurs de corrélation issues du calcul de corrélation de l'étape E33 des Ns premiers échantillons est supérieur à un seuil S.In step E34, a test is performed to find out whether the maximum of the correlation values from the correlation calculation of step E33 of the first Ns samples is greater than a threshold S.

Dans le cas où le maximum des valeurs de corrélation est supérieur au seuil S, alors l'identificateur de tatouage est détecté. Cette valeur du maximum de corrélation supérieure au seuil S indique alors le début de l'identificateur de tatouage.In the case where the maximum of the correlation values is greater than the threshold S, then the tattoo identifier is detected. This value of the correlation maximum greater than the threshold S then indicates the beginning of the tattoo identifier.

Le dispositif de détection peut alors à partir de cet identificateur de tatouage déterminer la position dans le signal audio d'un message qui aurait été inséré. Ce message est placé juste après le dernier échantillon de l'identificateur de tatouage représenté par la séquence aléatoire de longueur N.The detection device can then from this tattoo identifier determine the position in the audio signal of a message that would have been inserted. This message is placed just after the last sample of the tattoo identifier represented by the random sequence of length N.

La détection du message inséré s'effectue de façon simple comme mentionné en référence à la figure 2, par un seul calcul de corrélation. Une fois le message détecté, le détecteur repart dans le mode de recherche de la synchronisation ou de l'identificateur de tatouage afin de repérer le message suivant. Dans le cas où seuls des identificateurs de tatouage ont été insérés à des endroits définis du signal, la scrutation du signal tatoué s'opère comme dans le cas précédent en continu. Quand un identificateur est détecté, un drapeau se met à 1 et le détecteur repart en mode scrutation.The detection of the inserted message is carried out in a simple manner as mentioned with reference to FIG. 2, by a single correlation calculation. Once the message is detected, the detector will return to the search mode for the tattoo synchronization or identifier to locate the next message. In the case where only tattoo identifiers have been inserted at defined points of the signal, the tattooed signal is scanned as in the previous case continuously. When an identifier is detected, a flag is set to 1 and the detector returns to polling mode.

Dans le cas où à l'étape E34, aucune des valeurs de corrélation des Ns premiers échantillons ne dépassent le seuil S, alors un nouveau bloc courant est pris en compte par décalage de Ns échantillons en E35.In the case where in step E34, none of the correlation values of the first Ns samples exceed the threshold S, then a new current block is taken into account by shifting Ns samples E35.

Les figures 4a et 4b illustrent de façon schématique le procédé de l'invention. Figures 4a and 4b schematically illustrate the method of the invention.

Le signal tatoué représenté en 40 est reçu en continu. L'identificateur de tatouage issu d'une séquence aléatoire de longueur N est constituée de R blocs de Ns échantillons, soit de N=R*Ns échantillons. Cet identificateur de tatouage est représenté en grisé sous la référence 41 sur les figures 4a et 4b. Une analyse par bloc de N échantillons est effectuée. Ce bloc courant xw(n) pour n allant de 0 à N-1 est référencé sur la figure en 42. Un calcul de corrélation est effectué entre ce bloc courant et la séquence aléatoire w(n) générée comme lors de l'insertion. On compare ensuite les valeurs de corrélation obtenue pour les Ns premiers échantillons comme représenté en 43 sur les figures 4a et 4b. Si le maximum des valeurs de corrélation ne dépasse le seuil S alors on effectue un décalage du bloc courant à analyser d'un nombre Ns d'échantillons comme illustré sur les figures 4a et 4b.The tattooed signal represented at 40 is continuously received. The tattoo identifier resulting from a random sequence of length N consists of R blocks of Ns samples, ie N = R * Ns samples. This tattoo identifier is shown in gray under the reference 41 in FIGS. 4a and 4b. A block analysis of N samples is performed. This current block x w (n) for n ranging from 0 to N-1 is referenced in FIG. 42. A correlation calculation is performed between this current block and the random sequence w (n) generated as at the time of insertion. . The correlation values obtained for the first Ns are then compared as shown at 43 in FIGS. 4a and 4b. If the maximum of the correlation values does not exceed the threshold S, then the current block to be analyzed is shifted by an Ns number of samples as illustrated in FIGS. 4a and 4b.

Quand un nouveau bloc du signal tatoué de Ns échantillons est disponible par lecture sur disque de stockage (comme par exemple CD, DVD, mémoire amovible) ou reçu en flux continu, il subit une étape de filtrage inverse et de filtrage de Wiener pour donner un vecteur de signal x w sub n , n = 0 , , N s - 1.

Figure imgb0004
Il est inséré à la place des Ns dernières composantes de droite comme représenté sur les figures 4a et 4b.When a new block of the tattooed signal of Ns samples is available by reading on storage disk (as for example CD, DVD, memory removable) or received in continuous flow, it undergoes a step of inverse filtering and Wiener filtering to give a signal vector x ~ w sub not , not = 0 , ... , NOT s - 1.
Figure imgb0004
It is inserted in place of the last Ns right components as shown in Figures 4a and 4b.

Pour passer au nouveau bloc courant, le bloc précédent est décalé vers la gauche de Ns échantillons et le bloc x w sub n , n = 0 , , N s - 1.

Figure imgb0005
de signal filtré est placé dans sa partie droite. C'est ce qui est indiqué sur la figure 4b où le bloc analysé en 42 devient le bloc courant. On constate sur la figure 4b que l'identificateur inséré représenté en grisé en 41 s'est décalé de Ns échantillons vers la gauche par rapport au bloc précédent représenté en 42 sur la figure 4a (et qui était le bloc courant de l'étape précédente).To move to the new current block, the previous block is shifted to the left of Ns samples and the block x ~ w sub not , not = 0 , ... , NOT s - 1.
Figure imgb0005
Filtered signal is placed in its right part. This is indicated in FIG. 4b where the block analyzed at 42 becomes the current block. It can be seen in FIG. 4b that the inserted identifier represented in gray at 41 shifted N s samples to the left with respect to the previous block represented at 42 in FIG. 4a (and which was the current block of the step previous).

Sur cette figure 4b, on constate que le calcul de corrélation donne une valeur supérieure au seuil sur les Ns premiers échantillons. Ceci indique donc la position ks du début de l'identificateur de tatouage. On peut alors en déduire la fin de l'identificateur de tatouage connaissant sa longueur N pour éventuellement détecter un message qui aurait été inséré après l'identificateur.In this FIG. 4b, it can be seen that the correlation calculation gives a value greater than the threshold on the first Ns samples. This therefore indicates the position k s of the beginning of the tattoo identifier. We can then deduce the end of the tattoo identifier knowing its length N to possibly detect a message that would have been inserted after the identifier.

Avec cette méthode d'analyse par recouvrement, un exemple de calcul de la corrélation est donné par l'expression suivante: Cor k = n = 0 N - 1 w n + k x w n k = 0 , , N - 1

Figure imgb0006
With this overlay analysis method, an example of calculating the correlation is given by the following expression: Horn k = Σ not = 0 NOT - 1 w not + k x w not k = 0 , ... , NOT - 1
Figure imgb0006

L'équation précédente peut alors s'écrire sous la forme matricielle suivante: Cor 0 Cor 1 Cor 2 Cor 3 . Cor n - 2 Cor n - 1 = w 0 w 1 . w N - 2 w N - 1 w 1 w 2 w N - 1 w 0 w 2 w 3 . w 0 w 1 w 3 w 2 w 1 w 2 . . . . . w N - 2 w N - 1 . w N - 4 w N - 3 w N - 1 w 0 . w 2 w N - 2 x w 0 x w 1 x w 2 x w 3 . x w N - 2 x w N - 1

Figure imgb0007
The preceding equation can then be written in the following matrix form: Horn 0 Horn 1 Horn 2 Horn 3 . Horn not - 2 Horn not - 1 = w 0 w 1 . w NOT - 2 w NOT - 1 w 1 w 2 w NOT - 1 w 0 w 2 w 3 . w 0 w 1 w 3 w 2 w 1 w 2 . . . . . w NOT - 2 w NOT - 1 . w NOT - 4 w NOT - 3 w NOT - 1 w 0 . w 2 w NOT - 2 x w 0 x w 1 x w 2 x w 3 . x w NOT - 2 x w NOT - 1
Figure imgb0007

Soit en notation matricielle: C or = w c x w

Figure imgb0008
La matrice w c est une matrice circulante construite à partir de sa première ligne wT, T étant l'opérateur de transposition.In matrix notation: VS ~ gold = w ~ vs x ~ w
Figure imgb0008
The matrix w c is a circulating matrix constructed from its first line w T , where T is the transposition operator.

Du fait que l'identificateur de tatouage n'est pas inséré périodiquement, la moitié inférieure de la matrice w c va donner lieu à des termes de repliement parasites dans le produit matriciel. Pour éviter cela, le procédé selon l'invention applique un recouvrement de Ns = N l R échantillons et calcule le maximum du coefficient de corrélation sur les Ns premières valeurs du vecteur de corrélation Cor comme décrit précédemment en référence aux figures 3, 4a et 4b.Since the tattoo identifier is not inserted periodically, the lower half of the matrix w c will give rise to parasite aliasing terms in the matrix product. To avoid this, the method according to the invention applies an overlap of N s = N l R samples and calculates the maximum of the correlation coefficient on the N s first values of the correlation vector. VS or as described above with reference to Figures 3, 4a and 4b.

Si la séquence était insérée périodiquement, à n'importe quel endroit où on se placerait dans un bloc de signal tatoué, on aurait une séquence aléatoire entière de N points (en fait une des lignes de la matrice wc). Le décalage optimal serait donné par la ligne de la matrice qui donne le maximum du produit scalaire wc xw, égal à N dans le cas idéal. Dans notre cas, seule une séquence de N échantillons est insérée à la fois. Par exemple, si on suppose que la séquence commence à l'échantillon n=-1 dans le signal tatoué, le maximum de corrélation sera trouvé pour la deuxième ligne de la matrice wc. Il y aura un terme parasite donné par le w(0) en fin de ligne. Pour n = -2 le max est donné par la troisième ligne. Il y a deux termes parasites w(1) et w(0) (séquence inversée) et ainsi de suite. L'utilisation du recouvrement permet de limiter l'influence des termes parasites en ne prenant que les Ns premiers termes de la corrélation.If the sequence were inserted periodically, at any place where we would place ourselves in a tattooed signal block, we would have an entire random sequence of N points (actually one of the lines of the matrix w c ). The optimal offset would be given by the row of the matrix which gives the maximum of the scalar product w c x w, equal to N in the ideal case. In our case, only one sequence of N samples is inserted at a time. For example, if we assume that the sequence starts at sample n = -1 in the tattooed signal, the maximum correlation will be found for the second row of the matrix w c . There will be a parasite term given by the w (0) at the end of the line. For n = -2 the max is given by the third line. There are two parasitic terms w (1) and w (0) (reverse sequence) and so on. The use of the overlay makes it possible to limit the influence of parasitic terms by taking only the first Ns of the correlation.

Dans un exemple où R=8192/1424 =8, à la place d'avoir un maximum de corrélation de N on aura un maximum de N*(8192-1)/8192= N*0.9998, si on a un décalage de 1 et de N*(8192-1024)/8192= N*0.875 dans le cas le plus défavorable d'un décalage de Ns=1024.In an example where R = 8192/1424 = 8, instead of having a correlation maximum of N we will have a maximum of N * (8192-1) / 8192 = N * 0.9998, if we have an offset of 1 and N * (8192-1024) / 8192 = N * 0.875 in the most unfavorable case of an offset of N s = 1024.

Pour effectuer le produit scalaire de façon performante, la séquence de la première ligne de la matrice w c peut être prise égale à une séquence PN de longueur maximale auquel cas on aura: N = 2 Ms - 1

Figure imgb0009
To perform the scalar product efficiently, the sequence of the first row of the matrix w c can be taken equal to a PN sequence of maximum length in which case we will have: NOT = 2 ms - 1
Figure imgb0009

Les valeurs usuelles de Ms sont de 12 et de 13 ce qui donne des séquences de synchronisation de taille 4095 et de 8191.The usual values of Ms are 12 and 13 which gives synchronization sequences of size 4095 and 8191.

En référence à la figure 5, nous allons à présent décrire un dispositif d'insertion d'un identificateur de tatouage. Ce dispositif comporte un module d'obtention d'une séquence aléatoire w(n) à partir d'au moins une valeur d'initialisation.With reference to FIG. 5 , we will now describe a device for inserting a tattoo identifier. This device comprises a module for obtaining a random sequence w (n) from at least one initialization value.

Ainsi, la séquence aléatoire peut être obtenue à partir d'une seule valeur d'initialisation, par exemple, une première clé Ka. Cette première clé Ka va permettre dans un premier mode de réalisation de générer directement la séquence aléatoire w(n) utilisée pour générer l'identificateur de tatouage. Dans ce cas, le module de cryptage 53 n'est pas présent.Thus, the random sequence can be obtained from a single initialization value, for example, a first key K a . This first key K a will allow in a first embodiment to directly generate the random sequence w (n) used to generate the tattoo identifier. In this case, the encryption module 53 is not present.

Dans un deuxième mode de réalisation, le module de cryptage 53 est présent. L'obtention de la séquence aléatoire w(n) utilisée pour générer l'identificateur de tatouage s'effectue à partir de deux valeurs d'initialisations. La première est par exemple une première clé Ka qui va permettre de générer une séquence aléatoire intermédiaire ws(n), la deuxième est une deuxième clé Kb qui va permettre de crypter cette séquence aléatoire intermédiaire pour obtenir la séquence aléatoire w(n).In a second embodiment, the encryption module 53 is present. The random sequence w (n) used to generate the tattoo identifier is obtained from two initialization values. The first is for example a first key K a which will make it possible to generate an intermediate random sequence w s (n), the second is a second key K b which will make it possible to encrypt this intermediate random sequence to obtain the random sequence w (n ).

La séquence aléatoire w(n) obtenue par le module 51 va servir comme dans le dispositif d'insertion de la figure 1 à générer l'identificateur de tatouage par le module 54. Un modèle psycho-acoustique 55 est également pris en compte ainsi qu'un gain 56 pour être additionné en 57 au signal audio s(n) et former le signal tatoué sw(n).The random sequence w (n) obtained by the module 51 will serve as in the insertion device of Figure 1 to generate the tattoo identifier by the module 54. A psycho-acoustic model 55 is also taken into account as well as a gain 56 to be added at 57 to the audio signal s (n) and form the tattooed signal s w (n).

La figure 6 représente un dispositif de détection d'un identificateur de tatouage conforme à l'invention. Ce dispositif de détection tout comme le dispositif d'insertion comporte un module d'obtention de la séquence aléatoire qui a été utilisée pour générer l'identificateur de tatouage. FIG. 6 represents a device for detecting a tattoo identifier according to the invention. This detection device just like the device insertion includes a module for obtaining the random sequence that has been used to generate the tattoo identifier.

De la même façon que pour le dispositif d'insertion, ce module d'obtention de séquence aléatoire 61 peut dans un premier mode de réalisation ne comporter qu'un module de génération de la séquence aléatoire w(n) à partir de la première clé Ka ou comporter à la fois le module 62 de génération d'une séquence aléatoire intermédiaire ws(n) à partir de la première clé Ka et un module 63 de cryptage de cette séquence intermédiaire à partir de la deuxième clé Kb pour obtenir la séquence aléatoire w(n).In the same way as for the insertion device, this random sequence obtaining module 61 can in a first embodiment comprise only a module for generating the random sequence w (n) from the first key K has or comprise both the module 62 for generating an intermediate random sequence w s (n) from the first key K a and an encryption module 63 of this intermediate sequence from the second key K b for get the random sequence w (n).

Ainsi, le dispositif de détection ne pourra détecter l'identificateur de tatouage que s'il connaît la ou les deux clés utilisées pour l'obtention de la séquence aléatoire.Thus, the detection device can detect the tattoo identifier only if it knows the one or two keys used to obtain the random sequence.

Un exemple d'application possible dans le mode de réalisation avec une seule clé est par exemple d'associer à chaque contenu audio, un numéro d'utilisateur ou d'opérateur comme identificateur de tatouage. La clef sera déduite de ce numéro par l'intermédiaire d'une table de correspondance. Ainsi, dans le contexte de vente en ligne sécurisée de contenu audio, l'identificateur de tatouage permet de déceler les transferts ou échanges abusifs de contenu et de tracer l'origine du problème. En effet, en présence d'un contenu piraté trouvé sur un site Web, l'entité détentrice des clefs utilisateurs peut tester la détection de l'identificateur de tatouage pour chacune des clés. Celle qui permettra de détecter l'identificateur de tatouage sera donc celle qui appartient à l'utilisateur qui est à l'origine de la diffusion abusive. La détection étant très rapide, la recherche peut être effectuée rapidement pour un grand nombre de clés.An example of a possible application in the embodiment with a single key is for example to associate with each audio content, a user or operator number as a tattoo identifier. The key will be deduced from this number through a correspondence table. Thus, in the context of secure online sales of audio content, the tattoo identifier makes it possible to detect transfers or abusive exchanges of content and to trace the origin of the problem. Indeed, in the presence of pirated content found on a website, the entity holding the user keys can test the detection of the tattoo identifier for each of the keys. The one that will detect the tattoo identifier will be the one that belongs to the user who is at the origin of the abuse. The detection being very fast, the search can be carried out quickly for a large number of keys.

Dans le cas où l'identificateur de tatouage n'est pas utilisé seul mais est suivi d'un message, la clef de l'identificateur permet d'affirmer que le signal est tatoué lorsque la présence de l'identificateur est détectée. Dans ce cas la possibilité de détection du message peut être conditionnée par la connaissance de la même clef que celle de l'identificateur. Cependant, la clef identificateur et la clef message peuvent être différentes.In the case where the tattoo identifier is not used alone but is followed by a message, the key of the identifier makes it possible to affirm that the signal is tattooed when the presence of the identifier is detected. In this case, the possibility of detecting the message can be conditioned by the knowledge of the same key as that of the identifier. However, the identifier key and the message key may be different.

Le mode de réalisation avec deux clés, ouvre un champ d'application encore plus large et apporte une sécurité supplémentaire.The embodiment with two keys, opens an even wider scope and provides additional security.

La clé Kb peut représenter un numéro de commande relative à un utilisateur ou un revendeur et la clef Ka peut être propre au propriétaire de l'oeuvre ou à une société opérant pour plusieurs opérateurs. Dans ce cas la fuite de contenus piratés peut être localisée de la façon suivante: étant donné un contenu piraté, le tiers de confiance détenteur de la clef Ka va rechercher, pour toutes les clefs Kb, celle qui donne une réponse positive en détection et qui sera donc à l'origine de la fuite.The key K b may represent an order number on a user or dealer and the key K may be specific to the owner of the work or a company operating for several operators. In this case the leakage of pirated content can be located as follows: given a pirated content, the trusted third party holder of the key K has will search for all keys K b, which gives a positive response detection and who will be at the origin of the leak?

Dans une application de contrôle d'accès dans un lecteur, la clé Ka représente un numéro d'utilisateur et la clé Kb, le numéro de l'oeuvre. Il est alors possible de tester si le numéro d'oeuvre de la licence de droit d'accès correspond à celui qui a effectivement été inséré par tatouage. Si le résultat du test est négatif, alors le contenu est piraté et le lecteur est bloqué.In an access control application in a reader, the key K a represents a user number and the key K b , the number of the work. It is then possible to test if the work number of the right of access license corresponds to that which has actually been inserted by tattooing. If the test result is negative, then the content is hacked and the drive is blocked.

On peut remarquer également que l'une des clés peut être publique, par exemple Kb tout en gardant Ka secrète. Dans ce cas, si la clef Kb représente un numéro de contenu, elle permet de donner l'accès à ce contenu. L'association des séquences audio aux clefs Kb peut être connue de tous, par exemple par l'intermédiaire d'une base de données disponible sur internet.We can also notice that one of the keys can be public, for example K b while keeping K a secret. In this case, if the key K b represents a content number, it makes it possible to give access to this content. The association of audio sequences with keys K b may be known to all, for example via a database available on the internet.

Le dispositif de détection comprend également un module de filtrage référencé en 64 pour blanchir et égaliser le signal tatoué lors de la réception et ainsi former un vecteur de signal xw sub(n).The detection device also comprises a filter module referenced at 64 for whitening and equalizing the tattooed signal during reception and thus forming a signal vector x w sub (n).

Le signa s w est d'abord filtré par un filtre inverse A(z) ne comportant des coefficients qu'au numérateur. Ce filtre est calculé à partir des coefficients de corrélation du masque psychoacoustique du signal par l'algorithme de Levinson-Durbin. Ensuite, à partir du signal s wz ainsi filtré, on va calculer un filtre de Wiener Fw(z) qui va essayer de modéliser w par filtrage linéaire de s wz . En fait la minimisation entre la marque w et son estimée à partir du signal s wz conduit à la résolution des équations suivantes: R wx F w = R dx

Figure imgb0010
The signa s w is first filtered by an inverse filter A ( z ) having coefficients only in the numerator. This filter is calculated from the correlation coefficients of the psychoacoustic mask of the signal by the Levinson-Durbin algorithm. Then from the signal s wz well filtered, we will calculate a Wiener F w (z) filter that will try to model w by linear filtering s wz . In fact the minimization between the mark w and its estimated from the signal s wz leads to the resolution of the following equations: R wx F w = R dx
Figure imgb0010

Rwx est une matrice de Toëplitz formée à partir de la fonction d'autocorrélation du signal s wz et Rdx un vecteur de corrélation calculé à partir d'une séquence d'apprentissage. Comme séquence d'apprentissage on peut prendre à titre d'exemple la séquence w à différents échantillons de départ ou offset. La fonction de corrélation est ensuite calculée pour des décalages allant de 0 à Mk ,Mk étant le nombre de coefficients du filtre. Le signal filtré résultant x w sub n

Figure imgb0011
sera donné par: x w sub n = j = - M k M k F w j s wz n - j
Figure imgb0012
Where R wx is a Toëplitz matrix formed from the autocorrelation function of the signal s wz and R dx a correlation vector calculated from a training sequence. As a training sequence, the sequence w can be taken as an example from different starting or offset samples. The correlation function is then calculated for offsets ranging from 0 to M k , where M k is the number of filter coefficients. The resulting filtered signal x w sub not
Figure imgb0011
will be given by: x w sub not = Σ j = - M k M k F w j s wz not - j
Figure imgb0012

L'utilisation d'un filtre de Wiener calculé à partir d'une séquence d'apprentissage permet d'améliorer la détection de l'identificateur de tatouage par rapport à une méthode n'utilisant qu'un filtrage inverse.The use of a Wiener filter calculated from a training sequence makes it possible to improve the detection of the tattoo identifier with respect to a method using only inverse filtering.

En effet, la séquence d'apprentissage permet de prendre en compte certaines caractéristiques de la séquence w et ainsi d'accentuer les pics éventuels de détection.Indeed, the training sequence makes it possible to take into account certain characteristics of the sequence w and thus to accentuate the possible peaks of detection.

Le module de détection par corrélation 65 comprend des moyens de préparation d'un bloc courant de N échantillons du signal tatoué filtré, des moyens de calcul de corrélation entre les échantillons du bloc courant et la séquence aléatoire w(n) et des moyens de comparaison des valeurs de corrélation obtenues à un seuil S.The correlation detection module 65 comprises means for preparing a current block of N samples of the filtered tattooed signal, correlation calculation means between the samples of the current block and the random sequence w (n) and comparison means. correlation values obtained at a threshold S.

Ces moyens permettent la mise en oeuvre du procédé décrit en figure 3 conformément à l'invention.These means allow the implementation of the method described in Figure 3 according to the invention.

Le cryptage effectué à la fois dans le module 53 et le module 63 sur une séquence aléatoire ws(n) peut être réalisé par permutation aléatoire des échantillons de la séquence ws(n) ou par une méthode de cryptage comme celle décrit par exemple dans le document B. Schneier "Applied cryptography, protocols and sources in C". John Wiley & sons, inc., 1996 p397 et 398 .The encryption performed both in the module 53 and the module 63 on a random sequence w s (n) can be performed by random permutation of the samples of the sequence w s (n) or by an encryption method such as that described for example in the document B. Schneier "Applied Cryptography, Protocols and Sources in C". John Wiley & Sons, Inc., 1996 p397 and 398 .

Un exemple de cryptage par permutation est illustré par l'algorithme représenté en figure 7.An example of permutation encryption is illustrated by the algorithm shown in FIG .

Le coeur de l'algorithme consiste à calculer une matrice de permutation au moyen d'une clef de 16 octets soit 128 bits.The heart of the algorithm is to calculate a permutation matrix by means of a key of 16 bytes or 128 bits.

Un tableau TabS est d'abord initialisé à l'étape E71 aux valeurs de 0 à N-1. Une table TabK de taille 256 octets est initialisée à l'étape E72 par répétition, autant de fois que nécessaire, du contenu de la table de clé Key contenant les 16 octets de la clé. L'entier CurPos est initialisé à 0.A TabS array is first initialized in step E71 at values from 0 to N-1. A 256-byte size TabK table is initialized at step E72 by repetition, as many as many times as necessary, the contents of the Key key table containing the 16 bytes of the key. The CurPos integer is initialized to 0.

Aux étapes E73 à E75, pour chaque indice i de 0 à N-1, un indice CurPos est généré aléatoirement par addition de CurPos, de TabS d'indice i et de TabK d'indice i modulo 256, la table TabK étant de taille 256, le tout étant pris modulo N. Ensuite, aux étapes E77 à E79, la table de permutation qui va servir à brouiller ou crypter la séquence aléatoire est obtenue en permutant les deux valeurs qu'elle contient à l'indice curpos et à l'indice i en s'aidant de la variable intermédiaire TmpVal.In steps E73 to E75, for each index i from 0 to N-1, a CurPos index is generated randomly by addition of CurPos, TabS of index i and TabK of index i modulo 256, the TabK table being of size 256, the whole being taken modulo N. Then, in steps E77 to E79, the permutation table that will be used to scramble or encrypt the random sequence is obtained by permuting the two values it contains to the index curpos and to the index i with the aid of the intermediate variable TmpVal.

On se retrouve donc avec une table de permutation qui contient pour i = 0, ..., N -1, le rang de l'échantillon qui doit être permuté. Pour brouiller la séquence aléatoire, il suffit maintenant de lire la table de permutation TabS(i) pour i = 0, N - 1 et de permuter le contenu de ws d'indice i avec le contenu de ws d'indice TabS(i). La séquence cryptée, calculée une fois pour toute peut être stockée en mémoire.So we end up with a permutation table that contains for i = 0, ..., N -1, the rank of the sample to be swapped. To scramble the random sequence, it is now sufficient to read the permutation table TabS (i) for i = 0, N-1 and to swap the content of w s of index i with the content of w s of index TabS ( i). The encrypted sequence, calculated once and for all, can be stored in memory.

Une méthode de génération d'une séquence PN est par exemple une méthode telle que décrite dans le document B. Schneier. "Applied cryptography, protocols and sources in C". John Wiley & sons, inc., 1996, pages 372 à 375 . Les points de bouclage du registre sont donnés par le polynôme générateur de la séquence.A method of generating a PN sequence is for example a method as described in the document B. Schneier. "Applied cryptography, protocols and sources in C". John Wiley & Sons, Inc., 1996, pages 372 to 375 . The loopback points of the register are given by the generator polynomial of the sequence.

A titre d'exemple, pour le cas Ms =12, un des polynômes générateur primitif est donné par poly(x) = 1 + x + x^4 + x^6 + x^12 soit poly=ca0 en hexadécimal ou encore 1100 1010 0000 en binaire. Les points de bouclage correspondent alors aux bits égaux à 1 dans la décomposition binaire de poly.By way of example, for the case Ms = 12, one of the primitive generator polynomials is given by poly (x) = 1 + x + x ^ 4 + x ^ 6 + x ^ 12 or poly = ca0 in hexadecimal or else 1100 1010 0000 in binary. The loopback points then correspond to the bits equal to 1 in the binary decomposition of poly.

Une façon de générer une séquence PN de façon optimale avec un minimum d'opérations binaires est maintenant décrite. Les coefficients du polynôme générateur de puissance élevée sont en correspondance avec les bits de poids faible du registre à décalage, le bit de sortie étant en poids fort.One way to generate a PN sequence optimally with a minimum of bit operations is now described. The coefficients of the high power generating polynomial are in correspondence with the low order bits of the shift register, the output bit being in the high order.

Le code descriptif de cette méthode est donné ci-dessous:

   int state;
   N = 1 << Ms) - 1
   int poly = 0xca0;
   state = 1;
   w[0] = -2 * (state >> (Ms - 1) & 1) + 1;
   for(i = 1; i < N; i++)
    {
    state = ((state << 1) & N) | (xor(poly & state)&1);
    w[i] = -2 * (state >> (Ms - 1) & 1) + 1;
   }
The descriptive code for this method is given below:
 int state;
   N = 1 << Ms) - 1
   int poly = 0xca0;
   state = 1; 
   w [0] = -2 * (state >> (Ms - 1) & 1) + 1;
   for (i = 1; i <N; i ++)
    {
    state = ((state << 1) & N) | (xor (poly & state) &1);
    w [i] = -2 * (state >> (Ms - 1) & 1) + 1;
   } 

L'entier state contient l'état courant du registre à décalage, chaque cellule du registre étant représentée par un emplacement binaire de l'entier state. Il est initialisé à 1. Pour le calcul de l'état state à l'instant suivant, le contenu state est décalé vers la gauche de la position d'un bit, on effectue ensuite un masque en faisant une opération binaire "et" du résultat avec N l'entier contenant Ms bits de poids faible à 1. Il ne reste plus qu'à insérer en position de bit de poids faible, par addition au moyen d'une opération binaire "ou", l'opération de "ou exclusif' (xor) des bits du produit bit à bit de l'état du registre avec le polynôme générateur (poly & state).The integer state contains the current state of the shift register, each cell of the register being represented by a bit location of the integer state. It is initialized to 1. To calculate the state state at the next instant, the state content is shifted to the left of the bit position, then a mask is made by doing a binary operation "and" of the result with N the integer containing M s bits of low weight to 1. It remains only to insert in the least significant bit position, by addition by means of a binary operation "or", the operation of " or exclusive '(xor) bits of the bitwise product of the register state with the polynomial generator (poly & state).

La fonction xor(n) calcule un ou exclusif des bits de l'entier n en argument.The function xor (n) calculates one or exclusive bits of the integer n as an argument.

La méthode décrite précédemment permet d'obtenir la séquence à partir d'une implantation du registre à décalage par une seule ligne de code ne nécessitant que peu d'opérations binaires: une opération de "décalage", trois opérations "et", une opération "ou" et une opération "ou exclusif" et ce quel que soit le polynôme générateur. En effet, ces opérations sont effectuées sur les bits d'un entier représentant dans chaque cas le registre à décalage de génération de la séquence.The method described above makes it possible to obtain the sequence from an implementation of the shift register by a single line of code requiring only a few bit operations: an "offset" operation, three operations "and", an operation "or" and an "exclusive" operation regardless of the generator polynomial. Indeed, these operations are performed on the bits of an integer representing in each case the generation shift register of the sequence.

Dans l'état de l'art, par exemple la référence de Schneier citée précédemment page 375, l'implantation du registre à décalage version Fobinacci demande plus d'opérations binaires: sept opérations de "décalage", deux opérations "et", une opération "ou" et cinq opérations "ou exclusif'.In the state of the art, for example the Schneier reference cited previously on page 375, the implementation of the Fobinacci shift register requires more binary operations: seven "offset" operations, two "and" operations, one operation "or" and five operations "or exclusive".

Cette séquence PN ainsi générée est utilisable par exemple dans le premier mode de réalisation décrit en référence à la figure 8.This PN sequence thus generated can be used for example in the first embodiment described with reference to FIG. 8.

La figure 8 illustre de façon détaillée, sous forme d'organigramme, l'étape de calcul de corrélation E33 de la figure 3 dans le cas d'un premier mode de réalisation de l'invention. Ce premier mode de réalisation utilise la méthode de transformée rapide d'Hadamard comme méthode de transformation rapide.FIG. 8 illustrates in detail, in flowchart form, the correlation calculation step E33 of FIG. 3 in the case of a first embodiment of the invention. This first embodiment uses the fast transform method of Hadamard as a method of rapid transformation.

Ainsi, à l'issue de l'étape E32, un bloc courant xw (n) de N échantillons a été préparé.Thus, at the end of step E32, a current block x w ( n ) of N samples has been prepared.

L'opération suivante E81 consiste à permuter le vecteur x w (n), c'est-à-dire à le ré indicer en fonction d'une première permutation Pe. A l'issue de cette étape de permutation, on obtient un vecteur xe(i), i = 0,..., N -1.The next operation E81 is to swap the vector x w ( n ), that is to say the re index according to a first permutation Pe. At the end of this permutation step, we obtain a vector xe ( i ), i = 0, ..., N -1.

Un exemple de code implémentant cette fonction est le suivant:

   xe[0] = 0;
   for (i = 0; i < N; i++)
     xe[TabPe[i]] = xw[i];
    }
An example code implementing this function is:
 xe [0] = 0;
   for (i = 0; i <N; i ++)
     xe [TabPe [i]] = xw [i];
    } 

La transformée d'Hadamard est ensuite appliquée à l'étape E82 au vecteur xe(i), i = 0,..., N-1. On peut retrouver une explication de la méthode d'Hadamard dans le document A. Alrutz, M. R. Schroëder "A fast Hadamard transform method for the evaluation of measurement using pseudo random test signals", Proceeding of the 11th conference on acoustics, Paris, 1983 .The Hadamard transform is then applied to step E82 to the vector xe (i), i = 0, ..., N -1 . An explanation of Hadamard's method can be found in the paper A. Alrutz, MR Schroeder "A Fast Hadamard Transforms Method for the Evaluation of Measurement Using Pseudo Random Test Signals", Proceedings of the 11th Conference on Acoustics, Paris, 1983 .

Un exemple de mode opératoire de la transformée d'Hadamard est présenté ci-dessous:

 void FastHadamard(double *x, long N)
     {
     long i, il, j, k, k1, k2;
     double temp;
     Kp = (1<<N)-1;
     k1 = Kp;
     for (k = 0; k < N; k++)
        {
       k2 = k1 >> 1;
       for (j = 0; j < k2; j++)
           {
           for (i = j; i < Kp; i = i + k1)
               {
               il = i + k2;
               temp = x[i] + x [i1] ;
                xe[i1] = xe[i] - xe[i1];
               xe[i] = temp;
               }
           }
       kl = k1 >> 1;
       }
 }
An example of the procedure of the Hadamard transform is presented below:
 void FastHadamard (double * x, long N)
     {
     long i, he, j, k, k1, k2;
     double temp;
     Kp = (1 << N) -1;
     k1 = Kp;
     for (k = 0; k <N; k ++)
        {
       k2 = k1 >>1;
       for (j = 0; j <k2; j ++)
           {
           for (i = j; i <Kp; i = i + k1)
               {
               he = i + k2;
               temp = x [i] + x [i1];
                xe [i1] = xe [i] - xe [i1];
               xe [i] = temp;
               }
           }
       k1 = k1 >>1;
       }
 } 

L'étape E82 est suivie de l'étape E83 dans laquelle une seconde permutation Ps est appliquée au vecteur résultant de la transformée d'Hadamard, afin d'obtenir les valeurs de corrélation correspondant à l'ordre des instants d'échantillonnage de départ.Step E82 is followed by step E83 in which a second permutation Ps is applied to the vector resulting from the Hadamard transform, in order to obtain the correlation values corresponding to the order of the initial sampling times.

Un exemple de code implémentant cette fonction est le suivant:

    for (i = 0; i < N-1; i++)
     {
      cor[i] = xe[TabPs[i]];
     }
    cor[N-1] = 0;
An example code implementing this function is:
 for (i = 0; i <N-1; i ++)
     {
      cor [i] = xe [TabPs [i]];
     }
    cor [N-1] = 0; 

A l'issue de l'étape E83, on obtient des valeurs de corrélation Cor(k) qui peuvent être utilisées directement à l'étape E34 décrite en référence à la figure 3.At the end of step E83, correlation values Cor (k) are obtained which can be used directly in step E34 described with reference to FIG.

Dans un mode de réalisation amélioré, une étape E84 de correction est mise en oeuvre.In an improved embodiment, a correction step E84 is implemented.

En effet, en examinant l'équation (4), on constate que:

  • des termes parasites à l'origine du repliement apparaissent à la fin de la matrice carrée. Il s'agit de w(0) sur la deuxième ligne, de w(0) et w(1) sur la troisième ligne, de w(0) w(1) et w(2) sur la quatrième ligne. La contribution C -(k) de ces termes parasites est à retrancher de Cor(k).
  • des termes utiles manquent. En effet la séquence de la deuxième ligne commence à w(1), il manque donc la contribution de w(0). Celle de la troisième ligne commence à w(2) , il manque donc la contribution de w(0) et de w(1). La référence de temps étant prise à n=0, ces valeurs sont à pondérer avec le signal tatoué antérieur à la trame courante xw (-1), xw (-2), xw (-3), ... et la contribution C+ (k) de ces termes manquants est à ajouter à Cor(k).
Indeed, by examining equation (4), we find that:
  • parasitic terms at the origin of folding appear at the end of the square matrix. This is w (0) on the second line, w (0) and w (1) on the third line, w (0) w (1) and w (2) on the fourth line. The contribution C - ( k ) of these parasitic terms is to be subtracted from Cor ( k ).
  • useful terms are missing. Indeed the sequence of the second line starts at w (1), so the contribution of w (0) is missing. That of the third line starts at w (2), so the contribution of w (0) and w (1) is missing. Since the time reference is taken at n = 0, these values are to be weighted with the tattooed signal prior to the current frame x w (-1), x w (-2), x w (-3), ... and the contribution C + ( k ) of these missing terms is to be added to Cor ( k ) .

La contribution C- (k) est égale à: C - k = j = 0 k - 1 w j x w N - k + j

Figure imgb0013
The contribution C - ( k ) is equal to: VS - k = Σ j = 0 k - 1 w j x w NOT - k + j
Figure imgb0013

Celle de C+ (k) est égale à: C + k = j = 0 k - 1 w j x w - k + j

Figure imgb0014
That of C + ( k ) is equal to: VS + k = Σ j = 0 k - 1 w j x w - k + j
Figure imgb0014

La valeur de la corrélation corrigée sera donnée en fonction de l'intercorrélation non corrigée Cornc(k) par: Cor k = Cor nc k + C + k - C - k k = 0 , , N s - 1

Figure imgb0015
The corrected correlation value will be given as a function of the uncorrected intercorrelation Cor nc (k) by: Horn k = Horn nc k + VS + k - VS - k k = 0 , ... , NOT s - 1
Figure imgb0015

Comme nous sommes en situation de recouvrement seuls les Ns premiers coefficients d'intercorrélation sont pris en compte et sont donc à corriger.As we are only covering situation the N s first cross-correlation coefficients are taken into account and are therefore correct.

La correction introduite par l'équation (9) est donc appliquée à l'étape E84. A l'issue de cette étape, les valeurs de corrélation corrigées Cor(k) sont comparées à un seuil à l'étape E34 comme décrit en référence à la figure 3.The correction introduced by equation (9) is therefore applied to step E84. At the end of this step, corrected correlation values Cor (k) are compared with a threshold at step E34 as described with reference to FIG.

Les permutations Pe et Ps sont définies par des tables respectives TabPe et TabPs qui sont calculées à l'étape d'initialisation E31 de la figure 3.The permutations Pe and Ps are defined by respective tables TabPe and TabPs which are calculated at the initialization step E31 of FIG.

La table de permutation TabPe à affecter aux valeurs de x w du vecteur de signal d'entrée est calculée par exemple par le code ci-dessous en fonction du polynôme générateur nommé "poly", de la fonction "xor" et de Ms le degré du polynôme générateur. Cette table de permutation est ensuite stockée en mémoire.

 N = (1 << Ms) - 1;
 state = 1;
 
 TabPe[0] state;
 
 for(i = 1; i < N; i++)
   {
   state = ((state << 1) & N) | (xor(poly & state) &1);
   TabPe[i] = state;
 }
The permutation table TabPe to be assigned to the values of x w of the input signal vector is calculated for example by the code below according to the generator polynomial named "poly", the function "xor" and Ms the degree of the generator polynomial. This permutation table is then stored in memory.
 N = (1 << Ms) - 1;
 state = 1;
 
 TabPe [0] state;
 
 for (i = 1; i <N; i ++)
   {
   state = ((state << 1) & N) | (xor (poly & state) &1);
   TabPe [i] = state;
 } 

L'état du registre state va prendre toutes les valeurs comprises entre 1 et N-1 mais dans un ordre qui sera caractérisé par la table de permutation. L'état state est d'abord initialisé à 1. Pour calculer l'état state à l'instant suivant, les bits de state à l'instant courant sont décalés vers la gauche d'une position et masqués par l'entier ayant Ms bits de poids faible à 1. On ajoute au résultat de cette opération, en position de bit de poids faible, le résultat du ou exclusif du produit du polynôme par l'état (poly & state) masqué par l'entier 1. Ici de nouveau la séquence de permutation est calculée en faisant appel au nombre minimum d'opérations binaires comme décrit précédemment pour la génération de la séquence PN.The state of the state register will take all values between 1 and N-1 but in an order that will be characterized by the permutation table. The state state is first initialized to 1. To calculate the state state at the next instant, the state bits at the current time are shifted to the left of a position and masked by the integer having M s bits of low weight to 1. We add to the result of this operation, in the least significant bit position, the result of the exclusive or the product of the polynomial by the state (poly & state) masked by the integer 1. Here again the permutation sequence is calculated using the minimum number of bit operations as previously described for generation of the PN sequence.

TabPs, la table de la permutation Ps à affecter sur les valeurs de xe en sortie de la transformée d'Hadamard est calculée par le code représenté ci-dessous en fonction du polynôme générateur "poly" et de Ms le degré du polynôme générateur. Cette table de permutation est ensuite stockée en mémoire.

 N = (1 << Ms) - 1;
 int state = 1 << (Ms - 1);// Initialisation du registre à décalage
 
 TabPs[0] = state;
 
 for(i = 1; i < N; i++)
   {
   state = (state >> 1) ^(poly * (state & 1));
   TabPs[i] =state;
 }
TabPs, the table of the permutation Ps to be assigned on the values of x e at the output of the Hadamard transform is calculated by the code shown below as a function of the generator polynomial "poly" and Ms the degree of the generator polynomial. This permutation table is then stored in memory.
 N = (1 << Ms) - 1;
 int state = 1 << (Ms - 1); // Initializing the shift register
 
 TabPs [0] = state;
 
 for (i = 1; i <N; i ++) 
   {
   state = (state >> 1) ^ (poly * (state &1));
   TabPs [i] = state;
 } 

La variable d'état du registre state est d'abord initialisée à 2Ms-1. Ensuite, pour calculer l'état state à l'instant suivant, les bits de state à l'instant courant sont d'abord décalés d'une position vers la droite. L'état à l'instant suivant est le résultat de l'opération "ou exclusif' bit à bit du résultat de l'opération précédente avec le produit du polynôme par l'état (poly & state) masqué par l'entier 1. Ici de nouveau la séquence de permutation est calculée en faisant appel au nombre minimum d'opérations binaires.The state variable of the state register is first initialized to 2 Ms -1. Then, to calculate the state state at the next instant, the state bits at the current time are first shifted one position to the right. The state at the next instant is the result of the operation "or exclusive" bit by bit of the result of the previous operation with the product of the polynomial by the state (poly & state) masked by the integer 1. Here again the permutation sequence is calculated using the minimum number of bit operations.

En référence à la figure 9, nous allons à présent décrire un second mode de réalisation pour l'étape de calcul de corrélation E33. Dans ce mode de réalisation, la méthode de transformation rapide est une méthode de transformation de Fourier.With reference to FIG. 9 , we will now describe a second embodiment for the correlation calculation step E33. In this embodiment, the fast transformation method is a Fourier transform method.

Ainsi, à l'issue de l'étape E32, un bloc courant x w (n) de N échantillons a été préparé.Thus, at the end of step E32, a current block x w ( n ) of N samples was prepared.

L'opération suivante E91 consiste à calculer la transformée de Fourier du vecteur x w (n) pour obtenir la transformée X w .The following operation E91 consists of calculating the Fourier transform of the vector x w ( n ) to get the transform X w .

Dans ce mode de réalisation, le calcul de la corrélation s'effectue selon l'équation (10) suivante: Cor k = n = 0 N - 1 w n x w n + k

Figure imgb0016
La transformée de Fourier de Cor(k) est donnée par: FFT C or = W * X w
Figure imgb0017

W * et X w sont respectivement les transformées de Fourier de w et de x w . En conséquence: C or = FFT - 1 W * X w
Figure imgb0018
In this embodiment, the calculation of the correlation is performed according to the following equation (10): Horn k = Σ not = 0 NOT - 1 w not x w not + k
Figure imgb0016
The Fourier transform of Cor (k) is given by: FFT VS ~ gold = W ~ * X ~ w
Figure imgb0017

or W * and X w are respectively the Fourier transforms of w and of x w . Consequently: VS ~ gold = FFT - 1 W ~ * X ~ w
Figure imgb0018

La transformée de la séquence aléatoire w , qu'elle soit issue d'une séquence générée avec une seule clé ou une séquence générée par une première clé et cryptée par une seconde est soit effectuée lors de l'étape E91, soit effectuée à l'étape d'initialisation puis stockée comme pour l'obtention de la séquence aléatoire.The transform of the random sequence w , whether from a sequence generated with a single key or a sequence generated by a first key and encrypted by a second is either performed during step E91, or performed at the initialization step and then stored as for obtaining the random sequence.

Dans le cas où la séquence aléatoire est cryptée, cette séquence n'est pas générée selon le procédé de génération de séquence PN décrit précédemment mais selon une génération de séquence aléatoire basée par exemple sur une génération de nombres aléatoires.In the case where the random sequence is encrypted, this sequence is not generated according to the PN sequence generation method described above but according to a random sequence generation based for example on a generation of random numbers.

Lors de l'étape d'initialisation E31, le complexe conjuguée W* de la transformée de Fourier W est également calculé et stocké en mémoire.During the initialization step E31, the conjugate complex W * of the Fourier transform W is also calculated and stored in memory.

A l'étape E92, le produit de W * X w dans le domaine de Fourier est effectué. On obtient ainsi Y (k) = X w (k) W* (k) pour k allant de 0 à N-1. Puis, à l'étape E93, on applique une transformée de Fourier inverse de ce produit pour en déduire l'intercorrélation comme décrit par l'équation (12).In step E92, the product of W * X w in the Fourier domain is performed. We obtain Y ( k ) = X w ( k ) W * ( k ) for k ranging from 0 to N-1. Then, in step E93, an inverse Fourier transform of this product is applied to deduce the cross-correlation as described by equation (12).

On obtient ainsi les valeurs de corrélation Cor(k) que l'on compare à un seuil pour les Ns premiers échantillons comme décrit à l'étape E34 en référence à la figure 3.The correlation values Cor (k) are thus obtained which are compared with a threshold for the first Ns samples as described in step E34 with reference to FIG.

Comme dans le mode de réalisation utilisant la transformation d'Hadamard, des termes parasites apparaissent, ces termes pouvant être éliminés en appliquant la correction décrite par les équations 7, 8 et 9 précédentes.As in the embodiment using the Hadamard transformation, parasitic terms appear, these terms being removable by applying the correction described by the above equations 7, 8 and 9.

Cette façon de procéder, nécessite une FFT de grande taille lorsque l'identificateur de tatouage a une taille importante, par exemple N = 4096 ou N = 8192 , cas usuels pour les signaux audionumériques.This procedure requires a large FFT when the tattoo identifier has a large size, for example N = 4096 or N = 8192, common cases for digital audio signals.

Pour éviter cela, une première variante de réalisation de ce second mode de réalisation est maintenant décrite en référence à la figure 10.To avoid this, a first variant embodiment of this second embodiment is now described with reference to FIG.

Cette solution consiste à calculer la corrélation pour des blocs en recouvrement, en segmentant le calcul de la FFT en plusieurs FFT de tailles plus petites, de nouveau en recouvrement. Par exemple pour une taille de 8192, on pourra effectuer R = 8 FFT de taille 1024 et sommer les résultats des intercorrélations partielles.This solution consists of calculating the correlation for overlapping blocks by segmenting the calculation of the FFT into several smaller size FFTs, again in recovery. For example for a size of 8192, we can perform R = 8 FFT of size 1024 and sum the results of the partial intercorrelations.

La technique proposée consiste à subdiviser la séquence xw (n) en sous-séquences xwi (n) qui se recouvrent comme suit: x wi n = x w n + N s i n = 0 , 1 , , 2 N s , i = 0 , 1 , , R - 1

Figure imgb0019
et la séquence w(n) en sous-séquences wi (n) telles que : w i n = { w n + N s i n = 0 , 1 , , N s - 1 0 n = N s , , 2 N s - 1 i = 0 , 1 , , R - 1
Figure imgb0020
The proposed technique consists in subdividing the sequence x w ( n ) into subsequences x wi ( n ) which overlap as follows: x wi not = x w not + NOT s i not = 0 , 1 , , 2 NOT s , i = 0 , 1 , , R - 1
Figure imgb0019
and the sequence w ( n ) in subsequences w i ( n ) such that: w i not = { w not + NOT s i not = 0 , 1 , , NOT s - 1 0 not = NOT s , , 2 NOT s - 1 i = 0 , 1 , , R - 1
Figure imgb0020

On peut remarquer que la séquence xwi(n) i = 0,..., R - 1 comprend en fait N+Ns termes, la dernière sous-séquence étant égale à x w R-1(n) = xw (n+Ns (R-1)) n = 0,1,···,2Ns -1We can notice that the sequence x wi (n) i = 0, ..., R - 1 actually comprises N + N s terms, the last subsequence being equal to x w R -1 ( n ) = x w ( n + N s ( R -1)) n = 0.1, ···, 2 N s -1

Pour chaque paire de sous-séquence xwi (n) et wi (n) de longueur 2Ns, la séquence Cori (m) représentant la corrélation périodique de xwi (n) et wi (n) est calculée. Ce qui s'écrit avec les séquences originales xw (n) et w(n) : Cor i = n = 0 N s - 1 x w n + i N s w n + i N s + m m = 0 , 1 , , N s

Figure imgb0021
For each pair of subsequences x wi ( n ) and w i ( n ) of length 2 N s , the sequence Cor i ( m ) representing the periodic correlation of x wi ( n ) and w i ( n ) is calculated. What is written with the original sequences x w (n) and w ( n ): Horn i = Σ not = 0 NOT s - 1 x w not + i NOT s w not + i NOT s + m m = 0 , 1 , , NOT s
Figure imgb0021

En sommant ces corrélations partielles sur les R sous-blocs, on obtient la corrélation totale entre les deux séquences. Il existe cependant une méthode plus efficace pour calculer les intercorrélations en passant par la FFT.Summing these partial correlations on the R sub-blocks, we obtain the total correlation between the two sequences. However, there is a more efficient method for calculating intercorrelations through the FFT.

Pour cela on calcule Xwi (k) et Wi (k), les FFT des signaux xwi (n) et wi (n) puis le produit: Y i k = W i * k X wi k

Figure imgb0022
For that we calculate X wi ( k ) and W i ( k ), the FFTs of the signals x wi ( n ) and w i (n) then the product: Y i k = W ~ i * k X ~ wi k
Figure imgb0022

En sommant les contributions sur les R sous-trames de Y i dans le domaine fréquentiel et en effectuant une transformée de Fourier inverse, on obtient l'intercorrélation cherchée: C or = IFFT i = 0 R - 1 Y i

Figure imgb0023
Summing up the contributions on the R subframes of Y i in the frequency domain and performing an inverse Fourier transform, the desired cross-correlation is obtained: VS ~ gold = IFFT Σ i = 0 R - 1 Y ~ i
Figure imgb0023

Ainsi, en référence à la figure 10, on obtient à l'étape E110 les séquences W i * i = 0 , , R - 1

Figure imgb0024
supposées avoir été calculées à l'initialisation par FFT de w i défini par l'équation (15).Thus, with reference to FIG. 10 , in step E110 the sequences W ~ i * i = 0 , ... , R - 1
Figure imgb0024
assumed to have been calculated on initialization by FFT of w i defined by equation (15).

Ensuite pour chaque sous-bloc en recouvrement de i=0 E120 à i=R-1 E160, on calcule la transformée de Fourier de xwi (n) à l'étape E130 puis on effectue le produit complexe Y i = W i * X wi

Figure imgb0025
à l'étape E140 et on somme le résultat dans le tableau de nombres complexes Z à l'étape E150. Lorsque les R contributions de Y i = W i * X wi
Figure imgb0026
ont été sommées on sort de la boucle en réponse positive au test E160 et l'intercorrélation s'obtient en calculant la FFT inverse de Z à l'étape E170. La taille de la FFT inverse est de 2 Ns. Then, for each overlapping sub-block of i = 0 E120 at i = R-1 E160, the Fourier transform of x wi ( n ) is calculated in step E130 and then the complex product is made. Y ~ i = W i * X ~ wi
Figure imgb0025
in step E140 and sum the result in the array of complex numbers Z in step E150. When R contributions from Y ~ i = W i * X ~ wi
Figure imgb0026
have been summed out of the loop in positive response to the E160 test and the cross-correlation is obtained by calculating the inverse FFT of Z in step E170. The size of the inverse FFT is 2 N s.

Nous allons à présent décrire une seconde variante du second mode de réalisation de l'étape E33 de calcul de corrélation.We will now describe a second variant of the second embodiment of the correlation calculation step E33.

Pour cela, on utilise pour le calcul de l'intercorrélation en recouvrement l'équation (19), l'intercorrélation intervenant cette fois en fonction des échantillons de la séquence retournée de x w (signe - de xw (n-k)): Cor k = n = 0 N - 1 w n x w n + k

Figure imgb0027
La transformée de Fourier de Cor sera alors donnée par la relation suivante: FFT C or = W X w *
Figure imgb0028
For this, the equation (19) is used for the calculation of the overlapping intercorrelation, the intercorrelation occurring this time as a function of the samples of the returned sequence of x w (sign - of x w ( nk )): Horn k = Σ not = 0 NOT - 1 w not x w not + k
Figure imgb0027
The Fourier transform of VS gold will then be given by the following relation: FFT VS ~ gold = W ~ X ~ w *
Figure imgb0028

Pour avoir une valeur de la corrélation sans repliement avec l'intercorrélation utilisant la séquence retournée, il nous faut de nouveau utiliser le recouvrement de: x wi n = x w n - N s + N s i n = 0 , 1 , , 2 N s - 1 , i = 0 , , R - 1

Figure imgb0029
et un nouveau partionnement w dans lequel les zéros sont introduits au début de bloc et non plus à la fin comme dans l'équation (15): w i n = { 0 n = 0 , 1 , , N s - 1 w n + N s i n = N s , , 2 N s - 1 i = 0 , 1 , , R - 1
Figure imgb0030
To have a value of the correlation without folding with the intercorrelation using the returned sequence, we must again use the recovery of: x wi not = x w not - NOT s + NOT s i not = 0 , 1 , , 2 NOT s - 1 , i = 0 , , R - 1
Figure imgb0029
and a new partitioning w in which the zeros are introduced at the beginning of the block and no longer at the end as in equation (15): w i not = { 0 not = 0 , 1 , , NOT s - 1 w not + NOT s i not = NOT s , , 2 NOT s - 1 i = 0 , 1 , , R - 1
Figure imgb0030

On remarquera que dans le cas présent la séquence xwi (n) i=0,...,R-1 utilisée pour le partitionnement comprend les échantillons xw (-Ns +1),..., xw (-1), xw (0), xw (-Ns -1).Note that in the present case the sequence x wi ( n ) i = 0, ..., R -1 used for partitioning comprises the samples x w (- N s +1), ..., x w (- 1), x w (0), x w (- N s -1).

Le calcul de la corrélation sera donné par le même procédé que celui décrit en référence à la figure 10, à ceci près que w i est donné par l'équation (22) et que le tableau de complexe Y i est donné à l'étape E 140 par: Y i k = W i k X wi * k

Figure imgb0031
The calculation of the correlation will be given by the same method as that described with reference to FIG. 10, except that w i is given by equation (22) and the array of complex Y i is given in step E 140 by: Y i k = W ~ i k X ~ wi * k
Figure imgb0031

Selon un mode de réalisation choisi et représenté à la figure 11, un dispositif mettant en oeuvre l'invention est par exemple un micro-ordinateur 210 qui comporte de façon connue, notamment une unité de traitement 220 équipée d'un microprocesseur, une mémoire morte de type ROM 230, une mémoire vive de type RAM 240. Le micro-ordinateur 210 peut comporter de manière classique et non exhaustive les éléments suivants: un clavier, un écran, un microphone, un haut-parleur, une interface de communication, un lecteur de disque, un moyen de stockage...According to an embodiment chosen and shown in FIG. 11, a device embodying the invention is for example a microcomputer 210 which comprises, in a known manner, notably a processing unit 220 equipped with a microprocessor, a read-only memory type ROM 230, RAM RAM type 240. The microcomputer 210 may include in a conventional and non-exhaustive manner the following elements: a keyboard, a screen, a microphone, a speaker, a communication interface, a disk drive, a storage medium ...

La mémoire morte 230 comporte des registres mémorisant un programme d'ordinateur PG comportant des instructions de programme adaptées à mettre en oeuvre un procédé de détection d'identificateur de tatouage selon l'invention tel que décrit en référence à la figure 3. Ce programme PG est ainsi adapté à préparer un bloc courant de N échantillons d'un signal tatoué reçu en entrée 250, à effectuer un calcul de corrélation par une méthode de transformation rapide entre les échantillons du bloc courant et ceux de la séquence aléatoire obtenue à partir d'au moins une valeur d'initialisation reçu en entrée 260 et à comparer les valeurs de corrélations résultantes à un seuil pour en déduire la position de l'identificateur de tatouage en sortie 270.The ROM 230 includes registers storing a computer program PG including program instructions adapted to implement a tattoo identifier detection method according to the invention as described with reference to Figure 3. This program PG is thus adapted to prepare a current block of N samples of a tattooed signal received at input 250, to perform a correlation calculation by a method of rapid transformation between the samples of the current block and those of the random sequence obtained from at least one initialization value received at input 260 and comparing the resulting correlation values to a threshold to derive the position of the output tattoo identifier 270.

Lors de la mise sous tension, le programme PG stocké dans la mémoire morte 230 est transféré dans la mémoire vive qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention.During power-up, the PG program stored in the read-only memory 230 is transferred into the random access memory which will then contain the executable code of the invention as well as registers for storing the variables necessary for the implementation of the invention. .

De manière plus générale un moyen de stockage, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé de détection d'identificateur de tatouage selon l'invention.More generally, a means of storage, readable by a computer or by a microprocessor, whether or not integrated into the device, possibly removable, stores a program implementing the tattoo identifier detection method according to the invention.

Claims (14)

Procédé de détection d'un identificateur de tatouage dans un signal audio, l'identificateur de tatouage ayant été inséré dans le signal audio à partir d'une séquence aléatoire d'une longueur de N échantillons, N étant multiple de Ns, obtenue par au moins une valeur d'initialisation, le procédé étant caractérisé en ce qu'il comporte les étapes suivantes: - préparation d'un bloc courant de N échantillons à partir du signal tatoué; - calcul de corrélation par une méthode de transformation rapide entre les échantillons du bloc courant et ceux de la séquence aléatoire obtenue à partir de la au moins une valeur d'initialisation; - comparaison à un seuil prédéterminé des valeurs de corrélation issues du calcul de corrélation des Ns premiers échantillons; - itération des étapes précédentes avec un bloc courant décalé par rapport au bloc précédent de Ns échantillons tant que le maximum des dites valeurs de corrélation n'est pas supérieure au seuil prédéterminé, le maximum des valeurs de corrélation supérieur au seuil prédéterminé indiquant le début de l'identifïcateur de tatouage A method of detecting a tattoo identifier in an audio signal, the tattoo identifier having been inserted in the audio signal from a random sequence of a length of N samples, N being a multiple of Ns, obtained by at minus an initialization value, the method being characterized in that it comprises the following steps: preparing a current block of N samples from the tattooed signal; correlation calculation by a method of rapid transformation between the samples of the current block and those of the random sequence obtained from the at least one initialization value; comparing with a predetermined threshold the correlation values resulting from the correlation calculation of the first Ns samples; iteration of the preceding steps with a current block shifted with respect to the preceding block of Ns samples as long as the maximum of said correlation values is not greater than the predetermined threshold, the maximum of the correlation values greater than the predetermined threshold indicating the beginning of the tattoo identifier Procédé selon la revendication 1, caractérisé en ce que l'identificateur de tatouage indique la position dans le signal audio d'un message inséré.Method according to claim 1, characterized in that the tattoo identifier indicates the position in the audio signal of an inserted message. Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que l'étape de préparation de bloc courant comprend une étape de filtrage inverse du signal tatoué et une étape de filtrage de Wiener utilisant un filtre calculé à partir d'une fonction de corrélation d'une séquence d'apprentissage de l'identificateur de tatouage.A method according to any one of claims 1 or 2, characterized in that the current block preparation step comprises a step of inverse filtering the tattooed signal and a Wiener filtering step using a filter calculated from a function correlation of a training sequence of the tattoo identifier. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la au moins une valeur d'initialisation est une clé (Ka) qui permet de générer la séquence aléatoire.Method according to any one of claims 1 to 3, characterized in that the at least one initialization value is a key (K a ) which makes it possible to generate the random sequence. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la séquence aléatoire est obtenue par deux valeurs d'initialisation, la première étant une première clé (Ka) permettant de générer une séquence aléatoire intermédiaire, la seconde étant une seconde clé (Kb) permettant de crypter la séquence aléatoire intermédiaire pour obtenir la séquence aléatoire.Method according to any one of claims 1 to 3, characterized in that the random sequence is obtained by two initialization values, the first being a first key (K a ) making it possible to generate an intermediate random sequence, the second being a second key (K b ) for encrypting the intermediate random sequence to obtain the random sequence. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la méthode de transformation rapide est une méthode du type d'Hadamard qui comporte les étapes suivantes: - permutation des échantillons du bloc courant selon une première table de permutation; - application de la transformée d'Hadamard aux échantillons ainsi permutés; - permutation des échantillons du vecteur résultant de la transformée d'Hadamard selon une seconde table de permutation pour obtenir les valeurs de corrélations. Process according to any one of Claims 1 to 4, characterized in that the fast transformation method is a method of the Hadamard type which comprises the following steps: permutation of the samples of the current block according to a first permutation table; - Application of the Hadamard transform to the samples thus permuted; permutation of the samples of the vector resulting from the Hadamard transform according to a second permutation table to obtain the correlation values. Procédé selon la revendication 6, caractérisé en ce qu'il comporte une étape préalable d'initialisation dans laquelle les première et seconde tables de permutation ainsi que la séquence aléatoire sont calculées et mémorisées.Method according to claim 6, characterized in that it comprises a preliminary initialization step in which the first and second permutation tables as well as the random sequence are calculated and stored. Procédé selon la revendication 7, caractérisé en ce que le calcul de la séquence aléatoire, de la première et de la seconde table de permutation est optimisé par un nombre minimum d'opération binaires réalisées sur les bits d'un entier représentant dans chaque cas le registre à décalage de génération de la séquence ou de la table.Method according to claim 7, characterized in that the calculation of the random sequence, the first and the second permutation table is optimized by a minimum number of bit operations performed on the bits of an integer representing in each case the generation shift register of the sequence or table. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que la méthode de transformation rapide est par une méthode de type transformée de Fourier qui comporte les étapes suivantes: - application d'une transformée de Fourier au bloc courant; - calcul d'un produit sur les échantillons résultant de la transformée du bloc courant et ceux du complexe conjuguée de la séquence aléatoire ayant subi une transformée de Fourier; - application d'une transformée inverse de Fourier pour obtenir les valeurs de corrélation. Method according to any one of claims 1 to 5, characterized in that the method of rapid transformation is by a method of Fourier transform type which comprises the following steps: - applying a Fourier transform to the current block; calculating a product on the samples resulting from the transform of the current block and those of the conjugate complex of the Fourier transformed random sequence; - Application of a Fourier inverse transform to obtain the correlation values. Procédé selon la revendication 9, caractérisé en ce qu'il comporte une étape d'initialisation dans laquelle la transformée de Fourier de la séquence aléatoire et son complexe conjugué sont calculés et mémorisés.Method according to claim 9, characterized in that it comprises an initialization step in which the Fourier transform of the random sequence and its conjugate complex are calculated and stored. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que la méthode de transformation rapide est une méthode de type transformée de Fourier qui comporte les étapes suivantes: - segmentation en sous-séquences du bloc courant; - segmentation en sous-séquences de la séquence aléatoire, la deuxième moitié de la sous-séquence aléatoire étant mise à zéro; - application d'une transformée de Fourier aux sous-séquences du bloc courant et aux sous-séquences de la séquence aléatoire; - calcul de corrélations partielles par le produit sur les échantillons résultant de la transformée des sous-séquences du bloc courant et ceux du complexe conjugué des sous-séquences de la séquence aléatoire; - sommation des corrélations partielles calculées; - application d'une transformée de Fourier inverse à la somme issue de l'étape de sommation pour obtenir les valeurs de corrélation. Method according to one of Claims 1 to 5, characterized in that the fast transformation method is a Fourier transform method which comprises the following steps: segmentation into subsequences of the current block; segmentation into subsequences of the random sequence, the second half of the random subsequence being set to zero; - Application of a Fourier transform to the sub-sequences of the current block and the subsequences of the random sequence; calculating partial correlations by the product on the samples resulting from the transformation of the sub-sequences of the current block and those of the conjugate complex of the subsequences of the random sequence; summation of the calculated partial correlations; applying an inverse Fourier transform to the sum resulting from the summing step in order to obtain the correlation values. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que la méthode de transformation rapide est une méthode de type transformée de Fourier qui comporte les étapes suivantes: - segmentation en sous-séquences du bloc courant; - segmentation en sous-séquences de la séquence aléatoire, la première moitié de la sous-séquence aléatoire étant mise à zéro; - application d'une transformée de Fourier aux sous-séquences du bloc courant et aux sous-séquences de la séquence aléatoire; - calcul de corrélations partielles par le produit sur le complexe conjugué des échantillons résultant de la transformée des sous-séquences du bloc courant et ceux des échantillons résultant des sous-séquences de la séquence aléatoire; - sommation des corrélations partielles calculées; - application d'une transformée de Fourier inverse à la somme issue de l'étape de sommation pour obtenir les valeurs de corrélation. Method according to one of Claims 1 to 5, characterized in that the fast transformation method is a Fourier transform method which comprises the following steps: segmentation into subsequences of the current block; segmentation into subsequences of the random sequence, the first half of the random subsequence being set to zero; - Application of a Fourier transform to the sub-sequences of the current block and the subsequences of the random sequence; calculating partial correlations by the product on the conjugate complex of the samples resulting from the transformation of the subsequences of the current block and those of the samples resulting from the subsequences of the random sequence; summation of the calculated partial correlations; applying an inverse Fourier transform to the sum resulting from the summing step in order to obtain the correlation values. Dispositif de détection d'un identificateur de tatouage dans un signal audio, l'identificateur de tatouage ayant été inséré dans le signal audio à partir d'une séquence aléatoire d'une longueur de N échantillons, N étant multiple de Ns, obtenue par au moins une valeur d'initialisation, caractérisé en ce qu'il comporte: - des moyens de préparation d'un bloc courant de N échantillons à partir du signal tatoué; - des moyens de calcul de corrélation par une méthode de transformation rapide entre les échantillons du bloc courant et ceux de la séquence aléatoire obtenue à partir de la au moins une valeur d'initialisation; - des moyens de comparaison à un seuil prédéterminé des valeurs de corrélation issues du calcul de corrélation des Ns premiers échantillons; - des moyens d'obtention d'un nouveau bloc courant par décalage de Ns échantillons par rapport au bloc précédent mis en oeuvre tant que le maximum des dites valeurs de corrélation n'est pas supérieure au seuil prédéterminé. Device for detecting a tattoo identifier in an audio signal, the tattoo identifier having been inserted in the audio signal from a random sequence of a length of N samples, N being a multiple of Ns, obtained by at minus an initialization value, characterized in that it comprises: means for preparing a current block of N samples from the tattooed signal; correlation calculation means by a method of rapid transformation between the samples of the current block and those of the random sequence obtained from the at least one initialization value; means for comparing, at a predetermined threshold, the correlation values derived from the correlation calculation of the first Ns samples; means for obtaining a new current block by shifting Ns samples relative to the preceding block implemented as long as the maximum of said correlation values is not greater than the predetermined threshold. Programme d'ordinateur comprenant des instructions de code pour la mise en oeuvre des étapes d'un procédé de détection d'identificateur de tatouage conforme à l'une des revendications 1 à 12, lorsque ledit programme est exécuté par un processeur.Computer program comprising code instructions for carrying out the steps of a conforming tattoo identifier detection method to one of claims 1 to 12, when said program is executed by a processor.
EP07301153A 2006-07-11 2007-06-27 Method and device for detecting a tattooing identifier in an audio signal Withdrawn EP1887565A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0652919 2006-07-11

Publications (1)

Publication Number Publication Date
EP1887565A1 true EP1887565A1 (en) 2008-02-13

Family

ID=37911214

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07301153A Withdrawn EP1887565A1 (en) 2006-07-11 2007-06-27 Method and device for detecting a tattooing identifier in an audio signal

Country Status (1)

Country Link
EP (1) EP1887565A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106024012A (en) * 2015-08-26 2016-10-12 芯盾(北京)信息技术有限公司 Voice data processing method for vocoder forward information source voice data synchronization

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998037513A1 (en) * 1997-02-20 1998-08-27 Telstra R & D Management Pty. Ltd. Invisible digital watermarks
WO2002049363A1 (en) * 2000-12-15 2002-06-20 Agency For Science, Technology And Research Method and system of digital watermarking for compressed audio
WO2004010376A1 (en) 2002-07-22 2004-01-29 Koninklijke Philips Electronics N.V. Watermark detection
EP1594122A1 (en) * 2004-05-06 2005-11-09 Deutsche Thomson-Brandt Gmbh Spread spectrum watermarking
US6983057B1 (en) * 1998-06-01 2006-01-03 Datamark Technologies Pte Ltd. Methods for embedding image, audio and video watermarks in digital data
EP1837875A1 (en) * 2006-03-22 2007-09-26 Deutsche Thomson-Brandt Gmbh Method and apparatus for correlating two data sections

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998037513A1 (en) * 1997-02-20 1998-08-27 Telstra R & D Management Pty. Ltd. Invisible digital watermarks
US6983057B1 (en) * 1998-06-01 2006-01-03 Datamark Technologies Pte Ltd. Methods for embedding image, audio and video watermarks in digital data
WO2002049363A1 (en) * 2000-12-15 2002-06-20 Agency For Science, Technology And Research Method and system of digital watermarking for compressed audio
WO2004010376A1 (en) 2002-07-22 2004-01-29 Koninklijke Philips Electronics N.V. Watermark detection
EP1594122A1 (en) * 2004-05-06 2005-11-09 Deutsche Thomson-Brandt Gmbh Spread spectrum watermarking
EP1837875A1 (en) * 2006-03-22 2007-09-26 Deutsche Thomson-Brandt Gmbh Method and apparatus for correlating two data sections

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
ALRUTZ AND M R SCHROEDER H: "A FAST HADAMARD TRANSFORM ALGORITHM FOR THE EVALUATION OF MEASUREMENTS USING PSEUDORANDOM TEST SIGNALS", ICA. PROCEEDINGS OF THE INTERNATIONAL CONGRESS ON ACOUSTICS, XX, XX, no. 11TH, 1983, pages 235 - 238, XP008075716 *
BARAS C ET AL: "An Audio Spread-Spectrum Data Hiding System with an Informed Embedding Strategy Adapted to a Wiener Filtering Based Receiver", MULTIMEDIA AND EXPO, 2005. ICME 2005. IEEE INTERNATIONAL CONFERENCE ON AMSTERDAM, THE NETHERLANDS 06-06 JULY 2005, PISCATAWAY, NJ, USA,IEEE, 6 July 2005 (2005-07-06), pages 1022 - 1025, XP010843215, ISBN: 0-7803-9331-7 *
CVEJIC N AND SEPPANEN T: "IMPROVING AUDIO WATERMARKING SCHEME USING PSYCHOACOUSTIC WATERMARK FILTERING", PROCEEDINGS OF IEEE INTERNATIONAL SYMPOSIUM ON SIGNAL PROCESSING AND INFORMATION TECHNOLOGY, CAIRO, EGYPT, 28 December 2001 (2001-12-28) - 30 December 2001 (2001-12-30), XP008078163 *
HADDAD MOHSEN ET AL: "OPTIMAL DETECTOR FOR AN ADDITIVE WATERMARKING SCHEME BASED ON HUMAN AUDITORY SYSTEM", PROCEEDINGS OF THE SPIE, SPIE, BELLINGHAM, VA, US, vol. 6072, 17 February 2006 (2006-02-17), pages 60721Z - 1, XP008078028, ISSN: 0277-786X *
KIROVSKI D ET AL: "SPREAD-SPECTRUM WATERMARKING OF AUDIO SIGNALS", IEEE TRANSACTIONS ON SIGNAL PROCESSING, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 51, no. 4, April 2003 (2003-04-01), pages 1020 - 1033, XP001171826, ISSN: 1053-587X *
MUNTEAN T ET AL: "Audio digital watermarking based on hybrid spread spectrum", WEB DELIVERING OF MUSIC, 2002. WEDELMUSIC 2002. PROCEEDINGS. SECOND INTERNATIONAL CONFERENCE ON 9-11 DEC. 2002, PISCATAWAY, NJ, USA,IEEE, 9 December 2002 (2002-12-09), pages 150 - 155, XP010626956, ISBN: 0-7695-1623-8 *
PARASKEVI BASSIA ET AL.: "Robust Audio Watermarking in The Time Domain", IEEE TRANSACTIONS ON MULTIMEDIA, IEEE SERVICE CENTER, vol. 3, no. 2, June 2001 (2001-06-01)
PARASKEVI BASSIA ET AL: "Robust Audio Watermarking in the Time Domain", IEEE TRANSACTIONS ON MULTIMEDIA, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 3, no. 2, June 2001 (2001-06-01), XP011036241, ISSN: 1520-9210 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106024012A (en) * 2015-08-26 2016-10-12 芯盾(北京)信息技术有限公司 Voice data processing method for vocoder forward information source voice data synchronization
CN106024012B (en) * 2015-08-26 2019-11-12 河南芯盾网安科技发展有限公司 The voice data processing method synchronous for information source voice data before vocoder

Similar Documents

Publication Publication Date Title
WO2009095574A2 (en) Method and entity for probabilistic symmetrical encryption
JP2009530677A (en) Method and apparatus for correlating two data areas
EP2856663B1 (en) Method of wireless communication with a multi-antenna receiver
FR2700430A1 (en) A method of authenticating at least one identification device by a verification device and device for its implementation.
EP1368930A2 (en) Cryptographic authentication with ephemeral modules
EP2962301B1 (en) Generation of a signature of a musical audio signal
EP1215839A1 (en) Method and Device for Multi-user Detection
EP2936715B1 (en) Method of decoying of a system for interception and jamming by inserting dummy synchronization patterns into the signal emitted and emitter implementing the method
FR2748877A1 (en) REDUCED BANDWIDTH DIGITAL SIGNATURE PROTOCOL
EP2391051A1 (en) Method for determining a representation of a multiplication and method for computing a function
WO2006117268A1 (en) Method for the iterative decoding of an ofdm/oqam signal using symbols with complex values, and corresponding device and computer program
EP1887565A1 (en) Method and device for detecting a tattooing identifier in an audio signal
WO2003042813A2 (en) Method for generating random numbers
EP1989807A1 (en) Method and system for transmitting a message expressed by means of a polynomial
WO2016001171A1 (en) Method and device for secure transmission of a confidential code between terminals
EP1244244A1 (en) Global MMSE equalisation
EP1005748B1 (en) Multicarrier modulation using weighted prototype functions
EP4096144A1 (en) Improved countermeasures by infection
FR2880149A1 (en) Cryptography key data storing method for e.g. chip card, involves converting data, from cryptography key and used with operand within Euclidean operation, into data to be used with operand within Montgomery operation
EP3857810B1 (en) Cryptographic method of secure comparison of two secret data x and y
EP1050987A1 (en) CDMA multiple access method with improved capacity
EP3843327A1 (en) Method for encoding a small-size cryptographic integrity pattern and associated devices
FR2976101A1 (en) METHOD FOR CRYPTOGRAPHIC DATA PROCESSING
EP0743775B1 (en) Method of zero-knowledge digital signatures, for creating a collision-resistant signature
EP0980607A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK YU

17P Request for examination filed

Effective date: 20080722

17Q First examination report despatched

Effective date: 20080909

AKX Designation fees paid

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

RIC1 Information provided on ipc code assigned before grant

Ipc: G10L 19/018 20130101ALI20151104BHEP

Ipc: G10L 19/00 20130101AFI20151104BHEP

Ipc: G10L 25/06 20130101ALI20151104BHEP

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20151217

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20160429