Encoding and decoding spherical coordinates using an optimized spherical quantization dictionary - Patents.com

JP2025505028APending Publication Date: 2025-02-19オランジュ
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024547106
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-02-14
Filing Date
2023-02-13
Publication Date
2025-02-19

AI Technical Summary

Benefits of technology

【0082】 本発明の他の特徴及び利点は、単なる例示及び非限定的な例として与えられる以下の特定の実施形態の説明並びに添付の図面を読むことでより明確に明らかになるであろう。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025505028000001_ABST
    Figure 2025505028000001_ABST
Patent Text Reader

Abstract

The present invention relates to a method for encoding or decoding the spatial direction of a sound source, in which a spherical quantization dictionary is defined on a 3D sphere by encoding the elevation and azimuth angles, and the number of elevation levels (N φ The number of points per level (Ny) is determined based on at least one coded elevation index (i) and two consecutive cumulative radix values ​​(cumN(i), cumN(i-1)) for θ (i)), the cumulative cardinality value (cumN(i)) is proportional to the total number of points and is the upper horizontal plane ( JPEG2025505028000193.jpg10170) and a method for expressing a number of points according to an area of ​​a spherical region including at least one region bounded by a lower horizontal plane of a sphere.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to spherical vector quantization applied to the encoding / decoding of sound data to encode the direction of arrival (abbreviated as "DoA") of a sound source, typically expressed by spherical coordinates (e.g. azimuth and elevation angles at a given distance). [Background technology]

[0002] The encoders / decoders (hereafter referred to as "codecs") currently used in mobile phone communications are mono (a single signal channel rendered by a single loudspeaker). The 3GPP® EVS (short for "Enhanced Voice Services") codec makes it possible to provide "Super HD" quality (also called "High Definition Plus" or HD+ voice) using a Super Wideband (SWB) audio bandwidth for signals sampled at 32 or 48 kHz or a Full Band (FB) audio bandwidth for signals sampled at 48 kHz, with an audio bandwidth of 14.4 to 16 kHz (9.6 to 128 kbit / s) in SWB mode and 20 kHz (16.4 to 128 kbit / s) in FB mode.

[0003] The next quality evolution of conversational services offered by operators should consist of immersive services using terminals such as smartphones equipped with multiple microphones or remote presence or spatialized audio or video conferencing equipment with 360° video or even "live" audio content sharing equipment with spatialized 3D sound rendering that is much more immersive than simple 2D stereo rendering. With the more widespread use of mobile phone listening with audio headsets and the emergence of advanced audio equipment (accessories such as 3D microphones, voice assistants with acoustic antennas, virtual reality or augmented reality headsets), the capture and rendering of spatialized sound scenes is now widespread enough to provide an immersive communication experience.

[0004] For this reason, the upcoming 3GPP® standard "IVAS" (short for "Immersive Voice and Audio Services") proposes to extend the EVS codec to immersive audio by accepting at least the following spatialized sound formats (and combinations of them) as codec input formats: - Stereo or 5.1 multi-channel format (channel-based) where each channel feeds a loudspeaker (e.g. L and R for stereo or L, R, Ls, Rs, C for 5.1) - Object format (object-based), where a sound object is described as an audio signal (typically mono) associated with metadata describing the attributes of this object (position in space, spatial width of the sound source, etc.) - Ambisonic format (scene-based) which describes the sound field at a given point, typically captured by a spherical microphone or synthesized in the domain of spherical harmonics.

[0005] There is also the challenge of potentially considering other input formats, such as a format called Metadata-Assisted Spatial Audio (MASA), which corresponds to a parametric representation of sound picked up by a mobile phone equipped with multiple microphones, and which is described in more detail below.

[0006] The signal processed by the encoder / decoder takes the form of a succession of blocks of sound samples, hereinafter called "frames" or "subframes".

[0007] Furthermore, in the following, the mathematical notation follows the following conventions: - Scalar: s or N (lower case for variables or upper case for constants) - Vector:q (lowercase, bold and italic) - Matrix: M (uppercase, bold and italic)

[0008] In the following, we consider a n+1-dimensional ball of radius r.

number

number

[0009] Here, the definition of three-dimensional spherical coordinates may be recalled. For a three-dimensional point (x,y,z), there are at least two classical conventions for the spherical coordinates, commonly denoted as (r,φ,θ). - Geographic conventions: x=rcosφcosθ, y=rcosφsinθ, z=rsinφ(r≧0, -π / 2≦φ≦π / 2, -π≦θ≦π) - Physical conventions: x=rsinφcosθ, y=rsinφsinθ, z=rcosφ(r≧0, 0≦φ≦π, -π≦θ≦π)

[0010] The angles φ, θ are defined here in radians without loss of generality.

[0011] The radius r and the azimuth angle (or longitude) θ are the same in these two definitions, but the angle φ differs depending on whether it is defined with respect to the horizontal plane 0xy (elevation angle or latitude on the interval [-π / 2,π / 2]) or based on the axis 0z (colatitude or polar angle on the interval [0,π]). The azimuth angle θ can be defined on the interval [-π,π] and evenly on [0,2π] by simple operations modulo 2π. In the following, it is preferred to express the same angular coordinates in degrees, although other units may be used. It should be noted that symbols may differ in the literature (e.g. Φ instead of φ) and / or be interchanged (e.g. θ for colatitude and φ for longitude).

[0012] In what follows, the convention adopted is preferably that of using elevation and azimuth angle pairs, but the invention is applicable to any variant of the definition of spherical coordinates.

[0013] Of interest in the present invention is the exemplary embodiment of spherical vector quantization applied to the 3D directional coding of an audio source, although the present invention can also be applied to other audio formats and other signals in which three-dimensional spherical data is coded (e.g. images or 360 video).

[0014] The principles of directional audio coding (DiRAC) are recalled below: In some variants, it is possible to apply the invention to other coding schemes, in particular transform-based audio coding.

[0015] DiRAC coding is described, for example, in the paper "DiRAC: A parametric approach to sound coding," in which a mapping is performed through a directional analysis to find the direction of arrival (DoA) of each subband. A "diffuseness" parameter is added to this DoA to provide a parametric description of the sound scene.

[0016] A multi-channel input signal is encoded in the form of transport channels (typically mono or stereo signals obtained by reducing multiple pickup channels) as well as spatial metadata (DoA and "spreadiness" of each sub-band).

[0017] Fig. 1 describes an exemplary implementation of DiRAC coding. In this example, the number of channels is reduced in the coding (downmix - block 100) and the coding (block 110) is performed, for example, with a monocodec (for example 3GPP EVS at a given bit rate (24.4 kbit / s)) on only one channel. The input signal is also decomposed into frequency subbands (block 120), for example by a filter bank or a short-time Fourier transform. Here, a division into Bark bands (for example 24 subbands distributed in frequency on the Bark scale known from the prior art) is assumed. For each frame and each subband, DiRAC coding typically estimates two parameters (block 130): the direction of the main sound source in elevation (φ) and azimuth (θ) and the "diffuseness" ψ, as described in the aforementioned paper by Pulkki; for simplicity of notation, no frame index or subband is used for the various parameters. The DoA is generally estimated by the active intensity vector with time average. In some variations, it would be possible to implement other methods for estimating φ, θ, ψ.

