Brevet FR2980009A1 — publié le 20130315

Calcul optimisé d'une transformée de type MDCT La présente invention se rapporte à des transformations temps-fréquence de signal numérique. Elle se rapporte plus particulièrement aux transformations de type MDCT (pour "Modified Discrete Cosine Transform" en anglais) utilisant des fenêtres d'analyse ou de synthèse de forme sinusoïdale. La transformée de type MDCT, notée dans la suite TMDCT, est une transformée de taille 2MxM (2M échantillons temporels en entrée fournissant M échantillons fréquentiels en sortie) très utilisée dans le codage audio perceptuel par exemple dans les codages normalisés MPEG AAC, ITU-T G.722.1, ITU-T G.729.1, ITU-T G.718, ITU-T G.719, ITU-T G.729.1 E, ITU- T G.718 B, ITU-T G.711.1, ITU-T G.711.1 D, ITU-T G.722 B, 3GPP-EVS, etc ... Il existe plusieurs manières de définir une transformation MDCT, dont les 2 plus utilisées sont comparables en termes de performance. On peut également inclure dans le terme « transformée », la transformée en elle-même et le fenêtrage associé, comme c'est le cas dans l'exemple suivant. Pour un signal d'entrée x(n), la transformée utilisée par exemple dans le codeur normalisé ITU-T G.722.1 est définie comme : 2M-1 2 r. z-(n+ 21g A cos r. 0.5) x(n) mdctl(m) = 1 - sin 0.5) -Tt- (n --M +0.5)(m+ ) n=0 M ) M 2 où 0 n Il existe donc un besoin de réduire la complexité de calcul d'une transformée de type MDCT et de restreindre l'espace mémoire nécessaire pour l'implémentation de ce type de transformée. La présente invention vient améliorer la situation. Elle propose à cet effet, un procédé de calcul d'une transformée temps-fréquence de type MDCT avec fenêtre d'analyse de forme sinusoïdale, à partir d'un signal numérique. Ce procédé est tel qu'il comporte les étapes suivantes: application au signal numérique, d'une transformée de Fourier avec fenêtre d'analyse rectangulaire; traitement par sous-bande de fréquence selon une matrice de traitement prédéterminée, des coefficients spectraux issus de la transformée de Fourier pour obtenir les coefficients spectraux de la transformée de type MDCT. Ainsi, le passage par une transformation de Fourier avec fenêtre d'analyse rectangulaire (fenêtre composée uniquement de zéros et de uns ne nécessitant pas de calcul supplémentaire), à appliquer au signal numérique, contrairement aux méthodes de l'état de l'art, permet de réduire en complexité le calcul de la transformée MDCT désirée et de restreindre les données à stocker en mémoire. Les coefficients MDCT obtenus suite à ce procédé correspondent précisément aux coefficients qui auraient pu être obtenus par une méthode classique de transformation MDCT avec fenêtrage sinusoïdal mais avec une complexité réduite et un espace mémoire restreint. De plus, le calcul de la transformée de Fourier peut être réutilisé à d'autres fins, par exemple pour analyser le signal et détecter un spectre creux ou encore calculer une courbe de masquage. Ceci ne rajoute donc pas de complexité supplémentaire, contrairement à l'état de l'art où il faut calculer à la fois une transformée MDCT et une transformée de Fourier. Les mêmes avantages se retrouvent pour le calcul d'une transformée inverse selon le procédé de calcul d'une transformée inverse temps-fréquence de type MDCT avec fenêtre de synthèse de forme sinusoïdale. Le procédé est tel qu'il comporte les étapes suivantes: traitement par sous-bande de fréquence selon une matrice de traitement prédéterminée, des coefficients spectraux d'une transformée de type MDCT; application d'une transformée de Fourier inverse avec fenêtre de synthèse rectangulaire pour obtenir un signal numérique. 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 des procédés définis ci-dessus. Dans un mode de réalisation avantageux, seule une partie des termes non nuls de la matrice de traitement est stockée en mémoire. La matrice prédéterminée comporte un grand nombre de termes nuls. Les termes non nuls de cette matrice sont concentrés sur deux diagonales. Seuls les termes non nuls sont donc à stocker pour mettre en oeuvre le procédé de calcul selon l'invention. De plus, la matrice de traitement prédéterminée respecte notamment une propriété de symétrie hermitienne et de symétrie selon l'axe du milieu des lignes de la matrice. Cette symétrie permet de ne stocker qu'un nombre réduit de termes de cette matrice de traitement , les termes non nuls qui ne sont pas stockés, sont déduits des termes non nuls stockés, par symétrie, ce qui diminue ainsi d'autant plus à la fois la complexité du calcul de cette transformée et l'espace mémoire requis pour le stockage des coefficients. Dans un mode particulier de réalisation, la transformée de type MDCT est une transformée de type MPEG ou de type MLT. La matrice de traitement pour ces types de MDCT respectent aussi des propriétés de symétrie qui permettent de ne stocker qu'un nombre restreints de termes. Cette liste de type de transformée n'est pas exhaustive et d'autres transformées peuvent être prévues pour mettre en oeuvre l'invention. Dans une application possible, le calcul de la transformée s'intègre dans un procédé de codage utilisant un traitement par transformée obtenu conformément au procédé de calcul de transformée tel que décrit. De même, le calcul de la transformée inverse s'intègre dans un procédé de décodage utilisant un traitement par transformée inverse obtenu conformément au procédé de calcul de transformée inverse tel que décrit. La présente invention vise également un dispositif de calcul d'une transformée temps-fréquence de type MDCT avec fenêtre d'analyse de forme sinusoïdale, à partir d'un signal numérique. Le dispositif est tel qu'il comporte: un module d'application au signal numérique, d'une transformée de Fourier avec fenêtre d'analyse rectangulaire; un module de traitement par sous-bande de fréquence selon une matrice de traitement prédéterminée, des coefficients spectraux issus de la transformée de Fourier pour obtenir les coefficients spectraux de la transformée de type MDCT. Ce dispositif présente les mêmes avantages que le procédé décrit précédemment, qu'il met en oeuvre. Elle vise également un codeur comprenant un dispositif de calcul d'une transformée et mettant en oeuvre le procédé de codage intégrant le calcul de la transformée. La présente invention vise également un dispositif de calcul d'une transformée inverse temps-fréquence de type MDCT avec fenêtre de synthèse de forme sinusoïdale. Le dispositif est tel qu'il comporte: un module de traitement par sous-bande de fréquence selon une matrice de traitement prédéterminée, des coefficients spectraux d'une transformée de type MDCT; un module d'application d'une transformée de Fourier inverse avec fenêtre de synthèse rectangulaire pour obtenir un signal numérique. Ce dispositif présente les mêmes avantages que le procédé décrit précédemment, qu'il met en oeuvre. Elle vise également un décodeur comprenant un dispositif de calcul d'une transformée inverse mettant en oeuvre le procédé de décodage intégrant le calcul de la transformée inverse. L'invention vise un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de calcul d'une transformée ou d'une transformée inverse tel que décrit, lorsque ces instructions sont exécutées par un processeur. Enfin l'invention se rapporte à un support de stockage, lisible par un processeur, intégré ou non au dispositif de calcul d'une transformée ou d'une transformée inverse, éventuellement amovible, mémorisant un programme informatique mettant en oeuvre un procédé de calcul d'une transformée ou d'une transformée inverse tel que décrit précédemment. 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 la représente sous forme de bloc diagramme, une méthode classique décrite précédemment, de calcul d'une transformée temps fréquence de type MDCT selon l'état de l'art; la figure lb représente sous forme de bloc diagramme, une méthode classique décrite précédemment, de calcul d'une transformée temps fréquence inverse de type MDCT selon l'état de l'art; la figure 2a représente sous forme d'organigramme le procédé de calcul d'une transformée de type MDCT selon un mode de réalisation de l'invention; la figure 2b représente sous forme d'organigramme le procédé de calcul d'une transformée inverse de type MDCT selon un mode de réalisation de l'invention; la figure 3 représente un codeur intégrant un dispositif de calcul d'une transformée de type MDCT selon un mode de réalisation de l'invention; la figure 4 représente un décodeur intégrant un dispositif de calcul d'une transformée inverse de type MDCT selon un mode de réalisation de l'invention; La figure 5 représente une matrice diagonale correspondant à un fenêtrage d'analyse de forme sinusoïdale pour le calcul de la matrice de traitement selon un mode de réalisation de l'invention; Les figures 6a et 6b illustrent respectivement une représentation d'un exemple de matrice de traitement pour le procédé de calcul d'une transformée et pour le procédé de calcul d'une transformée inverse selon l'invention;et La figure 7 représente un exemple de réalisation matérielle des dispositifs de calcul d'une transformée et de calcul d'une transformée inverse selon un mode de réalisation de l'invention. La figure 2a illustre les modules d'un dispositif de calcul d'une transformée de type MDCT selon l'invention ainsi que les étapes mis en oeuvre par le procédé de calcul d'une transformée MDCT. A partir d'un signal numérique x(T), le module 201 applique une étape E201 de transformée FFT avec fenêtre rectangulaire au signal pour donner des coefficients spectraux FFT XFFr(T). Ces coefficients spectraux sont ensuite traités en E202 par une matrice prédéterminée de traitement par sous-bande de fréquence, par le module de traitement 202 pour donner des coefficients spectraux MDCT XmixT(T) correspondant aux termes spectraux d'une transformée MDCT avec fenêtre de forme sinusoïdale. L'équation suivante est ainsi respectée: TmDcT - WMDCT = F- TFFT - WFFT (1) avec F la matrice de traitement en sous-bande de dimension Mx2M, WFFr-Id la fenêtre identité ou fenêtre rectangle, et WMDCT la matrice diagonale correspondant à la fenêtre sinus. Cette matrice diagonale de taille 2Mx2M est représentée en figure 5. On peut voir que les plus fortes valeurs des termes de cette matrice sont au milieu de cette diagonale. On remarque que la matrice résultante G de l'équation (1) (G-Trapu - WMDCT = F. TFFr) est une matrice à valeurs réelles car XmixT(T) = G. x(T) et les coefficients spectraux MDCT XmixT(T) et le signal numérique x(T) sont réels. Les matrices F et TFFr doivent aussi respecter cette propriété. Ainsi, sachant que TFFr est une matrice à symétrie hermitienne (propriété intrinsèque de la transformée de Fourier selon laquelle une ligne de TFFr à la fréquence k1 est le complexe conjugué de la ligne de TFFr à la fréquence -k1, qui se trouve en 2M-k1 dans la matrice TFFr: TFFT (2M-k1,n) = TFFT (k1,n)* pour 1 k1 M) de la matrice à partir de sa moitié gauche. D'autre part, et pour les mêmes raisons, on peut montrer que cette partie droite n'est pas utile dans le calcul de la multiplication par F, car on peut prendre en compte uniquement les fréquences positives (0 k1 M). En effet, soit un coefficient en sous-bande complexe f=Re(f)+j.Im(f) appliqué à un coefficient spectral X = Re(X)+j.Im(X), alors la somme des produits de ces coefficients et de leurs transposées donne le résultat r suivant : r = f.X + f*.X* = 2Re(f)Re(X) - 2Im(f)Im(X)= 2Re(f.X) (2) On montre ainsi qu'il n'est pas utile de prendre en compte dans le calcul les fréquences négatives des spectres, ni la partie droite de la matrice de traitement en sous-bandes, car il s'agit d'une information redondante.35 Par observation, on s'aperçoit que la matrice F, complexe, de dimensions Mx2M est relativement creuse (seuls 3 éléments sont non nuls dans la première et dans la dernière ligne et 4 éléments par ligne sont non nuls dans les autres lignes). En effet, dans la moitié gauche de la matrice, seules les diagonales 0 et 1 sont non nulles. En d'autres termes, la moitié gauche de la matrice F possède la propriété suivante: F(k2,k1) # 0 si k2 = k1 pour 0 En notant s(0) = c(0) = F(0,0) s(k) = 2Re(F(k, k)) ; 1 k M/2 c(k) 2Im(F(k, k)) ; 1 k M/2 alors le calcul des termes spectraux de la transformée MDCT s'obtiennent de la manière suivante: mdct2(k)=Re(XFFr(k))s(k) - Im(XFFr(k))c(k) + Re(XFFr(k+1))c(k+1) + Im(XFFr(k+1))s(k+1) pour 0 k Dans un mode de réalisation particulier, qui est un bon compromis entre complexité de calcul, besoin en espace mémoire de données et besoin en espace mémoire de programme, le calcul de cette transformée MDCT MPEG, dans un exemple d'implémentation logicielle en langage C peut s'exprimer de la façon suivante pour une taille 2M-320, avec s et c de taille 81 (cas de data ROM réduite): rfft(x, Xr, Xi, 320); /*fonction FFT réelle de 320 points*/ for(i=0; i Ensuite, une boucle sur M/2 points est effectuée, dans laquelle : L'expression Xr[i]s[i] - Xi[i]c[i], correspond à l'équation (2) pour la diagonale 0, l'expression Xr[i+1]c[i+1] + Xi[i+1]s[i+1] correspond à l'équation (2) pour la diagonale 1. La deuxième ligne de la boucle traduit la symétrie obtenue en prenant le complexe conjugué de la ligne précédente. Avec cette implémentation, d'un point de vue PROM, en dehors du calcul de la FFT, le calcul des coefficients MDCT nécessite le stockage de 17 instructions (1 opération pour la boucle "for", 6 additions/soustractions, 8 multiplications, 2 chargements de mémoire). A noter que les 6 additions/soustractions et 8 multiplications peuvent être remplacées par 8 opérations MAC (Multiplication-Accumulation) sur un processeur de type DSP (pour "Digital Signal processor" en anglais). La mémoire programmable de type PROM peut être encore réduite à 9 opérations (1 opération "for", 3 additions/soustractions, 4 multiplications, 1 chargement de mémoire) en augmentant la ROM (en doublant la taille des tableaux, sans profiter de la symétrie de ces tableaux). Dans cette variante s2 et c2 sont de taille 161 : for(i=0; i Le nombre d'instructions à stocker est donc restreint par rapport au nombre d'instructions dans l'état de l'art. De plus, le calcul de la FFT appliqué au signal numérique réel étant fait avec une fenêtre rectangulaire (fenêtre identité, qui ne nécessite en soi aucun calcul), ce calcul est simple à mettre en oeuvre. Le résultat de ce calcul de FFT peut être réutilisé pour d'autres fonctions que le calcul d'une transformée à des fins de codage, par exemple pour effectuer une analyse du signal numérique et calculer une courbe de masquage. Ainsi la même opération est exploitée pour deux actions différentes alors que dans l'état de l'art, à la fois le calcul de la transformée et le calcul d'une FFT sont effectués en parallèle lorsqu'une analyse du signal numérique est nécessaire. La complexité dans ce cas de figure est alors encore restreinte par le procédé selon l'invention. Ce calcul de transformée peut typiquement s'appliquer au codage de signal numérique. Dans un exemple de réalisation, un codeur de type G.729.1 est illustré en référence à la figure 3. Il comporte des modules MDCT mettant en oeuvre le procédé de calcul d'une transformée tel que décrit en référence à la figure 2a. Ainsi, dans cet exemple de réalisation, le signal d'entrée s(n) est d'abord décomposé en deux sous-bandes adjacentes par filtrage miroir QMF (pour "Quadrature Mirror Filter"). La première sous-bande ou sous-bande basse (de 0 à 4000Hz) est obtenue par le filtrage passe-bas L en 300 et décimation en 301 et la deuxième sous-bande ou bande haute (de 4000 à 8000 Hz) par filtrage passe-haut H en 302 et décimation en 303. La deuxième sous-bande ou bande haute est d'abord dépliée spectralement en 309 pour compenser le repliement dû au filtre passe-haut 302 combiné avec la décimation 303. Cette bande haute est ensuite pré-traitée par un filtre passe-bas 310 éliminant les composantes entre 7000 et 8000 Hz dans le filtre original. La première sous-bande est prétraitée par un filtre passe-haut en 304, éliminant les composantes en dessous de 50Hz avant codage par un codeur coeur de type CELP en 305. Le signal résiduel lié à l'erreur due au codage CELP est calculé par le module 306 pour obtenir le signal dLB(n) puis celui ci est pondéré perceptuellement par un module 307 comprenant un filtre de pondération perceptuelle pour obtenir le signal d'LB(n) dans le domaine temporel. Ce signal est traité par le dispositif de calcul de transformée de type MDCT décrit précédemment en référence à la figure 2a. Ainsi, une transformation FFT avec fenêtre rectangulaire est appliqué à ce signal pour obtenir des coefficients spectraux correspondants. Ces coefficients sont ensuite traités par une matrice de traitement prédéterminée telle que définie ci-dessus pour donner les coefficients spectraux DWLB(k) de la transformée MDCT. Ce même dispositif est également illustré en 311 pour transformer les signaux sFiB(n) de la bande haute en des coefficients spectraux MDCT SHB(k). Les spectres MDCT bande basse et bande haute sont codés dans le module 313 de codage par transformée TDAC. Une extension de bande en 312 est appliquée au signal de la bande haute. Les signaux issus des modules 305, 313 et 312 sont multiplexés et structurés en un train binaire hiérarchique par le module de multiplexage 314, pour être transmis. Ce codeur tel que décrit est bien entendu un exemple de réalisation. D'autres codeurs comportant un étage de codage par transformée peuvent bien évidemment intégrer les modules MDCT tels que décrits en figure 2a. Cet exemple n'est en rien limitatif. De manière analogue, le calcul d'une transformée inverse de type MDCT, par exemple dans le cadre d'un décodage de signal numérique, s'effectue avec les étapes inverse du procédé tel que décrit en référence à la figure 2a. Pour cela, la figure 2b illustre à la fois le dispositif de calcul de transformée inverse et les étapes du procédé de calcul de la transformée inverse selon un mode de réalisation de l'invention. A partir de coefficients spectraux issus d'une transformée MDCT reçus par exemple d'un codeur de signal numérique ou d'un dispositif de calcul de transformée, le dispositif de calcul de transformée inverse effectue par le module de traitement 211, l'étape E211 de traitement par sous-bande de fréquence de ces coefficients spectraux Ympo-(T) selon une matrice de traitement prédéterminée iF pour obtenir les coefficients YFFr(T). Le procédé effectue ensuite par le module 212, une étape E212 de transformée de Fourier inverse avec fenêtre de synthèse rectangulaire pour obtenir un signal numérique y(T) où l'indice (T) est le numéro de la trame. Comme expliqué pour le cas d'une transformée MDCT classique, ce signal y(T) de taille 2M ne correspond qu'en partie au signal d'entrée x(T). Pour obtenir la version décodée de la première moitié du signal x(T) (c'est-à-dire la trame numéro T-1) il faut faire l'opération « addition-recouvrement », c'est-à-dire additionner la première moitié du signal y(T) avec la deuxième moitié du signal y(T-1) de la trame précédente. De manière analogue à celle expliquée pour le calcul de la transformée, on peut exprimer la transformée inverse iMDCT (MDCT inverse) suivie d'un fenêtrage sinus (iWMDO-) à partir d'un filtrage en sous-bande iF suivi d'une transformée iFFT (FFT inverse). L'équation correspondante s'exprime ainsi: IWMDCT -iTmDcr = iWFFT -iTFFT - IF avec iF la matrice de traitement en sous-bande de dimension 2MxM, iWFFr-Id soit la fenêtre rectangle, et iWmpo- la matrice diagonale correspondant à la fenêtre sinus de synthèse. On peut en déduire iF par multiplication à gauche d'une FFT (iWFFr =WFrr =Id). On obtient ainsi: TFFT - WFFT. IWMDCT .iTmDcT = TFFT - WFFT. IWFFT .iTFFT IF soit IF = TFFr - IWMDCT -ii-MDCT Par observation, on s'aperçoit que la matrice iF, complexe, est relativement creuse (seuls 4 éléments par colonne sont non nuls à l'exception de la première et de la dernière colonne pour lesquels seuls 3 éléments sont non nuls). Une représentation de cette matrice de traitement iF est illustré en figure 6b, où on peut observer la valeur absolue des éléments de cette matrice. De la même façon que pour la matrice de traitement F, cette matrice de traitement iF ne comporte que peu de termes non nuls à stocker pour retrouver cette matrice de traitement. La symétrie observée sur cette matrice permet également de restreindre les données à stocker, celles-ci étant alors déduites facilement des données non nulles symétriques. L'espace mémoire nécessaire est donc optimisé. Les opérations effectuées par le procédé de calcul de la transformée inverse sont comme dans le cas du calcul de la transformée, réduites par rapport au calcul classique effectué dans l'état de l'art. La complexité est donc diminuée. Ce calcul de transformée inverse peut typiquement s'appliquer au décodage de signal numérique. Dans un exemple de réalisation, un décodeur de type G.729.1 est illustré en référence à la figure 4. Il comporte des modules MDCT-1 mettant en oeuvre le procédé de calcul d'une transformée inverse tel que décrit en référence à la figure 2b. Ainsi, ce décodeur comporte un démultiplexeur 400 qui reçoit le flux binaire obtenu par le codeur tel que décrit en référence à la figure 3. Le flux binaire des couches à 8 et 12 kbit/s est utilisé par le décodeur CELP en 401 pour générer un premier signal de synthèse dans la bande basse (de 0 à 4000 Hz). La portion du flux binaire associé à la couche à 14 kbits/s est décodée par le module 402 d'extension de bande et le signal obtenu dans la bande haute (entre 4000 et 7000 Hz) est transformé par MDCT en 403. Ce module MDCT peut également être celui tel que décrit en référence à la figure 2a. Le décodage TDAC effectué en 404 génère à partir du flux binaire associé aux débits de 14 à 32 kbit/s, un spectre reconstruit Dn(k) en bande basse et un spectre reconstruit .§'(k) en bande haute. Ces deux spectres sont traités par les modules respectifs 405 et 406 représentant chacun un dispositif de calcul de transformée inverse de type MDCT décrit précédemment en référence à la figure 2b, suivi par l'opération "addition-recouvrement". Ainsi, ces spectres sont traités par une matrice de traitement prédéterminée telle que définie précedemment en référence à la figure 2b et les signaux obtenus subissent une transformation FFT inverse avec fenêtre rectangulaire suivi par l'opération "addition-recouvrement" pour obtenir les signaux temporels respectifs éin(n) et SHB(n). Le signal c2n(n) est ajouté à la synthèse CELP par l'additionneur 408 après filtrage par un dispositif 407 de pondération perceptuelle inverse. Le résultat est ensuite post-filtré en 409. Le signal SHB(n) est replié spectralement en 415. Le signal de sortie en bande élargie est obtenu par l'intermédiaire d'un banc de filtre QMF de synthèse qui effectue les opérations de sur-échantillonnage en 410 et 412, de filtrage passe-bas en 411 et passe-haut en 413 et d'addition en 414. De la même façon que pour le codeur, le décodeur tel que décrit est un exemple de réalisation. D'autres décodeurs comportant un étage de décodage par transformée peuvent bien évidemment intégrer les modules MDCT-1 tels que décrits en figure 2b. Cet exemple n'est en rien limitatif. La figure 7 représente un exemple de réalisation matériel d'un dispositif de calcul de transformée ou d'un dispositif de calcul de transformée inverse selon l'invention. Ces dispositifs peuvent être intégrés comme modules logiciels dans des codeurs ou décodeurs de signaux numériques. Ce type de 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 oeuvre des étapes du procédé de calcul d'une transformée temps-fréquence de type MDCT au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes d'application au signal numérique, d'une transformée de Fourier avec fenêtre d'analyse rectangulaire et de traitement par sous-bande de fréquence selon une matrice de traitement prédéterminée, des coefficients spectraux issus de la transformée de Fourier pour obtenir les coefficients spectraux de la transformée de type MDCT. Typiquement, la description de la figure 2a 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 celui-ci. Dans le cas d'un dispositif de calcul d'une transformée inverse, le bloc mémoire peut avantageusement comporter un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de calcul d'une transformée inverse temps-fréquence de type MDCT au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes de traitement par sous-bande de fréquence selon une matrice de traitement prédéterminée, des coefficients spectraux de la transformée de type MDCT issue du codage du signal numérique et d'application d'une transformée de Fourier inverse avec fenêtre de synthèse rectangulaire pour obtenir un signal numérique décodé. Typiquement, la description de la figure 2b 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 celui-ci. La mémoire MEM enregistre une partie de termes non nuls de la matrice de traitement prédéterminée. Le processeur reconstruit alors la matrice de traitement à partir de ces termes stockés, afin de mettre en oeuvre les étapes des procédés de calcul. Un tel dispositif comporte un module d'entrée E apte à recevoir un signal numérique x(T) dans le cas d'un dispositif de calcul de transformée et des coefficients spectraux MDCT YMDCT(T) dans le cas d'un dispositif de calcul de transformée inverse. Le dispositif comporte un module de sortie S apte à transmettre les coefficients spectraux MDCT Xmpo-CD à un autre module de traitement ou de codage par exemple dans le cas d'un dispositif de calcul de transformée et à transmettre un signal numérique y (T) dans le cas d'un dispositif de calcul de transformée inverse. Dans un mode possible de réalisation, le dispositif ainsi décrit peut également comporter les fonctions de codage et/ou de décodage en plus des fonctions de calcul de transformée et/ou transformée inverse selon l'invention.15