Searching for efficient loudspeaker surfaces for multi-channel loudspeaker systems

JP2025504850AActive Publication Date: 2025-02-19NOKIA TECHNOLOGIES OY
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024543034
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-01-18
Publication Date
2025-02-19
Estimated Expiration
2042-01-18

Smart Images

  • Figure 2025504850000001_ABST
    Figure 2025504850000001_ABST
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] The present application relates to an apparatus and method for spatial sound reproduction using a multi-channel loudspeaker system, including but not exclusively to systems in which the multi-channel loudspeaker setup is a virtual multi-channel loudspeaker setup. [Background technology]

[0002] Parametric spatial audio processing is a field of audio signal processing in which the spatial characteristics of sound are represented using a set of parameters. For example, in parametric spatial audio capture from a microphone array, it is a standard and valid option to estimate a set of parameters from the microphone array signal, such as the direction of the sound in a frequency band and a ratio parameter that represents the relative energy of the directional and non-directional parts of the captured sound in the frequency band. These parameters are known to adequately represent the perceptual spatial characteristics of the sound captured at the position of the microphone array. Thus, these parameters can be utilized in the synthesis of spatial sound for headphone binaural, for loudspeakers, or into other formats such as Ambisonics.

[0003] Thus, direction within a frequency band and the ratio of directional energy to total energy are particularly effective parameterizations for spatial audio capture.

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

[0005] The reproduction of spatial audio signals (spatial audio reproduction) usually requires positioning of sounds in 3D space in arbitrary directions. These directions may be obtained automatically, for example from the acoustic scene parameters, or may be set by the user. Vector base amplitude panning (VBAP) is a common method for positioning spatial audio signals using loudspeaker settings.

[0006] A VBAP is usually based on: (1) Triangulating the loudspeaker setup automatically or manually; (2) selecting an appropriate triangle based on the direction (such that for a given direction, three loudspeakers are selected that form a triangle within which the given direction falls); and (3) Calculating gain based on the orientation of three loudspeakers that form a particular triangle. Summary of the Invention

[0007] According to a first aspect, there is provided 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 comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces having a corner located at at least three of the speaker nodes, the virtual surface arrangement being defined at least in part by a virtual surface set comprising the plurality of virtual surfaces, each of the plurality of virtual surfaces being respectively referenced by a referencing means, the apparatus comprising: determining an azimuth angle for each virtual surface of the virtual surface set; and arranging the virtual surfaces of the virtual surface set in an order based on the determined azimuth angles to render the ordered virtual surfaces. the at least two search sectors occupying a range of azimuth angles; associating a virtual surface of the ordered virtual surface set with each of the at least two search sectors; obtaining a target panning direction including 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 virtual surface set, starting from the associated virtual surface of the determined search sector, to determine a virtual surface surrounding the target panning direction.

[0008] The reference means may be an index.

[0009] The apparatus configured to search an ordered set of virtual surfaces starting from an associated virtual surface of a determined search sector to determine a virtual surface surrounding a target panning direction may further be configured to: determine an initial search index for the determined search sector, where the initial search index is an index of the associated virtual surface of the determined search sector; determine a set of panning gains of at least three speaker nodes of the associated virtual surface of the determined search sector; and determine that the associated virtual surface surrounds the target panning direction if each panning gain is a non-negative of the set of panning gains of the 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 panning gains of speaker nodes of an associated virtual surface of the determined search sector is not non-negative, the device may be further configured to: select a further virtual surface from the ordered virtual set using an index on one side of the initial search index; determine a set of panning gains of at least three speaker nodes of the further virtual surface; and determine that the further virtual surface surrounds the target planning direction if each panning gain of the set of panning gains of at least three speaker nodes of the further virtual surface is non-negative; If at least one panning gain of the set of panning gains of at least three speaker nodes of the virtual surface is not nonnegative, the apparatus may be further configured to select a still further virtual surface from the ordered virtual set using an index opposite to the initial search index, determine a set of panning gains of at least three speaker nodes of the still further virtual surface, and determine that the still further virtual surface surrounds the target planning direction if each panning gain of the set of panning gains of the at least three speaker nodes of the still further virtual surface is nonnegative.

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

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

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

[0014] The apparatus may be further 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 the 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 be further configured to create a further elevation angle range between the elevation angle of the horizontal plane and the maximum elevation angle.

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

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

[0018] The apparatus may be further configured to assign the virtual surface set 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 virtual surface set 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 apparatus may be further configured to determine that the target elevation angle is within one of the elevation angle range, the further elevation angle range, and the yet further elevation angle range, and to provide the determined elevation angle range.

[0020] The plurality of virtual surfaces having corners located at at least three of the plurality of speaker nodes may have edges connecting pairs of the corners that are configured not to intersect a horizontal plane in three-dimensional space.

[0021] Alternatively, a plurality of virtual surfaces having corners located at at least three speaker nodes may have edges connecting pairs of the corners configured such that they do not intersect with any 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 imaginary surface may be a triad of loudspeakers, with three vectors each pointing to a corner of the triad.

[0024] According to a second aspect, there is provided 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, each of the plurality of virtual surfaces having a corner located at at least three of the speaker nodes, the virtual surface arrangement being defined at least in part by a virtual surface set comprising the plurality of virtual surfaces, each of the plurality of virtual surfaces being respectively referenced by a referencing means, the method comprising:

[0025] The method includes determining an azimuth angle for each virtual surface of the virtual surface set; arranging the virtual surfaces of the virtual surface set in an order based on the determined azimuth angles to provide an ordered virtual surface set; determining at least two search sectors, each of the at least two search sectors occupying a range of azimuth angles; associating a virtual surface of the ordered virtual surface set with each of the at least two search sectors; obtaining a target panning direction including 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 virtual surface set, starting from an associated virtual surface of the determined search sector, to determine a virtual surface surrounding the target panning direction.

[0026] The reference means is an index.

[0027] Starting from an associated virtual surface of the determined search sector and searching the ordered set of virtual surfaces to determine a virtual surface that surrounds the target panning direction may further include determining an initial search index for the determined search sector, where the initial search index is an index of the associated virtual surface of the determined search sector; determining a set of panning gains of at least three speaker nodes of the associated virtual surface of the determined search sector; and determining that the associated virtual surface surrounds the target panning direction if each panning gain is a non-negative of the set of panning gains of the 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 panning gains of speaker nodes of the associated virtual surface of the determined sector is not non-negative, the method may further include selecting a further virtual surface from the ordered virtual set using an index on one side of the initial search index, determining a set of panning gains of at least three speaker nodes of the further virtual surface, and determining that the further virtual surface surrounds the target planning direction if each panning gain is non-negative of the set of panning gains of at least three speaker nodes of the further virtual surface, If at least one panning gain of the set of panning gains of at least three speaker nodes of the surface is not nonnegative, the method may further include selecting a still further virtual surface from the ordered virtual set using an index opposite the initial search index, determining a set of panning gains of at least three speaker nodes of the still further virtual surface, and determining that the still further virtual surface surrounds the target planning direction if each panning gain is nonnegative of the set of panning gains of the at least three speaker nodes of the still further virtual surface.

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

