Brevet FR2961937A1 — publié le 20111230

Codage/décodage prédictif linéaire adaptatif L'objet de l'invention concerne le domaine du codage/décodage de données audio et/ou vidéo. Dans un exemple d'application, l'invention peut porter sur le codage des sons présentant des alternances de parole et de musique. Pour coder efficacement des signaux de parole seuls ou superposés avec un son quelconque, les techniques de type CELP (pour « Code-excited linear prediction ») sont généralement préconisées. Les codeurs CELP sont des codeurs prédictifs et ont pour but de modéliser la production de la parole à partir de divers éléments tels que : - une excitation stochastique (par exemple un bruit blanc ou une excitation algébrique) modélisant le flux d'air sortant des poumons en périodes voisées et/ou non voisées, - une prédiction à long-terme pour modéliser la vibration des cordes vocales, en période voisée en particulier, et - une prédiction à court-terme, sous forme d'un filtre LPC à P coefficients (LPC pour « Linear Predictive Coding » ), pour modéliser les modifications du conduit vocal, comme par exemple la prononciation de consonnes voisées. Ce nombre de coefficients P est choisi afin de bien modéliser la structure formantique du signal de parole. Le signal de parole ayant en général quatre formants dans la bande de fréquences 0 à 4 kHz, dix coefficients de filtres modélisent correctement cette structure (deux coefficients sont nécessaires pour modéliser chaque formant). Pour un signal large bande échantillonné à 16 kHz, un ordre LPC de 16 coefficients est typiquement employé. On présente en référence à la figure 1, le spectre d'un signal de parole (en trait plein) auquel on superpose (en traits pointillés) la réponse en fréquence d'un filtre LPC modélisant son enveloppe spectrale. Un signal de parole échantillonné sn, filtré par un tel filtre LPC, présente un signal résiduel rn tel que : p rn=sn -la i=1 ai étant les coefficients du filtre. n-i ' La puissance du signal résiduel rn peut être faible et son spectre aplati, par un choix judicieux des coefficients ai. Le signal résiduel est alors plus simple à coder que le signal sn lui-même. Il peut se modéliser facilement par un signal harmonique, fortement périodique, comme représenté sur la figure 2, où X(f) est le spectre du signal d'origine s (trait noir) et E(f) est le spectre du signal résiduel r (en trait gris Les coefficients ai sont typiquement calculés par une mesure de corrélation sur le signal s,, (et par application d'un l'algorithme de type de Levinson-Durbin pour inverser les équations de Wiener- Hopf). Deux éléments principaux sont alors constitutifs des codecs CELP : - une modélisation du conduit vocal, par la prédiction court terme qui modélise l'enveloppe spectrale sous forme d'un filtre LPC et - une modélisation de l'excitation passant au travers du conduit vocal, qu'elle soit voisée ou non. Ces deux éléments paramétriques, même s'ils modélisent correctement les signaux vocaux, n'ont pas vocation à reproduire fidèlement les signaux audio musicaux ou mélangés (avec superpositions de différents éléments sonores de parole et musicaux). En particulier, le filtre LPC modélisant l'enveloppe spectrale n'est plus adapté au signal simple de voix et l'excitation ne répond plus au modèle voisé/non voisé. Il a été proposé, notamment dans l'implémentation du codeur 3GPP AMR WB+, un codage de signal mixte parole/ audio qui est amélioré en particulier par un meilleur codage de l'excitation. Le codage par l'enveloppe LPC est conservé, mais le codage de l'excitation est amélioré. Outre la modélisation par un prédicteur à long-terme et de l'excitation stochastique, un codage par transformée peut être ajouté dans les cas où les sons ne répondent pas au modèle de production de la parole. On parle de codage dit « CELP + TCX » (pour « Transform Coded eXcitation »). Une telle technique consiste en les étapes suivantes : estimation au codage de l'enveloppe LPC du signal à coder avec un nombre de coefficients fixé, sélection du modèle d'excitation (modèle voisé/ non voisé paramétrique ou codage par transformée), et transmission du mode sélectionné, de l'excitation codée et de l'enveloppe LPC. Grâce à ce choix de codage pour l'excitation, la qualité du codage selon l'AMR WB+ est satisfaisante pour les signaux audio consistant en des mélanges parole avec bruit de fond ou parole avec fond musical, donc typiquement pour les signaux où la parole domine en énergie. En effet, pour ces signaux, l'enveloppe transmise sous forme LPC est un paramètre pertinent puisque le signal est principalement constitué de parole qui se décrit bien grâce à une enveloppe LPC d'un ordre donné. L'enveloppe décrit en effet les formants (liés aux fréquences de résonnance du conduit vocal) en fonction du nombre de coefficients choisis. En revanche, pour des signaux avec une composante faible en signal de parole - voire pour des signaux n'étant pas constitués principalement de voix - l'enveloppe LPC estimée et transmise au codeur n'est plus suffisante. Le signal audio est alors souvent trop complexe pour se limiter, par exemple, à cinq formants, et son évolution dans le temps fait qu'un nombre de coefficients fixé n'est pas adapté. Ainsi, pour coder un son complexe, du fait de la limitation au niveau du codage de l'enveloppe, l'effort de codage est reporté au niveau du codage de l'excitation et le codeur perd alors de son efficacité. Une solution consisterait à adapter au cours du temps le nombre de coefficients LPC transmis, pour les portions du signal audio qui requièrent une bonne précision pour l'enveloppe. Cette approche n'est cependant pas viable car dans un système de codage à bas débit, une meilleure précision de codage sur l'enveloppe retirerait du débit disponible pour le codage de l'excitation et la qualité ressentie ne serait alors pas améliorée pour autant. Une autre solution consisterait à effectuer une prédiction linéaire avec une analyse "arrière" telle que l'estimation de l'enveloppe LPC ne porte plus sur le signal à coder mais sur un signal décodé préalablement, ce signal «précédent» pouvant être disponible à l'identique au codeur et au décodeur. On peut alors économiser la transmission de l'enveloppe LPC car il est possible de la reconstituer sans information au décodeur, cette économie pouvant servir à mieux modéliser l'excitation par exemple. Pour ce qui concerne le codage des sons musicaux, cette prédiction linéaire avec analyse "arrière" permet potentiellement d'augmenter le nombre de coefficients de filtres modélisant l'enveloppe. Typiquement, un ordre de 50 peut être utilisé pour bien modéliser un signal musical et permettre un codage aisé du signal résiduel d'excitation. En revanche, l'utilisation d'une information passée ne permet pas d'anticiper les évolutions du signal audio car utiliser un prédicteur arrière est pertinent pour un signal stationnaire mais le spectre à une trame donnée n'est précisément modélisé et peut être utilisé pour une trame suivante que si les propriétés statistiques et notamment spectrales du signal demeurent stables. Sinon, le filtre LPC estimé n'est pas pertinent pour la trame considérée et le signal résiduel reste alors difficile à encoder. Le prédicteur arrière perd donc tout son intérêt. Une solution préconisée dans l'état de l'art est donc d'utiliser une commutation entre un filtre de prédiction "avant", calculé sur la trame courante, et un filtre de prédiction arrière, calculé sur le signal reçu au préalable. L'encodeur analyse le signal et décide si le signal est stationnaire ou non. Si le signal est stationnaire, le filtre arrière est utilisé. Sinon, un filtre avant à peu de coefficients est transmis au décodeur. Une telle réalisation permet de contrôler précisément la qualité du signal 20 résiduel à encoder. Elle est mise en oeuvre dans la norme ITU-T G.729-E, dans laquelle une décision sur la stationnarité du signal résulte dans un filtre estimé « arrière » avec 30 coefficients, ou un filtre estimé « en avant» à 10 coefficients. L'inconvénient de cette technique est principalement de faire cohabiter ces deux techniques d'estimation. Un choix discontinu doit être effectué, suivant la stationnarité du signal. Dans le cas d'une non-stationnarité "légère" comme l'apparition d'un instrument dans un ensemble musical, il conviendrait de considérer ce nouvel évènement dans le signal et donc envoyer un nouveau filtre avant. Toutefois, on peut néanmoins considérer que le signal est suffisamment stable pour que le filtre arrière soit approprié. Face à une telle situation à dilemme, le système de codage tend à changer souvent de configuration au cours du temps, de façon relativement imprévisible, ce qui engendre des distorsions. En effet, changer trop souvent de traitement au cours du temps n'est pas efficace, la solution retenue n'étant pas forcément la meilleure. En résumé, l'état de l'art préconise : un prédicteur avant fixe, à peu de coefficients de filtre, modélisant grossièrement 15 l'enveloppe, un prédicteur arrière fixe, présentant un nombre élevé de coefficients, mais ne pouvant pas modéliser les variations de signal d'une trame à l'autre, une alternance entre les deux types de prédicteurs qui génère parfois des discontinuités gênantes. La présente invention vient améliorer la situation. Elle propose à cet effet un procédé de codage d'un signal numérique comportant une succession de blocs consécutifs de données, à partir d'un filtre prédictif Le procédé au sens de l'invention 25 comporte en particulier l'utilisation d'un filtre prédictif modifié pour le codage d'au moins un bloc courant. Ce filtre modifié est construit sur la base de : - un filtre arrière calculé pour un bloc passé, précédant le bloc courant, et - de paramètres d'enrichissement du filtre arrière, déterminés en fonction du signal dans le bloc courant. 30 L'invention présente de nombreux avantages : elle permet en particulier de ne pas passer abruptement d'un filtre arrière à un filtre avant, mais peut par exemple offrir la possibilité d'une transition par un tel filtre modifié notamment entre l'utilisation d'un filtre arrière et celle d'un filtre avant. Elle permet également d'éviter le passage par un filtre avant à peu de coefficients pour coder un signal stationnaire doté d'une enveloppe complexe alors que celui-ci n'est que faiblement perturbé par une non stationnarité. Un autre avantage est d'enrichir un filtre arrière en produisant une qualité de codage optimum sans nécessairement transmettre un filtre avant complet, en particulier avec autant de coefficients par exemple qu'un filtre avant. Un autre avantage, de fait, est de permettre plus de choix au codeur avec différentes catégories de filtres : arrière, avant et modifiés. Ainsi, dans un mode de réalisation, le procédé peut comporter, pour le codage d'un bloc courant, un choix basé sur au moins un critère prédéterminé, d'un filtre prédictif parmi au moins : un filtre arrière, calculé pour un bloc passé, précédant le bloc courant, et un filtre avant, adapté pour le bloc courant, et un filtre modifié, estimé sur la base d'un filtre arrière et en fonction du signal dans le bloc courant. Ce critère peut par exemple tenir compte d'une stationnarité du signal entre le bloc passé et le bloc courant, pour le choix de l'un des filtres parmi un filtre arrière, un filtre avant et un filtre modifié. Dans une réalisation particulière, le critère prédéterminé peut comporter une estimation d'un gain de prédiction basée sur un rapport entre la puissance du signal dans le bloc courant et la puissance d'un signal résiduel après filtrage de ce signal en utilisant chacun des filtre arrière, avant et modifié. Une telle réalisation sera décrite en détails plus loin, notamment en référence aux figures 4 et 5. Le critère précité peut tenir compte en outre d'un nombre de paramètres à envoyer à un décodeur pour le décodage d'un bloc courant et comportant au moins des coefficients que comporte le filtre à choisir. Ainsi, dans une telle réalisation, le critère prédéterminé peut comporter une recherche d'optimum entre : le gain de prédiction qu'offre un filtre à choisir, d'une part, et un débit adapté pour la transmission des paramètres nécessaires à un décodeur pour reconstruire ce filtre.30 Ainsi, dès lors qu'un choix peut être effectué pour le type de filtre à utiliser, il est possible de baser aussi ce choix sur l'ordre du filtre à choisir et, dans une réalisation particulière, le procédé comporte alors les étapes : a) déterminer une pluralité de filtres avant d'ordres respectifs distincts, b) déterminer une pluralité de filtres arrière d'ordres respectifs distincts, c) calculer une pluralité de filtres modifiés d'ordres respectifs distincts, estimés chacun sur la base d'un filtre arrière déterminé à l'étape b) et en fonction du signal dans un bloc courant à coder, d) comparer, pour un même nombre de paramètres à envoyer à un décodeur, ce nombre étant déterminé en fonction des ordres de filtre, les performances d'au moins deux filtres parmi les filtres avant, les filtres arrière et les filtres modifiés déterminés aux étapes a), b) et c), et e) sélectionner, pour le codage d'un bloc courant, un filtre prédictif présentant les meilleures performances selon la comparaison de l'étape d), pour un nombre donné de paramètres à envoyer à un décodeur. Dans une réalisation particulière, les paramètres d'enrichissement comportent les coefficients d'un filtre modifiant, et le filtre modifié est construit par une combinaison entre filtre arrière et de filtre modifiant. Cette combinaison peut être, dans un exemple de réalisation décrit ci-après, une convolution du filtre arrière par le filtre modifiant. En variante, dans un autre espace, il peut s'agir d'une multiplication par exemple, ou autre. Une telle réalisation présente l'avantage de permettre une simplification des opérations de calcul auprès d'un décodeur recevant les paramètres précités. Le filtre modifiant peut être estimé par une technique quelconque, telle que par exemple : par déconvolution d'un filtre avant adapté pour le filtrage du bloc courant, par ledit filtre arrière calculé pour un bloc passé, ou encore sur la base d'une analyse d'un signal résiduel obtenu après filtrage du bloc courant par le filtre arrière précité, ou encore par identification au sens des moindres carrés, en calculant des termes d'autocorrélation de coefficients du filtre arrière et d'intercorrélation entre le filtre modifié et le filtre arrière. 20 Une fois que les coefficients du filtre modifiant sont déterminés par l'une de ces techniques, le procédé peut comporter en outre une communication à un décodeur, d'informations de type : choix d'un filtre avant pour un boc courant, avec une transmission de paramètres représentant des coefficients du filtre avant, ou choix d'un filtre arrière ou d'un filtre modifié pour un bloc courant, avec, dans le cas d'un choix d'un filtre modifié, une transmission de paramètres représentant des coefficients du filtre modifiant. La présente invention vise alors aussi un procédé de décodage d'un signal numérique comportant 10 une succession de blocs consécutifs de données, le procédé utilisant un filtre prédictif pour le décodage d'un bloc courant, le procédé comportant en particulier : une réception d'informations pour le calcul d'un filtre prédictif modifié basé sur : * un filtre arrière, calculé pour un bloc passé, précédant le bloc courant, et * des paramètres d'enrichissement du filtre arrière, issus des informations reçues. 15 Finalement, le procédé de décodage peut alors comporter une étape dans laquelle, pour le décodage d'au moins un bloc courant donné, on utilise plutôt le filtre prédictif ainsi modifié. Bien entendu, pour d'autres blocs courants, le décodeur pourra utiliser aussi un filtre arrière ou un filtre avant, selon les informations reçues du codeur. En particulier, au décodage, le filtre arrière peut être reconstruit sur la base de données précédemment décodées. Par exemple, il est possible d'utiliser le signal résiduel que le décodeur a reçu du codeur, pour un bloc passé, si l'ordre du filtre arrière à reconstruire est plus élevé qu'un filtre précédemment construit pour ce bloc passé. 25 Le procédé de décodage peut comporter ainsi les étapes, pour la détermination du filtre arrière : détermination d'un ordre du filtre arrière, en fonction desdites informations reçues, et estimation du filtre arrière, à partir de données précédemment décodées et en utilisant cet ordre de filtre. L'information d« Ainsi, l'invention propose une combinaison de filtre arrière et d'un filtre modifiant choisis pour se compléter et pour créer un filtre modifié de meilleure qualité que le filtre arrière, puisqu'il s'agit d'une version du filtre arrière, enrichie par une mise à jour issue des caractéristiques tirées du bloc courant. Selon l'un des avantages de l'invention, l'enveloppe de signal est précisément décrite (pour tout type de signal), avec un débit de transmission optimal, que ce soit sous la forme d'un filtre avant, un filtre arrière ou encore un filtre modifié. De plus, la transition entre filtre (que ce soit avant, arrière ou modifié) s'effectue en douceur par rapport à l'art antérieur et on évite ainsi l'effet de discontinuité décrit précédemment en référence à l'art antérieur. La qualité de codage résultant de l'utilisation de l'invention est alors améliorée. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels, outre les figures 1 et 2 présentées ci-avant : - la figure 3 illustre schématiquement une succession de blocs de signal sous forme de trame, pour le choix d'un filtre pertinent notamment pour le codage du signal, - la figure 4 illustre un exemple de gain de prédiction qu'offre le choix d'un filtre modifié A;, ou d'un filtre arrière B;, ou d'un filtre avant F;, en fonction de l'ordre de ce filtre, - la figure 5 illustre un exemple de gain de prédiction qu'offre un filtre en fonction du débit que sollicite le choix de ce filtre, nécessaire pour la transmission de ses coefficients (ou de ses paramètres d'enrichissement de filtre arrière à transmettre par exemple sous la forme d'indices ISF pour un filtre modifié A;, comme on le verra dans un exemple de réalisation décrit ci-après), - la figure 6A illustre schématiquement un dispositif d'encodage dans un mode de réalisation de l'invention, - la figure 6B illustre schématiquement les étapes d'un procédé d'encodage dans un mode de réalisation de l'invention, - la figure 7A illustre schématiquement un dispositif de décodage dans un mode de réalisation de l'invention, - la figure 7B illustre schématiquement les étapes d'un procédé de décodage dans un mode de réalisation de l'invention. Les notations utilisées dans ce qui suit sont ainsi définies : - F; pour un filtre avant (« Forward» en anglais) d'ordre i, - B; pour un filtre arrière (« Backward» en anglais) d'ordre i, - A; pour un filtre modifié d'ordre i, correspondant donc à une version enrichie d'un filtre arrière Bi par l'utilisation d'un filtre modifiant décrit en détail plus loin, et - M; pour un filtre modifiant d'ordre i. Dans l'exemple de réalisation décrit ci-après, on se place dans le cadre d'un codage utilisant des filtres LPC (pour « Linear Predictive Coding »). Cette technique peut donc être du type CELP, par exemple selon les normes G.729, AMR, AMR-WB, ou encore utiliser une transformée de codage en complément, comme par exemple au sens des normes G.718, G.729.1, AMR WB+, MPEG-D (« Unified Speech and Audio Coding »). Dans un système à base de filtres LPC, le filtrage a pour vocation de séparer le signal à coder en deux composantes : l'enveloppe spectrale, modélisée par ce filtre composé de ses P coefficients agi, et le signal résiduel restant à coder (et correspondant à un signal plus efficace à transmettre car allégé de son enveloppe spectrale), comme suit : P n = x1z - xn = xn - aixn_i 1=1 où n exprime ici le signal résiduel, calculé sur le signal audio d'entrée x1z, par convolution avec le filtre de coefficients a;. Cette équation peut s'exprimer au travers de sa transformée en z, notée : E(z)=X(z) P 1-1 ai z-` 1=1 =X(z)A(z) Le filtre LPC A(z) est ainsi de la forme : P A(z)=1-1a~z ` Z=1 Le nombre P désigne le nombre de coefficients non nuls. Il est appelé « l'ordre du filtre ». Habituellement, un nombre judicieux pour un signal de parole en bande étroite (échantillonnée à 8 kHz) est de 10. Cet ordre peut être augmenté néanmoins afin de mieux modéliser le spectre du signal et notamment accentuer la précision de son enveloppe. Il peut aussi être augmenté si la fréquence d'échantillonnage du signal est plus élevée. Le signal résiduel peut aussi être présenté dans le domaine pondéré perceptuel. Ainsi, au lieu d'appliquer le filtre LPC (ai) tel quel, une modification de ce filtre est utilisée afin de mieux prendre en compte les propriétés de l'oreille humaine lors du codage du résiduel. Typiquement, on utilise une pondération perceptive, en utilisant le filtre W(z) : W(z)=A(z/y) (ouW(z)=A(z/ Yi)) où y, 72 sont des coefficients à valeur réelle compris typiquement entre 0,9 et 1. Les coefficients ai du filtre LPC sont communément estimés en identifiant le signal audio et sa prédiction réalisée au sens des moindres carrés. On cherche donc les coefficients ai minimisant l'erreur quadratique du signal audio passé, au travers du filtre A(z). On cherche donc à minimiser la puissance du signal n . Cette puissance est estimée sur une certaine durée représentant un nombre d'échantillons N. Les coefficients sont donc valables pour cette période de temps. Cette estimation de coefficients de filtre LPC est ainsi réalisée par l'estimation des termes d'autocorrélation du signal x,z, et par la résolution des équations de Yule Walker ou Wiener Hopf, typiquement par un algorithme rapide de type Levinson Durbin, comme décrit par exemple dans la référence : "Linear prediction a tutorial review", John Makhoul, Proceedings of the IEEE, 63 (5):561-580, Avril 1975. D'autres algorithmes peuvent néanmoins être employés pour l'estimation des coefficients agi, par exemple par estimation spectrale ou par la méthode de covariance. L'estimation des coefficients du filtre LPC peut être réalisée sur le signal courant x1z, sur une trame représentant un ensemble d'échantillons, ou encore sur une version du signal xm (m Ainsi, il est proposé dans ce mode de réalisation de ne pas baser la représentation du filtre LPC seulement sur un filtre arrière, mais de lui adjoindre un filtre modifiant (M) transmis au décodeur. Le filtre LPC finalement utilisé (A) découle alors de la combinaison du filtre arrière (B) et du filtre modifiant M, comme suit : A(z)=M(z)B(z) Ce filtre A, appelé ci-après « filtre modifié », est alors utilisé au codeur (éventuellement pondéré) pour calculer le résidu. Une version inversée (1/A(z)) de ce filtre est utilisée au décodeur pour remettre en forme le spectre du signal. Pour le calcul du filtre modifiant M, différentes modes de réalisation sont possibles. Dans une première approche, le filtre modifiant peut être calculé de façon classique par l'algorithme de Levinson Durbin agissant sur le signal issu du filtrage du signal de la trame courante par le filtre arrière déterminé. Ainsi, en termes plus génériques, le filtre modifiant peut être déterminé sur la base d'une analyse d'un signal résiduel obtenu après filtrage du bloc courant par un filtre arrière calculé pour un bloc passé. Dans une seconde approche, le filtre modifiant M peut être calculé par approximation d'un filtre avant cible d'ordre équivalent. En effet, si q est l'ordre du filtre modifiant M et r l'ordre du filtre arrière B, il est possible de déterminer, pour la trame courante, le filtre modifié A d'ordre p=q+r-1. Le filtre modifiant (M) peut être estimé par "déconvolution". En effet, il peut être estimé par exemple, selon une première option, par déconvolution de type déterministe, en calculant alors le filtre 1/B(z) (par division polynomiale) que l'on multiplie par le filtre F(z) pour obtenir un filtre M dont le produit avec le filtre arrière B donne une approximation de la réponse fréquentielle du filtre F : le filtre B(z) étant issu d'une analyse LPC, le filtre inverse 1/B(z) est donc stable et peut alors être inversé. Ainsi, en termes génériques, le filtre modifiant peut être estimé, selon cette première option, par déconvolution d'un filtre avant adapté pour le filtrage du bloc courant, par un filtre arrière calculé pour un bloc passé. Selon une deuxième option, le filtre modifiant peut être estimé par une méthode d'identification de Wiener au sens des moindres carrés dans laquelle on calcule les termes d'autocorrélation du filtre arrière (ro, r1, rq_I), ainsi que l'intercorrélation entre le filtre avant cible et le filtre arrière (co,cl... , le filtre M étant alors obtenu par le produit matriciel suivant : rl ro rl ro rl rq-2 rq-1 q-2 ml m2 mq-1 co Cl C2 Cq-1 rl ro rl rl rl q-2 rl ro Ainsi, en termes génériques, cette deuxième option peut être mise en oeuvre par identification au 10 sens des moindres carrés, en calculant des termes d'autocorrélation de coefficients du filtre arrière et d'intercorrélation entre le filtre modifié et le filtre arrière. La deuxième option peut être exécutée en pratique par un algorithme rapide (du type utilisé pour l'identification des coefficients LPC et basé sur l'autocorrélation du signal). Néanmoins, la première option de déconvolution peut être aussi avantageuse. 15 Le filtre M obtenu par l'une quelconque de ces techniques est ensuite quantifié typiquement sous une forme propre à la transmission des coefficients de filtres LPC (par exemple en utilisant une conversion de type LSF, LSP ou ISF (pour « line spectral frequencies », ou «pairs »». Une fois quantifiés, ces coefficients sont convolués au filtre arrière B pour obtenir un filtre A(z) qui pourra 20 être reproduit à l'identique au décodeur. Ensuite, les performances du filtre obtenu sont comparées avec celles du filtre avant quantifié (F) contenant le même nombre de coefficients que le filtre M calculé. Si le nombre de bits utilisés pour transmettre un filtre ne dépend que de la longueur du filtre (ce qui est souvent le cas en codage de 25 parole/audio), alors les performances entre le filtre A et le filtre F peuvent être directement comparées par leur gain de prédiction, calculé sur le signal original x,z. Ainsi : - si le filtre A dispose d'un gain de codage supérieur au filtre F, alors le filtre M est transmis, - et, dans le cas contraire, le filtre F est transmis. 5 Préférentiellement, le filtre A étant d'un ordre supérieur au filtre F (rendant donc son estimation coûteuse au décodeur car faisant intervenir l'estimation du filtre B et le décodage du filtre M), on ne sélectionne le filtre A que si son gain de prédiction est bien supérieur à celui du filtre F (de quelques dB). On a décrit ci-avant comment pouvait être construit un filtre avant à partir d'un filtre arrière choisi. On décrit maintenant comment choisir une entité « filtre arrière ou filtre avant issu de ce filtre arrière », parmi plusieurs possibilités. Un mode de réalisation présenté ci-après considère donc le calcul d'une pluralité de filtres arrière, 10 avant et modifiant. On calcule ainsi à plusieurs ordres des filtres arrière (B) pbo, pbl, pb2, pb3,.... On calcule aussi à plusieurs ordres des filtres avant quantifiés (F) pfo, pfv pf2, pJ3,- Le nombre de filtres avant n'est pas nécessairement identique au nombre de filtres arrière. Pour un ensemble de filtres arrière déterminé, on calcule, suivant le procédé présenté 15 précédemment, un ensemble de filtres modifiants quantifiés. Il est judicieux de choisir des filtres modifiants ayant des ordres identiques aux ordres des filtres avant F déjà calculés (pfo, pfi, pfz, pf3)- La convolution des filtres arrière (B) et des filtres modifiés (M) donne alors un ensemble de filtres combinés (A) dont les performances sont comparées à celles des filtres avant (en particulier à celles des filtres avant ayant un ordre identique au filtre modifié M). 20 On a représenté sur la figure 4 les performances des filtres arrière calculés à 5 ordres différents (de Bo d'ordre pbo à B4 d'ordre pb4). On observe que le filtre B4 a de moins bonnes performances que le filtre B3. Ce filtre, comme tout filtre arrière de performance inférieure à un filtre arrière d'ordre d'inférieur, est d'emblée éliminé des considérations ultérieures. On évite ainsi de calculer inutilement des filtres modifiés basés sur ce filtre B4. On a représenté aussi les performances des 25 filtres avant calculés à 4 ordres différents (de Fo d'ordre pfo à F3 d'ordre pf3). L'abscisse du graphe de la figure 4 représente l'ordre de prédiction et l'ordonnée, le gain de prédiction. Sur la base du filtre BI, on calcule un filtre modifiant (M1,o) d'ordre pfo pour obtenir un premier filtre Ao. Sur la base du filtre B2, on calcule un filtre modifiant (M2,0) d'ordre pfo pour obtenir un second filtre 30 Al. Sur la base du filtre B3 on calcule un filtre modifiant (M3,0) d'ordre pfo pour obtenir un troisième filtre A2. 10 Sur la base du filtre B3, on calcule un filtre modifiant (M3,1) d'ordre pfl pour obtenir un quatrième filtre A3. Les filtres A0, AI et A2 ont donc un coût de transmission identique, car ils nécessitent le transport de pfo coefficients. Ce coût de transmission peut être considéré identique à celui du filtre Fo. De même, le coût de transmission du filtre A3 est assimilé au coût de transmission du filtre FI. En positionnant les filtres dans le plan débit/gain de codage (figure 5), on sélectionne finalement les meilleures possibilités pour le codage de l'enveloppe LPC. Il apparaît que les configurations pertinentes sont alors les filtres B3, Ao ou A2, FI, F2 et F3. Les autres configurations, offrant des performances inférieures pour un débit identique ou supérieur, peuvent donc être éliminées. Ainsi, pour un débit limité à do, on pourra choisir les filtres Ao ou A2, ou alors le filtre B3. En effet, il apparaît que ce sont les filtres qui offrent le meilleur gain de prédiction pour une sollicitation de débit do relativement modeste. Pour ce dernier choix, il peut être pris en compte un critère de complexité, en particulier au décodeur, car : 15 le choix du filtre Ao nécessite le calcul du filtre BI et le décodage d'un filtre modifiant d'ordre pfo le choix du filtre A2 nécessite le calcul du filtre B2 et le décodage d'un filtre modifiant d'ordre pfo : ce choix implique donc plus de complexité que celui du filtre Ao pour une performance identique 20 le choix du filtre B3 nécessite le calcul d'un filtre d'ordre élevé pb3 et présente donc plus de complexité. Si la solution retenue dépend de la complexité admise au décodeur, on retient dans cet exemple le filtre Ao. 25 Dans la réalisation ci-dessus, des configurations de même débit étaient comparées entre elles. Bien entendu, il est possible de comparer aussi des configurations ayant des débits différents. A cet effet, on utilise la relation ci-après donnant le rapport signal à bruit d'un signal codé par prédiction linéaire : SNR=Gp+6.02d 30 où d représente le nombre de bits affectés à la transmission du résidu. Ce nombre peut être estimé, connaissant le débit total, pour le codage de la trame audio (T), le nombre d'échantillons qu'elle comporte (N) et le débit nécessaire au codage du filtre LPC (R), comme suit : r= (T-R)/N Ainsi pour comparer deux configurations à débits différents, on peut comparer leur rapport signal à bruit : SNR2- SNR1 = G 2 - GP1 + 6.02(R1- R2)/N Si cette quantité est positive, on choisira le filtre d'indice 2 (sinon, le filtre d'indice 1 En fonctionnement dynamique, le type de filtre avant/arrière/combiné peut changer d'une trame à la suivante, selon le choix effectué au codeur. On veillera cependant à éviter les changements de configuration trop rapides si les gains de prédiction ne sont pas suffisamment différents, en particulier entre la configuration utilisée sur la trame précédente et la configuration donnant les meilleures performances sur la trame courante. Typiquement, un changement n'est utile qu'au-delà d'un certain seuil (par exemple 1 dB). En outre, le codeur doit informer le décodeur afin qu'il puisse calculer le filtre LPC choisi. Des informations utiles à cet effet sont par exemple : la présence d'un filtre arrière B, la présence d'un filtre avant F, l'ordre du filtre arrière utilisé, l'ordre du filtre avant utilisé, - l'ordre du filtre modifiant M, les coefficients du filtre avant, les coefficients du filtre modifiant. Toutefois, elles ne sont pas toutes nécessaires, pour une configuration donnée. On envisage les trois possibilités suivantes : - filtre avant filtre arrière filtre arrière plus filtre modifiant. Une syntaxe efficace peut se présenter comme suit : 10 Code Nb Remarque si(B) 1 présence du filtre arrière { lecture index_pb 2 ordre du filtre arrière } si(F) 1 présence du filtre { lecture index_pf 1 ordre du filtre avant ou } lecture des f[pf] ISF,... nombre de bits, dépend de Dans cet exemple, les coefficients de filtres sont supposés quantifiés sous leur forme ISF. Ils sont regroupés pour être codés conjointement. Une configuration typique utilisée dans le codeur AMRWB (3GPP) est reprise dans cet exemple de réalisation. Elle est de 46 bits pour 16 coefficients LPC représentés sous la forme ISF. Pour 10 coefficients, on utilisera plutôt 18 bits par exemple. La lecture de l'indicateur index_pb sur 2 bits est associée à un nombre de coefficients de filtre correspondant. Par exemple, on peut prévoir l'association suivante : Index pb pB 0 4 1 8 2 16 3 32 De même, l'indicateur index_pf peut être représenté sur un seul bit : Index pf pB 0 10 1 16 Si le filtre B est à estimer, les coefficients f' sont interprétés comme les coefficients du filtre modifiant le filtre arrière. Sinon les coefficients f' sont interprétés comme des coefficients de filtre avant. La syntaxe présentée ci-dessus peut être aménagée, ou même simplifiée, si on réduit le nombre de 15 combinaisons. Par exemple, le champ index_pb peut être omis s'il n'est envisagé qu'un seul ordre de filtre arrière possible. Par exemple, si le filtre B doit être transmis, l'ordre du filtre arrière pourra être implicitement fixé à 16. De même, pour le filtre avant F ou modifiant M, une seule longueur peut être envisagée, par exemple 16. 25 La syntaxe se simplifie alors comme suit : Code nb Remarque B 1 présence du filtre arrière si(F) 1 présence du filtre { f[pf] ISF,... 16 coefficients lecture des } Au décodage, le décodeur, sur lecture de l'information indiquant l'utilisation du filtre arrière et de son ordre, calcule le filtre arrière de l'ordre indiqué sur les échantillons décodés au préalable. Sur réception de l'indication de présence et de l'ordre d'un filtre, il décode les indices ISF transmis pour convertir le filtre en coefficients de filtres LPC. Bien entendu, ici, si seul le filtre arrière est signalé (sans indices ISF), le décodeur comprend que le filtre utilisé n'est finalement que le filtre arrière (B). Si les deux filtres sont transmis (avec les indices ISF), le décodeur comprend que le filtre A utilisé est le filtre «modifié » (obtenu par la convolution des filtres avant et arrière (B*M), le filtre M étant interprété comme le filtre modifiant). Si seul le filtre avant est transmis avec son ordre, le décodeur comprend que le filtre utilisé est le filtre avant seul. Ainsi, la présente invention propose une alternative au codage de l'enveloppe LPC, élément critique pour la qualité d'un codage notamment en codage audio. Du fait de la syntaxe légère proposée, un mode alternatif de codage de l'enveloppe LPC n'entraîne aucune difficulté par rapport aux techniques actuelles : le codeur peut toujours choisir le mode standard LPC avant, comme position de repli. De même, tout comme l'état de l'art, le décodeur est capable d'utiliser des filtres arrière, notamment lorsque le signal est stationnaire. Néanmoins, il est aussi capable de tirer avantage des deux approches en les combinant. Ainsi, on augmente encore les performances du filtre LPC en augmentant sa précision pour produire une qualité améliorée. Par opposition à l'état de l'art, le fait de compléter un filtre arrière avec un filtre modifiant, entraîne moins de variations brusques dans le traitement des trames (plus de commutation avant/arrière brusque d'une trame à la suivante). Ici encore, une amélioration de qualité est apportée. La présente invention vise aussi un dispositif d'encodage d'un signal pour la mise en oeuvre du procédé de codage ci-avant. Un exemple de réalisation est représenté sur la figure 6A et un tel codeur Dl comporte par exemple : 18 des moyens CALC pour calculer un filtre modifié A sur la base d'un filtre arrière et au moins en fonction du signal dans le bloc courant SGN-Tn (dans une trame courante Tn par exemple), et des moyens de codage COD d'au moins un bloc courant en utilisant ce filtre modifié A. Ainsi, en référence à la figure 6B, le dispositif encodeur, sur la base d'un signal SGN dans une trame courante Tn à l'étape 10, détermine un gain de prédiction Gp pour un débit donné d, en envisageant plusieurs types de filtres avant F, arrière B et modifiés A et retient à l'étape 12 le filtre présentant par exemple le meilleur gain de prédiction, à ce débit donné d. Si le meilleur filtre candidat est un filtre modifié A (étape 13), la construction de celui-ci implique un filtre modifiant Mj, l'ordre j de ce filtre modifiant pouvant être choisi en fonction de l'ordre i du filtre arrière Bi sur la base duquel est construit le filtre modifié A. A l'étape 14, les coefficients du filtre modifiant Mj et l'ordre i du filtre Bi peuvent être alors envoyés à un dispositif décodeur D2. La présente invention vise aussi un programme informatique comportant des instructions pour la mise en oeuvre de ces étapes, lorsque ce programme est exécuté par un processeur, par exemple d'un tel dispositif d'encodage Dl. Ainsi, l'organigramme représenté sur la figure 6B peut illustrer l'algorithme général d'un tel programme. La présente invention vise aussi le dispositif de décodage D2 d'un signal encodé pour la mise en oeuvre du procédé de décodage. En référence à la figure 7A, un tel dispositif comporte au moins : des moyens de réception REC d'informations (par exemple des informations représentant les coefficients du filtre modifiant Mj (sous forme d'ISF par exemple) et l'ordre i du filtre arrière Bi), pour le calcul d'un filtre prédictif modifié A, des moyens de calcul CALC de ce filtre modifié A, basé sur : * un filtre arrière Bi, calculé pour un bloc passé, précédant le bloc courant, et * des paramètres d'enrichissement du filtre arrière Bi, issus des informations reçues, et des moyens de décodage DEC d'au moins un bloc courant en utilisant le filtre modifié A. Ainsi, en référence à la figure 7B, le dispositif décodeur reçoit à l'étape 20 des informations (par exemple issues du codeur Dl), ces informations peuvent comporter ici : les paramètres d'enrichissement précités, sous la forme de coefficients d'un filtre modifiant Mj, ainsi, qu'un ordre i de filtre arrière Bi à calculer. A l'étape 21, ce filtre arrière Bi est calculé, à partir de données précédemment décodées (par exemple d'une trame précédente T_i) et en utilisant l'ordre i de filtre. A l'étape 22, le filtre modifiant Mj et le filtre arrière Bi ainsi calculé sont combinés (par exemple par convolution) pour obtenir à l'étape 23 le filtre modifié A servant au décodage du signal par le dispositif décodeur D2 (étape 24), pour une trame courante à délivrer t La présente invention vise aussi un programme informatique comportant des instructions pour la mise en oeuvre de ces étapes, lorsque ce programme est exécuté par un processeur, par exemple d'un tel dispositif de décodage D2. Ainsi, l'organigramme représenté sur la figure 7B peut illustrer l'algorithme général d'un tel programme. Le programme pour la mise en oeuvre du procédé d'encodage (figure 6B) et le programme pour la mise en oeuvre du procédé de décodage (figure 7B) peuvent être regroupés au sein d'un même programme informatique général au sens de l'invention. Bien entendu, la présente invention ne se limite pas à la forme de réalisation décrite ci-avant à titre d'exemple ; elle s'étend à d'autres variantes. Ainsi par exemple, le critère de choix d'un filtre illustré par la figure 5 peut ne pas se limiter simplement au meilleur gain de prédiction pour un débit donné. Outre le seuil en dB à fixer pour passer d'un filtre arrière à un filtre modifié (ou d'un filtre modifié à un filtre avant) sans perception audible pour un utilisateur, un autre critère pouvant être pris en considération peut être la complexité des calculs à mener au codeur ou au décodeur. Ainsi, en référence à nouveau à la figure 5, les filtres modifiés Ao et A2 sont les meilleurs candidats au débit do. Il sera alors choisi préférentiellement le filtre A0, moins complexe que le filtre A2, et offrant néanmoins les mêmes performances en termes de gain de prédiction. 10 REVENDICATIONS1. Procédé de codage d'un signal numérique comportant une succession de blocs consécutifs de données, à partir d'un filtre prédictif, caractérisé en ce qu'il comporte l'utilisation d'un filtre prédictif modifié (A), pour le codage d'au moins un bloc courant, ledit filtre modifié (A) étant construit sur la base de : un filtre arrière (B) calculé pour un bloc passé, précédant le bloc courant, et de paramètres d'enrichissement (M) du filtre arrière, déterminés en fonction du signal dans le bloc courant. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte, pour le codage d'un bloc courant, un choix basé sur au moins un critère prédéterminé, d'un filtre prédictif parmi au moins : un filtre arrière (B), calculé pour un bloc passé, précédant le bloc courant, et un filtre avant (F), adapté pour le bloc courant, et 15 un filtre modifié (A), estimé sur la base d'un filtre arrière et en fonction du signal dans le bloc courant. 3. Procédé selon la revendication 2, caractérisé en ce que ledit critère tient compte d'une stationnarité du signal entre le bloc passé et le bloc courant, pour le choix de l'un des filtres parmi 20 un filtre arrière, un filtre avant et un filtre modifié. 4. Procédé selon la revendication 3, caractérisé en ce que le critère prédéterminé comporte une estimation d'un gain de prédiction basée sur un rapport entre la puissance du signal dans le bloc courant et la puissance d'un signal résiduel après filtrage de ce signal en utilisant chacun desdits 25 filtre arrière, avant et modifié. 5. Procédé selon l'une des revendications 3 et 4, caractérisé en ce que ledit critère tient compte en outre d'un nombre de paramètres à envoyer à un décodeur pour le décodage d'un bloc courant et comportant au moins des coefficients que comporte le filtre à choisir. 21 30 5 6. Procédé selon la revendication 5, prise en combinaison avec la revendication 4, caractérisé en ce que le critère prédéterminé comporte une recherche d'optimum entre : le gain de prédiction qu'offre le filtre, et un débit adapté pour la transmission desdits paramètres. 7. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte les étapes : a) déterminer une pluralité de filtres avant (F0, F1, F2, F3) d'ordres respectifs distincts, b) déterminer une pluralité de filtres arrière (B0, B1, B2, B3) d'ordres respectifs distincts, c) calculer une pluralité de filtres modifiés (A0, Al, A2, A3) d'ordres respectifs distincts, estimés 10 chacun sur la base d'un filtre arrière déterminé à l'étape b) et en fonction du signal dans un bloc courant, d) comparer, pour un même nombre de paramètres à envoyer à un décodeur, ce nombre étant déterminé en fonction desdits ordres de filtre, les performances d'au moins deux filtres parmi lesdits filtres avant, lesdits filtres arrière et lesdits filtres modifiés, et 15 e) sélectionner, pour le codage d'un bloc courant, un filtre prédictif présentant les meilleures performances selon la comparaison de l'étape d), pour un nombre donné de paramètres à envoyer à un décodeur. 8. Procédé selon l'une des revendications précédentes, caractérisé en ce que les paramètres 20 d'enrichissement comportent les coefficients d'un filtre modifiant (M), et en ce que le filtre modifié (A) est construit par combinaison du filtre modifiant (M) au filtre arrière (B). 9. Procédé selon la revendication 8, caractérisé en ce que le filtre modifiant (M) est estimé par déconvolution d'un filtre avant (F) adapté pour le filtrage du bloc courant, par ledit filtre arrière 25 calculé pour un bloc passé. 10. Procédé selon la revendication 8, caractérisé en ce que le filtre modifiant (M) est déterminé sur la base d'une analyse d'un signal résiduel obtenu après filtrage du bloc courant par ledit filtre arrière calculé pour un bloc passé. 30 11. Procédé selon la revendication 8, caractérisé en ce que le filtre modifiant (M) est estimé par identification au sens des moindres carrés, en calculant des termes d'autocorrélation de coefficients du filtre arrière (B) et d'intercorrélation entre le filtre modifié (A) et le filtre arrière (B). 12. Procédé selon l'une des revendications 8 à 11, caractérisé en ce qu'il comporte en outre une communication à un décodeur, d'informations de type : choix d'un filtre avant pour un boc courant, avec une transmission de paramètres représentant des coefficients du filtre avant, ou choix d'un filtre arrière ou d'un filtre modifié pour un bloc courant, avec, dans le cas d'un choix d'un filtre modifié, une transmission de paramètres représentant des coefficients dudit filtre modifiant (M). 13. Procédé de décodage d'un signal numérique comportant une succession de blocs consécutifs de données, le procédé utilisant un filtre prédictif pour le décodage d'un bloc courant, caractérisé en ce qu'il comporte : une réception d'informations pour le calcul d'un filtre prédictif modifié (A) basé sur : * un filtre arrière (B), calculé pour un bloc passé, précédant le bloc courant, et * des paramètres d'enrichissement (M) du filtre arrière, issus des informations reçues, et une utilisation dudit filtre prédictif ainsi modifié (A) pour le décodage d'au moins un bloc courant. 14. Procédé selon la revendication 13, caractérisé en ce qu'il comporte les étapes, pour la détermination du filtre arrière (B) : détermination d'un ordre du filtre arrière (B), en fonction desdites informations reçues, et calcul du filtre arrière, à partir de données précédemment décodées et en utilisant ledit ordre de filtre. 15. Procédé selon la revendication 14, caractérisé en ce qu'il comporte en outre les étapes, pour le calcul du filtre modifié (A) : réception desdits paramètres d'enrichissement sous forme de coefficients de filtre, pour former un filtre modifiant (M) comportant lesdits coefficients, et combinaison du filtre arrière (B) au filtre modifiant (M) pour former le filtre modifié (A). 16. Dispositif d'encodage d'un signal pour la mise en oeuvre du procédé selon l'une des revendications 1 à 12, caractérisé en ce qu'il comporte au moins : des moyens pour calculer un filtre modifié sur la base d'un filtre arrière et au moins en fonction du signal dans le bloc courant, et des moyens de codage d'au moins un bloc courant en utilisant ledit filtre modifié. 17. Dispositif de décodage d'un signal pour la mise en oeuvre du procédé selon l'une des 10 revendications 13 à 15, caractérisé en ce qu'il comporte au moins : des moyens de réception d'informations pour le calcul d'un filtre prédictif modifié (A) des moyens de calcul dudit filtre modifié, basé sur : * un filtre arrière (B), calculé pour un bloc passé, précédant le bloc courant, et * des paramètres d'enrichissement (M) du filtre arrière, issus des informations reçues, 15 et des moyens de décodage d'au moins un bloc courant en utilisant ledit filtre modifié. 18. Programme informatique comportant des instructions pour la mise en oeuvre du procédé de codage selon l'une des revendications 1 à 12 et/ou pour la mise en oeuvre du procédé de décodage selon l'une des revendications 13 à 15, lorsque ce programme est exécuté par un processeur.