FENÊTRES DE PONDÉRATION EN CODAGE/DÉCODAGE PAR TRANSFORMÉE AVEC RECOUVREMENT, OPTIMISÉES EN RETARD

申请号 EP12734996.7 申请日 2012-06-26 公开(公告)号 EP2727107A1 公开(公告)日 2014-05-07
申请人 Orange; 发明人 FAURE, Julien; PHILIPPE, Pierrick;
摘要 The invention relates to the coding/decoding of a digital signal, consisting of successive blocks of samples, the coding being of the transform with overlap type and comprising, upon analysis, the application of a weighting window to two blocks of M successive samples. In particular, this weighting window is asymmetric and comprises four distinct portions extending successively over the two aforesaid blocks, with: a first portion (wl), increasing over a first interval of samples, a second portion (w2), constant at a value of 1 over a second interval, a third portion (w3), decreasing over a third interval, and a fourth portion (w4), constant at a value of 0 over a fourth interval.
权利要求
REVENDICATIONS
1. Procédé de codage d'un signal numérique, ledit signal étant constitué de blocs successifs d'échantillons, le codage étant du type par transformée avec recouvrement et comprenant, à l'analyse, l'application d'une fenêtre de pondération sur deux blocs de M échantillons successifs, caractérisé en ce que ladite fenêtre de pondération est asymétrique et comporte quatre portions distinctes s'étendant successivement sur lesdits deux blocs, avec :
une première portion (wi), croissante sur un premier intervalle d'échantillons,
une deuxième portion (vv 2 ), constante à une valeur de 1 sur un deuxième intervalle, - une troisième portion (vv 3 ), décroissante sur un troisième intervalle, et
une quatrième portion (vv 4 ), constante à une valeur de 0 sur un quatrième intervalle.
2. Procédé selon la revendication 1, caractérisé en ce que les premier, deuxième et troisième intervalles sont calculés au moins en fonction du quatrième intervalle (Mz).
3. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que la fenêtre varie sur le premier intervalle, noté Ri, comme une fonction w \ de type :
W (n) π n + l
1 —— - , avec W 1 (n) = sin et :
n ( n ) 2 R !
A n ( n) = J (n) .h, (2M - n - ï) + h i (n + M ) .h i (M - n - ï) , ne ; ½vec d et R des constantes supérieures à 0.
4. Procédé selon la revendication 3, caractérisé en ce que le terme i est compris entre 3 et 5.
5. Procédé selon l'une des revendications précédentes, caractérisé en ce que la fenêtre varie sur le troisième intervalle, noté R 2 , comme une fonction vv 3 de type :
w 3 , et :
A n (n) = ^ (n) .h, (2Af - n - 1) + h t (n + M ) .h, (M - n - 1) , n M ^ avec C 2 et R des constantes supérieures à 0.
6. Procédé selon la revendication 5, caractérisé en ce que le terme C 2 est compris entre 0,85 et 1,05.
7. Procédé selon l'une des revendications précédentes, caractérisé en ce que la durée du quatrième intervalle, noté M z , est choisie comme étant :
2 x 7 - 40
où la notation désigne l'entier plus grand ou égal à x et le plus proche de x, M correspondant à la durée d'un bloc.
8. Procédé selon l'une des revendications 3 à 7, caractérisé en ce que le premier intervalle, noté Ri, est de durée donnée par :
2MX404
-+ 0,5 , où M correspond à la durée d'un bloc,
1280
la notation désignant l'entier plus petit ou égal à x et le plus proche de x.
9. Procédé selon l'une des revendications 5 à 8, caractérisé en ce que le troisième intervalle, noté R 2 est de durée donnée par :
2M X196
^2 -+ 0,5 , où M correspond à la durée d'un bloc,
1280
la notation [X] désignant l'entier plus petit ou égal à x et le plus proche de x.
10. Procédé selon l'une des revendications 1, 2 et 7, caractérisé en ce que le premier intervalle, noté Ri , est de durée donnée par :
R : = |_ — M z + 1 + 0, 5 J , où M correspond à la durée d'un bloc, et M z correspond à la durée du quatrième intervalle.
11. Procédé selon la revendication 10, caractérisé en ce que le troisième intervalle, noté R 2 , est de durée donnée par :
R 2 = |_ — 2M z + 1 + 0, 5 J , où M correspond à la durée d'un bloc, et M z correspond à la durée du quatrième intervalle.
12. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte l'application d'une pluralité de fenêtres successives, asymétriques et comportant lesdites quatre portions, à une succession de paires de blocs.
13. Procédé de décodage d'un signal numérique, codé par la mise en œuvre du procédé selon l'une des revendications précédentes, le décodage étant du type par transformée avec recouvrement et comprenant, à la synthèse, l'application d'une fenêtre de pondération sur deux blocs d'échantillons codés successifs,
caractérisé en ce que ladite fenêtre de pondération, à la synthèse, est identique à la fenêtre d'analyse utilisée au codage, retournée temporellement.
14. Programme informatique destiné à être stocké en mémoire d'un dispositif de codage ou de décodage, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre du procédé de codage selon l'une des revendications 1 à 12 ou du procédé de décodage selon la revendication 13, lorsque les instructions sont exécutées par un processeur du dispositif.
15. Dispositif de codage d'un signal, caractérisé en ce qu'il comporte des moyens de stockage (MEM) et/ou de calcul (μΡ) de données d'une fenêtre de pondération, d'analyse, pour la mise en œuvre du procédé de codage selon l'une des revendications 1 à 12. 16. Dispositif de décodage d'un signal, caractérisé en ce qu'il comporte des moyens de stockage (ΜΕΜ') et/ou de calcul (μΡ) de données d'une fenêtre de pondération, de synthèse, pour la mise en œuvre du procédé de décodage selon la revendication 13.
说明书全文

