Searching for efficient loudspeaker surfaces for multi-channel loudspeaker systems

A computationally efficient method for selecting loudspeaker triads in VBAP by dividing the 3D loudspeaker configuration into virtual surfaces and using a combined azimuth-based and general 3D search strategy addresses the inefficiencies of existing methods, enabling effective spatial audio rendering on devices with limited resources.

JP7842228B2Active Publication Date: 2026-04-07NOKIA TECHNOLOGIES OY
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-01-18
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

Existing methods for determining the correct loudspeaker triad in vector-based amplitude panning (VBAP) are computationally demanding and require significant processing power or memory, making them unsuitable for devices with limited resources, such as mobile user terminals, and existing table-based methods are inefficient for traversing triangle values.

Method used

A computationally efficient method for selecting loudspeaker triads in VBAP that involves dividing the 3D loudspeaker configuration into virtual surfaces, using a triangulation algorithm that allows loudspeaker triads to intersect horizontal planes, and employing a search method that requires less storage and processing power, utilizing a combination of azimuth-based and general 3D search strategies.

Benefits of technology

The proposed method reduces computational demands and storage requirements, enabling efficient runtime selection of loudspeaker triads in VBAP, suitable for devices with limited resources while maintaining effective spatial audio rendering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007842228000016
    Figure 0007842228000016
  • Figure 0007842228000017
    Figure 0007842228000017
  • Figure 0007842228000018
    Figure 0007842228000018
Patent Text Reader

Abstract

An apparatus for decoding and rendering spatial audio signals associated with a plurality of speaker nodes arranged in a three-dimensional space having a virtual surface arrangement including a plurality of virtual surfaces, the apparatus determining an azimuth angle for each virtual surface of a virtual surface set, and arranging the virtual surfaces of the virtual surface set in an order based on the azimuth angle to provide an ordered virtual surface set, the apparatus then associating the virtual surfaces of the ordered virtual surface set with search sectors, and searching the ordered virtual surface set, starting from the associated virtual surface of the search sector, to determine virtual surfaces surrounding a target panning direction.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application relates to an apparatus and method for spatial sound reproduction using a multi-channel loudspeaker system. This application includes, but is not limited to, a system in which the multi-channel loudspeaker configuration is a virtual multi-channel loudspeaker configuration. [Background technology]

[0002] Parametric spatial speech processing is a field of speech signal processing in which the spatial characteristics of sound are represented using a set of parameters. For example, in parametric spatial speech capture from a microphone array, a standard and effective option is to estimate a set of parameters from the microphone array signal, such as the direction of the sound within a frequency band and ratio parameters representing the relative energy of the directional and non-directional parts of the captured sound within the frequency band. These parameters are known to adequately represent the perceptual spatial characteristics of the sound captured at the microphone array's position. Therefore, these parameters can be used in the synthesis of spatial sound for headphone binaural, loudspeaker, or other forms such as ambisonics.

[0003] Therefore, the ratio of directional and directivity energy to total energy within the frequency band is a particularly effective parameterization for spatial speech capture.

[0004] A parameter set consisting of directional parameters within a frequency band and energy ratio parameters within a frequency band (indicating the ratio of directional acoustic energy) can also be used as spatial metadata for an audio codec. For example, these parameters can be estimated from an audio signal captured by a microphone array, and a stereo signal can be generated from the microphone array signal transmitted along with the spatial metadata. The stereo signal can then be encoded, for example, using an AAC encoder. A decoder can decode the audio signal into a PCM signal and process the sound within the frequency band (using the spatial metadata) to obtain a spatial output (e.g., a binaural output).

[0005] Spatial audio signal reproduction (spatial sound reproduction) typically requires positioning sound in a specific direction within a 3D space. These directions may be automatically obtained, for example, from acoustic scene parameters, or they may be set by the user. Vector-based amplitude panning (VBAP) is a common method for positioning spatial audio signals using loudspeaker settings.

[0006] VBAP is typically based on the following: (1) Divide the loudspeaker settings into triangles, either automatically or manually. (2) Selecting an appropriate triangle based on the direction (such that three loudspeakers are selected that form a triangle in which the given direction is contained, with respect to the given direction), and (3) Calculate the gain based on the orientation of three loudspeakers that form a specific triangle. [Overview of the Initiative]

[0007] According to a first embodiment, an apparatus is provided for decoding and rendering spatial audio signals associated with a plurality of speaker nodes arranged in a three-dimensional space having a virtual surface arrangement comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces having corners positioned at least three speaker nodes, the virtual surface arrangement being at least partially defined by a set of virtual surfaces comprising the plurality of virtual surfaces, each of the plurality of virtual surfaces being referenced by a reference means, the apparatus determining an azimuth angle for each virtual surface of the set of virtual surfaces, and arranging the virtual surfaces of the set of virtual surfaces in an order based on the determined azimuth angles. The system is configured to perform the following: provide a set of virtual surfaces; determine at least two search sectors, each of which occupies a range of azimuth angles; associate a virtual surface of the ordered set of virtual surfaces with each of the at least two search sectors; obtain a target panning direction that includes at least a target azimuth angle; determine a search sector from the at least two search sectors based on the target azimuth angle; and search the ordered set of virtual surfaces, starting from the associated virtual surface of the determined search sector, to determine a virtual surface that surrounds the target panning direction.

[0008] The means of reference can be an index.

[0009] A device configured to determine a virtual surface surrounding a target panning direction by searching an ordered set of virtual surfaces, starting from the associated virtual surface of a determined search sector, may further be configured to determine an initial search index of the determined search sector, which is the index of the associated virtual surface of the determined search sector; to determine a set of panning gains for at least three speaker nodes of the associated virtual surface of the determined search sector; and to determine that the associated virtual surface surrounds a target panning direction if each panning gain is non-negative of the set of panning gains for at least three speaker nodes of the associated virtual surface of the determined sector.

[0010] If at least one panning gain of the set of speaker node panning gains on the associated virtual surface of the determined search sector is non-negative, the device uses the index on one side of the initial search index to order the virtual surface The device may further be configured to select additional virtual surfaces from the set, determine a set of panning gains for at least three speaker nodes of the additional virtual surfaces, and determine that the additional virtual surfaces surround a target panning direction if each panning gain is non-negative in the set of panning gains for at least three speaker nodes of the additional virtual surfaces, and if at least one panning gain in the set of panning gains for at least three speaker nodes of the additional virtual surfaces is not non-negative, the device uses an index on the opposite side of the initial search index to order virtual surfaceThe system may be further configured to select an additional virtual surface from the set, determine a set of panning gains for at least three speaker nodes of the additional virtual surface, and determine that the additional virtual surface surrounds a target panning direction if each panning gain is non-negative of the set of panning gains for at least three speaker nodes of the additional virtual surface.

[0011] Each of the multiple virtual surfaces may be defined by at least three vectors, each pointing to one of at least three speaker nodes, and a device configured to determine the azimuth angle for each virtual surface in the set of virtual surfaces may be configured to perform, for each virtual surface, the vector sum of at least three vectors, and for each virtual surface, the azimuth angle as the angle of the vector sum projected onto the xy-plane.

[0012] The azimuth angle of the associated virtual surface is the boundary angle of the determined search sector, and the device configured to search an ordered set of virtual surfaces, starting from the associated virtual surface of the determined search sector, to determine the virtual surfaces surrounding the target panning direction may be configured to determine whether the target azimuth angle is less than the azimuth angle of the associated virtual surface, and if the target azimuth angle is less than the azimuth angle of the associated virtual surface, the device may be configured to determine that the associated virtual surface surrounds the target panning direction and to determine a set of panning gains for at least three speaker nodes of the associated virtual surface of the determined search sector, and if the target azimuth angle is greater than or equal to the azimuth angle of the associated virtual surface, the device may be configured to determine that further virtual surfaces surround the target panning direction and to determine a set of panning gains for at least three speaker nodes of the further virtual surfaces, provided that the target azimuth angle is less than the boundary azimuth angle of any further virtual surface in the ordered set of virtual surfaces.

[0013] Each of the plurality of virtual surfaces may be defined by at least three vectors respectively indicating one of at least three speaker nodes, and an apparatus configured to determine an azimuth angle for each virtual surface of a set of virtual surfaces may, for each virtual surface, determine a first azimuth angle of a first vector of at least three vectors, and for each virtual surface, determine a second azimuth angle of a second vector of at least three vectors, and for each virtual surface, be configured to select the azimuth angle as the larger of the first azimuth angle and the second azimuth angle.

[0014] The apparatus may further be configured to obtain an elevation angle of a horizontal plane in a three-dimensional space, where some of the plurality of speaker nodes are located on this horizontal plane, and to create an elevation angle range between a minimum elevation angle and the elevation angle of the horizontal plane.

[0015] The apparatus may further be configured to create a further elevation angle range between the elevation angle of the horizontal plane and a maximum elevation angle.

[0016] The apparatus may further be configured to obtain a further elevation angle of a further horizontal plane in a three-dimensional space, where further some of the plurality of speaker nodes are located on this further horizontal plane, and to create a further elevation angle range between the elevation angle of the horizontal plane and the further elevation angle of the further horizontal plane.

[0017] The apparatus may further be configured to create an even further elevation angle range between the further elevation angle of the further horizontal plane and the maximum elevation angle.

[0018] The apparatus may further be configured to assign a set of virtual surfaces to one of the elevation angle range, the further elevation angle range, and the even further elevation angle range by mapping an elevation angle associated with the set of virtual surfaces to one of the elevation angle range, the further elevation angle range, and the even further elevation angle range.

[0019] The target panning direction may further include a target elevation angle, and the device may be further configured to determine that the target elevation angle is within one of an elevation range, a further elevation range, and an even further elevation range, and to give the determined elevation range.

