[0001] La présente invention concerne les dispositifs de codage de signaux audio, destinés
notamment à prendre place dans des applications de transmission ou de stockage de
signaux audio numérisés et compressés.
[0002] L'invention est relative plus précisément aux systèmes de codage hiérarchique audio,
ayant la capacité de fournir des débits variés, en répartissant les informations relatives
à un signal audio à coder dans des sous-ensembles hiérarchisés, de telle sorte qu'elles
puissent être utilisées par ordre d'importance sur le plan de la qualité audio. Le
critère pris en compte pour déterminer l'ordre est un critère d'optimisation (ou plutôt
de moindre dégradation) de la qualité du signal audio codé. Le codage hiérarchique
est particulièrement adapté à la transmission sur des réseaux hétérogènes ou présentant
des débits disponibles variables au cours du temps, ou encore à la transmission à
destination de terminaux présentant des caractéristiques différentes ou variables.
[0003] L'invention concerne plus particulièrement le codage hiérarchique de scène sonore
3D. Une scène sonore 3D comprend une pluralité de canaux audio correspondant à des
signaux monophoniques audio et est encore appelée son spatialisé.
[0004] Une scène sonore codée est destinée à être reproduite sur un système de rendu sonore,
qui peut comprendre un simple casque, deux haut-parleurs d'un ordinateur ou encore
un système de type Cinéma maison 5.1 (en anglais « Home Cinema ») avec cinq haut-parleurs
(un haut-parleur au niveau de l'écran et à l'avant de l'auditeur théorique : un haut-parleur
à gauche et un haut-parleur à droite ; à l'arrière de l'auditeur théorique : un haut-parleur
à gauche et un haut-parleur à droite), etc.
[0005] Par exemple, considérons une scène sonore d'origine comportant trois sources sonores
distinctes, localisées à différents endroits dans l'espace. Les signaux de description
de cette scène sonore sont codés. Les données issues de ce codage sont transmises
au décodeur, puis sont décodées. Les données décodées sont exploitées afin de générer
cinq signaux destinés aux cinq haut-parleurs du système de rendu sonore. Chacun des
cinq haut-parleurs diffusent un des signaux, l'ensemble des signaux diffusés par les
haut-parleurs synthétisant la scène sonore 3D et donc positionnant dans l'espace trois
sources sonores virtuelles.
[0006] Il existe différentes techniques de codage de scènes sonores.
[0007] Par exemple, une technique utilisée comprend la détermination d'éléments de description
de la scène sonore, puis des opérations de compression de chacun des signaux monophoniques.
Les données issues de ces compressions et les éléments de description sont alors fournis
au décodeur.
[0008] L'adaptabilité (encore appelée scalabilité) en débit selon cette première technique
est donc réalisable, en adaptant le débit lors des opérations de compression, mais
elle est réalisée selon des critères d'optimisation de la qualité de chaque signal
considéré individuellement.
[0009] Une autre technique de codage, qui est utilisée dans le codeur « MPEG Audio Surround
» (cf. « Text of ISO/IEC FDIS 23003-1, MPEG Surround », ISO/IEC JTC1 / SC29 / WG11
N8324, July 2006, Klagenfurt, Austria), comprend l'extraction et le codage de paramètres
spatiaux à partir de l'ensemble des signaux audio monophoniques sur les différents
canaux. Ces signaux sont ensuite mélangés pour obtenir un signal monophonique ou stéréophonique,
qui est alors comprimé par un codeur mono ou stéréo classique (par exemple de type
MPEG-4 AAC, HE-AAC, etc). Au niveau du décodeur, la synthèse de la scène sonore 3D
se fait à partir des paramètres spatiaux et du signal mono ou stéréo décodé.
[0010] L'adaptabilité en débit avec cette autre technique est ainsi réalisable en utilisant
un codeur mono ou stéréo hiérarchique, mais elle est réalisée selon un critère d'optimisation
de la qualité du signal monophonique ou stérophonique.
[0011] Par ailleurs, la méthode PSMAC (en anglais « Progressive Syntax-rich Multichannel
Audio Codec ») permet de coder les signaux de différents canaux en utilisant la transformée
KLT (en anglais « Karhunen Loeve Transform »), utile principalement pour la décorrélation
des signaux et qui correspond à une décomposition sur des composantes principales
dans un espace représentant les statistiques des signaux. Elle permet de distinguer
les composantes les plus énergétiques des composantes les moins énergétiques.
[0012] L'adaptabilité en débit est basée sur une annulation des composantes les moins énergétiques.
Toutefois, ces composantes peuvent parfois avoir une grande importance quant à la
qualité audio globale.
[0013] Ainsi, si les techniques connues donnent de bons résultats en termes d'adaptabilité
en débit, aucune ne propose une méthode d'adaptabilité en débit pleinement satisfaisante
sur la base d'un critère d'optimisation de la qualité audio globale, en vue de définir
des données compressées optimisant la qualité audio globale perçue, lors de la restitution
de la scène sonore 3D décodée.
[0014] Par ailleurs, aucune des techniques de codage de scène sonore 3D connues ne permet
d'adaptabilité en débit sur la base d'un critère d'optimisation de la résolution spatiale,
lors de la restitution de la scène sonore 3D. Cette adaptabilité permet de garantir
que chaque réduction de débit dégradera le moins possible la précision de la localisation
des sources sonores dans l'espace, ainsi que la dimension de la zone de restitution,
qui doit être la plus large possible autour de la tête de l'auditeur.
[0015] En outre, aucune des techniques de codage de scène sonore 3D connues ne permet d'adaptabilité
en débit qui permette de garantir directement une qualité optimale quel que soit le
système de rendu sonore utilisé pour la restitution de la scène sonore 3D. Les algorithmes
de codage actuels sont définis pour optimiser la qualité par rapport à une configuration
particulière du système de rendu sonore. En effet, par exemple dans le cas du codeur
« MPEG Audio Surround » décrit ci-dessus mis en oeuvre avec un codage hiérarchique,
une écoute directe sur casque ou deux haut-parleurs, ou encore en monophonique est
possible. Si on souhaite exploiter le flux binaire compressé avec un système de rendu
sonore de type 5.1 ou 7.1, il faut mettre en oeuvre des traitements supplémentaires
au niveau du décodeur, par exemple à l'aide de boîtiers OTT (en anglais « One-To-Two
») pour générer les cinq signaux à partir des deux signaux décodés. Ces boîtiers permettent
d'obtenir le nombre désiré de signaux dans le cas d'un système de rendu sonore de
type 5.1 ou 7.1, mais ne permettent pas de reproduire l'aspect spatial réel. En outre,
ces boîtiers ne garantissent pas l'adaptabilité à des systèmes de rendu sonores autres
que ceux du type 5.1 et 7.1.
[0016] La présente invention vient améliorer la situation.
[0017] A cet effet la présente invention vise à proposer, suivant un premier aspect tel
que défini dans la revendication 1, un procédé d'ordonnancement de composantes spectrales
d'éléments à coder provenant d'une scène audio comprenant N signaux avec N>1, un élément
à coder comportant des composantes spectrales se rapportant à des bandes spectrales
respectives.
[0018] Le procédé comporte les étapes suivantes :
- calcul de l'influence respective d'au moins certaines composantes spectrales calculables
en fonction de paramètres spectraux issus de certains au moins des N signaux, sur
des rapports masque à bruit déterminés sur les bandes spectrales en fonction d'un
codage desdites composantes spectrales ;
- attribution d'un ordre de priorité à au moins une composante spectrale en fonction
de l'influence calculée pour ladite composante spectrale comparée aux autres influences
calculées.
[0019] Un procédé selon l'invention permet ainsi d'ordonner par ordre d'importance quant
à la qualité audio globale des composantes d'élément à coder.
[0020] Une séquence binaire est constituée après comparaison entre elles des différentes
composantes spectrales des différents éléments à coder de la scène globale comparées
entre elles sur le plan de leur apport quant à la qualité audio globale perçue. L'interaction
entre signaux est ainsi prise en compte pour les comprimer de façon conjointe.
[0021] Le flux binaire peut ainsi être ordonné de manière à ce que chaque réduction de débit
dégrade le moins possible la qualité audio globale perçue de la scène sonore 3D, puisque
les éléments les moins importants sur le plan de leur apport au niveau de la qualité
audio globale sont détectés, afin de pouvoir ne pas être insérés (lorsque le débit
alloué pour la transmission est insuffisant pour transmettre toutes les composantes
des éléments à coder) ou être mis en fin de séquence binaire (permettant de minimiser
les défauts générés par une troncature ultérieure).
[0022] Dans un mode de réalisation, le calcul de l'influence d'une composante spectrale
s'effectue selon les étapes :
a- codage d'un premier ensemble de composantes spectrales d'éléments à coder selon
un premier débit;
b- détermination d'un premier rapport masque à bruit par bande spectrale;
c- détermination d'un second débit inférieur au dit premier;
d- suppression de ladite composante spectrale courante des éléments à coder et codage
des composantes spectrales restantes des éléments à coder selon le second débit;
e- détermination d'un second rapport masque à bruit par bande spectrale;
f- calcul d'une variation de rapport masque à bruit en fonction des écarts déterminés
entre les premier et second rapports masque à bruit pour le premier et le second débit
par bande spectrale;
g- itération des étapes d à f pour chacune des composantes spectrales de l'ensemble
de composantes spectrales d'éléments à coder à ordonner et détermination d'une variation
de rapport masque à bruit minimum; l'ordre de priorité attribué à la composante spectrale
correspondant à la variation minimum étant un ordre de priorité minimum.
[0023] Un tel processus permet ainsi de déterminer au moins une composante d'un élément
à coder qui est la moins importante sur le plan de l'apport à la qualité audio globale,
comparée à l'ensemble des autres composantes d'éléments à coder à ordonner.
[0024] Dans un mode de réalisation, on réitère les étapes a à g avec un ensemble de composantes
spectrales d'éléments à coder à ordonner restreint par suppression des composantes
spectrales pour lesquelles un ordre de priorité a été attribué.
[0025] Dans un autre mode de réalisation, on réitère les étapes a à g avec un ensemble de
composantes spectrales d'éléments à coder à ordonner dans lequel les composantes spectrales
pour lesquelles un ordre de priorité a été attribué sont affectées d'un débit de quantification
plus réduit lors de l'utilisation d'un quantificateur imbriqué.
[0026] Dans un mode de réalisation, les éléments à coder comprennent les paramètres spectraux
calculés pour les N canaux. Ce sont alors, par exemple, les composantes spectrales
des signaux qui sont codées directement.
[0027] Dans un autre mode de réalisation, les éléments à coder comprennent des éléments
obtenus par transformation spatiale, par exemple de type ambiophonique, appelé en
anglais « ambisonic », des paramètres spectraux calculés pour les N signaux. Cette
disposition permet d'une part de réduire le nombre de données à transmettre puisque,
en général, les N signaux peuvent être décrits d'une manière très satisfaisante par
un nombre de composantes ambiophoniques réduit (par exemple, un nombre égal à 3 ou
5), inférieur à N. Cette disposition permet en outre une adaptabilité à tout type
de système de rendu sonore, puisqu'il suffit au niveau du décodeur, d'appliquer une
transformée ambiophonique inverse de taille Q'x(2p'+1), (où Q' est égal au nombre
de haut-parleurs du système de rendu sonore utilisé en sortie du décodeur et 2p'+1
le nombre de composantes ambiophoniques reçues), pour déterminer les signaux à fournir
au système de rendu sonore, tout en préservant la qualité audio globale.
[0028] Dans un mode de réalisation, on utilise à la place de la transformée spatiale d'autres
transformées linéaires telles que KLT etc.
[0029] Dans un mode de réalisation, on détermine les rapports masque à bruit en fonction
des erreurs due au codage et relatives à des éléments à coder et en fonction en outre
d'une matrice de transformation spatiale et d'une matrice déterminée en fonction de
la transposée de ladite matrice de transformation spatiale.
[0030] Dans un mode de réalisation, des éléments à coder sont des composantes ambiophoniques,
certaines des composantes spectrales étant alors des paramètres spectraux de composantes
ambiophoniques. Le procédé comporte les étapes suivantes:
- a. calcul de l'influence de certaines au moins desdites composantes spectrales, sur
un vecteur d'angle défini en fonction de vecteurs d'énergie et de vélocité associés
à des critères de Gerzon et calculés en fonction d'une transformation ambiophonique
inverse sur lesdits composantes ambiophoniques quantifiés;
- b. attribution d'un ordre de priorité à au moins une composante spectrale en fonction
de l'influence calculée pour ladite composante spectrale comparée aux autres influences
calculées.
[0031] Un procédé selon l'invention permet ainsi d'ordonner certains au moins des paramètres
spectraux de composantes ambiophoniques de l'ensemble à ordonner, en fonction de leur
importance relative sur le plan de l'apport à la précision spatiale.
[0032] La résolution spatiale ou précision spatiale mesure la finesse de la localisation
des sources sonores dans l'espace. Une résolution spatiale accrue permet une localisation
plus fine des objets sonores dans la pièce et permet d'avoir une zone de restitution
plus large autour de la tête de l'auditeur.
[0033] Les interactions entre signaux et leur conséquence sur le plan de la précision spatiale
sont prises en compte pour les comprimer de façon conjointe.
[0034] Le flux binaire peut ainsi être ordonné de manière à ce que chaque réduction de débit
dégrade le moins possible la précision spatiale perçue de la scène sonore 3D, puisque
les éléments les moins importants sur le plan de leur apport sont détectés, afin d'être
mis en fin de séquence binaire (permettant de minimiser les défauts générés par une
troncature ultérieure).
[0035] Dans un mode de réalisation d'un tel procédé, on exploite, de la façon indiquée ci-dessous,
les angles ξ
V et ξ
E associés aux vecteurs vélocité
V et énergie
E des critères de Gerzon pour identifier des éléments à coder les moins pertinents
sur le plan de l'apport, en termes de précision spatiale, à la scène sonore 3D. Ainsi
contrairement à l'usage habituel, les vecteurs vélocité
V et énergie
E ne sont pas utilisés pour optimiser un système de rendu sonore considéré.
[0036] Dans un mode de réalisation, le calcul de l'influence d'un paramètre spectral s'effectue
selon les étapes suivantes :
a- codage d'un premier ensemble de paramètres spectraux de composantes ambiophoniques
à coder selon un premier débit;
b- détermination d'un premier vecteur d'angle par bande spectrale;
c- détermination d'un second débit inférieur au dit premier;
d- suppression dudit paramètre spectral courant des composantes à coder et codage
des paramètres spectraux restants des composantes à coder selon le second débit;
e- détermination d'un second vecteur d'angle par bande spectrale;
f- calcul d'une variation de vecteur d'angle en fonction des écarts déterminés entre
les premier et second vecteurs d'angle pour le premier et le second débit par bande
spectrale;
g- itération des étapes d à f pour chacun des paramètres spectraux de l'ensemble de
paramètres spectraux de composantes à coder à ordonner et détermination d'une variation
de vecteur d'angle minimum; l'ordre de priorité attribué au paramètre spectral correspondant
à la variation minimum étant un ordre de priorité minimum.
[0037] Cette disposition permet, en un nombre limité de calculs, de déterminer le paramètre
spectral de la composante à déterminer dont l'apport à la précision spatiale est minimum.
[0038] Dans un mode de réalisation, on réitère les étapes a à g avec un ensemble de paramètres
spectraux de composantes à coder à ordonner restreint par suppression des paramètres
spectraux pour lesquelles un ordre de priorité a été attribué.
[0039] Dans un autre mode de réalisation, on réitère les étapes a à g avec un ensemble de
paramètres spectraux de composantes à coder à ordonner dans lequel les paramètres
spectraux pour lesquels un ordre de priorité a été attribué sont affecté d'un débit
de quantification plus réduit lors de l'utilisation d'un quantificateur imbriqué.
[0040] De tels processus itératifs permettent d'identifier successivement, parmi les paramètres
spectraux des composantes ambiophoniques auxquels n'ont pas encore été affectés des
ordres de priorité, ceux qui apportent le moins sur le plan de la précision spatiale.
[0041] Dans un mode de réalisation, une première coordonnée du vecteur d'énergie est fonction
de la formule

