FR 2593948 A1 19870807 FR 8601629 A 19860206 Dispositif de transformée en cosinus d'un signal numériaue échantillonn_ L'invention concerne le traitement de signaux numériques échantillonnés pour fournir une transformée en cosinus discrète (TCD ou DCT). On utilise depuis longtemps les transformées discrètes rapides pour réaliser la compression tempo- relle ou spatiale de données à transmettre ou à stocker. On a notamment utilisé les transformées simples, telles que la transformée de Walsh-Hadamard, qui ont l'avantage de ne mettre en oeuvre que des circuits simples mais en contrepartie ne fournissent qu'un taux de compression faible. Le besoin se fait maintenant sentir de disposer de transformées rapides permettant d'atteindre des taux de compression élevés et n'exigeant cependant que des circuits de complexité acceptable et pouvant fonctionner en temps réel. On a notamment proposé l'utilisation de la TCD, en particulier pour les systèmes de videotexte, du fait qu'elle permet d'augmenter notablement le taux de com- pression. Mais, même pour des transformées de faible longueur, il est difficile de réaliser des circuits intégrés pouvant fonctionner en temps réel aux fré- quences d'échantillonnage requises, même lorsqu'on met en oeuvre les derniers algorithmes proposés, qui réduisent la complexité du calcul. Pratiquement, on peut tout juste arriver à des fréquences d'échantillonnage de MHz pour des transformées de longueur huit. L'inven- tion vise à fournir un dispositif de traitement de signal échantillonné capable de fournir la transformée en cosinus discrète du signal, ayant une architecture plus simple que celle des dispositifs connus. Pour cela, le dispositif met en oeuvre un nouvel algorithme obtenu en faisant apparaître une équivalence partielle entre TCD et convolution cyclique, n'exigeant pas plus de multiplications que le calcul d'une convo- lution cyclique de même longueur. Dans ce but, l'invention propose notamment un dispositif de détermination de la transformée en cosinus discrète k d'un signal x représenté par N échantillons numériques xO,..., xi,... XNl, o N est une puissance de 2: N-1 Xk =. xi.cos [(2w/4N) (2i+1)k] (1) i=O caractérisé en ce qu'il comporte un convolueur entre les échantillons xi et une séquence mémorisée d'échantillons wi(N) et comporte de plus un ensemble de circuits élé- mentaires identiques groupés en plusieurs jeux, ayant chacun deux entrées et deux sorties dont l'une fournit la somme et l'autre la différence des deux entrées, les circuits élémentaires du premier jeu recevant sur leurs deux entrées des échantillons du produit de convolution d'indices séparés de N/2 entre eux. Dans un premier mode de réalisation, utilisant un convolueur de type classique, par exemple systolique, les circuits élémentaires du premier jeu fourniront directement les valeurs impaires Xl, X3,... et les cir- cuits des jeux suivants, par combinaison desdites va- leurs impaires, les valeurs paires successives sur les sorties de soustraction. Dans un autre mode de réalisation, le convolueur cyclique est bâti & l'aide des transformées en nombre entier des échantillons; dans ce cas, les coefficients X de la transformée apparaissent naturellement au cours du calcul de convolution, avant même le résultat final de cette dernière. Il devient inutile de réaliser la transformée TNE-1 complètement sur la plupart des coefficients X. L'invention sera mieux comprise à la lecture de la description qui suit de modes particuliers d'exécu- tion de l'invention, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la Figure 1 est un schéma de principe montrant les éléments à ajouter à un convolueur cyclique, qui peut avoir une constitution classique, pour réaliser un dispositif fournissant la transformée en cosinus; - la Figure 2 est un schéma montrant la mise en oeuvre habituelle d'un convolueur à partir des TNE des échantillons de signal et de la séquence générée ou mémorisée; - la Figure 3 montre schématiquement les simplifications intervenant dans la TNE-1, permettant d'obtenir la TCD des échantillons d 'un signal avant le calcul complet de la convolution; - la Figure 4, similaire à la Figure 2, montre une variante de réalisation faisant apparaître les blocs N"codage" et "changement de base" éventuellement néces- saires à la simplification de l'arithmétique modulo intervenant dans la TNE. Avant de décrire des dispositifs suivant l'in- vention, il est nécessaire de donner la démarche mathé- matique, faisant apparaître l'équivalence entre TCD et convolution cyclique, qui justifie l'architecture des dispositifs. Deux changements de variable successifs per- mettent de passer de l'expression classique de la TCD (formule 1 cidessus) à une convolution cyclique, de la forme: N-1 iXi * hn-i. modulo N (2) i=O Le premier changement de variable vise & faire apparaître, dans le terme en cosinus, la valeur 4i+1 qui est plus facilement généree que la grandeu consiste à substituer à x, dans la formu variable x' telle que: X. x -= x px2i X N-i+1 = x2i+1 pour x'O,..., x'N/2_1 x' en paires l0 r 2i+1. Il le (1), la Ce changement de variable distribue les valeurs deux groupes, correspondant l'un aux valeurs x2i de x, l'autre aux valeurs impaires x2i+1. On obtient alors: N-1 Xk = E i=O x'i. cos [(2w/4N) (4i+1)k] Un second changement de variable va ensuite per- mettre de faire intervenir, dans la définition de la transformée, la différence de deux indices au lieu d'un produit. On arrivera ainsi à la formulation classique (2) de la convolution cyclique, avec son terme hni. Pour obtenir ce résultat, on fait appel & la correspondance entre l'ensemble des nombres entiers congrus à 1, modulo 4 et inférieurs à 2n+2 et l'ensemble des entiers inférieurs à 2n. On peut en effet écrire: 4i+1 = 5ui mod 2n+2 (4) pour i = O, 1,..., 2n-1. On utilisera par la suite, pour faciliter l'écriture des équations, la notation: 4i+1 = 2n+2 La formule (3) devient alors: x'i. cos [(2r/4N) 2n+2 k] (5) (3) N-1 ú Xk = i=O Dans cette formule, le facteur x'i peut s'écrire, en tenant compte de l'équivalence indiquée par la formule (4): (6) et en posant: x". = x' 5i 4N -1 (6bis) on trouve: N-1 Xk= E i=O x". cos [(2w/4N) 4N Pour mieux faire apparaître l'équivalence entre TCD et convolution cyclique, on utilisera maintenant une notation polynominale, faisant intervenir une variable muette z permettant de mettre X sous forme d'un poly- nôme. On définit deux polynômes U et V comportant N. termes, chaque terme correspondant à une puissance de z entre O et N-1: N U(z) = E i=O x" i i ' Z (8) k] (7) x # ui - 1 i = x' k]zi (9) i=O 4N Xk sera alors le terme constant du produit poly- nominal de U(z1) et de Vk(z). En d'autres termes, Xk est le terme constant (correspondant à z 0) du produit: U(z1). Vk(Z) mod (zN-1) (10) On peut montrer que tous les termes imDairs, c'est-à-dire de la forme V2k, +l (z) appartiennent à une même famille de polynômes décalés les uns des autres N-i d'une puissance de z modulo zN 1 Cela découle des cal- culs qui précèdent car l'expression (1), lorsqu'elle est écrite pour les valeurs impaires k = 2k'+1, est symé- trique en i et k. Si on connait V1 on peut donc en déduire toutes les autres valeurs impaires V2k,+l. Pour faciliter les calculs, on introduira maintenant la séquence: (N) = + n-1 wi(N) = 1 + E cos [(2w/4N) 2j] (11) j=O 4N o n est la même puissance de 2 que celle fixant la longueur requise N et j est un indice d'incrémentation distinct de i. Cette séquence wi peut être calculée une fois pour toutes et mémorisée dans un dispositif de détermi- nation de la TCD. On va maintenant voir que la TCD peut être obte- nue par convolution cyclique de la séquence (xi) des échantillons du signal avec la séquence (wi) mémorisée et quelques additions supplémentaires. Pour cela, il suffit de remarquer que le poly- nôme W(z), dont les w sont les coefficients des puis- sances successives de la variable muette z, s'écrit: N-1 (N) (N) W(N)(z) = E wi.z i=O V0(z) + V2 (z) + V (z) +...+ V2j (z) + V2nl(z) (12) et tous les Vk de z peuvent s'obtenir par addition de versions décalées successives de W(z) car: l0 2V1(z) = w(N)(z) - zN/2 w(N)(z) mod (zN1) (13 Or, on a indiqué plus haut que tous les termes impairs V2k,+1 appartiennent à une même famille et se déduisent les uns des autres par décalage. Tous les termes impairs V2k,+l se déduisent donc de V1(z) par décalage. De même, tous les termes pairs V2(2k,+1) (z) se déduisent de V2 par décalage. En effet, on peut remarquer la similitude entre l'expression 2V1(z), donnée par la formule (13), et celle de 2w(N/2)(z) 2w(N/2)(z) = w(N)(z)+zN/2.w(N)(z) mod (zN-1) (14) et on peut en tirer les termes congrus à 2 mod 4 de la transformée en cosinus: (N2_N/4 (N/2) 2 V2(z) = w(N/2)-zN/4 w(N/2)(z) (15) et tous les V2(2k,+1)(Z) par décalages successifs de V2. Par itération, on obtiendra ainsi successive- ment: V2k,+l(Z) V2(2k,+l (Z) V2R(2k,+1)(Z) V 2 (2'+1(z) VN/2(z) VN(Z) = V0 c'est-à-dire, pour N = 8, successivement V1, V3, V5, V7 V2, V6 VO0 Exprimé sous une autre forme, on peut présenter Vk(z) sous la forme: Vk(z) = w(N)(z) E z mod (zN-1) (16) ú=O o a est une variable muette. La formule (16) fait apparaître que tous les Vk sont formés par la somme de versions décalées, au sens polynominal (c'est-à-dire découlant les unes des autres par multiplication par z). La seule connaissance du produit de polynômes Y(z): - N-1 Y(z)= E y2 = U (z 1) WN) (z) mod (zN-1) (17) 2=0 permet donc de retrouver Xk, terme constant (c'est-à- dire facteur correspondant à la puissance zéro de z) du produit U(z 1). W(z) car, si l'on tient compte de la formule (16): -1 M CLN U(z-).Vk(z) = U(z 1).W(z) E z mod (zN-1) 2=0 et, d'après (17): = Y(z) E za mod (zN-1) (18) 2=0 Or, le produit de polynômes U(z 1).W(z) est une autre écriture de la convolution cyclique de{ ui} par N-1 Yn =E x w N (19) que l'on peut comparer à la formule classique (2) de la convolution cyclique. En résumé, on voit que la TCD peut être obtenue en effectuant en séquence: - une opération de convolution cyclique clas- sique faisant intervenir les échantillons d'entrée x et les valeurs w qui peuvent être calculées et mémorisées une fois pour toutes, pour chaque valeur de N; - les opérations représentées par les équations (15) et (16) qui se limitent à des addi- tions et peuvent être représentées sous la forme des "papillons" intervenant dans les transformées de Fourier, a et b étant les entrées: a a+b b a-b ou a a+b b a-b La Figure 1 montre, à titre d'exemple, une cons- titution possible d'un dispositif de transformation en cosinus utilisant un convolueur cyclique pouvant avoir l'une quelconque des constitutions classiques connues. Il peut notamment s'agir d'un convolueur cyclique de type systolique tel que celui décrit dans l'article de H. Barral et autres "Circuits for digital signal processing", Proceedings of ICASSP 84, Paper No. 44-9, complété de connexions pour le rendre cyclique. Le convolueur 10 représenté est prévu pour réaliser une transformée en cosinus de longueur N = 8. Il comporte huit entrées destinées à recevoir les échantillons xO,..., x7 et huit entrées wo,..., w7 destinées à rece- voir les valeurs w, mémorisées dans une mémoire morte 12. Les valeurs de sortie yO,..., y7 fournies par le convolueur sont celles données par la formule (19) ci- dessus. Ces valeurs doivent être combinées par des opérateurs qui se limitent à des opérations d'addition ou de soustraction. Un premier jeu d'opérateurs 14 de type "papillon", correspondant à l'algorithme (13) cidessus fournit directement le double des valeurs de X1, X5, X7 et X3 (termes impairs). Un second jeu, 16, constitué de deux opérateurs identiques aux quatre opérateurs 14, fournit, à partir des sorties additives des opérateurs 14, le quadruple de la valeur de X2 et de X6. Enfin, un dernier opérateur 18 fournit l'octuple de la valeur de X0 et de X4. L'existence d'une équivalence entre TCD et convolution cyclique permet de calculer la complexité multiplicative des TCD de longueur 2 quelconque, c'est- à-dire le nombre minimum de multiplications nécessaire au calcul d'une TCD de longueur 2n. En effet, puisque le passage de la convolution à la TCD ne nécessite pas de multiplication, la TCD et la convolution ont la même complexité multiplicative: p(conv.2n) = 2n+1 - n -1 Au surplus, il faut noter que l'une des multi- plications est triviale, c'est-à-dire consiste en une multiplication par un facteur appartenant à l'ensemble des rationnels. En conséquence: p(TCD 2n) = 2n+ n -2. Dans l'exemple choisi plus haut d'une longueur N 8 = 23, il sera nécessaire d'effectuer 24 -3 -2 = 11 multiplications. Les technologies actuelles courantes permettent d'effectuer une multiplication & une cadence de 10 MHz. Si l'on souhaite réaliser cette même cadence dans des circuits pour répondre par exemple aux besoins des systèmes de photo-videotext, il sera nécessaire d'in- tégrer dans le circuit au moins deux multiplications, et souvent davantage du fait du manque de régularité des produits. Pour des mots de douze bits en entrée, on peut atteindre, avec un seul convolueur complet du genre décrit ci-dessus, une vitesse de l'ordre de 300 kHz pour des niveaux de douze éléments binaires en entree. Dans la variante de réalisation montrée en Figure 2, le dispositif utilise un transformateur en nombre entier, 20. Les valeurs (xn) sont appliquées & l'entrée d'un transformateur en nombre entier ou TNE qui fournit une séquence (A):k N-1 Ak = E.xn modM n=O o a est une racine positive Nième de l'unité modulo M. Le dispositif comprend également une mémoire 22 dans laquelle sont stockées les transformées en nombre entier (Bk) de la séquence (wn) de valeur w. Les valeurs Bk sont calculées une fois pour toutes par la formule N-1 Bk = E w mod M n=O n Les transformées en nombre entier sont appli- quées & un multiplicateur modulo M 24 qui fournit la transformée en nombre entier de la séquence résultat (yn) qui est obtenue à l'aide d'un tranformateur en nombre entier inverse ou TNE-1 26. En choisissant convenablement N et M, on peut avoir une valeur simple de a. On peut notamment prendre une valeur de a égale à une puissance de 2. Dans ce cas, les transformateurs TNE et TNE 1 ne comportent pas de multiplication, mais uniquement des décalages ce qui simplifie la réalisation matérielle du circuit. De plus, l'utilisation de transformateurs en nombre entier permet une simplification supplémentaire; si l'on tient compte que les réductions de Y(z) = E Yn.zn modulo (les polynômes cyclotomiques) interviennent comme variables intermédiaires à l'intérieur des algo- rithmes de TNE. On peut interrompre le calcul de TNE1 intervenant en Figure 2 avant son terme. La Figure 3 est un graphe d'un dispositif de détermination de transformée en cosinus qui utilise l'algorithme simplifié, pour une longueur N = 8. Sur le graphe apparaissent les groupes d'opérateurs en papillon 28, 30, 32 et 34 ayant la même constitution que ceux utilisés dans la Figure 1. Toutefois, les opérateurs de la Figure 1 sont des opérateurs courants alors que ceux de la Figure 3 fournissent le résultat modulo M et peu- vent être du genre décrit dans la demande FR 84 14624. Les multiplieurs B0 à B7 reçoivent, d'une part, la séquence de valeurs fournie par les transformateurs 28 et 30 à partir des valeurs x0o,..., x7 et, d'autre part, les valeurs Bo,..., B7, TNE des valeurs w correspon- dantes. Ces valeurs Bol,..., B7 peuvent être fournies par une mémoire morte ou déterminées par les multiplieurs eux-mêmes, à partir des valeurs w. Le transformateur de la Figure 3 présente l'avantage de n'exiger qu'une multiplication générale (modulo M) par point. En conséquence, les circuits peuvent être réalisés de façon à fonctionner à une vitesse d'échantillonnage égale à la vitesse de cadence- ment du multiplieur pouvant être de 10 MHz avec les technologies disponibles à l'heure actuelle. En utilisant des schémas de multiplieur particuliers, tels que celui montré en Figure Il de la demande FR 84 14624, on peut encore augmenter la vitesse. On peut constituer des dispositifs similaires à celui de la Figure 3, mais correspondant à d'autres valeurs de N. Il est particulièrement intéressant, dans tous les cas, d'adopter des valeurs particulières de M qui se traduisent par une simplification de l'architec- ture. C'est notamment le cas lorsqu'on adopte pour M un nombre de Fermat 22 + 1, un pseudo nombre de Fermat 22q + 1, ou un nombre du type M = 22q 2q + 1. Par exemple, pour un nombre du dernier type avec q = 12, a = 29, toute multiplication par une puissance de a est composée uniquement de rotations, complémentations et, éventuellement, d'une addition. Dans une variante de réalisation de l'invention, la transformation en nombres entiers est réalisée en utilisant un changement de base et un codage du type décrit dans la demande de brevet FR 84 14624 (Duhamel et Hollmann). Dans ce cas, le schéma général de la TCD peut se limiter à celui donné en Figure 4. Le dispositif de la Figure 4 comprend, en amont du transformateur en nombre entier 20, un circuit 36 de codage et de changement de base. La séquence {B} appli- quée au multiplieur 24 est également obtenue-par codage, changement de base et TNE. La séquence de sortie du mul- tiplieur 24 n'a pas à être soumise & la totalité d'une TNE inverse, puisque les réductions de Y(z) inter- viennent comme variables intermédiaires. Le calcul est arrêté à ce stade, ce qui permet de simplifier le trans- formateur TNE 1 38. Les résultats obtenus sont soumis à décodage et retour à la base initiale dans un circuit , qui fournit la séquence (X). Les composants 20, 24 et 38 de la Figure 4 peuvent alors être constitués par le montage en traits pleins de la Figure 3, qui devrait normalement être complété par les composants en tirets. Les entrées xi sont appliquées à ce montage après codage en 36 et on obtiendrait sur la sortie les valeurs Nyi codées; cette partie en tirets n'est pas nécessaire et ce sont les X. i qui sont appliqués au décodeur 40. L'ensemble du circuit de la Figure 3 (y compris la partie en tirets) peut constituer un convolueur 10 utilisable dans le dispositif de la Figure 1. Les constitutions de convolueur mentionnées ci- dessus ne sont pas les seules possibles. On peut en particulier utiliser un convolueur utilisant des circuits mettant en oeuvre une arithmétique distribuée, telle que celle décrite dans "Digital Filter Structures Described by Distributed Arithmetic", C. Sydney Burrus, IEEE Transactions on circuits and systems, cas. 24, No. 12, Dec. 77, pp. 674-680 et dans "A Prime Factor FTT Algorithm Using Distributed Arithmetic" par Shuni Chu et al, IEEE Transactions on Acoustics, Speech and signal processing, Vol. ASSP-30, No. 2, Avril 82, pp. 217-226. Au prix de l'adjonction d'une mémoire contenant des produits pré-calculés, les calculs sont simplifiés par remplacement des multiplications par des additions et des lectures en mémoire. REVENDICATIONS 1. Dispositif de détermination de la transformée en cosinus discrète Xk d'un signal x représenté par N échantillons numériques xo0,..., xi,... xN1, o N est une puissance de 2: N-1 Xk E xi. cos [(2w/4N) (2i+1)k] (1) i=0 caractérisé en ce qu'il comporte un convolueur entre les échantillons xi et une séquence mémorisée d'échantillons wi(N) et en ce qu'il comporte de plus un ensemble de circuits élémentaires identiques groupés en plusieurs jeux, ayant chacun deux entrées et deux sorties dont l'une fournit la somme et l'autre la différence des deux entrées, les circuits élémentaires du premier jeu rece- vant sur leurs deux entrées les échantillons du produit de convolution d'indices séparés de N/2 entre eux. 2. Dispositif selon la revendication 1, carac- térisé en ce que les circuits élémentaires du premier jeu fournissent directement les valeurs impaires (Xl, X3,...) et les circuits des jeux suivants, par combi- naison desdites valeurs impaires, les valeurs paires (XO,..., X8) successives sur les sorties de sous- traction. 3. Dispositif de détermination de la transformée en cosinus discrète Xk d'un signal x représenté par N échantillons numériques xO,..., xi,... xNl, o N est une puissance de 2: N-1 Xk = E xi. cos [(2n/4N) (2i+ 1)k] (1) i=O caractérisé en ce qu'il comporte des moyens pour former un produit modulo M (M étant un nombre entier tel que a soit une racine positive Nième de M) entre les échan- tillons xi ayant subi une TNE et une séquence mémorisée d'échantillons wi ayant subi eux aussi une transfor- mation en nombres entiers, et comporte de plus un ensemble de circuits élementaires identiques groupés en plusieurs jeux, ayant chacun deux entrées et deux sorties dont l'une fournit la somme et l'autre la différence des deux entrées, les circuits élémentaires du premier jeu recevant sur leurs deux entrées les échantillons des produits modulo M d'indices séparés de N/2 entre eux, les sorties d'indices O et N/2 du convo- lueur fournissant directement les deux valeurs X et XN/2 de la transformée en cosinus.