[0020] Multiple virtual surfaces, each having corners positioned at at least three of the multiple speaker nodes, may have edges connecting pairs of corners configured so as not to intersect with the horizontal plane in three-dimensional space.

[0021] Alternatively, multiple virtual surfaces, each having corners positioned at at least three speaker nodes, may have edges connecting pairs of corners configured not to intersect with further horizontal planes in three-dimensional space.

[0022] The order of the virtual surfaces in the set of virtual surfaces may be in increasing order of the determined azimuth angles of the virtual surfaces.

[0023] The virtual surface may be a triad of loudspeakers, each containing three vectors that point to the corners of the triad of loudspeakers.

[0024] According to a second aspect, a method is provided for decoding and rendering spatial audio signals associated with a plurality of speaker nodes arranged in a three-dimensional space having a virtual surface arrangement comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces having corners positioned at least three speaker nodes, the virtual surface arrangement being at least partially defined by a set of virtual surfaces comprising the plurality of virtual surfaces, each of the plurality of virtual surfaces being referenced by a reference means, and this method is

[0025] The method includes determining an azimuth angle for each virtual surface in a set of virtual surfaces, arranging the virtual surfaces in the set of virtual surfaces in an order based on the determined azimuth angles to give an ordered set of virtual surfaces, determining at least two search sectors such that each of the at least two search sectors occupies a range of azimuth angles, associating the virtual surfaces of the ordered set of virtual surfaces with each of the at least two search sectors, obtaining a target panning direction that includes at least a target azimuth angle, determining a search sector from the at least two search sectors based on the target azimuth angle, and searching the ordered set of virtual surfaces, starting from the associated virtual surfaces of the determined search sectors, to determine the virtual surfaces surrounding the target panning direction.

[0026] The means of reference is an index.

[0027] Determining a virtual surface surrounding a target panning direction by searching an ordered set of virtual surfaces, starting from the associated virtual surface of a determined search sector, may further include determining the initial search index of the determined search sector, which is the index of the associated virtual surface of the determined search sector; determining a set of panning gains for at least three speaker nodes of the associated virtual surface of the determined search sector; and determining that the associated virtual surface surrounds a target panning direction if each panning gain is non-negative of the set of panning gains for at least three speaker nodes of the associated virtual surface of the determined sector.

[0028] If at least one panning gain of the set of speaker node panning gains on the associated virtual surface of the determined sector is non-negative, this method uses an index on one side of the initial search index to order virtual surfaceThe method may further include selecting additional virtual surfaces from the set, determining a set of panning gains for at least three speaker nodes of the additional virtual surfaces, and determining that the additional virtual surfaces surround a target panning direction if each panning gain is non-negative of the set of panning gains for at least three speaker nodes of the additional virtual surfaces, and if at least one panning gain of the set of panning gains for at least three speaker nodes of the additional virtual surfaces is not non-negative, the method uses an index on the opposite side of the initial search index to order virtual surface This may further include selecting an even more virtual surface from the set, determining a set of panning gains for at least three speaker nodes of the even more virtual surface, and determining that the even more virtual surface surrounds a target panning direction if each panning gain is non-negative in the set of panning gains for at least three speaker nodes of the even more virtual surface.

[0029] Each of the multiple virtual surfaces may be defined by at least three vectors, each pointing to at least one of three speaker nodes, and determining the azimuth angle for each virtual surface in the set of virtual surfaces may further include determining the vector sum of at least three vectors for each virtual surface, and determining the azimuth angle for each virtual surface as the angle of the vector sum projected onto the xy-plane.

[0030] The azimuth angle of the associated virtual surface may be the boundary angle of the determined search sector, and determining the virtual surface surrounding the target panning direction by searching an ordered set of virtual surfaces, starting from the associated virtual surface of the determined search sector, may further include determining whether the target azimuth angle is less than the azimuth angle of the associated virtual surface, if the target azimuth angle is less than the azimuth angle of the associated virtual surface, the method may further include determining that the associated virtual surface surrounds the target panning direction and determining a set of panning gains for at least three speaker nodes of the associated virtual surface of the determined search sector, if the target azimuth angle is greater than or equal to the azimuth angle of the associated virtual surface, the method may further include determining that a further virtual surface surrounds the target panning direction, if the target azimuth angle is less than the boundary azimuth angle of a further virtual surface in the ordered set of virtual surfaces, and determining a set of panning gains for at least three speaker nodes of the further virtual surface.

[0031] Each of the multiple virtual surfaces may be defined by at least three vectors, each pointing to one of at least three speaker nodes, and determining the azimuth angle for each virtual surface in the set of virtual surfaces may include, for each virtual surface, determining a first azimuth angle of a first vector from the at least three vectors, for each virtual surface, determining a second azimuth angle of a second vector from the at least three vectors, and for each virtual surface, selecting an azimuth angle as the larger of the first and second azimuth angles.

[0032] This method involves obtaining the elevation angle of a horizontal plane in three-dimensional space, where some of several speaker nodes are located on this horizontal plane, and may further include creating an elevation angle range between the minimum elevation angle and the elevation angle of the horizontal plane.

[0033] This method may further include creating a range of elevation angles between the horizontal elevation angle and the maximum elevation angle.

[0034] This method involves obtaining the elevation angles of further horizontal planes in three-dimensional space, such that some of the speaker nodes are located on these further horizontal planes, and may further include creating a range of further elevation angles between the elevation angles of the horizontal planes and the elevation angles of the further horizontal planes.

[0035] This method may further include creating an even wider range of elevation angles between the further horizontal elevation angles and the maximum elevation angle.

[0036] This method may further include assigning a virtual surface set to one of an elevation range, an additional elevation range, and an even further elevation range by mapping the elevation angles associated with the virtual surface set to one of an elevation range, an additional elevation range, and an even further elevation range.

[0037] The target panning direction may further include the target elevation angle, and this method may further include determining that the target elevation angle is within one of the elevation range, further elevation ranges, and even further elevation ranges, and giving the determined elevation range.

[0038] Multiple virtual surfaces, each having corners positioned at at least three of the multiple speaker nodes, may have edges connecting pairs of corners configured so as not to intersect with the horizontal plane in three-dimensional space.

[0039] Multiple virtual surfaces, each having corners positioned at at least three speaker nodes, may have edges connecting pairs of corners configured so as not to intersect with further horizontal planes in three-dimensional space.

[0040] The order of the virtual surfaces in the set of virtual surfaces may be in increasing order of the determined azimuth angles of the virtual surfaces.

[0041] The virtual surface may be a triad of loudspeakers, each containing three vectors that point to the corners of the triad of loudspeakers.

[0042] According to a third aspect, an apparatus is provided for decoding and rendering spatial audio signals associated with a plurality of speaker nodes arranged in a three-dimensional space having a virtual surface arrangement comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces having corners positioned at least three speaker nodes, the virtual surface arrangement being at least partially defined by a set of virtual surfaces comprising the plurality of virtual surfaces, each of the plurality of virtual surfaces being referenced by a reference means, the apparatus comprising at least one processor and at least one memory containing computer program code, the at least one memory and the computer program code together with the at least one processor determining the azimuth angle for each virtual surface of the set of virtual surfaces The system is configured to at least perform the following: determine, arrange the virtual surfaces of the virtual surface set in an order based on the determined azimuth angle to give an ordered virtual surface set, determine at least two search sectors, each of which occupies a range of azimuth angles, associate the virtual surfaces of the ordered virtual surface set with each of the at least two search sectors, obtain a target panning direction that includes at least a target azimuth angle, determine a search sector from the at least two search sectors based on the target azimuth angle, and search the ordered virtual surface set starting from the associated virtual surface of the determined search sector to determine the virtual surfaces surrounding the target panning direction.

[0043] Non-temporary computer-readable media include program instructions for causing the device to perform the methods described above.

[0044] The device is configured to perform the operation described above.

[0045] A computer program contains program instructions that cause a computer to perform the actions described above.

[0046] A computer program product stored on a medium may cause the device to perform the actions described herein.

[0047] The electronic device may include any apparatus as described herein.

[0048] The chipset may include devices such as those described herein.

[0049] The embodiments of this application aim to address problems related to cutting-edge technology.

[0050] To better understand this application, references are made here to the attached drawings as an example. [Brief explanation of the drawing]

[0051] [Figure 1] This diagram schematically illustrates an example of vector-based amplitude panning, including a triad of loudspeakers and an active triangle. [Figure 2] This diagram schematically illustrates the triangulation of vector-based amplitude panning. [Figure 3] This figure schematically shows the triangulation of further vector-based amplitude panning generated using the previous method. [Figure 4] This figure schematically illustrates the amplitude panning gain determination process according to one embodiment. [Figure 5] This figure shows a flowchart illustrating an exemplary method for selecting a search method for a set of three loudspeakers, according to some embodiments. [Figure 6] This figure shows a flowchart illustrating an exemplary method for preparing a set of three loudspeakers for searching for a set of three loudspeakers, according to some embodiments. [Figure 7]This figure shows a flowchart of a further exemplary method for preparing a set of three loudspeakers for searching for a set of three loudspeakers, according to some embodiments. [Figure 8] This figure shows a flowchart illustrating an exemplary method of assigning an elevation angle range to a triad of loudspeakers, according to some embodiments. [Figure 9] This figure shows a flowchart illustrating an exemplary method for selecting a search method for a triad of loudspeakers for a target panning direction, according to some embodiments. [Figure 10] This figure shows a flowchart illustrating an exemplary method for locating a triad of loudspeakers for a target panning direction, according to one embodiment. [Figure 11] This figure shows a flowchart of a further exemplary method for locating a triad of loudspeakers for a target panning direction, according to some embodiments. [Figure 12] This figure schematically illustrates an apparatus suitable for employing a method for generating a triangulation of vector-based amplitude panning, according to some embodiments. [Figure 13] This diagram schematically shows an exemplary device suitable for implementing the shown apparatus. [Modes for carrying out the invention]