[0030] The azimuth angle of the associated virtual surface may be a boundary angle of the determined search sector, and starting from the associated virtual surface of the determined search sector and searching the ordered set of virtual surfaces to determine a virtual surface surrounding the target panning direction may further include determining whether the target azimuth angle is less than an azimuth angle of the associated virtual surface azimuth angle, and 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 of 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 method may further include determining that a further virtual surface surrounds the target panning direction and determining a set of panning gains of at least three speaker nodes of the further virtual surface if the target azimuth angle is less than a boundary azimuth angle of a further virtual surface of the ordered set of virtual surfaces.

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

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

[0033] The method may further include creating an additional elevation angle range between the elevation angle of the horizontal plane and the maximum elevation angle.

[0034] The method may further include obtaining an elevation angle of a further horizontal plane in the three-dimensional space, where a further number of the plurality of speaker nodes are located on the further horizontal plane, and creating a further elevation angle range between the elevation angle of the horizontal plane and the elevation angle of the further horizontal plane.

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

[0036] The method may further include assigning the virtual surface set 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 virtual surface set to one of the elevation angle range, the further elevation angle range, and the even further elevation angle range.

[0037] The target panning direction may further include a target elevation angle, and the method may further include determining that the target elevation angle is within one of the elevation angle range, the further elevation angle range, and the yet further elevation angle range, providing the determined elevation angle range.

[0038] The plurality of virtual surfaces having corners located at at least three of the plurality of speaker nodes may have edges connecting pairs of the corners that are configured not to intersect a horizontal plane in three-dimensional space.

[0039] The plurality of virtual surfaces having corners located at at least three speaker nodes may have edges connecting pairs of the corners configured such that they do not intersect with any 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 imaginary surface may be a triad of loudspeakers, with three vectors each pointing to a corner of the triad.

[0042] According to a third aspect, there is provided 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 comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces having a corner located at at least three of the speaker nodes, the virtual surface arrangement being defined at least in part by a virtual surface set comprising the plurality of virtual surfaces, each of the plurality of virtual surfaces being respectively referenced by a referencing means, the apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code, together with the at least one processor, causing the apparatus to determine an azimuth angle for each virtual surface of the virtual surface set. the virtual surface set is configured to at least perform the following steps: determining a virtual surface of the virtual surface set in an order based on the determined azimuth angle to provide an ordered virtual surface set; determining at least two search sectors, each of the at least two search sectors occupying a range of azimuth angles; associating a virtual surface of the ordered virtual surface set with each of the at least two search sectors; obtaining a target panning direction that includes at least the target azimuth angle; determining a search sector from the at least two search sectors based on the target azimuth angle; and searching the ordered virtual surface set to determine a virtual surface surrounding the target panning direction, starting from an associated virtual surface of the determined search sector.

[0043] The non-transitory computer readable medium includes program instructions for causing an apparatus to perform a method as previously described.

[0044] The apparatus is configured to perform the method operations as described above.

[0045] The computer program comprises program instructions for causing a computer to carry out the method as described above.

[0046] A computer program product stored on the medium may cause an apparatus to perform the methods as described herein.

[0047] The electronic device may comprise an apparatus as described herein.

[0048] The chipset may comprise an apparatus as described herein.

[0049] SUMMARY OF THE PRESENT APPLICATION The embodiments of the present application aim to address problems associated with the state of the art.

[0050] For a better understanding of the present application, reference will now be made, by way of example, to the accompanying drawings in which: [Brief description of the drawings]

[0051] [Figure 1] FIG. 13 shows a schematic diagram of an example of vector-based amplitude panning including a loudspeaker triad and an active triangle. [Diagram 2] FIG. 2 shows a schematic diagram of a triangulation for vector-based amplitude panning; [Diagram 3] FIG. 13 shows a schematic diagram of a further vector-based amplitude panning triangulation generated using the previous method; [Figure 4] FIG. 13 illustrates a schematic diagram of an amplitude panning gain decision process according to some embodiments; [Diagram 5] FIG. 1 illustrates a flow diagram of an exemplary method for selecting a search method for a set of loudspeaker triplets according to some embodiments. [Figure 6] FIG. 2 illustrates a flow diagram of an exemplary method for preparing a loudspeaker triplet set for a loudspeaker triplet set search according to some embodiments. [Figure 7]FIG. 13 illustrates a flow diagram of a further exemplary method for preparing a loudspeaker triplet for a loudspeaker triplet search according to some embodiments. [Figure 8] FIG. 2 illustrates a flow diagram of an exemplary method for assigning elevation angle ranges to loudspeaker triplet sets in accordance with some embodiments. [Figure 9] FIG. 2 illustrates a flow diagram of an exemplary method for selecting a search method for a set of loudspeaker triplets for a target panning direction according to some embodiments. [Figure 10] FIG. 2 illustrates a flow diagram of an exemplary method for searching a loudspeaker triplet set for a target panning direction according to some embodiments. [Figure 11] FIG. 13 illustrates a flow diagram of a further exemplary method for searching a loudspeaker triplet set for a target panning direction in accordance with some embodiments. [Figure 12] FIG. 2 illustrates a schematic diagram of an apparatus suitable for employing the method for generating a triangulation for vector-based amplitude panning, in accordance with some embodiments; [Figure 13] FIG. 2 illustrates a schematic diagram of an exemplary device suitable for implementing the depicted apparatus; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0052] In the following, suitable apparatus and possible mechanisms for providing Vector Based Amplitude Panning (VBAP) adaptation are described in further detail.

[0053] As mentioned above, VBAP is based on three stages that typically include automatically triangulating the 3D loudspeaker setup, selecting appropriate active triangles based on the orientation (so that for a given orientation, three loudspeakers are selected that form the triangle in which the given orientation falls), and calculating the gains of the three loudspeakers that form a particular triangle (or, in general, a particular polygon). An "active" triangle may be generalized as being a virtual surface arrangement that includes a virtual surface with corners at the locations of the loudspeakers or speaker nodes. Furthermore, although some embodiments below describe the generation of the virtual surface as a triangular surface, the same method and apparatus may be used for any suitable polygonal surface.

[0054] For the purposes of understanding the description herein, the following terminology is adopted: loudspeakers may be named speakers, speaker nodes, and vertices. A virtual surface may be understood to be an acoustic surface represented in the 3D space defined by speaker nodes. Triangulation may be referred to as the process in which an acoustic surface is divided into several identical types of virtual surface shapes, in other words virtual surface arrangements. The virtual surface shapes (or virtual surfaces) may be one of triangles, squares, pentagons, or hexagons. The invention is described below with respect to triangles, which may be referred to by one of the terms virtual surface triplet and loudspeaker triplet. 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 the VBAP gains and loudspeaker triads are pre-formed according to the system loudspeaker configuration (for multiple azimuth and elevation values) and then stored in memory as look-up tables. A real-time process then performs amplitude panning by locating from memory the appropriate loudspeaker triad and corresponding loudspeaker gains for the desired panning direction (given the azimuth and elevation values).