une seconde coordonnée du vecteur d'énergie est fonction de la formule

une première coordonnée du vecteur de vélocité est fonction de la formule

et une seconde coordonnée du vecteur de vélocité est fonction de la formule

dans lesquelles les T
i, i=1 à Q, représentent les signaux déterminés en fonction de la transformation ambiophonique
inverse sur lesdits paramètres spectraux quantifiés selon le débit considéré et les
ξ
i i=1 à Q, sont des angles déterminés.
[0042] Dans un mode de réalisation, une première coordonnée d'un vecteur d'angle indique
un angle fonction du signe de la deuxième coordonnée du vecteur de vélocité et de
l'arccosinus de la première coordonnée du vecteur de vélocité et selon lequel une
deuxième coordonnée d'un vecteur d'angle indique un angle fonction du signe de la
deuxième coordonnée du vecteur d'énergie et de l'arccosinus de la première coordonnée
du vecteur d'énergie.
[0043] Suivant un second aspect tel que défini dans la revendication 10, l'invention propose
un codeur audio adapté pour coder une scène audio 3D comprenant N signaux respectifs
en un flux binaire de sortie, avec N>1, comprenant :
- un module de transformation adapté pour déterminer, en fonction des N signaux, des
composantes spectrales se rapportant à des bandes spectrales respectives;
- un module d'ordonnancement suivant le deuxième aspect de l'invention, adapté pour
ordonner au moins certaines des composantes spectrales se rapportant à des bandes
spectrales respectives;
- un module de constitution d'une séquence binaire adapté pour constituer une séquence
binaire comportant des données indiquant des composantes spectrales se rapportant
à des bandes spectrales respectives en fonction de l'ordonnancement effectué par le
module d'ordonnancement.
[0044] Suivant un troisième aspect tel que défini dans la revendication 11, l'invention
propose un programme d'ordinateur à installer dans un module d'ordonnancement, ledit
programme comprenant des instructions pour mettre en oeuvre les étapes d'un procédé
suivant le premier aspect de l'invention lors d'une exécution du programme par des
moyens de traitement dudit module.
[0045] Suivant un quatrième aspect tel que défini dans la revendication 12, l'invention
propose un signal comportant des composantes spectrales se rapportant à des bandes
spectrales respectives d'éléments à coder provenant d'une scène audio comprenant N
signaux avec N>1, en ce en que lesdites composantes spectrales sont ordonnées pour
la mise en oeuvre du procédé d'ordonnancement suivant le premier aspect de l'invention.
[0046] D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture
de la description qui va suivre. Celle-ci est purement illustrative et doit être lue
en regard des dessins annexés sur lesquels :
- la figure 1 représente un codeur dans un mode de réalisation de l'invention ;
- la figure 2 représente un décodeur dans un mode de réalisation de l'invention ;
- la figure 3 illustre la propagation d'une onde plane dans l'espace ;
- la figure 4 est un organigramme représentant des étapes d'un premier processus Proc1
dans un mode de réalisation de l'invention ;
- la figure 5a représente une séquence binaire construite dans un mode de réalisation
de l'invention ;
- la figure 5b représente une séquence binaire Seq construite dans un autre mode de
réalisation de l'invention ;
- la figure 6 est un organigramme représentant des étapes d'un second processus Proc2
dans un mode de réalisation de l'invention ;
- la figure 7 représente un exemple de configuration d'un système de rendu sonore comprenant
8 haut-parleurs h1, h2,..., h8 ;
- la figure 8 représente une chaîne de traitement ;
- la figure 9 comporte une deuxième chaîne de traitement ;
- la figure 10 représente une troisième chaîne de traitement ;
- la figure 11 est un organigramme représentant des étapes d'un processus Proc dans
un mode de réalisation de l'invention.
[0047] La figure 1 représente un codeur audio 1 dans un mode de réalisation de l'invention.
[0048] Le codeur 1 comprend un module 3 de transformation temps/fréquence, un module 7 de
calcul de courbe de masquage, un module 4 de transformation spatiale, un module 5
de définition des éléments à coder les moins pertinents combiné avec un module 10
de quantification, un module 6 d'ordonnancement des éléments, un module 8 de constitution
d'une séquence binaire, en vue de la transmission d'un flux binaire Φ.
[0049] Une scène sonore 3D comprend N canaux sur chacun un signal respectif S1, ..., SN
est délivré.
[0050] La figure 2 représente un décodeur audio 100 dans un mode de réalisation de l'invention.
[0051] Le décodeur 100 comprend un module 104 de lecture de séquence binaire, un module
105 de quantification inverse, un module 101 de transformation ambiophonique inverse,
un module 102 de transformation fréquence/temps.
[0052] Le décodeur 100 est adapté pour recevoir en entrée le flux binaire Φ transmis par
le codeur 1 et pour délivrer en sortie Q' signaux S'1, S'2, ..., S'Q' destinés à alimenter
les Q' haut-parleurs H1, H2 ..., HQ' respectifs d'un système de rendu sonore 103.
[0053] A chaque haut-parleur Hi, i=1 à Q', est associé un angle βi indiquant l'angle de
propagation acoustique depuis le haut-parleur.
Opérations réalisées au niveau du codeur :
[0054] Le module 3 de transformation temps/fréquence du codeur 1 reçoit en entrée les N
signaux S1,..., SN de la scène sonore 3D à coder.
[0055] Chaque signal Si, i = 1 à N, est représenté par la variation de sa pression omnidirectionnelle
acoustique Pi et l'angle θi de propagation de l'onde acoustique dans l'espace de la
scène 3D.
[0056] Sur chaque trame temporelle de chacun de ces signaux indiquant les différentes valeurs
prises au cours du temps par la pression acoustique Pi, le module 3 de transformation
temps/fréquence effectue une transformation temps/fréquence, dans le cas présent,
une transformée en cosinus discrète modifiée (MDCT).
[0057] Ainsi il détermine, pour chacun des signaux Si, i=1 à N, sa représentation spectrale
Xi, caractérisée par M coefficients MDCT X(i, j), avec j= 0 à M-1. Un coefficient
MDCT X(i,j) représente ainsi le spectre du signal Si pour la bande de fréquence Fj.
[0058] Les représentations spectrales Xi des signaux Si, i= 1 à N, sont fournies en entrée
du module 4 de transformation spatiale, qui reçoit en outre en entrée les angles θi
de propagation acoustique caractérisant les signaux d'entrée Si.
[0059] Les représentations spectrales Xi des signaux Si, i= 1 à N, sont en outre fournies
en entrée du module 7 de calcul des courbes de masquage.
[0060] Le module 7 de calcul de courbe de masquage est adapté pour déterminer la courbe
de masquage spectrale de chaque signal Si considéré individuellement, à l'aide de
sa représentation spectrale Xi et d'un modèle psychoacoustique, ce qui fournit un
niveau de masquage pour chaque bande de fréquence Fj, j=0 à M-1 de chaque représentation
spectrale Xi. Les éléments de définition de ces courbes de masquages sont délivrés
au module 5 de définition des éléments à coder les moins pertinents.
[0061] Le module 4 de transformation spatiale est adapté pour effectuer une transformation
spatiale des signaux d'entrée fournies, c'est-à-dire déterminer les composantes spatiales
de ces signaux résultant de la projection sur un référentiel spatial dépendant de
l'ordre de la transformation. L'ordre d'une transformation spatiale se rattache à
la fréquence angulaire selon laquelle elle « scrute » le champ sonore.
[0062] Dans un mode de réalisation, le module 4 de transformation spatiale effectue une
transformation ambiophonique, qui donne une représentation spatiale compacte d'une
scène sonore 3D, en réalisant des projections du champ sonore sur les fonctions harmoniques
sphériques ou cylindriques associées.
[0063] Pour plus d'information sur les transformations ambiophoniques, on pourra se référer
aux documents suivants : « Représentation de champs acoustiques, application à la
transmission et à la reproduction de scènes sonores complexes dans un contexte multimédia
», Thèse de doctorat de l'université Paris 6, Jérôme DANIEL, 31 juillet 2001, « A
highly scalable spherical microphone array based on an orthonormal décomposition of
the sound field », Jens Meyer - Gary Elko, Vol. Il - pp. 1781-1784 in Proc. ICASSP
2002.
[0064] En référence à la figure 3, la formule suivante donne la décomposition en harmoniques
cylindriques à un ordre infini d'un signal Si de la scène sonore :