[0052] The following provides a more detailed description of suitable apparatuses and possible mechanisms for providing vector-based amplitude panning (VBAP) applications.

[0053] As previously mentioned, VBAP is based on three steps, which typically include automatically triangulating the 3D loudspeaker configuration, selecting the appropriate active triangles based on direction (so that, with respect to a given direction, three loudspeakers forming a triangle containing a given direction are selected), and calculating the gains of the three loudspeakers forming a particular triangle (or generally, a particular polygon). The “active” triangle may be generalized as a virtual surface arrangement that includes a virtual surface having corners at the locations of the loudspeakers or speaker nodes. Furthermore, while some embodiments below describe the generation of virtual surfaces as triangular surfaces, the same methods and apparatus may be used for any suitable polygonal surface.

[0054] For the purposes of understanding the descriptions herein, the following terms are adopted: A loudspeaker may also be referred to as a speaker, speaker node, and vertex. A virtual surface may be understood as an acoustic surface represented in 3D space defined by a speaker node. Triangulation may be referred to as the process by which an acoustic surface is divided into several virtual surface shapes of the same kind, in other words, a virtual surface arrangement. A virtual surface shape (or virtual surface) may be one of a triangle, quadrilateral, pentagon, or hexagon. The present invention will henceforth describe a triangle which may be referred to as a triplicate of virtual surfaces and a triplicate of loudspeakers. In general, the following embodiments are applicable to virtual surfaces having any one of the shapes listed above.

[0055] In some embodiments, the virtual surface arrangement may be divided into virtual surfaces of different shapes.

[0056] In broad terms, the first stage of VBAP is typically performed during device initialization, where VBAP gains and loudspeaker triplets are pre-formed (with respect to multiple azimuth and elevation angle values) according to the system's loudspeaker configuration and then stored in memory as a lookup table. Next, a real-time process performs amplitude panning by locating suitable loudspeaker triplets and corresponding loudspeaker gains from memory for the desired panning direction (given by the azimuth and elevation angle values).

[0057] An effective process for triangulation of 3D loudspeaker configurations is disclosed in Patent Publication EP3541097. Furthermore, the calculation of panning gain can be computationally more efficient if the correct triad of loudspeakers is selected according to given azimuth and elevation values.

[0058] However, previous solutions to the problem of determining the correct loudspeaker triad for a given set of directional parameters (azimuth and elevation) have been found to have several shortcomings. Essentially, two approaches can be chosen: real-time selection of the loudspeaker triad and a strategy that relies on pre-calculation of the loudspeaker triad.

[0059] To select the correct triangle (or loudspeaker triad) in real time, sufficient processing power must be available to sequentially select each possible loudspeaker triad and calculate the associated panning gain. For example, a loudspeaker setup may include up to 22 individual triangles, each of which may need to be tested individually to determine the appropriate triangle for a given direction. A suitable triangle is identified only as one with a panning gain that is all non-negative. Therefore, depending on the direction, there is a requirement that the device performing the rendering has sufficient computing power to test all individual triangles in real time. On some devices, such as mobile user terminals, this requirement may be too demanding, and therefore, it is preferable to use an alternative strategy to select a particular loudspeaker triad.

[0060] Alternatively, one solution involves deploying a pre-computation method, where, during the initialization phase, triangles and panning gains are calculated for each possible combination of elevation and azimuth components. However, this method is particularly dependent on the resolution of the directional components being searched. For example, triangles and gains may be pre-computed for each possible resolution of the directional components. This not only results in a large table for storing triangle values ​​and therefore large memory, but also requires considerable processing power during the initialization phase. To overcome the problem of searching a large table of pre-computed triangle values, some solutions have adopted solutions from the world of computer graphics, such as Kirkpatrick's point positioning algorithm. However, in this case (where triangle values ​​are pre-computed for each elevation resolution), using Kirkpatrick's point positioning algorithm introduces the requirement of storing even more triangle values ​​to implement the search structure. Alternatively, more general solutions, such as balanced binary tree search, also do not lead to the most efficient solution for traversing the table / storage of triangle values. This stems from the fact that the computations used in VBAP's triangulation are inherently periodic, resulting in a near-optimal use of the binary search tree.

[0061] The embodiments herein overcome the aforementioned drawbacks by providing a solution that is computationally efficient and requires less storage than conventional table-based methods, so that it can be used in the runtime selection of triangles.

[0062] In embodiments, the VBAP algorithm may determine an arrangement of acoustic surfaces, which includes a plurality of acoustic surfaces generated by having at least three speaker nodes out of a plurality of speaker nodes. To form corners of the acoustic surfaces, each of the at least three speaker nodes is positioned in three-dimensional space, and any two edges of the acoustic surfaces are connected to one corner of the acoustic surfaces such that at least one defined acoustic plane does not intersect any two edges of the acoustic surfaces. Thus, as will be described later, the virtual surface may be understood as an acoustic surface represented in 3D space defined by the speaker nodes.

[0063] The first stage of VBAP is the division of the 3D loudspeaker configuration into triangles. An example of an "active" triangle is shown in Figure 1.

[0064] Figure 1 shows, for example, three loudspeakers: channel 1 101 located in the direction of unit vector I1, channel 2 102 located in the direction of unit vector I2, and channel 3 103 located in the direction of unit vector I3. These vectors are defined relative to the listener 100 at the origin, and the three loudspeakers define an active triangle 105. Furthermore, within the active triangle 105, a virtual sound source 104 is shown, located in the direction of unit vector p relative to the listener 100.

[0065] The next step is to create a panning gain that corresponds to the panning direction.

[0066] Generally, vector-based amplitude panning refers to a method in which three unit vectors I1, I2, and I3 form a triangle that contains the panning direction.

[0067] The panning gains of the three loudspeakers are determined such that the three unit vectors are weighted so that the weighted vector sum points to the desired amplitude panning direction. This can be solved as follows: A column unit vector p is formed that points to the desired amplitude panning direction, and a vector g containing the amplitude panning gain can be solved by the following matrix multiplication.

[0068]

number

[0069] To perform amplitude panning, VBAP first needs to triangulate the 3D loudspeaker setup. There is no single solution for generating the triangulation, and the loudspeaker setup can be triangulated in many ways. In standard VBAP, the solution is to try to find the smallest triangle (a triangle with no loudspeakers inside and sides that are as equal in length as possible). In common cases, this is a valid technique because it treats the auditory objects equally in all directions and tries to minimize the distance to the loudspeakers used to create the auditory objects in that direction.

[0070] To that end, patent application EP3541097 discloses a method for triangulating a (virtual or otherwise) configuration of a 3D multichannel loudspeaker to generate automatic adaptation of vector-based amplitude panning (VBAP) to any loudspeaker configuration. Disclosure in patent application EP3541097 describes a VBAP triangulation scheme that prevents the triangles from intersecting all horizontal planes, and in particular the horizontal plane at an elevation angle of 0 degrees.

[0071] An example of such a triangular configuration can be understood by comparing Figure 2 with Figure 3. Figure 2 shows a typical loudspeaker configuration in which four loudspeakers are added above the horizontal plane of the 7.1 configuration and four loudspeakers are added below the horizontal plane to give 7.1+8. In the following example, the typical 7.1+4 configuration is extended by adding four loudspeakers below the horizontal plane as well, forming a complete 3D configuration (loudspeakers both above and below the horizontal plane), resulting in the following loudspeaker positions. Elevation angle 0 degrees, azimuth angle 0 degrees, ±30 degrees, ±90 degrees, and ±150 degrees. These may be defined as (0,0)205, (30,0)207, (90,0)209, (150,0) (not shown in Figure 2), (-150,0) (not shown in Figure 2), (-90,0)201, and (-30,0)203. Elevation angle of 30 degrees, azimuth angles of ±45 degrees and ±135 degrees. These may be defined as (45,30)217, (135,30)215, (-135,30)211, and (-45,30)213. Elevation angle -20 degrees, azimuth angles ±45 degrees and ±135 degrees. These may be defined as (45,-20)227, (135,-20) (not shown in Figure 2), (-135,-20) (not shown in Figure 2), and (-45,-20)223.

[0072] This example loudspeaker configuration is shown as 7.1+8.

[0073] In such a configuration, the typical (or default) VBAP triangulation scheme creates triangles that intersect the horizontal plane, such as 231, 232, 233, and 234. Meanwhile, Figure 3 shows an exemplary triangulation generated by EP3541097, where the area covered by triangles 231 and 232 is represented here by triangles 321 (including vertices / corners defined by loudspeakers (-90,0)201, (-30,0)203, and (-45,30)213) and 323 (including vertices / corners defined by loudspeakers (-90,0)201, (-30,0)203, and (-45,30)223). Similarly, the areas covered by triangles 233 and 234 are represented here by triangles 331 (including the vertices / corners defined by loudspeakers (90,0)209, (30,0)207, and (45,30)217) and 333 (including the vertices / corners defined by loudspeakers (90,0)209, (30,0)207, and (45,-30)227).

[0074] As previously stated, embodiments herein begin with the consideration that the next step in the VBAP process is the determination of the correct loudspeaker triad for a given set of directional parameters (azimuth and elevation). While it has been explained that solutions for selecting the correct loudspeaker triad already exist, the solution must utilize a horizontal method for triangulation of loudspeaker configurations, such as that disclosed in EP3541097. Furthermore, this solution should be computationally efficient so that it can be used in the runtime selection of triangles and require less storage than conventional table-based methods. It should be understood that the solutions described below can also provide a more efficient search method for loudspeaker configurations, deploying a triangulation algorithm that allows loudspeaker triads to intersect the horizontal plane.