[0057] An efficient process for triangulation of a 3D loudspeaker setup is disclosed in patent publication EP 3541097. Furthermore, the calculation of panning gains can also be computationally efficient if the correct loudspeaker triplet is selected according to given azimuth and elevation values.

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

[0059] When selecting the correct triangle (or loudspeaker triplet) in real time, sufficient processing power needs to be made available to select each possible loudspeaker triplet in turn and calculate the associated panning gains. For example, a loudspeaker setup may include up to 22 individual triangles that may each need to be tested individually to determine the suitable triangle for a given direction. Suitable triangles are identified only as those that have panning gains that are all non-negative. Thus, there is a requirement that the device performing the rendering, depending on a given direction, has sufficient computational power to test all the individual triangles in real time. For some devices, such as mobile user terminals, this requirement may be too demanding, and therefore an alternative strategy is preferably used to select a particular loudspeaker triplet.

[0060] Alternatively, one solution is to deploy a pre-computation method, whereby triangles and panning gains are calculated for each possible combination of elevation and azimuth direction components during the initialization phase. However, this approach is particularly dependent on the resolution of the direction components to be searched. For example, triangles and gains may be pre-computed for each possible degree of resolution of the direction components. This not only results in a large table for the storage of triangle values, and thus a large memory, but also requires significant processing power during the initialization phase. To overcome the problem of searching large tables of pre-computed triangle values, some solutions have adopted solutions from the world of computer graphics, such as Kirkpatrick's point location algorithm. However, in this case (pre-computing triangle values ​​for each elevation resolution), the use of Kirkpatrick's point location algorithm leads to 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 / store of triangle values. This is due to the property that the computations used in VBAP triangulation are cyclic in nature, resulting in suboptimal use of binary search trees.

[0061] The embodiments herein overcome the above shortcomings by providing a solution that is computationally efficient to be used in run-time selection of triangles and requires less storage than traditional table-based methods.

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

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

[0064] 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 a listener 100 at the origin and show a defined active triangle 105 defined by the three loudspeakers. Additionally, 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 the panning gains that correspond to the panning directions.

[0066] In general, vector-based amplitude panning refers to how three unit vectors I1, I2, and I3 form a triangle within which the panning directions fit.

[0067] The panning gains of the three loudspeakers are determined such that the three unit vectors are weighted such that the weighted vector sum points to the desired amplitude panning direction, which 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 gains can be solved by a matrix multiplication as follows:

[0068]

number

[0069] To perform amplitude panning, VBAP needs to first triangulate the 3D loudspeaker setup. There is no single solution to generating the triangulation, the loudspeaker setup can be triangulated in many ways. In standard VBAP, the solution is to try to find a triangle of minimum size (one with no loudspeakers inside it and with sides as equal length as possible). In the general case, this is a valid approach since it treats the auditory object equally in all directions and tries to minimize the distance to the loudspeakers used to create the auditory object in that direction.

[0070] To that end, patent application EP3541097 discloses a method for triangulating a 3D multi-channel loudspeaker setup (virtual or otherwise) to generate an automatic adaptation of Vector Based Amplitude Panning (VBAP) to any loudspeaker setup. The disclosure in patent application EP3541097 describes a triangulation scheme for VBAP 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 scheme can be seen by comparing Figure 2 with Figure 3. In Figure 2 a typical loudspeaker setup is shown where four loudspeakers are added above the horizontal plane of the 7.1 setup and four loudspeakers are added below the horizontal plane to give 7.1+8. In the example below, a full 3D setup (loudspeakers both above and below the horizontal plane) is formed by extending the typical 7.1+4 setup by also adding four loudspeakers below the horizontal plane, resulting in the following positions of the loudspeakers: Elevation angle 0 degrees, azimuth angles 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 FIG. 2), (-150,0) (not shown in FIG. 2), (-90,0) 201, (-30,0) 203. Elevation angle 30 degrees, azimuth angles ±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 FIG. 2), (-135,-20) (not shown in FIG. 2), and (-45,-20) 223.

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

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

[0074] As mentioned above, the embodiments herein start from the consideration that the next stage of the VBAP process is the determination of the correct loudspeaker triplet for a given set of orientation parameters (azimuth and elevation). Although it has been explained that solutions for the selection of the correct loudspeaker triplet already exist, there is a need to have a solution that utilizes a horizontal plane approach for triangulation of the loudspeaker setup as disclosed in EP3541097. Furthermore, this solution should be computationally efficient so that it can be used in the run-time selection of triangles and require less storage than traditional table-based methods. It should be understood that the solution described below can also provide an even more efficient search method for loudspeaker setups that develops a triangulation algorithm that allows the loudspeaker triplet to intersect with the horizontal plane.

[0075] In EP3541097, one of the pre-steps before triangulation involves investigating the positions of the loudspeakers (also called speakers or speaker nodes) so that horizontal layers with some speakers can be identified. For example, five loudspeakers with 0° elevation angle form one horizontal layer at 0° elevation angle. If any horizontal layers exist, 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 range of elevation angles of the limiting horizontal layer. Absolute elevation angle limitations (usually -90° and 90°) can serve to limit the elevation angles of the speaker subsets, even though the speaker subsets may not contain any actual speakers. For example, there may be three speaker subsets (with elevation angles from -90° to 0°, 0° to 30°, and 30° to 90°) with two horizontal layers (e.g., with elevation angles of 0° and 30°). If there is no horizontal layer, there is one speaker set that includes all speakers. In some embodiments, the number and location of the horizontal layers (and therefore the speaker subsets) may be limited. For example, a practical approach may only use a single subset-split horizontal layer at an elevation angle of 0°.

[0076] FIG. 4 discloses an amplitude panning gain decision process 400 that can implement the three stages of the VBAP process.