où (J
m) représentent les fonctions de Bessel, r la distance entre le centre du repère et
la position d'un auditeur placé en un point M, Pi la pression acoustique du signal
Si, θi l'angle de propagation de l'onde acoustique correspondant au signal Si et ϕ
l'angle entre la position de l'auditeur et l'axe du repère.
[0065] Si la transformation ambiophonique est d'ordre p (p entier positif quelconque), pour
une transformation ambiophonique 2D (selon le plan horizontal), la transformée ambiophonique
d'un signal Si exprimée dans le domaine temporel comprend alors les 2p+1 composantes
suivantes :
(Pi, Pi.cosθi, Pi.sinθi, Pi.cos2θi, Pi.sin2θi, Pi.cos3θi, Pi.sin3θi, ..., Pi.cospθi,
Pi.sinpθi).
[0066] Dans ce qui suit, il a été considéré une transformation ambiophonique 2D. Néanmoins
l'invention peut être mise en oeuvre avec une transformation ambiophonique 3D (dans
un tel cas, on considère que les haut-parleurs sont disposés sur une sphère).
[0067] Les composantes ambiophoniques Ak, k=1 à Q = 2p + 1, considérées dans le domaine
fréquentiel, comportent chacune M paramètres spectraux A(k,j), j= 0 à M-1 se rapportant
respectivement aux bandes Fj telles que :
si A est la matrice comportant les composantes Ak, k=1 à Q issues de la transformation
ambiophonique d'ordre p des signaux Si, i= 1 à N, Amb(p) est la matrice de transformation ambiophonique d'ordre p pour la scène sonore spatiale,
et X est la matrice des composantes fréquentielles des signaux Si, i= 1 à N, alors :

Amb(p)=[Amb(p)(i,j)], avec i=1 à Q et j=1 à N, avec : Amb(p)(1,j)= 1,

si i pair et

si i impair, soit

et on a

[0068] Le module 4 de transformation spatiale est adapté pour déterminer la matrice
A, à l'aide de l'équation (1) en fonction des données X(i, j) et θi (i=1 à N, j= 0
à M-1) qui lui sont fournies en entrée.
[0069] Dans le cas particulier considéré, les composantes ambiophoniques Ak, k=1 à Q, soit
les paramètres A(k, j), k=1 à Q et j=0 à M-1, de cette matrice
A, sont les éléments à coder par le codeur 1 dans une séquence binaire.
[0070] Les composantes ambiophoniques Ak, k=1 à Q, sont délivrées au module 5 de définition
des éléments les moins pertinents pour quantification et détermination d'un ordonnancement
des composantes ambiophoniques.
[0071] Ce module 5 de définition des éléments les moins pertinents est adapté pour mettre
en oeuvre des opérations, suite à l'exécution sur des moyens de traitement du module
5, d'un premier algorithme et/ou un second algorithme, en vue de définir des éléments
à coder les moins pertinents et d'ordonner les éléments à coder entre eux.
[0072] Cet ordonnancement des éléments à coder est utilisé ultérieurement lors de la constitution
d'une séquence binaire à transmettre.
[0073] Le premier algorithme comprend des instructions adaptées pour mettre en oeuvre, lorsqu'elles
sont exécutées sur les moyens de traitement du module 5, les étapes du processus Proc1
décrit ci-dessous en référence à la figure 4.
Processus Proc1
[0074] Le principe du processus Proc1 est le suivant : on calcule l'influence respective
d'au moins certaines composantes spectrales calculables en fonction de paramètres
spectraux issus de certains au moins des N signaux, sur des rapports masque à bruit
déterminés sur les bandes spectrales en fonction d'un codage desdites composantes
spectrales. Puis on attribue un ordre de priorité à au moins une composante spectrale
en fonction de l'influence calculée pour ladite composante spectrale comparée aux
autres influences calculées.
[0075] Dans un mode de réalisation, le processus Proc1 détaillé est le suivant:
Initialisation
■ Etape 1a:
[0076] Dans cette étape, on définit un premier débit D
0=D
max et une allocation de parties de ce débit D
0 entre les éléments à coder A(k,j), (
k,
j) ∈ E
0={(
k,
j) tel que
k=1 à
Q et
j=0 à
M-1}. On nomme d
k,j le débit attribué à l'élément à coder A(k,j), (
k, j) ∈ E
0, lors de cette allocation (la somme de ces débits d
k,j| k =1 à Q, j=0 à M-1 est égale à D
0) et δ
0 = min
dk,j pour (
k, j) ∈ E
0 .
[0077] Puis les éléments à coder A(k,j), (
k,
j) ∈ E
0, sont quantifiés par le module 10 de quantification en fonction de l'allocation définie
pour le débit D
0.
■ Etape 1b :
[0078] Ensuite, on calcule le rapport entre le masque et l'erreur (ou bruit) de quantification
(« Mask to noise Ratio » en anglais ou MNR) pour chaque signal Si et pour chaque sous-bande
Fj, avec i= 1 à N et j = 0 à M-1, qui est égal à la puissance du masque du signal
Si dans la bande Fj divisée par la puissance du bruit de quantification (E(i,j)) relative
au signal Si dans cette bande Fj.
[0079] Pour ce faire, on détermine d'abord l'erreur de quantification b(k,j) dans chaque
bande Fj des éléments à coder A(k,j), (
k,j) ∈ E
o, de la façon suivante :
b(k,j) = A(k,j) - A (k,j), avec A(k,j) le résultat de la quantification, puis quantification inverse de l'élément A(k,j)
(en général la quantification fournit un indice de quantification indiquant la valeur
de l'élément quantifié dans un dictionnaire, le quantificateur inverse fournit la
valeur de l'élément quantifié en fonction de l'indice).
[0080] Puis on détermine l'erreur de quantification E(i,j) dans chaque bande Fj pour chaque
signal Si avec i= 1 à N et j = 0 à M-1, due à la quantification des éléments à coder
selon le débit D
o, en calculant la matrice
E comportant les éléments E (i,j) :

où Q= 2p+1, Amb(p) est la matrice de transformation ambiophonique d'ordre p et

et

[0081] Puis le rapport entre le masque et l'erreur de quantification pour chaque signal
Si et pour chaque bande Fj, avec i= 1 à N et j = 0 à M-1 est déterminé en fonction
du bruit de quantification E(i,j) ainsi calculé relatif au signal Si dans cette bande
Fj et du masque du signal Si dans la bande Fj fourni par le module 7 de calcul de
masque.
[0082] On appelle MNR(0,D
0) la matrice telle que l'élément (i,j) de la matrice MNR(0,D
0), i= 1 à N et j = 0 à M-1, indique le rapport entre le masque et l'erreur de quantification
pour le signal Si et pour la bande Fj pour la quantification précédemment effectuée.
[0083] Avant de décrire l'itération n°1 du processus Proc1, on indique ci-dessous comment
l'équation (2) a été déterminée.
[0084] La figure 8 représente une chaîne de traitement 200 comportant un module 201 de transformation
ambiophonique d'ordre p (similaire au module 4 de transformation ambiophonique d'ordre
p de la figure 1) suivi d'un module 202 de transformation ambiophonique inverse d'ordre
p. Le module 201 de transformation ambiophonique d'ordre p reçoit en entrée les représentations
spectrales X1,..., XN des signaux S1, ..., SN, effectue sur ces signaux une transformation
ambiophonique d'ordre p, délivre les signaux ambiophoniques obtenus A1 à AQ au module
202 de transformation ambiophonique inverse d'ordre Q, lequel délivre N signaux de
pressions acoustiques respectives Πi, i=1 à N.
[0085] On a alors

