Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CODING AND DECODING OF SPHERICAL COORDINATES USING AN OPTIMIZED SPHERICAL QUANTIZATION DICTIONARY
Document Type and Number:
WIPO Patent Application WO/2023/152348
Kind Code:
A1
Abstract:
The invention relates to a method for coding or decoding a spatial direction of a sound source, in which a spherical quantization dictionary is defined on a 3D sphere by coding elevation and azimuth, giving at least one coded elevation index (i) on a number of elevation levels (N ϕ ) and a number of points per level (Ny θ (i)) determined on the basis of two successive cumulative cardinality values (cumN (i), cumN (i — 1)), the cumulative cardinality value (cumN(i)) being representative of a number of points proportional to a total number of points and according to the area of a spherical region comprising at least one region delimited by the upper horizontal plane (ϕ = (i + ½)δ ϕ ) of the positive elevation level of the coded elevation index (i) and a lower horizontal plane of the sphere.

Inventors:
RAGOT STÉPHANE (FR)
YAOUMI MOHAMED (FR)
Application Number:
PCT/EP2023/053413
Publication Date:
August 17, 2023
Filing Date:
February 13, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
G10L19/008; H03M7/30; H04N13/178; H04N19/90; G10L19/00
Domestic Patent References:
WO2021019126A12021-02-04
WO2020016479A12020-01-23
Foreign References:
US20200265851A12020-08-20
Other References:
MATSCHKAL B ET AL: "Spherical Logarithmic Quantization", IEEE TRANSACTIONS ON AUDIO, SPEECH AND LANGUAGE PROCESSING, IEEE, US, vol. 18, no. 1, 2 June 2009 (2009-06-02), pages 126 - 140, XP011329117, ISSN: 1558-7916, DOI: 10.1109/TASL.2009.2024383
NOKIA CORPORATION: "Description of the IVAS MASA C Reference Software", vol. SA WG4, no. Busan, Republic of Korea; 20191021 - 20191025, 15 October 2019 (2019-10-15), XP051799447, Retrieved from the Internet [retrieved on 20191015]
BIN CHENG ET AL: "A General Compression Approach to Multi-Channel Three-Dimensional Audio", IEEE TRANSACTIONS ON AUDIO, SPEECH AND LANGUAGE PROCESSING, IEEE, US, vol. 21, no. 8, 25 April 2013 (2013-04-25), pages 1676 - 1688, XP011519776, ISSN: 1558-7916, DOI: 10.1109/TASL.2013.2260156
V. PULKKI: "Spatial sound reproduction with directional audio coding", JOURNAL OF THE AUDIO ENGINEERING SOCIETY, vol. 55, no. 6, 2007, pages 503 - 516
"3GPP Tdoc S4-180087", NOKIA CORPORATION, article "On IVAS audio formats for mobile capture devices"
"Description of the IVAS MASA C Référence Software, Source: Nokia Corporation", 3GPP TDOC S4-191167, October 2019 (2019-10-01)
"3GPP Tdoc S4-191167", October 2019, NOKIA CORPORATION, article "Description of the IVAS MASA C Référence Software"
3GPP TDOC S4-191167
Download PDF:
Claims:
REVENDICATIONS 1. Procédé de codage d'une direction spatiale d'une source sonore, cette direction étant défini par des coordonnées sphériques comprenant une coordonnée d'élévation et une coordonnée d'azimut, dans lequel un dictionnaire de quantification sphérique est défini sur une sphère 3D par un codage de l'élévation et de l'azimut, et dans lequel :

- le codage de l'élévation utilise une quantification scalaire, donnant au moins un indice d'élévation codée (i) sur un nombre de niveau (NΦ ) d'élévation ,

- le codage de l'azimut utilise une quantification scalaire, en fonction d'un nombre de points par niveau (Nθ (i)) dépendant de l'indice de l'élévation codée (i),

- le nombre de points par niveau (Nθ(i)) est déterminé en fonction de deux valeurs de cardinalité cumulative successives (cumN(i), cumN(i — 1)),

- la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation codée (i) étant représentative d'un nombre de points proportionnel à un nombre total de points et selon l'aire d'une zone sphérique comprenant au moins une zone délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation codée (i) et un plan horizontal inférieur de la sphère. 2. Procédé selon la revendication 1, dans lequel le codage de l'élévation inclut des niveaux correspondant à l'équateur (0°) et aux pôles (+/-90°) de la sphère 3D. 3. Procédé selon l'une des revendications précédentes, dans lequel un nombre de points Nθ (0)) pour le codage de l'azimut est prédéterminé pour le niveau d'élévation correspondant à l'équateur et le nombre total de points est obtenu en soustrayant à un nombre de points cible (Ntot = 216) le nombre de points prédéterminé correspondant à l'équateur et chacun des pôles nord et sud de la sphère selon l'expression suivante:

Ntot étant le nombre de points cible de la sphère pour un budget de bits donné, Nθ(0), le nombre de points prédéterminé pour le niveau d'élévation correspondant à l'équateur ; et 2Nθ(NΦ - 1) le nombre de points prédéterminé pour les pôles nord et sud de la sphère.

4. Procédé selon la revendication 3, dans lequel la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation codée (i) est représentative d'un nombre de points proportionnel au nombre total de points selon l'aire (Ai) d'une zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation codée (i) et ce même plan de la sphère symétrique par rapport à l'équateur auquel on retranche l'aire (A0) correspondant au niveau d'élévation de l'équateur, selon le rapport suivant: NΦ- 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère et l'aire de la zone sphérique correspondant à un indice d'élévation .

5. Procédé selon la revendication 4, dans lequel l'expression de la valeur de cardinalité cumulative est la suivante : avec i = 1, ...,NΦ — 2, NΦ — 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère, étant un arrondi à l'entier le plus proche dépendant de i, correspondant à un arrondi à un entier pair et δΦ un pas de quantification de l'élévation donné.

6. Procédé selon l'une des revendications précédentes, dans lequel le codage de l'élévation donne un indice d'élévation codée (i) sur un nombre de niveau (NΦ ) d'élévation et une information de signe.

7. Procédé selon l'une des revendications précédentes, dans lequel un indice de quantification global à transmettre (index) est déterminé en fonction d'un indice d'azimut codé par quantification scalaire sur un nombre de points par niveau (Nθ(i)) déterminé et d'une valeur de cardinalité cumulative obtenue en fonction au moins de l'indice d'élévation codé. 8. Procédé de décodage d'une direction spatiale d'une source sonore, cette direction étant défini par des coordonnées sphériques comprenant une coordonnée d'élévation et une coordonnée d'azimut, dans lequel un dictionnaire de quantification sphérique est défini sur une sphère 3D par un décodage de l'élévation et de l'azimut, et dans lequel :

- le décodage de l'élévation utilise une quantification scalaire, donnant au moins un indice d'élévation décodée (i) sur un nombre de niveau (NΦ ) d'élévation ,

- le décodage de l'azimut utilise une quantification scalaire, en fonction d'un nombre de points par niveau (Nθ(i)) dépendant de l'indice de l'élévation décodée (i),

- le nombre de points par niveau (Nθ(i)) est déterminé en fonction de deux valeurs de cardinalité cumulative successives (cumN(i), cumN(i — 1)),

- la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation décodée (i) étant représentative d'un nombre de points proportionnel à un nombre total de points et selon l'aire d'une zone sphérique comprenant au moins une zone délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation décodée (i) et un plan horizontal inférieur de la sphère. 9. Procédé selon la revendication 8, dans lequel le décodage de l'élévation inclut des niveaux correspondant à l'équateur (0°) et aux pôles (+/-90°) de la sphère 3D. 10. Procédé selon l'une des revendications 8 à 9, dans lequel un nombre de points (Nθ(0)) pour le décodage de l'azimut est prédéterminé pour le niveau d'élévation correspondant à l'équateur et le nombre total de points est obtenu en soustrayant à un nombre de points cible (Ntot = 216) le nombre de points prédéterminé correspondant à l'équateur et chacun des pôles nord et sud de la sphère selon l'expression suivante:

Ntot étant le nombre de points cible de la sphère pour un budget de bits donné,

Nθ(0), le nombre de points prédéterminé pour le niveau d'élévation correspondant a l'equateur ; et 2Nθ(NΦ - 1) le nombre de points prédéterminé pour les pôles nord et sud de la sphère.

11. Procédé selon la revendication 10, dans lequel la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation décodée (i) est représentative d'un nombre de points proportionnel au nombre total de points selon l'aire (Ai) d'une zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation décodée (i) et ce même plan de la sphère symétrique par rapport à l'équateur auquel on retranche l'aire (A0) correspondant au niveau d'élévation de l'équateur, selon le rapport suivant: NΦ — 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère et , l'aire de la zone sphérique correspondant à un indice d'élévation NΦ - 2.

12. Procédé selon la revendication 11, dans lequel l'expression de la valeur de cardinalité cumulative est la suivante : avec i = 1,..., NΦ — 2, NΦ — 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère, étant un arrondi à l'entier le plus proche dépendant de i, correspondant à un arrondi à un entier pair et δΦ un pas de quantification de l'élévation donné.

13. Procédé selon l'une des revendications 8 à 12, dans lequel le décodage de l'élévation donne un indice d'élévation décodée (i) sur un nombre de niveau (NΦ ) d'élévation et une information de signe.

14. Procédé selon l'une des revendications 8 à 13, dans lequel le décodage comprend la réception d'un indice de quantification global (index), et la détermination à partir de cet indice, d'une valeur de cardinalité cumulative obtenue en fonction d'au moins l'indice d'élévation décodé et d'un indice d'azimut décodé sur un nombre de points par niveau (Nθ(i)) déterminé.

15. Dispositif de codage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de codage selon l'une des revendications 1 à

7.

16. Dispositif de décodage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de décodage selon l'une des revendications 8 à 14. 17. Support de stockage, lisible par un processeur, mémorisant un programme informatique comportant des instructions pour l'exécution du procédé de codage selon l'une des revendications 1 à 7 ou du procédé de décodage selon l'une des revendications 8 à 14.

Description:
DESCRIPTION

Titre: Codage et décodage de coordonnées sphériques utilisant un dictionnaire de quantification sphérique optimisé

La présente invention concerne la quantification vectorielle sphérique appliquée au codage/décodage de données sonores, pour le codage de directions d'arrivée de source (abrégées comme « DoA » pour Direction of Arrivai en anglais) qui sont en général représentées par des coordonnées sphériques (par exemple azimut et élévation, à une distance pré-déterminée).

Les codeurs/décodeurs (ci-après appelés « codecs ») qui sont utilisés actuellement en téléphonie mobile sont mono (un seul canal de signal pour une restitution sur un seul haut-parleur). Le codec 3GPP EVS (pour « Enhanced Voice Services ») permet d'offrir une qualité « Super-HD » (aussi appelée voix « Haute Définition Plus » ou HD+) avec une bande audio en bande super-élargie (SWB pour « super-wideband » en anglais) pour des signaux échantillonnés à 32 ou 48 kHz ou pleine bande (FB pour « Fullband ») pour des signaux échantillonnés à 48 kHz ; la largeur de bande audio est de 14,4 à 16 kHz en mode SWB (de 9,6 à 128 kbit/s) et de 20 kHz en mode FB (de 16,4 à 128 kbit/s).