[0077] FIG. 4 shows an input 401 indicating a particular setup of a loudspeaker system. For example, in the above loudspeaker setup of FIGS. 2 and 3, the input 401 may convey a 7.1+8 loudspeaker configuration. This input is passed to a function that performs a triangulation and triangle set creation process 402. In an embodiment, the function 402 is configured to perform a triangulation of the loudspeaker setup as indicated by the input 401. In an embodiment, the triangulation and triangle set creation process 402 may perform the function according to the process outlined in patent application EP3541097. The output from the triangulation and triangle set creation process 402 can in some examples be a single set of loudspeaker triplet (triangles of the virtual surface of the 3D loudspeaker), or in other examples of loudspeaker setups, this output may include multiple subsets of the loudspeaker triplet. The set / subset of loudspeaker triplet may be passed to a search method selection and preparation process 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 triplets and prepare the format (or structure) of the set / subset of loudspeaker triplets for efficient selection of the most appropriate loudspeaker triplets. The output from 404 is a "prepared" set / subset of loudspeaker triplets, which may include a data structure containing loudspeaker configuration information, a prepared triangulation, a prepared set of loudspeaker triplets, and information to aid in the search. Also shown in FIG. 4 is an indication that the processes performed by functions 402 and 404 may be performed during the configuration / initialization phase of the renderer / decoder. In other words, it is expected that the processes performed by functions 402 and 404 are performed before there is any real-time processing of the audio data. However, there may be examples of operations in which the functions of 402 and 403 are performed during run-time. These examples of operations may include the case where the loudspeaker configuration is not known 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.The "prepared" set / subset of loudspeaker triplets may then be used during the run-time phase of operation of the amplitude panning gain determination process 400. The run-time phase of operation is shown in Figure 4 as a fast triangle selection process and panning gain determination process 406. This function receives a structure of the "prepared" set / subset of loudspeaker triplets and performs a fast search 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 that corresponds to the loudspeaker triplet selected for the direction parameter 403.

[0078] From Fig. 4, the steps following the triangulation of the loudspeaker setup are referred to as the search method selection and preparation process 404. In that regard, Fig. 5 shows a flow chart for the selection of the optimal search method for a set / subset of loudspeaker triplets. As mentioned above, the first step of the VBAP process involves the triangulation of the loudspeaker setup, which results in a set or subset of loudspeaker triplets specific to the loudspeaker setup.

[0079] First, the optimal search method selection process of FIG. 5 may be configured to check variations or combinations of the triplet set / subset of loudspeakers. In this regard, FIG. 5 is shown to check whether the triplet set / subset of loudspeakers falls into one of two variations. The first variation of the triplet of loudspeakers may be considered as a special case that includes the constraint of one speaker at either +90° or −90° elevation angle, with all other speakers being in the same horizontal layer. In other words, all other speakers may have the same value of elevation angle. For example, this kind of variation may include one speaker at −90° elevation angle and another five speakers positioned in the horizontal plane with 0 degree elevation angle. The second variation may be considered as a general case (or default case) where the loudspeaker setup does not satisfy the above constraints.

[0080] In figure 5 the checking step is shown as 501 where a constraint is checked as to whether the loudspeaker setup has one of the speakers placed at an elevation angle value of either +90° or -90°, with the other remaining speakers at the same elevation angle value. If this constraint is met, option 5011 for the special case is chosen. If not, the process selects branch 5012 for the general (or default) case.

[0081] The selection of the above special case (option 5011) leads to a decision (shown as step 503) to use a particular algorithm for the subsequent search of the loudspeaker triplet set / subset (performed in 406). If each azimuth value is associated with a single loudspeaker triplet in the set of loudspeaker triplet, then an algorithm based on azimuth search is selected. This occurs when the above constraints are met, i.e., having one speaker at an elevation value of either +90° or -90°, and all other speakers placed at the same elevation value. The decision to use an azimuth-based search method may occur with the loudspeaker triplet set, or may simply be stored in a location that can be accessed by subsequent steps of the VBAP process.

[0082] The selection of the general case (option 5012) leads to a decision to use a more general method of searching for loudspeaker triplet sets / subsets, as shown for loudspeaker configurations that do not meet the above criteria. In this case, a full 3D search method for loudspeaker triplet sets / 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 the general 3D search method may occur together with the loudspeaker triplet sets / subsets, or it may simply be stored in a location that can be accessed by subsequent steps of the VBAP process.

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

[0084] After the method for searching loudspeaker triplet / subsets has been determined, function block 404 executes a preparation step in which the structure of loudspeaker triplet / subsets is prepared for fast searching during the run-time phase. To that end, Fig. 6 shows the steps involved in preparing loudspeaker triplet / subsets for a subsequent general 3D search method, and Fig. 7 shows the process steps involved in preparing loudspeaker triplet sets for a subsequent search method based on a specific azimuth angle. For clarity, the preparation steps of Figs. 6 and 7 are performed as part of the initialization phase functionality of 404.

[0085] Referring to Figure 6, the process begins by receiving a triplet / subset of loudspeakers. Then, for each triplet of loudspeakers, we find a "center" vector and calculate the angle of the "center" vector projected onto the xy plane. This effectively gives us the azimuth angle of the "center" vector.

[0086] The "center" vector of a loudspeaker triad (or triangle) may be calculated by determining the resolved vector (vector sum) of the three vectors pointing to the vertices (or loudspeakers) of the loudspeaker triad. The azimuth angle is then the angle of this vector projected onto the xy plane. The "center" azimuth angle value θ of the loudspeaker triad tri3d may be expressed as follows:

[0087]

number

[0088] The index i in the above equation is the index of the triangle in the loudspeaker triplet set / subset. The above equation is run for all triangles in the loudspeaker triplet set / subset.

[0089] We define triplet (or triangle) of loudspeakers by pointing to each loudspeaker, and the three vectors defining triplet (or triangle) i are given by:

[0090]

number

[0091] Note that the above arctangent function is assumed to solve the equation for the correct quadrant based on the signs of the numerator and denominator.

[0092] As previously mentioned, this calculation is performed for each loudspeaker triplet (or triangle) in the set of loudspeaker triplet, and is shown as process step 601 in FIG.

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

[0094] The next stage of the general 3D preparation process is to form a number of non-overlapping search sectors that cover the entire range of azimuth angle values. Essentially, this step involves dividing the azimuth angle into a number of sectors, with each section being assigned to a particular range of azimuth angle values. For example, in one example embodiment, assuming that the azimuth angle values ​​are considered to be of integer precision, a 360° range of azimuth angle 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 need not all be the same. In such an embodiment, each range of sectors may be proportional to the distribution of triangles within the triplet set of loudspeakers. In other words, a region of the azimuth angle range that contains a greater number of triangles may be divided into a greater number of sectors, each of which has a smaller granularity than a region of the azimuth angle that has a smaller number of triangles. For example, one embodiment may include dividing the azimuth range into several sectors, each of which may contain a substantially equal number of loudspeaker triplets. After the sectors are formed, the azimuth angles of the boundaries / edges of each sector may be noted and stored for future use. The boundary values ​​for each sector may be θ border3d(j), where j is the sector index and there are a total of J sectors. For example, using the above example of an azimuth range divided into four sectors, the boundary value for each sector may be stored as the sector upper limit θ border3d (0),θ border3d (1),θ border3d (2),θ border3d (3) may include {90°, 180°, 270°, 360°}. Alternatively, some embodiments may develop boundary values ​​that use a lower limit for each sector, such as {0°, 90°, 180°, 270°}. Alternatively, some embodiments may develop boundary values ​​that include both lower and upper limits.

[0095] However, in some embodiments, it may not be necessary to store the above bounds: instead, the bounds for each sector may be implied by employing a scheme in which the number of sectors is known and the range of each sector is evenly divided across the full range of azimuth angles. One C code implementation 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 angle values ​​are between -180 degrees and 180 degrees.

