MATRIX DECODER WITH CONSTANT-POWER PAIRWISE PANNING
20170366910 · 2017-12-21
Assignee
Inventors
Cpc classification
H04S2400/03
ELECTRICITY
H04S3/02
ELECTRICITY
H04S2400/07
ELECTRICITY
International classification
Abstract
A constant-power pairwise panning upmixing system and method for upmixing from a two-channel stereo signal to a multi-channel surround sound (having more than two channels). Each output channel is some combination of the two input channels. Closed-form solutions are used to calculate dematrixing coefficients that are used to weight each input channel. The dematrixing coefficients are computed based on an inter-channel level difference and an inter-channel phase difference between the two input signals. The weighted input channels then are mixed uniquely for each output channel to generate a surround sound output from the stereo input signal. Each dematrixing coefficient has an in-phase component and an out-of-phase component. The phase coefficients for each component vary in time and are based on the phase difference between the input signals. The resultant surround sound output faithfully simulates the audio content as originally mixed.
Claims
1. A method for upmixing a two-channel input audio signal, comprising: calculating an inter-channel level difference between a first channel and a second channel of the two-channel input audio signal; calculating an inter-channel phase difference between the first and second channels; calculating a first dematrixing coefficient based on the inter-channel level difference and the inter-channel phase difference; calculating a second dematrixing coefficient based on the inter-channel level difference and the inter-channel phase difference; generating a channel of an upmixed multi-channel output audio signal by summing the first channel multiplied by the first dematrixing coefficient with the second channel multiplied by the second dematrixing coefficient; and outputting the channel of the upmixed multi-channel output audio signal for playback through one or more playback devices.
2. The method of claim 1, further comprising calculating the inter-channel level difference for the two-channel input audio signal as a ratio of a left channel and a sum of the left channel and a right channel.
3. The method of claim 2, wherein calculating the inter-channel level difference, denoted as ICLD, further comprises using the equation:
4. The method of claim 1, wherein calculating the first and second dematrixing coefficients further comprises calculating an estimated panning angle, denoted as {circumflex over (θ)}, based on the inter-channel level difference, wherein the estimated panning angle is an estimate of an original panning angle associated with the two-channel input audio signal.
5. The method of claim 4, wherein calculating the estimated panning angle further comprises using the equation (where the inter-channel level difference is denoted as ICLD):
6. The method of claim 1, wherein calculating the first and second dematrixing coefficients further comprises: determining the inter-channel phase difference, denoted as ICPD, between the first and the second channels based on the equation:
7. The method of claim 4, wherein calculating the first and second dematrixing coefficients further comprises: calculating an in-phase coefficient and an out-of-phase coefficient based on the estimated panning angle; and calculating the first and second dematrixing coefficients based on the inter-channel phase difference, the in-phase coefficient, and the out-of-phase coefficient.
8. A method for upmixing a two-channel input audio signal having a first input channel and a second input channel into an upmixed multi-channel output audio signal having greater than two channels, comprising: calculating an inter-channel level difference between the first input channel and the second input channel; calculating an inter-channel phase difference between the first input channel and the second input channel; calculating an in-phase coefficient and an out-of-phase coefficient based on the inter-channel level difference; calculating a first dematrixing coefficient based on the in-phase coefficient and the out-of-phase coefficient; calculating a second dematrixing coefficient based on the in-phase coefficient and the out-of-phase coefficient; multiplying the first input channel by the first dematrixing coefficient to generate a first sub-signal and the second input channel by the second dematrixing coefficient to generate a second sub-signal; mixing the first sub-signal and the second sub-signal to generate the upmixed multi-channel output audio signal for playback; and outputting the upmixed multi-channel output audio signal for playback through one or more playback devices.
9. The method of claim 8, wherein the first dematrixing coefficient is a combination of the in-phase coefficient and the out-of-phase coefficient based on the inter-channel phase difference.
10. The method of claim 9, wherein the second dematrixing coefficient is a combination of the in-phase coefficient and the out-of-phase coefficient based on the inter-channel phase difference.
Description
DRAWINGS DESCRIPTION
[0024] Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
DETAILED DESCRIPTION
[0038] In the following description of embodiments of a constant-power pairwise panning upmixing system and method reference is made to the accompanying drawings. These drawings shown by way of illustration specific examples of how embodiments of the constant-power pairwise panning upmixing system and method may be practiced. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the claimed subject matter.
I. System Overview
[0039] Embodiments of the constant-power pairwise panning upmixing system and method upmix a two-channel input audio signal to a multi-channel output audio signal having more than two channels using a closed-form solution to precisely determine dematrixing coefficients. These dematrixing coefficients are used to weight each of the two input channels and determine how much of each input channel is contained in each output channel. Embodiments of the constant-power pairwise panning upmixing system and method are used to create a surround sound experience with multiple output channels for a listener when the input is a stereo signal.
[0040]
[0041] In
[0042] The stereo mix 130 is delivered for consumption by a listener in a delivery environment 140. Several delivery options are available, including streaming delivery over a network 150. Alternatively, the stereo mix 130 may be recorded on a media 160 such as optical disk or film for consumption by the listener. In addition, there is many other delivery options not enumerated here that may be used to deliver the stereo mix 130.
[0043] Whatever the delivery method, the stereo mix 130 is input to a matrix decoder and upmixer 170. The matrix decoder and upmixer 170 includes embodiments of the constant-power pairwise panning upmixing system and method. The matrix encoder and downmixer 120 and embodiments of the constant-power pairwise panning upmixing system and method 180 are typically located on a computing device having one or more processing devices.
[0044] The matrix decoder and upmixer 170 decodes each channel of the stereo mix 130 and expands them into discrete output channels. In
[0045] Whether the target speaker layout is actual speakers or headphones, the playback of the reconstructed 5.1 mix 185 provides the listener 195 with an immersive surround sound experience from a stereo input audio signal. It should be noted that although the target speaker layout is a 5.1 configuration, in other embodiments any number of speakers may be used as long as the number is greater than two.
[0046] Embodiments of the constant-power pairwise panning upmixing system 180 and method are designed such that the playback environment 190 includes speakers that are located in the same horizontal plane and that plane includes the listener's ears.
[0047] Each of the speakers is located in a horizontal plane 250. In addition, each of the listener's ears 260 also is located in the horizontal plane 250. Although a 5.1 and 7.1 layout are shown in
[0048] It should be noted that in
II. System Details
[0049] The system details of components of embodiments of the constant-power pairwise panning upmixing system will now be discussed. It should be noted that only a few of the several ways in which the system may be implemented are detailed below. Many variations are possible from that which is shown in
[0050] Input to the system 300 includes a two-channel input audio signal 310 having a Left Total channel (L.sub.T) and a Right Total channel (R.sub.T). These two channel are input to an inter-channel level difference (ICLD) and inter-channel phase difference (ICPD) computation module 320. The computation module 320 computes the inter-channel level difference for each channel using the two input channels. Moreover, the computation module 320 calculates the inter-channel phase difference between the Left Total channel and the Right Total channel using the two input channels. This information is passed to a panning angle estimator 330.
[0051] Based on the inter-channel level difference, the estimator 330 estimates a panning angle for each output channel. The panning angle is the angle in the horizontal plane 250 from which the sound appears to originate during playback.
[0052] In
[0053] The panning angle estimations from the panning angle estimator 330 are passed to a coefficient calculator 340. The coefficient calculator 340 uses the estimated panning angle to calculate in-phase coefficients and out-of-phase coefficients (collectively called phase coefficients) for each output channel. Using these coefficients and the inter-channel phase difference, the coefficient calculator 340 determines the dematrixing coefficients for each output channel. These dematrixing coefficients and phase coefficients are passed to an output channel generator 350.
[0054] For each output channel, the output channel generator 350 multiplies the Left Total channel and the Right Total channel by their corresponding dematrixing coefficients to generate the particular output channel. Thus, at any given time during playback of audio content each output channel is a mixture of the Left Total channel and the Right Total channel. This mixture is determined by the dematrixing coefficients and especially the phase coefficients.
[0055] Once all of the discrete output channels have been generated, the output channel generator 350 outputs an upmixed multi-channel output audio signal 360. In the exemplary example shown in
III. Operational Overview
[0056]
[0057] The method then mixes the first sub-signal and the second sub-signal together in a linear manner to generate an output channel (box 540). This process is repeated in a similar manner for each of the output channels by finding new dematrixing coefficients for each output channel (box 550). Although the dematrixing coefficients typically will be different for each output channel, this will not always be true. Each of the discrete output channels creates an upmixed multi-channel output audio signal for playback through playback devices (box 560), such as speakers or headphones.
IV. Operational Details
[0058] The operational details of embodiments of the constant-power pairwise panning upmixing system 300 and method now will be discussed.
[0059] The method then calculates an inter-channel level difference between the left and right channels using the left and right channels (box 610). This calculation is shown in detail below. Moreover, the method uses the inter-channel level difference to compute an estimated panning angle (box 620). In addition, an inter-channel phase difference is computed by the method using the left and right input channels (box 630). This inter-channel phase difference determines a relative phase difference between the left and right input channels that indicates whether the left and right signals of the two-channel input audio signal are in-phase or out-of-phase.
[0060] Some embodiments of the constant-power pairwise panning upmixing system 300 and method utilize a panning angle (θ) to determine the downmix process and subsequent upmix process from the two-channel downmix. Moreover, some embodiments assume a Sin/Cos panning law. In these situations, the two-channel downmix is calculated as a function of the panning angle as:
where X.sub.i is an input channel, L and R are the downmix channels, θ is a panning angle (normalized between 0 and 1), and the polarity of the panning weights is determined by the location of input channel X.sub.i. In traditional matrixing systems it is common for input channels located in front of the listener to be downmixed with in-phase signal components (in other words, with equal polarity of the panning weights) and for output channels located behind the listener to be downmixed with out-of-phase signal components (in other words, with opposite polarity of the panning weights).
[0061]
L=0.707.Math.C
R=0.707.Math.C
[0062] To synthesize the additional audio channels from a two-channel downmix, an estimate of the panning angle (or estimated panning angle, denoted as {circumflex over (θ)}) can be calculated from the inter-channel level difference (denoted as ICLD). Let the ICLD be defined as:
[0063] Assuming that a signal component is generated via intensity panning using the Sin/Cos panning law, the ICLD can be expressed as a function of the panning angle estimate:
The panning angle estimate then can be expressed as a function of the ICLD:
[0064] The following angle sum and difference identities will be used throughout the remaining derivations:
sin(α±β)=sin(α)cos(δ)±cos(α)sin(β)
cos(α±β)=cos(α)cos(β)±sin(α)sin(β)
Moreover, the following derivations assume a 5.1 surround sound output configuration. However, this analysis can easily be applied to additional channels.
IV.A. Center Channel Synthesis
[0065] A Center channel is generated from a two-channel downmix using the following equation:
C=αL+bR
where the a and b coefficients are determined based on the panning angle estimate 6 to achieve certain pre-defined goals.
1. In-Phase Components
[0066] For the in-phase components of the Center channel a desired panning behavior is illustrated in
C=sin({circumflex over (θ)}π)
Substituting the desired Center channel panning behavior for in-phase components and the assumed Sin/Cos downmix functions yields:
Using the angle sum identities, the dematrixing coefficients, including a first dematrixing coefficient (denoted as a) and a second dematrixing coefficients (denoted as b), can be derived as:
2. Out-of-Phase Components
[0067] For the out-of-phase components of the Center channel a desired panning behavior is illustrated in
C=0
Substituting the desired Center channel panning behavior for out-of-phase components and the assumed Sin/Cos downmix functions leads to:
Using the angle sum identities, the a and b coefficients can be derived as:
IV.B. Surround Channel Synthesis
[0068] The surround channels are generated from a two-channel downmix using the following equations:
Ls=aL−bR
Rs=aR−bL
where L.sub.S is the left surround channel and R.sub.S is the right surround channel. Moreover, the a and b coefficients are determined based on the estimated panning angle {circumflex over (θ)} to achieve certain pre-defined goals.
1. In-Phase Components
[0069] The ideal panning behavior for in-phase components of the Left Surround channel is illustrated in
Ls=0
[0070] Substituting the desired Left Surround channel panning behavior for in-phase components and the assumed Sin/Cos downmix functions leads to:
[0071] Using the angle sum identities, the a and b coefficients are derived as:
2. Out-of-Phase Components
[0072] The goal for the Left Surround channel for out-of-phase components is to achieve panning behavior as illustrated by the out-of-phase plot 1100 in
θ.sub.Ls=Left Surround encoding angle (˜0.25)
θ.sub.Rs=Right Surround encoding angle (˜0.75)
[0073] The a and b coefficients for the Left Surround channel are generated via a piecewise function due to the piecewise behavior of the desired output. For {circumflex over (θ)}≦θ.sub.Ls, the desired panning behavior for the Left Surround channel corresponds to:
[0074] Substituting the desired Left Surround channel panning behavior for out-of-phase components and the assumed Sin/Cos downmix functions leads to:
[0075] Using the angle sum identities, the a and b coefficients can be derived as:
[0076] For θ.sub.Ls<{circumflex over (θ)}≦θ.sub.Rs, the desired panning behavior for the Left Surround channel corresponds to:
[0077] Substituting the desired Left Surround channel panning behavior for out-of-phase components and the assumed Sin/Cos downmix functions leads to:
[0078] Using the angle sum identities, the a and b coefficients can be derived as:
[0079] For {circumflex over (θ)}>θ.sub.Rs, the desired panning behavior for the Left Surround channel corresponds to:
Ls=0
[0080] Substituting the desired Left Surround channel panning behavior for out-of-phase components and the assumed Sin/Cos downmix functions leads to:
[0081] Using the angle sum identities, the a and b coefficients can be derived as:
[0082] The a and b coefficients for the Right Surround channel generation are calculated similarly to those for the Left Surround channel generation as described above.
IV.C. Modified Left and Modified Right Channel Synthesis
[0083] The Left and Right channels are modified using the following equations to remove (either fully or partially) those components generated in the Center and Surround channels:
L′=aL−bR
R′=aR−bL
where the a and b coefficients are determined based on the panning angle estimate ti to achieve certain pre-defined goals and L′ is the modified Left channel and R′ is the modified Right channel.
1. In-Phase Components
[0084] The goal for the modified Left channel for in-phase components is to achieve panning behavior as illustrated by the in-phase plot 1200 in
[0085] For {circumflex over (θ)}≦0.5, the desired panning behavior for the modified Left channel corresponds to:
[0086] Substituting the desired modified Left channel panning behavior for in-phase components and the assumed Sin/Cos downmix functions leads to:
[0087] Using the angle sum identities, the a and b coefficients can be derived as:
[0088] For {circumflex over (θ)}>0.5, the desired panning behavior for the modified Left channel corresponds to:
L′=0
Substituting the desired modified Left channel panning behavior for in-phase components and the assumed Sin/Cos downmix functions leads to:
[0089] Using the angle sum identities, the a and b coefficients can be derived as:
2. Out-of-Phase Components
[0090] The goal for the modified Left channel for out-of-phase components is to achieve panning behavior as illustrated by the out-of-phase plot 1300 in
[0091] For {circumflex over (θ)}≦θ.sub.Ls, the desired panning behavior for the modified Left channel corresponds to:
Substituting the desired modified Left channel panning behavior for out-of-phase components and the assumed Sin/Cos downmix functions leads to:
[0092] Using the angle sum identities, the a and b coefficients can be derived as:
[0093] For {circumflex over (θ)}>θ.sub.Ls, the desired panning behavior for the modified Left channel corresponds to:
L′=0.
Substituting the desired modified Left channel panning behavior for out-of-phase components and the assumed Sin/Cos downmix functions leads to:
[0094] Using the angle sum identities, the a and b coefficients can be derived as:
The a and b coefficients for the modified Right channel generation are calculated similarly to those for the modified Left channel generation as described above.
IV.D. Coefficient Interpolation
[0095] The channel synthesis derivations presented above are based on achieving desired panning behavior for source content that is either in-phase or out-of-phase. The relative phase difference of the source content can be determined through the Inter-Channel Phase Difference (ICPD) property defined as:
where * denotes complex conjugation.
[0096] The ICPD value is bounded in the range [−1,1] where values of −1 indicate that the components are out-of-phase and values of 1 indicate that the components are in-phase. The ICPD property can then be used to determine the final a and b coefficients to use in the channel synthesis equations using linear interpolation. However, instead of interpolating the a and b coefficients directly, it can be noted that all of the a and b coefficients are generated using trigonometric functions of the panning angle estimate {circumflex over (θ)}.
[0097] The linear interpolation is thus carried out on the angle arguments of the trigonometric functions. Performing the linear interpolation in this manner has two main advantages. First, it preserves the property that a.sup.2+b.sup.2=1 for any panning angle and ICPD value. Second, it reduces the number of trigonometric function calls required thereby reducing processing requirements.
[0098] The angle interpolation uses a modified ICPD value normalized to the range [0,1] calculated as:
The channel outputs are computed as shown below.
1. Center Output Channel
[0099] The Center output channel is generated using the modified ICPD value, which is defined as:
C=aL+bR,
where [0100] a=sin(ICPD′ .Math.α+(1−ICPD′).Math.β) [0101] b=cos(ICPD′.Math.α+(1−ICPD′).Math.β).
The first term in the argument of the sine function above represents the in-phase component of the first dematrixing coefficient, while the second term represents the out-of-phase component. Thus, α represents an in-phase coefficient and β represents an out-of-phase coefficient. Together the in-phase coefficient and the out-of phase coefficient are known as the phase coefficients.
[0102] Referring again to
2. Left Surround Output Channel
[0103] The Left Surround output channel is generated using the modified ICPD value, which is defined as:
3. Right Surround Output Channel
[0104] The Right Surround output channel is generated using the modified ICPD value, which is defined as:
Note that the a and b coefficients for the Right Surround channel are generated similarly to the Left Surround channel, apart from using (1−{circumflex over (θ)}) as the panning angle instead of {circumflex over (θ)}.
4. Modified Left Output Channel
[0105] The modified Left output channel is generated using the modified ICPD value as follows:
5. Modified Right Output Channel
[0106] The modified Right output channel is generated using the modified ICPD value as follows:
Note that the a and b coefficients for the Right channel are generated similarly to the Left channel, apart from using (1−{circumflex over (θ)}) as the panning angle instead of {circumflex over (θ)}.
[0107] The subject matter discussed above is a system for generating Center, Left Surround, Right Surround, Left, and Right channels from a two-channel downmix. However, the system may be easily modified to generate other additional audio channels by defining additional panning behaviors.
[0108] Referring again to
[0109] After generating the output channels to obtain the upmixed multi-channel output audio signal, each output channel is output for reproduction in the playback environment 190 (box 670). The reproduction system may then play each audio channel over a target speaker layout. This playback will substantially recreate the original audio content before it was downmixed to two channels.
V. Alternate Embodiments and Exemplary Operating Environment
[0110] Many other variations than those described herein will be apparent from this document. For example, depending on the embodiment, certain acts, events, or functions of any of the methods and algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (such that not all described acts or events are necessary for the practice of the methods and algorithms). Moreover, in certain embodiments, acts or events can be performed concurrently, such as through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and computing systems that can function together.
[0111] The various illustrative logical blocks, modules, methods, and algorithm processes and sequences described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and process actions have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. The described functionality can be implemented in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of this document.
[0112] The various illustrative logical blocks and modules described in connection with the embodiments disclosed herein can be implemented or performed by a machine, such as a general purpose processor, a processing device, a computing device having one or more processing devices, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor and processing device can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor can also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0113] Embodiments of the constant-power pairwise panning upmixing system 300 and method described herein are operational within numerous types of general purpose or special purpose computing system environments or configurations. In general, a computing environment can include any type of computer system, including, but not limited to, a computer system based on one or more microprocessors, a mainframe computer, a digital signal processor, a portable computing device, a personal organizer, a device controller, a computational engine within an appliance, a mobile phone, a desktop computer, a mobile computer, a tablet computer, a smartphone, and appliances with an embedded computer, to name a few.
[0114] Such computing devices can be typically be found in devices having at least some minimum computational capability, including, but not limited to, personal computers, server computers, hand-held computing devices, laptop or mobile computers, communications devices such as cell phones and PDA's, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, audio or video media players, and so forth. In some embodiments the computing devices will include one or more processors. Each processor may be a specialized microprocessor, such as a digital signal processor (DSP), a very long instruction word (VLIW), or other microcontroller, or can be conventional central processing units (CPUs) having one or more processing cores, including specialized graphics processing unit (GPU)-based cores in a multi-core CPU.
[0115] The process actions of a method, process, or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in any combination of the two. The software module can be contained in computer-readable media that can be accessed by a computing device. The computer-readable media includes both volatile and nonvolatile media that is either removable, non-removable, or some combination thereof. The computer-readable media is used to store information such as computer-readable or computer-executable instructions, data structures, program modules, or other data. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media.
[0116] Computer storage media includes, but is not limited to, computer or machine readable media or storage devices such as Bluray discs (BD), digital versatile discs (DVDs), compact discs (CDs), floppy disks, tape drives, hard drives, optical drives, solid state memory devices, RAM memory, ROM memory, EPROM memory, EEPROM memory, flash memory or other memory technology, magnetic cassettes, magnetic tapes, magnetic disk storage, or other magnetic storage devices, or any other device which can be used to store the desired information and which can be accessed by one or more computing devices.
[0117] A software module can reside in the RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of non-transitory computer-readable storage medium, media, or physical computer storage known in the art. An exemplary storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The processor and the storage medium can reside in an application specific integrated circuit (ASIC). The ASIC can reside in a user terminal. Alternatively, the processor and the storage medium can reside as discrete components in a user terminal.
[0118] The phrase “non-transitory” as used in this document means “enduring or long-lived”. The phrase “non-transitory computer-readable media” includes any and all computer-readable media, with the sole exception of a transitory, propagating signal. This includes, by way of example and not limitation, non-transitory computer-readable media such as register memory, processor cache and random-access memory (RAM).
[0119] Retention of information such as computer-readable or computer-executable instructions, data structures, program modules, and so forth, can also be accomplished by using a variety of the communication media to encode one or more modulated data signals, electromagnetic waves (such as carrier waves), or other transport mechanisms or communications protocols, and includes any wired or wireless information delivery mechanism. In general, these communication media refer to a signal that has one or more of its characteristics set or changed in such a manner as to encode information or instructions in the signal. For example, communication media includes wired media such as a wired network or direct-wired connection carrying one or more modulated data signals, and wireless media such as acoustic, radio frequency (RF), infrared, laser, and other wireless media for transmitting, receiving, or both, one or more modulated data signals or electromagnetic waves. Combinations of the any of the above should also be included within the scope of communication media.
[0120] Further, one or any combination of software, programs, computer program products that embody some or all of the various embodiments of the post-encoding bitrate reduction system 100 and method described herein, or portions thereof, may be stored, received, transmitted, or read from any desired combination of computer or machine readable media or storage devices and communication media in the form of computer executable instructions or other data structures.
[0121] Embodiments of the constant-power pairwise panning upmixing system 300 and method described herein may be further described in the general context of computer-executable instructions, such as program modules, being executed by a computing device. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The embodiments described herein may also be practiced in distributed computing environments where tasks are performed by one or more remote processing devices, or within a cloud of one or more devices, that are linked through one or more communications networks. In a distributed computing environment, program modules may be located in both local and remote computer storage media including media storage devices. Still further, the aforementioned instructions may be implemented, in part or in whole, as hardware logic circuits, which may or may not include a processor.
[0122] Conditional language used herein, such as, among others, “can,” “might,” “may,” “e.g.,” and the like, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or states. Thus, such conditional language is not generally intended to imply that features, elements and/or states are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without author input or prompting, whether these features, elements and/or states are included or are to be performed in any particular embodiment. The terms “comprising,” “including,” “having,” and the like are synonymous and are used inclusively, in an open-ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. Also, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list.
[0123] While the above detailed description has shown, described, and pointed out novel features as applied to various embodiments, it will be understood that various omissions, substitutions, and changes in the form and details of the devices or algorithms illustrated can be made without departing from the spirit of the disclosure. As will be recognized, certain embodiments of the inventions described herein can be embodied within a form that does not provide all of the features and benefits set forth herein, as some features can be used or practiced separately from others.
[0124] Moreover, although the subject matter has been described in language specific to structural features and methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.