Brevet FR2773022A1 — publié le 19990625

La présente invention concerne un procédé de codage d'un vecteur d'un réseau représentatif d'un signal quantifie Un tel vecteur est par exemple obtenu par une opération de quantification vectorielle sur réseau. Il peut également être délivré par un système de transmission de vecteurs ou de blocs de données. Un procédé de quantification vectorielle sur réseau est connu et est généralement utilisé dans des systèmes de compression de signaux audio, vidéo et multimédia au sens large. lIa quantification vectorielle sur réseau est l'extension multidimensionnelle de la quantification scalaire uniforme Cette dernière consiste à quantifier séparément un signal. par exemple représentatif de chaque pixel d'une image, en 2N niveaux o N est le nombre de bits alloués au quantificateur Quant à la quantification vectorielle sur réseau, elle est associée à un réseau régulier et permet de déterminer un vecteur de quantification, ou vecteur quantifié, appartenant au réseau en question dont les composantes sont représentatives des valeurs prises par les signaux à coder Plus précisément, I'opération de quantification consiste donc à déterminer, à partir d'un vecteur originel dont chacune des composantes est représentative de la valeur prise par un signal à coder et appartient de ce fait à un ensemble non dénombrable, tel que l'ensemble des nombres réels R, un vecteur quantifié x dont chacune des composantes appartient à un ensemble dénombrable tel que l'ensemble des nombres relatifs Z. Un tel procédé est par exemple décrit par CONWAY J H et SLOANE N J.A. dans un article intitulé "Fast quantizing and decoding algorithms for lattice quantizers and codes" paru dans IFFE Transaction on Information Theory de mars 1982 Par exemple, si le vecteur originel est le vecteur { 1.3, 2.6, -3.2}, le vecteur quantifié sur un réseau D3 est le vecteur x = { 1, 2, -3}. Un réseau est un ensemble de vecteurs d'un espace de dimension ni formant un groupe additif, au sens mathématique du terme. On trouvera de plus amples détails sur les réseaux dans un livre écrit par CONWAY J. H et SLOANE N.J.A intitulé "Sphere Packings, Lattices and groups" paru en 1993 aux éditions Springer Verlag (New-York, NY) Les réseaux pour lesquels la présente invention trouve une application optimale vérifient la condition suivante si un vecteur v, à n composantes, appartient au réseau considéré, alors tous les vecteurs u obtenus par des permutations réalisées sur les composantes du vecteur v appartiennent également au réseau. Par exemple, si le vecteur {1, 2, 1, 0} appartient au réseau alors le vecteur {2, 1, 0, 1) aussi Par exemple, les différents types classiques de réseaux vérifiant cette présente condition, sont ceux connus dans la littérature sous les noms de réseau Zn, An, Dn, le réseau 2 2773022 cubique à face centré (D3), et le réseau Es, ou le réseau de Gosset, qui est décrit par 7'. GOSSET dans un article intitulé "On the regular and semi-regular figures in space of n dimensions" paru dans Messenger Math, vol 29, 1900 Une fois le vecteur quantifié x obtenu, il reste à lui affecter, généralement par une opération d'indexation, encore appelée numérotage ou étiquetage de vecteurs, un code. Cette opération d'indexation d'un vecteur consiste, à partir de celui-ci. à chercher son index dans un dictionnaire Pour le décodage, on effectue l'opération inverse qui se fait donc à partir d'un index et qui permet de retrouver dans le même dictionnaire le vecteur considéré Du fait qu'en général les signaux ainsi traités ont des propriétés statistiques particulières et, afin de diminuer les coûts de recherche dans le dictionnaire qui est en général de grande taille, on utilise des procédés d'indexation particuliers Un procédé connu sous le nom de procédé de codage produit à deux composantes, de codage polaire. ou de quantification vectorielle sphérique consiste à transmettre un code à deux composantes. l'une est relative à la norme du vecteur quantifiée tandis que l'autre est relative à sa phase, appelée angle en dimension n = 2 On associe donc à tout vecteur quantifié x un code produit de la forme (prax) Si cette méthode permet d'obtenir un gain en terme de temps de calcul de la procédure de recherche du code et en terme de débit nécessaire à la transmission de ce code, il n'en reste pas moins qu'il est nécessaire d'avoir un dictionnaire comprenant tous les vecteurs susceptibles d'être utilisés par l'application On connaît également une méthode qui utilise la notion de vecteur dit leader. Elle est décrite par LAMBLIN et AD)OUI. dans un article intitulé "Algorithme de quantification vectorielle sphérique à partir du réseau de Gosset d'ordre 8" paru dans les Annales des Télécommunications, vol 43, tn 3-4 de 1988. Selon cette méthode, en partant de chaque vecteur du réseau, on considère l'ensemble des vecteurs qui sont obtenus par permutations des composantes dudit vecteur Parmi ces vecteurs, on définit un représentant qui est alors nommé vecteur leader et qui est noté / On peut montrer que cet ensemble de vecteurs est une classe d'équivalence, au sens mathématique du terme. Généralement, le vecteur leader I choisi pour représenter les autres vecteurs est celui dont les n composantes sont ordonnées de manière décroissante telles que /(0) > 1(1) 2... l(n-l). Dans la suite de la description, on désignera un ensemble dont les vecteurs qui le constituent ont des composantes identiques mais dans un ordre différent par le terme de classe d'équivalence 3 2773022 Pour permettre le codage, les vecteurs qui appartiennent à la même classe d'équivalence sont ordonnés En d'autres termes, on attribue à chacun d'eux un rang dans la classe d'équivalence à laquelle ils appartiennent En conséquence, I'opération de codage va consister en l'attribution à un vecteur, d'une part, d'un indice représentatif du vecteur leader de la classe d'équivalence concernée et, d'autre part, d'une étiquette représentative du rang Ce procédé de codage permet de réduire la taille du dictionnaire de vecteurs tout en gardant un coût de calcul des étiquettes inférieur à l'art antérieur On a représenté à la Fig 1 un diagramme illustrant un procédé de quantification et codage L'opération de quantification proprement dite est réalisée, à partir d'un signal à coder x., pal une unite de quantification 10 qui délivre le vecteur quantifié x Celui-ci fait l'objet, d'une part, d'une recherche du vecteur leader I représentant de l'ensemble des vecteurs qui ont les mêmes composantes que ledit vecteur quantifié x par l'unité 20 et, d'autre part, d'un calcul du rang I de ce vecteur quantifié x dans cet ensemble par l'unité 30 L'unité 40 détermine l'indice i du vecteur leader / trouvé par l'unité 20 et l'unité 50 détermine, à partir de cet indice i du vecteur leader et du rang t du vecteur quantifié x dans la classe engendrée par le vecteur leader 1, le code c du vecteur quantifié x On a représenté à la Fig 2 un diagramme illustrant un procédé de décodage. L'unité 60 détermine à partir du code c reçu, d'une part, le vecteur leader I et, d'autre part, le rang t du vecteur à recouvrer dans la classe d'équivalence définie par ledit vecteur leader I A partir du vecteur leader I et du rang 1, l'unité 70 détermine le vecteur quantifié x. Ensuite l'unité 80 reconstitue le signal s qui avait été codé en 10. Le but de la présente invention est de proposer un procédé de codage qui permette de trouver, à partir d'un vecteur quantifié, son rang dans la classe d'équivalence représentée par son vecteur leader. Ce procédé est mis en oeuvre dans une unité 30 telle que celle qui est représentée à la Fig. 1 Le but de l'invention est également de proposer un procédé de décodage qui permette de recouvrer, à partir d'un vecteur leader et d'un rang, le vecteur quantifié ayant ledit rang dans la classe d'équivalence dudit vecteur leader Ce procédé est mis en oeuvre dans une unité 70 telle que celle qui est représentée à la Fig 2 A cet effet, un procédé de codage d'un vecteur quantifié représentatif d'un signal quantifié vectoriellement sur un réseau selon l'invention est caractérisé en ce que ledit procédé de codage consiste à déterminer un vecteur, dit vecteur leader, représentant de 4 2773022 l'ensemble des vecteurs qui ont les mêmes composantes que ledit vecteur quantifié et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, à déterminer le niveau d'ordre ou rang dudit vecteur quantifié dans ledit ensemble de vecteurs, et à former un code à partir, d'une part. d'un représentatif dudit vecteur leader ainsi déterminé et, d'autre part, dudit rang. Avantageusement, tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs x, de dimension i, en ordonnant lesdits vecteurs x, de manière que les premiers vecteurs sont ceux dont la composante égale à!(n-i) est en position 0, avec l'ordre respecté des vecteurs x,, puis les vecteurs dont la composante égale à /(1-i) est en position I avec l'ordre respecté des vecteurs x,"/ et ainsi de suite jusqu'aux vecteurs dont la composante égale à 1(i-i) est en position i-1 toujours avec l'ordre respecté des vecteurs x,, et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x,, de dimension n. Selon un mode de réalisation avantageux, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve déjà à un rang inféerieur. Selon une autre caractéristique de l'invention, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à déterminer la position ou les positions dans le vecteur quantifié de chacune des composantes du vecteur leader. Selon une autre caractéristique de l'invention, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à, pour une variable p prenant successivement toutes les valeurs entre 0 et n-2, (n étant la dimension du réseau), déterminer la position de la prem, composante du vecteur leader dans un vecteur de dimension An-p, dit vecteur quantifié partiel, dont les composantes sont, d'une part, identiques a celles d'un vecteur, dit vecteur leader partiel, également de dimension n-1) dont les composantes sont les n-p dernières composantes du vecteur leader et, d'autre part, dans l'ordre des mêmes composantes dans le vecteur quantifié, et à multiplier la valeur du rang calculée pour la précédente valeur de p par le nombre de vecteurs distincts ayant les mêmes composantes que ledit vecteur leader partiel, qu'il est possible de construire par permutation desdites 2773022 composantes, et ajouter à ladite valeur obtenue la valeur de ladite position, ledit procédé commençant avec la valeur du rang initialisée a zéro Selon une autre caractéristique de l'invention, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à, pour une variable p prenant successivement toutes les valeurs entre 0 et q-2, q étant le nombre d'éléments distincts dans le vecteur leader, et pour une variable m initialisée à la dimension du réseau n, déterminer la ou les positions du p"'1" élément du vecteur leader dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont, d'une part, identiques à celles d'un vecteur, dit vecteur leader partiel, également de dimension m dont les composantes sont les m dernières composantes du vecteur leader et, d'autre part, rangées dans l'ordre des mêmes composantes dans le vecteur quantifié, à multiplier la valeur du rang calculée pour la précédente valeur de p par le nombre de vecteurs distincts ayant les mêmes composantes que ledit vecteur leader partiel qu'il est possible de construire par permutation desdites composantes, et ajouter à ladite valeur obtenue la valeur d'une variable, dite variable de position, qui est fonction de la position ou des positions du p'ern élément dans ledit vecteur quantifié, la valeur de la variable m étant diminuée à chaque nouvelle valeur de p du nombre de répétitions du p'e" élément dans le vecteur quantifié ou le vecteur leader, ledit procédé commençant avec la valeur du rang initialisée à zéro. La présente invention concerne également un procédé de décodage d'un code formé à partir, d'une part, d'un indice représentatif d'un vecteur, dit vecteur leader, représentant de l'ensemble des vecteurs qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et, d'autre part, d'un rang correspondant au niveau d'ordre du vecteur à recouvrer dans l'ensemble ordonné des vecteurs dont ledit vecteur leader est le représentant, ledit procédé de décodage consistant à déterminer à partir du rang contenu dans ledit code et dudit vecteur leader ledit vecteur quantifié à recouvrer. Selon une caractéristique principale du procédé de décodage selon l'invention, tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs xi de dimension i, en ordonnant lesdits vecteurs x, de manière que les premiers vecteurs sont ceux dont la composante égale à!(n-i) est en position 0, avec l'ordre respecté des 6 2773022 vecteurs x,.,, puis les vecteurs dont la composante égale à l()n-i) est en position I avec l'ordre respecté des vecteurs x,, et ainsi de suite jusqu'aux vecteurs dont la composante égale à l(l-i) est en position i-I toujours avec l'ordre respecté des vecteurs x,, et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x, de dimension n, et en ce que pour recouvrer ledit vecteur quantifié, il consiste à rechercher le vecteur qui, dans ledit ensemble des vecteurs représentés par ledit vecteur leader tel qu'il est déduit dudit code, celui dont le rang dans ledit ensemble correspond au rang déduit dudit code Avantageusement, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve dejà a un rang inférieur. L'invention concerne un procédé de décodage tel qu'il vient d'être décrit et qui est également caractérisé en ce qu'il consiste à déterminer à partir du rang déduit dudit code, la position dans le vecteur quantifié à recouvrer de chaque composante du vecteur leader déduit dudit code, puis, à partir desdites positions, reconstruire ledit vecteur quantifié à recouvrer. Selon une autre caractéristique de l'invention, pour déterminer la position dans le vecteur quantifié à recouvrer de toutes les composantes du vecteur leader déduit dudit code, il consiste à calculer, pour chaque valeur prise par une variable m successivement entre I et n, le reste de la division d'une variable rang calculée précédemment pour la valeur de la variable m, par ladite variable m, ledit reste représentant alors la position de la (i-m)è' composante du vecteur leader dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles d'un vecteur, dit vecteur leader partiel, dont les composantes sont les m dernières composantes dudit vecteur leader, ladite variable rang alors calculée étant égale au dividende de ladite division, ladite variable rang ayant sa valeur initialisée à celle du rang déduit dudit code transmis. Selon une autre caractéristique de l'invention, il consiste, dans des étapes successives o une variable p prend respectivement les valeurs comprises entre q-2 et 0, q étant le nombre d'éléments distincts dans le vecteur leader, à calculer le reste de la division d'une variable rang calculée à l'étape précédente par le nombre de vecteurs distincts qu'il est possible de construire par permutation des composantes d'un vecteur, dit vecteur leader partiel, de dimension m dont les 7 2773022 composantes sont les m dernières composantes dudit vecteur leader, m étant une variable cumulant à chaque étape le nombre d'éléments analysés, et déduire de la valeur dudit reste les positions respectives dudit pICnlc élément dans uni vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles dudit vecteur leader partiel, à calculer la nouvelle variable rang comme étant le dividende de ladite division, à reconstruire, à partir desdites positions, ledit vecteur quantifié partiel, le vecteur quantifié partiel ainsi reconstruit pour la valeur de la variable p égale à zéro étant le vecteur quantifié à recouvrer Selon une autre caractéristique de l'invention, le procédé de codage d'un vecteur quantifié qui a été précédemment décrit est caractérisé en ce qu'il consiste à former un code représentatif d'un index qui est la somme algébrique de l'index affecté audit vecteur leader et du rang du vecteur quantifié dans l'ensemble des vecteurs représentés par ledit vecteur leader Selon une autre caractéristique de l'invention, le procédé de codage d'un vecteur quantifié qui a été précédemment décrit est caractérisé en ce qu'il consiste à former un code représentatif d'un index à deux composantes dont la première est un numéro d'ordre affecté audit vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et l'autre le rang dudit vecteur quantifié dans cet ensemble Selon une autre caractéristique de l'invention, le procédé de codage d'un vecteur quantifié qui a été précédemment décrit est caractérisé en ce qu'il consiste à former un code représentatif d'un index à trois composantes dont deux sont représentatives du vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et la troisième le rang du vecteur quantifié dans cette classe d'équivalence. Avantageusement, les deux composantes représentatives dudit vecteur leader sont respectivement la norme et la phase dudit vecteur Par exemple, les deux composantes représentatives dudit vecteur leader sont respectivement la norme dudit vecteur leader et un index qui discrimine ledit vecteur leader des autres vecteurs leaders ayant même norme Avantageusement, lorsque ledit vecteur leader est le seul qui présente une norme donnée, il consiste à ne pas considérer la phase dudit vecteur leader 8 2773022 Selon une autre caractéristique de l'invention, ledit procédé de codage d'un vecteur consiste à former un code qui inclut une composante représentative du type du vecteur quantifié Selon une autre caractéristique de l'invention, lorsque la classe d'équivalence considérée ne comporte qu'un seul vecteur, il consiste à ne pas considérer le rang dudit vecteur quantifié dans cette classe d'équivalence Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation faite en relation avec les dessins joints parmi lesquels la Fig. I est un diagramme illustrant un procédé de quantification et codage, la Fig 2 est un diagramme illustrant un procédé de décodage, la Fig 3 montre une table dans laquelle sont répertoriés avec leurs rangs respectifs tousles vecteurs qui ont mêmes composantes, et ce, selon un premier mode d'ordonnancement, la Fig. 4 est un organigramme illustrant un procédé de codage selon un premier mode de mise en oeuvre de la présente invention, la Fig. 5 est une table qui montre les différentes valeurs prises par les variables du procédé de codage illustré à la Fig. 4 lors de son déroulement, la Fig 6 est un organigramme illustrant un procédé de décodage correspondant au procédé de codage selon un premier mode de mise en oeuvre de la présente invention, la Fig. 7 est une table qui montre les différentes valeurs prises par les variables du procédé de décodage illustré à la Fig. 6 lors de son déroulement, la Fig 8 montre une table dans laquelle sont répertoriés avec leurs rangs respectifs tous les vecteurs qui ont les mêmes composantes et, ce, selon un second mode d'ordonnancement, la Fig 9 est un organigramme illustrant un procédé de codage selon un second mode de mise en oeuvre de la présente invention, la Fig. 1 0 est une table qui montre les différentes valeurs prises par les variables du procédé de codage illustré à la Fig. 9 lors de son déroulement, la Fig I I a est un organigramme illustrant un procédé de décodage correspondant au procédé de codage selon un second mode de mise en oeuvre de la présente invention, 9 2773022 la Fig. I lb est également un organigramme qui illustre avec plus de détails une partie de l'organigramme représenté à la Fig. 1 la, et la Fig. 12 est une table qui montre les différentes valeurs prises par les variables du procédé de décodage illustré aux Figs. 1 la et I l b lors de leur déroulement La présente invention utilise la notion de vecteur leader non restreinte à la définition donnée en préambule de la présente description. Cependant, les vecteurs qui ont les mêmes composantes (mais dans un ordre différent) et qui définissent ainsi une classe d'équivalence, sont ordonnés de la manière décrite ci-après, Préliminairement, on appelle position d'une composante, sa position par rapport a la première composante (celle de gauche) qui, elle, est affectée de la position 0 On considère le vecteur représentant de l'ensemble, ou classe d'équivalence, des vecteurs ayant les mêmes composantes, ci-après appelé vecteur leader 1, le vecteur dont les composantes sont /(O), /(1).....(n-)/, o ni est la dimension du réseau de quantification A partir des composantes I(nz-l) et 1(ti-2), on va, dans un premier temps, considérer les vecteurs x: de dimension 2 dont les composantes ont précisément les valeurs l(u-2) et l(i-1). On peut constater que ces vecteurs x2 sont au nombre de deux, la composante égale à l(O-1) pouvant être soit en position 0, soit en position 1 Le premier de ces vecteurs est le vecteur {(i(-2), 1(n-l)} et le second est obtenu par permutation des composantes du premier. Il s'agit donc du vecteur [(/(-l), 1(l-2) Ces vecteurs x2 sont alors rangés de manière que celui dont la composante égale à lftl-2) est en position 0 soit le premier, l'autre le second On va maintenant considérer les vecteurs x3 de dimension 3 dont les composantes sont égales à 1(o-3), 1(o-2) et l(n-l). La composante égale à 1(i-3) peut se trouver dans le vecteur x. en position 0, en position I ou en position 2. Quant aux deux composantes restantes de valeurs 1(n-2) et l(- l), elles sont celles d'un des vecteurs x: dont on a déjà donné l'ordre ci-dessus. Les vecteurs x, sont alors rangés de manière que la composante égale 1(i3) soit d'abord en position 0 avec les vecteurs x, formés par les composantes restantes dans I'ordre tel que défini lors de leur rangement, puis la composante 1(n-3) en position 1 toujours avec les vecteurs x, dans leur ordre et, enfin, la composante 1(f-3) en position 2 toujours avec les vecteurs x2 dans leur ordre De manière générale, on considère les vecteurs x, de dimension i La composante égale à 1(n-i) peut prendre l'une des positions 0, 1,, i- I Les vecteurs x, sont rangés 2773022 de manière que la composante égale à I(n-i) soit d'abord en position 0 avec les vecteurs x,, dans leur ordre, puis la composante égale à l(n-i) en position I avec toujours les vecteurs x, dans leur ordre et ainsi de suite jusqu'à ce que la composante égale à l(.l-i) soit en position i- 1 toujours avec les vecteurs x," dans leur ordre. Enfin, un vecteur de dimension n, x,,, a sa composante qui est égale à /(O) dans l'une des n positions 0 à n-l. L'ensemble des vecteurs x, est rangé de manière que la composante égale à /f(O) soit d'abord en position 0 avec les vecteurs x,., dans leur ordre, puis la composante /(O) en position I avec toujours les vecteurs x,./ dans leur ordre et ainsi de suite jusqu'à ce que la composante 1(0) soit en position n- I toujours avec les vecteurs x,, dans leur ordre. On peut constater que c'est cet ensemble de vecteurs x, qui constitue ce que l'on a nommé la classe d'équivalence représenté par le vecteur leader de composantes l/(O0),/(I),..../(n-I)! De plus, chaque vecteur x, est ordonné dans cette classe d'équivalence de la manière qui vient d'être décrite Il est donc possible d'attribuer à chaque vecteur appartenant à l'ensemble des vecteurs qui ont mêmes composantes que lui un rang t correspondant à son ordre dans la classe d'équivalence définie par le vecteur leader /. L'opération de codage d'un vecteur x. va alors consister à attribuer à ce vecteur un indice donnant directement, par lecture d'un dictionnaire, le vecteur leader I de la classe d'équivalence définie par ce vecteur et, le rang t de ce vecteur x, dans cette classe d'équivalence. Pour illustrer le mécanisme d'ordonnancement des vecteurs d'une même classe d'équivalence représentée par un vecteur leader 1, on a représenté une table à la Fig. 3 donnant l'ensemble des vecteurs de dimension 4 d'une classe d'équivalence ayant pour vecteur leader le vecteur (a, b,c,dl}, a, b, c et d étant représentatifs de nombres relatifs. Le rang i est également mentionné devant chaque vecteur. A la Fig 4, I'organigramme d'un procédé selon un premier mode de mise en oeuvre de l'invention est représenté. Dans la suite de la description, on appellera vecteur leader partiel, le vecteur/,m de dimension m dont les m composantes sont les min dernières composantes du leader / On a donc /, - {l((i-m),.(n-m-l)..., l(-)/. De même, on appellera vecteur quantifié partiel, le vecteur xm également de dimension mni dont les m composantes sont identiques à celles du vecteur leader partiel lI, mais qui sont rangées dans l'ordre des mêmes composantes du vecteur quantifié Il 2773022 Par exemple, on considère un vecteur quantifié x égal à (4,0,1,37 Le vecteur leader / est par exemple le vecteur {4,3, 1,0. Le vecteur leader partiel /3 de dimension 3 est le vecteur {3,1,0} et le vecteur quantifié partiel x., de dimension est le vecteur {0,1,3} A l'étape 10, une variable mni est initialisée à la dimension n du réseau alors que la variable t qui représentera le rang du vecteur quantifié x est initialisée à 0 On peut constater que le vecteur leader partiel /m est initialement égal au vecteur leader / -- / et que le vecteur quantifié partiel x, est initialement égal au vecteur quantifié x = x" Le calcul proprement dit commence à l'étape 20. Là, une nouvelle valeur de la variable rang t est calculée comme étant le produit de m et de t tels qu'ils ont été précédemment calculés En 30, est calculée la valeur d'une variable de position ô, qui représente la position dans le vecteur quantifié partiel xm de la composante en position 0 /,m(0) du vecteur leader partiel 1,,, On a donc xm(,,d) /m(0) Puis a l'étape 40, sont déterminés les vecteurs leader et quantifié partiels 1m-, et xm-. A l'étape 50, une nouvelle valeur de la variable rang t est calculée comme étant la somme de l'ancienne valeur de la variable rang t et de lavariable de position 5,,, soit t - I * A l'étape 60, la variable m est décrémentée d'une unité puis en 70, elle est comparée à 1. Si elle est supérieure à 1, le processus recommence en 20, sinon la variable t porte la valeur du rang du vecteur quantifié x correspondant à son ordre parmi l'ensemble (ou classe d'équivalence) des vecteurs ayant les mêmes composantes que lui et représentés par le vecteur leader /. Cet ordre est celui qui est donné ci-dessus. A la Fig. 5, on a représenté les différentes valeurs prises par la variable m, la variable de position 4, et par la variable rang t, ainsi que les vecteurs partiels leaders 1, et quantifiés xm correspondants lors du déroulement du procédé de l'invention, et ce pour un vecteur quantifié x égal à [4,0,1,3] Le vecteur leader 1 représentant de la classe d'équivalence à laquelle appartient ledit vecteur quantifié x égal a 143, 1, o/ L'avantage du procédé de la présente invention réside dans le fait que, pour sa mise en oeuvre, on n'a besoin que d'un dictionnaire répertoriant les seuls vecteurs leaders représentant chacun un ensemble de vecteurs qui ont les mêmes composantes, c'est-à-dire représentant chacun une classe d'équivalence. Ce dictionnaire est nécessairement plus limité qu'un dictionnaire exhaustif portant sur l'ensemble des vecteurs du réseau considéré. On peut montrer qu'avec l'ordonnancement tel qu'il est décrit ci-dessus, la taille du dictionnaire comparée à celle d'un dictionnaire exhaustif est divisée par 9 pour un réseau D4 et par 1120 pour un réseau ES On constate que la 12 2773022 différence est d'autant plus accentuée que la dimension n du réseau est importante. Ainsi, par rapport à un procédé classique utilisant un dictionnaire exhaustif, le gain en terme de taille de dictionnaire, et donc de mémoire, est très significatif Ce qui va être transmis est un code constitué, d'une part, de l'indice affecté audit vecteur leader / et, d'autre part, du rang t dudit vecteur quantifié x dans la classe d'équivalence dont ce vecteur leader I est le représentant. La formation du code est décrite en détail ci-après Après la transmission, il est nécessaire de décoder afin de pouvoir recouvrer le signal initialement codé. Cette opération de décodage consiste à recouver le vecteur quantifié x connaissant, d'une part, le vecteur leader I qui est déduit de l'indice transmis et, d'autre part, le rang t du vecteur quantifié x tel que ce rang t a été transmis. Par exemple, si le vecteur leader I est {4,3, 1, 0} et le rang t transmis est 5, le décodage va permettre de déterminer le vecteur quantifié x qui, en l'occurrence, est le vecteur [4,0,1, 3. On a représenté à la Fig. 6 l'organigramme correspondant a un procédé de décodage lorsque le codage a été effectué selon le premier mode de mise en oeuvre décrit ci-dessus. Selon ce procédé, on va considérer des vecteurs quantifiés partiels x,, de dimension m, avec m qui va prendre successivement les valeurs 1 à i, ni étant la dimension du réseau On notera que le vecteur quantifié x, est précisément le vecteur quantifié recherché. On initialise encore le procédé de l'invention en posant m = 1. On notera que m est une variable représentative du numéro d'ordre de l'itération considérée, itération pendant laquelle est étudiée la (n-m)imc composante l(O-m) du vecteur leader 1. Le vecteur quantifié partiel de dimension mni = 1 est tel que x1(O) = ol-I), o n est la dimension du réseau considéré, I est le vecteur leader correspondant au vecteur quantifié à recouvrer et 1(t-1) est la dernière composante du vecteur leader 1. La première étape 90 consiste à incrémenter d'une unité la variable m. Puis, est calculée une variable de position rm dont la valeur est représentative de la position de la (/-m)i:mc composante l/Ot-m) du vecteur leader I dans le vecteur partiel xm. Cette variable de position 8, est égale au reste de la division par la variable m d'une variable rang t calculée à l'étape précédente pour la valeur précédente de la variable m. On a donc 1 3 2773022 o int est la fonction qui à une variable x fait correspondre l'entier directement inféerieur a x. Une nouvelle valeur de la variable rang t est calculée comme étant égale au dividende de ladite division, soit I _ int(tm) On notera que la variable rang t a initialement la valeur prise par le rang transmis La valeur de la variable de position 8,. précédemment calculée donne la position dans le vecteur partiel Xm de dimension m de la (n-m)iè' composante /(n-m) du vecteur / Quanit aux autres composantes de ce vecteur partiel xm de dimension ni, elles se trouvent dans le même ordre que les mêmes composantes dans le vecteur partiel x, / de dimension m-1 mais dans une position décalée ou non pour permettre l'insertion dans le vecteur partiel Xm de cette (n-mr)emc composante. Ainsi, en 110, est calculé le vecteur partiel xm Une comparaison de la variable mn avec n permet au calcul d'être fait pour toutes les valeurs de m variant de m = 2 jusqu'à m = n, la dimension du réseau. Le vecteur partiel x,, calculé lorsque m = n est le vecteur quantifié recherché, c'est-à-dire le vecteur quantifiée x A titre d'exemple, on va considérer, en relation avec la Fig.7, le décodage effectué pour un vecteur leader / déduit du code transmis égal à {4,3,1, O) et un rang également déduit du code transmis égal à 20 On initialise le procédé de décodage de l'invention en posant m = I On l'initialise donc en posant xi(O) = fin- l) = 1(3) = 0. La variable rang t est donc 20 En 90, la variable m prend la valeur 2. En 100, est calculée la valeur de la variable de position 62 qui est alors égale à. ($ -20-[int212]x2-0 tJne nouvelle valeur de variable rang t est calculée qui est alors égale à 10,. La valeur de la variable de position 62 - 0 donne la position dans le vecteur partiel x) de la 2i'mC composante 1(2) du vecteur leader 1, ici égale à I On a alors x,= 1,/i 14 2773022 Pour une nouvelle valeur de la variable ni = 3, la valeur de la variable de position 83 est égale à I et celle de la variable rang t devient égale à 3 On a alors x3 = {1,3,0. On remarquera que la composante d'ordre n-m - 4 - 3 -- 1, soit 1(1) = 3, est en position I dans le vecteur partiel x. alors que les deux composantes du vecteur partiel x,, soit 1 et 0, sont dans le même ordre que dans le vecteur partiel X2. Pour mni = 4, la variable de position &4 est égale à 3 et celle de la variable rang t devient égale à 0. On a alors le vecteur partiel x4 = [1,3,0,4/ Ce vecteur partiel X4 = {1, 3, 0, 4 est le vecteur quantifié x recherché. On a cherché à diminuer encore la taille du dictionnaire en tenant compte des vecteurs du réseau dont des composantes ont des valeurs égales. Il peut s'agir par exemple du vecteur { 1,0.1.2} dans un réseau D4 o les composantes de positions respectives 0 et 2 sont toutes les deux égales à 1. En effet, on remarquera que les vecteurs de ce type dans le rangement proposé à la Fig 3 se retrouvent plusieurs fois dans le dictionnaire de vecteurs leaders. Par exemple, le vecteur {2, 1, 1, O} se retrouve deux fois dans l'ensemble des vecteurs qui ont pour éléments les éléments 2, 1, 0, avec deux composantes égales à 1 On notera que dans le mode de réalisation maintenant décrit, les vecteurs leaders ont leurs composantes identiques qui sont ordonnées suivant un ordre lexicographique. Par exemple, pourraient être vecteurs leaders de la classe d'équivalence à laquelle le vecteur { 1,0,1,2} appartiendrait, uniquement les vecteurs {2, 0, 1, 1}, {2, 1, 1, 0}, {0, 2, 1, 1}, {, 1,2,0}, {1, 1,2,0} et {2,1, 1,0}. Pour ranger les vecteurs d'une classe d'équivalence dont au moins deux composantes sont égales, on pratiquera de manière identique à celle précédemment décrite mais on n'attribuera pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur Pour illustrer ce principe, on a représenté à la Fig. 8 l'ensemble des vecteurs constituant la classe d'équivalence dont le représentant est le vecteur {a,b,b,c} et leurs rangs respectifs On a représenté à la Fig 9. l'organigramme de ce mode de mise en oeuvre de l'invention. A l'étape 120, une variable mni est initialisée à la dimension du réseau soit n, la variable de calcul p est initialisée à 0 et la variable rang t qui représentera, à la fin du calcul, le rang t du vecteur quantifié x est initialisée à 0 Par ailleurs, comme dans le précédent mode de mise en oeuvre, on considère un vecteur 1m de dimension m, appelé vecteur leader partiel, et un vecteur xm également de dimension m, appelé vecteur 2773022 quantifié partiel Ces deux vecteurs sont respectivement égaux, au commencement du procédé, au vecteur leader I = in et au vecteur quantifié x -= xn On rappelle que n est la dimension du réseau considéré. Le calcul proprement dit commence à l'étape 130. Là, est déterminée une variable de répétition w(p) dépendant de l'étape de calcul p et représentant le nombre de répétitions de la /"'I position 0 du vecteur leader partiel /,. On a donc Xrm(&d I1,(0). Puis à l'étape 150, sont déterminés, d'une part, le vecteur leader partiel /m-1 de dimension m-I et, d'autre part, le vecteur quantifié partiel x,,, également de dimension m-l. En 151, la valeur de la variable de répétition w(p) est comparée à 1 Si elle est égale à 1, cela signifie que la pl'" composante xm(p) du vecteur quantifié partiel xm n'est présente qu'une seule fois dans ce vecteur xm. Dans ce cas, en 152, une variable Am est calculée comme étant égale à la variable de position & qui, on le rappelle, représente la position dans le vecteur quantifié partiel xm de la composante /m,(O) qui se trouve en position zéro dans le vecteur leader partiel Irm. A l'étape 160, est calculée la nouvelle valeur de la variable rang t comme étant égale à la somme de la valeur qu'elle avait précédemment et de la valeur de la variable Am, soit - t - Am. A l'étape 170, la variable m est décrémentée d'une unité alors que la variable p est incrémentée d'une unité. A l'étape 180, la valeur de la variable de calcul p est comparée à q - 2, q étant le nombre de composantes différentes dans le vecteur quantifié x ou dans le vecteur leader /. Si la variable p est supérieure à q - 2, le processus recommence en 20, sinon la variable t porte la valeur du rang du vecteur quantifié x dans sa propre classe d'équivalence. Si la valeur de la variable de répétition w(p) est, à l'étape 151, supérieure à 1, cela signifie que la p composante Xr,(p) du vecteur quantifié partiel xm se retrouve plusieurs fois dans ce vecteur xm. Alors en 153, la variable Ar est calculée comme étant égale à. 1 6 2773022 X_,i,(i)1(p)- 1 sAm - A l'étape 154, la variable min est décrémentée d'une unité alors qu'une variable de calcul i est égalée à 1. En 155, une nouvelle valeur de la variable de position Sm correspondant à une autre position dans le vecteur quantifié partiel xm de la composante Im(O) en position zéro du vecteur leader partiel /m, est calculée. En 156, sont déterminés les vecteurs de dimension m-I respectivement leader partiel m/,- et quantifié partiel xml. A l'étape 157, la variable A, est calculée comme étant maintenant égale à 111 51t1 + I + E t ( 11 (j'))IlI A M = Amli+1 + C1_nj= A l'étape 158, la variable de calcul i est incrémentée d'une unité alors que la variable m est décrémentée d'une unité Enfin en 159, la variable i est comparée à w(p) - I S'il y a égalité, le processus se poursuit en 160. Il se poursuit en 155, dans le cas contraire A la Fig. 10, on a représenté les différentes valeurs prises par la variable de calcul p, la variable de répétition w(p), la variable m, la variable de position &, la variable Am et la variable rang! lors du déroulement du procédé de l'invention selon le second mode de mise en oeuvre dont l'organigramme est représenté à la Fig. 9, pour un vecteur quantifié (1, 0,1,2/ dont le vecteur leader est (2,1,1,0/. On a également représenté les vecteurs leaders partiels /m et les vecteurs quantifiés x, . de dimension m. Pour le décodage, lorsque le rangement des vecteurs est celui qui correspond au second mode de mise en oeuvre, on procédera conformément au procédé dont l'organigramme est représenté à la Fig. 1 1 a Au moment du décodage, on connaît le vecteur leader I et, par voie de conséquence, les variables de répétition w(q) représentant le nombre de répétitions de la pc composante distincte l(p) du vecteur leader 1, p étant une variable dont la valeur est comprise entre 0 et q-l, q représentant le nombre de composantes distinctes dans le vecteur leader / A titre d'exemple, si l'on considère le vecteur leader {2,1,1, O0, on a nombre de répétitions de la composante 2 = w(0) = 1, nombre de répétitions de la composante I = w(l) = 2, 1 7 2773022 nombre de répétitions de la composante 0 = w(2) 1. A l'étape 200, on initialise le procédé de l'invention en égalant une variable in au nombre de répétitions du dernier élément distinct du vecteur leader 1, soit ni - (-) On initialise par ailleurs chaque composante d'un vecteur quantifié partiel x, de dimension mn = w(q-l) à la valeur prise par la dernière composante 1(-1) du vecteur leader /. On a donc xw, Toujours à l'étape 200, on initialise encore une variable p à la valeur de (q-I) -I - q - 2 Cette variable p représente le numéro d'ordre de la composante analysée du vecteur leader 1 La première étape 210 consiste à rechercher le nombre de répétitions w(p) de la composante analysée du vecteur leader I et à augmenter de cette valeur la variable m Puis, durant l'étape 220, est calculée une variable de position Am,_,p), l comme étant le reste de la division de la variable de rang t par le nombre de vecteurs distincts qu'il est possible de construire par permutation des composantes d'un vecteur leader partiel,m de dimension m. Ce nombre est donné par la combinaison (''(P) Cette variable de position A-,,,, X est donc donnée par la relation suivante A- , w(p)+ i t - (int(;/,.(p))) x ('n(ip) o 1 est la variable rang telle qu'elle a été calculée pour la valeur précédente de la variable de calcul p, int étant la fonction qui à une variable x fait correspondre l'entier directement inférieur à x Une nouvelle valeur de la variable rang t est calculée, pour les étapes suivantes, comme étant le dividende de la division précédente. Elle est alors égale à I-_int( //.,(n) /('m p 18 2773022 L'étape 230 consiste à rechercher successivement les valeurs des variables de position m,-, des (n-r+i)' "'ó composantes du vecteur leader / dans les vecteurs quantifiés partiels respectifs x.... i variant de 0 à w(p) -1 On rappelle que w(p) représente le nombre de répétitions de la composante du vecteur leader I identifié par la variable de calcul p. A l'étape 240, connaissant les valeurs des variables de position &k pour k variant de m à m-w(p) i 1, les vecteurs quantifiés partiels x,,m à Xmrp) sont calculés, les uns après les autres. La variable de calcul p est décrémentée d'une unité puis elle est comparée à zero. Si elle est supérieure, le processus se poursuit en recommençant à l'étape 210 sinon il est interrompu Ainsi, le calcul est fait pour toutes les valeurs de m variant de m = 2 jusqu'à m = n, la dimension du réseau le vecteur quantifié partiel de dimension n x,, ainsi calculé est le vecteur quantifié recherché Pour la détermination des valeurs des variables 6k pour k variant de mni à m-w(p) i 1, on procède tel que cela est représenté dans l'organigramme de la Fig. I lb. A l'étape 231, la variable de position m8, est initialisée à zéro, deux variables de 1 w(p) - 1 calcul o et c, sont respectivement initialisées à ('m et à 0 A l'étape 232, une boucle est réalisée tant que la variable Am-,,p),I est supérieure ou égale à oc. Cette boucle 232 consiste à égaler les variables de calcul oa, à, puis à incrémenter d'une unité la variable de position r, et enfin à ajouter à la variable de calcul cy la valeur de (-(-) (l. Pour le calcul des autres valeurs des variables de position bm, en 233, la fl- I - 6. variable A, est initialisée à la valeur de o,, puis pour toute valeur de i variant de 1 à w(p) - 1, &,-, est incrémenté d'une unité, o est initialisé à ('(P)tet y à zéro A l'étape 234, une boucle est réalisée tant que Am-,",p)1 auquel on a retranché Ar-,. est supérieur ou égal à o. Cette boucle consiste à égaler c, à o, puis à incrémenter d'une unité m,-i et à ajouter à c la valeur de (C'(P) l Pour chaque valeur de i, Am-i est recalculé comme étant égal à Am cs,. A la Fig 12, on a représenté les différentes valeurs prises par la variable mni, la variable de rang t, la variable de position Am et les variables de position 8Sm ainsi que les vecteurs quantifiés partiels xm lors du déroulement du procédé de décodage de l'invention selon son second mode de mise en oeuvre pour un vecteur leader égal à {2,1,1,0 et un rang reçu t égal à 10 On a pour commencer m - w(q-) = w(2) = I 1 9 2773022 On initialise le procédé avec xi = /(n- 1) = 0 On initialise encore une variable p à la valeur de qc - 2 = 1. A l'étape 210, la variable m est augmentée de w(I) = 2 et devient alors égale à I - 2 = 3. A l'étape 220, on calcule la variable de position A2 dont la valeur est alors A2 = 10(int( 2x(3 10 - 9 1 (*'3 Le nouveau rang t est calculé comme étant égal à t - int((/) 3 7(3 A l'éetape 231, la variable de position 63 est initialisée à zéro, la variable de calcul oC est égale à 2 et oÈ = 0. La variable de position A2 est inférieure à o et la boucle n'est pas exécutée Quant à la variable de position A3, elle est initialisée à zéro. La variable i est égale à I et la variable de position 62 est initialisée à la valeur de la variable de position 63, soit 0. Une variable de calcul o est initialisée à (C1, soit un et la variable de calcul o. est initialisée à zéro. La boucle de l'étape 234 est exécutée puisque A2 - A3 qui est égal à I est supérieur à la variable de calcul 65. En conséquence, la variable de calcul cs. est initialisée à un, et la variable de position 62 est incrémentée d'une unité et la variable de calcul c est recalculée comme étant égal à o + C(0 soit deux La boucle est interrompue car A2 - A3 devient alors supérieur à cs. A l'étape 240, on connaît les valeurs des variables de position 63 = 0 et 62 = I. On en déduit que le vecteur quantifié partiel de dimension m = 3 x3 est égal à {1,0, 1. Le processus recommence pour p = O A l'étape 210, la variable mni est augmentée de w(O) = I et devient alors égale à 4. A l'étape 220, on calcule la variable de position A4 dont la valeur est alors. A4 - 3 - (int( 3/))x(7 C 3 Le nouveau rang t est calculé comme étant égal à. - int( 3/) - 0 2773022 A l'étape 231, la variable de position 64 est initialisée à zéro, la variable de calcul G est égale (' 3 soit I et la variable de calcul Gs = O La variable de position A4 est supérieure à a et la boucle est alors exécutée. La variable de calcul a, est égalée à 1, la variable de position 64 est incrémentée d'une unité et la variable de calcul v devient égale à 1 + I = 2 La variable de position A4 est toujours supérieure à a et la boucle est de nouveau exécutée. La variable de calcul a, est égalée à 2, la variable de position 04 est de nouveau incrémentée d'une unité et devient égale à 2 La variable de calcul a devient égale à 3 La variable de position A4 est maintenant égale à la variable de calcul a et la boucle est encore exécutée La variable de calcul y, est égalée à 3, la variable de position,4 est de nouveau incrémentée d'une unité et devient égale à 3 Enfin, la variable de calcul cy devient égale à 4 si bien que la variable de position A4 est maintenant inférieure à la variable de calcul G. La boucle n'est donc plus exécutée Les autres étapes ne sont pas exécutées. A l'étape 240, on connaît donc la valeur de la variable de position 64 qui est égale à 3 et on en déduit que le vecteur quantifié partiel de dimension m = 4 x4 est égale à l1,0,1,2}. Ce vecteur est précisément celui qui est recherché, c'est-à-dire le vecteur quantifié. Ainsi, le calcul est terminé et le vecteur quantifié recherché est donc le vecteur {1, 0, 1, 2). Pour le calcul à l'étape 40 du procédé de décodage selon une première mise en oeuvre de l'invention ou à l'étape 240 du procédé de décodage selon une seconde mise en oeuvre de l'invention, on pratique de la manière suivante. On effectue une boucle pour toutes les valeurs d'une variable j comprises entre 0 et m-I qui consiste à comparer la variable de position 6m et j, puis: si j m., la jfml composante du vecteur quantifié partiel de dimension m est égalée à la (j-l)'C composante du vecteur quantifié partiel de dimension nm-l soit X,(/) =X, / - 1) et si j= (,. la j'.... composante du vecteur quantifié partiel de dimension m est égalée la valeur de (n-nm)'cn'"C composante du vecteur leader 1, soit x,,(j) = I(ii-m) Pour une mise en oeuvre optimisée en termes de temps de calcul des derniers procédés de codage et de décodage selon l'invention décrits, on calculera à l'avance les valeurs des combinaisons C/j pour toutes les valeurs que les quantités i et j peuvent 21 2773022 prendre pour le réseau considéré et ces valeurs seront pas exemple stockées en mémoire (Comme cela a déjà été mentionné ci-dessus, l'avantage du procédé de l'invention réside essentiellement dans le fait qu'il n'a besoin que d'un dictionnaire de vecteurs leaders, donc de dimension réduite Par rapport à un procédé classique utilisant un dictionnaire exhaustif, le gain en terme de taille de dictionnaire, et donc de mémoire, est très significatif Il l'est d'autant plus que la dimension du réseau est importante. On notera que si l'on etffectue le calcul des combinaisons à l'avance, les procédés selon l'invention sont économiques en terme de nombres d'opérations de calcul. En reprenant l'exemple du codage du rang du vecteur {1, O, 1, 2}, on peut en effet constater qu'une seule multiplication est nécessaire De manière générale, le nombre maximal de multiplications pour coder le rang d'un vecteur à 4 composantes est de 3 et aucune opération de division est nécessaire Au décodage. le procédé de l'invention ne demande qu'un maximum de trois divisions pour un vecteur à 4 composantes et aucune multiplication. Ainsi, le procedé de l'invention offre comme avantage sur d'autres procédés qui utilisent également le codage par vecteur leader, une réduction significative des coûts de calcul, que ce soit au codage ou au décodage Par ailleurs, du fait que les coûts de calculs du procédé d(le l'invention sont similaires au codage et au décodage, il en résulte que la puissance de calcul d'une machine de codage/décodage pourra donc être optimale à la fois pour le codage et pour le décodage du rang. On notera qu'il est toujours possible d'employer un procédé utilisant un dictionnaire exhaustif pour l'opération de codage ou celle de décodage plutôt qu'un procédé selon l'invention et ce, indépendamment du choix qui est fait respectivement au décodeur ou au codeur Ainsi, il est possible de coder selon le procédé de l'invention et de décoder selon un procédé utilisant un dictionnaire exhaustif De même, il est possible de coder au moyen d'un procédé à dictionnaire exhaustif et de décoder au moyen d'un procéde selon l'invention Ainsi, il est possible d'avoir le meilleur compromis coût de calcul et coût de stockage en adéquation avec la machine utilisée Comme cela est visible à la Fig 1, pour réaliser l'opération d'indexation qui est effectuée à l'étape 50, on dispose donc du vecteur leader I représentant de la classe d'équivalence à laquelle appartient le vecteur quantifié x et du rang t de ce vecteur quantifié x et, afin que l'indexation résultante permette au décodage de retrouver le 22 2773022 vecteur quantifié x originel, on ordonne chacun des vecteurs leaders I du réseau et on leur affecte également un index mid Selon un premier mode de mise en ceuvre, un vecteur quelconque x de rang t appartenant à la classe d'équivalence d'un vecteur leader I aura comme index aX - c, + 1, o oa est l'index affecté au vecteur leader 1 On transmet alors une représentation codée de cet index ct,. En conséquence, on affecte à un vecteur leader d'ordre i un index ca(i) qui est égal à l'index aL(i- l) affecté au vecteur leader précédent, donc d'ordre (i -1), augmenté du cardinal K(/) de la classe d'équivalence engendrée par le vecteur leader considéré. On peut montrer que, si on appelle n la dimension du réseau considéré, w, le nombre de répétitions de l'élément ai, et q le nombre d'éléments distincts (a,.,aq) formant les n composantes du vecteur leader 1, le cardinal K(l) est donné par la relation K(l) -n ni Par exemple, le premier vecteur leader / porte l'indice ct(0) = 0 ILe décodage va consister à partir du code transmis représentatif de l'index ox à déterminer, d'une part, l'index du vecteur leader 1, pour pouvoir recouvrer ensuite le vecteur leader / et, d'autre part, le rang t du vecteur quantifié originel. L'index du vecteur leader est celui qui vérifie les inégalités suivantes oI classes d'équivalence. Dans le précédent mode d'indexation, l'index est à une composante On propose également un mode d'indexation à deux composantes, la première étant le numéro d'ordre du vecteur leader représentant de la classe d'équivalence considérée et l'autre le 23 2773022 rang du vecteur quantifié dans cette classe d'équivalence L'index transmis est donc de la forme (cq,t). On notera que, pour tout vecteur leader, I'index est de la forme (cE, 0). Dans ce mode, les deux composantes de l'index sont transmises au décodeur Le décodage est alors immédiat A des fins de compression, lorsque le rang I ne peut prendre qu'une seule valeur, c'est-à-dire lorsque la classe d'équivalence engendrée par le vecteur leader I ne comporte qu'un seulélément, le rang t n'a pas besoin d'être transmis. Au décodage, la composante cta permet de retrouver immédiatement le vecteur leader 1. Il est alors possible de connaître le cardinal de sa classe d'équivalence et si ce dernier est 1, on pourra considérer que! n'a pas été transmis. On propose également deux modes d'indexation o l'index comporte trois composantes. ILes trois composantes sont transmises au décodeur. L'index est de la forme (p,'r,a). La composante p est classiquement relative à la norme du vecteur quantifié, o est relatif à la phase et 'r est le type de vecteur considéré. Pour un exemple de type de vecteurs, on se reportera au brevet français n 95 09 902 o le type est défini comme étant égal au nombre de composantes égales dans un vecteur Si (p,x,ct) est l'index à 3 composantes d'un vecteur leader 1, alors l'index du vecteur leader suivant If sera: 1) (pf,-:f,O) si l'on ne change que la première composante p. On prendra avantageusement p= P + 1. Quant au type 'rf, il se déduit du vecteur leader If Il peut- être du même type que le vecteur leader I et dans ce cas, on a 'rf - 'r. 2) (p,'rf,f) si le vecteur change de type. Le type -'r du vecteur If est alors différent du type 'r du vecteur leader I La phase ar du vecteur If est égale à la phase du précédent vecteur leader / dans la table de même type et de même norme, augmentée du cardinal de la classe d'équivalence de ce vecteur /. On notera que si le vecteur leader suivant If est le premier de son type et de sa norme, alors on pourra prendre a' 0 3) (p, T,af + K(l)) si le vecteur leader suivant If a même type et même norme que le vecteur / On attribuera au vecteur quantifié x de rang! dans la classe d'équivalence du vecteur leader / un index qui sera de la forme (p,'T,c + t). Le décodage du vecteur leader I de la classe d'équivalence d'un vecteur x de code (Px,'rtXx) est fait en prenant c de manière qu'il vérifie les relations suivantes x -- T, Px - p 24 2773022 cta c a\ typiquement le cas du vecteur nul, (0,..., 0), o la composante transmise est p = 0. L'avantage qui résulte des différentes méthodes d'indexation proposées réside dans la réduction de débit qu'elles offrent. De plus, le fait de coder la norme p et la phase ca séparément permet une partition du dictionnaire de vecteurs suivant leur norme p, ce qui permet d'accélérer la procédure de recherche du code du vecteur leader 1. En effet, connaissant la norme de ce vecteur, on ne recherche sa phase c que dans une partie seulement du dictionnaire. Par ailleurs, ce codage permet d'exploiter la statistique d'un signal qui donne des vecteurs non isotropes en norme, par exemple une prépondérance de vecteurs de norme faible transmis. C'est typiquement le cas en traitement d'image. Ainsi, en réduisant le nombre de valeurs possibles de la phase cc pour une norme p donnée, on réduit aussi le débit nécessaire à la transmission Le codage séparé du rang t sur une composante supplémentaire va également dans ce sens de réduction du débit de transmission. En effet, il exploite la répartition non isotrope en phase des vecteurs et plus particulièrement les propriétés dites d'auto- corrélation d'un signal. L'efficacité de codage peut-être accrue en utilisant des mots de longueur variable en utilisant un code du type}luffman, du type UVLC, ou équivalent 2773022 Dans le cas particulier du codage de signaux d'image, il est avantageux d'utiliser ce type de codage pour le codage de la norme p. notamment dans les codes à plusieurs composantes. Dans le cadre du traitement d'image ou de tout autre signal qui offre une relativement forte auto- corrélation, les codages à 3 composantes donnent une efficacité de compression qui est meilleure que pour les autres types de codage proposés par l'état de l'art antérieur. De plus, l'indexation du type à trois composantes permet une construction simple du dictionnaire de vecteurs leaders et un décodage aisé du rang d'un vecteur appartenant à la classe d'équivalence d'un vecteur leader, comparé aux procédés d'indexation de l'art antérieur. 26 2773022 REVENDICATIONS I) Procédé de codage d'un vecteur, dit vecteur quantifié, représentatif d'un signal quantifié vectoriellement sur un réseau, caractérisé en ce que ledit procédé de codage consiste à déterminer un vecteur, dit vecteur leader, qui comporte les mêmes composantes que ledit vecteur quantifié mais dans un ordre prédéterminé, puis à déterminer le niveau d'ordre ou rang dudit vecteur quantifié dans ledit ensemble formé des vecteurs qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et à former un code à partir, d'une part, d'un indice représentatif dudit vecteur leader ainsi déterminé et, d'autre part, dudit rang 2) Procédé de codage selon la revendication 1, caractérisé en ce que tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs x, de dimension i, en ordonnant lesdits vecteurs x, de manière que les premiers vecteurs sont ceux dont la composante égale à 1(t-i) est en position 0, avec l'ordre respecté des vecteurs x,", puis les vecteurs dont la composante égale à 1(i7-i) est en position I avec l'ordre respecté des vecteurs x,_ et ainsi de suite jusqu'aux vecteurs dont la composante égale à 1(n-i) est en position i-I toujours avec l'ordre respecté des vecteurs x,_,, et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x, de dimension n 3) Procédé selon la revendication 2, caractérisé en ce que, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur 4) Procédé selon la revendication 1, caractérisé en ce que, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs par un même vecteur leader, il consiste à déterminer la position ou les positions dans le vecteur quantifié de chacune des composantes du vecteur leader 5) Procédé selon la revendication 4, caractérisé en ce que, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à, pour une variable p prenant successivement toutes les valeurs entre 0 et n-2. déterminer la position de la pt'" composante du vecteur leader dans un vecteur de dimension n-p. dit vecteur quantifié partiel, dont les composantes 27 2773022 sont, d'une part, identiques à celles d'un vecteur, dit vecteur leader partiel, également de dimension n-p dont les composantes sont les n-p dernières composantes du vecteur leader et, d'autre part, dans l'ordre des mêmes composantes dans le vecteur quantifié, et à multiplier la valeur du rang calculée pour la précédente valeur de p par le nombre de vecteurs distincts aux mêmes composantes que ledit vecteur leader partiel qu'il est possible de construire par permutation desdites composantes, et ajouter à ladite valeur obtenue la valeur de ladite position, ledit procédé commençant avec la valeur du rang initialisée à zéro 6) Procédé selon la revendication 4, caractérisé en ce que, pour détermniner le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste a, pour une variablc p prenant successivement toutes les valeurs entre 0 et q-2, qc étant le nombre d'éléments distincts dans le vecteur leader, ainsi qu'une variable m initialisée à la dimension du réseau n, déterminer la ou les positions du prerc élément du vecteur leader dans un vecteur de dimension m, dit 1 5 vecteur quantifié partiel, dont les composantes sont, d'une part, identiques à celles d'un vecteur, dit vecteur leader partiel, également de dimension m dont les composantes sont les m dernières composantes du vecteur leader et, d'autre part, rangées dans l'ordre des mêmes composantes dans le vecteur quantifié, à multiplier la valeur du rang calculée pour la précédente valeur de p par le nombre de vecteurs distincts aux mêmes composantes que ledit vecteur leader partiel qu'il est possible de construire par permutation desdites composantes, et ajouter à ladite valeur obtenue la valeur d'une variable, dite variable de position, qui est fonction de la position ou des positions du pec élément dans ledit vecteur quantifié, la valeur de la variable m étant diminuée à chaque nouvelle valeur de p du nombre de répétitions du peme élément dans le vecteur quantifié ou le vecteur leader, ledit procédé commençant avec la valeur du rang initialisée à zéro 7) Procédé selon la revendication 6, caractérisé en ce que si le I''m'" élément n'est pas répété dans ledit vecteur quantifié partiel, la valeur de ladite variable de position est égale à la position dudit pr'è' élément dans ledit vecteur quantifié, sinon, sa valeur est initialisée à A,,, -, C'=t(_ 1 w(.) étant le nombre de répétitions dudit Ipr, élément dans ledit vecteur quantifié, 28 2773022 la variable m est décrémentée d'une unité, puis pour toute valeur de i prise successivement entre I et w(p)-1, la variable de position Am est calculée comme suit: Ar Irn+îC +14r-jP-- Am = Am+i E=+ l (m(+I m)- puis m est décrémentée d'une unité. 8) Procédé de décodage d'un code à des fins de recouvrer un vecteur quantifié représentatif d'un signal qui a été quantifié sur un réseau, ledit code étant formé à partir, d'une part, d'un indice normalement représentatif d'un vecteur dudit réseau, dit vecteur leader, représentant de l'ensemble des vecteurs dudit réseau qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et, d'autre part, d'un rang correspondant au niveau d'ordre du vecteur à recouvrer dans l'ensemble ordonné des vecteurs dont ledit vecteur leader est le représentant, ledit procédé de décodage consistant à déterminer à partir du rang contenu dans ledit code et dudit vecteur leader ledit vecteur quantifié à recouvrer, caractérisé en ce que tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs x, de dimension i, en ordonnant lesdits vecteurs x, de manière que les premiers vecteurs sont ceux dont la composante égale à 1(-i) est en position 0, avec l'ordre respecté des vecteurs x,_/, puis les vecteurs dont la composante égale à l(nl-i) est en position 1 avec l'ordre respecté des vecteurs x,1 et ainsi de suite jusqu'aux vecteurs dont la composante égale à!(n-i) est en position i-1 toujours avec l'ordre respecté des vecteurs x,,, et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x, de dimension n, et en ce que pour recouvrer ledit vecteur quantifié, il consiste à rechercher le vecteur qui, dans ledit ensemble des vecteurs représentés par ledit vecteur leader tel qu'il est déduit dudit code, celui dont le rang dans ledit ensemble correspond au rang déduit dudit code 9) Procédé selon la revendication 8, caractérisé en ce que, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur. ) Procédé de décodage d'un code à des fins de recouvrer un vecteur quantifié représentatif d'un signal qui a été quantifié sur un réseau, ledit code étant formé à 29 2773022 partir, d'une part, d'un indice normalement représentatif d'un vecteur dudit réseau, dit vecteur leader, représentant de l'ensemble des vecteurs dudit réseau qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et, d'autre part, d'un rang correspondant au niveau d'ordre du vecteur à recouvrer dans l'ensemble ordonné des vecteurs dont ledit vecteur leader est le représentant, ledit procédé de décodage consistant à déterminer à partir du rang contenu dans ledit code et dudit vecteur leader ledit vecteur quantifié à recouvrer, caractérisé en ce qu'il consiste à déterminer à partir du rang déduit dudit code, la position dans le vecteur quantifié à recouvrer de chaque élément du vecteur leader déduit dudit code, puis, à partir desdites positions, reconstruire ledit vecteur quantifié à recouvrer 11) Procédé selon la revendication 10, caractérisé en ce que, pour déterminer la position dans le vecteur quantifié à recouvrer de tous les éléments du vecteur leader déduit dudit code, il consiste à calculer, pour chaque valeur prise par une variable m successivement entre I et n, le reste de la division d'une variable rang calculée précédemment pour la valeur de la variable m précédente par ladite variable m, ledit reste représentant alors la position du (o-m)'"'' composante du vecteur leader dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles d'un vecteur, dit vecteur leader partiel, dont les composantes sont les m dernières composantes dudit vecteur leader, ladite variable rang alors calculée étant égale au dividende de ladite division, ladite variable rang ayant sa valeur initialisée à celle du rang déduit dudit code transmis 12) Procédé selon la revendication 10, caractérisé en ce qu'il consiste, dans des étapes successives o une variable p prend respectivement les valeurs comprises entre q-2 et O, q étant le nombre d'éléments distincts dans le vecteur leader, à calculer le reste de la division d'une variable rang calculée à l'étape précédente par le nombre de vecteurs distincts qu'il est possible de construire par permutation des composantes d'un vecteur, dit vecteur leader partiel, de dimension m dont les composantes sont les m'èms dernières composantes dudit vecteur leader, m étant une variable cumulant à chaque étape le nombre d'éléments analysés, et déduire de la valeur dudit reste les positions respectives dudit pt''" élément dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles dudit vecteur leader partiel, à calculer la nouvelle variable rang comme étant le dividende de ladite division, 2773022 à reconstruire, à partir desdites positions, ledit vecteur quantifié partiel, le vecteur quantifié partiel ainsi reconstruit pour la valeur de la variable p égale à zéro étant le vecteur quantifié à recouvrer. 13) Procédé selon la revendication 12, caractérisé en ce que, à chaque étape, pour déterminer les positions respectives dudit plère élément dans ledit vecteur quantifié partiel (c5 pour k variant de m à m-w(p) T 1), il consiste à (p)- initialiser à zéro, deux variables de calcul oc et ys, à (7t_ i et à 0, effectuer une boucle tant que Am valeur de Cw4(p)- rtl-] - ô initialiser de nouveau Am à la valeur de cs, puis, pour toute valeur de i variant de 1 à w-l, incrémenter m.i d'une unité, initialiser cs est à ( () et ls à zéro rn-l-i-È tc,.zr effectuer une boucle tant que Am-p)+l auquel on a retranché Am-i, est supérieur ou égal à a, ladite boucle consistant à égaler o, à o, puis à incrémenter d'une unité fir et à ajouter à c la valeur de (C,(p) - pour chaque valeur de i, Amni étant recalculé comme étant égal à Am-i, I + Os. 14) Procédé de décodage selon la revendication 13, caractérisé en ce que, pour déterminer le vecteur partiel de dimension m connaissant la valeur de la variable de position bm ainsi que le vecteur partiel de dimension m-l et le vecteur leader 1, on effectue une boucle pour toutes les valeurs d'une variable j comprises entre 0 et m-I qui consiste à comparer la variable de position &m et j, puis si j 86r, la j'emr composante du vecteur quantifié partiel de dimension m est égalée à la (j-l I)m composante du vecteur quantifié partiel de dimension m-I; soit Xm(/) = X (/-I) et si j= 8,,, la jam composante du vecteur quantifié partiel de dimension m est égalée la valeur de (O-m)'me composante du vecteur leader 1, soit x,(/) = i(n-m). 15) Procédé de codage d'un vecteur selon une des revendications I à 7, caractérisé en ce qu'il consiste à former un code représentatif d'un index qui est la somme algébrique de l'index affecté audit vecteur leader et du rang du vecteur quantifié dans l'ensemble des vecteurs représentés par ledit vecteur leader. 31 2773022 16) Procédé de codage d'un vecteur selon une des revendications I à 7, caractérisé en ce qu'il consiste à former un code représentatif d'un index à deux composantes dont la première est un numéro d'ordre affecté audit vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et l'autre le rang dudit vecteur quantifié dans cet ensemble. 17) Procédé de codage d'un vecteur selon une des revendications 1 à 7, caractérisé en ce qu'il consiste à former un code représentatif d'un index à trois composantes dont deux sont représentatives du vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et la troisième le rang du vecteur quantifié dans cette classe d'équivalence 18) Procédé de codage d'un vecteur selon la revendication 17, caractérisé en ce que les deux composantes représentatives dudit vecteur leader sont respectivement la norme et la phase dudit vecteur. 19) Procédé de codage d'un vecteur selon la revendication 17, caractérisé en ce que les deux composantes représentatives dudit vecteur leader sont respectivement la norme dudit vecteur leader et un index qui discrimine ledit vecteur leader des autres vecteurs leaders ayant même norme. ) Procédé de codage d'un vecteur selon la revendication 19, caractérisé en ce que, lorsque ledit vecteur leader est le seul qui présente une norme donnée, il consiste à ne pas considérer l'index dudit vecteur leader. 21) Procedé de codage d'un vecteur selon une des revendications 15 à 20, caractérisé en ce qu'il consiste à former un code qui inclut une composante représentative du type du vecteur quantifié 22) Procédé de codage d'un vecteur selon une des revendications 15 à 21, caractérisé en ce que, lorsque la classe d'équivalence considérée ne comporte qu'un seul vecteur, il consiste à ne pas considérer le rang dudit vecteur quantifié dans cette classe d'équivalence