[0096] The process step of forming sectors across the azimuth range is shown as 607 in FIG. 6, and storing the boundaries / edges of each sector is shown as process step 609.

[0097] After the sectors are defined, the preparation process for the fast 3D search method starts with determining an initial search index ζ(j) for each search sector j. In an embodiment, this may be performed by first determining a reference angle ρ(j) for each search sector j. In an embodiment, the reference angle ρ(j) for 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 0° to 89°, the reference angle ρ(0) may be set to 45°. Finally, for each of the J reference angles (and thus for each search sector), a triangle is assigned from the sorted list of loudspeaker triplet (as obtained in step 603). In an embodiment, the assigned triangle is determined based on the central (azimuth) angle θ of the triangle closest to the reference angle ρ(j). tri3d Then, the reordered triangle index i of the triangle closest to the reference angle ρ(j) may be s,j But ζ(j)=i s,j may be assigned as the initial search index ζ(j) of a search sector j, where i s,j is the central (azimuth) angle θ of the triangle closest to the reference angle ρ(j). tri3d is the index of the triangle having

[0098] Determining an initial search index ζ(j) for sector j is shown for every sector J as process step 611 in Figure 6. Storing the index of the initial search sector for future use is shown as process step 613 in Figure 6.

[0099] Referring to Figure 7, a preparation process for a special-case 2D azimuth-based search is shown, which takes as input the set of loudspeaker triplets that have been selected by the process of Figure 5 for the special-case 2D azimuth-based search.

[0100] The process starts by determining the azimuth angles of the two vertices (or loudspeaker positions) of each triangle in the set. That is, for each triangle, the azimuth angles of two vectors, each pointing to a vertex of the triangle, are determined. As explained before, the loudspeaker positions for the azimuth-based search are all on one horizontal plane, except for one loudspeaker (virtual or real) positioned at an elevation angle of ±90°. This therefore means that all triangles of the special-case 2D azimuth-based search contain at least one vertex at an elevation angle of ±90°. As a result, only two azimuth angles are calculated for each triangle.

[0101] For example, in an embodiment, the azimuth angle of, for example, a first vertex of a triangle is given by: θ tri2d =atan(y1 / x1) Now, assuming the arctangent function above solves the equation for the correct quadrant based on the signs of the numerator and denominator, the vector pointing to the first vertex of the triangle is given as:

[0102]

number

number

number

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

[0104] This process may then be repeated for all triangles in the loudspeaker triplet set selected for special case search.

[0105] For example, use the bottom 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] So the first triangle is of the form (φ,θ) and lies between nodes (0,0), (30,0), and (0,-90). The second triangle is between nodes (30,0), (90,0), and (0,-90). The third triangle is between nodes (90,0), (150,0), and (0,-90), etc. The result is seven triangles that cover the lower half of the imaginary sphere.

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

[0108] As mentioned before, for a special 2D azimuth-based search, there is a 1:1 ratio between search sectors and 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, then if the other vertices of the triangle have an azimuth angle greater than 180°, then the sector boundary angle of this triangle is marked as 360°. However, if other triangle vertices are detected to have azimuth angles less than 180°, then this value of the azimuth angle is selected as the sector boundary angle of the triangle.

[0110] Finding the maximum azimuth angle for each triangle of a loudspeaker triplet set is shown as process step 701 in FIG.

[0111] The next step in the preparation process for an azimuth-based search is to determine the sector boundary angle θ border2d This involves ordering the triangles of the loudspeaker triplet set with respect to increasing order of (j), which is shown as step 703 in FIG.

[0112] Finally, the permuted triangles of the loudspeaker triplet sets are stored along with their respective sector boundary angles for future use, which is shown as processing step 705 in FIG.

[0113] Furthermore, in an embodiment, the preparation process as performed by function 404 may include a further process in which each loudspeaker triplet set / subset is assigned to a range of elevation angle values. Such a process is illustrated in FIG. 8, where it can be seen that a first step is to check whether the loudspeaker setup includes multiple horizontal layers of loudspeaker nodes or a single horizontal layer of loudspeaker nodes. This is shown as step 801 in FIG. 8. If step 801 determines that there is only one horizontal layer of loudspeaker nodes, the process proceeds to step 803, which marks the loudspeaker triplet set as occupying the full range of possible elevation angle values ​​from -90° to +90°. However, if step 801 indicates that the loudspeaker setup 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 loudspeaker nodes) is obtained for the loudspeaker setup.

[0114] Next, in step 807, a range of elevation angle values ​​may be formed. In an embodiment, this step may take the form of either creating a range of elevation angle values ​​between the maximum possible value (e.g., +90 degrees) and the elevation angle value of the horizontal layer of the triplet subset of loudspeakers, or creating a range of elevation angle values ​​between two horizontal layer elevation angle values, or creating a range of elevation angle values ​​between the elevation angle value of the horizontal layer of the triplet subset of loudspeakers and the minimum possible value (e.g., -90 degrees). The actual boundaries of the range of elevation angle values ​​may depend on the elevation angle of the horizontal layer of the triplet subset of loudspeakers. A first elevation angle range associated with the horizontal layer with the lowest elevation angle may be formed as a range of values ​​from the minimum elevation angle value to the elevation angle value of the first horizontal layer. A second elevation angle range associated with a horizontal layer with a higher elevation angle than the first horizontal layer may be formed as a range of elevation angle values ​​between the elevation angle value of the first horizontal layer and the elevation angle value of the second horizontal layer. If the second horizontal layer has the highest elevation angle value, a last (third) range of elevation angle values ​​may be formed between the elevation angle values ​​of the second horizontal layer and the maximum elevation angle value. In general, 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 loudspeaker triplet subsets. For example, in this case there are three loudspeaker triplet subsets, the first of which includes a triangle with elevation angle values ​​lying from the maximum elevation angle value to the elevation angle value of the first horizontal layer. The second loudspeaker triplet subset includes a triangle with elevation angle values ​​lying from the elevation angle value of the first horizontal layer to the elevation angle value of the second horizontal layer. The third loudspeaker triplet subset includes a triangle with elevation angle values ​​lying from the elevation angle value of the second horizontal layer to the maximum elevation angle value.

[0115] The above process as performed by step 807 may be further clarified by the following example, where there is a loudspeaker setup that includes horizontal layers at elevation angles of 0° and 30°. In this example, step 807 causes a division of the elevation angle values ​​into triplet subsets of three loudspeakers in the following ranges: 1.-90°(end of range)~0°(horizontal layer), 2.0°(horizontal layer)~30°(horizontal layer), and 3.30° (horizontal layer) to 90° (end of range).

[0116] The triangles (loudspeaker triplets) from the triangulation process may be distributed to loudspeaker triplet subsets according to the elevation angle value of each loudspeaker triplet and the range of elevation angle values ​​of the loudspeaker triplet subsets in step 809. In practice, each loudspeaker triplet is assigned to a loudspeaker triplet subset if its elevation angle value is within the range of elevation angle values ​​given to that loudspeaker triplet subset.

