This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2013-054939, filed on Mar. 18, 2013, the entire contents of which are incorporated herein by reference.
The embodiment discussed herein is related to a technique for embedding other information into data and a technique for extracting the other information which is embedded.
In an audio signal, for example, a sound is sampled and quantized on the basis of a sampling theorem so as to digitalize the sound through linear pulse coding. In particular, music software is digitalized in a manner that enormously high sound quality is maintained. On the other hand, such digitalized data is easily duplicable in a complete format. Therefore, there has been an attempt to embed copyright information and the like into music software in a format which is imperceptible by a human. As a method for appropriately embedding information into music software of which high-quality sound is demanded, a method for embedding information into a frequency component has been widely employed.
Further, an example of the related art is an information embedding device that varies compression code sequence, without changing the data quantity of the compression code sequence where image data are subjected to compression coding, in such a way that the data are not visually available. Such information embedding device decodes a compression code sequence for each block so as to generate a coefficient block. The information embedding device selects embedded data, which corresponds to the generated coefficient block and a bit value of input data, from an embedded data table and generates a new block, of which the total code length is unchanged, so as to embed other information. Such technique has been disclosed in Japanese Laid-open Patent Publication No. 2002-344726 and Kineo Matsui “Basic Knowledge of Digital Watermark”, Morikita publishing Co. Ltd, pp. 184-194, for example.
In accordance with an aspect of the embodiments, a data embedding device includes a storage unit configured to store a code book that includes a plurality of prediction parameters; a processor; and a memory which stores a plurality of instructions, which when executed by the processor, cause the processor to execute, extracting a plurality of candidates, of which a prediction error in prediction coding, the prediction coding being based on signals of other two channels, of a signal of one channel among signals of a plurality of channels is within a predetermined range, of a prediction parameter from the code book and extracting the number of candidates of the prediction parameter, the candidates being extracted; converting at least part of data that is an embedding object into a number base based on the number of candidates; and selecting a prediction parameter, the prediction parameter being a result of the prediction coding, from the candidates, the candidates being extracted, in accordance with a predetermined embedding rule, the predetermined embedding rule corresponding to the number base that is converted by converting, so as to embed the data, the data being an embedding object, into the prediction parameter as the number base.
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 and a data extraction device according to an embodiment are described below with reference to the accompanying drawings.
As depicted in
The encode system 1 includes an encoder device 10 and a data embedding device 20. The encoder device 10 includes a time frequency conversion unit 11, a first down-mix unit 12, a second down-mix unit 13, a stereo encoding unit 14, a prediction encoding unit 15, and a multiplexing unit 16. The data embedding device 20 includes a code book 21, a candidate extraction unit 22, a data embedding unit 23, and an embedded information conversion unit 24. As depicted in
These constituent elements included in the encode system 1 and depicted in
Hereinafter, moving picture experts group (MPEG) surround is used as a coding system for compressing data quantity of a multi-channel audio signal. The MPEG surround is a coding system which is standardized in the moving picture experts group (MPEG). Here, the MPEG surround is explained.
In the MPEG surround, frequencies of audio signal (time signals), which are coding objects, of 5.1 channels, for example, are converted and obtained frequency signals are down-mixed, thus first generating frequency signals of 3 channels. Subsequently, the frequency signals of the 3 channels are down-mixed again and thus frequency signals, which correspond to a stereo signal, of 2 channels are calculated. Then, the frequency signals of the 2 channels are encoded on the basis of the advanced audio coding (AAC) system and the spectral band replication (SBR) coding system. Here, in the down-mix from the signals of the 5.1 channels to the signals of the 3 channels and in the down-mix from the signals of the 3 channels to the signals of the 2 channels, spatial information which represents spread and localization of sounds is calculated and this spatial information is also encoded at the same time, in the MPEG surround.
Thus, in the MPEG surround, a stereo signal which is generated by down-mixing a multi-channel audio signal and spatial information of which the data quantity is relatively small are encoded. Accordingly, higher compression efficiency is obtained in the MPEG surround compared to a case in which signals of respective channels which are included in a multi-channel audio signal are independently encoded.
In this MPEG surround, a prediction parameter is used so as to encode spatial information which is calculated when a stereo frequency signal which is signals of 2 channels is generated. A prediction parameter is a coefficient which is used for performing prediction for obtaining signals of 3 channels by up-mixing down-mixed signals of 2 channels, that is, prediction of a signal of one channel among 3 channels, on the basis of signals of other 2 channels. This up-mixing is explained with reference to
In
c=c
1
l+c
2
r (1)
Here, a plurality of values of prediction parameters are prestored in a table which is referred to as a “code book” such as the code book 21, for example. The code book is used for improving used bit efficiency. In the MPEG surround, pairs of c1 and c2 of 51 pieces×51 pieces, each of which is obtained by segmenting a region which is from −2.0 to +3.0 inclusive by a width of 0.1, are prepared as a code book. Accordingly, 51×51 grid points are obtained when the pairs of prediction parameters are plotted on an orthogonal two-dimensional coordinate system formed by two coordinate axes c1 and c2.
Referring back to
The time frequency conversion unit 11 of the encoder device 10 converts audio signals, which are inputted into the encoder device 10, of the time region of the 5.1 channels into frequency signals of the 5.1 channels. In the embodiment, the time frequency conversion unit 11 performs time frequency conversion in a frame unit which is performed by using a quadrature mirror filter (QMF), for example. Through the conversion, frequency component signals of respective regions which are obtained by equally dividing an audio frequency region of one channel (64 equal regions, for example) are obtained from the inputted audio signals of the time region. Processing which is performed in each function block of the encoder device 10 and the data embedding device 20 of the encode system 1 is performed for each of frequency component signals of respective regions.
Every time the first down-mix unit 12 receives frequency signals of the 5.1 channels, the first down-mix unit 12 down-mixes the frequency signals of respective channels so as to generate frequency signals of 3 channels in total which are a left channel, a central channel, and a right channel.
Every time the second down-mix unit 13 receives frequency signals of the 3 channels from the first down-mix unit 12, the second down-mix unit 13 down-mixes the frequency signals of respective channels so as to generate frequency signals of 2 channels in total which are a left channel and a right channel.
The stereo encoding unit 14 encodes stereo frequency signals which are received from the second down-mix unit 13, in accordance with the above-mentioned AAC system and SBR coding system, for example.
The prediction encoding unit 15 performs processing for calculating a value of the above-mentioned prediction parameter which is used for prediction which is performed in up-mixing for restoring signals of the 3 channels from stereo frequency signals which are outputs of the second down-mix unit 13. Here, the up-mixing for restoring the signals of the 3 channels from the stereo frequency signals is performed in accordance with the above-mentioned method of
The multiplexing unit 16 arranges and multiplexes the above-mentioned prediction parameters and coded data which are outputted from the stereo encoding unit 14 so as to output the multiplexed coded data. Here, when the encoder device 10 is allowed to independently operate, the multiplexing unit 16 multiplexes prediction parameters which are outputted from the prediction encoding unit 15 with coded data. On the other hand, when the configuration of the encode system 1 depicted in
In the code book 21 of the data embedding device 20, a plurality of prediction parameters are prestored. As this code book 21, a code book which is identical to a code book which is used when the prediction encoding unit 15 of the encoder device 10 obtains a prediction parameter is used. Here, the data embedding device 20 includes the code book 21 in the configuration of
The candidate extraction unit 22 extracts a plurality of candidates of a prediction parameter of which a prediction error in prediction coding, which is based on two channels other than one channel, of a signal of the one channel among signals of a plurality of channels, from the code book 21. More specifically, the candidate extraction unit 22 extracts a plurality of candidates of a prediction parameter of which an error with respect to a prediction parameter, which is obtained by the prediction encoding unit 15, is within a predetermined threshold value, from the code book 21.
The data embedding unit 23 selects a prediction parameter which is a result of the prediction coding, from candidates which are extracted by the candidate extraction unit 22, in accordance with a predetermined data embedding rule, so as to embed embedded information into the corresponding prediction parameter. More specifically, the data embedding unit 23 selects a predication parameter which is to be an input to the multiplexing unit 16, from candidates which are extracted by the candidate extraction unit 22, in accordance with a predetermined data embedding rule, so as to embed embedded information into the corresponding prediction parameter. The predetermined embedding rule is a rule based on embedded information which is converted by the embedded information conversion unit 24 which will be described later.
As depicted in
Candidate extraction processing which is performed by the candidate extraction unit 22 is now described with reference to
An error between a prediction result, which is obtained by using a prediction parameter, of a signal of a single channel among a plurality of channels and an actual signal of the single channel is first described. This error is expressed as an error curved surface by changing a prediction parameter and graphing distribution. In the embodiment, an error curved surface is a curved surface, which is obtained by graphing distribution obtained by changing a prediction parameter, of a prediction error which is obtained when a signal of a central channel is predicted by using the predication parameter as depicted in
Here, when an actual signal of a central channel is denoted as a signal vector c0 and a prediction result of a signal of the central channel which is obtained by using signals of the left channel and the right channel and prediction parameters is denoted as a signal vector c, a prediction error d is expressed as formula (2) below.
d=Σ|c
0
−c|
2
=Σ|c
0−(c1l+c2r)|2 (2)
Here, l and r denote signal vectors respectively representing signals of the left channel and the right channel and c1 and c2 denote prediction parameters of the left channel and the right channel respectively.
When this formula (2) is transformed about c1 and c2, formula (3) below is obtained.
Here, a function f denotes an inner production of vectors.
The denominator of the right side member of formula (3), namely, formula (4) below is focused.
f(l,r)f(l,r)−f(l,l)f(r,r) (4)
When a value of this formula (4) is zero, a shape of the error curved surface is parabolic as depicted in
A case where a value of formula (4) is zero is limited to any one of the following cases, namely, (1) a case where the r vector is a zero vector, (2) a case where the l vector is a zero vector, and (3) a case where the l vector is a constant multiple of the r vector. Accordingly, the shape of the error curved surface may be determined by examining whether or not the signals, which are outputted from the first down-mix unit 12, of the left channel and the right channel correspond to any of these three cases.
An error straight line is now described. An error straight line is aggregation of points of a minimum predication error on an error curved surface. When the error curved surface is parabolic, the aggregation of points forms a straight line. Here, when the error curved surface is elliptical, the number of points of the minimum predication error is one and therefore, a straight line is not formed.
In the example of the parabolic error curved surface of
Here, a formula of this error straight line is expressed by the following three formulas depending on a signal level of the left channel and the right channel. An error straight line is decided by assigning the signals, which are outputted from the first down-mix unit 12, of the left channel and the right channel to respective signal vectors of the right side member of these formulas.
First, when the r vector is a zero vector, that is, when the signal of the right channel is a silent signal, a formula of the error straight line is expressed as formula (5) below.
Second, when the l vector is a zero vector, that is, when the signal of the left channel is a silent signal, the formula of the error straight line is expressed as formula (6) below.
Third, when the l vector is a constant multiple of the r vector, that is, when proportions of the l vector and the r vector are invariable in all samples in frames which are processing objects, the formula of the error straight line is expressed as formula (7) below.
When both of the r vector and the l vector are zero vectors, that is, both of the signals of the right channel and the left channel are zero, aggregation of points of the minimum predication error does not form a straight line.
Prediction parameter candidate extraction processing performed by the candidate extraction unit 22 is now described with reference to
In the prediction parameter candidate extraction processing, candidates of a prediction parameter are extracted on the basis of a positional relation between an error straight line and each point which corresponds to each prediction parameter which is stored in the code book 21, on a plane which is defined by the prediction parameters c1 and c2. In the prediction parameter candidate extraction processing of the embodiment, points of which a distance from the error straight line is within a predetermined range are selected among points which correspond to candidates of each prediction parameter which is stored in the code book 21, as the positional relation. Then, pairs of predication parameters which are represented by the selected points are extracted as candidates of the prediction parameter. A specific example of this processing is described with reference to
In the positional relation of
In
Here, in the prediction parameter candidate extraction processing, several patterns of extraction of candidates of a prediction parameter are prepared, and extraction of candidates of a prediction parameter is performed by selecting an extraction pattern in accordance with a positional relation between an error straight line on the above-mentioned plane and corresponding points of a prediction parameter of the code book 21.
In
As described above, regarding grid points on each side of a pair of boundary sides with which the error straight line 112 intersects, a grid point which is closest to the error straight line 112 is first selected and a prediction parameter 114 which corresponds to the selected grid point is extracted as a candidate. Further, regarding grid points existing on each line which is parallel with a pair of boundary sides, with which the error straight line intersects, and passes through grid points, as well, a grid point which is closest to the error straight line 112 is selected for every line, and a prediction parameter 114 which corresponds to the selected grid point is extracted as a candidate.
More specifically, a prediction parameter candidate 114 may be decided as described below. That is, as depicted in
In this case, the following procedures (a) and (b) are performed while incrementing a value of a variable number i (i is an integer) by one.
As described above, regarding grid points on each side of a pair of boundary sides with which the error straight line 122 intersects, a grid point which is closest to the error straight line 122 is first selected and a prediction parameter 124 which corresponds to the selected grid point is extracted as a candidate, in the example of
In
A prediction parameter candidate extraction example 150 of
In
A prediction parameter candidate extraction example 130 of
A prediction parameter candidate extraction example 140 of
A prediction parameter candidate extraction example 145 of
In
As described above, the candidate extraction unit 22 discriminates and uses prediction parameter candidate extraction processing of above-mentioned respective patterns depending on a positional relation between an error straight line and a region of the code book 21, so as to extract prediction parameter candidates.
Further, in the embodiment, the candidate extraction unit 22 extracts the number of prediction parameter candidates. The number of prediction parameter candidates is described below with reference to
In the example of the prediction parameter candidate extraction example 180, prediction parameter candidates 174 of which the number of prediction parameter candidates N=5 (pieces) with respect to the error straight line 172 are thinned to be two pieces as prediction parameter candidates 182. In the example of the prediction parameter candidate extraction example 184, prediction parameter candidates 174 whose number has been 5 pieces with respect to the error straight line 172 are thinned to be three pieces as prediction parameter candidates 186. In the example of the prediction parameter candidate extraction example 188, prediction parameter candidates 174 whose number has been 5 pieces with respect to the error straight line 172 are thinned to be four pieces as prediction parameter candidates 189. The candidate extraction unit 22 outputs the number of prediction parameter candidates, which is thus extracted, to the embedded information conversion unit 24.
Subsequently, an example of conversion of embedded information which is performed by the embedded information conversion unit 24 is described with reference to
As depicted in
Subsequently, the candidate extraction unit 22 extracts prediction parameter candidates 94 on the (i+1)-th frame, as a prediction parameter candidate extraction example 90. As illustrated in the prediction parameter candidate extraction example 90, the number of prediction parameter candidates N=6 (pieces) in this example. The embedded information conversion unit 24 converts embedded information 73-2=“3222” (quaternary number) into a hexanary number on the basis of the extracted number of prediction parameters N=6. In this case, converted embedded information 88=“1030” (hexanary number). The embedded information conversion unit 24 extracts a number which does not exceed “6” from a higher order digit in the embedded information 88 so as to set embedded number 88-1=“1” as embedded information. The data embedding unit 23 sets the coordinates c1, c2 of a grid point, which corresponds to “1”, of the prediction parameter candidate 94-1 on the code book 21 as a prediction parameter so as to embed the embedded information 88-1.
As illustrated in steps d and b, the embedded information conversion unit 24 converts embedded information 208=“200” into a quinary number “33” on the basis of the number of prediction parameter candidates N=5 which is extracted by the candidate extraction unit 22, through number base conversion 211 on the second frame, for example. As illustrated in step c, the embedded information conversion unit 24 cuts out “3” which does not exceed N=5 from a higher order digit of the quinary number “33” in cutout 215. The data embedding unit 23 sets the coordinates of a prediction parameter 218 which corresponds to “3”, as a prediction parameter as illustrated in a prediction parameter selection example 217 which is extracted in the candidate extraction unit 22 so as to embed embedded information.
As illustrated in steps d and b, the embedded information conversion unit 24 converts embedded information 216=“3” into a quaternary number “3” on the basis of the number of prediction parameter candidates N=4 which is extracted by the candidate extraction unit 22, through number base conversion 219 on the third frame, for example. As illustrated in step c, the embedded information conversion unit 24 cuts out “3” which does not exceed N=4 from a higher order digit of the quaternary number “3” in cutout 223. The data embedding unit 23 sets the coordinates of a prediction parameter candidate 226 which corresponds to “3”, as a prediction parameter as illustrated in a prediction parameter selection example 225 which is extracted in the candidate extraction unit 22 so as to embed embedded information.
The above-described processing is further described with reference to flowcharts.
The candidate extraction unit 22 first performs error curved surface determination (S231). Subsequently, in S232, the candidate extraction unit 22 performs processing for determining whether or not a shape of the error curved surface which is determined in the error curved surface determination processing of S231 is parabolic (S232). When the candidate extraction unit 22 determines that the shape of the error curved surface is parabolic (S232: YES), the candidate extraction unit 22 goes to processing of S233 to proceed the processing for data embedding. On the other hand, when the candidate extraction unit 22 determines that the shape of the error curved surface is not parabolic (is elliptical) (S232: NO), the candidate extraction unit 22 goes to processing of S234. In this case, data embedding is not performed.
In S233, the candidate extraction unit 22 performs error straight line decision processing. As described above, aggregation of points forms a straight line when the error curved surface is parabolic. Here, when the error curved surface is elliptical, the number of points with a minimum prediction error is one and thus, a straight line is not formed. Accordingly, the above-described determination processing of S232 may be also called processing for determining whether or not aggregation of points with the minimum predication error forms a straight line.
In S234, the candidate extraction unit 22 performs prediction parameter candidate extraction processing. This processing extracts candidates of a prediction parameter from the code book 21 on the basis of the error straight line which is obtained through the processing of S233. Details of the processing of S234 will be described later.
Subsequently, the candidate extraction unit 22 performs calculation processing of the number N of prediction parameter candidates in S235. In this processing, the candidate extraction unit 22 calculates the number=N of candidates of a prediction parameter, which is extracted in the prediction parameter candidate extraction processing of S234. For example, the number of open circles which are extracted as candidates of a prediction parameter is 6 in the example of
When the candidate extraction processing (S230) performed by the candidate extraction unit 22 is completed, the embedded information conversion unit 24 performs processing for converting embedded information. That is, the embedded information conversion unit 24 converts embedded information into a base-n number in accordance with the number N, which is extracted, of candidates of a prediction parameter, as described with reference to
When the embedded information conversion processing (S240) performed by the embedded information conversion unit 24 is completed, the data embedding unit 23 subsequently performs data embedding processing in S250. This processing selects a prediction parameter which is a result of prediction coding performed by the prediction encoding unit 15, from extracted candidates of a prediction parameter, on the basis of the embedded information which is cut out through the processing of S242. Through this processing, embedded information is embedded into the corresponding prediction parameter.
Subsequently, the data embedding unit 23 performs embedding value provision processing in S251. This processing provides an embedding value with respect to each of candidates, which are extracted in the prediction parameter candidate extraction processing of S234, of a prediction parameter, in accordance with the above-described predetermined rule which corresponds to the number N of prediction parameters. Then, the data embedding unit 23 performs prediction parameter selection processing in S252. This processing refers to a bit string which corresponds to a number, which does not exceed N, in the embedded information, which is converted into the base-n number, and selects a candidate, to which an embedding value which accords with the base-n number of this bit string is provided, of a prediction parameter. Further, this processing outputs the selected candidate to the multiplexing unit 16 of the encoder device 10 (S252).
On the other hand, when it is determined that the shape of the error curved surface is not parabolic (is elliptical) through the above-described determination processing in S232 (S232: NO), the data embedding unit 23 performs processing of S253. This processing outputs a pair of values of the prediction parameters c1 and c2 which is outputted from the prediction encoding unit 15 of the encoder device 10 directly to the multiplexing unit 16 so as to multiplex the pair to coded data. Accordingly, data embedding is not performed in this case. When the processing of S253 is completed, the control processing of
In S301, when the candidate extraction unit 22 determines that at least one of the r vector and the l vector is not a zero vector and accordingly, aggregation of points of the minimum error forms a straight line (S301: YES), the candidate extraction unit 22 goes to processing of S302. On the other hand, when the candidate extraction unit 22 determines that both of the r vector and the l vector are zero vectors and accordingly, aggregation of points of the minimum error does not form a straight line (S301: NO), the candidate extraction unit 22 goes to processing of S311.
In S302, the candidate extraction unit 22 performs processing for determining whether or not the error straight line which is obtained through the error straight line decision processing of S233 of
In S303, the candidate extraction unit 22 performs processing for determining whether or not the error straight line is parallel with any of boundary sides of the code book 21. Here, boundary sides of the code book 21 are rectangular sides which define the above-mentioned region of the code book 21. A determination result of this determination processing becomes Yes, when a formula of the error straight line is expressed as above-mentioned formula (5) or formula (6). On the other hand, when the formula of the error straight line is expressed as above-mentioned formula (7), that is, a proportion of sizes of signals of the left channel and the right channel has an invariable value during a predetermined period, it is determined that the error straight line is not parallel with any of the boundary sides of the code book 21 and the determination result becomes No.
When the candidate extraction unit 22 determines that the error straight line is parallel with any of the boundary sides of the code book 21 in the determination processing of S303 (S303: YES), the candidate extraction unit 22 goes to processing of S304. On the other hand, when the candidate extraction unit 22 determines that the error straight line is not parallel with any of the boundary sides (S303: NO), the candidate extraction unit 22 goes to processing of S305.
Subsequently, the candidate extraction unit 22 performs prediction parameter candidate extraction processing by the pattern A in S304 and then the candidate extraction unit 22 goes to the processing of S235 of
On the other hand, the candidate extraction unit 22 performs processing for determining whether or not the error straight line intersects with both of a pair of opposed boundary sides in the code book 21 in S305. Here, when the candidate extraction unit 22 determines that the error straight line intersects with both of a pair of opposed boundary sides of the code book 21 (S305: YES), the candidate extraction unit 22 goes to processing of S306 to perform prediction parameter candidate extraction processing by the pattern B. Then, the candidate extraction unit 22 goes to the processing of S235 of
On the other hand, when the candidate extraction unit 22 determines that the error straight line does not intersect with both of a pair of opposed boundary sides of the code book 21 in the determination processing of S305 (S305: NO), the candidate extraction unit 22 determines whether or not the error straight line is parallel with a straight line of c2=c1 and intersects with grid points (S307).
When the determination of S307 is YES, the candidate extraction unit 22 goes to processing of S308 to perform prediction parameter candidate extraction processing by the pattern C. This pattern C is a pattern which has been described with reference to
Meanwhile, when the determination result of S302 is NO, determination processing of S309 is performed. The candidate extraction unit 22 performs processing for determining whether or not the error straight line is parallel with the above-described boundary side of the code book 21, in S309. This determination processing is identical to the determination processing of S303. Here, when the candidate extraction unit 22 determines that the error straight line is parallel with the boundary side of the code book 21 (S309: YES), the candidate extraction unit 22 goes to processing of S310 to perform prediction parameter candidate extraction processing by the pattern D and then goes to the processing of S235 of
Meanwhile, when the determination result of S301 is NO, the candidate extraction unit 22 performs prediction parameter candidate extraction processing by the pattern E in S311 and then goes to the processing of S253 of
A decode system 3 according to the embodiment is described below with reference to
As depicted in
Constituent elements included in the decode system 3 depicted in
Coded data which is an output of the encode system 1 of
The separation unit 31 separates multiplexed coded data, which is an output of the encode system 1 of
The first up-mix unit 33 up-mixes stereo frequency signals which are received from the stereo decoding unit 32 by using a prediction parameter which is received from the separation unit 31, in accordance with the above-described method of
The second up-mix unit 34 up-mixes frequency signals of three channels which are received from the first up-mix unit 33, so as to restore frequency signals of 5.1 channels in total which are a left forward channel, a central channel, a right forward channel, a left backward channel, a right backward channel, and a low-frequency exclusive channel.
The frequency time conversion unit 35 performs frequency time conversion which is reverse conversion of time frequency conversion performed by the time frequency conversion unit 11, with respect to frequency signals of 5.1 channels which are received from the second up-mix unit 34, so as to restore and output an audio signal of a time region of 5.1 channels.
In the code book 41 of the data extraction device 40, a plurality of candidates of a prediction parameter are prestored. This code book 41 is identical to the code book 21 which is included in the data embedding device 20. Here, the data extraction device 40 includes the code book 41 in the configuration of
The candidate specifying unit 42 specifies candidates, which are extracted by the candidate extraction unit 22, of a prediction parameter from the code book 41 on the basis of a prediction parameter which is a result of prediction coding and the above-mentioned signals of other two channels. More specifically, the candidate specifying unit 42 specifies candidates, which are extracted by the candidate extraction unit 22, of a prediction parameter from the code book 41 on the basis of a prediction parameter which is received from the separation unit 31 and stereo frequency signals which are restored by the stereo decoding unit 32.
The data extraction unit 43 extracts data which is embedded into coded data by the data embedding unit 23, from candidates of a prediction parameter which are specified by the candidate specifying unit 42, on the basis of the data embedding rule which is used in embedding of information performed by the data embedding unit 23.
The extracted information conversion unit 44 converts extracted information which is extracted by the data extraction unit 43 into a binary number on the basis of the number N of candidates of a prediction parameter in a corresponding frame, thus restoring extracted information. The extracted information buffer unit 45 is a storage device which temporarily stores extracted information which has been embedded for every frame and is extracted and the number N of candidates of the prediction parameter so as to output the extracted information and the number N to the number base conversion unit 46 in sequence. The number base conversion unit 46 converts extracted information which is inputted from the extracted information buffer unit 45 into a number base based on the number N of prediction parameter candidates of a frame from which the extracted information is extracted, or a binary number, for example. The coupling unit 47 couples extracted information which is stored in the extracted information buffer unit 45 or a number base which is converted by the number base conversion unit 46.
Here, processing of the candidate specifying unit 42 is further described with reference to
As depicted in
As depicted in
Subsequently, the processing of the extracted information buffer unit 45 is further described.
Further, processing of the number base conversion unit 46 is described with reference to
As depicted in
The number base conversion unit 46 extracts the embedding value “3” of the second frame as extracted information as illustrated in the buffer information 370. The coupling unit 47 couples the extracted information “3” obtained from the third frame and the extracted information “3” of the second frame as illustrated in coupling 384 so as to obtain extracted information “33” of a quinary number. At this time, the number of candidates of the second frame is “5” and the number of candidates of the first frame is “3”, so that the number base conversion unit 46 converts the extracted information “33” from the quinary number to a ternary number in number base conversion 386. The number base conversion unit 46 obtains “200” of the ternary number as a lower order digit of the extracted information, as a result.
The number base conversion unit 46 extracts the embedding value “1” of the first frame as extracted information as illustrated in the buffer information 370. The coupling unit 47 couples the extracted information “33” obtained in the processing up to the second frame and the extracted information “1” of the first frame as illustrated in coupling 388 so as to obtain extracted information “1200” of a ternary number. At this time, the number of candidates of the first frame is “3” and the original extracted information is a binary number, so that the number base conversion unit 46 converts the extracted information “1200” from the ternary number to a binary number in number base conversion 390. As a result, the number base conversion unit 46 obtains “101101” of a binary number as extracted information.
Subsequently, the processing of the decode system 3 according to the embodiment is further described with reference to
First, the candidate specifying unit 42 performs error curved surface determination processing in S401. This processing determines a shape of an error curved surface and is similar to the processing which is performed by the candidate extraction unit 22 as the processing of S231 of
Subsequently, the candidate specifying unit 42 performs processing for determining whether or not the shape, which is determined through the error curved surface determination processing of S401, of the error curved surface is parabolic in S402. Here, when the candidate specifying unit 42 determines that the shape of the error curved surface is parabolic (S402: YES), the candidate specifying unit 42 goes to processing of S403 to proceed the processing for data extraction. On the other hand, when the candidate specifying unit 42 determines that the shape of the error curved surface is not parabolic (is elliptical) (S402: NO), the candidate specifying unit 42 determines that embedding of data into a prediction parameter has not been performed and ends this control processing of
In S403, the candidate specifying unit 42 performs error straight line estimation processing. This processing estimates an error straight line which is decided by the candidate extraction unit 22 through the error straight line decision processing of S233 of
Subsequently, the candidate specifying unit 42 performs prediction parameter candidate estimation processing in S404. This processing is processing for estimating candidates of a prediction parameter which are extracted by the candidate extraction unit 22 through the prediction parameter candidate extraction processing of S234 of
Subsequently, the candidate specifying unit 42 performs calculation processing of the number N of prediction parameter candidates in S405. This processing is processing for calculating a data capacity which permits embedding and is processing similar to the processing which is performed by the data embedding unit 42 as the processing of S235 of
When the candidate specifying processing of S400 performed by the candidate specifying unit 42 is completed, the data extraction unit 43 subsequently performs data extraction processing in S410. This processing extracts data which is embedded into coded data by the data embedding unit 23, from candidates of a prediction parameter which are specified by the candidate specifying unit 42, on the basis of the data embedding rule which has been used in embedding of data by the data embedding unit 23.
Details of the data embedding processing are further described. First, the data extraction unit 43 performs embedding value provision processing in S411. This processing provides an embedding value to each of candidates of a prediction parameter which are extracted through the prediction parameter candidate estimation processing of S404, on the basis of a rule identical to the rule which has been used in the embedding value provision processing of S251 of
Then, the data extraction unit 23 performs processing for extracting embedded data in S412. This processing acquires the embedding value which is provided in the embedding value provision processing of S411 to a prediction parameter which is received from the separation unit 31 and buffers this value as an extraction result of data which is embedded by the data embedding unit 23, in a predetermined storage region in an acquisition order. Thus, the data extraction device 40 performs the above-described control processing. Accordingly, data which is embedded by the data embedding device 20 is extracted.
Subsequently, the extracted information conversion unit 44 performs extracted information conversion processing of extracted data. This processing obtains original extracted information by converting the number base of extracted data on the basis of the number N of prediction parameter candidates in a frame from which the data is extracted.
The number base conversion unit 46 converts information which is embedded into a frame into a base-n number which is based on the number N of prediction parameter candidates of the frame in sequence from the last frame, in the buffer information 370 which is stored in the extracted information buffer unit 45. The coupling unit 47 couples the converted base-n number with converted embedded information which is obtained from the previous frame (S422). As described thus far, the data extraction processing is performed by the data extraction device 40.
A simulation result of capacity of data which may be embedded through the above-described control processing is described with reference to
In this simulation, a capacity of data which may be embedded was 360 kb/s and it was found that it was possible to embed 2.7 kilobytes of data in conversion into a one-minute audio signal.
As described above, according to the data embedding device 20 and the data extraction device 40, it is possible to embed embedded information into coded data and extract the embedded information from the coded data into which the embedded information is embedded. Further, prediction errors, in prediction coding which is performed by using selected prediction parameters, of all of candidates of a prediction parameter which are options in selection of a prediction parameter for embedding of data performed by the data embedding device 20 are within a predetermined range. Accordingly, if the range of a prediction error is sufficiently narrowed, deterioration of information which is restored through prediction coding for up-mix performed by the first up-mix unit 33 of the decoder device 30 is not recognized.
Further, the data embedding device 20 converts embedded information into a base-n number corresponding to the number N of prediction parameter candidates which is extracted in a frame which is an embedding object when the data embedding device 20 embeds embedded information into coded data, so as to sequentially embed a number which does not exceed N from the higher order digit. Therefore, it is possible to use all prediction parameter candidates for embedding of embedded information. Accordingly, it is possible to efficiently embed embedded information with respect to the number N of prediction parameter candidates. Further, there is such advantage that it is possible to increase kinds of data which may be embedded as embedded information.
The data extraction device 40 is capable of extracting embedded information which is embedded by the data embedding device 20, on the basis of a prediction parameter and the number N of prediction parameter candidates, in accordance with the embedding rule in the data embedding device 20. For example, the data extraction device 40 is capable of extracting embedded information which is embedded by the data embedding device 20, by extracting embedding values on the basis of a prediction parameter and the number N of prediction parameter candidates from a frame, into which information is finally embedded, for example, and mutually coupling the embedding values.
(Modification 1)
An embedded information embedding method and an embedded information extraction method according to modification 1 of the above-described embodiment is described with reference to
Subsequently, the embedded information conversion unit 24 acquires the number of prediction parameter candidates N=5 from the candidate extraction unit 22 on a second frame. The embedded information conversion unit 24 cuts out a number which does not exceed the number N of prediction parameter candidates (“11” in this example) from the rest of the embedded information which is embedded in the first frame (embedded information 458=“1111” in this example) in cutout 460 from a higher order digit of the embedded information 458. The embedded information conversion unit 24 further converts the cut-out part of the embedded information (“11” in this example) into a base-n number (“3” of a quinary number, in this example) in number base conversion 462. The data embedding unit 23 selects a prediction parameter 465 which corresponds to an embedding value “3” from candidates which are extracted as a prediction parameter candidate extraction example 464, so as to embed part of the embedded information into the prediction parameter of the second frame.
Further, the embedded information conversion unit 24 acquires the number of prediction parameter candidates N=4 from the candidate extraction unit 22 on a third frame. The embedded information conversion unit 24 cuts out a number which does not exceed the number N of prediction parameter candidates (“11” in this example) from the rest of the embedded information other than the part embedded in the first and second frames (embedded information 466=“11” in this example) in cutout 467 from a higher order digit of the embedded information 466. The embedded information conversion unit 24 further converts the cut-out part of the embedded information (“11” in this example) into a base-n number (“3” of a quaternary number, in this example) in number base conversion 468. The data embedding unit 23 selects a prediction parameter 471 which corresponds to an embedding value “3” from candidates which are extracted as a prediction parameter candidate extraction example 470, so as to embed part of the embedded information into the prediction parameter of the third frame.
In the example of
The candidate extraction unit 22 extracts an embedding value “3” of a quinary number as extracted information from a prediction parameter 507 of the second frame, as a prediction parameter extraction example 506. The extracted information conversion unit 44 converts the extracted information from the quinary number into a binary number “11” in number base conversion 510 on the basis of the number of prediction parameter candidates N=5 which is extracted by the candidate extraction unit 22. Further, the extracted information conversion unit 44 couples the information extracted from the first frame and the information extracted from the second frame with each other as coupling 512 so as to obtain “1011”.
Further, the candidate extraction unit 22 extracts an embedding value “3” of a quaternary number as extracted information from a prediction parameter 515 of the third frame, as a prediction parameter extraction example 514. The extracted information conversion unit 44 converts the extracted information from the quaternary number into a binary number “11” in number base conversion 516 on the basis of the number of prediction parameter candidates N=4 which is extracted by the candidate extraction unit 22. The extracted information conversion unit 44 couples the information extracted from the first frame, the information extracted from the second frame, and the information extracted from the third frame as coupling 518 so as to obtain “101111”.
Through the above-described processing, the whole of embedded information 451 is embedded as a prediction parameter and the embedded information which is embedded is extracted. As described above, the processing of
(Modification 2)
Modification 2 in which another data different from embedded information which is an embedding object is embedded by the data embedding device 20 is now described. Any data may be embedded into a prediction parameter by the data embedding device 20. Here, another data representing a head of embedded information is additionally embedded, facilitating search of the head of the embedded information from data which is extracted by the data extraction device 40. Further, another data representing a tail end of embedded information is additionally embedded, facilitating search of the tail end of the embedded information from data which is extracted by the data extraction device 40. Modification 2 is an example of a method for embedding another data different from embedded information.
In modification 2, after the data embedding unit 23 adds another data which represents existence of embedded information and a head or a tail end of the embedded information before or after data of the embedded information, the data embedding unit 23 embeds the embedded information into a prediction parameter. An example of this modification 2 is described with reference to
In this example, the data embedding unit 23 first performs processing for adding start data immediately before embedded information and further adding end data immediately after the embedded information in the prediction parameter selection processing of S252 of
Further, a data example 534 is an example of a case in which a bit string “01111110” is predefined as start/end data which represents existence of the embedded information 530 and a head or a tail end of the embedded information 530. However, it is assumed that neither of these bit strings does not appear in the embedded information 530 in this case. That is, it is assumed that a value “1” does not successionally appear six or more times in the embedded information 530, for example. In this example, the data embedding unit 23 first performs processing for adding start and end data immediately before and after the embedded information 530 in the prediction parameter selection processing of S252 of
As described above, according to this modification, another data which represents a head of embedded information is additionally embedded, facilitating search of the head of the embedded information from data which is extracted by the data extraction device 40. Further, another data which represents a tail end of embedded information is additionally embedded, facilitating search of the tail end of the embedded information from data which is extracted by the data extraction device 40.
(Modification 3)
Another method for embedding another data different from embedded data is now described with reference to
A specific example of this another data embedding according to modification 3 is described with reference to
In
Subsequent to S234 of
Following S543 represents a loop of processing while being paired with S550. The data embedding unit 23 repeats processing from S544 to S549 by using a value of the variable number j of this time point of the processing.
In following S544, the data embedding unit 23 performs calculation processing of the number N of prediction parameter candidates. This processing calculates a bit string, which may be embedded, by using candidates of a prediction parameter of the j-th band of the i-th frame and is similar to that of S235 of
Subsequently, the data embedding unit 23 performs embedding value provision processing in S545. This processing provides an embedding value to each of candidates of a prediction parameter of the j-th band of the i-th frame, in accordance with a predetermined rule, and is similar to that of S251 of
Then, in S546, the data embedding unit 23 performs processing for determining whether the j-th band belongs to the lower frequency side or the higher frequency side. When the data embedding unit 23 determines that the j-th band belongs to the lower frequency side, the data embedding unit 23 goes to processing of S547. When the data embedding unit 23 determines that the j-th band belongs to the higher frequency side, the data embedding unit 23 goes to processing of S548.
Subsequently, in S547, the data embedding unit 23 performs prediction parameter selection processing corresponding to a bit string of embedded information and then goes to processing of S549. This processing refers to a bit string corresponding to a value which does not exceed the number N of prediction parameter candidates in the embedded information. Further, this processing selects candidates of a predication parameter to which an embedding value accorded with the value of this bit string is added, from candidates of a prediction parameter of the j-th band of the i-th frame. A processing content of this processing is similar to the processing of S252 of
On the other hand, in S548, the data embedding unit 23 performs prediction parameter selection processing corresponding to a bit string of another data different from embedded information and then goes to processing of S549. This processing refers to a bit string corresponding to a value which does not exceed the number N of prediction parameter candidates in the corresponding other information. Further, this processing selects candidates of a predication parameter to which an embedding value accorded with the value of this bit string is added, from candidates of a prediction parameter of the j-th band of the i-th frame. A processing content of this processing is also similar to the processing of S252 of
Subsequently, the data embedding unit 23 performs processing for assigning a result which is obtained by adding “1” to a present value of the variable number j, to the variable number j in S549. In S550, the data embedding unit 23 performs processing for determining whether or not to continue the loop of processing represented while being paired with S543. When the data embedding unit 23 determines that a value of the variable number j is equal to or lower than the constant number j_max, the data embedding unit 23 continues repetition of the processing from S544 to S549. On the other hand, when the data embedding unit 23 determines that a value of the variable number j exceeds the constant number j_max, the data embedding unit 23 ends the repetition of the processing from S544 to S549 to go to processing of S551. In S551, the data embedding unit 23 performs processing for assigning a result which is obtained by adding “1” to a present value of the variable number i, to the variable number i again.
Then, in S552, the data embedding unit 23 performs processing for determining whether or not to continue the loop of processing represented while being paired with S542. When the data embedding unit 23 determines that a value of the variable number i is equal to or lower than the constant number i_max, the data embedding unit 23 continues repetition of the processing from S543 to S551. On the other hand, when the data embedding unit 23 determines that a value of the variable number i exceeds the constant number i_max, the data embedding unit 23 ends the repetition of the processing from S543 to S551 to end this control processing. The data embedding device 20 performs the control processing described above, so as to embed embedded information and another illustrated in
Here, the data extraction unit 43 of the data extraction device 40 performs processing similar to the processing illustrated in
(Modification 4)
Still another example of embedding of another data different from embedded information is described below with reference to
In modification 4, when embedded information which has been subjected to error correction coding processing is embedded, data representing whether or not error correction coding processing is performed with respect to embedded information is embedded into a prediction parameter as another data.
On the other hand, extracted data 565 is information which is extracted by the data extraction device 40 and part of bits of the extracted data 565 is different from the error correction coding data 563. In order to restore the original data 561 from this extracted data 565, the extracted data 565 is divided into bit strings of three bits in an arrangement order and majority processing is performed with respect to values of three bits which are included in each bit string. By aligning results of this majority processing in the arrangement order, corrected data of corrected data 567 is obtained. It is understood that the corrected data 567 is accorded with the original data 561.
The data embedding device 20 and the data extraction device 40 of the embodiment and modifications 1 to 4 described above may be realized by a computer having the standard configuration.
This computer 50 includes a micro processing unit (MPU) 51, a read only memory (ROM) 52, a random access memory (RAM) 53, a hard disk device 54, an input device 55, a display device 56, an interface device 57, and a recording medium driving device 58. These constituent elements are mutually connected via a bus line 59, enabling mutual provision and reception of various types of data under the control of the MPU 51.
The MPU 51 is an arithmetic processing device which controls the whole operation of this computer 50. The ROM 52 is a read only semiconductor memory to which a predetermined basic control program is prerecorded. The MPU 51 reads out and executes this basic control program when the computer 50 is running, being able to control of operations of respective constituent elements of this computer 50. The RAM 53 is a semiconductor memory which is writable and readable at anytime and is used as a work recording region as appropriate when the MPU 51 executes various types of control programs.
The hard disk device 54 is a storage device which stores various types of control programs which are executed by the MPU 51 and various types of data. The MPU 51 reads out and executes a predetermined control program which is stored in the hard disk device 54, being able to perform the above-described control processing. Further, the code books 21 and 41 are prestored in this hard disk device 54, for example. When the computer 50 is operated as the data embedding device 20 and the data extraction device 40, the MPU 51 is allowed to perform processing for reading out the code books 21 and 41 from the hard disk device 54 and storing the code books 21 and 41 in the RAM 53 in advance.
The input device 55 is a keyboard device and a mouse device, for example. When the input device 55 is operated by a user of the computer 50, the input device 55 acquires inputs of various types of information, which is associated with the operation content, from the user and transmits the acquired input information to the MPU 51. For example, the input device 55 acquires data which is to be embedded into coded data.
The display device 56 is a liquid crystal display, for example, and displays various kinds of texts and images in accordance with display data which is transmitted from the MPU 51. The interface device 57 manages provision and reception of various types of data with respect to various type of devices which are connected to this computer 50. For example, the interface device 57 performs provision and reception of coding data and data of a prediction parameter or the like with respect to the encoder device 10 and the decoder device 30.
The recording medium driving device 58 is a device which reads out various types of control programs and data which are recorded in a portable recording medium 60. The MPU 51 reads out and executes a predetermined control program which is recorded in the portable recording medium 60 via the recording medium driving device 58, being able to perform various types of control processing which will be described later. Here, examples of the portable recording medium 60 include a compact disc read only memory (CD-ROM), a digital versatile disc read only memory (DVD-ROM), and a flash memory to which a connector of a universal serial bus (USB) standard is provided.
In order to operate such computer 50 as the data embedding device 20 and the data extraction device 40, a control program for allowing the MPU 51 to perform each processing step of control processing which will be described later is first generated. The generated control program is prestored in the hard disk device 54 or the portable recording medium 60. Then, a predetermined instruction is provided to the MPU 51 to allow the MPU 51 to read and execute this control program. Accordingly, the MPU 51 functions as respective elements included in the data embedding device 20 and the data extraction device 40 which have been respectively illustrated in
Here, the embedded information conversion unit 24 is an example of a conversion unit, embedded information is an example of data which is an embedding object, an embedding value is an example of a number which does not exceed the number of candidates, and extracted information is an example of embedded data.
Here, embodiments of the present disclosure are not limited to the above-described embodiment and may employ various configurations or embodiments within a scope of the present disclosure. For example, the example in which cutout from embedded information which has been converted into a predetermined number base is performed from a higher order digit has been described, but other orders may be employed as long as a cutout order is predetermined. Further, the example in which all pieces of embedded information are respectively cut out to be embedded into a prediction parameter has been described, but whether or not all pieces of embedded information are cut out may be controlled.
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 embodiment of the present invention has 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 |
---|---|---|---|
2013-054939 | Mar 2013 | JP | national |