La prochaine évolution de qualité dans les services conversationnels proposés par les opérateurs devrait être constituée par les services immersifs, en utilisant des terminaux tels que des smartphones équipés de plusieurs microphones ou des équipements de conférence audio spatialisée ou de visioconférence de type télé-présence ou vidéo 360°, ou encore des équipements de partage de contenus audio « live », avec un rendu sonore spatialisé en 3D autrement plus immersif qu'une simple restitution stéréo 2D. Avec les usages de plus en plus répandus d'écoute sur téléphone mobile avec un casque audio et l'apparition d'équipements audio avancés (accessoires tels qu'un microphone 3D, assistants vocaux avec antennes acoustiques, casques de réalité virtuelle ou augmentée, etc.) la captation et le rendu de scènes sonores spatialisées sont désormais assez répandus pour offrir une expérience de communication immersive.

A ce titre, la future norme 3GPP « IVAS » (pour « Immersive Voice And Audio Services ») propose l'extension du codec EVS à l'audio immersif en acceptant comme format d'entrée du codec au moins les formats de son spatialisé listés ci-dessous (et leurs combinaisons):

- Format multicanal (channel-based en anglais) de type stéréo ou 5.1 où chaque canal vient alimenter un haut-parleur (par exemple L et R en stéréo ou L, R, Ls, Rs et C en 5.1) ;

- Format objet (object-based en anglais) où des objets sonores sont décrits comme un signal audio (en général mono) associé à des métadonnées décrivant les attributs de cet objet (position dans l'espace, largeur spatiale de la source, etc.),

- Format ambisonique (scene-based en anglais) qui décrit le champ sonore en un point donné, en général capté par un microphone sphérique ou synthétisé dans le domaine des harmoniques sphériques.

Il est également question de considérer potentiellement d'autres formats d'entrée tels que le format appelé MASA (Metadata assisted Spatial Audio en anglais) qui correspond à une représentation paramétrique d'une prise de son sur téléphone mobile équipés de plusieurs microphones. Ce format est étudié plus en détails ci-après.

Les signaux à traiter par le codeur/décodeur se présentent comme des successions de blocs d'échantillons sonores appelés « trames » ou « sous-trames » ci-après.

En outre, ci-après, les notations mathématiques suivent la convention suivante :

- Scalaire : s ou N (minuscule pour les variables ou majuscule pour les constantes)

- Vecteur : q (minuscule, gras et italique)

- Matrice : M (majuscule, gras et italique)

Par la suite, on notera la sphère de rayon r en dimension n+1 définie comme où ||. || désigne la norme euclidienne. Quand le rayon r ne sera pas précisé, on supposera que r = 1 (sphère unité). On se focalise ici sur le cas de la dimension 3 où n=2.

On rappelle ici la définition des coordonnées sphériques en dimension 3. Pour un point (x, y, z) en dimension 3 on a en général au moins deux conventions classiques de coordonnées sphériques notées (r, Φ, θ): - la convention géographique : x = r cos Φ cos θ , y = r cos Φ sinθ, z = r sin Φ avec r ≥ 0, — π /2 ≤ Φ ≤ π/2 et —π ≤ θ ≤ π - la convention physique : x = r sin Φ cos θ , y = r sin Φ sinθ, z = r cos Φ avec r ≥ 0, 0 ≤ Φ ≤ π et — π ≤ θ ≤ π

Les angles Φ , θ sont ici définis en radians, sans perte de généralité. Le rayon r et l'azimut (ou longitude) θ sont identiques dans ces deux définitions, mais l'angle Φ diffère selon qu'il est défini par rapport au plan horizontal 0xy (élévation ou latitude sur l'intervalle [-π /2, π/2]) OU à partir de l'axe 0z (co-latitude ou angle polaire sur l'intervalle [0, π]). L'azimut θ peut être défini sur un intervalle [- π,π] de façon équivalente on pourra le définir sur [0,2π] par simple opération de modulo 2π. Par la suite, on représentera de façon préférentielle les mêmes coordonnées angulaires en degrés, mais d'autres unités pourront être utilisées. On notera que les symboles peuvent être différents dans la littérature (par exemple φ au lieu de Φ) et/ou intervertis (par exemple θ pour la colatitude et φ pour la la longitude).

Par la suite, la convention adoptée sera préférentiellement d'utiliser la paire élévation et azimut, mais l'invention s'applique à toutes les variantes de définition de coordonnées sphériques.

On s'intéresse dans l'invention à des exemples de réalisation de quantification vectorielle sphérique appliqués au codage de directions 3D de sources audio. L'invention pourra également s'appliquer à d'autres formats audios et à d'autres signaux (par exemple des images ou vidéo 360) dans lesquels des données sphériques en dimension 3 sont à coder.

On rappelle ci-dessous les principes du codage DiRAC (pour Directional Audio Coding en anglais). Dans des variantes, on pourra appliquer l'invention à d'autres schémas de codage, en particulier pour le codage audio par transformée.

Le codage DiRAC est décrit par exemple dans l'article V. Pulkki, Spatial sound reproduction with directional audio coding, Journal of the Audio Engineering Society, vol. 55, no. 6, pp. 503-516, 2007. Dans ce document, une cartographie est réalisée par le biais d'une analyse directionnelle pour trouver une direction (DoA) par sous-bandes. Cette DoA est complétée par un paramètre de « diffuseness », ce qui donne une description paramétrique de la scène sonore.

Le signal d'entrée multicanal est codé sous la forme de canaux de transport (typiquement un signal mono ou stéréo obtenu par réduction de multiples canaux captés) et des métadonnées spatiales (DoA et « diffuseness » par sous-bandes).

On décrit à la figure 1 un exemple de mise en œuvre du codage DirAC. Dans cet exemple, le codage utilise une réduction du nombre de canaux (downmix en anglais

- bloc 100), où on ne code (bloc 110) par exemple qu'un seul canal avec un codec mono

- par exemple 3GPP EVS à un débit donné (24.4 kbit/s). Le signal d'entrée est également décomposé (bloc 120) en sous-bandes fréquentielles par exemple par un banc de filtres ou par une transformée de Fourier à court-terme. On suppose ici une découpe en bandes de Bark, par exemple 24 sous-bandes réparties en fréquences selon l'échelle Bark connues de l'état de l'art. Dans chaque trame et chaque sous-bande le codage DirAC estime typiquement deux paramètres (bloc 130) - pour alléger les notations on n'utilise pas d'indice de trame ni de sous-bandes pour les différents paramètres: la direction de la source dominante (DoA) en termes d'élévation (Φ) et d'azimut (θ), et la « diffuseness » ψ comme décrit dans l'article précité de Pulkki. L'estimation de la DoA s'effectue en général par le biais d'un vecteur intensité active avec une moyenne temporelle, dans des variantes on pourra mettre en œuvre d'autres méthodes d'estimation de Φ, θ, ψ.

La DoA est codée (bloc 140) sur un nombre prédéterminé de bits (par exemple 7 bits) par paire (Φ, θ) dans chaque trame et chaque sous-bande. La « diffuseness » ψ est un paramètre compris entre 0 et 1, elle est ici codée (bloc 150) par quantification scalaire (par exemple sur 6 bits). Dans l'exemple donné, le budget de codage des métadonnées spatiales est donc 24 x (7+6)=312 bits par trame, soit 15.6 kbit/s, pour un budget global de 24.4+15.6 = 40 kbit/s. Le train binaire du codage du signal « downmix » et les paramètres spatiaux codés sont multiplexés (bloc 160) pour former le train binaire de chaque trame.

La figure 2 illustre un exemple de réalisation d'un décodeur DirAC. Après démultiplexage du train binaire (bloc 200), on décode le signal « downmix » (bloc 210). Les paramètres spatiaux sont décodés (bloc 250 et bloc 270). Le signal décodé ŝ est ensuite décomposé en temps/fréquences (bloc 220 identique au bloc 120) pour le spatialiser comme une source ponctuelle (onde plane) dans le bloc (bloc 260) qui génère un signal ambisonique d'ordre 1 spatialisé comme:

A partir du signal décodé on effectue une décorrélation (bloc 230) pour avoir une version « diffuse » (correspondant à une largeur de source maximale) ; cette décorrélation réalise également une augmentation du nombre de canaux pour obtenir en sortie du bloc 230 un signal ambisonique d'ordre 1 avec 4 canaux (W, Y, Z, X). Le signal décorrélé est décomposé en temps/fréquences (bloc 240). Les signaux issus des blocs 240 et 260 sont combinés (bloc 275) par sous-bande, après application d'un facteur d'échelle (blocs 273 et 274) obtenus à partir de la « diffuseness » décodée (blocs 271 et 272) ; ce mélange adaptatif permet de « doser » la largeur de source et le caractère diffus du champ sonore dans chaque sous-bande. Le signal mélangé est converti en temporel (bloc 280) par banc de filtres ou une transformée court-terme inverse.

Les directions de sources dans le format DirAC sont donc représentées sous la forme de données sphériques 3D, typiquement sous la forme de coordonnées sphériques (azimut, élévation) selon la convention géographique. Il existe dans ce contexte un besoin de représenter ces informations de DoA de façon efficace, ce qui peut se formuler comme un problème de quantification vectorielle sur la sphère en dimension 3.

Un autre exemple de format paramétrique pour l'audio immersif est donnée par le format MASA décrit dans la contribution « 3GPP Tdoc S4-180087: On IVAS audio formats for mobile capture devices. Source: Nokia Corporation ». Le principe est résumé à la figure 3. On suppose un téléphone mobile équipés de plusieurs microphones (par exemple 4 microphones) placés à des endroits prédéterminés (par exemple deux sur le bas du téléphone, un sur le haut de téléphone et un dernier sur la coque arrière du téléphone). Ces microphones sont vus comme regroupés dans le bloc 300 qui fournit autant de signaux (canaux) que de microphones - avec éventuellement des informations supplémentaires comme le placement ou les caractéristiques des microphones.

Le bloc 310 effectue une analyse paramétrique des signaux issus du bloc 300, selon une approche similaire DirAC, qui fournit des canaux de transport (ou transport channels en anglais) et des métadonnées (metadata en anglais). Cette analyse MASA est en général propriétaire et sélectionnée par le fabricant du téléphone. Le nombre de canaux de transport est typiquement limité à 1 (mono) ou 2 (stéréo), ils peuvent être définis simplement en sélectionnant le microphone primaire dans le cas mono ou deux microphones opposés (par exemple un en bas et un autre en haut du téléphone) dans le cas stéréo. Un exemple de format de métadonnées MASA est décrit par exemple dans la contribution "3GPP Tdoc S4-191167 (Oct. 2019), Description of the IVAS MASA C Reference Software, Source: Nokia Corporation". On s'intéresse particulièrement ici au paramètre appelé « Direction index » et codé sur 16 bits, dont la description dans ce document est la suivante : « Direction d'arrivée du son dans un intervalle temps- fréquence ; Représentation sphérique avec une précision d'environ 1 degrés ; Intervalle de valeurs: "couvre toutes les directions avec une précision d'environ 1° ».

