The present invention relates to apparatus and methods for re-embedding information in multimedia signals, such as audio, video or data signals.
Watermarking of multimedia signals is a technique for the transmission of additional data along with the multimedia signal. For instance, watermarking techniques can be used to embed copyright and copy control information into audio signals.
The main requirement of a watermarking scheme is that it is not observable (i.e. in the case of an audio signal, it is inaudible) whilst being robust to attacks to remove the watermark from the signal (e.g. removing the watermark will damage the signal). It will be appreciated that the robustness of a watermark will normally be a trade off against the quality of the signal in which the watermark is embedded. For instance, if a watermark is strongly embedded into an audio signal (and is thus difficult to remove) then it is likely that the quality of the audio signal will be reduced, if one tries to remove it without the knowledge of the underlying technique and the secret key.
The altering of a watermark by increasing the amount of embedded information in a watermark signal is known. In such instances, an extra watermark sequence is added to an existing watermarked signal. This is, for instance, implied in the 4C 12 bit watermark specification. A copy of this specification can be found at http://www.4centity.com/data/tech/4cspec.pdf.
It will be appreciated that when the watermark information needs to be changed repeatedly, such an approach not only degrades the quality of the original information signal (as additional watermark signals are added to change the payload) but also collisions between the individual embedded watermarks significantly degrade the watermark robustness. For example, certain applications of copyright require that the copyright information embedded in a signal is changed repeatedly in order to assert proper copy control.
It is an object of the present invention to provide a watermarking scheme that substantially addresses at least one of the problems of the prior art, whether referred to herein or otherwise.
In a first aspect, the present invention provides a method of processing a multimedia signal comprising a watermark signal, the method comprising the steps of: removing at least a portion of an original watermark signal; and adding a new watermark signal to the multimedia signal so as to form a new watermarked multimedia signal.
Preferably, said original watermark signal is removed by applying a negative version of said original watermark signal to the multimedia signal.
Preferably, the method further comprises the step of determining the value of at least one of the parameters used to embed the original watermark in the multimedia signal.
Preferably, said parameter is utilized to remove at least a portion of said original watermark signal.
Preferably, said new signal is embedded in the multimedia signal using said embedding parameters having said determined value.
Suitably, said new signal is embedded in the multimedia signal using said embedding parameters having values other than the said determined values.
Preferably, said parameter comprises at least one of: embedding strength, synchronization information, time offset, time-scaling, an amount of a circular shift of a sequence, and a watermark symbol period.
Suitably, all of said original watermark is removed, and the new signal comprises a new watermark signal.
Preferably, said watermark comprises at least two sequences of values, at least one sequence of values being removed as said portion of the watermark signal, so as to leave at least one remaining sequence of values from the original watermark signal; and wherein said new signal comprises at least one further sequence of values which together with said remaining sequence forms a new watermark signal.
Preferably, all of said sequences of values are formed from a single sequence of values which has been circularly shifted by different amounts.
Preferably, said removed portion of the watermark signal was embedded with a predetermined strength into said multimedia signal, the method comprising the step of embedding the new signal into the multimedia signal with preferably the same predetermined strength.
Preferably, the embedding strength is such that the degradation in the quality of the new watermarked multimedia signal is perceptible but not annoying.
Preferably, at least one of the original watermark signal and the new watermark signal comprises a smoothly varying signal formed by applying a window shaping function to a sequence of values, the integral over the window shaping function being zero.
Preferably, the window shaping function has a bi-phase behavior.
Preferably, the bi-phase window comprises at least two Hanning windows of opposite polarities.
In another aspect, the present invention provides a computer program arranged to perform any of the methods described above.
In a further aspect, the present invention provides a record carrier comprising a computer program described above.
In another aspect, the present invention provides a method of making available for downloading a computer program as described above.
In a further aspect, the present invention provides an apparatus for processing a multimedia signal comprising a watermark signal, the apparatus comprising: a deletion unit arrange to remove at least a portion of the watermark signal; and an embedder arranged to add a new signal to the multimedia signal so as to form a new watermark signal.
Preferably, the apparatus further comprises a detector arranged to detect at least one value of a parameter of said watermark signal.
Preferably, the apparatus comprises a receiver of a multimedia signal comprising an apparatus.
For a better understanding of the invention, and to show how embodiments of the same may be carried into effect, reference will now be made, by way of example, to the accompanying diagrammatic drawings in which:
The detector 640 is arranged to detect an estimate w′old (output 612) of the watermark wold that is embedded within the received signal y′old, and to estimate the control parameters (output 609) needed for changing the watermark payload.
Information relating to the detected watermark w′old is then passed to the watermark generator 650 and the watermark embedder 620. The information passed to the watermark generator can be a complete copy of the extracted watermark w′old, or alternatively sufficient information (such as, for watermarks comprising two circularly shifted sequences of a single series of values, the circular shift dold) to allow the watermark generator to generate a copy wold of w′old. The output 608 of the watermark generator, also denoted by wold, is preferably an error corrected version of the extracted watermark w′old.
The watermark generator 650 additionally generates a new watermark signal wnew (output 618), for adding to the original information signal y′old.
The delay unit 614 acts to delay the input signal y′old whilst the intervening operations are carried out by the detector 640, and the watermark generator 650. The delayed signal y′old is then passed (output 607) to the embedder 620.
In the watermark embedding unit 620, the old watermark signal wold is removed from the signal y′old, and the new watermark wnew added to y′old so as to form an information signal ynew containing the new watermark wnew.
The above embodiment represents a particular generalized implementation of the present invention. Below is described a particular watermark re-embedding scheme in accordance with a further embodiment of the present invention for use in conjunction with a particular watermarking scheme.
Such a watermark can for example be embedded using the apparatus shown in
The apparatus 100 receives two sequences of values (wold[k] and wref[k]) at input 110 and 112. The combination of these two sequences of values is used to produce the watermark signal wo. Each of the two sequences of values is a circularly shifted version of an original sequence of values. Wold is the original sequence ws circularly shifted by dold, and wref the original sequence ws circularly shifted by dref i.e. wold is hence a circularly shifted version of wref. The original sequence of values can, for instance, be generated using a Random Number Generator (RNG) using a predetermined seed value S.
As shown in
Referring back to
Wo[n] is multiplied with the possibly filtered version xb[n] of the host signal x[n], scaled by gain factor a and added back to the host signal x[n] to generate the watermark signal yold[n] given by
yold[n]=x[n]+αwo[n]xb[n]. (1)
The gain factor a is set by the variable gain device 128, and in the example shown is set in dependence upon the signal from the signal analyzer 126 which samples the host signal x using a psychoacoustic model. Such a model is, for instance, described in the paper by E. Zwicker, “Audio Engineering and Psychoacoustics: Matching signals to the final receiver, the Human Auditory System”, Journal of the Audio Engineering Society, Vol. 39, pp. Vol. 115-126, March 1991. The gain factor a is normally chosen so as to minimize the impact of the watermark signal on the host signal quality.
Such a watermarking scheme is characterized in that, during detection the watermarked signal yold generates two correlation peaks that are separated by pLold (see
where dref and dold ε [0, Lw−1] are the relative positions of the correlation peaks as seen in
In addition to pLold, extra information is also encoded by changing the relative signs of the embedded watermarks. In the detector, this is seen as a relative sign rsign between the correlation peaks. It will be seen that rsign can take four possible values, and may be defined as:
where μold and μref are the signs of the correlation peaks, and correspond to the sign bits rold and rref in
pLw=<rsign, pLold>. (4)
The maximum information (Imax), in number of bits, that can be carried by a watermark sequence of length Lw is thus given by:
Below is described a watermark re-embedding apparatus suitable for use in conjunction with the watermark embedder shown in
In the symbol extraction stage (200), the received watermarked signal yold[n] is processed to generate multiple (Nb) estimates of the watermarked sequence, which are multiplexed into the signal we[m]. These estimates of the watermark sequence are required to resolve (compensate for) any time offset that may exist between the embedder and the detector, so that the watermark detector can synchronize to the watermark sequence inserted in the host signal.
In the buffering and interpolation stage (300), these estimates are de-multiplexed into Nb separate buffers. An interpolation is subsequently applied to each buffer to resolve (compensate for) possible timescale modifications that may have occurred. For instance, a drift in sampling (clock) frequency may result in a stretch or shrink in the time domain signal (i.e. the watermark may have been stretched or shrunk).
In the correlation and decision stage (400), the content of each buffer is correlated with the reference watermark and the maximum correlation peaks are compared against a threshold to determine the likelihood of whether the watermark is indeed embedded within the received signal y′old[n].
In the control signal generating unit (500), the detection truth value, the corresponding watermark sequence, its buffer index, and the value of the new payload pLnew (input 616) are combined to generate parameters that are needed to changing the watermark payload. The outputs (609, 612) of the control signal generator are passed on to the watermark generator 650 and the watermark embedding unit 620.
Details of the watermark generating unit 650 are shown in
In one preferred embodiment, the watermark sequences wold and wnew can be generated as follows. Firstly a finite length, preferably zero mean and uniformly distributed random sequence ws is generated using a random number generator 651 with an initial seed S. It will be appreciated that this initial seed S is preferably the same as that used in generating wold during the first embedding. This results in the sequence of length Lw
ws[k]ε[−1,1], for k=0,1,2, . . . , Lw−1 (6)
Then the sequence ws is circularly shifted by the amounts dold and dnew using the circularly shifting units 653a and 653b to obtain the random sequences wold and wnew, respectively. It will be appreciated that these two sequences (wold and wnew) are effectively a first sequence and a second sequence, with the second sequence being circularly shifted with respect to the first. These two sequences are then passed on to the watermark embedding unit 620 (outputs 608, 618).
Details of a watermark embedding unit 620 as part of the watermark re-embedding apparatus 600, and suitable for use with the considered particular watermarking scheme, is shown in
The host signal y′old (containing at least an initial watermark sequence wold) is provided at input 607 of the apparatus. The host signal y′old is passed in the direction of output 610 via the delay unit 629 and the adder 626. However, a replica yb of the host signal y′old (input 628) is split off in the direction of the multiplier 624, for carrying the new watermark information.
The multiplier 624 is utilized to calculate the product of the watermark altering signal wdiff and the replica signal yb. The watermark altering signal wdiff is obtained from the payload changing and watermark conditioning apparatus 630b, and derived from the watermark random sequences wold and wnew (inputs 608 and 618) respectively), which are input to the payload changing and watermark conditioning apparatus.
The resulting product, wdiffyb is then passed via a gain controller 625 to the adder 626. The gain factor α applied by the controller 625 controls the trade off between the audibility and the robustness of the watermark. It may be a constant, or variable in at least one of time, frequency and space. The apparatus in
In another preferred embodiment, the gain factor α can be independently controlled via a signal analyzer based upon the properties of the host signal yold. In the latter case, the gain α is automatically adapted, preferably so as to minimize the impact on the signal quality, according to a properly chosen perceptibility cost-function, such as a psychoacoustic model of the human auditory system (HAS). The same model may be used as that utilized to control the adaptive gain factor used to control the embedding strength of the original watermark signal (see
In
ynew[n]=yold[n]+αwdiff[n]yb[n]≈x[n]+αwc[n]xb[n, (7)
where wc is derived from rref and wnew in the same way as wc was derived from wref and wold in
Preferably, the parameters of the watermark wdiff[n] are chosen such that when multiplied with yb, it predominantly modifies the short time envelope of yb.
In
The sequences wold and wnew are first multiplied with a respective sign bit rold and rnew in the multiplying units 654a and 654b. The respective values of rold and rnew are derived from the detection unit 640 and are passed on via the control input 609. The values of rold and rnew remain constant (typically at either +1 or −1), and only change when the payload of the watermark is changed.
The difference wdiff[k] between the signed sequences wold and wnew is calculated using adder 635 to add the negative of the old watermark sequence wold to the positive of the new sequence wnew. The result wdiff is then passed through the conditioning stage to generate the slowly varying multi-bit watermark wdiff[n].
In the conditioning circuit, the watermark signal sequence wdiff[k] is first applied to the input of an up-sampler 180. Chart 181 illustrates one of the possible sequences wdiff as a sequence of values of random numbers between +1 and −1, with the sequence being of length Lw. The up-sampler adds (Ts−1) zeros between each sample so as to raise the sampling frequency by the factor Ts. Ts is referred to as the watermark symbol period and represents the span of the watermark symbol in the audio signal. In the case of the received signal y′old having undergone a time scaling compared with the transmitted signal yold, Ts is replaced with appropriately scaled sampling factor Tnew that takes into account the scaling effect. Chart 183 shows the results of the signal illustrated in chart 181 once it has passed through the up-sampler 180.
A window shaping function s[n], such as a bi-phase window, is then convolved with the up-sampled signal wi[n] so as to convert it into a slowly varying narrow-band signal wdiff[n], whose behavior for the wdiff[k] sequence of chart 181 is as shown in chart 185.
Chart 184 shows a typical bi-phase window shaping function. The window shaping function has support in the interval 0 to Ts only. The window function is applied to the watermark sequence in order to produce a smoothly varying signal, so as to minimize the decrease in the quality of the host signal.
Below is described in more detail the operation of the detection apparatus (200, 300, 400, 500) shown in
In the watermark symbol extraction stage 200 shown in
y′b[n]≈(1+αwc[n])xb[n] (8)
Note that when no filter is used in the embedder (i.e., when H=1) then Hb in the detector can also be omitted, or it can still be included to improve the detection performance. If Hb is omitted, then y′b in equation (8) is replaced with y′old. The rest of the processing is the same.
For simplification, it is assumed that there is perfect synchronism between the embedder and the detector (i.e. no offset and no change in timescale), and that the audio signal is divided into frames of length Ts, and that y′b,m[n] is the n-th sample of the m-th frame of the filtered signal y′b[n]. It should be noted that if there is not perfect synchronism between the embedder and the detector, then any deviation can be compensated for within the buffering and interpolation stage 300 utilizing techniques known to the skilled person e.g. iteratively searching through all possible scale and offset modifications until a best match is achieved.
The energy E[m] corresponding to the y′b,m[n] frame is:
where S[n] is the same window shaping function used in the watermark conditioning circuit of
Combining this with equation 8, it follows that:
where we[m] is the m-th extracted watermark symbol. and contains Nb time-multiplexed estimates of the embedded watermark sequences. Solving for we[m] in equation 10 and ignoring higher order terms of α, gives the following approximation:
In the watermark extraction stage 200 shown in
It will be realized that the denominator of equation 11 contains a term that requires knowledge of the host (original) signal x. As the signal x is not available to the detector, it means that in order to calculate we[m] then the denominator of equation 11 must be estimated.
Below is described how such an estimation can be achieved for a bi-phase window shaping function, but it will be appreciated that the teaching could be extended to other window shaping functions.
It will be seen by examination of the bi-phase window function shown in
Consequently, within the detector, the audio frame is first sub-divided into two halves. The energy functions corresponding to the first and second half frames are hence given by
respectively. As the envelope of the original audio is modulated in opposite directions within the two sub-frames, the original audio envelope can be approximated as the mean of E1[m] and E2[m].
Further, the instantaneous modulation value can be taken as the difference between these two functions. Thus, for the bi-phase window function, the watermark we[m] can be approximated by:
This output we[m] is then passed to the buffering and interpolation stage 300, where the signal is de-multiplexed by a de-multiplexer 310, buffered in buffers 320 of length Lb so as to resolve any lack of synchronism between the embedder and the detector, and interpolated within the interpolation unit 330 so as to compensate for any time scale modification between the embedder and the detector. Such compensation can utilize known techniques, and hence is not described in any more detail within this specification.
During detection, in order to maximize the accuracy of the watermark detection, the watermark detection process is typically carried out over a length of received signal y′old[n] that is 3 to 4 times that of the watermark sequence length. Thus each watermark symbol to be detected can be constructed by taking the averages of several symbols. This averaging process is referred to as smoothing, and the number of times the averaging is done is referred to as the smoothing factor sf. Thus, the detection window length LD is the length of the audio segment (in number of samples) over which a watermark detection truth-value is reported. Consequently, LD=sfLwTs, where Ts is the symbol period and Lw the number of symbols within the watermark sequence. Typically, the length (Lb) of each buffer 320 within the buffering and interpolation stage is Lb=sfLw.
As shown in
The correlator 410 calculates the correlation of each estimate wIj, j=1, . . . Nb with respect to the reference watermark sequence ws[k]. Each respective correlation output corresponding to each estimate is then applied to the maximum detection unit 420 which determines which two estimates provided the best fits for the circularly shifted versions wold and wref of the reference watermark. The correlation values (the peak amplitudes and positions) for these estimate sequences are passed to the threshold detector and payload extractor unit 430.
In another output of the correlation stage 410, the watermark sequences and the buffer indices corresponding to the two best fits for the circularly shifted versions wold and wref of the reference watermark are passed on to the control signal generating unit 500.
If the interpolation stage is omitted, alternatively the correlator 410 calculates the correlation of each estimate wDj, j=1, . . . , Nb with the reference watermark sequence ws[k] and the results are passed on for subsequent processing to the units 420 and 430 as outlined in the above paragraph.
The threshold detector and payload extractor unit 430 may be utilized to extract the payload (e.g. information content) from the detected watermark signal. Once the unit has estimated the two correlation peaks cL1 and cL2 that exceed the detection threshold, the distance pL between the peaks (as defined by equation (2)) is measured. Next, the signs μ1 and μ2 of the correlation peaks are determined, and hence rsign calculated from equation (3). The overall watermark payload may then be calculated using equation (4).
For instance, it can be seen in
The reference watermark sequence ws used within the detector corresponds to (a possibly circularly shifted version of) the original watermark sequence applied to the host signal. For instance, if the watermark signal was calculated using a random number generator with seed S within the embedder, then equally the detector can calculate the same random number sequence using the same random number generation algorithm and the same initial seed so as to determine the watermark signal. Alternatively, the watermark signal originally applied in the embedder and utilized by the detector as a reference could simply be any predetermined sequence.
As can be seen, the typical correlation is relatively flat with respect to cL, and centered about cL=0. However, the function contains two peaks, which are separated by pLold (see equation 2) and extend upwards to cL values that are above the detection threshold when a watermark is present. When the correlation peaks are negative, the above statement applies to their absolute values.
A horizontal line represents the detection threshold. The detection threshold value controls the false alarm rate.
Two kinds of false alarms exist: the false positive rate, defined as the probability of detecting a watermark in non watermarked items, and the false negative rate, which is defined as the probability of not detecting a watermark in watermarked items. Generally, the requirement of the false positive alarm is more stringent than that of the false negative.
After each detection interval, the detector determines whether the original watermark is present or whether it is not present, and on this basis output a “yes” or a “no” decision to the outputting device and at the same time to the control signal generating unit 500.
If desired, to improve this decision making process, a number of detection windows may be considered. In such an instance, the false positive probability is a combination of the individual probabilities for each detection window considered, dependent upon the desired criteria For instance, it could be determined that if the correlation function has two peaks above a threshold of cL=7 on any two out of three detection intervals, then the watermark is deemed to be present. Obviously, such detection criteria can be altered depending upon the desired use of the watermark signal and to take into account factors such as the original quality of the host signal and how badly the signal is likely to be corrupted during normal transmission.
In summary of the general operation of this particular re-embedding process, the re-embedding apparatus 600 is arranged to receive a signal y′old containing a watermark at input 602. The signal y′old in this instance has been generated by the watermark embedding apparatus shown in
As described above, the detector 640 is arranged to detect the presence of the watermark within the signal y′old, and to estimate the watermark embedding parameters (e.g. the amounts d by which the watermark sequences were circularly shifted, and the gain factor α used to control the trade off between the audibility and the robustness of the watermark).
In this preferred embodiment, only a portion of the original watermark signal is removed (the sequence of values which have been circularly shifted by the amount dold). The same sequence of values (ws) as utilised in the original watermark is then circularly shifted by a new amount (dnew), and embedded within the information signal, using the detected embedding parameters.
The detector 640 also provides synchronization information such as the time offset (Δt) to a delay unit 629. The copy of the input signal y′old passed to the delay unit 629 is then appropriately synchronized to take into account any time offsets, rescaling and also the intrinsic delay caused by the various operations carried out by the units in the re-embedder (e.g. 630b, 624, 625, 615), and to ensure that yold is synchronized with yb at the adder 626. One copy of the signal y′old is passed to the filter H 615. This is similar to the filter shown in
It will be appreciated that the above embodiments are provided by way of example only. Various modifications will be apparent to the skilled person.
For instance, whilst the preferred embodiment has described the partial removal of the original watermark, it will be appreciated that the whole of the original watermark could be removed and replaced. Equally, whilst only one sequence has been described as being removed and replaced by one sequence, it will be appreciated that a single sequence could be replaced by two or more sequences. Alternatively if the original payload comprised three circularly shifted sequences or more, two such sequences could be replaced by a single sequence, or a plurality of sequences.
Whilst the new watermark has been described as utilizing the same values of embedding parameters as originally used, the new watermark could of course use alternative values for any one of more of the embedding parameters.
For instance, whilst the above embodiment has described the watermark altering signal wc as being scaled by a factor α, it will be appreciated that the two components forming wc (ie. wold and wnew) could be scaled by different amounts before being added together, or before being separately added directly to the received signal y′old. In order for the portion of the watermark to be removed, it is desirable that the embedding strength of the negative version of wold is similar to that originally used to embed wold in the host signal. However, wnew can obviously be embedded into y′old with any desired strength.
It is desirable that watermarks are embedded into the host signal without unduly affecting the quality of the host signal. Preferably, all embedded watermark signals are imperceptible to an observer i.e. in an audio signal, the effect of the watermark signal can not be heard, or in a video signal, the effect of the watermark signal can not be seen.
The ITU standard “Method for objective Measurements of Perceived audio quality”, International Telecommunication Union, Geneva Switzerland (1999), defines a five grid scoring system (which is in conformation to ITU-R Rec BS.1116 (rev. 1) (1997) and ITU-R Rec. BS.562-3 (1990) standards). The various scores are: 5=Imperceptible, 4=Perceptible but not annoying, 3=Slightly annoying, 2=Annoying, 1=Very annoying.
Whilst it is preferable that all watermark signals are imperceptible, equally, a scoring of 4 on the ITU scale (“perceptible but not annoying”) is acceptable in most systems.
Whilst the above embodiment describes the implementation of the present invention with respect to one particular watermarking scheme, it will be appreciated that the invention can in fact be implemented using many other types of watermarking schemes.
For instance, one type of audio watermarking scheme is to use temporal correlation techniques to embed the desired data (e.g. copyright information) into the audio signal.
This technique is effectively an echo-hiding algorithm, in which the strength of the echo is determined by solving a quadratic equation. The quadratic equation is generated by auto-correlation values at two positions: one at delay equal to τ, and one at delay equal to 0. In such a scheme, as echoes of the audio signal are added to the original audio signal, the resulting signal is in fact both an amplitude and a phase modulated version of the original audio signal. At the detector, the watermark is extracted by determining the ratio of the auto correlation function at the two delay positions.
Also known are watermarking schemes based on the amplitude modulation of DFT (discrete Fourier Transform) co-efficients, that require the calculation of DFT's at both the encoder and the decoder.
Similarly, WO 98/53565, U.S. Pat. No. 6,175,627 and WO 00/00969 describe alternative techniques, to which the present invention could be applied, for embedding or encoding auxiliary signals (such as copyright information) into a multimedia host or cover signal. As detailed in WO 00/00969, a replica of the cover signal, or a portion of the cover signal in a particular domain (time, frequency or space), is generated according to a stego key, which specifies modification values to the parameters of the cover signal. The replica signal is then modified by an auxiliary signal corresponding to the information to be embedded, and inserted back into the cover signal so as to form the stego signal.
At the decoder, in order to extract the original auxiliary data, a replica of the stego signal is generated in the same manner as the replica of the original cover signal, and requires the use of the same stego key. The resulting replica is then correlated with the received stego signal, so as to extract the auxiliary signal.
Using an alternative embodiment of the present invention, the extracted auxiliary signal can be replaced by a new one. This can be achieved by appropriately subtracting the auxiliary information from the received signal using the stego key and the embedding parameters estimated using the detection unit. In relation to
It will be appreciated by the skilled person that various implementations not specifically described would be understood as falling within the scope of the present invention. For instance, whilst only the functionality of the embedding and detecting apparatus has been described, it will be appreciated that the apparatus could be realized as a digital circuit, an analog circuit, a computer program, or a combination thereof.
Within the specification it will be appreciated that the word “comprising” does not exclude other elements or steps, that “a” or “an” does not exclude a plurality, and that a single processor or other unit may fulfil the functions of several means recited in the claims.
Number | Date | Country | Kind |
---|---|---|---|
02077170.5 | Jun 2002 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB03/02319 | 5/21/2003 | WO | 11/30/2004 |