[0075] In EP3541097, one of the preliminary steps before triangulation involves investigating the locations of loudspeakers (also called speakers or speaker nodes) so that horizontal layers with several speakers can be identified. For example, five loudspeakers with an elevation angle of 0° form one horizontal layer with an elevation angle of 0°. Wherever any horizontal layer exists, the speakers can be divided into speaker subsets. Each subset includes all speakers belonging to the limiting horizontal layer and all speakers with elevation angles between the elevation angle range of the limiting horizontal layer. Absolute elevation angle limits (typically -90° and 90°) can serve to limit the elevation angles of speaker subsets, even if the speaker subsets do not contain actual speakers. For example, with two horizontal layers present (e.g., elevation angles of 0° and 30°), there may be three speaker subsets (e.g., elevation angles of -90° to 0°, 0° to 30°, and 30° to 90°). If no horizontal layers exist, there is a single speaker set containing all the speakers. In some embodiments, the number and location of horizontal layers (and therefore speaker subsets) may be limited. For example, the practical technique may use only a single subset-divided horizontal layer at an elevation angle of 0°.

[0076] Figure 4 discloses an amplitude panning gain determination process 400 that can perform three stages of the VBAP process.

[0077] Figure 4 shows an input 401 indicating a specific configuration of a loudspeaker system. For example, in the loudspeaker configurations shown above in Figures 2 and 3, input 401 may convey the loudspeaker configuration of 7.1+8. This input is passed to a function that performs triangulation and triangulation set creation processing 402. In embodiments, function 402 is configured to perform triangulation of the loudspeaker configuration as shown by input 401. In embodiments, triangulation and triangulation set creation processing 402 may perform the function according to the process outlined in patent application EP3541097. The output from triangulation and triangulation set creation processing 402 may, in some examples, be a single set of loudspeaker triplets (triangles on the virtual surface of the 3D loudspeaker), or in other examples of loudspeaker configurations, this output may include multiple subsets of loudspeaker triplets. The sets / subsets of loudspeaker triplets may be passed to search method selection processing and preparation processing 404. Broadly speaking, the search method selection and preparation process 404 is configured to select an appropriate search method for each set / subset of loudspeaker triads and to prepare the format (or structure) of the set / subset of loudspeaker triads for efficient selection of the most appropriate loudspeaker triad. The output from 404 is a “prepared” set / subset of loudspeaker triads, which may include data structures containing loudspeaker configuration information, prepared triangulations, prepared sets of loudspeaker triads, and information to assist in the search. Figure 4 also indicates that the processes performed by functions 402 and 404 may be performed during the renderer / decoder setup / initialization phase. In other words, the processes performed by functions 402 and 404 are expected to be performed before real-time processing of audio data exists. However, there may be operational examples in which functions 402 and 403 are performed during runtime. These operational examples may include cases where the loudspeaker configuration is unknown before the first encoded frame is processed. Therefore, in such cases, it may be necessary to perform initialization during the processing of the first audio frame.Subsequently, during the runtime phase of the amplitude panning gain determination process 400, a “prepared” set / subset of loudspeaker triplets may be used. The runtime phase of the operation is shown in Figure 4 as a fast triangle selection process and panning gain determination process 406. This function takes the structure of the “prepared” set / subset of loudspeaker triplets and performs a fast lookup of each set / subset of loudspeaker triplets for each input direction parameter 403. The output from function 406 for each input direction parameter 403 is the amplitude panning gain 405 corresponding to the loudspeaker triplets selected for the direction parameter 403.

[0078] Figure 4 shows that the stage following the triangulation of the loudspeaker configuration is called the search method selection process and preparation process 404. In this regard, Figure 5 shows a flowchart for selecting the optimal search method for the set / subset of loudspeakers. As mentioned above, the first stage of the VBAP process involves triangulation of the loudspeaker configuration. This yields a set or subset of loudspeakers specific to the loudspeaker configuration.

[0079] First, the optimal search method selection process in Figure 5 may be configured to check for variations or combinations of loudspeaker triplets / subsets. In this regard, Figure 5 shows checking whether a loudspeaker triplet / subset falls into one of two variations. The first variation of a loudspeaker triplet may be considered a special case in which one speaker is constrained to either an elevation angle of +90° or -90°, and all other speakers are located in the same horizontal plane. In other words, all other speakers may have the same elevation angle. For example, this type of variation may include one speaker at an elevation angle of -90° and five other speakers positioned in the horizontal plane at an elevation angle of 0°. The second variation may be considered a general case (or default case) in which the loudspeaker configuration does not satisfy the above constraints.

[0080] In Figure 5, a check step is shown as 501, in which a constraint is checked whether the loudspeaker configuration has one speaker positioned at either an elevation angle of +90° or -90°, and the other remaining speakers are at the same elevation angle. If this constraint is met, option 5011 for the special case is selected. Otherwise, the process selects branch 5012 for the general (or default) case.

[0081] The selection of the special case described above (option 5011) leads to the decision (shown as step 503) to use a specific algorithm for the subsequent retrieval of the loudspeaker triad set / subset (executed in 406). The azimuth-based retrieval algorithm is selected when each azimuth value is associated with a single loudspeaker triad within the set of loudspeaker triads. This occurs when the above constraint is met, i.e., when there is one speaker positioned at either +90° or -90° elevation value, and all other speakers positioned at the same elevation value. The decision to use the azimuth-based retrieval method may occur with the set of loudspeaker triads, or simply be stored in a location accessible by subsequent steps of the VBAP process.

[0082] The selection of a general case (option 5012) leads to a decision to use a more general method for searching for loudspeaker triplets / subsets, as shown for loudspeaker configurations that do not meet the above criteria. In this case, a complete 3D search method for loudspeaker triplets / subsets is selected for use in the fast triangle selection process 406. This is shown as step 505 in Figure 5. The decision to use a general 3D search method may occur with the loudspeaker triplets / subsets, or simply be stored in a location accessible by subsequent steps of the VBAP process.

[0083] If the triangulation process 402 results in a subset of multiple loudspeaker triplets (rather than a single set of three loudspeakers), the processing steps in Figure 5 are repeated for each of the loudspeaker triplet subsets.

[0084] After a method for searching for a set of three loudspeakers / subsets has been determined, function block 404 performs a preparation step in which the structure of the set of three loudspeakers / subsets is prepared for fast searching during the runtime phase. To that end, Figure 6 shows the steps involved in preparing the set of three loudspeakers / subsets for a subsequent general 3D search method, and Figure 7 shows the processing steps involved in preparing the set of three loudspeakers for a subsequent azimuth-based search method. For clarification, the preparation steps in Figures 6 and 7 are performed as part of the initialization phase function of 404.

[0085] Referring to Figure 6, the process begins by receiving a set / subset of loudspeaker triplets. Next, for each triplet of loudspeakers, the "center" vector is found, and the angle of the "center" vector projected onto the xy-plane is calculated. This effectively gives the azimuth angle of the "center" vector.

[0086] The "center" vector of a triple (or triangle) of loudspeakers may be calculated by determining the resolved vector (vector sum) of the three vectors pointing to the vertices (or loudspeakers) of the triple. Therefore, the azimuth angle is the angle of this vector projected onto the xy-plane. The "center" azimuth angle value θ of the triple of loudspeakers is given by: tri3d This can also be expressed as follows:

[0087]

number

[0088] In the above formula, index i is the index of the triangle within the set / subset of loudspeakers. The above formula is performed for all triangles within the set / subset of loudspeakers.

[0089] A triplet (or triangle) of loudspeakers is defined by pointing to each loudspeaker, and the three vectors defining the triplet (or triangle) i are given as follows:

[0090]

number

[0091] It should be noted that the above arctangent function is assumed to be solved for the correct quadrant based on the signs of the numerator and denominator.

[0092] As mentioned above, this calculation is performed for each triplet (or triangle) of loudspeakers in a set of three loudspeakers, as shown as processing step 601 in Figure 6.

[0093] The next step in a general 3D preparation process for a triad / subset of loudspeakers involves ordering the triangles of the triad / subset of loudspeakers in increasing order of azimuth. This may be done by known sorting means. In practice, this step may simply involve changing the order of the indices of the triangles of the triad of loudspeakers. The result from this processing step may be a new ordered list of indices, i sThis represents the index of the ordered list of triangles. This step is shown in Figure 6 as processing step 603. Figure 6 also shows the operation of storing the sorted triangles for future use in the fast search performed by 406. This step is shown in Figure 6 as processing step 605. In practice, this step may also include storing an array of loudspeaker triplets in the stored order, where a loudspeaker triplet contains the indices of the loudspeakers (or speaker nodes) that form the loudspeaker triplets.

[0094] The next step in a typical 3D preparation process is to form several non-overlapping search sectors that cover the entire range of azimuth values. Essentially, this step involves dividing the azimuth into several sectors, each section assigned to a specific range of azimuth values. For example, in one embodiment, assuming that the azimuth values ​​are considered to be integer-precision, a 360° range of azimuth values ​​may be divided into four equally spaced non-overlapping sectors, including 0°–89°, 90°–179°, 180°–269°, and 270°–359°. It should be understood that other division ratios may be used. For example, the sectors do not all have to be the same. In such embodiments, each sector range may be proportional to the distribution of triangles in a triad set of loudspeakers. In other words, a region of azimuth range containing more triangles may be divided into more sectors, each of which has a finer granularity than a region of azimuth with fewer triangles. For example, one embodiment may include dividing the azimuth range into several sectors, each of which may contain a substantially equal number of triplets of loudspeakers. After the sectors are formed, the azimuth angles of the boundaries / edges of each sector may be written down and stored for future use. The boundary values ​​for each sector are θ border3dIt may be stored as (j), where j is the index of the sector, and there are a total of J sectors. For example, using the above example of the azimuth range divided into four sectors, the boundary value for each sector is the upper limit value of the sector θ border3d (0), θ border3d (1), θ border3d (2), θ border3d (3) may include {90°, 180°, 270°, 360°}. Alternatively, some embodiments may develop boundary values that use lower limit values for each sector, such as {0°, 90°, 180°, 270°}. Alternatively, some embodiments may develop boundary values that include both lower limit values and upper limit values.

