Brevet FR2698233A1 — publié le 19940520

"DISPOSITIF DE TRAITEMENT DE SIGNAUX NUMERIQUES PREALABLEMENT CODES PAR CODAGE A LONGUEUR VARIABLE" Description La présente invention concerne un dispositif de traitement, en vue d'une transmission et/ou d'un stockage, de signaux numériques correspondant à une séquence d'images et préalablement codés, au moins en partie, selon un codage à longueur variable, lesdits signaux étant organisés en blocs d'image et constitués de types de données pouvant être ordonnés selon une hiérarchie déterminée. Cette invention trouve une application par exemple dans le domaine de la transmission d'images animées, et notamment d'images de télévision. Une norme dite standard MPEG1 a été récemment adoptée pour le stockage d'images numériques animées. Ce standard définit un procédé de codage très efficace pour l'enregistrement d'images au format dit CIF (en anglais, Common Intermediate Format, 288 lignes x 352 points/ligne, 25 Hz, 1:1), mais également utilisable pour n'importe quel format d'image. Les méthodes de codage compatibles avec ledit standard permettent par exemple de comprimer un signal de télévision numérique de 160 Mbits/s à 5 Mbits/s, c'est-à-dire dans un rapport de 32/1, tout en préservant une qualité d'image très satisfaisante. Des recherches essaient actuellement d'établir si ce standard peut être aussi utilisé pour la transmission d'images, et, par exemple et principalement, pour la transmission d'images de télévision. Malheureusement, la réponse semble pour le moment négative, du fait de la technique de codage à longueur variable utilisée par le standard MPEG1 (dite VLC, de l'anglais Variable Length Coding) et qui, associée à une transformation orthogonale préalable dite transformation cosinus discrète (notée DCT, de l'anglais Discrete Cosinus Transform) et rappelée plus loin, permet de réduire la redondance spatiale de l'image.En effet, lorsqu'une erreur de transmission affecte un bit du flot de données numériques obtenu après le codage VLC, le décodeur reçoit un mot de code dont la longueur lui paraît différente de celle du code émis, qu'il ne connaît pas, et il n'a plus de repère temporel pour situer le début du mot de code suivant. I1 en résulte que ce mot de code suivant est décodé de façon erronée, et de même pour les suivants : il y a propagation de l'erreur. Toutes les données décodées postérieures à l'emplacement de la première erreur sont fausses tant qu'un nouveau point de repère constitué par un mot de synchronisation n'est pas apparu. Comme ces derniers ne sont pas très nombreux (par exemple, un toutes les seize lignes d'image), même un très faible taux d'erreurs conduit, par propagation d'erreur, à des défauts image inacceptables. Il existe, certes, des techniques de réduction du taux d'erreur à des valeurs très faibles, faisant appel à des codes correcteurs d'erreur très puissants, mais ces techniques augmentent la redondance des signaux, ce qui va à l'encontre de l'objectif justement réalisé par MPEG1. Une autre technique qui, au lieu de corriger la ou les erreurs, permet d'en limiter la propagation, est décrite dans le brevet des Etats-Unis d'Amérique USP-4907101. La solution proposée dans ce document consiste, partant du fait que chaque bloc codé contient un nombre variable de mots de code de longueur différentes, à définir un paquet (ou boite) de capacité déterminée égale à la longueur moyenne B des blocs entre deux mots de synchronisation successifs (c'est-à-dire dans une tranche d'image), et à transmettre au moins les premiers bits d'un bloc dans ce paquet. Si un bloc est plus court que ce paquet, il reste dans ce paquet de la place disponible. Si au contraire un bloc est plus long que le paquet, les bits excédentaires sont placés dans ces emplacements laissés disponibles par les blocs courts.Ainsi les paquets de bits transmis sont tous de longueur égale (sauf éventuellement le dernier, car le nombre total de bits d'une tranche n'est en général pas égal à un multiple du nombre de blocs) et le repérage des débuts de blocs au décodage ne pose plus aucun problème. Même si l'un ou plusieurs de ces blocs sont affectés d'erreurs de transmission, il ne peut plus y avoir de propagation de ces erreurs. Malheureusement, cette technique, qui s' avère appropriée pour la majeure partie des informations de bloc, n'est plus satisfaisante lorsqu'on veut l'appliquer aux autres informations présentes dans le flot de données MPEG1. On verra en effet plus loin que toutes ces autres informations ont, pour la qualité de l'image, une importance supérieure à celle des informations du bloc, et leur perte peut empêcher tout décodage à la réception. En outre, ces autres informations sont, pour la plupart d'entre elles, codées de manière différentielle, c'està-dire en utilisant ici une technique dite de prédiction à partir des informations similaires présentes dans les blocs précédents (par codage de la différence entre l'information précédente et l'information courante), et toute erreur dans un bloc finit par se propager du fait de cet appel aux informations précédentes. Le but de l'invention est donc de proposer un dispositif de posttraitement de signaux numériques qui sont de natures différentes et donc d'importance variable, dans lequel il soit possible de limiter la propagation des erreurs malgré l'existence du codage préalable à longueur variable de ces signaux sans pour autant accroître le degré de redondance des informations contenues dans ces signaux. A cet effet, l'invention concerne un dispositif tel que défini dans le préambule de la description et qui est en outre caractérisé en ce qu'il comprend (1) une mémoire adressable de stockage du flot de bits provenant dudit codage à longueur variable (2) un circuit de comptage recevant également ledit flot de bits en vue de la détermination et du stockage du nombre de bits correspondant dans ce flot à chaque type de données, et ce pour au moins une tranche d'image, une tranche étant définie comme tout sous-ensemble de blocs qui est précédé d'un signal de synchronisation (3) en sortie de ce circuit de comptage, un circuit d'affectation, à chacune desdites tranches et selon une proportion déterminée à respecter globalement dans une image ou dans un groupe d'images, du nombre de bits à transmettre d'une part dans une voie HP dite de haute priorité et d'autre part dans une voie LP dite de basse priorité, ces deux nombres de bits étant appelés allocations HP et LP respectivement (4) en sortie desdits circuits, un circuit de commande de redistribution des bits dudit flot, pour chacune desdites tranches et selon le processus suivant (a) en fonction de la valeur de l'allocation HP, affectation à ladite voie HP, dans l'ordre hiérarchique décroissant, de toutes celles des données qui y tiennent entièrement (b) en fonction de la valeur de l'allocation LP, affectation à ladite voie LP, dans l'ordre hiérarchique croissant, de toutes celles des données qui y tiennent entièrement (c) pour les données ainsi affectées, calcul, en nombre de bits et sur l'ensemble des blocs de la tranche concernée, de la longueur moyenne par bloc (d) pour le type de données ne pouvant pas être affecté exclusivement à l'une ou à l'autre des voies HP et LP, affectation à la voie HP de celles de ces données qui y tiennent, par égale répartition dans les tranches, puis affectation complémentaire des données résiduelles à la voie LP (e) pour ce type de données réparties entre les voies HP et LP, calcul similaire de la longueur moyenne par bloc, pour chacune des deux voies lesdites valeurs d'affectation et lesdites longueurs moyennes étant fournies à la mémoire adressable pour une lecture de celle-ci conformément audit processus de redistribution par voie et, pour chaque voie, par paquets de données de même nature constituant des boîtes de longueur égale auxdites longueurs moyennes respectivement. Le dispositif ainsi proposé parvient à concilier les situations contradictoires suivantes. D'une part la séquence des signaux ici concernés contient diverses informations dont certaines sont plus importantes que d'autres et sur lesquelles les erreurs relatives à leur identification ont des conséquences plus graves en matière de propagation d'erreurs de transmission, ce qui justifierait de les coder et traiter de façon plus soignée que les autres informations. Mais d'autre part un décodage de données est réalisé de façon d'autant plus sûre que le repérage des positions des diverses informations dans les signaux codés est plus simple.La solution technique ici retenue pour la transmission et/ou le stockage recherchés assure la répartition des données hiérarchiques, quelles que soient leurs proportions respectives souvent très variables, d'une manière effectivement très sûre en matière de restitution ultérieure des positions desdites informations. La demande de brevet internationale WO-91/02430 décrit un système de traitement de signaux numériques codés à longueur variable dans lesquels sont présentes des informations d'importances distinctes. Il n'est cependant jamais envisagé, dans ce document, de traitement tirant le moindre parti de cette spécificité des informations. Simplement, en rompant l'appartenance initiale de ces données à des blocs de données successifs, elles sont, pour une série de blocs constituant alors des superblocs, regroupées par type de données avant d'appliquer à la nouvelle disposition ainsi constituée un principe de base identique à celui décrit dans le document USP-4907101.Le décodage ultérieur voit alors sa complexité sensiblement accrue sans qu'il en résulte, au cours de ce décodage, de garantie particulière quant à la sécurité de restitution de celles des ces données qui sont éventuellement prioritaires parce que plus importantes, pour la qualité d'image finale dans le cadre de l'application mentionnée plus haut. Dans une réalisation plus complète du dispositif telle que défini, il est prévu, selon l'invention, de considérer les restes éventuels des divisions réalisées pour les calculs de longueurs moyennes par bloc et pour chacune des deux voies HP et LP. Pour cela, le processus de redistribution mis en oeuvre dans le circuit de commande de redistribution de bits comprend également, pour l'ensemble des bits excédentaires regroupant ces restes, une étape similaire de calcul de longueur moyenne par bloc et par voie. Enfin la capacité de la mémoire adressable est de préférence égale à celle de l'image ou du groupe d'images dans lequel, ou laquelle, doit être respectée ladite proportion globale déterminée, mais, dans une variante un peu plus simple permettant de réduire la taille mémoire, on peut reprendre comme valeurs de comptages celles déterminées pour l'image ou pour le groupe d'images précédent. Les particularités et avantages de l'invention apparaîtront maintenant de façon plus détaillée dans la description qui suit et dans les dessins annexés, donnés à titre d'exemples non limitatifs et dans lesquels - la figure 1 illustre un balayage dit en zig-zag des coefficients issus de la transformation DCT appliquée à un bloc de 8 x 8 points d'image - la figure 2 montre un exemple d'une séquence d'images différentes selon le mode de codage adopté pour chacune d'elles, ces codages étant le codage intra, noté I, le codage prédictif monodirectionnel, noté P, et le codage bidirectionnel, noté B - la figure 3 montre un exemple de réalisation du dispositif de traitement selon l'invention. Avant de décrire cet exemple de réalisation d'un dispositif selon l'invention, il faut préciser qu'il est adapté au posttraitement de données de type MPEG, et il paraît donc nécessaire de rappeler les caractéristiques d'un flot de données conforme à ce standard. Une séquence numérique d'images animées comprend des informations relatives à la composante de luminance Y, ainsi que des informations relatives aux composantes de la chrominance, ou signaux de différence de couleur U et V. Les niveaux de gris, pour la luminance Y, et les niveaux de couleur, pour les signaux U et V, sont exprimés par des mots numériques de 8 bits regroupés en matrices. Selon le standard MPEG1, le format d'entrée est tel que la chrominance subit un sous-échantillonnage par quatre, par rapport à la luminance. De ce fait, on dispose de deux valeurs liées à la couleur (l'une pour U, 1' autre pour V) pour quatre valeurs de luminance.Comme les matrices de mots sont divisées en blocs de 8 x 8 points d' image, quatre blocs adjacents de la matrice Y correspondent à un bloc de la matrice U et à un bloc de la matrice V, et ces six blocs, réunis, constituent un macrobloc (MB). Ces blocs et macroblocs sont les unités de subdivision d'image sur lesquelles est effectué le codage. Enfin, une série de macroblocs constitue une tranche, et chaque image est composée d'un certain nombre de tranches, par exemple 36 dans l'exemple ici décrit. Les images sont elles-mêmes de trois types, suivant le mode de codage qui leur est appliqué : les images I, dites intra, qui sont codées indépendamment de toute autre image, les images P, prédites par compensation de mouvement unidirectionnelle à partir des images précédentes (de type I, ou de type P elles-mêmes), et les images B, prédites par compensation de mouvement bidirectionnelle à partir d'une image antérieure et d'une image postérieure (elles-mêmes de type I et/ou P). Plusieurs images associées constituent un groupe d'images (GOP, de l'anglais Group of Pictures), dans lequel, pour la transmission, les images sont placées dans l'ordre dans lequel le décodeur en aura besoin pour décoder les images I, P, B, leur réorganisation dans leur ordre naturel n' intervenant qu'après le décodage. A leur tour, plusieurs groupes d'images constituent une séquence ou ensemble d'images. Un point d'une image présente en général des similitudes avec son voisinage, avec les points d'image qui l'entourent. Cette redondance spatiale peut être réduite, en vue de la transmission et/ou du stockage, en exploitant les propriétés statistiques des images dans le-domaine fréquentiel, à l'aide des deux techniques désormais classiques citées plus haut, utilisées conjointement, à savoir la transformation cosinus discrète DCT et le codage à longueur variable VLC. La transformation DCT convertit chaque bloc de points d'image en un bloc de coefficients dont le premier, le coefficient direct (DC), représente la valeur moyenne des niveaux de gris sur l'ensemble du bloc et dont les autres, les coefficients alternatifs (AC), représentent successivement les différentes fréquences d'image croissantes présentes dans le bloc.Ces coefficients sont quantifiés, avec un pas de quantification qui conditionnera au décodage la précision de leur reconstitution (les hautes fréquences sont moins perceptibles par l'oeil humain, ce qui autorise un pas de quantification plus grand), puis lus selon un balayage déterminé, en général, un balayage dit en zig-zag. La figure 1 illustre cet exemple de mode de balayage : à chacun des coefficients (64 dans un bloc de 8 x 8 points d'image) est attribué un numéro correspondant à l'ordre dans lequel les coefficients seront codés (ici O pour le coefficient direct DC et 1 à 63 pour les coefficients AC). Cet ordre des coefficients correspond, de fait, à leur importance selon un critère psychovisuel lié aux fréquences spatiales dans le bloc.Le premier coefficient, en position 0, correspond à une structure de bloc uniforme, et les coefficients des lignes et des colonnes correspondent respectivement à des fréquences spatiales horizontales croissantes et à des fréquences spatiales verticales croissantes, la sensibilité de l'oeil humain décroissant lorsque la fréquence spatiale des structures présentes dans l'image s'accroît. Cette lecture des coefficients, dans le sens des flèches indiquées sur la figure 1, est suivie du codage VLC qui utilise les mots de code les plus courts pour les symboles à coder les plus fréquents et les mots de code les plus longs pour les symboles les moins fréquents (et conduit ainsi à une longueur moyenne de mot de code inférieure à ce qu'elle serait avec une technique de codage à longueur fixe). A l'intérieur d'une séquence, une image présente elle aussi, souvent, des similitudes avec les images qui 1' entourent. Cette redondance temporelle autorise à utiliser une image pour en prédire une autre, la première étant, comme on l'a vu plus haut, codée normalement (image intra I), c'està-dire indépendamment de toute autre image, mais ensuite seule la différence entre les points d'image de l'une et de l'autre étant codée (images prédites P ou B). Le choix entre les différents types de prédiction possibles est effectué sur la base du résultat d'une estimation de mouvement des objets contenus dans les images, effectuée elle-même au niveau des macroblocs : on dispose donc, alors, de macroblocs dits intra (car codés de façon autonome) ou de macroblocs prédits.Une image intra I ne contient que des macroblocs intra et permet un décodage autonome, sans référence à d'autres images de la séquence. Une image prédite de type P ne contient que des macroblocs intra ou des macroblocs prédits à partir d'informations contenues dans une image antérieure (macroblocs P). Une image prédite de type B contient n'importe quel type de macroblocs (intra, ou prédits à partir d'une image antérieure ou d'une image postérieure, ou prédits à l'aide d'une interpolation bidirectionnelle entre une image antérieure et une image postérieure). La figure 2 donne un exemple d'une succession d'images codées de type I, P, B telles qu'affichées (l'ordre de transmission étant différent de l'ordre d'affichage représenté sous ces images, pour permettre le décodage des images P nécessaires au décodage des images B qui les précèdent dans l'ordre d'affichage).La prédiction est effectuée ellemême par exemple par recherche de la corrélation entre le bloc de l'image courante et l'un des blocs présents dans une fenêtre de recherche définie dans l'image de référence antérieure et/ou postérieure associée à cette image courante, le bloc retenu dans ladite image de référence étant celui qui donne la meilleure corrélation. Les flèches, sur la figure 2, indiquent à partir de quelle(s) image(s) une image P ou B est prédite. Un flot de données MPEG comprend donc six niveaux d'informations, chaque niveau englobant le niveau inférieur et quelques informations additionnelles. Au niveau le plus élevé correspond la séquence d'images, qui commence par un en-tête (header, en anglais) comprenant les informations nécessaires au décodage de la séquence (code de départ de séquence, format, cadence d'image, cadence des bits, taille de mémoire, matrices de quantification) et se termine par un code de fin de séquence. Au niveau inférieur, le groupe d'images GOP comprend un nombre quelconque d'images, dont au moins une image I. Bien que ce ne soit pas indispensable, chaque GOP peut être autonome (il commence par une image I et se termine par une image I ou P) et peut être décodé indépendamment de toute image antérieure ou postérieure à lui. En outre, la succession des images I, P, B est souvent périodique, comme dans le cas de l'exemple de la figure 2, mais ce n'est là non plus pas indispensable. Chaque GOP contient un en-tête suivi d'un certain nombre d'images. Cet en-tête marque le début du GOP et contient des informations additionnelles : code de départ de GOP, durée de la première image affichée du GOP, indicateur de codage autonome du GOP, etc... On a vu plus haut que l'ordre de transmission des images d'un GOP n'est en général pas l'ordre naturel des images avant codage ou après décodage. Le niveau encore inférieur, qui correspond à l'image, inclut un en-tête d'image suivi d'un nombre déterminé de tranches d'image. Là encore, l'en-tête marque le début de l'image et contient des informations additionnelles : code de départ de l'image, référence temporelle de l'image, type de l'image (I, P, B), et autres codes ou indicateurs. Le niveau encore inférieur correspond à la tranche d'image et inclut un en-tête de tranche suivi d'un certain nombre de macroblocs. L'en-tête marque le début de la tranche et contient des informations additionnelles : code de départ de la tranche, pas de quantification des coefficients DCT, etc... Seuls les quatre niveaux supérieurs qui viennent d'être énumérés contiennent des données de synchronisation. Cette synchronisation est assurée à chaque fois par un code de départ, ici d'une longueur de 32 bits, comprenant d'une part le mot de synchronisation lui-même (24 bits) et d'autre part huit bits indicateurs du niveau (séquence, GOP, image, tranche). Chaque mot de synchronisation est unique pour éliminer tout risque de confusion lors du décodage. Au niveau inférieur suivant, on trouve un en-tête de macrobloc suivi d'un certain nombre de blocs, ici 6 au maximum (il y a normalement six blocs, comme on l'a vu, mais tout bloc dont les coefficients sont tous nuls n'est pas transmis). Cet en-tête contient lui aussi quelques informations additionnelles telles que l'adresse du macrobloc (pour connaître sa position), son type (pour indiquer son mode de codage : intra, prédiction monodirectionnelle, prédiction bidirectionnelle), facteur de quantification, existence ou non d'un vecteur de mouvement associé, indication de ceux des blocs qui sont codés dans le macrobloc, etc... Le dernier niveau est celui des blocs, qui représentent ici des sections de 8 x 8 points d'image de la matrice de luminance ou des matrices de chrominance. Chaque bloc, on l'a vu, subit une transformation DCT qui le convertit en un bloc de coefficients (coefficient DC et coefficients ACs). Comme les macroblocs, les blocs sont, selon leur mode de codage, de type intra (et ils commencent alors toujours par un coefficient DC) ou bien prédits (et dans ce cas, ils comprennent au moins un coefficient AC non nul, sinon ils ne sont pas codés). Le codage des coefficients eux-mêmes est différent pour les DCs et pour les ACs.Pour les coefficients DC, le mot de code traduit la différence entre le DC du bloc courant et le DC du précédent bloc codé (ce précédent coefficient de bloc DC étant donc utilisé à des fins de prédiction, aussi bien dans le cas de la luminance que dans celui de la chrominance). Pour les ACs, il n'y a pas de codage différentiel, le mot de code comprend systématiquement une plage de zéros de longueur variable, suivie de la valeur absolue du premier coefficient non nul, puis du bit de signe de ce coefficient. Chaque bloc se termine par un code de fin de bloc qui prend place dès que tous les coefficients suivants sont nuls. Ces rappels relatifs à MPEG1 étant effectués, la description de l'invention proprement dite peut être entreprise. L'étude précédente a souligné que certaines données MPEG1 étaient plus importantes que d'autres. Par exemple, MPEG1 utilise une prédiction compensée en mouvement, et les vecteurs de mouvement décrivant le mouvement des blocs sont des informations essentielles dont la perte conduit sur l'image à des artefacts très visibles : le déplacement de macroblocs entiers. Une erreur sur les DCs entraîne, elle, un changement de couleur complet d'un bloc ou d'un macrobloc. Les vecteurs de mouvement et les DCs, codés de façon différentielle, sont en outre très sensibles à la propagation des erreurs.Enfin, du fait de la technique de prédiction temporelle entre images, des erreurs dans les images de type I ou P se répercutent dans celles de type B, tant qu'une nouvelle image I n'est pas survenue. La solution technique maintenant décrite prend en compte cette importance variable des diverses données, cette hiérarchie, et crée d'autre part deux niveaux de protection des informations ainsi classées hiérarchiquement. Cependant, avant de décrire le dispositif qui met en oeuvre cette solution, on va présenter les étapes essentielles du processus de cette mise en oeuvre. Le première de ces étapes consiste à examiner et trier les informations MPEG1 par degré d'importance décroissant: - les en-têtes - les vecteurs de mouvement - les coefficients DC - les coefficients AC. Parmi ces informations, les en-têtes, les vecteurs de mouvement et les coefficients DC suffisent, à eux seuls, pour reconstruire une image extrêmement sommaire et peu esthétique, mais cependant reconnaissable par rapport à l'image d'origine. Différents essais et tests statistiques ont montré que, dans un groupe d'images GOP, ces données n'utilisent en général pas plus de 30 % du débit global, pourcentage qui, dans la suite de la description, constituera donc la base de répartition du débit global entre un canal de transmission dit de haute priorité (noté ici HP) et un canal de transmission dit de basse priorité (noté ici LP). La deuxième étape consiste à réaliser à l'intérieur d'un groupe d'images GOP une modification locale de cette répartition de débit entre les canaux HP et LP. En effet, dans des images de type B, les vecteurs de mouvement occupent souvent plus de 50 % du débit, mais seulement 5 % environ, ou moins encore, dans des images I. Une répartition locale du débit est donc possible, tout en maintenant bien sûr la proportion moyenne égale à 30 % sur la totalité du GOP. Cette adaptation locale de la répartition, qui tente de favoriser les informations les plus importantes, est effectuée dans chaque tranche, car le débit varie énormément d'une tranche à l'autre, les tranches intra comprenant bien plus de coefficients AC, par exemple, que les tranches prédites. La mise en oeuvre de ces étapes est réalisée à l'aide du dispositif de traitement représenté sur la figure 3. Ce dispositif comprend tout d'abord un circuit de comptage 10, qui reçoit, parmi le flot de données numériques, successivement chaque groupe d'images GOP et détermine puis stocke en mémoire le nombre de bits qu'utilise chaque catégorie de données pour chaque tranche de ce GOP. Deux situations peuvent alors se présenter (a) la première d'entre elles est celle où, pour la totalité des tranches du GOP, le nombre global des bits correspondant aux en-têtes, aux vecteurs de mouvement et aux coefficients DC reste inférieur au nombre de bits qui, pour tout le GOP, correspond à l'allocation HP (on appellera ainsi par la suite le nombre de bits "haute priorité", et allocation LP le nombre de bits "basse priorité" complémentaire par rapport à la totalité des bits d'un GOP). (b) la deuxième situation, moins fréquente, est celle où ce nombre global des bits correspondant aux en-têtes, vecteurs de mouvement et coefficients DC est supérieur à l'allocation HP du GOP et où l'excédent de bits doit être incorporé à l'allocation LP et être transmis par le canal LP. La détermination effectuée par le circuit 10 est importante. En effet, l'affectation réelle des bits à transmettre au canal HP ou au canal LP est opérée différemment selon le résultat de cette détermination. Dans le cas de la situation (a) ci-dessus, la totalité des informations les plus importantes peut être transmise par le canal HP, et l'affectation HP réelle de chaque tranche est la suivante - à chaque tranche est affecté le nombre total exact de bits dont elle a besoin pour cette transmission HP des en-têtes, vecteurs de mouvement et coefficients DC - la totalité des bits ainsi alloués pour toutes les tranches est soustraite de l'allocation globale HP par GOP, et le nombre de bits résiduel ainsi obtenu (ou allocation HP résiduelle) est utilisé, conjointement avec la totalité de l'allocation globale LP par GOP, pour la transmission de tous les bits restants, qui correspondent à des coefficients AC. L'affectation HP ou LP de ces bits restants est réalisée en répartissant l'allocation HP résiduelle entre la totalité des tranches du GOP, avec cependant une priorité pour les tranches appartenant à des images intra I (car ces images I servent de base à la prédiction des images prédites P ou B et doivent donc être le moins possible touchées par des erreurs de transmission). Si l'allocation résiduelle HP est suffisante pour y affecter la totalité des bits appartenant à de telles tranches intra I et qu'il subsiste encore une allocation résiduelle HP, cette dernière est cette fois destinée aux bits des tranches appartenant à des images prédites de type P, puis, éventuellement, s'il y a encore de la place, aux bits des tranches appartenant à des images prédites de type B.Si l'allocation résiduelle HP est au contraire plus faible que la totalité des bits correspondant à des tranches I, cette allocation est répartie entre toutes lesdites tranches I, et les bits non alloués de ces tranches I reçoivent une affectation LP, de même que la totalité des bits restants. Dans le cas contraire de la situation (b), la totalité des informations les plus importantes ne peut pas être tout entière transmise par le canal HP, et la fraction excédentaire devra être transmise par le canal LP. Par souci de simplification de l'affectation, le processus de réalisation de cette affectation est ici l'inverse du précédent - à chaque tranche est affecté le nombre total exact de bits dont elle a besoin pour la transmission LP des informations les moins importantes (les coefficients AC) - la totalité des bits ainsi alloués pour toutes les tranches est soustraite de l'allocation globale LP par GOP, et le nombre de bits résiduel ainsi obtenu (ou allocation LP résiduelle) est utilisé, conjointement avec la totalité de l'allocation globale HP par GOP, pour la transmission de tous les bits restants, qui correspondent aux en-têtes, vecteurs de mouvement et coefficients DC. Là encore, l'affectation LP ou HP de ces bits restants est effectuée par une répartition de l'allocation LP résiduelle entre la totalité des tranches du GOP, avec ici une priorité pour les tranches B, puis P, qui craignent moins que les tranches I d'être touchées par des erreurs de transmission. Si l'allocation résiduelle LP est suffisante pour y affecter la totalité des bits appartenant à de telles tranches B, puis P, et qu'il subsiste encore une allocation résiduelle LP, cete dernière est destinée à des bits de tranches appartenant à des images I. Si l'allocation résiduelle LP est au contraire plus faible que la totalité des bits des tranches B et P, cette allocation est répartie entre toutes lesdites tranches B et P, et les bits non alloués de ces tranches B et P reçoivent une affectation HP, de même que la totalité des bits restants. Le circuit de comptage 10 a donc, pour résumer, permis de déterminer et mémoriser le nombre total NT(GOP) de bits correspondant à un GOP, le nombre NS(MBK) de macroblocs dans chaque tranche de ce GOP, et le nombre de bits correspondant à chaque tranche et utilisé par chaque catégorie de données : NS(HDR) pour les en-têtes de tranche, Ns(OVH) pour les vecteurs de mouvement (encore appelés en-têtes de macrobloc), NS(DCS) pour les coefficients DC, et Ns(ACS) pour les coefficients AC.Un circuit d'allocation 20, prévu en sortie du circuit 10, permet de réaliser l'ensemble des affectations de bits aux canaux HP et LP telles que décrites ci-dessus dans leur principe et de mémoriser les nombres de bits correspondant à ces affectations, par tranche : N(HHP) et N(HLP) pour les en-têtes de tranche, N(VHP) et N(VLP) pour les en-têtes de macrobloc, N(DHP) et N(DLP) pour les coefficients DC, et N(AHP) et N(ALP) pour les coefficients AC (HP et LP désignant toujours, dans ces notations, respectivement le canal HP et le canal LP). Ces nombres étant connus et mémorisés, une étape suivante consiste à opérer une redistribution de l'ordre des bits de chaque tranche du GOP. Cette redistribution est définie par un circuit de commande de brassage 30 prévu en sortie des circuits 10 et 20. Ce circuit 30 opère par tranche puis, par un rebouclage après traitement d'une tranche, permet d'opérer successivement pour toutes les tranches du GOP. Ledit traitement n'est donc décrit que pour une seule tranche. Le principe de ce traitement de brassage pour une tranche est le suivant : des paquets de transmission de longueur connue sont définis dans chacun des deux canaux HP et LP et pour chacune des informations répertoriées précédemment par ordre d'importance décroissante (en-têtes de tranche, entêtes de macroblocs, coefficients DC, coefficients AC), et, en fonction de la répartition HP-LP adoptée et des allocations réalisées par le ciruit 20, une redistribution (ou brassage) des bits de la tranche est organisée pour remplir de façon optimale ces paquets. Cette redistribution doit cependant opérer par tests préalables, compte tenu des diverses situations qui peuvent se présenter en fonction des valeurs d'allocations déterminées précédemment. Dans l'exemple de réalisation ici décrit, on distingue quatre situations particulières, qui sont successivement étudiées ci-dessous. Dans la première de ces situations, qui est en général la plus fréquente, le nombre de bits HP (= allocation HP) est supérieur à la somme des nombres de bits NS(HDR), Ns(OVH) et NS(DCS) (respectivement : en-têtes de tranche, entêtes de macrobloc, coefficients DC). On définit alors, de façon comparable à ce qui a été vu précédemment en référence au document USP-4907101 déjà cité, une boîte HP des vecteurs de mouvement, de longueur égale à la longueur moyenne desdits vecteurs de mouvement sur toute la tranche. Puis on définit, de façon autonome, une boîte HP des coefficients DC de longueur égale à la longueur moyenne desdits coefficients DC sur toute la tranche.L'allocation HP résiduelle est enfin répartie de façon égale entre les coefficients AC, ce qui définit une boîte HD des coefficients AC, de longueur égale à cette allocation HP résiduelle divisée par le nombre de blocs de la tranche. Pour les coefficients AC résiduels, la division du nombre de bits correspondant par le nombre de blocs dans la tranche définit de même une boîte LP des coefficients AC. On doit ici remarquer que les divisions permettant de calculer les longueurs des boîtes ont en général des restes, et que la longueur, en nombre de bits, de ces restes doit alors être transmise, d'une façon qui est décrite plus loin. Dans la deuxième des situations mentionnées plus haut, le nombre de bits HP, ou allocation HP, est inférieur à la somme NS(HDR) + Ns(OVH) + NS(DCS), mais reste supérieur à NS(HDR) + Ns(OVH) (en-têtes de tranche + en-têtes de macrobloc).On définit alors de même, pour chacun des types de données pouvant être affectés totalement au canal HP (les entêtes de tranche et les en-têtes de macrobloc) ou au canal LP (les coefficients AC), une longueur moyenne associée définissant une boîte de longueur fixe, puis, pour celles des données qui doivent être réparties entre ces deux canaux (les coefficients DC), d'abord la longueur moyenne associée au canal HP puis celle associée au canal LP, ces deux dernières longueurs définissant de même une boîte de longueur fixe correspondante. Dans la troisième des situations mentionnées, l'allocation HP est inférieure à la somme NS(HDR) + Ns(OVH), mais reste supérieure à NS(HDR) (en-têtes de tranche seuls). Là encore, on définit alors des longueurs moyennes, ou boîtes de longueur fixe, pour chacun des types de données (ici, les ACs et les DCs) pouvant être affectés à l'un des canaux HP ou LP (ici, le canal LP pour les ACs et les DCs), puis, pour celles des données qui doivent être réparties entre les deux canaux (les. en-têtes de macrobloc), d'abord la longueur moyenne associée au canal HP puis celle associée au canal LP, ces deux dernières longueurs définissant de même une boîte de longueur fixe correspondante. On ne citera que pour mémoire la quatrième des situations évoquées, dans laquelle l'allocation HP est insuffisante pour permettre la transmission de l'en-tête de tranche. Cette situation ne permet plus la mise en oeuvre des principes de répartition par boîtes HP ou LP : il s'agit d'une situation de repli, où le dispositif reprend un autre mode de fonctionnement, différent de celui selon l'invention, par exemple celui décrit dans le document USP-4907101 déjà cité. Bien entendu, la présente invention n'est pas limitée à l'exemple de réalisation ci-dessus décrit et représenté, à partir duquel des variantes peuvent être proposées sans pour cela sortir du cadre de l'invention. En particulier, on a vu, dans les trois premières des quatre situations qui viennent d'être mentionnées, que les divisions conduisant à la détermination des boîtes HP et LP associées à chaque type de données de longueur variable pouvaient avoir des restes, qui correspondent à des bits excédentaires (en anglais, leftover bits). Ces bits excédentaires ne sont inclus dans aucune des boîtes définies jusqu'à présent, et l'on définit, pour eux, à nouveau des boîtes HP et LP. La boîte HP est déterminée en soustrayant de l'allocation HP globale le nombre de bits correspondant à toutes les boîtes HP déjà définies (et également le nombre de bits correspondant à l'en-tête de tranche), et la boîte LP est calculée de même, par soustraction de l'allocation LP globale, du nombre de bits correspondant à toutes les boîtes LP existant déjà. Ces calculs sont effectués, comme les précédents, dans le circuit 30 de commande de redistribution de bits, dans lequel ils constituent une étape supplémentaire du processus de redistribution mis en oeuvre. Par ailleurs, pour ne pas avoir à stocker toute une image ou tout un groupe d'images dans la mémoire adressable 40, c'est-à-dire pour réduire le volume de cette mémoire, il est possible d'utiliser pour toute cette image ou tout ce groupe un processus récursif permettant de valider les comptages effectués pour l'image ou le groupe précédent. Il suffit alors de stocker dans la mémoire adressable 40 seulement le flot de bits correspondant au codage d'une seule tranche, et la capacité de cette mémoire peut donc être plus faible que dans le cas précédent. Pour la première image ou pour le premier groupe d'images, aucune utilisation de comptages précédents n'est possible, bien évidemment, et l'on fixe donc les allocations HP et LP à la même valeur pour chacune des tranches, cette valeur étant égale à ladite proportion globale déterminée (dans l'exemple décrit, 30 % et 70 % respectivement). REVENDICATIONS 1. Dispositif de traitement, en vue d'une transmission et/ou d'un stockage, de signaux numériques correspondant à une séquence d'images et préalablement codés, au moins en partie, selon un codage à longueur variable, lesdits signaux étant organisés en blocs d'image et constitués de types de données pouvant être ordonnés selon une hiérarchie déterminée, caractérisé en ce qu'il comprend (1) une mémoire adressable de stockage du flot de bits provenant dudit codage à longueur variable (2) un circuit de comptage recevant également ledit flot de bits en vue de la détermination et du stockage du nombre de bits correspondant dans ce flot à chaque type de données, et ce pour au moins une tranche d'image, une tranche étant définie comme tout sous-ensemble de blocs qui est précédé d'un signal de synchronisation (3) en sortie de ce circuit de comptage, un circuit d'affectation, à chacune desdites tranches et selon une proportion déterminée à respecter globalement dans une image ou dans un groupe d'images, du nombre de bits à transmettre d'une part dans une voie HP dite de haute priorité et d'autre part dans une voie LP dite de basse priorité, ces deux nombres de bits étant appelés allocations HP et LP respectivement (4) en sortie desdits circuits, un circuit de commande de redistribution des bits dudit flot, pour chacune desdites tranches et selon le processus suivant (a) en fonction de la valeur de l'allocation HP, affectation à ladite voie HP, dans l'ordre hiérarchique décroissant, de toutes celles des données qui y tiennent entièrement ;; (b) en fonction de la valeur de l'allocation LP, affectation à ladite voie LP, dans l'ordre hiérarchique croissant, de toutes celles des données qui y tiennent entièrement (c) pour les données ainsi affectées, calcul, en nombre de bits et sur l'ensemble des blocs de la tranche concernée, de la longueur moyenne par bloc (d) pour le type de données ne pouvant pas être affecté exclusivement à l'une ou à l'autre des voies HP et LP, affectation à la voie HP de celles de ces données qui y tiennent, par égale répartition dans les tranches, puis affectation complémentaire des données résiduelles à la voie LP (e) pour ce type de données réparties entre les voies HP et LP, calcul similaire de la longueur moyenne par bloc, pour chacune des deux voies lesdites valeurs d'affectation et lesdites longueurs moyennes étant fournies à la mémoire adressable pour une lecture de celle-ci conformément audit processus de redistribution par voie et, pour chaque voie, par paquets de données de même nature constituant des boîtes de longueur égale auxdites longueurs moyennes respectivement. 2. Dispositif selon la revendication 1, caractérisé en ce que, dans le circuit de commande de redistribution de bits, ledit processus de redistribution comprend également, pour l'ensemble des bits excédentaires constituant les restes éventuels des divisions réalisées pour les calculs de longueurs moyennes par bloc et pour chacune des deux voies HP et LP, une étape similaire de calcul de longueur moyenne par bloc et par voie, et en ce que lesdites longueurs moyennes sont, comme les précédentes, fournies à la mémoire adressable. 3. Dispositif selon l'une des revendications 1 et 2, caractérisé en ce que la capacité de ladite mémoire adressable est égale à celle de l'image ou du groupe d'images dans lequel doit être respectée ladite proportion globale déterminée. 4. Dispositif selon l'une des revendications 1 et 2, caractérisé en ce que la capacité de ladite mémoire adressable est égale à celle d'une tranche d'image et en ce que, pour l'image ou le groupe d'images courant, les comptages de nombres de bits correspondant à chaque type de données sont les mêmes que pour l'image ou le groupe d'images précédent, exception faite de la première image ou du premier groupe d'images pour lequel, ou laquelle, les allocations HP et LP sont fixées, pour chacune des tranches, à la même valeur correspondant à ladite proportion globale déterminée.