Brevet FR2857198A1 — publié le 20050107

La présente invention concerne l'adaptation de contenus multimédias à un contexte de transmission par réencodage ou transcodage. Les progrès réalisés en matière d'appareils numériques tels que les téléviseurs, les micro-ordinateurs classiques ou de poche, ou les téléphones portables sont tels que, dans les années à venir, il sera très probablement possible d'échanger des données de type multimedia, par exemple audio et/ou vidéo, entre ces différents appareils. Des études de marché montrent, par ailleurs, que les utilisateurs sont prêts à acheter de tels systèmes de communications à condition que le prix ne soit pas trop excessif et surtout que les services rendus soient de bonne qualité. Suite à l'apparition de ce nouveau marché, de nombreuses études ont été menées concernant la miniaturisation des composants, de manière à obtenir des appareils ayant des capacités importantes en termes de mémoire et de calcul tout en conservant un poids et un volume restreint. D'autre part, de nombreux organismes de normalisation ont mis en place des standards permettant d'unifier les échanges de données entre ces appareils aux caractéristiques différentes. Ces standards, tels que la famille IEEE 802, permettent à la fois la mise en oeuvre et la gestion du transfert des données via un réseau particulier. Le standard IEEE 802.11 et son homologue européen HYPERLAN sont dédiés aux réseaux locaux sans fils. Ils sont particulièrement étudiés actuellement car ce sont des réseaux à large bande qui permettent de transmettre des vidéos entre deux machines qui sont géographiquement proches. Une des applications grand-public visée est le déploiement des réseaux locaux sans fil à la maison. En effet, ces solutions techniques permettent de transmettre des données numériques soit entre une machine dite serveur et une machine dite client (transmission point à point), soit entre le serveur et un groupe de clients, soit encore entre le serveur et plusieurs clients (communication multipoints), et ce, sans aucun fil. Les données sont stockées sur le serveur qui centralise toutes les communications avec les clients. Cette machine peut servir, également, de passerelle avec le monde extérieur (Internet, télévision, caméscope, et ainsi de suite). II convient de noter que les réseaux locaux domestiques peuvent être de nature hétérogène, c'est à dire qu'ils peuvent, par exemple, être pour partie constitués de liaisons sans fil et pour partie de liaisons filaires. Si de nombreux projets étudient la mise en oeuvre de services autour de la télévision interactive et l'échanges d'informations sur Internet, peu d'entre eux traitent des problèmes liés à la mise en oeuvre de réseaux locaux à la maison, à savoir la mise en place de solutions permettant d'obtenir une qualité de service acceptable. Le serveur étant relié au monde extérieur, on y stocke des données numériques de type et de taille divers. Ces données sont ensuite envoyées aux clients sur demande. Or le transport de ces données à travers un réseau local n'est pas une fonctionnalité simple à mettre en place car il est sur certains points nécessaire, et sur d'autres simplement souhaitable, que ce transport soit adapté au contexte dans lequel la transmission s'effectue. Par contexte, il faut comprendre non seulement les caractéristiques du réseau (notamment la bande passante disponible) et les caractéristiques des données transportées, mais aussi les caractéristiques du client (telles que les dimensions de son écran, sa capacité de calcul ou la taille de sa mémoire vive), et même dans l'idéal les préférences des utilisateurs des machines clients. Afin d'illustrer les problèmes liés à la mise en place de cette fonctionnalité, prenons un exemple. Supposons que l'on ait un réseau IEEE 802.1lb qui permette de transmettre environ 7 Mbit/s (en théorie 11 Mbit/s). Supposons également que l'on ait stocké sur le serveur une vidéo ayant un débit de 4 Mbit/s et une résolution d'images de 1024 colonnes par 576 lignes. Supposons enfin que l'architecture de communication comprenne deux clients: un micro-ordinateur (taille d'écran: 1024 par 576), et un micro-ordinateur de poche (taille d'écran: 576 par 288). Imaginons qu'à un instant donné le micro-ordinateur demande la vidéo. Celui-ci n'aura aucun problème pour la visionner car la bande passante du réseau et ses propres caractéristiques le permettent. Mais imaginons maintenant que les deux clients demandent cette vidéo. Deux problèmes se posent alors: - d'une part la bande passante du réseau ne permet pas de transmettre deux vidéos à 4 Mbitls, - d'autre part, le micro-ordinateur de poche ne peut pas afficher une vidéo dont le format est supérieur à la taille de son écran. La transmission aux deux clients de la vidéo dans sa version originelle offrira alors une qualité de service médiocre. En effet, le microordinateur verra sa réception dégradée par la congestion sur le réseau. Le micro-ordinateur de poche ne pourra au mieux qu'afficher une portion des images transmises. Ce dernier aurait sans doute préféré recevoir une version de cette vidéo avec une résolution spatiale réduite, ce qui, par ailleurs, aurait avantageusement minimisé l'utilisation de la bande passante et donc la congestion du réseau. Au travers de cet exemple, on se rend compte que l'adaptation de la vidéo au contexte dans lequel elle est transmise est primordiale pour l'obtention d'une Qualité de Service élevée. On regroupe généralement ces mécanismes d'adaptation sous le nom de méthodes de transcodage . On connaît plusieurs telles méthodes, telles que: - la réduction de la résolution spatiale , c'est à dire des dimensions globales des images (hauteur et la largeur), exprimées en 20 nombre de lignes et de colonnes de pixels, - la réduction de la résolution temporelle , c'est à dire de la fréquence d'affichage des images, et - la réduction du débit , c'est à dire de la finesse de détails des images (réduction appelée requantification ). On trouve dans l'état de l'art plusieurs procédés d'adaptation de contenus multimédias, notamment dans un contexte de consultation de pages Web ou de diffusion de vidéos à la demande. Par exemple, IBM, avec son système InfoPyramid (voir l'article Adapting Multimedia Internet Content for Universal Access de R. Mohan et al. (IEEE Transactions on Multimedia, vol. 1, no. 1, mars 1999), propose, d'une part, d'organiser les contenus selon leur complexité et leur richesse (texte, image, vidéo), et d'autre part d'adapter le contenu demandé par un client aux caractéristiques de ce client. Pour cela, les différents clients se connectant sont répertoriés dans une mémoire cache au moyen d'identificateurs. Le contenu adapté à chaque client est également sauvegardé. IBM propose également de stocker des statistiques sur l'état du réseau au cours du temps afin d'estimer par la suite le temps de transmission des données. Les demandes des clients se connectant sont satisfaites l'une après l'autre, jusqu'à ce que la bande passante du réseau soit saturée; mais aucune renégociation des méthodes de transcodage n'est alors possible, car IBM n'offre pas de méthode globale de gestion des connexions en fonction de la bande passante totale disponible. Dans l'article Differentiated Multimedia Web Services using Quality Aware Transcoding de S. Chandra et al. (Actes de Infocom 2000), les auteurs proposent de partager de façon dynamique la bande passante du réseau parmi différentes classes de clients. Deux classes sont définies sur des critères d'accès privilégié à une qualité de transmission (service différencié ). Le but est de proposer à un maximum de clients d'accéder à des contenus de type pages Web avec une qualité acceptable. Pour cela, ils utilisent une méthode de transcodage qui réalise un compromis débit-distorsion sur des images de type JPEG. La bande passante est mesurée chaque seconde, et durant chaque seconde, les clients nonprivilégiés se partagent à égalité la différence entre la bande passante réservée aux clients privilégiés et la bande passante qui vient d'être mesurée. La consommation moyenne de bande passante permet alors d'anticiper sur une éventuelle surcharge du réseau et ainsi de réagir, soit en modifiant le transcodage, soit en rejetant les nouveaux clients. Contrairement au document précédent, dans celui-ci, les caractéristiques physiques des clients ne sont pas intégrées dans le processus d'adaptation. Dans l'article Low Complexity Video Coding for Receiver-Driven Layered Multicast de S. McCann et al. (IEEE Journal of Selected Areas in Communications, vol. 16, no. 6, août 1997), chaque vidéo est organisée de façon à être transmise progressivement: un flux de base est proposé, contenant les informations correspondant à une basse qualité de la vidéo. Des flux de rehaussement permettent en cas de décodage d'enrichir et d'améliorer la qualité de la vidéo au niveau du récepteur. On parle dans ce cas de source ajustable ( scalable en anglais). Dans cette approche, il incombe aux clients de choisir s'ils s'abonnent ou se désabonnent aux niveaux de rehaussement en fonction du taux de pertes qu'ils constatent à la réception des données. Ce taux de pertes étant un bon indicateur de l'état de congestion du réseau, ce mécanisme tend à prévenir de toute congestion en n'envoyant aux différents clients que la quantité d'informations que leur lien leur permet de recevoir. Toutefois, ce genre d'approche ne se focalise que sur les aspects réseau et reste sous-optimal dans la mesure où : - les capacités des clients ne sont pas prises en compte, - ce même client, parfois limité en ressources, doit, en plus du traitement du contenu, prendre à sa charge la gestion des capacités du 15 réseau, - les tentatives d'abonnement ou de désabonnement des clients engendrent un trafic plus important et contribuent à l'augmentation de la congestion, - la source doit proposer une granularité fine conduisant à une 20 moindre efficacité en termes de compression, les niveaux de granularité proposés sont choisis arbitrairement, et - les noeuds du réseau doivent posséder des capacités d'agrégation des flux, ce qui n'est pas le cas des architectures de réseau actuelles. De même, dans l'article Content-based VBR Video Traffic Modeling and its Application to Dynamic Network Resource Allocation de P. Boheck et al. (Technical Report, Columbia University, 1998), un mécanisme d'allocation dynamique des ressources du réseau est mis en oeuvre pour la diffusion de vidéos. La bande passante est allouée en fonction des caractéristiques de la vidéo. Pour ce faire, les auteurs proposent une unité d'analyse et de classification de cette vidéo découpée en segments temporels (séquence d'images). Chaque segment de vidéo est associé à une classe pour laquelle une bande passante nécessaire à sa transmission est estimée. Les critères utilisés pour la classification sont par exemple: le nombre d'objets vidéos, le mouvement de la caméra, le type de mouvement entre les images. Si le débit nécessaire à la transmission d'un segment s'avère supérieur à la bande passante disponible, un recours à une méthode de transcodage est envisagé. Ce découpage en segments permet également de déterminer les instants de renégociation de la bande passante entre les différents clients. Là encore, comme dans la référence précédente, seules les caractéristiques du contenu et du réseau sont prises en compte dans le processus d'optimisation, ce qui est sous- optimal en matière d'exploitation des ressources: on peut en effet envoyer à un client un contenu trop riche au regard de ses capacités. L'un des problèmes à résoudre est donc de définir un mécanisme de sélection d'une méthode de transcodage qui rendra la vidéo compatible non seulement avec les caractéristiques du réseau, mais également avec les caractéristiques de la machine client, et éventuellement aussi avec les préférences de l'utilisateur de cette machine. L'invention concerne donc une phase d'optimisation sous contraintes de paramètres de transcodage pour des séquences de données numériques, par exemple des données multimédias, qui ont été au préalable enregistrées sur un serveur. L'invention concerne ainsi, selon un premier aspect, un procédé de distribution de flux de données numériques, dans lequel un ou plusieurs dispositifs dits serveurs transfèrent un flux de données numériques par l'intermédiaire d'un réseau vers un dispositif dit client appartenant à une pluralité de clients suite à la demande de ce client, dans lequel lesdites données numériques peuvent être transcodées selon une pluralité de méthodes de transcodage prédéterminées. Ce procédé est remarquable en ce qu'il comprend les étapes suivantes: a) le calcul du débit associé à chacun desdits flux après application 30 d'au moins une parmi ladite pluralité de méthodes de transcodage, b) la classification des clients connectés au réseau d'après des caractéristiques préenregistrées concernant les capacités d'un ensemble de dispositifs clients, c) la détermination, parmi ladite pluralité de méthodes de transcodage prédéterminées, de celles qui sont admissibles pour chaque client connecté au réseau, en fonction desdits débits calculés et de ladite classification des clients, et d) la sélection globale d'un ensemble de méthodes de transcodage, chaque méthode étant associée à un client connecté au réseau, parmi lesdites méthodes admissibles, en fonction de critères prédéterminés comprenant au moins le respect de la bande passante du réseau. Ainsi, selon l'invention, on détermine pour chaque client une méthode de transcodage, prise dans un ensemble de méthodes prédéterminé, qui satisfait les contraintes techniques. L'estimation du débit ramène ce problème d'optimisation à un problème de type débit-distorsion dans lequel on cherche à satisfaire au mieux les demandes présentées par les clients sous une contrainte de débit maximum. Grâce à l'invention, le nombre de clients pouvant se connecter à tout instant donné est accru, et les ressources des machines clients sont adéquatement sollicitées. On utilise donc de manière optimale la bande passante du réseau. En ce qui concerne la complexité du processus de prise de décision, il est clair que ladite classification des clients connectés au réseau implique un certain coût, mais en revanche cette complexité est, grâce à l'invention, réduite en raison de la réduction de l'espace de recherche de la solution globale de diffusion (voir étape c)) ; en effet, l'identification des limitations des capacités des clients permet d'éliminer d'office (le cas échéant), pour chaque client, les méthodes de transcodage incompatibles , compte tenu du contenu demandé par ce client, de manière à ne conserver, au stade de la sélection globale (étape d)), que les méthodes de transcodage admissibles . Cette évaluation du contenu comprend au moins le calcul, pour chaque séquence enregistrée et pour au moins une méthode de transcodage respective, du débit de données résultant (voir étape a)). Ce calcul peut par exemple, de façon connue, passer par une phase de transcodage suivie d'une phase de décodage de cette séquence. On pourra alors en profiter pour estimer, par exemple, le coût de décodage, en termes de mémoire et de calcul, pour la méthode de transcodage considérée. Même si de telles estimations représentent un travail non-négligeable pour le serveur, on notera qu'elles peuvent avantageusement être réalisées pour chaque séquence enregistrée, une fois pour toutes, off-line , c'est à dire avant que des clients ne se connectent au serveur. Lesdites capacités d'un dispositif client pourront comprendre, notamment, la fréquence de son processeur central. On pourra ainsi s'assurer que la méthode de transcodage choisie pour un client est telle que la complexité (exprimée en nombre d'opérations élémentaires par seconde) liée au décodage du flux numérique demandé est inférieure ou égale au nombre d'opérations par seconde (fonction de la vitesse d'exécution du processeur) que le décodeur de la machine client peut exécuter. Mais ces capacités d'un dispositif client pourront avantageusement également comprendre la taille de sa mémoire vive et/ou les dimensions de son moniteur. Comme mentionné ci-dessus, la détermination des méthodes de transcodage admissibles tient compte, pour chaque client connecté au réseau, du débit associé au flux de données demandé par ce client après application d'au moins une méthode de transcodage. Mais cette détermination des méthodes de transcodage admissibles pourra avantageusement tenir compte d'autres caractéristiques du contenu que le débit. Par exemple, si le flux de données demandé par un client est associé à une vidéo, les caractéristiques de cette vidéo pouvant être prises en compte comprennent la résolution spatiale, et/ou la résolution temporelle, et/ou l'activité spatio-temporelle, de segments temporels de cette vidéo dans lesquels les caractéristiques prises en compte ont une valeur relativement uniforme. Grâce à ces dispositions, on peut mettre en rapport les caractéristiques des contenus avec les capacités des clients, et inclure cette compatibilité dans les critères de la sélection globale. Outre la prise en compte de la compatibilité entre chaque séquence transcodée et la machine client destinée à la recevoir, ladite détermination des méthodes de transcodage admissibles (étape c)) pourra également, selon d'autres caractéristiques particulières, prendre en compte certaines préférences des utilisateurs (par exemple: image fixe ou animée, plein écran ou imagette, ou encore nombre de couleurs de l'image). Par ailleurs, on pourra, selon d'autres caractéristiques particulières, récupérer des caractéristiques supplémentaires du réseau en plus de sa bande passante, par exemple le temps de latence (ou délai) correspondant au temps caractéristique mis par un paquet de données pour transiter d'un point source à un point destination à travers ce réseau; on pourra aussi par exemple enregistrer le taux de perte de paquets, ou le taux de bits transmis erronés, au sein du réseau. La sélection globale pourra alors, avantageusement, également tenir compte de ces autres caractéristiques du réseau afin d'optimiser l'exploitation des ressources disponibles. II est également souhaitable que la prise de décision globale prenne en compte, outre leur débit, certaines autres caractéristiques des séquences à transmettre, de façon à pouvoir maximiser la qualité des contenus reçus telle que perçue par l'ensemble des clients. Par conséquent, selon encore d'autres caractéristiques particulières, lesdits critères prédéterminés pour la sélection globale comprennent la maximisation d'un facteur de qualité global Q calculé, pour tout ensemble donné de couples (flux de données, et méthode de transcodage), en fonction de facteurs de qualité individuels q respectivement attachés à au moins certains de ces couples. Ainsi, on estimera la qualité des contenus transcodés, et on s'appuiera sur cette estimation dans le processus de prise de décision globale, de façon à optimiser la qualité des contenus transcodés telle que perçue par l'ensemble des utilisateurs du système de diffusion de flux. Ce facteur de qualité global Q sera défini, selon le système de diffusion de flux envisagé, de manière à représenter adéquatement cette qualité globale. Par exemple, le facteur de qualité global Q pourra être pris égal à la somme des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client connecté au réseau. En variante, le facteur de qualité global Q pourra être pris égal à une somme pondérée des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client connecté au réseau; on pourra ainsi, par exemple, ajuster ces coefficients de pondération en fonction des niveaux de service auxquels les clients ont respectivement souscrit. On notera à cet égard que cette estimation dépend des caractéristiques des séquences de données numériques à transcoder. En effet, l'impact du transcodage sur la qualité est différent d'une séquence à une autre. On sait par exemple qu'une séquence avec un fort mouvement souffrira fortement d'une réduction de la résolution temporelle, alors que cette même méthode appliquée à une séquence contenant peu de mouvement aura peu d'impact. L'optimisation de la Qualité de Service peut donc passer par l'évaluation de la perte de qualité induite par chaque méthode de transcodage compatible . C'est pourquoi, selon des caractéristiques encore plus particulières, on obtiendra ledit facteur de qualité individuel q en codant le flux de données considéré avec la méthode de transcodage considérée, et en calculant q = 10 loglo {(2Y)2/EQM} , où EQM est l'écart quadratique moyen entre les flux de données avant et après transcodage, et Y la dynamique du signal originel. Enfin, il importe de noter que les contraintes encadrant la sélection 25 globale selon l'invention peuvent varier au cours du temps. Pour en tenir compte, on mettra en oeuvre la sélection globale selon l'invention, par exemple, à chaque fois qu'un client se connecte au réseau et à chaque fois qu'un client précédemment connecté au réseau se déconnecte, et/ou à chaque fois qu'une alarme cyclique programmable arrive à échéance. Ainsi, les essais d'abonnement ou de désabonnement des clients ne provoqueront pas de congestion transitoire dans le réseau. Selon un deuxième aspect, l'invention concerne divers dispositifs. Ainsi, l'invention concerne un serveur pour la distribution de flux de données numériques par l'intermédiaire d'un réseau vers un dispositif dit client appartenant à une pluralité de clients suite à la demande de ce client, lesdites données numériques pouvant être transcodées selon une pluralité de méthodes de transcodage prédéterminées. Ce serveur comprend: - une unité de transcodage apte à calculer le débit associé à chacun desdits flux après avoir appliqué au moins une parmi ladite pluralité de méthodes de transcodage, - une unité de récupération des capacités d'un ensemble de dispositifs 10 clients, et - un moteur de décision apte É à déterminer, parmi ladite pluralité de méthodes de transcodage prédéterminées, celles qui sont admissibles pour chaque client connecté au réseau, en fonction desdits débits calculés et de ladite classification des clients, et É à opérer une sélection globale d'un ensemble de méthodes de transcodage, chaque méthode étant associée à un client connecté au réseau, parmi lesdites méthodes admissibles, en fonction de critères prédéterminés comprenant au moins le respect de la bande passante du réseau. Selon des caractéristiques particulières, ladite unité de récupération des capacités d'un ensemble de dispositifs clients est apte à récupérer, pour chaque client connecté au réseau, la fréquence de son processeur central, et/ou la taille de sa mémoire vive, et/ou les dimensions de son moniteur. Selon d'autres caractéristiques particulières, ledit serveur comprend en outre une unité de récupération d'informations sur le contenu du flux de données demandé par chaque client connecté au réseau. Selon encore d'autres caractéristiques particulières, ledit flux de données demandé par un client est associé à une vidéo, et ladite sélection globale opérée par le moteur de décision prend en compte des caractéristiques de cette vidéo comprenant la résolution spatiale, et/ou la résolution temporelle, et/ou l'activité spatio-temporelle de segments temporels de cette vidéo dans lesquels les caractéristiques prises en compte ont une valeur relativement uniforme. Selon encore d'autres caractéristiques particulières, ledit serveur comprend en outre une unité apte à récupérer certaines préférences des utilisateurs des dispositifs clients, et ledit moteur de décision est apte à prendre en compte ces préférences. Selon encore d'autres caractéristiques particulières, ledit serveur comprend en outre une unité apte à récupérer des caractéristiques du réseau comprenant au moins sa bande passante, et ledit moteur de décision est apte à prendre en compte ces caractéristiques du réseau. Selon encore d'autres caractéristiques particulières, ladite sélection globale opérée par le moteur de décision comprend la maximisation d'un facteur de qualité global Q calculé, pour tout ensemble donné de couples (flux de données, et méthode de transcodage), en fonction de facteurs de qualité individuels q respectivement attachés à au moins certains de ces couples. Selon des caractéristiques encore plus particulières, ledit facteur de qualité global Q est égal à la somme des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client connecté au réseau. Selon d'autres caractéristiques encore plus particulières, ledit facteur de qualité global Q est égal à une somme pondérée des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client connecté au réseau. Selon des caractéristiques encore plus particulières, ledit facteur de qualité individuel q est obtenu en codant le flux de données considéré avec la méthode de transcodage considérée, et en calculant q = 10 logea {(2Y)2/EQM} , où EQM est l'écart quadratique moyen entre les flux de données avant et après transcodage, et Y la dynamique du signal originel. Selon des caractéristiques particulières, ledit moteur de décision met en oeuvre ladite sélection globale à chaque fois qu'un client se connecte au réseau, et à chaque fois qu'un client précédemment connecté au réseau se déconnecte. Selon d'autres caractéristiques particulières, ledit serveur comprend en outre une alarme cyclique programmable, et ledit moteur de décision met en oeuvre ladite sélection globale à chaque fois que ladite alarme cyclique arrive à échéance. L'invention vise également: - un ordinateur comprenant l'un quelconque des serveurs décrits succinctement ci-dessus, ainsi que des moyens de stockage de données numériques et des moyens de lecture et d'écriture de ces données numériques, - un moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de distribution de flux de données numériques décrits succinctement ci-dessus, - un moyen de stockage de données partiellement ou totalement amovible comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de distribution de flux de données numériques décrits succinctement ci-dessus, et - un programme d'ordinateur contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre l'un quelconque des procédés de distribution de flux de données numériques décrits succinctement ci- dessus. Les avantages offerts par ces serveurs, cet ordinateur, ces moyens de stockage de données et ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés selon l'invention. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers,donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la figure 1 est un schéma synoptique illustrant l'architecture générale d'un système de transmission de données entre un serveur et un client, 5 selon un mode de réalisation de l'invention, - la figure 2 représente un algorithme mis en oeuvre suite à la connexion d'un client, - la figure 3 représente un algorithme de classification d'un nouveau client connecté en fonction de ses capacités, - la figure 4 est un algorithme d'analyse et de classification du contenu d'une vidéo, - la figure 5 représente un algorithme mis en oeuvre suite à la déconnexion d'un client, - la figure 6 représente un algorithme de renseignement, pour un segment de séquence vidéo, d'une structure de solutions de transcodage, - la figure 7 représente un algorithme de sélection de la solution globale de diffusion, - la figure 8 représente une table des connexions utilisée par le moteur de décision selon l'invention, et - la figure 9 représente un dispositif informatique apte à mettre en oeuvre le procédé selon l'invention. La figure 1 est un schéma synoptique illustrant l'architecture générale d'un système de transmission de données entre une machine dite serveur 1 et une machine dite client 3. Ces deux machines sont reliées par un réseau 2 au travers d'une connexion qui est considérée ici comme étant établie. Ce réseau est par exemple un réseau de communication local sans fil à l'intérieur d'une habitation. Plus particulièrement, ce réseau peut être conforme au standard IEEE802. 11. Il peut également comprendre un accès à Internet. Il s'agit ici d'une transmission point à point entre un serveur et un client. Néanmoins, plusieurs machines client pourront se connecter en même temps sur le serveur et demander une version du même contenu sans pour cela modifier en quoi que ce soit l'invention: seuls la gestion des processus d'adaptation et d'envoi en parallèle des différentes versions du contenu et les accès aux mémoires du côté du serveur seront à rajouter ( multicast transmission en anglais). On notera que les données stockées dans le serveur peuvent avoir été reçues soit de l'intérieur de l'habitation, par exemple à partir d'un caméscope, soit de l'environnement extérieur à l'habitation, par exemple depuis l'Internet. Ces données peuvent être, par exemple, des images fixes, des vidéos, du son, des données de type texte, des documents en langage HTML, ou des signaux reçus d'un télécopieur ou d'une imprimante. Les contenus disponibles sont stockés, généralement dans des formats compressés (par exemple: mp3 pour l'audio, jpeg pour les images, MPEG pour les vidéos), dans une unité de stockage de données numériques (base de données) 4. Cette unité peut être incluse dans le dispositif 1 ou être externe à celui-ci. Le serveur 1 comprend une unité 12, que l'on appellera moteur de décision , permettant de prendre une décision sur l'adaptation du contenu en fonction du contexte de transmission. Ce serveur comprend également une unité de transcodage 17 permettant de réaliser cette adaptation. Ces deux processus seront décrits plus bas de façon détaillée. Le serveur 1 comprend également une unité 19, destinée à mémoriser de façon temporaire des données numériques et des vidéos codées. Pour chaque client 3, une unité 13 du serveur 1 récupère les caractéristiques matérielles de ce client. Dans ce mode de réalisation, pour la définition de ces caractéristiques, on prendra en compte les paramètres suivants: - la fréquence du processeur central, qui correspond au temps mis pour exécuter une instruction, - la taille de la mémoire vive (RAM) utilisable pour traiter les 30 contenus (essentiellement leur décompression, effectuée par l'unité 33 de la figure 1), et - les dimensions de l'écran (moniteur) exprimées en pixels. L'obtention des caractéristiques des machines client est décrite cidessous en référence à la figure 3. L'unité 14 du serveur 1 se charge de récupérer les caractéristiques du réseau, notamment sa bande passante. Cette récupération sera effectuée à des instants prédéterminés. Par exemple, dans ce mode de réalisation, elle sera effectuée à chaque fois qu'un client 3 se connecte au réseau 2. En variante, on pourra par exemple, dans un système de diffusion fermé et de stabilité fiable, se contenter de mesurer la bande passante lorsque l'on modifie la composition du système. L'unité 15 du serveur 1 prend en charge l'analyse du contenu demandé. Par exemple, pour une vidéo encodée au format MPEG-4, cette norme définit différents niveaux et profils qui permettent de déterminer des valeurs caractéristiques des paramètres de description du contenu, comme par exemple: - la résolution spatiale des images composant la vidéo, - le nombre d'images par seconde, et - le débit auquel est encodée la vidéo. Concernant MPEG-4, on pourra se référer à la norme ISOIIEC JTC1/SC 29/WG11 N3056 de décembre 2000, intitulée Information Technology 20 Generic coding of audio-visual objects part 2: visual . Ces informations inhérentes à la norme MPEG-4 sont nécessaires mais ne sont pas suffisantes pour caractériser finement le contenu. Aussi, l'unité d'analyse du contenu 15 permet-elle d'extraire des caractéristiques supplémentaires que nous détaillons ci-dessous, en référence à la figure 4, conformément à la partie off-line (c'est à dire, hors connexion) du procédé selon l'invention. L'unité 16 du serveur 1 récupère les préférences de l'utilisateur, que ce dernier a pu spécifier au moyen d'une interface graphique (unité 32 sur la figure 1). Le serveur 1 contient également un dispositif 18 d'envoi et de réception, qui lui permet de communiquer avec les clients 3. L'alarme cyclique 20 intervient pour déclencher de façon périodique des renégociations des connexions, comme décrit plus bas. Finalement, le serveur 1 comporte une unité de commande 11, pour commander le fonctionnement global du dispositif. La machine client 3 comporte un dispositif 30 d'envoi et de réception de données numériques. Ce dispositif permet l'envoi de données au serveur à travers le réseau et la réception des données du serveur. II comporte également une unité 31 de stockage de données numériques, une unité 33 de décodage et un dispositif de visualisation 34 permettant de visualiser des vidéos décodées. L'interface graphique 32 permet à l'utilisateur de cette machine client d'interagir et de contrôler ces différentes unités. On notera que les différentes unités composant le serveur 1 sont représentées sur la figure 1 comme résidant sur la même machine. Cependant, il est parfaitement possible de distribuer ces unités sur plusieurs machines, et d'établir des communications entre ces différentes unités à travers le réseau de communication 2. De même, les différentes unités composant un client 3 peuvent être distribuées sur plusieurs machines. On va décrire à présent la production de descripteurs de méthodes de transcodage, ainsi que la classification en termes de contenu des données numériques mises à la disposition des clients 3. On définit donc, préalablement à toute connexion, un ensemble de 20 méthodes de transcodage, que l'on classe ensuite par types. Dans ce mode de réalisation, on définira trois types de transcodage: 1) réduction de la résolution spatiale: - conservation de la résolution initiale, ou conversion de la résolution de CIF (initiales des mots anglais Common Intermediate Format signifiant Format Intermédiaire Habituel), soit 352 colonnes par 288 lignes, à la résolution QCIF (initiales des mots anglais Quarter-Common Intermediate Format signifiant Quart de Format Intermédiaire Habituel), soit 176 colonnes par 144 lignes, 2) réduction de la fréquence temporelle: - conservation de la fréquence temporelle initiale, par exemple 30 images par seconde Omis), ou - passage de 30 à 20 Im/s, ou - passage de 30 à 15 Imis, ou - passage de 30 à 10 Imis, ou passage de 30 à 5 Im/s, ou - passage de 30 à 1 Im/s, et 3) requantification (réduction du débit) : - conservation du débit initial, ou - réduction du débit de 10%, ou - réduction du débit de 25%, ou réduction du débit de 33%. On définit donc, selon ce choix, douze méthodes de transcodage élémentaires, conduisant à un total de: 2 x 6 x 4 = 48 méthodes de transcodage différentes si on les combine. Pour chaque séquence de données numériques introduite dans 15 l'unité de stockage 4 du serveur 1, on met en oeuvre un algorithme d'analyse et de classification illustré sur la figure 4. L'unité d'analyse du contenu 15, en plus des caractéristiques mentionnées précédemment, permet de caractériser plus précisément le contenu des données transmises. On illustrera le fonctionnement de l'unité 15 en prenant l'exemple de données vidéo. L'unité 15 doit alors notamment découper cette vidéo en segments temporels dans lesquels les images possèdent des propriétés communes. Ces caractéristiques représentent, dans ce mode de réalisation: - l'activité spatiale de chaque image, et l'activité temporelle entre deux images successives. Ce processus d'analyse permet, d'une part, le découpage de la vidéo en segments temporels possédant les mêmes caractéristiques, et d'autre part de faciliter la prise de décision sur la façon la plus adéquate d'adapter cette vidéo à un contexte de transmission. En effet, comme mentionné en introduction, une séquence comportant des mouvements importants souffrira plus d'une réduction de résolution temporelle que d'une réduction de résolution spatiale. Il est donc nécessaire d'intégrer les caractéristiques intrinsèques au contenu dans le processus d'adaptation. De plus, une vidéo a des caractéristiques qui varient au cours du temps, c'est pourquoi il convient de prendre également en compte ces variations temporelles dans le processus d'adaptation en mettant à jour périodiquement les paramètres d'adaptation. Le processus d'analyse d'une séquence vidéo commence par le transfert de cette séquence depuis l'unité de stockage 4 vers l'unité 19 du serveur 1 (étape E400 de la figure 4). Un décodage partiel des informations d'entête est alors effectué par un décodeur présent dans l'unité 15 du serveur 1 lors de l'étape E401, de sorte que l'on se trouve au début des données relatives à la première image de la séquence. L'étape suivante E402 consiste à récupérer les informations relatives à l'activité temporelle de la séquence. Dans ce mode de réalisation, ces informations sont représentées par les vecteurs de mouvement. L'étape suivante E403 consiste à comparer l'amplitude moyenne des vecteurs de mouvement liés à l'image à un seuil. Si cette amplitude moyenne est supérieure au seuil, l'image est marquée comme possédant une forte activité temporelle (HM, pour High Motion en anglais) lors de l'étape E405. Dans le cas contraire, elle est marquée comme ayant une activité temporelle faible (LM, pour Low Motion en anglais) lors de l'étape E404. Le marqueur décrivant la classe de l'image est, dans ce mode de réalisation, stocké dans un tableau associé à la séquence dans l'unité 4 du serveur 1. Ensuite, le décodeur de l'unité 15 procède à l'extraction des caractéristiques spatiales de l'image courante qui, dans ce mode de réalisation, sont représentées par l'énergie totale de tous les coefficients DCT (initiales des mots anglais Discrete Cosine Transform signifiant Transformée par Cosinus Discrète) de chaque bloc constituant l'image. Cette énergie est ensuite comparée à un seuil à l'étape E407 pour décider si l'image présente une faible activité spatiale (marquage LS , pour Low Spatial activity en anglais, à l'étape E408) ou une forte activité spatiale (marquage HS, pour High Spatial activity en anglais, à l'étape E409). On voit ainsi apparaître quatre classes possibles pour une image: HM/HS, HM/LS, LM/HS et LM/LS. Une fois le marqueur de l'image courante défini et inséré dans le tableau associé à la séquence dans l'unité 4 du serveur 1, on teste si l'on se trouve sur la dernière image ou non au cours de l'étape E410. S'il reste des images à traiter, on passe à l'image suivante lors de l'étape E411 puis on réitère les étapes E402 à E410. Si l'image courante est la dernière de la séquence, on passe alors à l'étape E412 qui réalise un post-traitement sur les marqueurs calculés. Ce post-traitement consiste à définir les segments en ne gardant comme marqueur que le marqueur le plus souvent rencontré dans les images successives correspondant, dans ce mode de réalisation, à une même seconde de la vidéo. Dans le présent mode de réalisation, les caractéristiques de tout segment de séquence vidéo donné après application de toute méthode de transcodage donnée sont enregistrées dans une structure de données appelée structure des solutions de transcodage (SST). De telles structures des solutions de transcodage ont été précédemment décrites, dans le cas particulier de structures de données XML, dans la demande de brevet français n 0206554 au nom de CANON (voir notamment dans ce document la description en référence à la figure 4b). Une SST est associée à chaque segment de chaque séquence de données introduite dans l'unité 4 du serveur 1 et également à chaque méthode de transcodage. Ainsi, dans ce mode de réalisation, chaque segment de séquence est associé à 48 SST. Une telle structure peut être représentée par une dizaine d'octets, ce qui nécessite de l'ordre de 500 octets par segment de vidéo et, à titre d'exemple, 3,5 Mo pour une séquence vidéo d'une durée de 2 heures qui serait découpée en segments de une seconde. Chaque SST contient un certain nombre d'informations 30 enregistrées dans des champs respectifs. Dans le présent mode de réalisation, on s'intéresse aux six informations suivantes: 1) la qualité visuelle moyenne induite par la méthode de transcodage: dans ce mode de réalisation, nous utiliserons pour cela le PSNR (initiales des mots anglais Peak Signal to Noise Ratio signifiant Rapport Signal sur Bruit Maximum) défini par PSNR = 10 loglo {(2Y)2/EQM} , où EQM est l'écart quadratique moyen entre la séquence vidéo demandée et la séquence transcodée, et Y la dynamique du signal originel, ici 8 bits, 2) le coût en mémoire, exprimé en Mo, 3) la puissance de calcul nécessaire pour un décodage en temps 10 réel, traduite en fréquence de processeur, exprimée en MHz, 4) le débit engendré par la méthode, exprimé en kbitls, 5) le format des images (résolution spatiale) après transcodage, et 6) la résolution temporelle des images. L'algorithme représenté sur la figure 6 permet de renseigner les 15 différents champs des structures des solutions de transcodage. Soit S la séquence au format MPEG-4 nouvellement stockée dans l'unité 4 du serveur 1, et T le nombre de méthodes de transcodage définies précédemment (soit, T = 48 dans ce mode de réalisation). L'algorithme débute à l'étape E601 par une phase d'initialisation d'une variable t à 0. Cette variable est dédiée au décompte des méthodes de transcodage. Durant cette même étape E601, on procède à l'extraction de la séquence S à traiter à partir de l'unité de stockage 4 du serveur 1, ainsi qu'à son insertion dans l'unité de stockage temporaire 19 du serveur 1, ceci afin de faciliter sa réutilisation dans la boucle sur les méthodes de transcodage. Durant cette étape E601, on récupère également, à partir de l'unité 4 du serveur 1, le marqueur indiquant la classe de la première image de la séquence S. Cette étape est suivie de l'étape E602 qui procède au décodage d'une image de la séquence S. L'image décodée est sauvegardée durant cette même étape E602 dans l'unité de stockage temporaire 19 du serveur 1. L'étape suivante, E603, consiste à récupérer depuis l'unité de stockage 4 du serveur 1 l'indicateur de classe de l'image suivante. Le marqueur ainsi lu est comparé au marqueur de l'image précédente au cours de l'étape E604. Si ce marqueur est identique au marqueur précédent, alors on retourne à l'étape E602 pour décoder l'image suivante, puis on réitère les étapes E603 et E604 jusqu'à ce que l'on trouve un marqueur différent ou bien que l'on atteigne la fin de la séquence S. Si au contraire le marqueur lu est différent du marqueur précédent, on en déduit qu'un segment complet de la séquence S a été décodé. Dans ce cas, on passe à l'étape E605 de réencodage de ce segment selon les paramètres d'encodage correspondant à la méthode de transcodage t. Avant de débuter le réencodage, les champs résolution spatiale et résolution temporelle de la SST associée à la méthode de transcodage t sont renseignés avec les valeurs visées par cette méthode de transcodage t. Le transcodage, qui est réalisé par l'unité de transcodage 17 du serveur 1, consiste, une fois un segment complet de la séquence S décodé, à le réencoder (étape E605) suivant les nouveaux paramètres associés à la méthode t. Pour une simple réduction de résolution spatiale, le codeur commencera par sous-échantillonner chaque image du segment de séquence décodé lors de l'étape E602. II retirera pour cela un pixel sur deux dans chaque ligne de chaque image de la séquence originale. II retirera dans un deuxième temps un pixel sur deux dans chaque colonne de chaque image de la séquence originale. II procédera ensuite au codage effectif de la séquence sous-échantillonnée. Pour une simple réduction de fréquence temporelle, si Ff et Fi sont respectivement les fréquences temporelles initiales et après transcodage, on retirera H = Ff - Fi images dans chaque groupe de Ff images successives du segment de séquence décodé lors de l'étape E602. Les H images retirées seront espacées le plus régulièrement possible dans chaque groupe de Fr images. Pour une simple requantification, on réencodera les images du segment de séquence décodé lors de l'étape E602 avec la nouvelle contrainte de débit imposée par la méthode de transcodage. Ceci suppose l'utilisation dans le codeur, lors de l'étape E605, d'un algorithme de régulation de débit. Dans ce mode de réalisation, nous utiliserons celui décrit par J. RibasCorbera et al. dans l'article intitulé Rate Control for Low-Delay Video Communication (Draft ITU-Telecommnications standardization sector, Q15A-20). Notons que les algorithmes de codage et de décodage sont ceux du standard MPEG-4. A l'étape E606, on vérifie que la tentative de réencodage de l'étape E605 a abouti. En effet, il peut se produire que, pour des raisons techniques, on ne soit pas capable de satisfaire une, ou plusieurs, des prescriptions (réduction de la résolution spatiale, réduction de la résolution temporelle, réduction de la finesse de l'image) associées à la méthode de transcodage considérée, quand on applique cette méthode au segment de séquence considéré. La méthode t de transcodage est alors notée comme étant non utilisable: les champs de la SST associée sont tous mis à zéro. Cette disposition permet avantageusement, au stade ultérieur de la prise de décision globale décrite ci-dessous en référence à la figure 7, de limiter l'espace de recherche de la solution optimale. On passe dans ce cas au test de la méthode de transcodage suivante (t+1) lors de l'étape E608 en vérifiant qu'il en existe une lors de l'étape E609. Le processus reprend alors par l'encodage, étape E605, du segment décodé lors de l'étape E602 encore présent en mémoire 19 du serveur 1, selon les nouveaux paramètres associés à la nouvelle méthode de transcodage. Une fois le segment réencodé conformément à la méthode de transcodage t, l'étape E607 permet à l'unité de transcodage 17 de calculer et d'enregistrer le débit r (en nombre de bits par seconde) pour ce segment. Ce calcul de débit consiste à examiner le nombre de bits B du flux transcodé ainsi que le nombre d'images N contenues dans ce même flux. Le débit r est ensuite donné par r = Fi x (BIN), où Ft' est la résolution temporelle associée au flux transcodé. Le segment de vidéo considéré est ensuite décodé à l'étape E610 de manière à évaluer sa qualité (son PSNR, dans ce mode de réalisation), ainsi que le coût de son décodage. Durant le décodage de l'étape E610, les images reconstruites sont conservées dans la mémoire 19 du serveur 1. A l'étape suivante (E611), on estime le coût en mémoire du décodage de l'étape E610 et stocke ce coût estimé dans le champ coût en mémoire de la SST associée à la méthode de transcodage t (ce coût dépend essentiellement, dans ce mode de réalisation, de la résolution spatiale des images à décoder). L'étape suivante, E612, consiste à estimer en termes de complexité algorithmique la puissance de calcul nécessaire pour réaliser la décompression et l'affichage du segment transcodé par la méthode t. A ce propos, on rappelle qu'un bloc est composé de 8 x 8 pixels et qu'un macrobloc (MB) est composé de 16 x 16 pixels, soit 4 blocs dits blocs de luminance , plus un certain nombre (entre 2 et 8) de blocs dits blocs de chrominance ; pour fixer les idées, on considérera cidessous qu'un MB vaut: 4 + 2 = 6 blocs . On rappelle également qu'une image est dite Intra si on peut la décoder sans avoir à se référer à une autre image; on dira que les macroblocs composant une telle image sont des macroblocs Intra . Enfin, une image est dite prédite lorsque son décodage doit faire appel à une image antérieure, et une image est dite bidirectionnelle lorsque son décodage doit faire appel à deux images, l'une antérieure et l'autre postérieure; les images prédites et les images bidirectionnelles forment ensemble les images dites Inter , qui sont composées à la fois de macroblocs Inter (nécessitant une référence pour leur décodage) et de macroblocs Intra (ne nécessitant aucune référence). Pour plus de détails sur ces différents types de codage d'image, ainsi que pour la définition d'un groupe d'images, on se référera à la norme ISO/IEC JTC1/SC 291WG11 N3056 mentionnée ci-dessus. Pour l'estimation de complexité, on récupère pour chaque image décodée le nombre de macroblocs Intra, que nous dénoterons par NMBôrlra, et g le nombre de macroblocs Inter, que nous dénoterons par NMBârigr, la constituant. Ces informations, qui ont été préalablement stockées dans l'unité 19 du serveur 1 lors de l'étape de décodage E610, nous permettent de trouver la complexité de chaque image au moyen de l'algorithme décrit dans la demande de brevet français n 0115092 au nom de CANON. La complexité d'une image est donnée par la formule suivante: Image = NMBorig X Ointra + NMBInter X Olnter orig où OIntra est la complexité de décodage pour un macrobloc de type lntra, et ()Inter est la complexité de décodage pour un macrobloc de type Inter. En parcourant toutes les images du segment courant, on recherchera l'image la plus complexe. Une borne supérieure du nombre d'opérations élémentaires par seconde nécessaires au décodage de la séquence sera déduite de la complexité de l'image la plus élevée, que nous noterons OmaxÉ On appellera cette borne supérieure O. Dans ce mode de réalisation, O sera calculée de la manière suivante: O = Omax x Ft x NMBtrans/NMBorig où Ft est la fréquence temporelle induite par la méthode de transcodage t (par exemple de 30!mis à 1 Im/s dans ce mode de réalisation), NMBtrans est le nombre de macrobloc par image dans la séquence transcodée (396 pour une séquence au format CIF, 99 pour une séquence au format QCIF), et NMBorig est le nombre de macrobloc par image dans la séquence originale (396 dans ce mode de réalisation). L'estimation de la complexité de décodage d'un macrobloc varie selon que le macrobloc est codé en mode Intra ou Inter. Dans ce mode de réalisation, nous estimerons ces deux valeurs selon les procédures suivantes. On va calculer d'abord une estimation de la complexité de 25 décodage Ointra pour un macrobloc de type Intra. Le décodage se fait bloc par bloc. Ainsi, la complexité de décodage d'un macrobloc de type Intra sera égale à la complexité liée au décodage des six blocs qui le composent. L'estimation de la complexité de décodage d'un bloc se fait en comptabilisant le nombre d'opérations élémentaires des différents algorithmes qui interviennent dans ce processus de décodage. Les valeurs de la complexité liée au décodage DCT sont données dans l'article de E. Feig et al. intitulé Fast Algorithms for the Discrete Cosine Transform (IEEE Trans. on Signal Processing, vol. 40, n 9, septembre 1992). La Table 1 détaille l'estimation de la complexité de décodage d'un bloc codé en mode Intra. La première colonne représente les différentes étapes de la reconstruction. En particulier, Inverse Q (pour Inverse Quantization en anglais) désigne l'étape de Quantification Inverse, et VLD (pour Variable-Length codes Decoding en anglais) désigne l'étape de décodage entropique intervenant entre la lecture des données numériques et la quantification inverse. La première ligne liste les différents types d'opérations intervenant dans chaque étape. Chaque case indique le nombre d'opérations d'un certain type pour une étape donnée. Toutes les opérations sont ici considérées comme élémentaires, sauf la multiplication qui est considérée comme équivalente à deux opérations élémentaires. La dernière ligne montre le nombre d'opérations élémentaires associé à chaque type d'opérations. En sommant les valeurs de la dernière ligne, on obtient le nombre total d'opérations élémentaires, soit 1989, nécessaires à la reconstruction d'un bloc Intra. Avec ces hypothèses, la complexité totale de décodage d'un macrobloc codé en mode Intra est de 6 x 1989 = 11934 opérations élémentaires. On va calculer à présent une estimation de la complexité de 25 décodage O, ntra pour un macrobloc de type Inter. Dans ce cas, il faut ajouter à la complexité d'un macrobloc codé en mode Intra, la complexité liée à la reconstruction du vecteur de mouvement à partir du vecteur de mouvement différentiel transmis, nécessaire à la reconstruction du macrobloc (reconstruction du macrobloc de différence et addition de ce macrobloc avec le macrobloc prédit). La Table 2 détaille l'estimation de cette complexité additionnelle requise pour le décodage d'un macrobloc codé en mode Inter. En faisant les mêmes hypothèses que celles décrites ci-dessus pour le mode Infra, on trouve que la complexité totale de décodage d'un macrobloc codé en mode Inter est de: 9279 + 11934 = 21213 opérations élémentaires. De retour à la figure 6, l'étape E612 va également mettre à jour le champ complexité de décodage de la SST associée à la méthode de transcodage t avec la valeur O estimée. Vient ensuite l'étape E613, au cours de laquelle on calcule la dégradation engendrée par le transcodage du segment courant. Cette dégradation est utilisée comme mesure de qualité du segment transcodé : plus la dégradation est faible, plus la qualité est jugée élevée. Le calcul de cette dégradation consiste à calculer le PSNR, pour chaque image du segment transcodé, avec comme référence les images décodées lors de l'étape E602, récupérées de l'unité 19 du serveur 1. La moyenne des PSNR sur le segment est ensuite conservée et stockée dans le champ PSNR de la SST associée à la méthode de transcodage t. Pour pouvoir calculer un PSNR représentatif, il est nécessaire de comparer des séquences de même format et de même fréquence temporelle. Pour cela, dans ce mode de réalisation, nous proposons donc de ramener les images du segment transcodé lors de l'étape E605 à la résolution temporelle et spatiale des images du segment original obtenues à l'étape E602. Lors d'une réduction de format et dans ce mode de réalisation, chaque pixel à la position spatiale (x, y) de la séquence codée sera répété quatre fois dans la séquence redimensionnée aux positions (2x, 2y), (2x+1, 2y), (2x, 2y+1) et (2x+1, 2y+1). Lors d'une réduction de la fréquence temporelle, on remplacera les images manquantes en répétant la dernière image reçue. Notons que cette procédure permet de simuler la perte de qualité due au changement de résolution aussi bien temporelle que spatiale. Suite à cette étape E613, on passe au test de la méthode de transcodage (t+1), à l'étape E608 suivante, si toutefois il en existe une (test de l'étape E609). Le processus s'arrête pour un segment lorsque la réponse au test de l'étape E609 donne faux . Les images décodées suite aux étapes E602 et E610 sont alors effacées de l'unité 19 du serveur 1 tout comme le segment réencodé lors de l'étape E605. S'il reste des segments à traiter (réponse non au test de l'étape E614), on itère cet algorithme à partir de l'étape E602. Le processus s'arrête pour la séquence S lorsque le dernier segment vient d'être traité (réponse vrai au test de l'étape E614). On va décrire à présent la partie on-line du procédé. Celle-ci intervient: - soit lors de la connexion d'un client, - soit lors de la déconnexion d'un client, - soit de façon cyclique si aucun client ne se connecte ou ne se déconnecte. Le but de cette partie on-line est tout d'abord de tirer parti de toutes les informations obtenues lors de la phase off-fine de l'algorithme afin d'optimiser l'ensemble des connexions pour satisfaire au mieux l'ensemble des utilisateurs connectés en un instant donné. Le moteur de décision 12 du serveur 1 a pour tâche, à partir de l'état du réseau et du contenu demandé, de trouver les paramètres de codage correspondant au mieux aux préférences d'un utilisateur donné et aux capacités de son récepteur. Dans le cadre de la présente invention, on désigne par consigne élémentaire de transcodage (CET) les paramètres déterminés par le moteur de décision 12 pour transcoder un groupe de données numériques associées à un contenu demandé par un client. Dans le présent mode de réalisation, on choisit comme paramètres pour chaque CET les informations suivantes: - la résolution spatiale des images, - la fréquence d'affichage de ces images, - le débit alloué, en kbit/s, pour la représentation du contenu compressé, et - la structure des groupes d'images: distance entre deux images 30 Intra, et nombre d'images bidirectionnelles consécutives. Le moteur de décision 12 dispose d'un espace mémoire lui permettant de sauvegarder ces consignes élémentaires de transcodage, suite à un processus de décision tel que celui décrit ci-dessous. Ce moteur de décision 12 pilote l'unité de transcodage 17 qui réalise, à partir des paramètres contenus dans les CET, l'adaptation d'un groupe de données numériques associées au contenu demandé par le client. Dans le présent mode de réalisation, cette adaptation est réalisée par un réencodage de type MPEG-4. De plus, le moteur de décision 12 maintient, dans une mémoire interne, une table des connexions décrite ci-dessous en référence à la figure 8. La figure 2 représente un algorithme on-line qui est mis en oeuvre suite à la connexion d'un client. La première étape, E200 de la figure 2, correspond à l'arrivée de la demande de la machine client 3 au serveur 1. Cette requête est stockée dans l'unité de stockage temporaire 19 du serveur 1 lors de l'étape E201 afin d'être traitée. La table des connexions en mémoire du moteur de décision 12 du serveur 1 est également mise à jour avec l'insertion d'un identifiant pour le nouveau client. L'alarme cyclique 20 du serveur 1 est également relancée. Le traitement débute par l'extraction des paramètres relatifs à la machine client 3 par l'unité 15 du serveur lors de l'étape E202. Cette étape est suivie de l'étape E203 de classification du client en fonction de ses capacités. Cette étape E203 est détaillée en sous-étapes sur 20 la figure 3. Sur la figure 3, l'étape E202 d'extraction des paramètres relatifs au client 3 est à nouveau mentionnée comme initialisation du processus de classification. On rappelle que dans le présent mode de réalisation, ces paramètres relatifs au client concernent la fréquence du processeur central, la taille de l'écran, et la mémoire vive dont dispose la machine client 3. Lors de l'étape E203a, la fréquence du processeur central du client est comparée à un seuil, par exemple 500 MHz dans ce mode de réalisation. Si cette fréquence est inférieure au seuil, alors (étape E203e) la machine client est immédiatement classée comme machine basse-qualité . Sinon, lors de l'étape E203b, la taille de mémoire vive (RAM) est également comparée à un seuil, égal à 128 Mo dans ce mode de réalisation. Si la machine client dispose d'une mémoire vive inférieure au seuil, cette machine est alors classée comme basse-qualité lors de l'étape E203e. Dans le cas contraire, lors de l'étape E203c, la taille de l'écran est comparée à une taille prédéfinie (352 x 288 dans ce mode de réalisation). Encore une fois, si la machine client dispose d'une résolution d'écran inférieure à ce seuil, elle est alors classée dans la catégorie basse-qualité lors de l'étape E203e. Dans le cas contraire, lors de l'étape E203d, la machine client est classée comme machine haute-qualité . Les étapes E203d et E203e correspondent à l'insertion dans la table des connexions du moteur de décision 12 du serveur 1, représentée en figure 8, d'un identifiant de la classe trouvée pour le client: sur cette figure, la classe basse-qualité est dénotée LQ (pour Low Quality ), et la classe haute qualité est dénotée HQ (pour High Quality ). Cet identifiant sera utilisé ultérieurement lors de l'étape E207 correspondant au calcul des nouveaux paramètres d'adaptation des vidéos demandées. L'intérêt de cette classification des clients est de limiter l'espace de recherche de la solution globale qui maximise la qualité de service des clients à un instant donné, et de réduire l'adaptation du contenu au client à un nombre limité de tests. Suite à l'étape E203 de classification, de nouveau en référence à la figure 2, intervient l'étape E204 où l'unité 15 du serveur 1 dédiée à la récupération d'informations sur le contenu retourne le nom de la vidéo demandée ainsi que l'identifiant de la classe de la première image (voir ci-dessus la description de la figure 4). Ces deux informations sont introduites dans la table des connexions du moteur de décision 12 du serveur 1, représentée en figure 8. A l'étape E205, on récupère au moyen de l'unité 14 du serveur 1 les caractéristiques du réseau: il s'agit là notamment de sa bande passante (ou débit maximal Rmax). A l'étape E206, on récupère les préférences de l'utilisateur au moyen de l'unité 16 du serveur 1; les informations correspondantes seront prises en compte lors de l'étape E509 décrite ci-dessous en référence à la figure 5. Intervient alors l'étape E207 de prise de décision sur les nouveaux paramètres de codage du contenu demandé ainsi que de tous les contenus en cours de transmission. Cette étape E207 est décrite plus bas en référence à la figure 7. Suite à cette étape, les nouvelles consignes de transcodage sont appliquées par l'unité 17 du serveur 1 sur les différents flux en cours de diffusion lors de l'étape E208, et les nouvelles données vidéo ainsi construites sont envoyées au client 3 par l'unité 18 du serveur 1 au cours de l'étape E209. La figure 5 représente un algorithme on-line qui est mis en 10 oeuvre suite à la déconnexion d'un client. Tout d'abord lorsqu'un client se déconnecte, le serveur 1 en est informé lors de l'étape E500. Il clôt la connexion avec le client concerné puis met à jour la table des connexions (illustrée figure 8). Cela est réalisé lors de l'étape E501 où les informations relatives à la connexion venant d'être fermée sont retirées de la table des connexions. Le serveur 1 met notamment à jour la valeur de Ctot, qui représente le nombre total de clients connectés. L'alarme cyclique 20 du serveur 1 est également relancée. Puis lors de l'étape E502, on définit la variable C, désignant l'index d'entrée dans la table des connexions, que l'on initialise à 1 de telle sorte que l'on pointe sur la première connexion. L'étape suivante E503 consiste à récupérer l'indice de la séquence ainsi que le numéro de la dernière image envoyée par l'unité 18 du serveur 1. Ce numéro d'image permet d'accéder au tableau associé à la séquence, en mémoire 4 du serveur 1, où sont stockés les indicateurs de classe des différents segments temporels ainsi que les SST associées. On identifie ainsi au cours de cette étape E503 la classe (HM/HS, HM/LS, LMILS ou LM/HS dans ce mode de réalisation) du prochain segment. Ensuite, via ce même tableau de l'unité 4, on récupère à l'étape E504 les SST associées au futur segment (aux nombre de 48 dans ce mode de réalisation). L'étape E505 consiste à récupérer dans la table de connexion du moteur de décision la classe du client associé à la connexion numéro C. On teste alors à l'étape E506 si ce client est de type basse-qualité ou non. S'il est de basse-qualité , on passe à l'étape E507 de pré-tri des SST par un simple seuillage de leurs champs: - puissance de calcul requise avec le seuil utilisé lors de l'étape E203a de la figure 3, - coût en mémoire avec le seuil utilisé lors de l'étape E203b de la figure 3, - résolution spatiale avec le minimum entre le seuil utilisé lors de l'étape E203c de la figure 3 et les préférences d'affichage de l'utilisateur récupérées par l'unité 16 du serveur 1 lors de l'étape E206 de la figure 2, et - résolution temporelle avec la fréquence d'affichage voulue par l'utilisateur, également récupérée par l'unité 16 du serveur 1 lors de l'étape E206 de la figure 2. Si au moins l'une de ces grandeurs dépasse un des seuils, la méthode de transcodage associée est considérée comme non pertinente pour l'adaptation future du contenu. Cette information est répercutée à l'étape E509 dans la table de connexion du moteur de décision 12 (voir les x de la figure 8). Ceci a pour effet d'éliminer rapidement des SST du processus de sélection de l'ensemble des SST qui permet de maximiser la qualité pour tous les utilisateurs connectés. Si le client est dit haute-qualité , le processus de présélection des SST de l'étape E509 est moins immédiat: il faut au préalable, lors d'une étape E508, récupérer la fréquence du processeur central du client, la taille de sa mémoire et les dimensions de son écran. Puis, pour chaque SST, une comparaison de la fréquence CPU du client avec le champ puissance de calcul nécessaire est effectuée. Si le client dispose de la puissance nécessaire, on vérifie alors qu'il en est de même pour la taille de sa mémoire puis pour les dimensions de son écran. Chaque SST qui, d'une part, nécessite des ressources inférieures ou égales aux capacités du client, et d'autre part produit une séquence transcodée dont les résolutions spatiale et temporelle restent compatibles avec les préférences de l'utilisateur, est insérée dans la table des connexions du moteur de décision 12. Toutes les autres, marquées x dans la table de connexions, sont exclues du processus de décision pour l'adaptation globale. On teste ensuite à l'étape E510 si c'était la dernière connexion. Si oui, on passe alors, à l'étape E512, au processus de décision pour l'adaptation globale décrit plus bas. Sinon, l'étape E511 permet de pointer sur la connexion suivante pour laquelle on réitère les étapes E503 à E510, et cela jusqu'à la dernière connexion. Le troisième et dernier cas déclenchant la partie on-line de l'invention est la renégociation périodique que nous détaillons maintenant. Cette renégociation est déclenchée par l'alarme cyclique 20 du serveur 1 de la figure 1, toutes les quinze secondes dans ce mode de réalisation. Des qu'une connexion ou une déconnexion intervient, l'alarme est remise à sa valeur de départ (quinze secondes) et le compte à rebours est enclenché. Si au bout de quinze secondes, aucune connexion ou déconnexion n'est intervenue, alors le moteur de décision 12 du serveur 1 est informé de l'échéance de l'alarme et procède à une renégociation des connexions. Cette renégociation est effectuée de la même façon que lors de la déconnexion d'un client, c'est à dire selon les étapes E502 à E512 de la figure 5. L'alarme est ensuite remise à sa valeur de départ puis un nouveau compte à rebours est enclenché. Enfin, la dernière étape de la partie on-line de l'invention restant à décrire est une étape-clé de l'invention: la prise de décision pour l'adaptation globale (étapes E207 de la figure 2 et E512 de la figure 5). Cette étape s'appuie sur la table des connexions du moteur de décision 12 et notamment sur les SST associées à chaque connexion. Comme indiqué cidessus, l'adaptation du contenu doit prendre en compte: - les caractéristiques du contenu, - les caractéristiques des machines client, les préférences des utilisateurs, et - les contraintes du réseau. Le premier point est réalisé par la classification du contenu en segments temporels de mêmes propriétés, décrite dans la partie off-line de l'invention en référence à la figure 4. Les deuxième et troisième points sont pris en compte par l'étape E509 de la figure 5 de présélection des SST associées aux segments de chaque séquence en cours d'adaptation. Reste donc à considérer le dernier point relatif à la contrainte réseau, à savoir la bande passante disponible au moment de la prise de décision. Le but de cette étape est donc de trouver la combinaison de SST (une par connexion, évidemment) qui maximise la qualité globale de la transmission et qui respecte la contrainte suivante: la somme des débits de chaque connexion doit rester inférieure ou égale à la bande passante disponible. Les informations de débit et de qualité liées à une connexion sont des champs directement disponibles dans les SST associées à la connexion considérée. La recherche de la solution globale est donc ramenée au compromis classique débit/distorsion: minimiser la distorsion sous une contrainte de débit maximum. Pour trouver cette solution, la méthode la plus simple consiste à effectuer une recherche exhaustive parmi l'ensemble des SST présentes dans la table des connexions du moteur de décision 12. Cette méthode est illustrée en figure 7. Sur cette figure apparaissent les principales étapes de la recherche. Tout d'abord lors de l'étape E700, une initialisation de la recherche est effectuée (on rappelle que R. représente le débit maximal disponible pour le réseau, et qu'il a été obtenu lors de l'étape E205 par l'unité 14 du serveur 1). On dénote par ctot R = Er(C) c=1 le débit cumulé, où r(C) désigne le débit associé à une SST envisagée pour le client numéro C. Enfin, on dénote par Q la qualité globale de l'ensemble des connexions; cette qualité globale Q peut, par exemple, être simplement calculée selon l'expression Ctot Q = E PSNR(C) , c=1 où PSNR(C) est le PSNR associé à une SST envisagée pour le client numéro C; mais on pourra commodément, en variante, utiliser une somme pondérée en fonction de certains critères prédéterminés, par exemple le fait que certains clients sont privilégiés par rapport aux autres. Les valeurs de R et de Q sont initialisées à zéro lors de l'étape E700. Si l'on considère le nombre T de méthodes de transcodage possibles, 48 dans ce mode de réalisation, une recherche exhaustive donnerait TCtot possibilités. Avantageusement, la présélection de l'étape E509 (voir figure 5) permet de réduire la recherche à ctot cardssT (C) c=1 où cardssT (C) représente le nombre de SST pertinentes associées à une connexion C donnée, présentes dans la table des connexions (en pratique, on fixera naturellement les divers seuils et paramètres pour qu'il existe au moins une SST pertinente quelle que soit la connexion, autrement dit cardssT (C) est toujours au moins égal à 1). Chaque solution globale est représentée par: - la liste des Ctot SST, - le débit R engendré, et - la qualité Q résultante, et, pour être admissible, elle doit vérifier: R RmaxÉ L'étape d'initialisation E700 se termine par l'allocation en mémoire du moteur de décision 12 d'une zone réservée au stockage d'une telle solution globale. L'étape suivante E701 est une étape de parcours, de la première vers la dernière connexion, d'une branche de l'arbre formé par l'ensemble des SST présentes dans la table des connexions du moteur de décision 12 (voir figure 8). Lors du parcours d'une branche, le débit cumulé R et la qualité globale Q sont mis à jour. Ensuite, à la fin du parcours de la branche, R est comparé à Rmax lors de l'étape E702. Si R reste inférieur ou égal à Rmax, alors on compare la qualité globale Q à la qualité de la dernière branche mémorisée comme solution possible (comparaison à zéro lors du parcours de la première branche). Ceci est réalisé lors de l'étape E703. Si la qualité est inférieure à la qualité de la solution précédente, alors on passe à l'exploration de la branche suivante, s'il en existe une (test de l'étape E704). Au contraire, si le test de l'étape E703 donne vrai , alors la liste de SST correspondant à la branche explorée est enregistrée (étape E705) dans la zone allouée en mémoire du moteur de décision 12 lors de l'étape E700. La valeur de qualité Q associée est également sauvegardée lors de l'étape E705. Les étapes E701 à E705 sont réitérées jusqu'à ce que tout l'arbre ait été parcouru. Les méthodes de transcodage à appliquer à chaque connexion sont alors copiées dans la zone mémoire du moteur de décision réservée aux consignes élémentaires de transcodage, pour application lors de l'étape E208 décrite ci-dessus. Si toutefois, lors de ce processus de recherche et spécifiquement en cas de connexion d'un nouveau client, aucune branche de l'arbre ne donne une solution acceptable (pour laquelle R Rmax), alors ce nouveau client est informé que le service n'est pas disponible immédiatement, libre à lui d'attendre ou de se déconnecter. Le schéma synoptique de la figure 9 représente, de façon très simplifiée, un ordinateur 90 incorporant le serveur 1, qui est réalisé ici sous la forme d'une unité logique. Cet ordinateur 90 est apte à traiter des données numériques multimédia en vue de les transmettre. Dans ce mode de réalisation, les procédés de récupération du contexte, de codage et de décodage, et d'adaptation des paramètres de codage sont mis en oeuvre sous la forme de programmes d'ordinateur. Un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non à cet ordinateur, et éventuellement amovible, est adapté à mémoriser un programme mettant en oeuvre les procédés d'adaptation conformes à l'invention; en variante, lesdits programmes peuvent être figés dans des circuits intégrés à application spécifique (ASIC). Sur la figure 9, l'ordinateur 90, qui peut être un micro-ordinateur ou une station de travail, est connecté à différents périphériques, par exemple une caméra numérique 910 ou tout autre dispositif d'acquisition ou de stockage d'images, tel qu'un scanner, fournissant à l'ordinateur des vidéos à adapter et à transmettre. Ces vidéos peuvent être stockées dans les moyens de stockage dont dispose l'ordinateur tels qu'un disque dur 904. L'ordinateur 90 comporte également une interface de 5 communication 908, associée au dispositif d'envoi et de réception 18 du serveur 1, reliée au réseau de communication 2. L'ordinateur 90 comporte également des moyens de stockage de données tels que le disque dur 904, un lecteur de disquettes 905 permettant d'écrire des données sur une disquette 906 et de lire ces données. L'ordinateur 90 peut également comporter un lecteur de compact disques (CDROM) (non représenté), ainsi qu'un lecteur de cartes informatiques (PC-CARD) (non représenté). Les données numériques de la base de données 4 peuvent être stockées sur l'un de ces moyens de stockage, ou sur une unité supplémentaire extérieure à l'ordinateur 90. Dans ce mode de réalisation, le code exécutable des programmes permettant de mettre en oeuvre les procédés d'adaptation de vidéos selon l'invention, est mémorisé dans le disque dur 904. Selon une variante de réalisation, le code exécutable de ces programmes est stocké dans une mémoire ROM 900 de l'ordinateur. Selon une seconde variante de réalisation, le code exécutable du ou des programmes peut être téléchargé à partir du réseau de communication 2 via l'interface de communication 908, pour être mémorisé sur le disque dur 904. L'ordinateur 90 comporte en outre un écran 902 permettant de visualiser les vidéos à traiter et servir d'interface graphique avec l'utilisateur, et un dispositif de pointage (non représenté), tel qu'une souris ou un crayon optique, ou d'un clavier 903 de manière à pouvoir interagir avec le programme. L'ordinateur comporte une unité centrale de traitement (CPU) 901, par exemple un microprocesseur, qui commande et dirige l'exécution des instructions du (ou des) programme(s) de l'invention stockés dans la ROM 900 ou dans le disque dur 904. L'unité centrale 901 exerce la fonction de l'unité de commande 11 décrite ci-dessus en relation avec la figure 1. L'ordinateur 90 comporte également une mémoire RAM 907. Comme on peut le voir dans la représentation agrandie de la RAM 907 à la figure 9, cette dernière comporte des registres destinés à mémoriser les variables créées et modifiées pendant l'exécution du (ou des) programme(s) selon l'invention, notamment les variables mentionnées plus haut dans l'exposé, en relation avec les figures 6 et 7. Finalement, l'ordinateur 90 comporte un bus de communication 911 pour permettre la communication et l'interopérabilité entre les différentes unités précitées composant l'ordinateur. Traitement Test Multiplication Addition Affectation VLD pour DCT 64 Inverse Q 192 256 192 Saturation 128 64 Contrôle 2 64 65 Inverse DCT 94 454 64 Total (en opérations élémentaires) 322 2 x 350 582 385 Table 1 Traitement Test Multiplication Addition Affectation VLD pour vecteur mouvement 2 Reconstruction vecteur mouvement 7 5 13 11 Reconstruction MB différence 1288 1400 2328 1540 Construction du MB prédit 512 256 Reconstruction du MB 256 256 Total (en opérations élémentaires) 1295 2 x 1405 3109 2065 Table 2 REVENDICATIONS 1. Procédé de distribution de flux de données numériques, dans lequel un ou plusieurs dispositifs dits serveurs (1) transfèrent un flux de données numériques par l'intermédiaire d'un réseau (2) vers un dispositif dit client (3) appartenant à une pluralité de clients (3) suite à la demande de ce client (3), dans lequel lesdites données numériques peuvent être transcodées selon une pluralité de méthodes de transcodage prédéterminées, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes: a) le calcul (E607) du débit associé à chacun desdits flux après application d'au moins une parmi ladite pluralité de méthodes de transcodage, b) la classification des clients (3) connectés au réseau (2) d'après des caractéristiques préenregistrées concernant les capacités d'un ensemble de dispositifs clients (3), c) la détermination (E509), parmi ladite pluralité de méthodes de transcodage prédéterminées, de celles qui sont admissibles pour chaque client (3) connecté au réseau (2), en fonction desdits débits calculés et de ladite classification des clients, et d) la sélection globale d'un ensemble de méthodes de transcodage, chaque méthode étant associée à un client (3) connecté au réseau (2), parmi lesdites méthodes admissibles, en fonction de critères prédéterminés comprenant au moins le respect de la bande passante du réseau (2). 2. Procédé selon la revendication 1, caractérisé en ce que lesdites capacités d'un dispositif client (3) comprennent la fréquence de son processeur central, et/ou la taille de sa mémoire vive, et/ou les dimensions de son moniteur. 3. Procédé selon la revendication 1 ou la revendication 2, caractérisé en ce que lesdits critères prédéterminés pour la sélection globale comprennent la prise en compte, outre le débit, d'autres caractéristiques du contenu du flux de données demandé par chaque client (3) connecté au réseau (2). 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit flux de données demandé par un client (3) est associé à une vidéo, et en ce que les caractéristiques de cette vidéo pouvant être prises en compte comprennent la résolution spatiale, et/ou la résolution temporelle, et/ou l'activité spatio-temporelle de segments temporels de cette vidéo dans lesquels les caractéristiques prises en compte ont une valeur relativement uniforme. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une étape (E206) de récupération de certaines préférences des utilisateurs des dispositifs clients (3), et en ce que ladite détermination, à l'étape c), des méthodes de transcodage admissibles pour chaque client (3) connecté au réseau (2) tient également compte de ces préférences. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdits critères prédéterminés pour la sélection globale comprennent la prise en compte, outre sa bande passante, d'autres caractéristiques du réseau (2). 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdits critères prédéterminés pour la sélection globale comprennent la maximisation d'un facteur de qualité global Q calculé, pour tout ensemble donné de couples (flux de données, et méthode de transcodage), en fonction de facteurs de qualité individuels q respectivement attachés à au moins certains de ces couples. 8. Procédé selon la revendication 7, caractérisé en ce que le facteur de qualité global Q est égal à la somme des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client (3) 25 connecté au réseau (2). 9. Procédé selon la revendication 7, caractérisé en ce que le facteur de qualité global Q est égal à une somme pondérée des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client (3) connecté au réseau (2). 10. Procédé selon l'une quelconque des revendications 7 à 9, caractérisé en ce que ledit facteur de qualité individuel q est obtenu en codant le flux de données considéré avec la méthode de transcodage considérée, et en calculant q = 10 logio {(2Y)2/EQM} , où EQM est l'écart quadratique moyen entre les flux de données avant et après transcodage, et Y la dynamique du signal originel. 11. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite sélection globale est mise en oeuvre à chaque fois qu'un client (3) se connecte au réseau (2), et à chaque fois qu'un client (3) précédemment connecté au réseau (2) se déconnecte. 12. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite sélection globale est mise en oeuvre à chaque fois qu'une alarme cyclique programmable (20) arrive à échéance. 13. Serveur (1) pour la distribution de flux de données numériques par l'intermédiaire d'un réseau (2) vers un dispositif dit client (3) appartenant à une pluralité de clients (3) suite à la demande de ce client (3), lesdites données numériques pouvant être transcodées selon une pluralité de méthodes de transcodage prédéterminées, caractérisé en ce qu'il comprend: - une unité de transcodage (17) apte à calculer le débit associé à chacun desdits flux après avoir appliqué au moins une parmi ladite pluralité de 20 méthodes de transcodage, - une unité (13) de récupération des capacités d'un ensemble de dispositifs clients (3), et un moteur de décision (12) apte É à déterminer, parmi ladite pluralité de méthodes de transcodage prédéterminées, celles qui sont admissibles pour chaque client (3) connecté au réseau (2), en fonction desdits débits calculés et de ladite classification des clients, et É à opérer une sélection globale d'un ensemble de méthodes de transcodage, chaque méthode étant associée à un client (3) connecté au réseau (2), parmi lesdites méthodes admissibles, en fonction de critères prédéterminés comprenant au moins le respect de la bande passante du réseau (2). 14. Serveur selon la revendication 13, caractérisé en ce que ladite unité (13) de récupération des capacités d'un ensemble de dispositifs clients (3) est apte à récupérer, pour chaque client (3) connecté au réseau (2), la fréquence de son processeur central, et/ou la taille de sa mémoire vive, et/ou les dimensions de son moniteur. 15. Serveur selon la revendication 13 ou la revendication 14, caractérisé en ce qu'il comprend en outre une unité (15) de récupération d'informations sur le contenu du flux de données demandé par chaque client (3) connecté au réseau (2). 16. Serveur selon l'une quelconque des revendications 13 à 15, caractérisé en ce que ledit flux de données demandé par un client (3) est associé à une vidéo, et en ce que ladite sélection globale opérée par le moteur de décision (12) prend en compte des caractéristiques de cette vidéo comprenant la résolution spatiale, et/ou la résolution temporelle, et/ou l'activité spatio-temporelle de segments temporels de cette vidéo dans lesquels les caractéristiques prises en compte ont une valeur relativement uniforme. 17. Serveur selon l'une quelconque des revendications 13 à 16, caractérisé en ce qu'il comprend en outre une unité (16) apte à récupérer certaines préférences des utilisateurs des dispositifs clients (3), et en ce que ledit moteur de décision (12) est apte à prendre en compte ces préférences. 18. Serveur selon l'une quelconque des revendications 13 à 17, caractérisé en ce qu'il comprend en outre une unité (14) apte à récupérer des caractéristiques du réseau (2) comprenant au moins sa bande passante, et en ce que ledit moteur de décision (12) est apte à prendre en compte ces caractéristiques du réseau (2). 19. Serveur selon l'une quelconque des revendications 13 à 18, caractérisé en ce que ladite sélection globale opérée par le moteur de décision (12) comprend la maximisation d'un facteur de qualité global Q calculé, pour tout ensemble donné de couples (flux de données, et méthode de transcodage), en fonction de facteurs de qualité individuels q respectivement attachés à au moins certains de ces couples. 20. Serveur selon la revendication 19, caractérisé en ce que ledit facteur de qualité global Q est égal à la somme des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client (3) connecté au réseau (2). 21. Serveur selon la revendication 19, caractérisé en ce que ledit facteur de qualité global Q est égal à une somme pondérée des facteurs de qualité individuels q attachés chacun respectivement au flux de données demandé par un client (3) connecté au réseau (2). 22. Serveur selon l'une quelconque des revendications 19 à 21, caractérisé en ce que ledit facteur de qualité individuel q est obtenu en codant le flux de données considéré avec la méthode de transcodage considérée, et en calculant q = 10 logio {(2Y)2/EQM} , où EQM est l'écart quadratique moyen entre les flux de données avant et après transcodage, et Yla dynamique du signal originel. 23. Serveur selon l'une quelconque des revendications 13 à 22, caractérisé en ce que ledit moteur de décision (12) met en oeuvre ladite sélection globale à chaque fois qu'un client (3) se connecte au réseau (2) , et à chaque fois qu'un client (3) précédemment connecté au réseau (2) se déconnecte. 24. Serveur selon l'une quelconque des revendications 13 à 23, caractérisé en ce qu'il comprend en outre une alarme cyclique programmable (20), et en ce que ledit moteur de décision (12) met en oeuvre ladite sélection globale à chaque fois que ladite alarme cyclique (20) arrive à échéance. 25. Ordinateur (90), caractérisé en ce qu'il comprend un serveur (1) selon l'une quelconque des revendications 13 à 24, ainsi que des moyens de stockage de données numériques (904, 906) et des moyens de lecture et d'écriture (905) de ces données numériques. 26. Moyen de stockage de données inamovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de distribution de flux de données numériques selon l'une quelconque des revendications 1 à 12. 27. Moyen de stockage de données partiellement ou totalement amovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de distribution de flux de données numériques selon l'une quelconque des revendications 1 à 12. 28. Programme d'ordinateur, caractérisé en ce qu'il contient des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre un procédé de distribution de flux de données numériques selon l'une quelconque des revendications 1 à 12.