où Amb(p) est la matrice de transformation ambiophonique d'ordre p et
Amblnv(
p) est la matrice de transformation ambiophonique inverse d'ordre p (encore appelée
matrice de décodage ambiophonique).
[0086] La figure 9 représente une chaîne de traitement 210 comportant le module 201 de transformation
ambiophonique d'ordre p suivi d'un module 203 de quantification, puis un module 204
de quantification inverse, et d'un module 202 de transformation ambiophonique inverse
d'ordre p. Le module 201 de transformation ambiophonique d'ordre p en entrée de la
chaîne de traitement 210 reçoit en entrée les représentations spectrales X1,..., XN
des signaux S1, ..., SN et délivre les signaux ambiophoniques obtenus A1 à AQ, qui
sont fournis en entrée du module 203 de quantification. Les signaux
A1, ...,
AQ sont les signaux délivrés au module 202 de transformation ambiophonique inverse par
le module 204 de quantification inverse, résultant de la quantification inverse effectuées
sur les signaux délivrés par le module 203 de quantification. Le module 202 de transformation
ambiophonique inverse d'ordre Q délivre N signaux de pressions acoustiques respectives
Π'i, i=1 à N.
[0087] La chaîne de traitement 210 de la figure 9 fournit les mêmes pressions acoustiques
Π'i de sortie que la chaîne de traitement 211 représentée en figure 10, dans laquelle
le module 201 de transformation ambiophonique d'ordre p se situe entre le module de
quantification inverse 204 et le module 202 de transformation ambiophonique inverse
d'ordre p. Dans la chaîne de traitement 211, le module 203 de quantification en entrée
de la chaîne de traitement 211 reçoit en entrée les représentations spectrales X1,
..., XN, les quantifie puis délivre le résultat de cette quantification au module
204 de quantification inverse, qui délivre les N signaux
X1, ...,
XN. Ces signaux
X1, ...,
XN sont ensuite fournis aux modules 201 et 202 de transformation ambiophonique et de
transformation ambiophonique inverse mis en cascade. Le module 202 de transformation
ambiophonique inverse d'ordre p délivre les N signaux de pressions acoustiques respectives
Π'i, i=1 à N.
[0088] On peut alors écrire :

Soit

Par ailleurs,

[0089] Donc on en déduit : E =
(AmbInv(p) ×
Amb(
p))
-1 AmbInv(
p) × B.
Dans le cas où la matrice de décodage ambiophonique correspond à un système à haut-parleurs
réguliers, on a

(en fait, les erreurs de quantification
E ou
B ne dépendent que du codage effectué et non du décodage. Ce qui changera au niveau
du décodage, en fonction de la matrice de décodage utilisée correspondant au système
de haut-parleurs utilisé, c'est la façon dont l'erreur sera répartie entre les haut-parleurs.
Cela est dû au fait que la psychoacoustique utilisée ne prend pas en compte les interactions
entre les signaux. Donc si le calcul est fait pour une matrice de décodage bien définie
et que le module de quantification optimise l'erreur pour cette matrice, alors pour
les autres matrices de décodage l'erreur sera sous-optimale).
On en déduit donc l'équation (2).
[0090] Revenons à la description de la figure 4.
Itération n°1 :
■ Etape 1c :
[0091] On définit maintenant un deuxième débit D
1 de codage, avec D
1=D
0-δ
0, et une répartition de ce débit D
1 bits de codage entre les éléments à coder A(k,j), k=1 à Q et j=0 à M-1.
■ Etape 1d :
[0092] Ensuite, pour chaque couple (
k,
j) ∈ E
0, considéré successivement depuis le couple (1,0) jusqu'au couple (Q,M-1) selon l'ordre
de lecture lexicographique des couples de E
0, on réitère les opérations a1 à a7 suivantes :
a1- on considère que la sous-bande (k,j) est supprimée pour les opérations a2 à a5
;
a2- les éléments à coder A(i,n), avec (i,n) ∈ E0 \(k,j) (c'est-à-dire (i,n) égal à chacun des couples de E0 à l'exception du couple (k,j)) sont quantifiés par le module 10 de quantification
en fonction d'une répartition définie du débit D1 entre lesdits éléments à coder A(i,n), avec (i,n) ∈ E0 \(k, j);
a3- de la même façon qu'indiquée à l'étape 1b, on calcule à partir des éléments A (i,n), (i,n) ∈ E0 / (k,j) issus des opérations de quantification effectuées à l'étape a2, la matrice MNRk,j(1,D1) = [MNRk,j(1,D1) (i, t)] i=1 à N et = 0 à M-1 telle que chaque élément MNRk,j(1,D1) (i, t) de la matrice indique le rapport entre le masque et l'erreur (ou bruit) de
quantification pour chaque signal Si et pour chaque sous-bande Ft, avec i=1 à N et
t = 0 à M-1 suite à la quantification effectuée à l'étape a2 (la sous-bande (k,j)
étant considérée comme supprimée, le bruit de quantification b(k,j) a été considéré
nul dans les calculs). On mémorise les valeurs prises par les éléments de cette matrice
MNRk,j(1,D1);
a4- puis, on calcule et on mémorise la matrice ΔMNRk,j(1) de variation de rapport entre le masque et l'erreur de quantification ΔMNRk,j(1)=|MNRk,j(1,D1) - MNRk,j(0,D0)|; avec MNRk,j(0,D0) est la matrice MNR(0,D0) dont on a supprimé l'élément d'indice (k,j)
a5- on calcule une norme ∥ΔMNRk,j(1)∥ de cette matrice ΔMNRk,j(1). La valeur de cette norme évalue l'impact, sur l'ensemble des rapports signal
à bruit des signaux Si, de la suppression de la composante A(k,j) parmi les éléments
à coder A(i,n), avec (i,n) ∈ E0.
La norme calculée permet de mesurer l'écart entre MNRk,j(1,D1) et MNRk,j (0,D0) et est par exemple égale à la racine carrée de la somme de chaque élément de la
matrice ΔMNRk,j(1) élevé au carré.
a6- on considère que la sous-bande (k,j) n'est plus supprimée ;
a7- si (k,j) ≠ max E0 = (Q,M-1), on incrémente le couple (k,j) dans E0 et on réitère les étapes a1 à a7 jusqu'à atteindre max E0.
■ Etape 1e :
[0093] On détermine (i
1,j
1) correspondant à la valeur la plus petite parmi les valeurs ∥ΔMNR
k,j(1)∥, obtenues pour (
k,
j) ∈ E
0, soit :
[0094] L'élément à coder A(i
1,j
1) est ainsi identifié comme l'élément le moins pertinent quant à la qualité audio
globale parmi l'ensemble des éléments à coder A(i,j) avec (
i,
j) ∈ E
0.
■ Etape 1f :
[0095] L'identifiant du couple (i
1,j
1) est délivrée au module d'ordonnancement 6 en tant que résultat de la première itération
du processus Proc1.
■ Etape 1g:
[0096] On supprime alors la bande (i
1,j
1), de l'ensemble des éléments à coder dans la suite du processus Proc1. On définit
l'ensemble E
1 = E
0 \{(
i1,
j1)}.
Itération 2 et suivantes :
[0097] Des étapes similaires aux étapes 1c à 1g sont effectuées pour chaque itération n,
n≥2, comme décrit ci-après.
■ Etape 1c : on définit maintenant un (n+1)ième débit Dn de codage, avec Dn = Dn-1-δn-1 tel que δn-1 = min (dij), pour (i,j) ∈ En-1.
■ Etape 1d : ensuite, pour chaque couple (k,j) ∈ En-1 et considéré successivement selon l'ordre lexicographique, on réitère les opérations
suivantes a1 à a7 :
a1- on considère que la sous-bande (k,j) est supprimée dans les opérations a2 à a5
;
a2- les éléments à coder A(i,n), avec (i,n) ∈ En-1/{(k,j)} sont quantifiés par le module 10 de quantification en fonction d'une répartition
du débit Dn entre les éléments à coder A(i,n), avec (i,n) ∈ En-1 \{(k,j)} ;
a3- on calcule à partir des éléments A (i,n), (i,n) ∈ En-1\{(k,j)} déterminés en fonction de la quantification à l'étape a2, la matrice MNRk,j(n, Dn) indiquant le rapport entre le masque et l'erreur (ou bruit) de quantification pour
chaque signal Si et pour chaque sous-bande Fj, avec i= 1 à N et j = 0 à M-1, suite
à la quantification effectuée à l'étape a2 ;
a4- puis on calcule et on mémorise la matrice de variation de rapport entre le masque
et l'erreur de quantification ΔMNRk,j(n)=|MNRk,j(n,Dn) - MNRk,j(n-1,Dn-1)|, avec MNRk,j(n-1,Dn-1) correspond à la matrice MNR (n-1,Dn-1) dont on a supprimé l'élément d'indice (k,j), et une norme ∥ΔMNRk,j(n)∥ de cette matrice ΔMNRk,j(n). La valeur de cette norme évalue l'impact, sur l'ensemble des rapports signal
à bruit des signaux Si, de la suppression de la composante A(k,j) parmi les éléments
à coder A(i,n), avec (i,n) ∈ En-1 \{(k,j)}.
a5- on considère que la sous-bande (k,j) n'est plus supprimée ;
a6-- si (k,j) ≠ max En-1, on incrémente le couple (k,j) dans En-1 et on réitère les étapes a1 à a6 jusqu'à atteindre max En-1.
■ Etape 1e : on détermine (in,jn) correspondant à la valeur la plus petite parmi les valeurs obtenues ∥ΔMNRk,j(n)∥, pour (k, j) ∈ En-1, soit

On mémorise aussi la matrice

