METHOD FOR Rendering Object-Based Audio and Corresponding Device

DE602014092895T2Active Publication Date: 2026-03-18DOLBY INTERNATIONAL AB +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2014-11-21
Publication Date
2026-03-18

AI Technical Summary

Technical Problem

Existing audio rendering technologies in object-based formats often produce undesired results when there are insufficient speakers in certain areas, leading to impaired audibility of audio components and mismatched audio effects.

Method used

Adjusting the gain value of audio content based on the positions of speakers at the media consumption site using object-based metadata, categorizing speakers into position categories, and determining maximum adjustment values to ensure optimal audio playback.

Benefits of technology

Enhances audio quality by ensuring accurate sound positioning and audibility across various speaker configurations, maintaining intended audio effects and component clarity.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE DISCLOSURE

[0001] The disclosure generally relates to augmenting audio after generation and before playback for a higher quality listening experience. More specifically, the disclosure relates to adjusting the gain value applied to audio obtained in object-based formats.BACKGROUND

[0002] A media device at a media consumption site may receive audio information from a content generator in an object-based format. The media device may be a television, a portable computing device such as a phone or a tablet, or a device at a movie theater. The audio information may comprise audio items, where each audio item comprises portions of audio content and position metadata indicating a location in a virtual sound plane at which the sound content portion is intended to play. Position values corresponding to a content portion may be associated with time values that indicate the positions at which the content portion is to be played at each of a plurality of different times. The location may be a location relative to an expected location of the listener or relative to the screen at which related video will played at the media consumption site. For example, a particular audio item may indicate that a certain content portion is to first to be played to the left of the seating area, then behind the seating area, and then to the right of the seating area. The playing of the audio content portions at these positions may simulate the sound of an object flying around the listener.

[0003] A renderer at a media consumption site may render the received audio content by determining, for each audio content portion that is to be played, the amount of audio signal that should be sent to each speaker at the media consumption site for the audio content portion.

[0004] The rendering of audio content in object-based audio format may create undesired results in certain speaker configurations, particularly when there are too few speakers in certain areas of the media consumption site. For example, if certain audio content has an intended position of being behind the seating area and there are no speakers behind the seating area, playing that audio content through any other speaker without any augmentation may create an audio effect that is different than intended by the content producers.

[0005] Additionally, in some cases, playing the audio content through some other speaker without any augmentation may affect the audibility of other audio components. Consider an example where audio content comprising music is intended to be played at speakers behind the seating area while audio content comprising dialog is intended to be played at speakers in front of the seating area. At a particular media consumption site, there may be no speakers behind the seating area. At such a particular media consumption site, the music audio content may be played in front of the seating area. However, mixing both music audio content and dialog audio content may impair the audibility of the dialog audio content for a listener at the media consumption site.

[0006] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. Similarly, issues identified with respect to one or more approaches should not assume to have been recognized in any prior art on the basis of this section, unless otherwise indicated.

[0007] Patent application publication WO 2013 / 006330 A2 from Dolby discloses a method for rendering object based-audio.SUMMARY

[0008] The invention is defined by the appended independent claims. Further embodiments are set out in the appended dependent claims.BRIEF DESCRIPTION OF THE DRAWINGS

[0009] In the drawings: FIG. 1 illustrates an example media rendering system where the rendering logic is performed at a media consumption site; FIG. 2 illustrates an example media rendering system where the rendering logic is performed at a content publisher site; FIG. 3 illustrates an example process for determining a gain adjustment value for audio content based on object-based metadata associated with the audio content and the positions of a plurality of speakers at a media consumption site; FIG. 4 illustrates another example process for determining a gain adjustment value for audio content based on object-based metadata associated with the audio content and the positions of a plurality of speakers at the media consumption site; FIG. 5 illustrates an example classification of dimensions according to one embodiment; and FIG. 6 is a block diagram that illustrates a computer system upon which embodiments may be implemented. DESCRIPTION OF EXAMPLE EMBODIMENTS

[0010] In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention as defined by the appended claims.

[0011] Embodiments are described herein according to the following outline: 1. General Overview 2. Structural and Functional Overview 3. Gain Adjustment for Audio in Object-Based Format 4. Implementation Mechanisms-Hardware Overview 1. GENERAL OVERVIEW

