Traitement de données pour l'encodage et le décodage d'un message
La présente invention vise un traitement de données pour l'encodage et le décodage d'un message transmis à travers un canal de communication.
En particulier, l'invention vise l'encodage et le décodage d'un message transmis à travers un canal de communication présentant une information adjacente connue lors de l'encodage.
Par transmission à travers un canal de communication d'un message et d'une information adjacente, on entend désigner tout type ou mode de communication de l'information adjacente et du message.
On appelle information adjacente un bruit perturbant le canal de communication, le bruit étant connu lors de l'encodage. Par bruit, on entend désigner toute information susceptible de perturber la transmission du message. Par exemple, dans le cas de la transmission d'une image tatouée, l'image constitue un bruit perturbant la transmission du tatouage.
On appelle code correcteur surjectif un code correcteur dans lequel chaque message est associé à q mots de code, q étant un entier supérieur ou égal à 2.
On considère un canal de communication gaussien 1 (Figure 1) sur lequel est émis un signal w de puissance maximale P.
Le canal de communication est perturbé par un bruit x modélisé par une variable aléatoire suivant une loi Normale X ~ N(0,Q), et par un bruit z modélisé par une variable aléatoire suivant une loi Normale Z ~ N(0,N).
La capacité du canal 1, c'est-à-dire son rendement théorique maximal de transmission, est égale à :
Plus la puissance d'émission P est élevée, et plus la capacité C est importante. À l'inverse, la somme Q + N réduit la capacité C.
La publication de M.H.M. Costa « codage de papier sale » (Writing on dirty paper, IEEE Trans. on Information Theory, 29(3): 439-441, May 1983) divulgue que, lorsque le bruit x est connu au moment de l'encodage, c'est-à-dire lors de la génération du signal w, la capacité C ne dépend plus de la puissance Q. La capacité C devient donc égale à la capacité d'un canal gaussien perturbée par une seule source de bruit Z. La connaissance du bruit x permet donc d'augmenter la capacité C. Le bruit connu x est appelé information adjacente.
La publication de A.S. Cohen et A. Lapidoth « codage de papier sale généralisé » (Generalized Writing on Dirty Paper, 2002) montre que ce résultat peut être étendu à des canaux autres que gaussiens.
On appelle M un ensemble de messages pouvant être transmis. On appelle rrij le jeme message de l'ensemble M, j étant un entier compris entre 1 et le nombre de messages de l'ensemble M.
Pour s'approcher de la limite de capacité C, les systèmes de communication numériques utilisent des codes correcteurs pour encoder le message rrij et générer, à partir du message rrij encodé, un signal w résistant aux perturbations des sources de bruit.
Pour les canaux de communication classiques, c'est-à-dire pour lesquels le bruit x n'est pas connu lors de l'encodage, on utilise par exemple comme code correcteur un turbo code ou un code à faible densité LDPC (« Low Density Parity Check »), qui présentent de bonnes performances.
Pour un canal avec information adjacente, c'est-à-dire lorsque que le bruit x est connu lors de l'encodage, le code correcteur doit être structuré d'une façon particulière.
En effet, les codes correcteurs classiques sont basés sur un dictionnaire qui associe un mot de code Uj à chaque message rrij (dictionnaire bijectif). La figure 2 montre un exemple de code correcteur classique, pour un ensemble de messages M comportant quatre éléments. Le code correcteur comporte quatre mots de code ul5 u2, u3 et u4 associés respectivement aux quatre messages nii, m2, m3 et !¾.
On suppose que le message à encoder est m^ Le mot de code associé est Ui . Cependant, en présence d'information adjacente x de puissance Q trop élevée, la puissance maximale d'émission P ne permet pas d'atteindre la zone de robustesse (zone hachurée) du mot de code Ui. En effet, comme on peut le voir sur la figure 2, w représentant le signal à transmettre, le point représentant le signal reçu w+x, situé à l'extrémité de la flèche F sur le cercle C, est en dehors de la zone hachurée qui correspond à la zone de robustesse du mot de code Ui. Il y aura donc une erreur de décodage.
Pour résoudre ce problème, on utilise des codes correcteurs surjectifs dits « codes de Costa ». Dans ces codes correcteurs, chaque message rrij est associé à q mots de code, q étant un entier supérieur ou égal à 2.
L'encodage d'un message rrij se fait alors en choisissant le mot de code u^ le plus proche de l'information adjacente x parmi les q mots de code possibles pour encoder rrij, i étant un entier compris entre 1 et q.
A titre d'exemple, la figure 3 représente un code de Costa idéal, avec q = 4 et l'ensemble M comportant quatre messages mi à rri4. Le message mi est associé aux mots de code uu, u1 2, u1 3 et Ui>4. De manière similaire, chaque message rrij est associé aux mots de code ιΐμ, uj>2, uj>3 et uj>4. Quel
que soit le message rrij à encoder et quelle que soit la position de l'information adjacente x, il existe à proximité un mot de code u^ associé au message rrij.
Il existe aujourd'hui deux types de construction pour les codes surjectifs. Le premier type de construction est issu de la communauté des communications numériques. Il utilise des techniques de quantification pour créer des codes surjectifs, et y associe un code correcteur classique. De tels codes sont par exemple décrits dans la publication de G. Le Guelvouit « Tatouage robuste d'images par turbo TCQ » (Traitement du Signal, vol. 25, num. 6, Avr. 2009), dans la publication de B. Chen et G.W. Wornell « Quantification par modulation d'index » (Quantization Index Modulation: A Class of Provably Good Methods for Digital Watermarking and Information Embedding, IEEE Trans. on Information Theory, 1999) et dans la publication de J. Chou, S. S. Pradhan, et K. Ramchandran « Constructions de turbo codes basés sur des treillis pour l'incorporation de données » (Turbo coded treillis-based constructions for data embedding : channel coding with side information, In Proc. Conf. on Signais, System and Computers, Asilomar, CA, Nov. 2001).
La quantification permet d'associer de manière simple plusieurs mots de code u^ à chaque message rrij. Elle est basée sur la détermination d'un pas de quantification, qui correspond à la distance entre deux mots de code u^ associés à un même message rrij.
Par exemple, dans le cas scalaire, si le pas de quantification est déterminé égal à 10, les valeurs 0, 10, 20, 30, etc. sont associées au bit '0' et les valeurs 5, 15, 25, 35, etc. au bit T . Pour encoder le bit Ί ' avec une information adjacente de 22, on utilise alors le mot de code 25.
Cette approche permet d'obtenir des résultats proches des limites théoriques de capacité C. L'inconvénient est qu'elle ne présente aucune robustesse aux facteurs d'échelle. Par exemple, si le canal de communication subit une atténuation non prévue d'un facteur 8/10, le mot de code 25 va se transformer en 20, c'est-à-dire en un mot de code associé au bit Ό'.
La figure 4 illustre le principe de la quantification en 2 dimensions. L'ensemble M comporte quatre messages. Le code est construit par quantification de l'espace 2D. Chaque message rrij est associé aux mots de code U à uj>q. Les mots de code se répètent indéfiniment. Sur la figure 4, pour des raisons de clarté, seuls quatre mots de code Uj i ont été représentés pour chaque message rrij. La quantification assure une répartition régulière des mots de code Uj i dans l'espace et donc de bonnes performances.
Pour transmettre un message rrij, le système de communication sélectionne, parmi les mots de code Uj associés au message rrij, le mot de code Uj le plus proche de l'information adjacente x, au sens euclidien. Sur la figure 4, c'est le vecteur uu qui est le plus proche . Puis le système de communication génère le signal w à partir du mot de code Uj i sélectionné, en utilisant une
technique permettant de compenser par anticipation l'ajout du bruit x lors de la transmission à travers le canal.
La figure 5 représente le signal reçu y, correspondant au signal transmis w, le canal de communication 1 ayant subi une atténuation. Le signal reçu y sort de la zone de robustesse (zone hachurée) du mot de code U . Il y a donc une erreur de décodage.
Le second type de construction est issu de la communauté du tatouage numérique. Il est par exemple décrit dans la publication de M.L. Miller, GJ. Doërr et IJ. Cox. « Codes de papier sale par treillis pour le tatouage » (Dirty-paper trellis codes for watermarking, in IEEE Int. Conf. on Image Processing, Rochester, NY, Sep. 2002).
Ce type de construction utilise un code convolutif et un algorithme de décodage de Viterbi.
L'algorithme de décodage de Viterbi est modifié en ajoutant de multiples arcs entre états, si bien que chaque état au temps t est relié à tous les états du temps t + 1. Le chemin, c'est-à-dire la suite d'arcs, choisi est fonction du message rrij à encoder et de l'information adjacente x. Les arcs correspondent à des séquences pseudo-aléatoires, et la distance entre ces séquences et l'information adjacente est leur corrélation.
L'avantage de cette technique est qu'elle est insensible à l'atténuation, et plus généralement aux facteurs d'échelle, car toutes les corrélations sont influencées de la même façon. Le chemin du treillis sera donc le même dans le cas où le canal de communication subit une atténuation. L'inconvénient est que cette approche donne des résultats très éloignés de la limite de capacité C, c'est-à-dire un taux d'erreur en fonction du rapport P/N du canal de communication 1 élevé.
La figure 6 représente un code surjectif basé sur la corrélation et l'algorithme de Viterbi. L'ensemble M comporte quatre messages. Les mots de code U sont disposés sur un cercle donc sont de même énergie. En conséquence, le code est insensible au changement d'échelle. Cependant, les mots de code u^ ne sont pas répartis uniformément, ce qui limite les performances.
Le document ΧΡ010790760 décrit un procédé de tatouage comportant une construction d'un code correcteur surjectif réalisée à partir d'une caractérisation de l'information adjacente dans un système de coordonnées sphériques. Cependant, la construction du code correcteur manque de précision.
La présente invention vient améliorer la situation.
A cet effet, l'invention propose un procédé d'encodage d'un message pour une transmission à travers un canal de communication présentant une information adjacente connue lors de l'encodage, le procédé d'encodage comportant une construction d'un code correcteur surjectif, dans lequel la construction du code correcteur surjectif est réalisée à partir d'une caractérisation de
l'information adjacente dans un système de coordonnées sphériques, caractérisé par le fait qu'il comporte les étapes suivantes :
a) déterminer un vecteur d'information sphérique caractérisant l'information adjacente dans le système de coordonnées sphériques, le vecteur d'information sphérique étant de dimension n, n étant un entier positif,
b) construire un code correcteur surjectif en utilisant le vecteur d'information sphérique et en réalisant une opération de quantification comportant
- la détermination d'un pas de quantification en fonction d'un nombre de mots de code à associer à un message, le pas de quantification étant égal à 2π / q1/(n ~ r>, où q est le nombre de mots de code à associer à un message, et
- la détermination, à partir du pas de quantification, d'un ensemble de mots de code répartis sur la surface d'une hyper-sphère de centre 0 et de rayon égal à la valeur d'une composante donnée du vecteur d'information sphérique et
c) encoder le message, en utilisant le code correcteur surjectif.
On appelle code par quantification tous les codes correcteurs surjectifs basés sur une quantification de l'information adjacente, par exemple code par quantification scalaire, code par quantification vectorielle, code treillis (« lattice »), code TCQ (Trellis Coded Quantization), code turbo TCQ, etc. La quantification permet d'obtenir une bonne répartition des mots de code.
La solution proposée dans cette invention peut combiner les performances des codes basés sur la quantification et la résistance des codes basés sur la corrélation.
On va « plaquer » une grille régulière de mots de code sur la surface d'une hyper-sphère, ce qui permet d'obtenir un code insensible au changement d'échelle.
L'invention combine ainsi les avantages des techniques connues (performances de correction excellentes et insensibilité au facteur d'échelle), sans présenter leurs inconvénients. Le pas de quantification est adapté en fonction du nombre de mots de code q.
Ainsi, les mots de code présentent la même énergie et ne sont pas sensibles au changement d'échelle.
L'étape c) comporte avantageusement une opération de sélection d'un mot de code le plus proche du vecteur d'information sphérique parmi les mots de code associés au message.
La sélection d'un mot de code le plus proche de l'information adjacente permet de s'approcher de la limite de capacité du canal de communication.
L'étape c) comporte de préférence une opération de détermination d'un vecteur mot de code cartésien, caractérisant le mot de code sélectionné dans un système de coordonnées
cartésiennes, à partir d'un vecteur mot de code sphérique, caractérisant le mot de code sélectionné dans le système de coordonnées sphériques. Le signal généré est fonction du vecteur mot de code cartésien.
La construction du code est réalisée dans le système de coordonnées sphériques. Le mot de code sélectionné est donc initialement caractérisé par ses coordonnées sphériques. Ce mot de code est changé de système de coordonnées pour permettre la génération du signal dans le système de coordonnées cartésiennes, par exemple en additionnant composante par composante le mot de code et l'information adjacente en coordonnées cartésiennes.
Avantageusement, à l'étape a), le vecteur d'information sphérique est déterminé à partir d'un vecteur d'information cartésien, caractérisant l'information adjacente dans un système de coordonnées cartésiennes, le vecteur d'information cartésien étant de dimension n.
Le vecteur d'information cartésien, représentant l'information adjacente dans un système de coordonnées cartésiennes, est le vecteur utilisé pour la génération du signal. Le changement de système de coordonnées permet la construction du code.
Avantageusement, l'étape a) comporte une opération de génération d'un bruit pseudoaléatoire, à partir d'une clé. Le bruit pseudo-aléatoire généré est ajouté à des composantes du vecteur d'information sphérique. L'utilisation d'une clé permet d'assurer la confidentialité de la transmission.
Du fait de la construction du code, le signal transmis est avantageusement décodé par un procédé de décodage spécifique. Ainsi, l'invention vise également un procédé de décodage comportant une étape de détermination d'un vecteur de signal sphérique, caractérisant un signal reçu dans un système de coordonnées sphériques, à partir d'un vecteur signal cartésien, caractérisant le signal reçu dans un système de coordonnées cartésiennes.
Les étapes de calcul des procédés d'encodage et de décodage peuvent être réalisées par un programme informatique.
Ainsi, l'invention vise également un programme informatique comportant des instructions pour la mise en œuvre des procédés d'encodage et de décodage.
Le programme informatique pour la mise en œuvre du procédé d'encodage peut être exécuté dans un dispositif d'encodage.
Ainsi, l'invention vise également un dispositif d'encodage d'un message destiné à être transmis à travers un canal de communication présentant une information adjacente connue lors de l'encodage. Le dispositif d'encodage comporte des moyens de construction d'un code correcteur surjectif agencés pour construire le code surjectif à partir d'une caractérisation de l'information adjacente dans un système de coordonnées sphériques.
Le dispositif d'encodage comporte de préférence :
a) des moyens de détermination d'un vecteur d'information sphérique caractérisant l'information adjacente dans le système de coordonnées sphériques, le vecteur d'information sphérique étant de dimension n, n étant un entier positif,
b) des moyens pour construire un code correcteur surjectif en utilisant le vecteur d'information sphérique, et
c) des moyens d'encodage adaptés pour encoder le message, en utilisant le code correcteur surjectif.
Le dispositif d'encodage peut être intégré dans un équipement d'émission. L'invention vise donc également un équipement d'émission comportant le dispositif d'encodage.
Le programme informatique pour la mise en œuvre du procédé de décodage peut être exécuté dans un dispositif de décodage.
L'invention vise donc également un dispositif de décodage d'un message encodé par le dispositif d'encodage précité. Le dispositif d'encodage comporte des moyens de détermination d'un vecteur de signal sphérique, caractérisant un signal reçu dans un système de coordonnées sphériques, à partir d'un vecteur signal cartésien, caractérisant le signal reçu dans un système de coordonnées cartésiennes.
Le dispositif de décodage peut être intégré dans un équipement de réception. L'invention vise donc également un équipement de réception comportant le dispositif de décodage précité.
D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels : la Figure 1 est une vue schématique simplifiée d'un canal de communication perturbé par deux sources de bruit ;
- la Figure 2 est un graphe représentant un code correcteur classique ;
la Figure 3 est un graphe représentant un code de Costa idéal ;
la Figure 4 est un graphe représentant un code par quantification ;
la Figure 5 est un graphe représentant le code de la figure 4, le canal ayant subi une atténuation ;
- la Figure 6 est un graphe représentant un code basé sur la corrélation et l'algorithme de
Viterbi ;
la Figure 7 est un organigramme illustrant les étapes d'un procédé d'encodage selon un mode de réalisation de l'invention, cet organigramme pouvant représenter l'algorithme général du programme informatique au sens de l'invention ;
la Figure 8 est un organigramme illustrant les étapes d'un procédé de décodage selon un mode de réalisation de l'invention ;
la Figure 9 est un schéma fonctionnel montrant un dispositif d'encodage, apte à mettre en œuvre le procédé d'encodage de la figure 7, le dispositif d'encodage étant intégré dans un équipement d'émission ; et
la Figure 10 est un schéma fonctionnel montrant un dispositif de décodage, apte à mettre en œuvre le procédé de décodage de la figure 8, le dispositif de décodage étant intégré dans un équipement de réception.
On considère le canal de communication 1 de la figure 1. Ce canal présente un bruit x connu lors de l'encodage et appelé information adjacente.
En se référant à la figure 7, on décrit un mode de réalisation particulier du procédé d'encodage d'un message rrij selon l'invention. Le procédé est par exemple exécuté par un dispositif d'encodage 31 intégré dans un équipement d'émission 30 (figure 9).
A l'étape 10, l'information adjacente reçue est représentée sous la forme d'un vecteur x de coordonnées cartésiennes (x[l],...,x[n]) dans un système de coordonnées cartésiennes. Le vecteur x est de dimension n, n étant un entier positif. Lors de cette étape 10, le dispositif d'encodage 31 opère un changement de système de coordonnées pour passer du système de coordonnées cartésiennes à un système de coordonnées sphériques. Le vecteur x de coordonnées cartésiennes (x[l],...,x[n]) dans le système de coordonnées cartésiennes est ainsi changé en un vecteur t de coordonnées sphériques (t [1 ],..., t[n]) dans le système de coordonnées sphériques. Le changement de système de coordonnées est par exemple réalisé par l'algorithme 1 ci-dessous :
t [ n] = 0 ;
pour = 1 j usqu' à n
^ t [ n] = t [ n] + x[ /] * x[ /] ;
t [ n] = sqr t ( t in] ) ;
t [ n - 1] = 0, 5 4 rto€( 2* PI + €t€n2( x[ n] , x[ n - 1] ) , 2* PI ) ;
s = x[ n] * x[ n] ;
our / = n - 2 j usqu' à 1
s = s + x[_/ + 1] * x[ / + 1] ;
} t [ ] = €t §i2( sqr t ( s) , x[ /] j ;
Dans cet algorithme :
sqrt(a) désigne la racine carrée de a,
atan2(y, x) désigne un angle en radians entre la partie positive de l'axe des x d'un plan, et le point de ce plan aux coordonnées (x,y), et
mod(a, b) désigne le reste de la division euclidienne de a par b.
La première boucle (i=l à n) est exécutée pour i inférieur ou égal à n, c'est-à-dire entre i=l et i=n. A chaque itération, la composante t[n] prend comme valeur la somme de la valeur de t[n] à l'itération précédente et du carré de la ieme composante x[i] du vecteur x.
A la sortie de la première boucle, la composante t[n] a donc pour valeur la somme des carrés de chaque composante x[i] du vecteur x.
Puis, la fonction sqrt(t[n]) permet de calculer la racine de cette somme de carrés. La composante t[n] est ainsi égale au module du vecteur x.
Avant la deuxième boucle, la composante t[n-l] est calculée comme étant égale à la moitié de atan2(x[n] , x[n-l]) modulo 2π. La composante t[n-l] est ainsi un angle en radians. Le coefficient 0,5 permet de normaliser cet angle entre 0 et π.
La deuxième boucle (i=n-2 à 1) est exécutée pour i supérieur ou égal à 1 , pour i décroissant variant de i=n-2 à i=l inclus. La deuxième boucle permet de calculer les valeurs des composantes t[l] à t[n-2] du vecteur t.
A chaque itération de la deuxième boucle, la composante t[i] correspondante est calculée comme étant égale à l' angle donné par atan2(sqrt(s), x[i]), où s est la somme des carrés de chaque composante du vecteur x de rang strictement supérieur à i.
Le vecteur t=(t[l ],.. . , t[n]) caractérise l'information adjacente x dans un système de coordonnées sphériques. Les composantes t[l] à t[n - 1] du vecteur t sont des angles (normalisés entre 0 et π) et la composante t[n] est un rayon.
L'étape 11 est une étape d'encodage du message rrij. Le pas de quantification d du code est calculé avec la formule :
d = 27i / q1/(n- 1)
où q désigne le nombre de mots de code U associés au message rrij.
Ainsi le pas de quantification d est calculé par division de l'angle 2π par le nombre de mots de code associés au message rrij, élevé à la puissance l/(n-l). Le pas de quantification d est commun à la phase d'encodage et de décodage. On notera que, pour les calculs, un coefficient de normalisation de 0,5 peut également être utilisé. Dans ce cas, le pas de quantification d normalisé est égal à n / q1/(n _ 1).
Le pas de quantification d est ensuite utilisé pour déterminer, par quantification, des mots de code U . Le codage par quantification est par exemple du type turbo TCQ. Un tel codage
garantit une bonne répartition des mots de code les uns par rapport aux autres. On pourrait à la place utiliser un codage par quantification du type SCS tel que décrit dans l'article de J. J. Eggers, R. Bâuml, R. Tzschoppe, B. Girod. « Schéma scalaire de Costa pour l'incorporation d'information» (" Scalar Costa Scheme for Information Embedding", IEEE Transactions on Signal Processing, 2002) ou un codage par quantification du type QIM tel que décrit dans l'article de B. Chen, G. Wornell. « Quantification par modulation d'index » ("Quantization index modulation: A class of provably good methods for digital watermarking and information embedding", IEEE Trans. Inf. Theory, 2001).
Par ce procédé, tous les mots de codes Uj i sont disposés sur la surface d'une hyper-sphère qui a pour centre 0 et pour rayon la composante t[n] du vecteur t. Par conséquent, tous les mots de codes Uj i ont la même énergie, si bien que le code est insensible au changement d'échelle. Ainsi, même si le canal de communication 1 subit une atténuation, le mot de code obtenu après décodage sera le bon.
Les (n-1) premières composantes du vecteur t sont quantifiées pour sélectionner le mot de code Uj i le plus proche de l'information adjacente, parmi les mots de code ιΐ associés au message rrij. Dans le domaine sphérique, on choisit le mot de code le plus proche au sens euclidien, ce qui correspond à la formule ci-dessous :
La quantification étant effectuée dans le système de coordonnées sphériques, le mot de 4 sélectionné est caractérisé par un vecteur u ^ de coordonnées sphériques (us [l],...,uSj;i
M).
A l'étape 12, un vecteur de coordonnées cartésiennes uCj i=(uCj i [l],...,uCj i [n]) caractérisant de code u^ est déterminé à partir du vecteur de coordonnées sphérique u^.
La transformation est par exemple réalisée par l'algorithme 2 ci-dessous : s = usj,i \ n\ ;
l∞ur i = 1 j usqu' à n - 2
U [ /] = s * €bs( 2 * U i n ] ) ;
s = s * si n( USj4 [ /] ) ;
}
U [ n 1] = s * €as( 2 * USj;i [ n - 1] ) ;
U [ n = s * si n( 2 * U
La boucle (i=l à n-2) est exécutée pour i strictement inférieur à n-1, c'est-à-dire pour i variant de i=l à i=n-2 inclus.
A chaque itération, la composante uCjj[i] est calculée en faisant le produit de la composante uSj i[n], qui correspond au module du vecteur u ^, par le cosinus du double de la composante uSj i [n],
et par le sinus de chaque composante du vecteur uS j i de rang strictement inférieur à i. Le coefficient 2 utilisé dans le cosinus est complémentaire du coefficient de normalisation 0.5 de l'algorithme 1.
Puis, la composante u^fn-l] est calculée en faisant le produit de la composante u^fn] par le cosinus du double de la composante U [n-1] et par le sinus de chaque composante du vecteur uS j i de rang strictement inférieur à n-1.
Puis, la composante u^fn] est calculée en faisant le produit de la composante u^fn] par le sinus du double de la composante us [n-1] et par le sinus de chaque composante du vecteur u ^ de rang strictement inférieur à n-1.
Lors d'une étape 13, un signal w à transmettre est ensuite généré à partir du vecteur de coordonnées cartésiennes uC j i, par exemple en additionnant le vecteur uC j i avec le vecteur x, ou par des techniques d'insertion connues.
Lors d'une étape 14, le signal w généré est émis à travers le canal de communication 1, à destination d'un équipement de réception 40 (figure 10).
A titre d'exemple, on décrit ci-dessous une illustration du mode de réalisation particulier du procédé qui vient d'être décrit avec n=2. On appelle M un ensemble de messages pouvant être transmis. On appelle rrij le jeme message de l'ensemble M, j étant un entier compris entre 1 et le nombre de messages de l'ensemble M. On considère pour l'illustration que l'ensemble M comprend quatre messages. Le nombre q de mots de code U associés à chaque message rrij est égal à quatre. L'information adjacente est x = (3,5 ; 1) en coordonnées cartésiennes. Autrement dit, le vecteur x est de dimension n égale à 2 et ses coordonnées cartésiennes sont x[l] = 3,5 et x[2] = 1.
A l'étape 10, on détermine le vecteur t caractérisant l'information adjacente x dans le système de coordonnées sphériques.
L'algorithme 1 appliqué aux valeurs numériques x[l]=3,5 et x[2]=l donne un vecteur t de coordonnées sphériques t[l]=8 et t[2]=3,65. Ces valeurs correspondent, compte tenu du coefficient 0,5, à un angle θ=16 degrés (soit t[l]/0,5) et à un rayon r = 3,65.
A l'étape 11, on détermine le pas de quantification d = 2π / q1/(n ~ 1)= 360° / 4 = 90°, sachant que n et q valent ici 2 et 4 respectivement. Etant donné que l'ensemble M comporte quatre messages rrij, chaque mot de code U sera donc décalé de 90 / 4 = 22,5° par rapport à un mot de code voisin.
On détermine ensuite le mot de code u^ le plus proche du vecteur t d'information adjacente en quantifiant la partie angulaire 0=16° des coordonnées sphériques de ce vecteur t d'information adjacente, c'est-à-dire en calculant 16 / d + 22,5, où « / » désigne la division entière. La valeur 22,5
est ajoutée car on veut coder le message mi qui a comme premier mot de code associé us u=(22,5 ; 1) dans le système de coordonnées sphériques.
Le mot de code us u est le plus proche de l'information adjacente t et est donc sélectionné.
A l'étape 12, le vecteur us u = (22,5 ; 1) est passé en coordonnées cartésiennes. L'application de l' algorithme 2 donne uc u [1]=1.875, uc u [2]=0.75.
Le mot de code est ainsi caractérisé, dans le système de coordonnées cartésiennes, par le vecteur uc u=(l ,875 ; 0,75). On notera que, pour le calcul, on utilise t[l]=8, qui correspond à la valeur obtenue par algorithme 1.
En se référant à la figure 8, on décrit le procédé de décodage. Le procédé est par exemple exécuté par un dispositif de décodage 41 intégré dans un équipement de réception 40 (figure 10).
A l'étape 20, le signal y, correspondant au signal w, est reçu. Le signal reçu y est initialement caractérisé par un vecteur de coordonnées cartésiennes (y[l],..,y[n]). Le vecteur y est changé de système de coordonnées pour obtenir un vecteur r caractérisant le signal reçu dans le système de coordonnées sphériques. Le changement de système de coordonnées est par exemple réalisé par l'algorithme 1, en remplaçant t[i] par r[i] et x[i] par y[i].
A l'étape 21, les n-1 premières composantes r[l] à r[n-l] du vecteur r sont transmises en entrée d'un décodeur par quantification du dispositif de décodage, pour déterminer le mot de code Uj i contenu dans le signal reçu. Le mot de code U permet de déterminer le message rrij transmis.
Comme représenté sur les figures 7 et 8, une clef k peut être utilisée à l'étape 11 du procédé d'encodage. Dans ce cas, la même clé k est utilisée à l'étape 21 du procédé de décodage.
Lors de l'encodage, la clé k est utilisée pour générer un bruit pseudo-aléatoire, qui est ajouté aux n-1 premières composantes du vecteur t avant l'encodage du message rrij.
Lors du décodage, la clé k est utilisée pour supprimer le bruit avant le décodage du message rrij.
L'utilisation d'une clé k permet d'assurer la confidentialité de la transmission.
La figure 9 représente un mode de réalisation particulier dans lequel le dispositif d'encodage 31 est intégré dans l'équipement d'émission 30. L'équipement d'émission 30 comporte en outre des moyens d'émission 32.
Le dispositif d'encodage 31 est destiné à mettre en œuvre le procédé d'encodage, par exemple le mode de réalisation du procédé d'encodage représenté sur la figure 7.
A cet effet, le dispositif d'encodage 31 comporte des moyens de détermination d'un vecteur d'information sphérique, pour déterminer un vecteur d'information sphérique t à partir du vecteur d'information cartésien x.
Le dispositif d'encodage 31 comporte également des moyens de construction d'un code, pour construire un code correcteur surjectif en utilisant le vecteur d'information sphérique t déterminé par les moyens de détermination d'un vecteur d'information sphérique.
Le dispositif d'encodage 31 comporte en outre des moyens d'encodage, pour encoder un message rrij en utilisant le code correcteur surjectif construit par les moyens de construction d'un code.
Le dispositif d'encodage 31 est connecté aux moyens d'émission 32, pour transmettre le message encodé aux moyens d'émissions 32.
Les moyens d'émission 32 génèrent un signal w à partir du message encodé. Puis, les moyens d'émission 32 émettent le signal w.
La figure 10 représente un mode de réalisation particulier dans lequel le dispositif de décodage 4 lest intégré dans l'équipement de réception 40. L'équipement de réception 40 comporte en outre des moyens de réception 42.
Les moyens de réception 42 sont aptes à recevoir un signal y, correspondant au signal émis w après passage à travers le canal de communication 1.
Les moyens de réception 42 sont connectés au dispositif de décodage 41, pour transmettre le signal reçu y au dispositif de décodage 41.
Le dispositif de décodage 41 est destiné à mettre en œuvre le procédé de décodage, par exemple le mode de réalisation du procédé de décodage représenté sur la figure 8.
A cet effet, le dispositif de décodage 41 comporte des moyens de détermination d'un vecteur de signal sphérique, pour déterminer un vecteur de signal sphérique r, à partir du vecteur de signal cartésien y.
Le dispositif de décodage 41 comporte également des moyens de décodage, pour déterminer, à partir du vecteur de signal sphérique r, un mot de code ιΐ contenu dans le signal reçu.
II est bien évident que les dispositif d'encodage 31 et de décodage 41 ne sont pas nécessairement intégrés respectivement dans des équipements d'émission 30 et de réception 40, et qu'ils peuvent en variante être intégrés dans tout type de systèmes de communication avec information adjacente, par exemple des systèmes à entrées multiples et sorties multiples (MIMO), des systèmes multi-utilisateurs, des systèmes de télédiffusion (broadcasting), des systèmes de tatouage numérique, etc.
Bien entendu, la présente invention ne se limite pas aux formes de réalisation décrites ci- avant à titre d'exemples ; elle s'étend à d'autres variantes.
Par exemple, le procédé d'encodage peut être appliqué au tatouage numérique d'image. Pour cette application, le contenu hôte auquel le tatouage est ajouté est considéré comme une information adjacente. Le procédé d'encodage de l'invention permet ainsi de construire un algorithme de tatouage aux performances proches des limites théoriques de capacité, tout en étant insensible aux changements de luminosité, de filtres de flou, d'atténuation ou d'augmentation du contraste.