L'élément à coder A(in,jn) est ainsi identifié comme l'élément le moins pertinent quant à la qualité audio
globale parmi l'ensemble des éléments à coder A(i,j), tels que (i,j) ∈ En-1.
■ Etape 1f : l'identifiant du couple (in,jn) est délivrée au module d'ordonnancement 6 en tant que résultat de la nième itération
du processus Proc1.
■ Etape 1g : on supprime alors la bande (in,jn), de l'ensemble des éléments à coder dans la suite du processus Proc1. On définit
l'ensemble En = En-1 \ {(in,jn)}.
[0098] On réitère le processus Proc1 r fois et au maximum Q*M-1 fois.
[0099] Des indices de priorité sont ainsi ensuite attribués par le module 6 d'ordonnancement
aux différentes bandes de fréquence, en vue de l'insertion des données de codage dans
une séquence binaire.
[0100] Ordonnancement des éléments à coder et constitution d'une séquence binaire sur la base des résultats successivement fournies par les itérations successives
du processus Proc1 :
[0101] Dans un mode de réalisation où l'ordonnancement des éléments à coder est réalisé
par le module 6 d'ordonnancement sur la seule base des résultats successivement fournies
par les itérations successives du processus Proc1 mis en oeuvre par le module 5 de
définition des éléments à coder les moins pertinents à l'exclusion des résultats fournis
par le processus Proc2, ce dernier définit un ordre desdits éléments à coder, traduisant
l'importance des éléments à coder sur le plan de la qualité audio globale.
[0102] En référence à la figure 5a, l'élément à coder A(i
1,j
1) correspondant au couple (i
1,j
1) déterminé lors de la première itération de Proc1 est considéré le moins pertinent
sur le plan de la qualité audio globale. Il lui est donc affecté un indice de priorité
minimale Prio1 par le module 5.
[0103] L'élément à coder A(i
2,j
2) correspondant au couple (i
2,j
2) déterminé lors de la deuxième itération de Proc1, est considéré comme l'élément
à coder le moins pertinent sur le plan de la qualité audio globale, après celui affecté
à la priorité Prio1. Il lui est donc affecté un indice de priorité minimale Prio2,
avec Prio2 > Prio1. Lorsque le nombre r d'itération du processus est strictement inférieur
à Q*M-1, le module 6 d'ordonnancement ordonne ainsi successivement r éléments à coder
affectés chacun à des indices de priorité croissants Prio1, Prio2 à Prio r. Les éléments
à coder n'ayant pas été affectés à un ordre de priorité au cours d'une itération du
processus Proc1 sont plus importants sur le plan de la qualité audio globale que les
éléments à coder auxquels ont été affectés des ordres de priorité.
[0104] Lorsque r est égal à Q*M -1 fois, tous les éléments à coder sont ordonnées un à un.
[0105] Dans ce qui suit, on considère que le nombre d'itérations r du processus Proc1 effectuées
est égal à Q*M -1 fois.
[0106] L'ordre de priorité affecté à un élément à coder A(k,j) est également affecté à l'élément
codé
A(
k,
j) résultant d'une quantification de cet élément à coder.
[0107] Le module 8 de constitution de la séquence binaire constitue une séquence binaire
correspondant à une trame de chacun des signaux Si, i=1 à N en y intégrant successivement
des éléments codés
A(
k,
j) par ordre décroissant d'indices de priorité attribués, la séquence binaire étant
à transmettre dans le flux binaire Φ.
[0108] Ainsi la séquence binaire constituée est ordonnée conformément à l'ordonnancement
effectué par le module 6.
[0109] La séquence binaire est ainsi constituée de composantes spectrales se rapportant
à des bandes spectrales respectives, d'éléments à coder provenant d'une scène audio
comprenant N signaux avec N>1, et qui sont ordonnés en fonction de leur influence
sur des rapports masque à bruit déterminés sur les bandes spectrales.
[0110] Les composantes spectrales de la séquence binaire sont par exemple ordonnées selon
le procédé de l'invention.
[0111] Dans un mode de réalisation, seules certaines des composantes spectrales comprises
dans la séquence binaire constituée sont ordonnées à l'aide d'un procédé selon l'invention.
[0112] Dans le mode de réalisation considéré ci-dessus, une suppression d'une composante
spectrale d'un élément à coder A(i,j) a lieu à chaque itération de l'algorithme Proc1.
[0113] Dans un autre mode de réalisation, on utilise un quantificateur imbriqué pour les
opérations de quantification. Dans un tel cas, la composante spectrale d'un élément
à coder A(i
0,j
0) identifié n'est pas supprimé, mais un débit réduit est affecté au codage de cette
composante par rapport au codage des autres composantes spectrales d'éléments à coder
restant à ordonner.
[0114] Le codeur 1 est ainsi un codeur permettant une adaptabilité en débit prenant en compte
les interactions entre les différents signaux monophoniques. Il permet de définir
des données compressées optimisant la qualité audio globale perçue.
[0115] Les opérations d'ordonnancement des éléments de la séquence binaire et de constitution
de la séquence binaire à l'aide du processus Proc1 ont été décrites ci-dessus pour
un mode de réalisation de l'invention dans lequel les éléments à coder comprennent
les composantes ambiophoniques des signaux.
[0116] Dans un autre mode de réalisation, un codeur selon l'invention ne code pas ces composantes
ambiophoniques, mais les coefficients spectraux X(i,j), j= 0 à M, des signaux Si.
[0117] Dans un tel cas, on affecte à la première itération du processus 1 par exemple, un
indice de priorité minimum (minimum parmi les éléments restant à ordonner) à l'élément
à coder X(i
1, j
1) tel que la suppression de la composante spectrale X(i
1, j
1) donne lieu à une variation minimale de rapport masque à bruit. Puis on réitère le
processus Proc1.
Processus Proc2
[0118] Les critères de Gerzon sont généralement utilisés pour caractériser la localisation
des sources sonores virtuelles synthétisées par la restitution de signaux depuis les
haut-parleurs d'un système de rendu sonore donné.
[0119] Ces critères reposent sur l'étude des vecteurs de vélocité et d'énergie des pressions
acoustiques générées par un système de rendu sonore utilisé.
[0120] Lorsqu'un système de rendu sonore comprend L haut-parleurs, les signaux, i=1 à L,
générés par ces haut-parleurs, sont définies par une pression acoustique Ti et un
angle de propagation acoustique ξ
i.
[0121] Le vecteur de vélocité
V est alors défini ainsi :

[0122] Il existe un couple de coordonnées polaires (r
v, ξ
v) tel que :

[0123] Le vecteur d'énergie
E est défini ainsi :

[0124] Il existe un couple de coordonnées polaires (r
E, ξ
E) tel que :

[0125] Les conditions nécessaires pour que la localisation des sources sonores virtuelles
soit optimale se définissent en cherchant les angles ξ
i, caractérisant la position des haut-parleurs du système de rendu sonore considéré,
vérifiant les critères ci-dessous, dits critères de Gerzon, qui sont :
- critère 1, relatif à la précision de l'image sonore de la source S en basses fréquences
: ξv = ξ ; où est ξ l'angle de propagation de la source S réelle qu'on cherche à atteindre.
- critère 2, relatif à la stabilité de l'image sonore de la source S en basses fréquences
: rv = 1 ;
- critère 3, relatif à la précision de l'image sonore de la source S en hautes fréquences
: ξE = ξ ;
- critère 4, relatif à la stabilité de l'image sonore de la source S en hautes fréquences:
rE = 1.
[0126] Les opérations décrites ci-dessous dans un mode de réalisation de l'invention utilisent
les vecteurs de Gerzon dans une application autre que celle consistant à rechercher
les meilleurs angles ξ
i, caractérisant la position des haut-parleurs du système de rendu sonore considéré.
[0127] Les critères de Gerzon reposent sur l'étude des vecteurs de vélocité et d'énergie
des pressions acoustiques générées par un système de rendu sonore utilisé.
[0128] Chacune des coordonnées x
v, y
v, x
E, y
E indiquées dans les équations 3 et 4 relatives aux vecteurs d'énergie et vélocité
associés aux critères de Gerzon est élément de [-1,1]. Donc il existe un unique couple
(ξ
V , ξ
E) vérifiant les équations suivantes, correspondant au cas parfait (
rV, rE) = (1,1) :

[0129] Les angles ξ
V et ξ
E de ce couple unique sont donc définis par les équations suivantes (équations (5)):

[0130] On appellera par la suite vecteur d'angles de Gerzon généralisé le vecteur ξ tel
que

[0131] Le deuxième algorithme comprend des instructions adaptées pour mettre en oeuvre,
lorsqu'elles sont exécutées sur des moyens de traitement du module 5, les étapes du
processus Proc2 décrit ci-dessous en référence à la figure 6.
[0132] Le principe du processus Proc2 est le suivant : on calcule l'influence de chaque
paramètre spectral, parmi un ensemble de paramètres spectraux à ordonner, sur un vecteur
d'angle défini en fonction de vecteurs d'énergie et de vélocité associés à des critères
de Gerzon et calculés en fonction d'une transformation ambiophonique inverse sur lesdits
composantes ambiophoniques quantifiés. Et on attribue un ordre de priorité à au moins
un paramètre spectral en fonction de l'influence calculée pour ledit paramètre spectral
comparé aux autres influences calculées.
[0133] Dans un mode de réalisation, le processus Proc2 détaillé est le suivant:
Initialisation (n=0)
■ Etape 2a :
[0134] On définit un débit D
0=D
max et une allocation de ce débit entre les éléments à coder A(k,j), pour (k,j) ∈ E
0= {(k,j) tel que k=1 à Q et j=0 à M-1}.
[0135] On nomme d
k,j le débit attribué à l'élément à coder A(k,j), (k,j) e E
o, lors de cette allocation initiale (la somme de ces débits d
k,j| i =1 à Q, j=0 à M-1 est égale à D
0) et δ
0 = min d
k,j, pour (k,j) e E
0.
■ Etape 2b :
[0136] Puis chaque élément à coder A(k,j), (k,j) ∈ E
o est quantifié par le module 10 de quantification en fonction du débit d
k,j qui lui a été alloué à l'étape 2a.
[0137] A est la matrice des éléments
A(
k,
j), k=1 à Q et j=0 à M-1. Chaque élément
A(
k,j) est le résultat de la quantification, avec le débit d
k,j, du paramètre A(k,j), relative à la bande spectrale F
j, de la composante ambiophonique A(k). L'élément
A(
k,j) définit donc la valeur quantifiée de la représentation spectrale pour la bande de
fréquence F
j, de la composante ambiophonique Ak considérée.