[0018] The DoA is coded with a predefined number of bits (e.g., 7 bits) per pair (φ,θ) in each frame and each subband (block 140). The "diffusivity" ψ is a parameter between 0 and 1 and is coded here by scalar quantization (e.g., 6 bits) (block 150). Thus, in the given example, the spatial metadata coding budget is 24×(7+6)=312 bits (i.e., 15.6 kbit / s) per frame and the global budget is 24.4+15.6=40 kbit / s. The "downmix" signal coded bitstream and the coded spatial parameters are multiplexed to form a bitstream for each frame (block 160).

[0019] 2 shows an exemplary embodiment of a DiRAC decoder. After the bitstream is demultiplexed (block 200), the "downmix" signal is decoded (block 210). The spatial parameters are decoded (blocks 250 and 270). The decoded signal is then

number

number

[0020] Based on the decoded signals, a decorrelation is performed (block 230) to have a "diffuse" version (corresponding to the maximum source width). This decorrelation also realizes an increase in the number of channels to obtain a first-order Ambisonic signal in four channels (W, Y, Z, X) at the output of block 230. The decorrelated signals are decomposed in time / frequency (block 240). The signals obtained from blocks 240 and 260 are combined per subband (block 275) after applying the scaling coefficients obtained from the decoding "diffuseness" (blocks 271 and 272) (blocks 273 and 274). This adaptive mixing makes it possible to "dose" the source width and the diffuse properties of the sound field in each subband. The mixed signals are transformed into the time domain (block 280) by a filter bank or an inverse short-time transform.

[0021] Therefore, the sound source directions in the DiRAC format are represented in the form of 3D spherical data, typically in the form of spherical coordinates (azimuth, elevation) according to geographic conventions. In this context, there is a need to effectively represent this DoA information, which is a three-dimensional spherical

number

[0022] Another example of a parametric format for immersive audio is the MASA format described in the contribution (Non-Patent Document 2) (source: Nokia Corporation). Its principle is summarized in Fig. 3. It is assumed that a mobile phone is equipped with several microphones (e.g., four microphones), which are arranged in predefined locations (e.g., two at the bottom of the mobile phone, one at the top of the mobile phone, and the last one at the back shell of the mobile phone). These microphones are considered as grouped together in block 300, and as many signals (channels) are provided as there are microphones. Possibly additional information such as the arrangement or characteristics of the microphones is also included.

[0023] Block 310 performs a parametric analysis of the signal coming from block 300, using a similar DiRAC technique, which provides the transport channels and metadata. This MASA analysis is generally selected independently by the mobile phone manufacturer. The number of transport channels is typically limited to one (mono) or two (stereo) and can be defined simply by selecting a main microphone in the mono case and two opposing microphones in the stereo case (e.g. one at the bottom and the other at the top of the mobile phone). An example of a MASA metadata format is described, for example, in the contribution (Non-Patent Document 3) (source: Nokia Corporation). Of particular interest here is a parameter called "direction index", which is coded in 16 bits and is described in the abovementioned document as "direction of arrival of sound in the time-frequency interval, spherical representation with an accuracy of about 1 degree, value interval: "covering all directions with an accuracy of about 1°".

[0024] It therefore contains the sound source directions (DoA) according to a 3D spherical grid with (angular) resolution close to 1 degree. This DoA information is provided for each frame and frequency subband by the DoA estimation (block 311). Block 312 (inside block 310) therefore encodes the DoA information, which is encoded with 16 bits per DoA.

[0025] Block 320 represents the IVAS codec, which is not yet available as a 3GPP® standard but is under development. However, 3GPP® has proposed that the MASA parametric format, which defines the transport channels and metadata (including DoA per frame and subband), be the input format of the IVAS codec. A (future) IVAS encoder must perform a step of decoding the DoA information (block 321) in order to fully utilize this DoA information and to be able to compress at a lower rate. The implementation details of the compression of the input MASA format into an IVAS bitstream at a given rate and the associated decoding are beyond the scope of the present invention, but it is noted, for example, that the MASA format is based on an extension principle of DiRAC coding, where the transport channels can be coded separately (by a mono core codec) or together (by a stereo core codec) and the metadata can be coded at a lower rate than the MASA input format.

[0026] In general, a ball

number

[0027] An example of a 3D spherical grid is provided in the appendix and source code accompanying the contribution (Non-Patent Document 3) (provided by Nokia Corporation).

[0028] The spatial direction of an audio source in a given frame and a given subband in the WMASA format proposal is represented by two angles: azimuth and elevation. In the following, the notation φ for elevation and θ for azimuth is used, whereas in the literature (Non-Patent Document 3) the opposite notation is used.

[0029] In the above document, the definition of a spherical grid is given as follows:

[0030] The grid is a discretization of the surface of a 3D sphere of radius 1. tot =2 16 It consists of -208=65328 points, each represented by a single 16-bit index. The grid is defined by three stored elements: · The number of discrete values ​​N for coding positive elevation angles (i.e. |φ|) φ =122 · Scalar quantization dictionary for elevation angles (for the northern hemisphere corresponding to |φ|):

number

