Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR UPDATING AN ENCODER BY FILTER INTERPOLATION
Document Type and Number:
WIPO Patent Application WO/2010/012925
Kind Code:
A1
Abstract:
The present invention relates to a method for updating the processing capacity of an encoder or decoder to use a modulated transform having a size greater than a predetermined initial size. More particularly, the invention relates to the encoders or decoders for storing an initial prototype filter defined by an ordered set of initial size coefficients. A step for constructing a prototype filter of a size greater than said initial size to implement the modulated transform of the greater size by inserting at least one coefficient between two consecutive coefficients of the initial prototype filter.

Inventors:
PHILIPPE PIERRICK (FR)
VIRETTE DAVID (FR)
Application Number:
PCT/FR2009/051302
Publication Date:
February 04, 2010
Filing Date:
July 03, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
PHILIPPE PIERRICK (FR)
VIRETTE DAVID (FR)
International Classes:
G10L19/14; G10L19/02
Foreign References:
FR2828600A12003-02-14
FR2828600A12003-02-14
Other References:
MARTUCCI S A: "Interpolation in the DST and DCT domains", IMAGE PROCESSING, 2000. PROCEEDINGS. 2000 INTERNATIONAL CONFERENCE ON SEPTEMBER 10-13, 2000, PISCATAWAY, NJ, USA,IEEE, vol. 2, 10 September 2000 (2000-09-10), pages 339 - 342, XP010529993, ISBN: 978-0-7803-6297-0
PINCHON D ET AL: "Design Techniques for Orthogonal Modulated Filterbanks Based on a Compact Representation", IEEE TRANSACTIONS ON SIGNAL PROCESSING, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 52, no. 6, 1 June 2004 (2004-06-01), pages 1682 - 1692, XP011113062, ISSN: 1053-587X
INTERPOLATION IN THE DST AND DCT DOMAINS
PINCHON D ET AL., DESIGN TECHNIQUES FOR ORTHOGONAL MODULATED FILTERBANKS BASED ON A COMPACT REPRESENTATION
Attorney, Agent or Firm:
Froger, Marie-Hélène (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de mise à jour de la capacité de traitement d'un codeur ou décodeur pour mettre en œuvre une transformée modulée de taille supérieure à une taille prédéterminée, ledit codeur ou décodeur étant adapté pour stocker un filtre prototype initial défini par un ensemble ordonné de coefficients de taille initiale, ledit procédé étant caractérisé en ce qu'il comporte une étape de construction d'un filtre prototype de taille supérieure à ladite taille initiale pour mettre en œuvre la transformée de taille supérieure à la taille prédéterminée, par insertion d'au moins un coefficient entre deux coefficients consécutifs du filtre prototype initial.

2. Procédé selon la revendication 1, caractérisé en ce que les coefficients insérés sont calculés à partir des coefficients du filtre initial.

3. Procédé selon la revendication 1, caractérisé en ce que le coefficient inséré entre lesdits deux coefficients consécutifs, est calculé par pondération d'au moins lesdits deux coefficients consécutifs.

4. Procédé selon la revendication 3, dans lequel le filtre prototype initial vérifie une relation de reconstruction prédéterminée, caractérisé en ce que la pondération est réalisée au moyen d'au moins une fonction de pondération calculée à partir de ladite relation de reconstruction.

5. Procédé selon la revendication 4, caractérisé en ce que la fonction de pondération est calculée pour chaque position, entre les deux coefficients consécutifs, du coefficient inséré.

6. Procédé selon la revendication 1, caractérisé en ce que

- la taille du filtre construit h' est U fois plus grande que la taille M du filtre initial h, avec U et M des entiers naturels strictement supérieurs à un ;

- on définit une valeur de décalage S telle que 0 < S < U , S étant un entier naturel ; et

- les filtres construit et initial vérifient la relation: h , pour tout entier naturel n tel queO ≤ n < M .

7. Procédé selon la revendication 3, caractérisé en ce que

- la taille du filtre construit h' est U fois plus grande que la taille M du filtre de base h, avec U et M des entiers naturels strictement supérieurs à un ;

- on définit une valeur de décalage S telle que 0 ≤ S < U ;

- on définit, pour tout entier naturel δ vérifiant 0 < S < U deux fonctions de pondération

- on définit les coefficients insérés par la relation : , pour tout entier naturel n vérifiant n < M .

8. Programme informatique comportant des instructions pour la mise en œuvre du procédé selon la revendication 1 lorsque ce programme est exécuté par un processeur.

9. Codeur (COD) de signaux numériques comportant au moins deux zones mémoires (MEMl, MOD_EXT), une première zone mémoire (MEMl) pour stocker un premier ensemble de coefficients définissant un filtre prototype initial (φj) de taille donnée, et une deuxième zone mémoire (MOD_EXT) pour stocker un programme informatique comportant des instructions pour délivrer un deuxième ensemble de coefficients déterminés à partir des coefficients du premier ensemble, l'ensemble formé par l'insertion de coefficients du deuxième ensemble entre deux coefficients consécutifs du premier ensemble, définissant un filtre prototype (φe) de taille supérieure à celle du filtre prototype initial.

10. Codeur selon la revendication 9, caractérisé en ce qu'il comporte des moyens pour mettre œuvre le procédé selon la revendication 3 pour construire le filtre prototype de taille supérieure à celle du filtre prototype initial.

11. Procédé de codage par transformée modulée mis en œuvre par un codeur, comportant les étapes :

- obtenir (S80) la taille d'une transformée modulée à mettre en œuvre pour le codage ;

- si la taille de la transformée est supérieure à la taille d'un filtre prototype initial (T82) stocké dans le codeur, mettre à jour (S84) la capacité de traitement du codeur selon un procédé selon l'une des revendications 1 à 8; - coder le signal au moyen de ladite transformée modulée en mettant en œuvre le filtre prototype construit lors de la mise à jour (S86).

12. Décodeur (COD) de signaux numériques comportant au moins deux zones mémoires (MEMl, MOD_EXT), une première zone mémoire (MEMl) pour stocker un premier ensemble de coefficients définissant un filtre prototype initial (φi) de taille donnée, et une deuxième zone mémoire (MOD_EXT) pour stocker un programme informatique comportant des instructions pour délivrer un deuxième ensemble de coefficients déterminés à partir des coefficients du premier ensemble, l'ensemble formé par l'insertion de coefficients du deuxième ensemble entre deux coefficients consécutifs du premier ensemble, définissant un filtre prototype (φe) de taille supérieure à celle du filtre prototype initial.

13. Décodeur selon la revendication 12, caractérisé en ce qu'il comporte des moyens pour mettre œuvre le procédé selon la revendication 3 pour construire le filtre prototype de taille supérieure à celle du filtre prototype initial.

14. Procédé de décodage par transformée modulée mis en œuvre par un décodeur, comportant les étapes :

- obtenir (S80) la taille d'une transformée modulée à mettre en œuvre pour le décodage ;

- si la taille de la transformée est supérieure à la taille d'un filtre prototype initial (T82) stocké dans le décodeur, mettre à jour (S84) la capacité de traitement du codeur selon un procédé selon l'une des revendications 1 à 8; - décoder le signal au moyen de ladite transformée modulée en mettant en œuvre le filtre prototype construit lors de la mise à jour (S86).

Description:
PROCEDE DE MISE A JOUR D'UN CODEUR PAR INTERPOLATION DE FILTRE

La présente invention concerne un traitement de signal, notamment un signal audio (tel un signal de parole) et/ou vidéo, sous forme d'une succession d'échantillons. Elle concerne en particulier un traitement de signal par transformée et se rapporte notamment au domaine des transformées modulées.

Les transformées modulées trouvent leur application dans l'analyse et la transmission des signaux numérisés (sous la forme donc d'une succession d'échantillons espacés dans le temps d'une période d'échantillonnage). Elles trouvent également leur application dans la synthèse de signaux. A titre d'exemple, le codage d'un signal peut faire intervenir un banc de filtres d'analyse, une quantification, et un banc de filtres de synthèse.

Pour les transformées modulées, on définit habituellement des filtres appelés « prototypes » qui sont modulés selon différentes valeurs en fréquence. De cette manière, on dispose d'un ensemble de canaux permettant de représenter le signal à différentes positions dites « fréquentielles ».

Les modulations peuvent être réalisées par une opération du type: , o ú:

- n est un indice temporel correspondant à un multiple de la période d'échantillonnage,

- k est un indice représentant un canal fréquentiel considéré, et

- L est la longueur du filtre (et de la modulation).

En outre, dans l'expression ci-dessus :

- définit le filtre prototype pouvant avoir une valeur complexe, - définit la fonction modulante pour le canal k qui peut être aussi à valeurs complexes,

- définit le filtre modulé pour le canal k.

Pour procéder à l'analyse d'un signal par exemple à coder, on projette le signal x(n) à analyser sur le filtre modulé par une opération de produit scalaire :

Les signaux analysés peuvent être le résultat de plusieurs projections, par exemple sous la forme : , où et sont respectivement un gain, une modulation et un indice fréquentiel, ces derniers pouvant être différents de h k et k.

Ces opérations d'analyse peuvent être succédées dans le temps, donnant lieu à une série de signaux k évoluant dans le temps.

On peut ainsi écrire:

, m désignant un indice de blocs d'échantillons successifs (ou « trame ») et T définissant la durée d'une trame (en nombre d'échantillons).

Les transformées modulées trouvent également leur application dans la synthèse de signaux. Pour ce type d'application, un contenu sera généré dans un certain nombre de canaux fréquentiels et ces canaux seront assemblés pour restituer un signal numérique.

Un signal est ainsi synthétisé par projection des signaux transformés y k sur les M vecteurs de synthèse. On définit d'abord une expression x(n) telle que :

Les signaux y k peuvent évoluer dans le temps, de sorte que la synthèse permettra ainsi de générer un signal d'une longueur arbitraire :

Les vecteurs définis par les expressions x , pour 0 < n < L , sont décalés de M échantillons puis additionnés entre eux, pour donner un signal synthétisé Jc . On parle d'opération dite « d'addition avec recouvrement ».

Les transformées modulées trouvent avantageusement une application en codage des signaux.

Dans les systèmes de codage en fréquence, on procède à une transformée d'analyse au moyen de filtres d'analyse modulés avec :

Les signaux porteurs d'information utile (l'utilité pouvant être jugée par exemple au travers d'un critère de distorsion perceptif), sont alors approximés et transmis sous une forme codée.

Au niveau du décodeur, les composantes approximées reçues sont synthétisées par la transformation inverse pour restituer une approximation des échantillons originaux.

La synthèse est réalisée au moyen d'un ensemble de filtres modulés de synthèse

Puis, on procède à l'opération d'addition recouvrement pour obtenir un signal reconstruit et décodé .

Une classe de transformations modulées intéressantes est définie par les transformations à reconstruction parfaite.

Ces transformations permettent d'obtenir, au décodage, un signal décodé correspondant sensiblement, voire parfaitement dans le cas de la reconstruction parfaite, au signal initial lorsque les composantes y^ transformées ne sont pas modifiées, et ce moyennant un retard R, soit :

La reconstruction peut également être à reconstruction « quasi-parfaite » lorsque la différence entre les signaux reconstruits et peut être considérée négligeable. Par exemple, en codage audio, une différence ayant une puissance d'erreur 50 dB plus faible que la puissance du signal x traité peut être considérée comme négligeable.

Les transformations les plus utilisées sont de type "ELT" (pour "Extended Lapped Transforms") qui assurent la reconstruction parfaite et qui utilisent un filtre de longueur Les transformations en Cosinus Discret Modifié ou "MDCT" (pour "Modified Discrète Cosine Transform"), de type « MLT » (pour « Modulated Lapped Transform »), en sont un cas particulier avec K = 1.

Les filtres miroirs en quadrature (ou « QMF »), ou encore les filtres PQMF (pour « Pseudo Quadrature Mirror Filter »), sont une solution à reconstruction quasi-parfaite utilisant des termes de modulation différents.

Ces différentes transformées peuvent être à coefficients réels ou complexes. Elles peuvent faire usage de filtre prototypes symétriques ou non.

Afin de satisfaire la condition de reconstruction parfaite ou quasi parfaite, pour toute forme de signal traité, les filtres modulés d'analyse et de synthèse doivent être liés les uns aux autres. Ainsi, des relations lient les termes de modulation et les filtres prototypes utilisés à l'analyse et à la synthèse. Par exemple, dans les systèmes à cosinus modulés (MDCT, ELT, PQMF, ou autres), les termes de modulation à l'analyse et à la synthèse sont liés, par exemple sous la forme désignant respectivement les modulations utilisées à l'analyse et à la synthèse et ψ désignant un terme de déphasage

Un cas particulier, communément utilisé, est défini par φ =0 Les modulations sont alors identiques à l'analyse et à la synthèse

Les filtres prototypes d'analyse et de synthèse peuvent également être liés entre eux pour assurer une reconstruction (quasi-)parfaite, avec une contrainte du type suivant, souvent employée , où h et / sont les filtres prototypes utilisés à l'analyse et à la synthèse

Les modulations sont contraintes pour permettre d'assurer la reconstruction parfaite Par exemple, on peut choisir communément pour les transformées ELT

avec

De même, les filtres prototypes sont contraints afin d'assurer la reconstruction parfaite, avec, par exemple, une contrainte du type

On peut notamment choisir les filtres prototypes parmi

- ceux définis analytiquement sous la forme d'une équation et, dans cette classe, un filtre communément utilisé pour la transformée MDCT (avec K=I) s'exprime par

- les filtres résultant d'une optimisation numérique selon un critère qui ne permet pas de déduire une fonction analytique, tels que, par exemple, un filtre qui peut être obtenu en minimisant une quantité sous la contrainte de reconstruction parfaite (cette quantité pouvant être une atténuation en bande coupée à partir d'une fréquence de coupure, ou encore un gain de codage ou plus généralement tout autre quantité jugée pertinente pour la qualité de codage).

Comme évoqué précédemment, les filtres prototypes peuvent être symétriques ou non, la relation de symétrie s'écrivant :

La modélisation de la mise en œuvre des transformations modulées décrite ci-avant est donnée à titre explicatif. Dans les implémentations matérielles de ces transformées, tous les calculs décrits ci-avant ne sont pas effectuées dans cette forme. Pour des raisons d'efficacité de calcul, de temps de calcul, et d'utilisation de ressources de calcul, on prévoit des implémentations dites « rapides ». Ces implémentations ne reprennent pas explicitement les calculs présentés ci-avant, ces calculs étant par ailleurs valables.

Les transformations modulées telles que présentées dans la suite, sont définies par des algorithmes rapides permettant une mise en œuvre efficace par des moyens de calcul. Ces algorithmes reposent sur des transformées de Fourier rapides ou dérivées de celles-ci, telles que les transformations en cosinus ou en sinus rapides (par exemple des transformées DCT dites « de type 4 »).

Un ordre de transformation pour l'algorithme rapide inférieur ou égal au nombre M de composantes fréquentielles est suffisant pour l'implémentation de ces transformations. Par ailleurs, ces transformations sont efficaces car leur complexité est proportionnelle au log 2 (M) du nombre M de composantes.

Une opération de réduction de L échantillons vers un nombre inférieur ou égal à M composantes est appliquée en amont de la transformation rapide.

Un algorithme complet de la transformation à l'analyse peut combiner : • une multiplication des échantillons de taille L par le filtre prototype,

• une combinaison du résultat de cette multiplication, c'est-à-dire une combinaison linéaire basée sur des multiplications de coefficients et des additions, permettant de déduire des L valeurs pondérées un nombre inférieur ou égal à M de composantes,

• une transformation rapide d'ordre inférieur ou égal à M

Ces opérations sont effectuées dans un ordre inversé pour effectuer la transformation de synthèse.

La figure 1 illustre l'analyse et la synthèse telle que décrite précédemment. Le signal x est présenté à un codeur COD comportant un filtre prototype φ. Un ensemble d'échantillons de taille L du signal sont ensuite multipliés par le filtre prototype dans le module MULTl. On réalise alors, dans le module CLl, une combinaison linéaire des échantillons multipliés par le filtre prototype afin de passer des L échantillons aux M composantes. On réalise alors une transformation rapide TRl, avant de transmettre les échantillons vers un décodeur DECOD.

Dès la réception des échantillons, le décodeur applique une transformation rapide TR2. Puis, à l'inverse de ce qui a été fait dans le codeur, on commence par réaliser une combinaison linéaire CL2 pour passer au nombre initial L

d'échantillons. Ces échantillons sont ensuite multipliés par le filtre prototype du

décodeur DECOD afin de reconstituer un signal x à partir duquel, par opération

d'addition recouvrement on obtient le signal x .

Les coefficients du filtre prototype, du codeur ou du décodeur, doivent être stockés en mémoire afin de réaliser la transformée d'analyse ou de synthèse. Bien entendu, dans un système particulier utilisant des transformées modulées de tailles différentes, le filtre prototype pour chacune des tailles utilisées doit être représenté en mémoire.

Dans le cas favorable où les filtres sont symétriques, seuls L/2 coefficients ont besoin d'être stockés, les L/2 autres se déduisant sans opération arithmétique de ces coefficients stockés. Ainsi, pour une MDCT (K=I), si on a besoin d'une transformée de taille M et 2.M alors il faut stocker (M+2M)=3M coefficients si les prototypes sont symétriques et (2M+4M)=6M sinon. Un exemple typique pour le codage audio est M=320 ou M-1024. Ainsi, pour le cas asymétrique cela impose le stockage de 1920 et 6144 coefficients respectivement.

Selon la précision souhaitée pour la représentation des coefficients, 16 bits voire 24 bits pour chaque coefficient sont nécessaires. Cela implique un espace mémoire non négligeable pour des calculateurs de bas coût.

Si on dispose du filtre prototype pour une transformée de taille UM alors il est possible d'obtenir les coefficients pour la transformée de taille M par décimation. Classiquement, cela consiste à prélever un coefficient de filtre sur U dans cet exemple précis.

En revanche si on dispose uniquement d'un filtre pour la transformation de taille M, il est beaucoup moins simple d'étendre ce filtre pour une utilisation à MU coefficients. Une méthode directe d'interpolation polynomiale ne permet pas de conserver la précision de reconstruction du niveau de celle obtenue pour la transformation de base taille M. Ce type de méthode n'est donc pas optimal.

Lorsqu'un système de codage cœur est implémenté dans un codeur, il peut être utile de l'étendre, par exemple dans le cas d'une mise à jour d'une version normalisée du système de codage. Par exemple, les codeurs normalisés ITU G.718 et ITU G.729.1 font appel tous les deux à des transformées modulées MDCT de tailles respectives M= 320 et M= 160. Dans une extension de ces normes, afin d'opérer ces codeurs à une fréquence d'échantillonnage plus élevée, on parle alors d'extension super wide band, des MDCT de tailles supérieures sont nécessaires. Une MDCT de taille M'=640 doit être appliquée dans cette extension.

Dans une extension selon l'art antérieur, il faudrait étendre la quantité de stockage pour exprimer des coefficients d'un nouveau filtre prototype. De plus, il serait nécessaire de prévoir une intervention sur le codeur pour enregistrer les coefficients.

La présente invention vient améliorer la situation, en proposant un moyen d'économiser de la mémoire, à la fois en ROM pour le stockage de coefficients, et/ou en RAM pour le calcul de la transformation.

On propose à cet effet un procédé de mise à jour de la capacité de traitement d'un codeur ou décodeur pour mettre en œuvre une transformée modulée de taille supérieure à une taille prédéterminée, un tel codeur ou décodeur étant adapté pour stocker un filtre prototype initial défini par un ensemble ordonné de coefficients de la taille initiale. On prévoit une étape de construction d'un filtre prototype de taille supérieure à la taille initiale pour mettre en œuvre la transformée modulée de taille supérieure à la taille prédéterminée, par insertion d'au moins un coefficient entre deux coefficients consécutifs du filtre prototype initial.

Ainsi, au lieu de stocker des coefficients additionnels pour la transformation, on propose d'utiliser les coefficients déjà présents dans le codeur.

De cette manière, il est possible de définir une transformation de taille UM en ne stockant qu'un seul filtre prototype conçu pour une transformation de taille M.

Bien entendu, les coefficients additionnels peuvent être utilisés à l'analyse ou à la synthèse ou aux deux extrémités d'une chaîne de traitement.

L'invention trouve une application avantageuse dans les systèmes embarqués, dans lesquels le prix de la mémoire représente une part importante du coût du système. Par exemple, en téléphonie mobile dans laquelle la consommation, la miniaturisation et le prix des codeurs/décodeurs implémentés doivent être optimisés. La réduction d'espace mémoire apportée par l'invention permet cette optimisation.

On entend par « mise à jour » le passage d'un état initial d'un codeur/décodeur en fonctionnement vers un état suivant différent. Mais l'invention se rapporte également à l'initialisation d'un codeur/décodeur qui n'a pas encore été mis en œuvre pour un codage/décodage.

Avantageusement, les coefficients insérés sont calculés à partir des coefficients du filtre initial.

Par exemple, on peut prévoir que le coefficient inséré entre les deux coefficients consécutifs, est calculé par pondération d'au moins les deux coefficients consécutifs.

En outre on peut prévoir un procédé dans lequel le filtre prototype initial vérifie une relation de reconstruction prédéterminée, par exemple une relation de reconstruction parfaite. Dans ce cas, on réalise la pondération au moyen d'au moins une fonction de pondération calculée à partir de la relation de reconstruction.

En effet, il faut veiller à ce que les coefficients ajoutés permettent encore le bon fonctionnement du codeur. Ainsi, on prévoit une détermination des coefficients additionnels qui se fonde sur une pondération des coefficients du prototype initial et qui permet une transformation à reconstruction parfaite ou quasi parfaite.

Dans des modes de réalisation particuliers, la fonction de pondération est calculée pour chaque position, entre les deux coefficients consécutifs, du coefficient inséré.

Selon un mode de réalisation du procédé, la taille du filtre construit h' est U fois plus grande que la taille M du filtre initial h, avec U et M des entiers naturels strictement supérieurs à un. Dans ce cas, on définit une valeur de décalage S telle que étant un entier naturel et les filtres construit et initial vérifient la relation: h , pour tout entier naturel n tel queO ≤ n < M .

On peut en outre définir, pour tout entier naturel δ vérifiant deux fonctions de pondération Ainsi, on définit les coefficients insérés par la relation : , pour un entier n .

On peut aussi prévoir que les deux fonctions de pondération sont égales. Enfin, on peut prévoir d'étendre le filtre prototype initial par symétrie, antisymétrie, ou ajout de coefficients nuls. Ces dispositions peuvent être utiles pour définir des coefficients manquant dans le filtre initial pour construire le filtre prototype.

On comprendra que la construction de filtre prototype proposée par l'invention, permet une réduction additionnelle du nombre de coefficients lorsque le filtre prototype initial contient des zéros. La fenêtre interpolée aura alors des zéros dans sa réponse impulsionnelle et des plages comprenant des coefficients égaux. L'espace mémoire nécessaire sera donc encore réduit.

Selon le schéma d'interpolation de pondération utilisé, le procédé décrit ci- avant permet d'obtenir des filtres prototypes ayant des réponses fréquentielles intéressantes dans la bande passante.

La présente invention prévoit en outre, un programme informatique comportant des instructions pour la mise en œuvre du procédé décrit ci-avant lorsque ce programme est exécuté par un processeur. Elle prévoit également un support lisible par un ordinateur sur lequel est enregistré un tel programme d'ordinateur.

La présente invention prévoit également un codeur et un décodeur adaptés pour mettre en œuvre le procédé décrit ci-avant. Un codeur/décodeur selon la présente invention, comporte au moins deux zones mémoires, une première zone mémoire pour stocker un premier ensemble de coefficients définissant un filtre prototype initial de taille donnée, et une deuxième zone mémoire pour stocker un programme informatique comportant des instructions pour délivrer un deuxième ensemble de coefficients déterminés à partir des coefficients du premier ensemble. L'ensemble formé par l'insertion de coefficients du deuxième ensemble entre deux coefficients consécutifs du premier ensemble, définissent un filtre prototype de taille supérieure à celle du filtre prototype initial.

On peut en outre prévoir que ce codeur/décodeur comporte des moyens pour mettre œuvre le procédé de mise à jour décrit plus haut pour construire le filtre prototype de taille supérieure à celle du filtre prototype initial.

On peut en outre prévoir un procédé de codage/décodage par transformée modulée mis en œuvre par un codeur/décodeur comportant les étapes :

- obtenir la taille d'une transformée modulée à mettre en œuvre pour le codage/décodage ;

- si la taille de la transformée est supérieure à la taille d'un filtre prototype initial du codeur/décodeur, mettre à jour la capacité de traitement du codeur/décodeur selon la méthode de mise à jour décrite plus haut;

- coder/décoder le signal au moyen de la transformée modulée en mettant en œuvre le filtre prototype construit lors de la mise à jour.

Avantageusement, le procédé de codage/décodage est mis en œuvre par un codeur/décodeur tel que décrit ci-avant.

Un codage/décodage par transformée modulée est un codage/décodage mettant en œuvre une telle transformée. L'étape « obtenir la taille d'une transformée » peut par exemple correspondre à la réception d'un signal contenant une information indiquant cette taille. Un tel signal peut par exemple indiquer un mode de codage. Dans ce cas on prévoit un mode basse résolution, avec des trames de données de taille réduite, et donc nécessitant une transformée de taille réduite, et un mode haute résolution avec des trames de données de taille plus grande, nécessitant une transformée de taille plus grande. Néanmoins, on peut aussi prévoir de lire cette information dans un fichier informatique. On peut encore prévoir que cette détermination correspond à une entrée du codeur/décodeur.

Bien entendu, la mise à jour du codeur/décodeur peut aussi s'entendre comme l'initialisation du codeur/décodeur.

Le choix de la taille de la transformée modulée peut également se faire en fonction du nombre d'échantillons, par exemple conditionné par la taille des trames ou des sous-trames à traiter par le codeur/décodeur. En effet, plus le nombre d'échantillon par trame ou sous-trames est grand, plus la taille de la transformée doit être grande.

Ainsi on peut mettre en œuvre des transformées de tailles variables au cours du temps, les filtres prototypes étant mis à jour au cours du temps, sur la base d'un prototype initial, suivant les besoins.

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, en outre la figure 1 :

- la figure 2 illustre l'insertion de coefficients entre deux coefficients consécutifs du filtre initial, pour construire le filtre prototype ;

- la figure 3 illustre un filtre initial et un filtre construit à partir du filtre initial ;

- les figures 4 à 5 illustrent des filtres construits selon différents modes de réalisation de l'invention ; - la figure 6 illustre un sous-ensemble d'un filtre comportant des coefficients constants ;

- la figure 7 illustre un codeur selon un mode de réalisation de l'invention ;

- la figure 8 illustre les étapes d'un procédé de codage/décodage selon un mode de réalisation de l'invention.

On décrit ci-après une réalisation de l'invention permettant de construire une fenêtre prototype à partir d'une fenêtre prototype correspondant à une transformation de taille inférieure. On se place dans le cadre général des transformées modulées de type ELT, à fenêtres symétriques ou non. Dans le cadre des ELT le filtre prototype a une longueur L=2KM pouvant inclure un certain nombre M 1 de zéros en son extrémité, M définissant le nombre de coefficients transformés.

La transformation d'analyse s'écrit :

, où n est un indice temporel correspondant à un multiple de la période d'échantillonnage,

k est un indice représentant un canal fréquentiel considéré,

, définit le filtre prototype d'analyse, , définit la fonction modulante pour la fréquence k.

La transformation de synthèse s'écrit : , OÙ , définit le filtre prototype de synthèse, ) est un signal de longueur L qui contient des termes parasites qui seront supprimés par opération d'addition recouvrement pour obtenir un signal x(n) de durée équivalente à x(n) .

Pour les ELT la modulation w(k,n) est définie par :

Ces transformations permettent d'assurer une reconstruction parfaite c'est- à-dire que jc(n) est identique à x(n) à un retard près.

Pour assurer une reconstruction parfaite les filtres /et h doivent satisfaire la contrainte suivante :

Avec la fonction δ définie comme

Un mode de réalisation concerne les MDCT c'est-à-dire le sous ensemble des ELT ayant des filtres de longueur L=2M, c'est-à-dire avec K=I. La condition de reconstruction parfaite s'écrit alors :

Une solution consiste à prendre :

Ceci permet d'utiliser les mêmes coefficients de filtre prototype à l'analyse et à la synthèse. Seul un retournement temporel, correspondant au terme 2M-l-n sera à considérer dans l'algorithme de synthèse. Dans ce cas, la relation de reconstruction parfaite s'écrit :

Sur la base de cette transformation de taille M , on construit une transformation de taille supérieure pour .On définit donc un filtre h' dont un certain nombre de coefficients sont issus du filtre h .

Ainsi, comme représenté sur la figure 2, on construit le filtre h' de la façon suivante : . Avec S une valeur de décalage, 0 < S < U .

Afin d'assurer la reconstruction parfaite, le filtre prototype de longueur L M doit vérifier une relation de reconstruction similaire à celle présentée ci-dessus :

' sachant que les échantillons d'indice multiple de U à la position S sont pris parmi les h(n).

On décrit dans la suite des modes de déterminations des valeurs de h' manquantes.

Mode général

La figure 3 illustre le principe de la détermination du filtre construit. On part d'un filtre φι de taille M. Ensuite, on redistribue les coefficients de ce filtre φi sur un intervalle plus grand de taille 2M. Enfin, on calcule les coefficients intermédiaires pour compléter le filtre final φ 2 . Les échantillons intermédiaires, comme sur la figure 2, sont construits suivant l'équation qui définit un mode de réalisation général: et δ un entier 0 < δ< U , sont des fonctions de pondération.

Si S=O delta initial = 0 et n initial nO = 0

Si S!=0 delta initial =U-S et n initial n

Ainsi seront définies afin de permettre notamment le calcul de nécessaire quand S est différent de zéro. La première valeur de delta sera

Il faut noter que l'expression de h' peut faire appel à des points non définis. Par exemple fait appel qui n'est pas défini.

Pour définir les coefficients manquants, on peut étendre le filtre h dans l'ensemble des formules selon l'une des dispositions suivantes:

• , par antisymétrie,

• , pour n ≥ 0 , par symétrie,

• , ajout de coefficients nuls.

De même on peut étendre h pour des indices négatifs. Par exemple, pour définir A'(0) il faut définir h[-l) . Ainsi, ce coefficient peut être déterminé par extension de h vers les indices négatifs selon l'une des dispositions suivantes :

• par antisymétrie,

• , pour n ≥ 0 , par symétrie,

• par ajout de coefficients nuls. Dans d'autres cas, les extensions vers les échantillons négatifs et supérieurs à L sont réalisées au sens du modulo par duplication multiple du support 0...L-1.

Pour assurer la reconstruction parfaite de h'(n), on réécrit d'(n) en un point particulier:

avec

d'où :

ce qui est équivalent à

En conclusion, étant donné un choix de Q on peut établir une pondération P permettant d'obtenir la reconstruction parfaite.

Mode de réalisation à pondération unique

Un mode de réalisation particulier consiste à imposer P = Q. Dans ce cas, on peut obtenir une expression directe pour la fonction de pondération :

On peut écrire d' en un autre point

On obtient alors une relation permettant de construire une série de pondération permettant la reconstruction parfaite, à partir d'un donné.

Sur base de cette expression on peut généraliser la définition des fonctions de pondération. Elles s'appuieront par paire sous la forme

Cette expression permet de générer des pondérations qui construiront le filtre interpolé sous un critère défini.

Par exemple, la réponse fréquentielle de h' sera privilégiée en minimisant son énergie en bande coupée à partir d'une fréquence donnée, en maximisant sa continuité ou son gain de codage vu au travers d'un signal particulier.

Cas d'interpolation d'ordre 2

Réalisation particulière U=2, S=O

Le filtre est interpolé par :

La figure 4 illustre un filtre prototype Sl, de type sinusoïdal, de taille 640 pour une MDCT de 320, et un filtre prototype S2 de taille 1280 pour une MDCT de 640 obtenu à partir de Sl selon la présente réalisation particulière (Sl a volontairement été centré autour de 640 pour comparer Sl et S2).

Cas d'interpolation d'ordre 2 avec zéro en extrémité

Dans un mode de réalisation particulier h(n) incluant des zéros en son extrémité (c'est-à-dire dans des indices consécutifs démarrant en n=0, ou en n-L- J), sans perte de généralité on aura h(n) = 0 pour . Du fait de l'interpolation proposée, les h' seront alors nuls dans le support correspondant. Une propriété particulière de l'interpolation proposée est la suivante :

Ainsi il vient :

Ce choix particulier d'interpolation permet d'obtenir des plages de coefficients constants lorsque des zéros sont imposés dans le filtre h. Ces plages ont une longueur 2 pour l'exemple. Par généralisation, on montre que pour une interpolation d'ordre U, les plages ont une longueur U, dans une zone centrée autour de l'indice

La figure 5 illustre un filtre prototype Al, de type « ald », de taille 640 pour une MDCT de taille 320, et un filtre prototype A2 de taille 1280 pour une MDCT de 640 construit à partir de Al selon le présent cas. Comme pour la figure 4, Al a été centré. Le filtre Al comporte 80 zéro en son extrémité Z. Ainsi, A2 comporte des plages d'échantillons constants de taille 2 du fait que Al comporte des zéros en son extrémité.

La figure 6 est un zoom sur la zone de A2 comportant des échantillons constants C. Mise en œuvre

Les filtres prototypes construits selon le procédé décrit ci-avant permettent une implémentation rapide.

Dans l'art antérieur, la première étape lors de l'analyse consiste à pondérer les échantillons par la fenêtre de la transformée considérée avant transformation rapide, comme présenté ci-avant.

Ici, du fait de l'interpolation, les coefficients du filtre prototype peuvent être agencés de sorte qu'ils complètent ceux issus de l'ordre inférieur de transformée.

Par exemple pour une interpolation d'ordre U avec un décalage de S, on peut écrire :

Ainsi, la mémoire du codeur/décodeur pour le filtre prototype peut donc avantageusement être organisée en deux segments: un premier segment contenant les coefficients du filtre prototype initial sur lequel reposera la première pondération et un second segment contenant les coefficients interpolés. Ainsi, on évitera la duplication de l'espace mémoire tout en conservant l'algorithme de calcul rapide. Cette propriété est conservée côté synthèse des sous bandes lors de la transformation inverse.

Dans le cas d'une interpolation basée sur un filtre initial ayant des zéros en extrémité, l'opération de pondération par le filtre de taille supérieur peut donner lieu à une simplification des opérations. En effet, dans la zone centrale autour de n-UM les coefficients du filtre prototype obtenu ont des échantillons constants. Ainsi une factorisation sous la forme :

peut être mise en évidence.

Cela permet d'éviter d'une part de stocker les échantillons interpolés identiques au filtre prototype initial, et d'autre part d'économiser des opérations de pondération grâce à la factorisation. Dans la plage d'échantillons concernée, c'est- à-dire la zone centrée autour de UM on épargnera ainsi (U-I) multiplications par échantillon pondéré.

Dans la suite, en référence à la figure 7, on décrit un codeur adapté pour mettre en œuvre le procédé décrit ci-avant. Un décodeur pourrait avoir la même structure. Le codeur COD comporte une unité de traitement PROC adaptée pour mettre en œuvre une analyse ou une synthèse de signal, comme cela a déjà été décrit. Pour réaliser ces opérations, le codeur COD s'appuie sur un filtre prototype. Le codeur comporte une première zone mémoire MEMl pour enregistrer un filtre prototype initial φ,. Par exemple, ce filtre initial permet de réaliser des transformations modulée de taille maximale M. Pour réaliser des transformées modulées de taille supérieure, le codeur comporte une zone mémoire MOD_EXT pour stocker un programme informatique comportant des instructions pour construire un filtre prototype φ e de taille supérieure à φ,. Pour cela, on calcule des coefficients additionnels comme décrit plus haut. Ces coefficients additionnels sont ensuite stockés dans une zone mémoire MEM2.

La figure 8 illustre un procédé de codage/décodage qui adapte le filtre prototype utilisé en fonction de la taille souhaitée pour la transformation modulée.

A l'étape S 80, on commence par obtenir la taille de la transformée à utiliser pour l'analyse, respectivement la synthèse, du signal à coder, respectivement décoder. Lors du test T82, on détermine si la taille de la transformée modulée est supérieure à la taille d'un filtre prototype φ, stocké en mémoire pour réaliser la transformée modulée.

Si la taille de la transformée modulée est supérieure à la taille du filtre prototype, on passe à l'étape S84 de construction d'un filtre prototype φ e de taille supérieure, comme déjà décrit ci-dessus. Ensuite, à l'étape S86, on réalise le codage, respectivement décodage, du signal.

Si la taille de la transformée est égale à la taille du filtre, on peut passer l'étape S82 de construction, et aller directement à l'étape S86.

Avantageusement, si la transformée a une taille inférieure à celle du filtre, on passe par une étape de réduction de la taille du filtre, par exemple par décimation avant de réaliser l'étape S86.

Bien entendu, la présente invention ne se limite pas aux formes de réalisation décrites ci-avant, elle s'étend à d'autres variantes. Par exemple, on a décrit un calcul de coefficients additionnel par pondération de deux coefficients consécutif, mais on peut envisager d'autres modes de réalisation où la pondération porte sur un nombre plus grand de coefficients.