1. Field of the Invention
The present invention relates to the encoding of audio signals and the subsequent synthesis of auditory scenes from the encoded audio data.
2. Description of the Related Art
When a person hears an audio signal (i.e., sounds) generated by a particular audio source, the audio signal will typically arrive at the person's left and right ears at two different times and with two different audio (e.g., decibel) levels, where those different times and levels are functions of the differences in the paths through which the audio signal travels to reach the left and right ears, respectively. The person's brain interprets these differences in time and level to give the person the perception that the received audio signal is being generated by an audio source located at a particular position (e.g., direction and distance) relative to the person. An auditory scene is the net effect of a person simultaneously hearing audio signals generated by one or more different audio sources located at one or more different positions relative to the person.
The existence of this processing by the brain can be used to synthesize auditory scenes, where audio signals from one or more different audio sources are purposefully modified to generate left and right audio signals that give the perception that the different audio sources are located at different positions relative to the listener.
Using binaural signal synthesizer 100 of
Binaural signal synthesizer 100 of
In binaural cue coding (BCC), an encoder encodes C input audio channels to generate E transmitted audio channels, where C>E≧1. In particular, two or more of the C input channels are provided in a frequency domain, and one or more cue codes are generated for each of one or more different frequency bands in the two or more input channels in the frequency domain. In addition, the C input channels are downmixed to generate the E transmitted channels. In some downmixing implementations, at least one of the E transmitted channels is based on two or more of the C input channels, and at least one of the E transmitted channels is based on only a single one of the C input channels.
In one embodiment, a BCC coder has two or more filter banks, a code estimator, and a downmixer. The two or more filter banks convert two or more of the C input channels from a time domain into a frequency domain. The code estimator generates one or more cue codes for each of one or more different frequency bands in the two or more converted input channels. The downmixer downmixes the C input channels to generate the E transmitted channels, where C>E≧1.
In BCC decoding, E transmitted audio channels are decoded to generate C playback audio channels. In particular, for each of one or more different frequency bands, one or more of the E transmitted channels are upmixed in a frequency domain to generate two or more of the C playback channels in the frequency domain, where C>E≧1. One or more cue codes are applied to each of the one or more different frequency bands in the two or more playback channels in the frequency domain to generate two or more modified channels, and the two or more modified channels are converted from the frequency domain into a time domain. In some upmixing implementations, at least one of the C playback channels is based on at least one of the E transmitted channels and at least one cue code, and at least one of the C playback channels is based on only a single one of the E transmitted channels and independent of any cue codes.
In one embodiment, a BCC decoder has an upmixer, a synthesizer, and one or more inverse filter banks. For each of one or more different frequency bands, the upmixer upmixes one or more of the E transmitted channels in a frequency domain to generate two or more of the C playback channels in the frequency domain, where C>E≧1. The synthesizer applies one or more cue codes to each of the one or more different frequency bands in the two or more playback channels in the frequency domain to generate two or more modified channels. The one or more inverse filter banks convert the two or more modified channels from the frequency domain into a time domain.
BCC encoders and/or decoders may be incorporated into a number of systems or applications including, for example, digital video recorders/players, digital audio recorders/players, computers, satellite transmitters/receivers, cable transmitters/receivers, terrestrial broadcast transmitters/receivers, home entertainment systems, and movie theater systems.
Other aspects, features, and advantages of the present invention will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which like reference numerals identify similar or identical elements.
Generic BCC Processing
Downmixer 206 converts C input audio channels xi(n) into E transmitted audio channels yi(n), where C>E≧1. In this specification, signals expressed using the variable n are time-domain signals, while signals expressed using the variable k are frequency-domain signals. Depending on the particular implementation, downmixing can be implemented in either the time domain or the frequency domain. BCC estimator 208 generates BCC codes from the C input audio channels and transmits those BCC codes as either in-band or out-of-band side information relative to the E transmitted audio channels. Typical BCC codes include one or more of inter-channel time difference (ICTD), inter-channel level difference (ICLD), and inter-channel correlation (ICC) data estimated between certain pairs of input channels as a function of frequency and time. The particular implementation will dictate between which particular pairs of input channels, BCC codes are estimated.
ICC data corresponds to the coherence of a binaural signal, which is related to the perceived width of the audio source. The wider the audio source, the lower the coherence between the left and right channels of the resulting binaural signal. For example, the coherence of the binaural signal corresponding to an orchestra spread out over an auditorium stage is typically lower than the coherence of the binaural signal corresponding to a single violin playing solo. In general, an audio signal with lower coherence is usually perceived as more spread out in auditory space. As such, ICC data is typically related to the apparent source width and degree of listener envelopment. See, e.g., J. Blauert, The Psychophysics of Human Sound Localization, MIT Press, 1983.
Depending on the particular application, the E transmitted audio channels and corresponding BCC codes may be transmitted directly to decoder 204 or stored in some suitable type of storage device for subsequent access by decoder 204. In either case, decoder 204 receives the transmitted audio channels and side information and performs upmixing and BCC synthesis using the BCC codes to convert the E transmitted audio channels into more than E (typically, but not necessarily, C) playback audio channels {circumflex over (x)}i(n) for audio playback. Depending on the particular implementation, upmixing can be performed in either the time domain or the frequency domain.
In addition to the BCC processing shown in
Generic Downmixing
Each filter bank 302 converts each frame (e.g., 20 msec) of a corresponding digital input channel xi(n) in the time domain into a set of input coefficients {tilde over (x)}i(k) in the frequency domain. Downmixing block 304 downmixes each sub-band of C corresponding input coefficients into a corresponding sub-band of E downmixed frequency-domain coefficients. Equation (1) represents the downmixing of the kth sub-band of input coefficients ({tilde over (x)}1(k),{tilde over (x)}2(k), . . . , {tilde over (x)}C(k)) to generate the kth sub-band of downmixed coefficients (ŷ1(k),ŷ2(k), . . . , ŷE(k)) as follows:
where DCE is a real-valued C-by-E downmixing matrix.
Optional scaling/delay block 306 comprises a set of multipliers 310, each of which multiplies a corresponding downmixed coefficient ŷi(k) by a scaling factor ei(k) to generate a corresponding scaled coefficient {tilde over (y)}i(k). The motivation for the scaling operation is equivalent to equalization generalized for downmixing with arbitrary weighting factors for each channel. If the input channels are independent, then the power p{tilde over (y)}
where
If the sub-bands are not independent, then the power values p{tilde over (y)}
where p{tilde over (y)}
In addition to or instead of providing optional scaling, scaling/delay block 306 may optionally apply delays to the signals.
Each inverse filter bank 308 converts a set of corresponding scaled coefficients {tilde over (y)}i(k) in the frequency domain into a frame of a corresponding digital, transmitted channel yi(n).
Although
Generic BCC Synthesis
Each filter bank 402 converts each frame of a corresponding digital, transmitted channel yi(n) in the time domain into a set of input coefficients yi(k) in the frequency domain. Upmixing block 404 upmixes each sub-band of E corresponding transmitted-channel coefficients into a corresponding sub-band of C upmixed frequency-domain coefficients. Equation (4) represents the upmixing of the kth sub-band of transmitted-channel coefficients ({tilde over (y)}1(k),{tilde over (y)}2(k), . . . , {tilde over (y)}E(k)) to generate the kth sub-band of upmixed coefficients ({tilde over (s)}1(k),{tilde over (s)}2(k), . . . , {tilde over (s)}C(k)) as follows:
where UEC is a real-valued E-by-C upmixing matrix. Performing upmixing in the frequency-domain enables upmixing to be applied individually in each different sub-band.
Each delay 406 applies a delay value di(k) based on a corresponding BCC code for ICTD data to ensure that the desired ICTD values appear between certain pairs of playback channels. Each multiplier 408 applies a scaling factor ai(k) based on a corresponding BCC code for ICLD data to ensure that the desired ICLD values appear between certain pairs of playback channels. Correlation block 410 performs a matrix operation A based on corresponding BCC codes for ICC data to ensure that the desired ICC values appear between certain pairs of playback channels. Further description of the operations of correlation block 410 can be found in U.S. patent application Ser. No. 10/155,437, filed on May 24, 2002 as Baumgarte 2-10.
The synthesis of ICLD values may be less troublesome than the synthesis of ICTD and ICC values, since ICLD synthesis involves merely scaling of sub-band signals. Since ICLD cues are the most commonly used directional cues, it is usually more important that the ICLD values approximate those of the original audio signal. As such, ICLD data might be estimated between all channel pairs. The scaling factors ai(k) (1≦i≦C) for each sub-band are preferably chosen such that the sub-band power of each playback channel approximates the corresponding power of the original input audio channel.
One goal may be to apply relatively few signal modifications for synthesizing ICTD and ICC values. As such, the BCC data might not include ICTD and ICC values for all channel pairs. In that case, BCC synthesizer 400 would synthesize ICTD and ICC values only between certain channel pairs.
Each inverse filter bank 412 converts a set of corresponding synthesized coefficients (k) in the frequency domain into a frame of a corresponding digital, playback channel {circumflex over (x)}i(n).
Although
Note that, although
5-to-2 BCC Processing
In particular,
where the scale factors are chosen such that the sum of the squares of the value in each column is one, so that the power of each input signal contributes equally to the downmixed signals. As shown in
Note that, when the upmixed signals are subsequently normalized and re-scaled during ICLD synthesis, the scaling of the rows in the upmixing matrix is not relevant. As shown in
One advantage of the 5-to-2 BCC processing of
The 5-to-2 BCC scheme of
C-to-E BCC Processing with One or More Unmodified Channels
As mentioned earlier, in generating E transmitted channels from C input channels, one or more of the input channels may be transmitted as unmodified channels. In typical implementations, those unmodified channels are not used to generate any downmixed channels nor any BCC codes. Note that, in other possible implementations, in addition to being transmitted as unmodified channels, those input channels might still be used to generate one or more downmixed channels and/or some of the transmitted BCC codes. The following sections describe some possible BCC schemes in which one or more of the input channels are transmitted unmodified.
As used in this specification, the term “unmodified” means that the corresponding transmitted channel is based on only a single one of the input channels. That is, the transmitted channel is not the result of downmixing two or more different input channels. Note that, although the channel is referred to as being “unmodified,” it might nevertheless be subject to non-BCC audio codec processing, e.g., to reduce the transmission bitrate.
6-to-5 BCC Processing
where the three front channels 1, 2, and 3 are transmitted unmodified and the three rear channels 4, 5, and 6 are downmixed to two transmitted channels 4 and 5, for a total of five transmitted channels. The six-loudspeaker setup shown in
In this case, the base channels for playback channels 1, 2, 3, 4, and 5 are the five transmitted channels 1, 2, 3, 4, and 5, respectively, while the sum of the left rear and right rear transmitted channels 4 and 5 is used as the base channel for the playback rear channel 6.
Another possibility for downmixing the six input channels would be to add the left and rear left channels 1 and 4 to generate a first transmitted channel and add the right and rear right channels 2 and 5 to generate a second transmitted channel, where the other two channels 3 and 6 are left unmodified. In this 6-to-4 BCC scheme, the BCC synthesis at the decoder would apply ICTD and ICC synthesis between the playback left and rear left channels and between the playback right and rear right channels. Such a 6-to-4 BCC scheme would give more emphasis to left/right independence, while the 6-to-5 BCC scheme of
7-to-5 BCC Processing
In particular,
where the three front channels 1, 2, and 3 are transmitted unmodified, and the four rear channels 4, 5, 6, and 7 are downmixed to two transmitted channels 4 and 5, for a total of five transmitted channels.
In this case, the base channels for playback channels 1, 2, and 3 are transmitted channels 1, 2, and 3, respectively, while transmitted channel 4 is used as the base channel for both playback channels 4 and 6 and transmitted channel 5 is used as the base channel for both playback channels 5 and 7.
6.1-to-5.1 BCC Processing
In particular,
where the three front channels 1, 2, and 3 and the LFE channel 4 are transmitted unmodified, and the three rear channels 5, 6, and 7 are downmixed to two transmitted channels 5 and 6, for a total of six transmitted channels.
In this case, the base channels for playback channels 1, 2, 3, 4, and 5 are transmitted channels 1, 2, 3, 4, and 5, respectively, while the sum of the left rear and right rear transmitted channels 5 and 6 is used as the base channel for the playback rear channel 7.
Another possibility for downmixing the seven input channels would be to add the left and rear left channels 1 and 5 to generate a first transmitted channel and add the right and rear right channels 2 and 6 to generate a second transmitted channel, where the other three channels 3, 4, and 7 are left unmodified. In this 6.1-to-4.1 BCC scheme, the BCC synthesis at the decoder would apply ICTD and ICC synthesis between the playback left and rear left channels and between the playback right and rear right channels. Such a 6.1-to-4.1 BCC scheme would give more emphasis to left/right independence, while the 6. 1-to-5.1 BCC scheme of
7.1-to-5.1 BCC Processing
In particular,
where the three front channels 1, 2, and 3 and the LFE channel 4 are transmitted unmodified, and the four rear channels 5, 6, 7, and 8 are downmixed to two transmitted channels 5 and 6, for a total of six transmitted channels.
In this case, the base channels for playback channels 1, 2, 3, 4, and 5 are transmitted channels 1, 2, 3, 4, and 5, respectively, while transmitted channel 5 is used as the base channel for both playback channels 5 and 7 and transmitted channel 6 is used as the base channel for both playback channels 6 and 8.
6.2-to-5.1 BCC Processing
In particular,
where the three front channels 1, 2, and 3 are transmitted unmodified, and the three rear channels 5, 6, and 7 and the two LFE channels 4 and 8 are downmixed to three transmitted channels 4, 5, and 6, for a total of six transmitted channels.
In this case, the base channels for playback channels 1, 2, 3, 5, and 6 are transmitted channels 1, 2, 3, 5, and 6, respectively, while transmitted channel 4 is used as the base channel for both playback LFE channels 4 and 8, and the sum of the left rear and right rear transmitted channels 5 and 6 is used as the base channel for the playback rear channel 7.
BCC processing has been described in the context of generic as well as a number of specific implementations. Those skilled in the art will understand that BCC processing can be extended to other specific implementations involving just about any combination of any numbers of non-LFE channels and/or any numbers of LFE channels.
Although the present invention has been described in the context of implementations in which the encoder receives input audio signal in the time domain and generates transmitted audio signals in the time domain and the decoder receives the transmitted audio signals in the time domain and generates playback audio signals in the time domain, the present invention is not so limited. For example, in other implementations, any one or more of the input, transmitted, and playback audio signals could be represented in a frequency domain.
BCC encoders and/or decoders may be used in conjunction with or incorporated into a variety of different applications or systems, including systems for television or electronic music distribution, movie theaters, broadcasting, streaming, and/or reception. These include systems for encoding/decoding transmissions via, for example, terrestrial, satellite, cable, internet, intranets, or physical media (e.g., compact discs, digital versatile discs, semiconductor chips, hard drives, memory cards, and the like). BCC encoders and/or decoders may also be employed in games and game systems, including, for example, interactive software products intended to interact with a user for entertainment (action, role play, strategy, adventure, simulations, racing, sports, arcade, card, and board games) and/or education that may be published for multiple machines, platforms, or media. Further, BCC encoders and/or decoders may be incorporated in audio recorders/players or CD-ROM/DVD systems. BCC encoders and/or decoders may also be incorporated into PC software applications that incorporate digital decoding (e.g., player, decoder) and software applications incorporating digital encoding capabilities (e.g., encoder, ripper, recoder, and jukebox).
The present invention may be implemented as circuit-based processes, including possible implementation as a single integrated circuit (such as an ASIC or an FPGA), a multi-chip module, a single card, or a multi-card circuit pack. As would be apparent to one skilled in the art, various functions of circuit elements may also be implemented as processing steps in a software program. Such software may be employed in, for example, a digital signal processor, micro-controller, or general-purpose computer.
The present invention can be embodied in the form of methods and apparatuses for practicing those methods. The present invention can also be embodied in the form of program code embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of program code, for example, whether stored in a storage medium, loaded into and/or executed by a machine, or transmitted over some transmission medium or carrier, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits.
It will be further understood that various changes in the details, materials, and arrangements of the parts which have been described and illustrated in order to explain the nature of this invention may be made by those skilled in the art without departing from the scope of the invention as expressed in the following claims.
Although the steps in the following method claims, if any, are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those steps, those steps are not necessarily intended to be limited to being implemented in that particular sequence.
This application is a continuation of U.S. application Ser. No. 10/936,464 (“the '464 application”), filed on Sep. 8, 2004, which claims the benefit of the filing date of U.S. provisional application No. 60/585,703, filed on Jul. 6, 2004, the teachings of which are incorporated herein by reference. In addition, the '464 application is a continuation-in-part of the following co-pending applications, the teachings of all of which are incorporated herein by reference: U.S. application Ser. No. 09/848,877, filed on May 4, 2001;U.S. application Ser. No. 10/045,458, filed on Nov. 7, 2001, which itself claimed the benefit of the filing date of U.S. provisional application No. 60/311,565, filed on Aug. 10, 2001;U.S. application Ser. No. 10/155,437, filed on May 24, 2002;U.S. application Ser. No. 10/246,570, filed on Sep. 18, 2002, which itself claimed the benefit of the filing date of U.S. provisional application No. 60/391,095, filed on Jun. 24, 2002; andU.S. application Ser. No. 10/815,591, filed on Apr. 1, 2004, which itself claimed the benefit of the filing date of U.S. provisional application No. 60/544,287, filed on Feb. 12, 2004.
Number | Name | Date | Kind |
---|---|---|---|
4236039 | Cooper | Nov 1980 | A |
4815132 | Minami | Mar 1989 | A |
4972484 | Theile et al. | Nov 1990 | A |
5371799 | Lowe et al. | Dec 1994 | A |
5463424 | Dressler | Oct 1995 | A |
5579430 | Grill et al. | Nov 1996 | A |
5583962 | Davis et al. | Dec 1996 | A |
5677994 | Miyamori | Oct 1997 | A |
5682461 | Silzle et al. | Oct 1997 | A |
5701346 | Herre et al. | Dec 1997 | A |
5703999 | Herre et al. | Dec 1997 | A |
5706309 | Eberlein et al. | Jan 1998 | A |
5771295 | Waller, Jr. | Jun 1998 | A |
5812971 | Herre | Sep 1998 | A |
5825776 | Moon | Oct 1998 | A |
5860060 | Li et al. | Jan 1999 | A |
5878080 | Ten Kate | Mar 1999 | A |
5889843 | Singer et al. | Mar 1999 | A |
5890125 | Davis et al. | Mar 1999 | A |
5912976 | Klayman et al. | Jun 1999 | A |
5930733 | Park et al. | Jul 1999 | A |
5946352 | Rowlands et al. | Aug 1999 | A |
5956674 | Smyth et al. | Sep 1999 | A |
6016473 | Dolby | Jan 2000 | A |
6021386 | Davis et al. | Feb 2000 | A |
6021389 | Protopapas | Feb 2000 | A |
6108584 | Edwards | Aug 2000 | A |
6111958 | Maher | Aug 2000 | A |
6131084 | Hardwick | Oct 2000 | A |
6205430 | Hui | Mar 2001 | B1 |
6236731 | Brennan et al. | May 2001 | B1 |
6282631 | Arbel | Aug 2001 | B1 |
6356870 | Hui et al. | Mar 2002 | B1 |
6408327 | McClennon et al. | Jun 2002 | B1 |
6424939 | Herre et al. | Jul 2002 | B1 |
6434191 | Agrawal et al. | Aug 2002 | B1 |
6539357 | Sinha | Mar 2003 | B1 |
6611212 | Craven et al. | Aug 2003 | B1 |
6614936 | Wu et al. | Sep 2003 | B1 |
6658117 | Hasebe | Dec 2003 | B2 |
6763115 | Kobayashi | Jul 2004 | B1 |
6782366 | Huang et al. | Aug 2004 | B1 |
6823018 | Jafarkhani et al. | Nov 2004 | B1 |
6845163 | Johnston et al. | Jan 2005 | B1 |
6850496 | Knappe et al. | Feb 2005 | B1 |
6885992 | Mesarovic et al. | Apr 2005 | B2 |
6934676 | Wang et al. | Aug 2005 | B2 |
6940540 | Beal et al. | Sep 2005 | B2 |
6973184 | Shaffer et al. | Dec 2005 | B1 |
6987856 | Feng et al. | Jan 2006 | B1 |
7116787 | Faller | Oct 2006 | B2 |
7181019 | Breebart et al. | Feb 2007 | B2 |
7382886 | Henn et al. | Jun 2008 | B2 |
7516066 | Schuijers et al. | Apr 2009 | B2 |
20010031054 | Grimani | Oct 2001 | A1 |
20010031055 | Aarts et al. | Oct 2001 | A1 |
20020055796 | Katayama et al. | May 2002 | A1 |
20030035553 | Baumgarte et al. | Feb 2003 | A1 |
20030044034 | Zeng et al. | Mar 2003 | A1 |
20030081115 | Curry et al. | May 2003 | A1 |
20030161479 | Yang et al. | Aug 2003 | A1 |
20030187663 | Truman et al. | Oct 2003 | A1 |
20030219130 | Baumgarte et al. | Nov 2003 | A1 |
20030236583 | Baumgarte et al. | Dec 2003 | A1 |
20040091118 | Griesinger | May 2004 | A1 |
20050053242 | Henn et al. | Mar 2005 | A1 |
20050069143 | Budnikov et al. | Mar 2005 | A1 |
20050157883 | Herre et al. | Jul 2005 | A1 |
20050226426 | Oomen et al. | Oct 2005 | A1 |
20060206323 | Breebaart | Sep 2006 | A1 |
20070094012 | Pang et al. | Apr 2007 | A1 |
Number | Date | Country |
---|---|---|
2 326 495 | Jun 2001 | CA |
1295778 | May 2001 | CN |
1 107 232 | Jun 2001 | EP |
1 376 538 | Jan 2004 | EP |
1 479 071 | Jan 2006 | EP |
07123008 | May 1995 | JP |
H10-051313 | Feb 1998 | JP |
2000-151413 | May 2000 | JP |
2001-339311 | Dec 2001 | JP |
2004-535145 | Nov 2004 | JP |
2214048 | Oct 2003 | RU |
347623 | Dec 1998 | TW |
360859 | Jun 1999 | TW |
444511 | Jul 2001 | TW |
510144 | Nov 2002 | TW |
517223 | Jan 2003 | TW |
521261 | Feb 2003 | TW |
WO 03007656 | Jan 2003 | WO |
WO 03090207 | Oct 2003 | WO |
WO 03090208 | Oct 2003 | WO |
WO 03094369 | Nov 2003 | WO |
WO 2004008806 | Jan 2004 | WO |
WO 2004049309 | Jun 2004 | WO |
WO 2004072956 | Aug 2004 | WO |
WO 2004077884 | Sep 2004 | WO |
WO 2004086817 | Oct 2004 | WO |
WO 2005069274 | Jul 2005 | WO |
WO 2006072270 | Jul 2006 | WO |
Number | Date | Country | |
---|---|---|---|
20090319281 A1 | Dec 2009 | US |
Number | Date | Country | |
---|---|---|---|
60585703 | Jul 2004 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10936464 | Sep 2004 | US |
Child | 12548773 | US |