[0031] The exact definition of the grid is detailed below. Each point on the 3D grid is represented by a coded elevation angle value (coded absolute value

number

number

number

number

number

number

number

number

[0032] Number of coded azimuth angle values ​​N θ (i) is

number

number

[0033] In reality, it looks like this:

number

[0034] The total number of points in the grid is

number

number

number

number

number

[0035] The above mentioned document provides one way to encode a given point (φ, θ).

[0036] Given a point (φ,θ) to be coded, quantization on a grid (nearest neighbor search) is performed according to the following steps: · Sign of elevation angle φ sgn φ and the absolute value |φ| is determined. In particular, if φ≧0, then sgn φ = 1 otherwise -1. The absolute value |φ| is coded by uniform scalar quantization by selecting the two nearest neighbors. This "two survivors" coding can be done, for example, by a preliminary search that exhaustively searches the nearest neighbors in the (positive) elevation dictionary.

number

number

[0037] This leaves two candidates

number

number

number

number

number

number

number

number

number

number

number

number

number

[0038] The closest pair in this sense

number

number

number

[0039] Selected points

number

number

number

number

[0040] This allows 0, ..., N totAn index of the form index in the interval -1 is obtained.

number

[0041] The cumulative radix value cumN is calculated on the fly each time an index is determined. cumN(0)=N θ (0) cumN(1)=cumN(0)+N θ (1)=N θ (0)+N θ (1) cumN(2)=cumN(1)+N θ (1)=N θ (0)+2N θ (1) cumN(3)=cumN(2)+N θ (2)=N θ (0)+2N θ (1)+N θ (2) cumN(4)=cumN(3)+N θ (2)=N θ (0)+2N θ (1)+2N θ (2) .... cumN(2i-1)=cumN(2i-2)+N θ (i) cum(2i)=cumN(2i-1)+N θ (i)

[0042] The decoding method in the above-mentioned document is explained in the flow chart of FIG.

[0043] The decoding starts from index (block 400) and the elevation angle information id φ , sgn φ and azimuth angle information id θ (block 413), thereby

number

[0044] The principle of decoding is to continuously compare the index value with the continuously accumulated base value cumN (or the sum of base values). The continuously accumulated base value cumN is the base N at the same absolute value of the elevation angle (in the Northern Hemisphere and the Southern Hemisphere). θ Considering the fact that (i) is the same for i = 0,..., N φ -1 is recursively calculated on-the-fly. The sign sgn φ of the elevation angle is decoded by using a predefined order in which spherical layers are described, such as the equator, the first layer with a positive elevation angle (+), the first layer with a negative elevation angle (-),..., the North Pole (+) and the South Pole (-).

[0045] id φ sgn φ and the value of cumN(0) is initialized (block 401).

[0046] If index ≧ cumN(0) (block 402), the decoding of the information is performed for the "elevation angle layer" outside the equator with index i > 0. The search for the "elevation angle layer" is performed in a loop from i = 1 to i = N φ -1 (blocks 403, 404, 411). In iteration i, the cumulative base is recursively calculated (blocks 405, 408), compared with the index (blocks 406, 409), and the index is decoded (blocks 407, 410).

[0047] If index < cumN(0) (block 402), the decoding of the information index is performed for the layer corresponding to the equator (block 412).

[0048] In the implementation form of the source code attached to the contribution (Non-Patent Document 3), the test for verifying whether i = N φ -1 is id φ = N φ -1, sgn φ = -1, id θNote that this is done to explicitly decode sgn = 0. This part also uses the code sgn φ = 1 is possible, so it was not adopted, and cumN(N φ -1) to decode the points associated with the poles. The specific management of the poles can be ignored. What is important is the principle of iterative decoding by comparing the index with a cumulative cardinality (or cardinality sum) calculated over time.

[0049] Index id φ , sgn φ , id θ When is decoded, in 413, the spherical coordinate

number

number

number

number

[0050] This method, implemented in the above mentioned contribution (Non-Patent Document 3), uses N φ = 122 float

number

[0051] The main drawback of this method is its very high complexity, which, assuming 24 subbands (and therefore 24 DoAs per frame) and a time resolution of 5 ms (and therefore one frame every 5 ms), amounts to around 123 WMOPS (weighted millions of operations per second) for encoding and around 12 WMOPS for decoding. The reason for this particularly high cost is that the scalar quantization of the elevation angle is performed by looking up a stored dictionary, and in particular the cumulative cardinals cumN(i) are computed on the fly.

[0052] There is therefore a need to improve upon the prior art for spherical data quantization in 3D dimensions, particularly for efficiently encoding DoA data, with minimal complexity where possible, while ensuring that there are no unused indices for a given total number of points (or equivalently for a given bit budget). [Prior art documents] [Non-patent literature]

[0053] [Non-Patent Document 1] V.Pulkki,Spatial sound reproduction with directional audio coding,Journal of the Audio Engineering Society,vol.55,no.6,pp.503-516,2007 [Non-Patent Document 2] 3GPP(registered trademark) Tdoc S4-180087:On IVAS audio formats for mobile capture devices [Non-Patent Document 3] 3GPP(registered trademark) Tdoc S4-191167(Oct.2019),Description of the IVAS MASA C Reference Software Summary of the Invention [Problem to be solved by the invention]

[0054] The present invention aims to improve upon the prior art. [Means for solving the problem]

[0055] For this purpose, the invention provides a method for encoding a spatial direction of a sound source, this direction being defined by spherical coordinates including an elevation coordinate and an azimuth coordinate, a spherical quantization dictionary being defined on a 3D sphere by an elevation coding and an azimuth coding, - the elevation encoding uses scalar quantization and provides at least one encoded elevation index related to the number of elevation levels; - the azimuth coding uses scalar quantization according to the number of points per level depending on the coding elevation index, - The number of points per level is determined based on two consecutive cumulative cardinal values, - the cumulative cardinality value of the coded elevation index is proportional to the total number of points and represents a number of points according to an area of ​​a spherical zone including at least one zone bounded by an upper horizontal plane of a positive elevation level of the coded elevation index and a lower horizontal plane of the sphere.

[0056] The cumulative cardinality values ​​used to define the spherical quantization dictionary, and in particular to determine the number of quantization levels of the azimuth coordinates, are thus based on direct estimates of the area of ​​the spherical zones, thus avoiding the on-the-fly and recursive computation of cardinality sums used in the methods proposed in the prior art, which are very resource intensive.

[0057] The method proposed here consumes significantly less resources, e.g., about 2 WMOPS for encoding and about 1 WMOPS for decoding.

[0058] By defining such a quantization dictionary, it is also possible to utilize all possible points (or codewords) of the dictionary, making the quantization more efficient and ensuring that there are no unused indices (or codewords) in the grid. The present invention is particularly applied to implement a more efficient method for encoding and decoding 16-bit DoA information for defining the MASA format at the input of the IVAS coding.

[0059] In one embodiment, the elevation encoding includes levels corresponding to the equator and poles of a 3D sphere, allowing all specific points of the sphere (equator and poles) to be included in the quantization dictionary.

[0060] In one embodiment, the number of points for azimuth encoding is pre-determined for an elevation level corresponding to the equator, and the total number of points is calculated using the following formula:

number

[0061] Therefore, this method is applicable when we know the number of points for a particular spherical layer, such as those corresponding to the equator and those corresponding to the poles, which can be defined by fixed values.

[0062] In one particular embodiment, the cumulative cardinality value of the coded elevation index is the area (A) of a spherical zone bounded by the upper horizontal plane of the positive elevation level of the coded elevation index and this same plane of a sphere symmetric about the equator. i ) minus the area (A0) corresponding to the elevation angle level of the equator, the following ratio:

number

number