■ Etape 2c :
[0138] Ensuite, on effectue sur ces composantes ambiophoniques quantifiées
A(
k, j), k=1 à Q et j=0 à M-1, un décodage ambiophonique d'ordre p tel que 2p+1=Q et qui
correspond à un système régulier de N haut-parleurs, pour déterminer les pressions
acoustiques T1i, i = 1 à N, des N signaux sonores obtenus en résultat de ce décodage
ambiophonique.
[0139] Dans le cas considéré, AmbInv(p) est la matrice de transformation ambiophonique inverse
d'ordre p (ou décodage ambiophonique d'ordre p) délivrant N signaux T11, ..., T1N
correspondant à N haut-parleurs H'1, ..., H'N respectifs, disposés régulièrement autour
d'un point. Par conséquent, la matrice AmbInv(p) se déduit de la transposition de
la matrice Amb(p,N) qui est la matrice d'encodage ambiophonique résultante de l'encodage
de la scène sonore définie par les N sources correspondant aux N haut-parleurs H'1,
..., H'N et disposés respectivement dans les positions ξ
1, ..., ξ
N. Ainsi on peut écrire que :

[0140] T1 est la matrice des composants spectraux T1(i,j) des signaux T1i, i=1 à N relatifs
aux bandes de fréquences F
j, j= 0 à M-1. Ces composants spectraux sont issus de la transformation ambiophonique
inverse d'ordre p appliquée sur les composantes ambiophonique quantifiées
A(
k,
j), k=1 à Q et j=0 à M-1.

et on a

[0141] Ainsi les composants T1(i,j), i=1 à N, dépendent de l'erreur de quantification relative
à la quantification considérée des composantes ambiophoniques A(k,j), k=1 à Q et j=0
à M-1 (en effet, chaque élément quantifié
A(
k,
j) est la somme du paramètre spectral A(k,j) de composante ambiophonique à quantifier
et du bruit de quantification relatif audit paramètre).
[0142] Pour chaque bande de fréquence F
j, j= 0 à M-1, on calcule alors, à l'aide des équations (5), le vecteur d'angles de
Gerzon généralisé ξ
j(0) à l'initialisation du processus Proc2 (n=0), en fonction des composantes spectrales
T1(i,j), i =1 à N et j=0 à M-1 déterminées suite au décodage ambiophonique :

avec

i =1 à N :

[0143] Et on définit ξ̃
j (0) = ξ
j (0).
[0144] On notera qu'ici a été considérée une matrice de décodage ambiophonique pour un dispositif
de rendu sonore régulier et qui comporte un nombre de haut-parleurs égal au nombre
des signaux d'entrées, ce qui simplifie le calcul de la matrice de décodage ambiophonique.
Néanmoins, cette étape peut être mise en oeuvre en considérant une matrice de décodage
ambiophonique correspondant à des dispositifs de rendu sonore non réguliers et aussi
pour un nombre de haut-parleurs différents du nombre des signaux d'entrée.
Itération n°1 (n=1)
■ Etape 2d :
[0145] On définit un débit D
1=D
0 -δ
0 et une allocation de ce débit D
1 entre les éléments à coder A(k,j), pour (k,j) e E
0.
■ Etape 2e :
[0146] Puis chaque élément à coder A(k,j), (k,j) e E
0 est quantifié par le module 10 de quantification en fonction du débit qui lui a été
alloué à l'étape 2d.
[0147] A est maintenant la matrice actualisée des éléments quantifiés
A(k,j), (k,j) e E
0 résultant chacun de cette dernière quantification selon le débit global D
1, des paramètres A(k,j).
■ Etape 2f :
[0148] De façon similaire à celle décrite précédemment dans l'étape 2c, après calcul d'un
nouveau décodage ambiophonique d'ordre p effectué en fonction des éléments quantifiés
avec le débit global D
1, on calcule, pour l'itération n°1 du processus Proc2, un premier vecteur d'angles
de Gerzon généralisé ξ
j (1) dans chaque bande fréquentielle F
j, en fonction des composantes spectrales T1(i,j), i =1 à N, j=0 à M-1 déterminées
suite au nouveau décodage ambiophonique, à l'aide de l'équation (6).
[0149] On calcule ensuite le vecteur Δξ
j(1) égal à la différence entre le vecteur d'angles de Gerzon

calculé à l'étape 2c de l'initialisation et le vecteur d'angles de Gerzon généralisé
ξ
j(1) calculé à l'étape 2f de l'itération n°1 : Δξ
j(1)=ξ
j(1) - ξ̃
j (0), j=0 à M-1.
■ Etape 2g :
[0150] On calcule la norme ∥Δξ
j(1)∥, dans chaque bande fréquentielle F
j, de la variation Δξ
j(1), j=0 à M-1.
[0151] Cette norme représente la variation du vecteur d'angles de Gerzon généralisé suite
à la réduction du débit de D
0 à D
1 dans chaque bande fréquentielle F
j.
[0152] On détermine j
1 l'indice de la bande fréquentielle

telle que la norme

de la variation d'angle de Gerzon calculée dans la bande fréquentielle

soit inférieure ou égale à chaque norme ∥Δξ
j(1)∥, calculée pour chaque bande fréquentielle F
j, j=0 à M-1. On a donc

■ Etape 2h :
[0153] On considère maintenant les paramètres spectraux des composantes ambiophoniques relatifs
à la bande spectrale

soit les paramètres A(k, j
1), avec k ∈ F
0=[1,Q].
[0154] Et on réitère les étapes 2h1 à 2h5 suivantes pour tout i e F
0 considéré alternativement depuis 1 jusqu'à Q :
2h1- on considère que la sous-bande (i,j1) est supprimée pour les opérations 2h2 à 2h4 : on considère donc que A(i,j1) est nul et que l'élément quantifié correspondant A(i, ji) est aussi nul ;
2h2- De façon similaire à celle décrite précédemment dans l'étape 2c, après calcul
d'un décodage ambiophonique d'ordre p effectué en fonction des éléments quantifiés
avec le débit global D1 (A(i,ji) étant nul), on détermine le vecteur d'angles de Gerzon généralisé ξj1(A(i,j1) = 0, 1) dans la bande fréquentielle

en fonction des composantes spectrales T1(i,j), i = 1 à N et j = 0 à M-1 déterminées
suite audit décodage ambiophonique à l'aide de l'équation (6).
2h3- On calcule ensuite le vecteur Δξij1(1) représentant la différence dans la bande fréquentielle

entre le vecteur d'angles de Gerzon généralisé ξj1 (A(i,1) = 0, 1) calculé ci-dessus et le vecteur d'angles de Gerzon généralisé ξj1(1) calculé à l'étape 2f de l'itération n°1 ci-dessus : Δξij1(1) = ξj1 (A(i,j1,) =0, 1) - ξj1(1). Puis on calcule la norme ||Δ ξij1(1) || du vecteur Δ ξij1(1) : ||Δ ξij1 (1) || = || ξj1(A(i,j1) = 0,1) - ξj1 (1) ||.
[0155] Cette norme représente la variation du vecteur d'angles de Gerzon généralisé dans
la bande fréquentielle

lorsque pour un débit D1, on supprime la composante ambiophonique fréquentielle A(i,j
1).
[0156] 2h4- Si i ≠ max F
0, on considère que la sous-bande (i,j
1) n'est plus supprimée et on passe à l'étape 2h5. Si i = max F
0, on considère que la sous-bande (i,j
1) n'est plus supprimée et on passe à l'étape 2i.
[0157] 2h5- On incrémente i dans l'ensemble F
0 et on réitère les étapes 2h1 à 2h4 pour la valeur de i ainsi mise à jour jusqu'à
i = max F
0.
[0158] On obtient ainsi Q valeurs de variation d'angle de Gerzon généralisé ||Δξ
ij1(1)||, pour chaque i e F
0=[1, Q].
■ Etape 2i :
[0159] On compare entre elles les valeurs ||Δξ
ij1 (1)||, pour chaque i e F
0=[1, Q], on identifie la valeur minimale parmi ces valeurs et on détermine l'indice
i
1 e F
0 correspondant à la valeur minimale, soit

[0160] La composante A(i
1, j
1) est ainsi identifiée comme l'élément à coder de plus faible importance sur le plan
de la précision spatiale, comparé aux autres éléments à coder A(k,j), (k,j) e Eo.
■ Etape 2j :
[0161] On redéfinit, pour chaque bande spectrale F
j, le vecteur d'angles de Gerzon généralisé

issu de l'itération 1, calculé pour un débit D
1 :

[0162] Ce vecteur redéfini d'angles de Gerzon généralisé, établi pour un débit de quantification
égal à D
1, prend en compte la suppression de l'élément à coder A(i
1, j
1) et sera utilisé pour l'itération suivante du processus Proc2.
■ Etape 2k :
[0163] L'identifiant du couple (i
1,j
1) est délivré au module d'ordonnancement 6 en tant que résultat de la 1
ère itération du processus Proc2.
■ Etape 2m :
[0164] On supprime alors l'élément à coder A(i
1,j
1) de l'ensemble des éléments à coder dans la suite du processus Proc2.
[0165] On définit l'ensemble E
1= E
0\(i
1,j
1).
[0166] On définit δ
1 =min d
k,j, pour (k,j) e E
1.
[0167] Dans une itération n°2 du processus Proc2, on réitère des étapes similaires aux étapes
2d à 2n indiquées ci-dessus.
[0168] Le processus Proc2 est réitéré autant de fois que souhaité pour ordonner entre eux
certains ou la totalité des éléments à coder A(k,j), (k,j) e E
1 restant à ordonner.
[0169] Ainsi les étapes 2d à 2n décrites ci-dessus sont réitérées pour une nième itération
:
Itération n (n>1) :
[0170] 
[0171] Les éléments à coder A(k,j), pour (k,j) e E
0\E
n-1 ont été supprimés au cours des étapes 2m des itérations précédentes.
■ Etape 2d :
[0172] On définit un débit D
n = D
n-1 -δn-1 et une allocation de ce débit D
n entre les éléments à coder A(k,j), pour (k,j) e E
n-1.
[0173] Lors du calcul des décodages ambiophoniques effectués ci-après, on considère donc
que les éléments quantifiés
A(
k,
j), pour (k,j) e E
0\E
n-1 sont nuls
■ Etape 2e :
[0174] Puis chaque élément à coder A(k,j), (k,j) ∈ E
n-1, est quantifié par le module 10 de quantification en fonction du débit alloué à l'étape
2d ci-dessus.
[0175] Le résultat de cette quantification de l'élément à coder A(k,j) est
A(k, j), (
k,
j) ∈ E
n-1.
■ Etape 2f :
[0176] De façon similaire à celle décrite précédemment pour l'itération 1, après calcul
d'un décodage ambiophonique d'ordre p effectué en fonction des éléments quantifiés
avec le débit global D
n (on a donc considéré lors de ce décodage ambiophonique que les composantes
A(
i1,
j1),...,
A(
in-1,
jn-1) sont nulles), on calcule, pour l'itération n du processus Proc2, un premier vecteur
d'angles de Gerzon généralisé ξ
j(
n) dans chaque bande fréquentielle F
j en fonction des composantes spectrales T1i, i =1 à N déterminées suite audit décodage
ambiophonique, à l'aide de l'équation (6).
[0177] On calcule ensuite le vecteur Δξ
j(
n) égal à la différence entre le vecteur d'angles de Gerzon