[0012] This overview presents a basic description of some aspects of an embodiment of the present invention. It should be noted that this overview is not an extensive or exhaustive summary of aspects of the embodiment. Moreover, it should be noted that this overview is not intended to be understood as identifying any particularly significant aspects or elements of the embodiment, nor as delineating any scope of the embodiment in particular, nor the invention in general. This overview merely presents some concepts that relate to the example embodiment in a condensed and simplified format, and should be understood as merely a conceptual prelude to a more detailed description of example embodiments that follows below.

[0013] Sound content received or stored at a media device may be associated with audio information indicating an amount of signal associated with the sound content. The amount of signal may indicate how much signal should be sent to a set of speakers at a media consumption site to play the audio content. A renderer may be capable of applying a gain to the sound content before causing the sound content to be played through a set of connected speakers. As used in this context, "applying a gain" to sound content means changing the amount of signal for the sound content before causing it to be played at the set of connected speakers. A renderer may determine the amount of gain to sound content before causing it to be played at the set of connected speakers based on a gain value. In some embodiments, the gain value that is associated with content by default is one (1), indicating that the renderer should not alter the signal strength values associated with the sound content when obtained by the renderer before causing the sound content to be played at the set of speakers at a media consumption site.2. STRUCTURAL AND FUNCTIONAL OVERVIEW

[0014] FIG. 1 illustrates an example media rendering system where the rendering logic is performed at a media consumption site. Media device 104 may be any media device capable of receiving audio content in an object-based or ring-based channel format and providing the appropriate amount of signal to a set of speakers. For example, media device 104 may include, but is not limited to, any of: a set top box, personal computer, a video game console, home theater receiver / amplifier, commercial theater sound system, a portable computing device such as a mobile telephone or tablet, etc. Media device 104 is located at a media consumption site 120, such as a movie theater or a home. Media device 104 may receive audio information comprising audio content from content source 102 located at a content publisher site 118.

[0015] In Figure 1, content source 102 comprises a spatial panner 124 that is capable of obtaining audio information in a format other than a ring-based channel format, such as an object-based format, and converting the audio information into a ring-based channel format. For example, spatial panner 124 may determine the appropriate amount of audio signal to send through each channel of a set of ring-based channels to properly simulate the playing of certain audio content at the particular position indicated in the object-based audio information. After determining the appropriate amount of audio signal to be sent through each channel in the set of ring-based channels for a particular content portion, spatial panner 124 may send a ring-based channel signal specification specifying an amount of audio signal for each of the ring-based channels to media device 104. Ring-based channel bitstream 116 may contain the ring-based channel signal specification.

[0016] Renderer 106 may determine an amount of audio signal to be played at each speaker of speakers 122 based on speaker configuration information 112 and the audio information received from content source 102. The audio information received by renderer 106 may be in object-based format or ring-based channel format, or both. For example, renderer 106 may concurrently receive an object-based bitstream 114 and ring-based channel bitstream 116, both containing content to be played at speakers 122.

[0017] Speaker configuration information 112 may indicate the number of speakers connected to media device 104 and the position of each speaker connected to media device 104. Speaker configuration information 112 may be stored at media device 104 or at a separate location accessible to media device 104 and may be updated periodically or automatically each time a speaker is disconnected or has its location or position changed.

[0018] Renderer 106 at media device 104 may adjust the gain of the received audio content based on audio information associated with the received audio content and speaker configuration 112. Speaker configuration 112 may indicate the position of the speakers at media consumption site 120.

[0019] Speaker decoder 110 may comprise logic for determining the appropriate amount of audio signal to send to each speaker of speakers 122 to play the received audio content at speakers 122. The amount of audio signal sent to each speaker for a content portion may be based on a gain value associated with the content portion. In Figure 1, the logic of speaker decoder 110 is performed after gain adjustment logic 108 so that the audio content is played at speakers 122 according to the adjusted gain level.

[0020] FIG. 2 illustrates an example media rendering system where the rendering logic is performed at a content publisher site 118. In Figure 1, gain adjustment logic 108 is performed by renderer 106 at a site located remote to the media consumption site 120, such as at the content publisher site 118. Renderer 106 may receive audio information in the object-based format and / or the ring-based channel format, as represented by object-based bitstream 114 and ring-based channel bitstream 116. Renderer 106 may adjust the gain of the incoming audio.

