Brevet FR2769434A1 — publié le 19990409

Méthode de décodage Viterbi et décodeur Viterbi utilisant la valeur de distance minimale et/ou la valeur métrique de trajet minimale CONTEXTE DE L'INVENTION La présente invention concerne une méthode de décodage Viterbi qui consiste à calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, à calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et à décoder une donnée originale en utilisant les valeurs métriques de trajet. L'invention concerne également un décodeur Viterbi comportant : un calculateur métrique de branche pour calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue ; un calculateur métrique de trajet pour calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche ; et des moyens pour décoder une donnée originale en utilisant les valeurs métriques de trajet. Un codage à convolution et un décodage Viterbi sont utilisés pour supprimer une erreur qui a pu se produire dans la transmission de données et/ou dans l'enregistrement/la reproduction de données. La figure 4 est un schéma fonctionnel d'un décodeur Viterbi classique, qui comprend une unité de calcul métrique de branche 11, une unité de calcul métrique de trajet 12 et une unité de recherche 13. Les données reçues (et/ou reproduites) (gl', g2') sont appliquées à l'unité de calcul métrique de branche 11, qui calcule pour chaque branche des valeurs métriques de branche à partir des données reçues et des valeurs de branche. L'unité de calcul métrique de trajet 12 comporte plusieurs unités ACS (Add-Compare-Select, addition-comparaison-sélection) pour chaque noeud, et chaque unité ACS calcule une valeur métrique de trajet correspondante à partir d'une valeur prédéterminée parmi les valeurs métriques de trajet précédentes et des valeurs métriques de branche correspondantes en utilisant un algorithme ACS. Dans ce cas, les valeurs métriques de trajet sont augmentées car chacune est la somme de l'une des valeurs métriques de trajet précédentes et d'une valeur métrique de branche correspondante. Les valeurs métriques de trajet doivent donc subir une réduction d'échelle dans des cycles prédéterminés, en raison de la limite de taille des mémoires destinées à stocker les valeurs métriques de trajet. Une telle réduction d'échelle provoque une perte des valeurs métriques de trajet et réduit ainsi l'avantage qu'offre un décodeur Viterbi. RESUME DE L'INVENTION En conséquence, le but de la présente invention est de proposer une méthode de décodage Viterbi destinée à accroître les avantages d'un décodeur Viterbi. Un autre but de la présente invention est de proposer un décodeur Viterbi pour mettre en oeuvre cette méthode. Ces buts sont atteints, selon un premier aspect de la présente invention, avec une méthode du type spécifié en introduction, grâce au fait que le calcul de plusieurs valeurs métriques de trajet comporte les étapes suivantes production de plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes , sélection de la plus petite des valeurs métriques de trajet précédentes, pour produire une valeur métrique de trajet minimale ; et soustraction de la valeur métrique de trajet minimale à partir des valeurs métriques de trajet primaires, pour produire plusieurs valeurs métriques de trajet présentes. A titre de variante, la valeur métrique de trajet minimale peut être choisie parmi les valeurs métriques de trajet primaires. Les valeurs métriques de trajet présentes sont stockées dans une mémoire. Selon un autre aspect de la présente invention, le calcul de plusieurs valeurs métriques de branche consiste à produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement a sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale ; et à soustraire la valeur de distance minimale des valeurs de distance respectives, pour produire plusieurs valeurs métriques de branche. Selon un autre aspect, la présente invention propose un décodeur Viterbi du type spécifié en introduction, caractérisé en ce que le calculateur métrique de trajet comporte : plusieurs unités ACS pour produire plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes, respectivement; un sélecteur de valeur métrique de trajet minimale pour sélectionner la plus petite des valeurs métriques de trajet précédentes, pour produire une valeur métrique de trajet minimale ; plusieurs soustracteurs pour soustraire la valeur métrique de trajet minimale des valeurs métriques de trajet primaires, respectivement, pour produire plusieurs valeurs métriques de trajet ; et une mémoire pour stocker les valeurs métriques de trajet présentes. A titre de variante, le sélecteur de valeur métrique de trajet minimale peut choisir la plus petite des valeurs métriques de trajet primaire au lieu des valeurs métriques de trajet précédentes. Le calculateur métrique de branche comporte également : plusieurs calculateurs de distance pour produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement ; un sélecteur de valeur de distance minimale pour sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale ; et plusieurs soustracteurs qui soustraient chacun la valeur de distance minimale de la valeur de distance correspondante, pour produire une valeur métrique de branche correspondante. DESCRIPTION SUCCINCTE DES DESSINS On comprendra mieux la présente invention et ses avantages à la lecture de la description suivante, associée aux dessins annexés dans lesquels la figure 1 est un schéma fonctionnel destiné à illustrer un exemple de codeur à convolution, la figure 2 est un diagramme d'états destiné à illustrer la transition de valeurs d'état et la relation entre l'entrée et la sortie d'un codeur à convolution, la figure 3 illustre l'état du signal reçu d'un décodeur Viterbi, la figure 4 montre schématiquement la configuration d'un décodeur Viterbi classique, la figure 5 est un schéma destiné à montrer comment fonctionne le calcul des valeurs métriques de branche selon la présente invention, la figure 6 est un schéma fonctionnel d'un mode de réalisation préféré de l'unité de calcul métrique de branche selon la présente invention, la figure 7 est un schéma fonctionnel d'un mode de réalisation préféré de l'unité de calcul métrique de trajet selon la présente invention, et la figure 8 est un schéma fonctionnel d'un autre mode de réalisation préféré de l'unité de calcul métrique de trajet selon la présente invention. DESCRIPTION DETAILLEE DE LA PRESENTE INVENTION Pour une meilleure compréhension des modes de réalisation préférés, on va tout d'abord expliquer en détail les problèmes du décodeur Viterbi du domaine considéré, en référence aux figures 1 à 5. Pour la correction d'erreurs du signal dans un système de transmission numérique et/ou dans un système d'enregistrement/de reproduction numérique, on utilise généralement un codeur à convolution et un décodeur Viterbi. Pour faciliter la compréhension de la présente invention, on va commencer par expliquer brièvement les opérations effectuées par un codeur à convolution et par un décodeur Viterbi. Les figures 1 et 2 sont destinées à illustrer le fonctionnement d'un exemple de codeur à convolution. Plus spécialement, la figure 1 est un schéma fonctionnel du codeur à convolution, et la figure 2 est un diagramme d'états du codeur à convolution de la figure 1, qui représente les transitions d'états et les données de sortie du codeur en fonction des données d'entrée et de l'état présent. Dans le codeur à convolution représenté à titre d'exemple sur la figure 1, la première valeur de sortie gl est xexdlexd2, et la seconde valeur de sortie g2 est xexd2, le taux de codage étant de 1/2. Les valeurs de sortie gl et g2 dans une impulsion d'horloge k sont déterminées à partir des données d'entrée présentes x du codeur et des deux données d'entrée précédentes xdl et xd2. Ces données d'entrée précédentes sont fournies à partir de l'élément de mémoire. Par exemple, quand la donnée d'entrée est une donnée à 1 binaire, l'élément de mémoire peut être un élément de mémoire à 1 binaire tel qu'un registre à 1 binaire. "xdl" représente ici la donnée d'entrée retardée d'une impulsion d'horloge, qui est obtenue en retardant la donnée d'entrée x à transmettre d'une impulsion d'horloge, tandis que "xd2" représente la donnée d'entrée retardée de deux impulsions d'horloge, qui est obtenue en retardant la donnée d'entrée x à transmettre de deux impulsions d'horloge. Le codeur à convolution tel qu'il est décrit plus haut combine sélectivement la donnée d'entrée x, la donnée d'entrée retardée d'une impulsion d'horloge xdl et la donnée d'entrée retardée de deux impulsions d'horloge xd2 de manière à produire les données codées gl et g2. En conséquence, la donnée d'entrée appliquée par un binaire est convertie par le codage à convolution en une donnée codée à deux binaires. De plus, (xdl, xd2) est appelé d'une manière typique l'état présent. Comme le montre la figure 2, non seulement les données de sortie gl, g2 du codeur, mais également l'état suivant (x, xdl) du codeur dépendent de l'état présent (xdl, xd2) et de la donnée d'entrée x. Ces relations sont utilisées pour le décodage dans le décodeur Viterbi. Le décodeur Viterbi peut ainsi décoder correctement la donnée d'entree x à partir du signal transmis gl' et g2' qui peut contenir une erreur. En référence à la figure 2, on va considérer la règle entre les données de sortie gl, g2 du codeur, l'état présent (xdl xd2) et la donnée d'entrée x. La flèche représentée sur la figure 2 représente la transition d'un état à un autre. Plus spécialement, la flèche en trait discontinu représente la transition d'état lorsque la donnée d'entrée x est "0" tandis que la flèche en trait plein représente la transition d'état lorsque la donnée d'entrée x est "1. Comme le montre la figure 2, la transition d'un état présent à l'état suivant dépend de la donnée d'entrée x. De plus, l'état apte à être pris comme état suivant est limité en fonction de l'état présent. Par exemple, si l'état présent est (00), la transition passe seulement à l'état (00) ou (10), suivant la donnée d'entrée. C'est-à-dire que l'état présent du codeur effectue la transition à partir de (00) à l'impulsion d'horloge k, vers (00) à l'impulsion d'horloge suivante k+l si la donnée d'entrée est '0', et l'état transmis (00) est maintenu pendant l'intervalle d'impulsion d'horloge suivant k+1. De plus, la donnée de sortie du codeur est (00) à l'impulsion d'horloge k. A titre de variante, si l'état présent à l'impulsion d'horloge k est (00) et que la donnée d'entrée est '1', l'état suivant du codeur devient (10), qui est maintenu pendant l'intervalle d'impulsion d'horloge suivant k+1, et la donnée de sortie du codeur à cette impulsion d'horloge k est (11). De telles relations entre la transition d'état, la donnée d'entrée et la donnée de sortie sont utilisées pour le décodage dans un décodeur Viterbi. En référence à la figure 3, on va maintenant expliquer la correction d'erreurs d'un décodeur Viterbi. Le signal de sortie (gl g2) du codeur est transmis par une ligne de transmission dans laquelle des erreurs ont pu se produire. Le décodeur reçoit la donnée transmise qui contient une erreur, puis il effectue une conversion analogique-numérique. Cette opération va être expliquée en référence à la figure 3. Chacune des données codées (gl, g2) contient '0' ou '1' (c'est-à-dire qu'il s'agit de données à 2 niveaux), mais le décodeur distingue chacun des signaux reçus en données à 8 niveaux (données à 3 binaires) pendant la conversion analogique/numérique pour la correction d'erreurs. La donnée reçue puis ayant subi une conversion analogique/numérique est représentée ici par (gl', g2'), et g11 et g2' sont des données à 3 binaires (à 8 niveaux), respectivement. S'il n'y a pas de perte dans la ligne de transmission (c'est-à-dire s'il n'y a pas d'erreur), la donnée reçue (gl', g2') est positionnée à l'intérieur de l'un des cercles de la figure 3. Mais s'il y a une perte dans la ligne de transmission (c'est-à-dire s'il y a une erreur), la donnée reçue (gl', g2') peut être positionnée à l'une des intersections de lignes discontinues, à l'extérieur des cercles de la figure 3. Puis les valeurs métriques de branche BM0O, BM01, Bol0, BM11 sont calculées, chacune d'elles représentant les distances entre la donnée reçue (gel', g2') et les points (000, 000), (000, 111), (111, 000), (111, 111), respectivement (ces points sont appelés ici points de branche). Par exemple, si la donnée reçue (gl', g2') est positionnée à l'intérieur du cercle de (111, 111), la valeur métrique de branche BMO0 est '14', la valeur métrique de branche BMO1 est '7', la valeur métrique de branche BM10 est '7' et la valeur métrique de branche BM11 est '0'. Ces valeurs métriques de branche sont calculées pour chaque donnée reçue. Puis plusieurs valeurs métriques de trajet sont calculées à partir des valeurs métriques de trajet précédentes et des valeurs métriques de branche. On peut utiliser par exemple les équations suivantes PMOO(T) = MINIMUM (BMO0 + PMO0 (T-1), BM11 + PM01 (T-l)) PM01(T) = MINIMUM (BM10 + PM10 (T-l), BM0l + PM11 (T-l) ) PM1O(T) = MINIMUM (BM11 + PMO0 (T-1), BM0O + PM0l (T-l)) PMll(T) = MINIMUM (BM0l + PM10 (T-l), BM10 + PM11 (T-l)) dans lesquelles PMOO(T), PMO1(T), PM1O(T), PMll(T) représentent les valeurs métriques de trajet lors de la phase présente, et PMOO(T-1), PMO1(T-1), PM10(T-1), PMll(T-1) représentent les valeurs métriques de trajet lors de la phase précédente. Par ailleurs, BMO0, BMO1, BM10, BM11 représentent les valeurs métriques de branche, et la fonction MINIMUM() représente la sélection de la valeur minimale. L'unité de calcul métrique de trajet 12 de la figure 4 calcule non seulement les valeurs métriques de trajet, mais elle génère également plusieurs signaux de sélection de trajet. Chacun des signaux de sélection de trajet représente le trajet subsistant et est appliqué à une mémoire de trajets contenue dans l'unité de recherche 13, pour servir à la recherche. Comme le montrent les équations indiquées plus haut, les valeurs métriques de trajet augmentent au fur et à mesure des opérations. I1 est donc nécessaire de soumettre les valeurs métriques de trajet à une réduction d'échelle pour les ramener à l'état initial, suivant une périodicité prédéterminée, en raison des limites de matériel du décodeur. Cette réduction d'échelle entraîne une perte de valeurs métriques de trajet, et donc une diminution du bénéfice du décodeur. Il est donc nécessaire que tandis que la taille du matériel du décodeur diminue, il ne puisse pas y avoir de perte de valeurs métriques de trajet. C'est le but que s'est fixé la présente invention, qui modifie les valeurs métriques de branche et/ou les valeurs métriques de trajet sans déformer l'information qu'elles contiennent. La méthode de calcul de valeurs métriques de branche va être expliquée en détail. Selon la figure 5, la donnée reçue (ou reproduite) (gl', g2') est (001, 101). La distance D00 entre la donnée reçue (gui', g2') et le point (000, 000) est 6 ; la distance D01 par rapport au point (000, 111) est 3 ; la distance D10 par rapport au point (111, 000) est 11 ; et la distance D11 par rapport au point (111, 111) est 8. Ici, la somme des distances est toujours 28. Dans le décodeur Viterbi classique, ces valeurs de distance sont utilisées comme valeurs métriques de branche, de sorte que les valeurs métriques de trajet augmentent suivant une forte pente. Selon la présente invention, cependant, les valeurs de distance ne sont pas utilisées comme valeurs métriques de branche, mais elles sont modifiées. Plus spécialement, c'est la valeur minimale qui est choisie parmi les valeurs de distance, de manière à soustraire la valeur de distance minimale des valeurs de distance respectives pour produire les valeurs métriques de branche. Dans l'exemple cité plus haut, c'est la valeur de distance minimale 3 qui est choisie parmi les valeurs de distance (6, 3, 11, 8), puis elle est soustraite des valeurs de distance (6, 3, 11, 8) pour produire 3, 0, 8, 5 comme valeurs métriques de branche BMOO, BMO1, BM10, BM11. Ici, la somme des valeurs métriques de branche est 16, c'est-à-dire qu'elle est inférieure de 12 à la somme des valeurs de distance. Cette réduction des valeurs métriques de branche supprime la vitesse croissante des valeurs métriques de trajet. La figure 6 est un schéma fonctionnel d'un mode de réalisation préféré de l'unité de calcul métrique de branche selon la presente invention. Il concerne la production de quatre valeurs métriques de branche, par exemple. Toutefois, la présente invention n'est pas limitée à cet exemple. Selon la figure 6, l'unité de calcul métrique de branche comprend plusieurs calculateurs de distance 101, 102, 103, 104, plusieurs soustracteurs 106, 107, 108, 109 et un sélecteur de valeur minimale 105. Les calculateurs de distance 101, 102, 103, 104 calculent les distances entre la donnée reçue (gui', g2') et les points (000, 000), (000, 111), 111, 000), (111, 111), respectivement. Les valeurs de distance sont appliquées au sélecteur de valeur minimal 105 et au soustracteur correspondant 106, 107, 108, 109, respectivement. Le sélecteur de valeur minimale sélectionne la valeur minimale parmi les valeurs de distance, de manière à appliquer cette valeur de distance minimale aux soustracteurs 106, 107, 108, 109. Le soustracteur 106 soustrait ladite valeur de distance minimale de la valeur de distance D00 qui provient du calculateur de distance 101, pour produire la valeur métrique de branche BM00. De même, le soustracteur 107 soustrait la valeur de distance minimale de la valeur de distance D01 appliquée à partir du calculateur de distance 102, pour produire la valeur métrique de branche BM0l ; le soustracteur 108 soustrait la valeur de distance minimale de la valeur de distance D10 appliquée à partir du calculateur de distance 103, pour produire la valeur métrique de branche BM10 ; et le soustracteur 109 soustrait la valeur de distance minimale de la valeur de distance D11 appliquée à partir du calculateur de distance 104, pour produire la valeur métrique de branche BM11. Ainsi, les valeurs métriques de branche sont réduites de la valeur de distance minimale. On va expliquer dans ce qui suit la méthode de calcul métrique de trajet de la présente invention. Tout d'abord, plusieurs valeurs métriques de trajet primaires sont calculées à l'aide d'un algorithme ACS (Add Compare-Select) à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes. La valeur métrique de trajet minimale est choisie parmi les valeurs métriques de trajet précédentes. La valeur métrique de trajet minimale choisie est soustraite des valeurs métriques de trajet primaires pour produire plusieurs valeurs métriques de trajet. La figure 7 est un schéma fonctionnel de l'unité de calcul métrique de trajet qui est apte à appliquer cette méthode de calcul métrique de trajet selon la présente invention Selon la figure 7, l'unité de calcul métrique de trajet comprend plusieurs unités ACS 210a, 210b, 210c, 210d, plusieurs soustracteurs 205a, 205b, 205c, 205d, une mémoire 206 et un sélecteur de valeur minimale 207. Chacune des unités ACS 210a à 210d comprend deux additionneurs 201a, 202a ; 201b, 202b ; 201c, 202c ; 201d, 202d, un comparateur 203a, 203b, 203c, 203d et un sélecteur 204a, 204b, 204c, 204d, et résout respectivement l'une des équations suivantes PM'00(T) = MINIMUM(BM00+PM00(T-1), BMll+PM01(T-1)) PM'01(T) = MINIMUM(BM10+PM10(T-1), BMO1+PM11(T-1)) PM'10(T) = MINIMUM(BMll+PMOO(T-1), BM00+PM0l(T-i)) PM'll(T) = MINIMUM(BM01+PM10(T-1), BM10+PMll(T-1)) dans lesquelles PM'00(T), PM'01(T), PM'10(T) et PM'll(T) représentent les valeurs métriques de trajet primaires lors de la phase présente, et PM00(T-1), PM01(T-1), PM10(T-1), PMll(T-1) représentent les valeurs métriques de trajet lors de la phase précédente. Par ailleurs, BM00, BMO1, BM10, BM11 représentent les valeurs métriques de branche, et la fonction MINIMUM() représente la sélection de la valeur minimale. Plus spécialement, pour l'unité ACS 210a, l'additionneur 201a additionne la valeur métrique de branche BMO0 et la valeur métrique de trajet précédente PM11, et l'additionneur 202a additionne la valeur métrique de branche BMO1 et la valeur métrique de trajet précédente PM0l. Les valeurs de sortie des additionneurs 201a, 202a sont appliquées au comparateur 203a, qui les compare de manière à produire un signal de sélection représentant la plus petite des valeurs de sortie des additionneurs 201a, 202a. Le comparateur 203a génère aussi un signal de trajet subsistant correspondant qui représente le trajet présentant la valeur métrique de trajet la plus petite, c'est-à-dire le trajet subsistant. De même, les comparateurs 203b, 203c, 203d génèrent des signaux de sélection correspondants et des signaux de trajet subsistant correspondants. Ces signaux de trajet subsistant sont appliqués à l'unité de recherche telle qu'elle est représentée sur la figure 4, et ils sont utilisés dans un algorithme de recherche pour décoder la donnée originale x. Le sélecteur 204a sélectionne la plus petite des valeurs de sortie des additionneurs 201a, 202a en fonction du signal de sélection provenant du comparateur 203a. La valeur de sortie du sélecteur 204a est la valeur métrique de trajet primaire PM'00. De même, le sélecteur 204b de l'unité ACS 210b produit la valeur métrique de trajet primaire PM'01 ; le sélecteur 204c de l'unité ACS 210c produit la valeur métrique de trajet primaire PM'10 ; et le sélecteur 204d de l'unité ACS 210d produit la valeur métrique de trajet primaire PM'11. Le soustracteur 205a soustrait la valeur métrique de trajet minimale de la valeur métrique de trajet primaire PM00 de manière à produire la valeur métrique de trajet PM00 lors de la phase présente. Cette valeur métrique de trajet est stockée dans la mémoire 206. De même, les soustracteurs 205b à 205d soustraient la valeur métrique de trajet minimale de la valeur métrique de trajet primaire Pu'01, PM'10, Put11, respectivement, pour produire les valeurs métriques de trajet respectives PM0i, PM10, PM11 lors de la phase présente. Ces valeurs métriques de trajet PM0l, PM10, PM11 sont également stockées dans la mémoire 206. Le sélecteur de valeur minimale 207 choisit la valeur métrique de trajet minimale parmi les valeurs métriques de trajet PM00, PM0l, PM10, PM11 provenant de la mémoire, et la valeur métrique de trajet minimale qui a été sélectionnée est appliquée aux soustracteurs 205a, 205b, 205c, 205d. La mémoire peut alors être initialisée pour être mise à zéro, c'est-à-dire que les valeurs métriques de trajet peuvent être mises à zéro. Lors de la première phase, les valeurs métriques de trajet primaires et les valeurs métriques de trajet sont donc les mêmes. Comme le montre la figure 7, la valeur métrique de trajet minimale à appliquer aux soustracteurs 205a à 205d est la plus petite des valeurs numériques de trajet lors de la phase précédente. La valeur métrique de trajet minimale peut au contraire être choisie parmi les valeurs métriques de trajet primaires lors de la phase présente. La figure 8 illustre cette méthode, et elle montre un schéma fonctionnel d'un autre mode de réalisation de l'unité de calcul métrique de trajet selon la présente invention. Sur la figure 8, les éléments identiques à ceux de la figure 7 ont les mêmes numéros de référence, et on a renoncé à une nouvelle explication qui serait redondante. Selon la figure 8, le sélecteur de valeur minimale 208 reçoit les valeurs métriques de trajet primaires à partir des sélecteurs 204a-204d, et il choisit la plus petite d'entre elles pour produire la valeur métrique de trajet minimale. Cette valeur métrique de trajet minimale est appliquée aux soustracteurs 205a-205d. Selon la présente invention, la valeur métrique de trajet est limitée de la façon suivante 2 x (résolution de la valeur métrique de branche -1) x ( J 2nombre d'États Si la résolution de la valeur métrique de branche est '8', par exemple, et que le nombre d'états est '2' comme dans l'exemple cité plus haut, la valeur métrique de trajet ne peut pas dépasser '28'. A titre de variante, si la résolution de la valeur métrique de branche est 'S' et que le nombre d'états est '6', comme dans un système de radiodiffusion numérique par satellite, les valeurs métriques de trajet sont limitées à '112'. Une telle valeur métrique de trajet peut être appliquée par 7 binaires. Par conséquent, la taille des éléments de matériel liés à la valeur métrique de trajet peut être réduite, ce qui réduit la puissance absorbée totale de la puce de décodeur. En d'autres termes, étant donné que la valeur métrique de branche et/ou la valeur métrique de trajet sont réduites selon la présente invention, la charge de calcul diminue et réduit ainsi la puissance absorbée. De plus, la surface de la puce qui est nécessaire à la mise en oeuvre du décodeur Viterbi peut être réduite. Autrement dit, si la taille de la mémoire pour les valeurs métriques de trajet n'augmente pas, le bénéfice du décodeur Viterbi peut être accru. Bien qu'on ait représenté et décrit des modes de réalisation préférés de la présente invention, différentes variantes, modifications et solutions équivalentes peuvent être utilisées. C'est pourquoi la description précédente ne devra pas être considérée comme limitant la portée de la présente invention. REVENDICATIONS 1. Méthode de décodage Viterbi, qui consiste - à calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, - à calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et - à décoder une donnée originale en utilisant les valeurs métriques de trajet, caractérisée en ce que le calcul de plusieurs valeurs métriques de trajet comporte les étapes suivantes - production de plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS (Add-Compare Select, addition-comparaison-sélection), à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes, - sélection de la plus petite des valeurs métriques de trajet précédentes, pour produire une valeur métrique de trajet minimale, et - soustraction de la valeur métrique de trajet minimale des valeurs métriques de trajet primaires, pour produire plusieurs valeurs métriques de trajet présentes. 2. Méthode de décodage Viterbi selon la revendication 1, caractérisée en ce qu'elle consiste également à stocker les valeurs métriques de trajet dans une mémoire. 3. Méthode de décodage Viterbi selon la revendication 1, caractérisée en ce que le calcul de plusieurs valeurs métriques de branche consiste - à produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement, - à sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale, et - à soustraire la valeur de distance minimale des valeurs de distance respectives, pour produire plusieurs valeurs métriques de branche. 4. Méthode de décodage Viterbi, qui consiste à à calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, - à calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et à à à décoder une donnée originale en utilisant les valeurs métriques de trajet, caractérisée en ce que le calcul de plusieurs valeurs métriques de trajet comporte les étapes suivantes - production de plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes, - sélection de la plus petite des valeurs métriques de trajet primaires, pour produire une valeur métrique de trajet minimale, et - soustraction de la valeur métrique de trajet minimale des valeurs métriques de trajet primaires, pour produire plusieurs valeurs métriques de trajet présentes. 5. Méthode de décodage Viterbi selon la revendication 4, caractérisée en ce que le calcul de plusieurs valeurs métriques de branche consiste à à produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement, à à sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale, et à à soustraire la valeur de distance minimale des valeurs de distance respectives, pour produire plusieurs valeurs métriques de branche. 6. Méthode de décodage Viterbi, qui consiste à à calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, à à calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et à à décoder une donnée originale en utilisant les valeurs métriques de trajet, caractérisée en ce que le calcul de plusieurs valeurs métriques de branche comporte les étapes suivantes production de plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement, - sélection de la plus petite des valeurs de distance, pour produire une valeur de distance minimale, et - soustraction de la valeur de distance minimale des valeurs de distance respectives, pour produire plusieurs valeurs métriques de branche. 7. Décodeur Viterbi comportant - un calculateur métrique de branche pour calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, - un calculateur métrique de trajet pour calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et - des moyens pour décoder une donnée originale en utilisant les valeurs métriques de trajet, caractérisé en ce que le calculateur métrique de trajet comporte - plusieurs unités ACS (210a-d) pour produire plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes, respectivement, - un sélecteur de valeur métrique de trajet minimale (207 208) pour sélectionner la plus petite des valeurs métriques de trajet précédentes, pour produire une valeur métrique de trajet minimale, - plusieurs soustracteurs (205a-d) pour soustraire la valeur métrique de trajet minimale des valeurs métriques de trajet primaires, respectivement, pour produire plusieurs valeurs métriques de trajet, et une mémoire (206) pour stocker lesdites valeurs métriques de trajet. 8. Décodeur Viterbi selon la revendication 7, caractérisé en ce que le calculateur métrique de branche comporte - plusieurs calculateurs de distance (101-104) pour produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement, - un sélecteur de valeur de distance minimale (105) pour sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale, et - plusieurs soustracteurs (106-109) qui soustraient chacun la valeur de distance minimale de la valeur de distance correspondante, pour produire une valeur métrique de branche correspondante. 9. Décodeur Viterbi comportant - un calculateur métrique de branche pour calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, - un calculateur métrique de trajet pour calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et - des moyens pour décoder une donnée originale en utilisant les valeurs métriques de trajet, caractérisé en ce que le calculateur métrique de trajet comporte - plusieurs unités ACS (210a-d) pour produire plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes, respectivement, - un sélecteur de valeur métrique de trajet minimale (207 208) pour sélectionner la plus petite des valeurs métriques de trajet primaires, pour produire une valeur métrique de trajet minimale, - plusieurs soustracteurs (205a-d) pour soustraire la valeur métrique de trajet minimale des valeurs métriques de trajet primaires, respectivement, pour produire plusieurs valeurs métriques de trajet présentes, et - une mémoire (206) pour stocker lesdites valeurs métriques de trajet. 10. Décodeur Viterbi selon la revendication 9, caractérisé en ce que le calculateur métrique de branche comporte - plusieurs calculateurs de distance (101-104) pour produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement, - un sélecteur de valeur de distance minimale (105) pour sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale, et - plusieurs soustracteurs (106-109) qui soustraient chacun la valeur de distance minimale de la valeur de distance correspondante, pour produire une valeur métrique de branche correspondante. 11. Décodeur Viterbi comportant - un calculateur métrique de branche pour calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, - un calculateur métrique de trajet pour calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et - des moyens pour décoder une donnée originale en utilisant les valeurs métriques de trajet, caractérisé en ce que le calculateur métrique de branche comporte - plusieurs calculateurs de distance (101-104) pour produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement, - un sélecteur de valeur de distance minimale (105) pour sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale, et - plusieurs soustracteurs (106-109) qui soustraient chacun la valeur de distance minimale de la valeur de distance correspondante, pour produire une valeur métrique de branche correspondante.