[0117] Finally, FIG. 8 shows step 811 in which the elevation angle ranges for each loudspeaker triplet / subset are stored for use by function 406 .

[0118] Referring to the run-time phase of the VBAP process, the run-time phase may be performed by the fast triangle selection process and panning gain determination process 406, as previously described. The first process of the run-time phase involves taking the obtained target panning direction (directional parameters elevation and azimuth) and assigning it to an appropriate loudspeaker triplet / subset. In an embodiment, this process may take the form of matching loudspeaker triplet / subsets with an assigned range of elevation values ​​that encompass the elevation value of the target panning direction, and then checking whether the search method of the selected loudspeaker triplet / subset is a general 3D search method or a special case 2D azimuth-based search method.

[0119] 9 shows a process configured to perform the above functions. The process receives a target panning direction parameter including azimuth and elevation values. The process starts by receiving a first loudspeaker triplet (step 901) and then performs a check to determine whether the elevation value of the target panning direction parameter is within the range of the elevation values ​​of the (first) loudspeaker triplet / subset (step 903). If the elevation value of the target panning direction parameter is not within the range of the elevation values ​​of the (first) loudspeaker triplet / subset, the process loops back and selects the next loudspeaker triplet to check (step 905). However, if the result of the above check (step 903) returns an indication that the elevation value of the target panning direction parameter is within the range of the elevation values ​​of the loudspeaker triplet / subset, the process proceeds to step 907 where a search method is assigned to the loudspeaker triplet / subset. If it is determined that the loudspeaker triplet / subset is associated with a general 3D search method, the loudspeaker triplet / subset, together with the target panning direction value, is forwarded to the general 3D search method which searches for loudspeaker triplet / subsets (step 909). Alternatively, if it is determined in step 907 that the loudspeaker triplet / subset is associated with a special case 2D azimuth-based search, the loudspeaker triplet / subset, together with the target panning direction value, is forwarded to the 2D azimuth-based method which searches for loudspeaker triplet / subsets (step 911).

[0120] 10 is a flow diagram of a "generic" fast 3D search method that may be implemented by function block 406 as part of the VBAP process. FIG. 10 may be viewed as a process for determining which loudspeaker triplets from a loudspeaker triplet set / subset surround a target panning direction. As alluded to above, the fast 3D search method involves the use of azimuth and elevation values.

[0121]

Number

[0122] The 3D search method starts with the first search sector (j = 0), and it is determined whether the azimuth value θ of the target panning direction is within the limit 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 limit 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 limit of the current search sector j, then the process is configured to move to the next step 1005, where the index i of the triangle associated with the current search sector j s,j is retrieved from the initial search index structure ζ(j).

[0124] Next, the process calculates the index of the extracted triangle i s,j This process is illustrated in FIG.

[0125] This process is performed for the extracted triangle index i s,j If i, then a search for triangles on either side of i may be performed. s,j It is possible to search for triangles with indices slightly higher than i s,j This may be implemented using a counter m configured to both increment and decrement the index i (with each increment of m) so that triangles with indices slightly lower than

[0126]

number

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

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

number

number

number

number

number

[0129] The 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 determines the panning gain g i (These gains are given as a by-product of the computational steps above.)

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

[0131] However, if it is determined in step 1011 that the VBAP panning gain vector g is not all non-negative, then the triangle given by index i is deemed not to be the correct triangle for the input target panning direction. In this case, the process increments counter m by 1 and compares 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: This process is shown as process step 1014, with a feedback loop to check step 1011.

[0132] 11 is a flow diagram of a fast 2D azimuth-based search method that may also be implemented by function block 406 as part of the VBAP process. FIG. 11 may be viewed as a process for determining which loudspeaker triplets from a set of loudspeaker triplets surround a target panning direction. As alluded to above, the fast 2D azimuth-based search method takes as inputs the azimuth angle (θ) value of the target panning direction, a prepared search structure as described by the flow diagram of FIG. 7, and a selected loudspeaker triplet set from the flow diagram of FIG. 9. From the description accompanying FIG. 7, it can be seen that the prepared search structure for the fast 2D azimuth-based search procedure takes as inputs the azimuth angle (θ) value of the target panning direction, the sector boundary angle θ border2D It may be recalled that the search includes the triangles in the loudspeaker triplet sets / subsets arranged in increasing order of (j), and the sector boundary angles themselves. Note that in the case of a 2D azimuth angle based search, there is a one-to-one mapping of triangles in the loudspeaker triplet sets / subsets with the sector boundary angles.

[0133] As shown in FIG. 11, the process receives a target panning azimuth angle and a prepared search structure that includes an ordered triangle list and corresponding sector boundary angles for each ordered triangle.

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

[0135] Next, a check step 1103 is executed, which checks whether the target azimuth angle θ is equal to the sector boundary angle θ of the current index j. border2D (j) is checked to see if the target azimuth angle θ is smaller than the sector boundary angle θ border2D Each time it is determined that the angle is greater than (j), the process loops through step 1105 to test the next sector boundary angle. 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 go through an increasing list of sector boundary angles until the azimuth angle is less than the current sector boundary angle. The index associated with this sector boundary angle is the index of the triangle that is closest to and encircles the target panning azimuth direction θ. This triangle index is then output from the loop (step 1107). In other words, the triangle index is the index of the loudspeaker triplet / triangle that encircles the target panning direction for the 2D search.

[0137] The loopback also includes a check to determine if the current index has reached the number of search sectors (J), in which case the target azimuth direction is greater than the highest 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 FIG.

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

number

[0139] It should be understood that in some embodiments, there may not be a special azimuth-based method of searching for loudspeaker triplet sets. In such embodiments, only the general 3D method is used for loudspeaker triplet sets / 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 may not be performed, along with processing steps 907 and 911 from Figure 9.

[0140] An exemplary implementation of the aforementioned embodiment is shown in Figure 12, which shows a decoder and renderer of an 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 within a frequency band and a ratio metadata within a frequency band, where the ratio (or diffuseness) parameter represents whether the sound in the frequency band is directional, or ambient, 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., stereophonic captured, encoded and transmitted by a smartphone). The demultiplexer and decoder 1201 is configured to separate the bitstream 1221 into an audio signal 1206 component and spatial metadata, such as a diffuseness metadata 1202 component (defining the ratio of ambient energy to total energy) and an directional metadata 1204 component.

[0142] The audio signal in the audio component 1206 is received by a forward filterbank 1203 (which may be a complex-modulated low-delay filterbank) configured to transform the audio signal into frequency bands.

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

[0144] The ambient (or diffuse) portion 1208 may be received by a decorrelator 1207 configured to decorrelate the ambient portion 1208 to produce a spatially incoherent multi-channel signal.

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

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

[0147] The summation module 1211 may be configured to receive the amplitude panned directional output from the amplitude panner 1209 and the spatially incoherent multi-channel signal from the decorrelator 1207 and generate a combined multi-channel signal.

