Brevet FR2656754A1 — publié le 19910705

"SYSTEME DE CODAGE DE SIGNAUX NUMERIQUES DESTINES A ETRE TRANSMIS ET/OU STOCKES' La présente invention concerne un système de codage de signaux numériques agencés en blocs d'informations, ledit système comprenant un codeur de source suivi d'un codeur de canal de transmission. La numérisation des signaux de télévision conduit à devoir transmettre une très grande quantité d'informations binaires avec un débit de l'ordre de 220 Mbits/seconde. Un tel débit ne peut pas être assuré à un coût raisonnable par les canaux de transmission existants, et différentes techniques de codage d'informations ont été proposées en vue de réduire la quantité des informations et donc le débit. Un tel objectif est atteints en faits en réduisant la redondance des informations, mais, alors, chacune des informations transmises devient essentielle. Les éventuelles erreurs de transmission, qui peuvent assez facilement être corrigées si les informations à transmettre sont redondantes, ont des conséquences de plus en plus graves lorsqu'on réduit cette redondance.En effet l'ampleur des défauts dûs aux erreurs de transmission croit malheureusement plus vite que le facteur de réduction de débit. En présence d'un canal de transmission apportant du bruit, on a donc cherché à se protéger contre ces erreurs de transmission ou à en réduire les effets. L'une des techniques ainsi proposées consiste, pour le codage des informations, à associer à un codage réducteur du débit (aussi appelé codage de source) un codage correcteur des erreurs (aussi appelé codage de canal) permettant de protéger de façon sélective les informations les plus sensibles aux erreurs de transmission. Un procédé et un système de codage assurant une telle protection sont par exemple décrits dans le brevet des Etats Unis d'Amérique n04 555 729. L'utilisation récente, dans les codeurs de source, de codes à longueur variable qui améliorent encore les performances de ces codeurs, conduit à une nouvelle diminution de la redondance des informations. De ce fait, lesdites informations sont encore plus vulnérables vis-à-vis des erreurs de transmission. D'autre part, un codage à longueur variable conduit à allouer à des blocs d'informations de mêmes dimensions un nombre de bits variable en fonction de l'information contenue dans chacun des blocs. Dans ce cas, la présence d'erreurs de transmission peut faire perdre la bonne segmentation des mots de codage correspondant à un bloc, ou même faire perdre la synchronisation entre blocs, ce qui entraîne l'apparition de motifs faux ainsi que des décalages spatiaux dans l'image. Ces défauts sont difficiles à corriger avec les techniques actuelles de correction d'erreurs, dans la mesure où, avec un codage à longueur variable, les positions des informations importantes dans la séquence binaire ne sont pas connues. Une erreur sur les bits de poids fort de la composante continue, par exemple, est bien plus perceptible qu'une erreur sur les derniers bits d'un bloc d'informations. Mais, en raison des longueurs variables des séquences (ou mots) de codage, les techniques actuelles s'avèrent impuissantes à corriger ce type d'erreur de façon adaptée. Un but de l'invention est de proposer un système de codage de signaux numériques remédiant aux défauts ci-dessus mentionnés lorsqu'on veut protéger de façon sélective des informations qui ont préalablement subi un codage à longueur variable. A cet effet, l'invention concerne un système de codage caractérisé en ce que, dans le cas où le codeur de source est une chaîne de codage à longueur variable comprenant notamment un circuit de régulation de débit, le codeur de canal comprend : (A) un étage de codage de longueurs de blocs, prévu pour déterminer une longueur cumulée de mots de code le long d'un bloc issus dudit codeur de source et assurer le codage des longueurs de blocs ainsi déterminées (B) un étage de protection sélective desdits blocs d'informations (C) un étage de multiplexage des signaux issus desdits étages de codage de longueurs et de protection sélective. La structure ainsi proposée apporte une solution efficace aux problèmes mentionnés. En effet, d'une part une bonne synchronisation entre blocs est rétablie, même pour des taux d'erreurs assez critiques, d'autre part la longueur des mots de code correcteurs est adaptable à la longueur des blocs, la redondance ajoutée étant variable grâce à la présence de moyens de régulation de débit. Par ailleurs, ces bonnes performances sont obtenues avec une complexité de structure qui reste très raisonnable, d'autant plus qu'un sous-ensemble de régulation unique peut être adopté pour le codeur de source et le codeur de canal. Les particularités et avantages de l'invention apparaîtront maintenant de façon plus précise dans la description qui suit et dans les dessins annexés, donnés à titre d'exemples non limitatifs et dans lesquels - la figure 1 est un schéma de principe montrant, dans une chaine de transmission de signaux numériques, les combinaisons codeur de source/codeur de canal et décodeur de canal/décodeur de source - la figure 2 montre les circuits essentiels du système de codage selon l'invention - les figures 3 et 4 montrent respectivement un exemple de réalisation de l'étage de codage de longueurs et de l'étage de protection sélective du système de codage de la figure 2. Comme on l'a vu plus haut, une technique connue de protection contre les erreurs de transmission consiste à associer à un codeur de source un codeur de canal. Cette technique est schématisée sur la figure 1 qui comprend d'une part un codeur de source 1 et, entre celui-ci et un canal de transmis sion 3, un codeur de canal 2. De façon symétrique, on trouve en sortie du canal 3 un décodeur de canal 4 puis un décodeur de source 5. Dans la présente description, on considèrera exclusivement tout ce qui concerne l'ensemble de codage situé en amont du canal 3, c'est-à-dire l'ensemble constitué par le codeur de source 1 et le codeur de canal 2. Le système de codage selon l'invention est représenté sur la figure 2 et comprend les éléments suivants, à savoir une chaîne 10 de codage à longueur variable, qui constitue le codeur de source, et un codeur de canal 20, comprenant ici un étage 100 de codage de longueurs cumulées des mots de code d'un bloc (on rendra la description plus concise en parlant de longueurs de blocs) issus de la chaîne de codage 10, un étage 200 de protection sélective des blocs d'informations issus de la chaîne de codage 10, et un étage 300 de multiplexage des signaux issus desdits étages 100 et 200 de codage de longueurs et de protection sélective. On précisera qu'on entend ici, par blocs d'informations, des sous-ensembles de signaux de mêmes dimensions, résultant d'une subdivision des lots d'informations (par exemple des images dans le cas de télévision) considérés initialement et dont on veut assurer le codage puis la transmission et/ou le stockage. On rappellera également qu'une chaîne de codage à longueur variable comprend essentiellement, de façon classique, un circuit de transformation orthogonale et quantification, un circuit de codage à longueur variable, et un circuit de régulation de débit incluant une mémoiretampon. En outre les blocs d'informations subissant ladite transformation orthogonale peuvent, par des opérations de comparaison à des seuils, être classés selon leur plus ou moins grande activité (liée aux contours, aux contrastes, à la plus ou moins grande uniformité des blocs), et un signal C exprimant cette classification est alors émis par le circuit de transformation orthogonale et quantification, et transmis. De même, le circuit de régulation de débit comprend une boucle de rétroaction véhiculant un signal de normalisation N, et ce signal N doit être également transmis. Les signaux C et N seront en effet utiles, côté réception, pour réaliser les opérations inverses de celles prévues à l'émission, en vue de la reconstruction des blocs et de la reconstitution de lots d'informations similaires aux lots d'informations initiaux. L'étage 100 de codage de longueurs de blocs est représenté sur la figure 3 dans un mode particulier de réalisation. Cet étage 100 comprend tout d'abord un circuit de comptage de bits 101 et un circuit de comptage de blocs 102. Le nombre de bits correspondant à un bloc est compté par le circuit 101, tandis qu'un signal EOB de fin de bloc est fourni par le circuit de transformation orthogonale et quantification de la chaîne 10 au circuit de comptage de blocs 102 dont le contenu augmente d'une unité à chaque réception de signal EOB. La longueur de bloc déterminée par le circuit 101 est alors stockée dans une mémoire 103, et le circuit de comptage 101, remis à zéro par commande du signal EOB (connexion RS1), est disponible pour un nouveau comptage de longueur de bloc. Dans la réalisation décrite, c'est aussi le signal EOB qui commande l'écriture en mémoire 103 (connexion WR). Un circuit de décision 104 détermine, ici par comparaison à un nombre préenregistré, à partir de quel nombre de blocs -et donc de longueurs déterminées- la mémoire 103 peut être lue. Ce circuit 104, qui est ici un comparateur, est placé en sortie du circuit de comptage de blocs 102 et délivre (connexion RD) un signal de commande de lecture de la mémoire 103 au moment où le contenu du circuit 102 (le nombre de blocs dont on a déterminé les longueurs) est égal au nombre préenregistré. Ce signal de commande de lecture est aussi renvoyé vers le circuit 102 pour sa remise à zéro (connexion RS2). Dans la réalisation ici décrite, le nombre préenregistré est égal à 4, et la lecture de la mémoire 103 intervient donc lorsque quatre longueurs ont été déterminées et successivement mémorisées.Les circuits 101 et 103 constituent donc, dans l'étage 100, un exemple de moyens de détermination de la longueur de chaque bloc après le codage à longueur variable, et les circuits 102 et 104 un exemple de moyens de comptage du nombre de blocs dont on a déterminé la longueur. Les quatre longueurs de blocs, qui représentent ici au maximum 40 bits d'information lorsque le circuit de comptage de bits 101 est un compteur 10 bits, sont fournies en séquence à un circuit de codage 105. Dans la réalisation décrite, ce circuit 105 est un codeur binaire linéaire systématique, dit codeur "en bloc*, choisi pour son aptitude à corriger y erreurs pour x informations reçues. Dans le cas présent, le nombre x de bits reçus fournis par la mémoire 103 au circuit de codage 105 est, on l'a vu, au plus égal à 40, et le nombre maximal d'erreurs que l'on veut corriger pour un tel nombre d'informations reçues est égal à 2. Le code binaire alors choisi est noté C(52, 40), 40 représentant ledit nombre maximal de bits reçus et les 12 bits restants étant des bits de parité.La sortie du circuit de codage 105 constitue celle de l'étage 100 de codage des longueurs de blocs. L'étage 200 de protection sélective des blocs d'informations est représenté sur la figure 4 dans un mode particulier de réalisation. Cet étage 200 comprend ici tout d'abord une mémoire 201 constituant un circuit de classement de bits suivant la sensibilité de ces derniers aux erreurs provoquées par le canal de transmission. Pour les mots de code résultant, comme ici, d'un codage à longueur variable, cette sensibilité est déterminée à partir d'analyses statistiques préalables, dont les résultats sont groupés dans une table associée à la mémoire 201.Les bits délivrés par la chaîne 10 de codage à longueur variable sont stockés dans la mémoire 201 et ensuite relus suivant une séquence d'adresses contenues dans la table, en vue d'une remise en ordre de ces bits (en général par ordre de sensibilité décroissante) avant que ceux-ci ne soient fournis à un circuit de codage sélectif en fonction dudit classement. Dans la réalisation ici décrite, ce circuit de codage sélectif est un codeur 202 dit Blokh Zyablov, choisi pour son aptitude à permettre plusieurs niveaux de codage selon le classement des bits précédemment effectué. Dans tous les cas, ce codeur 202 est capable de coder au plus K bits. Si la longueur L d'un bloc d'informations est inférieure à cette capacité de codage K, les (K-L) bits non utilisés donnent lieu à une mise à zéro dans la chaîne d'informations de longueur K traitée par le codeur Blokh-Zyablov 202. Si au contraire la longueur L est supérieure à la capacité K, seuls K bits sont codés. Les (L-K) bits restants ne sont pas codés et sont ultérieurement multiplexés avec les mots de code délivrés par le codeur Blokh-Zyablov, dans l'étage de multiplexage 300. Dans le cas présent, on a choisi de disposer par exemple de quatre niveaux de codage, c'est-à-dire d'une protection sélective à quatre niveaux. Le procédé de codage mis en oeuvre dans le codeur 202 est le suivant. Soit ki (avec i = 1 à 4) le nombre de bits pour chacun des quatre niveaux de codage ici retenus, dans le cas d'un bloc de longueur K, ces nombres k1, k2, k3, k4 étant donc associés respectivement à chacun des quatre niveaux. On ajoute alors à chacun des ki bits un nombre mi correspondant de bits de parité lié justement au degré de protection recherché pour chaque niveau.Dans l'exemple ici décrit, on a choisi m1 = 14, m2 = 2, m3 = 2, m4 = 1, le choix des couples (mi, ki) devant permettre le rangement des mots de code ainsi constitués dans une mémoire à I lignes et J colonnes (avec I = imax = 4 et J = n/I colonnes, n étant un entier proche de la longueur moyenne des blocs) avec une disposition qui est donc la suivante, en appelant M la matrice (I, J) correspondant au contenu de cette mémoire (..... m1 ...) (..........k1.........) (..... m2 ...) (..........k2 ........) M = (....m3...) (.............. k3 ...............) (...m4...) (.............k4............) Pour le codeur ici décrit, à quatre niveaux de protection, les quatre mots de code sont alors obtenus en multipliant par cette matrice M la transposée Gt de la matrice G suivante ce qui donne (................. ligne 1 ...........0) C = GtM = ( m2. ...) (....... k2.........) ( m3....) ( k3 ) (..... m4....) ( k4 Comme on le constate, du fait de la structure de la matrice G qui ne diffère de la matrice unité que par le contenu de sa première colonne, le mot de code produit par bloc (constitué par la succession C1 à C4 des quatre lignes de la matrice C ci-dessus) est quasi-systématique puisque la multiplication matricielle effectuée a conduit, pour la ligne 1 non portée en détail par souci de simplification, à une combinaison linéaire de bits masquant une partie des bits initiaux et réalisant donc une perte de ces bits d'information. Cependant, on retrouve quand même une partie des bits d'information dans les lignes suivantes, ce qui facilite le processus de raccourcissement.Le codeur Blokh-Zyablov 202 est en effet suivi d'un circuit de raccourcissement 203, qui permet de supprimer éventuellement les (K-L) bits mis à zéro, et la sortie de ce circuit 203, qui constitue celle de l'étage 200, est envoyée vers l'étage de multiplexage 300. Dans le cas où les longueurs de bloc sont inférieures ou égales à la capacité de codage K, tous les bits reçus par le codeur 202 sont codés. Lorsqu'au contraire ces longueurs sont supérieures à K, l'étage 300 assure le multiplexage non seulement des signaux issus des étages de codage de longueurs et de protection sélective, mais aussi des (L-K) bits excédentaires qui n'ont pas pu être codés par le codeur 202. Le multiplexage est réalisé, dans l'un ou l'autre cas, par un multiplexeur 301, et ce dernier est suivi d'une mémoire-tampon 302 prévue pour assurer la régulation du débit des signaux de sortie du système de codage, c'est-à-dire ici des signaux de sortie du multiplexeur 301. Bien entendu, il est possible de regrouper les moyens de régulation de débit du présent système de codage et le circuit de régulation de débit de la chaîne 10 de codage à longueur variable en un unique sous-ensemble de régulation de débit. REVENDICATIONS 1. Système de codage de signaux numériques agencés en blocs d'informations, ledit système comprenant un codeur de source suivi d'un codeur de canal de transmission, caractérisé en ce que, dans le cas où le codeur de source est une chaîne de codage à longueur variable comprenant notamment un circuit de régulation de débit, le codeur de canal comprend (A) un étage de codage de longueurs de blocs1 prévu pour déterminer le long d'un bloc une longueur cumulée de mots de code issus dudit codeur de source et assurer le codage des longueurs de blocs ainsi déterminées (B) un étage de protection sélective desdits blocs d'informations (C) un étage de multiplexage des signaux issus desdits étages de codage de longueurs et de protection sélective. 2. Système de codage selon la revendication 1, caractérisé en ce que l'étage de codage de longueurs comprend (A) des moyens de détermination de la longueur de chaque bloc d'informations après le codage à longueur variable, comprenant eux-mêmes (a) un circuit de comptage de bits, prévu pour recevoir les signaux codés à longueur variable délivrés par le codeur de source en association à chaque bloc et compter le nombre de bits de tels signaux pour chaque bloc (b) une mémoire de stockage de la sortie dudit circuit de comptage de bits (B) des moyens de comptage du nombre de blocs dont on a déterminé la longueur, comprenant eux-mêmes (c) un circuit de comptage de blocs, prévu pour recevoir des signaux de fin de bloc également délivrés par ledit codeur de source (d) un circuit de décision, prévu pour commander la lecture de la mémoire en fonction du signal de sortie dudit circuit de comptage de blocs (C) des moyens de codage de longueurs, comprenant eux-mêmes (e) un circuit de codage, prévu pour délivrer les mots de codage des longueurs desdits blocs d'information. 3. Système de codage selon la revendication 2, caractérisé en ce que (A) le circuit de décision est un comparateur du nombre de blocs dont on détermine la longueur à un nombre préenregistré (B) le circuit de codage est un codeur binaire linéaire systématique. 4. Système de codage selon la revendication 3, caractérisé en ce que le circuit de comptage de bits est un compteur 10 bits, et en ce que le nombre préenregistré est égal à 4. 5. Système de codage selon la revendication 4, caractérisé en ce que le codeur binaire linéaire systématique est un codeur C (52,40), à mots de code de 40 bits maximum et 12 bits de parité. 6. Système de codage selon l'une des revendications 1 à 5, caractérisé en ce que l'étage de protection sélective de blocs d'informations comprend (A) des moyens de classement de bits suivant leur sensibilité aux erreurs de transmission (B) des moyens de codage sélectif en fonction dudit classement (C) des moyens de raccourcissement des mots de code résultant dudit codage sélectif. 7. Système de codage selon la revendication 6, caractérisé en ce que (A) les moyens de classement de bits suivant leur sensibilité aux erreurs de transmission comprennent (a) une mémoire, prévue pour recevoir, dans une première zone de mémoire, les signaux codés à longueur variable issus du codeur de source et, dans une deuxième zone de mémoire, pour l'adressage de ladite première zone de mémoire, le rang desdits signaux codés, et délivrer lesdits signaux codés dans un ordre modifié en fonction dudit adressage (B) les moyens de codage sélectif en fonction dudit classement comprennent (b) un codeur dit de Blokh-Zyablov (C) les moyens de raccourcissement des mots de codage sélectif comprennent des moyens de suppression de bits. 8. Système de codage selon la revendication 7, caractérisé en ce que, lorsque la longueur L du bloc considéré est inférieure ou égale à la capacité de codage K dudit étage de protection sélective, l'étage de multiplexage comprend (A) des moyens de multiplexage des signaux de sortie dudit étage de codage de longueurs des blocs et dudit étage de protection sélective des blocs (B) des moyens de régulation du débit des signaux de sortie desdits moyens de multiplexage et en ce que, lorsque ladite longueur L est supérieure à K, lesdits moyens de multiplexage sont prévus pour assurer également le multiplexage desdits L-K bits non codés. 9. Système de codage selon la revendication 8, caractérisé en ce que le codeur de Blokh-Zyablov est à quatre niveaux de protection sélective et comprend une mémoire matricielle à quatre lignes et n/4 colonnes, n étant un entier proche de la longueur moyenne des blocs d'information issus du codeur de source. 10. Système de codage selon l'une des revendications 8 et 9, caractérisé en ce que les moyens de régulation de débit comprennent une mémoire-tampon prévue pour délivrer d'une part des signaux de régulation de débit renvoyés vers le codeur de canal et d'autre part les signaux de sortie dudit système de codage. 11. Système de codage selon l'une des revendications 8 à 10, caractérisé en ce que lesdits moyens de régulation de débit et le circuit de régulation de débit de la chaîne de codage à longueur variable sont regroupés en un seul sousensemble de régulation de débit.