[0095] However, in some embodiments, it may not be necessary to store the above boundary values. Instead, by adopting a method in which the number of sectors is known and the range of each sector is evenly divided over the entire azimuth range, the boundary values of each sector may be implied. One implementation in C code may take the following form. if(abs(azi_deg)>90) { quadrant=azi_deg<0?2:1; } else { quadrant=azi_deg<0?3:0; } In this case, the azimuth value is between -180 degrees and 180 degrees.

[0096] The processing step of forming sectors over the azimuth range is shown as 607 in FIG. 6, and the step of storing the boundary / edge of each sector is shown as processing step 609.

[0097] After the sectors are defined, the preparation process for the high-speed 3D search method begins by determining an initial search index ζ(j) for each search sector j. In embodiments, this may be done by first determining a reference angle ρ(j) for each search sector j. In embodiments, the reference angle ρ(j) of sector j may be the midpoint angle of the search sector. For example, using the above example where the first search sector spans the range of 0° to 89°, the reference angle ρ(0) may be set to 45°. Finally, for each of the J reference angles (and therefore for each search sector), a triangle is assigned from a sorted list of triplets of loudspeakers (as obtained in step 603). In embodiments, the assigned triangle is the triangle with the center (azimuth) angle θ closest to the reference angle ρ(j). tri3d It may also be a triangle (from the sorted list) that has the following index i of the sorted triangle that is closest to the reference angle ρ(j). s,j However, ζ(j)=i s,j The initial search index ζ(j) of the search sector j may be assigned here i s,j This is the central (azimuth) angle θ of the triangle closest to the reference angle ρ(j). tri3d This is a triangular index having [a specific characteristic].

[0098] The step of determining the initial search index ζ(j) for sector j is shown as processing step 611 in Figure 6 for all sectors J. The operation of storing the index of the initial search sector for future use is shown as processing step 613 in Figure 6.

[0099] Referring to Figure 7, the preparatory process for a 2D azimuth-based search for a special case is shown. This process takes as input a set of three loudspeakers selected by the process in Figure 5 for the 2D azimuth-based search for a special case.

[0100] This process begins by determining the azimuth angles of two vertices (or loudspeaker locations) of each triangle in the set. That is, for each triangle, the azimuth angles of two vectors pointing to each vertex of the triangle are determined. As explained earlier, all loudspeaker locations for azimuth-based searches lie on a single horizontal plane, with the exception of one (virtual or real) loudspeaker positioned at an elevation of ±90°. Thus, this means that all triangles in a 2D azimuth-based search for special cases will have at least one vertex at an elevation of ±90°. As a result, only two azimuth angles are calculated for each triangle.

[0101] For example, in this embodiment, the azimuth angle of the first vertex of a triangle is given by the following equation: θ tri2d =atan(y1 / x1) Here, it is assumed that the above arctangent function can be solved for the correct quadrant based on the signs of the numerator and denominator, and the vector pointing to the first vertex of the triangle is given as follows:

[0102]

number

number

number

[0103] Next, the maximum azimuth angle of the triangle is selected, and the sector boundary angle θ is chosen. border2d It is marked as (j), and as before, j indicates the index of the search sector.

[0104] This process may then be repeated for all triangles in the set of three loudspeakers selected for the search of special cases.

[0105] For example, use the lower half of the 7.1+8 loudspeaker setup in Figure 2. There are horizontal speakers at 0, 30, 90, 150, -150, -90, and -30 degrees (all of which have an elevation angle of 0 degrees). In addition, there is one virtual loudspeaker at an elevation angle of -90 degrees.

[0106] Therefore, the first triangle is of the form (φ,θ) and lies between the nodes (0,0), (30,0), and (0,-90). The second triangle lies between the nodes (30,0), (90,0), and (0,-90). The third triangle lies between the nodes (90,0), (150,0), and (0,-90), and so on. As a result, we obtain seven triangles that cover the lower half of the virtual sphere.

[0107] Therefore, in this example, the sector boundary angle θ for j=0 to 6 is... border2d (j) can be 30, 90, 150, 210, 270, 330, and 360 degrees.

[0108] As mentioned earlier, in the case of a search based on a special 2D azimuth angle, there is a 1:1 ratio between the search sector and the loudspeaker triplets / triangles.

[0109] Finally, there is a special case where one of the vertices of a triangle has an azimuth angle of 0°. If this case is detected, and the other vertices of the triangle have azimuth angles greater than 180°, the sector boundary angle of this triangle is marked as 360°. However, if it is detected that the other vertices of the triangle have azimuth angles less than 180°, this value of the azimuth angle is selected as the sector boundary angle of the triangle.

[0110] The step of finding the maximum azimuth angle for each triangle in a set of three loudspeakers is shown as processing step 701 in Figure 7.

[0111] The next step in the preparation process for azimuth-based searching is the sector boundary angle θ. border2d This involves ordering the triangles of the three sets of loudspeakers with respect to the increasing order of (j). This is shown as step 703 in Figure 7.

[0112] Finally, the reordered triangles of the three loudspeaker sets are stored along with their respective sector boundary angles for future use. This is shown as processing step 705 in Figure 7.

[0113] Furthermore, in embodiments, the preparation process, such as that performed by function 404, may include a further process in which each set of triplets / subsets of loudspeakers is assigned to a range of elevation angle values. Such a process is shown in Figure 8, where it can be understood that the first step is to check whether the loudspeaker setting includes multiple horizontal layers of loudspeaker nodes or a single horizontal layer of loudspeaker nodes. This is shown as step 801 in Figure 8. If step 801 determines that there is only one horizontal layer of loudspeaker nodes, the process proceeds to step 803, which marks the set of triplets of loudspeakers as occupying the entire range of possible elevation angle values ​​from -90° to +90°. However, if step 801 indicates that the loudspeaker setting includes multiple horizontal layers of loudspeaker nodes, the process may proceed to step 805. In step 805, the elevation angle of each horizontal layer (of the loudspeaker node) is obtained for the loudspeaker configuration.

[0114] Next, in step 807, a range of elevation values ​​may be formed. In embodiments, this step may take the form of creating a range of elevation values ​​between a possible maximum value (e.g., +90 degrees) and the elevation value of the horizontal layer of the triad subset of loudspeakers, or creating a range of elevation values ​​between the elevation values ​​of two horizontal layers, or creating a range of elevation values ​​between the elevation value of the horizontal layer of the triad subset of loudspeakers and a possible minimum value (e.g., -90 degrees). The actual boundaries of the range of elevation values ​​may depend on the elevation angles of the horizontal layers of the triad subset of loudspeakers. A first elevation range associated with the horizontal layer with the lowest elevation angle may be formed as a range of values ​​from the minimum elevation value to the elevation value of the first horizontal layer. A second elevation range associated with horizontal layers with higher elevation angles than the first horizontal layer may be formed as a range of elevation values ​​between the elevation value of the first horizontal layer and the elevation value of the second horizontal layer. If the second horizontal layer has the highest elevation angle, the last (third) range of elevation angles may be formed between the elevation angle of the second horizontal layer and the maximum elevation angle. Generally, there are n+1 elevation angle ranges, where "n" is the number of horizontal layers according to the loudspeaker setup. The number of elevation angle ranges determines the number of triad subsets of the loudspeaker. For example, in this case, there are three triad subsets of the loudspeaker, the first loudspeaker triad subset includes triangles with elevation angles from the maximum elevation angle to the elevation angle of the first horizontal layer. The second loudspeaker triad subset includes triangles with elevation angles from the elevation angle of the first horizontal layer to the elevation angle of the second horizontal layer. The third loudspeaker triad subset includes triangles with elevation angles from the elevation angle of the second horizontal layer to the maximum elevation angle.

[0115] The process described above, as performed by step 807, can be further clarified by the following example in which a loudspeaker setup exists with horizontal layers at elevation angles of 0° and 30°. In this example, step 807 causes the elevation angle values ​​to be divided into a triplicate subset of three loudspeakers in the following ranges: 1. -90° (endpoint of range) to 0° (horizontal layer), 2.0° (horizontal layer) to 30° (horizontal layer), and 3.30° (horizontal layer) to 90° (endpoint of the range).

[0116] In step 809, the triangles (loudspeaker triplets) from the triangulation process may be distributed to the loudspeaker triplet subset according to the range of elevation angles of each loudspeaker triplet and the elevation angles of the loudspeaker triplet subset. In practice, each loudspeaker triplet is assigned to this loudspeaker triplet subset if the elevation angle of a loudspeaker triplet falls within the range of elevation angles given to the loudspeaker triplet subset.

[0117] Finally, Figure 8 shows step 811, in which the elevation angle ranges for each triad / subset of loudspeakers are stored for use in function 406.

[0118] Referring to the runtime phase of the VBAP process, the runtime phase may be performed by the fast triangle selection process and panning gain determination process 406, as described above. The first process of the runtime phase includes taking the acquired target panning direction (elevation and azimuth angles of the direction parameters) and assigning it to an appropriate set of triads / subsets of loudspeakers. In embodiments, this process may take the form of linking a set of triads / subsets of loudspeakers having an assigned range of elevation values ​​that encompasses the elevation value of the target panning direction, and then checking whether the method for finding the selected set of triads / subsets of loudspeakers is a general 3D search method or a special case 2D azimuth-based search method.