[0021] Channel decoder 202 at renderer 106 may convert the incoming audio to a different format that is supported by media device 204. For example, media device 204 may not comprise the software or hardware to render audio received in an object-based format or ring-based channel format. Channel decoder 202 may convert audio information from an object-based format or ring-based channel format to a channel-based format that is supported by media device 204. Channel-based bit stream 208 may represent the audio information sent to media device 204 after conversion.

[0022] The gain adjustment may be determined based on speaker configuration information 206. Speaker configuration information 206 may indicate the positioning of speakers 122 at media consumption site 120. For example, media device 204 may provide speaker configuration information to renderer 106. In other examples, speaker configuration information 206 may specify assumed positions of speakers 122. For example, certain channel-based formats may be associated with a certain configuration of speakers and speakers 122 may be assumed to be positioned according to a configuration associated with a certain channel-based format.

[0023] Media device 204 is located at media consumption site 120 and may be a device that comprises a channel-to-speaker converter 208, such as an amplifier. Channel-to-speaker converter 208 may determine the amount of signal to send to each of speakers 122 based on the audio information received from renderer 106 in channel-based bitstream 208.

[0024] One benefit of the system illustrated in FIG. 2 is that, by adjusting the gain at a content publisher site or some other site remote to the media consumption site, gain may be adjusted according to gain adjustment logic 108 even in systems where media device 204 does not have the proper hardware or software to implement renderer 106 or to perform gain adjustment logic 108.

[0025] The embodiments discussed herein could be implemented in any combination of the systems illustrated in FIG. 1 and FIG. 2, or in an altogether different system. For example, in some embodiments, the logic of renderer 106 may be performed at content source 102 for a first set of media devices that do not have the appropriate software or hardware to implement renderer 106. For the first set of media devices, content source 102 may send the audio information to media device of the first set in a channel-based format after rendering. The same content source 102 may also send content to a second set of media devices that do possess the appropriate software and hardware to implement renderer 106. For the second set of media devices, content source 102 may send audio information in an object-based or ring-based channel format to the media devices and the logic of renderer 106 may instead be performed at the second set of media devices.3. GAIN ADJUSTMENT FOR AUDIO IN OBJECT-BASED FORMAT

[0026] FIG. 3 illustrates an example process for determining a gain adjustment value for audio content based on object-based metadata associated with the audio content and the positions of a plurality of speakers at a media consumption site. The process illustrated in FIG. 3 may be performed at renderer 106.

[0027] At block 302, renderer 106 determines the positions of a plurality of speakers. The speaker position information may be retrieved from speaker configuration information 112 or 206. The plurality of speakers may include all of the speakers known or assumed to be connected to media device 204 or 104.

[0028] In some embodiments, a position of a speaker is indicated relative to a point or area at which a listener is expected to be located. In other embodiments, a position of a speaker is indicated relative to other locations, such as the location of a screen or projection area upon which image or video content accompanying the audio content may be displayed.

[0029] At block 304, renderer 106 determines a maximum adjustment value for content to be played at the plurality of speakers based on the positions of the plurality of speakers.

[0030] In an embodiment, each speaker of the plurality of speakers is categorized into a position category. For example, all speakers located more than three feet higher than a particular location in the Z dimension may be categorized as belonging to the position category of "elevation speakers." All speakers located more than a particular amount behind a particular location in the Y dimension may be categorized as belonging to the position category of "rear surround speakers." All speakers located less than a particular amount behind a particular location in the Y dimension and more than a particular amount to the left of a particular location in the X dimension categorized as belonging to the position category of "left surround speakers."

[0031] FIG. 5 illustrates an example classification of dimensions according to one embodiment. Screen 702 may represents a screen at which the visual media is displayed at the media consumption site. An object's location value corresponding to the X dimension 704 may indicate the amount of distance to the left or right of the center point of screen 702 at which the object is located. An object's location value corresponding to the Y dimension 706 may indicate the amount of distance behind screen 702 at which the object is located. An object's location value corresponding to the Z dimension 704 may indicate the amount of distance upwards or downward from a particular location at which the object is located. The particular location may be the expected- ear-level of the listener.

[0032] The maximum adjustment value may be determined based on the number of speakers in a set of one or more location categories. For example, if there are no speakers in the position category of "left surround speakers" and "right surround speakers" and no speakers in the position category of "elevation speakers," a maximum adjustment value of - 4.5 decibels (dB) may be selected for sound content to be played at the plurality of speakers. As another example, if there are greater than four speakers in the position categories of "left surround speakers" and "right surround speakers" but no speakers in the position category of "elevation speakers," a lower maximum adjustment value of negative three (-3) dB may be selected. In some embodiments, the maximum adjustment value may be 0 if there is at least a certain threshold amount of speakers in each position category. A maximum adjustment value of 0 dB may indicate that there should be no adjustment regardless of the position of a sound content portion.

