RAGOT, Stéphane (Allegoat, F-LANNION, 22300, FR)
KOVESI, Balazs (16 chemin du Moulin à Vent, F-LANNION, 22300, FR)
HOANG, Thi Minh Nguyet (Foyer Cosmos F, 25 rue des Hortensias, Lannion, F-22300, FR)
RAGOT, Stéphane (Allegoat, F-LANNION, 22300, FR)
KOVESI, Balazs (16 chemin du Moulin à Vent, F-LANNION, 22300, FR)
| REVENDICATIONS 1. Procédé de codage paramétrique d'un signal audionumérique multicanal comportant une étape de codage (G.722 Cod) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal, caractérisé en ce qu'il comporte en outre les étapes suivantes: - obtention (Obt.), par trame de longueur prédéterminée, de paramètres d'information spatiale du signal multicanal; - division (Div.) des paramètres d'information spatiale en une pluralité de blocs de paramètres; - sélection (St.) d'un bloc de paramètres en fonction de l'indice de la trame courante; - codage (Q) du bloc de paramètres sélectionné pour la trame courante. 2. Procédé de codage selon la revendication 1, caractérisé en ce que les paramètres d'information spatiale sont obtenus par les étapes suivantes: - transformation fréquentielle (Fen., FFT) du signal multicanal pour obtenir les spectres du signal multicanal, par trame; -découpage (D), par trame, des spectres du signal multicanal, en une pluralité de sous-bandes de fréquence, - calcul des paramètres d'information spatiale par sous-bandes de fréquence. 3. Procédé selon la revendication 2, caractérisé en ce que la division des paramètres d'information spatiale s'effectue en fonction des sous-bandes de fréquences obtenues par découpage. 4. Procédé selon la revendication 1, caractérisé en ce que lesdits paramètres d'information spatiale sont définis comme le rapport d'énergie entre les canaux du signal multicanal. 5. Procédé selon la revendication 1, caractérisé en ce que le codage d'un bloc de paramètres d'informations spatiales est réalisé par quantification scalaire non- uniforme. 6. Procédé selon la revendication 3, caractérisé en ce que l'étape de division des paramètres permet d'obtenir deux blocs, un premier bloc correspondant aux paramètres des premières sous-bandes de fréquence et un deuxième bloc correspondant aux paramètres des dernières sous-bandes de fréquence obtenues par découpage. 7. Procédé selon la revendication 3, caractérisé en ce que l'étape de division des paramètres permet d'obtenir deux blocs entrelaçant les paramètres des différentes sous-bandes de fréquence. 8. Procédé selon l'une des revendications 6 ou 7, caractérisé en ce que le codage du premier bloc et du deuxième bloc s'effectue selon que la trame à coder est d'indice pair ou d'indice impair. 9. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape d'analyse en composante principale pour obtenir les paramètres d'information spatiale comprenant un paramètre d'angle de rotation et un rapport d'énergie entre un composant principal et un signal d'ambiance. 10. Procédé de décodage paramétrique d'un signal audionumérique multicanal comportant une étape de décodage (G.722 Dec) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal, caractérisé en ce qu'il comporte en outre les étapes suivantes: - décodage (Q 1) de paramètres d'information spatiale reçus pour une trame courante de longueur prédéterminée de signal décodé; - mémorisation (Mem) des paramètres décodés pour la trame courante; - obtention (Comp.P) des paramètres décodés et mémorisés d'au moins une trame précédente et association de ces paramètres à ceux décodés pour la trame courante; - reconstruction (Synth.) du signal multicanal à partir du signal décodé et de l'association de paramètres obtenus pour la trame courante. 11. Procédé selon la revendication 10, caractérisé en ce que les paramètres décodés et mémorisés d'une trame précédente correspondent aux paramètres des premières sous-bandes de fréquence de la bande de fréquence de décodage et les paramètres décodés de la trame courante correspondent aux paramètres des dernières sous-bandes de fréquences obtenues par découpage ou vice versa. 12. Programme informatique comprenant des instructions de code pour la mise en œuvre des étapes d'un procédé de codage selon l'une des revendications 1 à 9, lorsque celles-ci sont exécutées par un processeur. 13. Programme informatique comprenant des instructions de code pour la mise en œuvre des étapes d'un procédé de décodage selon l'une des revendications 10 à 11, lorsque celles-ci sont exécutées par un processeur. 14. Codeur paramétrique d'un signal audionumérique multicanal comportant un module de codage (304) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal, caractérisé en ce qu'il comporte en outre: - un module d'obtention (314), par trame de longueur prédéterminée, de paramètres d'information spatiale du signal multicanal; - un module de division (315) des paramètres d'information spatiale en une pluralité de blocs de paramètres; - un module de sélection (316) d'un bloc de paramètres en fonction de l'indice de la trame courante; - un module de codage (312) du bloc de paramètres sélectionné pour la trame courante. 15. Décodeur paramétrique d'un signal audionumérique multicanal comportant un module de décodage (401) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal, caractérisé en ce qu'il comporte en outre: - un module de décodage (404) de paramètres d'information spatiale reçus pour une trame courante de longueur prédéterminée de signal décodé; - un espace de stockage (412) pour mémoriser des paramètres décodés pour la trame courante; - un module d'obtention (413) des paramètres décodés et mémorisés d'au moins une trame précédente et d'association de ces paramètres à ceux décodés pour la trame courante; - un module de reconstruction (414) du signal multicanal à partir du signal décodé et de l'association de paramètres obtenus pour la trame courante. |
La présente invention concerne le domaine du codage/décodage des signaux numériques.
Le codage et le décodage selon l'invention est adapté notamment pour la transmission et/ou le stockage de signaux numériques tels que des signaux audiofréquences (parole, musique ou autres).
Plus particulièrement, la présente invention se rapporte au codage/décodage paramétrique de signaux audio multicanaux.
Ce type de codage/décodage se base sur l'extraction de paramètres d'information spatiale pour qu'au décodage, ces caractéristiques spatiales puissent être reconstituées pour l'auditeur.
Ce type de codage paramétrique s'applique notamment pour un signal stéréo. Une telle technique de codage/décodage est par exemple décrite dans le document de Breebaart, J. and van de Par, S and Kohlrausch,A. and Schuijers, intitulé "Parametric Coding of Stereo Audio" dans EURASIP Journal on Applied Signal Processing 2005:9, 1305-1322. Cet exemple est repris en référence aux figures 1 et 2 décrivant respectivement un codeur et un décodeur stéréo paramétrique.
Ainsi, la figure 1 décrit un codeur recevant deux canaux audio, un canal gauche (noté L pour Left en anglais) et un canal droit (noté R pour Right en anglais).
Les canaux L(n) et R(n) sont traités par les blocs 101 , 102 et 103, 104 respectivement qui effectuent une analyse de Fourier court terme. Les signaux transformés L[jJ et R[j] sont ainsi obtenus.
Le bloc 105 effectue un matriçage de réduction de canaux ou "Downmix" en anglais pour obtenir à partir des signaux gauche et droit, un signal somme, un signal mono dans le cas présent, dans le domaine fréquentiel.
Une extraction de paramètres d'information spatiale est également effectuée dans le bloc 105. Les paramètres de type ICLD (pour "InterChannel Level Différence" en anglais) encore appelés différences d'intensité intercanal, caractérisent les ratios d'énergie par sous-bande fréquentielle entre les canaux gauche et droit.
Ils sont définis en dB par la formule suivante:
où L[j] et R[j] correspondent aux coefficients spectraux (complexes) des canaux L et R, les valeurs B[k] et B[k+1], pour chaque bande de fréquence k, définissent la découpe en sous-bande du spectre et le symbole * indique le conjugué complexe.
Un paramètre de type ICPD (pour "InterChannel Phase Différence" en anglais) encore appelé différence de phase par sous-bande fréquentielle, est définie suivant la relation suivante:
icPD[.] = (∑ ; ; l i - l L[y] . / ? * [ ]) (2) où indique l'argument (la phase) de l'opérande complexe.
On peut également définir de façon équivalente à l'ICPD, un décalage temporel intercanal appelé ICTD (pour "interchannel time différence" en anglais).
Un paramètre de cohérence intercanal ICC (pour "InterChannel Cohérence" en anglais) représente quant à lui, la corrélation intercanal.
Ces paramètres ICLD, ICPD et ICC sont extraits des signaux stéréo, par le bloc 105.
Le signal mono est passé dans le domaine temporel (blocs 106 à 108) après synthèse de Fourier court-terme (FFT inverse, fenêtrage et addition-recouvrement dite OverLap-Add ou OLA en anglais) et un codage mono (bloc 109) est réalisé. En parallèle les paramètres stéréo sont quantifiés et codés dans le bloc 110.
En général le spectre des signaux ( L [y] , /?[ ] ) est divisé suivant une échelle fréquentielle non-linéaire de type ERB {Equivalent Rectangular Bandwidth) ou Bark, avec un nombre de sous-bandes allant typiquement de 20 à 34. Cette échelle définit les valeurs de B(k) et B(k+1) pour chaque sous-bande k. Les paramètres (ICLD, ICPD, ICC) sont codés par quantification scalaire éventuellement suivie d'un codage entropique ou d'un codage différentiel. Par exemple, dans l'article précédemment cité, l'ICLD est codée par un quantificateur non-uniforme (allant de - 50 à +50 dB) avec codage différentiel ; le pas de quantification non-uniforme exploite le fait que plus la valeur de l'ICLD est grande plus la sensibilité auditive aux variations de ce paramètre est faible.
Au décodeur 200, le signal mono est décodé (bloc 201), un dé-corrélateur est utilisé (bloc 202) pour produire deux versions M(n) et M'(n) du signal mono décodé. Ces deux signaux passés dans le domaine fréquentiel (blocs 203 à 206) et les paramètres stéréo décodés (bloc 207) sont utilisés par la synthèse stéréo (bloc 208) pour reconstruire les canaux gauche et droit dans le domaine fréquentiel. Ces canaux sont enfin reconstruits dans le domaine temporel (blocs 209 à 214).
Dans les techniques de codage de signal stéréo, une technique de codage stéréo d'intensité (Intensity Stereo Coding en anglais) consiste à coder le canal somme (M) ainsi que les ratios d'énergie ICLD tels que définis ci-dessus.
Le codage stéréo d'intensité exploite le fait que la perception des composantes hautes fréquences est principalement liée aux enveloppes temporelles (énergétiques) du signal.
Pour les signaux mono, il existe d'autre part des techniques de quantification avec ou sans mémoire comme le codage à "Modulation par Impulsions Codées" (MIC) ou sa version adaptative dite "Modulation par Impulsions Codées Différentielle Adaptative" (MICDA).
On s'intéresse ici plus particulièrement à la recommandation UIT-T G.722 qui utilise le codage MICDA à code imbriqués en sous-bandes (ou ADPCM pour "Adaptive Differential Puise Code Modulation" en anglais).
Le signal d'entrée d'un codeur de type G.722 est en bande élargie de largeur de bande minimale de [50-7000 Hz] avec une fréquence d'échantillonnage de 16 kHz. Ce signal est décomposé en deux sous-bandes [0-4000 Hz] et [4000-8000 Hz] obtenues par décomposition du signal par des filtres miroir en quadrature dit Quadrature Mirror Filters (QMF) en anglais, puis chacune des sous-bandes est codée séparément par un codeur MICDA.
La bande basse est codée par un codage MICDA à codes imbriqués sur 6, 5 et 4 bits tandis que la bande haute est codée par un codeur MICDA de 2 bits par échantillon. Le débit total est de 64, 56 ou 48 bit/s suivant le nombre de bits utilisé pour le décodage de la bande basse.
La recommandation G.722 a d'abord été utilisé dans le RNIS (Réseau Numérique à Intégration de Services) puis dans les applications de téléphonie améliorée sur réseau DP de qualité voix HD (Haute Définition) ou HD voice en anglais.
Une trame de signal quantifié selon la norme G.722 est constituée d'indices de quantification codés sur 6, 5 ou 4 bits en bande basse (0-4000 Hz) et 2 bits en bande haute (4000-8000 Hz). La fréquence de transmission des indices scalaires étant de 8 kHz dans chaque sous-bande, le débit est de 64, 56 ou 48 kbit/s. Dans la norme G.722, les 8 bits sont répartis de la façon suivante: 2 bits pour la bande haute, 6 bits pour la bande basse. Le dernier ou les deux derniers bits de la bande basse peuvent être « volés » ou remplacés par des données.
L'UIT-T a récemment lancé une activité de normalisation appelé G.722- SWB (dans le cadre de la question Q.10/16 décrit par exemple dans le document: document UIT-T : Annex Q10.J Terms of Référence (ToR) and time schedule for the super wideband extension to ITU-T G.722 and ITU-T G.711WB, janvier 2009, WD04_G722G71 1SWBToRr3.doc) qui consiste à étendre la recommandation G.722 de 2 façons:
- Une extension de la bande acoustique de 50-7000 Hz (bande élargie) à 50- 14000 Hz (bande super-élargie). En anglais la bande super-élargie est appelée
Superwideband (SWB).
- Une extension de mono à stéréo. Cette extension stéréo peut étendre un codage mono en bande élargie ou un codage mono en bande super-élargie.
Dans le contexte de G.722-SWB, le codage G.722 opère avec des trames courtes de 5 ms. Nous nous intéressons ici plus particulièrement à l'extension stéréo du codage G.722 en bande élargie
Deux modes d'extension stéréo de G.722 sont à tester dans la normalisation G.722-SWB:
- Une extension stéréo de G.722 à 56 kbit/s avec un débit additionnel de 8 kbit/s, soit 64 kbit/s au total
- Une extension de G.722 à 64 kbit/s avec un débit additionnel de 16 kbit/s, soit 80 kbit/s au total
L'information spatiale représentée par les paramètres ICLD ou autres requiert un débit (additionnel d'extension stéréo) d'autant plus important que les trames de codage sont courtes.
A titre d'exemple, dans le contexte de la normalisation G.722-SWB, si l'on suppose qu'une extension stéréo de G.722 (bande élargie) est réalisée par la technique du codage d'intensité, on obtient le débit d'extension stéréo suivant.
Pour un signal somme (mono) codé par G.722 avec une trame de 5 ms et une découpe du spectre en bande élargie (0-8000 Hz) en 20 sous-bandes, on obtient 20 paramètres ICLD à transmettre toutes les 5 ms. On peut supposer que ces paramètres ICLD sont codés avec un débit (moyen) de l'ordre de 4 bits par sous- bande. Le débit d'extension stéréo de G.722 devient donc de 20 x 4 bits / 5 ms = 16 kbit/s. Ainsi l'extension stéréo de G.722 par ICLD avec 20 sous-bandes conduit à un débit additionnel de l'ordre de 16 kbit/s. Or d'après l'état de l'art le codage de l'ICLD seul n'est en général pas suffisant pour atteindre une bonne qualité stéréo.
Cet exemple illustre donc la difficulté de réaliser une extension stéréo d'un codeur comme G.722 avec des trames courtes (de 5 ms).
Un codage direct de l'ICLD (sans autres paramètres) donne un débit additionnel (d'extension stéréo) autour de 16 kbit/s qui est déjà le débit maximum d'extension possible pour l'extension G.722.
Il existe donc un besoin pour représenter un signal stéréo ou plus généralement multicanal, de façon efficace, à un débit aussi faible que possible, avec une qualité acceptable, lorsque les trames de codage sont courtes. La présente invention vient améliorer la situation.
A cet effet, elle propose dans un mode de réalisation, un procédé de codage paramétrique d'un signal audionumérique multicanal comportant une étape de codage (G.722 Cod) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal. Le procédé est tel qu'il comporte en outre les étapes suivantes:
- obtention (Obt.), par trame de longueur prédéterminée, de paramètres d'information spatiale du signal multicanal;
- division (Div.) des paramètres d'information spatiale en une pluralité de blocs de paramètres;
- sélection (St.) d'un bloc de paramètres en fonction de l'indice de la trame courante;
- codage (Q) du bloc de paramètres sélectionné pour la trame courante.
Ainsi, les paramètres d'informations spatiales sont divisés en plusieurs blocs, codés sur plusieurs trames. Le débit de codage est donc répartis sur plusieurs trames, le codage de ces informations se fait donc à un débit plus faible.
Les différents modes particuliers de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé défini ci-dessus.
Dans un mode de réalisation, les paramètres d'information spatiale sont obtenus par les étapes suivantes:
- transformation fréquentielle (Fen., FFT) du signal multicanal pour obtenir les spectres du signal multicanal, par trame;
-découpage (D), par trame, des spectres du signal multicanal, en une pluralité de sous-bandes de fréquence,
- calcul des paramètres d'information spatiale par sous-bandes de fréquence.
La division des paramètres d'information spatiale s'effectue en fonction des sous-bandes de fréquences obtenues par découpage.
Cette répartition par blocs est effectuée en fonction des sous-bandes de fréquence définies, de façon à optimiser l'utilisation de ces paramètres et minimiser l'impact sur la qualité du signal multicanal. Avantageusement, lesdits paramètres d'information spatiale sont définis comme le rapport d'énergie entre les canaux du signal multicanal.
Ces paramètres permettent de définir au mieux les directions des sources sonores et donc de définir par exemple pour un signal stéréo, les caractéristiques des signaux gauche et droit reconstruits au décodage.
Dans un mode particulier de réalisation, le codage d'un bloc de paramètres d'informations spatiales est réalisé par quantification scalaire non-uniforme.
Cette quantification est adaptée pour utiliser un minimum de débit additionnel à une extension multicanal du codage.
Dans un premier mode de réalisation, l'étape de division des paramètres permet d'obtenir deux blocs, un premier bloc correspondant aux paramètres des premières sous-bandes de fréquence et un deuxième bloc correspondant aux paramètres des dernières sous-bandes de fréquence obtenues par découpage.
Dans un autre mode particulier de réalisation, l'étape de division des paramètres permet d'obtenir deux blocs entrelaçant les paramètres des différentes sous-bandes de fréquence.
Cette répartition des paramètres est donc effectuée de façon simple et efficace. La répartition des paramètres sur deux blocs contigus apporte l'avantage de pouvoir faire un codage différentiel classique.
De façon avantageuse, le codage du premier bloc et du deuxième bloc s'effectue selon que la trame à coder est d'indice pair ou d'indice impair.
Ainsi, le rafraîchissement des paramètres s'effectue selon un rythme court, ce qui permet de ne pas apporter de dégradation perceptuelle lors du décodage.
Dans un autre mode de réalisation, le procédé comporte en outre une étape d'analyse en composante principale pour obtenir les paramètres d'information spatiale comprenant un paramètre d'angle de rotation et un rapport d'énergie entre un composant principal et un signal d'ambiance.
Ce mode particulier d'obtention de paramètres d'informations spatiales permet de prendre également en compte les corrélations existantes entre différents canaux du signal multicanal. L'invention s'applique également à un procédé de décodage paramétrique d'un signal audionumérique multicanal comportant une étape de décodage (G.722 Dec) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal. Le procédé est tel qu'il comporte en outre les étapes suivantes:
- décodage de paramètres d'information spatiale reçus pour une trame courante de longueur prédéterminée de signal décodé;
- mémorisation des paramètres décodés pour la trame courante;
- obtention des paramètres décodés et mémorisés d'au moins une trame précédente et association de ces paramètres à ceux décodés pour la trame courante;
- reconstruction du signal multicanal à partir du signal décodé et de l'association de paramètres obtenus pour la trame courante.
Ainsi, au décodage, les paramètres d'informations spatiales sont reçus sur plusieurs trames successives et sont décodés successivement sans nécessiter de débit supplémentaire trop important.
L'obtention de ces paramètres spatiaux permet d'obtenir la reconstruction de bonne qualité du signal multicanal.
De la même façon que pour le procédé de codage, les paramètres décodés et mémorisés d'une trame précédente correspondent aux paramètres des premières sous- bandes de fréquence de la bande de fréquence de décodage et les paramètres décodés de la trame courante correspondent aux paramètres des dernières sous-bandes de fréquences obtenues par découpage ou vice versa.
L'invention se rapporte également à un codeur mettant en œuvre le procédé de codage comportant un module de codage (304) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal. Le codeur est tel qu'il comporte en outre:
- un module d'obtention, par trame de longueur prédéterminée, de paramètres d'information spatiale du signal multicanal;
- un module de division des paramètres d'information spatiale en une pluralité de blocs de paramètres;
- un module de sélection d'un bloc de paramètres en fonction de l'indice de la trame courante; - un module de codage du bloc de paramètres sélectionné pour la trame courante.
L'invention se rapporte aussi à un décodeur mettant en œuvre le procédé de décodage et comportant un module de décodage d'un signal issu d'un matriçage de réduction de canaux du signal multicanal. Le décodeur comporte en outre:
- un module de décodage de paramètres d'information spatiale reçus pour une trame courante de longueur prédéterminée de signal décodé;
- un espace de stockage pour mémoriser des paramètres décodés pour la trame courante;
- un module d'obtention des paramètres décodés et mémorisés d'au moins une trame précédente et d'association de ces paramètres à ceux décodés pour la trame courante;
- un module de reconstruction du signal multicanal à partir du signal décodé et de l'association de paramètres obtenus pour la trame courante.
Elle se rapporte aussi à un programme informatique comprenant des instructions de code pour la mise en œuvre des étapes du procédé de codage tel que décrit et à un programme informatique comprenant des instructions de code pour la mise en œuvre des étapes d'un procédé de décodage tel que décrit, lorsque celles-ci sont exécutées par un processeur.
L'invention se rapporte enfin à un moyen de stockage lisible par un processeur mémorisant un programme informatique tel que décrit.
D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels:
- la figure 1 illustre un codeur mettant en œuvre un codage paramétrique connu de l'état de l'art et précédemment décrit;
- la figure 2 illustre un décodeur mettant en œuvre un décodage paramétrique connu de l'état de l'art et précédemment décrit;
- la figure 3 illustre un codeur selon un mode de réalisation de l'invention, mettant en œuvre un procédé de codage selon un mode de réalisation de l'invention; - la figure 4 illustre un décodeur selon un mode de réalisation de l'invention, mettant en œuvre un procédé de décodage selon un mode de réalisation de l'invention;
- la figure 5 illustre la division d'un signal audio numérique en trames dans un codeur mettant en œuvre un procédé de codage selon un mode de réalisation de l'invention;
- la figure 6 illustre un procédé de codage et un codeur selon un autre mode de réalisation de l'invention; et
- les figures 7a et 7b illustrent respectivement un dispositif apte à mettre en œuvre le procédé de codage et le procédé de décodage selon un mode de réalisation de l'invention.
En référence à la figure 3, un premier mode de réalisation d'un codeur de signaux stéréo mettant en œuvre un procédé de codage selon un premier mode de réalisation est maintenant décrit.
Ce codeur stéréo paramétrique opère en bande élargie avec des signaux stéréo échantillonnés à 16 kHz avec des trames de 5 ms. Chaque canal (L et R) est d'abord pré-filtré par un filtre passe-haut (HPF pour High Pass Filter en anglais) éliminant les composantes en dessous 50 Hz (blocs 301 et 302). Ensuite un signal mono (M) est calculé par le bloc 303, dont un exemple de réalisation est donné sous la forme:
M(n) = ^(L '(n) + R '(n))
Ce signal est codé (bloc 304) par un codeur de type G.722, tel que décrit par exemple dans la recommendation UIT-T G.722, 7 kHz audio-coding within 64 kbit/s, Nov. 1988..
Le retard introduit dans le codage de type G.722 est de 22 échantillons à 16 kHz. Les canaux L et R sont alignés dans le temps (blocs 305 et 308) avec un retard de T = 22 échantillons et analysés en fréquentiel par transformée, par exemple par transformée en Fourier discrète avec fenêtrage sinusoïdal à recouvrement qui dans l'exemple ici est de 50% (blocs 306, 307 et 309, 310). Chaque fenêtre couvre ainsi 2 trames de 5 ms soit 10 ms (160 échantillons).
La division du signal en trames est définie en référence à la figure 5. Cette figure illustre le fait que la fenêtre d'analyse (en trait plein) de 10 ms couvre la trame courante d'indice t et la trame future d'indice t+1 et le fait qu'un recouvrement de 50% est utilisé entre la fenêtre de la trame courante et la fenêtre (en trait pointillé) de la trame précédente.
La prise en compte de la trame future induit donc un retard algorithmique supplémentaire de 5 ms au codeur.
Pour la trame t, les spectres obtenus, L[t, j] et R [ , ./] (j=0.. 9), en sortie des blocs 307 et 310 de la figure 3, comprennent 80 échantillons complexes, avec une résolution de 100 Hz par raie fréquentielle.
Le bloc 31 1 d'extraction de paramètres d'informations spatiales est maintenant détaillé.
Celui-ci comprend, dans le cas du traitement dans le domaine fréquentiel, un premier module 313 de découpage des spectres L[t, j] et ? [ , ./ ' ] en un nombre prédéterminé de sous-bandes de fréquence, par exemple ici en 20 sous-bandes suivant l'échelle définie ci-dessous:
{ B(k) } =o,..,2o = [0, 1, 2, 3, 4, 5, 6, 7, 9, 1 1 , 13, 16, 19, 23, 27, 31 , 37, 44, 52, 61, 80]
Cette échelle délimite (en nombre de coefficients de Fourier) les sous- bandes fréquentielles d'indice k - 0 à 19. Par exemple la première sous-bande (k=0) va du coefficient B(k)=0 à B(k+l)-l = 0; elle est donc réduite à un seul coefficient ( 100 Hz).
De même la dernière sous-bande (k=l9) va du coefficient B(k)=6 l h B(k+l )-
1 = 79, elle comprend 19 coefficients (1900 Hz).
Le module 314 comprend des moyens d'obtention des paramètres d'informations spatiales du signal stéréo.
Par exemple, les paramètres obtenus sont les paramètres de différence d'intensité intercanal, ICLD. Pour chaque trame d'indice t, l'ICLD de la sous-bande k=0,...,19 est calculé suivant l'équation:
ICLD [/, Â:] = 10.1og dB (3)
où al[t,k] et a R 2 [t,k\ représentent respectivement l'énergie du canal gauche
(L) et du canal droit (R).
Dans un mode de réalisation particulier, ces énergies sont calculées comme suit:
Cette formule revient à combiner l'énergie de 2 trames successives, ce qui correspond à un support temporel de 10 ms (15 ms si l'on compte le support temporel effectif de deux fenêtres successives).
Le module 314 produit donc une série de paramètres ICLD définis précédemment.
Ces paramètres ICLD sont divisés dans le module 315 de division, en plusieurs blocs. Dans le mode de réalisation illustré ici, les paramètres sont divisés en deux blocs suivant les deux parties suivantes: {lCLD i,fcl] et { ICLD [f, A:l]
La division des paramètres ICLD en blocs contigus permet d'effectuer un codage différentiel des indices de quantification scalaire.
Le module 316 effectue ensuite une sélection (St.) d'un bloc à coder en fonction d'indice de la trame courante à coder.
Dans l'exemple décrit ici, pour les trames t d'indice pair, le bloc { lCLD [i, £]) t=0 g est codé en 312 et transmis, pour les trames r d'indice impair, le bloc
{ lCLD [i, À: ]} i=io est codé en 312 et transmis.
Le codage de ces blocs en 312 s'effectue par exemple par quantification scalaire non uniforme.
Ainsi, le codage d'un bloc de 10 ICLD est réalisé avec: • 5 bits pour le premier paramètre ICLD,
• 4 bits pour les 8 paramètres ICLD suivants,
• 3 bits pour le dernier (dixième) paramètre ICLD.
Un exemple plus détaillé de réalisation est par exemple comme ci-dessous:
Pour la table de quantification:
tab_ild_q5[31] = {-50, -45, -40, -35, -30, -25, -22, -19, -16, -13, -10, -8, -6, - 4, -2, 0, 2, 4, 6, 8, 10, 13, 16, 19, 22, 25, 30, 35, 40, 45, 50} la quantification à 5 bits de ICLD[t,k] consiste à trouver l'indice de quantification i tel que
i = arg minj=0...30| ICLD[t,k] - tab_ild_q5[j]| A 2 De même pour la table de quantification:
tab_ild_q4[15] = {-16, -13, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 13, 16} la quantification à 4 bits de ICLD[t,k] consiste à trouver l'indice de quantification i tel que
i = arg minj=0...15 | ICLD[t,k] - tab_ild_q4|j]| A 2 Enfin pour la table de quantification tab_ild_q3[7] = { -16, -8, -4, 0, 4, 8, 16 } la quantification à 3 bits de ICLD[t,k] consiste à trouver l'indice de quantification tel que
i = arg minj=0...15 | ICLD[t,k] - tab_ild_q3[jJ| A 2
Au total 5 + 8x4 +3 = 40 bits sont donc nécessaires pour le codage d'un bloc de 10 ICLD. La trame étant de 5 ms, on obtient donc 40 bits / 5 ms = 8 kbit/s comme débit supplémentaire pour l'extension de codage stéréo.
Ce débit n'est donc pas trop important et suffit pour transmettre de façon efficace les paramètres stéréo.
Deux trames successives suffisent dans cet exemple de réalisation, pour obtenir les paramètres d'informations spatiales du signal multicanal, la longueur de deux trames étant la plupart du temps la longueur d'une fenêtre d'analyse pour une transformation fréquentielle à recouvrement de 50%. Dans une variante, une fenêtre plus courte de recouvrement pourrait être utilisée pour réduire le retard introduit.
Ainsi, le codeur décrit en référence à la figure 3 met en œuvre un procédé de codage paramétrique d'un signal audionumérique multicanal comportant une étape de codage (G.722 Cod) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal. Le procédé comporte en outre les étapes suivantes:
- obtention (Obt.), par trame de longueur prédéterminée, de paramètres d'information spatiale du signal multicanal;
- division (Div.) des paramètres d'information spatiale en une pluralité de blocs de paramètres;
- sélection (St.) d'un bloc de paramètres en fonction de l'indice de la trame courante;
- codage (Q) du bloc de paramètres sélectionné pour la trame courante.
Dans le mode de réalisation décrit ci-dessus, on se situait dans le contexte d'un codeur en bande élargie fonctionnant avec une fréquence d'échantillonnage de 16 kHz et une découpe en sous-bande particulière.
Dans un autre mode de réalisation possible, le codeur peut opérer à d'autres fréquences (comme 32 kHz) et avec une découpe en sous-bandes différente.
On peut également exploiter le fait que le paramètre ICLD [i, jt] pour k=0 peut être négligé. Son calcul et donc son codage peuvent être évités. Dans ce cas le codage des paramètres ICLD devient:
- pour les trames d'indice t pair: codage d'un bloc de 9 paramètres { lCLD j/. λ:]}^ par quantification scalaire non-uniforme avec:
• 5 bits pour le premier paramètre ICLD [Î,£] avec fc=l
• 4 bits pour les 8 paramètres ICLD suivants
- pour les trames d'indice t impair: codage d'un bloc de 10 paramètres {lCLD[f, À: ]} t comme présenté précédemment
• 5 bits pour le premier paramètre ICLD, • 4 bits pour les 8 paramètres ICLD suivants,
• 3 bits pour le dernier (dixième) paramètre ICLD.
On utilise ainsi, dans ce mode de réalisation, 37 bits pour les trames d'indice t pair et 40 bits pour les trames d'indices t impair.
De même, dans une variante de réalisation, au lieu de diviser les paramètres
ICLD en blocs contigus, on peut diviser ces paramètres différemment, par exemple en entrelacement pour obtenir 2 parties: {lCLD [r, 2À:]}^ et { lCLD [f, 2£ + l]} t=Q .
A noter que le procédé de codage ainsi décrit se généralise facilement au cas où les paramètres sont divisés en plus de 2 blocs. Dans une variante de réalisation, les 20 paramètres ICLD sont divisés en 4 blocs:
{ lCLD[U]} t=lJ 19 .
Le codage des paramètres ICLD est alors réparti sur 4 trames successives avec mémorisation des paramètres décodés dans les trames précédentes lors du décodage. Le calcul des ICLD doit alors être modifié afin d'inclure plus de 2 trames dans le calcul des énergies [t, k] .
Dans cette variante de réalisation, le codage des paramètres ICLD peut alors utiliser l'allocation suivante:
• 5 bits pour le premier paramètre ICLD
· 4 bits pour les 4 paramètres ICLD suivants
avec un total de 21 bits par trame. Le débit est donc plus faible encore que dans le mode de réalisation précédent, la contrepartie étant que les paramètres ICLD sont remis à jour dans au moins un bloc toutes les 20 ms au lieu de toutes les 10 ms. Pour certains paramètres stéréo et suivant le type de signal, cette variante peut cependant introduire des défauts de spatialisation audible.
Cependant l'intérêt de transmettre les paramètres stéréo ou spatiaux à un rythme plus faible que celui des trames est toujours grand. On exploite ainsi la perception auditive imparfaite des variations énergétiques intercanal. Enfin le procédé de codage ainsi décrit s'applique au codage d'autres paramètres que le paramètre ICLD. Par exemple le paramètre de cohérence (ICC) peut être calculé et transmis de façon sélective de manière similaire à l'ICLD.
Les deux paramètres peuvent également être calculés et codés selon le procédé de codage décrit précédemment.
La figure 4 illustre un décodeur dans un mode de réalisation de l'invention ainsi que le procédé de décodage qu'il met en œuvre.
La partie du train binaire scalable en débit et reçu du codeur G.722 est démultiplexée et décodée par un décodeur de type G.722 (bloc 401) au mode de 56 ou 64 kbit/s. Le signal synthétisé obtenu correspond au signal mono M (n) en l'absence d'erreurs de transmission.
Une analyse par transformée de Fourier discrète à court-terme avec le même fenêtrage qu'au codeur est réalisée surM(n) (blocs 402 et 403) pour obtenir le spectre M[j] .
La partie du train binaire associée à l'extension stéréo est aussi démultiplexée au bloc 404.
Le fonctionnement du bloc 405 de synthèse est maintenant détaillé.
Pour les trames t d'indice pair, on décode dans le module 404 un premier bloc de paramètres |lCLD q [f,*]] 9 et on mémorise dans le module 412 ces paramètres décodés. Pour les trames / d'indice impair on décode dans le module 404 un deuxième bloc de paramètres { ICLD q [f,£]}^ ^ et on mémorise dans le module
412 ces paramètres décodés.
Un exemple plus détaillé de réalisation est par exemple comme ci-dessous:
Pour la table de quantification:
tab_ild_q5[31] = { -50, -45, -40, -35, -30, -25, -22, -19, -16, -13, -10, -8, -6, - 4, -2, 0, 2, 4, 6, 8, 10, 13, 16, 19, 22, 25, 30, 35, 40, 45, 50} le décodage d'un indice à 5 bits consiste à synthétiser le paramètre ICLD 4 [t,k| comme
ICLD q [t,kJ = tab_ild_q5(i) De même pour la table de quantification:
tab_ild_q4[ 15] = { - 16, - 13, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 13, 16 } le décodage d'un indice i à 4 bits consiste à synthétiser le paramètre ICLD q [t,k] comme
ICLD q [t,kJ = tab_ild_q4(i)
Enfin pour la table de quantification tab_ild_q3[7] = { - 16, -8, -4, 0, 4, 8, 16 } le décodage d'un indice à 3 bits consiste à synthétiser le paramètre ICLD q [t,k] comme
ICLD q [t,k] = tab_ild_q3(i)
Dans les trames d'indice pair, on utilise alors dans le module la partie manquante des paramètres, les valeurs mémorisées jlCLD q [t -
la trame précédente, soit: ICLD q [i, & ] = ICLD q [î - 1, £ ] pour £=10...19. De façon similaire, dans les trames d'indice impair, on utilise pour la partie manquante |lCLD q [f - les valeurs mémorisées dans la trame précédente.
Les paramètres pour chacune des bandes de fréquences sont ainsi obtenus. Les spectres des canaux gauche et droit sont reconstruits par le module de synthèse 414 en appliquant les paramètres jlCLD q [/ - l, *]J ainsi décodés par sous-bande. Cette synthèse est réalisée par exemple comme suit:
rL[j] = Cl [î, k].M[jl
= B(k)...B(k + l) - l (5)
R[j] = c 2 [t, k]M[j]
avec
ou
c[tM = Q ,cw[,Mno A noter que le calcul des facteurs d'échelle ci-dessus est donné à titre d'exemple. D'autres moyens d'expression des facteurs d'échelle existent et peuvent être mis en œuvre pour la présente invention.
Les canaux gauche et droit L(n) et R(n) sont reconstruits par transformée de Fourier discrète inverse (blocs 406 et 409) des spectres respectifs L[j] et R[j] et addition-recouvrement (blocs 408 et 411) avec fenêtrage sinusoïdal (blocs 407 et 410).
Ainsi, le décodeur décrit en référence à la figure 4, dans le mode particulier de réalisation au décodage de signaux stéréo, met en œuvre un procédé de décodage paramétrique d'un signal audionumérique multicanal comportant une étape de décodage (G.722 Dec) d'un signal issu d'un matriçage de réduction de canaux du signal multicanal. Le procédé comporte en outre les étapes suivantes:
- décodage (Q "1 ) de paramètres d'information spatiale reçus pour une trame courante de longueur prédéterminée de signal décodé;
- mémorisation (Mem) des paramètres décodés pour la trame courante;
- obtention (Comp.P) des paramètres décodés et mémorisés d'au moins une trame précédente et association de ces paramètres à ceux décodés pour la trame courante;
- reconstruction (Synth.) du signal multicanal à partir du signal décodé et de l'association de paramètres obtenus pour la trame courante.
Dans le cas d'une division en plus de deux blocs des paramètres d'informations spatiales, par exemple en 4 blocs comme dans une variante de réalisation décrite précédemment, on obtient tous les blocs de paramètres décodés pour 4 trames décodées.
Le débit de l'extension stéréo est donc réduit et l'obtention de ces paramètres permet de reconstruire un signal stéréo de bonne qualité.
On peut aussi noter que des techniques alternatives au codage des paramètres (ICLD, ICPD, ICC) peuvent être adoptées pour mettre œuvre le procédé de codage selon l'invention. Ainsi dans une variante de réalisation, le module 314 du bloc d'extraction de paramètres de la figure 3 diffère.
Ce module dans ce mode de réalisation permet d'obtenir d'autres paramètres stéréo en appliquant une analyse en composante principale (ACP) comme celle décrite dans l'article de Manuel Briand, David Virette et Nadine Martin intitulé "Parametric coding of stereo audio based on principal component analysis" paru dans la conférence DAFX, 1991.
Ainsi, une analyse en composante principale est effectuée par sous-bandes. Les canaux gauche et droit ainsi analysés sont ensuite modifiés par rotation afin d'obtenir un composant principal et un composant secondaire qualifié d'ambiance. L'analyse stéréo produit, pour chaque sous-bande, un paramètre d'angle de rotation ( Θ) et un ratio d'énergie entre le composant principal et le signal d'ambiance {PCAR qui signifie Principal Component to Ambience energy Ratio).
Les paramètres stéréo sont alors constitués du paramètre d'angle de rotation et du ratio d'énergie ( Θ et PCAR).
La figure 6 illustre un autre mode de réalisation d'un codeur selon l'invention.
Par rapport au codeur de la figure 3, c'est ici le bloc 303 de matriçage ou "downmix" qui diffère. Dans l'exemple de la figure 3, l'opération de "downmix" a l'avantage d'être instantanée et de complexité minimale.
Cependant, cette opération ne permet pas nécessairement une conservation de l'énergie. Une amélioration de cette opération de "downmix" est possible dans le domaine temporel, par exemple avec un calcul de la forme M (n) = ,L(n) + w 2 R(n) et des poids w l et w 2 adaptatifs, ou encore en fréquentiel comme représenté ici en référence à la figure 6.
L'opération de "downmix" est ici constituée des blocs 603a, 603b, 603c et 603d pour le passage dans le domaine fréquentiel.
Le calcul du signal mono s'effectue dans le bloc 603e de "downmix" dans lequel le signal est calculé dans le domaine fréquentiel par la formule suivante:
où|.| représente l'amplitude (module complexe) et Z(.) la phase (argument complexe).
Les blocs 603f, 603g et 603h permettent de ramener le signal mono dans le domaine temporel afin d'être codé par le bloc 304 comme pour le codeur illustré en figure 3.
Un décalage de T' = 80+T échantillons est alors obtenu, soit un décalage de 80+80+22 = 182 échantillons.
Ce décalage permet de synchroniser les trames temporelles des canaux gauche/droit et ceux du signal mono décodé.
L'invention a été décrite ici dans le cas d'un codeur/décodeur G.722. elle peut bien évidemment s'appliquer dans le cas d'un codeur G.722 modifié, par exemple incluant des mécanismes de réduction de bruit ("noise feedback" en anglais) ou incluant une extension scalable de G.722 avec informations supplémentaires. L'invention peut également s'appliquer dans le cas d'un autre codeur mono que celui de type G.722 comme par exemple un codeur de type G.711.1. Dans ce dernier cas, le retard T doit être ajusté pour prendre en compte le retard du codeur G.711.1.
De même, l'analyse temps-fréquence du mode de réalisation décrit en référence à la figure 3 pourrait être remplacée suivant différentes variantes:
- un autre fenêtrage que le fenêtrage sinusoïdal pourrait être utilisé,
- un autre recouvrement que le recouvrement à 50% entre fenêtres successives pourrait être utilisé
- une autre transformée fréquentielle que la transformée de Fourier, par exemple la transformée en cosinus discret modifiée (MDCT en anglais) pourrait être utilisée.
Les modes de réalisation décrit précédemment traitaient du cas d'un signal multicanal de type signal stéréo, la réalisation de l'invention s'étend également au cas plus général du codage de signaux multicanaux (avec plus de 2 canaux audio) à partir d'un "downmix" mono ou même stéréo. Dans ce cas le codage de l'information spatiale implique le codage et la transmission de paramètres d'information spatiale. C'est par exemple le cas de signaux à 5.1 canaux comprenant un canal gauche (L), droit (R), centre (C), arrière gauche (Ls pour Left surround), arrière droit (Rs pour Right surround), et subwoofer (LFE pour Low Frequency Effects). Les paramètres d'information spatiale du signal multicanal prennent alors en compte les différences ou les cohérences entre les différents canaux.
Les codeurs et décodeurs tels que décrit en référence aux figures 3, 4 et 6 peuvent être intégrés à un équipement multimédia de type décodeur de salon, ordinateur ou encore équipement de communication tel qu'un téléphone mobile ou agenda électronique personnel.
La figure 7a représente un exemple d'un tel équipement multimédia ou dispositif de codage comportant un codeur selon l'invention. Ce dispositif comporte un processeur PROC coopérant avec un bloc mémoire BM comportant une mémoire de stockage et/ou de travail MEM.
Le bloc mémoire peut avantageusement comporter un programme informatique comportant des instructions de code pour la mise en œuvre des étapes du procédé de codage au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes:
- d'obtention, par trame de longueur prédéterminée, de paramètres d'information spatiale du signal multicanal;
- de division des paramètres d'information spatiale en une pluralité de blocs de paramètres;
- de sélection d'un bloc de paramètres en fonction de l'indice de la trame courante;
- de codage du bloc de paramètres sélectionné pour la trame courante.
Typiquement, la description de la figure 3 reprend les étapes d'un algorithme d'un tel programme informatique. Le programme informatique peut également être stocké sur un support mémoire lisible par un lecteur du dispositif ou téléchargeable dans l'espace mémoire de l'équipement. Le dispositif comporte un module d'entrée apte à recevoir un signal multicanal S m représentant une scène sonore, soit par un réseau de communication, soit par lecture d'un contenu stocké sur un support de stockage. Cet équipement multimédia peut également comporter des moyens de capture d'un tel signal multicanal.
Le dispositif comporte un module de sortie apte à transmettre les paramètres d'informations spatiales codées P c et un signal somme Ss issus du codage du signal multicanal.
De la même façon, la figure 7b illustre un exemple d'équipement multimédia ou dispositif de décodage comportant un décodeur selon l'invention.
Ce dispositif comporte un processeur PROC coopérant avec un bloc mémoire BM comportant une mémoire de stockage et/ou de travail MEM.
Le bloc mémoire peut avantageusement comporter un programme informatique comportant des instructions de code pour la mise en œuvre des étapes du procédé de décodage au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes de:
- décodage de paramètres d'information spatiale reçus pour une trame courante de longueur prédéterminée de signal décodé;
- mémorisation des paramètres décodés pour la trame courante;
- obtention des paramètres décodés et mémorisés d'au moins une trame précédente et association de ces paramètres à ceux décodés pour la trame courante;
- reconstruction du signal multicanal à partir du signal décodé et de l'association de paramètres obtenus pour la trame courante.
Typiquement, la description de la figure 4 reprend les étapes d'un algorithme d'un tel programme informatique. Le programme informatique peut également être stocké sur un support mémoire lisible par un lecteur du dispositif ou téléchargeable dans l'espace mémoire de l'équipement.
Le dispositif comporte un module d'entrée apte à recevoir les paramètres d'information spatiale codés P c et un signal somme S s provenant par exemple d'un réseau de communication. Ces signaux d'entrée peuvent provenir d'une lecture sur un support de stockage.
Le dispositif comporte un module de sortie apte à transmettre un signal multicanal décodé par le procédé de décodage mis en œuvre par l'équipement.
Cet équipement multimédia peut également comporter des moyens de restitution de type haut-parleur ou des moyens de communication apte à transmettre ce signal multi-canal.
Bien évidemment, un tel équipement multimédia peut comporter à la fois le codeur et le décodeur selon l'invention. Le signal d'entrée étant alors le signal multicanal original et le signal de sortie, le signal multicanal décodé.
Next Patent: OPTIMIZED PARAMETRIC STEREO DECODING