[0119] Figure 9 shows a process configured to perform the above functions. This process receives a target panning direction parameter, including azimuth and elevation values. The process begins by receiving a first set of three loudspeakers (step 901), and then performs a check to determine whether the elevation value of the target panning direction parameter is within the range of elevation values ​​of the (first) set of three loudspeakers / subset (step 903). If the elevation value of the target panning direction parameter is not within the range of elevation values ​​of the (first) set of three loudspeakers / subset, the process reverses direction and selects the next set of three loudspeakers to check (step 905). However, if the result of the above check (step 903) indicates that the elevation value of the target panning direction parameter is within the range of elevation values ​​of the set of three loudspeakers / subset, the process proceeds to step 907, in which the search method is assigned to the set of three loudspeakers / subset. If it is determined in step 907 that a set of three loudspeakers / subsets is associated with a general 3D search method, the set of three loudspeakers / subsets is transferred, along with the target panning direction value, to the general 3D search method for finding the set of three loudspeakers / subsets (step 909). Alternatively, if it is determined in step 907 that a set of three loudspeakers / subsets is associated with a 2D azimuth-based search for a special case, the set of three loudspeakers / subsets is transferred, along with the target panning direction value, to the 2D azimuth-based method for finding the set of three loudspeakers / subsets (step 911).

[0120] Figure 10 is a flowchart of a “general” fast 3D search method that may be implemented by functional block 406 as part of the VBAP process. Figure 10 can be seen as a process for determining which loudspeaker triplets from a set / subset of loudspeakers surround the target panning direction. As implicitly shown above, the fast 3D search method uses azimuth and elevation values

[0121] [Number] Receive as input a target panning direction including [angle], a search structure prepared according to the flowchart of FIG. 6, and a three - speaker set selected and arranged according to the flowchart of FIG. 9. From the description accompanying FIG. 6, it may be recalled that the search structure prepared for a general high - speed 3D search procedure includes a set / sub - set of three - speaker triangles arranged in ascending order of the central azimuth angle θ tri3d of the three - speaker triangles, and an initial search index structure ζ(j) for each search sector j (a total of J search sectors exist, where 0 ≤ j < J). Each initial search index structure ζ(j) includes an index i s,j of the triangle from the ordered set of three - speaker triangles, and a parameter θ border3d (j) specifying the boundary of the search sector, and includes element data items.

[0122] The 3D search method starts with the first search sector (j = 0), and determines whether the azimuth value θ of the target panning direction is within the limits of the azimuth value of the first search sector. This determination may be checked by examining the search sector boundary value θ border3d (j). If it is determined that the azimuth value θ of the target panning direction is not within the limits of search sector j, the process branches back and selects the next search sector (j = j + 1). This check loop is shown in FIG. 10 by process steps 1001, 1002, and 1003.

[0123] On the other hand, in step 1003, if it is determined that the azimuth value of the target panning direction is within the boundary limits of the current search sector j, then the process is configured to move to the next step 1005, where the index i s,j of the triangle associated with the current search sector j is retrieved from the initial search index structure ζ(j).

[0124] Next, the process is to extract the index i of the triangle. s,j The system is configured to set the triangular search index i based on this. This process is shown in Figure 10 by initialization step 1007.

[0125] This process involves the index i of the extracted triangle. s,j If i s,j It is possible to search for triangles with an index slightly higher than i, and then i s,j This may be done using a counter m configured to perform both incrementing and decrementing of index i (by each increment of m) so that triangles with slightly lower indices can be found. In an embodiment, index i is

[0126]

number

[0127] Returning to Figure 10, the initialization of counter m is shown as processing step 1009.

[0128] The next step involves determining whether the current triangle i is a correct triangle. In this embodiment, this determination is made by solving the following equation mentioned above.

number

number

number

number

number

[0129] Triangle i that produces a gain vector with three non-negative components is determined to be the correct triangle for the input target panning direction. At this point, the process stops and outputs index i as the correct triangle for the target panning direction. Furthermore, the process calculates the panning gain g of triangle i. i It also outputs (these gains are given as a byproduct of the calculation steps described above).

[0130] Returning to Figure 10, the above check step is shown as processing step 1011, and the step of outputting the correct triangle index and panning gain is shown as processing step 1013. In other words, the correct triangle index is the index of the triplet / triangle of loudspeakers surrounding the target panning direction such that the target panning direction lies within a triplet of selected loudspeakers or on the boundary between the selected virtual surface and the next virtual surface.

[0131] However, if in step 1011 it is determined that all VBAP panning gain vectors g are not non-negative, then the triangle given by index i is considered not to be the correct triangle with respect to the input target panning direction. In this case, the process increments the counter m by 1, and m and i s,j The index of the next triangle is determined by using the above formula to calculate a new value of i based on the above. This process is shown as processing step 1014, along with a feedback loop to check step 1011.

[0132] Figure 11 is a flowchart of a fast 2D azimuth-based search method, which can also be performed by functional block 406 as part of the VBAP process. Figure 11 can be seen as a process for determining which loudspeaker triplets from a set of loudspeaker triplets surround the target panning direction. As implicitly shown above, the fast 2D azimuth-based search method takes as input the azimuth angle (θ) value of the target panning direction, a prepared search structure as described by the flowchart in Figure 7, and the selected loudspeaker triplets from the flowchart in Figure 9. From the description accompanying Figure 7, the prepared search structure for the fast 2D azimuth-based search procedure is the sector boundary angle θ border2D It may be recalled that this includes triplets / subsets of triangular loudspeakers arranged in increasing order of (j), and the sector boundary angles themselves. Note that in the case of a 2D azimuth-based search, there is a one-to-one mapping between the sector boundary angles and the triangles within the triplets / subsets of loudspeakers.

[0133] As shown in Figure 11, the process receives a prepared search structure containing the target panning azimuth angle, as well as an ordered list of triangles and the corresponding sector boundary angles for each ordered triangle.

[0134] The first step of the process involves setting index j to 0, where this index corresponds to the sector boundary angle θ. border2DThis is used to index (j) one by one. This is shown as processing step 1101.

[0135] Next, check step 1103 is performed, which checks if the target azimuth angle θ is equal to the sector boundary angle θ of the current index j. border2D Determine if (j) is smaller than the target azimuth angle θ. border2D Each time it is determined that it is greater than (j), the process loops through step 1105, and the next sector boundary angle is tested. Step 1105 simply increments the index by 1 so that the next sector boundary angle can be checked by step 1103.

[0136] Essentially, steps 1103 and 1105 proceed through a list of sector boundary angles in increasing order until the azimuth angle is smaller than the current sector boundary angle. The index associated with this sector boundary angle is the index of the triangle that is closest to the direction θ of the target panning azimuth angle and surrounds θ. This triangle index is then output from the loop (step 1107). In other words, the triangle index is the index of the triplet / triangle of loudspeakers surrounding the target panning direction for a 2D search.

[0137] The loopback also includes a check to determine if the current index has reached the number of search sectors (J). In this case, the direction of the target azimuth angle is greater than the best ordered search sector, and the output index of the selected triangle is set to 0. This is shown as processing steps 1109 and 1111 in Figure 11.

[0138] Finally, the azimuth and elevation values ​​for the target panning direction.

number

[0139] It should be understood that in some embodiments, there may be no special azimuth-based method for searching for a set of three loudspeakers. In such embodiments, only a general 3D method is used for the set of three loudspeakers / subsets. In these embodiments, the processes according to Figures 5, 7, and 11 are not performed. Furthermore, with respect to Figure 8, the processing path leading to step 803, along with processing steps 907 and 911 from Figure 9, may not be performed.

[0140] An exemplary implementation of the above-described embodiment is shown in Figure 12, which shows a decoder and renderer of the exemplary system. The exemplary decoder and renderer may be configured to transmit one or two audio channels and spatial metadata. The spatial metadata includes at least a directional parameter in the frequency band and ratio metadata in the frequency band, where the ratio (or diffusive) parameter represents whether the sound in the frequency band is directional, environmental, or something in between.

[0141] A decoder 1200 is shown, comprising a demultiplexer and decoder 1201 configured to receive an input bitstream 1221 (from any source, e.g., spatial audio captured, encoded, and transmitted by a smartphone). The demultiplexer and decoder 1201 is configured to separate the bitstream 1221 into six components: an audio signal 1206, as well as spatial metadata such as two components: diffuse metadata 1202 (defining the ratio of ambient energy to total energy) and four components: directional metadata 1204.

[0142] The audio signal within audio component 1206 is received by a forward filter bank 1203 (which may be a complex-modulated low-delay filter bank) configured to convert the audio signal into a frequency band.

[0143] Next, the frequency-band audio signal may be received by the splitter 1205. The splitter 1205 may further receive the spreading metadata component 1202 and split the frequency-band signal into a directional portion 1210 and an environmental (or spreading) portion 1208 by, for example, applying a multiplier to the audio signal as a function of the ratio in the frequency band / spreading metadata.

[0144] The environmental (or spreading) portion 1208 may be received by a decorrelator 1207 configured to decorrelate the environmental portion 1208 to generate a spatially inconsistent multichannel signal.

[0145] With respect to Figure 4, the amplitude panning gain determiner 400, as described above, may be configured to receive loudspeaker configuration information 401, perform triangulation of the 3D loudspeaker configuration, and prepare a set of three resulting loudspeaker triplets for fast retrieval during the runtime phase of the operation. The runtime phase of 400 then begins generating the panning gain and correct triangles from the direction data 1204 / 403 for the amplitude panner 1209.

[0146] The directional portion 1210 may be received by an amplitude panner 1209. The amplitude panner 1209 may further receive amplitude panning gains from an amplitude panning gain determiner 400. The audio signal from the directional portion 1210 may then be amplitude panned in the frequency band according to directional metadata, utilizing the amplitude panning gains generated using the present invention.

[0147] The total module 1211 may be configured to receive amplitude-panned directional outputs from amplitude panner 1209 and spatially inconsistent multichannel signals from decorrelator 1207, and generate a combined multichannel signal.

[0148] Next, the inverse filter bank 1213 may be configured to receive the combined signal and produce a suitable multi-channel loudspeaker output 1225.