[0033] In another embodiment, the maximum adjustment value may be determined by determining a first number of speakers in a top region, a second number of speakers in a lower region, and further based on a stored stereo adjustment value and a no-height adjustment value. In on embodiment, the speakers in the top region include all speakers that are located above a certain level, such as the expected ear-level of the listener. The speakers in the lower region may include all speakers that are both located below a certain height, such as the expected ear-level of the listener and that are located at least some distance away from the screen. In other embodiments, the boundaries of the top and lower region may be defined differently.

[0034] The stereo adjustment value and a no-height adjustment value may not be content-specific or configuration-specific. That is, the stereo adjustment value and the no-height adjustment value may not change based on the configuration of speakers or the position associated with any particular content. A stereo adjustment value may represent the maximum adjustment value to be applied for a stereo-only speaker configuration. A stereo-only speaker configuration is a configuration where there are no speakers more than a particular distance away from the screen. A no-height adjustment value may represent the maximum adjustment value to be applied for a configuration that includes one or more speakers at least a particular distance behind the expected location of the listener, and to the right and left of the expected location of the listener, but with no speakers located above a particular level, such as the expected ear-level of the listener.

[0035] To determine the maximum adjustment value, a maximum adjustment value corresponding to the lower region (maxAdjLow) and a maximum top adjustment value (maxAdjTop) corresponding to the top region may be determined. The maximum adjustment value corresponding to the lower region may be determined based on the stereo adjustment value (stereoAdj), the no-height adjustment value (noHeightAdj) and the number of speakers in the lower region (nLow) by evaluating Equation 1. The maximum adjustment value corresponding to the top region may be determined based on the stereo adjustment value (stereoAdj), the no-height adjustment value (noHeightAdj), and the number of speakers in the top region by evaluating Equation 2. maxAdjLow = noHeightAdj − stereoAdj * min nLow / 4 , 1 . maxAdjTop = − noHeightAdj * min nTop / 4 , 1 V = − stereoAdj − maxAdjLow − maxAdjTop

[0036] The maximum adjustment value (maxAdjValue) may be determined by evaluating Equation 3 to determine value V. As illustrated in Equation 4 below, the maximum adjustment value may be the value V if the value is less than 0. If the value V is greater than 0, the maximum adjustment value may be 0 indicating that there should not be any adjustment to the gain. maxAdjValue = min 0 V

[0037] The maximum adjustment value may be determined based on the speaker configuration in different ways according to different embodiments.

[0038] At block 306, renderer 106 determines, for each dimension of one or more dimensions, a start effect location and a full effect location based on the positions of the plurality of speakers. If the position corresponding to a sound content portion is located before the start effect location in a particular dimension, there may not be any gain adjustment based on the position's location in the particular dimension. All positions located on or after the full effect location in a particular dimension may be associated with the same maximum gain adjustment amount associated with the particular dimension. For example, a start effect location corresponding to the Y dimension may be 0.2 and the full effect location corresponding to the Y dimension may be 0.9. Any sound content portion being located past location 0.9 in the Y dimension may receive the same amount of gain adjustment based on its location in the Y dimension. Any sound content portion whose position is located before location 0.2 in the Y dimension may not receive a gain adjustment based on its position in the Y dimension.

[0039] At block 308, renderer 106 receives an audio item comprising at least one sound content portion and position metadata indicating a location in a virtual sound plane at which the sound content portion is intended to play. For example, an audio item received by renderer 106 may include a particular content portion and position metadata indicating that the particular content portion is to be played at a location of {0, 6, 8} relative to a particular location in the virtual sound plane, such as the location at which a listener is expected to be located. The audio item may comprise a plurality of sound content portions and different metadata items corresponding to each of the sound content portions, where the position metadata items indicates different location for each of the sound content portions.

