This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2012-179966, filed on Aug. 14, 2012, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a technique of embedding different information into data, and a technique of extracting the embedded different information.
Several encoding techniques to compress an amount of data of multi-channel audio signals are disclosed. One of such techniques is MPEG surround standardized by moving picture experts group (MPEG).
In MPEG surround, audio signals (time signal) of 5.1 channel as an encoding target are time-frequency transformed, and resulting frequency signals are down-mixed to generate 3-channel frequency signals. The 3-channel frequency signals are down-mixed again to calculate 2-channel frequency signals corresponding to stereo signals. The 2-channel frequency signals are then encoded through advanced audio coding (MC) method, and spectral band replication (SBR) coding method. In MPEG surround, spatial information representing spreading of sound or echolocation is calculated in the down-mixing from the 5.1 channels to 3 channels, and in the down-mixing from 3 channels to 2 channels. The spatial information is also encoded together.
In the MPEG surround, stereo signals resulting from down-mixing multi-channel audio signals and the spatial information that is relatively small in data quantity are encoded. The MPEG surround provides a compression rate higher than when channel signals contained in the multi-channel audio signal are independently encoded.
In the MPEG surround, a prediction coefficient is used to encode the spatial information that is calculated in the generation of 2-channel stereo frequency signals. The prediction coefficient is a coefficient that is used to obtain 3-channel signals by up-mixing the 2-channel signals subsequent to the down-mixing. More specifically, the coefficient is used to predict one of the 3-channel signals based on the two other channel signals. The up-mixing is described with reference to
As illustrated in
c=c1l+c2r (1)
Values of a plurality of prediction coefficients are stored on a table referred to as a “code book”. The code book is used to increase a use bit rate. In the MPEG surround, each of c1 and c2 takes all values within a range of from −2.0 or larger to +3.0 or smaller in steps of 0.1, namely, combinations of 51×51 are stored on the code book. If the combinations of prediction coefficients are plotted on the orthogonal coordinate system having c1 and c2 as two coordinate axes, 51×51 grid points are obtained as the code book.
A related art technique is available to select a combination of prediction coefficients from the code book. According to the technique, an error defined by a difference between a channel signal prior to predictive encoding and the channel signal subsequent to the predictive encoding is calculated using all combinations of prediction coefficients stored on the code book, and a combination providing a minimum error is selected. Japanese National Publication of International Patent Application No. 2008-517338 discusses a technique of selecting a combination having a minimum error through least square algorithm.
In another related art techniques, additional information is embedded in data. For example, Japanese Laid-open Patent Publication No. 2009-213074 discloses a technique of embedding digital watermark information in encoded data. According to the disclosed technique, compression encoded data is re-encoded using an encoding control parameter different from an encoding control parameter that has been used in the compression encoded data. Japanese Laid-open Patent Publication No. 2000-013800 discloses a technique of hiding encryption information in image data. According to the disclosed technique, a predictive mode signal of predictive image data is corrected in accordance with the encryption information, and encoding is performed in response to a predictive mode signal subsequent to the correction. During decoding, the corresponding encryption information is extracted first from the predictive mode signal.
In accordance with an aspect of the embodiments, a data embedding device includes a processor; and a memory which stores a plurality of instructions, which when executed by the processor, cause the processor to execute, extracting, from a code book storing a plurality of prediction coefficients, a plurality of candidates of prediction coefficients of a channel signal out of a plurality of channel signals, each candidate having a predictive error falling within a specific range of predictive error of predictive encoding of two other channel signals; and selecting from the extracted candidates a prediction coefficient as a result of the predictive encoding in accordance with a specific data embedding rule and embedding embed target data into the selected prediction coefficient.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
These and/or other aspects and advantages will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawing of which:
A data embedding device, a data embedding method, a data extractor device, and a data extraction method are described as embodiments below with reference to the drawings. The embodiments discussed herein are not intended to limit the technique disclosed herein.
Referring to
Elements included in the encoding system and the decoding system of
The encoding system of
The decoding system of
The encoding system of
The time-frequency transform unit 11 transforms the 5.1 channel audio signals in the time domain input from the encoder apparatus 10 into 5.1 channel frequency signals. In the embodiment, the time-frequency transform unit 11 performs time-frequency transform on a per frame unit basis through quadrature mirror filter (QMF). This transform results in a frequency component signal in each band segment of the input audio signal in the time domain when one channel audio frequency band is equally divided (by 64). The process of each function block of the encoder apparatus 10 and the data embedding device 20 in the encoding system of
The first down mixer unit 12 down mixes the frequency signal of each channel each time the 5.1 channel frequency signals are received. The first down mixer unit 12 thus generates 3-channel frequency signals inclusive of left, center, and right signals.
The second down mixer unit 13 down mixes the frequency signal of each channel each time the 3-channel frequency signals are received from the first down mixer unit 12. The second down mixer unit 13 thus generates 2 channel stereo frequency signals inclusive of left and right signal.
The stereo encoder unit 14 encodes the stereo frequency signals received from the second down mixer unit 13 in accordance with the MC encoding method or the SBR encoding method.
The predictive encoding unit 15 determines a value of the prediction coefficient. The prediction coefficient is used in a prediction operation in the up mixing that restores the 3 channel signals from the stereo signals as an output from the second down mixer unit 13. The up mixing to restore the 3 channel signals from the stereo frequency signals is to be performed by a first up mixer unit 33 in a decoder apparatus 30 described below in accordance with the method described with reference to
The multiplexer unit 16 arranges the prediction coefficient and the encoded data output from the stereo encoder unit 14 in a specific order to multiplex the prediction coefficient and the encoded data. The multiplexer unit 16 then outputs the multiplexed encoded data. If the encoder apparatus 10 is operated in a standalone fashion, the multiplexer unit 16 multiplexes the prediction coefficient output from the predictive encoding unit 15 and the encoded data. If the encoding system configured as illustrated in
The data embedding device 20 includes a code book 21, a candidate extractor unit 22, and a data embedding unit 23.
The code book 21 stores a plurality of prediction coefficients. The code book 21 is the same as the one that the predictive encoding unit 15 in the encoder apparatus 10 uses to obtain the prediction coefficient. As illustrated in
With respect to one channel signal of a plurality of channel signals, the candidate extractor unit 22 extracts from the code book 21 a plurality of candidates of prediction coefficients of a channel signal out of a plurality of channel signals, each candidate having a predictive error falling within a specific range of predictive error of predictive encoding of two other channel signals. More specifically, the candidate extractor unit 22 extracts from the code book 21 the plurality of candidates of prediction coefficients, each candidate having an error from the prediction coefficient obtained by the predictive encoding unit 15 falling within a specific threshold value.
The data embedding unit 23 selects from the candidates extracted by the candidate extractor unit 22 the prediction coefficient as a result of the predictive encoding in accordance with a specific data embedding rule, and then embeds embed target data in the prediction coefficient. More specifically, the data embedding unit 23 selects the prediction coefficient to be input to the multiplexer unit 16 from among the candidates extracted by the candidate extractor unit 22 in accordance with the specific data embedding rule, and then embeds the embed target data in the prediction coefficient.
The decoding system of
In accordance with the order of arrangement in the multiplexing used by the multiplexer unit 16, the separator unit 31 separates the encoded data output from the stereo encoder unit 14 and the prediction coefficient from the multiplexed encoded data which is the output of the encoding system of
The stereo decoder unit 32 decodes the encoded data received from the separator unit 31, thereby restoring two channel stereo frequency signals inclusive of left and right signals.
The first up mixer unit 33 up mixes the stereo frequency signals received from the stereo decoder unit 32 in accordance with the up mixing method of
The second up mixer unit 34 up mixes the 3-channel frequency signals received from the first up mixer unit 33. The second up mixer unit 34 thus restores the 5.1 channel frequency signals inclusive of front left, center, front right, left surround, right surround, and subwoofer signals.
The frequency-time transform unit 35 performs frequency-time transform, which is inverse to the time-frequency transform performed by the time-frequency transform unit 11, on the 5.1 channel frequency signals received from the second up mixer unit 34. The frequency-time transform unit 35 thus restores and outputs 5.1 channel audio signals in the time domain.
The data extractor device 40 includes a code book 41, a candidate identifier unit 42, and a data extractor unit 43.
The code book 41 stores a plurality of candidates of prediction coefficients in advance. The code book 41 is the same as the code book 21 included in the data embedding device 20. As illustrated in
The candidate identifier unit 42 references the code book 41 and identifies a candidate of the prediction coefficient extracted by the candidate extractor unit 22, in accordance with the prediction coefficient as a result of the predictive encoding and the two other channel signals. More specifically, the candidate identifier unit 42 references the code book 41 and identifies the candidate of the prediction coefficient extracted by the candidate extractor unit 22, in accordance with the prediction coefficient received from the separator unit 31, and the stereo frequency signals restored by the stereo decoder unit 32.
The data extractor unit 43 extracts the data that the data embedding unit 23 has embedded in the encoded data from the candidates of the prediction coefficients identified by the candidate identifier unit 42, in accordance with the data embedding rule used by the data embedding unit 23 in the data embedding.
The data embedding device 20 thus constructed embeds the additional data in the encoded data and then the data extractor device 40 extracts the additional data from the encoded data. Any of the candidates of the prediction coefficients to be selected in the data embedding of the data embedding device 20 falls within a specific range of predictive error in the predictive encoding that is performed using the selected parameter. If the specific range of the predictive error is set to be sufficiently narrow, degradation in the information restored through the predictive encoding for the up mixing of the first up mixer unit 33 in the decoder apparatus 30 is unrecognizable.
The data embedding device 20 and the data extractor device 40 may be implemented using a computer having a standard computer structure.
The computer 50 includes a micro processing unit (MPU) 51, a read-only memory (ROM) 52, a random-access memory (RAM) 53, a hard disk drive 54, an input device 55, a display device 56, an interface device 57, and a recording medium drive 58. These elements are interconnected via a bus line 59, and transmit and receive a variety of data under the control of the MPU 51.
The MPU 51 is an arithmetic processor unit that generally controls the computer 50.
The ROM 52 is a read-only semiconductor memory that stores a specific basic control program in advance. The MPU 51 reads and executes the basic control program at the startup of the computer 50, and controls an operation of each element in the computer 50.
The RAM 53 is a readable and writable semiconductor memory, and serves as a working memory area as appropriate when the MPU 51 performs a variety of control programs.
The hard disk drive 54 is a storage device that stores the variety of control programs to be executed by the MPU 51 and a variety of data. The MPU 51 reads a specific control program stored on the hard disk drive 54 and then executes the specific control program, thereby performing a control process to be discussed later. The code books 21 and 41 may be stored on the hard disk drive 54 in advance, for example. In order to cause the computer 50 to operate as the data embedding device 20 and the data extractor device 40, the MPU 51 is first caused to perform a process of reading the code books 21 and 41 from the hard disk drive 54 and of storing the code books 21 and 41 onto the RAM 53.
The input device 55 includes a keyboard and a mouse. The input device 55, if operated by a user of the computer 50, acquires an input of a variety of information from the user associated with an operation action, and sends the acquired input information to the MPU 51. For example, the input device 55 acquires data that is to be embedded in the encoded data.
The display device 56 is a liquid-crystal display, for example, and displays a variety of text and images in response to display data sent from the MPU 51.
The interface device 57 manages exchange of a variety of data with various devices connected to the computer 50. For example, the interface device 57 exchanges data including encoded data and prediction coefficients with each of the encoder apparatus 10 and the decoder apparatus 30.
The recording medium drive 58 reads a variety of control programs and data stored on a removable recording medium 60. The MPU 51 reads a specific control program stored on the removable recording medium 60 via the recording medium drive 58 and then executes the specific control program, thereby performing a variety of control processes to be discussed later. The removable recording media 60 include a compact disk read-only memory (CD-ROM), a digital versatile disk read-only memory (DVD-ROM), and a flash memory having a universal serial bus (USB) connector.
The control program that causes the MPU 51 to execute the control process and process steps discussed below is generated in order to cause the computer 50 to function as the data embedding device 20 and the data extractor device 40. The generated control program is stored on the hard disk drive 54 or the removable recording medium 60 in advance. A specific instruction is given to the MPU 51 to cause the MPU 51 to read and execute the control program. In this way, the MPU 51 functions as the elements included in the data embedding device 20 and the decoder apparatus 30 respectively discussed with reference to
The control process performed by the data embedding device 20 is described with reference to
In S101, the candidate extractor unit 22 performs an error curved surface determination operation. The error curved surface determination operation is performed to determine a surface shape of the error curved surface.
The error curved surface is described. The error curved surface is obtained by representing in graph a distribution of an error (predictive error) between a predictive result based on the prediction coefficient of a signal of one of the plurality of channels and an actual signal of the one channel, with the prediction coefficient varied. In the embodiment, the predictive error is obtained when the signal of a center channel is predicted using the prediction coefficients as illustrated in
Let c0 represent a signal vector of an actual signal of the center channel, and c represent a signal vector as a predictive result of the signal of the center channel using the signals of the left channel and the right channel and the prediction coefficient, and a predictive error d is expressed by the following expression (2).
d=Σ|c0−c|2=Σ|c0−(c1l+c2r)|2 (2)
where l and r represent signal vectors of the left channel and the right channel, respectively, and c1 and c2 represent prediction coefficients of the left channel and the right channel, respectively.
If expression (2) is modified in terms of c1 and c2, the following equation (3) results:
where function f expresses an inner product of vectors.
The denominator of the right side of expression (3), namely, expression (4) is considered;
f(l,r)f(1,r)−f(l,l)f(r,r) (4)
If the value of expression (4) is zero, the surface shape of the error curved surface becomes parabolic as in
The zero value of expression (4) is limited to one of the following three cases: (1) if the r vector is a zero vector, (2) if the l vector is a zero vector, and (3) if the l vector is a constant number multiple of the r vector. In the error curved surface determination operation in S101, the candidate extractor unit 22 may determine the surface shape of the error curved surface by examining which case the signals of the left channel and the right channel output from the first down mixer unit 12 applies to.
In S102, the candidate extractor unit 22 determines whether the surface shape of the error curved surface determined in the error curved surface determination operation in S101 is parabolic or not. If the surface shape of the error curved surface determined in the error curved surface determination operation in S101 is parabolic (yes branch from S102), the candidate extractor unit 22 proceeds to S103. The candidate extractor unit 22 then performs an operation to embed data. On the other hand, if the surface shape of the error curved surface determined in the error curved surface determination operation in S101 is not parabolic (ellipsoidal) (no branch from S102), processing proceeds to S114. In such a case, the data embedding is not performed.
In S103, the candidate extractor unit 22 performs an error straight line determination operation. An error straight line is a set of points, each point having a minimum predictive error on the error curved surface. If the error curved surface is parabolic, the sets of points becomes a straight line. If the error curved surface is ellipsoidal, the set of points is not a straight line, but a single point. The determination operation in S102 is thus a determination operation as to whether the set of points is a straight line or not.
In the parabolic error curved surface of
The error straight line may be expressed as one of the following three expressions depending on the signal levels of the left and right channels. In the error straight line determination operation in S103, the candidate extractor unit 22 determines the error straight line by substituting the signals of the left and right channels output from the first down mixer unit 12 for each signal vector on the right side of each of the following equations.
First, if the r vector is zero, in other words, there is no signal on the right channel, the expression of the error straight line becomes the following expression (5):
If the l vector is zero, in other words, there is no signal on the left channel, the expression of the error straight line becomes the following expression (6):
If the l vector is a constant number multiple of the r vector, in other words, the ratio of the l vector to the r vector is constant on all samples in a process target frame, the expression of the error straight line becomes the following expression (7):
If both the r vector and the l vector are zero vectors, in other words, the signals on both the R and L channels are zeros, a set of points, each having a minimum predictive error, do not become a straight line. The candidate extractor unit 22 proceeds to S104 without determining the error straight line in the error straight line determination operation in S103. This operation is described below.
In S104, the candidate extractor unit 22 performs a prediction coefficient candidate extraction operation. In the prediction coefficient candidate extraction operation, the candidate extractor unit 22 extracts the prediction coefficients from the code book 21 in accordance with the error straight line determined in S103.
In the prediction coefficient candidate extraction operation, the candidate extractor unit 22 extracts candidates of prediction coefficients in accordance with the positional relationship of the error straight line in the plane including the prediction coefficients c1 and c2 with each point corresponding to the prediction coefficients stored on the code book 21. In the prediction coefficient candidate extraction operation, the positional relationship is that any point is selected as long as the distance of the point corresponding to the candidate of the prediction coefficient stored on the code book 21 to the error straight line falls within a specific range. A combination of the prediction coefficients represented by the selected points is extracted as the candidates of prediction coefficients. This operation is specifically described with reference to
As illustrated in
In the prediction coefficient candidate extraction operation, several extraction patterns of extracting the candidates of prediction coefficients are prepared. An extraction pattern is selected in accordance with the positional relationship between the error straight line on the plane and the corresponding points of the prediction coefficients on the code book 21, and then the prediction coefficients are extracted. The selection of the extraction pattern is described below.
The candidate extractor unit 22 performs the operations in S101 through S104 in the candidate extraction process in S100. When the candidate extractor unit 22 completes the candidate extraction process in S100, the data embedding unit 23 performs a data embedding process in S110. In the data embedding process, the data embedding unit 23 selects the prediction coefficient as a result of the predictive encoding of the predictive encoding unit 15 from the candidates extracted in S104, in accordance with a specific data embedding rule, and then embeds embed target data in the prediction coefficient. The data embedding process is described in detail below.
In S111, the data embedding unit 23 performs an embed capacity calculation operation. In the embed capacity calculation operation in S104, the data embedding unit 23 calculates, as a data capacity that allows embedding, a maximum bit count that does not exceed the number of candidates of prediction coefficients extracted in the prediction coefficient candidate extraction operation in S104. For example,
In S112, the data embedding unit 23 performs an embed value attachment operation. In the embed value attachment operation, the data embedding unit 23 attaches an embed value to each of the candidates of prediction coefficients extracted in the prediction coefficient candidate extraction operation in S104, in accordance with a specific rule. In S113, the data embedding unit 23 performs a prediction coefficient selection operation. In the prediction coefficient selection operation, the data embedding unit 23 references a bit string of the embed target data equal to the embed capacity, selects a candidate of prediction coefficient having an embed value matching the value of the bit string, and outputs the selected candidates to the multiplexer unit 16 in the encoder apparatus 10.
The operations in S112 through S113 are specifically described with reference to
The embed target data may be “11010101101101010 . . . ” as illustrated in
When the prediction coefficient selection operation in S113 is complete, the control process of
The data embedding device 20 thus performs the control process, thereby embedding the additional data in the encoded data generated by the encoder apparatus 10.
Simulation results of a size of data that may be embedded through the above control process is described below. Used in this simulation are 12 types of 5.1 channel audio signals (including voice and music) of one minute of MPEG surround with a sampling frequency of 48 kHz, and a transfer rate of 160 kb/s.
In this simulation, an average number of parameters per second is 1312, the probability of the parabolic surface shape of the error curved surface is 5%, and an average embed capacity to the prediction coefficient is 5 bits. As a result, the embed capacity is 320 kb/s, and in terms of one-minute audio signal, data of 2.4 kilobytes may be embedded.
The control process performed by the data extractor device 40 of
In S200 of
In S201, the candidate identifier unit 42 performs an error curved surface determination operation. The error curved surface determination operation is performed to determine the surface shape of the error curved surface, and is the same operation as the error curved surface determination operation performed by the candidate extractor unit 22 in S101 of
In S202, the candidate identifier unit 42 determines whether the surface shape of the error curved surface determined in the error curved surface determination operation in S201 is parabolic or not. If the surface shape of the error curved surface determined in the error curved surface determination operation in S201 is parabolic (yes branch from S202), the candidate identifier unit 42 proceeds to S203. The candidate extractor unit 22 then performs an operation to extract data. On the other hand, if the surface shape of the error curved surface determined in the error curved surface determination operation in S201 is not parabolic (ellipsoidal) (no branch from S202), the candidate identifier unit 42 determines that no data has been embedded in the prediction coefficient, and then ends the control process of
In S203, the candidate identifier unit 42 performs an error straight line estimation operation. In the error straight line estimation operation, the candidate identifier unit 42 estimates the error straight line determined by the candidate extractor unit 22 in the error straight line determination operation in S103 of
In S204, the candidate identifier unit 42 performs a prediction coefficient candidate estimation operation. In the prediction coefficient candidate estimation operation, the candidate identifier unit 42 estimates the candidate of the prediction coefficient extracted by the candidate extractor unit 22 in the prediction coefficient candidate extraction operation in S104 of
The candidate identifier unit 42 performs the operations in S201 through S204 as the candidate identification process in S200. When the candidate identifier unit 42 completes the candidate identification process in S200, the data extractor unit 43 then performs a data extraction process in S210. In the data extraction process, the data extractor unit 43 extracts from the candidate of the prediction coefficient identified by the candidate identifier unit 42 the data embedded in the encoded data by the data embedding unit 23, in accordance with the data embedding rule used by the data embedding unit 23 in the data embedding.
The data extraction process is described further in detail. In S211, the data extractor unit 43 performs an embed capacity calculation operation. In the embed capacity calculation operation, the data extractor unit 43 calculates a size of data that may be embedded. The embed capacity calculation operation is the same operation as the embed capacity calculation operation performed by the data embedding unit 23 in S111 of
In S212, the data extractor unit 43 performs an embed value attachment operation. In the embed value attachment operation, the data extractor unit 43 attaches an embed value to each of the candidates of the prediction coefficients extracted in the prediction coefficient candidate estimation operation in S204 in accordance with the same rule used by the data embedding unit 23 in the embed value attachment operation in S112 of
In S213, the data embedding unit 23 performs an embed data extraction operation. In the embed data extraction operation, the data embedding unit 23 acquires an embed value attached in the embed value attachment operation in S212 in response to the prediction coefficient received from the separator unit 31, and buffers the values on a specific storage area in the order of acquisition as extraction results of the data embedded by the data embedding unit 23.
The embed value attachment operation in S212 and the embed data extraction operation in S213 are specifically described with reference to
The prediction coefficient received from the separator unit 31 may now match a maximum value of the prediction coefficient c2 among the blank circles, namely, the combination of the values of the point with the embed value “11” attached thereto. In such a case, the embed value “11” is extracted as the date embedded by the data embedding unit 23 and then buffered on an specific information buffer.
When the embed data extraction operation in S213 is complete, the control process of
If both the r vector and the l vector are zero vectors as previously described, the set of points, each point having a minimum error, does not become a straight line. In the determination operation in S104-1, the candidate extractor unit 22 determines whether the set of points, each point having a minimum error, forms a straight line.
If the candidate extractor unit 22 determines in S104-1 that at least one of the r vector and the l vector is non-zero vector, and thus determines that the set of points forms a straight line (yes branch from S104-1), processing proceeds to S104-2. On the other hand, if the candidate extractor unit 22 determines in S104-1 that both the r vector and the l vector are zero vectors, and thus determines that the set of points does not form a straight line (no branch from S104-1), processing proceeds to S104-9.
In S104-2, the candidate extractor unit 22 whether the error straight line obtained through the error straight line determination operation in S103 of
In S104-3, the candidate extractor unit 22 determines whether the error straight line is in parallel with one of the sides of the area of the code book 21. The sides of the area of the code book 21 refer to the sides of the rectangle determining the area of the code book 21. This determination operation proceeds to a yes branch if the error straight line is expressed by expression (5) or expression (6). On the other hand, if the error straight line is expressed by expression (7), in other words, if the ratio of the signal of the L channel to the signal of the R channel in magnitude remains constant for a specific period of time, the candidate extractor unit 22 determines that the error straight line is not in parallel with any of the sides of the area of the code book 21. This determination operation proceeds to no branch.
If the candidate extractor unit 22 determines in the determination operation in S104-3 that the error straight line is in parallel with one of the sides of the area of the code book 21 (yes branch from S104-3), processing proceeds to S104-4. If the candidate extractor unit 22 determines in the determination operation in S104-3 that the error straight line is in parallel with none of the sides of the area of the code book 21 (no branch from S104-3), processing proceeds to S104-5.
In S104-4, the candidate extractor unit 22 performs a prediction coefficient candidate extraction operation in accordance with a pattern A, and then proceeds to S111 of
In S104-5, the candidate extractor unit 22 determines whether the error straight line intersects a pair of opposed sides of the area of the code book 21. Upon determining that the error straight line intersects the pair of opposed sides of the area of the code book 21 (yes branch from S104-5), the candidate extractor unit 22 proceeds to S104-6. In S104-6, the candidate extractor unit 22 performs the prediction coefficient candidate extraction operation in accordance with a pattern B. Processing then proceeds to S111 of
If the determination result in S104-2 is non-affirmative, a determination operation in S104-7 is performed. In S104-7, the candidate extractor unit 22 determines whether the error straight line is in parallel with a side of the area of the code book 21. This determination operation is identical to the determination operation in S104-3. Upon determining that the error straight line is in parallel with a side of the area of the code book 21 (yes branch from S104-7), the candidate extractor unit 22 proceeds to S104-8. In S104-8, the candidate extractor unit 22 performs the prediction coefficient candidate extraction operation in accordance with a pattern C, and then proceeds to S111 of
If the determination result in S104-1 is non-affirmative, the candidate extractor unit 22 performs the prediction coefficient candidate extraction operation in accordance with a pattern D in S104-9. Processing then proceeds to S111 of
The prediction coefficient candidate extraction operation of each pattern is described below. The prediction coefficient candidate extraction operation of the pattern A performed in S104-4 is described first. In the pattern A, the error straight line intersects the area of the code book 21, and is in parallel with any of the sides of the area of the code book 21.
The pattern A refers to the case in which the error straight line has the positional relationship of
The pattern B handled in the operation in S104-6 is described with reference to
Summarizing the cases illustrated in
More specifically, the prediction coefficient candidate extraction operation of the pattern B of the candidate extractor unit 22 may also be described as below.
The following steps (a) and (b) are performed with the value of a variable i incremented by 1.
The prediction coefficient candidate extraction operation of the pattern C performed in S104-8 is described with reference to
The prediction coefficient candidate extraction operation of the pattern D performed in S104-9 is described with reference to
The candidate extractor unit 22 thus uses a prediction coefficient candidate extraction operation of a different pattern depending on the positional relationship between the error straight line and the area of the code book 21, and extracts the prediction coefficient candidates. In the prediction coefficient candidate estimation operation in S204 of
The embedding of the additional data, different from the embed target data, by the data embedding device 20 is described below. The data to be embedded into the prediction coefficient by the data embedding device 20 may be any type of data. By embedding the additional data indicating a leading position of the embed target data, the data extractor device 40 may easily find the head of the embed target data from the extracted data. By embedding the additional data indicating a trailing position of the embed target data, the data extractor device 40 may easily find the trail of the embed target data from the extracted data.
Techniques of embedding the additional data separate from the embed target data is described below. In a first technique, the data embedding unit 23 attaches, to the leading end or the trailing end of the embed target data, additional data that represents the presence of the embed target data and the leading end or the trailing end of the embed target data. The first technique is described with reference to
In
A second technique of embedding the additional data different from the embed target data is described. In the second technique, the data embedding unit 23 embeds the additional data together with the embed target data in the prediction coefficient by selecting from the extracted candidates the prediction coefficient as a resulting of the predictive encoding in accordance with the specific data embedding rule.
If the candidates of prediction coefficients extracted by the candidate extractor unit 22 are extracted as denoted by the blank circles in
More specifically, as illustrated in
In the embed data extraction operation in S213 of
A third technique of embedding the additional parameter different from the embed target data is described below. As previously described, the processes of the function blocks of the data embedding device 20 are performed on each of the frequency component signals of the band segments into which one channel audio frequency band is divided. More specifically, the candidate extractor unit 22 extracts from the code book 21 a plurality of candidates of prediction coefficients from each of the frequency bands, each candidate falling having within a specific threshold value an error with the prediction coefficient obtained on each frequency band in the predictive encoding on each frequency band of the center channel. In the third technique, the data embedding unit 23 embeds the embed target data in a prediction coefficient by selecting the prediction coefficient as a result of the predictive encoding of a first frequency band from the candidates extracted from the first frequency band. The data embedding unit 23 embeds the additional data in a prediction coefficient by selecting the prediction coefficient as a result of the predictive encoding of a second frequency band different from the first frequency band from the candidates extracted from the second frequency band.
The third technique of embedding the additional data is described with reference to
In
Subsequent to S104 of
Step S303, paired with step S310, forms a loop. The data embedding unit 23 iterates steps in S304 through S309 with the value of the variable j.
In S304, the data embedding unit 23 performs an embed capacity calculation operation. In the embed capacity calculation operation in S304 identical to the embed capacity calculation operation in S111 of
In S305, the data embedding unit 23 performs an embed value attachment operation. In the embed value attachment operation in S305, identical to the embed value attachment operation in S112 of
In S306, the data embedding unit 23 performs a determination operation as to whether the j-th frequency band belongs to the low-frequency region or the high-frequency region. Upon determining that the j-th frequency band belongs to the low-frequency region, the data embedding unit 23 proceeds to S307. Upon determining that the j-th frequency band belongs to the high-frequency region, the data embedding unit 23 proceeds to S308.
In S307, the data embedding unit 23 performs a prediction coefficient selection operation responsive to a bit string of the embed target data, and then proceeds to S309. In the prediction coefficient selection operation in S307, the data embedding unit 23 references the bit string of the embed capacity in the embed target data, and selects the candidate of the prediction coefficient with the embed value matching the value of the bit string from the candidates of the prediction coefficients at the i-th frame of the j-th frequency band. The prediction coefficient selection operation in S307 is identical to the prediction coefficient selection operation in S113 of
In S308, the data embedding unit 23 performs a prediction coefficient selection operation responsive to a bit string of the additional data, and then proceeds to S309. In the prediction coefficient selection operation in S308, the data embedding unit 23 references the bit string of the embed capacity in the additional data, and selects the candidate of the prediction coefficient with the embed value matching the value of the bit string from the candidates of the prediction coefficients at the i-th frame of the j-th frequency band. The prediction coefficient selection operation in S308 is also identical to the prediction coefficient selection operation in S113 of
In S309, the data embedding unit 23 substitutes the sum resulting from adding “1” to the current value of the variable j for the variable j. In S310, the data embedding unit 23 determines whether the loop starting with S303 is to be iterated. Upon determining that the value of the variable j is the constant j_max or smaller, the data embedding unit 23 iterates operations in S304 through S309. Upon determining that the value of the variable j is above the constant j_max, the data embedding unit 23 terminates the iteration of operations in S304 through S309, and then proceeds to S311.
In S311, the data embedding unit 23 substitutes the sum resulting from adding “1” to the current value of the variable i for the variable i. In S312, the data embedding unit 23 determines whether the loop starting with S302 is to be iterated. Upon determining that the value of the variable i is the constant i_max or smaller, the data embedding unit 23 iterates operations in S303 through S311. Upon determining that the value of the variable i is above the constant i_max, the data embedding unit 23 terminates the iteration of operations in S303 through S311, and then terminates the control process.
Through the control process, the data embedding device 20 embeds the embed target data and the additional data as illustrated in
In the first through third techniques described above to embed the target data and the additional data, the additional data indicates the presence of the embed target data and the start or the end of the embed target data. Different data may be embedded in the prediction coefficient. For example, if the embed target data is error correction encoded data, the additional data to be embedded in the prediction coefficient may indicate whether the embed target data has been error correction encoded or not. The error correction encoding method may be something simple like the one illustrated in
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2012-179966 | Aug 2012 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5956674 | Smyth et al. | Sep 1999 | A |
5974380 | Smyth et al. | Oct 1999 | A |
5978762 | Smyth et al. | Nov 1999 | A |
8655670 | Purnhagen et al. | Feb 2014 | B2 |
20040078205 | Liljeryd | Apr 2004 | A1 |
20060047522 | Ojanpera | Mar 2006 | A1 |
20060140412 | Villemoes et al. | Jun 2006 | A1 |
20070081597 | Disch | Apr 2007 | A1 |
20090063164 | Wu | Mar 2009 | A1 |
20110173007 | Multrus | Jul 2011 | A1 |
20110173009 | Fuchs | Jul 2011 | A1 |
20110224994 | Norvell et al. | Sep 2011 | A1 |
20120078640 | Shirakawa | Mar 2012 | A1 |
20120245947 | Neuendorf | Sep 2012 | A1 |
20130030819 | Purnhagen et al. | Jan 2013 | A1 |
20130121411 | Robillard et al. | May 2013 | A1 |
20140278446 | Kamano | Sep 2014 | A1 |
Number | Date | Country |
---|---|---|
4-51100 | Feb 1992 | JP |
2000-13800 | Jan 2000 | JP |
2002-344726 | Nov 2002 | JP |
2008-517338 | May 2008 | JP |
2009-213074 | Sep 2009 | JP |
WO 2007140809 | Dec 2007 | WO |
Entry |
---|
Extended European Search Report dated Oct. 29, 2013 in corresponding International Patent Application No. 13170393.6-1910. |
“Watermarking Combined with CELP Speech Coding for Authentication”, IEICE Transactions on Information and Systems, Information & Systems Society, Tokyo, JP, vol. E88-D, No. 2, Feb. 1, 2005 (Feb. 1, 2005), pp. 330-334, XP002460948, ISSN: 0916-8532, DOI: 10.1093/IETISY/E88-D.2.330. |
“Basic Knowledge of Digital Watermark”, 1998, pp. 184-194. |
Office Action dated Mar. 31, 2016 in related U.S. Appl. No. 14/087,121. |
Final Office Action dated Sep. 28, 2016 in related U.S. Appl. No. 14/087,121. |
Advisory Action dated Feb. 2, 2017 in related U.S. Appl. No. 14/087,121. |
Notice of Allowance dated Mar. 30, 2017 in related U.S. Appl. No. 14/087,121. |
Number | Date | Country | |
---|---|---|---|
20140050324 A1 | Feb 2014 | US |