The present invention relates to digital signal processing, and more particularly to multi-channel audio output.
Balance in audio often refers to the ratio of loudness between two signals, typically right and left stereo channels. For instance many stereo hardware components have a knob labeled “balance” to control the loudness ratio of the two speakers. Automatic rebalancing refers to the automatic adjustment of an input signal to achieve nearly equal loudness levels at the outputs. This is useful in the case of, for instance, listening to poorly recorded or poorly mixed music, as is sometimes the case for old LPs, tapes and even CDs.
The basic goal of achieving balance can be attained by adjusting one channel to match the loudness of another. An additional worthwhile goal is to maintain the overall loudness, i.e. the rebalancing should not affect the overall perceived loudness. Another additional goal is to be robust against highly unbalanced signals. If one channel has a very low level, it might require a large increase in loudness, which can lift the noise floor and reduce the overall signal to noise ratio. Also, it may be the case that there is no signal at all on one of the channels. These are problems for known balancing methods.
The present invention provides audio balancing with contingent sharing of a strong channel signal with a weak channel signal.
Preferred embodiment two-channel audio balancing methods include using one input channel to derive both output channels when the other input channel has a very weak or no signal. Also, preferred embodiment methods can balance multi-channel systems where one or more channels have very weak or no input signal by sharing the stronger channel signals to derive output signals for the weak/no-input channels.
Preferred embodiment application systems (e.g., cellphones, PDAs, portable audio players, etc.) perform preferred embodiment methods with any of several types of hardware: digital signal processors (DSPs), general purpose programmable processors, application specific circuits, or systems on a chip (SoC) such as combinations of a DSP and a RISC processor together with various specialized programmable accelerators.
Since loudness is closely associated with power (i.e. can be defined in terms of power), it makes sense to adjust loudness by adjusting power. Furthermore the goal of maintaining the total loudness can basically be achieved by maintaining total power. In MIDI, for instance, the panning curves are designed to maintain constant total power. Suppose the average power of a signal x is measured over N samples, by
We would like a pair of gain adjustments b and r (i.e., boost and reduce) so that the weaker signal is boosted and the stronger signal is reduced to achieve balance while preserving the original total power. Writing these requirements mathematically gives
which insures the adjusted signals are in balance, and
which insures the total power is the same as before.
Let
and
Equations (2) and (3) imply that
b
2
·S
w
=r
2
·S (6)
and
b
2
·S
w
+r
2
·S
s
=S
w
+S
s. (7)
Defining
gives a value between 0 and 1.
Dividing (6) and (7) by Ss gives
b
2·ratio=r2 (9)
and
b
2·ratio+r2=ratio+1. (10)
Substituting (9) into (10) gives
2r2=ratio+1 (11)
and
2b2·ratio=ratio+1. (12)
Thus
and
Given this discussion, two functions can be defined as follows:
Feeding the power ratio v into these functions gives gain values to be used to boost the weaker signal and reduce the stronger signal. As desired, the resulting pair of signals will have equal power; and the sum of the powers is the same as the sum of the original unbalanced signals' powers. A graph of (15) and (16) is shown in
A block diagram of this approach is shown in
In the case of more than 2 unequal channels, it will be unclear which channels will require boosting or reducing. Also, although the loudest channel will need some reduction and the quietest channel will require some boost, there are no one-parameter formulas for determining the amounts. Instead, since maintaining total power is desired, and the power of each of some number M channels must be made equal, the power on channel n is adjusted by the channel signal xn by
Although power can be used to approximate perceived loudness, the human ear is less sensitive to low and high frequencies. Thus if the spectrum of the input channels is significantly different, other loudness approximations are better than power alone. Three popular frequency weights, called A, B and C, which de-emphasize low and high frequencies were defined in 1976 ANSI Specifications for Sound Level Meters. These or other weightings may be applied instead using power only. Thus all mentions of power can be taken to mean, power with or without a weighting function applied.
Although the functions given in (15) and (16) can theoretically balance any pair of signals as long as neither of the signals is 0 (everywhere), in practice boosting a very weak signal by a large amount increases the noise level. Furthermore, there is no guarantee that all of the signals are non-zero. Assume there is at least one 0 channel. If all the channels are 0, then they are in balance. Therefore, it is safe to assume there is at least one non-zero channel. In that case, for the output channels to balance, the 0 channels need to be generated from the remaining non-zero channels. For instance, in the case of stereo, if one channel is 0, the reduce function (16) can still be applied to the non-zero channel and the scaled signal can be given to both outputs. However, this is just a power-preserving mono-to-stereo conversion. A more interesting output for the mono-to-stereo conversion problem may be achieved by a method such as in cross-referenced application Ser. No. 11/560,387 which separates high-, mid-, and low-frequency bands, and delays and attenuates to create virtual separation of higher and lower frequency sources.
Even in the case where a weak channel is not 0, it may still be good to add some signal from another channel or channels in order to reduce noise. In the 2-channel case where all the noise is quantization noise at the same level on each channel prior to balancing, the total noise power after boosting the weak signal and reducing the strong signal is at least
total_noise_power≈(boost(v)2+reduce(v)2)·quantization_noise_power. (18)
However, if the output of the reduced channel cannot also reduce quantization noise, which is typically the case, a more accurate formula for total noise power is
total_noise_power≈(boost(v)2+1)·quantization_noise_power. (19)
The resulting signal to noise ratio (SNR) is therefore
A graph based on (20) of the SNR on a dB scale as determined by different effective number of bit (ENOB) ranges on the weak channel is nearly linear as shown in
To improve the output in the case where a channel is missing or very weak, some of the stronger channel can be mixed with the weaker channel. A first preferred embodiment block diagram for the 2-channel case is shown in
In the
The SNR is defined as the total signal divided by the noise portion on a dB scale.
Letting b=boost, m=mix, r=reduce in
Also to preserve power there is
b
2
·S
w
+m
2
·S
s
+r
2
·S
s
=S
w
+S
s (23)
so
Also, for the outputs to balance, there is
b2·Sw+m2·Ss=r2+Ss (25)
so that
and
Substituting from (27) into (24) gives
so
and so finally
Likewise substituting from (26) into (24) gives
so
and so finally
In summary, determine the reduce, boost, and mix of
where K is determined by the target SNR using the first part of equation (22).
For example, if the ENOB on the weaker channel is 13 bits and the ENOB on the stronger channel is 16 bits, then the SNR on the weaker channel is 78.26 dB while the stronger channel has SNR of 96.33 dB. If the minimum for “CD quality” is an SNR of 83 dB, then the factors derived from equations (15) and (16) are reduce=0.71 and boost=5.7. However the SNR achieved using these factors is only 81.21 dB. However, using the target SNR to determine K and the reduce factor from (34) and then equations (35) and (36) give the factors boost=4.6 and mix=0.42. Applying these in the system shown in
Note that equations (35) and (36) do not work when the weak signal has 0 power. Therefore, this should either be treated as a special case, or a small “epsilon” value can be used instead of 0.
Equations (35) and (36) make no assumptions about the amount of noise and work well in general. However, if the noise is due to quantization error and the same number of bits is used at input and output, then the reduction in the stronger channel will decrease the SNR in that channel (while boosting the weaker channel will preserve the SNR in that channel). If all noise is assumed to be irreducible quantization noise equations (35) and (36) can be modified by substituting 1 for all reduce2·Ns terms, and then substituting 1 for Nw and for Ns as follows:
While equations (34) through (38) show how to mix the strong channel with the weak channel in order to achieve a desired SNR, just mixing the stronger channel with the weaker is not very interesting aurally, and tends to rely too much on the stronger signal.
To increase the amount of weaker signal retained, a second preferred embodiment system such as shown in
In
Consider the signal shown in
One strategy for filter1 and filter2 is to use them as the first line of defense against SNR tolerance breaches. In this approach, for signals where using equations (15) and (16) to determine boost and reduce is satisfactory, then mix1 is 0, mix2 is 0, and q is 0. When the SNR tolerance is breached, boost, mix and q in
with r and b corresponding to the reduce and boost amounts in equations (15) and (16), and are used as such in
where c1, c2 indicate how much filter1 in
b
2(1−αq)Sw+m2βSs=r2Ss (44)
and
where m corresponds to mix1 in
which gives mix1, while mix2 is set to 0. Substituting (46) into (45) gives
However, if q>1 then the filter1 and filter2 combination in
and
so
and finally
Lastly, set
and use it in
and use it as the new mix1, and set
and use it as the new mix2 so that equation (48) becomes
b
1
2(1−α)Sw+m12βSs+m22Ss=r2Ss. (57)
Although the system in
In
This application claims priority from provisional application No. 60/969,033, filed Aug. 30, 2007. The following co-assigned, copending patent applications disclose related subject matter: application Ser. No.11/560,387, filed Nov. 16, 2006.
Number | Date | Country | |
---|---|---|---|
60969033 | Aug 2007 | US |