[0040] The audio item may be one of a plurality of audio items received at media device 104 or media device 204. Media device 104 may receive different sound content portion belonging to the same mix, and the amount of gain adjustment applied to the different sound content portions of the same mix may be different. A mix may comprise different sound content portions, which each correspond to different positions but are associated with the same time. The different sound content portions may be included in the same audio items or different audio items. The different sound content portions may be intended to be played at the same time concurrently with the display of associated visual media. For example, a first sound content portion may comprise the soundtrack component of a movie and a second sound content portion may comprise the dialog portion of the movie. The first sound content portion may be associated with a different position than the second sound content portion and, as a result, may be assigned a different gain adjustment value.

[0041] In some embodiment, an audio item may comprise metadata indicating a scaling factor adjustment value. At block 310, if the received audio item contains a scaling factor adjustment value, renderer 106 adjusts the maximum gain adjustment value based on the scaling factor adjustment values. For example, a content producer may realize that due to the position corresponding to particular content, a gain that reduces the signal associated with the particular content is likely to be applied by renderer 106 before the content is sent to the speakers if the number of speakers is small. The particular content may comprise sound that the producer considers important, such as sound relating to dialog or action occurring on the screen. In such a situation, the content producer may wish to override the behavior of renderer 106. The content producer may do so by specifying a scaling factor adjustment value of 0.5. A scaling factor adjustment value of 0.5 may cause renderer 106 to reduce the maximum amount of gain adjustment that may be applied by limiting the maximum adjustment values to half of what would otherwise have been the maximum adjustment value.

[0042] At block 312, renderer 106 determines a first-dimension scaling factor based on the start effect location and full effect location corresponding to the first dimension and the position of the sound content in the first dimension of the virtual sound plane. In an embodiment, a first-dimension scaling factor is determined according to Equation 5. gY = clamp pos Y − startEffectY / fullEffectY − startEffectY

[0043] In Equation 5, g(Y) represents the first-dimension scaling factor, pos(y) represents the position of the sound content portion in the Y dimension, startEffectY represents the start effect location associated with the Y dimension, fullEffect Y represents the full effect location associated with the Y dimension.

[0044] Clamp() is a function that causes the first-dimension scaling factor, g(Y), to be a value between 0 and 1 by setting g(Y) to 0 if the expression (pos(Y) - startEffectY ) / (fullEffectY-startEffectY) is less than 0 and setting g(Y) to 1 if the expression (pos(Y) - startEffectY) / (fullEffectY-startEffectY) is greater than 1.

[0045] In some embodiments, position values, such as pos(Y) may be normalized to be a value between 0 and 1 or between -1 and 1 before computing the result of Equation 5.

[0046] Equation 5 illustrates merely one example method for determining a first-dimension scaling factor; other embodiments may determine the first-dimension scaling factor in other ways.

[0047] At block 314, renderer 106 determines a second-dimension scaling factor based on the start effect location and full effect location corresponding to the second dimension and the position of the sound content in the second dimension of the virtual sound plane. The second dimension may be the Z dimension or the X dimension. The expression for calculating scaling factor may be the same or different for different dimensions. In some embodiments, a dimension scaling factor may be calculated for each of the X, Y, and Z dimensions. In other embodiments, dimension scaling factor may only be calculated for the Y and Z dimensions.

[0048] At block 316, renderer 106 determines a final gain adjustment value based on the first-dimension scaling factor and the second-dimension scaling factor and the maximum adjustment value. In an embodiment, the final gain adjustment value is determined by adding together the first-dimension scaling factor and the second-dimension scaling factor and normalizing the result to be between 0 and 1 by replacing the sum with 1 if it is greater than 1. The resulting summed scaling factor may be used to scale the maximum adjustment value. In an embodiment, the final gain adjustment value is determined according to Equation 6. determinedAdj = − maxAdj ∗ clamp gY + gZ

[0049] In Equation 6, determinedAdj represents the final gain adjustment value, maxAdj represents the maximum adjustment value, gY represents the first-dimension scaling factor, and gZ represents the second-dimension scaling factor. The final gain adjustment value may be a decibel value.

[0050] At block 318, renderer 106 adjusts the gain value for the sound content portion according to the determined gain adjustment value. In some embodiments, adjusting the gain may comprise multiplying the original gain value by the final gain adjustment value. For example, if the final gain adjustment value is 0.6 and the original gain value is 1, the gain may be lowered to the adjusted gain value of 0.6.