Il s'agit donc d'une direction de source (DoA) selon une grille sphérique 3D dont la résolution (angulaire) est proche de 1 degrés. Cette information DoA est fournie pour chaque trame et sous-bande fréquentielle par une estimation de DoA (bloc 311). Le bloc 312 (à l'intérieur du bloc 310) réalise donc un codage d'informations DoA qui sont codées sur 16 bits par DoA.

Le bloc 320 représente le codec IVAS qui n'est pas encore disponible comme standard 3GPP et qui reste en cours de développement. Cependant, il a été proposé au 3GPP que le format paramétrique MASA définissant des canaux de transports et des métadonnées (dont la DoA par trame et sous-bande) soit un format d'entrée du codec IVAS. Le (futur) codeur IVAS devrait alors mettre en œuvre une étape de décodage des informations DoA (bloc 321) pour pouvoir exploiter pleinement ces informations de DoA et les compresser à débit plus faible. Les détails de réalisation concernant la compression d'un format MASA d'entrée en un train binaire IVAS à débit donné et le décodage associé dépassent le cadre de cette invention, cependant on pourra par exemple noter que le format MASA repose sur un principe étendu du codage DirAC, les canaux de transport peuvent être codés séparément (par un codec cœur mono) ou conjointement (par un codec cœur stéréo) et les métadonnées peuvent être codées à débit plus faible que dans le format d'entrée MASA.

De façon générale, n'importe quelle discrétisation de la sphère peut être utilisée comme dictionnaire de quantification vectorielle sphérique. Cependant, sans structure particulière, la recherche du plus proche voisin et l'indexation dans ce dictionnaire peuvent s'avérer coûteuses à mettre en œuvre, surtout quand le débit de codage des informations DoA est trop élevé (ex : 16 bits par vecteur 3D indiquant une DoA).

Un exemple de grille sphérique 3D est donné en Annexe et dans le code source attaché à la contribution « 3GPP Tdoc S4-191167 (Oct. 2019), Description of the IVAS MASA C Reference Software, Source: Nokia Corporation ».

La direction spatiale d'une source audio dans une trame donnée et une sous-bande donnée d'une proposition de format WMASA est représentée par deux angles : l'azimut et l'élévation. Les notations utilisées par la suite sont Φ pour l'élévation et θ pour l'azimut, alors que la convention inverse est utilisée dans le document 3GPP Tdoc S4-191167.

Ce document donne une définition d'une grille sphérique comme-suit : La grille est constituée de N tot = 2 16 - 208 = 65328 points discrétisant la surface d'une sphère 3D de rayon 1 ; chaque point est représenté par un indice unique sur 16 bits. Cette grille est définie par trois éléments stockés:

• un nombre N Φ = 122 de valeurs discrètes pour coder l'élévation positive (c'est- à-dire |Φ|)

• un dictionnaire de quantification scalaire pour l'élévation (pour l'hémisphère Nord correspondant à

• un nombre de points (taille du dictionnaire) N θ (i), i = 0, ...,121, pour coder l'azimut, à une élévation discrète donnée d'indice i

La définition précise de la grille est détaillée ci-dessous :

• Chaque point sur la grille 3D est donné par une valeur codée d'élévation - décomposée en une valeur absolue codée et un signe

(+1 ou -1) - et une valeur codée d'azimut qui dépend de l'indice i d'élévation. La valeur codée d'élévation est pour i = 0 et pour i = 1, .... N Φ - 1.

• Le nombre N Φ = 122 correspond ainsi au nombre d'élévations (codées) de valeur positive (incluant la valeur nulle) ; le dictionnaire de quantification scalaire de l'élévation comprend donc 2N Φ - 1 = 243 valeurs codées en prenant en compte le signe, ces valeurs peuvent être ordonnées en partant du pôle Nord jusqu'au pôle Sud comme : correspondant au Pôle Nord correspondant à la première couche au-dessus de l'équateur correspondant à l'équateur correspondant à la première couche en dessous de l'équateur correspondant au Pôle Sud