[0148] An inverse filter bank 1213 may then be configured to receive the combined signal and generate an appropriate multi-channel loudspeaker output 1225.

[0149] In some embodiments, the azimuth-based 2D search may be adapted to an elevation range with 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 is border2D Only needs to be determined. As a result, two possible loudspeaker triplets are generated per sector during the run-time phase. The correct loudspeaker triplets may be determined by solving the following equation:

[0150]

number

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

[0152] In addition to the azimuth-based 2D search, the search method can be extended to cover loudspeaker setups where all loudspeakers are simply positioned as a horizontal layer.

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

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

[0155] In some embodiments, device 1400 includes at least one processor or central processing unit 1407. Processor 1407 may be configured to execute various program code, such as the methods described herein.

[0156] In some embodiments, the device 1400 comprises 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 executable on the processor 1407. Furthermore, in some embodiments, the memory 1411 can further include a storage data section for storing data (e.g., data that has been processed or will be processed according to embodiments as described herein). The executed program code stored in the program code section and the data stored in the storage data section can be retrieved by the processor 1407 via the memory-processor coupling whenever needed.

[0157] In some embodiments, the device 1400 comprises a user interface 1405. The user interface 1405 may be coupled to a processor 1407 in some embodiments. In some embodiments, the processor 1407 may 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 into the device 1400, for example, via a keypad. In some embodiments, the user interface 1405 may allow a user to obtain information from the device 1400. For example, the user interface 1405 may comprise a display configured to display information from the device 1400 to a user. The user interface 1405 may comprise a touch screen or touch interface in some embodiments capable of both allowing information to be input into the device 1400 and further displaying information to a user of the device 1400. In some embodiments, the user interface 1405 may be a user interface for communicating with a position determination process as described herein.

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

[0159] The transceiver may communicate with the further device by any suitable known communication protocol, for example in some embodiments the transceiver may 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 input / output port 1409 may be configured to receive the signal and, in some embodiments, determine the parameters as described herein by using a processor 1407 executing appropriate code. Additionally, the device may generate an appropriate downmix signal and parameter output that is sent to a combining device.

[0161] In some embodiments, device 1400 may be employed as at least a portion of a synthesis device. As such, input / output port 1409 may be configured to receive the downmix signal and, in some embodiments, parameters determined by a capture device or a processing device as described herein, and generate an appropriate audio signal format output by using processor 1407 executing appropriate code. Input / output port 1409 may be coupled to any appropriate audio output, for example, a multi-channel speaker system and / or headphones or the like.

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

[0163] The 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, or by hardware, or by a combination of software and hardware. Furthermore, in this regard, it should be noted that any block of logic flow as in the figures may represent program steps, or interconnected logic circuits, blocks and functions, 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 in a processor, a magnetic medium such as a hard disk or floppy disk, and an optical medium such as, for example, a DVD and its data variations, a CD, etc.

[0164] The memory may be of any type suitable for the local technology 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 memories, and removable memories. The data processor may be of any type suitable for the local technology environment and may include, by way of non-limiting examples, one or more of general purpose computers, special purpose 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 a variety of components, such as integrated circuit modules. The design of integrated circuits is generally a highly automated process. Complex and powerful software tools are available to convert logic level designs into semiconductor circuit designs ready to be etched and formed into semiconductor substrates.

[0166] Programs such as those offered by Synopsys, Inc. of Mountain View, California, and Cadence Design Systems, Inc. of San Jose, California, use established rules of design and libraries of pre-stored design modules to automatically route conductors and place components on a semiconductor chip. After the design of a semiconductor circuit 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 fabrication.

[0167] The foregoing description has provided a complete and informative description of example 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 in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar modifications of the subject matter of the present invention remain within the scope of the present invention as defined in the appended claims.

Claims

1. 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 comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces having a corner located at at least three speaker nodes, the virtual surface arrangement being defined at least in part by a virtual surface set comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces being respectively referenced by a referencing means, the apparatus comprising: determining an azimuth angle for each virtual surface in the set of virtual surfaces; arranging the virtual surfaces of the set of virtual surfaces in an order based on the determined azimuth angles to provide an ordered set of virtual surfaces; determining at least two search sectors, each of the at least two search sectors occupying a range of azimuth angles; associating a virtual surface of the ordered set of virtual surfaces with each of the at least two search sectors; obtaining a target panning direction including at least a target azimuth angle; determining a search sector from the at least two search sectors based on the target azimuth angle; starting from the associated virtual surface of the determined search sector, searching the ordered set of virtual surfaces to determine a virtual surface surrounding the target panning direction.

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

3. said apparatus configured to search said ordered set of virtual surfaces starting from said associated virtual surface of said determined search sector to determine a virtual surface surrounding said target panning direction, determining an initial search index for the determined search sector, the initial search index being an index of the associated virtual surface of the determined search sector; determining a set of panning gains for the at least three speaker nodes of the associated virtual surface of the determined search sector; determining that an associated virtual surface encircles 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 panning gain of the set of panning gains of the speaker nodes of the associated virtual surface of the determined search sector is not non-negative, the apparatus: selecting a further virtual surface from the ordered virtual set using an index on one side of the initial search index; determining a set of panning gains for the at least three speaker nodes of the further virtual surface; determining that the further virtual surface surrounds the target planning 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 of the further virtual surface is not non-negative, the apparatus selecting a further virtual surface from the ordered virtual set using an index opposite the initial search index; determining a set of panning gains for the at least three speaker nodes of the still further virtual surface; determining that the yet further virtual surface surrounds the target planning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the yet further virtual surface.

5. each of the plurality of virtual surfaces is defined by at least three vectors each pointing to one of the at least three speaker nodes; and the apparatus is configured to determine an azimuth angle for each virtual surface of the set of virtual surfaces, determining, for each virtual surface, a vector sum of said at least three vectors; and for each virtual surface, determining the azimuth angle as the angle of the vector sum projected onto an xy plane.

6. the azimuth angle of the associated virtual surface is a boundary angle of the determined search sector, the apparatus being configured to search the ordered set of virtual surfaces starting from the associated virtual surface of the determined search sector to determine a virtual surface surrounding the target panning direction, 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 a set of panning gains for the at least three speaker nodes of the associated virtual surface of the determined search sector; 2. The apparatus of claim 1, further configured to: determine that a 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 determine a set of panning gains for the at least three speaker nodes of the further virtual surface if the target azimuth angle is less than a boundary azimuth angle of the further virtual surface of the ordered set of virtual surfaces.

7. each of the plurality of virtual surfaces is defined by at least three vectors each pointing to one of the at least three speaker nodes; and the apparatus is configured to determine an azimuth angle for each virtual surface of the set of virtual surfaces, determining, for each imaginary surface, a first azimuth angle of a first vector of the at least three vectors; determining, for each virtual surface, a second azimuth angle of a second vector of the at least three vectors; and selecting, for each virtual surface, the azimuth angle as the greater of the first azimuth angle and the second azimuth angle.

