The present invention pertains to the field of audio coders, and more particularly to a system and method for conditioning multi-channel audio data having magnitude and phase data so to compensate the magnitude data for changes in the phase data to allow magnitude data only to be transmitted for each channel, without the generation of audio artifacts or other noise that can occur when the phase data is omitted.
Multi-channel audio coding techniques that eliminate phase data from audio signals that include phase and magnitude data are known in the art. These techniques include parametric stereo, which uses differences in magnitude between a left channel signal and a right channel signal to be used to simulate stereophonic sound that would normally include phase information. While such parametric stereo does not allow the listener to experience the stereophonic sound with the full depth of field that would be experienced if phase data was also included in the signal, it does provide some depth of field that improves the sound quality over simple monaural sound (such as where the amplitude of each channel is identical).
One problem with converting from multi-channel audio data that includes magnitude and phase data to multi-channel audio data that includes only magnitude data is proper handling of the phase data. If the phase data is simply deleted, then audio artifacts will be generated that cause the resulting magnitude-only data to be unpleasant to the listener. Some systems, such as Advanced Audio Coding (AAC) system, utilize side band information that is used by the receiver to compensate for the elimination of phase data, but such systems require a user to have a special receiver that can process the side band data, and also are subject to problems that can arise when a noise signal is introduced in the side band data, which can create unpleasant audio artifacts. In addition, attempting to transmit side band data for high frequency phase variations can create audio artifacts when low bit rate transmission processes are used.
In accordance with the present invention, a system and method for processing multi-channel audio signals to compensate magnitude data for phase data are provided that overcome known problems with converting audio data with phase and magnitude data to audio data with only magnitude data.
In particular, a system and method for processing multi-channel audio signals to compensate magnitude data for phase data are provided that eliminates the need for side band data and provides compensation for audio artifacts that can arise during the conversion process.
In accordance with an exemplary embodiment of the present invention, a system for generating parametric stereo data from phase modulated stereo data is provided. A phase difference system receives left channel data and right channel data and determines a phase difference between the left channel data and the right channel data. A phase difference weighting system receives the phase difference data and generates weighting data to adjust left channel amplitude data and right channel amplitude data based on the phase difference data. A magnitude modification system adjusts the left channel amplitude data and the right channel amplitude data using the weighting data to eliminate phase data in the left channel data and the right channel data.
The present invention provides many important technical advantages. One important technical advantage of the present invention is a system and method for processing multi-channel audio signals to compensate magnitude data for phase data that smoothes the magnitude data based on variations in phase data, so as to avoid the generation of audio artifacts that can arise when low bit rate magnitude data is adjusted to include high frequency phase variations.
Those skilled in the art will further appreciate the advantages and superior features of the invention together with other important aspects thereof on reading the detailed description that follows in conjunction with the drawings.
In the description that follows, like parts are marked throughout the specification and drawings with the same reference numerals. The drawing figures might not be to scale and certain components can be shown in generalized or schematic form and identified by commercial designations in the interest of clarity and conciseness.
System 100 receives time domain right channel audio data at time to frequency conversion system 102 and time domain left channel audio data at time to frequency conversion system 104. In one exemplary embodiment, system 100 can be implemented in hardware, software, or a suitable combination of hardware and software, and can be one or more software systems operating on a digital system processor, a general purpose processing platform, or other suitable platforms. As used herein, a hardware system can include a combination of discrete components, an integrated circuit, an application-specific integrated circuit, a field programmable gate array, or other suitable hardware. A software system can include one or more objects, agents, threads, lines of code, subroutines, separate software applications, two or more lines of code or other suitable software structures operating in two or more software applications or on two or more processors, or other suitable software structures. In one exemplary embodiment, a software system can include one or more lines of code or other suitable software structures operating in a general purpose software application, such as an operating system, and one or more lines of code or other suitable software structures operating in a specific purpose software application.
Time to frequency conversion system 102 and time to frequency conversion system 104 transform the right and left channel time domain audio data, respectively, into frequency domain data. In one exemplary embodiment, the frequency domain data can include a frame of frequency data captured over a sample period, such as 1,024 bins of frequency data for a suitable time period, such as 30 milliseconds. The bins of frequency data can be evenly spaced over a predetermined frequency range, such as 20 kHz, can be concentrated in predetermined bands such as barks, equivalent rectangular bandwidth (ERB), or can be otherwise suitably distributed.
Time to frequency conversion system 102 and time to frequency conversion system 104 are coupled to phase difference system 106. As used herein, the term “coupled” and its cognate terms such as “couples” or “couple,” can include a physical connection (such as a wire, optical fiber, or a telecommunications medium), a virtual connection (such as through randomly assigned memory locations of a data memory device or a hypertext transfer protocol (HTTP) link), a logical connection (such as through one or more semiconductor devices in an integrated circuit), or other suitable connections. In one exemplary embodiment, a communications medium can be a network or other suitable communications media.
Phase difference system 106 determines a phase difference between the frequency bins in the frames of frequency data generated by time to frequency conversion system 102 and time to frequency conversion system 104. These phase differences represent phase data that would normally be perceived by a listener, and which enhance the stereophonic quality of the signal.
Phase difference system 106 is coupled to buffer system 108 which includes N−2 frame buffer 110, N−1 frame buffer 112, and N frame buffer 114. In one exemplary embodiment, buffer system 108 can include a suitable number of frame buffers, so as to store phase difference data from a desired number of frames. N−2 frame buffer 110 stores the phase difference data received from phase difference system 106 for the second previous frames of data converted by time to frequency conversion system 102 and time to frequency conversion system 104. Likewise, N−1 frame buffer 112 stores the phase difference data for the previous frames of phase difference data from phase difference system 106. N frame buffer 114 stores the current phase difference data for the current frames of phase differences generated by phase difference system 106.
Phase difference system 116 is coupled to N−2 frame buffer 110 and N−1 frame buffer 112 and determines the phase difference between the two sets of phase difference data stored in those buffers. Likewise, phase difference system 118 is coupled to N−1 frame buffer 112 and N frame buffer 114, and determines the phrase difference between the two sets of phase difference data stored in those buffers. Likewise, additional phase difference systems can be used to generate phase differences for a suitable number of frames stored in buffer system 108.
Phase difference system 120 is coupled to phase difference system 116 and phase difference system 118, and receives the phase difference data from each system and determines a total phase difference. In this exemplary embodiment, the phase difference for three successive frames of frequency data is determined, so as to identify frequency bins having large phase differences and frequency bins having smaller phase differences. Additional phase difference systems can also or alternatively be used to determine the total phase difference for a predetermined number of frames of phase difference data.
Phase difference buffer 122 stores the phase difference data from phase difference system 120 for a previous set of three frames. Likewise, if buffer system 108 includes more than three frame differences, phase difference buffer 122 can store the additional phase difference data. Phase difference buffer 122 can also or alternatively store phase difference data for additional prior sets of phase difference data, such as for the set generated from frames (N−4, N−3, N−2), the set generated from frames (N−3, N−2, N−1), the set generated from frames (N−2, N−1, N), the set generated from frames (N−1, N, N+1), or other suitable sets of phase difference data.
Phase difference weighting system 124 receives the buffered phase difference data from phase difference buffer 122 and the current phase difference data from phase difference system 120 and applies a phase difference weighting factor. In one exemplary embodiment, frequency bins exhibiting a high degree of phase difference are given a smaller weighting factor than frequency bins exhibiting consistent phase differences. In this manner, frequency difference data can be used to smooth the magnitude data so as to eliminate changes from frequency bins exhibiting high degrees of phase difference between successive frames and to provide emphasis to frequency bins that are exhibiting lower phase differences between successive frames. This smoothing can help to reduce or eliminate audio artifacts that maybe introduced by the conversion from audio data having phase and magnitude data to audio data having only magnitude data, such as parametric stereo data, particularly where low bit rate audio data is being processed or generated.
Magnitude modification system 126 receives the phase difference weighting factor data from phase difference weighting system 124 and provides magnitude modification data to the converted right channel and left channel data from time to frequency conversion system 102 and time to frequency conversion system 104. In this manner, the current frame frequency data for right and left channel audio are modified so as to adjust the magnitude to correct for phase differences, allowing panning between the left and right magnitude values to be used to create stereophonic sound. In this manner, phase differences between the right channel and left channel are smoothed and converted to amplitude modification data so as to simulate stereo or other multi-channel sound by amplitude only without requiring phase data to be transmitted. Likewise, a buffer system can be used to buffer the current frame of frequency data that is being modified, so as to utilize data from the set of (N−1, N, N+1) frames of frequency data, or other suitable sets of data. Magnitude modification system 126 can also compress or expand the differences in magnitude between two or more channels for predetermined frequency bins, groups of frequency bins, or in other suitable manners, so as to narrow or widen the apparent stage width to the listener.
Frequency to time conversion system 128 and frequency to time conversion system 130 receive the modified magnitude data from magnitude modification system 126 and convert the frequency data to a time signal. In this manner, the left channel and right channel data generated by frequency to time conversion system 128 and frequency to time conversion system 130, respectively, are in phase but vary in magnitude so as to simulate stereo data using intensity only, such that phase data does not need to be stored, transmitted or otherwise processed.
In operation, system 100 processes multi-channel audio data containing phase and magnitude data and generates multi-channel audio data with magnitude data only, so as to reduce the amount of data that needs to be transmitted to generate stereophonic or other multi-channel audio data. System 100 eliminates audio artifacts that can be created when audio data containing phase and magnitude data is converted to audio data that contains only magnitude data, by compensating the magnitude data for changes in frequency data in a manner that reduces the effect from high frequency phase changes. In this manner, audio artifacts are eliminated that may otherwise be introduced when the bit rate available for transmission of the audio data is lower than the bit rate required to accurately represent high frequency phase data.
Coherence spatial conditioning system 300 provides an exemplary embodiment of a spatial conditioning system, but other suitable frameworks, systems, processes or architectures for implementing spatial conditioning algorithms can also or alternatively be used.
Coherence spatial conditioning system 300 modifies the spatial aspects of a multi-channel audio signal (i.e., system 300 illustrates a stereo conditioning system) to lessen artifacts during audio compression. The phase spectrums of the stereo input spectrums are first differenced by subtractor 302 to create a difference phase spectrum. The difference phase spectrum is weighted by the weighting factors Y(K)=B1X(K)+B2X(K−1)−A1Y(K−1) through multiplier 304, where:
The weighting factors B1, B2 and A1 can be determined based on observation, system design, or other suitable factors. In one exemplary embodiment, weighting factors B1, B2 and A1 are fixed for all frequency bins. Likewise, weighting factors B1, B2 and A1 can be modified based on barks or other suitable groups of frequency bins.
The weighted difference phase signal is then divided by two and subtracted from the input phase spectrum 0 by subtractor 308 and summed with input phase spectrum 1 by summer 306. The outputs of subtractor 308 and summer 306 are the output conditioned phase spectrums 0 and 1, respectively.
In operation, coherence spatial conditioning system 300 has the effect of generating mono phase spectrum bands, such as for use in parametric stereo.
At 404, the phase differences between the channels are determined. In one exemplary embodiment, the frequency bins of left and right channel audio data can be compared to determine the phase difference between the left and right channels. The method then proceeds 406.
At 406, the phase difference data for the frames is stored in a buffer. In one exemplary embodiment, a buffer system can include a predetermined number of buffers for storing the phase difference data, buffers can be assigned dynamically, or other suitable processes can be used. The method then proceeds to 408.
At 408, it is determined whether M frames of data have been stored in the buffer. In one exemplary embodiment, M can equal three or any other suitable whole number, so as to allow smoothing to be performed between a desired number of frames. If it is determined at 408 that M frames of data have not been stored the method returns to 402. Otherwise, the method proceeds to 410.
At 410, a phase difference between the M−1 frame and M frame is determined. For example, if M equals three, then the phase difference between the second frame and the third frame of data is determined. The method then proceeds to 412 where the phase difference data is buffered. In one exemplary embodiment, a predetermined number of buffers can be created in hardware or software, buffer systems can allocate buffer data storage areas dynamically, or other suitable processes can be used. The method then proceeds to 414 where M is decreased by 1. The method then proceeds to 416 where it is determined whether M equals 0. For example, when M equals 0, then all buffered frames of data have been processed. If it is determined that M does not equal 0, the method returns to 402. Otherwise, the method proceeds to 418.
At 418, the phase difference between buffered frame phase difference data is determined. For example, if two frames of phase difference data have been stored, then the difference between those two frames is determined. Likewise, the difference between three, four, or other suitable numbers of frames of phase difference data can be used. The method then proceeds to 420, where the multi-frame difference data is buffered. The method then proceeds to 422.
At 422, it is determined whether a predetermined number of multi-frame buffer values have been stored. If it is determined that the predetermined number of multi-frame buffer values have not been stored, the method returns to 402. Otherwise the method proceeds to 424.
At 424, phase difference data for the previous and current multi-frame buffers is generated. For example, where two multi-frame buffered data values are present, the phase difference between the two multi-frame buffers is determined. Likewise, where N is greater than 2, the phase difference between the current and previous multi-frame buffers can also be determined. The method then proceeds to 426.
In 426, a weighting factor is applied to each frequency bin in the current, previous, or other suitable frames of frequency data based on the phase difference data. For example, the weighting factor can apply a higher weight to the magnitude values for frequency bins exhibiting small phase variations and can de-emphasize frequency bins exhibiting high variations so as to reduce audio artifacts, noise, or other information that represents phase data that can create audio artifacts in parametric stereo data if the phase data is discarded or not otherwise accounted for. The weighting factors can be selected based on a predetermined reduction in audio data transmission bit rate, and can also or alternatively be varied based on the frequency bin or groups of frequency bins. The method then proceeds to 428.
At 428, the weighted frequency data for the left and right channel data is converted from the frequency to the time domain. In one exemplary embodiment, the smoothing process can be performed on a current set of frames of audio data based on preceding sets of frames of audio data. In another exemplary embodiment, the smoothing process can be performed on a previous set of frames of audio data based on preceding and succeeding sets of frames of audio data. Likewise, other suitable processes can also or alternatively be used. In this manner, the channels of audio data exhibit parametric multi-channel qualities where phase data has been removed but the phase data has been converted to magnitude data so as to simulate multi-channel sound without requiring the storage or transmission of phase data, and without generation of audio artifacts that can result when the frequency of the phase variations between channels exceeds the frequency that can be accommodated by the available transmission channel bandwidth.
In operation, method 400 allows parametric stereo or other multi-channel data to be generated. Method 400 removes frequency differences between stereo or other multi-channel data and converts those frequency variations into magnitude variations so as to preserve aspects of the stereophonic or other multi-channel sound without requiring phase relationships between the left and right or other multiple channels to be transmitted or otherwise processed. In this manner, existing receivers can be used to generate phase-compensated multi-channel audio data without the need for side-band data or other data that would be required by the receiver to compensate for the elimination of the phase data.
System 500 includes left time signal system 502 and right time signal system 504, which can provide left and right channel time signals generated or received from a stereophonic sound source, or other suitable systems. Short time Fourier transform systems 506 and 508 are coupled to left time signal system 502 and right time signal system 504, respectively, and perform a time to frequency domain transform of the time signals. Other transforms can also or alternatively be used, such as a Fourier transform, a discrete cosine transform, or other suitable transforms.
The output from short time Fourier transform systems 506 and 508 are provided to three frame delay systems 510 and 520, respectively. The magnitude outputs of short time Fourier transform systems 506 and 508 are provided to magnitude systems 512 and 518, respectively. The phase outputs of short time Fourier transform systems 506 and 508 are provided to phase systems 514 and 516, respectively. Additional processing can be performed by magnitude systems 512 and 518 and phase systems 514 and 516, or these systems can provide the respective unprocessed signals or data.
Critical band filter banks 522 and 524 receive the magnitude data from magnitude systems 512 and 518, respectively, and filter predetermined bands of frequency data. In one exemplary embodiment, critical filter banks 522 and 524 can group linearly spaced frequency bins into non-linear groups of frequency bins based on a psycho-acoustic filter that groups frequency bins based on the perceptual energy of the frequency bins and the human hearing response, such as a Bark frequency scale. In one exemplary embodiment, the Bark frequency scale can range from 1 to 24 Barks, corresponding to the first 24 critical bands of human hearing. The exemplary Bark band edges are given in Hertz as 0, 100, 200, 300, 400, 510, 630, 770, 920, 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150, 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500. The exemplary band centers in Hertz are 50, 150, 250, 350, 450, 570, 700, 840, 1000, 1170, 1370, 1600, 1850, 2150, 2500, 2900, 3400, 4000, 4800, 5800, 7000, 8500, 10500, 13500.
In this exemplary embodiment, the Bark frequency scale is defined only up to 15.5 kHz. As such, the highest sampling rate for this exemplary Bark scale is the Nyquist limit, or 31 kHz. A 25th exemplary Bark band can be utilized that extends above 19 kHz (the sum of the 24th Bark band edge and the 23rd critical bandwidth), so that a sampling rate of 40 kHz can be used. Likewise, additional Bark band-edges can be utilized, such as by appending the values 20500 and 27000 so that sampling rates up to 54 kHz can be used. Although human hearing generally does not extend above 20 kHz, audio sampling rates higher than 40 kHz are common in practice.
Temporal smoothing system 526 receives the filtered magnitude data from critical band filter banks 522 and 524 and the phase data from phase systems 514 and 516 and performs temporal smoothing of the data. In one exemplary embodiment, a phase delta between the left and right channels can be determined, such as by applying the following algorithm or in other suitable manners:
P[m,k]=ΠXl[m,k]−ΠXr[m,k]
where:
A delta smoothing coefficient can then be determined, such as by applying the following algorithm or in other suitable manners:
where
The spectral dominance smoothing coefficients can then be determined, such as by applying the following algorithm or in other suitable manners:
where
The phase-delta signal can then be smoothed, such as by applying the following algorithm or in other suitable manners:
P[m,k]=D[m,k]·δ[m,k]·(P[m,k]−P[m−1,k])
where
Spectral smoothing system 528 receives the output from temporal smoothing system and performs spectral smoothing of the output, such as to reduce spectral variations that can create unwanted audio artifacts.
Phase response filter system 530 receives the output of spectral smoothing system 528 and time delay systems 510 and 520, and performs phase response filtering. In one exemplary embodiment, phase response filter system 530 can compute phase shift coefficients, such as by applying the following equations or in other suitable manners:
where
The input signal can then be filtered, such as by applying the following algorithms or in other suitable manners:
Hl(ejω)=Xl(ejω)·Yl(ejω)
Hr(ejω)=Xr(ejω)·Yr(ejω)
where
Inverse short time Fourier transform systems 532 and 534 receive the left and right phase shifted data from phase response filter system 530, respectively, and perform an inverse short time Fourier transform on the data. Other transforms can also or alternatively be used, such as an inverse Fourier transform, an inverse discrete cosine transform, or other suitable transforms.
Left time signal system 536 and right time signal system 538 provide a left and right channel signal, such as a stereophonic signal for transmission over a low bit rate channel. In one exemplary embodiment, the processed signals provided by left time signal system 536 and right time signal system 538 can be used to provide stereophonic sound data having improved audio quality at low bit rates by elimination of audio components that would otherwise create unwanted audio artifacts.
System 600 includes phase signal system 602, which can receive a processed phase signal, such as from temporal smoothing system 502 or other suitable systems. Cosine system 604 and sine system 606 generate cosine and sine values, respectively, of a phase of the processed phase signal. Zero phase filters 608 and 610 perform zero phase filtering of the cosine and sine values, respectively, and phase estimation system 612 receives the zero phase filtered cosine and sine data and generates a spectral smoothed signal.
In operation, system 600 receives a phase signal with a phase value that varies from π to −π, which can be difficult to filter to reduce high frequency components. System 600 converts the phase signal to sine and cosine values so as to allow a zero phase filter to be used to reduce high frequency components.
System 700 includes left time signal system 702 and right time signal system 704, which can provide left and right channel time signals generated or received from a stereophonic sound source, or other suitable systems. Short time Fourier transform systems 706 and 710 are coupled to left time signal system 702 and right time signal system 704, respectively, and perform a time to frequency domain transform of the time signals. Other transforms can also or alternatively be used, such as a Fourier transform, a discrete cosine transform, or other suitable transforms.
Intensity re-panning system 708 performs intensity re-panning of right and left channel transform signals. In one exemplary embodiment, intensity re-panning system 708 can apply the following algorithm or other suitable processes:
where
Composite signal generation system 712 generates a composite signal from the right and left channel transform signals and the left and right channel intensity panned signals. In one exemplary embodiment, composite signal generation system 712 can apply the following algorithm or other suitable processes:
Cl(ejω)=(Xl(ejω)·(1−W(ejω)))+(Ml(ejω)·W(ejω))
Cr(ejω)=(Xr(ejω)·(1−W(ejω)))+(Mr(ejω)·W(ejω))
where
Power compensation system 714 generates a power compensated signal from the right and left channel transform signals and the left and right channel composite signals. In one exemplary embodiment, power compensation system 714 can apply the following algorithm or other suitable processes:
where
Inverse short time Fourier transform systems 716 and 718 receive the power compensated data from power compensation system 714 and perform an inverse short time Fourier transform on the data. Other transforms can also or alternatively be used, such as an inverse Fourier transform, an inverse discrete cosine transform, or other suitable transforms.
Left time signal system 720 and right time signal system 722 provide a left and right channel signal, such as a stereophonic signal for transmission over a low bit rate channel. In one exemplary embodiment, the processed signals provided by left time signal system 720 and right time signal system 722 can be used to provide stereophonic sound data having improved audio quality at low bit rates by elimination of audio components that would otherwise create unwanted audio artifacts.
Although exemplary embodiments of a system and method of the present invention have been described in detail herein, those skilled in the art will also recognize that various substitutions and modifications can be made to the systems and methods without departing from the scope and spirit of the appended claims.
This application claims priority to U.S. provisional application 60/965,227, filed Aug. 17, 2007, entitled “Parametric Stereo Conversion System and Method,” which is hereby incorporated by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
20050195995 | Baumgarte | Sep 2005 | A1 |
20060029231 | Henn | Feb 2006 | A1 |
20070172071 | Mehrotra | Jul 2007 | A1 |
20070189551 | Kimijima | Aug 2007 | A1 |
20080031463 | Davis et al. | Feb 2008 | A1 |
20080126104 | Seefeldt et al. | May 2008 | A1 |
Number | Date | Country |
---|---|---|
03069954 | Aug 2003 | WO |
Entry |
---|
International search report & written opinion issued in counterpart International (PCT) application No. PCT/US2009/004674; Filed: Aug. 14, 2009. |
Article: “On Improving Parametric Stereo Audio Coding”, AES Convention Paper 6804 by Jimmy Lapierre and Roch Lefebvre, dated May 20-23, 2006. |
European Search Report issued in corresponding European Patent Application No. 09 806 985.9-1224, filed Aug. 14, 2009. |
Number | Date | Country | |
---|---|---|---|
60965227 | Aug 2007 | US |