Register or Login To Download This Patent As A PDF
| United States Patent Application |
20090150165
|
| Kind Code
|
A1
|
|
KEATING; Stephen Mark
;   et al.
|
June 11, 2009
|
ENCODING AND DETECTING APPARATUS
Abstract
An encoding data processing apparatus generates a marked version of an
audio signal provided on an audio channel. The marked copy is generated
by embedding data representative of a payload data word into the audio
signal. The encoding data processing apparatus comprises a code word
generator operable to generate a water mark code word from the payload
data word and to read data representing the water mark code word into a
shuffle data store. A shuffle processor is operable to generate pseudo
randomly at least one address within an address space of the shuffle data
store for each predetermined period and to read data representing part or
parts of the water mark code word out from the data store at locations
identified by the randomly generated address, and a data embedding
processor operable to receive the audio signal and to embed the data
representing the part or parts of the water mark code word read out from
the shuffle data store into the audio signal for each predetermined
period. In one example, the audio signal is one of a plurality of audio
signals, each of which is provided on one of a plurality of audio
channels of a media item, and the marked copy is generated by embedding
the part or parts of the data representative of a payload data word into
the audio signal of one or more of the audio channels. As such, even
though different parts of the water mark code word may be embedded into
the different audio channels, because of the pseudo-random generation of
addresses, there is an increased likelihood that if there is a sufficient
of the marked audio signal available, then the water mark code word can
be recovered from the different audio channels or one of the audio
channels.
| Inventors: |
KEATING; Stephen Mark; (Lower Early, GB)
; Hooper; Daniel Luke; (Woking, GB)
; Russell; Mark Julian; (Maidenhead, GB)
|
| Correspondence Address:
|
OBLON, SPIVAK, MCCLELLAND MAIER & NEUSTADT, P.C.
1940 DUKE STREET
ALEXANDRIA
VA
22314
US
|
| Assignee: |
Sony Corporation
Tokyo
JP
|
| Serial No.:
|
274836 |
| Series Code:
|
12
|
| Filed:
|
November 20, 2008 |
| Current U.S. Class: |
704/500; 704/E19.001 |
| Class at Publication: |
704/500; 704/E19.001 |
| International Class: |
G10L 21/00 20060101 G10L021/00 |
Foreign Application Data
| Date | Code | Application Number |
| Dec 11, 2007 | GB | 0724174.8 |
Claims
1. An encoding data processing apparatus for generating a marked version
of an audio signal provided on an audio channel, the marked copy being
generated by embedding data representing a payload data word into the
audio signal, the encoding data processing apparatus comprisinga code
word generator operable to generate a water mark code word from the
payload data word and to read data representing the water mark code word
into a shuffle data store, anda shuffle processor operable to generate
pseudo randomly at least one address within an address space of the
shuffle data store for each predetermined period and to read data
representing part or parts of the water mark code word out from the
shuffle data store at locations identified by the randomly generated
address, anda data embedding processor operable to receive the audio
signal and to embed the data representing the part or parts of the water
mark code word read out from the shuffle data store into the audio signal
for each predetermined period.
2. An encoding data processing apparatus as claimed in claim 1, wherein
the audio signal is one of a plurality of audio signals, each of which is
provided on one of a plurality of audio channels of a media item, and the
marked copy is generated by embedding the part or parts of the data
representative of a payload data word into the audio signal of one or
more of the audio channels.
3. An encoding data processing apparatus as claimed in claim 2, wherein
the shuffle processor is operable to generate pseudo randomly the address
within the address space of the shuffle data store for each of the one or
more audio channels for each predetermined period and to read the data
representing the part or parts of the water mark code word out from the
data store at locations identified by the randomly generated address for
each audio channel, andthe data embedding processor is operable to
receive the audio signals for each of the one or more audio channels and
to embed the data representing the part or parts of the water mark code
word read out from the shuffle data store for each of the one or more
audio channels into the audio signal for that channel for each
predetermined period.
4. An encoding data processing apparatus as claimed in claim 3,
comprisingan up-sampler operable to receiver the part or parts of the
water mark read out from the shuffle data store and to up-sample the part
or parts of the water mark for the predetermined period so that a
sampling rate of the water mark code word part or parts corresponds to
that of the audio signal.
5. An encoding data processing apparatus as claimed in claim 1, wherein
the water mark code word is formed from a plurality of encrypted data
streams.
6. An encoding data processing apparatus as claimed in claim 2, wherein
the code word generator comprisesa pre-processor operable to receive the
payload data word for embedding in the material item and to form a
plurality of initial values from the payload data word, andan encryption
circuit operable to receive the plurality of initial values and a payload
key, to encrypt the plurality of initial values to form the plurality of
encrypted data streams using the payload key, the encrypted data streams
forming the water mark code word, the encrypted data streams being read
into the shuffle data store for reading out by the shuffling processor.
7. An encoding data processing apparatus as claimed in claim 1, wherein
the pre-processor is operableto divide the payload data word into a
plurality of parts, andto form the plurality of initial values from the
plurality of parts, each of the initial values being formed by adding
parts of the payload data word to each initial value successively
starting with the first part added to the first initial value, and adding
the first and second to the second initial value so that each subsequent
initial value includes all the parts of the payload data word of those of
the previous initial values in addition to a new part of the payload data
word.
8. An encoding data processing apparatus as claimed in claim 1, wherein
the shuffle processor includes an address generator, the address
generator being operable to generate pseudo randomly the at least one
address within the address space of the shuffle data store in accordance
with an encryption algorithm using an encryption key.
9. An encoding data processing apparatus as claimed in claim 1, wherein
the at least one address generated by the address generator is arranged
to read out from the data store a fraction of the plurality of encrypted
data streams forming the water mark code words from the data store for
embedding in each of the one or more audio signals for each predetermined
period.
10. An encoding data processing apparatus as claimed in claim 1, wherein
the encryption algorithm in accordance with which the address generator
generates the at least one address of the data store is the Rijndael
algorithm.
11. A media terminal operable to form a marked copy of an item of material
for reproduction by introducing a payload data word into a copy of the
material, the media terminal comprisinga reproducing apparatus for
reproducing the material item, andan encoding data processing apparatus
for generating a marked version of an audio signal provided on an audio
channel, the marked copy being generated by embedding data representing a
payload data word into the audio signal, the encoding data processing
apparatus comprisinga code word generator operable to generate a water
mark code word from the payload data word and to read data representing
the water mark code word into a shuffle data store, anda shuffle
processor operable to generate pseudo randomly at least one address
within an address space of the shuffle data store for each predetermined
period and to read data representing part or parts of the water mark code
word out from the shuffle data store at locations identified by the
randomly generated address, anda data embedding processor operable to
receive the audio signal and to embed the data representing the part or
parts of the water mark code word read out from the shuffle data store
into the audio signal for each predetermined period.
12. A detecting data processing apparatus operable to detect a payload
data word embedded within a marked copy of an audio signal by the
encoding data processing apparatus according to claim 1 or the media
terminal according to claim 11, the detecting data processing apparatus
comprisinga recovery processor operable to generate, for each
predetermined period of the audio signal, data representative of an
estimate of part or parts of a water mark code word embedded by the
encoding data processing apparatus into each predetermined period,an
address generator operable to generate pseudo randomly at least one
address within an address space of a shuffle data store for each of
predetermined period and to read the data representing the estimate of
the part or parts of the water mark code word into the shuffle data store
stored at locations identified by the pseudo randomly generated address,
the address generator being arranged to generate the same address for
each predetermined period as those generated by the encoding data
processing apparatus,a code word generator operable under control of a
control processor to regenerate each of a plurality of possible code
words which may have been embedded within the material item, anda
correlator operable under control of the control processor to detect the
code word corresponding to the code word which has been embedded to form
the marked version of the audio signal, by correlating the re-generated
code word with the estimate of the code word read out from the shuffle
data store, the control processor being operable to recover the payload
data word for the code word detected as a result of the correlation.
13. A detecting data processing apparatus as claimed in claim 12, wherein
the audio signal is one of a plurality of audio signals, each of which is
provided on one of a plurality of audio channels of a media item, and the
marked copy is generated by embedding the part or parts of the data
representative of a payload data word into the audio signal of one or
more of the audio channels, and the recovery processor is operable to
generate, for each predetermined period, the data representative of an
estimate of part or parts of a water mark code word from a pattern used
to embed the part of parts of the water mark code word into the one of
more audio channels.
14. A method of generating a marked version of an audio signal provided on
an audio channel, the marked copy being generated by embedding data
representative of a payload data word into the audio signal, the method
comprisinggenerating a water mark code word from the payload data
word,reading data representing the water mark code word into a shuffle
data store,generating pseudo randomly at least one address within an
address space of the shuffle data store for each predetermined
period,reading data representing part or parts of the water mark code
word out from the data store at locations identified by the randomly
generated address, andembedding the data representing the part or parts
of the water mark code word read out from the shuffle data store into the
audio signal for each predetermined period.
15. A method of detecting a payload data word embedded within a marked
copy of and audio signal according to the method of claim 14, the method
of detecting comprisingrecovering, for each predetermined period of the
audio signal data representative of an estimate of part or parts of a
water mark code word embedded by the encoding data processing apparatus
into each predetermined period of the audio signal,generating pseudo
randomly at least one address within an address space of a shuffle data
store for each of the predetermined periods,reading the data representing
the estimate of the part or parts of the water mark code word into the
shuffle data store at locations identified by the pseudo randomly
generated address, the address generator being arranged to generate the
same address for each predetermined period as those generated by the
encoding data processing apparatus,re-generating each of a plurality of
possible code words which may have been embedded within the audio
signal,detecting the code word corresponding to the code word which has
been embedded to form the marked version of the audio signal, by
correlating the re-generated code word with the estimate of the code word
read out from the shuffle data store, andrecovering the payload data word
for the code word detected as a result of the correlation.
16. A medium bearing data representing a marked copy video material item
in which a code word representing a payload data word has been embedded
by the encoding data processing apparatus according to claim 1.
17. A signal representing a marked copy video material item in which a
code word representing a payload data word has been embedded by the
encoding data processing apparatus according to claim 1.
18. A data bearing medium bearing computer program code, which when loaded
onto a data processor, causes the data processor to perform the method
according to claim 14.
19. A data bearing medium according to claim 18, wherein the medium is a
storage medium.
Description
FIELD OF INVENTION
[0001]The present invention relates to encoding data processing apparatus
and methods for generating marked copies of audio signals by embedding a
payload data word into copies of the material items.
[0002]Correspondingly, the present invention also relates to detecting
data processing apparatus and methods operable to detect code words,
which may be present in marked audio signals.
[0003]The present invention also relates to media terminals for generating
marked copies of audio signals for reproduction. In some applications,
the material items may be video material items, and the media terminal
may form part of a digital cinema projector.
BACKGROUND OF THE INVENTION
[0004]Generally, a technique for embedding data in material to the effect
that the embedded data is perceptible or imperceptible is referred to as
watermarking. Code words are applied to copies of material items for the
purpose of identifying the copy of the material item or for conveying
data represented by the code words. In some applications, watermarking
can provide, therefore, a facility for identifying a recipient of a
particular copy of the material.
[0005]A process in which information is embedded in material for the
purpose of identifying a specific copy of the material is referred to as
finger printing. A code word, which identifies the material, is combined
with the material in such a way that, as far as possible, the code word
is imperceptible in the material. As such, if the material is copied or
used in a way, which is inconsistent with the wishes of the owner,
distributor or other rights holder of the material, the copy of the
material can be identified from the code word, so that the right holder
can take appropriate action. The code word is therefore used to convey a
payload data word, which can be used to identify uniquely the copy of the
material. In the following description and claims, the term "water mark"
and "finger printing" may be used interchangeably, particularly in
respect of the encoding and detection techniques disclosed.
[0006]In co-pending UK patent application number 0327854.6 an encoding
data processor is disclosed for application to for example digital cinema
in which payload data having two or more fields is represented by
watermarking an image with one or more code words. Each value of a first
field of a payload data word is associated with a first code word, and
each value of a second or subsequent data field is represented by a
second code word, which is selected in dependence upon the value of the
first data field. As such a detected code word can be used to identify
one of a plurality of sub-sets into which the data words are divided,
each data word in the sub-set having the same value in the first field. A
second or subsequent field of the data word from the sub-set can be then
identified by detecting a second code word from the material item. The
second code word identifies a value in the second data field as well as
the value of the first data field.
[0007]The first and second fields can be assigned to different associated
parameters such as for example address parameters. The first field could
therefore identify the country of distribution of the material, whereas
the second field could identify a particular distribution outlet within
the country. A watermarking or finger printing system can be formed for
identifying a point of distribution of copies of video material.
[0008]UK patent application number 0424225.1 discloses an apparatus and
method for embedding a payload data word into video images for
application to digital cinema. The payload data word includes a data
field providing a representation of a date and time of reproduction of
the video images, and a data field providing a representation of an
identifying codeword of the projector.
[0009]Generally, it is desirable to reduce a likelihood of an embedded
code word being detectable. If a code word is detected, the payload data
word may be determined. As a result the watermarking system could be
compromised by attackers wishing to remove a code word or to include a
false code word to disrupt detection of the payload data.
SUMMARY OF INVENTION
[0010]According to an aspect of the present invention there is provided an
encoding data processing apparatus for generating a marked version of an
audio signal provided on an audio channel. The marked copy is generated
by embedding data representative of a payload data word into the audio
signal. The encoding data processing apparatus comprises a code word
generator operable to generate a water mark code word from the payload
data word and to read data representing the water mark code word into a
shuffle data store. A shuffle processor is operable to generate pseudo
randomly at least one address within an address space of the shuffle data
store for each predetermined period and to read data representing part or
parts of the water mark code word out from the data store at locations
identified by the randomly generated address, and a data embedding
processor operable to receive the audio signal and to embed the data
representing the part or parts of the water mark code word read out from
the shuffle data store into the audio signal for each predetermined
period.
[0011]In one example, the audio signal is one of a plurality of audio
signals, each of which is provided on one of a plurality of audio
channels of a media item, and the marked copy is generated by embedding
the part or parts of the data representative of a payload data word into
the audio signal of one or more of the audio channels. As such, even
though different parts of the water mark code word may be embedded into
the different audio channels, because of the pseudo-random generation of
addresses, there is an increased likelihood that if there is a sufficient
amount of the marked audio signal available, then the water mark code
word can be recovered from the different audio channels or one of the
audio channels.
[0012]Embodiments of the present invention can provide an arrangement in
which parts of a code word are stored in a shuffle data store and read
out pseudo randomly for combining with the audio signal. As such, by
randomly embedding different parts of the code word into each
predetermined period of an audio signal, a likelihood of an attacker
being able to identify the code word within the audio signal is
substantially reduced. Security of the payload data word represented by
the water mark code word is therefore improved.
[0013]In some examples, the water mark code word is formed from a
plurality of encrypted data streams. As such, by embedding data
representing parts of the plurality of encrypted data streams pseudo
randomly read out from the shuffle data store by the shuffling processor,
a likelihood of an attacker being able to identify the code word in the
marked copy of the material item is reduced.
[0014]Our co-pending, un-published UK patent applications GB0611128.0 and
GB0621093.4 disclose an arrangement for forming a watermark code word,
which has been generated from encrypted data streams and writing the
water mark code word into a shuffle data store. In accordance with the
technique mentioned above, pseudo-random addresses are generated within
the address space of the shuffle data store and part or parts of the
water mark code word from the data store are read out for embedding.
However, the technique is only disclosed with respect to watermarking
video signals.
[0015]According to an aspect of the present invention there is provided a
detecting data processing apparatus operable to detect a payload data
word embedded within a marked copy of an audio signal by the encoding
data processing apparatus according to first aspect of the invention. The
detecting data processing apparatus comprises a recovery processor
operable to generate, for each predetermined period of the audio signal,
data representative of an estimate of part or parts of a water mark code
word embedded by the encoding data processing apparatus into each
predetermined period. An address generator is operable to generate pseudo
randomly at least one address within an address space of a shuffle data
store for each predetermined period and to read the data representing the
estimate of the part or parts of the water mark code word into the
shuffle data store stored at locations identified by the pseudo randomly
generated address. The address generator is arranged to generate the same
address for each predetermined period as those generated by the encoding
data processing apparatus. A code word generator is operable under
control of a control processor to regenerate each of a plurality of
possible code words which may have been embedded within the material
item, and a correlator is operable under control of the control processor
to detect the code word corresponding to the code word which has been
embedded to form the marked version of the audio signal, by correlating
the re-generated code word with the estimate of the code word read out
from the shuffle data store, the control processor being operable to
recover the payload data word for the code word detected as a result of
the correlation.
[0016]A detecting data processing apparatus according to embodiments of
the invention can provide an arrangement for performing a reverse shuffle
effect, to re-generate the pseudo random addresses corresponding to those
generated by the encoding data processing apparatus so as to read into
the shuffle data store in the detecting apparatus the parts of the code
word recovered from each frame of the material. In effect therefore a
reverse operation of the shuffling of the code word which was performed
by the encoding data processing apparatus is made at the detecting data
processing apparatus so that the shuffle data store is reproduced in an
equivalent form to that in the encoding data processing apparatus. Thus
the control processor can read out the re-formed code word from the
shuffle data store to feed the code word to the correlator in order to
determine which code word has been embedded to thereby recover the
payload data word.
[0017]Various further aspects and features of the present invention are
defined in the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0018]Embodiments of the present invention will now be described by way of
example only with reference to the accompanying drawings, where like
parts are provided with corresponding reference numerals, and in which:
[0019]FIG. 1 is a schematic block diagram of a digital cinema reproduction
apparatus and projector;
[0020]FIG. 2 is a schematic block diagram of an encoding data processing
apparatus for combining a payload data word with an audio signal to form
a marked version of the audio signal;
[0021]FIG. 3 is a schematic representation illustrating a formation of
initial values for generating encrypted data streams for embedding in an
audio signal using the encoding data processing apparatus shown in FIG.
2;
[0022]FIG. 4 is a schematic representation illustrating a further example
of initial values for generating encrypted data streams for embedding in
an audio using the encoding data processing apparatus shown in FIG. 2;
[0023]FIG. 5 is a schematic block diagram of a further example of an
encoding data processing apparatus for combining a payload data word with
an audio signal to form a marked version of the audio signal;
[0024]FIG. 6 is a schematic representation illustrating the operation of
the encoding data processing apparatus shown in FIG. 5;
[0025]FIG. 7 is a schematic block diagram of a further example of the
encoding data processing apparatus for combining a payload data word with
an audio signal to form a marked version of the audio signal;
[0026]FIG. 8 is a schematic block diagram of a further example of an
encoding data processing apparatus for combining a payload data word with
an audio signal to form a marked version of the image;
[0027]FIG. 9 is a schematic block diagram of a payload generation
processor forming part of the encoding data processing apparatus show in
FIG. 8;
[0028]FIG. 10 is a schematic block diagram of a shuffle processor for
generating a randomisation of the encrypted data streams which are
combined with the audio signal by the encoding data processing apparatus
of FIG. 8;
[0029]FIG. 11 is a schematic block diagram of a combining processor which
forms part of the encoding data processing apparatus of FIG. 6; and
[0030]FIG. 12 is a schematic block diagram of a detecting data processing
apparatus for detecting a payload data word embedded into audio signals.
DESCRIPTION OF EXAMPLE EMBODIMENTS
[0031]An example application of the present technique relates to
watermarking/finger printing audio signals which are used to reproduce
sound for a film which is produced by digital cinema equipment. Our
co-pending UK patent applications GB0611128.0 and GB0621093.4 disclose an
application with the present technique to introduce data into frames of a
video signal which are then reproduced by a digital cinema projector at
the time of the induction of the film. However, the present technique
concerns embedding data in the form of a finger print or watermark into
an audio signal which is then reproduced within a cinema. An illustration
of this example application is shown in FIG. 1. In FIG. 1, having a
recording medium on which is recorded signals representing digital and
audio signals of a media item such as a film are received within a
reproduction apparatus 2. Fingerprint data, which is used to form a
watermark or fingerprint to be combined with the audio and video signals
is received on an input channel FP by the reproduction apparatus R. Thus,
the reproduction apparatus R reproduces the video signals from the
carrying medium M and the audio signals A1, A2 and combines the finger
print data with the video signals as well as at least one of the audio
signals A1, A2 before they are reproduced by a video projector VP and
loud speakers LP1, LP2 respectively.
[0032]As explained above, embodiments of the present technique could
provide an arrangement for introducing data as payload data to form a
watermark or a fingerprint into audio signals which may be for example
reproduced as part of a digital cinema production. Essentially the
formation of the fingerprint for a combination with the audio signals
corresponds to that which has been disclosed for combining the watermark
code word/finger print with the video signals as disclosed in our
co-pending UK patent application GB0611128.0 and GB0621093.4. However, as
will be explained shortly because there is a plurality of audio channels,
8 for the example of digital cinema, the present technique utilises the
fingerprint data generation process disclosed in our co-pending UK patent
application to combine data with the audio signals for each of the
plurality of channels.
General Encoder
[0033]An encoding data processing apparatus according to an example
embodiment of the present technique is shown in FIG. 2. FIG. 2
illustrates an example application of the present technique, in which the
information material to which data is embedded is audio material. In FIG.
2 a payload data word 1 includes a field indicating a time of generation
of the payload 2, a projector identifier 4 and a digital signature field
6, which is to be embedded for example by a video projector into an audio
signal which is divided into a plurality of time periods. In one example,
as mentioned above the time periods 1/24 seconds. The payload data word 1
may be as long as 4 kbits. The digital signature 6 is passed through an
error correction encoder 8.1, which forms an error correction encoded
digital signature 6.1, which is combined with the time data 2 and the
projector identifier 4 to form a payload data word 1 comprising N-bits.
The N-bit payload data word is then fed on a channel 8.2 to a data word
splitter 8.2, which is arranged to split the N-bit data word into each of
a plurality of 8-bit bytes 12. As shown in FIG. 2 there are n-bytes 12.
The bytes 12 are then passed via a connecting channel 8.4 to an initial
value former 8.5, which forms a number of initial values for use in
generating encrypted data streams. Each of the data streams is formed
from an initial value. In one example each initial value is 128-bits in
length.
[0034]In the present example shown in FIG. 1, 512 initial values are
formed, which are used to form 512 streams. Thus, at the output of the
initial value former 8.5 on a connecting channel 8.6 there is provided
512.times.128 bit initial values from which will be formed 512 different
encrypted data streams providing a water mark code word for embedding.
The formation of the initial values, from which encrypted data streams
are formed, will be described in more detail shortly with reference to
FIG. 3.
[0035]In FIG. 2 each of the initial values is received by an encryption
processor 14 which also receives a payload key via an input channel 16.
The encryption processor 14 may be an AES encryption processor encrypting
the initial values in accordance with an encryption algorithm known as
"Rijndael" encryption. The encryption processor 14 receives each of the
128-bit initial values and generates for each initial value an encrypted
data stream comprising 512 8-bit coefficients. This is done by feeding
back an output from the encryption processor 14 to the input repeatedly a
number of times in order to produce, for each encrypted data stream
512.times.8-bit coefficients. In one example there are 512 encrypted data
streams, so that the water mark code word is formed from 512.times.512
8-bit coefficients, which represents the N-bit payload data word. The
error correction encoder 8.1, the data word splitter 8.3, the initial
value former 8.5 and the encryption processor 14 together form a code
word generator 10. The encrypted data streams are then stored in a
shuffle data store 18, which forms part of a shuffle processor 19. The
encrypted data streams are read out in blocks of 8-bit words from the
shuffle data store 18, which are passed to a Gaussian shaping look up
table processor 20 before being combined with a frame of the video signal
by a combiner 22 to form at the output of the combiner a watermarked
audio signal A'. The combiner is arranged in one example to add the
coefficients of the water mark code word to corresponding samples of the
audio signal.
[0036]Returning to the shuffle data store 18, according to the present
technique, the shuffle processor 19 is arranged to read out the water
mark code word formed from the encrypted data streams substantially
randomly for embedding in the predetermined periods of the audio signal.
To this end, an address of the shuffle data store 18 for reading out the
encrypted data stream is generated by a random address generator 24. The
random address generator 24 generates for each predetermined period of
audio signal a random address, which selects randomly parts of the 512
encrypted initial values. In one example, the random address generator 24
is arranged to generate the address using an encryption algorithm, so
that not only is the address generated randomly, but the address is
generated in a way which does not allow a pattern of the addresses
generated to be easily identified.
[0037]For the example shown in FIG. 2, the address generator 24 receives
the same payload encryption key on an input channel 26 as the encryption
processor 14 received on the input channel 16. The random address
generator 24 also receives a frame number of the input video signal on an
input channel 28. Thus by generating addresses randomly within the
address space of the encrypted shuffle data store 18 as produced at an
output 30 of the encrypted random address generator 24, parts of the
streams maybe read out of the shuffle data store 18 and passed through
the Gaussian shaping look up table before being combined with a
predetermined period of the audio signal by the combiner 22.
[0038]In some examples, the frame number may be generated by the encoder
itself, which may be re-cycled over a predetermined period, for example
1024. However, in this case the decoder must search over the
predetermined period of the count (for example 1024) in order to align
the frames of an original version of the material with those of a
suspected un-authorised version of the material. In other examples the
frame number may be provided with the input video material.
[0039]The shuffle data store 18 is arranged to store the encrypted data
streams and the shuffle processor 19 is arranged to shuffle the streams
for embedding into the audio signals. In one example, a fraction of the
content of the data store is randomly selected and embedded into each
predetermined period of the audio signal. For example, for each of
512.times.128-bit initial values, a 512.times.8-bit encrypted stream is
produced. Thus the shuffle data store is arranged to store
512.times.512.times.8-bit bytes, which is 262144 bytes. The shuffle
processor 19 is operable to read out 1/8-th of the shuffle data store for
each frame, which is 32678 bytes, so that the combiner 22 can embed the
32678 bytes in each frame.
[0040]In accordance with the present technique because the encryption data
streams are read out randomly from the shuffle data store 18 and embedded
in a predetermined period of the audio signal, a likelihood of an
attacker determining and identifying a particular input data stream from
the watermarked video signal is substantially reduced. Furthermore,
passing the encrypted data streams through a Gaussian look-up table, has
an effect of making the encrypted data streams appear more noise like and
therefore less likely to be detected.
Formation of the Initial Values
[0041]As will be explained shortly, advantageously the encrypted data
streams may by substantially orthogonal with the effect that the
detection of one of the data streams with respect to the other data
streams by correlation can be effected with reduced interference from the
other data streams. A formation of the encrypted data streams will now be
described in more details with reference to FIG. 3. In FIG. 3 the payload
data word comprising N bits 1 is shown as received at the output of the
error correction encoder 8.1 in FIG. 1. The N bit encrypted data word is
then split by the data word splitter 8.3 into bytes 12. In one example
there are 416 bytes which can be conveyed within the 512 encrypted data
streams.
[0042]As shown in FIG. 3 each of the encrypted data streams is formed from
the initial values 15 by writing bytes of the payload into each of the
initial values in accordance with the formula identified above and
repeated below:
IV n = l = 0 l = n - 1 byte ( n - l )
##EQU00001##
[0043]As shown in FIG. 3 each of the initial values includes 128 bits, 16
bits being assigned to a field index. The field index includes the number
of the initial value which therefore represents the value of the data
stream. As shown in FIG. 3 the first initial value IV.sub.1 which is
numbered 1 in the 16 bit field, has byte 1 with the remaining 104 bits
being set to a predetermined value such as zero. In accordance with the
above formula the second initial value IV.sub.2 which is numbered 2 in
the index field includes bytes 1 and 2 with the remaining 96 bits set to
zero. Thus, to form the next initial value the subsequent byte is
concatenated with all the previously processed bytes. The number of zeros
which remain is slowly reduced down to zero in a final initial value of a
first set of 16 which will be intermediate number 16. Thus, each set of
IV values includes a corresponding set of bytes shown in the table below:
TABLE-US-00001
Streams Bytes of Payload
1 to 16 1 to 14
17 to 32 15 to 28
33 to 48 29 to 42
49 to 64 43 to 56
-- --
496 to 512 435 to 448
[0044]Thus, as shown in FIG. 2 the final initial value number 512 will
include bytes numbered 435 to 448.
[0045]As shown in FIG. 2 each of the initial values is then encrypted to
form a 512.times.8-bit encrypted data stream, which is then read into the
shuffle data store for reading out and combining with a frame of the
video material. Thus in one example, each frame of the video material
will include random parts of all of the encrypted data streams, the
encrypted data streams being thereby effectively shuffled with respect to
each frame of the video signal.
[0046]In accordance with the present technique forming the encrypted data
streams from the initial values shown in FIG. 3 provides an advantage
because the encrypted data streams can be made substantially orthogonal.
Each of the encrypted data streams is made substantially orthogonal with
respect to one another as a result of two properties, which are that
firstly the streams are encrypted and secondly that the length of each of
the data streams is sufficiently long to appear substantially
"random-like". Encrypting the data streams as part of their generation
has an effect that a change of one bit in the initial value input to the
encryption circuit has an effect of producing a very different encrypted
data stream with respect to the encrypted stream, which would have been
generated for the unaltered initial value. Furthermore, by arranging for
the encrypted data streams to be sufficiently long, the patterns of data
bits within each stream can be made to appear more random like.
[0047]According to the present technique, by forming the initial values in
the way set out above, the detection of byte 1 can be used to detect byte
2. The detection of byte 1 will require only 2.sup.8 correlations. When
detecting byte 2, a correlation can be performed for all possible values
of byte 2 only, since byte 1 which is also present will then be known.
The detection of byte 2 can therefore be made also with only 2.sup.8
correlations, so that the detection of bytes 1 and 2 will require only
2.times.2.sup.8 correlations as opposed to 2.sup.16 correlations, which
can therefore be made more easily. As will be explained shortly
therefore, by recovering each byte of the payload starting with the first
and successively increasing the parts of the payload recovered by
increasing the initial value number which is searched from 1 to 16, an
amount of processing which is required in order to detect successfully
all 14 bytes from the first 16 initial values is reduced to a practical
level. Correspondingly the next 14 bytes from the subsequent 16 initial
values can be recovered until the entire payload is recovered. For each
byte to be detected by the detecting data processor only 2.sup.8 possible
correlations are required as opposed to 2.sup.4096 to detect the
4096-bits of a payload data word by correlation, which could otherwise be
prohibitively computationally difficult.
[0048]Since the payload data word includes a digital signature 6, if the
recovered digital signature is authenticated then the payload can be
considered to have been successfully recovered. It is for this reason
that error correction encoding can be applied to the digital signature,
whereas error correction encoding is not applied to the projector
identifier (ID) or the time stamp. Adding error correction to the
projector ID and the time stamp may compromise the integrity of a false
positive detection probability or false negative detection probability
which is established to prove the presence of the water mark payload for
a finger printing system. However, since the digital signature is self
authenticating, in that if the digital signature is authenticated with a
corresponding private key of the digital signature private key/public key
pair, then it must be the digital signature concerned, without a need to
rely on the integrity of the watermarking arrangement which conveyed that
code word. Therefore, error correction can be applied to the digital
signature to improve a likelihood of recovering the digital signature.
Further Example of Initial Values
[0049]FIG. 4 provides a further example illustrating one possibility for
generating the initial values for use in the encoding data processing
apparatus. In FIG. 4 as for FIG. 3 there are 512 initial values for
forming 512 encrypted data streams. As shown in FIG. 4 a field index for
identifying the 512 encrypted data streams is provided by a nine bit data
field FI to identify each of the 512 initial values for forming the
encrypted streams. Since the field index FI providing a stream number
comprises nine bits, a remaining seven bits of the first two bytes are
set to zero or any other predetermined value, which is known at the
decoder. In a third byte in each of the 512 initial values a version
identifier VI is provided. The version identifier provides a byte of data
indicating a version of the fingerprinting scheme which can be identified
at the decoder. The decoding process can be therefore matched to the
encoding process established for a particular version. Accordingly,
future changes in the fingerprinting/water marking technique can be
accommodated within a data structure provided by the initial value shown
in FIG. 4.
[0050]In FIG. 4 the first 32 initial values providing encrypted data
streams 0 to 31 are formed from the same format, that is to say as shown
in FIG. 4 with only the version provided in the version identifier VI
field and the remaining bytes 3 to 15 set to a predetermined value such
as zero. Since all 32 streams for initial values 0 to 31 will only
contain the version identifier VI, there is a greater likelihood of a
decoder being able to detect the version identifier and therefore
identify the correct version number for the decoder. As will be explained
shortly, each of the initial values produced by streams 0 to 31 will
produce a different encrypted data stream, which will be separately
detected to identify the same version number to thereby confirm the value
of the version number.
[0051]In order to avoid streams 0 to 31 producing the same encrypted data
stream which is added to the video material items, the stream number is
provided in the field index FI, which is changed to identify each of the
initial values. As a result since each initial value will have a
different stream number, a result of passing the initial value through an
encryption circuit will produce a different encrypted data stream. Thus,
each of the resulting encrypted streams produced by the initial values 0
to 31 will produce different encrypted data streams, which can thereby be
more easily detected by correlation, even though each initial value
otherwise conveys the same payload.
[0052]By arranging for the initial values to each be of a predetermined
length and setting the predetermined length to as long as possible, an
improvement is provided of a likelihood of detecting each of the
encrypted data streams by correlation. This is because, whilst an
encrypted data stream will correlate with itself producing a high
correlation output value, the other encrypted data streams and the video
image frame should preferably produce a low correlation output value so
that as far as possible these other encrypted data streams and the video
image data appear as noise with respect to a wanted encrypted data stream
during correlation. The unwanted encryption data streams will produce a
lower correlation value for longer encrypted streams. Thus, by setting
the initial values to a predetermined length which is long enough to
cause a correlation with unwanted encrypted data streams to be a
substantially low value, a likelihood of successfully detecting the
wanted encrypted data stream is increased.
[0053]As shown in FIG. 4, after the first 32 initial values (streams 0 to
31) the next 159 initial values are arranged in a hierarchically encoded
form as illustrated for the example in FIG. 3. Thus, streams 31 to 63
will include byte 1 of the media terminal ID from the data field 4 of the
payload word 1. The next streams 64 to 95 will include both the first and
second bytes of the media terminal ID in bytes 3 and 4 of the initial
value and the next set of initial values 96 to 127 will include the three
bytes of the projector ID in bytes 3, 4 and 5. Streams 128 to 159 will
include the first byte of the time stamp in byte number 6 and streams 160
to 191 will include the two bytes of the time stamp in bytes 6 and 7.
[0054]In FIG. 4 although the media terminal ID is provided in bytes 3, 4
and 5 of streams 192 to 511, each byte of the encoded 2048 bit RSA
digital signature is provided successively in byte 6. Thus the encoded
digital signature is divided into bytes and each of those bytes is
included in a different one of the streams 192 to 511. Thus, unlike the
example shown in FIG. 2, a successive introduction of each of the bytes
of the data stream to each of the other bytes of the data stream being
included in each initial value is not adopted for the encoded digital
signature.
[0055]The hierarchical encoding arrangement provided for the initial
values 32 to 191 for the media terminal ID and the time stamp is provided
in order to remove an ambiguity in a situation where more than one
payload data word is present in a watermarked copy of a video material
item. For an example in which a collusion attack has taken place in which
an attacker combines two versions of the same watermarked image, each
being produced from a different digital projector, detecting each byte
from for example the first set of streams 31 to 63 may produce two
detected bytes. If the next set of streams were to identify the second
bytes of for example media terminal ID without the presence of the first
byte there would be some ambiguity in the order of those two bytes within
the material. In order to avoid this ambiguity the hierarchical encoding
arrangement shown in FIGS. 2 and 3 for the initial values is provided.
Since both bytes 1 and 2 will appear in the second set of streams 64-95
then this ambiguity is resolved because the order of these bytes can be
identified from the detected data streams 64-95.
[0056]The ambiguity in the order of the detected bytes is not so relevant
to detecting the digital signature. This is because since a digital
signature can be uniquely identified with a corresponding key of a
private key/public key pair, although there may be some ambiguity in the
order of the bits, if one of these orders of the bits correctly
identifies a digital signature then that digital signature will, with a
very high likelihood, correctly identify the authenticity of that digital
signature. As such, for the example of FIG. 4, the hierarchical encoding
of the initial values is not used for encoding the digital signature.
Audio Combiner
[0057]FIG. 5 represents an example illustration of how an audio combiner
would be arranged to combine the fingerprint data with the audio signals
for each of a plurality of eight channels. As explained above, the
fingerprint payload data when encoded is read into a shuffle data store
18.1 before it is read out and embedded into the material to be encoded.
For the present example the material to be encoded is one or more audio
signals. As explained above, the address generator 19 generates on a
channel 30 an address within the address space of the shuffle data store
18.1. The address generated by the address generator is pseudo-random.
Thus, the fingerprint data stored in the shuffle data store 18.1 is read
out in a pseudo-random fashion so that parts of the fingerprint payload
stored in the shuffle data store 18.1 are embedded pseudo-randomly within
the audio signals by the combiner 22.1. As for the example explained
above a Gaussian noise shaper 20.1 adapts the data samples read out from
the shuffle data store 18.1 for being embedded into the audio signals.
[0058]As for the example of embedding a finger print in video frames, the
shuffle data RAM 18.1 provides a 512.times.512 byte data store from which
is read out 500 samples of data for each of the eight audio channels. In
accordance with the present technique for a pre-determined time period of
1/24 seconds, 500 samples are read out from the shuffle data store for
each of the audio channels and fed to an up-sampler 19. The up-sampler
up-converts the sampling rate of the data from the shuffle data store
18.1 by a factor of 4 so that 2000 samples are produced every 1/24
seconds, which corresponds with sampling rate of 48 KHz. Thus, after
passing through the Gaussian noise shaper 20.1 the 2000 samples, which
are formed for each of the audio channels A1 to A8 are combined with
those channels by the combiner 22.1 in a corresponding way to that
explained above with respect to video signals.
[0059]As shown in FIG. 6 therefore, each of the parts of the data read out
from the shuffle data store 18.1 are combined by the combiner with the
audio signals received on each channel. Thus, the combiner 22.1 includes
adders ADD which receive the parts of the data read out from the shuffle
data store, up-sampled by the up-sampler 19 and passed through the
Gaussian noise shaper 20.1 before being combined with a corresponding one
of the audio channels.
[0060]In other examples, there may be up to sixteen audio channels.
Further Examples of Encoders
[0061]An example encoding processor in accordance with the present
technique is shown in FIG. 7. In the example shown in FIG. 7, the input
audio and video material is provided as a content data file in accordance
with a format, which can be used for with digital cinema. A data file
known as a digital cinema package file (DCP) is communicated to a digital
cinema projector for reproduction. The DCP file 56.1, which includes
audio information, video information as well as data is received on an
input 56.2 of a combiner 22.1, after being de-compressed and decrypted
(not shown). The DCP file 56.1 includes a content play list CPL 56.3 as
well as content data representing the audio/video information. The
content data is provided as a plurality of reels 56.4 each of which
provides approximately 10 minutes of audio/video information when
reproduced and is itself encrypted. Each reel 56.4, includes a plurality
of frames 56.5. The CPL 56.3 provides for each of the reels provided in
the DCP a list of UUID identifying the reels which are to be reproduced
by the digital cinema projector. Thus, the CPL allows, for each reel
(portion of the video content) a number of frames to be determined for
each reel, which are to be reproduced.
[0062]In FIG. 7 the error correction encoding, the data splitting and the
formation of the initial values shown in FIG. 1 are referred to as
pre-processing 8 which are performed by a payload generator 8 shown in
FIG. 7. Thus, in correspondence with the operation shown in FIG. 1, the
payload generator 8 generates a plurality of initial values 50 which are
fed to a first input of an XOR circuit 52. In FIG. 7 encryption of the
128 bit initial values is performed by a Rijndael algorithm (also
referred to as an AES) formed by an encryption processor 54 (which could
also be used as the encrypting processor 24.1), which in combination with
the XOR circuit 52 generates the encrypted data streams by feeding back
the output from the Rijndael processor 54 to a second input of the XOR
circuit 52. Thus, in correspondence with the encoder shown in FIG. 2, the
XOR circuit 52 and the Rijndael processor 54 form an encryption data
processor 14.1 and the encryption processor 14.1 and the payload
generator 8 form a code word generator 10.1. By passing the 128 bit
initial values thirty two times through the Rijndael encryption processor
54 and XOR circuit 52, the 512 8-bit values for each of the encrypted
data streams are formed and fed into an shuffle data store 18.1. In
correspondence with the arrangement shown in FIG. 1, a shuffle processor
24.1 includes a random address generator, which uses an AES algorithm
processor performing the Rijndael algorithm and receives the frame number
of the video input signal on an input channel 28.1 and a payload
encryption key on an input channel 26.1. The shuffle processor 24.1 forms
a random 18-bit address which is used to address the shuffle data store
18.1. As with the operation of the encoder shown in FIG. 1, to make the
embedded data more noise like, the encrypted data stream read out from
the data store 18.1 is passed through a Gaussian noise shaper 20.1 and
embedded by a combiner in a frame of the video input signal 56 to produce
a watermarked output video signal on an output channel 58.
[0063]In contrast to the example encoding data processing apparatus shown
in FIG. 2, the encoding data processing apparatus shown in FIG. 7,
determines a frame number from the CPL 56.3 and the reel UUID provided in
the CPL 56.3 of the DCP to form an initial value for the AES algorithm
processor 24.2. Thus as shown in FIG. 4, an XOR gate 53.1 receives on a
first input 53.2 the frame number determined for the reel, and on a
second input 53.3, the UUID of the reel. As a result, an initial value
for the Rjndael encryption processor is provided, which is unique for
each frame and so generates a pseudo random address for the shuffle store
18.1. Furthermore, since the initial value for generating the address can
be determined from the reel and frame number derived from the CPL, a
projector can be re-started from the same position with the next initial
value and therefore address, even if there is a temporary break down of
the projector. Thus if the projector is re-started mid way through the
audio/video content, a detector can still generate the same sequence of
address which would have been used by the projector to recover correctly
the sequence of addresses of the shuffle store for reconstructing the
finger print code words. In addition providing the CPL to the detection
data processing apparatus, there is no longer a requirement to search for
an alignment of the frames between the original version of the material
and the suspected un-authorised version.
[0064]A further example encoding data processing apparatus in accordance
with the present technique is shown in FIG. 8. In FIG. 8 the audio or
video input signal is received on an input channel 60 with a timing
signal received on an input channel 62. A control processor 64 passes the
timing signal on to a payload generator 8.2 via a channel 63.1. The
payload generator 8.2 operates in accordance with the payload generator 8
shown in FIG. 2 to perform the pre-processing operations 8, shown in FIG.
2. A second input to the payload generator passes the initial values on
an input channel 63.2 which are generated in accordance with the example
shown in FIG. 3.
[0065]The payload generator 8.2 generates a write address on a channel 65
and writes data on a channel 66 in order to store the encrypted data
streams into a "payload RAM" forming a shuffle data store 18.2. A finger
print shuffle processor 67 generates a random address using a random
address generation processor such as that shown in FIGS. 2 and 4, and
feeds the random address on a channel 30.2 to the shuffle data store 18.2
and reads out the data on a connecting channel 31.2. Thus, the finger
print shuffle processor 67 provides parts of the water mark code word
formed from the encrypted data streams or parts thereof to be combined
with a corresponding frame of the video input signal. Before being
combined with the video frame, the parts of the encrypted data streams
are passed through an output generator 61, which forms at an output 58.2
the water mark code word for embedding in video frames W, using the
timing signals are also output on a channel 69.
Payload Generator
[0066]An example of payload generator 8.2, which forms part of the example
encoder shown in FIG. 8, is shown in FIG. 9. In FIG. 9 the initial values
are received on the input channel 63.2 at a finger print memory 70, which
receives on a first input 71.1 a read address and outputs on an output
71.2 an initial value for encryption to form a corresponding encrypted
data stream. The timing signals received on the input channel 63 are
passed to a frame processing payload control 72 which generates the write
address for writing the generated encryption stream into the shuffle data
store 18.2. The write address is generated on the output channel 65 and
the encrypted stream is output on the output channel 66. The payload key
is received by a Rijndael processor 73 on an input channel 74 in
accordance with timing signals provided on an input channel 75 from the
frame processing payload control circuit 72. The Rijndael processor 54.2
in combination with the XOR circuit 52.2 encrypts the initial values in
accordance with the operation of the example encoder shown in FIG. 4,
under control of the finger print payload control processor 72. A delay
circuit 76 is provided in order to ensure that the initial values are
correctly processed by the Rijndael processor 54.2. Finally, the
encrypted data stream is passed through a Gaussian shaper 20.2, which
operates in accordance with the Gaussian shaping processors 20 and 20.1
shown in the embodiments in FIGS. 2 and 4.
[0067]As shown in FIG. 9 the initial values which are stored in the finger
print memory 70 are read out in accordance with the addresses generated
by the finger print controller 72 to be fed through the Rijndael
encryption apparatus formed by the XOR circuit 52.2, the Rijndael
processor 54.2 and the delay 76, and output on the channel 66 after
passing through the Gaussian shaper 20.2.
Finger Print Shuffle Processor
[0068]An example of the finger print shuffle processor 67, which appears
in FIG. 8, is shown in FIG. 10. The finger print shuffle processor 67
performs a corresponding function to that of the shuffle processors 24,
24.1 shown in FIGS. 2 and 4. The finger print shuffle processor includes
a finger print stream control unit 77, a finger print stream input 78, a
Rijndael processor 24.2, a key expansion unit 79 and a finger print
stream output unit 80. The finger print shuffle processor 67 receives the
payload key and an initial value for forming the random address using the
Rijndael round encryption processor 24.2 on an input channel 81. Timing
signals are received by the frame processing stream control unit 77 via
an input channel 82. The key and initial values received on the input
channel 81 are split by the frame processing stream input unit 78 into an
initial value which is passed on a channel 83 to the Rijndael processor
24.2 and a key which is passed via channel 84 to a key expansion unit 79.
In accordance with the timing signals received via a channel 85 a key is
extracted and passed to the Rijndael round processor 24.2, which
generates a random address. The output of the Rijndael round processor
24.2 is a random address which is received at a finger print stream out
processor 80 via a channel 86 for outputting as an 18-bit address on the
output channel 30.2. A 32-to-18 bit de-multiplexer converts a 32-bit
address provided by the Rijndael round processor 24.2 into an 18 bit
address for output on the connecting channel 30.2. A FIFO buffer 80.2
buffers each encrypted data stream read out from the encrypted stream
store 18.2, shown in FIG. 5, via channel 31.2 to be output from the
finger print shuffle processor via the output channel 69. Control and
timing is made using timing signals received from the finger print stream
control processor 77 on a channel 87 and a corresponding feedback request
signal 88 fed back to the finger print stream control processor 77.
Perceptibility Weighting Combiner
[0069]An example of the finger print output generator 61, shown in FIG. 8,
is provided in FIG. 11. In FIG. 11, the perceptual weighting factors,
which have been derived for the audio signal frame (predetermined period)
are fed via the input channel 68 to a multiplier 89.1 for multiplication
with a corresponding one of the 512 8-bit coefficients of a value of the
encrypted data stream, before being limited by a hard limiter 89.2 to
form at the output 58.2 water marked coefficients for combining with the
samples of the video signal. The output coefficients from the channel
58.2 are combined with the samples of the audio signal by addition, which
is not shown for this example.
[0070]For audio, the watermark code word can be considered to be a noise
signal. In order to make the watermark code word relatively less
perceptible to the human ear when embedded in the audio (or in the audio
component of A/V material), it is shaped according to a perceptual
analysis of the audio signal. In this way, the noise more closely matches
the characteristics of the host audio signal. For example, a gain may be
applied to the audio signal such that, for example, the noise is
relatively amplified in louder sections. This is described more fully in
co-pending application EP1814105. Embodiments of the present technique
may apply, this perceptibility shaping differently for each audio
channel, or some or all of the channels may be averaged and shaping may
be applied according to that average.
Detecting Processor
[0071]A detecting data processing apparatus, which is arranged to detect
code words, which have been embedded in audio signals material items by
the encoding data processing apparatus of FIG. 1 to 11 and to recover the
payload data word if present in the video material item is shown in FIG.
12. In FIG. 12 an offending version of the watermarked audio signal W'
and a copy of the original audio signal A are received in a recovery
processor 90. The recovery processor 90 is arranged to process the marked
signal W' and the original signal A and to form an estimate of a code
word which may have been embedded in the marked image. For the example,
after registering the water marked image W' with the copy of the original
audio signal A, the original audio signal A is subtracted from the
watermarked signal W' to form an estimate of the parts of the code word,
which are parts of the encrypted data streams, which have been recovered
from the frames of the water marked video image W' The recovered data
streams are then read into a shuffle date store 92.
[0072]The detecting data processing apparatus shown in FIG. 11 includes an
address generator 104, which is operable in combination with the shuffle
data store to re-assemble the water mark code word, by reading the
respective parts of each of the encrypted data streams from which the
code word is comprised into the data store in a corresponding way to
which the shuffle processor 19, 18.1, 24.1, 67 read data out of the
shuffle data store in the encoding data processing apparatus. To this
end, the address generator uses the payload encryption key 106 and the
frame number of the water marked video image 108 to generate, pseudo
randomly, at least one address within an address space of a shuffle 92
data store for each of the video frames. The address generator 104 then
reads the data representing the estimate of the part or parts of the
water mark code word provided from the recovery processor 90 into the
shuffle data 92 at locations identified by the pseudo randomly generated
address. The address generator is thereby arranged to generate the same
address for each frame as those generated by the encoding data processing
apparatus, so as to effectively reverse the shuffling performed by the
shuffle processor 19, 67.
[0073]In accordance with the example encoding data processing apparatus
described above with reference to FIGS. 1 and 7, the frame number could
be regenerated by the decoder, if the encoder was arranged to use a
predetermined number (such as for the FIG. 1 encoder) or the frame number
may be provided with the original version of the images (such as for the
FIG. 7 encoder). For the example of a digital cinema content data file,
in one example a content play list (CPL) 112 of a digital cinema file
DCP, which was used to reproduce the original material may be provided to
the address generator 104. By providing the CPL 112 to the address
generator 104, there is a reduced requirement to search the original
content material with respect to the offending material in order to align
the frames of the original material to the offending material. By
aligning the frames of the material, a greater likelihood is provided
that a finger print code word can be recovered from the offending
material and the finger print payload detected. Furthermore, by providing
the frame number with the original material a time for detecting the
finger print code word can be reduced.
[0074]As mentioned above, in order to recover the payload data word, the
detector shown in FIG. 12 is arranged to re-generate the encrypted data
streams and to correlate the encrypted data streams with the recovered
data streams read out from the data store 92. To this end, a controller
94 is arranged to regenerate all possible values of each byte of the
payload which is being detected using an initial value regenerator 96.
The initial value regenerator 96 produces for each of the possible values
of the bytes concerned, an initial value in a form corresponding to that
shown in FIG. 3 or FIG. 4 as appropriate. The initial values for each
byte being detected are then encrypted by an encryption processor 98,
which operates to form corresponding encrypted data streams using an
encryption algorithm and the payload encryption key, corresponding to
that used in the encryption processor 14, 14.1, 14.2. The encrypted data
streams are then fed to a correlator 100, which correlates each of the
encrypted data streams with the recovered data streams. If a result of
any of the correlations exceeds a pre-determined threshold, then the
value of the byte or any other parts of the payload, which were used to
form the corresponding initial value is determined to be present in the
payload data word which has been embedded into the video material. The
value of this byte may then be stored in a detected payload data store
102.
[0075]The presence of zeros or indeed any other default value which is
used by the encoder and known to the decoder for parts of the initial
values which do not contain parts of the payload data word can have an
effect of improving the orthogonality of the encrypted data streams with
respect to one another.
[0076]As indicated above, the detection of one part of the payload data
word can be used to detect other parts of the payload data word. For
example, starting with the first initial value identified by the index
field having a value of 1, the first byte 1 can be detected using 2.sup.8
re-generated encrypted data streams and corresponding correlations. The
detection of byte 1 can be used to detect byte 2, because all possible
values of byte 2 can be combined with the value from byte 1 read out from
the recovered payload data store 102. As a result, a number of
correlations which is required to detect the payload data word can be
substantially reduced with respect to what would be required if a
correlation was being made for all possible values of the payload alone.
This is because each byte of the payload is recovered starting with the
first and successively increasing the parts of the payload recovered by
increasing the initial value number which is searched from 1 to 16, in
order to recover the 14 bytes from the first 16 initial values.
Correspondingly the next 14 bytes from the subsequent 16 initial values
can be recovered using the same process until the entire payload is
recovered.
[0077]As mentioned above, in one example, the initial values used by the
encoding data processing apparatus to form the encrypted data stream
include a field index identifying each of the encryption data streams
with respect to the others. For this example, the initial value
regenerator is operable to re-generate the initial values for the part of
the payload data word being detected using a corresponding field index
value in order to produce exactly the encrypted stream for which
correlation is being performed. Furthermore, the field index may be used
to detect the subsequent part of the payload data word.
[0078]As mentioned above, the payload data word includes a digital
signature 6. The other parts of the payload data word can be considered
to have been successfully recovered with a false positive and false
negative detection probability established for the water marking/finger
printing technique described above. However, if the recovered digital
signature is authenticated then the payload can be considered to have
been successfully recovered, because authentication as a digital
signature requires a corresponding key from a public key/private key
pair. Thus combining the signature with a corresponding key from the pair
will authenticate the recovery digital certificate. Furthermore, for the
example shown in FIG. 3, the correlator will only need to perform
448.times.2.sup.8 correlations to detect a 4096-bit payload data word as
opposed to 2.sup.4096 correlations, which could otherwise be
prohibitively computationally difficult.
[0079]According to the present technique, the encrypted data stream
forming the digital finger print is read-out of the shuffle data store
and embedded into the audio signals for reproduction on the audio
channels. However, each of the eight channels are not required in order
to recover enough of the encrypted data stream so that the water mark
payload can be decoded. This is because the present technique reads out
estimated parts of the finger print for each channel, which are read into
the shuffle data store in the detector in synchronism with the frame
numbers in accordance with the pseudo-randomly generated addresses. As
such, provided there is a sufficient length of recovered audio signal,
there is an increase in the likelihood of filling the shuffle data store
with the data corresponding to the encrypted data stream, because the
same part or parts of the encrypted data may be written more than once
into different ones of the audio channels. As such, there is a likelihood
that for a sufficient amount of audio signal the content of the shuffle
data store can be reproduced into a form that was present in the encoder.
[0080]As indicated above, in order to detect a finger print code word, a
part of the suspected audio signal into which the suspected code word
part has been embedded is recovered and the corresponding part of the
original audio signal is subtracted there from. As such a copy of the
original audio signal is required to subtract the audio signal from the
marked version of the audio signal. In order to improve security, to
reduce a likelihood that the copy of the audio signal, which is required
for detecting the water mark code word, is itself the subject of
un-authorised copying, the present technique provides an arrangement in
which a copy of the original audio signal includes an audible watermark,
such as significant periods of silence. Other examples for introducing an
audio watermark into the audio signal are disclosed in EP1465157.
[0081]Various further aspects and features of the present invention are
defined in the appended claims. Various modifications can be made to the
embodiments herein before described without departing from the scope of
the present invention.
[0082]As mentioned above, embodiments of the present invention find
application with embedding data in any kind of information material. For
example, although the above embodiments have been described with respect
to representing a payload data word as a code word and embedding the code
word in the form of encrypted data streams in the frames of the video
material, the present technique is also applicable to embedding data in
audio material. For the example of audio material, in digital form, audio
material typically comprises a plurality of data frames, in which the
encrypted data streams will be embedded.
* * * * *