[0051] In some embodiments, the adjusted gain value associated with the certain content portion affects the amount of signal sent to speakers 122 if the rendering logic is performed at media device 104 or to media device 104 if the rendering logic is performed at renderer 106 in FIG. 2. For example, if the adjusted gain value corresponding to a particular content portion is 0.6 voltage gain, renderer 106 may send only sixty (60) percent of the amount of signal originally associated with the particular content portion when received by renderer 106. The amount of signal originally associated with the particular content portions may be indicated in object-based bitstream 114 or ring-based channel bitstream 116 received at media device 104. The adjusted amount of signal associated with the particular content portions may be indicated in channel-based bitstream 208 in FIG. 2 or the signals sent to speakers 122 in FIG. 1.

[0052] In the system illustrated in FIG. 1, after the adjustment of the gain value, speaker decoder 110 may determine the amount of signal to send to each speaker of speakers 122. In the system illustrated in FIG. 2, channel decoder 202 may determine the amount of signal to associate with each channel of a set of channels.

[0053] In the process of FIG. 3, the maximum adjustment value and the start effect location and the full effect location for each of the dimensions may be a function of the positions of speakers 122. The steps of blocks 304 and 306 may be performed each time renderer 106 learns of a speaker configuration change, such as when a speaker is disconnected or moved.

[0054] The first-dimension scaling factor and second-dimension scaling factor may be determined based in part on the position of a content portion. The steps of blocks 312-318 may be repeated for each content portion to determine the gain adjustment value applicable to the content portion.

[0055] FIG. 4 illustrates another example process for determining a gain adjustment value for audio content based on object-based metadata associated with the audio content and the positions of a plurality of speakers at the media consumption site. The process illustrated in FIG. 4 may be performed at renderer 106.

[0056] At block 402, renderer 106 determines the positions of a plurality of speakers. At block 404, renderer 106 determines, based on the positions of the plurality of speakers, a first scaling factor and a first maximum adjustment value for a first dimension and a second scaling factor and a second maximum adjustment value for a second dimension.

[0057] For example, a first scaling factor and a first maximum adjustment value may correspond to the y-dimension. A location value corresponding to the y-dimension may indicate the amount of distance forward or backward from a particular location in the y-dimension, such as the expected location of a listener. A second scaling factor and a second maximum adjustment value may correspond to the z-dimension. A location value corresponding to the z-dimension may indicate the amount of distance upwards or downwards from a particular location, such as the expected ear-level of the listener. In some embodiments, there may also be a third scaling factor and a third maximum adjustment value corresponding to an x-dimension. A location value corresponding to the x-dimension may indicate the amount of distance to the right or to the left of a particular location, such as the middle of the screen.

[0058] In an embodiment, each speaker of the plurality of speakers is categorized into a position category based on the position of the speaker. The first scaling factor and the first maximum adjustment value corresponding to a first dimension may be determined based on the number of speakers in a first set of one or more position categories and the second scaling factor and the second maximum adjustment value corresponding to a second dimension may be determined based on the number of speakers in a different set of one or more position categories.

[0059] For example, the first scaling factor and the first maximum adjustment value corresponding to the Z-dimension may be determined based on the number of speakers belonging to the position category of "elevation speakers." If there are no speakers belonging to the position category of "elevation speakers," the first scaling factor corresponding to the Z-dimension may be negative three (-3), indicating that the gain is to be reduced by three (3) decibels, and the corresponding first maximum adjustment value may be negative three (-3). In some embodiments, the maximum adjustment values may be different than the scaling factors. If there are between three (3) and six (6) speakers belonging to the position category of "elevation speakers," the first scaling factor corresponding to the Z-dimension may be -1.5 and the corresponding first maximum adjustment value may be -1.5. If there are more than six (6) speakers belonging to the position category of "elevation speakers," the first scaling factor corresponding to the Z-dimension may be zero (0) and the corresponding first maximum adjustment value may be zero (0), indicating that the gain is not to be changed.

[0060] The second scaling factor and the second maximum adjustment value corresponding to the Y-dimension may be based on the number of speakers belonging to the position category of "rear surround speakers."

[0061] In other embodiments, a single adjustment value may be determined rather than a separate adjustment value for each dimension. For example, based on a determination that there are no speakers assigned to the position category of "elevation speakers" and there are three (3) speakers assigned the position category of "rear surround speakers," renderer 106 may determine an adjustment value of -1.5, which does not correspond to any specific dimension.

[0062] At block 406, renderer 106 receives an audio item comprising at least one sound content portion and position metadata indicating a location in a virtual sound plane at which the sound content portion is intended to play. The audio item may be one of a plurality of audio items received at media device 104 or media device 204.

