Procédé de compression de signal
La présente invention concerne de manière générale la compression de signaux couvrant un intervalle temporel et variables dans le temps.
Plus précisément, l'invention concerne un procédé de compression de tels signaux, un signal compressé obtenu par un tel procédé, un procédé de décompression d'un tel signal compressé, et un procédé de transmission d'un signal sous forme compressée.
L'invention concerne également un signal compressé obtenu par un tel procédé de compression, un procédé de décompression associé et un procédé de transmission sous forme compressée d'un signal initial.
L'invention s'applique notamment aux signaux numériques ou analogiques de type audio. Cependant, ceci n'est aucunement limitatif et on verra qu'au contraire l'invention peut s'appliquer à tous types de signaux.
Il existe déjà des méthodes de compression de signaux couvrant un intervalle temporel et variables dans le temps (notamment de signaux numériques audio).
Ces méthodes fonctionnent généralement selon une approche fréquentielle, c'est à dire qu'elles traitent différemment certaines composantes fréquentielles du signal à compresser. On peut à cet égard citer comme exemple la méthode de compression correspondant au standard de compression MP3 (que nous désignerons par le terme générique de méthode MP3 - on précise que MP3 est une marque déposée).
Ce type de méthode connue exploite la distribution spectrale de l'énergie du signal audio par rapport aux capacités auditives de l'oreille humaine.
Par exemple, dans la compression de signaux numériques audio par une méthode telle que la méthode MP3, on exploite le fait que l'énergie de signaux audio est toujours distribuée selon un schéma général donné, les niveaux d'énergie de ces signaux dans certaines bandes de fréquence étant toujours plus élevés que les niveaux d'énergie de ces mêmes signaux dans d'autres bandes de fréquences - ceci étant vrai quel que soit le signal audio particulier considéré.
Pour une compression de type MP3 en effet, on procède à une analyse spectrale du signal audio et on applique un modèle psychoacoustique pour ne conserver de ce signal que les sons audibles.
Dans une telle compression, on élimine ainsi les fréquences inaudibles pour l'oreille humaine (en moyenne l'oreille humaine est capable de discerner des sons entre 20Hz et 2OkHz, avec une sensibilité maximale dans la bande de 2 à 5 kHz).
Ces méthodes de compression connues exploitent donc les connaissances préalables du spectre moyen d'un signal audio et les propriétés psychoacoustiques de l'oreille humaine.
Et ces méthodes peuvent ainsi répartir l'« effort » du codage de compression (c'est à dire concentrer les bits de codage) sur les bandes de fréquence où il est connu que le son est le plus perceptible.
Mais la limitation qui découle d'une telle approche est que de telles méthodes connues ne sont donc applicables que pour un type de signal donné (par exemple, signal audio pour la méthode MP3).
Par ailleurs, si ces méthodes connues fonctionnent bien sur des signaux - notamment audio - « propres », elles ne permettent pas en tant que telles d'éliminer le bruit qui peut être associé au signal initial à compresser.
Notamment, dans le cas de la compression d'un signal initial audio qui comporte avant compression un bruit audio, il est nécessaire de prendre en compte ce bruit audio avec des traitements spécifiques en vue de le réduire - ces traitements spécifiques venant en ajout de la mise en œuvre de la méthode de compression elle-même, et l'alourdissant ainsi.
On ajoute que lors de la décompression du signal, la lecture de ces fichiers qui correspondent au signal compressé (ces fichiers pouvant être désignés par le terme anglo-saxon de fichiers « buffer », pour fichier tampon) mobilise des emplacements de mémoire et des moyens de traitement informatiques (c'est à dire typiquement des unités CPU) relativement importants.
Notamment, la décompression en temps réel de signaux compressés selon ces méthodes connues mobilise une puissance de traitement importante.
Il apparaît ainsi que les méthodes connues sont associées à certaines limitations.
Le but de l'invention est de permettre de s'affranchir - au moins dans une certaine mesure - de ces limitations.
Afin d'atteindre ce but l'invention propose selon un premier aspect un procédé de compression d'un signal initial couvrant un intervalle temporel et variable dans le temps, procédé caractérisé en ce qu'il comporte les étapes consistant à :
• définir sur ledit intervalle temporel au moins une base de fonctions numériques de base dont la variable est un paramètre de temps,
• définir sur ledit intervalle temporel au moins une fonction approchée du signal initial à compresser, en utilisant lesdites fonctions numériques de base et des coefficients respectifs associés individuellement auxdites fonctions numériques de base,
• élaborer une version compressée dudit signal initial à partir desdits coefficients. Des aspects préférés, mais non limitatifs de ce procédé de compression sont les suivants :
• ladite fonction approchée est une combinaison linéaire desdites fonctions numériques de base,
• ladite compression irréversible est une compression irréversible avec pertes,
• lesdites fonctions numériques de base sont des polynômes,
• lesdits coefficients sont des nombres réels,
• pour identifier une fonction approchée du signal à compresser les opérations suivantes sont réalisées : > Découpage dudit intervalle temporel couvert par le signal initial en fenêtres temporelles,
> Définition pour chaque fenêtre temporelle :
•/ d'une base de fonctions numériques de base, et
-/ de coefficients locaux, chaque fonction numérique de base étant associée individuellement à un des coefficients locaux sur la fenêtre pour générer par combinaison linéaire une fonction approchée du signal initial pour ladite fenêtre.
• l'union desdites fenêtres temporelles couvre l'intégralité dudit intervalle temporel couvert par le signal initial,
• certaines au moins des fenêtres temporelles ont des durées différentes, • pour définir lesdites fenêtres temporelles on effectue les opérations suivantes :
> Calcul de la dérivée nième par rapport au temps dudit signal initial, sur ledit intervalle temporel couvert par le signal initial,
> Définition de chaque fenêtre temporelle, ladite définition impliquant pour une fenêtre temporelle donnée les opérations suivantes :
•S Suivi de la variation de ladite dérivée nième dudit signal initial en fonction du temps, à partir d'un instant de début de ladite fenêtre temporelle donnée, S Définition de l'instant de fin de ladite fenêtre temporelle donnée par identité avec l'instant auquel l'amplitude de ladite variation atteint une valeur seuil prédéterminée, •S Définition de l'instant de début de la fenêtre temporelle suivant ladite fenêtre temporelle donnée par identité avec ledit instant de fin de ladite fenêtre temporelle donnée.
• ladite dérivée nième dudit signal initial est une dérivée seconde de ce signal,
• ledit calcul de dérivée est réalisé par l'intermédiaire d'un développement de Taylor tronqué calculé sur N segments temporels dont la réunion couvre l'intégralité dudit intervalle de temps couvert par le signal initial,
• lesdits segments temporels présentent des recouvrements entre eux, de manière à permettre de n'utiliser que des estimations convergentes des dérivées dudit développement de Taylor tronqué,
• la taille desdits segments temporels est ajustée en fonction d'un compromis entre débruitage et réactivité à la dynamique du signal,
• lesdits segments temporels sont définis indépendamment desdites fenêtres temporelles,
• la valeur dudit seuil peut être ajustée en fonction d'un compromis désiré entre taux de compression et bruit de codage, • la définition de coefficients locaux pour chaque fenêtre temporelle est effectuée par une méthode des moindres carrés,
• le signal compressé comporte pour chaque fenêtre temporelle :
> La durée de ladite fenêtre,
> Les coefficients permettant d'approcher localement le signal initial par combinaison linéaire sur ladite fenêtre.
• le signal compressé comporte, pour certaines au moins des fenêtres temporelles (depuis une jusqu'à toutes), un identifiant de base de fonctions.
• ledit signal initial est un signal numérique, • ledit signal initial est un signal audio.
L'invention propose également un signal compressé issu d'une compression d'un signal initial réalisée par un procédé de compression selon un des aspects évoqués ci-dessus. Ce signal peut typiquement être composé principalement de tableaux de chiffres. L'invention propose également un procédé de décompression d'un signal compressé par un procédé de compression selon un des aspects évoqués ci-dessus caractérisé en ce que le procédé de décompression comprend les étapes consistant à :
• Extraire du signal compressé au moins un jeu de coefficients (les coefficients respectifs étant associés individuellement à des fonctions numériques de base prédéfinies),
• Reconstituer une fonction approchée d'un signal initial par combinaison linéaire desdits coefficients avec des fonctions numériques de base.
Un aspect préféré, mais non limitatif de ce procédé est le suivant :
• le procédé de décompression comprend également l'étape consistant à extraire du signal compressé des informations permettant de reconstituer des fenêtres temporelles sur lesquelles lesdites fonctions numériques de base sont définies.
Et l'invention propose également un procédé de transmission sous forme compressée d'un signal initial caractérisé en ce que ledit procédé de transmission comporte les étapes consistant à :
• Compresser le signal initial à transmettre par un procédé de compression selon un des aspects évoqués ci-dessus,
• Transmettre le signal sous forme compressée, • Décompresser le signal compressé transmis.
Des aspects préférés, mais non limitatifs de ce procédé sont les suivants :
• ledit signal sous forme compressée comporte les coefficients associés aux fonctions numériques de base qui approchent au mieux le signal initial,
• ledit signal sous forme compressée comporte uniquement les coefficients associés aux fonctions numériques de base qui approchent au mieux le signal initial,
• ledit signal sous forme compressée comporte uniquement les coefficients associés aux fonctions numériques de base qui approchent au mieux le signal initial au sens des moindres carrés,
• ledit procédé de transmission comprend le cryptage dudit signal compressé par un procédé de compression selon un des aspects évoqués ci-dessus, • ledit procédé de transmission comprend la compression d'un signal préalablement compressé selon une méthode de compression connue
en soi, par un procédé de compression selon un des aspects évoqués ci-dessus,
• ladite méthode de compression connue est une méthode de compression avec pertes, • ladite méthode de compression connue est une méthode de type MP3 (marque déposée).
Enfin l'invention vise également un dispositif informatique pour la compression et/ou la décompression. Un tel dispositif est caractérisé en ce qu'il comprend une mémoire capable de contenir l'expression d'au moins une base de fonctions, et au moins une table de coefficients, et au moins un processus capable de mettre en oeuvre le procédé visé plus haut (en toutes ses variantes) sur un un signal à compresser (10) afin d'établir une table de coefficients et d'en tirer un signal compressé. En particulier, la mémoire peut être agencée en outre pour contenir une définition de fenêtres, et le dispositif comprend alors un processus préliminaire (non nécessairement distinct du premier) capable de découper le signal à compresser en fenêtres sur la base d'un critère prédéfini. De plus, ce processus préliminaire peut opérer par calcul de dérivée sur la base d'un développement de Taylor tronqué.
D'autres aspects, buts et avantages de l'invention apparaîtront mieux à la lecture de la description suivante, et des dessins annexés sur lesquels :
• La figure 1 représente de manière schématique un signal à compresser, le graphe de la figure 1 étant une représentation de l'évolution en fonction du temps de l'intensité du signal, sur un intervalle de temps I1
• La figure 2 représente le même signal, le graphe de la figure 2 représentant en outre des fenêtres temporelles qui découpent l'intervalle de temps I, • La figure 3 reprend les éléments de la figure 2, avec en addition la représentation de segments temporels qui couvrent l'intervalle de temps I,
• La figure 4 est un schéma par blocs de la compression selon un mode de réalisation de l'invention,
• La figure 5 est un schéma par blocs de la décompression selon un mode de réalisation de l'invention, et • La figure 6 est un diagramme temporel illustrant un aspect de la détermination des fenêtres.
La description est suivie d'une annexe regroupant les formules d'allure non textuelle qui seront visées ci-après.
On précise en préalable à cette description que les figures 1 à 3 - et le signal qui y est représenté - ne correspondent aucunement à un cas réel, mais ont pour seul dessein d'illustrer le principe de l'invention. Il est également précisé que les entiers servant d'indice, comme / ou j, sont contextuels, et n'ont pas une signification constante dans la présente description.
Compression de signal
Généralités
En référence maintenant à la figure 1, on a représenté un signal 10 variable dans le temps sur un intervalle temporel I. Le signal 10 peut être un signal numérique ou analogique. II peut notamment s'agir d'un signal audio - mais ce signal peut également être de tout autre type.
On va exposer dans cette section les principaux aspects du procédé de compression de signal selon l'invention.
Et comme on va le voir, le procédé de compression selon l'invention adopte une approche différente des approches connues, qui ont été mentionnées en introduction de ce texte.
L'élaboration d'un signal compressé se fait dans le cas de l'invention selon les étapes principales suivantes :
• définition sur ledit intervalle temporel d'au moins une base de fonctions numériques de base dont la variable est un paramètre de temps, • définition sur ledit intervalle temporel d'une fonction approchée du signal initial à compresser, en utilisant lesdites fonctions numériques de base et des coefficients respectifs associés individuellement auxdites fonctions numériques de base,
• élaboration d'une version compressée dudit signal initial à partir desdits coefficients.
Ces aspects vont être détaillés ci-dessous.
Fonctions de base
Le procédé comporte ainsi une étape de définition d'au moins une base B de fonctions numériques dites « de base » - car on verra qu'elles forment typiquement les éléments d'une base permettant de générer (par exemple par combinaison linéaire) une fonction approchée du signal 10.
Selon la figure 4, et comme on le verra, un organe 42 peut découper l'intervalle temporel I en fenêtres temporelles Fi, notées 43-1 à 43-n sur la figure 4. Et l'on peut définir sur chaque fenêtre Fi une base de fonctions individuellement associée à la fenêtre (organe 45).
Dans la suite de ce texte, on considérera ainsi qu'une base donnée Bi est associée à une fenêtre temporelle Fi donnée. Et les opérations que l'on décrira à propos d'une base Bi seront à comprendre comme étant exécutées sur la fenêtre Fi associée à la base Bi. Dans un cas limite, l'intervalle I ne comprend qu'une seule fenêtre temporelle, qui lui est égale. Les modalités de définition des fenêtres Fi seront exposées plus loin dans ce texte. Quant aux notations : - Bi désigne globalement la base de fonctions associée à la fenêtre temporelle Fi,
- Bij désigne le jeu de fonctions de la base Bi associée à la fenêtre temporelle Fi (j est l'indice des éléments dans la base Bi).
- si la base de fonctions est commune à toutes les fenêtres Fi, son jeu de fonctions peut alors être noté simplement Bj.
Le rôle des fonctions numériques d'une base Bi donnée est de permettre de construire sur la fenêtre associée Fi à cette base Bi une fonction approchée FA du signal 10. Par « fonction numérique », on entend ici toute fonction calculable automatiquement. Cette construction peut par exemple être faite par combinaison linéaire des fonctions de base, en multipliant chaque fonction de base Bij par un coefficient Cij et en sommant les produits ainsi constitués. Cela correspond aux organes 48-1 à 48-n de la figure 4, les fonctions de base Bij (ou des identifiants de celles-ci) étant stockés en 45. Pour la fenêtre courante Fi1 l'organe 48-i fournit une fonction approchée Fai. La fonction approchée FA du signal 10 est la suite rangée temporellement des fonctions FAi (si les fenêtres Fi se recouvrent, des pondérations peuvent être effectuées sur les recouvrements)
Dans une application préférée de l'invention, les fonctions de base sont des polynômes de degrés croissants. On peut ainsi constituer pour une fenêtre Fi une base Bij avec les polynômes suivants comme fonctions de base (la variable des fonctions de base est le temps t) :
• BiO = 1 , • BM = t,
• Bi2 = t2,
• etc.,
• Bin = tn.
Dans ce cas, la base Bi comporte (n+1) fonctions de base. Dans le cas de fonctions de base définies par des polynômes d'ordres croissants, plus l'ordre le plus élevé de ces polynômes sera important :
• plus la fenêtre associée pourra être grande, mais
• plus le nombre de coefficients à définir et stocker pour la fenêtre sera important.
Un compromis doit donc être recherché à cet égard - et les Demandeurs ont déterminé que l'ordre 2 donnait des résultats tout à fait satisfaisants.
Les fonctions de base peuvent être différentes pour les différentes fenêtres Fi. Il est également possible de retenir les mêmes fonctions de base - et donc la même base - pour toutes les fenêtres Fi. On décrira dans la suite de ce texte un exemple particulier de mise en œuvre de l'invention dans lequel les fonctions de base sont les polynômes mentionnés ci-dessus, pour toutes les fenêtres Fi.
Et, dans cet exemple, les coefficients Cij seront des nombres réels (c'est-à-dire des approximations informatiques de nombres réels) . Ils sont utilisés pour construire par combinaison linéaire une fonction représentant une valeur approchée du signal 10, sur chaque fenêtre (on nomme cette fonction la « fonction approchée » - elle est définie sur une fenêtre donnée, chaque fenêtre Fi étant associée à une fonction approchée FAi respective). Dans ce cas (figure 4), pour chaque fenêtre Fi on définira un nombre j de coefficients Cij égal au nombre i de fonctions de base Bij définies sur la fenêtre Fi. C'est le rôle de l'organe 46.
Des coefficients différents pourront alors être définis pour chaque fenêtre : pour chaque fenêtre Fi les valeurs et les variations du signal 10 amèneront généralement à choisir des coefficients spécifiques pour construire, localement sur la fenêtre, et par combinaison linéaire des fonctions de base, une fonction représentant une valeur approchée du signal 10.
En tout état de cause, quelles que soient les fonctions de base définies pour les fenêtres Fi1 ces fonctions sont définies de manière définitive pour une mise en œuvre donnée de l'invention. Un choix particulier de fonctions de base Bij (qu'elles soient identiques pour toutes les fenêtres Fi, ou non) correspond ainsi à une variante particulière de mise
en œuvre de l'invention (c'est à dire qu'un choix donné de fonctions de base Bij correspond à un protocole particulier de mise en œuvre de l'invention).
A cet égard, on précise que la décompression du signal compressé en utilisant certaines fonctions de base Bij implique la connaissance de ces mêmes fonctions de base Bij. Cette connaissance peut être obtenue par des informations appropriées (telles que des identifiants), incorporées au signal compressé, ou transmises séparément, ou encore déterminables sur la base d'autres caractéristiques du signal compressé. Dans le cas où l'on établit une base de fonctions B^ particulière pour une fenêtre Fn cela peut se faire par examen de la courbure présentée par le signal dans la fenêtre F1-, ou encore dans un sous-ensemble ou sur¬ ensemble contenant celle-ci. Comme on le sait, la courbure peut être déterminée notamment à partir de la dérivée première et de la dérivée seconde du signal. Les dérivées « débruitées » dont il sera question plus loin peuvent être utilisées à cet effet.
Définition de la fonction approchée
Une fois les fonctions de base Bij définies pour toutes les fenêtres, l'étape de définition de la fonction approchée sur chaque fenêtre implique d'effectuer un choix de coefficients Cij pour construire la meilleure fonction approchée possible (c'est à dire la fonction dont les valeurs approchent au plus près le signal 10 sur la fenêtre Fi considérée). Ce choix de coefficients peut être réalisé par différentes méthodes d'optimisation connues. Génériquement, les organes 48 comparent leur entrée (signal dans la fenêtre Fi concernée) et leur somme de produits de la forme Cij * Bij pour fournir un signal d'écart permettant à l'organe 46 de sélectionner les coefficients Cij. II est ainsi possible de mettre en œuvre une méthode de type splines. Les Demandeurs ont observé qu'une méthode d'optimisation au sens des moindres carrés était particulièrement bien adaptée (toujours pour
l'exemple des fonctions de base polynômiales exposé ci-dessus). Bien entendu, d'autres procédés d'optimisation peuvent être appliqués, suivant le contexte.
Quelle que soit la méthode retenue pour construire sur chaque fenêtre la fonction approchée, on a élaboré à partir des fonctions de base une fonction approchée sur chaque fenêtre.
Et lors de cette construction par approximation une partie du signal a été perdue, entre le signal initial 10 et le signal compressé 50 qui est défini par les fonctions approchées sur les différentes fenêtres. Le procédé de compression selon l'invention est ainsi un procédé de compression irréversible, avec pertes. Toutefois les essais menés par les Demandeurs ont montré que les performances du procédé selon l'invention - notamment en termes de qualité du signal compressé, de taux de compression, de rapidité de décompression, d'économie de moyens de calcul, et de compatibilité avec d'autres méthodes - étaient extrêmement intéressantes.
Définition des fenêtres - principes généraux
Comme cela a été exposé plus haut dans ce texte, la mise en œuvre du procédé selon l'invention peut impliquer la définition de fenêtres temporelles Fi. En pratique, cette définition des fenêtres sera très souvent mise en œuvre.
Les fenêtres sont définies de manière à ce que leur union couvre l'intégralité de l'intervalle temporel I.
On précise que chaque fenêtre peut avoir une durée différente. Dans un mode préféré (mais non limitatif) de mise en œuvre de l'invention, on définit les fenêtres Fi en réalisant les opérations suivantes :
• Calcul de la dérivée nième (c'est à dire la dérivée d'ordre n) par rapport au temps du signal initial 10, sur l'intervalle temporel I,
• Définition de chaque fenêtre temporelle Fi1 ladite définition impliquant pour une fenêtre temporelle Fi donnée les opérations suivantes :
> Suivi de la variation de la dérivée nième du signal 10 en fonction du temps, à partir d'un instant de début de ladite fenêtre temporelle Fi,
> Définition de l'instant de fin de ladite fenêtre temporelle Fi par identité avec l'instant auquel l'amplitude de la variation de cette dérivée nième atteint une valeur seuil prédéterminée,
> Définition de l'instant de début de la fenêtre temporelle suivant Fi+1 par identité avec l'instant de fin de la fenêtre Fi.
La figure 2 représente à titre d'illustration des fenêtres F1 à F8 (on rappelle que les figures ne correspondent pas à des cas réels - et sur cette figure les fenêtres Fi ne sont pas nécessairement en correspondance avec des franchissement de seuil d'une dérivée nième du signal 10).
Les Demandeurs ont déterminé que l'ordre de dérivation à appliquer au signal pouvait être choisi comme le second ordre (c'est à dire qu'on considère la dérivée seconde du signal 10 pour définir les fenêtres Fi), ce qui est bien adapté, notamment pour la compression de signaux audio. Toutefois, d'autres ordres de dérivation peuvent être préférables, au moins dans certains cas.
Dans ce mode préféré de réalisation, on définit ainsi les fenêtres Fi à partir du suivi des variations d'une dérivée nième (par exemple la dérivée seconde) du signal initial 10. On peut utiliser également des combinaisons de dérivées, comme les dérivées d'ordre (1) et (2), qui représentent la courbure, ou d'autres ordres.
Calcul de dérivée nième
Le calcul (on précise que ce « calcul » n'est pas un calcul exact, mais qu'il correspond plus précisément à une estimation) de dérivée nième du signal peut être réalisé par l'intermédiaire d'un développement de Taylor tronqué dudit signal, ce développement étant calculé sur N segments temporels dont la réunion couvre l'intégralité dudit intervalle de temps couvert par le signal initial.
La figure 3 représente ainsi des segments temporels S1 à S10.
On précise que les segments Si sont définis indépendamment des fenêtres Fi. Plus précisément, ces segments sont définis préalablement à la définition des fenêtres Fi.
Les segments Si peuvent présenter des recouvrements entre eux (c'est à dire que certains segments voisins peuvent recouvrir un certain domaine temporel), de manière à permettre de n'utiliser que des estimations convergentes des dérivées dudit développement de Taylor tronqué (mettant en œuvre typiquement des techniques de type fenêtres glissantes). La taille des segments Si est définie de manière à permettre de construire une approximation du signal 10 sur chaque segment, avec le développement de Taylor tronqué mentionné ci-dessus.
Et la taille de ces segments peut être ajustée en fonction d'un compromis entre débruitage et réactivité à la dynamique du signal. A cet égard les opérateurs utilisés pour le calcul de dérivée sont assimilables à des filtres robustes au bruit (anti-bruit) - et plus grande est la taille de la fenêtre glissante mentionnée ci-dessus à propos du développement de Taylor tronqué, meilleur est le débruitage).
Une description plus détaillée d'un exemple de réalisation est donnée plus loin.
Ajustement de la valeur du seuil
On précise que la valeur du seuil qui est utilisé pour définir les fenêtres Fi peut être ajustée en fonction d'un compromis désiré entre taux de compression et bruit de codage :
• plus la valeur du seuil est importante, plus le taux de compression sera important : le signal compressé se résume en effet à la définition des fenêtres temporelles et aux coefficients associés à chaque fenêtre, et une valeur de seuil plus importante tendra à générer un nombre moins important de fenêtres Fi pour l'intervalle I,
• plus la valeur du seuil est réduite, plus les fenêtres tendront à être de taille réduite, et plus l'approximation du signal 10 par la fonction approchée sera bonne sur chaque fenêtre.
Signal compressé
Le signal compressé 50 - qui correspond aux fonctions approchées sur les différentes fenêtres Fi - est totalement défini par les informations suivantes pour chaque fenêtre Fi :
• La durée de ladite fenêtre, • Les coefficients permettant d'approcher localement le signal initial par combinaison linéaire sur ladite fenêtre.
La connaissance de ces informations permet en effet de reconstituer le signal compressé.
On précise que les éléments suivants sont par ailleurs connus des moyens de décompression :
• Fonctions de base,
• mode de construction (combinaison linéaire par exemple) des fonctions approchées sur les fenêtres Fi, à partir des coefficients associés à la fenêtre. Ces éléments définissent un protocole particulier de compression/décompression selon l'invention. On remarque que la valeur du seuil (qui a permis de définir les fenêtres dans la variante où celles-ci sont définies comme exposé ci-dessus) ne fait pas partie de ce protocole.
Ces éléments de protocole étant donc considérés comme connus, le signal compressé est complètement défini par une matrice dont :
• chaque ligne correspond à une fenêtre temporelle Fi,
• chaque ligne comporte les informations suivantes (dans un ordre prédéterminé, qui est également défini par le protocole considéré) :
> durée de la fenêtre, > coefficients à appliquer aux fonctions de base de la fenêtre pour reconstruire sur cette fenêtre la fonction approchée du signal 10.
On peut ainsi par exemple envisager un protocole de mise en œuvre de l'invention selon lequel :
• les fonctions de base sont identiques sur toutes les fenêtres, et sont au nombre de trois : > fonction unitaire qui à t associe la valeur 1 ,
> fonction identité qui à t associe t lui-même,
> fonction carré qui à t associe t2,
• la construction de la fonction approchée se fait sur chaque fenêtre Fi par combinaison linéaire de ces trois fonctions de base, en leur associant trois coefficients respectifs (les coefficients étant à cet effet ordonnés, en un premier, un deuxième et un troisième coefficient).
Pour un tel protocole, chaque ligne de la matrice mentionnée ci- dessus comportera une durée de fenêtre et trois coefficients, rangés selon l'ordre dans lequel ils doivent être utilisés pour la combinaison linéaire des trois fonctions de base.
Dans tous les cas, le taux de compression d'un signal initial 10 échantillonné (notamment un signal numérique) sera défini par la valeur : (Nf * Nd) / Ne, avec Nf : nombre de fenêtres Fi, Nd : nombre de coefficients par fenêtre,
Ne : nombre de points d'échantillonnage du signal initial sur l'intervalle I.
Transmission et décompression
En pratique, on peut constituer avec le signal compressé 50 un fichier informatique, qui dans un mode préféré de réalisation de l'invention ne contient que la matrice exposée ci-dessus.
Si plusieurs protocoles de mise en œuvre de l'invention sont susceptibles d'être employés, le fichier contenant le signal compressé peut également contenir les éléments (fonctions de base, mode de construction
des fonctions approchées) permettant de définir le protocole utilisé pour la compression.
On remarquera qu'en tout état de cause les informations définissant le signal compressé forment un fichier de taille extrêmement réduite, puisque ces informations sont réduites à la durée de chaque fenêtre Fi et aux coefficients associés.
Ce fichier peut être transmis à des moyens de décompression, par tout moyen connu en soi (transmission d'un support physique contenant un enregistrement du fichier, transmission à distance par l'intermédiaire d'une liaison publique - par exemple le réseau internet - ou privée, etc.).
Comme le montre la figure 5, les moyens de décompression peuvent alors, en fonction du protocole considéré, décompresser le signal en reconstruisant les fenêtres (53-1 à 53-n) à partir des informations de fenêtres (52) et de coefficients (56) les fonctions approchées (58-1 à 58-n), sur chaque fenêtre, dans l'exemple à l'aide des fonctions de base Bij, qui peuvent être prédéterminées, ou définies par des identifiants inclus dans le signal compressé 50. L'ensemble donne le signal décompressé 60.
Le signal compressé se présentant sous la forme d'une matrice, il est particulièrement pratique d'appliquer (par exemple pour la transmission du signal compressé) un cryptage de ce signal compressé, pour le transmettre sous forme cryptée.
Et la méthode de compression selon l'invention peut en outre être combinée avec une méthode de compression connue en soi, en compressant selon l'invention un signal préalablement compressé par une méthode connue - par exemple une méthode de compression avec pertes telle que la méthode MP3.
Ceci permet de réduire - de manière sensible comme les Demandeurs l'ont constaté - la taille de fichiers pourtant déjà compressés par d'autres méthodes. La taille très réduite des fichiers contenant les signaux compressés selon l'invention permet en outre une décompression extrêmement rapide sans mobiliser de ressources de traitement importantes.
Cette taille réduite facilite également le stockage et la transmission des fichiers compressés.
On comprend en outre que l'invention n'est nullement limitée à un type de signal particulier - par exemple audio - mais s'applique à tout type de signal.
On remarquera également que l'invention permet - au moins dans une certaine mesure - un débruitage des signaux audio, dans le cas de la compression de tels signaux.
Le bruit audio correspond en effet en général à des fluctuations rapides . Et dans le mode de mise en œuvre de l'invention où les fonctions approchées sont construites par combinaison linéaire de polynômes, ces composantes à fluctuation rapide sont éliminés car les polynômes ne contiennent pas de tels composants.
Enchaînement des étapes
On a exposé ci-dessus les étapes de mise en œuvre de l'invention. En pratique, et selon un mode de mise en œuvre particulièrement avantageux - mais non limitatif, l'invention peut être mise en œuvre selon l'enchaînement d'étapes suivant :
• définition de l'intervalle temporel I,
• calcul de la dérivée nième (par exemple dérivée seconde) du signal initial 10,
• définition de la valeur du seuil, • définition des fenêtres temporelles Fi,
• approximation du signal initial sur chaque fenêtre temporelle,
• constitution du signal compressé, et d'un fichier correspondant,
• transmission du signal compressé,
• décompression.
Définition des fenêtres - description détaillée
II a été indiqué plus haut que la détermination des fenêtres Fi s'effectue sur la base d'une dérivée (au sens de fonction dérivée, ou de signal dérivé) du signal temporel x(t) à compresser. Il est rappelé que ce signal x(t) est disponible sous forme d'échantillons numériques.
Faite de manière classique, l'estimation d'une dérivée est sensible au bruit contenu dans le signal traité. Ainsi, bien que les méthodes classiques puissent opérer dans certains cas, les Demandeurs préfèrent actuellement utiliser une technique particulière, qui permet d'estimer une dérivée avec une moindre sensibilité au bruit contenu dans le signal initial x(t).
Calcul de dérivée - formules en section 1 de l'annexe
Selon cette technique particulière, on calcule la dérivée en un point to, à partir d'intégrales, calculées sur un segment temporel de durée tf commençant à l'instant to.
Une façon de faire est illustrée par la relation (11), dans laquelle :
- x(v)(0) représente la dérivée temporelle d'ordre v à l'instant origine to, avec ici to = 0.
- Gr,j est un coefficient déterminable, qui dépend de r et de i, ainsi que de paramètres M et N, - l'expression de l'indice α dépend de l'indice n, de la borne de sommation r, ainsi que des paramètres M et N,
- Kα,n est un autre coefficient déterminable, qui dépend de r et de n, via α, ainsi que du paramètre N,
- IT41Q1n est une intégrale calculable sur l'intervalle [t0) to + tf], sur la base d'une expression déterminable, qui, via α, dépend de r et n, ainsi que de la différence entre les paramètres M et N.
Comme on le verra, le paramètre N peut être associé à un ordre de troncature dans un développement de Taylor, ainsi qu'à un ordre d'intégration du développement de Taylor ainsi tronqué. De son côté, M est un paramètre dont on verra qu'on peut l'associer à un ordre d'intégration appliqué après une suite de dérivations.
La forme générale de l'expression \Tϋ a,n est donnée par la relation (12), dans un mode de réalisation. La grandeur α est liée à M-N-r.
Dans la relation (11), les inconnues sont les x(v)(0). Le reste représente des coefficients, que l'on peut calculer comme suit :
- faire le calcul simple du membre de gauche,
- pour le membre de droite, calculer ITVn.n en utilisant l'intégrale simple de la relation (12), et multiplier le résultat par le coefficient Kr-n,n.
Les coefficients Gr,i et Kr-n,n peuvent être retrouvés par exemple dans une ou des tables où ils sont stockés en fonction des indices.
Soit Z l'ordre d'une dérivée recherchée x(Z)(0). On considère alors un jeu d'équations écrites selon la relation (11), correspondant respectivement aux valeurs de r de 0 à Z, en prenant le paramètre N au moins égal à Z. Cela fournit un système de (Z+1) équations. Les coefficients de chaque équation sont calculés comme indiqué ci-dessus. Il reste alors à résoudre un système de (Z+1) équations du premier degré à (Z+1) inconnues, ce que les moyens de calcul actuels permettent aisément. On accède ainsi à la dérivée recherchée x(Z)(0) ; on accède d'ailleurs également aux dérivées de rang inférieur au même instant t0 = 0. Par exemple, la dérivée d'ordre 0, soit x(0)(0), représente en fait le signal débruité lui-même, ce qui peut être intéressant en soi.
Ayant ainsi estimé la dérivée x(Z)(0), pour to = 0, on peut opérer de même à des instants suivants, par décalage temporel du segment considéré. Le
segment va donc « glisser », d'une manière similaire à la technique dite des « fenêtres glissantes », fréquemment utilisées en traitement de signal, par exemple pour des calculs de moyenne, variance, fréquence instantanée, notamment.
La figure 6 présente plus précisément la manière dont on procède pour l'implémentation numérique des segments glissants. Il s'agit ici d'un segment Sj de taille tf , que l'on peut écrire [tj, tj + tf ]. D'un segment au suivant, on a tj+i = tj + k te, où te est la période d'échantillonnage du signal initial x(t) et k est en principe égal à 1 (k peut être un nombre, en principe entier, supérieur à 1 , s'il est acceptable de ne pas estimer la dérivée en tous les points).
Pour chaque segment, on calcule l'estimation de la dérivée d'ordre Z du signal à l'origine tj de ce segment. Par exemple, pour le segment S2, on calcule la dérivée d'ordre Z à l'origine t2 de ce segment, soit : x(Z)(t2) = x(Z)(2 k te)
L'ensemble de ces estimations x(Z)(tj), rangé temporellement (directement ou par indexation), forme le signal dérivé d'ordre Z en chaque point de x(t).
On observera que des simplifications sont possibles. Par exemple, il n'est pas nécessaire de recalculer complètement les intégrales
à chaque glissement du segment. Après avoir déterminé une intégrale IT
1Vn
1n pour le premier segment S
0, il suffit ensuite de soustraire la contribution du ou des échantillons qui sortent du segment côté amont, et d'ajouter celle du ou des échantillons qui entrent dans le segment, côté aval.
En fait, puisque le signal est échantillonné, ces intégrales sont des sommations sur des échantillons successifs. Il est donc envisageable de calculer les IT1Vn1n en procédant échantillon par échantillon, donc sans sommation à ce stade. Pour le premier segment, on somme sur les p
échantillons correspondant à la durée tf ; ensuite on procède par retranchement/ajout de contributions, comme indiqué plus haut. D'autres simplifications du calcul sont envisageables.
C'est en suivant les variations de ce signal dérivé d'ordre Z que l'on peut déterminer les fenêtres consécutives Fi, comme indiqué plus haut.
La largeur tf des segments Sj peut être choisie en fonction d'une appréciation d'une durée ε, liée à une approximation, contenue dans l'équation (11) et sur laquelle on reviendra.
Il est envisageable d'utiliser des segments de longueur variable, et/ou un pas variable entre segments, au moins dans certains cas.
Ainsi, on peut adapter la taille du segment Si « en ligne » en fonction par exemple de l'erreur d'estimation, obtenue en comparant point par point le signal d'origine x(ti) et la dérivée d'ordre 0 débruitée x(0)(ti), déjà mentionnée. Le segment glissant est alors de longueur variable.
Bases mathématiques - formules en section 2 de l'annexe
En règle générale, un signal physique est analytique par morceaux. Ce signal x(t) peut donc s'écrire sous la forme d'un développement en série de Taylor, selon la relation (21) annexée, dans laquelle : - 1 représente le temps; et
- x(v)(0) représente la dérivée temporelle d'ordre v à l'instant origine t = 0.
En détail :
- x(0)(0) représente la valeur de x(t) à l'instant t ≈ 0 (dérivée d'ordre 0), - x(1)(0) représente la dérivée première de x(t) à l'instant t = 0,
- x(N)(0) représente la dérivée d'ordre N de x(t) à l'instant 0.
Une approximation intéressante du signal s'obtient à l'aide d'un développement en série de Taylor tronqué à l'ordre N, comme l'illustre la relation (22). Cette relation (22) peut s'analyser comme définissant un polynôme d'ordre N en fonction du temps t.
Le développement en série de Taylor tronqué à l'ordre N donne une valeur approchée du signal x(t), valable sur un intervalle de temps court [0, ε], avec ε > 0. La valeur de l'ordre N peut être choisie en fonction des considérations suivantes : - quel est l'ordre de dérivation Z souhaité,
- si le signal d'origine est fortement bruité, la taille du segment glissant ne peut être trop petite (plus l'horizon d'intégration est grand, moins le bruit a d'influence).
- avoir une bonne représentation du signal d'origine sur un segment assez grand nécessite un polynôme de degré suffisant.
- il faut trouver un compromis entre la précision souhaitée pour l'approximation et la complexité admissible pour le calcul.
Par conséquent, le niveau de bruit, la taille commune des segments (éventuellement leur taille moyenne), l'ordre N du polynôme, et l'ordre de dérivation souhaité, notamment, jouent ainsi un rôle important dans le choix du mode de calcul de la dérivée.
En principe, l'estimation de la dérivée à l'origine de chaque segment peut se faire de plusieurs manières. On peut par exemple chercher à estimer directement les N+1 coefficients du polynôme correspondant au développement de Taylor tronqué de la relation (22), et ne retenir que ceux qui sont d'intérêt.
II est actuellement préféré d'utiliser un procédé particulier, que l'on décrira maintenant. Il est à noter que ce procédé n'est pas unique, et pourra admettre différentes variantes, notamment en ce qui concerne le choix des
ordres d'intégration et/ou de dérivation.
Il s'agit d'estimer les N+1 coefficients du polynôme correspondant au développement de Taylor tronqué de la relation (22), ou du moins certains d'entre eux.
L'explication théorique de cette estimation est plus directe en travaillant dans le domaine opérationnel, par exemple en travaillant sur la transformée de Laplace. Par cette transformation, on passe de l'équation (22) à l'équation (23), dans laquelle s est la variable de Laplace. En multipliant les deux membres de l'équation (23) par sN+1, on obtient l'équation (24). En principe, on aura N - v supérieur ou égal à 0.
On considère alors une suite de dérivations successives par rapport à la variable de Laplace s. Chaque dérivation peut s'écrire dm/dsm, avec pour m les valeurs de la suite {0, 1 , ...,N}. Le degré de dérivation m = 0 correspond à l'équation (24) telle quelle.
Cet ensemble de dérivations selon s correspond au système d'équations (25), dans lequel :
- au membre de gauche, il apparaît d'abord une matrice unicolonne d'opérateurs de dérivation, dont, à chaque ligne de cette matrice, l'opérateur de dérivation est appliqué à l'expression sN+1 XN(S) - au membre de droite, P est une matrice d'opérateurs de Laplace.
La matrice P est une matrice triangulaire supérieure (N+1 , N+1). On peut noter P(u, v) son élément courant, avec, en lignes, u e [0, N], et en colonnes, v e [0, N]. L'élément courant P(u,v) s'écrit alors selon le tableau I suivant :
Tableau I
On procède alors à une intégration d'ordre M, avec M > N. Dans le domaine opérationnel, l'intégration d'ordre M correspond au système d'équations (26). Comme la matrice P, le produit Q = 1/sM P reste une matrice triangulaire d'opérateurs. Son élément courant s'écrit alors selon le tableau II suivant :
Tableau II
On notera que les coefficients sont les mêmes dans les matrices P et Q.
Membre de gauche de l'équation (26) - Formules en section 3 de l'annexe
L'équation (31) définit une notation de commodité, où le membre de gauche de la relation (26) est représenté par une matrice colonne d'éléments {AU, Al_i ... AI_N}. Le "L" rappelle qu'on est dans le domaine de Laplace. On note par ALr un élément courant de cette matrice, et par ATr l'équivalent dans le domaine temporel de ALr.
Par ailleurs, les équations (32) et (33) donnent les dérivées première et seconde de sN+1 XN(S), respectivement.
En divisant les deux membres de l'équation (33) par sM, on obtient l'équation (34), qui donne l'élément AL2 de l'équation (31) dans le domaine de Laplace.
Il est rappelé que le passage du domaine de Laplace au domaine temporel admet les correspondances du tableau III suivant : Tableau III
Ainsi, partant de l'équation (34), et dans le cas M = N+1, l'équation (35) donne l'équivalent AT2 dans le domaine temporel de l'équation AL2 dans le domaine de Laplace.
Dans l'équation (35), le membre de droite est la somme de trois termes : - le premier est une intégrale double (itérée 2 fois) sur un intervalle de temps [0, tf],
- le second est une intégrale simple sur un intervalle de temps [0, tf], et
- le troisième est un terme lié au temps tf, au carré.
Au fil des dérivations successives (en s, dans le domaine opérationnel), cette structure va être conservée :
- dans le domaine de Laplace, on aura des expressions de la forme IL donnée à l'équation (36)
- leur équivalent temporel a la forme IT donnée par la relation (37). On notera que les intégrales itérées de la relation (37) portent toutes sur la même durée t, qui est égale à tf dans l'exemple ; l'indice qui est ajouté à la variable t a seulement pour but de distinguer les différentes variables d'intégration.
De plus, les Demandeurs ont observé que des intégrales itérées selon la relation (37) peuvent se réduire à l'intégrale simple de la relation (12) précitée, du fait que ces intégrales itérées ont toutes pour origine le même temps t = 0 (plus généralement, le temps tj de début du segment Sj concerné).
En généralisant, l'élément courant ALr possède dans le domaine temporel un équivalent ATr que l'on peut exprimer par la relation (38). Celle-ci présente la forme d'une somme d'intégrales ITr-n,n , calculables sur un intervalle de temps t (ici, t = tf), et multipliées par des coefficients Kr-n,n respectifs, déterminables à l'avance à partir de l'expression de la dérivée d'ordre r de sN+1 XN(S), divisée par sM, et convertie dans le domaine temporel.
Si l'on revient maintenant à l'équation (11), il apparaît que le membre de droite de l'équation (11) correspond précisément à ATr .
Membre de droite de l'équation (26) - Formules en section 4 de l'annexe
A son tour, le membre de droite de l'équation (26) peut être représenté par une matrice d'éléments BLn comme indiqué par la relation (41), L'équivalent des BLr dans le domaine temporel sera noté BTr. De plus, BLr est obtenu par une multiplication matricielle qui intéresse la ligne r de la matrice Q(u, v). L'équation (42) exprime ce terme courant BTr dans le domaine temporel, avec u = r et v = i, où i est l'indice de sommation. On atteint les éléments nuls au-delà de i = N - r.
Le passage au domaine temporel, pour un élément courant non nul de la matrice Q, peut être mieux compris à l'aide du tableau IV suivant :
Tableau IV
Le coefficient G1-,-, de l'équation (42) s'exprime donc selon l'équation (43).
Si l'on retourne à nouveau à l'équation (11), il apparaît que le membre de gauche de l'équation (11) correspond à BT1- selon l'équation (42).
Bien qu'elles ne soient pas nécessaires pour mettre en œuvre l'équation (11), les explications ci-dessus permettent de mieux comprendre son origine, et également de déterminer a priori les valeurs des coefficients, notamment des coefficients Kr-n,n et Gr,j en fonction des paramètres N et M choisis a priori, et des valeurs de leurs indices. Une détermination et/ou une vérification par tâtonnement des coefficients Kr-n,n et Gr,j serait également envisageable.
En ce qui concerne le calcul des intégrales contenues dans ATn la relation (12) propose une intégrale simple particulièrement avantageuse. Cependant, il resterait possible de procéder au même calcul par des intégrales itérées, calculées selon l'équation (36).
En résumé, l'ensemble des dérivées en t = 0, peuvent être estimées à l'aide d'intégrales du signal à traiter x(t), ayant la forme de l'expression (37), ou, mieux, de l'expression (12).
Choix du paramètre M - Formules en section 5 de l'annexe
On a vu que l'ordre M d'intégration était au minimum égal à N + 1, et
pouvait être supérieur à N + 1. Les bases du choix de M peuvent être les suivantes : l'intégration filtre les fluctuations rapides du signal d'origine. Plus l'on va intégrer, plus l'on va filtrer ; en contrepartie, on réduit aussi le caractère informatif du signal. Pour minimiser les calculs à effectuer, on peut utiliser le strict minimum d'intégration, soit M = N + 1.
On observera cependant que l'équation (32) contient tout à fait à droite un terme en d/ds[XN(s)]. Il s'en déduit l'expression de Al_i, conformément à l'équation (51). Pour M = N + 1, l'équivalent ATi dans le domaine temporel est donné par l'équation (52). Son terme de droite, de la forme (-1) tf XNO), est dépendant du signal xN(t) lui-même (et, dans ce cas, c'est le seul). On peut préférer de ne faire apparaître que des intégrations du signal, et non l'expression en XN(Î) du signal lui même. Dans ce cas, une intégration supplémentaire, soit avec M = N + 2, est à effectuer. L'expression de ATi prend alors la forme de la relation (53).
Plus généralement, il est considéré comme accessible à l'homme du métier de déterminer les coefficients de l'ensemble des équations précitées dans le domaine temporel pour tout ordre d'intégration M supérieur à N.
Dans ce qui précède, le système d'équations tiré de l'équation (11) pour différentes valeurs de r correspond à une seule et même valeur des paramètres M et N. Du fait que les matrices P et Q sont triangulaires, donc toujours inversibles, le système d'équations ainsi obtenu admet toujours des solutions.
Une variante consisterait à établir plusieurs systèmes d'équations pour différentes valeurs de M, avec par exemple un système d'équations pour M = N + 1 , et un autre pour M = N + 2. Pour un signal donné, ou pour une portion I d'un signal donné, on peut alors choisir le système d'équations appliqué, ou une combinaison particulière de ceux-ci (combinaison linéaire par exemple), en fonction d'une appréciation des caractéristiques du signal
d'entrée à compresser. On pourrait encore mélanger les équations des deux systèmes.
La technique proposée ci-dessus pour le calcul d'un signal dérivé d'ordre choisi peut être considérée comme un filtrage, puisqu'elle réduit l'effet du bruit. Ce filtrage est non-fréquentiel, en ce sens qu'il n'est pas complètement assimilable à un filtrage passe-bas classique, associé à une fréquence de coupure. Le filtrage ici proposé procède d'une estimation de dérivées par intégrales itérées, puisqu'il filtre le signal lui-même et/ou une ou plusieurs de ses dérivées à partir d'intégrales locales du signal initial.
Annexe 1
Section 1
Section 2
Section 5