calculé à l'étape 2j de l'itération n-1 et le vecteur d'angles de Gerzon généralisé
ξ
j(n) calculé à la présente étape :

■ Etape 2g :
[0178] On calcule la norme ∥Δξ
j(
n)∥, dans chaque bande fréquentielle F
j, de la variation Δξ
j(
n), j=0 à M-1.
[0179] Cette norme représente la variation du vecteur d'angles de Gerzon généralisé dans
chaque bande fréquentielle F
j, suite à la réduction de débit de D
n à D
n-1 (les paramètres
A(
i1,
j1), ...,
A(
in-1,
jn-1) et
A(
i1,
j1), ...,
A(i
n-1,
jn-1) étant supprimés).
[0180] On détermine j
n l'indice de la bande fréquentielle

telle que la norme ∥Δξ
jn(
n)∥ de la variation du vecteur d'angles de Gerzon calculée dans la bande fréquentielle

est inférieure ou égale à chaque norme ∥Δξ
j(
n)∥, calculée pour chaque bande fréquentielle F
j, j=0 à M-1. On a donc

■ Etape 2h :
[0181] On considère maintenant les paramètres spectraux des composantes ambiophoniques relatifs
à la bande spectrale

soit les paramètres A(k, j
n), avec k e F
n-1= {i e [1,...,Q] tel que (i, j
n) e E
n-1}.
[0182] Et on réitère les étapes 2h1 à 2h5 suivantes pour tout i e F
n-1 considéré alternativement depuis l'élément le plus petit de l'ensemble F
n-1 (min F
n-1) jusqu'à l'élément le plus grand de l'ensemble F
n-1 (max F
n-1) :
2h1- on considère que la sous-bande (i,jn) est supprimée pour les opérations 2h2 à 2h4 : on considère donc que A(i,jn) est nul et que l'élément quantifié correspondant A(i,jn) est aussi nul ;
2h2- De façon similaire à celle décrite précédemment dans l'étape 2c, après calcul
d'un décodage ambiophonique d'ordre p effectué en fonction des éléments quantifiés
avec le débit global Dn (A(i, jn) étant nul), on calcule, le vecteur d'angles de Gerzon généralisé nommé ξjn (A(i,jn) = 0 ,n) dans la bande fréquentielle

en fonction des composantes spectrales T1(i,j) i =1 à N et j=0 à M-1 déterminées
suite audit décodage ambiophonique, à l'aide de l'équation (6).
2h3- On calcule ensuite le vecteur Δξijn (n) égal à la différence, dans la bande fréquentielle

entre le vecteur d'angles de Gerzon généralisé ξjn (A(i,jn ) = 0, n) calculé ci-dessus en 2h2 et le vecteur d'angles de Gerzon généralisé ξjn (n) calculé à l'étape 2f de l'itération n ci-dessus : Δξijn(n) = ξjn (A(i,jn 0, n) - ξjn(n).
[0183] Puis on calcule la norme ∥Δξ
ijn(n) || du vecteur Δ
ξijn(
n) : ∥Δξ
ijn (n) ∥ = ∥ξ
jn (A(i,j
n) = 0, n) - ξ
jn(n) ||.
[0184] Cette norme représente la variation, dans la bande fréquentielle

du vecteur d'angles de Gerzon généralisé et pour un débit D
n, due à la suppression de la composante ambiophonique A(i,j
n) lors de la nième itération du processus Proc2.
[0185] 2h4- Si i ≠ max F
n-1, on considère que la sous-bande (i,j
n) n'est plus supprimée et on va à l'étape 2h5. Si i = max F
n-1, on considère que la sous-bande (i,j
n) n'est plus supprimée et on va à l'étape 2i.
[0186] 2h5- On incrémente i dans l'ensemble F
n-1 et on réitère les étapes 2h1 à 2h4 pour la valeur de i ainsi mise à jour jusqu'à
i = max F
n-1.
[0187] On obtient ainsi, pour chaque i e F
n-1, une valeur ∥Δξ
ijn(
n)∥, représentant la variation du vecteur d'angles de Gerzon généralisé dans la bande
fréquentielle

due à la suppression de la composante A(i,j
n).
■ Etape 2i :
[0188] On compare entre elles les valeurs ∥Δξ
ijn(
n) ∥, pour chaque i e F
n-1, on identifie la valeur minimale parmi ces valeurs et on détermine l'indice i
n e F
n correspondant à la valeur minimale, soit

[0189] La composante A(i
n,j
n) est ainsi identifiée comme l'élément à coder de plus faible importance sur le plan
de la précision spatiale, comparé aux autres éléments à coder A(k,j), (k,j) e E
n-1.
■ Etape 2j :
[0190] On redéfinit, pour chaque bande spectrale F
j, un vecteur d'angles de Gerzon généralisé

issu de l'itération n :

[0191] Cet angle de Gerzon généralisé redéfini, établi pour un débit de quantification égal
à D
n, prend en compte la suppression de l'élément à coder A(i
n, j
n) et sera utilisé pour l'itération suivante.
■ Etape 2k :
[0192] L'identifiant du couple (i
n,j
n) est délivré au module d'ordonnancement 6 en tant que résultat de la nième itération
du processus Proc2.
■ Etape 2m :
[0193] On supprime alors la bande (i
n,j
n) de l'ensemble des éléments à coder dans la suite du processus Proc2, c'est-à-dire
qu'on supprime l'élément à coder A(i
n,j
n).
[0194] On définit l'ensemble En= E
n-1\(i
n,j
n). Les éléments à coder A(i,j), avec (i,j) e En restent à ordonner. Les éléments à
coder A(i,j), avec (i,j) e {(i
1,j
1),..., (i
n,j
n)} ont déjà été ordonnés lors des itérations 1 à n.
[0195] On réitère le processus Proc2 r fois et au maximum Q*M-1 fois.
[0196] Des indices de priorité sont ainsi ensuite attribués par le module 6 d'ordonnancement
aux différents éléments à coder, en vue de l'insertion des données de codage dans
une séquence binaire.
[0197] Ordonnancement des éléments à coder et constitution d'une séquence binaire sur la base des résultats successivement fournies par les itérations successives
du processus Proc2 :
[0198] Dans un mode de réalisation où l'ordonnancement des éléments à coder est réalisé
par le module 6 d'ordonnancement sur la base des résultats successivement fournies
par les itérations successives du processus Proc2 mis en oeuvre par le module 5 de
définition des éléments à coder les moins pertinents (à l'exclusion des résultats
fournis par le processus Proc1), le module 6 d'ordonnancement définit un ordre desdits
éléments à coder, traduisant l'importance des éléments à coder sur le plan de la précision
spatiale.
[0199] En référence à la figure 5b, l'élément à coder A(i
1,j
1) correspondant au couple (i
1,j
1) déterminé lors de la première itération du processus Proc2 est considéré comme le
moins pertinent sur le plan de la précision spatiale. Il lui est donc affecté un indice
de priorité minimale Prio1 par le module 5.
[0200] L'élément à coder A(i
2,j
2) correspondant au couple (i
2,j
2) déterminé lors de la deuxième itération du processus Proc2, est considéré comme
l'élément à coder le moins pertinent sur le plan de la précision spatiale, après celui
affecté à la priorité Prio1. Il lui est donc affecté un indice de priorité minimale
Prio2, avec Prio2 > Prio1. Le module 6 d'ordonnancement ordonne ainsi successivement
r éléments à coder affectés chacun à des indices de priorité croissants Prio1, Prio2
à Prio r.
[0201] Les éléments à coder n'ayant pas été affectés à un ordre de priorité au cours d'une
itération du processus Proc2 sont plus importants sur le plan de la précision spatiale
que les éléments à coder auxquels à été affecté un ordre de priorité.
[0202] Lorsque r est égal à Q*M -1 fois, l'ensemble des éléments à coder sont ordonnées
un à un.
[0203] Dans ce qui suit, on considère que le nombre d'itérations r du processus Proc2 effectuées
est égal à Q*M -1 fois.
[0204] L'ordre de priorité affecté à un élément à coder A(k,j) est également affecté à l'élément
codé en fonction du résultat A(k,y) de la quantification de cet élément à coder. On
note ci-dessous également
A(k,j) l'élément codé correspondant à l'élément à coder A(k,j).
[0205] Le module 8 de constitution de la séquence binaire constitue une séquence binaire
Seq correspondant à une trame de chacun des signaux Si, i=1 à N en y intégrant successivement
des éléments codés
A(
k,
j) par ordre décroissant d'indices de priorité attribués, la séquence binaire Seq étant
à transmettre dans le flux binaire Φ.
[0206] Ainsi la séquence binaire constituée Seq est ordonnée conformément à l'ordonnancement
effectué par le module 6.
[0207] Dans le mode de réalisation considéré ci-dessus, une suppression d'une composante
spectrale d'un élément à coder A(i,j) a lieu à chaque itération du processus Proc2.
[0208] Dans un autre mode de réalisation, on utilise un quantificateur imbriqué pour les
opérations de quantification. Dans un tel cas, la composante spectrale d'un élément
à coder A(i,j) identifiée comme la moins importante sur le plan de la précision spatiale
lors d'une itération du processus Proc2 n'est pas supprimée, mais un débit réduit
est affecté au codage de cette composante par rapport au codage des autres composantes
spectrales d'éléments à coder restant à ordonner.
[0209] Le codeur 1 est ainsi un codeur permettant une adaptabilité en débit prenant en compte
les interactions entre les différents signaux monophoniques. Il permet de définir
des données compressées optimisant la précision spatiale perçue.
Combinaison des processus Proc1 et Proc2
[0210] Dans un mode de réalisation, on définit les éléments à coder les moins importants
à l'aide d'un processus Proc combinant les processus Proc1 et Proc2 décrits ci-dessus,
en fonction de critères prenant en compte la qualité audio globale et la pertinence
spatiale.
[0211] L'initialisation du processus Proc comporte les initialisations des processus Proc1
et Proc2 comment décrits plus haut.
[0212] Une itération n (n>1 ) d'un tel processus Proc va être maintenant décrite en référence
à la figure 11, en considérant un (n+1)ième débit D
n de codage et un ensemble d'éléments à coder A(k,j) avec (k,j) e E
n-1 avec à ordonner.
[0213] Ces débit et ensemble d'éléments à coder sont déterminés lors d'itérations précédentes
du processus Proc sur la base d'itérations précédentes du processus Proc à l'aide
des processus Proc1 et Proc2. Les itérations précédentes ont permis la détermination
d'éléments à coder déterminés les moins importants en fonction de critères définis.
[0214] Ces critères définis ont été établis en fonction de la qualité audio globale et de
la précision spatiale souhaitées.
[0215] On met en oeuvre sur cet ensemble d'éléments à ordonner en parallèle une itération
des étapes 1d et 1e du processus Proc1, identifiant l'élément à coder A(i
n1, j
n1) le moins pertinent sur le plan de la qualité audio globale et une itération des
étapes 2e à 2i du processus Proc2, identifiant l'élément à coder A(i
n2, j
n2) le moins pertinent sur le plan de la précision spatiale.
[0216] En fonction des critères définis, on sélectionne à l'étape 300, un seul des deux
éléments à coder identifiés ou encore les deux éléments à coder identifiés. On repère
par A(i
n, j
n) celui ou chaque élément à coder sélectionné.
[0217] Puis, d'une part, on fournit le ou les identifiants du couple (i
n,j
n) au module d'ordonnancement 6 en tant que résultat de la nième itération du processus
Proc2, qui lui attribue une priorité Prion au vu des critères définis. La priorité
Prion affectée est supérieure à la priorité des éléments à coder sélectionnés au cours
des itérations précédentes du processus Proc en fonction des critères définis. Cette
étape remplace les étapes 1f du processus Proc1 et 2k du processus Proc2 tels que
décrits précédemment.
[0218] Le ou les éléments à coder A(i
n,j
n) sélectionnés sont ensuite insérés dans la séquence binaire à transmettre avant les
éléments à coder sélectionnés au cours des itérations précédentes du processus Proc
(car l'élément à coder A(i
n,j
n) est plus important sur le plan des critères définis que les éléments à coder sélectionnés
précédemment par le processus Proc). Le ou les éléments à coder A(i
n,j
n) sélectionnés sont insérés dans la séquence binaire à transmettre après les autres
éléments à coder de l'ensemble E
n-1 (car l'élément à coder A(i
n,j
n) est moins important sur le plan des critères définis que ces autres éléments à coder).
[0219] D'autre part, dans une étape 301, on supprime le ou les éléments à coder A(i
n,j
n) sélectionné pour l'itération suivante (itération n+1 ) du processus Proc (comprenant
une itération n+1 pour les processus Proc1 et Proc2), qui s'appliqueront alors à l'ensemble
des éléments à coder En = En-1 \ (A(i
n,j
n), sur la base d'un débit réduit comme défini dans l'étape 1c du processus Proc1 et
l'étape 2n du processus Proc2.
[0220] Cette étape 301 remplace les étapes 1g du processus Proc1 et 2m du processus Proc2
tels que décrits précédemment.
[0221] Les critères définis permettent de sélectionner celui ou ceux des éléments les moins
pertinents identifiés respectivement lors de l'étape 300 du processus Proc.
[0222] Par exemple, dans un mode de réalisation, on supprime l'élément identifié par le
processus Proc1 à chaque itération n, avec n pair et on supprime l'élément identifié
par le processus Proc2 à chaque itération n avec n impair, ce qui permet de préserver
au mieux la qualité audio globale et la précision spatiale.
[0223] D'autres critères peuvent être utilisés. Un codage mettant en oeuvre un tel processus
Proc permet ainsi d'obtenir un flux binaire adaptable en débit sur le plan de la qualité
audio et sur la plan de la précision spatiale.
Opérations réalisées au niveau du décodeur
[0224] Le décodeur 100 comprend un module de lecture de séquence binaire 104, un module
de quantification inverse 105, un module 101 de transformation ambiophonique inverse
et un module 102 de transformation fréquence/temps.
[0225] Le décodeur 100 est adapté pour recevoir en entrée le flux binaire Φ transmis par
le codeur 1 et pour délivrer en sortie Q' signaux S'1, S'2, ..., S'Q' destinés à alimenter
les Q' haut-parleurs H1, ..., HQ' respectifs d'un système de rendu sonore 103. Le
nombre de haut-parleurs Q' peut dans un mode de réalisation être différent du nombre
Q de composantes ambiophoniques transmises.
[0226] A titre d'exemple, la configuration d'un système de rendu sonore comprenant 8 haut-parleurs
h1, h2,..., h8 est représentée en figure 7.
[0227] Le module 104 de lecture de séquence binaire extrait de la séquence binaire Φ reçue
des données indiquant les indices de quantification déterminés pour des éléments
A(
k, j), k=1 à Q et j=0 à M-1 et les fournit en entrée du module 105 de quantification inverse.
[0228] Le module 105 de quantification inverse effectue une opération de quantification
inverse.
[0229] Les éléments de la matrice
A' des éléments
A'(
k, j)
, k=1 à Q et j=0 à M-1, sont déterminés, tels que
A'(
k,
j) =
A(
k,
j) lorsque la séquence reçue comportait des données indiquant l'indice de quantification
de l'élément
A(
k, j) issu du codage des paramètres A(k,j) des composantes ambiophoniques par le décodeur
100 et
A'(
k,
j) = 0 lorsque la séquence reçue ne comportait pas de données indiquant l'indice de
quantification de l'élément
A(
k,
j) (par exemple ces données ont été coupés lors de la transmission de la séquence au
niveau d'un serveur de streaming pour s'adapter au débit disponible dans le réseau
et/ou aux caractéristiques du terminal).
[0230] Le module 101 de transformation spatiale inverse est adapté pour déterminer les éléments
X'(i, j), i=1 à Q', j= 0 à M-1, de la matrice
X' définissant les M coefficients spectraux X'(i, j), i=1 à Q', j= 0 à M-1, de chacun
des Q'i signaux S'i, à partir des composantes ambiophoniques
A'(
k, j), k=1 à Q et j=0 à M-1, déterminées par le module 105 de quantification inverse..
[0231] Amblnv(p',Q') est la matrice de transformation ambiophonique inverse d'ordre p' pour la
scène 3D adaptée pour déterminer les Q' signaux S'i, i= 1 à Q', destinés aux Q' haut-parleurs
du système de rendu sonore associé au décodeur 100, à partir des Q composantes ambiophoniques
reçues. Les angles pi, pour i=1 à Q', indiquent l'angle de propagation acoustique
depuis le haut-parleur Hi. Dans l'exemple représenté en figure 7, ces angles correspondent
aux angles entre l'axe de propagation d'un son émis par un haut-parleur et l'axe XX.
[0232] X' est la matrice des composants spectraux X'(i,j) des signaux Si', i=1 à Q' relatifs
aux bandes de fréquences Fj, j= 0 à M-1. Ainsi :

