Resampling output signals of QMF based audio codecs
11361779 · 2022-06-14
Assignee
Inventors
- Markus Lohwasser (Hersbruck, DE)
- Manuel Jander (Erlangen, DE)
- Max Neuendorf (Nuremberg, DE)
- Ralf Geiger (Erlangen, DE)
- Markus Schnell (Nuremberg, DE)
- Matthias Hildenbrand (Erlangen, DE)
- Tobias Chalupka (Heroldsberg, DE)
Cpc classification
G10L19/02
PHYSICS
H03H17/0621
ELECTRICITY
G10L19/008
PHYSICS
H03H17/0211
ELECTRICITY
International classification
G10L19/24
PHYSICS
G10L19/02
PHYSICS
G10L19/008
PHYSICS
Abstract
An apparatus for processing an audio signal includes a configurable first audio signal processor for processing the audio signal in accordance with different configuration settings to obtain a processed audio signal, wherein the apparatus is adapted so that different configuration settings result in different sampling rates of the processed audio signal. The apparatus furthermore includes n analysis filter bank having a first number of analysis filter bank channels, a synthesis filter bank having a second number of synthesis filter bank channels, a second audio processor being adapted to receive and process an audio signal having a predetermined sampling rate, and a controller for controlling the first number of analysis filter bank channels or the second number of synthesis filter bank channels in accordance with a configuration setting.
Claims
1. An apparatus for processing an audio signal, comprising: a configurable first audio signal processor for processing the audio signal to obtain a processed audio signal, an analysis filter bank having a first number of analysis filter bank channels, a synthesis filter bank having a second number of synthesis filter bank channels, a controller for controlling the first number of analysis filter bank channels or the second number of synthesis filter bank, so that an audio signal output of the synthesis filter bank has a predetermined sampling rate or a sampling rate being different from the predetermined sampling rate and being closer to the predetermined sampling rate than a sampling rate of an analysis filter bank input signal, and a second audio processor being adapted to receive and process the audio signal output having the predetermined sampling rate or the sampling rate being different from the predetermined sampling rate and being closer to the predetermined sampling rate than the sampling rate of the analysis filter bank input signal, wherein the controller is to receive a configuration setting at run time, wherein the predetermined sampling rate depends on the configuration setting.
2. The apparatus according to claim 1, wherein the analysis filter bank is adapted to transform the analysis filter bank input signal being represented in a time-domain into a first time-frequency domain audio signal having a plurality of first subband signals, wherein a number of first subband signals is equal to the first number of analysis filter bank channels, wherein the apparatus further comprises a signal adjuster being adapted to generate a second time-frequency domain audio signal having a plurality of second subband signals from the first time-frequency domain audio signal, such that a number of second subband signals of the second time-frequency domain audio signal is equal to the number of synthesis filter bank channels, and wherein the number of second subband signals of the second time-frequency domain audio signal is different from a number of subband signals of the first time-frequency domain audio signal, and wherein the synthesis filter bank is adapted to transform the second time-frequency domain audio signal into a time domain audio signal as the audio signal output of the synthesis filter bank.
3. The apparatus according to claim 2, wherein the signal adjuster is adapted to generate the second time-frequency domain audio signal by generating at least one additional subband signal.
4. The apparatus according to claim 3, wherein the signal adjuster is adapted to generate at least one additional subband signal by conducting spectral band replication to generate at least one additional subband signal.
5. The apparatus according to claim 3, wherein the signal adjuster is adapted to generate a zero signal as additional subband signal.
6. The apparatus according to claim 1, wherein the analysis filter bank is a QMF analysis filter bank and wherein the synthesis filter bank is a QMF synthesis filter bank.
7. The apparatus according to claim 1, wherein the analysis filter bank is an MDCT analysis filter bank and wherein the synthesis filter bank is an MDCT synthesis filter bank.
8. The apparatus according to claim 1, wherein the apparatus furthermore comprises an additional resampler being adapted to receive a synthesis filter bank output signal having a first synthesis sampling rate, and wherein the additional resampler resamples the synthesis filter bank output signal to receive a resampled output signal having a second synthesis sampling rate.
9. The apparatus according claim 1, wherein the apparatus is adapted to feed a synthesis filter bank output signal having a first synthesis sampling rate into an analysis filter bank as an analysis filter bank input signal.
10. The apparatus according to claim 1, wherein the controller is adapted to determine the sampling rate of the processed audio signal or the predetermined sampling rate based on an index number and a lookup table.
11. The apparatus according to claim 1, wherein the controller is adapted to determine the first number of analysis filter bank channels or the second number of synthesis filter bank channels based on a tolerable error.
12. The apparatus according to claim 11, wherein the controller comprises an error comparator for comparing the actual error with a tolerable error.
13. A method for processing an audio signal, comprising: processing an audio signal to obtain a first processed audio signal, controlling a first number of analysis filter bank channels of an analysis filter bank or a second number of synthesis filter bank channels of a synthesis filter bank, so that an audio signal output by the synthesis filter bank has the predetermined sampling rate or a sampling rate being different from a predetermined sampling rate and being closer to the predetermined sampling rate than the sampling rate of an input signal into the analysis filter bank, and processing the audio signal output having the predetermined sampling rate or the sampling rate being different from the predetermined sampling rate and being closer to the predetermined sampling rate than the sampling rate of the input signal into the analysis filter bank, wherein the method comprises receiving a configuration setting at run time, wherein the predetermined sampling rate depends on the configuration setting.
14. A non-transitory storage medium having stored thereon a computer program for performing, when the computer program is executed by a computer or a processor, a method for processing an audio signal, the method comprising: processing an audio signal, controlling a first number of analysis filter bank channels of an analysis filter bank or a second number of synthesis filter bank channels of a synthesis filter bank, so that an audio signal output by the synthesis filter bank has the predetermined sampling rate or a sampling rate being different from the predetermined sampling rate and being closer to the predetermined sampling rate than the sampling rate of an input signal into the analysis filter bank, and processing the audio signal output having the predetermined sampling rate or the sampling rate being different from the predetermined sampling rate and being closer to the predetermined sampling rate than the sampling rate of the input signal into the analysis filter bank, wherein the method comprises receiving a configuration setting at run time, wherein the predetermined sampling rate depends on the configuration setting.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
DETAILED DESCRIPTION OF THE INVENTION
(20)
(21) The analysis filter bank and the synthesis filter bank might be adapted such that the number of analysis channels and the number of synthesis channels are configurable and that their number might be determined by configurable parameters.
(22) In
(23) In a subsequent step illustrated in
(24) In the subsequent step depicted in
(25) The process illustrated in
(26) Explained in general terms, 64 new time samples are needed to generate 64 new subband samples.
(27) In the embodiment illustrated by
(28) It is understood by a person skilled in the art that the number of subband signals, which are generated by an analysis filter bank depends on the number of channels of the analysis filter bank. For example, the analysis filter bank might comprise 16, 32, 96 or 128 channels, such that 16, 32, 96, or 128 subband signals in a time frequency domain might be generated from e.g. 16, 32, 96 or 128 time samples, respectively.
(29)
(30) The left side of
(31) In a subsequent processing step illustrated in
(32) The process illustrated in
(33) To explain the concept of the synthesis filter bank 130 in general terms, 64 new subband samples in a time-frequency domain are needed to generate 64 new time samples in a time domain.
(34) It is understood by a person skilled in the art, that the number of time samples which are generated by a synthesis filter bank depends on the number of channels of the synthesis filter bank. For example, the synthesis filter bank might comprise 16, 32, 96 or 128 channels, such that 16, 32, 96, or 128 time samples in a time domain might be generated from e.g. 16, 32, 96 or 128 subband samples in a time-frequency domain, respectively.
(35)
(36)
(37) The following concept can be derived: Consider a (processed) audio signal s.sub.1 that is fed into the analysis filter bank 120. Assuming that the filter bank has c.sub.1 channels and, assuming further that the sampling rate of the processed audio signal is sr.sub.1, then the sampling rate of each subband signal is sr.sub.1/c.sub.1. Assuming further that the synthesis filter bank has c.sub.2 channels and assuming that the sampling rate of each subband signal is sr.sub.subband, then the sampling rate of the audio signal s.sub.2 being outputted by the synthesis filter bank 130 is c.sub.2.Math.sr.sub.subband. That means, the sampling rate of the audio signal being outputted by the synthesis filter bank 130 is c.sub.2/c.sub.1.Math.sr.sub.1. Selecting c.sub.2 different from c.sub.1 means that the sampling rate of the audio signal s.sub.2 being outputted by the synthesis filter bank 130 can be set differently from the sampling rate of the audio signal being inputted into the analysis filter bank 120.
(38) Choosing c.sub.2 different from c.sub.1 does not only mean that the number of analysis filter bank channels differs from the number of synthesis filter bank channels. Moreover, the number of subband signals being generated by the analysis filter bank 120 by the STFT differs from the number of subband signals that are needed when conducting the ISTFT by the synthesis filter bank 130.
(39) Three different situations can be distinguished:
(40) If c.sub.1 is equal to c.sub.2, the number of subband signals that are generated by the analysis filter bank 120 is equal to the number of subband signals needed by the synthesis filter bank 130 for the ISTFT. No subband adjustment is needed.
(41) If c.sub.2 is smaller than c.sub.1, the number of subband signals generated by the analysis filter bank 120 is greater than the number of subband signals needed by the synthesis filter bank 130 for synthesis. According to an embodiment, the highest frequency subband signals might be deleted. For example, if the analysis filter bank 120 generates 64 subband signals and if the synthesis filter bank 130 only needs 61 subband signals, the three subband signals with the highest frequency might be discarded.
(42) If c.sub.2 is greater than c.sub.1, then the number of subband signals generated by the analysis filter bank 120 is smaller than the number of subband signals needed by the synthesis filter bank 130 for synthesis.
(43) According to an embodiment, additional subband signals might be generated by adding zero signals as additional subband signals. A zero signal is a signal where the amplitude values of each subband sample are equal to zero.
(44) According to another embodiment, additional subband signals might be generated by adding pseudorandom subband signals as additional subband signals. A pseudorandom subband signal is a signal where the values of each subband sample comprise pseudorandom data, wherein the pseudorandom data has to be determined pseudorandomly from an allowed value range. For example, the pseudorandomly chosen amplitude values of a sample have to be smaller than a maximum amplitude value and the phase values of a sample have to be in the range between 0 and 2π (inclusive).
(45) In another embodiment, additional subband signals might be generated by copying the sample values of the highest subband signal and to use them as sample values of the additional subband signals. In another embodiment, the phase values of the highest subband are copied and used as sample values for an additional subband, while the amplitude values of the highest subband signal are multiplied with a weighting factor, e.g. to decrease their weight and are then used as amplitude values of the subband samples of the additional subband signal. For example, all amplitude values in an additional subband signal might be multiplied with the weighting factor 0.9. If two additional subband signals are needed, the amplitude values of the highest subband signal might be multiplied with a weighting factor 0.9 to generate a first additional subband signal, while all amplitude values might be multiplied with a weighting factor 0.8 to generate a second additional subband signal.
(46) Most highly efficient audio codecs use parametric signal enhancements, which in turn frequently use a QMF (Quadrature Mirror Filter) (i.e. MPEG-4 HE-AAC), where the concepts proposed in the above-described embodiments may also be employed. QMF based codecs use typically a N.sub.nominal=64 band polyphase filter structure to convert sub bands into a time domain output signal of a nominal sampling frequency f.sub.s,nominal. By changing the amount of output bands, by adding sub bands containing a zero signal, or removing some of the higher bands (which might be empty anyway), the output sampling f.sub.s rate can be changed in steps of Δf.sub.s as shown below.
(47)
(48) which results in an overall output sampling frequency f.sub.s of:
(49)
(50) Instead of adding an extra sampling rate converter, this functionality can be built into the already existing QMF synthesis filter.
(51) The workload increase is below that of a sampling rate converter with comparable accuracy, but the sampling rate ratio cannot be arbitrary. Essentially it is determined by the ratio of the number of bands used in the QMF analysis and QMF synthesis filter bank. Generally it is advantageous to use a number of output bands that allows a fast computation of the synthesis QMF, e.g. 60, 72, 80, 48, . . . .
(52) The same way as the output sample rate can be changed when employing QMF, the same way can the sample rate of a audio signal codec be adjusted, which uses another kind of filter bank, for example a MDCT (Modified Discrete Cosine Transform).
(53)
(54) The signal adjuster 125 is adapted to generate a second time-frequency domain audio signal from the first time-frequency domain audio signal based on the configuration setting conf. The second time-frequency domain audio signal has a plurality of, e.g., 4 second subband signals s.sub.21, s.sub.22, s.sub.23, s.sub.24. The second time-frequency domain audio signal is generated such that the number of second subband signals is equal to the number c.sub.2 of synthesis filter bank channels. The number of second subband signals of the second time-frequency domain audio signal may be different from the number of subband signals of the first time-frequency domain audio signal. Therefore, the number of subband signals may have to be adjusted, e.g. according to one of the above-described concepts.
(55) The synthesis filter bank 130 is adapted to transform the second time-frequency domain audio signal into a time-domain audio signal as the audio signal output s.sub.2 of the synthesis filter bank 130.
(56) However, in other embodiments, a signal adjuster 125 may not be comprised. If the analysis filter bank 120 provides more channels than needed by the synthesis filter bank 130, the synthesis filter bank may itself discard channels that are not necessary. Furthermore, the synthesis filter bank 130 may be configured to itself use a zero subband signal or a signal comprising pseudorandom data, if the number of subband signals provided by the analysis filter bank 120 is smaller than the number of synthesis filter bank channels.
(57) The apparatus according to the embodiment is particularly suitable for adapting to different situations. For example, the first audio signal processor 110 might need to process the audio signal s.sub.0 such that the processed audio signal s.sub.1 has a first sampling rate sr.sub.1 in one situation and such that the processed audio signal s.sub.1 has a second sampling rate sr.sub.1′ being different from the first sampling rate in a second situation. For example, the first audio signal processor 110 might employ an ACELP (Algebraic Code Excited Linear Prediction) decoding tool working with a first sampling rate of e.g. 16000 Hz while in a different second situation the first audio signal processor might employ an AAC (Advanced Audio Coding) decoder, e.g. having a sampling rate of e.g. 48000 Hz. Furthermore, the situation might arise that the first audio signal processor employs an AAC decoder which switches between different sampling rates.
(58) Or, the first signal processor 110 might be adapted to switch between a first stereo audio signal s.sub.1 having a first sampling rate sr.sub.1 and a second audio s.sub.1′ signal being an MPEG Surround signal having a second sampling rate sr.sub.1′.
(59) Moreover, it might be useful to provide an audio signal to the second audio signal processor 140 having a certain predetermined sampling rate sr.sub.2. For example, a digital to analogue converter employed might involve a certain sampling rate. In this case, the second signal processor 140 might work with a fixed second sampling rate sr.sub.2. However, in other cases, sampling rates of the audio signal s.sub.2 at the second audio processor 140 might change at run time. For example, in a first case, the second audio signal processor 140 might switch between a first low audio quality D/A (digital to analogue) converter supporting a relatively low sampling rate of e.g. 24000 Hz, while in other situations the second audio signal processor 140 might employ a second D/A converter having a sampling rate of e.g. 96000 Hz. For example, in situations where the original sampling rate of the processed audio signal sr.sub.2 having been processed by the first audio signal processor 110 has a relatively low sampling rate of e.g. 4000 Hz it might not be necessary to employ the high-quality second D/A converter having a sampling rate of 96000 Hz, but instead, it is sufficient to employ the first D/A converter which may use fewer computational resources. It is therefore appreciated to provide an apparatus with adjustable sampling rates.
(60) According to an embodiment, an apparatus is provided which comprises a controller 150 which controls the first number of analysis filter bank channels c.sub.1 and/or the second number of synthesis filter bank channels c.sub.2 in accordance with a configuration setting conf provided to the configurable first audio signal processor 110, so that an audio signal output by the synthesis filter bank 130 has the predetermined sampling rate sr.sub.2 or a sampling rate sr.sub.2 being different from the predetermined sampling rate sr.sub.2, but being closer to the predetermined sampling rate sr.sub.2 than the sampling rate sr.sub.1 of a processed input signal s.sub.1 into the analysis filter bank 120.
(61) In an embodiment, the configuration setting might contain an explicit information about the first sampling rate sr.sub.1 and/or the second sampling rate sr.sub.2. For example, the configuration setting might explicitly define that a first sampling rate sr.sub.1 is set to 9000 Hz and that a second sampling rate sr.sub.2 is set to 24000 Hz.
(62) However, in another embodiment, the configuration setting conf may not explicitly specify a sampling rate. Instead, an index number might be specified which the controller might use to determine the first sr.sub.1 and/or the second sampling rate sr.sub.2.
(63) In an embodiment, the configuration setting conf may be provided by an additional unit (not shown) to the controller at run time. For example, the additional unit might specify in the configuration setting conf, whether an ACELP decoder or an AAC decoder is employed.
(64) In an alternative embodiment, the configuration setting conf is not provided at run-time by an additional unit, but the configuration setting conf is stored once such that it is permanently available for a controller 150. The configuration setting conf then remains unaltered for a longer time period.
(65) Depending on this determination, the additional unit may send the explicit sampling rates to the controller being comprised in the configuration setting conf.
(66) In an alternative embodiment, the additional unit sends a configuration setting conf which indicates whether a first situation exists (by transmitting an index value “0”: indicating “ACELP decoder used”, or by transmitting an index value “1”: indicating “AAC decoder used”). This is explained with reference to
(67)
(68)
(69)
(70)
(71) For example, if the number of synthesis bands is higher than 64, they do not necessarily have to be filled with zeros. Instead, the range for the SBR patching could also be extended in order to make use of this higher frequency range.
(72) In
(73)
(74) E.g. in case of the USAC 8 kbps operation test point, the internal sampling frequency f.sub.s,Core is typically chosen to be 9.6 kHz. While sticking to the M=32 band QMF analysis filter bank, the synthesis could be replaced by an N=80 band QMF bank. This would result in an output sampling frequency of
(75)
(76) By doing so, the potential audio bandwidth which can be covered by SBR can be increased to 12 kHz. At the same time a potential post-resampling step to a convenient 48 kHz can be implemented rather cheaply because the remaining resampling ratio is a simple 1:2 relation.
(77) Many more combinations are conceivable which could allow a wide(r) SBR range while maintaining the possibility to allow the core coder to run on somewhat unusual or uncommon sampling frequencies.
(78)
(79) In
(80) A controller (950) receives a configuration setting conf and is adapted to control the number of channels of the analysis filter bank 910 based on the received configuration setting conf. The controller is further adapted to control the number of channels of the synthesis filter bank units 941, 942, 943, 944, 945, the number of the first plurality of input surround subband signals of the signal adjuster units 931, 932, 933, 934, 935 and the number of the second plurality of output surround subband signals of the signal adjuster units 931, 932, 933, 934, 935 based on the received configuration setting conf.
(81)
(82) Conventionally, by conducting spectral band replication a plurality of subband signals is “replicated” such that the number of subband signals derived from the spectral band replication is twice or four times the number of the subband signals available for being spectrally replicated. In a conventional spectral band replication (SBR), the number of available subband signals is replicated so that e.g. 32 subband signals (resulting from an analysis filter bank transformation) are replicated and such that 64 subband signals are available for the synthesis step. The subband signals are replicated such that the available subband signals form the lower subband signals, while the spectrally replicated subband signals from the higher subband signals being located in frequency ranges higher than the already available subband signals.
(83) According to the embodiment depicted in
(84) According to the embodiment illustrated in
(85) If c.sub.2>2.Math.c.sub.1, the question arises how to generate additional subband signals in the context of a spectral band replication. According to an embodiment, a zero subband signal (the amplitude values of all subband samples are zero) may be added for each subband signal that may be additionally used. In another embodiment, pseudorandom data is used as sample values of the additional subband signals to be generated. In a further embodiment, the highest subband signal resulting from the spectral band replication is itself replicated: For example, the amplitude values of the highest subband signals are duplicated to form the amplitude values of the additional one or more subband signal. The amplitude values might be multiplied by a weighting factor. For example, each one of the amplitude values of the first additional subband signal might be multiplied by 0.95. Each one of the amplitude values of the second additional subband signal might be multiplied by 0.90, etc.
(86) In a still further embodiment, the spectral band replication is extended to generate additional subband signals. Spectral envelope information might be used to generate additional subband signals from the available lower subband signals. The spectral envelope information might be used to derive weighting factors used to be multiplied by the amplitude values of the lower subband signals considered in the spectral band replication to generate additional subband signal.
(87)
(88) In the embodiment, the controller 150 may be adapted to steer how to split the resampling factor into suitable analysis and synthesis filter bank channel values.
(89)
(90) If the output sampling rate after QMF synthesis does not comply to a “standard” sampling rate, a combination of QMF based resampling and an additional resampler can still be used in order to achieve better operating conditions for a resampler in case this is useful (e.g. benign small integer resampling ratio (or interpolate between near sampling rates, for example employing a Lagrange interpolator).
(91) In
(92) The “Filter bank control” block shown in
(93) The QMF prototype for the different lengths can be created from the one for the 64 band QMF by interpolation.
(94) The complexity of a filter bank is directly related to its length. If a filter bank time domain signal synthesis transform is modified for downsampling by reducing the transform length, its complexity will decrease. If it is used for upsampling by enlarging its transform length its complexity will increase, but still far below the complexity that may be involved in the use of an additional resampler with equivalent signal distortion characteristics.
(95)
(96) Resampling an audio signal having a first sampling rate sr.sub.1 such that it has a second sampling rate sr.sub.2 after resampling might not be easy to realize. For example, in case that a sampling frequency of 22050 Hz shall be resampled to a sampling frequency of 23983 Hz, it would be computationally expensive to realize an analysis filter bank having 22050 channels and a synthesis filter bank having 23983 channels. However, although it might be desirable to exactly realize the output sampling frequency of 23983 Hz the user (or another application) might tolerate an error as long as the error is within acceptable bounds.
(97)
(98) The first sampling rate sr.sub.1 and the second desired sampling rate sr.sub.2 are fed into a synthesis channel number chooser 1010. The synthesis channel number chooser 1010 chooses a suitable number of channels c.sub.2 of the synthesis filter bank. Some numbers of synthesis filter bank channels c.sub.2 might be particularly suitable to allow fast computation, of the signal transformation from a time-frequency domain to a time domain, e.g. 60, 72, 80 or 48 channels.
(99) The synthesis channel number chooser 1010 might choose the synthesis channel number c.sub.2 depending on the first and second sampling rate sr.sub.1, sr.sub.2. For example, if the resampling ratio is an integer number, for example 3 (resulting e.g. from sampling rates sr.sub.1=16000 Hz and sr.sub.2=48000 Hz), it might be sufficient that the synthesis channel number is a small number, e.g. 30. In other situations it might be more useful to choose a bigger synthesis channel number, for example, if the sampling rates are high and if the sampling rate ratio is not an integer number (e.g., if sr.sub.1=22050 Hz and sr.sub.2 is 24000 Hz): In such a case, the synthesis channel number might, for example, be selected as c.sub.2=2000).
(100) In alternative embodiments, only the first sr.sub.1 or the second sr.sub.2 sampling rate is fed into the synthesis channel number chooser 1010. In still further embodiments, neither the first sr.sub.1 nor the second sr.sub.2 sampling rate is fed into the synthesis channel number chooser 1010, and the synthesis channel number chooser 1010 then chooses a synthesis channel number c.sub.2 independent of the sampling rates sr.sub.1, sr.sub.2.
(101) The synthesis channel number chooser 1010 feeds the chosen synthesis channel number c.sub.2 into an analysis channel number calculator 1020. Furthermore, the first and second sampling rate sr.sub.1 and sr.sub.2 are also fed into the analysis channel number calculator 1020. The analysis channel number calculator calculates the number of analysis filter bank channels c.sub.1 depending on the first and second sampling rate sr.sub.1 and sr.sub.2 and the synthesis channel number c.sub.2 according to the formula:
c.sub.1=c.sub.2.Math.sr.sub.1/sr.sub.2.
(102) Often, the situation may arise that the calculated number c.sub.1 is not an integer number, but a value being different from an integer number. However, the number of analysis filter bank channels (as well as the number of synthesis filter bank channels) has to be an integer. For example, if a first sampling rate sr.sub.1 is sr.sub.1=22050 Hz, the second desired sampling rate sr.sub.2 is sr.sub.2=24000 Hz and the number of synthesis filter bank channels c.sub.2 has been chosen such that c.sub.2=2000, then the calculated number of analysis channels c.sub.1 is c.sub.1=c.sub.2.Math.sr.sub.1/sr.sub.2=2000.Math.22050/24000=1837.5 analysis channels. Therefore, a decision has to be taken, whether the analysis filter bank should comprise 1837 or 1838 channels.
(103) Different rounding strategies may be applied:
(104) According to one embodiment, a first rounding strategy is applied, according to which the next lower integer value is chosen as analysis channel number, if the calculated value is not an integer. E.g. a calculated value of 1837.4 or 1837.6 would be rounded to 1837.
(105) According to another embodiment, a second rounding strategy is applied, according to which the next higher integer value is chosen as analysis channel number, if the calculated value is not an integer. E.g. a calculated value of 1837.4 or 1837.6 would be rounded to 1838.
(106) According to a still further embodiment, arithmetic rounding is applied. E.g. a calculated value of 1837.5 would be rounded to 1838 and a calculated value of 1837.4 would be rounded to 1837.
(107) However, as it is not possible in the “1837.5” example to apply the exact value of the calculation as the number of analysis filter bank channels, not the desired second sampling rate sr.sub.2, but a deviating actual second sampling rate sr.sub.2′ will be obtained.
(108) The controller of the embodiment of
sr.sub.2′=c.sub.2/c.sub.1.Math.sr.sub.1.
(109) E.g. in the above described example, assuming that the first sampling rate sr.sub.1 is sr.sub.1=22050 Hz, that the number of synthesis filter bank channels is c.sub.2=2000 and selecting the number of analysis filter bank channels c.sub.1 to be 1838 this results in an actual second sampling rate of:
(110) sr.sub.2′=c.sub.2/c.sub.1.Math.sr.sub.1=2000/1838.Math.22050 Hz=23993.47 Hz instead of the desired 24000 Hz.
(111) Applying an analysis filter bank having 1837 channels would result in an actual second sampling rate of:
(112) sr.sub.2′=c.sub.2/c.sub.1.Math.sr.sub.1=2000/1837.Math.22050 Hz=24006.53 Hz instead of the desired 24000 Hz.
(113) The actual second sampling rate sr.sub.2′ of the audio signal being outputted from the synthesis filter bank and the desired sampling rate sr.sub.2 are the fed into an error calculator 1040. The error calculator calculates an actual error e′ representing the difference between the desired sampling rate sr.sub.2 and the actual sampling rate sr.sub.2′ according to the selected analysis and synthesis filter bank channel setting.
(114) In an embodiment, the actual error e′ might be an absolute value of the difference between the desired sampling rate sr.sub.2 and the actual sampling rate according to the formula:
e′=|sr.sub.2−sr.sub.2′
(115) In another embodiment, the actual error e′ might be a relative value, e.g. calculated according to the formula:
e′=|(sr.sub.2−sr.sub.2′)/sr.sub.2|.
(116) The error calculator then passes the actual error e′ to an error comparator 1050. The error comparator then compares the actual error e′ with the tolerable error e. If the actual error e′ is within the bounds defined by the tolerable error, for example, if |e′|≤|e|, then the error comparator 1050 instructs a channel number passer 1060 to pass the actual calculated number of analysis filter bank channels to the analysis filter bank and the determined number of the synthesis filter bank channels to the synthesis filter bank, respectively.
(117) However, if the actual error e′ is within the bounds defined by the tolerable error, for example, if |e′|>|e|, then the error comparator 1060 starts the determination process from the beginning and instructs the synthesis channel number chooser 1010 to choose a different synthesis channel number as number of synthesis filter bank channels.
(118) Different embodiments may realize different strategies to choose a new synthesis channel number. For example, in an embodiment, a synthesis channel number may be chosen randomly. In another embodiment, a higher channel number is chosen, e.g. a channel number being twice the size of the synthesis channel number that was chosen by the synthesis channel number chooser 1010, before. E.g. sr.sub.2:=2.Math.sr.sub.2. For example, in the above-mentioned example, the channel number sr.sub.2=2000 is replaced by sr.sub.2:=2.Math.sr.sub.2=2.Math.2000=4000.
(119) The process continues until a synthesis channel number with an acceptable actual error e′ has been found.
(120)
(121)
(122) Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.
(123) The inventive decomposed signal can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
(124) Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed.
(125) Some embodiments according to the invention comprise a non-transitory data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
(126) Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.
(127) Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
(128) In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
(129) A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein.
(130) A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
(131) A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
(132) A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
(133) In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are advantageously performed by any hardware apparatus.
(134) While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations and equivalents as fall within the true spirit and scope of the present invention.