8. The apparatus, obtaining an elevation angle of a horizontal plane in the three-dimensional space, some of the plurality of speaker nodes being located on the horizontal plane; 8. The apparatus according to claim 1, further configured to: generate an elevation angle range between a minimum elevation angle and said elevation angle of said horizontal plane.

9. The apparatus, The apparatus of claim 8 , further configured to create an additional elevation angle range between the elevation angle of the horizontal plane and a maximum elevation angle.

10. The apparatus, obtaining an elevation angle of a further horizontal plane in the three-dimensional space, further ones of the plurality of speaker nodes being located on the further horizontal plane; and generating a further elevation angle range between the elevation angle of the horizontal plane and the elevation angle of the further horizontal plane.

11. The apparatus, The apparatus of claim 10 , further configured to create an even further elevation angle range between the elevation angle of the further horizontal plane and a maximum elevation angle.

12. The apparatus, 12. The apparatus of claim 8, further configured to assign the 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.

13. the target panning direction further comprises a target elevation angle, the apparatus further comprising:

13. The apparatus of 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 an even further elevation angle range, and provide a determined elevation angle range.

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

15. 15. The apparatus of claim 10, wherein the plurality of virtual surfaces having corners located at at least three speaker nodes have edges connecting pairs of corners configured not to intersect the further horizontal plane in the three-dimensional space.

16. An apparatus according to any preceding claim, wherein the ordering of virtual surfaces in the set of virtual surfaces is in increasing order of the determined azimuth angles of the virtual surfaces.

17. An apparatus according to any preceding claim, wherein the imaginary surface is a triad of loudspeakers comprising three vectors each pointing to a corner of the triad.

18. 1. 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, each of the plurality of virtual surfaces having a corner located at at least three speaker nodes, the virtual surface arrangement being defined at least in part by a virtual surface set comprising a plurality of virtual surfaces, each of the plurality of virtual surfaces being respectively referenced by a referencing means, the method comprising: determining an azimuth angle for each virtual surface in the set of virtual surfaces; arranging the virtual surfaces of the set of virtual surfaces in an order based on the determined azimuth angles to provide an ordered set of virtual surfaces; determining at least two search sectors, each of the at least two search sectors occupying a range of azimuth angles; associating a virtual surface of the ordered set of virtual surfaces with each of the at least two search sectors; obtaining a target panning direction including at least a target azimuth angle; determining a search sector from the at least two search sectors based on the target azimuth angle; and starting from the associated virtual surface of the determined search sector, searching the ordered set of virtual surfaces to determine a virtual surface surrounding the target panning direction.

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

20. searching the ordered set of virtual surfaces starting from the associated virtual surface of the determined search sector to determine a virtual surface surrounding the target panning direction; determining an initial search index for the determined search sector, the initial search index being an index of the associated virtual surface of the determined search sector; determining a set of panning gains for the at least three speaker nodes of the associated virtual surface of the determined search sector; and determining that an associated virtual surface encircles 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 panning gain of the set of panning gains of the speaker nodes of the associated virtual surface of the determined sector is not non-negative, the method further comprises: selecting a further virtual surface from the ordered virtual set using an index on one side of the initial search index; determining a set of panning gains for the at least three speaker nodes of the further virtual surface; determining that the further virtual surface surrounds the target planning 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 of the further virtual surface is not non-negative, the method further comprises: selecting a further virtual surface from the ordered virtual set using an index opposite the initial search index; determining a set of panning gains for the at least three speaker nodes of the still further virtual surface; and determining that the yet further virtual surface surrounds the target planning direction if each panning gain is non-negative of the set of panning gains of the at least three speaker nodes of the yet further virtual surface.

22. each of the plurality of virtual surfaces is defined by at least three vectors each pointing to one of the at least three speaker nodes; and determining an azimuth angle for each virtual surface of the set of virtual surfaces; determining, for each virtual surface, a vector sum of said at least three vectors; and for each imaginary surface, determining the azimuth angle as the angle of the vector sum projected onto an xy plane.

23. an azimuth angle of the associated virtual surface is a boundary angle of the determined search sector, and starting from the associated virtual surface of the determined search sector, searching the ordered set of virtual surfaces to determine a virtual surface surrounding the target panning direction; 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 a set of panning gains for the at least three speaker nodes of the associated virtual surface in the determined search sector; 20. The method of claim 18, wherein if the target azimuth angle is greater than or equal to the azimuth angle of the associated virtual surface, the method further comprises: determining that a further virtual surface surrounds the target panning direction if the target azimuth angle is less than a boundary azimuth angle of the further virtual surface of the ordered set of virtual surfaces; and determining a 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 each pointing to one of the at least three speaker nodes; and determining an azimuth angle for each virtual surface of the set of virtual surfaces; determining, for each imaginary surface, a first azimuth angle of a first vector of the at least three vectors; determining, for each virtual surface, a second azimuth angle of a second vector of the at least three vectors; and for each virtual surface, selecting the azimuth angle as the greater of the first azimuth angle and the second azimuth angle.

25. The method further comprising: obtaining an elevation angle of a horizontal plane in the three-dimensional space, some of the plurality of speaker nodes being located on the horizontal plane; and creating an elevation angle range between a minimum elevation angle and said elevation angle of said horizontal plane.

26. The method further comprising:

26. The method of claim 25, further comprising creating an additional elevation angle range between the elevation angle and a maximum elevation angle of the horizontal plane.

27. The method further comprising: obtaining an elevation angle of a further horizontal plane in the three-dimensional space, further ones of the plurality of speaker nodes being located on the further horizontal plane; 26. The method of claim 25, further comprising: creating an additional elevation angle range between the elevation angle of the horizontal plane and the elevation angle of the additional horizontal plane.

28. The method further comprising:

30. The method of claim 27, further comprising creating an even further elevation angle range between the elevation angle of the further horizontal plane and a maximum elevation angle.

29. The method further comprising:

29. The method of claim 25, further comprising: assigning the virtual surface set 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 virtual surface set to one of the elevation angle range, the further elevation angle range, and the even further elevation angle range.

30. the target panning direction further comprises a target elevation angle, the method comprising:

30. The method of claim 29, further comprising determining that the target elevation angle is within one of the elevation angle range, the further elevation angle range, and an even further elevation angle range, and providing the determined elevation angle range.

31. 31. The method of claim 25, wherein the plurality of virtual surfaces having corners located at at least three speaker nodes of the plurality of speaker nodes have edges connecting pairs of corners configured not to intersect the horizontal plane in the three-dimensional space.

32. 32. The method of claim 25, wherein the plurality of virtual surfaces having corners located at at least three speaker nodes have edges connecting pairs of corners configured not to intersect the further horizontal plane in the three-dimensional space.

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

34. A method according to any one of claims 18 to 33, wherein the imaginary surface is a triad of loudspeakers comprising three vectors each pointing to a corner of the triad.

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