This application relates to loudness control systems.
Loudness control systems may be designed to generate an output audio signal with a uniform loudness level from an input audio signal with varying loudness levels. These systems may be used in applications such as audio broadcast chains and in audio playback devices where multiple content sources of varying loudness levels are available. An example goal of the loudness control system may be to automatically provide an output signal with a uniform average loudness level, eliminating the need for a listener to continually adjust the volume control of their playback device.
Related to loudness control systems are automatic gain control (AGC) and dynamic range control (DRC) systems. AGC systems were a precursor to modern loudness control systems and have a long history in communication and broadcast applications, where many early designs were implemented as analog circuits. AGC systems may operate by multiplying an input signal with a time-varying gain signal, where the gain signal is controlled such that an objective measure of the output signal is normalized to a predetermined target level. Objective measures such as, for example, root-mean-square (RMS), peak, amplitude, or energy measures may be used. One drawback of existing AGC designs is that the perceived loudness of the output signal may remain unpredictable. This is due to the psychoacoustic phenomenon that perceived loudness is a subjective measure that only roughly correlates with objective measures such as RMS, peak, amplitude, or energy levels. Thus, while an AGC may adequately control the RMS value of an output signal, it does not necessarily result in the perceived loudness being uniform.
DRC systems are also related to loudness control systems, but with a slightly different goal. A DRC system assumes that the long-term average level of a signal is already normalized to an expected level and attempts to modify only the short-term dynamics. A DRC system may compress the dynamics so that loud events are attenuated and quiet events are amplified. This differs from the goal of a loudness control system to normalize the average loudness level of a signal while preserving the short-term signal dynamics.
Modern loudness control systems attempt to improve upon AGC and DRC designs by incorporating knowledge from the fields of psychoacoustics and loudness perception. Loudness control systems may operate by estimating the perceived loudness of an input signal and controlling the time-varying gain such that the average loudness level of the output signal may be normalized to a predetermined target loudness level.
A problem with existing loudness control systems is that there is no distinction made between desired content and unwanted noise, such that all low-level audio content above a predetermined threshold is amplified. A common problematic signal for existing loudness control systems is speech with moderate background noise. If there is a long pause in the speech, the loudness control system may begin to amplify the background noise. The resulting reduction of the signal-to-noise ratio (SNR) may be objectionable to some listeners. It would be desirable for the loudness control system to avoid relative amplification of noise levels, thus preserving the SNR of the input signal.
Another challenging scenario for loudness control systems is maintaining a uniform average loudness level without adversely limiting intra-content short-term signal dynamics. A system that reacts quickly to loudness changes may consistently achieve a desired target level, but at the expense of reduced short-term signal dynamics. On the other hand, a system that reacts slowly to loudness changes may not effectively control the loudness level, or may exhibit noticeable artifacts such as ramping during large changes in the input signal loudness level. Large long-term loudness changes are most common during inter-content transitions, such as a program transition or a content source change. It would be desirable to address both inter- and intra-content fluctuations differently within a loudness control system such that intra-content short-term signal dynamics are preserved while large inter-content loudness transitions are quickly controlled.
Loudness control systems and methods may normalize audio content to a predetermined loudness level. If the audio content includes moderate background noise, then the background noise may also be normalized to the target loudness level. Noise signals may be detected using content-versus-noise classification, and a loudness control system or method may be adjusted based on the detection of noise to preserve the SNR of the input signal. Noise signals may be detected by signal analysis in the frequency domain or in the time domain. Loudness control systems may also produce undesirable audio artifacts when content transitions from a high long-term loudness level to a lower long-term loudness level. Such loudness drops may be detected, and the loudness control system may be adjusted to minimize the undesirable artifacts during the transition between loudness levels.
According to an embodiment, a loudness control system may be configured to process an audio signal. The loudness control system may comprise a loudness measurement module configured to generate a short-term loudness estimate of the audio signal. The loudness control system may further comprise a noise detection module configured to produce a content-versus-noise classification of the audio signal. The loudness control system may further comprise a temporal smoothing module configured to adjust at least one smoothing factor based on the content-versus-noise classification result and generate a long-term loudness estimate of the audio signal based on the short-term loudness estimate using the at least one smoothing factor. The loudness control system may further comprise a gain correction module configured to apply a time-varying gain to the audio signal based on the long-term loudness estimate. The noise detection module may be configured to use frequency domain noise detection or time domain noise detection to produce the content-versus-noise classification result. The at least one smoothing factor may include a release smoothing factor that controls a speed at which the gain correction module can increase a gain level. The content-versus-noise classification may be normalized over a range [0,1]. The loudness control system may further comprise a loudness drop detection module configured to generate a loudness drop detection value, where the temporal smoothing module may be further configured to adjust the at least one smoothing factor based on loudness drop detection value.
According to another embodiment, a loudness control system may be configured to process an audio signal. The loudness control system may comprise a loudness measurement module configured to generate a short-term loudness estimate of the audio signal. The loudness control system may further comprise a loudness drop detection module configured to generate a loudness drop detection value. The loudness control system may further comprise a temporal smoothing module configured to adjust at least one smoothing factor based on the loudness drop detection value and generate a long-term loudness estimate of the audio signal based on the short-term loudness estimate using the at least one smoothing factor. The loudness control system may further comprise a gain correction module configured to apply a time-varying gain to the audio signal based on the long-term loudness estimate. The at least one smoothing factor may include a release smoothing factor that controls a speed at which the gain correction module can increase a gain level. The loudness drop detection value may be normalized over a range [0,1]. The loudness control system may further comprise a noise detection module configured to produce a content-versus-noise classification of the audio signal, where the temporal smoothing module may be further configured to adjust the at least one smoothing factor based on the content-versus-noise classification.
According to another embodiment, a system may be configured to perform frequency domain noise detection. The system may comprise a summing component configured to receive an input signal including a plurality of channels and to generate a mono signal by summing the plurality of channels. The system may further comprise a short-time Fourier transform (STFT) component configured to generate a frequency domain signal by applying a STFT to the mono signal. The system may further comprise a decibel converter configured to generate a power spectrum based on the frequency domain signal and convert the power spectrum to the decibel (dB) domain. The system may further comprise a temporal smoothing component configured to generate a time-smoothed power spectrum by estimating temporal averages of energy of each frequency band of the power spectrum. The system may further comprise a spectral flux measurement component configured to calculate a spectral flux value of the power spectrum by calculating a mean difference of the power spectrum and the time-smoothed power spectrum. The system may further comprise a peakiness measurement component configured to generate a peakiness value by estimating tonal characteristic of each sub-band of the power spectrum by measuring the relative energy of a sub-band compared to its neighbors. The system may further comprise a signal-to-noise (SNR) estimator component configured to estimate a noise power spectrum based on the spectral flux value of the power spectrum, the peakiness value and the power spectrum, and generate a signal-to-noise ratio (SNR). The system may further comprise a temporal smoothing component configured to generate a smoothed SNR based on the SNR. The system may further comprise a hysteresis component configured to generate a content-versus-noise classification value for the input signal based on the SNR. The SNR estimator component may be configured to estimate the noise power spectrum of the signal by removing any temporal dynamics or tonal components from an original spectrum of the signal that are assumed to be components of desired content. The content-versus-noise classification may be normalized over a range [0,1]. The signal-to-noise estimator component may be configured to calculate a wide-band noise level and a signal level. The system may be comprised in a loudness control system, wherein the loudness control system may include a temporal smoothing component configured to adjust gain correction speeds based on the content-versus-noise classification value.
According to another embodiment, a system may be configured to perform time domain noise detection. The system may comprise a summing component configured to receive an input signal including a plurality of channels and to generate a mono signal by summing the plurality of channels. The system may further comprise a root-mean-square (RMS) component configured to convert the mono signal into a short-term envelope estimate. The system may further comprise a decibel converter configured to perform decibel (dB) conversion on the short-term envelope estimate. The system may further comprise a smoothing filter configured to take an average of the short-term envelope estimate to generate a long-term mean envelope estimate. The system may further comprise a subtraction component configured to subtract the long-term mean envelope estimate from the short-term envelope estimate to generate an envelope value. The system may further comprise a half-wave rectifier component configured to half-wave rectify the envelope value. The system may further comprise at least two smoothing filters configured to estimate a mean of an onset energy and a mean of an offset energy based on the envelope value. The system may further comprise a normalized error calculator configured to calculate a normalized squared error between the mean of the onset energy and the mean of the offset energy. The system may further comprise a temporal smoothing component configured to temporally smooth the normalized squared error. The system may further comprise a hysteresis component configured to apply a hysteresis to the smoothed normalized squared error to generate a content-versus-noise classification. The smoothing filter may be configured to take an exponential moving average (EMA) of the short-term envelope estimate. The temporal smoothing component uses a smoothing factor that is signal-dependent. The smoothing factor has differing attack and release characteristics. The content-versus-noise classification is normalized over a range [0,1]. The system of claim may be comprised in a loudness control system, wherein the loudness control system may include a temporal smoothing component configured to adjust gain correction speeds based on the content-versus-noise classification value.
According to another embodiment, a system may be configured to perform loudness drop detection. The system may comprise a short-term loudness measurement module configured to receive an input signal and to calculate a short-term loudness estimate based on the input signal. The system may further comprise at least two temporal smoothing filters configured to calculate a slow smoothed loudness estimate and a fast smoothed loudness estimate. The system may further comprise a subtraction module configured to subtract the fast smoothed loudness estimate from the slow smoothed loudness estimate to generate a difference value. The system may further comprise a half-wave rectifier module configured to half-wave rectify the difference value to generate a rectified difference value. The system may further comprise a normalization module configured to normalize the rectified difference value to generate a drop detection value. The short-term loudness measurement module may be configured to use an ITU-R BS.1770 loudness measure to calculate the short-term loudness estimate. The at least two temporal smoothing filters may be configured to use a slow smoothing factor and fast smoothing factor, respectively, wherein the slow and fast smoothing factors are dynamically modified based on dynamics of the input signal. The slow smoothing factor and the fast smoothing factor may be mutually slowed down for input signals with high measures of signal dynamics. The slow smoothing factor and the fast smoothing factor may be mutually sped up for input signals with low measures of signal dynamics. The normalization module may use translation, scaling, and saturation to calculate the drop detection value. The normalization module may be configured to generate the drop detection value in a range from [0,1], wherein the drop detection value of one indicates a loudness drop was detected and the drop detection value of zero indicates that no drop was detected. The system may be comprised in a loudness control system, where the loudness control system may include a temporal smoothing component configured to adjust gain correction speeds based on the drop detection value.
A sound wave is a type of pressure wave caused by the vibration of an object that propagates through a compressible medium such as air. A sound wave periodically displaces matter in the medium (e.g. air) causing the matter to oscillate. The frequency of the sound wave describes the number of complete cycles within a period of time and is expressed in Hertz (Hz). Sound waves in the 12 Hz to 20,000 Hz frequency range are audible to humans.
An analog audio signal is represented by a continuous stream of data, for example along an electrical circuit in the form of voltage, current, or charge changes. Analog signal processing (ASP) physically alters the continuous signal by changing the voltage or current or charge via various electrical means. A digital audio signal is created through the sampling of an analog audio signal, where the signal is represented as a sequence of symbols, typically binary numbers, permitting the use of digital circuits such as microprocessors and computers for signal processing. In this case, processing is performed on the digital representation of the signal. Loudness control is an example of audio signal processing.
The embodiments described herein are described with respect to loudness control systems and methods applied to audio signals, however it is assumed that the concepts and enhancements may apply similarly to other audio signal processing systems, for example AGC and DRC systems and methods. Loudness control systems may serve to manipulate an input audio signal with varying loudness levels, to produce an output audio signal with a uniform loudness level that is more pleasing to the listener.
Some notational conventions are used throughout the embodiments described herein. It may be assumed that a signal x[n] is a time series with sample index n and sample rate Fsn. The signal x[n] may consist of multiple audio channels C and may be notated as xc[n] to specify particular channels where c is a channel index 0≦c≦C−1. A signal x[m] may be a time series that has been down-sampled by a factor of M such that the sample rate of x[m] is Fsm=Fsn/M.
A high-level block diagram of a loudness control system 200 is shown in
With reference to
The loudness measurement module 205 may use any process to estimate the perceived loudness of an audio signal. Examples of such processes include:
For example, the ITU Recommendation (ITU-R) BS.1770 loudness measurement system may be used in the loudness measurement module 205 of a loudness control system 200. The ITU-R BS.1770 method is an international standard that has been widely adopted by the broadcast industry including the Advanced Television Systems Committee and European Broadcasting Union. The ITU-R BS.1770 implementation has generally low computational and memory requirements, and has been shown to correlate well with loudness perception by the listener.
The loudness measurement module 205 may estimate the perceived loudness of short segments of the input signal x[n], for example, segments of 5-10 milliseconds. The resulting short-term loudness estimates Lshort[m] may be represented, for example, in the amplitude, energy, or decibel (dB) domains depending on the loudness control design and implementation.
A goal of a loudness control system 200 may be to generate an output signal y[n] with a uniform average loudness level, without overly compressing short-term signal dynamics. Accordingly, the temporal smoothing module 210 may average or smooth the short-term loudness estimates over time in order to obtain an estimate of the long-term average loudness level of a signal. A method for performing temporal smoothing on the short-term loudness estimates may be to apply a single-pole exponential moving average (EMA) filter, for example, according to the following equation:
L
ave
[m]=L
ave
[m−1]·(1−α)+Lshort[m]·α Equation 1
where Lshort[m] is the short-term loudness estimate, Lave[m] is the long-term average loudness estimate, and α is a smoothing factor that controls the behavior of the temporal smoothing.
The temporal smoothing module 210 may be designed with separate “attack” and “release” behaviors using different smoothing factor α values. The attack phase may refer to newly acquired short-term loudness estimates Lshort[m] that are louder than previous average loudness estimates Lave[m]. The release phase may refer to newly acquired short-term loudness estimates Lshort[m] that are quieter than previous average loudness estimates Lave[m]. Accordingly:
The attack and release smoothing factors αattack and αrelease may be set such that a long-term estimate of the average loudness level is approximated, where the attack smoothing factor αattack may be set to a faster speed than the release smoothing factor αrelease to approximate the asymmetric loudness integration of the human auditory system.
The tuning of the attack and release smoothing factors may be application specific and may have implications on the consistency of the output loudness levels. With relatively slow attack and release smoothing factors the average loudness estimate may track the signal loudness levels too slowly, resulting in output loudness levels that may fluctuate considerably. With relatively fast attack and release smoothing factors the average loudness estimate may track the short-term signal dynamics too closely, resulting in an output signal y[n] with consistent loudness levels but overly compressed signal dynamics.
A loudness control system 200 may include a static noise threshold Tnoise,static where input signals below this threshold are assumed to be unwanted noise and input signals above this threshold are assumed to be desired content. Loudness control systems may be designed to avoid reacting to assumed noise levels, such that objectionable amplification of noise may be reduced. Thus, short-term loudness estimates that measure below the noise threshold Tnoise,static may not be included in the long-term average loudness estimate, effectively “freezing” the average loudness estimate at its previous value.
One method to freeze the average loudness estimate when the short-term loudness estimate Lshort[m] is below the static noise threshold Tnoise,static may be to add a condition to the temporal smoothing filter, whereby the average loudness estimate may effectively be maintained at its previous value by setting α to zero:
This is just one of many methods that can be employed to avoid reactions to low-level signals that are assumed to be noise.
The gain correction module 215 may calculate a time-varying gain value GdB[m] by taking the difference between a predetermined target loudness level TardB and the average loudness estimate Lave,dB[m], where the subscript dB specifies that loudness values are represented in the decibel domain:
G
dB
[m]=TardB−Lave,dB[m] Equation 4
The down-sampled gain values GdB[m] with sample rate Fsm may be converted to the linear domain and interpolated to create a smooth gain signal G[n] with sample rate Fsn. Interpolation methods may include, but are not limited to, EMA smoothing, linear interpolation, or cubic interpolation, for example. The output signal y[n] is generated by multiplying the gain values G[n] by the input signal x[n]:
y[n]=G[n]·x[n] Equation 5
Loudness control systems may relatively amplify unwanted noise, thereby reducing the signal-to-noise ratio (SNR) under certain scenarios such as speech with a moderate level of background noise. As discussed with reference to
Improvements may be made to loudness control systems through advanced methods of detecting noise and noise levels. Knowledge of whether a segment of audio consists of desired content or unwanted noise may be useful information for a loudness control system. Automatic methods of noise detection may be used to classify whether a segment of audio is content or noise, as described below.
Types of unwanted noise may include, but are not limited to, background noise, ambient noise, environment noise, and hiss, for example. The characteristics of unwanted noise may be defined in order to detect the noise automatically. Unwanted noise may be defined as having the following characteristics:
A noise detection system or method may make use of one or more of the above assumptions.
Noise detection is not a trivial task, and may require sophisticated analysis for optimal performance. In an embodiment, a frequency domain noise detection system provides accurate classification results by exploiting the assumptions of stationarity and broadness of spectrum. However, loudness control systems are needed in many computational and power constrained applications. For these applications, according to another embodiment, a more efficient time domain noise detection system exploits the assumption of stationarity.
The solutions for noise detection described herein may generate a “soft” content-versus-noise classification. The classification may be defined, for example, over the range [0, 1] where zero indicates noise, one indicates content, and values in between are less confident classifications. The soft decision provides flexibility to systems that integrate noise detection.
Additionally, the noise detection systems described herein may be level independent. In other words, a scalar offset applied to the input signal may not change the classification. This is an important property because the expected levels of content and noise may vary considerably between applications, and making strong assumptions about signal levels may lead to compromised performance in some applications. Even though the noise detection systems are level independent, some cautious level dependent biases may be included to safely improve performance. By way of example, very loud signals (for example −12 to 0 decibels relative to full scale (dBFS)), may be interpreted as content with 100% confidence. Similarly, signals below a reasonable static noise threshold (for example −60 dBFS), may be considered noise with 100% confidence.
According to an embodiment, frequency domain noise detection may classify a signal as content or noise by estimating a noise spectrum and calculating a signal-to-noise ratio (SNR). High SNRs may indicate that the signal consists primarily of desired content and low SNRs may indicate that the signal consists primarily of noise. The noise spectrum may be estimated by attempting to remove any temporal dynamics or tonal components from the original spectrum that are assumed to be components of desired content. Spectral flux may be used to estimate temporal dynamics and a peakiness measure may be used to estimate tonal components.
A block diagram of a frequency domain noise detection system 300 is shown in
The frequency domain noise detection system 300 may include any of the following: a channel summing component 305, a short-time Fourier transform (STFT) component 310, a decibel converter 315, a temporal smoothing component 320, a spectral flux measurement component 325, a peakiness measurement component 330, a signal-to-noise (SNR) estimator component 335, a temporal smoothing component 340, a normalization component 345, and a hysteresis component 350. The frequency domain noise detection system 300 is described in further detail below.
The channel summing component 305 may sum all channels of a C-channel signal xc[n] (except, possibly, the low frequency effects (LFE) channel, if included) to produce the following mono signal:
where n is the sample time index, c is the channel index, and C is the channel count, possibly excluding the LFE channel. The channel summing component 305 may improve computational efficiency and reduce resource requirements.
The mono signal xmono[n] may be divided into overlapping windowed frames before applying a STFT component 310:
where M is the sample hop size, F is the sample window size, m is the down-sampled time index, k is the frequency index from 0≦k≦K−1, K=(0.5·F+1) is the number of unique frequency indices, and w is the analysis window for example a Hann window of length F. In place of a STFT component 310, any other type of filter bank component may be used.
Decibel converter 315 may calculate a power spectrum from the STFT component 310 output Xlin[m,k] and convert the power spectrum to the dB domain for each index m and k:
X[m,k]=10·log10(|Xlin[m,k]|2) Equation 8
Alternatively, the uniformly spaced power spectrum of the STFT component 310 may be combined into sub-bands approximating equivalent rectangular bandwidths (ERB), critical bandwidths, or some other perceptual bandwidths to reduce computation and storage requirements.
A temporal smoothing component 320 may estimate temporal averages X′[m,k] of the energy of each frequency band using, for example, exponential moving averages of the dB spectrum X[m,k] over time:
X′[m,k]=X′[m−1,k]·(1−αs)+X[m,k]·αs Equation 9
where αs is a smoothing factor that may be unique to this equation and may be chosen to produce desirable smoothing characteristics.
A spectral flux measurement component 325 may serve to measure spectral flux sf[m], which is a measure of spectral change over time. Noise signals tend to have stationary spectra measuring near zero flux, while content signals tend to have more dynamic spectra with onsets, offsets, and transients giving short durations of high flux. The spectral flux value may be calculated as the mean difference between the short-term spectrum X[m,k] and the time-smoothed spectrum X′[m,k]. The time-smoothed spectrum may be delayed by one frame to prevent integration of the current frame spectrum when calculating the spectral flux:
Because spectral flux sf[m] is calculated in the dB domain, the measurement may be level independent and no further normalization may be required unlike flux calculations performed in the linear domain.
Peakiness P[m,k] estimates the tonal characteristic of a frequency band by measuring the relative energy of a frequency band compared to its neighbors. Peakiness may be estimated over a limited range of frequency bands that for typical content may contain tonal components, such as, for example, within the 20 Hz to 6 kHz range. A peakiness measurement component 330 may calculate peakiness by first estimating the average energy PSE[m,k] surrounding each frequency band k:
where 2W is the number of neighboring frequency bands to average.
The average energy of neighboring frequency bands PSE[m,k] may be subtracted from the center frequency band energy X′[m,k]:
P
delta
[m,k]=X′[m,k]−P
SE
[m,k] Equation 12
Large positive values of Pdelta[m,k] may indicate the presence of a tonal component within the center frequency band k, while negative values of Pdelta[m,k] may indicate the presence of a tonal component within a neighboring frequency band. For noise detection applications where tonal components are of interest, the negative values may be set to zero and positive values may be spread into neighboring frequency bands to compensate for frequency band leakage when calculating peakiness:
The SNR estimator component 335 may estimate a noise power spectrum N[m,k] by subtracting the peakiness P[m,k] and spectral flux sf[m] measures from the input power spectrum X[m,k]:
N[m,k]=X[m,k]−P[m,k]−|sf[m]| Equation 14
The noise spectrum may be averaged across frequency to calculate a wide-band estimate of the noise level nwide[m]:
Furthermore, the input signal power spectrum may be averaged across frequency to calculate a wide-band estimate of the signal level xwide[m]:
The SNR estimator component 335 may calculate snr[m] by subtracting the estimated wide-band noise level nwide[m] from the estimated wide-band signal level xwide[m]:
snr[m]=x
wide
[m]−n
wide
[m] Equation 17
Because the resulting SNR, snr[m], may be highly variant, the temporal smoothing component 340 may apply an exponential moving average filter to snr[m] to reduce variance and capture the greater SNR trend to produce a smoothed SNR, snr′[m]:
The smoothing factors αattack,snr and αrelease,snr, which may be unique to the smoothing SNR calculation performed in temporal smoothing component 340, may be chosen to produce desirable smoothing characteristics.
The smoothed SNR value snr′[m] may be converted to an intermediate classification value c[m] by the normalization component 345. For example, the values may be normalized to the range [0, 1] via a dB-to-linear domain conversion and a scaling and translation such that zero indicates noise, one indicates content, and values in between are less confident classifications:
The hysteresis component 350 may calculate the final classification result by applying a model of hysteresis. The hysteresis model biases the final classification based on past classifications. Two thresholds may be used: a higher content threshold Tcontent and a lower noise threshold Tnoise, where the thresholds may be unique to the scalar bias calculation, Equation 21. When the intermediate classification value c[m] exceeds the content threshold, Tcontent, the final classification, class[m], may be biased toward a content classification until the intermediate classification value c[m] falls below the lower noise threshold, Tnoise, which may cause the final classification class[m] to be biased toward a noise classification until the content threshold is crossed again:
For Equations 20-22, class[m] is the final classification result, βcontent is a positive bias scalar that may be chosen to be, for example, greater than one, and βnoise is a positive bias scalar that may be chosen to be, for example, less than one.
According to another embodiment, noise detection may be performed in the time domain. A time domain noise detection system or method may be used in scenarios where low computational requirements are desired. The time domain noise detection system may exploit the assumption that typical noise signals have signal power that is reasonably stationary over time, while typical content signals have signal power that exhibits time-varying dynamics.
A block diagram of a time domain noise detection system 500 is shown in
The time domain noise detection system 500 may include any of the following: a channel summing component 505, a root-mean-square (RMS) component 510, decibel converter 515, temporal smoothing filter 520, a subtraction component 525, a half-wave rectification component 530, temporal smoothing components 535 and 540, a normalized error calculator 545, a temporal smoothing component 550, and a hysteresis component 555. The time domain noise detection system 500 is described in further detail below.
The channel summing component 505 may sum all channels of a C-channel signal xc[n] (except, possibly, the low frequency effects (LFE) channel, if included) to produce the following mono signal:
where n is the sample time index, c is the channel index, and C is the channel count, possibly excluding the LFE channel. The channel summing component 505 may improve computational efficiency and reduce resource requirements.
The root-mean-square (RMS) component 510 may convert the input signal to a linear domain short-term envelope estimate envlin[m] by computing the root-mean-square (RMS) over a window of F samples:
The linear domain short-term envelope estimate envlin[m] may be converted to a dB domain short-term envelope estimate env[m] via the decibel converter component 515:
env[m]=10·log10(envlin[m]) Equation 25
Note that any other envelope estimator or technique for estimating the short-term envelope of the input signal may be used. Signal envelopes can be useful for differentiating between content and noise. The short-term envelope of typical noise signals tends to exhibit symmetry around the long-term envelope mean, while the short-term envelope of typical content signals tends to be fairly irregular or asymmetrical.
A temporal smoothing component 520, for example a single-pole exponential moving average (EMA) smoothing filter, may be applied to the short-term envelope estimate env[m] to generate a long-term mean envelope estimate env′[m]:
env′[m]=env′[m−1]·(1−αenv)+env[m]·αenv Equation 26
where the smoothing factor αenv, which may be unique to the calculation of the long-term mean envelope estimate env′[m], may be chosen to produce desirable smoothing characteristics.
A subtraction component 525 may calculate an envelope delta value by subtracting the long-term mean envelope estimate from the short-term envelope value:
envdelta[m]=env[m]−env′[m] Equation 27
A half-wave rectification component 530 may apply positive half-wave rectification to the envelope delta value, where negative values may be set to zero, providing an estimate of the short-term onset energy in the signal:
onset[m]=max(envdelta[m],0) Equation 28
A temporal smoothing component 535 may be applied to the onset energy to estimate a long-term mean of the onset energy:
onset′[m]=onset′[m−1]·(1−αonset)+onset[m]·αonset Equation 29
where the smoothing factor αonset, which may be unique to the calculation of Equation 29, may be chosen to produce desirable smoothing characteristics.
The half-wave rectification component 530 may also apply negative half-wave rectification to the envelope delta value, where positive values may be set to zero, and an absolute value may be taken providing an estimate of the short-term offset energy in the signal:
offset[m]=|min(envdelta[m],0)| Equation 30
A temporal smoothing component 540 may be applied to the offset energy to estimate a long-term mean of the offset energy:
offset′[m]=offset′[m−1]·(1−αoffset)+offset·αoffset Equation 31
where the smoothing factor αoffset, which may be unique to the calculation of Equation 31, may be chosen to produce desirable smoothing characteristics.
For typical noise signals, the onset and offset mean energies onset′[m] and offset′[m] may be similar in level, while for typical content signals the mean energies may have significant differences. A normalized error calculator 545 may calculate a squared error err[m] between the onset and offset mean energies and may normalize the error, for example, between zero and one by dividing by the maximum of the mean energies:
For example, the irregular temporal structure of content signals may result in err[m] tending towards one, while a lack of temporal structure in stationary noise may result in err[m] tending towards zero.
Temporal smoothing component 550 may help generate a content-versus-noise classification by temporally smoothing the squared error err[m] to reduce variance:
err′[m]=err′[m−1]·(1−αerr)+err[m]·αerr Equation 33
The smoothing factor αerr may be signal-dependent in order to create differing attack and release characteristics determined by attack smoothing factor αattack,err and release smoothing factor αrelease,err:
The attack and release smoothing factors αattack,err and αrelease,err used within the time domain noise detection system 500 may be unique to Equation 34 and may be faster than, for example, those used by the temporal smoothing module 210 of loudness control system 200 in
With reference to
Noise detection classification results class[m], as produced by, for example, the frequency domain noise detection system 300 of
For example,
The temporal smoothing module 710 of a loudness control system 700 may be equipped with separate “attack” and “release” smoothing factors, similar to the temporal smoothing module 210 of a loudness control system 200 in
With a lack of knowledge of whether a signal consists of content or noise, the loudness control system 200 of
In an embodiment, noise dependent gain levels may be implemented by dynamically modifying the release smoothing factor value αrelease in the temporal smoothing module 710 based on the content-versus-noise classification class[m] received from the noise detection module 720.
When the noise detection module 720 detects a signal as desired content with high confidence, the αrelease[m] value may be set to a predetermined value αrelease,def, corresponding to a default speed for increases in gain level. When a signal is detected as unwanted noise with high confidence, the αrelease[m] value may be set to zero, effectively allowing no increase in gain level to occur. Additionally, if a “soft” classification of the noise detection is used, then less confident noise detections may slow the increase in gain levels proportional to the noise detection confidence. For example, using a soft classification over the range [0, 1], a noise classification result of class[m]=0.5 may indicate that there is 50% confidence that the signal is content and 50% confidence that the signal is noise. In this case, the αrelease[m] value may be set to an interpolated value between the default value and zero, thus constraining the speed at which the gain levels are allowed to increase by an intermediate amount:
αrelease[m]=αrelease,def·class[m] Equation 35
Allowing no increase in gain levels for unwanted noise may have the effect of preserving the SNR of the input signal x[n]. For example, during a content-to-noise transition, where the noise level is lower than the content level, the loudness control system 700 may apply an equal gain level to both the content and noise segments since the gain level is prevented from increasing for noise signals. Thus, the relative content and noise levels that exist in the input signal will be preserved in the output signal.
Preservation of SNR is not the only enhancement that can be achieved with content-versus-noise classifications. Other enhancements such as noise suppression can also be realized within the context of a loudness control by applying relative attenuation when noise signals are detected.
According to another embodiment, a loudness drop detection system or method may be used to dynamically modify gain correction speeds in a loudness control system, such as the loudness control system 200 of
A design goal of a loudness control system 200 may be to normalize long-term loudness levels while preserving original signal dynamics. However, controlling large loudness drops due to inter-content transitions without adversely limiting intra-content dynamics may be challenging. In order to recover quickly after large long-term loudness drops, the release smoothing factor αrelease of temporal smoothing module 210 may be calculated using a sufficiently fast time constant. However, in order to preserve short-term signal dynamics, the release smoothing factor αrelease may be calculated using a sufficiently slow time constant. To address these opposing goals, a loudness drop detection module may be included in a loudness control system 200 to modify the release smoothing factor αrelease in a dynamic and signal-dependent manner.
According to an embodiment, a loudness drop detection system may robustly detect large long-term loudness drops while avoiding detection during loudness fluctuations due to short-term signal dynamics.
The loudness drop detection system 800 may include any of the following: a short-term loudness measurement module 805, temporal smoothing components 810 and 815, a subtraction module 820, a half-wave rectification module 825, and a normalization module 830.
A short-term loudness measurement module 805 may calculate a short-term loudness estimate, similar to the loudness measurement module 205 of loudness control system 200 in
Temporal smoothing components 810 and 815 may apply temporal smoothing to the short-term loudness estimate Lshort,dB[m]. Temporal smoothing components 810 and 815 may be, for example, two exponential moving average (EMA) filters with differing smoothing factors. The temporal smoothing components 810 and 815 each may calculate a smoothed loudness estimate μslow[m] and μfast[m], respectively, using a relatively slow smoothing factor αslow and a relatively fast smoothing factor αfast, respectively:
μslow[m]=μslow[m−1]·(1−αslow)+Lshort,dB[m]·αslow Equation 36
μfast[m]=μfast[m−1]·(1−αfast)+Lshort,dB[m]·αfast Equation 37
The smoothed loudness estimates μslow[m] and μfast[m] may track loudness dynamics at different speeds. The goal of μslow[m] may be to follow the long-term mean of the loudness estimates without tracking the short-term dynamics, for example, like pauses between spoken words. The goal of μfast[m] may be to track the mean of the loudness estimates more quickly, allowing a loudness drop to be inferred when μfast[m] is sufficiently lower in level than μslow[m]. The subtraction module 820 may calculate the difference diff[m] between the smoothed loudness estimates μslow[m] and μfast[m] to capture the loudness change in the input signal:
diff[m]=μslow[m]−μfast[m] Equation 38
For example, positive diff[m] values may indicate loudness drops, while negative values may indicate loudness increases. The half-wave rectification module 825 may apply positive half-wave rectification to the difference signal diff[m], creating a signal diffrect[m] that indicates loudness drops while being unaffected by loudness increases in the signal:
The normalization module 830 may normalize the rectified difference diffrect[m] to convert from the dB range to any desired detection range to produce a drop detection value drop[m]. By way of example, for the detection range [0,1], a simple translation, scaling, and saturation may be used for normalization as follows:
and where Dmin and Dmax denote loudness drop threshold values that map to detection values of, for example, zero and one, respectively. In this example, loudness drop detection values drop[m] of one indicate that a loudness drop greater than Dmax has occurred, which may occur during inter-content transitions such as, for example, a loud television commercial that transitions into a quiet program. Values of zero indicate an absence of drops, which are common, for example, throughout a single piece of content. Values between zero and one indicate loudness drops at intermediate levels.
The example of
Similar to
The drop detection signal drop[m] in
As previously described, mutually fast smoothing factors may not be optimal for highly dynamic signals due to a higher likelihood of false loudness drop detections.
It should be noted that, in the examples in
The above analysis suggests that a tradeoff exists in the tuning of the smoothing factor speeds of a loudness drop detection system. An improvement to a loudness drop detection system may be achieved by dynamically modifying the smoothing factor speeds so that they are slow during highly dynamic content (for example, in
Dynamic smoothing factors may be incorporated into system 800 of
The loudness drop detection system 1100 may receive an audio signal x[n], and may output a time-varying loudness drop detection estimate drop[m], indexed by m, such that drop[m] indicates whether or not a significant loudness level drop has occurred. The loudness drop detection estimate may be defined, for example, over the range [0, 1] where zero indicates an absence of loudness drops, one indicates that a large loudness drop has just occurred, and values in between are indicators of smaller or more moderate loudness drops. However, other drop detection values may be used. The loudness measurement module 1105, temporal smoothing components 1110 and 1115, subtraction module 1120, half-wave rectification module 1125, and normalization module 1130 may operate similarly to that described with respect to the loudness measurement module 805, temporal smoothing components 810 and 815, subtraction module 820, half-wave rectification module 825, and normalization module 830 described in
As described previously, the relative behavior of the smoothed loudness estimates μslow[m] and μfast[m] ran may impact the frequency and extent of detected loudness drops. Accordingly, appropriate values for the smoothing factors αslow and αfast may be used to achieve suitable performance across different input signal types.
Signal dynamics may be estimated via the standard deviation module 1135 by calculating a modified standard deviation measure of the short-term loudness estimates. A loudness mean may be estimated by temporally smoothing the short-term loudness estimates Lshort,dB[m]. The smoothing factor αL, which may be unique to Equation 42, may be chosen so that μL[m] approximates a desired mean window length:
μL[m]=μL[m−1]·(1−αL)+Lshort,dB[m]·αL Equation 42
A difference may be taken between the short-term loudness estimate and its estimated mean:
d[m]L
short,dB[m]−μL[m] Equation 43
This difference may be positive half-wave rectified and squared:
Half-wave rectification may not be part of a general standard deviation measure; however, it may be useful in differentiating between loudness drops and loudness increases. The difference signal d[m] may be negative during loudness drops, thus by applying positive half-wave rectification the resulting squared difference values may be based solely on loudness increases. By effectively removing loudness drops in this calculation, signals with low levels of short-term dynamics and possibly large long-term loudness drops (for example, the loudness drop seen in
The rectified and squared difference drect[m] may be temporally smoothed with smoothing factor αstd, which may be unique to Equation 45, and a square root may be taken producing an estimate of the standard deviation σ[m] of the short-term loudness estimates:
σ[m]=√{square root over (σ2[m−1]·(1−αstd)+drect[m]·αstd)} Equation 45
The estimated standard deviation σ[m] may then be normalized, for example, to the range [0, 1] using a method such as translation, scaling, and saturation as previously described hereinbefore for the calculation of drop[m].
In an example, the resulting normalized standard deviation σnorm[m] may be used to dynamically modulate the smoothing factors αslow[m] and αfast[m] in temporal smoothing components 1110 and 1115 respectively. For example, the smoothing factors αslow[m] and αfast[m] may be linearly interpolated between two predetermined smoothing factor speeds, a minimum speed and a maximum speed. As described previously, it may be desirable for the αslow[m] smoothing factor to have equal attack and release speeds, so the αslow[m] smoothing factor may be simply linearly interpolated between the minimum and maximum speeds:
αslow[m]=αslow,max·(1−σnorm[m])+αslow,min·σnorm[m] Equation 46
where αslow,max>αslow,min, or in other words αslow max is faster than αslow,min. When the standard deviation measure is high, for example when σnorm[m]=1, αslow[m] may be set to a slow value αslow,min. When the standard deviation measure is low, for example when σnorm[m]=0, αslow[m] may be set to a fast value αslow,max. When the standard deviation measure is somewhere in between, for example when 0<σnorm[m]<1, αslow[m] may be linearly interpolated between the minimum and maximum speeds.
As described previously, performance may be improved when the attack and release speeds of the αfast[m] smoothing factor are calculated independently such that the attack factor remains fast while the release factor is linearly interpolated between the minimum and maximum speeds based on the normalized standard deviation:
where αfast,max and αfast,min are predetermined smoothing factors and αfast,max>αfast,min, or in other words αfast,max is faster than αfast,min.
The loudness drop detection systems 800 of
The loudness control system 1300 may include a loudness measurement module 1305, a loudness drop detection module 1325, a temporal smoothing module 1310, and a gain correction module 1315. The loudness measurement module 1305 and the gain correction module 1315 may operate similarly to that described with respect to the loudness measurement module 205 and the gain correction module 215 described in
As described with respect to the loudness control system 200 of
A simple loudness control system may set the αrelease smoothing factor to a signal-independent predetermined value chosen to balance inter- and intra-content dynamics, compromising optimal performance. By integrating loudness drop detection, a loudness control system can dynamically modify the αrelease[m] smoothing factor so that both inter- and intra-content dynamics are addressed appropriately. During an absence of loudness drop detections, for example when drop[m]=0, αrelease[m] may be set to a predetermined default value αrelease,def that maintains intra-content dynamics. When a loudness drop is detected, for example when drop[m]=1, the value may be sped up to a predetermined value αrelease,max that allows for quick increases in gain levels, for example during inter-content transitions. During partial drop detections, for example when 0<drop[m]<1, the αrelease[m] value may be linearly interpolated between the extremes:
αrelease[m]=αrelease,def·(1−drop[m])+αrelease,max·drop[m] Equation 48
Larger drops in loudness, with higher loudness drop detection values, may result in faster gain recovery than smaller drops. This may help alleviate noticeable “ramping” artifacts by shortening the duration of the ramp.
Recovery from loudness drops may also be achieved by recovering from a wide range of loudness drops in a fixed amount of time. By way of example, it may be desired that recovery from loudness drops occurs within three seconds regardless of the extent of the loudness drops. Using an estimate of the loudness drop, a suitable αrelease[m] smoothing factor may be calculated that will ensure recovery within this amount of time independent of the extent of the loudness drop.
According to another embodiment, both a noise detection system, such as system 300 of
The loudness control system 1400 may include a loudness measurement module 1405, a noise detection module 1420, a loudness drop detection module 1425, a temporal smoothing module 1410, and a gain correction module 1415. The loudness measurement module 1405 and the gain correction module 1415 may operate similarly to that described with respect to the loudness measurement module 205 and the gain correction module 215 described in
The temporal smoothing module 1410 may operate similarly to that described with respect to the temporal smoothing module 710 described in
Although features and elements are described above in particular combinations, one of ordinary skill in the art will appreciate that each feature or element can be used alone or in any combination with the other features and elements. Any of the features and elements described herein may be implemented as separate modules or any set or subset of features may be combined and implemented on a common programmable module.
In addition, the systems and methods described herein may be implemented in hardware, a computer program, software, or firmware incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable media include electronic signals (transmitted over wired or wireless connections) and computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
This application claims the benefit of U.S. Provisional Application No. 61/670,991, filed Jul. 12, 2012 and U.S. Provisional Application No. 61/671,005, filed Jul. 12, 2012, which are incorporated by reference as if fully set forth.
Number | Date | Country | |
---|---|---|---|
61671005 | Jul 2012 | US | |
61670991 | Jul 2012 | US |