Brevet FR2969805A1 — publié le 20120629

Codage bas retard alternant codage prédictif et codage par transformée La présente invention concerne le domaine du codage des signaux numériques. L'invention s'applique avantageusement au codage de sons présentant des alternances de parole et de musique. Pour coder efficacement les sons de parole, les techniques de type CELP 5 (« Code Excited Linear Prediction ») sont préconisées. Pour coder efficacement les sons musicaux, on préconise plutôt les techniques de codage par transformée. Les codeurs de type CELP sont des codeurs prédictifs. Ils ont pour but de modéliser la production de la parole à partir de divers éléments : une prédiction linéaire à court-terme pour modéliser le conduit vocal, une prédiction à long-terme pour modéliser 10 la vibration des cordes vocales en période voisée, et une excitation dérivée d'un dictionnaire fixe (bruit blanc, excitation algébrique) pour représenter l' "innovation" qui n'a pas pu être modélisée. Les codeurs par transformée les plus utilisés (codeur MPEG AAC ou ITU-T G.722.1 Annexe C par exemple) utilisent des transformées à échantillonnage critique afin 15 de compacter le signal dans le domaine transformé. On appelle « transformée à échantillonnage critique », une transformée pour laquelle le nombre de coefficients dans le domaine transformé est égal au nombre d'échantillons temporels analysés. Une solution pour coder efficacement un signal contenant ces deux types de contenu, consiste à sélectionner au cours du temps la meilleure technique. Cette solution a 20 notamment été préconisée par l'organisme de standardisation 3GPP (« 3rd Generation Partnership Project »), et une technique nommée AMR WB+ a été proposée. Cette technique est basée sur une technologie CELP de type AMR-WB, plus spécifiquement de type ACELP (pour " Algebraic Code Excited Linear Prediction" en Anglais) et un codage par transformée basé sur une transformée de Fourier à 25 recouvrement dans un modèle de type TCX (pour " Transform Coded eXcitation" en anglais). Le codage ACELP et le codage TCX sont tous les deux des techniques de type linéaire prédictif. I1 est à noter que le codec AMR-WB+ a été développé pour les services 3GPP PSS (pour "Packet Switched Streaming" en anglais), MBMS ( pour "Multimedia 30 Broadcast/Multicast Service" en anglais) et MMS (pour "Multimedia Messaging Service" en anglais), autrement dit pour des services de diffusion et stockage, sans contraintes fortes sur le retard algorithmique. Cette solution souffre d'une qualité insuffisante sur la musique. Cette insuffisance vient particulièrement du codage par transformée. En particulier, la transformée de Fourier à recouvrement n'est pas une transformation à échantillonnage critique, et de ce fait, elle est sous optimale. De plus, les fenêtres utilisées dans ce codeur ne sont pas optimales vis-à-vis de la concentration d'énergie : les formes fréquentielles de ces fenêtres quasi-rectangulaires sont sous-optimales. Une amélioration du codage AMR-WB+ combinée avec les principes du codage MPEG AAC (pour "Advanced Audio Coding" en anglais) est donnée par le codec MPEG USAC (pour "Unified Speech Audio Coding" en anglais), qui est encore en cours de développement à l'ISO/MPEG. Les applications visées par MPEG USAC ne sont pas conversationnelles, mais correspondent à des services de diffusion et stockage, sans contraintes fortes sur le retard algorithmique. La version initiale du codec USAC, appelée RMO (Reference Model 0), est décrite dans l'article de M. Neuendorf et al., A Novel Scheme for Low Bitrate Unified Speech and Audio Coding - MPEG RMO, 7-10 May 2009, 126th AES Convention. Ce codec RMO alterne entre plusieurs modes de codage: - Pour les signaux de type parole: modes LPD (pour "Linear Predictive Domain" en anglais) comprenant deux modes différents dérivés du 20 codage AMR-WB+: - Un mode ACELP - Un mode TCX appelé wLPT (pour "weighted Linear Predictive Transform" en anglais) utilisant une transformée de type MDCT (contrairement au codec AMR-WB+). 25 - Pour les signaux de type musique: mode FD (pour "Frequency Domain" en anglais) utilisant un codage par transformée MDCT (pour "Modified Discrete Cosine Transform" en anglais) de type MPEG AAC (pour "Advanced Audio Coding" en anglais) sur 1024 échantillons. Comparativement au codec AMR-WB+ les différences majeures apportées par le 30 codage USAC RMO pour la partie mono sont l'utilisation d'une transformée à décimation critique de type MDCT pour le codage par transformée et la quantification du spectre MDCT par quantification scalaire avec codage arithmétique. Il est à noter que la bande acoustique codée par les différents modes (LPD, FD) dépend du mode sélectionné, ce qui n'est pas le cas dans le codec AMR-WB+ où les modes ACELP et TCX opèrent à la même fréquence d'échantillonnage interne. De plus, la décision de mode dans le codec USAC RMO est réalisée en boucle ouverte (ou "open-loop" en anglais) pour chaque trame de 1024 échantillons. On rappelle qu'on appelle une décision en boucle fermée ("closed loop" en anglais) est effectuée en exécutant les différents modes de codage en parallèle et en choisissant a posteriori le mode qui donne le meilleur résultat selon un critère prédéfini. Dans le cas d'une décision en boucle ouverte la décision est prise a priori en fonction des données et des observations disponibles mais sans tester si cette décision est optimale ou non. Dans le codec USAC, les transitions entre modes LPD et FD sont cruciales pour assurer une qualité suffisante sans défaut de commutation, sachant que chaque mode (ACELP, TCX, FD) a une "signature" spécifique (en termes d'artefacts) et que les modes FD et LPD sont de nature différentes - le mode FD repose sur un codage par transformée dans le domaine du signal, tandis que les modes LPD utilisent un codage linéaire prédictif dans le domaine perceptuellement pondéré avec des mémoires de filtre à gérer correctement. La gestion des commutations intermodes dans le codec USAC RMO est détaillée dans l'article de J. Lecomte et al., "Efficient cross-fade windows for transitions between LPC-based and non-LPC based audio coding", 7-10 May 2009, 126th AES Convention. Comme expliqué dans cet article, la difficulté principale réside dans les transitions entre modes LPD vers FD et vice versa. On ne retient ici que le cas des transitions d'ACELP vers FD. Pour bien comprendre le fonctionnement, on rappelle ici le principe du codage par transformée MDCT au travers d'un exemple typique de réalisation. Au codeur la transformation MDCT se divise entre trois étapes: - Pondération du signal par une fenêtre appelé ici "fenêtre MDCT" de 25 longueur 2M - Repliement temporel (ou "time-domain aliasing" en anglais) pour former un bloc de longueur M - Transformation DCT (pour "Discrete Cosine Transform" en anglais) de longueur M 30 La fenêtre MDCT est divisée en 4 portions adjacentes de longueurs égales M/2, appelées "quarts". Le signal est multiplié par la fenêtre d'analyse puis les repliements sont effectués : le premier quart (fenêtré) est replié (c'est-à-dire inversé dans le temps et mis en recouvrement) sur le deuxième quart et le quatrième quart est replié sur le troisième. Plus précisément, le repliement d'un quart sur un autre est effectué de la façon suivante : Le premier échantillon du premier quart est additionné (ou soustrait) au dernier échantillon du deuxième quart, le deuxième échantillon du premier quart est additionné (ou soustrait) au avant-dernier échantillon du deuxième quart, et ainsi de suite jusqu'au dernier échantillon du premier quart qui est additionné (ou soustrait) au premier échantillon du deuxième quart. On obtient donc, à partir de 4 quarts, 2 quarts repliés où chaque échantillon est le résultat d'une combinaison linéaire de 2 échantillons du signal à coder. Cette combinaison linéaire est appelée repliement temporel. Ces 2 quarts repliés sont ensuite codés conjointement après transformation DCT. Pour la trame suivante on se décale d'une moitié de fenêtre (soit 50% de recouvrement), les troisième et quatrième quarts de la trame précédente deviennent alors le premier et deuxième quart de la trame courante. Après repliement, on envoie une deuxième combinaison linéaire des mêmes paires d'échantillons comme dans la trame précédente, 15 mais avec des poids différents. Au décodeur, après transformation DCT inverse on obtient donc la version décodée de ces signaux repliés. Deux trames consécutives contiennent le résultat de 2 repliements différents des mêmes quarts, c'est à dire pour chaque paire d'échantillons on a le résultat de 2 combinaisons linéaires avec des poids différents mais connus : un système 20 d'équation est donc résolu pour obtenir la version décodée du signal d'entrée, le repliement temporel peut être ainsi supprimé en utilisant 2 trames décodées consécutives. La résolution des systèmes d'équations mentionnées est en général faite par dépliement, multiplication par une fenêtre de synthèse judicieusement choisie puis addition-recouvrement des parties communes. Cette addition-recouvrement assure en 25 même temps la transition douce (sans discontinuité due aux erreurs de quantification) entre 2 trames décodées consécutives, en effet cette opération se comporte comme un fondu enchaîné. Quand la fenêtre pour le premier quart ou le quatrième quart est à zéro pour chaque échantillon, on parle d'une transformation MDCT sans repliement temporel dans cette partie de la fenêtre. Dans ce cas la transition douce n'est pas assurée par la 30 transformation MDCT, elle doit être faite par d'autres moyens comme par exemple un fondu enchaîné extérieur. Il est à noter que des variantes de mise en oeuvre de la transformation MDCT existent, en particulier sur la définition de la transformée DCT, sur la façon de replier temporellement le bloc à transformer (par exemple, on peut inverser les signes appliqués aux quarts repliés à gauche et droite, ou replier les deuxième et troisième quart sur respectivement les premiers et quatrième quarts), etc. Ces variantes ne changent pas le principe de l'analyse-synthèse MDCT avec la réduction du bloc d'échantillons par fenêtrage, repliement temporel puis transformation et enfin fenêtrage, repliement et addition-recouvrement. Dans le cas du codeur USAC RMO décrit dans l'article de Lecomte et al., la transition entre une trame codée par un codage ACELP et une trame codée par un codage FD, s'effectue de la façon suivante: Une fenêtre de transition pour le mode FD est utilisée avec un recouvrement à gauche de 128 échantillons, comme illustrée à la figure 1. Le repliement temporel sur cette zone de recouvrement est annulé en introduisant un repliement temporel "artificiel" à droite de la trame ACELP reconstruite. La fenêtre MDCT servant à la transition, a une taille de 2304 échantillons et la transformation DCT opère sur 1152 échantillons alors que normalement les trames du mode FD sont codées avec une fenêtre de taille de 2048 échantillons et une transformation DCT de 1024 échantillons. Ainsi la transformation MDCT du mode FD normal n'est pas directement utilisable pour la fenêtre de transition, le codeur doit intégrer également une version modifiée de cette transformation ce qui complexifie la mise en oeuvre de la transition pour le mode FD. Ces techniques de codage de l'état de l'art AMR-WB+ ou USAC ont des retards algorithmiques de l'ordre de 100 à 200 ms. Ces retards sont incompatibles avec des applications conversationnelles pour lesquelles le retard de codage est en général de l'ordre de 20-25 ms pour les codeurs de parole pour les applications mobiles (ex: GSM EFR, 3GPP AMR et AMR-WB) et de l'ordre de 40 ms pour les codeurs par transformée conversationnels pour la vidéoconférence (ex: UIT-T G.722.1 Annexe C et G.719). Il existe donc un besoin d'un codage alternant les techniques de codage prédictif et par transformée pour des applications de codage de sons présentant des alternances de parole et de musique avec une bonne qualité de codage à la fois de la parole et de la musique et un retard algorithmique compatible avec des applications conversationnelles, typiquement de l'ordre de 20 à 40 ms pour des trames de 20 ms. La présente invention vient améliorer la situation. A cet effet, la présente invention propose un procédé de codage d'un signal numérique, comportant les étapes de : - codage d'une trame précédente d'échantillons du signal numérique selon un codage prédictif ; - codage d'une trame courante d'échantillons du signal numérique selon un codage par transformée. Le procédé est tel qu'une première partie de la trame courante est codée par un codage prédictif restreint par rapport au codage prédictif de la trame précédente. 5 Ainsi, pour un codage alternant des codages de type prédictif et des codages par transformée, lors du passage d'une trame codée selon un codage prédictif et une trame codée selon un codage par transformée, une trame de transition est ainsi prévue. Le fait que la première partie de la trame courante est également codée par un codage prédictif 10 permet de récupérer des termes de repliement qu'il ne serait pas possible de récupérer uniquement par un codage par transformée puisque la mémoire du codage par transformée pour cette trame de transition n'est pas disponible, la trame précédente n'ayant pas été codée par transformée. Le fait d'utiliser de plus un codage prédictif restreint, permet de limiter l'impact 15 sur le débit de codage de cette partie. De plus, le codage de cette partie de trame n'induit pas de retard supplémentaire puisque cette première partie se situe au début de la trame de transition. Enfin, ce type de codage permet de rester avec une taille de fenêtre de pondération de longueur identique pour le codage par transformée que ce soit pour le 20 codage de la trame de transition ou pour le codage des autres trames codées par transformée. La complexité du procédé de codage en est donc réduite. 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. 25 Dans un mode de réalisation particulier, le codage prédictif restreint utilise un filtre de prédiction recopié de la trame précédente de codage prédictif. L'utilisation du codage par transformée est généralement sélectionné lorsque les segments codés sont quasi-stationnaires. Ainsi, le paramètre d'enveloppe spectrale du signal peut être réutilisé d'une trame à l'autre pour une durée d'une partie de la trame, par 30 exemple, une sous-trame, sans qu'il y ait un impact important sur la qualité du codage. L'utilisation du filtre de prédiction utilisé pour la trame précédente n'impacte donc pas la qualité du codage et permet de s'affranchir de bits supplémentaires pour la transmission de ses paramètres. Dans une variante de réalisation, le codage prédictif restreint utilise en outre une valeur décodée du pitch et/ou de son gain associé de la trame précédente de codage prédictif. Ces paramètres évoluent peu d'une trame à l'autre. L'utilisation de ces mêmes 5 paramètres d'une trame à l'autre impactera peu la qualité de codage et simplifiera d'autant plus le codage prédictif de la sous-trame. Dans une autre variante de réalisation, certains paramètres de codage prédictif utilisé pour le codage prédictif restreint sont quantifiés en mode différentiel par rapport aux paramètres décodés de la trame précédente de codage prédictif. 10 Ainsi, ceci permet de simplifier encore le codage prédictif de la sous-trame de transition. Selon un mode de réalisation particulier, le procédé comporte une étape d'obtention des signaux reconstruits issus des codages prédictif et par transformée de la première sous-trame de la trame courante et de combinaison par un fondu enchaîné de ces 15 signaux reconstruits. Ainsi, la transition de codage dans la trame courante est douce et n'induit pas d'artefacts gênants. Selon un mode de réalisation particulier, ledit fondu enchaîné des signaux reconstruits est réalisé sur une portion de la première partie de la trame courante en 20 fonction de la forme de la fenêtre de pondération du codage par transformée. Ceci, pour une meilleure adaptation du codage par transformée. Selon un mode de réalisation particulier, ledit fondu enchainé des signaux reconstruits est réalisé sur une portion de la première partie de la trame courante, ladite portion de composantes par transformée ne contenant pas de repliement temporel. 25 Ceci permet de réaliser une reconstruction parfaite des signaux en l'absence d'erreur de quantification, dans le cas où le signal reconstruit issus du codage par transformée de la première partie de la trame courante ne comporte pas de repliement temporel. Dans un mode particulier de réalisation, pour un codage à faible retard, le 30 codage par transformée utilise une fenêtre de pondération comportant un nombre choisi de coefficients de pondération successifs de valeur nulle en fin et en début de fenêtre. Dans un autre mode particulier de réalisation, pour améliorer le codage à faible retard, le codage par transformée utilise une fenêtre de pondération asymétrique comportant un nombre choisi de coefficients de pondération successifs de valeur nulle en au moins une extrémité de la fenêtre. La présente invention se rapporte également à un procédé de décodage d'un signal numérique, comportant les étapes de : - décodage prédictif d'une trame précédente d'échantillons du signal numérique reçue et codée selon un codage prédictif ; - décodage par transformée inverse d'une trame courante d'échantillons du signal numérique reçue et codée selon un codage par transformée; le procédé est tel qu'il comporte en outre une étape de décodage par un 10 décodage prédictif restreint par rapport au décodage prédictif de la trame précédente d'une première partie de la trame courante. Le procédé de décodage est le pendant du procédé de codage et apporte les mêmes avantages que ceux décrits pour le procédé de codage. Ainsi, dans un mode particulier de réalisation, le procédé de décodage comporte 15 une étape de combinaison par un fondu enchaîné des signaux décodés par transformée inverse et par décodage prédictif restreint pour au moins une portion de la première partie de la trame courante. Selon un mode privilégié, le décodage prédictif restreint utilise un filtre de 20 prédiction décodé et utilisé par le décodage prédictif de la trame précédente. Dans une variante de réalisation, le décodage prédictif restreint utilise en outre une valeur décodée du pitch et/ou de son gain associé du décodage prédictif de la trame précédente. La présente invention se rapporte également à un codeur de signal numérique, 25 comportant: - un module de codage prédictif pour coder une trame précédente d'échantillons du signal numérique; - un module de codage par transformée pour coder une trame courante d'échantillons du signal numérique. Le codeur comporte en outre un module de codage 30 prédictif restreint par rapport au codage prédictif de la trame précédente pour coder une première partie de la trame courante. De même l'invention se rapporte à un décodeur de signal numérique, comportant: - un module de décodage prédictif pour décoder une trame précédente d'échantillons du signal numérique reçue et codée selon un codage prédictif ; - un module de décodage par transformée inverse pour décoder une trame courante d'échantillons du signal numérique reçue et codée selon un codage par transformée. Le décodeur est tel qu'il comporte en outre un module de décodage prédictif restreint par rapport au décodage prédictif de la trame précédente pour décoder une première partie de la trame courante. Enfin l'invention se rapporte à un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de codage tel que décrit précédemment et/ou de décodage tel que décrit précédemment, lorsque ces instructions sont exécutées par un processeur. L'invention se rapporte aussi à un moyen de stockage, lisible par un processeur, intégré ou non au codeur ou au décodeur, éventuellement amovible, mémorisant un programme informatique mettant en oeuvre un procédé de codage ebou un procédé de 15 décodage tels que décrits précédemment. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des figures annexées parmi lesquelles : - la figure 1 illustre un exemple de fenêtre de transition de l'état de l'art pour la transition entre le codage CELP et le codage FD du codec MPEG USAC, décrit 20 précédemment; - la figure 2 illustre sous forme de schéma bloc, un codeur et un procédé de codage selon un mode de réalisation de l'invention; - la figure 3a illustre un exemple de fenêtre de pondération utilisé pour le codage par transformée de l'invention; 25 - la figure 3b illustre le mode de codage par transformée à recouvrement utilisé par l'invention; - la figure 4a illustre la transition entre une trame codée avec un codage prédictif et une trame codée par transformée selon un mode de réalisation du procédé de l'invention; 30 - les figures 4b, 4c et 4d illustrent la transition entre une trame codée avec un codage prédictif et une trame codée par transformée selon deux variantes de réalisation du procédé de l'invention; - la figure 4e illustre la transition entre une trame codée avec un codage prédictif et une trame codée par transformée selon une des variantes de réalisation du procédé de l'invention pour le cas où la transformation MDCT utilise des fenêtres asymétriques; - la figure 5 illustre un décodeur et un procédé de décodage selon un mode de réalisation de l'invention; - les figures 6a et 6b illustrent sous forme d'organigramme les principales étapes du procédé de codage, respectivement du procédé de décodage selon l'invention; et - la figure 7 illustre un mode possible de réalisation matérielle d'un codeur et d'un décodeur selon l'invention. La figure 2 représente un codeur multi-modes CELP/MDCT dans lequel le procédé de codage selon l'invention est mis en oeuvre. Cette figure représente les étapes de codage effectuées pour chaque trame de signal. Le signal d'entrée, noté x(n') , est échantillonné à 16 kHz et la longueur de trame est de 20 ms. L'invention se généralise aux cas où d'autres fréquences d'échantillonnage sont utilisés, par exemple pour des signaux en bande super-élargie échantillonnés à 32 kHz, avec éventuellement une découpe en deux sous-bandes pour appliquer l'invention dans la bande basse. La longueur de trame est ici choisie pour correspondre à celle des codeurs mobiles tels que 3GPP AMR et AMR-WB, cependant d'autres longueurs sont également possibles (exemple: 10 ms). Par convention les échantillons de la trame courante correspondent à x(n') , n' = 0,...,319 . Ce signal d'entrée est d'abord filtré par un filtre passe-haut (bloc 200), afin d'atténuer les fréquences inférieures à 50 Hz et éliminer la composante continue, puis sous-échantillonné à la fréquence interne de 12,8 kHz (bloc 201) pour obtenir une trame 25 du signal, s(n) de 256 échantillons. On considère que le filtre de décimation (bloc 201) est réalisé à faible retard au moyen d'un filtre à réponse impulsionnelle finie (typiquement d'ordre 60). Dans le mode de codage CELP, la trame courante, s(n) de 256 échantillons est codée selon le mode de réalisation privilégié de l'invention par un codeur CELP inspiré du 30 codage ACELP multi-débits (de 6,6 à 23,05 kbids) à 12,8 kHz décrit dans la norme 3GPP TS 26.190 ou de façon équivalente UIT-T G.722.2 - cet algorithme est appelé AMR-WB (pour "Adaptive MultiRate - WideBand" en anglais). Le signal s(n) est d'abord pré-accentué (bloc 210) par 1- az_i avec a =0,68, puis codé (bloc 211) par l'algorithme ACELP (tel que décrit à la section 5 de la norme 3GPP TS 26.190). Les trames successives de 20 ms contiennent 256 échantillons temporels à 12,8 5 kHz. Le codage CELP utilise une mémoire (ou buffer) buf (n) , n = -64,...,319 , de 30 ms de signal: 5 ms de signal passé ("lookback" en anglais), 20 ms de trame courante et 5 ms de signal futur ("lookahead" en anglais). Le signal obtenu après pré-accentuation de s(n) est copié dans ce buffer aux positions n = 64,...,319 de sorte que la trame courante correspondant aux positions 10 n = 0, ..., 255 inclut 5 ms de signal passé ( n = 0, ..., 63) et 15 ms du "nouveau" signal à coder ( n = 64, ..., 255 ) - c'est dans la définition du buffer que le codage CELP appliqué ici se différencie du codage ACELP de la norme AMR-WB car le "lookahead" est ici exactement de 5 ms sans compensation du retard de filtre de sous-échantillonnage (bloc 201). 15 A partir de ce buffer, le codage CELP (bloc 211) comprend plusieurs étapes mises en oeuvre de façon similaire au codage ACELP de la norme AMR-WB ; les principales étapes sont données ici à titre d'exemple de réalisation: a) Analyse LPC : Une fenêtre asymétrique de 30ms pondère le buffer buf (n) , puis une autocorrélation est calculée. Les coefficients de prédiction linéaire (pour un ordre 20 16) sont ensuite calculés via l'algorithme de Levinson-Durbin. On obtient ainsi le filtre de prédiction linéaire LPC A(z) . Une conversion des coefficients LPC en coefficients spectraux ISP ("Immittance spectral pairs" en anglais) est effectuée ainsi qu'une quantification (qui donne le filtre quantifié A(z) ). 25 Finalement un filtre LPC pour chaque sous-trame est calculé par interpolation par sous-trame entre le filtre de la trame courante et le filtre de la trame précédente. Dans cette étape d'interpolation on suppose ici que la trame passée a été codée par le mode CELP, dans le cas contraire on suppose que les états du codeur CELP ont été mis à jour. b) Pondération perceptuelle du signal : le signal pré-accentué est ensuite pondéré 30 par le filtre défini par W (z) = A(z / y) /0 - az-') où a =0,68 et y =0,92. c) Calcul du pitch en boucle ouverte en cherchant le maximum de la fonction d'autocorrélation du signal pondéré (éventuellement sous-échantillonné pour réduire la complexité). d) Recherche de l' "excitation adaptative" en boucle fermée par analyse par synthèse parmi les valeurs en voisinage du pitch obtenu en boucle ouverte pour chacune des sous-trames de la trame courante. Un filtrage passe-bas de l'excitation adaptative est également effectué ou non. Un bit est donc produit pour indiquer l'application ou non du filtre. Cette recherche donne la composante notée v(n) . Le pitch et le bit associé au filtre de pitch sont codés dans le train binaire. e) Recherche de l'innovation ou excitation fixe notée c(n) , en boucle fermée également par analyse par synthèse. Cette excitation est composée des zéros et d'impulsions signées, les positions et signes de ces impulsions sont codés dans le train binaire. f) Les gains de l'excitation adaptative et de l'excitation algébrique, gp,g~ respectivement, sont codés conjointement dans le train binaire. Dans cet exemple de réalisation, le codeur CELP divise chaque trame de 20 ms en 4 sous-trames des 5 ms et le filtre LPC quantifié correspond à la dernière (quatrième) sous-trame. Le signal reconstruit ScECp (n) est obtenu par le décodeur local inclut dans le bloc 211, par reconstruction de l'excitation u(n) = kpv(n)+gec(n), éventuellement post-traitement de u(n), et filtrage par le filtre de synthèse quantifié 1/Â(z) (comme décrit en Section 5.10 de la norme 3GPP TS 26.190). Ce signal est enfin désaccentué (bloc 212) par le filtre de fonction de transfert 1 /0 - az-» pour obtenir le signal décodé CELP ScECP(n) .. Bien évidemment, d'autres variantes du codage CELP que le mode de réalisation décrit précédemment peuvent être utilisées sans affecter la nature de l'invention. Dans une variante le bloc 211 correspond au codage CELP à 8kbit/s décrit dans la norme UIT-T G.718 selon un des 4 modes de codage CELP possibles: mode non voisé (UC), mode voisé (VC), mode transition (TC) ou mode générique (GC). Dans une autre variante une autre réalisation du codage CELP est choisie, par exemple le codage ACELP dans le mode interopérable avec le codage AMR-WB de la norme UIT-T G.718. La représentation des coefficients LPC sous forme d'ISF peut être remplacée par les paires de raies spectrales (LSF) ou d'autres représentations équivalentes. En cas de sélection du mode CELP le bloc 211 livre les indices CELP codées IcELp à multiplexer dans le train binaire. Dans le mode de codage MDCT de la figure 2, la trame courante, s(n) , n = 0, ..., 255 , est d'abord transformée (bloc 220) selon un mode de réalisation privilégié pour obtenir les coefficients transformés suivants: 2 2M-M.-I S(k) = w(n).s(n - M_ ).cos M n=MzIri M n+ +- k+- ,k=0,...,M-1 ~M 2 2~\' 2' où M = 256 est la longueur de trame et Mz = 96 est le nombre de zéros à gauche et à droite dans la fenêtre w(n). La fenêtre w(n) est choisie dans le mode de réalisation privilégié comme une fenêtre "bas retard" symétrique de la forme: 0 Cette fenêtre s'applique à la trame courante de 20 ms ainsi qu'à un signal futur "lookahead" de 5 ms. On remarquera que le codage MDCT est donc synchronisé au codage CELP dans la mesure où le décodeur MDCT peut reconstruire par addition-recouvrement l'intégralité de la trame courante, grâce au recouvrement à gauche et au "plat" intermédiaire de la fenêtre MDCT, et il dispose également d'un recouvrement sur la trame future de 5 ms. On note ici pour cette fenêtre que la trame MDCT courante induit un repliement temporel sur la première partie de la trame (en fait sur les 5 premières ms) où s'effectue le recouvrement. Il est important de remarquer que les trames reconstruites par les codeurs/décodeurs CELP et MDCT ont des supports temporels coïncidents. Cette synchronisation temporelle des reconstructions facilite la commutation de modèles de codage. Dans des variantes de l'invention, d'autres fenêtres MDCT que w(n) sont également possibles. On ne détaille pas ici la mise en oeuvre du bloc 220. Un exemple est donné dans la norme UIT-T G.718 (Clauses 6.11.2 et 7.10.6). Les coefficients S(k) , k = 0,..., 255 , sont codés par le bloc 221 qui est inspiré, dans un mode de réalisation privilégié, du codage "TDAC" (pour "Time Domain Aliasing Cancellation" en anglais) de la norme UIT-T G.729.1. On note ici Bro, le budget de bits total alloué dans chaque trame au codage MDCT. Le spectre discret S(k) est divisé en sous-bandes, puis une enveloppe spectrale, correspondant à la r.m.s (pour "root mean square" en anglais, c'est-à-dire la racine carrée de la moyenne de l'énergie) par sous-bande, est quantifiée dans le domaine logarithmique par pas de 3 dB et codée par un codage de entropique. Le budget de bits utilisé par ce codage d'enveloppe est noté ici Ben, ; il est variable à cause du codage entropique. A la différence du codage "TDAC" de la norme G.729.1, un nombre de bits prédéterminé noté B,.n1 (fonction du budget Boy ) est réservé pour le codage de niveaux d'injection de bruit afin de "remplir" les coefficients codés à une valeur nulle par du bruit et masquer les artefacts de "bruit musical" qui seraient autrement audibles. Ensuite les sous-bandes du spectre S(k) sont codées par quantification vectorielle sphérique avec le budget restant de - Bel - B' bits. Cette quantification n'est pas détaillée, tout comme l'allocation adaptative des bits par sous-bandes, car ces détails dépasse le cadre de l'invention. En cas de sélection du mode MDCT ou du mode transition, le bloc 221 livre les indices MDCT codées IMDCT à multiplexer dans le train binaire. Le bloc 222 décode le train binaire produit par le bloc 221 afin de reconstruire le spectre décodé S(k) , k = 0,..., 255 . Enfin le bloc 223 reconstruit la trame courante pour trouver le signal SMDGT (n) , n = 0, ..., 255 . Du fait de la nature du codage par transformée MDCT (recouvrement entre les trames), deux cas de figure sont à envisager dans le codage MDCT d'une trame courante: - Premier cas: La trame précédente a été codée par un mode MDCT. Dans ce cas, la mémoire (ou états) nécessaire à la synthèse MDCT dans le décodeur local (et distant) est disponible et l'opération d'addition/recouvrement utilisée par la MDCT pour annuler le repliement temporel est possible. La trame MDCT est correctement décodée sur toute la trame. II s'agit ici du fonctionnement "normal" du codage/décodage MDCT. - Deuxième cas: La trame précédente a été codée par un mode CELP. Dans ce cas, la reconstruction de la trame au décodeur (local et distant) n'est pas complète. Comme expliqué précédemment, la MDCT utilise pour la reconstruction une opération d'addition/recouvrement entre la trame courante et la trame précédente (avec des états stockés en mémoire) pour supprimer le repliement temporel de la trame à décoder et aussi éviter les effets de blocs et augmenter la résolution fréquentielle par l'utilisation de fenêtres plus longues qu'une trame. Avec les fenêtres MDCT les plus couramment utilisées (type sinusoïdal) la distorsion du signal due au repliement temporel est plus forte à l'extrémité de la fenêtre et quasi nulle au milieu de la fenêtre. Dans ce cas précis, si la trame précédente est de type CELP, la mémoire MDCT n'est pas disponible car la dernière trame n'a pas été codée par transformée MDCT. La zone repliée du début de la trame correspond à la zone du signal dans la trame MDCT qui est perturbée par le repliement temporel inhérent à la transformation MDCT. Ainsi, lorsque la trame courante est codée par le mode MDCT (bloc 220 à 223) et que la trame précédente a été codée par le mode CELP (blocs 210 à 212), un traitement spécifique de transition de CELP à MDCT est nécessaire. Dans ce cas, comme l'indique la figure 4a, la première trame est codée par le mode CELP et peut être intégralement reconstruite par le décodeur CELP (local ou distant). Par contre, la deuxième trame est codée par le mode MDCT ; on considère cette deuxième trame comme étant la trame courante. La zone de recouvrement à gauche de la fenêtre MDCT pose problème car la partie complémentaire (avec repliement temporel) de cette fenêtre n'est pas disponible puisque la trame précédente n'a pas été codée par MDCT. Le repliement dans cette partie gauche de la fenêtre MDCT ne peut donc pas être supprimé. Pour cette transition, le procédé de codage selon l'invention comporte une étape de codage d'un bloc d'échantillons de longueur inférieure ou égale à la longueur de la trame, choisi par exemple comme une sous-trame supplémentaire de 5ms, dans la trame courante codée par transformée (MDCT), représentant la zone de repliement à gauche de la trame courante, par un codeur prédictif de transition ou codage prédictif restreint. II est à noter que le type de codage dans la trame précédent la trame MDCT de transition pourrait être un autre type de codage que le codage CELP, par exemple un codage MICDA ou un codage TCX. L'invention s'applique dans le cas général où la trame précédente a été codée par un codage ne mettant pas à jour les mémoires MDCT dans le domaine du signal et l'invention implique de coder un bloc d'échantillons correspondant à une partie de la trame courante par un codage de transition utilisant les informations du codage de la trame précédente. Le codage prédictif de transition est restreint par rapport au codage prédictif de la trame précédente; Il consiste à utiliser les paramètres stables de la trame précédente codée par un codage prédictif et de ne coder que quelques paramètres minimaux pour la sous-trame supplémentaire dans la trame courante de transition. Les modes de réalisation illustrés sur les figures 4a à 4e, supposent que le recouvrement à gauche de la première fenêtre MDCT est inférieur ou égal à la longueur de la sous-trame (5 ms). Dans le cas contraire une ou plusieurs sous-trame(s) CELP supplémentaire(s) doit (doivent) être également codée(s), des dictionnaires d'excitation adaptatifs et/ou fixes de taille adaptée à la longueur de recouvrement doivent être utilisés. Sur les figures 4a à 4e le trait mixte (lignes alternant des points et traits) correspondent aux lignes de repliement de codage MDCT et aux lignes de dépliement de décodage MDCT. En haut sur ces figures les lignes en gras séparent les trames à l'arrivée de l'encodeur, on peut commencer l'encodage d'une nouvelle trame quand une trame ainsi définie est entièrement disponible. II est important de remarquer que ces lignes en gras au codeur ne correspondent pas à la trame courante mais au bloc de nouveaux échantillons arrivant pour chaque trame ; la trame courante est en fait retardée de 5 ms. En bas, les lignes en gras séparent les trames décodées à la sortie du décodeur. Le traitement spécifique de la trame de transition correspond aux blocs 230 à 232 et au bloc 240 de la figure 2. Ce traitement est effectué lorsque le mode précédent, noté modepCe, c'est-à-dire le type de codage de la trame précédente (CELP ou MDCT), est de type CELP. Le codage de la trame courante de transition entre codage CELP et MDCT (seconde trame des figures 4a à 4e), repose sur plusieurs étapes mises en oeuvre par le bloc 231 : - Codage MDCT de la trame : dans l'exemple de réalisation illustrée en haut à la figure 4a, la fenêtre choisie pour ce codage est la fenêtre w(n) définie précédemment, avec une longueur effective de 25ms. D'autres formes de fenêtres pour remplacer w(n) dans la trame MDCT de transition (première trame MDCT suivant une trame CELP) sont illustrées en figures 4b, 4c, 4d et 4e avec une même longueur effective qui peut être différente de 25 ms. Pour le cas de la figure 4a, les 20ms de la trame courante sont placés au début de la portion non nulle de la fenêtre, tandis que les 5 ms restantes sont les 5 premières millisecondes de la future trame (« lookahead» ). Après le calcul de la MDCT (par repliement et transformée en cosinus discret (DCT)), on obtient donc les 256 échantillons du spectre MDCT. La quantification de ces coefficients est ici faite par transmission de l'enveloppe spectrale et quantification vectorielle sphérique pour chaque sous-bande normalisée de l'enveloppe. La différence avec la description précédente du codage MDCT "normal" est que le budget alloué à la quantification vectorielle dans la trame de transition n'est plus de B,o, - Ben, - B;,, mais de Bk), - BQn,, - B,.,, - B'a's , B«Q's représentant le nombre de bits nécessaires à la transmission des informations manquantes pour générer l'excitation d'entrée du filtre 1/ A(z) dans le codeur de transition. Ce nombre de bits, B,m,,s , est variable en fonction du débit total du codeur. - Décodage du spectre quantifié (en bas sur les figures 4a à 4e) : après reconstruction du spectre quantifié et l'opération de transformation MDCT inverse partielle (par dépliement et multiplication par la fenêtre de synthèse mais sans addition-recouvrement car les mémoires MDCT ne sont pas disponibles à partir de la trame précédente), on obtient le signal temporel dans lequel les 5 premières millisecondes (première sous-trame) contiennent du repliement temporel, puis 15ms du signal reconstruit, les 5 dernières millisecondes servant enfin à alimenter la mémoire MDCT nécessaire à la reconstruction de la prochaine trame, si celle-ci est de type MDCT ; dans le cas où la prochaine trame est de type CELP, cette mémoire est en général inutile. - Codage de la première sous-trame (zone grisée marquée « TR » des figures 4a à 4e) par le codage de transition comportant un codage prédictif restreint. Ce codage prédictif restreint comporte les étapes suivantes. Le filtre Â(z) de la première sous-trame est par exemple obtenu par recopie du filtre Â(z) de la quatrième sous-trame de la trame précédente. On économise ainsi le calcul de ce filtre et on économise le nombre de bits associé à son codage dans le train binaire. Ce choix est justifié car dans un codec alternant CELP et MDCT, le mode MDCT est en général sélectionné dans les segments quasi-stationnaires où le codage dans le domaine fréquentiel est plus performant que dans le domaine temporel. Au moment de la commutation entre les modes ACELP et MDCT cette stationnarité est normalement déjà établie, on peut supposer que certains paramètres comme l'enveloppe spectrale évolue très peu de trame à trame. Ainsi le filtre de synthèse quantifié 1/ A(z) transmis lors de la trame précédente, représentant l'enveloppe spectrale du signal, peut être réutilisé de façon efficace. Le pitch (permettant de reconstruire l'excitation adaptative par utilisation de l'excitation passée) est calculé en boucle fermée pour cette première sous trame de transition. Celui-ci est codé dans le train binaire, éventuellement de façon différentielle par rapport au pitch de la dernière sous trame CELP. L'excitation adaptative v(n) (n=0,...,63) en est déduite. Dans une variante la valeur de pitch de la dernière trame CELP peut être également réutilisée, sans la transmettre. 20 Un bit est alloué pour indiquer si l'excitation adaptative v(n) a été filtrée ou non par un filtre passe-bas de coefficients (0.18, 0.64, 0.18). Cependant, la valeur de ce bit pourrait être reprise de la dernière trame CELP précédente. La recherche de l'excitation algébrique de la sous-trame est effectuée en boucle fermée uniquement pour cette sous-trame de transition, et le codage des positions et signes 25 des pulsations de l'excitation sont codés dans le train binaire, là encore avec un nombre de bits dépendant du débit du codeur. Les gains gp,gc respectivement associés à l'excitation adaptative et algébrique sont codés dans le train binaire. Le nombre de bits alloués à ce codage dépend du débit du codeur. 30 A titre d'exemple, pour un débit total de 12,65 kbit/s, 9 bits sont réservés au codage en absolu du pitch de la sous-trame, 6 bits sont réservés au codage du gain, 52 bits sont réservés au codage de l'excitation fixe, et un bit indique si l'excitation adaptative a été filtrée ou non. On réserve donc Br.=68 bits (3.4 kbit/s) pour le codage de cette sous- trame de transition, il reste donc 9.25 kbit/s pour le codage MDCT dans la trame de transition. Une fois tous les paramètres obtenus et codés, on peut générer la sous-trame manquante par excitation du filtre 1/Â(z) avec l'excitation obtenue. Le bloc 231 fournit également les paramètres du codage prédictif restreint, ITR, à multiplexer dans le train binaire. Il est important de noter que le bloc 231 utilise des informations, notée Mem. sur la figure, du codage (bloc 211) effectué dans la trame précédant la trame de transition. Par exemple, les informations incluent les paramètres LPC et de pitch de la dernière sous-trame. Le signal obtenu est ensuite dé-accentué (bloc 232) par le filtre 1 / (1- az-» , pour obtenir le signal reconstruit sTR (n) , n = 0, ..., 63 , dans la première sous-trame de la trame courante de transition CELP à MDCT. Il reste enfin à combiner les signaux reconstruits srR (n) , n = 0, ..., 63 , et SMDCT (n) , n = 0, ..., 255 Pour cela, un mélange progressif linéaire (fondu enchaîné ou "cross-fade" en anglais) entre les deux signaux est effectué et donne le signal de sortie suivant (bloc 240). Par exemple dans un premier mode de réalisation, ce fondu enchaîné est effectué sur les premiers 5 ms de la façon suivante comme illustré à la figure 4a: n STR (n) + 64 SMDCT (n) n = 0, ..., 63 64 SMDCT(n) n = 64,..., 255 SMDcT(n) - Il est à noter que le fondu enchaîné entre les deux signaux est ici de 5 ms, mais il peut être de taille inférieure. Dans l'hypothèse où le codeur CELP et le codeur MDCT sont à reconstruction parfaite ou quasi-parfaite, on peut même se passer de fondu enchaîné, en effet les 5 premières millisecondes de la trame sont codées parfaitement (par le CELP restreint), et les 15ms suivantes sont également codées parfaitement (par le codeur MDCT). L'atténuation des artefacts par le fondu enchaîné n'est en théorie plus nécessaire. Dans ce cas, le signal ,sMDcT(n) s'écrit plus simplement : SMDCT(n)- STR(n) n=0,...,63 SMDCr(n) n=64,...,255 Dans la variante de la figure 4b la fenêtre est remplacée par une fenêtre identique à l'analyse et à la synthèse avec une forme rectangulaire sans repliement à gauche w(n) _ 0 n=0,...,31 1 n = 32,..., 255 On ne spécifie pas ici pour n 255. Pour n 255 les fenêtres sont déterminées par les fenêtres d'analyse et synthèse MDCT utilisées pour le codage MDCT « normal ». Le fondu enchaîné à la figure 4b est effectué de la façon suivante : SMDCT(n) _ n=0,...,31 n = 32,..., 63 n = 64, ..., 25 5 STR (n) n-3r n-32 32 iSTR (n) + 32 SMDCT (n) SMDCT(n) Dans la variante des figures 4c la fenêtre est remplacée par une fenêtre identique à l'analyse et à la synthèse avec une forme incluant une première partie de valeur nulle sur 1,25 ms, puis un front montant sinusoïdal sur 2,5 ms, et un plat de valeur unitaire sur 1,25 ms: 0 n=0,...,15 n-15.5 w(n) = sin 32 ;r n =16,...,47 1 n = 48,..., 255 On ne spécifie pas ici pour n 255. Pour n 255 les fenêtres sont déterminées par les fenêtres d'analyse et synthèse MDCT utilisées pour le codage MDCT « normal ». Lle fondu enchaîné à la figure 4c est effectué de la façon suivante : SMDCT(n) `STR (n) n-48~ n-48 16 STx (n) + 16 `SMDCT (n) i `SMDCT (n) n=0,...,37 n = 48, ..., 63 n = 64,..., 255 ce qui montre que la zone où le fondu enchaîné est effectué est exempte de repliement temporel. Dans la variante des figures 4d et 4e, on suppose que la fenêtre de pondération MDCT 20 d'analyse et synthèse dans la trame courante de transition (n= 0,...,255) est donnée par : 0 n=0,...,31 (n-31.5 ~ w(n) = sin 64 ;r n = 32,..., 63 1 n = 64,...,255 A noter ici , qu'on ne spécifie pas pour n 255. Pour n 255 les fenêtres sont déterminées par les fenêtres d'analyse et synthèse MDCT utilisées pour le codage MDCT « normal ». Le fondu enchaîné est effectué de la façon suivante, supposant qu : STR (n) /n-31.5 64 Ir STR (n) + SMDCT (n) SMDCT(n) n=0,...,31 n = 32,..., 63 n = 64,...,255 cos' SMDCT(n) _ A noter que le fondu enchaîné des figures 4b à 4d pourrait être utilisé dans la configuration de la figure 4a également. L'avantage de procéder ainsi est que le fondu enchaîné est effectué sur la partie décodée MDCT où l'erreur due au repliement est la moins forte. Avec la structure représentée sur la figure 4a on se rapproche plus de la reconstruction parfaite. On considère dans l'exemple de réalisation que le codeur fonctionne avec une décision de mode en boucle fermée. A partir du signal original à 12,8 kHz, s(n) , n = 0, ..., 255 , et des signaux reconstruits par chacun des deux modes, CELP et MDCT, ScELp (n) et SMDCT (n) , n = 0,..., 255 , la décision de mode pour la trame courante est prise (bloc 254) en calculant (blocs 250, 252) les erreurs de codage s(n) - scEi p (n) et s(n) - sMDcT (n) , puis en appliquant par sous-trames de 64 échantillons (5 ms) une pondération perceptuelle par le filtre W (z) = A(z / y) /(l - az-') avec y =0,92 dont les coefficients sont tirés des états du codage CELP (bloc 211), et enfin en calculant un critère de rapport signal à bruit par segmental (avec 5 ms d'unité temporelle). On ne décrit pas plus en détails le fonctionnement de la décision en boucle fermée (bloc 254). La décision du bloc 554 est codée (IsEL) et multiplexée dans le train binaire. Le multiplexeur 260 combine la décision codée IsEL et les différents bits venant des modules de codage dans le train binaire bst en fonction de la décision du module 254 : Pour une trame CELP on envoie les bits ICELP, pour une trame purement MDCT les bits IMpcT et pour une trame de transition CELP vers MDCT les bits ITR et IMDCT. Il est à noter que la décision de mode pourrait également être réalisée en boucle ouverte ou spécifiée de façon externe au codeur, sans changer la nature de l'invention. Le décodeur selon un mode de réalisation de l'invention, est illustré sur la figure 5. Le démultiplexeur (bloc 511) reçoit le train binaire bst et extrait d'abord l'indice de mode IsEE. Cet indice commande le fonctionnement des modules de décodage et le commutateur 509. Si l'indice ISEL indique une trame CELP le décodeur CELP 501 est activé et décode les indices CELP IcEEp. Le signal reconstruit scELp (n) par le décodeur CELP 501 par reconstruction de l'excitation u(n) = gpv(n)+gec(n), éventuellement post-traitement de u(n) , et filtrage le filtre de synthèse quantifié 1/ A(z) est dé-accentué par le filtre de fonction de transfert 1/ (1- az-» (bloc 502) pour obtenir le signal décodé CELP scsTp(n) . Le commutateur 509 choisit ce signal scELp(n) comme signal de sortie à 12.8 kHz s(n) = scap(n) . Si l'indice IsEL indique une trame "purement" MDCT ou trame de transition le décodeur MDCT 503 est activé ; celui-ci décode les indices MDCT IMDcT. A partir des indices IMDcr transmis le bloc 503 reconstruit le spectre décodé S(k) , k = 0,..., 255 , ensuite le bloc 504 reconstruit la trame courante pour trouver le signal SMOcT(n) , n = 0,..., 255 . Dans une trame de transition les indices ITR sont également décodés par le module 505. Il est important de noter que le bloc 505 utilise des informations, notée Mem. sur la figure, du décodage (bloc 501) effectué dans la trame précédant la trame de transition. Par exemple, les informations incluent les paramètres LPC et de pitch de la dernière sous-trame. La sortie du bloc 505 est désaccentuée par le filtre de fonction de transfert 1/ (1- az-» (bloc 506) pour obtenir le signal reconstruit par le codage prédictif restreint sTR (n) . Ce traitement (bloc 505 à 507) est effectué lorsque le mode précédent, noté modepfe, c'est-à-dire le type de décodage de la trame précédente (CELP ou MDCT), est de type CELP. Dans une trame de transition les signaux :s-'Te(n) et T (n) sont combinés par le bloc 507, typiquement une opération de fondu enchaîné, telle que décrite précédemment pour le codeur mettant en oeuvre l'invention, est effectuée dans la première partie de la- trame pour obtenir le signal s,uocT(n) . Dans le cas d'une trame "purement" MDCT, c'est- à-dire si les trames courante et précédente sont codées par MDCT, MDCT (n) - SMDcr (n) Le commutateur 509 choisit ce signal SMDCT (n) comme signal de sortie à 12.8 kHz s(n) = S,uncT (n) . Puis le signal reconstruit x(n) à 16 kHz est obtenu par sur- échantillonnage de 12,8 kHz à 16 kHz (bloc 510). On considère que ce changement de 5 cadence est réalisé à l'aide d'un filtre à réponse impulsionnelle finie en polyphase (d'ordre 60). Ainsi, selon le procédé de codage de l'invention, les échantillons correspondants à la première sous-trame de la trame courante codée par codage par transformée, sont codés par un codeur prédictif restreint au détriment des bits disponibles au codage par 10 transformée (cas de débit constant) ou en augmentant le débit transmis (cas de débit variable). Dans un mode de réalisation de l'invention illustré sur la figure 4a, la zone repliée est utilisée uniquement pour faire un fondu enchaîné qui assure une transition douce et sans discontinuité entre la reconstruction CELP et la reconstruction MDCT. 15 A noter que dans une variante, ce fondu enchaîné peut être réalisé sur la deuxième partie de la zone repliée ou l'effet de repliement est moins fort. Dans cette variante illustrée sur la figure 4a en augmentant le débit on ne converge pas vers la reconstruction parfaite car une partie du signal utilisé pour le fondu enchaine est perturbé par le repliement temporel. 20 Cette variante ne peut pas être transparente même si cette perturbation à bas débit est tout à fait acceptable et en générale quasi inaudible par rapport à la dégradation intrinsèque du codage à bas débit. Dans une autre variante, dans la trame MDCT suivant immédiatement une trame CELP (trame de transition) (cas illustré sur la figure 413) on peut utiliser une 25 transformation MDCT sans repliement à gauche, avec une fenêtre rectangulaire commençant au milieu de la sous trame sur la ligne de repliement. Dans la partie encadrée et grisée de la figure on peut observer l'évolution des poids des composantes CELP et MDCT dans le fondu enchaîné. Pendant les premiers 2.5 ms de la trame de transition la sortie est identique au signal décodé du codage prédictif 30 restreint puis la transition est faite durant les deuxième 2.5 ms suivants en diminuant progressivement le poids de la composante CELP et en augmentant le poids de la composante MDCT en fonction de la définition exacte de la fenêtre MDCT. La transition est donc faite en utilisant le signal décodé MDCT sans repliement. Ainsi on peut obtenir un codage transparent en augmentant le débit. Cependant le fenêtrage rectangulaire peut occasionner des effets de bloc en présence de bruit de codage MDCT. La figure 4c illustre une autre variante où la partie montante de la fenêtre (avec repliement temporel) à gauche est raccourcie (par exemple à 2.5 ms) et ainsi les 5 premières millisecondes du signal reconstruit par le mode MDCT contiennent une partie (1.25 ms) sans repliement à droite dans cette première sous-trame de 5 ms. Ainsi le "plat" (c'est-à-dire la valeur constante à 1 sans repliement) de la fenêtre MDCT est étendu à gauche dans la sous-trame codée par le codage prédictif restreint en comparant avec la configuration de la figure 4a. De nouveau, dans la partie encadrée et grisée de la figure 4c on peut observer l'évolution des poids des composantes CELP et MDCT dans le fondu enchaîné pour cette variante. Selon l'exemple donné, pendant les 3.75 premières millisecondes, la sortie est identique au signal reconstruit par le décodage prédictif restreint. Pour cette zone là, la composante MDCT ne doit pas être décodée car non utilisée. Par conséquent, la forme de la fenêtre de pondération n'a pas d'importance pour cette zone. La transition est faite durant les dernières 1.25 ms en diminuant progressivement le poids de la composante CELP et en augmentant le poids de la composante MDCT. En procédant ainsi la reconstruction parfaite à haut débit - donc en l'absence d'erreur de quantification - est assurée car la zone perturbée par le repliement n'intervient pas dans le fondu enchaîné. Le fondu enchaîné de ces signaux reconstruits est réalisé sur la partie de la fenêtre où le signal reconstruit issu du codage par transformée de la première partie de la trame courante ne comporte pas de repliement temporel. L'avantage de cette variante par rapport à celle illustrée sur la figure 4b est la meilleure propriété spectrale de la fenêtre utilisée et la diminution des effets de bloc, sans la partie rectangulaire. A noter que la variante de la figure 4b est un cas extrême de la variante de la figure 4c où la partie montante de la fenêtre (avec repliement temporel) à gauche est raccourcie à o. Dans une autre variante de l'invention la longueur de la partie montante de la fenêtre (avec repliement temporel) à gauche dépend du débit : par exemple elle se raccourcie avec l'augmentation du débit. Les poids du fondu enchaîné utilisés dans ce cas peuvent être adaptés à la fenêtre choisie. Sur les figures 4a, 4b et 4c des fenêtres MDCT à bas retard (« low delay ») ont été représentées, celles-ci comportent un nombre choisi de coefficients de pondération successifs de valeur nulle en fin et en début de fenêtre. L'invention s'applique également pour le cas où les fenêtres de pondération MDCT classique (sinusoïdal) sont utilisées. Le fondu enchaîné à été présenté dans les exemples donnés précédemment avec des poids linéaires. Evidemment d'autres fonctions de variation des poids peuvent être également utilisées comme le front montant d'une fonction sinusoïdale par exemple. En général le poids de l'autre composante est choisi toujours de telle sorte que la somme des 2 poids soit toujours égale à un. A noter également que le poids du fondu enchaîné de la composante MDCT peut être intégrée dans la fenêtre de pondération de synthèse MDCT de la trame de transition pour toutes les variantes présentées, en multipliant la fenêtre de pondération de synthèse MDCT par les poids de fondu enchaîné, ce qui réduit ainsi la complexité de calcul. Dans ce cas la transition entre la composante de codage prédictif restreint et la composante de codage par transformée est faite en additionnant d'une part la composante de codage prédictif multipliée par les poids de fondu enchaîné et d'autre part la composante de codage par transformée ainsi obtenue, sans pondération supplémentaires par les poids. De plus, dans le cas de la variante présentée sur la figure 4b l'intégration des poids du fondu enchaîné peut être faite dans la fenêtre de pondération d'analyse. On peut avantageusement faire cela dans la variante de la figure 4b car la zone du fondu enchaîné est entièrement dans la partie sans repliement de la trame et la fenêtre de pondération d'analyse d'origine était de valeur nulle pour les échantillons précédents la zone de repliement. Cette approche est de plus encore plus intéressante si on utilise les poids du fondu enchaîné sinusoïdal car ainsi on améliore sensiblement les propriétés spectrale de la fenêtre de pondération d'analyse par rapport à la fenêtre rectangulaire (coté gauche) de la figure 4b ou par rapport à une fenêtre triangulaire avec des poids linéaire. De manière encore plus avantageuse la même fenêtre peut être utilisée comme fenêtre d'analyse et de synthèse MDCT, ce qui réduit le stockage. Cette variante est illustrée sur la figure 4d. On y observe que la partie montante de la fenêtre de pondération d'analyse / synthèse de transition est dans la zone sans repliement (après la ligne de repliement). Cette partie montante est ici définie comme un quart de cycle sinusoïdal, si bien que l'effet combiné des fenêtres d'analyse / synthèse donne implicitement des poids de fondu enchaîné sous la forme d'un sinus au carré. Cette partie montante sert à la fois pour le fenêtrage MDCT et pour le fondu enchainé. Les poids du fondu enchaîné pour la composante de codage prédictif restreint sont complémentaires par rapport à la partie montante des fenêtres de pondération d'analyse / synthèse combinées, de telle sorte que la somme des deux poids donne toujours 1 sur la zone où le fondu enchaîné est effectué. Pour l'exemple des fenêtres d'analyse / synthèse MDCT avec une partie montante définie comme un quart de cycle sinusoïdal, les poids du fondu enchaîné pour la composante de codage prédictif restreint sont donc sous la forme d'un cosinus au carré (1 moins sinus au carré) Ainsi les poids du fondu enchaîné sont intégrés à la fois dans la fenêtre de pondération d'analyse et de synthèse de la trame de transition. La variante illustrée à la figure 4d permet d'atteindre la reconstruction parfaite à haut débit parce que le fondu enchaîné est effectué sur une zone sans repliement temporel. . L'invention s'applique également au cas où des fenêtres MDCT sont asymétriques et au cas où les fenêtres MDCT d'analyse et de synthèse ne sont pas identiques comme dans la norme UIT-T G.718. Un tel exemple est donné sur la figure 4e. Dans cet exemple le coté gauche de la fenêtre MDCT de transition (en trait gras sur la figure) et les poids du fondu enchaîné sont identiques à ceux de la figure 4d. Bien évidemment la fenêtre et le fondu enchaîné correspondant aux autres modes de réalisations déjà présentés (par exemple ceux des figures 4a à 4c) pourraient être également utilisés dans la partie gauche de la fenêtre de transition. On observe sur la figure 4e, pour des fenêtres MDCT asymétriques, qu'au codeur, la partie droite de la fenêtre d'analyse de transition est identique à la partie droite de la fenêtre d'analyse MDCT normalement utilisée et, qu'au décodeur, la partie droite de la fenêtre de synthèse MDCT de transition est identique avec la partie droite de la fenêtre de synthèse MDCT normalement utilisée. Quant au coté gauche de la fenêtre de pondération MDCT de transition, on utilise la partie gauche d'une des fenêtres de transition MDCT déjà présentées aux figures 4a à 4d (dans l'exemple de la figure 4e on utilise celle de la figure 4d). Les poids du fondu enchaîné sont choisis en fonction de la fenêtre utilisée, 25 comme détaillé dans les variantes de réalisation de l'invention décrites précédemment (par exemple sur les figures 4a à 4d). En généralisant, selon l'invention, pour la composante MDCT dans la trame de transition la moitié gauche de la fenêtre de pondération d'analyse MDCT utilisée est choisie de telle façon que la partie droite de la zone correspondante à cette moitié de 30 fenêtre ne comporte pas de repliement temporel (par exemple selon un des exemples des figures 4a à 4e) et la moitié gauche de la fenêtre de pondération de synthèse MDCT correspondante est choisie d'une telle façon que après l'effet combiné des fenêtres d'analyse et synthèse cette zone sans repliement a un poids 1 au moins du coté droit (sans aucune atténuation). Les figures 4a à 4e montrent des exemples de paires de fenêtres d'analyse et de synthèse qui vérifient ces critères. Selon ces exemples la moitié gauche de la fenêtre de pondération MDCT de transition est identique à l'analyse et à la synthèse mais cela n'est pas nécessairement le cas dans tous les réalisations de l'invention. A noter par exemple que la forme de fenêtre de synthèse dans la zone où le poids de la composante MDCT dans le fondu enchaîné est nul n'est pas d'importance car ces échantillons ne seront pas utilisés, elle ne doit même pas être calculée. D'autre part la contribution des fenêtres d'analyse et synthèse dans les poids du fondu enchaîné peut être également répartie de façon non équilibrée ce qui donnerait des fenêtre d'analyse et de synthèse différentes dans la moitié gauche de la fenêtre de pondération MDCT de transition. Quant à la moitié droite des fenêtres d'analyse et de synthèse de transition, elles sont identiques avec celles des fenêtres de pondération MDCT normalement utilisées dans les zones uniquement codées par codage de transformée. Pour assurer une reconstruction parfaite en l'absence d'erreur de quantification (à très haut débit) le fondu enchaîné entre le signal reconstruit par le décodeur prédictif restreint et le signal reconstruit par le décodeur par transformée doit être réalisé sur une zone sans repliement temporel. L'effet combiné des fenêtres d'analyse et synthèse peut intégrer implicitement les poids du fondu enchaîné de la composante reconstruite par le décodeur par transformée. Pour limiter l'impact sur le débit alloué au codage MDCT, il est intéressant d'utiliser le moins de bits possible pour ce codage prédictif restreint tout en garantissant une bonne qualité. Dans un codec alternant CELP et MDCT, le mode MDCT est en général sélectionné dans les segments quasi-stationnaires où le codage dans le domaine fréquentiel est plus performant que dans le domaine temporel. Cependant on peut considérer aussi des cas où la décision de mode est prise en boucle ouverte ou pilotée de façon externe au codeur, sans garantie que l'hypothèse de stationnarité soit vérifiée. Au moment de la commutation entre les modes ACELP et MDCT cette stationnarité est normalement déjà établie, on peut supposer que certains paramètres comme l'enveloppe spectrale évolue très peu de trame à trame. Ainsi le filtre de synthèse quantifié 1/ A(z) transmis lors de la trame précédente, représentant l'enveloppe spectrale du signal, peut être réutilisé afin d'économiser des bits pour le codage MDCT. On utilise 30 le dernier filtre de synthèse transmis dans le mode CELP (le plus proche du signal à coder). Les informations utilisées pour coder le signal dans la trame de transition sont: le pitch (associé à l'excitation à long terme), le vecteur d'excitation (ou innovation) ainsi que le(s) gain(s) associé(s) à l'excitation. Dans un autre mode de réalisation de l'invention la valeur décodée du pitch et/ou son gain associé à la dernière sous-trame peuvent être également réutilisés car ces paramètres évoluent aussi lentement dans les zones stationnaires. On diminue ainsi encore plus la quantité d'information à transmettre lors d'une transition de CELP à MDCT. 11 est également possible, dans une variante de réalisation, de quantifier ces paramètres en différentiel sur peu de bits par rapport aux paramètres décodés dans la dernière sous-trame de la trame CELP précédente. Dans ce cas, on code ainsi uniquement la correction qui représente l'évolution lente de ces paramètres. L'une des propriétés désirées de la transition de CELP à MDCT est qu'à débit asymptotiquement élevé, lorsque les codeurs CELP et MDCT sont quasiment à reconstruction parfaite, le codage effectué dans la trame transition (trame MDCT suivante une trame CELP) doit être lui-même à reconstruction quasi-parfaite. Les variantes illustrées sur les figures 4b et 4c assure à reconstruction quasi-parfaite à très haut débit. Dans un souci d'homogénéité de qualité, le nombre de bits alloué à ces paramètres du codage prédictif restreint peut être variable et proportionnel au débit total. Afin de limiter les effets de transition d'un type de codage à l'autre, une transition progressive entre la partie du signal codée par le codage prédictif et le reste de la trame codée par transformée (fondu enchaîné, "fade-in" pour la composante par transformée, "fade-out" pour la composante prédictive) est effectuée. Pour atteindre la qualité transparente, ce fondu enchaîné doit être réalisé sur un signal décodé MDCT sans repliement. En plus des variantes des figures 413 et 4c dans une variante supplémentaire, pour assurer la transparence possible à haut débit, le principe du codage MDCT est modifié de sorte qu'aucun repliement temporel à gauche n'est utilisé dans la fenêtre MDCT de la trame de transition. Cette variante implique d'utiliser une version modifiée de la transformation DCT au coeur de la transformation MDCT car la longueur du signal replié est différente, étant donné que le repliement temporel (réduisant la taille du bloc) n'est effectué qu'à droite. Il est à noter que l'invention est décrite aux figures 4a à 4d pour le cas simplifié de fenêtres d'analyse et synthèse MDCT identiques dans chaque trame (exceptée la trame de transition) codée par le mode MDCT. Dans des variantes de l'invention, la fenêtre MDCT pourra être asymétrique comme illustré à la figure 4e. De plus, le codage MDCT pourra utiliser une commutation de fenêtres entre au moins une fenêtre "longue" de typiquement 20-40 ms et une série de fenêtres courtes de typiquement 5-10 ms ("window switching" en anglais). Par ailleurs, d'autres variantes sont également définies dans le cas où la sélection de modes CELP / MDCT n'est pas optimale et l'hypothèse de stationnarité du signal dans la trame de transition n'est pas vérifiée et la réutilisation des paramètres de la dernière trame CELP (LPC, pitch) peut causer des dégradations audibles. Pour de tels cas, l'invention prévoit la transmission d'au moins un bit pour indiquer un mode de transition différent du procédé décrit précédemment, afin de garder plus de paramètres CELP et/ou de sous-trames CELP à coder dans la trame de transition de CELP à MDCT. Par exemple un premier bit peut signaler si dans la suite du train binaire le filtre LPC est codé ou la dernière version reçue peut être utilisée au décodeur, et un autre bit pourrait signaler la même chose pour la valeur du pitch. Dans le cas où l'encodage d'un paramètre est jugé nécessaire ceci peut être fait en différentiel par rapport à la valeur transmise dans la dernière trame. Ainsi, d'une façon générale, en accord avec les modes de réalisation décrits précédemment, le procédé de codage selon l'invention peut être illustré sous forme d'organigramme comme représenté en figure 6a. Pour le signal à coder s(n), on vérifie à l'étape E601 que l'on se trouve dans le cas où la trame courante est à codée selon un codage par transformée et où la trame précédente a été codée selon un codage de type prédictif. Ainsi, la trame courante est une trame de transition entre le codage prédictif et le codage par transformée. A l'étape E602, un codage prédictif restreint, est appliqué sur une première partie de la trame courante. Ce codage prédictif est restreint par rapport au codage prédictif utilisé pour la trame précédente. A l'issue de cette étape de codage prédictif restreint, le signal sTR (n) est obtenu. Le codage MDCT de la trame courante est effectué à l'étape E603, parallèlement pour toute la trame courante. A l'issue de cette étape de codage par transformée, le signal s,,,,ocT (n) est obtenu. Selon les modes de réalisation décrits pour l'invention, le procédé comporte une étape de combinaison par fondu enchaîné à l'étape E604, après reconstruction des signaux, permettant d'effectuer une transition douce entre le codage prédictif et le codage par transformée dans la trame de transition. A l'issue de cette étape, un signal reconstruit SMr,cT (n) est obtenu. De même, de façon générale, le procédé de décodage selon l'invention est illustré en référence à la figure 6b. Lorsqu'au décodage, une trame précédente à été décodée selon une méthode de décodage de type prédictif et que la trame courante est à décoder selon une méthode de décodage de type transformée (vérification en E605), le procédé de décodage comporte une étape de décodage par un décodage prédictif restreint d'une première partie de la trame courante, en E606. Il comporte également une étape de décodage par transformée en E607 de la trame courante. Une étape E608 est ensuite effectuée, selon les modes de réalisation décrits précédemment, pour effectuer une combinaison des signaux décodés obtenus, respectivement STR (n) et sMwcT (n) , par fondu enchaîné sur tout ou partie de la trame courante et ainsi obtenir le signal décodé sMDCT (n) de la trame courante. Enfin, l'invention a été présentée dans le cas spécifique d'une transition de CELP à MDCT. Il est évident que cette invention s'applique également au cas où le codage CELP est remplacé par un autre type de codage, tel que MICDA, TCX, et où un codage de transition sur une partie de la trame de transition est effectué en utilisant les informations du codage de la trame précédent la trame MDCT de transition. En référence à la figure 7, on décrit un dispositif matériel adapté pour réaliser un codeur ou un décodeur selon un mode de réalisation de la présente invention. Ce dispositif DISP comporte une entrée pour recevoir un signal numérique SIG qui dans le cas du codeur est un signal d'entrée x(n') et dans le cas du décodeur, le train binaire bst. Le dispositif comporte également un processeur PROC de signaux numériques adapté pour réaliser des opérations de codage/décodage notamment sur un signal provenant de l'entrée E. Ce processeur est relié à une ou plusieurs unités de mémoire MEM adaptées pour stocker des informations nécessaires au pilotage du dispositif pour le codage/décodage. Par exemple, ces unités de mémoire comportent des instructions pour la mise en couvre du procédé de codage décrit ci-avant et notamment pour mettre en oeuvre les étapes de codage d'une trame précédente d'échantillons du signal numérique selon un codage prédictif , codage d'une trame courante d'échantillons du signal numérique selon un codage par transformée, de telle sorte qu'une première partie de la trame courante est codée par un codage prédictif restreint par rapport au codage prédictif de la trame précédente, lorsque le dispositif est de type codeur. Lorsque le dispositif est de type décodeur, ces unités de mémoire comportent des instructions pour la mise en oeuvre du procédé de décodage décrit ci-avant et notamment pour mettre en oeuvre les étapes de décodage prédictif d'une trame précédente d'échantillons du signal numérique reçue et codée selon un codage prédictif, décodage par transformée inverse d'une trame courante d'échantillons du signal numérique reçue et codée selon un codage par transformée, et en outre une étape de décodage par un décodage prédictif restreint par rapport au décodage prédictif de la trame précédente d'une première partie de la trame courante. Ces unités de mémoire peuvent également comporter des paramètres de calcul ou d'autres informations. De manière plus générale, un moyen de stockage, lisible par un processeur, intégré ou non au codeur ou au décodeur, éventuellement amovible, mémorise un programme informatique mettant en oeuvre un procédé de codage et/ou un procédé de décodage selon l'invention. Les figures 6a et 6b peuvent par exemple illustrer l'algorithme d'un tel programme informatique. Le processeur est également adapté pour stocker des résultats dans ces unités de mémoire. Enfin, le dispositif comporte une sortie S reliée au processeur pour fournir un signal de sortie SIG* qui dans le cas du codeur est un signal sous forme de train binaire bst et dans 1 e cas du décodeur, un signal de sortie .x(n» .20 REVENDICATIONS1. Procédé de codage d'un signal numérique, comportant les étapes de : - codage (E601) d'une trame précédente d'échantillons du signal numérique selon un codage prédictif ; - codage (E603) d'une trame courante d'échantillons du signal numérique selon un codage par transformée, le procédé étant caractérisé en ce qu'une première partie de la trame courante est codée (E602) par un codage prédictif restreint par rapport au codage prédictif de la trame précédente. 2. Procédé selon la revendication 1, caractérisé en ce que le codage prédictif restreint utilise un filtre de prédiction recopié de la trame précédente de codage prédictif. 3. Procédé selon la revendication 2, caractérisé en ce que le codage prédictif restreint utilise en outre une valeur décodée du pitch et/ou de son gain associé de la trame précédente de codage prédictif. 4. Procédé selon la revendication 1, caractérisé en ce que certains paramètres de codage prédictif utilisé pour le codage prédictif restreint sont quantifiés en mode différentiel par rapport aux paramètres décodés de la trame précédente de codage prédictif. 5. Procédé selon la revendication 1, caractérisé en ce qu'il comporte une étape d'obtention des signaux reconstruits issus des codages prédictif et par transformée de la première partie de la trame courante et de combinaison (E604) par un fondu enchaîné de ces signaux reconstruits. 6. Procédé selon la revendication 5, caractérisé en ce que ledit fondu enchaîné des signaux reconstruits est réalisé sur une portion de la première partie de la trame courante en fonction de la forme de la fenêtre du codage par transformée. 7. Procédé selon la revendication 5, caractérisé en ce que ledit fondu enchainé des signaux reconstruits est réalisé sur une portion de la première partie de la tramecourante, ladite portion de composantes par transformée ne contenant pas de repliement temporel. 8. Procédé selon la revendication 1, caractérisé en ce que le codage par transformée utilise une fenêtre de pondération comportant un nombre choisi de coefficients de pondération successifs de valeur nulle en fin et en début de fenêtre. 9. Procédé selon la revendication 1, caractérisé en ce que le codage par transformée utilise une fenêtre de pondération asymétrique comportant un nombre choisi de coefficients de pondération successifs de valeur nulle en au moins une extrémité de la fenêtre. 10. Procédé de décodage d'un signal numérique, comportant les étapes de : - décodage (E605) prédictif d'une trame précédente d'échantillons du signal numérique reçue et codée selon un codage prédictif ; - décodage (E607) par transformée inverse d'une trame courante d'échantillons du signal numérique reçue et codée selon un codage par transformée; le procédé étant caractérisé en ce qu'il comporte en outre une étape de décodage (E606) par un décodage prédictif restreint par rapport au décodage prédictif de la trame précédente d'une première partie de la trame courante. 11. Procédé selon la revendication 10, caractérisé en ce qu'il comporte une étape de combinaison (E608) par un fondu enchaîné des signaux décodés par transformée inverse et par décodage prédictif restreint pour au moins une portion de la première partie de la trame courante. 12. Procédé selon la revendication 10, caractérisé en ce que le décodage prédictif restreint utilise un filtre de prédiction décodé et utilisé par le décodage prédictif de la trame précédente. 13. Procédé selon la revendication 12, caractérisé en ce que le décodage prédictif restreint utilise en outre une valeur décodée du pitch et/ou de son gain associé du décodage prédictif de la trame précédente. 14. Codeur de signal numérique, comportant: - un module (211) de codage prédictif pour coder une trame précédente d'échantillons du signal numérique-, - un module (221) de codage par transformée pour coder une trame courante d'échantillons du signal numérique, caractérisé en ce qu'il comporte en outre un module (231) de codage prédictif restreint par rapport au codage prédictif de la trame précédente pour coder une première partie de la trame courante. 15. Décodeur de signal numérique, comportant: - un module (501) de décodage prédictif pour décoder une trame précédente d'échantillons du signal numérique reçue et codée selon un codage prédictif ; - un module (503) de décodage par transformée inverse pour décoder une trame courante d'échantillons du signal numérique reçue et codée selon un codage par transformée; caractérisé en ce qu'il comporte en outre un module (505) de décodage prédictif restreint par rapport au décodage prédictif de la trame précédente pour décoder une première partie de la trame courante. 16. Programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de codage selon l'une des revendications 1 à 9 et/ou de décodage selon l'une des revendications 10 à 13, lorsque ces instructions sont exécutées par un processeur.