[0149] In some embodiments, the azimuth-based 2D search may be adapted to an elevation range having two horizontal layers of speaker nodes directly above each other. In this case, the azimuth angles of the speaker nodes are the same on each horizontal layer, and therefore the sector boundary angle θ of one of the layers. border2D Only needs to be determined. As a result, during the runtime phase, two possible loudspeaker triplets are generated for each sector. The correct loudspeaker triplet may be determined by solving the following equation.

[0150]

number

[0151] In practice, if the first triple is found to be incorrect (as a result of solving the above equation), a triple with the next index may be selected and verified using the above equation.

[0152] Regarding azimuth-based 2D searches, the search method can be extended to include loudspeaker configurations where all loudspeakers are simply positioned as horizontal layers.

[0153] Regarding the aforementioned general 3D search method, it has been found that having up to four azimuthal search sectors provides a favorable solution for IVAS coding systems. The number of search sectors may be adjusted to suit different coding systems, according to the trade-off between limiting the number of triplets to check and the additional memory required during runtime.

[0154] With respect to Figure 13, an exemplary electronic device that may be used as an analysis or synthesis device is shown. This device may be any suitable electronic device or apparatus. For example, in some embodiments, device 1400 is a mobile device, user equipment, tablet computer, computer, audio playback device, etc.

[0155] In some embodiments, the device 1400 comprises at least one processor or central processing unit 1407. The processor 1407 may be configured to execute various program codes, such as those described herein.

[0156] In some embodiments, the device 1400 includes a memory 1411. In some embodiments, at least one processor 1407 is coupled to the memory 1411. The memory 1411 can be any suitable storage means. In some embodiments, the memory 1411 includes a program code section for storing program code that can be executed on the processor 1407. Furthermore, in some embodiments, the memory 1411 may further include a stored data section for storing data (for example, data that is processed or will be processed according to embodiments such as those described herein). The program code to be executed stored in the program code section and the data stored in the stored data section can be retrieved by the processor 1407 via the coupling of the memory and the processor whenever needed.

[0157] In some embodiments, device 1400 includes a user interface 1405. In some embodiments, the user interface 1405 may be coupled to a processor 1407. In some embodiments, the processor 1407 can control the operation of the user interface 1405 and receive input from the user interface 1405. In some embodiments, the user interface 1405 may allow a user to input commands to device 1400, for example, via a keypad. In some embodiments, the user interface 1405 may allow a user to retrieve information from device 1400. For example, the user interface 1405 may include a display configured to show information from device 1400 to the user. In some embodiments, the user interface 1405 may include a touch screen or touch interface that has the ability to both allow information to be input to device 1400 and to further display the information to the user of device 1400. In some embodiments, the user interface 1405 may be a user interface for communicating with positioning processing as described herein.

[0158] In some embodiments, device 1400 includes an input / output port 1409. In some embodiments, the input / output port 1409 includes a transceiver. In such embodiments, the transceiver may be coupled to a processor 1407 and configured to enable communication with other devices or electronic devices, for example, via a wireless communication network. The transceiver or any suitable transceiver or transmitter and / or receiver means may, in some embodiments, be configured to communicate with other electronic devices or devices via wire or wired coupling.

[0159] The transceiver can communicate with further devices using any suitable known communication protocol. For example, in some embodiments, the transceiver can use a suitable universal mobile telecommunications system (UMTS) protocol, a wireless local area network (WLAN) protocol such as IEEE 802.X, a suitable short-range radio frequency communication protocol such as Bluetooth, or an infrared data communication pathway (IRDA).

[0160] The transceiver's input / output port 1409 may be configured to receive signals and, in some embodiments, determine parameters such as those described herein by using a processor 1407 that executes appropriate code. Furthermore, the device may generate appropriate downmix signals and parameter outputs to be sent to a synthesis device.

[0161] In some embodiments, device 1400 may be employed as at least part of a synthesis device. Thus, the input / output port 1409 may be configured to generate an appropriate audio signal format output by receiving a downmix signal and, in some embodiments, parameters determined by a capture device or processing device as described herein, and using a processor 1407 that executes appropriate code. The input / output port 1409 may be coupled to any suitable audio output, for example, a multi-channel speaker system and / or headphones or similar.

[0162] In general, various embodiments of the present invention may be implemented in hardware, dedicated circuits, software, logic circuits, or any combination thereof. For example, some embodiments may be implemented in hardware, while others may be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, but the present invention is not limited thereto. Various embodiments of the present invention may be illustrated and explained using block diagrams, flowcharts, or any other graphical representation, but it should be understood that these blocks, devices, systems, techniques, or methods described herein may, in non-limiting examples, be implemented in hardware, software, firmware, dedicated circuits or logic circuits, general-purpose hardware or controllers or other computing devices, or any combination thereof.

[0163] Embodiments of the present invention may be implemented by computer software executable by a data processor of a mobile device such as a processor entity, by hardware, or by a combination of software and hardware. Furthermore, it should be noted that any block of the logic flow as shown in the figure may represent a program step, or an interconnected logic circuit, block and function, or a combination of program steps and logic circuits, blocks and functions. The software may be stored on a physical medium such as a memory chip, or a memory block implemented within a processor, a magnetic medium such as a hard disk or floppy disk, or an optical medium such as a DVD and its data variant, or a CD.

[0164] Memory may be of any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory, and removable memory. The data processor may be of any type suitable for the local technical environment and may include, in non-limiting examples, one or more of the following: general-purpose computers, dedicated computers, microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), gate-level circuits, and processors based on multi-core processor architectures.

[0165] Embodiments of the present invention may be practiced in various components, such as integrated circuit modules. Integrated circuit design is generally a highly automated process. Complex and powerful software tools are available to translate logic-level designs into ready-to-form semiconductor circuit designs that are etched onto semiconductor substrates.

[0166] Programs such as those offered by Synopsys, Inc. in Mountain View, California, and Cadence Design Systems, Inc. in San Jose, California, use established design rules and a library of pre-stored design modules to automatically route conductors and place components on a semiconductor chip. After the semiconductor circuit design is complete, the resulting design in a standardized electronic format (e.g., Opus, GDSII, etc.) may be sent to a semiconductor manufacturing facility or "fab" for production.

[0167] The foregoing description has provided a complete and useful explanation of embodiments of the present invention, as illustrative and non-limiting examples. However, various modifications and adaptations may become apparent to those skilled in the art when read in conjunction with the accompanying drawings and claims. However, all such modifications and similar modifications of the present invention still fall within the scope of the invention as defined in the claims.

Claims

1. An apparatus for decoding and rendering spatial audio signals associated with a plurality of speaker nodes arranged in a three-dimensional space having a virtual surface arrangement including a plurality of virtual surfaces, wherein each of the plurality of virtual surfaces has corners positioned at at least three speaker nodes, the virtual surface arrangement is at least partially defined by a set of virtual surfaces including the plurality of virtual surfaces, each of the plurality of virtual surfaces is referenced by a reference means, and the apparatus, Determining the azimuth angle for each virtual surface in the aforementioned set of virtual surfaces, The virtual surfaces of the set of virtual surfaces are arranged in an order based on the determined azimuth angle to give an ordered set of virtual surfaces. Determining at least two search sectors, wherein each of the at least two search sectors occupies a range of azimuth angles, Associating the virtual surfaces of the ordered set of virtual surfaces with each of the at least two search sectors, Obtain the target panning direction, which includes at least the target azimuth angle. Based on the target azimuth angle, determine the search sector from the at least two search sectors, An apparatus configured to perform the following: starting from the associated virtual surface of the determined search sector, searching the ordered set of virtual surfaces to determine the virtual surfaces surrounding the target panning direction.

2. The apparatus according to claim 1, wherein the reference means is an index.

3. The apparatus is configured to start from the associated virtual surface of the determined search sector, search the ordered set of virtual surfaces to determine the virtual surfaces surrounding the target panning direction, Determining the initial search index of the determined search sector, wherein the initial search index is the index of the associated virtual surface of the determined search sector. Determining the set of panning gains for the at least three speaker nodes of the associated virtual surface of the determined search sector, The apparatus according to claim 2, further configured to determine that the associated virtual surface surrounds the target panning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the associated virtual surface of the determined sector.

4. If at least one of the set of panning gains of the speaker node on the associated virtual surface of the determined search sector is not non-negative, then the device, Using an index on one side of the initial search index, further virtual surfaces are selected from the ordered set of virtual surfaces, Determining the set of panning gains for the at least three speaker nodes on the further virtual surface, The further virtual surface is configured to determine that the further virtual surface surrounds the target panning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the further virtual surface. If at least one panning gain of the set of panning gains of the at least three speaker nodes on the further virtual surface is not non-negative, then the apparatus, Selecting further virtual surfaces from the ordered set of virtual surfaces using an index on the opposite side of the initial search index, Determining the set of panning gains for the at least three speaker nodes of the further virtual surface, The apparatus according to claim 3, further configured to determine that the further virtual surface surrounds the target panning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the further virtual surface.

5. Each of the plurality of virtual surfaces is defined by at least three vectors that point to one of the at least three speaker nodes, and the device is configured to determine an azimuth angle for each virtual surface in the set of virtual surfaces, For each virtual surface, determine the vector sum of the at least three vectors, The apparatus according to any one of claims 1 to 4, configured to perform the following for each virtual surface: determining the azimuth angle as the angle of the vector sum projected onto the x-y plane.

