The following description will explain an embodiment of the present invention with reference to the drawings.
A coded acoustic signal read out from recording medium, a coded acoustic signal received by a digital tuner or the like is inputted into the acoustic signal input unit 21 and the inputted coded acoustic signal is outputted to the unpacking circuit (demultiplexer) 22. The unpacking circuit 22 unpacks the quantization coefficient, the scale factor, the scale factor multiplexer, the global gain and the subblock gain respectively from frame information of the acoustic signal. The acoustic signal is dequantized into an IMDCT coefficient at the dequantizing circuit 23 using the unpacked quantization coefficient, the quantization bit rate, the scale factor, the scale factor multiplexer, the global gain and the subblock gain. The dequantizing circuit 23 outputs an IMDCT coefficient shown by the next expression (1) for each frequency band depending on the block length (a long block or a short block).
Expression (1)
scalefac_multiplier=[1,0.5]
gr: granule, wnd: window, sjb: scalefactorband
The variable “m” in the expression (1) indicates the index of the IMDCT coefficient, “MK(m)” indicates the quantization coefficient (Huffman decoding value), “sgn(MK(m))” indicates the sign of the quantization coefficient, “scalefac_multiplier” indicates 1 or 0.5, “gr” indicates the index of granule, “wnd” indicates the index of the form of the window, “sfb” indicates the index of the scale factor band, “preflag[gr]” indicates an existence flag of the preemphasis which is 0 or 1, and “pretab[sfb]” indicates a value obtained by a predetermined preemphasis table. It should be noted that the scale factor (which can be represented by each six bits and designated by approximately 2 dB, for example) in ATRAC is the same as a value relating to the scale factor in MP3. The value relating to the scale factor in MP3 is computed using the scale factor, the scale factor multiplexer, the global gain, the subblock gain (a part of the expression (1) after the multiplier of 2), the existence flag of the preemphasis and a value obtained by the preemphasis table, as shown in the expression (1). The following description will explain the scale factor in ATRAC and values relating to the scale factor in MP3 collectively as a scale factor. Here, the scale factor means a characteristic part represented by a mantissa part and an exponent part in order to represent a spectrum of each predetermined frequency band which is divided. For example, in MP3, a spectrum of each predetermined frequency band which is divided is normalized to have the maximum value of 1.0, and the characteristic part thereof is coded as a scale factor, a global gain and a subblock gain. The scale factor, the global gain and the exponent part of the subblock gain mentioned above are named generically as a value relating to a scale factor.
In the present embodiment, IMDCT coefficients I(0), I(1), . . . , I(m), . . . , I(575) are outputted for each of 32 frequency bands block (0)-block (31) as shown in the figure. When the sampling frequency is 44.1 kHz, the frequency of a block (0) is 0 Hz-689.0625 Hz, a block (1) is 689.0625 Hz-1378.125 Hz and a block (31) is 21360.9375 Hz-22050 Hz. It should be noted that a block of an arbitrary frequency band is hereinafter referred to as a block (k). Here, “k” is an integer and satisfies 0≦k≦31. The IMDCT coefficients I(0)-I(575) for the respective frequency bands are inputted into the interpolation processor 1.
An IMDCT coefficient for each frequency band is composed of a plurality of coefficients (spectrums) depending on the block length. An IMDCT coefficient of a long block is composed of 18 coefficients and an IMDCT coefficient of a short block is composed of 6 coefficients. It should be noted that the following description will explain the present embodiment using an example wherein the block length is a long block. Moreover, explanation will be made while referring to one granule as one frame hereinafter, as 576 samples of IMDCT coefficients compose one granule and 1152 coefficient samples, the sum of granule 0 and granule 1, are processed as one frame.
In
The white noise storage 16 stores a plurality of white noise (frequency component sources of white noise) for each block.
In the spectrum Iwn(m) field, a spectrum of white noise is stored corresponding to each number m. In the present embodiment, 18 spectrums are stored for one block and 576 spectrums in total are stored for all 32 blocks. For example, a spectrum “0.003125” of white noise is stored for a number “1” of a block “0”. The spectrum of white noise may be set so that the average of all the spectrums becomes a predetermined value, e.g., approximately −20 dB. It should be noted that the Iwn(m) is a table for creating white noise of a level of approximately half of the minimum value of I(m) and the present invention is not necessarily limited to a value of approximately −20 dB. In the white noise storage 16, transform coefficient (spectrum) data obtained by preliminarily applying time-frequency transform for a white noise source of a time signal at the time of compression is stored and prepared in a memory or the like corresponding to a block length. That is, the transform coefficient data is composed of orthogonal transform coefficients obtained by dividing white noise for a frame into a plurality of bands and applying orthogonal transform for each band. In the case of a long block, transform coefficients which are divided into 18 pieces of time data by frequency division at the time of compression and transformed into 18 pieces of frequency component data are stored in a memory or the like. In the case of a short block, transform coefficients which are divided into 6 pieces of time data by frequency division at the time of compression and transformed into 6 pieces of frequency component data are stored in a memory or the like. It should be noted that explained in the present embodiment is a form wherein prepared white noise is used for ease of explanation. However, white noise having a whole mean spectrum equal to or smaller than a predetermined value may be generated sequentially by a random number generator or the like, which is not illustrated, in the apparatus, and outputted after being temporarily stored in the white noise storage 16.
The output circuit 14 connected with the white noise storage 16 selects a plurality of blocks of the white noise storage 16 at random or regularly and outputs spectrums according to white noise of the selected blocks to a maximum spectrum detecting circuit 15 and the correction value computing circuit 13. The maximum spectrum detecting circuit 15 detects a maximum value according to an absolute value of a spectrum in a block outputted from the output circuit 14. It should be noted that the maximum spectrum detecting circuit 15 in the present embodiment detects a maximum value of the spectrum. However, a mean spectrum detecting circuit (not illustrated) may be provided instead of the maximum spectrum detecting circuit 15 so as to detect the mean value of a spectrum in the block. A spectrum (or spectrum mean value) of white noise having the maximum absolute value detected by the maximum spectrum detecting circuit 15 is outputted to the correction coefficient computing circuit 18. It should be noted that a maximum spectrum detecting circuit 15 or a mean spectrum detecting circuit is provided in the present embodiment so as to output a maximum value or a mean value of white noise. However, the present invention is not limited to this form as long as a level of white noise is detected. For example, a mean value, a variance or the like of a plurality of spectrums having large values of white noise of a selected block may be detected.
The correction coefficient computing circuit 18 computes a correction coefficient by dividing a minimum value of a coefficient I(m) outputted from the minimum value detecting circuit 12 by a value which is twice the maximum value (or the mean value) of a spectrum of white noise. The correction coefficient computing circuit 18 outputs the computed correction coefficient to the correction value computing circuit 13. It should be noted that, though the minimum value of the coefficient I(m) in the present embodiment is divided by a value which is twice the maximum value (or the mean value) of a spectrum of white noise, this is only an example and the minimum value may divided by a value which is three times the maximum value or the like. The correction value computing circuit 13 multiplies a spectrum according to white noise of one block outputted from the output circuit 14 as a value relating to white noise to be corrected by a correction coefficient outputted from the correction coefficient computing circuit 18 so as to compute a correction value to be used for correction of the coefficient I(m). For example, when spectrums Iwm(1)-Iwm(18) of white noise of a block “0” are outputted, each spectrum is multiplied by a correction coefficient so as to computes correction value which is a value relating to white noise of “18”. The correction frequency coefficient computing circuit 17 adds the correction value outputted from the correction value computing circuit 13 to a coefficient I(m) so as to compute a corrected coefficient I(m). The corrected coefficient I(m) is outputted to the frequency-time transforming circuit 24. In the above example, 18 correction values are respectively added to coefficients I(18×k)-I(18×k+17) so as to compute corrected coefficients I(18×k)-I(18×k+17). Here, the same value is used for the correction coefficients computed by the correction coefficient computing circuit 18 between frequency bands 0≦k≦31. Moreover, white noise according to a block which is selected from the output circuit 14 at random or regularly and outputted to the correction value computing circuit 13 may be used for a spectrum of white noise according to the same block between frequency bands 0≦k≦31. A spectrum of white noise according to a different block which is selected between frequency bands 0≦k≦31 again at random or regularly may also be used. It should be noted that it is unnecessary to add a correction value to a frequency band according to a quantization value which is not zero.
The following description will explain processing of each hardware described above using a flow chart.
The correction coefficient computing circuit 18 computes a correction coefficient by dividing a minimum value of a coefficient I(m) outputted from the minimum value detecting circuit 12 by a value which is twice the maximum value (or the mean value) of a spectrum of white noise (step S54). The correction coefficient computing circuit 18 outputs the computed correction coefficient to the correction value computing circuit 13. The correction value computing circuit 13 multiplies each spectrum according to white noise of the block outputted from the output circuit 14 at random or regularly by the correction coefficient outputted from the correction coefficient computing circuit 18 so as to compute a correction value to be used for correction of the coefficient I(m) (step S55). The correction frequency coefficient computing circuit 17 adds each correction value outputted from the correction value computing circuit 13 to the coefficient I(m) so as to compute a corrected coefficient I(m) (step S56). For example, when the correction coefficient computed in the step S54 is indicated by J, correction values Iwn′(1)-Iwn′(18) are computed by multiplying spectrums Iwn(1)-Iwn(18) in the block 0 shown in
Embodiment 2 relates to a form for correcting a minimum value detected by a minimum value detecting circuit 12.
A coefficient I(m) of a frequency band is inputted into the energy computing circuit 121, the minimum value detecting circuit 12 and the correction frequency coefficient computing circuit 17. The energy computing circuit 121 computes energy based on the coefficient I(m) squared, i.e., the summation of power spectrums. Said energy is computed by obtaining the summation of coefficients squared of frequency bands I(0)-I(575) of a frame, as shown in the expression (2). Though energy is used in the above technique, a mean power spectrum computed by division by the number of spectrums, e.g. 576, may be used as shown in the expression (3). The following description will explain an example wherein the energy computing circuit 121 computes energy.
Expression (2)
Expression (3)
Here, “E” indicates energy of one frame and “m” is a natural number, a maximum value of which is “M”. In the example of
ER=√{square root over (E/Ep)} (4)
Here, “Ep” indicates the energy of the previous frame and “ER” indicates the energy change rate. It should be noted that Embodiment 2 is constructed to compute the energy change rate by dividing the energy by the previous energy and compute the square root. However, the present invention is not limited to this as long as energy fluctuation between frames can be computed. For example, a rate of change can be obtained by subtracting the computed energy from the previous energy and squaring the result, or, by contraries, dividing the previous energy by the energy computed by the energy computing circuit 121 and computing the square root.
The computed energy change rate is outputted to the determining circuit 124. From coefficients I(m) inputted into the minimum value detecting circuit 12, a coefficient I(m) according to the minimum absolute value, excluding zero, in the frequency band is detected as described in Embodiment 1. The previous frame minimum value saving circuit 129 saves the minimum value of the previous frame detected by the minimum value detecting circuit 12. The minimum value of the previous frame saved in the previous frame minimum value saving circuit 129 and the minimum value detected by the minimum value detecting circuit 12 are respectively inputted into the minimum value change rate computing circuit 125. The minimum value change rate computing circuit 125 computes the minimum value change rate by dividing the minimum value detected by the minimum value detecting circuit 12 by the minimum value of the previous frame outputted from the previous frame minimum value saving circuit 129. That is, computed is a rate of change between the minimum value of a unit of decoding processing (frame) at a predetermined time detected by the minimum value detecting circuit 12 and the minimum value of a unit of decoding processing (frame) before the predetermined time saved in the previous frame minimum value saving circuit 129. It should be noted that the rate of change of the minimum value may be computed by, for example, subtracting the minimum value of the previous frame from the detected minimum value and squaring the result or, by contraries, dividing the minimum value of the previous frame by the detected minimum value, as long as fluctuation from the minimum value of the previous frame can be computed.
The determining circuit 124 compares the energy change rate outputted from the energy change rate computing circuit 123 with the minimum value change rate outputted from the minimum value change rate computing circuit 125 so as to determine whether the energy change rate is larger than the minimum value change rate or not. This is for correcting the minimum value as described in Embodiment 1 when the fluctuation of the minimum value between frames is large, using the energy change rate between frames as a comparison object, as a threshold of determination. When determining that the energy change rate is larger than the minimum value change rate, the determining circuit 124 outputs the minimum value detected by the minimum value detecting circuit 12 to the correction coefficient computing circuit 18 and the minimum value setting circuit 128 since it is unnecessary to make correction. The minimum value setting circuit 128 outputs said minimum value to the previous frame minimum value saving circuit 129 so that the previous frame minimum value saving circuit 129 saves said minimum value as the minimum value of the previous frame. That is, the minimum value outputted from the minimum value setting circuit 128 is used as the minimum value of a previous frame outputted from the previous frame minimum value saving circuit 129 for computing the minimum value change rate of the next frame.
On the other hand, when determining that the energy change rate is smaller than the minimum value change rate, the determining circuit 124 outputs the energy change rate and the minimum value of the previous frame to the minimum value correcting circuit 126. The minimum value correcting circuit 126 corrects the minimum value so that the minimum value change rate and the energy change rate become equal. In particular, the minimum value is corrected so as to satisfy a conditional expression shown by the expression (5).
ER=MSR (5)
Here, “MSR” indicates the minimum value change rate obtained by dividing the minimum value of a coefficient I(m) by the minimum value of the previous frame. The minimum value change rate on the right-hand side of the expression (5) can be modified to one obtained by dividing the minimum value, excluding zero, of |I(m)| by the minimum value, excluding zero, of |I(m)| of the previous frame as shown in the expression (6). The corrected minimum value to be obtained is a value obtained by multiplying the energy change rate ER by the minimum value of the previous frame. The minimum value correcting circuit 126 outputs the minimum value corrected as described above to the correction minimum value setting circuit 127 and the correction coefficient computing circuit 18. The correction minimum value setting circuit 127 outputs said corrected minimum value to the previous frame minimum value saving circuit 129 similarly to the minimum value setting circuit 128 so that the corrected minimum value is saved as the minimum value of the previous frame.
The previous frame minimum value saving circuit 129 saves the minimum value outputted from the correction minimum value setting circuit 127 or the minimum value setting circuit 128. The previous frame minimum value saving circuit 129 outputs the minimum value outputted from the correction minimum value setting circuit 127 or the minimum value setting circuit 128 to the minimum value change rate computing circuit 125. It should be noted that the present Embodiment 2 is constructed to correct the minimum value so that the minimum value change rate and the energy change rate become equal. However, it is unnecessary to correct the minimum value so that the minimum value change rate becomes equal to the energy change rate strictly and all that is required is to correct the minimum value so that the minimum value change rate becomes roughly equal to the energy change rate and there may be some error. The corrected minimum value outputted from the minimum value correcting circuit 126 is outputted to the correction coefficient computing circuit 18.
Regarding the above hardware structure, the following description will explain the computation process procedure of a corrected minimum value using a flow chart.
A coefficient I(m) of a frequency band is outputted to the energy computing circuit 121, the minimum value detecting circuit 12 and the correction frequency coefficient computing circuit 17 (step S72). The energy computing circuit 121 computes the energy of the coefficient I(m) (step S73). The energy of the previous frame saved in the previous frame energy saving circuit 122 and the energy computed by the energy computing circuit 121 are respectively inputted into the energy change rate computing circuit 123. The energy change rate computing circuit 123 divides the energy computed by the energy computing circuit 121 by the energy of the previous frame outputted from the previous frame energy saving circuit 122 and computes the square root so as to compute the energy change rate (step S74). The previous frame energy saving circuit 122 outputs the saved energy of the previous frame to the energy change rate computing circuit 123 and then saves the energy outputted from the energy computing circuit 121 as the energy of the previous frame to be used in computation of the next frame.
The computed energy change rate is outputted to the determining circuit 124. The minimum value detecting circuit 12 detects a coefficient I(m) according to the minimum absolute value based on the inputted coefficient I(m) (step S75). The minimum value of the previous frame saved in the previous frame minimum value saving circuit 129 and the minimum value detected by the minimum value detecting circuit 12 are respectively inputted into the minimum value change rate computing circuit 125. The minimum value change rate computing circuit 125 divides the minimum value detected by the minimum value detecting circuit 12 by the minimum value of the previous frame outputted from the previous frame minimum value saving circuit 129 so as to compute the minimum value change rate (step S76).
The determining circuit 124 compares the energy change rate outputted from the energy change rate computing circuit 123 and the minimum value change rate outputted from the minimum value change rate computing circuit 125 so as to determine whether the energy change rate is larger than the minimum value change rate or not (step S77). When determining that the energy change rate is larger than the minimum value change rate (YES in the step S77), the determining circuit 124 outputs the minimum value detected by the minimum value detecting circuit 12 to the correction coefficient computing circuit 18 (step S78). The minimum value is outputted also to the minimum value setting circuit 128. The minimum value setting circuit 128 outputs the minimum value to the previous frame minimum value saving circuit 129 so as to save said minimum value as the minimum value of the previous frame and the previous frame minimum value saving circuit 129 saves the minimum value outputted from the minimum value setting circuit 128 (step S79).
On the other hand, when determining that the energy change rate is smaller than the minimum value change rate (NO in the step S77), the determining circuit 124 outputs the minimum value of the previous frame and the energy change rate to the minimum value correcting circuit 126 and the minimum value correcting circuit 126 corrects the minimum value so that the minimum value change rate and the energy change rate become equal (step S710). In particular, the minimum value correcting circuit 126 computes a corrected minimum value by multiplying the minimum value of the previous frame by the energy change rate as described above. The minimum value correcting circuit 126 outputs the corrected minimum value which has been computed to the correction minimum value setting circuit 127 and the correction coefficient computing circuit 18 (step S711). The correction minimum value setting circuit 127 outputs said corrected minimum value to the previous frame minimum value saving circuit 129 so as to save the corrected minimum value as the minimum value of the previous frame, similarly to the minimum value setting circuit 128.
The previous frame minimum value saving circuit 129 saves the minimum value outputted from the correction minimum value setting circuit 127 (step S712). After the process of the steps S79 and S712, the energy computing circuit 121 saves the energy computed in the step S73 in the previous frame energy saving circuit 122 (step S713). The minimum value outputted in the step S78 or the minimum value outputted in the step S711 is outputted to the correction coefficient computing circuit 18. Since the subsequent process is the same as the steps S 52 to S56 in
The evaluation specification was “ITU-R Rec. BS. 1387-1 (2001) Basic Version”, and used for the test source was averaging of eight songs of Tracks No. 27 (castanet), 32 (triangle), 35 (metallophone), 40 (harpsichord), 65 (orchestra), 66 (xylophone ensemble), 69 (pops/ABBA) and 70 (pops/E. RABBITT) of Cat No. 42204-2 (1998) EBU/Sound Quality Assessment Material recordings for subjective tests (SQAM).
The ODG is an objective evaluation value obtained as the final result of the measurement which may possibly take a negative value from 0 to −4, wherein the deterioration from the original sound is smaller as the ODG takes a larger value. “0.0” is defined as “a difference from the original sound is unrecognizable”, “−1.0” is defined as “a difference from the original sound is recognizable but does not make the listener concerned”, “−2.0” is defined as “a difference makes the listener concerned but does not hinder”, “−3.0” is defined as “a difference hinders the listener”, and “−4.0” is defined as “a difference hinders the listener a lot”. Comparing the graph in a continuous line and the graph in a dotted line in
Since the present Embodiment 2 has such a structure and other structures and functions are the same as those of Embodiment 1, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
A computer program for causing the personal computer 20 to operate can be provided in the form of a portable recording medium 1A such as a CD-ROM, an MO or a DVD-ROM as in the present Embodiment 3. Furthermore, it is also possible to download the computer program from a server computer, which is not illustrated, via the communication unit 66. The following description will explain the content thereof.
The portable recording medium 1A (CD-ROM, MO, DVD-ROM or the like) which records therein a computer program for causing a reader/writer, that is not illustrated, in the personal computer 20 shown in
Since the present Embodiment 3 has such a structure and other structures and functions are the same as those of Embodiments 1 and 2, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
Embodiment 4 relates to a form wherein a plurality of white noise storages 16 are provided.
The block length discriminating circuit 161 outputs the discriminated block length to the selecting circuit 162 and the energy computing circuit 121. The energy computing circuit 121 divides the sum squared of coefficients I(m) by the number of samples so as to compute the energy of the coefficients I(m), when a mean power spectrum is to be computed as the energy. In order to provide said number of samples, the block length discriminating circuit 161 outputs the block length to the energy computing circuit 121. The energy computing circuit 121 suitably sets the number of samples to be used for division depending to the block length.
The selecting circuit 162 selects either the first white noise storage 16L or the second white noise storage 16S depending on the discriminated block length based on the block length discriminated by the block length discriminating circuit 161 and outputs selection information to the output circuit 14. In Embodiment 4, two types of white noise storages are provided. The first white noise storage 16L is the same as that shown in Embodiment (see
Moreover, spectrums of white noise corresponding to numbers m are respectively stored in the spectrum Iwn(m) field. In the present Embodiment 4, all 32 blocks of six spectrums for one block, or 192 spectrums in total, are stored. For example, a spectrum “0.007248” of white noise is stored for a number “1” of a block “0”. Similarly to a long block, the spectrum of white noise may be set so that the average of all the spectrums becomes a predetermined value, e.g., approximately −20 dB. It should be noted that said Iwn(m) is a table for creating white noise of a level of approximately half of the minimum value of I(m) and it is unnecessary to limit Iwn(m) to a numeric of approximately −20 dB.
When the selecting circuit 162 selects the first white noise storage 16L, that is, when the block length is a long block, the output circuit 14 outputs spectrums of a plurality of blocks, which are selected at random or regularly from the first white noise storage 16L shown in
A correction value to be outputted to the correction frequency coefficient computing circuit 17 is computed by detecting the maximum value of spectrums belonging to a plurality of blocks of white noise selected as described above by the maximum spectrum detecting circuit 15, dividing the minimum value of the coefficient I(m) by the maximum value of the spectrum of white noise by the correction coefficient computing circuit 18 so as to compute the correction coefficient, and multiplying each spectrum of the block by said correction coefficient by the correction value computing circuit 13.
A plurality of blocks to be outputted from the output circuit 14 are selected by the output circuit 14 from the first white noise storage 16L or the second white noise storage 16S by selecting an arbitrary block at random with a random number generator which is not illustrated, for example. Instead, a block may be selected periodically so that all the blocks are selected evenly. For example, a block may be outputted so that all the blocks “0”-“31” in the first white noise storage 16L or the second white noise storage 16S are respectively selected once. As described above, by selecting a block of white noise at random or regularly, a correction value to be added to the coefficient I(m) is flattened without being biased to specific white noise and it becomes possible to realize a more natural interpolation process.
On the other hand, when determining that the block length is not a long block (NO in the step S143), the selecting circuit 162 selects the second white noise storage 16S (step S145) and outputs a signal indicating that the block length is a short block to the output circuit 14. When the selecting circuit 162 selects the first white noise storage 16L, that is, when the block length is a long block, the output circuit 14 selects a plurality of block, which are selected at random or regularly, from the first white noise storage 16L shown in
The output circuit 14 reads out white noise of a plurality of blocks selected at random or regularly (step S147). The output circuit 14 then outputs the read-out white noise (spectrum) to the maximum spectrum detecting circuit 15 (step S148). The maximum spectrum detecting circuit 15 detects the maximum absolute value of spectrums of the outputted white noise. The output circuit 14 also outputs white noise of blocks selected at random or regularly to the correction value computing circuit 13 (step S149). Since the subsequent computation of a correction coefficient and computation of a correction value are explained in detail in Embodiments 1 and 2, explanation thereof will be omitted.
The output circuit 14 then selects the next block (step S152). For example, a block 1 is selected after selecting the block 0.
The output circuit 14 reads out white noise in the next block from the first white noise storage 16L and outputs the white noise to the maximum spectrum detecting circuit 15 and the correction value computing circuit 13. The output circuit 14 determines whether the block selected in the step S152 is the last block (block 31 in the example of
On the other hand, when determining that the block selected in the step S152 is the last block (YES in the step S153), that is, when determining that a block 31 is selected in the above example, the output circuit 14 goes to the step S151 and selects a block 0 next. As described, since a block of white noise is selected regularly and white noise of all the 576 samples of one frame is selected evenly and outputted, a correction value is flattened without being biased to specific white noise and it becomes possible to realize a more natural interpolation process. For selecting a block at random, it should be noted that a block corresponding to a numeric generated by a random number generator, which is not illustrated, may be selected.
Since the present Embodiment 4 has such a structure and other structures and functions are the same as those of Embodiments 1 to 3, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
The process according to Embodiment 4 may be realized as a software process using a personal computer shown in
The portable recording medium 1A (CD-ROM, MO, DVD-ROM or the like) which records therein a computer program for causing a reader/writer, that is not illustrated, in the personal computer 20 shown in
Since the present Embodiment 5 has such a structure and other structures and functions are the same as those of Embodiments 1 to 4, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
Embodiment 6 relates to a form for determining whether a coefficient is to be corrected or not depending on the tonality of an acoustic signal.
The index value computing circuit 27 computes a tonality index value indicative of the degree of tonality by subtracting a mean value from the maximum value of a scale factor of each frequency band. The computed tonality index value is outputted to the tonality judging circuit 28. A reference value is stored in a memory, which is not illustrated, in the tonality judging circuit 28, and the tonality judging circuit 28 compares the inputted tonality index value with the reference value so as to determine whether the tone is a pure tone or not. It should be noted that said reference value may be 70 dB when the maximum value of the scale factor is 120 dB, for example.
When the tonality index value is smaller than the reference value, the tonality judging circuit 28 determines that the tonality is low and outputs coefficients I(m) of all the frequency bands to the interpolation processor 1 so as to perform the interpolation process descried above. On the other hand, when the tonality index value is larger than the reference value, the tonality judging circuit 28 determines that the tonality is high and outputs the coefficients I(m) of all the frequency bands directly to the frequency-time transforming circuit 24 without outputting the same to the interpolation processor 1. By executing or not executing an interpolation process depending on the characteristic of an acoustic signal as described above, a suitable interpolation process becomes possible and it becomes possible to speed up processing and reduce the power consumption.
The tonality judging circuit 28 reads out a reference value from a memory, which is not illustrated, provided therein (step S176). The tonality judging circuit 28 then compares the inputted tonality index value with the reference value and determines whether the tonality index value is smaller than the read-out reference value or not (step S177). When determining that the tonality index value is smaller than the reference value (YES in the step S177), the tonality judging circuit 28 determines that the tonality is low and outputs the coefficients I(m) of all the frequency bands to the interpolation processor 1 (step S178).
On the other hand, when determining that the tonality index value is larger than the reference value (NO in the step S177), the tonality judging circuit 28 determines that the tonality is high and outputs the coefficients I(m) of all the frequency bands directly to the frequency-time transforming circuit 24 without outputting the same to the interpolation processor 1 (step S179). It should be noted that whether the tone is a pure tone or not may be determined based on power of each frequency band, though whether the tone is a pure tone or not is determined in the present Embodiment 6 based on the scale factor. In this case, the index value computing circuit 27 subtracts the mean value from the maximum value of power of coefficients I(m) of each frequency band and outputs the result as a tonality index value to the tonality judging circuit 28. In the tonality judging circuit 28, 40 dB is stored as the reference value, for example. When the tonality index value is smaller than said reference value, the tonality judging circuit 28 determines that the tonality is low and outputs the coefficients I(m) of all the frequency bands to the interpolation processor 1. On the other hand, when the tonality index value is larger than the reference value, the tonality judging circuit 28 determines that the tonality is high and outputs the coefficients I(m) of all the frequency bands to the frequency-time transforming circuit 24 without going through the interpolation processor 1. It should be noted that a technique disclosed in Japanese Patent Application Laid-Open No. 2002-351500 or Japanese Patent Application Laid-Open No. 2005-195983 may be applied to the determination of tonality described above.
Since the present Embodiment 6 has such a structure and other structures and functions are the same as those of Embodiments 1 to 5, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
The process according to Embodiment 6 may be realized as a software process using a personal computer shown in
The portable recording medium 1A (CD-ROM, MO, DVD-ROM or the like), which records therein a computer program for causing a reader/writer, that is not illustrated, in the personal computer 20 shown in
Since the present Embodiment 7 has such a structure and other structures and functions are the same as those of Embodiments 1 to 6, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
Embodiment 8 relates to a form for determining whether an interpolation process is to be executed or not depending on a bit rate.
The sampling frequency obtaining circuit 211 obtains a sampling frequency described in a header attached to an acoustic signal. In MP3 method, any one of 32 kHz, 44.1 kHz and 48 kHz is obtained as a sampling frequency. The sampling frequency obtaining circuit 211 outputs the obtained sampling frequency to the bit rate comparing circuit 212.
Moreover, for 44.1 kHz, 192 kbps is stored as the reference bit rate so that determination of tonality and an interpolation process described above are performed when the bit rate is smaller than 192 kbps as shown in
The bit rate comparing circuit 212 reads out a reference bit rate from the table 213 based on the sampling frequency outputted from the sampling frequency obtaining circuit 211. The bit rate comparing circuit 212 then determines whether the bit rate outputted from the bit rate obtaining circuit 210 is smaller than the reference bit rate or not. When determining that the bit rate outputted from the bit rate obtaining circuit 210 is smaller than the reference bit rate, the bit rate comparing circuit 212 outputs coefficients I(m) of all the frequency bands to the interpolation processor 1. For example, when the obtained sampling frequency is 32 kHz and the obtained bit rate is 32 kbps, 64 kbps, 96 kbps or 128 kbps, the coefficients I(m) of all the frequency bands become subject to an interpolation process.
On the other hand, when determining that the bit rate outputted from the bit rate obtaining circuit 210 is not smaller than the reference bit rate, the bit rate comparing circuit 212 outputs coefficients I(m) of each frequency band directly to the frequency-time transforming circuit 24 without going through the interpolation processor 1. For example, when the obtained sampling frequency is 32 kHz and the obtained bit rate is 160 kbps, 192 kbps, 224 kbps, 256 kbps, 288 kbps, 320 kbps, 352 kbps, 384 kbps, 416 kbps or 448 kbps, coefficients I(m) of each frequency band do not become subject to an interpolation process. Since an interpolation process is executed or not executed depending on the sampling frequency and the bit rate as described above, the most suitable interpolation process matching the state of the acoustic signal becomes possible and it becomes possible to speed up processing and reduce the power consumption.
The bit rate comparing circuit 212 reads out, from the table 213, a reference bit rate corresponding to the sampling frequency outputted from the sampling frequency obtaining circuit 211 (step S215). The bit rate comparing circuit 212 then determines whether the bit rate obtained by the bit rate obtaining circuit 210 is smaller than the read-out reference bit rate or not (step S216). When determining that the obtained bit rate is smaller than the reference bit rate (YES in the step S216), the bit rate obtaining circuit 210 outputs coefficients I(m) of all the frequency bands to the interpolation processor 1 (step S217).
On the other hand, when determining that the obtained bit rate is not smaller than the reference bit rate (NO in the step S216), the bit rate obtaining circuit 210 outputs coefficients I(m) of all the frequency bands directly to the frequency-time transforming circuit 24 without going through the interpolation processor 1 (step S218).
Since the present Embodiment 8 has such a structure and other structures and functions are the same as those of Embodiments 1 to 7, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
The process according to Embodiment 8 may be realized as a software process using the personal computer shown in
The portable recording medium 1A (CD-ROM, MO, DVD-ROM or the like) which records therein a computer program for causing a reader/writer, that is not illustrated, in the personal computer 20 shown in
Since the present Embodiment 9 has such a structure and other structures and functions are the same as those of Embodiments 1 to 8, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
Embodiment 10 relates to a form for determining whether there is a null orthogonal transform coefficient in a frequency band of a coded acoustic signal or a coded image signal or not and adding an orthogonal transform coefficient according to a white noise source to said frequency band when there is a null orthogonal transform coefficient.
The interpolation processor 1 according to Embodiment 10 comprises a coefficient determining circuit 30, an adding circuit 31, a correction coefficient computing circuit 18, a correction value computing circuit 13, an output circuit 14 and a white noise storage 16. It should be noted that the correction coefficient computing circuit 18, the correction value computing circuit 13, the output circuit 14 and the white noise storage 16 are the same as those described in Embodiments 1 to 9 and detailed explanation thereof will be omitted. The dequantized coefficients I(m) are inputted into the coefficient determining circuit 30. The coefficient determining circuit 30 determines whether there is a coefficient I(m) having a null spectrum (orthogonal transform coefficient) or not for each frequency band.
When determining that there is a coefficient I(m) having a null spectrum in a frequency band, the coefficient determining circuit 30 sets a flag in said frequency band and outputs the coefficients I(m) to the adding circuit 31. On the other hand, when determining that there is not a coefficient I(m) having a null spectrum in a frequency band, the coefficient determining circuit 30 outputs the coefficients I(m) to the adding circuit 31 without setting a flag in said frequency band. The white noise storage 16 which is a white noise source is composed of orthogonal transform coefficients (spectrums of white noise) obtained by dividing white noise at a time corresponding to the above frame into a plurality of bands (blocks) and applying orthogonal transform for each band. It should be noted that the present invention will be explained using an example applied to white noise according to a long block shown in
The output circuit 14 reads out, from the white noise storage 16, a predetermined band, that is, a spectrum (orthogonal transform frequency) of white noise according to a block selected at random or regularly, as described in Embodiment 4 and outputs the read-out spectrum of white noise to the correction value computing circuit 13. On the other hand, the correction coefficient computing circuit 18 described in Embodiments 1 and 2 outputs a computed correction coefficient to the correction value computing circuit 13. The correction value computing circuit 13 computes a correction value by multiplying a spectrum of white noise according to the block outputted from the output circuit 14 by the outputted correction coefficient. The correction value computing circuit 13 outputs the computed correction value to the adding circuit 31. The adding circuit 31 adds the correction value outputted from the correction value computing circuit 13, that is, a value relating to an orthogonal transform coefficient according to a predetermined band read out from a white noise source to a coefficient I(m) according to a frequency band in which a flag is set among the coefficient I(m) according to a frequency band outputted from the coefficient determining circuit 30. It should be noted that a spectrum of white noise may be added only for a coefficient I(m) having a null spectrum. It should be noted that, though the present invention is constructed to perform computation of multiplying, by the correction value computing circuit 13, a spectrum of white noise of a predetermined band stored in the white noise storage 16 by the correction value computed by the correction coefficient computing circuit 18, the spectrum of white noise of a predetermined band may be outputted directly to the adding circuit 31 without performing said multiplication process.
When determining that the process has not been performed for all the frequency bands (NO in the step S253), the coefficient determining circuit 30 goes to the step S251 and repeatedly executes the above process. On the other hand, when determining that the process for all the frequency bands has been finished (YES in the step S253), the coefficient determining circuit 30 outputs, to the adding circuit 31, information indicative of the presence or absence of flag setting and coefficients in each frequency band. The output circuit 14 reads out, from the white noise storage 16, a spectrum of white noise according to a block selected at random or regularly as described in Embodiment 4 and outputs the read-out spectrum of white noise to the correction value computing circuit 13. The correction coefficient computing circuit 18 outputs a computed correction coefficient to the correction value computing circuit 13. The correction value computing circuit 13 computes a correction value by multiplying a spectrum of white noise according to the block outputted from the output circuit 14 by the outputted correction coefficient. The correction value computing circuit 13 outputs the computed correction value to the adding circuit 31. The adding circuit 31 adds the correction value read out from the white noise storage 16 to the frequency band in which a flag is set (step S254). The adding circuit 31 similarly adds the correction value based on the spectrum of white noise according to a block selected at random or regularly to coefficients of other frequency bands in which a flag is set. The adding circuit 31 outputs, to the frequency-time transforming circuit 24, the coefficient of the frequency band after the addition and outputs, to the frequency-time transforming circuit 24, coefficients according to frequency bands in which a flag is not set without adding the correction value based on the spectrum of white noise.
Since the present Embodiment 10 has such a structure and other structures and functions are the same as those of Embodiments 1 to 9, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
The process according to Embodiment 10 may be realized as a software process using the personal computer shown in
The portable recording medium 1A (CD-ROM, MO, DVD-ROM or the like) which records therein a computer program for causing a reader/writer, that is not illustrated, in the personal computer 20 shown in
Since the present Embodiment 11 has such a structure and other structures and functions are the same as those of Embodiments 1 to 10, like codes are used to refer to like parts and detailed explanation thereof will be omitted.
As this invention may be embodied in several forms without departing from the spirit of essential characteristics thereof, present embodiments are therefore illustrative and not restrictive, since the scope of the invention is defined by the appended claims rather than by the description preceding them, and all changes that fall within metes and bounds of the claims, or equivalence of such metes and bounds thereof are therefore intended to be embraced by the claims.
Number | Date | Country | Kind |
---|---|---|---|
2006-139400 | May 2006 | JP | national |
2006-139401 | May 2006 | JP | national |
2006-139402 | May 2006 | JP | national |