[0063] In some embodiments, an audio item may comprise metadata indicating a scaling factor adjustment value. At block 408, if the received audio item contains scaling factor adjustment value(s), renderer 106 adjusts the first maximum adjustment value and the second maximum adjustment value based on the scaling factor adjustment value(s). In some embodiments, the audio metadata may specify two or three scaling factor adjustment values, where each scaling factor adjustment value corresponds to a particular dimension and the maximum adjustment corresponding to each dimension may be scaled according to the corresponding scaling factor adjustment value. In other embodiments, the audio metadata may specify a single scaling factor adjustment value, which corresponds to all dimensions and the maximum adjustment value corresponding to each dimension may be scaled according to the single scaling factor adjustment value.

[0064] At block 410, renderer 106 determines a first-dimension gain adjustment value based on the first scaling factor and the position of the sound content in the first dimension. In one embodiment, the first-dimension gain adjustment value may be determined by multiplying the position of the sound content in the first dimension by the first scaling factor. The positions may be normalized to be a number between 0 and 1 before multiplication. For example, if the position of the sound content is {0.5, 0,1, 0.2} and the first scaling factor is 0.6, the first-dimension gain adjustment value may be determined to be 0.3 by multiplying together 0.5, the position of the sound content in the first dimension, and 0.6. Other embodiments may determine the first-dimension gain adjustment value in other ways.

[0065] At block 416, renderer 106 determines a second-dimension gain adjustment value based on the second scaling factor and the position of the sound content in the second dimension, which may be determined using a similar approach as described in relation to block 410.

[0066] At block 412, renderer 106 determines whether the first-dimension gain adjustment value exceeds the first maximum gain adjustment value. If the first-dimension gain adjustment value exceeds the first maximum adjustment value, the process proceeds to block 414 and renderer 106 uses the first maximum adjustment value as the first-dimension gain adjustment value. In an embodiment where the maximum adjustment value and the dimension gain adjustment values are both negative numbers, the dimension gain adjustment value may be considered as exceeding the maximum adjustment value if the absolute value of the dimension gain adjustment values is greater than the absolute value of the maximum adjustment value.

[0067] For example, the maximum gain adjustment value for the first dimension may be negative two (-2). The first-dimension gain adjustment value may be determined to be negative five (-5). In such a case, the maximum gain adjustment value of negative two (-2) may be considered as exceeding the maximum gain adjustment value of negative five (-5), and the maximum gain adjustment value of negative five (-5) may be used in place of the first-dimension gain adjustment value during the step of determining a final gain adjustment value depicted in block 422. Otherwise the process proceeds to block 322 without the replacing the first-dimension gain adjustment value with the maximum gain adjustment value.

[0068] At block 418, renderer 106 determines whether the second-dimension gain adjustment value exceeds the second maximum adjustment value. If the second-dimension gain adjustment value exceeds the second maximum adjustment value, the process proceeds to block 420 and renderer 106 uses the second maximum adjustment value as the second-dimension gain adjustment value. Otherwise the process proceeds to block 422 without the replacing the first-dimension gain adjustment value with the maximum gain adjustment value.

[0069] At block 422, renderer 106 determines a final gain adjustment value based on the first-dimension gain adjustment value and the second-dimension gain adjustment value. The first-dimension gain adjustment value and the second-dimension gain adjustment value may be combined in different ways according to different embodiments. In one embodiment, the first-dimension gain adjustment value and the second-dimension gain adjustment value are first each converted from decibel values to voltage gain amounts and then multiplied together.

[0070] For example, a first-dimension gain adjustment value of negative three (-3) and a second-dimension gain adjustment value of negative two (-2) may be converted to voltage gain amounts of 0.71 and 0.79 respectively before being multiplied together.

[0071] At block 424, renderer 106 adjusts the gain value for the sound content portion according to the determined gain adjustment value.

[0072] In the process of FIG. 4, the scaling factors and maximum adjustment values may be a function of the positions of speakers 122. The steps of blocks 402 and 404 may be performed each time speaker configuration information 112 or 206 changes, such as when a speaker is disconnected or moved. The steps of blocks 406-424 may be repeated for each content portion to determine the gain adjustment value applicable to the content portion.4. IMPLEMENTATION MECHANISM - HARDWARE OVERVIEW