[0063] In one variant embodiment, the cumulative cardinality value of the coded elevation index is the area (A') of a spherical zone bounded by the upper horizontal plane and the equatorial plane of the positive elevation level of the coded elevation index. i ) minus half the area corresponding to the elevation angle level of the equator, according to the following ratio:

number

number

[0064] These ratios of the areas of the spherical zones allow a straightforward direct estimation of the number of points in the corresponding spherical zones, which are subsets of the complete surface of the 3D sphere, by a simple triplet rule.

[0065] With these ratios, the cumulative base value can be expressed as follows:

number

number

[0066] In one embodiment, the elevation encoding is based on the number of elevation levels (N φ ) gives the encoded elevation index (i) and code information for

[0067] Therefore, only one hemisphere is considered to define the quantization dictionary, and the number of elevation levels and points per level are symmetric about the equator.

[0068] In one embodiment, the transmitted global quantization index (index) is the determined number of points per level (N θ Regarding (i), it is determined based on the azimuth angle index coded by scalar quantization and an accumulated base value obtained based on at least the coded elevation angle index.

[0069] The cardinality values ​​defined in this way can be directly (analytically) estimated to define the global index to be transmitted, thereby reducing the maximum amount of computation.

[0070] The present invention relates to a method for decoding a spatial direction of a sound source, the direction being defined by spherical coordinates including an elevation coordinate and an azimuth coordinate, a spherical quantization dictionary being defined on a 3D sphere by an elevation coding and an azimuth coding, - Elevation decoding uses scalar quantization and is proportional to the number of elevation levels (N φ ) , giving at least one decoded elevation angle index (i) for - Azimuth decoding is performed by dividing the number of points per level (N θ (i) using scalar quantization according to - Number of points per level (N θ (i)) is determined based on two consecutive cumulative cardinal values ​​(cumN(i), cumN(i-1)), The cumulative radix value cumN(i) of the decoded elevation index (i) is proportional to the total number of points and is the upper horizontal plane (

number

[0071] The decoding method has the same advantages as the encoding method and allows optimizing computing resources by using an optimized spherical quantization dictionary.

[0072] Similar to the encoding, and with the same advantages, in one embodiment the elevation decoding includes levels corresponding to the equator (0°) and poles (+ / -90°) of a 3D sphere.

[0073] According to one particular embodiment, the number of points for azimuth decoding (N θ (0)) is pre-determined for the elevation level corresponding to the equator, and the total number of points

number

number

[0074] In one embodiment, the cumulative radix value (cumN(i)) of a decoded elevation index (i) is the sum of the upper horizontal plane (

number

number

number

number

[0075] In one possible example, the formula for the cumulative cardinality value is:

number

number

[0076] According to one embodiment, the elevation decoding is performed based on the number of elevation levels (N φ ) gives the decoded elevation index (i) and code information for

[0077] In one embodiment, the decoding includes receiving a global quantization index (index) and, based on this index, determining an accumulated radix value based on at least the decoded elevation index and a determined number of points per level (N θ (i)) and determining a decoding azimuth angle index for the

[0078] The invention is directed to an encoding device comprising a processing circuit for carrying out the steps of the encoding method as described above.

[0079] The invention is also directed to a decoding device comprising a processing circuit for carrying out the steps of the decoding method as described above.

[0080] The invention also relates to a computer program comprising instructions for implementing an encoding or decoding method as described above, when executed by a processor.

[0081] Finally, the invention relates to a storage medium readable by a processor and storing a computer program comprising instructions for carrying out an encoding or decoding method as described above.

[0082] Other characteristics and advantages of the invention will become more clearly apparent on reading the following description of particular embodiments, given purely as illustrative and non-limiting examples, and the accompanying drawings, in which: [Brief description of the drawings]

[0083] [Figure 1] 1 shows the DiRAC encoding device described above for encoding three-dimensional spherical data. [Diagram 2] 1 shows a DiRAC decoding device for decoding three-dimensional sphere data as described above. [Diagram 3] 1 illustrates a smartphone device equipped with multiple microphones with MASA spatial pre-analysis functionality to provide the MASA format as input for encoding, as described above. [Figure 4] 2 illustrates, in flow chart form, the steps performed in decoding three-dimensional sphere data, as described above. [Figure 5a] 1 illustrates spherical zones resulting from the discretization of elevation angles to define a spherical quantization dictionary, according to one embodiment of the present invention. [Figure 5b] 13 illustrates the area used to determine the number of points in azimuth to define a spherical quantization dictionary, according to one embodiment of the present invention. [Figure 6a] 2 illustrates, in flow chart form, the steps performed in an encoding method according to one embodiment of the present invention. [Figure 6b] 2 illustrates, in flow chart form, the steps of creating an index implemented in an encoding method according to one embodiment of the present invention. [Figure 7a] 2 illustrates, in flow chart form, the steps performed in a decoding method according to one embodiment of the present invention; [Figure 7b]2 illustrates, in the form of a flow chart, the steps of decoding quantization indexes performed in a decoding method according to an embodiment of the present invention. [Figure 8a] 1 illustrates in diagram form the indexing performed in the decoding method (northern hemisphere of a 3D sphere) according to one embodiment of the present invention. [Figure 8b] 1 illustrates in diagram form the indexing performed in the decoding method (southern hemisphere of a 3D sphere) according to one embodiment of the present invention. [Figure 9] 2 illustrates an example of a structural embodiment of an encoding device and a decoding device according to an embodiment of the present invention; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0084] The invention described below relates to the quantization of three-dimensional spherical data. It applies, by way of example, to the encoding and decoding of spatial directions of sound sources (DoA) for the encoding and decoding of MASA data, as described below with reference to figures 5 to 7. In some variants, the invention can be applied to DiRAC encoding, to any type of encoding / decoding of audio data or to the encoding of any other type of data in which 3D orientation information is encoded.

[0085] Without loss of generality, the definition of 3D spherical coordinates in degrees is adopted here, in keeping with the geographic convention used in the description of the proposed MASA format reference.

[0086] In the case of coding the direction (or DoA) of the sound source, as in the DiRAC or MASA schemes, only the azimuth and elevation angles are kept and the radius (here set to 1) is omitted. In some variants, for certain applications (e.g. subband quantization in transform-based coding), it is also possible to code the radius separately (e.g. corresponding to the average amplitude level per subband).

[0087] In some variants, units other than degrees (e.g. radians) are used and conventions other than geographic conventions are used. For example, the elevation angle can be replaced by the co-latitude. Other equivalent spherical coordinate systems (e.g. obtained by rearranging or inverting the Cartesian coordinates) can therefore be used according to the invention. That is, it is sufficient to apply the transformations necessary for the definition, reconstruction, etc. of the scalar quantization dictionary. The encoding and decoding according to the invention is applicable to all definitions of spherical coordinates, and therefore it is possible to replace φ, θ with other spherical coordinates by adapting the transformations between Cartesian and spherical coordinates.

[0088] Fig. 5a shows a 2D partial representation of a spherical quantization dictionary (grid) according to an embodiment of the present invention. According to the present invention, the spherical quantization dictionary is defined by an elevation encoding and an azimuth encoding. The elevation encoding uses scalar quantization and, according to one embodiment, involves a discretization of the elevation angles that includes levels corresponding to the equator (0 elevation angle) and poles (elevation angle + / - 90°) of a 3D sphere. The elevation encoding provides at least one encoding elevation index (i) related to the number of elevation angles levels.

[0089] In this discretization, the number of levels is positive for the Northern Hemisphere (N φ ) and an elevation code designation (indicating the northern or southern hemisphere), which is a 2N vector for encoding elevation angles in both the northern and southern hemispheres of the 3D sphere. φ Equivalent to a level of -1.

[0090] Therefore, as shown in FIG. 5a, the spherical quantization dictionary (hereinafter also called grid according to the present invention) is a set of C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25, C -1 ,...C i , ..., C ( N φ-1) , C -( N φ-1) 2N, denoted as φ-1 (the limits of each dotted slice are given by an elevation quantization decision threshold (external poles). The surface of the Northern Hemisphere is denoted by C0 (only the top half of the C0 layer above the equator is in the Northern Hemisphere), C1, ...C i , ..., C ( N φ-1) The surface of the Southern Hemisphere is divided into layers C0 (only the lower half of the C0 layer below the equator is in the Southern Hemisphere) -1 ,...C -i , ..., C -( N φ-1) The layer is divided into:

[0091] Note that Fig. 5a shows a 2D projection of a 3D sphere taken at an arbitrary vertical cut plane. In the chosen convention, the z coordinate corresponds to z=sinφ, so the Cartesian axis 0z is shown scaled according to the sine of the elevation angle.

[0092] The azimuth coding is done by coding (positive or absolute) elevation indices (i=0,...,N φ -1) depending on the number of azimuth levels (N θ (i)) (also called the number of points per level), and the number of levels N θ (i) is symmetric about the equator in the Northern and Southern Hemispheres.

[0093] The determination of the number of azimuth levels is described below.

[0094] To avoid overstating this diagram, the number of azimuth levels according to the elevation level, N θ The subdivision of these horizontal layers into evenly distributed "regions" according to the azimuthal discretization in (i) is not shown.

[0095] The spherical grid according to the invention discretizes the elevation and azimuth angles separately by scalar quantization, and has a number of levels N depending on the (positive or absolute) encoded elevation value i. θWe discretize the azimuth angles uniformly according to (i). However, to optimally search for the nearest neighbors in the grid, two elevation angle candidates need to be selected, and therefore to select the best candidate, two related azimuth angle candidates need to be selected as well. This is therefore equivalent to a joint coding, even though in fact they are separate, and therefore the actual decision area of ​​the grid (in the sense of a Voronoi region on the sphere) is not a spherical rectangle. Nevertheless, for the purposes of indexing (encoding and decoding the global index), the discretization of the surface of the 3D sphere can be considered as a division of the separate elevation and azimuth angles to obtain a spherical rectangle (excluding the polar cap).

[0096] The coordinates φ and θ are the N φ and sign information s (denoting the northern hemisphere as s=+1 or the southern hemisphere as s=-1).

number

number

[0097] The total number of points of the sphere discretized according to the determined number of different levels (also called the total number of points of the 3D grid) is, in one particular embodiment,

number

[0098] This number includes the equator (C0, id φ =0) θ (0) and index i=1, ..., N φ Each point N of the positive elevation level of -1 (also called elevation layer Ci)θ (i) and (ii) are included, which are counted twice because they are symmetric in the Northern and Southern Hemispheres.

[0099] Thus, the spherical grid is defined as the following spherical vector quantization dictionary (by convention, the radius is assumed to be equal to 1):

number

[0100] The value of s for i=0 is

number

[0101] In a preferred embodiment, the 3D grid is defined for a given bit budget, e.g., 16 bits, so that the total number of points on the sphere (i.e., N tot =2 16 In some variations, other N tot Values ​​(and therefore bit budget values) of are also possible.

[0102] The elevation angle is N φ In the preferred embodiment, the number of positive levels is N, as in the case of the grid of the MASA format described above. φ =122. This will reduce the number of φ Therefore, even when considering the Southern Hemisphere, the elevation angle is 2N φ It is coded with a level of -1 (counting the equator only once). Including the poles allows a complete representation of the sphere and has minimal impact since only two points in the grid are associated with the poles (when the code is applied).

[0103] For elevation coding with scalar quantization, the uniform quantization step δ φ(Extremely outer) is defined and the following is adopted:

number

number

[0104] The azimuth angle θ is N θ The image is encoded by scalar quantization with level (i). Considering the periodicity in the interval [-180,180] degrees, it is preferable to use uniform scalar quantization with a uniform scalar quantization dictionary.

number

[0105] The azimuth dictionary, as is known, has an offset, which is set to 0 for even values ​​of i and 0 for odd values ​​of i.

number

[0106] In some variations, a uniform scalar quantization on the interval [0,90] degrees (including values ​​0 and 90 as reconstruction levels) can be used for elevation angle coding.

number

[0107] This is δ φ =90 / (N φ -1), i.e. N φ = 122, δ φ Quantization step δ is set to ≒0.7438. φ where the poles are of course included in the codeword. The quantization step, when considering the code, is

number

[0108] In another variant, the number of levels N for the (positive or absolute) elevation angle is φ or change the scalar quantization dictionary

number

number

[0109] In other variations, the offset applied to the azimuth angle depending on the elevation layer may be different, the important aspect being that the number of azimuth levels is defined according to the invention.

[0110] According to the present invention, the number of points per level (N θ (i)) is determined based on two successive cumulative radix values ​​(cumN(i), cumN(i-1)), where the cumulative radix value (cumN(i)) for a coded elevation index (i) is proportional to the total number of points and is the sum of the upper horizontal plane (

number

number

[0111] FIG. 5b shows these spherical zones where the surface area of ​​a 3D sphere is considered in the first and second embodiments.

[0112] In one particular embodiment, the number of azimuth levels N θ (i) corresponds to one of the equator and poles, respectively. θ (0) and N θ (N φ -1) is determined by a predefined value.

[0113] These predetermined number of points (N θ (0) and N θ (N φ -1)) is the total number of points used in and towards determining the cumulative base value

number

[0114] In this embodiment, the total number of points

number

number

[0115] In the main embodiment, N θ (0) is an even number, and N θ (N φ -1)=1, so N tot If is even, then

number

[0116] In one example shown in FIG. 5b, the upper horizontal plane (

number

number

[0117] For this purpose, the number of points is in the following ratio:

number

number

[0118] By design, this ratio is i=N φ Exactly N if -2 tot ', this ensures that the total number of points is used.

[0119] This ratio will generally have a fractional part and must be rounded to obtain the cumulative base; in the primary embodiment, since the number of points is determined for both the Northern and Southern Hemispheres (and thus redundantly), this will involve rounding (either down or up) to an even integer.

[0120] ball

number

number

[0121] In particular, this is a sphere of radius r

number

[0122] equator

number

number

[0123] Thus, as in the main embodiment, [-(N φ -2)δ φ ,(N φ -2)δ φ When the elevation angle is uniformly discretized over the interval [φ], the decision threshold in the positive part of the sphere (northern hemisphere) is

number

[0124] The ratios shown above represent simple triplet systems

number

number

number

number

[0125] In one exemplary embodiment, it is set as follows: N θ (0)=430

[0126] In some variations, N θ The value of (0) can be different but even.

[0127] Furthermore, by convention, a single point is sufficient to represent the pole, so N θ (N φ -1) = 1 is set.

[0128] The number of points per elevation level i is

number

number

number

[0129] 2Arr iNote that the (x / 2) function actually corresponds to rounding (down or up) to an even integer, which makes it possible to divide the result by 2 in order to assign half an integer to each hemisphere.

[0130] By definition,

number

[0131] Furthermore, it should be noted that the notation cumN(i) is adopted here, which differs from that previously used in the description of the MASA format proposed in the prior art. In fact, cumN(i) here corresponds to the cumulative cardinality of the spherical grid (including layers of the northern and southern hemispheres) up to and including elevation layer i, but not counting the equator. Thus, for i=1,...,N in the description of the present invention, φ The definition of cumN(i) in the case of -2 is cumN(2i)-N in the definition of the prior art. θ Equivalent to (0).

[0132] In variants where other quantization levels are defined for the elevation angle,

number

number

number

number

[0133] An example of values ​​obtained in a preferred embodiment is shown below.

number

[0134]

number

[0135] Therefore, the base N θ (i) gives a given total number N tot We can guarantee that there are no unused indices for i.e., the cumulative cardinality cumN(i) is

number

[0136] In another exemplary embodiment, no predefined number is set for the elevation angle level that corresponds to the equator.

[0137] In this example, the cumulative cardinality is the ratio of:

number

[0138] This then results in i=0,...,N φ In the case of -2,

number

number

[0139] For this variant of the definition of cumN(i), φ = 122, and δ φ An example of the values ​​obtained when is defined according to the preferred embodiment is given below:

number

[0140] In this case too,

number

[0141] In variants where other quantization levels are defined for the elevation angle,

number

number

number

[0142] In other variations, the equator (N θ (0)) or the North and South Poles (N θ (N φ -1)) no predefined number is set for the elevation angle levels corresponding to

number

[0143] In this example, i=0, ..., N φ In the case of -2,

number

number

[0144] For this variant of the definition of cumN(i), φ = 122, and δ φ An example of the values ​​obtained when is defined according to the preferred embodiment is given below:

number

[0145] In this case too,

number

[0146] In the second example shown in FIG. 5b, the upper horizontal plane (

number

[0147] For this purpose, the number of points is in the following ratio:

number

number

number

number

number

[0148] This result is

number

[0149] In one alternative embodiment, the cumulative cardinality value can be expressed by considering only the number of points on the positive part of the sphere.

[0150] In this scenario, the points are in the following ratio:

number

number

number

[0151] The formula for the cumulative base value is, for example,

number

number

[0152] The number of points per elevation level i is N θ (i) = (cumN'(i) - cumN'(i-1)) It is represented by:

[0153] Figure 6a describes a method for encoding the spherical coordinates (φ, θ) of an input point (E201) on a 3D sphere, which in one embodiment may be implemented by block 312 from Figure 3 in the case of the MASA data format or block 140 from Figure 1 in the case of the DiRAC coder.

[0154] The quantization and searching of the spherical coordinates is performed as follows. First, the elevation angle φ is coded in E202-1. For optimal search, two values

number

number

number

[0155] Now, the reason the last step is necessary is that in the preferred embodiment, φ In the case of -2,

number

number

[0156] Therefore, the quantization step is [-(N φ -2)δ φ ,(N φ -2)δ φ ] is uniform only on the interval φ -1, N φ For the −2 codeword, an explicit nearest neighbor search is required.

[0157] In some variations where the steps are uniform over [-90,90] degrees,

number

[0158] δ φ =90 / (N φ -1) We can see the following:

number

[0159] The index i2 can be determined as explained above in the MASA method from the prior art, i.e. ○If i1=0, then i2=1 ○i1=N φ If -1, then i2=N φ -2 ○0 <i1<N φ If -1,

number

[0160] Note that in all cases, the encoding results remain the same even if i1 and i2 are swapped.

[0161] The azimuth angle θ is determined according to the exemplary embodiment described in E204-2 in the MASA method from the prior art by the number of levels N θ (i) (i=i1 or i2) (E203-2) is coded by uniform scalar quantization, so that in E204-2, two values

number

[0162] More specifically, the following can be incorporated:

number

[0163] Therefore, in step E205, two candidates

number

number

[0164] Closest Pair

number

number

[0165] In some variations, the distance criterion may be evaluated by transforming the points into Cartesian coordinates to evaluate the Euclidean distance to be minimized or the scalar product to be maximized.

[0166] The quantization index selected in E206 is the selected point

number

[0167] The step E207 of creating the index is φ , id φ and id θ Based on the information of,the unique index to be sent,0≦index <N tot This determines the

[0168] In this step, a global quantization index is determined based on the distinct indices resulting from the distinct quantization of the spherical coordinates of the selected closest points.

[0169] This step will now be described with reference to FIG. 6b, which illustrates one exemplary embodiment.

[0170] E600 sgn φ , id φ and id θ Based on the information in E601 and E603, φ The value of is tested as follows: E601 ID φ If =0, index=id θ (E602), or ID with E603 φ =N φ -1, index=N tot -2+(sgn φ <0)(E604) else index=offset+id θ (E605) and

number

[0171] Here, the term

number

[0172] The index of a point (codeword) in elevation layer i is index=offset+id θ Therefore, the value of offset must correspond to the cumulative cardinality up to (but not including) the first point (codeword) of elevation layer i. In addition, the positive elevation layer i (Northern Hemisphere) comes before the negative elevation layer i by convention, but the two layers have the same number of points N θ (i).

[0173] Therefore, the value of offset is given by the cumulative base including these positive and negative layers of index i, but for the positive layers it is 2N θ (i) is subtracted, or N if it is a negative layer θ Subtract (i).

[0174] For the encoding of points (or codewords) of this same layer, equivalently,

number

[0175] Here, the term

number

[0176] According to the present invention, N φ is high (e.g., N φ = 122), the determination is more straightforward, so this analytical method for determining the value of offset gives the same result as the following sum, but with reduced complexity:

number

[0177] Therefore, in E606, the best candidate distinct quantization index sgn φ , id φ , id θ Through separate encoding of and using the corresponding accumulated base values, a global index, index, is obtained.

[0178] The determination of the offset value is done in this specification by θ(0)≦index <N tot Note that the interval is described for an interval of −2. In some variations, the interval in question can be divided into subintervals of index, and the value of offset can be determined analytically or by direct summation, N θ (i) is defined according to the invention according to the subinterval under consideration.

[0179] In one embodiment, the id φ and sgn φ The cumulative cardinality value offset can be prestored (aggregated) according to: which gives the result of the cumulative sum of the cardinality of a continuous spherical layer (or "set of horizontal slices") (either analytically or by direct summation). This sum can be interpreted as the cardinality of a spherical zone (the number of points in a partial grid alternating in the northern and southern hemispheres, from elevation angle index 0 to elevation angle index i).

[0180] In some variations, id φ and sgn φ Instead of storing the offset value according to the id φ and sgn φ Corrected N based on θ Based on the definition of offset as a cumulative sum of (i), it can be computed "on-line" (on the fly).

[0181] However, this results in a grid with many elevation levels (N φ When ,is high, the computational complexity increases, which is not negligible.

[0182] In some variants, it is possible to use the definition of cumN' to replace offset, taking into account that the cardinality in this case corresponds to a hemisphere.

[0183] A corresponding decoding method will now be described with reference to Fig. 7a, which in one embodiment may be implemented by block 321 from Fig. 3 in the case of the MASA data format or by block 250 from Fig. 2 in the case of a DiRAC decoder.

[0184] As in the encoding case, a spherical quantization dictionary is defined on a 3D sphere by elevation and azimuth decoding, as shown and described with reference to Figures 5a and 5b above.

[0185] As with encoding, elevation decoding uses scalar quantization, where the number of elevation levels (N φ ) and the azimuth angle decoding is performed by decoding the number of points per level (N θ (i)) is used to quantize the number of points per level (N θ (i)) is determined based on two successive cumulative radix values ​​(cumN(i), cumN(i-1)), where the cumulative radix value (cumN(i)) of the decoded elevation index (i) is proportional to the total number of points and is the upper horizontal plane (

number

[0186] First, the indexing described with reference to FIG. 6b is assumed.

[0187] Given a global index index in step E210 of FIG. 7a, separate decoding of the two spherical coordinates is carried out in steps E211-1 and E211-2.

[0188] In step E212-1, as in the encoding step E203-1, the number of scalar quantization levels N φIn the main embodiment, this step is simply φ = 122.

[0189] In E213-1, the elevation angle information sgn φ , id φ This step is described in more detail below with reference to FIG. 7b. Preferably, this decoding involves the index id φ In some variations, an analytical estimate of sgn φ , id φ can be decoded by computing it on the fly, or by looking up a stored radix table, or by using other methods that give the same result.

[0190] For E214-1, the decoded elevation angle is

number

number

number

[0191] In some variants, other uniform or non-uniform quantization dictionaries can be used for encoding as well.

number

[0192] In E213-2, the azimuth index id θ This step is explained in more detail below with reference to FIG. 7b. θ In the general case, the global index index and the decoded elevation angle information sgn φ , id φ Based on the id θ=index-offset, but there are some special cases (id φ =0 and id φ =N φ -1) is defined in Figure 7b.

[0193] The value of the offset is determined as defined in the encoding. In E214-2, the azimuth angle

number

number

[0194] This allows, in particular,

number

[0195] Therefore, in E215, the spherical coordinates of the decoded point

number

[0196] In FIG. 7b steps E213-1 and E213-2 are detailed together.

[0197] Global index to decrypt 0≦index <N tot Based on (E700), the code information sgn φ =1 is set by default (E701). Index is Index <N θ If (0) is satisfied, this indicates that the point is on the equator (E702), and direct decoding is performed. θ =index and id φ =0 is set (E703).

[0198] Otherwise, if index ≥ N tot If it satisfies -2, this indicates that it is a point on the North or South Pole (E704), and direct decoding is performed. φ =N φ -1 and id θ =0(E705). E706 with index=N tot If it is -1, the index alternates between the northern and southern hemispheres in elevation layer order, so index=N tot -2 is the North Pole (sgn φ =1), and index=N tot -1 is the Antarctic (sgn φ =-1), so the sign sgn φ is corrected from its default value to -1 (E707).

[0199] Otherwise, other cases (N θ (0)≦index <N tot -2), in a preferred embodiment, the index id θ is estimated, for example, by inverting the analytical operation performed in step E605 of FIG. 6b.

[0200] id φ teeth,

number

number

[0201] In some variations, an approximation of the inverse sine function is used.

[0202] below:

number

[0203] In some variations, other approximations of the inverse sine function may be used, in particular other polynomials P(x) of different orders.

[0204] The id used above φ The estimate of id φ It has the remarkable property of being accurate to within one unit of overestimation of φ otherwise, id φ Note that is underestimated by one unit.

[0205] In some variations, id φ Other estimates of (the exact value or a range of values) can be used.

[0206] In a preferred embodiment, the id is then calculated by inverting the arcsine function φ Based on the estimate or approximation of , decoding is performed as follows (E709): The initial value is determined as follows:

number

[0207] In some variations, it is possible to operate in an equivalent way (with the same result) as follows:

number

[0208] This initial value offset init Based on the id φ , sgn φ and the value of offset can be determined as follows: index≧offset init If id φ ←id φ +1, offset←offset init and otherwise, offset←offset init -N θ (id φ ) and If index ≥ offset, then sgn φ ←-1, otherwise, offset←offset-N θ (id φ ). where a←b indicates that the existing value of a is replaced with the result of the expression b.

[0209] index≧offset init If id φ ←id φ The step to correct +1 is to invert the arcsine function to get id φ , which is specific to the exemplary embodiment that estimates offset init The value of is the lower layer id φ Corresponds to the cumulative cardinality of the grid up to -1.

[0210] Otherwise, this id φ If no steps are taken to correct for offset init The value is the elevation layer id φ offset-N corresponds to the cumulative number of grids up to θ (id φ ) in the form of offset init The justification for the step of correcting the value of is explained in more detail with reference to Figures 8a and 8b described below.

[0211] In some variations, the initial value offset init Define the cumulative base for the lower elevation layer with index i-1 as offset init It is possible to equally correct the value of

number

[0212] This initial value offset init Based on the id φ , sgn φ and the value of offset can be determined as follows: index≧offset init +2N θ (id φ ), id φ ←id φ +1, offset←offset init and Otherwise, index >= offset init +N θ (id φ ), sgn φ ←-1 and offset ← offset init +N θ (id φ ) and otherwise, offset←offset init It is. In the formula, a←b indicates that the existing value of a is replaced by the result of the formula b. In this case, offset init The step of correcting the value of offset init +N θ (id φ ) form.

[0213] In some variations, id φ , sgn φ To determine the value of id and offset, φ According to the method to estimate id φ and offset init It is possible to adapt the principle of correcting the value of

[0214] The cumulative bases are defined differently and the corresponding values ​​of N θIn some variations of (i), an analytical definition of an initial estimate of offset is applied.

[0215] In some variants, the id remains the same as long as the decryption result is unchanged. φ Other integers and exact estimates of , which give the same results, as well as id φ , sgn φ Other direct or indirect methods for determining the id and offset may also be used. φ and the value of offset is an integer, and sgn φ can be considered as a signed integer, so id φ , sgn φ Alternative methods can be implemented as long as they result in the same values ​​of and offset.

[0216] It's of little interest, but has the advantage of showing an example of an alternative approach. φ , sgn φ An example of a decoding variant of and offset is simply id φ , sgn φ and id φ Run through all possible values ​​of and compute the corresponding index in the encoder, so that index=offset+id exactly. θ The combination that satisfies the above formula will be selected.

[0217] Decoding an index is done by finding the id for a given index value. φ , sgn φ and id φ It is deterministic in the sense that the values ​​of are unique and integers.

[0218] In all cases, id φ , sgn φ The decoding of and offset is carried out by the N θ Depends on the value of (i).

[0219] Finally, the id θDecoding (E710) is simply equivalent to subtracting the decoding accumulation base value (offset) from the received global index (index). id θ =index-offset

[0220] In some variations, the definition of cumN' can be used to replace offset, taking into account the fact that the cardinality in this case corresponds to a hemisphere.

[0221] 8a and 8b illustrate the encoding and decoding of an index according to an embodiment of the present invention.

[0222] Fig. 8a corresponds to the case of encoding or decoding points in the Northern Hemisphere (excluding the equator and the poles) of a grid according to the invention, and Fig. 8b corresponds to the case of encoding or decoding points in the Southern Hemisphere (excluding the equator and the poles). φ =122, id φ =120, sgn φ =1, id θ = 3, index = 65517, and in Fig. 8b, sgn φ =-1, id θ =5, index=65529.

[0223] In this example, N θ (id φ )=10, and offset init The initial value of is

number

[0224] In FIG. 8a, decoding index=65517 results in the following correction: index≧offset init If id φ ←id φ +1, offset←offset init and otherwise, offset←offset init -N θ (id φ ) and If index ≥ offset, then sgn φ ←-1, otherwise, offset←offset-N θ (id φ ).

[0225] As a result, the value of offset is offset←offset init -2N θ (id φ ) to obtain offset=65514.

[0226] In FIG. 8b, decoding index=65529 results in the following correction: index≧offset init If id φ ←id φ +1, offset←offset init and otherwise, offset←offset init -N θ (id φ ) and If index ≥ offset, then sgn φ ←-1, otherwise, offset←offset-N θ (id φ ).

[0227] As a result, the value of offset is offset←offset init -N θ (id φ ) to obtain offset=65524.

[0228] In some variations, the offset init The value of corresponds to the cumulative cardinality up to the lower elevation angle layer, and N θIt can also be obtained by direct summation based on the values ​​of (i).

[0229] The cumulative bases are defined differently and the corresponding values ​​of N θ In some variants with (i), offset init The analytical definition of the initial estimate of is applied.

[0230] FIG. 9 shows a coding device DCOD and a decoding device DDEC within the meaning of the present invention, which devices are dual to each other (in the sense of "reversible") and connected to each other by an internal bus BUS of a communication network RES or terminal (for communication between the MASA analysis module and the IVAS codec or for other processing operations).

[0231] The coding device DCOD comprises a processing circuit, which typically comprises: a memory MEM1 for storing instruction data of a computer program within the meaning of the invention, these instructions possibly being distributed between the encoder DCOD and the decoder DDEC, an interface INT1 for receiving an original multi-channel signal B, for example a signal distributed to the various channels or a parametrically compressed version, comprising sound source direction parameters within the meaning of the present invention; a processor PROC1 for receiving this signal and processing it for coding purposes by executing computer program instructions stored in a memory MEM1; - a communications interface COM1 for transmitting coded signals via a network or an internal bus of the terminal; Includes.

[0232] The decoding device DDEC includes its own processing circuitry, which typically includes: a memory MEM2 for storing instruction data of a computer program within the meaning of the invention (these instructions are possibly distributed between the encoder DCOD and the decoder DDEC, as indicated above), an interface COM2 for receiving encoded signals from the network RES or from the internal bus BUS for the purposes of compression decoding within the meaning of the present invention; a processor PROC2 for processing these signals for decoding purposes by executing computer program instructions stored in a memory MEM2; - An output interface INT2 for transmitting sound source direction parameters; Includes.

[0233] Naturally, this figure 9 shows an example of a structural embodiment of a codec (encoder or decoder) within the meaning of the present invention, the above figures 5 to 8 explaining in detail more functional embodiments of these codecs.

Claims

1. 1. A method for encoding a spatial direction of a sound source, the direction being defined by spherical coordinates including an elevation coordinate and an azimuth coordinate, and a spherical quantization dictionary being defined on a 3D sphere by an elevation encoding and an azimuth encoding; The elevation coding uses scalar quantization and the number of elevation levels (N φ ) , The azimuth coding is based on the number of points per level (N θ (i) using scalar quantization according to - the number of points per level (N θ (i)) is determined based on two consecutive cumulative cardinality values ​​(cumN(i), cumN(i-1)), The cumulative cardinality value (cumN(i)) of the coded elevation index (i) is proportional to the total number of points and is the upper horizontal plane ( [0010] ) and expressing the number of points as a function of the area of ​​a spherical zone including at least one zone bounded by a lower horizontal plane of the sphere.

2. The method of claim 1 , wherein the elevation encoding includes levels corresponding to the equator (0°) and poles (+ / −90°) of the 3D sphere.

3. The number of points for the azimuth encoding (N θ (0)) is pre-determined for the elevation level corresponding to the equator, and the total number of points [0025] is the following formula: [0030] According to the target number of points (N tot = 2 16 ) by subtracting the predetermined number of points corresponding to each of the equator and the north and south poles of the sphere; N tot is the target number of points in the sphere for a given bit budget, N θ (0) is the predetermined number of points for the elevation level corresponding to the equator; and 2N θ (N φ 3. The method of claim 1, wherein −1) is the predetermined number of points relative to the north and south poles of the sphere.

4. The cumulative cardinality value (cumN(i)) of the coded elevation index (i) is the sum of the upper horizontal plane ( [0045] ) and the same plane of the sphere symmetrical with respect to the equator ( [0050] The area of ​​the spherical zone bounded by i ) to obtain the area (A 0 ) minus the following ratio: [006] represents a number of points proportional to the total number of points according to φ -2 is the number of elevation angle quantization levels without the equator and the north and south poles of the sphere; and [0070] is the elevation index N φ The method of claim 3, wherein the area of ​​the spherical zone is equal to -2.

5. The formula for the cumulative base value is: [0080] where: i=1, . . . , N φ −2, and N φ -2 is the number of elevation angle quantization levels without the equator and the north and south poles of the sphere; Arr i () is the rounding to the nearest integer depending on i, [0090] corresponds to rounding to an even integer, and δ φ The method of claim 4 , wherein: ∇x is a predetermined quantization step of the elevation angle.

6. The elevation encoding is based on the number of elevation levels (N φ 6. The method of claim 1, further comprising providing a coded elevation index (i) and code information for the elevation angle (i) of the first vertex (1) and the second vertex (2).

7. The global quantization index (index) to be transmitted is determined by the number of points per level (N θ The method according to any one of claims 1 to 6, wherein the azimuth angle index (i) is determined based on an azimuth angle index coded by scalar quantization and an accumulated base value obtained based on at least the coded elevation angle index.

8. 1. A method for decoding a spatial direction of a sound source, the direction being defined by spherical coordinates including an elevation coordinate and an azimuth coordinate, and a spherical quantization dictionary being defined on a 3D sphere by elevation decoding and azimuth decoding; The elevation decoding uses scalar quantization and depends on the number of elevation levels (N φ ) , The azimuth decoding is performed by multiplying the number of points (N) per level according to the decoding elevation index (i). θ (i) using scalar quantization according to - the number of points per level (N θ (i)) is determined based on two consecutive cumulative cardinality values ​​(cumN(i), cumN(i-1)), The cumulative cardinality value (cumN(i)) of a decoded elevation index (i) is proportional to the total number of points and is the upper horizontal plane ( [0010] ) and expressing the number of points as a function of the area of ​​a spherical zone including at least one zone bounded by a lower horizontal plane of the sphere.

9. The method of claim 8 , wherein the elevation decoding includes levels corresponding to the equator (0°) and poles (+ / −90°) of the 3D sphere.

10. The number of points for azimuth angle decoding (N θ (0)) is pre-determined for the elevation level corresponding to the equator, and the total number of points ##EQU00011## is the following formula: ##EQU00012## According to the target number of points (N tot = 2 16 ) by subtracting the predetermined number of points corresponding to each of the equator and the north and south poles of the sphere; N tot is the target number of points in the sphere for a given bit budget, N θ (0) is the predetermined number of points for the elevation level corresponding to the equator; and 2N θ (N φ 10. The method of claim 8 or 9, wherein −1) is the pre-determined number of points relative to the north and south poles of the sphere.

11. The cumulative cardinality value (cumN(i)) of the decoded elevation index (i) is the sum of the upper horizontal plane ( ##EQU00013## ) and the same plane of the sphere symmetrical with respect to the equator ( ##EQU00014## The area of ​​the spherical zone bounded by i ) to obtain the area (A 0 ) minus the following ratio: ##EQU00015## represents a number of points proportional to the total number of points according to φ -2 is the number of elevation angle quantization levels without the equator and the north and south poles of the sphere; and ##EQU00016## is the elevation index N φ The method of claim 10, wherein the area of ​​the spherical zone is equal to -2.

12. The formula for the cumulative base value is: ##EQU00017## where: i=1, . . . , N φ −2, and N φ -2 is the number of elevation angle quantization levels without the equator and the north and south poles of the sphere; Arr i () is the rounding to the nearest integer depending on i, [0018] corresponds to rounding to an even integer, and δ φ The method of claim 11 , wherein x is a predetermined quantization step of the elevation angle.

13. The elevation decoding is performed by multiplying the number of elevation levels (N φ 13. The method of claim 8, further comprising providing a decoded elevation index (i) and sign information for the elevation angle (i) of the first vertex (1) and the second vertex (2).

14. The decoding includes receiving a global quantization index (index) and, based on the index, determining an accumulated base value based on at least the decoded elevation index and a determined number of points per level (N θ A method according to any one of claims 8 to 13, comprising determining a decoded azimuth angle index for (i).

15. An encoding device comprising processing circuitry for carrying out the steps of the encoding method according to any one of claims 1 to 7.

16. A decoding device comprising processing circuitry for carrying out the steps of the decoding method according to any one of claims 8 to 14.

17. A storage medium readable by a processor, storing a computer program comprising instructions for executing the encoding method according to any one of claims 1 to 7 or the decoding method according to any one of claims 8 to 14.