• L'élévation Φ est codée par quantification scalaire uniforme sur l'intervalle [- 88.65, 88.65] degrés avec en plus deux mots de code pour les pôles (± 90 degrés). La valeur 0 degrés (correspondant à l'équateur) est contenue dans le dictionnaire. Le pas de quantification est fixé à ce qui donne δΦ ≈ 0.7388 degrés. On a donc pour i = 0, ..., N Φ - 2 et = 90 pour i = N Φ - 1.

• La taille N θ (i) du dictionnaire de quantification scalaire uniforme pour l'azimut θ dépend de l'élévation codée i; le pas en azimut est fixé de sorte que la distance entre mots de code successifs soit identique. La taille des dictionnaires d'azimut est symétrique par rapport à l'équateur (les couches d'élévations négatives ont le même nombre de points que les positives).

Le nombre N θ (i) de valeurs d'azimut codées est donné par :

N θ (0) = 422

N θ (N Φ - 1) = 1 avec

En pratique cela donne

N θ (i = 0, ... ,121) = [

422 421 421 421 421 421 420 420 419 419 418 417 416 416 415 414 413 411

410 409 408 406 405 403 401 400 398 396 394 392 390 388 386 384 382 379

377 374 372 369 367 364 361 358 355 352 349 346 343 340 337 333 330 327

323 320 316 313 309 305 301 298 294 290 286 282 278 274 269 265 261 257

252 248 244 239 235 230 225 221 216 211 207 202 197 192 188 183 178 173

168 163 158 153 148 143 137 132 127 122 117 111 106 101 96 90 85 80

74 69 64 58 53 47 42 37 31 26 20 15 9 1]

On peut vérifier que le nombre total de points dans la grille est :

Chaque élévation codée définit une zone sphérique (une zone sphérique délimitée par les valeurs d'élévation dans laquelle un dictionnaire d'azimut est utilisé. Les dictionnaires d'azimut ont un offset fixé à 0 pour les valeurs i paires et pour les valeurs i impaires. Autrement dit la valeur codée d'azimut (en degrés) est pour j = 0, ... , N θ (i) — 1:

Le document cité ci-dessus donne une méthode pour coder un point donné (Φ, θ). Etant donné un point (Φ, θ) à coder, la quantification (recherche du plus proche voisin) sur la grille s'effectue selon les étapes suivantes :

• Le signe sgn Φ , et la valeur absolue |0| de l'élévation 0 sont déterminés ; en particulier sgn Φ = 1 si 0 ≥ 0, -1 autrement. La valeur absolue |0 |est codée par quantification scalaire uniforme en retenant les deux plus proches voisins. Ce codage avec « 2 survivants » peut par exemple être effectué par une recherche préliminaire du plus proche voisin dans le dictionnaire d'élévation (positive), par recherche exhaustive.

On note l'indice du plus proche voisin. Ensuite on détermine l'indice i 2 de la seconde valeur la plus proche selon la valeur de i 1 : o i 2 = 1 si i 1 =0

° i 2 = NΦ - 2 si i 1 =N Φ - 1

On obtient ainsi deux candidats est l'élévation absolue codée, k = 1 ou 2, pour représenter l'élévation 0. En termes de valeur absolue, ces deux candidats sont simplement

• L'azimut 0 est codé par quantification scalaire uniforme (avec un offset dépendant de l'élévation) selon le dictionnaire correspondant respectivement à k = 1 ou 2. On obtient l'indice ; k de la façon suivante : où et l'arrondi à l'entier inférieur, Δ = 0 si i k est pair, 180/ N θ (i k ) si i k est impair, et est l'opération de modulo telle que si i =0, vérifie donc : 0 ≤ j k ≤ N θ (i k )-1 . • Le meilleur candidat est sélectionné en minimisant la distance sphérique entre en fonction de k=1 ou 2, ce qui peut s'écrire indépendamment du signe sgn Φ , (puisque le signe de est identique à celui de Φ) comme :

La paire la plus proche au sens de cette distance est sélectionnée comme valeur quantifiée à indexer. On note ce point sélectionné ^ OÙ \ et

L'indice de quantification (sur 16 bits), noté ici index, du point sélectionné est obtenu par énumération des points sur la grille en partant de l'équateur (tous les points d'élévation , puis en considérant la première couche au-dessus de l'équateur (tous les points d'élévation , puis la première couche au dessous de l'équateur (tous les points d'élévation etc.

On obtient un indice sous la forme index dans l'intervalle 0, ... , N tot — 1 où :

Les valeurs de cardinalités cumulatives cumN sont calculées au fil de l'eau à chaque fois que l'indice index est déterminé : 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 θ (ï) La méthode de décodage du document cité ci-dessus est précisée à l'organigramme de la figure 4.

Le décodage consiste, à partir de l'indice index (bloc 400), à retrouver les informations d'élévation id Φ . sgn Φ et d'azimut id θ (bloc 413), ce qui permet ensuite de reconstruire le point

Le principe du décodage est de comparer successivement la valeur index aux valeurs de cardinalités cumulatives successives cumN (ou sommes de cardinalités) qui sont calculées au fil de l'eau de façon récursive pour i = 0,..., N Φ - 1, en tenant compte du fait que les cardinalités N θ (i) sont identiques pour les élévations de même valeur absolue (dans les hémisphères Nord et Sud). Le signe de l'élévation sgn Φ , est décodé en exploitant l'ordre prédéfini d'écriture des couches sphériques : équateur, première couche d'élévation positive (+), première couche d'élévation négative (-), ..., jusqu'aux pôle Nord (+), pôle Sud (-)...

Les valeurs de id Φ , sgn Φ , cumN(0) sont initialisées (bloc 401).

Si index ≥ cumN(0) (bloc 402), on effectue le décodage des informations pour les « couches d'élévation » hors équateur d'indice i > 0. La recherche de la « couche d'élévation » s'effectue par une boucle en partant de i = 1 jusqu'à i = N Φ - 1 (blocs 403, 404, 411). A l'itération i, la cardinalité cumulative est calculée de façon récursive (blocs 405, 408) et comparée à l'indice (bloc 406, 409) afin de décoder les indices (blocs 407, 410).

Si index < cumN(0) (bloc 402), on effectue le décodage des indices des informations pour la couche correspondant à l'équateur (bloc 412).

On notera que dans la réalisation dans le code source attaché à la contribution 3GPP Tdoc S4-191167 un test pour vérifier si i = N Φ - 1 est mis en œuvre pour décoder explicitement id Φ = N Φ - 1, sgn Φ =-1, id θ = 0. Cette partie n'est pas reprise car le signe sgn Φ =1 devrait également être possible dans une grille contenant le pôle Nord et Sud et elle est normalement inutile car la définition cumN(N Φ - 1) doit permettre le décodage des points associés aux pôles. La gestion spécifique des pôles peut être négligée, l'important concerne le principe d'un décodage itératif par comparaison de l'indice avec une cardinalité cumulative (ou somme de cardinalités) calculée au fur et à mesure. Une fois les indices idΦ .sgnΦ et id θ décodés, la reconstruction des coordonnées sphériques reprend, en 413, la définition de la grille définie précédemment avec:

Cette méthode telle que mise en œuvre dans la contribution 3GPP Tdoc S4-191167 citée précédemment nécessite un pré-stockage de N Φ , = 122 valeurs flottantes de quantification scalaire de l'élévation (positive), N Φ , valeurs entières donnant N θ (i) valeurs pour chaque couche d'élévation (positive), et une valeur entière donnant N Φ . La grille n'utilise pas toutes les valeurs possibles d'indices sur 16 bits, puisque 208 indices (de 65328 à 65535) sont inutilisés.

Cette méthode a comme principal défaut que sa complexité est très élevée, de l'ordre de 123 WMOPS au codage (pour millions d'opérations pondérées par seconde) et 12 WMOPS au décodage, en supposant 24 sous-bandes (donc 24 DoA par trame) et une résolution temporelle de 5 ms (donc une trame toutes les 5 ms). Ce coût est élevé en particulier par la mise en œuvre de la quantification scalaire de l'élévation par recherche dans un dictionnaire stocké et surtout par le calcul au fil de l'eau des cardinalités cumulatives cumN(i).

Il existe donc un besoin d'améliorer les méthodes de l'état de l'art de quantification de données sphériques en dimension 3D, en particulier afin de coder efficacement des données de DoA, avec si possible une complexité la plus réduite possible et en évitant d'avoir des indices non utilisés pour un nombre total de points donné (ou de façon équivalente un budget de bits donné).

L'invention vient améliorer l'état de la technique.

A cet effet, l'invention vise un procédé de codage d'une direction spatiale d'une source sonore, cette direction étant défini par des coordonnées sphériques comprenant une coordonnée d'élévation et une coordonnée d'azimut, dans lequel un dictionnaire de quantification sphérique est défini sur une sphère 3D par un codage de l'élévation et de l'azimut, et dans lequel : - le codage de l'élévation utilise une quantification scalaire, donnant au moins un indice d'élévation codée sur un nombre de niveau d'élévation ,

- le codage de l'azimut utilise une quantification scalaire, en fonction d'un nombre de points par niveau dépendant de l'indice de l'élévation codée,

- le nombre de points par niveau est déterminé en fonction de deux valeurs de cardinalité cumulative successives,

- la valeur de cardinalité cumulative pour un indice d'élévation codée étant représentative d'un nombre de points proportionnel à un nombre total de points et selon l'aire d'une zone sphérique comprenant au moins une zone délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation codée et un plan horizontal inférieur de la sphère.

Ainsi, les valeurs de cardinalité cumulative utilisées pour définir le dictionnaire de quantification sphérique, notamment pour déterminer le nombre de niveaux de quantification pour la coordonnée d'azimut, reposent sur une estimation directe de l'aire de zones sphériques, évitant ainsi un calcul au fil de l'eau et de façon récursive de la somme de cardinalités utilisée dans la méthode proposée dans l'état de l'art qui est très consommatrice en ressources.

La méthode proposée ici est nettement moins consommatrice en ressources, elle est par exemple de l'ordre de 2 WMOPS pour le codage et 1 WMOPS pour le décodage.

La définition d'un tel dictionnaire de quantification permet d'autre part d'exploiter tous les points (ou mots de code) possibles du dictionnaire de façon à rendre plus efficace la quantification et éviter d'avoir des indices (ou mots de code) inutilisés dans la grille. L'invention est en particulier appliquée pour mettre en œuvre une méthode plus efficace de codage et de décodage d'informations DoA sur 16 bits pour définir le format MASA en entrée d'un codage IVAS.

Dans un mode de réalisation, le codage de l'élévation inclut des niveaux correspondant à l'équateur et aux pôles de la sphère 3D, ce qui permet d'inclure tous les points particuliers (équateur et pôles) de la sphère dans le dictionnaire de quantification. Dans un mode de réalisation, un nombre de points pour le codage de l'azimut est prédéterminé pour le niveau d'élévation correspondant à l'équateur et le nombre total de points est obtenu en soustrayant à un nombre de points cible le nombre de points prédéterminé correspondant à l'équateur et chacun des pôles nord et sud de la sphère selon l'expression suivante: , N tot étant le nombre de points cible de la sphère pour un budget de bits donné, N θ (0), le nombre de points prédéterminé pour le niveau d'élévation correspondant à l'équateur ; et 2N θ (N Φ - 1) le nombre de points prédéterminé pour les pôles nord et sud de la sphère.

La méthode est ainsi adaptée à la connaissance du nombre de points pour certaines couches sphériques particulières comme celle correspondant à l'équateur et celles correspondants aux pôles qui peuvent être définis à une valeur fixe.

Dans un mode particulier de réalisation, la valeur de cardinalité cumulative pour un indice d'élévation codée est représentative d'un nombre de points proportionnel au nombre total de points selon l'aire (Ai) d'une zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation codée et ce même plan de la sphère symétrique par rapport à l'équateur auquel on retranche l'aire (Ao) correspondant au niveau d'élévation de l'équateur, selon le rapport suivant:

NΦ — 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère et , l'aire de la zone sphérique correspondant à un indice d'élévation N Φ - 2.

Dans une variante de réalisation, la valeur de cardinalité cumulative pour un indice d'élévation codée est représentative d'un nombre de points proportionnel au nombre total de points selon l'aire (A'j) d'une zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation codée et celui de l'équateur auquel on retranche la moitié de l'aire correspondant au niveau d'élévation de l'équateur, selon le rapport suivant:

N Φ — 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère et l'aire de la zone sphérique correspondant à un indice d'élévation N Φ - 2.

Ces rapports d'aires de zones sphériques permettent d'estimer de façon simple et directe, par une simple règle de trois, le nombre de points dans les zones sphériques correspondantes qui sont des sous-ensembles de la surface complète de la sphère 3D. Ces rapports permettent d'exprimer des valeurs de cardinalité cumulatives de la façon suivante : avec i = 1, ... , N Φ - 2, N Φ - 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère, étant un arrondi à l'entier le plus proche dépendant de i , correspondant à un arrondi à un entier pair et δ Φ un pas de quantification de l'élévation donné.

Dans un mode de réalisation, le codage de l'élévation donne un indice d'élévation codée (i) sur un nombre de niveau (N Φ ) d'élévation et une information de signe. Ainsi, seule une demi-sphère est considérée pour définir le dictionnaire de quantification, le nombre de niveaux d'élévation et le nombre de points par niveaux étant symétriques de part et d'autre de l'équateur.

Dans un mode de réalisation, un indice de quantification global à transmettre (index) est déterminé en fonction d'un indice d'azimut codé par quantification scalaire sur le nombre de points par niveau (N θ (i)) déterminé et d'une valeur de cardinalité cumulative obtenue en fonction au moins de l'indice d'élévation codé.

Les valeurs de cardinalité ainsi définies peuvent être estimées directement (de façon analytique) pour définir l'indice global à transmettre, ce qui permet de réduire la complexité maximale de calcul.

L'invention se rapporte également à un procédé de décodage d'une direction spatiale d'une source sonore, cette direction étant défini par des coordonnées sphériques comprenant une coordonnée d'élévation et une coordonnée d'azimut, dans lequel un dictionnaire de quantification sphérique est défini sur une sphère 3D par un codage de l'élévation et de l'azimut, et dans lequel :

- le décodage de l'élévation utilise une quantification scalaire, donnant au moins un indice d'élévation décodée (i) sur un nombre de niveau (N Φ ) d'élévation ,

- le décodage de l'azimut utilise une quantification scalaire, en fonction d'un nombre de points par niveau (N θ (i)) dépendant de l'indice de l'élévation décodée (i),

- le nombre de points par niveau (N θ (i)) est déterminé en fonction de deux valeurs de cardinalité cumulative successives (cum N(i), cumN(i — 1)), - la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation décodée (i) étant représentative d'un nombre de points proportionnel à un nombre total de points et selon l'aire d'une zone sphérique comprenant au moins une zone délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation décodée (i) et un plan horizontal inférieur de la sphère.

Le procédé de décodage a les mêmes avantages que le procédé de codage, il permet une optimisation des ressources de calcul par l'utilisation d'un dictionnaire de quantification sphérique optimisé.

De la même façon que pour le codage et selon les mêmes avantages, dans un mode de réalisation, le décodage de l'élévation inclut des niveaux correspondant à l'équateur (0°) et aux pôles (+/-90°) de la sphère 3D.

Selon un mode particulier de réalisation, un nombre de points (N θ (0)) pour le décodage de l'azimut est prédéterminé pour le niveau d'élévation correspondant à l'équateur et le nombre total de points est obtenu en soustrayant à un nombre de points cible (N tot = 2 16 ) le nombre de points prédéterminé correspondant à l'équateur et chacun des pôles nord et sud de la sphère selon l'expression suivante:

N tot étant le nombre de points cible de la sphère pour un budget de bits donné, N θ (0), le nombre de points prédéterminé pour le niveau d'élévation correspondant à l'équateur ; et

2N θ (N Φ - 1) le nombre de points prédéterminé pour les pôles nord et sud de la sphère.

Dans un mode de réalisation, la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation décodée (i) est représentative d'un nombre de points proportionnel au nombre total de points selon l'aire (Ai) d'une zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation décodée (i) et ce même plan de la sphère symétrique par rapport à l'équateur auquel on retranche l'aire (A 0 ) correspondant au niveau d'élévation de l'équateur, selon le rapport suivant:

N Φ — 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère et l'aire de la zone sphérique correspondant à un indice d'élévation N Φ — 2.

Dans un exemple possible, l'expression de la valeur de cardinalité cumulative est la suivante : avec i = 1, .... N Φ - 2, N Φ — 2 étant le nombre de niveaux de quantification de l'élévation sans l'équateur et les pôles nord et sud de la sphère, étant un arrondi à l'entier le plus proche dépendant de i, correspondant à un arrondi à un entier pair et δ Φ un pas de quantification de l'élévation donné.

Selon un mode de réalisation, le décodage de l'élévation donne un indice d'élévation décodée (i) sur un nombre de niveau (N Φ ) d'élévation et une information de signe. Dans un mode de réalisation, le décodage comprend la réception d'un indice de quantification global (index), et la détermination à partir de cet indice, d'une valeur de cardinalité cumulative obtenue en fonction d'au moins l'indice d'élévation décodé et d'un indice d'azimut décodé sur un nombre de points par niveau (N θ (i)) déterminé.

L'invention vise un dispositif de codage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de codage tel que décrit précédemment. L'invention vise aussi un dispositif de décodage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de décodage tel que décrit précédemment.

L'invention se rapporte à un programme informatique comportant des instructions pour la mise en œuvre des procédés de codage ou de décodage tels que décrits précédemment, lorsqu'ils sont exécutés par un processeur.

Enfin l'invention se rapport à un support de stockage, lisible par un processeur, mémorisant un programme informatique comportant des instructions pour l'exécution du procédé de codage ou du procédé de décodage décrits précédemment. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation particuliers, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels : [Fig 1] décrite précédemment, illustre un dispositif de codage de type DirAC avec un codage de données sphériques en dimension 3;

[Fig 2] décrite précédemment, illustre un dispositif de décodage de type DirAC avec un décodage de données sphériques en dimension 3;

[Fig 3] décrite précédemment, illustre un dispositif de type smartphone équipé de plusieurs microphones avec une pré-analyse spatiale de type MASA pour fournir en entrée d'un codage un format de type MASA;

[Fig 4] décrite précédemment illustre sous forme d'organigramme les étapes mises en œuvre dans le décodage de données sphériques en dimension 3 ;

[Fig 5a] illustre des zones sphériques induites par la discrétisation de l'élévation pour définir le dictionnaire de quantification sphérique selon un mode de réalisation de l'invention ;

[Fig 5b] illustre les aires utilisées pour la détermination du nombre de points en azimut pour définir le dictionnaire de quantification sphérique selon un mode de réalisation de l'invention ;

[Fig 6a] illustre sous forme d'organigrammes les étapes mises en œuvre dans un procédé de codage selon un mode de réalisation de l'invention ;

[Fig 6b] illustre sous forme d'organigramme l'étape d'indexation mise en œuvre dans le procédé de codage selon un mode de réalisation de l'invention ;

[Fig 7a] illustre sous forme d'organigrammes les étapes mises en œuvre dans un procédé de décodage selon un mode de réalisation de l'invention ;

[Fig 7b] illustre sous forme d'organigramme les étapes de décodage des indices de quantification mises en œuvre dans le procédé de décodage, selon un mode de réalisation de l'invention ;

[Fig 8a] illustre sous forme d'un diagramme l'indexation (dans l'hémisphère Nord de la sphère 3D) mise en œuvre dans un procédé de décodage selon un mode de réalisation de l'invention ;

[Fig 8b] illustre sous forme d'un diagramme l'indexation (dans l'hémisphère Sud de la sphère 3D) mise en œuvre dans un procédé de décodage selon un mode de réalisation de l'invention ; et

[Fig 9] illustre des exemples de réalisation structurelle d'un dispositif de codage et d'un dispositif de décodage selon un mode de réalisation de l'invention. L'invention décrite ci-après se rapporte à la quantification de données sphériques en dimension 3. Ceci s'applique à titre d'exemple pour le codage et le décodage des directions spatiales de sources sonores (DoA), pour un codage et décodage par exemple de données de type MASA comme décrit ultérieurement en référence aux figures 5 à 7. Dans des variantes, l'invention pourra s'appliquer à un codage de type DirAC ou tout type de codage/décodage de données audio ou un codage de tout autre type de données où une information de direction 3D est codée.

Sans perte de généralité, on prend ici la définition des coordonnées sphériques en 3D en degrés selon la convention géographique qui est utilisée dans la description de la proposition de référence de format MASA.

On omet le rayon qui est ici fixé à 1 en ne gardant que l'azimut et l'élévation dans le cas où on code une direction de sources (ou DoA) comme dans un schéma de type DiRAC ou MASA. Dans des variantes et pour certaines applications (ex : quantification d'une sous-bande en codage par transformée), il sera possible de coder un rayon séparément (correspondant à un niveau d'amplitude moyenne par sous-bande par exemple).

Dans des variantes, d'autres unités que les degrés (ex : radians) seront utilisées, et d'autres conventions que la convention géographique seront utilisées par exemple l'élévation pourra être remplacée par la co-latitude. Ainsi, d'autres systèmes de coordonnées sphériques équivalents (obtenus par exemple par permutation ou inversion de coordonnées cartésiennes) pourront être utilisés selon l'invention - il suffira d'appliquer les conversions nécessaires dans la définition des dictionnaires de quantification scalaire, la reconstruction, etc. Le codage et le décodage selon l'invention s'applique à toutes les définitions de coordonnées sphériques, on peut ainsi remplacer Φ, θ par d'autres coordonnées sphériques, en adaptant la conversion entre coordonnées cartésiennes et coordonnées sphériques.

La figure 5a illustre une représentation partielle en 2D d'un dictionnaire de quantification sphérique (grille) selon un mode de réalisation de l'invention. Selon l'invention, le dictionnaire de quantification sphérique est défini par un codage de l'élévation et de l'azimut. Le codage de l'élévation utilise une quantification scalaire, avec une discrétisation de l'élévation qui, selon un mode de réalisation, inclut des niveaux correspondants à l'équateur (élévation nulle) et aux pôles (élévation +/-90°) de la sphère 3D. Le codage de l'élévation donne au moins un indice d'élévation codée (i) sur un nombre de niveau d'élévation.

Cette discrétisation utilise un nombre de niveaux positifs (N Φ ) pour l'hémisphère Nord et une indication de signe d'élévation (indiquant l'hémisphère Nord ou Sud), ce qui revient à 2N Φ - 1 niveaux pour coder l'élévation dans les deux hémisphères Nord et Sud de la sphère 3D.

Comme illustré à la figure 5a, on peut donc voir le dictionnaire de quantification sphérique encore nommé ci-après grille selon l'invention comme un ensemble de 2N Φ - 1 « couches sphériques » ou « tranches horizontales » représentés en C0, C1, C -1 , ...Ci,..., induites de la quantification d'élévation (les limites de chaque tranches en pointillés sont données par les seuils de décision de la quantification d'élévation, hors pôles). La surface de l'hémisphère Nord est divisée en couches, Co (seule la moitié supérieure de C 0 , au-dessus de l'équateur, est dans l'hémisphère Nord), C 1 , ...Ci,..., tandis que la surface de l'hémisphère Sud est divisée en couches Co (seule la moitié inférieure de C 0 , au-dessous de l'équateur, est dans l'hémisphère Sud), C- 1 , ...C- i ,..., C-

On notera qu'à la figure 5a, on montre une projection 2D de la sphère 3D, en prenant un plan de coupe vertical arbitraire. L'axe 0z en coordonnées cartésiennes est indiqué, avec une graduation selon le sinus de l'élévation, puisque la coordonnée z correspond à z = sin Φ dans la convention choisie.

Le codage de l'azimut utilise une quantification scalaire, en fonction du nombre de niveaux d'azimut (N θ (i) ) (encore appelé nombre de points par niveau) dépendant de l'indice de l'élévation (positive ou absolue) codée (i=0, ..., N Φ - 1), ce nombre de niveaux N θ (i) étant symétrique de part et d'autre de l'équateur pour les hémisphères Nord et Sud.

La détermination de ce nombre de niveaux d'azimut est décrite ci-après.

Pour ne pas surcharger cette figure on ne montre pas la subdivision de ces couches horizontales en « régions » équiréparties selon la discrétisation de l'azimut avec un nombre N θ (i) de niveaux d'azimut dépendant du niveau en élévation.

La grille sphérique selon l'invention discrétise séparément l'élévation et l'azimut par quantification scalaire, avec une discrétisation uniforme de l'azimut selon un nombre de niveaux N θ (i)) dépendant de la valeur codée i d'élévation (positive ou absolue). Cependant, la recherche optimale du plus proche voisin dans la grille implique de sélectionner deux candidats en élévation et donc aussi deux candidats associés en azimut pour sélectionner le meilleur candidat ; ceci revient donc à un codage conjoint même s'il est en pratique séparé, les vraies régions de décision de la grille (en termes de régions de Voronoï à la surface de la sphère) ne sont donc pas des rectangles sphériques. Pour des fins d'indexation (codage de l'indice global et décodage), la discrétisation de la surface de la sphère 3D peut être malgré tout vue comme un découpage séparé en élévation et en azimut pour obtenir des rectangles sphériques (hors calottes au niveau des pôles).

On code séparément les coordonnées Φ et θ, avec un dictionnaire de quantification scalaire avec N fl , niveaux pour |Φ| et avec une information de signe s (indiquant l'hémisphère Nord pour s =+1 ou Sud pour s = -1) et un ensemble de dictionnaires de quantification scalaire uniforme avec N θ (i) niveaux pour θ en fonction de l'indice i de l'élévation (positive ou absolue) codée.

Le nombre total de points de la sphère discrétisée selon les différents nombres de niveaux déterminés, encore appelée nombre total de point dans la grille 3D est donné, dans un mode particulier de réalisation par :

Ce nombre inclut les points Nθ (0) sur le niveau d'élévation (la couche sphérique) correspondant à l'équateur (C0, id^ = 0) et les points N θ (i) de chaque niveau d'élévation positive d'indice i = 1, ... .N Φ - 1, encore appelé couche d'élévation Ci, ces derniers étant symétriques entre l'hémisphère Nord et Sud donc comptés en double.

La grille sphérique est donc définie comme le dictionnaire de quantification vectorielle sphérique suivant (avec un rayon supposé égal à 1 par convention) : On notera que la valeur de s pour i = 0 est arbitraire, puisque .

Dans le mode de réalisation privilégié, on définit une grille 3D pour un budget de bits donné sur par exemple 16 bits, donnant ainsi un nombre total de points de la sphère, soit N tot = 2 16 . Dans des variantes, d'autres valeurs de N tot (donc de budget de bits) seront possibles.

L'élévation est codée par quantification scalaire sur N Φ , niveaux de reconstruction. Dans le mode de réalisation privilégié, on fixe N Φ = 122 comme nombre de niveaux positifs comme dans la grille du format MASA décrite précédemment. Cela permet en particulier d'avoir un nombre pair de niveaux dans l'hémisphère Nord ( N Φ incluant le pôle Nord et l'équateur). Si l'on prend aussi en compte l'hémisphère Sud, l'élévation est donc codée sur 2N Φ - 1 niveaux (en ne comptant qu'une fois l'équateur). L'inclusion des pôles permet une représentation complète de la sphère, l'impact est minime car seuls 2 points de la grille sont associés aux pôles (lorsque le signe est appliqué).

Pour le codage de l'élévation par quantification scalaire, on définit un pas de quantification uniforme δ Φ (hors pôles) et on prend : avec par exemple = 0.7388 degrés comme dans la grille du format MASA décrite précédemment. Le pas de quantification est uniforme sur l'intervalle si le signe est pris en compte.

L'azimut θ est codé par quantification scalaire sur N θ (i) niveaux. De façon préférentielle on utilise une quantification scalaire uniforme avec un dictionnaire de quantification scalaire uniforme en tenant compte de la nature cyclique de l'intervalle [-180,180] degrés :

Les dictionnaires d'azimut ont un décalage encore appelé offset fixé à 0 pour les valeurs i paires et pour les valeurs i impaires, pour « décaler » la « tranche horizontale »

(couche sphérique) de la sphère (délimitée par les seuils de décision d'élévation) associée à chaque élévation d'indice i de sorte que les azimuts codés soient le moins alignés possibles d'une couche successive à l'autre.

Dans des variantes, on pourra utiliser une quantification scalaire uniforme sur l'intervalle [0,90] degrés (en incluant les valeurs 0 et 90 comme niveaux de reconstruction) pour le codage de l'élévation :

Cela revient à changer le pas de quantification δ Φ pour avoir δ Φ = 90/(N Φ , - 1), soit δ Φ ≈ 0.7438 quand N Φ = 122, dans ce cas les pôles sont naturellement inclus comme mots de code. Le pas de quantification est uniforme sur l'intervalle soit [-90,90] degrés, si le signe est pris en compte..

Dans d'autres variantes, on pourra changer le nombre de niveaux N Φ ou prendre d'autres définitions du dictionnaire de quantification scalaire pour l'élévation (positive ou absolue). On suppose cependant que et

Dans d'autres variantes, l'offset appliqué sur l'azimut en fonction de la couche d'élévation pourra être différent, l'aspect important étant que le nombre de niveaux en azimut est défini selon l'invention.

Selon l'invention, le nombre de points par niveau (N θ (i)) est déterminé en fonction de deux valeurs de cardinalité cumulative successives (cum N(i), cumN(i — 1)), la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation codée (i) étant représentative d'un nombre de points proportionnel à un nombre total de points et selon l'aire d'une zone sphérique comprenant au moins une zone délimitée par le plan horizontal supérieur du niveau d'élévation positive donné (i) et un plan horizontal inférieur (par exemple Φ = δ Φ /2}. Dans le mode de réalisation privilégié cette zone sphérique comprend également la partie symétrique dans l'hémisphère Sud comprenant une zone délimitée par le plan horizontal supérieur du niveau d'élévation donné (i) et un plan horizontal inférieur (Φ = —δ Φ /2). La notation cumN(i) est reprise ici mais elle ne doit pas être confondue avec celle utilisée précédemment dans la description de l'état de l'art.

La figure 5b illustre ces zones sphériques pour lesquelles l'aire à la surface de la sphère 3D est prise en compte dans un premier et un deuxième mode de réalisation.

Dans un mode de réalisation particulier, le nombre de niveaux N θ (i) en azimut est déterminé par des valeurs prédéfinies pour N θ (0) et N θ (N Φ - 1) qui correspondent à l'équateur et à un des pôles, respectivement.

Ces nombres de points prédéterminés (N θ (0) et N θ (N Φ - 1) ) sont pris en compte dans la détermination des valeurs de cardinalité cumulative et pour définir le nombre total de points, utilisé pour cette détermination.

Dans ce mode de réalisation, le nombre total de points est obtenu en soustrayant à un nombre de points cible (N tot = 2 16 ) le nombre de points prédéterminé correspondant à l'équateur et chacun des pôles nord et sud de la sphère selon l'expression suivante: N tot étant le nombre de points cible de la sphère pour un budget de bits donné, N θ (0), le nombre de points prédéterminé pour le niveau d'élévation correspondant à l'équateur et 2N θ (N Φ - 1) le nombre de points prédéterminé pour les pôles nord et sud de la sphère.

Dans le mode de réalisation principal, N θ (0) est une valeur paire, - 1) = 1 donc lorsque N tot est pair, est aussi pair.

Dans un exemple illustré à la figure 5b, l'aire d'une zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive donné (i) et ce même plan de la sphère symétrique par rapport à l'équateur est illustrée par la zone hachurée Ai. A cette aire, il est retranché l'aire correspondant au niveau d'élévation de l'équateur, représentée en A 0 , afin de déterminer la valeur de cardinalité cumulative (cumN (i)) du niveau d'élévation positive donné (i).

Pour cela, une estimation d'un nombre de points fonction du ratio est effectuée. Ce nombre de points est proportionnel au nombre total de points N t ' ot exprimé ci-dessus, selon le rapport suivant :

Par construction, ce rapport donne exactement N tot ' lorsque i = N Φ - 2 ce qui garantit que le nombre de point total est complètement utilisé.

Comme ce rapport est en général un nombre fractionnaire, on devra l'arrondir pour obtenir la cardinalité cumulative, et comme le nombre de points est déterminé dans le mode de réalisation principal à la fois pour les hémisphères Nord et Sud (donc en double), l'arrondi sera dans ce cas à un entier pair (le plus proche, inférieur ou supérieur).

On rappelle que la surface d'un élément autour du point (θ, Φ) sur la sphère est donnée par dA = r 2 cos Φ dθdΦ où Φ est ici l'élévation (si la colatitude était utilisée, on aurait un terme en sin Φ). La surface partielle définie par une zone sphérique délimitée par deux plans horizontaux induits par un intervalle d'élévation [Φ min , Φ max ], où -90° ≤ Φ min < Φ max ≤ 90°, l'azimut étant sur 1 [-180°, 180°], est donnée par:

On retrouve en particulier le résultat connu que la surface de la sphère de rayon r est A tot = A (-90°, 90°) = 4πr 2 (pour Φ min = -90° et Φ max = 90°). Pour un nombre de points N tot ’ dans la grille sphérique (ou dictionnaire de quantification vectorielle sphérique) restant à distribuer dans une zone sphérique (sous-ensemble de la surface de la sphère 3D) délimitée par les plans horizontaux en dehors de la zone centrale correspondant à l'équateur chaque « région de décision » associée à un point de la grille est ici approximée par un « rectangle sphérique » à des fins d'indexation (ce qui correspond à une décision de codage séparée des coordonnées sphériques). Chacune de ces régions doit idéalement avoir une surface de 4πr 2 /N tot ’ si la grille est uniforme.

Pour une discrétisation uniforme de l'élévation sur l'intervalle [-(N Φ -2)δ Φ ,(N Φ - 2)δ Φ ] comme dans le mode de réalisation principal, on peut donc estimer le nombre de points sur la grille compris dans une zone sphérique (ou « tranche sphérique ») délimitée par deux plans horizontaux associés aux seuils de décision de la partie positive (hémisphère Nord) de la sphère.

Selon le rapport (ou ratio) exprimé ci-dessus, exprimant une simple règle de trois

Dans un exemple de réalisation, on fixe

N θ (0) =430

Dans des variantes, la valeur de N θ (0) pourra être différente mais paire.

De plus, par convention on fixe N θ (N Φ - 1) =1 car un seul point suffit à représenter un pôle.

On exprime le nombre de points par niveau d'élévation i par : avec et est un arrondi à l'entier (le plus proche, inférieur ou supérieur) dépendant de i. Dans le mode de réalisation privilégié, on prend comme l'arrondi à l'entier supérieur, et comme l'arrondi à l'entier le plus proche pour i = 2, ... , N Φ - 2.

On notera que la fonction correspond en fait à un arrondi à un entier pair (plus proche, inférieur ou supérieur), ce qui permet de diviser le résultat par deux pour attribuer la moitié entière à chacun des hémisphères.

On remarquera que par définition

De plus, on notera que la notation cumN(i) est ici reprise bien qu'elle soit différente de celle utilisée précédemment dans la description d'un format MASA proposé dans l'état de l'art. En effet, ici cumN(i) correspond à la cardinalité cumulative de la grille sphérique jusqu'à la couche d'élévation i incluse (avec les couches dans les hémisphères Nord et Sud) mais sans compter l'équateur. La définition de cumN(i) pour i = 1, ... , N Φ - 2 dans la description de l'invention correspond donc à l'équivalent de cumN(2ï) - N θ (0) dans la définition de l'état de l'art.

Dans des variantes où d'autres niveaux de quantification sont définis pour l'élévation, la définition de cumN(i) en fonction de , sera adaptée en remplaçant par d'autres seuils de décision correspondants sous la forme Ainsi d e façon plus générale on pourra écrire :

On donne ci-dessous un exemple de valeurs obtenues pour le mode de réalisation privilégié :

N θ (i = 0, ... ,121) =

[ 430 423 422 422 422 422 421 421 420 420 419 418 417 417

416 414 414 412 412 409 409 407 406 404 402 401 399 397

395 394 391 389 387 385 383 380 378 375 373 370 368 365

362 359 356 354 350 347 344 341 338 334 331 328 324 321 317 313 310 306 302 299 294 291 287 282 279 274 270 266

262 258 253 249 244 240 235 231 226 222 217 212 208 202

198 194 188 183 179 173 169 163 159 153 148 144 138 133

127 123 117 112 107 102 96 91 85 81 75 69 64 59

53 48 43 37 32 26 21 15 10 1]

On peut facilement vérifier que : ce qui correspond bien à N tot .

Ainsi, la cardinalité N θ (i) selon l'invention permet de garantir qu'il n'y ait aucun indice inutilisé pour un nombre total N tot donné. Cette propriété découle du fait que la cardinalité cumulative cumN(i) est définie de telle sorte que

Dans un autre exemple de réalisation, on ne fixe pas de nombres prédéterminés pour les niveaux d'élévation correspondant à l'équateur.

Dans ce cas, la valeur de cardinalité cumulative est une valeur arrondie du rapport suivant : avec par exemple N tot = 2 16 .

On obtient alors (en dehors des pôles) pour i = 0, ... ,N Φ - 2. Dans ce cas, on a :N θ (0) = cumN(0) et pour i = 1, ..., N Φ - 2. On fixe également N θ (N Φ - 1) = 1.

On donne ci-dessous un exemple de valeurs obtenues pour cette variante de définition de cumN(ï) dans le cas où N Φ = 122 et δ Φ est défini selon le mode de réalisation privilégié:

N θ (i = 0, ... ,121) =

[ 422 423 422 423 422 421 422 420 421 419 419 419 417 417

416 414 414 412 412 410 408 407 406 404 403 400 400 397

395 393 392 389 387 385 383 380 378 375 373 370 368 365

362 359 356 354 350 348 344 341 337 335 331 328 324 321 317 313 310 306 302 299 294 291 287 282 279 274 271 266

261 258 253 249 244 240 236 230 227 221 217 213 207 203

198 193 188 184 178 174 168 164 158 154 148 144 138 133

127 123 117 112 107 102 96 91 85 81 75 69 64 59

53 48 43 37 32 26 21 15 10 1]

On peut facilement vérifier que là encore: ce qui correspond bien à N tot .

Dans des variantes où d'autres niveaux de quantification sont définis pour l'élévation, la définition de cumN(i) en fonction de , sera adaptée en remplaçant par d'autres seuils de décision correspondants sous la forme

Dans d'autres variantes, on ne fixe pas de nombres prédéterminés pour les niveaux d'élévation correspondant à l'équateur (N θ (0)) ni aux pôles Nord et Sud (N θ (N Φ - 1))- Cette variante s'applique particulièrement au cas où la quantification scalaire de Φ est uniforme sur l'intervalle [0,90] degrés (en incluant les valeurs 0 et 90 comme niveaux de reconstruction) avec : avec δ Φ = 90/N Φ - 1.

Dans ce cas, on peut définir : pour i = 0, ..., N Φ - 2, et cumN(N Φ - 1) = N tot on a :

N θ (0) = cumN (0) et pour i = 1, ..., N Φ - 1. On donne ci-dessous un exemple de valeurs obtenues pour cette variante de définition de cumN(i) dans le cas où N Φ = 122 et δ Φ est défini selon le mode de réalisation privilégié:

N θ (i = 0, ... ,121) =

[ 426 425 425 425 425 425 424 423 423 423 422 421 420 419

419 417 416 415 414 413 411 410 408 406 405 403 402 399

398 395 394 391 390 387 384 382 380 377 375 372 369 367

364 360 358 355 352 349 345 342 339 336 332 328 325 322

318 314 310 307 302 299 295 291 287 283 278 275 270 266

261 257 253 248 244 239 235 230 225 221 215 212 206 201

197 191 187 182 177 171 167 161 157 151 146 141 136 130

125 120 114 110 104 98 93 88 82 77 72 66 60 55

50 44 38 34 27 22 17 11 5 1]

On peut facilement vérifier que là encore: ce qui correspond bien à N tot .

Dans un deuxième exemple illustré à la figure 5b, l'aire d'une zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive donné (i) et celui de l'équateur est illustrée par la zone notée A'i. A cette aire, il est retranché la moitié de l'aire correspondant au niveau d'élévation de l'équateur, représentée en AO, afin de déterminer la valeur de cardinalité cumulative (cumN (i)) du niveau d'élévation positive donné (i).

Pour cela, une estimation d'un nombre de points fonction du ratio est effectuée. Ce nombre de points est proportionnel au nombre total de points exprimé ci-dessus, selon le rapport suivant : avec l'aire de la zone sphérique délimitée par le plan horizontal supérieur du niveau d'élévation positive N Φ - 2 et celui de l'équateur.

Le résultat est équivalent à ce qui a été décrit précédemment car Dans une variante de réalisation, la valeur de cardinalité cumulative peut s'exprimer en ne prenant en compte que le nombre de points de la partie positive de la sphère.

Dans ce cas de figure, une estimation d'un nombre de points fonction du ratio est effectuée. Ce nombre de points est proportionnel au nombre total de points exprimé ci-dessus, selon le rapport suivant :

L'expression de la valeur de cardinalité cumulative est donné par exemple par : pour i = 1, ....N Φ - 2 avec

Et est un arrondi à l'entier le plus proche dépendant de i. Dans le mode de réalisation privilégié, on prend Arr } () comme l'arrondi à l'entier supérieur, et Xrr,0 comme l'arrondi à l'entier le plus proche pour i = 2, ... , N Φ — 2.

Et on exprime le nombre de points par niveau d'élévation i par :

N θ (i) = (cumN'(i) — cumN'(i — 1))

La figure 6a décrit un procédé de codage des coordonnées sphériques (Φ, θ) d'un point d'entrée (E201) sur une sphère 3D. Ce procédé de codage peut être mis en œuvre, dans un mode de réalisation, par le bloc 312 de la figure 3 pour le format de donnée MASA ou dans le bloc 140 de la figure 1 pour un codeur DirAC.

La quantification des coordonnées sphériques et la recherche s'effectue comme suit :

• On code d'abord l'élévation Φ en E202-1. Pour que la recherche soit optimale, il convient de retenir les 2 valeurs où sgn Φ est le signe de Φ et est l'élévation absolue codée, où k = 1 ou 2. Ce codage peut être effectué par une recherche des 2 plus proches voisins dans le dictionnaire d'élévation de N Φ niveaux déterminé (E203-1). De façon préférentielle, on remplacera la recherche exhaustive dans le dictionnaire scalaire d'elevation par une détermination directe de l'indice d'élévation par un arrondi :

La dernière étape est nécessaire ici car dans le mode de réalisation privilégié on prend

Ainsi le pas de quantification est uniforme uniquement sur l'intervalle Pour les mots de code d'indice i = N Φ - 1,N Φ - 2 une recherche du plus proche voisin explicite est requise.

Dans des variantes, où le pas est uniforme sur [-90, 90] degrés, on pourra prendre :

Avec δ Φ = 90/(N Φ - 1), sachant que :

La détermination de l'indice i 2 peut être effectuée comme décrit précédemment dans la méthode MASA de l'état de l'art, à savoir : o i 2 = 1 si i 1 =0 o i 2 = NΦ - 2 si i 1 =N Φ - 1 o

On note dans tous les cas que les valeurs i 1 et i 2 peuvent être interchangées sans que cela change le résultat du codage.

On code l'azimut θ par quantification scalaire uniforme en E204-2 avec un nombre de niveaux adaptatif N θ (i) où i = i 1 ou i 2 , déterminés selon les exemples de réalisation décrits dans la méthode MASA de l'état de l'art (E203-2), pour obtenir en E204-2, les deux valeurs respectivement. Plus précisément on peut prendre :

On obtient donc à l'étape E205, deux candidats • A l'étape E206, on sélectionne le candidat le plus proche (Φ, θ) en fonction de k par exemple comme dans la méthode MASA de l'état de l'art.

La paire la plus proche est sélectionnée comme valeur quantifiée à indexer. On note ce point sélectionné Dans des variantes, le critère de distance peut être évalué en convertissant les points en coordonnées cartésiennes pour évaluer la distance euclidienne qui est à minimiser ou le produit scalaire qui est à maximiser.

Les indices de quantification sélectionnés en E206 correspondent au point sélectionné :

L'étape d'indexation E207 consiste, à partir des informations sgn Φ , id Φ , et id θ , à déterminer un indice unique 0 ≤ index < N tot à transmettre.

On détermine à cette étape un indice de quantification global en fonction des indices séparés issus de la quantification séparée des coordonnées sphériques pour le point le plus proche sélectionné.

Cette étape est maintenant décrite en référence à la figure 6b montrant un exemple de réalisation.

A partir des informations sgn Φ , id Φ et id θ, en E600, on teste en E601 et E603, la valeur de id Φ . si id Φ = 0 en E601, alors index = id θ (E602) ou si id Φ = N Φ — 1 en E603, alors index = N tot — 2 + (sgnΦ < 0) (E604)

Dans les autres cas, index = offset + id θ (E605)

Avec

On rappelle ici que le terme correspond à la cardinalité cumulative de la grille sphérique jusqu'à la couche d'élévation i incluse (avec les couches dans les hémisphères Nord et Sud, et avec l'équateur). L'indice d'un point (mot de code) dans la couche d'elevation i étant de la forme : index = offset + id θ il faut donc que la valeur de offset corresponde à la cardinalité cumulative jusqu'au premier point (mode de code) - exclus - de la couche d'élévation i. De plus, la couche d'élévation i positive (hémisphère Nord) vient par convention avant la couche d'élévation i négative, mais ces deux couches ont le même nombre de points N θ (i).

Ainsi, la valeur offset est donnée par la cardinalité cumulative incluant ces couches positives et négatives d'indice i, mais en retranchant soit 2N θ (i) quand il s'agit de la couche positive, soit N θ (i) quand il s'agit de la couche négative.

Pour le codage d'un point (ou mot de code) dans cette même couche, on peut de façon équivalente définir : donne la cardinalité cumulative jusqu'à la couche d'élévation d'indice i-1. Cette valeur correspond directement à la valeur offset pour la couche d'élévation positive d'indice i, et elle doit être corrigée de N θ (id Φ ) pour la couche négative d'indice i.

Selon l'invention, cette méthode analytique de détermination de la valeur offset donne le même résultat que la somme suivante, mais à complexité réduite car la détermination est plus directe quand N Φ , est élévé (par exemple N Φ =122): et

Ainsi l'indice global index est obtenu en E606, par codage séparé des indices de quantification séparés sgn Φ , id Φ , et id θ du meilleur candidat et par l'utilisation des valeurs de cardinalité cumulatives correspondantes. On notera que la détermination de la valeur offset est décrite ici pour l'intervalle N θ (0) ≤ index < N tot - 2. Dans des variantes, on pourra découper l'intervalle en question en sous-intervalles d'indices, et déterminer la valeur de offset soit de façon analytique soit par somme directe, avec N θ (i) défini selon l'invention, en fonction du sous-intervalle considéré.

Dans un mode de réalisation, on pourra utiliser un pré-stockage (tabulation) des valeurs de cardinalité cumulatives offset en fonction de id Φ et sgn Φ qui donne (de façon analytique ou par somme directe) le résultat de la somme cumulative de cardinalités de couches (ou « ensembles de tranches horizontales ») sphériques successives. Cette somme peut s'interpréter comme la cardinalité d'une zone sphérique (le nombre de points de la grille partielle allant de l'élévation d'indice 0 à l'élévation d'indice i, en alternant entre hémisphère Nord et Sud).

Dans des variantes on pourra ne pas stocker les valeurs offset en fonction de id Φ et sgn Φ mais les calculer « en ligne » (au fil de l'eau) à partir de la définition de offset comme la somme cumulative de N θ (i) avec la correction en fonction de id Φ et sgn Φ .

Cela rajoute cependant une complexité de calcul qui peut être non négligeable si la grille comprend beaucoup de niveaux d'élévation N Φ élevé).

Dans des variantes, on pourra remplacer offset en utilisant la définition de cumN' et en prenant compte du fait que la cardinalité dans ce cas correspond à un hémisphère.

Le procédé de décodage correspondant, est maintenant décrit en référence à la figure 7a. Ce procédé de décodage peut être mis en œuvre, dans un mode de réalisation, par le bloc 321 de la figure 3, pour le format de donnée MASA ou dans le bloc 250 de la figure 2 pour un décodeur DirAC.

Comme pour le codage, le dictionnaire de quantification sphérique est défini sur une sphère 3D par un décodage de l'élévation et de l'azimut. Ce dictionnaire de quantification sphérique est illustré et décrit en référence aux figures 5a et 5b ci-dessus.

De la même façon que pour le codage, le décodage de l'élévation utilise une quantification scalaire, donnant au moins un indice d'élévation décodée (i) sur un nombre de niveau (N Φ ) d'élévation , le décodage de l'azimut utilise une quantification scalaire, en fonction d'un nombre de points par niveau (N θ (i)) dépendant de l'indice de l'élévation décodée (i), le nombre de points par niveau (N θ (i)) est déterminé en fonction de deux valeurs de cardinalité cumulative successives (cumN(i), cumN(i — 1)), la valeur de cardinalité cumulative (cumN (i)) pour un indice d'élévation décodée (i) étant représentative d'un nombre de points proportionnel à un nombre total de points et selon l'aire d'une zone sphérique comprenant au moins une zone délimitée par le plan horizontal supérieur du niveau d'élévation positive de l'indice d'élévation décodée (i) et un plan horizontal inférieur de la sphère.

On suppose d'abord une indexation décrite en référence à la figure 6b.

Etant donné l'indice global index à l'étape E210 de la figure 7a, on effectue un décodage séparé des deux coordonnées sphériques aux étapes E211-1 et E211-2.

A l'étape E212-1, on détermine comme à l'étape de codage E203-1 un nombre de niveaux de quantification scalaire N Φ . Dans le mode de réalisation principal, cette étape revient simplement à fixer N Φ = 122.

Le décodage des informations d'élévation sgn Φ , id Φ se retrouve en E213-1. Cette étape est détaillée plus loin en référence à la figure 7b. De façon préférentielle, ce décodage utilise une estimation analytique de l'indice id Φ . Dans des variantes, le décodage de sgn Φ , id Φ peut s'effectuer par une recherche dans la table de cardinalité calculée au fil de l'eau ou stockée ou par d'autres méthodes donnant un résultat identique.

On reconstruit l'élévation décodée en E214-1 comme où

Dans des variantes, d'autres dictionnaires de quantification uniforme ou non-uniforme seront possibles de façon identique au codage.

Le décodage de l'indice d'azimut id θ se retrouve en E213-2. Cette étape est détaillée plus loin en référence à la figure 7b. L'indice id θ de l'azimut est obtenu dans le cas général par soustraction selon la formule suivante : id θ = index - offset à partir de l'indice global index et des informations d'élévation décodées sgn Φ et id Φ , cependant des cas particuliers (id Φ = 0 et id Φ = N Φ - 1) sont définis à la figure 7b.

On détermine la valeur du décalage comme défini au codage et on reconstruit l'azimut en E214-2 comme : On a en particulier

On obtient ainsi les coordonnées sphériques du point décodé en E215.

Les étapes E213-1 et E213-2 sont détaillées conjointement à la figure 7b.

A partir de l'indice global 0 ≤ index < N tot à décoder (E700), on fixe par défaut l'information de signe sgn Φ = 1 (E701). Si l'indice vérifie index < N θ (0), ce qui indique qu'il s'agit d'un point sur l'équateur (E702), on décode directement : id θ = index et on fixe id Φ , = 0 (E703).

Sinon, si l'indice vérifie index ≥ N tot - 2, ce qui indique qu'il s'agit d'un point sur le pôle Nord ou Sud (E704), on décode directement : id Φ = N Φ - 1, id θ = 0 (E705). Le signe sgn Φ est corrigé de sa valeur par défaut à -1 (E707) si index = N tot - 1 en E706 car les indices sont ordonnés par couches d'élévation en alternant entre hémisphère Nord et hémisphère Sud, donc index = N tot - 2 correspond au pôle Nord (sgn Φ = 1) et index = N tot - 1 correspond au pôle Sud (sgn Φ = -1).

Sinon, dans les autres cas (N θ (0) ≤ index < N tot - 2), dans un mode de réalisation privilégié l'estimation de l'indice id θ est par exemple réalisée en inversant le calcul analytique fait à l'étape E605 de la figure 6b.

On pourra estimer id Φ comme : et [. ] est l'arrondi à l'entier le plus proche

Dans des variantes, on utilise une approximation de la fonction arcsinus.

On prend ainsi (en E708): où est un polynôme de degré 4. Dans des variantes d'autres approximations de la fonction arcsinus pourront être utilisées, en particulier d'autres polynômes P(x) de degré différent pourront être utilisés. On remarquera que l'estimation de id Φ utilisée ci-dessus a pour propriété remarquable d'être exacte à une surestimation près de id Φ d'une unité - en général, elle donne la bonne valeur de id^, si ce n'est pas le cas, id Φ est sous-estimé d'une unité.

Dans des variantes, d'autres estimations de id Φ (exactes ou à une valeur près) pourront être utilisées.

Dans le mode de réalisation privilégié le décodage (E709) s'effectue ensuite comme suit à partir de l'estimation de id Φ par inversion de la fonction arcsinus ou d'une approximation. On détermine une valeur initiale de :

Dans des variantes on pourra calculer de façon équivalente (avec le même résultat) :

A partir de cette valeur initiale offset init on peut ensuite déterminer les valeurs de id Φ ,sgn Φ et offset comme suit:

Si index ≥ offset init , id Φ ← id Φ + 1, of fset ← offset init , sinon : offset offset init - N θ (id Φ )

Si index > offset:. sgnΦ ← - 1

Sinon : offset ← offset — N θ (id Φ )

Où a ← b indique que la valeur existante de α est remplacée par le résultat de l'expression b.

L'étape de correction id Φ ← id Φ + 1 quand index ≥ offset init est spécifique à l'exemple de réalisation de l'estimation de id Φ par inversion de la fonction arcsinus. Si cette étape est effectuée la valeur de offset init correspond à la cardinalité cumulative de la grille jusqu'à la couche inférieure id Φ - 1.

Dans le cas contraire, si cette étape de correction de id^ n'est pas effectuée, la valeur de offset init correspond à la cardinalité cumulative de la grille jusqu'à la couche d'élévation id Φ . la justification des étapes de correction de la valeur offset init sous la forme offset - N θ (id Φ ) est détaillée en rapport aux figures 8a et 8b décrites plus loin.

Dans des variantes, on pourra définir comme valeur initiale offset init la cardinalité cumulative pour la couche d'élévation inférieur d'indice i-1 et corriger la valeur de offset init de façon équivalente. La valeur initiale est donnée par :

A partir de cette valeur initiale offset init on peut ensuite déterminer les valeurs de id Φ , sgn Φ et offset comme suit:

Si index ≥ offset init + 2N θ (id Φ ), id Φ ← id Φ + 1, offset ← offset init , sinon :

Si index ≥ offset init + N θ (id Φ ): sgn Φ ← -1 et offset ← offset ini t + N θ (id Φ )

Sinon : offset ← offset init ,

Où a ← b indique que la valeur existante de a est remplacée par le résultat de l'expression b. Dans ce cas, les étapes de correction de la valeur offset init sont sous la forme offset init + N θ (id Φ ) .

Dans des variantes on pourra adapter le principe de correction de la valeur de id^ et de offset init en fonction de la méthode d'estimation de id Φ , pour déterminer les valeurs de id Φ ,sgn Φ et offset.

Dans des variantes où la cardinalité cumulative est définie de façon différente, avec des valeurs N θ (i) correspondantes, on adaptera la définition analytique de l'estimation initiale de offset.

Dans des variantes, d'autres estimations entières et exactes (donnant les mêmes résultats) de id Φ et d'autres méthodes directes ou indirectes de détermination de id Φ , sgn Φ et de offset pourront être utilisées tant qu'elles ne changent pas le résultat de décodage. En effet, les valeurs de id Φ et offset étant entières, le signe sgn Φ pouvant être vu comme un entier signé, des méthodes alternatives peuvent être mises en œuvre tant qu'elles donnent des valeurs identiques pour id Φ , sgn Φ et offset.

Un exemple de variante de décodage de id Φ , sgn Φ , et offset qui ne présente que peut d'intérêt mais qui a le mérite d'illustrer un exemple de méthode alternative consisterait a simplement parcourir de façon exhaustive toutes les valeurs possibles id Φ , sgn Φ et et de calculer l'indice correspondant comme au codeur et de sélectionner la combinaison qui conduit exactement à index = offset + id θ .

Le décodage de l'indice est déterministe dans le sens où pour une valeur index donnée, les valeurs id Φ , sgn Φ et id Φ sont uniques et entières.

Dans tous les cas le décodage de id Φ , sgn Φ et offset s'appuie sur les valeurs de N θ (i) selon l'invention avec la possibilité de déterminer de façon analytique une cardinalité cumulative.

Enfin, le décodage de id θ (E710) revient simplement à retrancher la valeur de cardinalité cumulative décodé (offset) à l'indice global reçu (index)-. id θ = index — of f set

Dans des variantes, on pourra remplacer offset en utilisant la définition de cumN' et en prenant compte du fait que la cardinalité dans ce cas correspond à un hémisphère.

On a illustré sur les figures 8a et 8b, le codage et décodage de l'indice selon le mode de réalisation de l'invention.

La figure 8a correspond au cas d'un codage ou décodage d'un point dans l'hémisphère

Nord (hors équateur et pôle) de la grille selon l'invention, tandis que la figure 8b correspond au cas d'un codage ou décodage d'un point dans l'hémisphère Sud (hors équateur et pôle). Dans cet exemple on a N Φ = 122, id Φ = 120, et sgn Φ = 1, id θ =

3, index = 65517 à la figure 8a et sgn Φ = -1, id θ = 5, index = 65529 à la figure 8b.

Dans cet exemple, N θ (id Φ ) = 10 et la valeur initiale de offset init est : ce qui donne dans cet exemple : offset init = 65534.

A la figure 8a, le décodage de index = 65517 donne lieu à correction suivante :

Si index ≥ offset init , id Φ ← id Φ + 1, offset ← offset init sinon : offset ← offset init - N θ (id Φ )

Si index Φ ≥ of fset: sgn← -1

Sinon : offset ← offset — N θ (id Φ ) Ce qui conduit à corriger la valeur de offset par offset ← offset i n it N θ - (id Φ ) et donne offset = 65514.

A la figure 8b, le décodage de index = 65529 donne lieu à correction suivante :

Si index ≥ offset init , id Φ ← id Φ + 1, of fset ← offset init , sinon : offset offset init - N θ (id Φ )

Si index ≥ of fset: sgn Φ ← -1

Sinon : offset ← offset — N θ (id Φ )

Ce qui conduit à corriger la valeur de offset par offset ← offset init — N θ (id Φ ) et donne offset = 65524.

Dans des variantes, la valeur de offset init pourra correspondre à la cardinalité cumulative jusqu'à la couche d'élévation inférieure, ou elle pourra être obtenue par une somme directe à partir des valeurs N θ (i) selon l'invention.

Dans des variantes où la cardinalité cumulative est définie de façon différente, avec des valeurs N θ (i) correspondantes, on adaptera la définition analytique de l'estimation initiale de offset init .

On a illustré sur la figure 9, un dispositif de codage DCOD et un dispositif de décodage DDEC, au sens de l'invention, ces dispositifs étant duals l'un de l'autre (dans le sens de « réversibles ») et reliés l'un à l'autre par un réseau de communication RES ou un bus interne BUS dans un terminal (pour communiquer entre un module d'analyse MASA et un codec de type IVAS ou un autre traitement).

Le dispositif de codage DCOD comporte un circuit de traitement incluant typiquement :

- une mémoire MEM1 pour stocker des données d'instructions d'un programme informatique au sens de l'invention (ces instructions pouvant être réparties entre le codeur DCOD et le décodeur DDEC) ;

- une interface INT1 de réception d'un signal multicanal d'origine B, par exemple un signal réparti sur différents canaux ou une version paramétrique en compression avec des paramètres de direction de source au sens de l'invention ;

- un processeur PROC1 pour recevoir ce signal et le traiter en exécutant les instructions de programme informatique que stocke la mémoire MEM1, en vue de son codage ; et

- une interface de communication COM 1 pour transmettre les signaux codés via le réseau ou un bus interne d'un terminal. Le dispositif de décodage DDEC comporte un circuit de traitement propre, incluant typiquement :

- une mémoire MEM2 pour stocker des données d'instructions d'un programme informatique au sens de l'invention (ces instructions pouvant être réparties entre le codeur DCOD et le décodeur DDEC comme indiqué précédemment) ;

- une interface COM2 pour recevoir du réseau RES ou d'un bus interne BUS les signaux codés en vue de leur décodage en compression au sens de l'invention ;

- un processeur PROC2 pour traiter ces signaux en exécutant les instructions de programme informatique que stocke la mémoire MEM2, en vue de leur décodage ; et

- une interface de sortie INT2 pour délivrer des paramètres de directions de source.

Bien entendu, cette figure 9 illustre un exemple d'une réalisation structurelle d'un codec (codeur ou décodeur) au sens de l'invention. Les figures 5 à 8 commentées ci-dessus décrivent en détails des réalisations plutôt fonctionnelles de ces codecs.