> DVD-Audio Watermarking, статья к компоненту DVD-Audio Watermark Neutralizer (foo_dsp_neutralizer)
 ns38 Member is Offline
 Posted: 24-03-2011, 23:45 (post 1, #1011731)

Flooder
Forum moderator
Group: Global Moders
Posts: 5127
DVD-Audio Watermarking
Maxim Anisiutkin (maxim.anisiutkin@gmail.com)
RATIONALE
Although DVD-Audio watermark scheme was cracked in 2001 (See "Reading Between the Lines: Lessons from the SDMI Challenge" for details) no decent description of embedding and decoding processes has been given yet. This article is written to fill this gap.
INTRODUCTION
The purpose of DVD-Audio watermarks is to deliver 4C 12 Bit vector to consumer device (See "4C 12 Bit Watermark Specification" for details). This vector consists of 4 CNTRL bits C3, C2, C1, C0 and 8 RSVD bits R7 - R0. C3 and C2 bits represent CCI which used to make decision about termination of playing. Each vector bit can be set in 3 states: ‘0’ – bit reset, ‘1’ – bit set, ‘X’ – bit not present.
4C 12 Bit vector is transported by two different types of watermark packages. Name them 3/8BIT and 1BIT packages. 3/8BIT package contains 11 bits (C3 C1 C0 / R7 – R0) and 1BIT package contains just one bit (C3). Each package can be embedded in two non overlapped frequency bands. Name them LF (low frequency) band and HF (high frequency) band. HF band can be used when sampling frequency is above 22 kHz.
Consider watermarking process mainly from a decoder’s point of view making notices about an embedder part where appropriate. This process can be represented in four distinct stacked levels. Name them 4C 12 Bit level, Package level, Watermark Stream Bit level, Echo level. Then start with the topmost 4C 12 Bit level.
4C 12 BIT LEVEL
As mentioned above 4C 12 Bit vector can be transmitted in 3/8BIT and 1BIT packages. Thereafter for different cases should be considered:
• Neither 3/8BIT, nor 1BIT packages are transmitted. When received the vector bits will be set in ‘X’ state.
• Only 3/8BIT package is transmitted. When received C3, C1, C0 bits will be set from "3" part of 3/8BIT package, C2 bit will be set to "0" and R7 – R0 bits will be set from "8" part of 3/8BIT package.
• Only 1BIT package is transmitted. When received C3 bit will be set from 1BIT package, C2 bit will be set to ‘1’, C1 and C0 bits will be set to ‘X’.
• Both 3/8BIT and 1BIT packages are transmitted. When received C3, C1, C0 bits will be set from "3" part of 3/8BIT package, C2 bit will be set to "1" and R7 – R0 bits will be set from "8" part of 3/8BIT package.
PACKAGE LEVEL
As the power of watermark signal is very low in comparison with the power of its medium the transmission of any vector bit is repeated number of times and then decoder uses majority vote scheme to find out about bit values.
• 3/8BIT package is built according to the "comb" scheme where bits of "3" part are put between bits of "8" part: R7 C3 R6 C1 R5 C0 R4 C3 R3 C1 R2 C0 R1 C3 R0 C1 R7 C0 R6 C3 R5 C1 R4 C0 R3 C3 R2 C1 R1 C0 R0 . . . ‘X’ C3 ‘X’ C1 ‘X’ C0. "3" part is repeated 42 times and "8" part is repeated 15 times and the total length of package is 253 = max(1+2*(42*3),2*(15*8)). To randomize content package is XOR’ed bit by bit with the sequence:
0001011000101100001100010110101101000101000001001000000111001100001111011100000101100101001111010101
0111111111111111110101100001110010100011011100110100101110100000000100111001101010100010001011111101
1001111001010110110001001100011010111111111001101100
When decoder analyses this package it uses the next majority vote rule: if not less than 34 of 42 repeats for any bit from "3" part have the same value then this value is deemed to be the bit value; if not less than 10 of 15 repeats for any bit from "8" part have the same value then this value is deemed to be the bit value.
• 1BIT package is built by repeating C3 bit 154 times and XOR’ing bit by bit with the sequence:
1110111100001100001111110100111011000010011000011001011110001000011011011011011100000111101010110010
11111011111011110100111110111110011011010111011101100
When decoder analyses this package it uses the next majority vote rule: if not less than 119 of 154 repeats for the bit have the same value then this value is deemed to be the bit value.
Each package is prepended with a package header which is used for synchronization between embedder and decoder. Package header is the same for 3/8BIT and 1BIT packages and consists of 32 bits: 01011001111100011011101010000100. When decoder looks for package headers it matches a raw bit stream with this bit sequence. If number of matches is not less than 26 then this position in the raw bit stream is treated as the start of the package. Name this package with the prepended header as watermark frame and any bit of this construct as watermark stream bit.
Here the digital levels of watermark process ends and analogue domain takes place.
WATERMARK STREAM BIT LEVEL
Watermark frame can be embedded into analogue medium in two frequency bands: LF (4.3 – 7.7 kHz) and HF (8.3 – 15.7 kHz). Each band uses different methods of modulation and has different throughput.
Watermark stream bit is embedded into analogue medium according to the next scheme:
Source medium is filtered with the appropriate linear phase band filter, the filtered signal is multiplied on certain constant or slow varying function, the product is delayed on certain time and the result is added to the original medium.
In this scheme watermark stream bit value is rendered from the sign of mentioned constant or slow varying function. All the other details will be presented in the next section.
Watermark detector uses autocorrelation function with known delay and duration to obtain the sign of this correlation. As it can be seen this method does not depend on power of watermarked medium.
• LF watermark stream bit has the next parameters:
T = 2*0.7709ms (delay for 3/8BIT frame).
T = 0.7709ms (delay for 1BIT frame).
L = 1/75s (duration for 3/8BIT and 1BIT frames).
Then duration L is divided into two equivalent parts and autocorrelation is evaluated for both parts (where W(t) is filtered watermarked medium):
A0[i] = corr(W(t),W(t–T),[t0+i*L,t0+(i+1/2)*L])
A1[i] = corr(W(t),W(t–T),[t0+(i+1/2)*L,t0+(i+1)*L])
If A1[i] < A0[i] then the value of watermark stream bit is set to ‘1’, otherwise ‘0’.
• HF watermark stream bit has the next parameters:
There is set of 16 possible delays defined in terms of T = 0.7709ms:
D = {
0.6471*T,0.6765*T,0.9706*T,1.000*T,1.0294*T,1.2941*T,1.3235*T,1.3529*T,
1.6471*T,1.6765*T,1.9706*T,2.000*T,2.0294*T,2.2941*T,2.3235*T,2.3529*T
}
There are four sequences of indexes into D set:
S = {7,11,9,6,2,8,0,10,13,1,3,15,5,14,12,4} for the header of 3/8BIT package header,
S = {3,7,15,11,12,9,2,6,10,2,0,8,1,0,11,10,6,13,5,1,9,3,4,15,14,5,7,14,13,12,8,4} for the 3/8BIT package,
S = {7,9,12,4,6,11,14,5,0,15,3,13,2,8,1,10} for the header of 1BIT package,
S = {7,9,12,4,6,11,14,5,0,15,3,13,2,8,1,10} for the 1BIT package, the same as for the the header.
L = 1/50s (duration for 3/8BIT and 1BIT frames)
When decoder evaluates the value of actual watermark stream bit it cyclically gets the next element from appropriate sequence of indexes S (depends on type of watermark frame and part of it as was described above) and uses it as the index into delay set D to obtain delay T:
A[i] = corr(W(t),W(t–D[S[mod(i,length(S))]]),[t0+i*L,t0+(i+1)*L]).
If A[i] < 0 then the value of watermark stream bit is set to ‘0’, otherwise ‘1’.
ECHO LEVEL
LF and HF watermarks are embedded into two different frequency bands. To extract them the decoder first filters medium with 10-order Butterworth IIR band filer and then applies autocorrelation as described. The encoder should use the similar filter to obtain watermark echo, but it has to be linear phase filter (what FIR usually does well).
The watermark embedding process could be mainly represented in two steps:
• X(t) = filter(U(t)), where U(t) is a given non watermarked medium, filter is a FIR with an appropriate characteristics.
• W(t) = U(t)+A(t)*X(t-T), where A(t) is a constant or slow varying function, T is appropriate delay. A(t) should be chosen very carefully because two conflicting requirements must be satisfied: watermark echo should be inaudible, but steadily detectable even in case of distorted medium.
As it can be seen from description watermarks are not very robust against dilation of the time domain. Due to this fact the detector looks for watermarks not only in the original W(t), but in +-10% dilated versions of W(t) too. It can be achieved by changing parameters T and L accordingly.
PM Email Poster ICQ
Top Bottom
 Сергей Петров Member is Offline
 Posted: 23-04-2011, 17:51 (post 2, #1015626)

Newbie

Group: Members
Posts: 28
Warn:0%-----
Получается плагином foo_dsp_neutralizer можно вычистить водяные знаки?
PM Email Poster
Top Bottom
Topic Options