Fenêtres de pondération en codage/décodage par transformée avec recouyrement.

optimisées en retard

L'invention se situe dans le domaine du codage/décodage de signaux audionumériques, plus spécifiquement dans le domaine dit du « codage/décodage audio par transformée avec recouvrement ».

Le « codage par transformée » consiste à coder des signaux temporels dans le domaine transformé (fréquentiel). Cette transformation permet notamment d'utiliser les caractéristiques fréquentielles des signaux audio (musicaux, de parole, ou autres) afin d'optimiser et améliorer les performances de codage. On utilise par exemple le fait qu'un son harmonique est représenté dans le domaine fréquentiel par un nombre fini et réduit de raies spectrales qui peuvent ainsi être codées de manière concise. On utilise aussi par exemple avantageusement des effets de masquage fréquentiels pour mettre en forme le bruit de codage de manière à ce qu'il soit le moins audible possible.

Une technique habituelle de codage par transformée peut être résumée comme suit.

Le flux audionumérique (échantillonné à une fréquence d'échantillonnage Fs donnée), à coder, est sectionné en trames (ou « blocs », plus généralement) de nombre d'échantillons 2M finis. Chaque trame se recouvre classiquement à 50 % avec la trame précédente. Une fenêtre de pondération h a (appelée « fenêtre d'analyse ») est appliquée à chaque trame.

Une transformation est ensuite appliquée au signal. Dans le cas d'une transformation dite « MDCT » (pour « Modified Discrète Cosine Transform »), et dans une réalisation particulière, la trame pondérée est « repliée » suivant une transformation 2M échantillons vers M échantillons.

Une transformée DCT de type IV est ensuite appliquée à la trame repliée afin d'obtenir une trame de taille M dans le domaine transformé.

La trame dans le domaine transformé est alors quantifiée en utilisant un quantificateur adapté. La quantification permet de réduire la taille des données, mais introduit un bruit (audible ou non) dans la trame originale. Plus le débit du codeur est élevé, plus ce bruit est réduit et plus la trame quantifiée est proche de la trame originale.

Au décodage, une transformation MDCT inverse est alors appliquée à la trame quantifiée. La trame quantifiée de taille M est convertie en trame de taille M dans le domaine temporel en utilisant une DCT de type IV inverse. Une deuxième transformation de « dépliage » de M vers 2M est alors appliquée à la trame temporelle de taille M. Des fenêtres de pondération h s dites de « synthèse » sont appliquées ensuite aux trames de tailles 2M. Le flux audio décodé est alors synthétisé en sommant les parties en recouvrement.

Pour une fenêtre de synthèse et un recouvrement donné, on détermine une fenêtre d'analyse qui permet d'obtenir une reconstruction parfaite du signal à coder (en l'absence de quantification). Une fenêtre classiquement utilisée en codage par transformée est une fenêtre de type sinusoïdale identique à la fois à l'analyse et à la synthèse. Dans cette configuration, le délai algorithmique minimum introduit par le système de codage est de 2M/Fs secondes.

Pour réduire ce délai, on peut imposer des zéros en début de fenêtre de synthèse et en fin de fenêtre d'analyse. Comme le résultat d'une multiplication du signal par « 0 » est connu à l'avance, on peut décaler le rythme de trames par rapport à la position des fenêtres. Ces fenêtres, symétriques, sont par exemple composées :

d'un certain nombre de zéros Mz qui s'étendent sur un intervalle correspondant à la moitié du retard algorithmique que l'on veut sauvegarder,

- d'une montée en sinus de longueur M-2Mz,

d'une section de 2Mz valeurs à 1,

la deuxième moitié de la fenêtre étant enfin le symétrique de la première comme illustré sur la figure 1 ci-annexée. Ces fenêtres ont un délai algorithmique de (2M-2Mz)/Fs secondes et permettent ainsi de réduire le retard de 2Mz/Fs secondes.

Toutefois, une telle technique, si elle permet de réduire le délai, tend, lorsque la réduction du délai augmente, à ressembler à une fenêtre rectangulaire. Une telle forme de fenêtre est peu sélective en fréquences, et fait finalement baisser de manière drastique la qualité audio du signal encodé. De plus, elle contraint fortement la fenêtre car 4Mz échantillons sont imposés lors de sa construction. On ne dispose pas de beaucoup de degrés de liberté pour proposer des fenêtres efficaces pour le codage, notamment pour offrir une sélectivité fréquentielle importante. II a été proposé dans le document WO-2009/081003 d'utiliser des fenêtres asymétriques pour pallier ce problème. Ces fenêtres, à l'analyse, sont composées de 0 uniquement sur la fin de la fenêtre d'analyse. Afin de limiter l'espace de stockage requis, la fenêtre de synthèse est choisie comme la retournée temporelle de la fenêtre d'analyse. Cette technique permet notamment de réduire le délai à l'encodage, ainsi que le délai au décodage. Pour un nombre de zéros total Mz deux fois moins important que celui des fenêtres symétriques présentées précédemment, le gain de délai est le même. Compte tenu du nombre réduit de zéros, la sélectivité fréquentielle de telles fenêtres asymétriques est supérieure à celle des fenêtres symétriques. La qualité audio du signal décodé s'en trouve améliorée.

Plus particulièrement, le document WO-2009/081003 présente une fenêtre d' analyse h a (n) composée de deux parties hal et ha2 à partir d'une fenêtre initiale h(n) donnée par :

-- sas n H- pour 0 « < 2M - M,

2M - M, ^ 2 ,

et h\ n) ~d skton (c'est-à-dire our 2M -M s ≤n < 7M ). et d'un facteur correctif A(n) permettant d'avoir la condition de reconstruction parfaite, donné par :

La fenêtre d'analyse h a est donné par :

¾i (n +ΑΓ) ** h (n.+M ) (n) et k ia { n} ^ k ( n }i A {n)

pour 0 < n < M

La fenêtre de synthèse h s (n) est la retournée temporelle de la fenêtre d'analyse :

h s (2M - \ - n) = h a (n) , pour 0≤n < 2M

De telles fenêtres sont, pour un même gain de délai, de meilleure qualité que des fenêtres symétriques du fait de leur meilleure sélectivité fréquentielle.

Toutefois, quand bien même la technique antérieure est avantageuse et propose une amélioration de la qualité par rapport aux techniques précédente, lorsqu'une solution est cherchée avec un gain de délai plus important, avec par exemple un nombre de zéros Mz supérieur à M/4 (où M est une durée de trame), on observe, en appliquant de telles fenêtres, une dégradation audible qui peut s'expliquer notamment par le fait qu'une portion de la fenêtre prend des valeurs élevées, bien supérieures à 1 , comme illustré sur la figure 2. Or, il est généralement préférable, en traitement de signal numérique, d'utiliser des pondérations à valeurs inférieures à 1 en valeur absolue du fait de l'implémentation en virgule fixe. La présente invention vient améliorer la situation.

Elle propose à cet effet un procédé de codage d'un signal numérique constitué de blocs successifs d'échantillons, le codage étant du type par transformée avec recouvrement et comprenant, à l'analyse, l'application d'une fenêtre de pondération sur deux blocs de M échantillons successifs. En particulier, la fenêtre de pondération précitée est asymétrique et comporte quatre portions distinctes s 'étendant successivement sur les deux blocs, avec :

une première portion, croissante sur un premier intervalle d'échantillons,

une deuxième portion, constante à une valeur de 1 sur un deuxième intervalle,

- une troisième portion, décroissante sur un troisième intervalle, et

une quatrième portion, constante à une valeur de 0 sur un quatrième intervalle.

Comme on le verra plus loin, selon l'un des avantages que procure l'invention, la constance de la fenêtre à 1 pendant le deuxième intervalle permet de réduire la complexité de l'utilisation des fenêtres de l'art antérieur telles que celles décrites dans le document WO-2009/081003, tout en conservant ses avantages de faible retard et en améliorant en outre la qualité du rendu audio, comme on le verra plus loin en référence à la figure 3.

Par ailleurs, il est avantageux que les premier, deuxième et troisième intervalles soient calculés au moins en fonction de la durée du quatrième intervalle (nombre de 0 en fin de fenêtre), qui fixe le retard précité, lequel peut avantageusement être ramené à un retard algorithmique comme on le verra dans les exemples de réalisation ci-après. De même, les fronts de montée et de descente des portions respectivement croissante et décroissante peuvent être optimisés en fonction notamment de la durée du quatrième intervalle. Le quatrième intervalle (noté Mz ci-après) s'exprime lui-même en fonction du nombre d'échantillons M par bloc, et bien entendu en fonction du retard maximal souhaité.

La succession des fenêtres d' analyse présente des caractéristiques similaires avec celle décrite dans le document précité WO-2009/081003. En particulier, deux blocs d'échantillons de même taille 2M, étant pondérés respectivement par une première et une deuxième fenêtre d'analyse, le front montant de la deuxième fenêtre peut être différent du front descendant de la première fenêtre retournée temporellement. Ces fronts ne sont donc pas symétriques a priori.

Par ailleurs, dans la mise en œuvre de l'invention, au codage, plusieurs mêmes fenêtres d'analyse ayant les caractéristiques précitées (montée, constance à 1, descente et constance à 0) peuvent être appliquées successivement à une pluralité de blocs successifs de 2M échantillons, se recouvrant de M échantillons, comme illustré sur la figure 10. En termes génériques, le procédé de l'invention comporte alors l'application d'une pluralité de fenêtres successives, asymétriques et comportant les quatre portions précitées, à une succession de paires de blocs. Ainsi, comme dans le document WO-2009/081003, on ne prévoit pas, ici encore, de fenêtre de transition particulière lorsque la fenêtre asymétrique est appliquée.

Dans une réalisation particulière, la fenêtre varie sur le premier intervalle, noté R comme une fonction w \ de type : w 1 (n) = et :

A n (n) = ^ (n) .h, (2 - n - 1) + h t (n + M ) .h, (M - n - 1) , ne [0 ; - l] avec Ci et R l 5 des constantes supérieures à 0.

Par optimisation par exemple, on trouve que le terme i peut être compris entre 3 et 5, pour une gamme de retards de l'ordre de 15 à 30 ms. Dans un exemple de réalisation particulier, Ci = 4,8425.

Le premier intervalle, noté R est, dans cet exemple de réalisation, de durée donnée par :

2M X 404

Ri - + 0, 5 , où M correspond à la durée d'un bloc,

1280

la notation L^J désignant l'entier plus petit ou égal à x et le plus proche de x.

Pour ce qui concerne la deuxième portion de la fenêtre, cette dernière peut varier, dans un exemple de réalisation, sur le troisième intervalle, noté R 2 , comme une fonction vv 3 de type :

w 3 , et :

Δ„ (n) = (n) .h, (2M - n - ï) + h i (n + M ) .h i (M - n - ï) , n fo ° : ; ' ' ^ avec C 2 et R 2 , des constantes supérieures à 0.

D'après des essais d'optimisation réalisés, le terme C 2 est préférentiellement compris entre 0,85 et 1.05 et dans l'exemple de réalisation particulier, C 2 = 0,9659.

Le troisième intervalle, noté R 2 , est dans cet exemple de réalisation de durée préférentielle donnée par : *2 = 0, 5 , où M correspond à la durée d'un bloc,

la notation [xi désignant l'entier plus petit ou égal à x et le plus proche de x.

Dans cet exemple de réalisation, le quatrième intervalle, noté M z , est choisi initialement tel qu'il est de durée donnée par

A = r¾pi

où la notation Γ^Ι désigne l'entier plus grand ou égal à x et le plus proche de x, M correspondant à la durée d'un bloc. Bien entendu, d'autres retards peuvent être implémentés et ainsi d'autres durées du quatrième intervalle Mz peuvent être prévues. Le tableau 1 donné dans les exemples de réalisation détaillés ci-après indique des valeurs des paramètres Ci, C 2 , et des intervalles RR 2 , pour différentes valeurs de retards et donc pour différentes durées de quatrième intervalle Mz. Ainsi, le procédé peut avantageusement comporter une étape préalable d'optimisation de la forme de la fenêtre, cette optimisation étant basée sur au moins une estimation de fonction de coût, pour parvenir aux paramètres optimums Ci, C 2 , et/ou encore Ri, R 2 présentés ci-avant.

Globalement, il est avantageux que le nombre total de « 1 » dans la fenêtre soit environ deux fois plus grand que le nombre de 0, d'après les optimisations réalisées, notamment pour une bonne qualité de rendu audio.

Ainsi, dans un autre exemple de réalisation particulier, le premier intervalle, noté R est par exemple de durée donnée par :

R j = |_ -M z + l + 0, 5j , où M correspond à la durée d'un bloc, et M z correspond à la durée du quatrième intervalle.

Dans cet exemple, le troisième intervalle R 2 peut être de durée donnée par :

R 2 = |_ — 2M z + 1 + 0, 5 J , où M correspond à la durée d'un bloc, et M z correspond à la durée du quatrième intervalle.

Le tableau 2 donné dans les exemples de réalisation détaillés ci-après indique des valeurs des paramètres Ci et C 2 , lorsque les intervalles Ri et R 2 ont été ainsi fixés, pour différentes valeurs de retards et donc pour différentes durées de quatrième intervalle Mz. Ainsi, l'invention propose, sur un principe de fenêtre asymétrique à reconstruction parfaite avec un nombre choisi de zéros du type présenté dans le document WO-2009/081003, l'utilisation de fenêtres optimisées, d'analyse et de synthèse, lesquelles permettent d'avoir un bon rendu sonore, tout en assurant une mise en œuvre efficace. On a illustré sur la figure 3 une comparaison des performances en termes de qualité audio entre une fenêtre selon l'invention (référence INV), une fenêtre selon le document WO-2009/081003 (référence AA) et une fenêtre sinusoïdale classique (SIN) pour un délai à 26 ms. Les autres points, sans référence, concernent d'autres techniques de l'état de l'art. Il apparaît que l'invention permet de conserver une qualité audio équivalente à celle atteinte avec des fenêtres classiques (SIN), tout en offrant un gain de délai comparable à celui atteint par la mise en œuvre décrite dans le document WO-2009/081003. On retient alors dans la description ci-après, comme critère d'appréciation, la qualité perceptuelle, une erreur de reconstruction de la transformée restant négligeable, perceptiblement, par rapport à un seuil de perception prédéterminé.

La présente invention vise un procédé de décodage d'un signal numérique, codé par la mise en œuvre du procédé ci-avant, le décodage étant du type par transformée avec recouvrement et comprenant, à la synthèse, l'application d'une fenêtre de pondération sur deux blocs d'échantillons codés successifs. En particulier, la fenêtre de pondération, à la synthèse, est identique à la fenêtre d'analyse utilisée au codage, retournée temporellement, par exemple pour assurer une propriété de reconstruction parfaite, comme on le verra plus loin.

La présente invention vise aussi un programme informatique destiné à être stocké en mémoire d'un dispositif de codage ou de décodage, et comportant en particulier des instructions pour la mise en œuvre du procédé de codage ci-avant ou du procédé de décodage précité, lorsque les instructions sont exécutées par un processeur du dispositif. En particulier, il peut s'agir d'un programme informatique comportant une première partie propre au codage et une deuxième partie propre au décodage. La figure 7 commentée plus loin est un exemple d'organigramme de l'algorithme général d'un tel programme et la figure 8 illustre des étapes préalables que peut comporter, dans une réalisation particulière, l'algorithme de ce programme, en particulier si ce programme comporte des instructions pour la construction préalable des fenêtres d'analyse et de synthèse qu'utilisent les procédés de codage/décodage au sens de l'invention.

Comme représenté schématiquement sur la figure 9, la présente invention vise aussi un dispositif de codage COD d'un signal, comportant des moyens de stockage MEM et/ou de calcul μΡ de données d'une fenêtre de pondération, d'analyse, pour la mise en œuvre du procédé de codage selon l'invention. De même, la présente invention vise aussi un dispositif de décodage DECOD d'un signal, comportant des moyens de stockage MEM' et/ou de calcul μΡ de données d'une fenêtre de pondération, de synthèse, pour la mise en œuvre du procédé de décodage selon l'invention. On peut en particulier, pour le codage comme pour le décodage, partir de valeurs pré- initialisées de fenêtres d'analyse et/ou synthèse (stockées en mémoires MEM et/ou MEM'), et possiblement optimiser ces valeurs à la volée (par la mise en œuvre des moyens de calculs μΡ).

D'autres avantages et caractéristiques de l'invention apparaîtront à la lecture de la description détaillée, donnée ci-après à titre d'exemples de réalisation non limitatifs, et des dessins annexés sur lesquels :

la figure 1 illustre l'allure d'une fenêtre symétrique classique à faible délai, comportant des zéros en début et en fin de fenêtre,

la figure 2 illustre l'allure d'une fenêtre asymétrique telle que décrite dans le document WO-2009/081003, avec un gain de délai de 15 ms pour une trame 2M de 40 ms, la figure 3 illustre une comparaison de la qualité audio entre une fenêtre au sens de l'invention INV, une fenêtre sinusoïdale SIN selon la figure 1, et une fenêtre AA selon la figure 2, pour un délai de 26 ms,

la figure 4 illustre un premier exemple de fenêtre d'initialisation h t pour la construction d'une fenêtre d'analyse au sens de l'invention,

la figure 5 illustre un deuxième exemple de fenêtre d'initialisation h t pour la construction d'une fenêtre d'analyse au sens de l'invention,

la figure 6 illustre un exemple de fenêtre d'analyse au sens de l'invention, obtenue à partir d'une fenêtre d'initialisation du type représentée sur la figure 5,

la figure 7 présente schématiquement les étapes d'un exemple de procédé de codage/décodage par transformée, pour illustrer le contexte de la présente invention, la figure 8 présente schématiquement les étapes d'un exemple de construction des fenêtres d'analyse et de synthèse pour une mise en œuvre du procédé au sens de l'invention, la figure 9 présente schématiquement des dispositifs de codage et de décodage pour la mise en œuvre de l'invention,

la figure 10 illustre une succession de fenêtres d'analyse au sens de l'invention, appliquées avec recouvrement.

On se réfère tout d'abord à la figure 7 pour décrire, en tant que cadre général de la mise en œuvre de l'invention, un procédé de codage/décodage d'un signal numérique (donné à l'étape 70), par transformée avec recouvrement. Le procédé comprend une étape 71 de découpage du signal audionumérique en trames de longueur M. Ensuite, chaque trame est groupée avec la précédente, ce qui correspond à un recouvrement de 50 %. A l'étape suivante 72, une fenêtre d'analyse h a est appliquée à cet ensemble de deux trames. On a illustré sur la figure 6 un exemple de fenêtre d'analyse h a au sens de l'invention (amplitude de 0 à 1 en fonction du nombre d'échantillons « Nb Ech »). On relèvera que la fenêtre d'analyse h a se termine par Mz valeurs à 0 et est de longueur totale 2M.

L'étape suivante 73 consiste à appliquer une transformée, par exemple de type MDCT, au bloc de deux trames ainsi pondéré par la fenêtre h a , puis à quantifier (étape 74) les valeurs dans le domaine transformé.

Au décodage, une transformée inverse permet, à l'étape 75, de reconvertir les valeurs dans le domaine temporel. Si la transformée au codage est par exemple de type MDCT, une transformée inverse iMDCT peut être appliquée au décodage.

A l'étape 76, pour assurer une condition de reconstruction parfaite, une fenêtre de synthèse h s est appliquée aux deux trames décodées. Comme décrit dans le document WO-2009/081003, cette condition impose un facteur correctif 1/Δ η (décrit plus en détail ci-après) appliqué à une fenêtre d'initialisation h t pour obtenir la fenêtre d'analyse h a . La fenêtre de synthèse h s se présente comme la retournée temporelle de la fenêtre d' analyse h a , avec :

h,{n) = h a ('2M - n - 1)

A l'étape 77, les blocs qui se recouvrent sont sommés, pour délivrer finalement le signal décodé, en assurant une reconstruction parfaite.

On se réfère à nouveau à la figure 6, pour décrire plus en détails l'allure de la fenêtre d'analyse h a utilisée dans un tel procédé, en particulier au codage. La fenêtre d'analyse est constituée de quatre segments distincts wl , w2, w3, w4. Il en est de même pour la fenêtre de synthèse h s qui se présente comme la retournée temporelle de la fenêtre d' analyse.

Sur un premier intervalle noté ci-après Ri, la fenêtre d'analyse varie comme une fonction w \ de type :

Ensuite, la fenêtre d'analyse est constante et vaut w2=l sur un deuxième intervalle. varie comme une fonction w 3 de type :

A n {") = M n ) - h i (2M - n - l) + h i {n + M ) .h i {M - n - l) , avec : ne ;0; M - 1

Enfin, sur un quatrième intervalle Mz, la fenêtre d' analyse est constante et vaut w4=0.

On montre ci-après que, par rapport à l'art antérieur WO-2009/081003, la forme de telles fenêtres permet d'assurer une qualité audio optimale pour un gain de délai important (pouvant aller par exemple jusqu'à 40 %). L'utilisation de telles fenêtres (de variations générales : croissante, constante à 1, décroissante et constante à 0) ne se limite pas à un type de transformée MDCT. Elles peuvent aussi être utilisées par exemple dans le cas où le codage ne concerne uniquement qu'une partie seulement du signal à coder (par exemple une partie de la bande audio seulement, par exemple pour traiter une erreur de codage par rapport à une autre technique de codage, ou autres).

On décrit maintenant en référence à la figure 8 comment est obtenue la fenêtre h a utilisée dans un procédé tel que décrit ci-avant en référence à la figure 7.

Suite à une étape d'initialisation 80, on définit des paramètres d'initialisation Ri, R 2 , Ci et C 2 à l'étape 81. A l'étape suivante 82, on calcule à partir de ces paramètres d'initialisation une fenêtre d'initialisation h,. Comme illustré sur les figures 4 et 5, cette fenêtre d'initialisation hi est constituée de quatre segments Wi, W 2 , W 3 , W 4 .

Le n :

où Ci est une constante >0.

Le deuxième segment W 2 de longueur

est composé de valeurs à 1.

Le trois

où C 2 est une constante >0. Le quatrième segment W 4 de longueur M z est composé de valeurs toutes à 0.

La fenêtre d'initialisation est donc donnée par :

W, [ : pour n <\- j : i? x — 1 ;

pour n <E ¾ : M - R 2 - AL - 1}

- 2M + R-, ÷ M z ) pour n€ 2M - .¾ - AL : 2 - M x - 1]

pour ne [2 - M

z : 2M - 1]

A l'étape 83, on applique à la fenêtre d'initialisation h h un facteur l/A n qui permet d' assurer une condition de reconstruction parfaite, et ce en supposant que la fenêtre de synthèse est la retournée temporelle de la fenêtre d'analyse et que la transformée au décodage sera duale (par exemple une transformée iMDCT, si une transformée MDCT a été appliquée au codage).

Le terme Δ η est donné par :

Δ„(η) = Δ η (η ÷ Μ) = ν /ί (η) . ¾ (2Λί - π - 1 ) + Ιπί η ÷ λ ϊ ) .ίη [ \ ί - n ~ 1) .·/ e ;0: M - ' ί]

La fenêtre d'analyse h a à reconstruction parfaite est alors donnée par

On relèvera que les valeurs strictement à " 1" ne nécessitent aucune multiplication de pondération. Ainsi, le gain attendu en complexité est important par rapport à l'état de l' art, comme le montre le tableau ci-après, selon un autre avantage que procure l'invention.

Ainsi, pour un gain de délai donné (un nombre Mz de zéros donné), il existe une combinaison optimale des quatre paramètres Ri, R 2 , Ci, C 2 définissant la forme précise des fenêtres d'analyse et de synthèse permettant d' avoir la meilleure qualité audio possible. Ces paramètres peuvent être obtenus par optimisation à itérations successives, comme décrit plus loin en référence à nouveau à la figure 8. Par exemple, un gain de délai de 35 % (correspondant à 14 ms pour des trames de 40 ms dans l'exemple décrit ici), correspond simplement à un délai algorithmique du codeur. Ce délai, de 26 ms dan 'exemple décrit, impose un nombre de zéros M z donné par :

où Γ^Ί dénote l'entier plus grand ou égal à x le plus proche de x. On trouve alors Mz = 14ms, pour M = 40ms.

Avec ce choix, les valeurs des paramètres des fenêtres d'analyse et de synthèse peuvent être par exemple données par :

Ch - 0.9659 ou kl dénote l'entier plus petit ou égal à x le plus proche de x.

Une telle réalisation correspond à la fenêtre d'initialisation représentée sur la figure 4. Un autre exemple d'approche permet de réduire le nombre de paramètres de la fenêtre d'initialisation à rechercher. Cette approche consiste à considérer que le nombre de « 1 » dans la fenêtre h t doit être le double du nombre de « 0 » et que l'axe de symétrie de la fenêtre h t correspond au milieu du segment W 2 , comme illustré sur la figure 5. Dans ces conditions, les valeurs des intervalles R 2 et Ri dépendent uniquement de l'étendu de l'intervalle Mz (c'est-à-dire du nombre choisi de « 0 » à la fin de la fenêtre d'initialisation).

Dans ces conditions :

E > 2 = [M ~ 2M Z + 1 4- 0.5 j

i? î = i \ ! ··· M, - i 4· ! î.5j *

où Gdeiay est le gain souhaité sur le délai, en ms, FL est la longueur de la trame 2M en ms (la fréquence d'échantillonnage étant donnée par Fs = 2M/FL xlOOO, si l'on compte en millisecondes ou « ms »).

Ensuite, on cherche à l'étape 84 de la figure 8 à déterminer les constantes Ci et C 2 (et éventuellement Ri et R 2 ), par exemple par la mise en œuvre d'une optimisation itérative (comme par exemple la technique dite « des gradients »). En partant par exemple à l'étape 81 d'un choix de paramètres initiaux pour les valeurs de Ri ; R 2 ; Ci et C 2 respectivement de 2Mz ; Mz ; 1 et 1 , on calcule à l'étape 84 une fonction coût appliquée à :

la fenêtre d'analyse découlant de la fenêtre d'initialisation ayant une forme du type présenté ci-avant, et

sa duale de synthèse, assurant une reconstruction parfaite.

La fonction coût peut être composée d'un ensemble de critère à vérifier au test 85. On peut citer par exemple et de manière non exhaustive :

- l'analyse de la dérivée première de la fenêtre :

avec

W(0) \ si n = 0

D' ( 7l) W{n + 1 ) - W(n) \ si 0 < n < 2M - 1

W{ 2M ~ 1) | si n = 2M - I

- l'analyse de la dérivée seconde de la fenêtre

avec

D' (0) si n = 0

D"(n) = \D' {n + 1 ) - D'(n) \ si 0 < n < 2 M - 1

D' (2M - 1) 1 si n 2 M l

- la recherche de gain de codage tel que défini par exemple dans le document WO-2009/081003,

- la maximisation du rapport signal à bruit « SNR », exprimé en logarithme entre un signal non codé et l'erreur introduite par le codage, pour un échantillon audio donné en appliquant à la fois la fenêtre d'analyse et la fenêtre de synthèse au sens de l'invention.

Au test 85, on peut vérifier si les critères de fin d'optimisation son atteints (valeur de fonction coût, variation de la valeur des paramètres, ou autres). Le cas échéant (flèche OK), les valeurs de paramètres optimisés sont trouvées à l'étape de fin 87. Sinon, dans le cas contraire (flèche KO), les valeurs de R l5 R 2 , Ci et C 2 sont modifiées de manière à réduire la fonction de coût. Ainsi, en partant d'un choix de paramètres initiaux Ri ; R 2 ; Ci et C 2 respectivement à 2Mz ; Mz ; 1 et 1, on trouve, a rès optimisation :

C 2 = 0.9659

si l'on prend l'option d'optimiser à la fois ces quatre paramètres,

ou, alternativement :

- Ci avec une valeur proche de 5, et

- C 2 avec une valeur proche de 1 ,

si l'on prend l'option de n'optimiser que les deux paramètres Ci et C 2 . On peut donc, dans cette deuxième option, limiter la recherche de valeurs optimale à Ci et C 2 dans le cas où l'on considère que le nombre de 1 est le double du nombre de 0 et que l'axe de symétrie de la fenêtre correspond au milieu du segment W 2 comme illustré sur la figure 5.

Il est à noter qu'avec la première option précitée (en optimisant les quatre paramètres à la fois), pour un retard de 28ms (au lieu de 26ms comme précédemment), on trouve Ci=4,1582 et C 2 =0,9181 avec cette technique d'optimisation.

Plus généralement, le tableau 1 ci-dessous présente un ensemble de paramètres RR 2 , Ci et C 2 optimisés, selon différentes options de retard et donc de nombre d'échantillons à « 0 » (Mz). Le nombre d'échantillons par trame M est donné pour une fréquence d'échantillonnage à 48000 Hz et des trames de 20 ms :

Tableau 1 : optimisation des quatre paramètres à la fois R Ci, R 2 , C 2

Les données de ce tableau s'expriment en particulier en fonction du nombre d'échantillons à « 0 dans le quatrième intervalle Mz, comme suit : Retard (ms)

Le tableau 2 ci-dessous présente un ensemble de paramètres i et C 2 optimisés, selon la deuxième option précitée, en fixant les intervalles Ri et R 2 en fonction du nombre de zéros Mz. Le nombre d'échantillons par trame M est donné pour une fréquence d'échantillonnage à 48000 Hz et des trames de 20 ms :

Tableau 2 es Ri et R 2

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.

Par exemple, la méthode d'optimisation par itération peut être comme décrit ci-avant une méthode de type dit « des gradients » mais d'autres variantes sont, bien entendu, possibles. On peut aussi par exemple, au sein du processus d'optimisation, fixer le maximum de la fenêtre h a à 1, de manière à traiter les échantillons sonores avec un poids relativement constant.

De façon plus générale, les valeurs des fenêtres d'analyse et de synthèse peuvent être déterminées préalablement (par optimisation comme décrit ci-avant), puis stockées en dur dans une mémoire d'un dispositif de codage ou de décodage, pour être utilisées dans un procédé de codage ou de décodage. Dans une variante, il est possible de définir des fenêtres d'initialisation, les stocker en mémoire des dispositifs précités, et de les optimiser ensuite selon par exemple des conditions de communication.

QQ群二维码
意见反馈