6. The apparatus is configured such that the azimuth angle of the associated virtual surface is the boundary angle of the determined search sector, and that it searches the ordered set of virtual surfaces starting from the associated virtual surface of the determined search sector to determine the virtual surfaces surrounding the target panning direction, The system is configured to determine whether the target azimuth angle is less than the azimuth angle of the associated virtual surface azimuth angle. If the target azimuth angle is less than the azimuth angle of the associated virtual surface, the device is further configured to determine that the associated virtual surface surrounds the target panning direction and to determine the set of panning gains for the at least three speaker nodes of the associated virtual surface in the determined search sector. The apparatus according to claim 1, wherein if the target azimuth angle is greater than or equal to the azimuth angle of the associated virtual surface, the apparatus is further configured to determine that the further virtual surface surrounds the target panning direction if the target azimuth angle is less than the boundary azimuth angle of the further virtual surface of the ordered set of virtual surfaces, and to determine the set of panning gains for the at least three speaker nodes of the further virtual surface.

7. Each of the plurality of virtual surfaces is defined by at least three vectors that point to one of the at least three speaker nodes, and the device is configured to determine an azimuth angle for each virtual surface in the set of virtual surfaces, For each virtual surface, determine the first azimuth angle of the first vector among the at least three vectors, For each virtual surface, determine the second azimuth angle of the second vector among the at least three vectors, The apparatus according to claim 1 or 6, configured to select the azimuth angle as the larger of the first azimuth angle and the second azimuth angle for each virtual surface.

8. The aforementioned device The acquisition of the elevation angle of the horizontal plane in the three-dimensional space, wherein some of the plurality of speaker nodes are located on the horizontal plane. The apparatus according to any one of claims 1 to 7, further configured to perform the task of creating an elevation angle range between a minimum elevation angle and the elevation angle of the horizontal plane.

9. The aforementioned device The apparatus according to claim 8, further configured to create a further range of elevation angles between the elevation angle and the maximum elevation angle of the horizontal plane.

10. The aforementioned device Obtaining the elevation angle of a further horizontal plane in the aforementioned three-dimensional space, wherein some of the further speaker nodes are located on the further horizontal plane, The apparatus according to claim 8, further configured to perform the task of creating a further elevation angle range between the elevation angle of the horizontal plane and the elevation angle of the further horizontal plane.

11. The aforementioned device The apparatus according to claim 10, further configured to create an even wider range of elevation angles between the elevation angle and the maximum elevation angle of the further horizontal plane.

12. The aforementioned device The apparatus according to claim 11, further configured to assign the virtual surface set to one of the elevation range, the further elevation range, and the even further elevation range by mapping the elevation angles associated with the virtual surface set to one of the elevation range, the further elevation range, and the even further elevation range.

13. The aforementioned target panning direction further includes the target elevation angle, and the device, The apparatus according to claim 12, further configured to determine that the target elevation angle is within one of the elevation angle range, the further elevation angle range, and the even further elevation angle range, and to give the determined elevation angle range.

14. The apparatus according to any one of claims 8 to 13, wherein the plurality of virtual surfaces, each having corners positioned at at least three of the plurality of speaker nodes, have edges connecting pairs of corners configured so as not to intersect with the horizontal plane in the three-dimensional space.

15. The apparatus according to any one of claims 10 to 13, wherein the plurality of virtual surfaces, whose corners are positioned at at least three speaker nodes, have edges connecting pairs of corners configured not to intersect with the further horizontal plane in the three-dimensional space.

16. The apparatus according to any one of claims 1 to 15, wherein the order of the virtual surfaces in the set of virtual surfaces is in increasing order of the determined azimuth angles of the virtual surfaces.

17. The apparatus according to any one of claims 1 to 16, wherein the virtual surface is a set of three loudspeakers including three vectors that point to the corners of the set of three loudspeakers, respectively.

18. A method for decoding and rendering spatial audio signals associated with a plurality of speaker nodes arranged in a three-dimensional space having a virtual surface arrangement comprising a plurality of virtual surfaces, wherein each of the plurality of virtual surfaces has corners positioned at at least three speaker nodes, the virtual surface arrangement is at least partially defined by a set of virtual surfaces comprising the plurality of virtual surfaces, each of the plurality of virtual surfaces is referenced by a reference means, and the method Determining the azimuth angle for each virtual surface in the aforementioned set of virtual surfaces, The virtual surfaces of the set of virtual surfaces are arranged in an order based on the determined azimuth angle to give an ordered set of virtual surfaces. Determining at least two search sectors, wherein each of the at least two search sectors occupies a range of azimuth angles, Associating the virtual surfaces of the ordered set of virtual surfaces with each of the at least two search sectors, Obtain the target panning direction, which includes at least the target azimuth angle. Based on the target azimuth angle, determine the search sector from the at least two search sectors, A method comprising: starting from the associated virtual surface of the determined search sector, searching the ordered set of virtual surfaces to determine the virtual surfaces surrounding the target panning direction.

19. The method according to claim 18, wherein the reference means is an index.

20. Starting from the associated virtual surface of the determined search sector, the ordered set of virtual surfaces is searched to determine the virtual surfaces surrounding the target panning direction. Determining the initial search index of the determined search sector, wherein the initial search index is the index of the associated virtual surface of the determined search sector. Determining the set of panning gains for the at least three speaker nodes of the associated virtual surface of the determined search sector, The method of claim 19, further comprising determining that the associated virtual surface surrounds the target panning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the associated virtual surface of the determined sector.

21. If at least one of the set of panning gains of the speaker node on the associated virtual surface of the determined sector is not non-negative, then the method Using an index on one side of the initial search index, further virtual surfaces are selected from the ordered set of virtual surfaces, Determining the set of panning gains for the at least three speaker nodes on the further virtual surface, The further includes determining that the further virtual surface surrounds the target panning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the further virtual surface, If at least one panning gain of the set of panning gains of the at least three speaker nodes on the further virtual surface is not non-negative, then the method Selecting further virtual surfaces from the ordered set of virtual surfaces using an index on the opposite side of the initial search index, Determining the set of panning gains for the at least three speaker nodes of the further virtual surface, The method according to claim 20, further comprising determining that the further virtual surface surrounds the target panning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the further virtual surface.

22. Each of the plurality of virtual surfaces is defined by at least three vectors that point to one of the at least three speaker nodes, and the azimuth angle is determined for each virtual surface in the set of virtual surfaces. For each virtual surface, determine the vector sum of the at least three vectors, The method according to any one of claims 18 to 21, further comprising determining the azimuth angle for each virtual surface as the angle of the vector sum projected onto the x-y plane.

23. The azimuth angle of the associated virtual surface is the boundary angle of the determined search sector, and starting from the associated virtual surface of the determined search sector, the ordered set of virtual surfaces is searched to determine the virtual surface surrounding the target panning direction. The method further includes determining whether the target azimuth angle is less than the azimuth angle of the associated virtual surface azimuth angle, If the target azimuth angle is less than the azimuth angle of the associated virtual surface, the method further includes determining that the associated virtual surface surrounds the target panning direction and determining the set of panning gains for the at least three speaker nodes of the associated virtual surface of the determined search sector. The method of claim 18, further comprising determining that the further virtual surface surrounds the target panning direction if the target azimuth angle is greater than or equal to the azimuth angle of the associated virtual surface, and determining the set of panning gains for the at least three speaker nodes of the further virtual surface.

24. Each of the plurality of virtual surfaces is defined by at least three vectors that point to one of the at least three speaker nodes, and the azimuth angle is determined for each virtual surface in the set of virtual surfaces. For each virtual surface, determine the first azimuth angle of the first vector among the at least three vectors, For each virtual surface, determine the second azimuth angle of the second vector among the at least three vectors, The method according to claim 18 or 23, further comprising selecting the azimuth angle as the larger of the first azimuth angle and the second azimuth angle for each virtual surface.

25. The method described above is The acquisition of the elevation angle of the horizontal plane in the three-dimensional space, wherein some of the plurality of speaker nodes are located on the horizontal plane. The method according to any one of claims 18 to 24, further comprising creating an elevation angle range between the minimum elevation angle and the elevation angle of the horizontal plane.

26. The method described above is The method of claim 25, further comprising creating a further range of elevation angles between the elevation angle of the horizontal plane and the maximum elevation angle.

27. The method described above is Obtaining the elevation angle of a further horizontal plane in the aforementioned three-dimensional space, wherein some of the further speaker nodes are located on the further horizontal plane, The method of claim 25, further comprising creating a further elevation angle range between the elevation angle of the horizontal plane and the elevation angle of the further horizontal plane.

28. The method described above is The method according to claim 27, further comprising creating an even further elevation angle range between the elevation angle and the maximum elevation angle of the further horizontal plane.

29. The method described above is The method according to claim 28, further comprising assigning the virtual surface set to one of the elevation range, the further elevation range, and the even further elevation range by mapping the elevation angles associated with the virtual surface set to one of the elevation range, the further elevation range, and the even further elevation range.

30. The aforementioned target panning direction further includes the target elevation angle, and the method, The method according to claim 29, further comprising determining that the target elevation angle is within one of the elevation angle range, the further elevation angle range, and the even further elevation angle range, and giving the determined elevation angle range.

31. The method according to any one of claims 25 to 30, wherein the plurality of virtual surfaces, each having corners positioned at at least three of the plurality of speaker nodes, have edges connecting pairs of corners configured so as not to intersect with the horizontal plane in the three-dimensional space.

32. The method according to any one of claims 27 to 30, wherein the plurality of virtual surfaces, whose corners are positioned at at least three speaker nodes, have edges connecting pairs of corners configured not to intersect with the further horizontal plane in the three-dimensional space.

33. The method according to any one of claims 18 to 32, wherein the order of the virtual surfaces in the set of virtual surfaces is in increasing order of the determined azimuth angles of the virtual surfaces.

34. The method according to any one of claims 18 to 33, wherein the virtual surface is a triad of loudspeakers including three vectors that point to the corners of the triad of loudspeakers, respectively.

Citation Information

Patent Citations

  • Acoustic signal conversion device and program thereof and 3-dimensional acoustic panning device and program thereof

    JP2012049967A

  • Signal processing device and method, and program

    WO2020080099A1