[0073] According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, televisions, wearable computing devices, networking devices or any other device that incorporates hard-wired and / or program logic to implement the techniques.

[0074] For example, FIG. 6 is a block diagram that illustrates a computer system 800 upon which an embodiment of the invention may be implemented. Computer system 800 includes a bus 802 or other communication mechanism for communicating information, and a hardware processor 804 coupled with bus 802 for processing information. Hardware processor 804 may be, for example, a general purpose microprocessor.

[0075] Computer system 800 also includes a main memory 806, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 802 for storing information and instructions to be executed by processor 804. Main memory 806 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 804. Such instructions, when stored in non-transitory storage media accessible to processor 804, render computer system 800 into a special-purpose machine that is customized to perform the operations specified in the instructions.

[0076] Computer system 800 further includes a read only memory (ROM) 808 or other static storage device coupled to bus 802 for storing static information and instructions for processor 804. A storage device 810, such as a magnetic disk, optical disk, or solid-state drive is provided and coupled to bus 802 for storing information and instructions.

[0077] Computer system 800 may be coupled via bus 802 to a display 812, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 814, including alphanumeric and other keys, is coupled to bus 802 for communicating information and command selections to processor 804. Another type of user input device is cursor control 816, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 804 and for controlling cursor movement on display 812. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.

[0078] In some embodiments, a customer interacts with computer system 800 via touch, for example, by tapping or gesturing over certain locations. A display screen of display 812 may also be capable of detecting touch.

[0079] Computer system 800 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and / or program logic which in combination with the computer system causes or programs computer system 800 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 800 in response to processor 804 executing one or more sequences of one or more instructions contained in main memory 806. Such instructions may be read into main memory 806 from another storage medium, such as storage device 810. Execution of the sequences of instructions contained in main memory 806 causes processor 804 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

[0080] The term "storage media" as used herein refers to any non-transitory media that store data and / or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and / or volatile media. Non-volatile media includes, for example, optical disks, magnetic disks, or solid-state drives, such as storage device 810. Volatile media includes dynamic memory, such as main memory 806. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.

[0081] Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 802. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.

[0082] Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 804 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 800 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 802. Bus 802 carries the data to main memory 806, from which processor 804 retrieves and executes the instructions. The instructions received by main memory 806 may optionally be stored on storage device 810 either before or after execution by processor 804.

[0083] Computer system 800 also includes a communication interface 818 coupled to bus 802. Communication interface 818 provides a two-way data communication coupling to a network link 820 that is connected to a local network 822. For example, communication interface 818 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 818 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 818 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

[0084] Network link 820 typically provides data communication through one or more networks to other data devices. For example, network link 820 may provide a connection through local network 822 to a host computer 824 or to data equipment operated by an Internet Service Provider (ISP) 826. ISP 826 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 828. Local network 822 and Internet 828 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 820 and through communication interface 818, which carry the digital data to and from computer system 800, are example forms of transmission media.

[0085] Computer system 800 can send messages and receive data, including program code, through the network(s), network link 820 and communication interface 818. In the Internet example, a server 830 might transmit a requested code for an application program through Internet 828, ISP 826, local network 822 and communication interface 818.

[0086] The received code may be executed by processor 804 as it is received, and / or stored in storage device 810, or other non-volatile storage for later execution.

Claims

1. A method for rendering an object-based audio item, the method comprising: receiving speaker configuration information; receiving (308) the object-based audio item comprising at least one sound content portion and position metadata indicating a location in a virtual sound plane at which the sound content portion is intended to play; determining (312) a first dimension gain scaling factor, wherein the first dimension gain scaling factor corresponds to a first dimension; determining (314) a second dimension gain scaling factor, wherein the second dimension gain scaling factor corresponds to a second dimension, wherein the second dimension is different than the first dimension; determining (316), based on the first and second gain scaling factors and the content position, a gain adjustment value for the sound content portion; rendering (106) the sound content portion according to the gain adjustment value.

2. The method of claim 1, further comprising: normalizing based on a number of speakers and independent of the position metadata, the gain adjustment value, wherein the normalizing is based on determining that the gain adjustment value exceeds a maximum gain adjustment value.

3. An apparatus comprising a processor and configured to perform the method of claim 1 or 2.

4. A non-transitory computer readable medium, storing software instructions, which when executed by one or more processors cause performance of any one of the methods recited in claims 1-2.