et

et on a

[0233] Le module 101 de transformation spatiale inverse est adapté pour déterminer les coefficients
spectraux X'(i, j), i=1 à Q', j= 0 à M-1, éléments de la matrice
X', à l'aide de l'équation (7).
[0234] Ces éléments X'(i, j), i=1 à Q', j= 0 à M-1, une fois déterminés, sont délivrées
en entrée du module 102 de transformation fréquence/temps.
[0235] Le module 102 de transformation fréquence/temps du décodeur 100 effectue une transformation
de l'espace de représentation fréquentielle vers l'espace de représentation temporelle
sur la base des coefficients spectraux reçus X'(i, j), i=1 à Q', j= 0 à M-1 (cette
transformation est dans le cas présent, une MDCT inverse), et il détermine ainsi une
trame temporelle de chacun des Q' signaux S'1,..., S'Q'.
[0236] Chaque signal S'i, i = 1 à Q', est destiné au haut-parleur Hi du système de rendu
sonore 103.
[0237] Certaines au moins des opérations effectuées par le décodeur sont dans un mode de
réalisation mises en oeuvre suite à l'exécution sur des moyens de traitement du décodeur,
d'instructions de programme d'ordinateur.
[0238] Un avantage du codage des composantes issues de la transformation ambiophonique des
signaux S1, ..., SN tel que décrit est que dans le cas où le nombre de signaux N de
la scène sonore est grand, il est possible de les représenter par un nombre Q de composantes
ambiophoniques bien inférieur à N, en dégradant très peu la qualité spatiale des signaux.
Le volume de données à transmettre est donc réduit et ceci sans dégradation importante
de la qualité audio de la scène sonore.
[0239] Un autre avantage d'un codage selon l'invention est qu'un tel codage permet une adaptabilité
aux différents types de systèmes de rendu sonores, quels que soient le nombre, la
disposition et le type de haut-parleurs dont le système de rendu sonore est muni.
[0240] En effet, un décodeur recevant une séquence binaire comprenant Q composantes ambiophoniques
opère sur celles-ci une transformation ambiophonique inverse d'ordre p' quelconque
et correspondant au nombre Q' de haut-parleurs du système de rendu sonore auquel sont
destinés les signaux une fois décodés.
[0241] Un codage tel qu'effectué par le codeur 1 permet d'ordonner les éléments à coder
en fonction de leur apport respectif sur la qualité audio à l'aide du premier processus
Proc1 et/ou en fonction de leur apport respectif sur la précision spatiale et le respect
de la reproduction des directions contenus dans la scène sonore, à l'aide du deuxième
processus Proc2.
[0242] Pour s'adapter aux contraintes de débit imposées, il suffit de tronquer la séquence
des éléments de priorités inférieures disposés dans la séquence. Il est garanti qu'alors
la meilleure qualité audio globale (quand le processus Proc1 est mis en oeuvre) et/ou
la meilleure précision spatiale (quand le processus Proc2 est mis en oeuvre) est fournie.
En effet l'ordonnancement des éléments à été fait de façon à ce que les éléments qui
apportent le moins à la qualité audio globale et/ou la précision spatiale soient mis
à la fin de la séquence.
[0243] Les processus Proc1 et Proc 2 peuvent être mis en oeuvre, suivant les modes de réalisations,
en combinaison ou alors seuls, indépendamment l'un de l'autre pour définir une séquence
binaire.