Quantization of spatial audio parameters
By converting the direction parameters of the audio signal into the sphere grid index value, the problem of uneven direction parameters encoding in multi-channel audio signal encoding is solved, and a more uniform encoding density and better spatial audio reproduction effect is achieved.
Patent Information
- Application Number
- CN201980037571.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-09
- Filing Date
- 2019-04-02
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2039-04-02
AI Technical Summary
When the prior art realizes spatial metadata encoding of multi-channel audio signals, uniform quantization and coding of the elevation angle and azimuth components of the direction parameters are difficult to achieve, resulting in uneven distribution of the encoding state, especially in the high density of the pole area of the direction sphere. .
By converting the elevation and azimuth components of the direction parameters into index values, using the sphere grid structure for indexing, selecting the index value of the minimum distance to achieve a more uniform direction distribution, using L2 norm distance calculation and vector codebook quantization to improve Coding efficiency.
A more uniform directional distribution and encoding state are achieved, the unevenness of encoding density in the pole area is reduced, and the spatial audio reproduction quality of the audio signal is improved.
Smart Images

Figure CN112219237B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to an apparatus and method for encoding parameters related to a sound field, but does not exclusively relate to an apparatus and method for encoding parameters related to a time-frequency domain for an audio encoder and decoder. Background Art
[0002] Parametric spatial audio processing is a field of audio signal processing in which a set of parameters is used to describe the spatial aspects of sound. For example, in parametric spatial audio capture from a microphone array, estimating a set of parameters from the microphone array signal, such as the direction of the sound in the frequency band, and the ratio of the directional to non-directional parts of the captured sound in the frequency band, is a typical and effective choice. It is well known that these parameters describe the perceived spatial characteristics of the captured sound at the position of the microphone array very well. These parameters can be used in the synthesis of spatial sound accordingly, for binaural headphones, speakers, or other formats such as panoramic surround sound (Ambisonics).
[0003] Therefore, the direction and direct-to-total energy ratio in a frequency band is a particularly effective parameterization for spatial audio capture.
[0004] A parameter set including a directional parameter in a frequency band and an energy ratio parameter in a frequency band (indicating the directionality of the sound) can also be used as spatial metadata for an audio codec. For example, these parameters can be estimated from an audio signal captured by a microphone array, and a stereo signal can be generated from the microphone array signal to be communicated with the spatial metadata, for example. The stereo signal can be encoded, for example, with an AAC encoder. The decoder can 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, for example, a binaural output.
[0005] The aforementioned solution is particularly suitable for encoding captured spatial sound from a microphone array (e.g., in a mobile phone, a VR camera, a stand-alone microphone array). However, it may be desirable for such an encoder to have other input types in addition to the signal captured by the microphone array, such as speaker signals, audio object signals, or panoramic surround sound signals.
[0006] Analysis of first-order panoramic surround (FOA) input for spatial metadata extraction has been well documented in the scientific literature related to Directional Audio Coding (DirAC) and Harmonic Plane Wave Expansion (Harpex). This is because there are microphone arrays that directly provide FOA signals (more precisely: their variants, B-format signals), and therefore analysis of such input has become a research focus in this field.
[0007] Another input to the encoder is also a multi-channel speaker input, such as a 5.1 or 7.1 channel surround sound input.
[0008] However, with respect to the directional component of metadata that may include elevation, azimuth (and diffuseness) of the resulting direction, achieving a uniform granularity of quantization and / or coding along the azimuth and elevation components (when these two parameters are added to the metadata, respectively) for each considered time / frequency subband results in an uneven distribution of quantization and coding states. For example, a uniform approach for both results in a coding scheme with a higher density closer to the "poles" of the directional sphere (in other words, directly above or below the track or reference position, respectively). Summary of the invention
[0009] According to a first aspect, a method for spatial audio signal encoding is provided, comprising: for two or more audio signals, determining at least one spatial audio parameter for providing spatial audio reproduction, the at least one spatial audio parameter comprising a directional parameter having an elevation component and an azimuth component; converting the elevation component and the azimuth component of the directional parameter into an index value.
[0010] Converting the elevation component and the azimuth component of the direction parameter into index values may include: indexing the elevation component to a first index elevation value, and indexing the azimuth component to a first index azimuth value that depends on the first index elevation value; indexing the elevation component to at least a second index elevation value, and indexing the azimuth component to at least a second index azimuth value that depends on the second index elevation value; and selecting one of the following as the index elevation component and the index azimuth component: a first index elevation value and a first index azimuth value; or at least one second index elevation value and at least one second index azimuth value.
[0011] The above selection may include: determining a first distance between a point on a sphere given by an elevation component and an azimuth component and a point on a sphere given by a first indexed elevation value and a first indexed azimuth value; determining at least one second distance between a point on a sphere given by an elevation component and an azimuth component and a point on a sphere given by at least one second indexed elevation value and at least one second indexed azimuth value; and based on the minimum value of the first distance and the second distance, selecting one of the following as the indexed elevation component and the indexed azimuth component: a first indexed elevation value and a first indexed azimuth value; or at least one second indexed elevation value and at least one second indexed azimuth value.
[0012] The first distance and the second distance may be L2 norm distances measured between two points on a sphere, respectively.
[0013] The elevation component and the azimuth component may be indexed to points on a spherical grid, wherein the spherical grid includes a plurality of points arranged in the form of a sphere.
[0014] A sphere grid may be formed by covering the sphere with smaller spheres, wherein the smaller spheres define points of the sphere grid.
[0015] The elevation component and the azimuth component may each be indexed into a codebook comprising a plurality of indexed elevation values and indexed azimuth values.
[0016] Each indexed elevation angle value within the codebook may be associated with multiple indexed azimuth angle values.
[0017] Indexing may include scalar quantization into index values.
[0018] The elevation component and the azimuth component can be components of the azimuth / elevation vector, wherein converting the elevation component and the azimuth component of the directional parameter into an index value can further include: determining a first distance metric between the azimuth / elevation vector and a first azimuth / elevation code vector from a vector codebook including multiple azimuth / elevation code vectors, and determining at least a second distance metric between the azimuth / elevation vector and at least a second azimuth / elevation code vector from the vector codebook; selecting a minimum distance metric from the first distance metric and the at least second distance metric; and specifying the index value as the index of the azimuth / elevation code vector associated with the minimum distance metric.
[0019] As described above, the first distance and the second distance may be L2 norm distances measured between two points on a sphere, respectively.
[0020] The above-mentioned sphere is a single sphere, and the L2 norm between two points on the single sphere is in the form of -(sin(θ1)sin(θ2)+cos(θ1)cos(θ2)cos(φ1-φ2)), where θ1 and θ2 are the elevation angle values of the first point and the second point of the two points, and where φ1 and φ2 are the azimuth angle values of the first point and the second point of the two points.
[0021] According to a second aspect, there is provided an apparatus for spatial audio signal encoding, comprising: a component for determining, for two or more audio signals, at least one spatial audio parameter for providing spatial audio reproduction, wherein the at least one spatial audio parameter comprises a directional parameter having an elevation component and an azimuth component; and a component for converting the elevation component and the azimuth component of the directional parameter into an index value.
[0022] A component for converting an elevation component and an azimuth component of a directional parameter into index values may include: a component for indexing the elevation component to a first index elevation value, and indexing the azimuth component to a first index azimuth value that depends on the first index elevation value; a component for indexing the elevation component to at least a second index elevation value, and indexing the azimuth component to at least a second index azimuth value that depends on the second index elevation value; and a component for selecting one of the following as the index elevation component and the index azimuth component: a first index elevation value and a first index azimuth value; or at least one second index elevation value and at least one second index azimuth value.
[0023] The components for selecting may include: determining a first distance between a point on a sphere given by an elevation component and an azimuth component and a point on a sphere given by a first indexed elevation value and a first indexed azimuth value; determining at least one second distance between a point on a sphere given by an elevation component and an azimuth component and a point on a sphere given by at least one second indexed elevation value and at least one second indexed azimuth value; and based on the minimum value of the first distance and the second distance, selecting one of the following as the indexed elevation component and the indexed azimuth component: a first indexed elevation value and a first indexed azimuth value; or at least one second indexed elevation value and at least one second indexed azimuth value.
[0024] The first distance and the second distance may be L2 norm distances measured between two points on a sphere, respectively.
[0025] The elevation component and the azimuth component may be indexed to points on a spherical grid, wherein the spherical grid includes a plurality of points arranged in the form of a sphere.
[0026] A sphere grid may be formed by covering the sphere with smaller spheres, wherein the smaller spheres define points of the sphere grid.
[0027] The elevation component and the azimuth component may each be indexed into a codebook comprising a plurality of indexed elevation values and indexed azimuth values.
[0028] Each indexed elevation angle value within the codebook may be associated with multiple indexed azimuth angle values.
[0029] The means for indexing may include means for scalar quantization to an index value.
[0030] The elevation component and the azimuth component can be components of the azimuth / elevation vector, wherein converting the elevation component and the azimuth component of the directional parameter into an index value can further include: determining a first distance metric between the azimuth / elevation vector and a first azimuth / elevation code vector from a vector codebook including multiple azimuth / elevation code vectors, and determining at least a second distance metric between the azimuth / elevation vector and at least a second azimuth / elevation code vector from the vector codebook; selecting a minimum distance metric from the first distance metric and the at least second distance metric; and specifying the index value as the index of the azimuth / elevation code vector associated with the minimum distance metric.
[0031] As described above, the first distance and the second distance may be L2 norm distances measured between two points on a sphere, respectively.
[0032] The above-mentioned sphere is a single sphere, and the L2 norm distance between two points on the single sphere is in the form of -(sin(θ1)sin(θ2)+cos(θ1)cos(θ2)cos(φ1-φ2)), where θ1 and θ2 are the elevation angle values of the first point and the second point of the two points, and where φ1 and φ2 are the azimuth angle values of the first point and the second point of the two points.
[0033] According to another aspect, a device is provided, comprising at least one processor and at least one memory comprising computer program code, the at least one memory and the computer program code being configured to, together with the at least one processor, cause the device to: determine, for two or more audio signals, at least one spatial audio parameter for providing spatial audio reproduction, the at least one spatial audio parameter comprising a directional parameter having an elevation component and an azimuth component; and convert the elevation component and the azimuth component of the directional parameter into an index value.
[0034] The device, which is configured to convert the elevation component and the azimuth component of a directional parameter into index values, may be configured to: index the elevation component to a first index elevation value, and index the azimuth component to a first index azimuth value that depends on the first index elevation value; index the elevation component to at least a second index elevation value, and index the azimuth component to at least a second index azimuth value that depends on the second index elevation value; and select one of the following as the index elevation component and the index azimuth component: a first index elevation value and a first index azimuth value; or at least one second index elevation value and at least one second index azimuth value.
[0035] The device that is caused to make the selection may be caused to: determine a first distance between a point on a sphere given by an elevation component and an azimuth component and a point on a sphere given by a first indexed elevation value and a first indexed azimuth value; determine at least one second distance between a point on a sphere given by an elevation component and an azimuth component and a point on a sphere given by at least one second indexed elevation value and at least one second indexed azimuth value; and based on the minimum value of the first distance and the second distance, select one of the following as the indexed elevation component and the indexed azimuth component: a first indexed elevation value and a first indexed azimuth value; or at least one second indexed elevation value and at least one second indexed azimuth value.
[0036] The first distance and the second distance may be L2 norm distances measured between two points on a sphere, respectively.
[0037] The elevation component and the azimuth component may be indexed to points on a spherical grid, wherein the spherical grid includes a plurality of points arranged in the form of a sphere.
[0038] A sphere grid may be formed by covering the sphere with smaller spheres, wherein the smaller spheres define points of the sphere grid.
[0039] The elevation component and the azimuth component may each be indexed into a codebook comprising a plurality of indexed elevation values and indexed azimuth values.
[0040] Each indexed elevation angle value within the codebook may be associated with multiple indexed azimuth angle values.
[0041] The means caused to index may be caused to quantize the scalar to the index value.
[0042] The elevation component and the azimuth component can be components of the azimuth / elevation vector, wherein the device that is configured to convert the elevation component and the azimuth component of the directional parameter into an index value can be configured to: determine a first distance metric between the azimuth / elevation vector and a first azimuth / elevation code vector from a vector codebook including multiple azimuth / elevation code vectors, and determine at least a second distance metric between the azimuth / elevation vector and at least a second azimuth / elevation code vector from the vector codebook; select a minimum distance metric from the first distance metric and the at least second distance metric; and assign the index value as the index of the azimuth / elevation code vector associated with the minimum distance metric.
[0043] As described above, the first distance and the second distance may be L2 norm distances measured between two points on a sphere, respectively.
[0044] The above-mentioned sphere is a single sphere, and the L2 norm distance between two points on the single sphere is in the form of -(sin(θ1)sin(θ2)+cos(θ1)cos(θ2)cos(φ1-φ2)), where θ1 and θ2 are the elevation angle values of the first point and the second point of the two points, and where φ1 and φ2 are the azimuth angle values of the first point and the second point of the two points.
[0045] A computer program comprises program instructions for causing a computer to execute the method described above.
[0046] A computer program product stored on a medium can cause an apparatus to execute the method as described herein.
[0047] An electronic device may include the apparatus described herein.
[0048] A chipset may include the device described herein.
[0049] The embodiments of the present application are intended to solve the problems associated with the prior art. BRIEF DESCRIPTION OF THE DRAWINGS
[0050] For a better understanding of the present application, reference will now be made by way of example to the accompanying drawings, in which:
[0051] Figure 1 schematically illustrates a system suitable for implementing the apparatus of some embodiments;
[0052] Figure 2 Schematically illustrating how Figure 1 The analysis processor shown.
[0053] Figure 3a Schematically illustrating how Figure 1 The metadata encoder / quantizer shown;
[0054] Figure 3b Schematically illustrating how Figure 1 The metadata extractor shown;
[0055] Figures 3c to 3e Schematically illustrating how the Figure 3a and Figure 3b Exemplary sphere position configurations used in the metadata encoder / quantizer and metadata extractor shown;
[0056] Figure 4 According to some embodiments, Figure 1 A flowchart of the operation of the system shown;
[0057] Figure 5According to some embodiments, Figure 2 A flowchart of the operation of the analysis processor is shown;
[0058] Figure 6 A flow chart showing in more detail the generation of a direction index based on an input direction parameter;
[0059] Figure 7 A flowchart illustrating exemplary operations for quantizing a directional parameter to obtain a directional index in more detail;
[0060] Figure 8 A flow chart showing in more detail the generation of quantized direction parameters based on an input direction index;
[0061] Fig. 9 A flow chart illustrating exemplary operations for converting a quantized direction parameter from a direction index in more detail;
[0062] Fig.10 Exemplary devices suitable for implementing the illustrated means are schematically illustrated. DETAILED DESCRIPTION
[0063] Suitable devices and possible mechanisms for providing metadata parameters derived from effective spatial analysis of multi-channel input format audio signals are described in more detail below. In the following discussion, multi-channel systems will be discussed with respect to multi-channel microphone implementations. However, as described above, the input format can be any suitable input format, such as multi-channel speakers, panoramic surround sound (FOA / HOA), etc. It should be understood that in some embodiments, the channel position is based on the position of the microphone, or is based on a virtual position or direction. In addition, the output of the exemplary system is a multi-channel speaker arrangement. However, it should be understood that the output can be rendered to the user via means other than speakers. In addition, the multi-channel speaker signal can be summarized as two or more playback audio signals.
[0064] As discussed previously, spatial metadata parameters in frequency bands, such as direction and direct-to-total energy ratio (or diffuseness-ratio, absolute energy, or any suitable expression indicating the directionality / non-directionality of sound at a given time-frequency interval) parameters are particularly suitable for expressing the perceptual characteristics of natural sound fields. Synthetic sound scenes such as 5.1 speaker mixes often utilize audio effects and amplitude panning methods that provide spatial sounds that are different from the sounds that occur in natural sound fields. In particular, a 5.1 or 7.1 mix can be configured so that it contains coherent sounds played from multiple directions. For example, some sounds of a 5.1 mix that are usually perceived directly in front are not produced by the center (channel) speaker, but are coherently produced, for example, from the left and right front (channel) speakers, and possibly also from the center (channel) speaker. Spatial metadata parameters such as direction and energy ratio do not accurately express this spatial coherence feature. As such, other metadata parameters such as coherence parameters can be determined from the analysis of the audio signal to express the audio signal relationship between channels.
[0065] As mentioned above, an example of incorporating directional information into metadata is to use determined azimuth and elevation values. However, conventional uniform azimuth and elevation sampling produces a non-uniform directional distribution.
[0066] Therefore, the concept is to try to determine a directional parameter for spatial metadata and index this parameter based on the actual sphere-covered based directional distribution in order to define a more uniform directional distribution.
[0067] The proposed metadata index can then be used with the downmix signal ("channel") to define a parameterized immersive format that can be used, for example, in the Immersive Voice and Audio Services (IVAS) codec. Alternatively and additionally, a spherical grid format can be used in the codec to quantize the directions.
[0068] Furthermore, the concept discusses decoding of such indexed directional parameters to produce quantized directional parameters that can be used in spatial audio synthesis based on sound field related parameterization (directions and ratios in frequency bands).
[0069] about Figure 1 , shows an exemplary device and system for implementing an embodiment of the present application. The system 100 is shown with an "analysis" part 121 and a "synthesis" part 131. The "analysis" part 121 is the part from receiving the multi-channel loudspeaker signal until the encoding of the metadata and the downmix signal, and the "synthesis" part 131 is the part from decoding the encoded metadata and downmix signal to presenting the regenerated signal (e.g. in the form of a multi-channel loudspeaker).
[0070] The input to the system 100 and the "analysis" part 121 is the multi-channel signal 102. In the following example a microphone channel signal input is described, however, in other embodiments any suitable input (or synthetic multi-channel) format may be implemented.
[0071] The multi-channel signal is passed to the down-mixer 103 and the analysis processor 105 .
[0072] In some embodiments, down mixer 103 is configured to receive a multi-channel signal, down-mix the signal to a determined number of channels, and output a down-mixed signal 104. For example, down mixer 103 may be configured to down-mix 2 audio channels that generate a multi-channel signal. The determined number of channels may be any suitable number of channels. In some embodiments, down mixer 103 is optional, and the multi-channel signal is passed to encoder 107 unprocessed in the same manner as the down-mixed signal in this example.
[0073] In some embodiments, the analysis processor 105 is also configured to receive the multichannel signal and analyze the signal to generate metadata 106 associated with the multichannel signal and therefore associated with the downmix signal 104. The analysis processor 105 can be configured to generate metadata, which, for each time-frequency analysis interval, can include a directional parameter 108, an energy ratio parameter 110, a coherence parameter 112, and a diffuseness parameter 114. In some embodiments, the directional parameter, the energy ratio parameter, and the diffuseness parameter can be considered as spatial audio parameters. In other words, the spatial audio parameters include parameters intended to characterize the sound field created by the multichannel signal (or generally, two or more playback audio signals). The coherence parameter can be considered as a signal relationship audio parameter intended to characterize the relationship between the multichannel signals.
[0074] In some embodiments, the parameters generated may differ from band to band. Thus, for example, in band X, all parameters are generated and transmitted, while in band Y, only one of the parameters is generated and transmitted, and further, in band Z, no parameters are generated or transmitted. A practical example of this may be that for some bands, such as the highest frequency band, some parameters are not required for perceptual reasons. The downmix signal 104 and the metadata 106 may be passed to an encoder 107.
[0075] The encoder 107 may include an INAS stereo core 109 configured to receive the downmix (or other) signals 104 and generate a suitable encoding of these audio signals. In some embodiments, the encoder 107 may be a computer (running suitable software stored on a memory and on at least one processor), or alternatively may be a specific device, such as using an FPGA or ASIC. The encoding may be implemented using any suitable scheme. In addition, the encoder 107 may include a metadata encoder or quantizer 109 configured to receive metadata and output information in an encoded or compressed form. In some embodiments, Figure 1 The encoder 107 may further interleave, multiplex into a single data stream or embed metadata into the encoded downmix signal before transmission or storage as shown by the dashed line in FIG. Multiplexing may be achieved using any suitable scheme.
[0076] On the decoder side, the received or acquired data (stream) may be received by a decoder / demultiplexer 133. The decoder / demultiplexer 133 may demultiplex the encoded stream and pass the audio encoded stream to a downmix extractor 135 configured to decode the audio signal to obtain a downmix signal. Similarly, the decoder / demultiplexer 133 may include a metadata extractor 137 configured to receive the encoded metadata and generate the metadata. In some embodiments, the decoder / demultiplexer 133 may be a computer (running suitable software stored in a memory and on at least one processor), or alternatively may be a specific device, for example, using an FPGA or ASIC.
[0077] The decoded metadata and the downmixed audio signal may be passed to a synthesis processor 139 .
[0078] The “Synthesis” portion 131 of the system 100 also shows a synthesis processor 139 that is configured to receive the downmix and metadata and recreate synthesized spatial audio in the form of the multi-channel signal 110 in any suitable format based on the downmix signal and the metadata (depending on the use case, these synthesized spatial audio can be a multi-channel speaker format, or in some embodiments can be any suitable output format such as a binaural or surround sound signal).
[0079] about Figure 4 , showing Figure 1 An exemplary flow chart of the overview shown.
[0080] First, as in Figure 4 As shown in step 401 , the system (analysis part) is configured to receive a multi-channel audio signal.
[0081] Then, as in Figure 4As shown in step 403, the system (analysis part) is configured to generate a down-mix of the multi-channel signal.
[0082] In addition, as in Figure 4 As shown in step 405, the system (analysis portion) is configured to analyze the signal to generate metadata, such as direction parameters; energy ratio parameters; diffusivity parameters; and coherence parameters.
[0083] Then, as in Figure 4 As shown by step 407, the system is configured to encode the downmix signal and metadata for storage / transmission.
[0084] After this, as in Figure 4 As shown in step 409, the system may store / send the encoded downmix and metadata.
[0085] As in Figure 4 As shown in step 411, the system may obtain / receive the encoded downmix and metadata.
[0086] Then, as in Figure 4 As shown by step 413, the system is configured to extract the downmix and metadata from the encoded downmix and metadata parameters, for example, demultiplex and decode the encoded downmix and metadata parameters.
[0087] As in Figure 4 As shown by step 415 , the system (synthesis part) is configured to synthesize an output multi-channel audio signal based on the extracted down-mix of the multi-channel audio signal and the metadata with the coherence parameters.
[0088] about Figure 2 An exemplary analysis processor 105 (eg, Figure 1 In some embodiments, the analysis processor 105 includes a time-frequency domain converter 201.
[0089] In some embodiments, the time-frequency domain converter 201 is configured to receive the multi-channel signal 102 and apply a suitable time-frequency domain transform such as a short-time Fourier transform (STFT) to convert the input time domain signal into a suitable time-frequency signal. These time-frequency signals can be passed to the direction analyzer 203 and the signal analyzer 205.
[0090] Thus, for example, the time-frequency signal 202 may be represented in the time-frequency domain as:
[0091] s i (b,n)
[0092] Where b is the frequency bin index, n is the frame index, and i is the channel index. In another expression, n can be considered as a time index with a sampling rate lower than the sampling rate of the original time domain signal. These frequency bins can be grouped into multiple subbands, which group one or more bins into frequency band indexes k=0,…,K-1. Each subband k has a minimum bin b k,low and the highest interval b k,high , and this subband contains k,low to b k,high The width of the subband can be approximated by any suitable distribution, such as the equivalent rectangular bandwidth (ERB) scale or the Bark scale.
[0093] In some embodiments, the analysis processor 105 comprises a direction analyzer 203. The direction analyzer 203 may be configured to receive the time-frequency signals 202 and, based on these signals, estimate the direction parameter 108. The direction parameter may be determined based on any audio-based determination of "direction".
[0094] For example, in some embodiments, the direction analyzer 203 is configured to estimate the direction with two or more signal inputs. This represents the simplest configuration for estimating "direction", more complex processing can be performed with even more signals.
[0095] Therefore, the direction analyzer 203 may be configured to provide, for each frequency band and time frame, a signal denoted as an azimuth angle. The azimuth angle θ(k,n) and the elevation angle θ(k,n) are also passed to the signal analyzer 205.
[0096] In some embodiments, in addition to the direction parameter, the direction analyzer 203 is also configured to determine an energy ratio parameter 110. The energy ratio may be considered as a determination of the energy of the audio signal that may be considered to arrive from a direction. The direct total energy ratio r(k,n) may be estimated, for example, using a stability measure of the directional estimate, or using any correlation measure, or any other suitable method for obtaining a ratio parameter.
[0097] The estimated direction parameter 108 may be output (and passed to the encoder). The estimated energy ratio parameter 110 may be passed to the signal analyzer 205 .
[0098] In some embodiments, the analysis processor 105 includes a signal analyzer 205. The signal analyzer 205 is configured to receive a parameter direction (such as an azimuth angle) from the direction analyzer 203. and elevation angle θ(k,n) 108 and direct total energy ratio r(k,n) 110). The signal analyzer 205 may be further configured to receive the time-frequency signal (si (b,n)) 202. All of this is in the time-frequency domain; b is the frequency bin index, k is the frequency band index (each band may include several bins b), n is the time index, and i is the channel.
[0099] Although the direction and ratio are expressed here for each time index n, in some embodiments the parameters may be combined over several time indexes. As already expressed, the same applies to the frequency axis, the direction of several frequency intervals b may be expressed by one direction parameter in a band k comprising several frequency intervals b. The same applies to the spatial parameters discussed herein.
[0100] The signal analyzer 205 is configured to generate a plurality of signal parameters. In the following disclosure, there are two parameters: coherence and diffusion, both of which are analyzed in the time-frequency domain. Additionally, in some embodiments, the signal analyzer 205 is configured to modify the estimated energy ratio (r(k,n)). The signal analyzer 205 is configured to generate the coherence and diffusion parameters based on any suitable known method.
[0101] about Figure 5 , a flowchart summarizing the operation of the analysis processor 105 is shown.
[0102] As in Figure 5 As shown in step 501, the first operation is to receive a time domain multi-channel (speaker) audio signal.
[0103] Next, as in Figure 5 As shown in step 503, a time-to-frequency domain transform (eg, STFT) is applied to generate a suitable time-frequency domain signal for analysis.
[0104] Then, in Figure 5 Applying directional analysis to determine direction and energy ratio parameters is shown by step 505 .
[0105] Then, as in Figure 5 Applying analysis to determine coherence parameters (such as surround parameters and / or extended coherence parameters) and diffusivity parameters is shown in step 507. In some embodiments, the energy ratio may also be modified in this step based on the determined coherence parameters.
[0106] exist Figure 5 The final operation of outputting the determined parameters is shown by step 509.
[0107] about Figure 3a , illustrates an exemplary metadata encoder according to some embodiments, and in particular illustrates a direction metadata encoder 300.
[0108] In some embodiments, the direction metadata encoder 300 includes a quantized input 302. The quantized input (also referred to as an encoded input) is configured to define the granularity of a sphere set around a reference position or location from which the direction parameter is determined. In some embodiments, the quantized input is a predefined or fixed value.
[0109] In some embodiments, the direction metadata encoder 300 includes a sphere locator 303. The sphere locator is configured to configure the sphere arrangement based on the quantized input value. The proposed spherical grid uses the following concept: a sphere is covered with smaller spheres, and the centers of the smaller spheres are regarded as points defining a grid of almost equidistant directions, so that the sphere grid includes a plurality of points arranged in the form of a sphere.
[0110] The concept as shown here is to define a sphere relative to a reference position. The sphere can be visualized as a series of circles (or intersections), and for each circle intersection there is a defined number of (smaller) spheres at the circumference of the circle. This is for example about Figures 3c to 3e For example, Figure 3c An exemplary "equatorial cross section" or first major circle 370 is shown, the radius of which is defined as the "major sphere radius". Figure 3c Also shown are smaller spheres (shown as circular cross-sections) 371, 373, 375, 377, and 379, which are positioned so that the circumference of each smaller sphere touches the circumference of the main sphere at one point and touches at least another circumference of at least another smaller sphere at at least another point. Figure 3c As shown, smaller sphere 371 contacts main sphere 370 and smaller sphere 373, smaller sphere 373 contacts main sphere 370 and smaller spheres 371 and 375, smaller sphere 375 contacts main sphere 370 and smaller spheres 373 and 377, smaller sphere 377 contacts main sphere 370 and smaller spheres 375 and 379, and smaller sphere 379 contacts main sphere 370 and smaller sphere 377.
[0111] Figure 3d An exemplary "tropical cross section" or another main circle 380 is shown, and smaller spheres (shown as circular cross sections) 381, 383, 385 are positioned so that the circumference of each smaller sphere touches the circumference of the main sphere (circle) at one point, and at least another smaller sphere circumference at at least another point. Thus, as Figure 3d As shown, the smaller sphere 381 contacts the main sphere 380 and the smaller sphere 383 , the smaller sphere 383 contacts the main sphere 380 and the smaller spheres 381 and 385 , and the smaller sphere 385 contacts the main sphere 380 and the smaller sphere 383 .
[0112] Figure 3eExemplary spheres and cross-sections 370, 380 are shown, as well as smaller spheres (cross-sections) 371 associated with cross-section 370, smaller sphere 381 associated with cross-section 380, and other smaller spheres 392, 393, 394, 395, 397, 398. In this example, only the circles with a starting azimuth value of 0 are drawn.
[0113] Thus, in some embodiments, the sphere locator 303 is configured to perform the following operations to define the directions corresponding to the covering spheres:
[0114] Input: Quantized input (number of points on the "equator", n(0) = M)
[0115] Output: Number of circles Nc, and number of points on each circle n(i), i = 0, Nc - 1
[0116] 1. n(0) = M
[0117] 2.
[0118] 3. R(0) = 1 (radius of the circle at the equator)
[0119] 4. θ(0) = 0 (elevation angle)
[0120] 5. (Radius of the smaller sphere)
[0121] 6. φ(0) = 0
[0122] 7.
[0123] 8. R(1) = R(0) cos p
[0124] 9. i = 1
[0125] 10. While n(i - 1) > 1
[0126] a. (Valid when r << R(0))
[0127] b. θ(i) = p · i
[0128] c. (Granularity of the azimuth angle on circle i)
[0129] d. R(i + 1) = R(i) cos((i + 1) · p)
[0130] e. If i is odd
[0131] i. (First azimuth value on circle i)
[0132] f.Else
[0133] i.φ0(i)=0
[0134] g.End if
[0135] hi=i+1
[0136] 11.End while
[0137] 12.Nc=i+1
[0138] Step 5 can also be replaced by:
[0139]
[0140] The factor k controls the distribution of points along the elevation angle. For k=4, the elevation resolution is about 1 degree. For smaller k, the resolution is correspondingly smaller.
[0141] The elevation angle of each point on circle i is given by the value of θ(i). For every circle above the equator, there is a corresponding circle below the equator.
[0142] Each direction point on a circle can be indexed in increasing order with respect to the azimuth. The index of the first point in each circle is given by an offset that can be deduced from the number of points n(i) on each circle. To obtain these offsets, for the order of circles considered, these offsets are calculated as the number of points accumulated on the circle for the given order, starting with the value 0 as the first offset.
[0143] A possible order of circles could be starting at the equator, followed by the first circle above the equator, then the first circle below the equator, the second circle above the equator, and so on.
[0144] Another option is to start at the equator, then a circle at about 45 degrees elevation above the equator, then a corresponding circle below the equator, then other circles in an alternate order. In this way, for certain simpler speaker positionings, only those first circles are used, thereby reducing the number of bits used to send information.
[0145] In other embodiments, other sequences of circles may be used.
[0146] In some embodiments, a sphere grid may also be generated by considering meridian 0 instead of the equator or any other meridian.
[0147] The sphere locator having determined the plurality of circles and the number of circles Nc, the number of points n(i) on each circle, i=0, Nc-1, and the index order may be configured to pass such information to the EA to DI converter 305 .
[0148] In some embodiments, the direction metadata encoder 300 includes a direction parameter input 108. The direction parameter input may define elevation and azimuth angle values D = (θ, φ).
[0149] The conversion process from (elevation / azimuth) (EA) to direction index (DI) and vice versa is provided in the following paragraphs. Alternative circular sequences are considered here.
[0150] The direction metadata encoder 300 includes an elevation-azimuth to direction index (EA-DI) converter 305. In some embodiments, the elevation-azimuth to direction index converter 305 is configured to receive the direction parameter input 108 and the sphere locator information and convert the elevation-azimuth values from the direction parameter input 108 into a direction index by quantizing the elevation-azimuth values.
[0151] about Figure 6 , illustrating an exemplary method for generating a direction index according to some embodiments.
[0152] exist Figure 6 The receipt of quantized input is shown by step 601 .
[0153] Then, as in Figure 6 As shown in step 603, the method can determine the sphere position based on the quantized input.
[0154] As in Figure 6 As shown in step 602, the method may also include receiving a direction parameter.
[0155] As in Figure 6 As shown in step 605, after the direction parameter and the sphere positioning information have been received, the method may include converting the direction parameter into a direction index based on the sphere positioning information.
[0156] Then, as in Figure 6 As shown in step 607, the method may output a direction index.
[0157] In some embodiments, the elevation-azimuth-to-direction-index (EA-DI) converter 305 is configured to perform the conversion according to the following algorithm:
[0158] enter:
[0159] Output: I d
[0160] In some embodiments, S θ It may take the form of an indexed codebook with N discrete entries, for i=O:N-1, each entry θ iCorresponds to the elevation angle value. In addition, for each discrete elevation angle value θ i , the codebook also includes a set of discrete azimuth values φ j , where the number of azimuth values in the set depends on the elevation angle θ i In other words, for each elevation angle entry θ i , for j = 0: f(θ i ), there can be a different number of discrete azimuth values φ j , where f(θ i ) represents the elevation angle θ i The number of azimuth values in the associated set of azimuth values is the elevation value θ i function.
[0161] In other embodiments, the index of the elevation-azimuth values may not use the above codebook structure to store discrete elevation and azimuth values. Instead, linear quantization may be used, where the number of circles Nc and granularity p provided by the sphere locator may be used to evenly divide the elevation range from -π / 2 to π / 2. The position on the elevation range gives the circle index, and the number of discrete points in azimuth and the corresponding offset off(i) are known.
[0162] 1. Find the circle index
[0163] 2. Find the index of the azimuth angle within circle i:
[0164] 3. Direction index is I d =off(i)+j
[0165] The description of the EA-DI indexing method will be based on the above codebook structure. However, it should be understood that the following method is equally applicable to a uniform quantizer structure in which the elevation angle range is divided along a scale of -π / 2 to π / 2.
[0166] about Figure 7 , showing that in Figure 6 An exemplary method for converting elevation-azimuth to direction index (EA-DI) is shown by step 605 in FIG.
[0167] A first step in quantizing the elevation-azimuth value may include finding the closest codebook entry θ i To scalar the quantized elevation angle value θ to give a first quantized elevation angle value The elevation angle value θ can be scalar-quantized again by looking up the next closest codebook entry. This can be used as the codebook entry θ i+1 or θ i-1 Depending on which one is closer to θ, a second quantized elevation angle value is generated.
[0168] Quantize the elevation angle value θ to the nearest index elevation angle value θ i , and additional landmarks are quantized to the next closest index elevation value θ i+1 or θ i-1 The processing steps are shown as processing steps 701 and 703, respectively.
[0169] For each quantized elevation value and The corresponding scalar quantized azimuth value can be found. In other words, the first quantized elevation value can be obtained by The index elevation angle θ i The azimuth value associated with the The first scalar quantized azimuth value corresponding to the first quantized elevation value The corresponding first scalar quantized azimuth value can be expressed as Similarly, we can also determine The corresponding second scalar quantized azimuth value is expressed as This can be performed by re-quantizing the azimuth value φ, however, this time using the same scalar as the second quantized elevation value The index associated with a set of azimuth values.
[0170] The scalar quantization corresponds to the closest index elevation angle value θ i The azimuth value φ, and the additional quantization corresponding to the next closest index elevation value θ i+1 or θ i-1 The processing steps for the azimuth angle values are shown as processing steps 705 and 707, respectively.
[0171] Once the first elevation-azimuth scalar quantized value pair and the second elevation-azimuth scalar quantized value pair have been determined, a distance metric on a single sphere may be calculated for each pair. The distance metric may be considered by taking the L2 norm distance between two points on a single sphere, so for the first scalar quantized elevation-azimuth pair The distance d is calculated as the first scalar quantized elevation-azimuth pair on a single sphere The distance between the unquantized elevation-azimuth angle pair (θ, φ). Similarly, for the second scalar quantized elevation-azimuth angle pair The distance d′ is calculated as the second scalar quantized elevation-azimuth pair on a single sphere The distance from an unquantized elevation-azimuth pair (θ, φ).
[0172] It should be understood that in the embodiment, the 2Consider the L2 norm distance between two points x and y on a single sphere, where x and y are spherical coordinates in three-dimensional space. When using an elevation-azimuth pair (θ, φ), the spherical coordinates can be expressed as x = (rcos(θ)cos(φ), rcos(θ)sin(φ), rsin(θ)), and for the elevation-azimuth pair The spherical coordinates correspond to When considering a single sphere with radius r = 1, the distance d can be simplified to It can be seen that the distance d depends only on the value of the angle.
[0173] Similarly, the second scalar quantizes the elevation-azimuth pairs on a single sphere The distance d′ from the unquantized elevation-azimuth pair (θ, φ) can be expressed as
[0174] Find the first scalar quantized elevation-azimuth pair The processing steps for the distance between the unquantized elevation-azimuth pairs (θ, φ) are shown as Figure 7 Of which 709.
[0175] Find the second scalar quantized elevation-azimuth pair The processing steps for the distance between the unquantized elevation-azimuth pairs (θ, φ) are shown as Figure 7 The 711 in.
[0176] Finally, the scalar quantized elevation-azimuth pair with the smallest distance metric is selected as the quantized elevation-azimuth value of the elevation-azimuth (θ, φ). In turn, the corresponding index associated with the selected quantized elevation and azimuth pair continues to form the direction index I d .
[0177] The processing steps for finding the minimum distance are shown as Figure 7 Of which 713.
[0178] According to the minimum distance in the index with quantized elevation-azimuth angles θ, φ and The processing steps for selecting between indexes are shown as Figure 7 Of which 715.
[0179] It should be understood that even though the above spherical quantization scheme has been defined in terms of a single sphere, other embodiments may deploy the above quantization scheme based on a universal sphere with a radius not equal to 1. In such embodiments, the above step of finding the minimum distance still holds true because the minimum distance calculation corresponding to the first scalar quantized elevation-azimuth pair and the second scalar quantized elevation-azimuth pair is independent of the radius r.
[0180] It should be noted that the method for finding the direction index I corresponding to the selected quantized value of the elevation-azimuth angle pair (θ, φ) has been described in terms of the preferred embodiment using the first and second quantized scalar values of the elevation angle value θ. d . However, other embodiments may start from a position where more than two different scalar quantized values of the elevation angle θ are used. In such embodiments, the codebook entry closest to the elevation angle value θ may be selected as the quantized elevation angle value on which the ongoing calculation is based. Thus, in such embodiments, a corresponding number of distance metrics are finally compared to the scalar quantized elevation-azimuth pairs that produce the minimum distance to the quantized elevation-azimuth value that is selected as the elevation-azimuth (θ, φ).
[0181] It should be understood that the above indexing operation may involve the following operations: specifying the quantized value as a specific value of the parameter, and then using the index to refer to or reference the quantized parameter value. The index representing the quantized parameter value may be stored or transmitted as part of the encoded bitstream.
[0182] It should be further understood that the above distance metric based on the distance between two points on a single sphere can be used for any directional component quantization scheme using elevation values and azimuth values as vector components. To this end, in other embodiments, a vector codebook including multiple elevation / azimuth code vectors can be used to quantize the elevation / azimuth vector. The vector codebook can be searched using a nearest neighbor search routine, wherein the elevation / azimuth code vector with the smallest distance metric is selected as the code vector closest to the elevation / azimuth vector. In this embodiment, the direction index is then determined as the index closest to the elevation / azimuth code vector. Note that the distance metric used for the nearest neighbor search routine for the vector codebook can be the same as the L2 norm distance between two points x and y on the sphere described above for the case of a spherical grid. That is, for the elevation-azimuth pair (θ, φ), the spherical coordinates can be expressed as x=(rcos(θ)cos(φ), rcos(θ)sin(φ), rsin(θ)), for the elevation / azimuth code vector The spherical coordinates correspond to Therefore, for a single sphere, the distance metric between the elevation / azimuth vector and the elevation / azimuth code vector from the vector codebook can be simplified to the calculation of
[0183] Can output direction index I d 306.
[0184] about Figure 3b , illustrates an exemplary metadata extractor 137 according to some embodiments, and in particular illustrates a direction metadata extractor 350.
[0185] In some embodiments, the directional metadata extractor 350 includes a quantization input 352. In some embodiments, the quantization input is passed from a metadata encoder, or otherwise agreed upon with the encoder. The quantization input is configured to define a granularity of a sphere set around a reference position or location.
[0186] In some embodiments, direction metadata extractor 350 includes a direction index input 351. The direction index input may be received from an encoder or obtained by any suitable means.
[0187] In some embodiments, the directional metadata extractor 350 includes a sphere locator 353. The sphere locator 353 is configured to receive as input the quantized input and generate the sphere arrangement in the same manner as it is generated in the encoder. In some embodiments, the quantized input and the sphere locator 353 are optional, and the sphere arrangement information is passed from the encoder instead of being generated in the extractor.
[0188] The directional metadata extractor 350 includes a directional index to elevation-azimuth (DI-EA) converter 355. The directional index to elevation-azimuth converter 355 is configured to receive the directional index and the sphere position information and generate an approximate or quantized elevation-azimuth output. In some embodiments, the conversion is performed according to the following algorithm.
[0189] Input: I d
[0190] Output: (θ, φ)
[0191] 1. Find the circle index i such that off(i)≤I d ≤off(i+1)
[0192] 2. Calculate the circle index in the hemisphere:
[0193] 3.
[0194] 4.
[0195] In other embodiments, the direction index I d can be decoded into elevation index and azimuth index to obtain the quantized elevation value from the corresponding codebook and quantized azimuth values
[0196] about Figure 8 , showing an exemplary method for extracting direction parameters (or generating quantized direction parameters) according to some embodiments.
[0197] exist Figure 8The receipt of quantized input is shown by step 801 .
[0198] Then, as in Figure 8 As shown in step 803, the method can determine the sphere position based on the quantized input.
[0199] As in Figure 8 As shown in step 802, the method may also include receiving a direction index.
[0200] As in Figure 8 As shown in step 805, after having received the direction index and the sphere positioning information, the method may include converting the direction index into a direction parameter in the form of a quantized direction parameter based on the sphere positioning information.
[0201] Then, as in Figure 8 As shown in step 807, the method may output a quantized direction parameter.
[0202] about Fig. 9 , showing how, according to some embodiments, Figure 8 An exemplary method for converting a directional index into a quantized elevation-azimuth (DI-EA) parameter is shown by step 805 in FIG.
[0203] As in Fig. 9 As shown in step 901, in some embodiments, the method includes finding a circle index value i such that off(i)≤I d ≤off(i+1).
[0204] As in Fig. 9 As shown in step 903, after the circle index has been determined, the next operation is to calculate the circle index in the hemisphere from the sphere positioning information.
[0205] Then, as in Fig. 9 As shown in step 905, the quantized elevation angle is determined based on the circle index.
[0206] As in Fig. 9 As shown in step 907, after the quantized elevation angle has been determined, the quantized azimuth angle is determined based on the circle index and the elevation angle information.
[0207] Although not repeated throughout the document, it should be understood that spatial audio processing typically and in this context occurs in frequency bands. Those frequency bands can be, for example, frequency intervals of a time-frequency transform, or frequency bands that combine several frequency intervals. The combination can approximate the characteristics of human hearing, such as Bark frequency resolution. In other words, in some cases, we can measure and process audio in a time-frequency region that combines several frequency intervals b and / or time index n. For simplicity, these aspects are not expressed by all of the above formulas. In the case of combining multiple time-frequency samples, a set of parameters such as one direction is usually estimated for the time-frequency region, and then all time-frequency samples in the region are synthesized based on the parameter set such as the one directional parameters.
[0208] Using a frequency resolution in the parametric analysis that is different from the frequency resolution of the applied filter bank is a typical approach in spatial audio processing systems.
[0209] about Fig.10 , shows an exemplary electronic device that can be used as an analysis or synthesis device. The device can be any suitable electronic device or apparatus. For example, in some embodiments, the device 1400 is a mobile device, a user device, a tablet computer, a computer, an audio playback device, etc.
[0210] In some embodiments, device 1400 includes at least one processor or central processing unit 1407. Processor 1407 may be configured to execute various program codes, such as the methods described herein.
[0211] In some embodiments, the device 1400 includes a memory 1411. In some embodiments, at least one processor 1407 is coupled to the memory 1411. The memory 1411 can be any suitable storage component. In some embodiments, the memory 1411 includes a program code portion for storing program codes that can be implemented on the processor 1407. In addition, in some embodiments, the memory 1411 may also include a storage data portion for storing data (e.g., data that has been processed or will be processed according to the embodiments described herein). Whenever necessary, the processor 1407 can obtain the implementation program code stored in the program code portion and the data stored in the storage data portion via the memory-processor coupling.
[0212] In some embodiments, device 1400 includes a user interface 1405. In some embodiments, user interface 1405 may be coupled to processor 1407. In some embodiments, processor 1407 may control the operation of user interface 1405 and receive input from user interface 1405. In some embodiments, user interface 1405 may enable a user to input commands to device 1400, for example, via a keyboard. In some embodiments, user interface 1405 may enable a user to obtain information from device 1400. For example, user interface 1405 may include a display configured to display information from device 1400 to a user. In some embodiments, user interface 1405 may include a touch screen or touch interface that enables information to be input to device 1400 and also displays information to a user of device 1400. In some embodiments, user interface 1405 may be a user interface for communicating with a position determiner as described herein.
[0213] In some embodiments, the device 1400 includes an input / output port 1409. In some embodiments, the input / output port 1409 includes a transceiver. In such embodiments, the transceiver may be coupled to the processor 1407 and configured to enable communication with other devices or electronic devices, for example, via a wireless communication network. In some embodiments, the transceiver or any suitable transceiver or transmitter and / or receiver device may be configured to communicate with other electronic devices or devices via a wired or wired coupling.
[0214] The transceiver can communicate with other devices via any suitable known communication protocol. For example, in some embodiments, the transceiver or transceiver component can use a suitable Universal Mobile Telecommunications System (UMTS) protocol, a wireless local area network (WLAN) protocol such as, for example, IEEE 802.X, a suitable short-range radio frequency communication protocol such as Bluetooth, or an infrared data communication path (IRDA).
[0215] The transceiver input / output port 1409 may be configured to receive signals and, in some embodiments, determine parameters as described herein using the processor 1407 executing appropriate code. In addition, the device may generate appropriate downmix signals and parameter outputs to send to a synthesis device.
[0216] In some embodiments, the apparatus 1400 may be implemented as at least part of a synthesis device. Thus, the input / output port 1409 may be configured to receive a downmix signal and, in some embodiments, receive parameters determined at a capture device or processing device as described herein, and generate a suitable audio signal format output using a processor 1407 executing suitable code. The input / output port 1409 may be coupled to any suitable audio output, such as to a multi-channel speaker system and / or headphones or the like.
[0217] Generally, various embodiments of the present invention may be implemented in hardware or dedicated circuits, software, logic, 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 shown and described as block diagrams, flow charts, or illustrated or described using some other graphical representation, it should be fully understood that the boxes, devices, systems, techniques, or methods described herein may be implemented in hardware, software, firmware, dedicated circuits or logic, general hardware or controllers or other computing devices, or some combination thereof as non-limiting examples.
[0218] Embodiments of the present invention may be implemented by computer software, or by hardware, or by a combination of software and hardware, the computer software being executable by a data processor of a mobile device, such as in a processor entity. In addition, in this regard, it should be noted that any box of the logic flow in the accompanying drawings 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 within a processor, a magnetic medium such as a hard disk or a floppy disk, and an optical medium such as a DVD and its data variants, a CD.
[0219] The memory may be of any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory, and removable memory. The data processor may be of any type suitable for the local technical environment and may include, as non-limiting examples, one or more of a general-purpose computer, a special-purpose computer, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a gate-level circuit, and a processor based on a multi-core processor architecture.
[0220] Embodiments of the present invention may be practiced in various components such as integrated circuit modules. The design of integrated circuits is essentially a highly automated process. Complex and powerful software tools are available to convert a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
[0221] The program can automatically route conductors and position components on semiconductor chips using well-established design rules and a pre-stored library of design modules. Once the design of a semiconductor circuit is complete, the design results in a standardized electronic format (e.g., Opus, GDSII, etc.) can be transmitted to a semiconductor manufacturing facility or "fab" for fabrication.
[0222] The foregoing description has provided a complete and informative description of exemplary embodiments of the present invention by way of exemplary and non-limiting examples. However, various modifications and adaptations will become apparent to those skilled in the relevant 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 to the teachings of the present invention will still fall within the scope of the present invention as defined in the appended claims.
Claims
1. A method for spatial audio signal encoding, comprising: for two or more audio signals, determining or receiving at least one spatial audio parameter for providing spatial audio reproduction, the at least one spatial audio parameter comprising a directional parameter having an elevation component and an azimuth component; scalar quantizing the elevation component to give a first indexed elevation value from a codebook comprising indexed elevation values and indexed azimuth values, and scalar quantizing the azimuth component to give a first indexed azimuth value, wherein the first indexed elevation value is associated with a plurality of indexed azimuth values, and wherein the first indexed azimuth value is obtained from the plurality of indexed azimuth values associated with the first indexed elevation value; scalar quantizing the elevation component to give a second indexed elevation value, and scalar quantizing the azimuth component to give a second indexed azimuth value, wherein the scalar quantization of the elevation component is restricted to indexed elevation values whose indices are adjacent to the index of the first indexed elevation value in the codebook, wherein the second indexed elevation value is associated with a plurality of other indexed azimuth values, and wherein the second indexed azimuth value is obtained from the plurality of other indexed azimuth values; and One of the following is selected as the index elevation component and the index azimuth component: the first index elevation value and the first index azimuth value; or the second index elevation value and the second index azimuth value.
2. The method according to claim 1, wherein: The selecting one of the following as the index elevation component and the index azimuth component: the first index elevation value and the first index azimuth value; Or the second index elevation angle value and the second index azimuth angle value include: determining a first distance between a point on a sphere given by the elevation component and the azimuth component and a point on a sphere given by the first indexed elevation value and the first indexed azimuth value; determining a second distance between a point on the sphere given by the elevation component and the azimuth component and a point on the sphere given by the second indexed elevation value and the second indexed azimuth value; and According to the minimum value of the first distance and the second distance, one of the following is selected as the index elevation component and the index azimuth component: the first index elevation value and the first index azimuth value; or the second index elevation value and the second index azimuth value.
3. The method according to claim 2, wherein: The first distance and the second distance are respectively L2 norm distances measured between two points on the sphere.
4. The method according to any one of claims 1 to 3, wherein: The elevation component and the azimuth component are indexed to points on a spherical grid, wherein the spherical grid includes a plurality of points arranged in the form of a sphere.
5. The method according to claim 4, wherein: The sphere grid is formed by covering the sphere with smaller spheres, wherein the smaller spheres define points of the sphere grid.
6. The method according to claim 1, wherein: The elevation component and the azimuth component are components of an azimuth / elevation vector, wherein converting the elevation component and the azimuth component of the direction parameter into an index value comprises: determining a first distance metric between the azimuth / elevation vector and a first azimuth / elevation code vector from a vector codebook comprising a plurality of azimuth / elevation code vectors, and determining at least a second distance metric between the azimuth / elevation vector and at least a second azimuth / elevation code vector from the vector codebook; selecting a minimum distance metric from among the first distance metric and the at least second distance metric; and The index value is assigned as the index of the azimuth / elevation code vector associated with the minimum distance metric.
7. The method according to claim 6, wherein: The first distance and the second distance are respectively L2 norm distances measured between two points on a sphere.
8. The method according to any one of claims 3 and 7, wherein: The sphere is a single sphere, and wherein the L2 norm distance between the two points on the single sphere is in the form of -(sin(θ1)sin(θ2)+cos(θ1)cos(θ2)cos(φ1-φ2)), wherein θ1 and θ2 are elevation angle values of the first point and the second point of the two points, and wherein φ1 and φ2 are azimuth angle values of the first point and the second point of the two points.
9. An apparatus for spatial audio signal encoding, comprising: means for determining, for two or more audio signals, at least one spatial audio parameter for providing spatial audio reproduction, wherein the at least one spatial audio parameter comprises a directional parameter having an elevation component and an azimuth component; means for scalar quantizing the elevation component to provide a first indexed elevation value from a codebook comprising indexed elevation values and indexed azimuth values, wherein the first indexed elevation value is associated with a plurality of indexed azimuth values; means for scalar quantizing the azimuth component to provide a first indexed azimuth value, wherein the first indexed azimuth value is derived from the plurality of indexed azimuth values associated with the first indexed elevation value; means for scalar quantizing the elevation component to provide a second indexed elevation value, wherein the scalar quantization of the elevation component is restricted to indexed elevation values whose indices are adjacent to the index of the first indexed elevation value in the codebook, wherein the second indexed elevation value is associated with a further plurality of indexed azimuth values; means for scalar quantizing the azimuth component to provide a second indexed azimuth value, wherein the second indexed azimuth value is derived from the other plurality of indexed azimuth values; and Means for selecting as the index elevation component and the index azimuth component one of: the first index elevation value and the first index azimuth value; or the second index elevation value and the second index azimuth value.
10. The device according to claim 9, wherein: The means for selecting one of the following as the index elevation component and the index azimuth component: the first index elevation value and the first index azimuth value; Or the components of the second index elevation value and the second index azimuth value include: means for determining a first distance between a point on a sphere given by said elevation component and said azimuth component and a point on a sphere given by said first indexed elevation value and said first indexed azimuth value; means for determining a second distance between a point on the sphere given by the elevation component and the azimuth component and a point on the sphere given by the second indexed elevation value and the second indexed azimuth value; and A component for selecting one of the following as the index elevation component and the index azimuth component based on the minimum value of the first distance and the second distance: the first index elevation value and the first index azimuth value; or the second index elevation value and the second index azimuth value.
11. The device according to claim 10, wherein: The first distance and the second distance are respectively L2 norm distances measured between two points on the sphere.
12. The device according to any one of claims 9 to 11, wherein: The elevation component and the azimuth component are indexed to points on a spherical grid, wherein the spherical grid includes a plurality of points arranged in the form of a sphere.
13. The device according to claim 12, wherein: The sphere grid is formed by covering the sphere with smaller spheres, wherein the smaller spheres define points of the sphere grid.
14. The device according to claim 9, wherein: The elevation component and the azimuth component are components of an azimuth / elevation vector, wherein the means for converting the elevation component and the azimuth component of the direction parameter into an index value comprises: means for determining a first distance metric between the azimuth / elevation vector and a first azimuth / elevation code vector from a vector codebook comprising a plurality of azimuth / elevation code vectors, and determining at least a second distance metric between the azimuth / elevation vector and at least a second azimuth / elevation code vector from the vector codebook; means for selecting a minimum distance metric from among said first distance metric and said at least second distance metric; and Means for assigning the index value as an index of an azimuth / elevation code vector associated with the minimum distance metric.
15. The device according to claim 14, wherein: The first distance and the second distance are respectively L2 norm distances measured between two points on a sphere.
16. The device according to any one of claims 11 and 15, wherein: The sphere is a single sphere, and wherein the L2 norm distance between the two points on the single sphere is in the form of -(sin(θ1)sin(θ2)+cos(θ1)cos(θ2)cos(φ1-φ2)), wherein θ1 and θ2 are elevation angle values of the first point and the second point of the two points, and wherein φ1 and φ2 are azimuth angle values of the first point and the second point of the two points.
