Brevet FR2837330A1 — publié le 20030919

La présente invention concerne un procédé et un dispositif de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia, les données étant susceptibles d'être transférées entre au moins deux appareils de communication par l'intermédiaire d'un réseau de communication. L'avancement technologique des appareils de communication numériques tels que les téléviseurs, les micro-ordinateurs de poche, les microordinateurs classiques ou tout autre appareil miniaturisé est tel que, dans les années à venir, il sera très probablement possible d'échanger des données de type multimédia et, 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 appareils de communication à condition que le prix ne soit pas trop excessif et, surtout, que les services rendus soient de bonne qualité. Suite à l'identification de ce nouveau marché, de nombreuses études ont été menées concernant la miniaturisation des composants électroniques, de manière à obtenir des appareils ayant des capacités de mémoire et de calcul élevées dans un volume aussi réduit que possible. En outre, 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 ceux de la famille IEEE 802, permettent à la fois la mise en #uvre et la gestion du transfert des données via un réseau particulier. Le standard IEEE 802.11et son homologue européen HYPERLAN sont dédiés aux réseaux locaux sans fil. Ils sont particulièrement étudiés actuellement car ce sont des réseaux larges bandes permettant de transmettre des données audio et/ou vidéo entre deux machines qui sont géographiquement proches. Ces standards sont donc particulièrement adaptés pour développer des réseaux locaux sans fil à l'intérieur des habitations. Les solutions techniques étudiées actuellement dans le cadre des standards susvisés appliqués aux réseaux locaux domestiques 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 plusieurs clients (communication multi-points) et ce, sans aucun fil. Dans cet environnement, les données sont stockées sur le serveur qui centralise toutes les communications avec le ou les clients. Ce serveur peut également servir de passerelle avec le monde extérieur (Internet, télévision, caméscope ...). Il 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 #uvre de services autour de la télévision interactive et l'échange d'informations sur l'Internet, peu d'entre eux traitent des problèmes liés à la mise en #uvre de réseaux locaux domestiques, à savoir la mise en place de solutions permettant d'obtenir une qualité de services acceptable. A cet égard, il convient de noter que le transport de données à travers un réseau local n'est pas un service aisé à mettre en place. On connaît un système de communication d'après l'article "Transcoding Internet Content for Heterogeneous client devices" de J. Smith, R. Mohan, C-S. Li, Proc Int. Conf on circuits and Syst. (ISCAS), May 1998, qui prévoit d'adapter dynamiquement le contenu des données vidéo à transmettre à un appareil de communication à des caractéristiques de l'appareil et aux ressources du réseau. Pour ce faire, il est proposé un processus de sélection d'une méthode de transcodage qui soit adaptée à la catégorie de l'appareil et aux caractéristiques précitées de cet appareil et du réseau. Plus particulièrement, ce processus de sélection recherche parmi les méthodes de transcodage qui sont adaptées à l'appareil et aux caractéristiques susvisées la méthode pour laquelle on obtient une valeur maximale de fidélité. On notera que la mesure de fidélité est représentative de l'impact de la méthode de transcodage. Un processus de sélection d'une méthode de transcodage parmi un ensemble de méthodes de transcodage est également connu d'après l'article intitulé "Modeling Quality Adaptation Capabilities of Audio-Visual Data", H. Kosch, L. Bôszôrményi and H. Hellwagner. Institute of information technology, University Klagenfurt, Austria, July 2001. Dans cet article, on propose de classer des méthodes de transcodage sur une échelle de qualité graduée de 0 à 1,1 représentant une qualité de restitution parfaite des données alors que 0 indique que les données multimédia transcodées sont très peu représentatives des données avant transcodage. Pour évaluer la qualité induite par une méthode de transcodage, il est par exemple possible d'effectuer d'abord un transcodage selon la méthode testée, puis un décodage et une mesure de la qualité, et ce pour l'ensemble des méthodes de transcodage considérées. Cependant, cette approche est coûteuse en termes de calcul et d'espace mémoire nécessaire. La présente invention propose de remédier à au moins un des inconvénients précités en proposant un nouveau procédé et un nouveau dispositif qui permettent d'évaluer de façon simple la qualité de méthodes de transcodage de données numériques multimédia et de sélectionner l'une de ces méthodes à partir des valeurs de qualité obtenues pour chaque méthode. La présente invention a ainsi pour objet un procédé de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia, lesdites données étant susceptibles d'être transférées entre au moins deux appareils de communication par l'intermédiaire d'un réseau de communication, caractérisé en ce que le procédé comporte les étapes suivantes : - pour chaque méthode de transcodage, obtention d'une valeur de distorsion à partir d'un modèle mathématique d'établissement de la distorsion en tenant compte de ladite méthode de transcodage, le modèle de distorsion étant appliqué à des informations représentatives des données numériques, - sélection d'une méthode de transcodage en fonction des différentes valeurs de distorsion obtenues pour l'ensemble des méthodes de transcodage. Corrélativement, l'invention a pour objet un dispositif de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia, lesdites données étant susceptibles d'être transférées entre au moins deux appareils de communication par l'intermédiaire d'un réseau de communication, caractérisé en ce que le dispositif comporte : - pour chaque méthode de transcodage, des moyens d'obtention d'une valeur de distorsion à partir d'un modèle mathématique d'établissement de la distorsion en tenant compte de ladite méthode de transcodage, le modèle de distorsion étant appliqué à des informations représentatives des données numériques, - de moyens de sélection d'une méthode de transcodage en fonction des différentes valeurs de distorsion obtenues pour l'ensemble des méthodes de transcodage. En utilisant un modèle de distorsion pour évaluer la qualité d'un ensemble de méthodes de transcodage, on réduit de manière significative la complexité de calcul nécessaire à l'évaluation de la qualité selon l'art antérieur. De même, l'espace mémoire nécessaire à l'évaluation de la qualité des méthodes de transcodage est également réduit par rapport à celui nécessaire dans l'art antérieur. Par ailleurs, la sélection d'une méthode de transcodage parmi un ensemble de méthodes de transcodage selon l'invention prend en compte les données numériques multimédia qui sont susceptibles d'être transférées sur le réseau de communication, contrairement à l'art antérieur. Ceci est particulièrement avantageux dans la mesure où la Demanderesse s'est aperçue que, selon les données considérées, l'impact de la méthode de transcodage sur la qualité peut considérablement varier. Ainsi, par exemple, une séquence de données vidéo où les mouvements sont très nombreux et de grande amplitude subira une réduction très marquée de la qualité lors de la mise en #uvre d'une méthode de transcodage basée sur la réduction de la fréquence temporelle. Au contraire, cette même méthode appliquée à une séquence vidéo plus statique aura beaucoup moins d'impact sur la qualité. Selon une caractéristique, le procédé comporte les étapes suivantes pour chaque méthode de transcodage, obtention d'une valeur de débit à partir d'un modèle mathématique d'établissement du débit en tenant compte de ladite méthode de transcodage, le modèle de débit étant appliqué à des informations représentatives des données numériques, - sélection d'une méthode de transcodage en fonction, d'une part, des différentes valeurs de débit et, d'autre part, des différentes valeurs de distorsion obtenues pour l'ensemble des méthodes de transcodage. Ainsi, l'invention prévoit également d'évaluer le débit induit par chaque méthode de transcodage en prenant en compte les données susceptibles d'être transférées sur le réseau de communication, avant de sélectionner une méthode. La sélection d'une méthode s'effectue alors à partir des valeurs de distorsion et de débit obtenues pour chaque méthode. Selon une première approche, le procédé comporte, préalablement à l'étape d'obtention, une étape d'adaptation du modèle à chaque méthode de transcodage. Selon une deuxième approche, le procédé comporte, préalablement à l'étape d'obtention, une étape de traitement des données numériques de façon adaptée à chaque méthode de transcodage. Suivant cette deuxième approche alternative, ce n'est pas le modèle qui est adapté à la méthode de transcodage mais ce sont les données. Plus particulièrement, le traitement adapté à la méthode de transcodage est appliqué aux informations représentatives des données numériques sur lesquelles le modèle de distorsion et, éventuellement, le modèle de débit seront appliqués. Par exemple, dans le cas de données vidéo, si la méthode de transcodage est une méthode de réduction de la fréquence temporelle, on aura fait subir aux données vidéo une réduction du nombre d'images par seconde. A partir des données vidéo qui résultent de cette réduction, on détermine certaines informations qui sont représentatives de ces données et auxquelles on applique le ou les modèles précités. Selon une caractéristique, le procédé comporte une étape de test de la compatibilité de chaque méthode de transcodage avec au moins une contrainte associée à au moins un des appareils de communication et/ou au réseau. Les données susceptibles d'être transférées doivent en effet être adaptées au contexte dans lequel elles sont transmises, à savoir, par exemple, une ou plusieurs caractéristiques du ou des appareils de communication devant recevoir les données. Une caractéristique peut être, par exemple, la capacité de calcul de l'un des appareils. Il peut également s'agir du débit autorisé sur le réseau de communication. Selon une autre caractéristique, le modèle de distorsion établit une relation entre la distorsion et l'énergie du signal représenté par les données numériques. Selon une autre caractéristique, le modèle de débit établit une relation entre le débit et l'énergie du signal représenté par les données numériques. L'invention concerne également un appareil de communication comportant un dispositif tel que brièvement exposé ci-dessus. Selon un autre aspect, l'invention vise aussi : - un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui exposé brièvement ci-dessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui brièvement exposé ci-dessus. Selon encore un autre aspect, l'invention vise un programme d'ordinateur chargeable dans un appareil programmable, comportant des séquences d'instructions ou portions de code logiciel pour mettre en #uvre des étapes du procédé selon l'invention tel que brièvement exposé ci-dessus, lorsque ledit programme d'ordinateur est chargé et exécuté sur l'appareil programmable. Les caractéristiques et avantages relatifs au dispositif, à l'appareil de communication comportant un tel dispositif, aux moyens de stockage d'informations et au programme d'ordinateur étant les mêmes que ceux exposés ci-dessus concernant le procédé selon l'invention, ils ne seront pas rappelés ici. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description qui va suivre, faite en référence aux dessins annexés, sur lesquels : - la figure 1 représente de manière schématique une architecture de communication de type client-serveur dans laquelle l'invention peut être mise en #uvre ; - la figure 2 représente un algorithme de traitement de données vidéo selon l'invention ; - la figure 3a représente un algorithme de codage de données vidéo ; - la figure 3b représente un algorithme de décodage de données vidéo ; - la figure 4 représente un algorithme de sélection d'une méthode de transcodage de données numériques multimédia selon l'invention et qui correspond à l'étape E208 de l'algorithme de la figure 2 ; - la figure 5 représente une variante de réalisation de l'algorithme de la figure 4 ; - la figure 6 représente un algorithme de détermination des paramètres de modèles mathématiques d'établissement d'un débit et d'une distorsion ; - la figure 7 est un mode de réalisation d'un appareil programmable mettant en #uvre l'invention. Sur la figure 1 est représenté une architecture de communication du type client-serveur dans laquelle l'invention est avantageusement mise en oeuvre ; Sur cette figure, un premier appareil de communication 1 jouant le rôle du serveur est relié à un deuxième appareil de communication 2 qui est la machine client, par l'intermédiaire d'un réseau de communication 3 et d'une connexion qui est considérée 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 est conforme au standard I EEE802.11. Il s'agit dans l'exemple considéré d'une transmission point à point de données entre le serveur 1 et la machine client 2. Cependant, le principe reste applicable au cas où le serveur est connecté simultanément à plusieurs machines client qui peuvent requérir du serveur des données numériques multimédia. Il convient toutefois, dans ce cas, de prendre en compte, d'une part, la gestion des processus d'adaptation et de transmission en parallèle des différentes versions adaptées des données demandées et, d'autre part, les accès multiples à la ou aux mémoires du serveur. On notera que les données stockées dans le serveur peuvent avoir été reçues de l'environnement extérieur à l'habitation, par exemple, par un autre réseau de communication tel que l'Internet. Les données regroupées sous le terme données multimédia peuvent être, de manière non limitative, des images fixes, des vidéos, du son, des données de type texte (ex : documents graphiques ...), des documents en langage HTML, des signaux issus d'un télécopieur ou d'une imprimante ... Dans l'exemple de réalisation considéré, on considérera uniquement des données vidéo et celles-ci seront transmises sans perte sur le réseau 3. Le dispositif selon l'invention permet, d'une manière générale, de sélectionner une méthode de transcodage parmi un ensemble de méthodes de transcodage en prenant en compte le contenu des données demandées par une machine client. Le dispositif 4 selon l'invention est par exemple intégré au serveur 1 de la figure 1 et peut comporter des éléments électroniques et/ou des éléments logiciels. Toutefois, le dispositif selon l'invention pourrait, par exemple, être confondu avec le serveur 1. Le dispositif 4 comporte des unités 11 et 12 qui permettent respectivement de coder et décoder une vidéo. Le serveur comprend une unité 5 de stockage de données numériques telles que des vidéos. Les algorithmes des procédés de codage et décodage seront décrits respectivement en référence aux figures 3a et 3b. On notera que les vidéos sont créées, par exemple, par un caméscope numérique ou tout autre moyen d'acquisition de données ou bien sont transmises par un réseau de communication extérieur et sont stockées dans l'unité 5 qui peut être incluse ou non dans le dispositif 4. Cette unité peut être, par exemple, une base de données locale ou distribuée. En outre, les vidéos sont stockées, selon un mode préféré de l'invention, sous forme compressée, en utilisant le procédé de codage mis en #uvre dans l'unité de codage 11. Le dispositif 4 comprend également une unité de stockage 13 destinée à mémoriser de façon temporaire des données numériques et des vidéos codées, et une unité 14 de récupération de données caractéristiques des vidéos à partir de l'unité 5 de stockage. Les données récupérées par l'unité 14 sont, soit les valeurs associées à chacun des pixels de chaque image d'une vidéo, soit les informations propres à cette vidéo, à savoir la taille du fichier vidéo, le chemin permettant d'accéder à cette vidéo et, dans le cas où la vidéo est stockée sous forme compressée, les paramètres de codage qui ont été utilisés pour coder cette vidéo. Le dispositif 4 comprend également une unité 15 de récupération des caractéristiques de la machine client 2, à savoir, par exemple, la capacité de calcul et la résolution de son écran de visualisation. Il convient de noter que ces caractéristiques peuvent être obtenues à la suite de la transmission par le dispositif 4 d'une requête spécifique. Le dispositif 4 comprend, en outre, une unité 16 de récupération des caractéristiques du réseau 3, une unité 17 de détermination des paramètres de codage, et une unité 18 de transmission/réception de données numériques. L'unité 18 permet d'effectuer la transmission de données à la machine client 2 à travers le réseau 3, ainsi que la réception de données provenant de la machine client. Le dispositif 4 selon l'invention comporte également une unité de commande 19 des différentes opérations exécutées. On notera que les différentes unités qui composent le dispositif selon l'invention et, plus généralement le serveur, résident sur la même machine. Cependant, il pourra être envisagé de distribuer ces unités sur plusieurs machines serveur et d'établir des communications entre ces différentes unités à travers le réseau de communication 3. Cette distribution des unités ne modifiant en rien la mise en #uvre de l'invention, on considérera par la suite, pour des raisons de simplicité, que toutes les unités sont localisées sur la même machine que nous appelons serveur. La machine client 2 comporte une unité de transmission/réception de données numériques 20. Cette unité 20 permet d'effectuer la transmission de données au dispositif 4, à travers le réseau 3, et la réception de données provenant du dispositif. La machine client 2 comporte également une unité 21 de stockage de données numériques, une unité 22 de décodage identique à l'unité 12 du dispositif 4 et une unité de visualisation 23, permettant de visualiser des vidéos décodées. La figure 2 illustre un algorithme comportant différentes instructions ou portions de code logiciel correspondant à des étapes du procédé selon l'invention. Le programme informatique noté "Progr" qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 13 de la figure 1 et exécuté par l'unité 17 sous le contrôle de l'unité de commande 19, ce qui permet ainsi de mettre en #uvre le procédé selon l'invention. Ce programme est également stocké dans l'appareil de la figure 7. L'algorithme de la figure 2 comporte une première étape notée E200 au cours de laquelle le dispositif 4 de la figure 1 et, plus particulièrement, l'unité de réception 18 reçoit une requête émise par la machine client 2 à partir de l'unité de transmission 20. Par exemple, cette requête se présente sous la forme d'une chaîne de caractères permettant d'identifier de façon unique des données vidéo mémorisées dans l'unité de stockage 5 du serveur 1. Au cours de l'étape suivante E201, la requête provenant de la machine client 2 est transférée à l'unité de stockage temporaire 13 aux fins de mémorisation. L'étape E201 est suivie d'une étape E202 au cours de laquelle un test est pratiqué afin de savoir si les données vidéo faisant l'objet de la requête de la machine client sont disponibles dans l'unité de stockage 5. Lorsque le test pratiqué au cours de cette étape est négatif, l'étape suivante E203 prévoit d'envoyer un message d'erreur à la machine client l'informant que les données vidéo demandées ne sont pas disponibles dans le serveur. Dans l'affirmative, l'étape E202 est suivie d'une étape E204 au cours de laquelle l'unité de décodage 12 du dispositif de la figure 1 décode les données vidéo en fonction des paramètres de codage fournis, par exemple, par l'en-tête du train binaire mémorisé dans l'unité de stockage 5. On notera que chaque image de la séquence vidéo demandée par l'utilisateur est découpée en blocs de données de 8x8 pixels. Chaque groupe de quatre blocs forme un macro-bloc de 16x16 pixels. Le codage d'une image est effectué sur chacun des macro-blocs selon deux modes de codage distincts : l'un noté 1 pour le mode de codage Intra et l'autre noté P pour le mode de codage prédictif ou Inter. Une séquence d'images de 1 seconde sera codée de la façon suivante : IPPIPPIPPIPPIPPIPPIPPIPPIPPIPP ... Ceci signifie que la première image est codée selon le mode Intra, les deux suivantes selon le mode Inter, la suivante selon le mode Intra, les deux suivantes selon le mode Inter, etc.... Ainsi, pour une séquence de 30 images par seconde, 10 images seront codées en mode Intra et 20 images en mode Inter. On notera qu'une séquence d'images sera appelée par la suite un segment. Au cours du décodage pratiqué à l'étape E204, l'unité 12 compte le nombre de macro-blocs codés suivant chaque mode pour chaque image et calcule la variance de chaque macro-bloc. Une fois que le décodage des données vidéo a eu lieu, les données décodées présentes, par exemple, sous le format YUV, ainsi que les paramètres de codage précités sont stockés dans l'unité de stockage 13. On notera qu'un format vidéo de type YUV signifie que la vidéo concernée possède trois composantes, la composante Y pour la luminance et les composantes U et V pour la chrominance. Il convient de noter que pour chaque image de la séquence vidéo, on stocke, dans l'unité 13, un paramètre de quantification moyen (moyenne des paramètres de quantification des macro-bocs de l'image), le nombre de macro- blocs codés en mode Inter et en mode Intra, ainsi qu'une variance moyenne (moyenne des variances des macro-blocs de l'image). L'étape E204 qui vient être décrite est suivie par une étape E205 au cours de laquelle l'unité 14 procède à une récupération des données vidéo. Au cours de l'étape suivante E206, on procède à l'obtention des caractéristiques de la machine client 2 qui a émis la requête mentionnée à l'étape E200. Les caractéristiques de la machine client sont par exemple récupérées consécutivement à la transmission d'une requête d'obtention de ces caractéristiques, du dispositif 4 de la figure 1 vers la machine client 2, à travers le réseau de communication 3. Ces caractéristiques sont principalement la capacité de calcul de la machine client 2, à savoir le nombre total d'opérations qu'elle peut effectuer et la résolution de son unité de visualisation 23 (écran). Ces caractéristiques sont stockées de façon temporaire dans l'unité de stockage 13 du dispositif 4 de la figure 1. Préférentiellement, la capacité de calcul de la machine client est égale à la vitesse du processeur de celle-ci, exprimée en nombre d'opérations élémentaires par seconde. L'étape E206 est suivie d'une étape E207 au cours de laquelle le dispositif 4 de la figure 1 obtient les caractéristiques du réseau de communication 3 telles que, par exemple, la bande passante disponible pour transmettre les données vidéo du dispositif 4 à la machine client 2, le taux de perte de paquets, le taux de bits erroné ... De façon préférentielle, les caractéristiques du réseau prises en compte seront limitées à la bande passante disponible. Ces caractéristiques sont récupérées par l'unité 16 qui les stocke alors dans l'unité de stockage temporaire 13. L'étape E207 est suivie de l'étape E208 qui sélectionne, à partir de l'unité 17, une méthode de transcodage parmi un ensemble donné de méthodes de transcodage, à partir d'une évaluation de la qualité de chaque méthode, en prenant en compte les données vidéo à transmettre. Par ailleurs, la méthode sera, par exemple, également sélectionnée de manière à adapter les données vidéo aux caractéristiques de la machine client et aux caractéristiques du réseau. Les méthodes de transcodage proposées dans cet ensemble sont par exemple les suivantes : conservation de la séquence compressée originale, réduction de la résolution spatiale de CIF (format 352 par 288) à QCIF (format 176 par 144), requantification pour réduire le débit de 10 %, requantification pour réduire le débit de 20 %, requantification pour réduire le débit de 30 %. Le détail des opérations effectuées lors de l'étape E208 sera fourni ultérieurement lors de la description faite en référence à la figure 4. Cette étape est effectuée par l'unité 17 du dispositif 4 de la figure 1 sous contrôle de l'unité de commande 19 et à partir des informations disponibles dans l'unité de stockage 13. On notera que les méthodes de transcodage présentées ci-dessus sont classées dans deux catégories : réduction de la résolution spatiale (passage du format CIF au format QCIF) et requantification. 1) Pour réduire la résolution spatiale, l'unité de codage 11 commencera par sous échantillonner chaque image de la séquence vidéo originale en supprimant un pixel sur deux dans chaque ligne de chaque image de la séquence originale, puis, en supprimant un pixel sur deux dans chaque colonne de chaque image de la séquence originale. L'unité 11procèdera ensuite au codage effectif de la séquence sous échantillonnée. Pendant le codage, le choix du mode de codage des macro-blocs de la séquence transcodée se fera en fonction des modes de codage des macroblocs de la séquence originale. On sait que, lors du passage du format CIF au format QCIF, le nombre de macro-blocs est divisé par 4, c'est-à-dire qu'un macro-bloc de la séquence transcodée correspond à quatre macro-blocs de la séquence originale. Si dans les quatre macro-blocs originaux on trouve une majorité de macro-blocs codés en mode Intra, alors le macro-bloc de la séquence transcodée sera codé en mode Intra. Inversement, si on a une majorité de macro-blocs codés en mode Inter, le macro-bloc de la séquence transcodée sera codé en mode Inter. Si aucun mode n'est majoritaire, le macro-bloc sera codé en mode Intra. 2) Pour requantifier la séquence, on codera la séquence avec une contrainte de débit égale au débit initial de la séquence originale duquel on retranchera le pourcentage de débit spécifié par la méthode de transcodage. Une boucle de régulation de débit telle que celle proposée dans l'article intitulé "Rate control for low-delay Video communication", de J. RibasCorbera, S-Lei, Draft ITU-telecommunications standardization sector. Ref. : Q15-A-20 permettra de réguler le débit de l'unité de codage. Pour cette méthode de transcodage, les modes de codage des macro-blocs originaux seront conservés dans la séquence transcodée. L'étape E208 de l'algorithme est ensuite suivie d'une étape E209 qui procède au codage des données vidéo suivant les paramètres définis à l'étape E208 (méthode de transcodage sélectionnée). Au cours de l'étape suivante E210, le dispositif 4 de la figure 1 et, plus particulièrement, l'unité de transmission 18 de celui-ci procède à la transmission des données vidéo qui ont été préalablement compressées à l'étape E208 vers la machine client 2. On notera que la transmission des données vidéo compressées se fait préférentiellement à la volée (connu en terminologie anglosaxonne sous le terme "streaming"), c'est-à-dire que les informations nécessaires à l'utilisateur pour reconstruire une image sont mémorisées dans l'unité de stockage 13, puis sont transmises à la machine client 2 avant que toutes les données vidéo ne soient compressées. Ainsi, l'utilisateur reçoit au niveau de la machine client 2 les informations par paquets, dans chacun desquels se trouvent des informations permettant à cet utilisateur de décoder une image courante. Les figures 3a et 3b illustrent respectivement le codage et le décodage d'une vidéo en couleurs au format YUV. Selon un mode préféré de réalisation de l'invention, le décodeur vidéo utilisé pour la mise en #uvre de cette invention est conforme à la partie visuelle du standard MPEG-4 (Information technology- Generic coding of audiovisual objects = part2: visual, ISO/IEC JTC1/SC 29/WG11 N 3056, December 2000). Dans l'exemple traité ici, la vidéo sera considérée comme un seul objet de forme rectangulaire. Par conséquent, seul un jeu restreint d'outils de compression qui permettent le décodage de la texture et la compensation de mouvement seront pris en compte. Les outils nécessaires au décodage de la forme arbitraire d'un objet ne sont donc pas utilisés ici. On notera que la texture d'une image est donnée par les valeurs des pixels de l'image qui sont exprimées sur trois composantes. Les vidéos sont stockées sur le serveur 1 sous forme compressée au format mp4 conforme au standard MPEG-4. On utilise par exemple le format YUV de type 4 :2:0, qui signifie que les composantes de chrominance (U, V) ont quatre fois moins d'échantillons (pixels) que les composantes de luminance (Y). La figure 3a illustre le procédé de codage mis en oeuvre par l'unité de codage 11 de la figure 1. En mode Intra, le codage s'effectue bloc par bloc selon les étapes E310 à E313 de la figure 3a. Dans ce mode de codage, chaque bloc constitue une unité élémentaire de données qui est codée indépendamment des autres blocs. On rappelle que les valeurs des pixels de chaque image du segment d'images à coder sont stockées temporairement dans l'unité 13 de stockage temporaire de la figure 1 et constituent une vidéo qui est appelée vidéo originale. Dans le cas où la vidéo est stockée dans l'unité de stockage 5, le procédé de décodage est appliqué à l'étape E204 de la figure 2 de manière à obtenir une vidéo au format YUV. Les valeurs de la vidéo ainsi reconstruite sont stockées dans l'unité 13 de stockage temporaire et dans l'unité de stockage 5. Le procédé de codage d'un bloc en mode Intra débute par une étape E310 au cours de laquelle on calcule la transformée en cosinus discret selon la méthode connue décrite dans l'article intitulé "Fast Algorithms for the Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992. L'étape E310 est suivie d'une étape E311qui prévoit de quantifier les coefficients transformés obtenus lors de l'étape E310 . L'étape E311 est suivie d'une étape E312 au cours de laquelle on ordonne les coefficients quantifiés de manière à ce que la méthode de codage à longueur variable utilisée lors de l'étape ultérieure E313 soit la plus efficace possible. Pour ce faire, on utilise la méthode de balayage décrite dans le standard Information technology- Generic coding of audio-visual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. L'étape E312 est suivie d'une étape E313 selon laquelle on effectue le codage statistique des coefficients ordonnés selon la méthode de codage à longueur variable décrite dans le standard Information technology- Generic coding of audio-visual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. A l'issue de l'étape E313, les coefficients codés statistiquement sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage de l'image courante. En mode prédictif ou Inter, le codage s'effectue macro-bloc par macro-bloc où chaque macro-bloc constitue une unité élémentaire de données qui est codée indépendamment des autres. Chacun des macro-blocs peut être codé soit en mode Intra soit en mode Inter. Si le macro-bloc est codé en mode Intra, alors le codage s'effectue selon les étapes E310 à E313 décrites précédemment. Si le macro-bloc est codé en mode Inter, le codage s'effectue selon les étapes E315 à E317 qui vont être explicitées ci-après. Au cours de l'étape E315 on applique une méthode classique d'estimation de mouvement par comparaison de macro- blocs. Les algorithmes mis en #uvre s'appuient sur l'hypothèse simplificatrice selon laquelle les pixels d'un même macro-bloc sont animés du même mouvement. Le vecteur de mouvement d'un macro-bloc d'une image courante est alors déterminé en trouvant le macro-bloc le plus ressemblant dans l'image précédente dans une fenêtre de recherche présélectionnée. Si les dimensions de la fenêtre de recherche exercent une influence sur le temps de calcul de l'estimation de mouvement, le problème majeur lié à l'estimation de mouvement qui est effectuée par comparaison de macro-blocs reste la détermination de la distance entre les macro-blocs. On utilisera de préférence une méthode d'estimation de mouvement décrite dans l'article "Estimation de mouvement en ligne", L. Difdier, R. Kamdem, LIM Université de Provence, Dec. 96. Cette méthode permet d'obtenir un vecteur de mouvement à deux composantes de mouvement translationnel. Pour obtenir un train binaire conforme au standard MPEG-4, ce vecteur de mouvement est codé différentiellement par rapport à une prédiction effectuée à partir des vecteurs de mouvement des macro-blocs déjà codés du voisinage immédiat du macro-bloc courant. L'étape E315 est suivie d'une étape E316 au cours de laquelle on code statistiquement le vecteur de mouvement différentiel précédemment déterminé. Les coefficients ainsi obtenus sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage de l'image courante. Une fois que le mouvement pour un macro-bloc a été estimé lors de l'exécution de l'étape E315, alors, conformément à l'étape E317, un macro-bloc dit prédit est construit à partir du macro-bloc de l'image précédente auquel est appliqué le vecteur de mouvement associé à ce macro-bloc. Ensuite, un macro-bloc dit de différence, est calculé entre le macrobloc de l'image courante et le macro-bloc prédit. On mesure alors la variance de ce macro-bloc de différence. Si la variance est supérieure à un seuil prédéterminé, alors le macrobloc de l'image courante est codé en mode Intra. Ce macro-bloc sera codé en mode Inter dans le cas contraire. L'étape E317 est suivie d'une étape E318 au cours de laquelle, soit on code le macro-bloc de différence selon le mode Intra décrit plus haut, soit on code le macro-bloc courant selon le mode Intra. Les coefficients résultant du mode de codage Intra sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage du macro-bloc de l'image courante. Les paramètres utilisés lors des étapes de quantification et de codage à longueur variable, sont définis pour chaque macro-bloc, que ce soit dans le mode Intra ou Inter. A cet effet, on utilise une méthode de contrôle de débit classique lors d'une étape E314. Cette méthode permet de contrôler l'allocation de débit pour chaque macro-bloc de manière à ne pas dépasser le débit total alloué à la transmission de la vidéo compressée. Dans l'exemple décrit, la valeur de débit maximale est fixée par la valeur BR. Les données codées et stockées de façon temporaire dans l'unité 13 sont mises au format MPEG-4, comme indiqué dans le standard Information technology- Generic coding of audio-visual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000, avant d'être transmises sur le réseau 3 de la figure 1 vers la machine client 2. Il convient de noter que le mode de codage utilisé pour coder chaque macro-bloc fait partie des informations qui sont transmises. La figure 3b illustre le procédé de décodage mis en #uvre par l'unité de décodage 12 du dispositif 4 et par l'unité de décodage 22 de la machine client 2 de la figure 1. Le procédé de décodage va être décrit lorsqu'il est mis en #uvre dans la machine client 2 et, plus particulièrement, au niveau des unités 20,21 et 22. La transposition de cette description au procédé de décodage mis en #uvre par le dispositif 4 du serveur 1 s'effectue aisément en remplaçant les unités 20, 21 et 22 respectivement par les unités 18,13 et 12. La machine client 2 comporte une unité 21 de stockage qui est alimentée par les données numériques provenant du dispositif 4 par l'intermédiaire de la connexion établie entre les deux machines à travers le réseau 3. Ces données sont reçues par l'unité de réception 20 sous la forme de paquets qui contiennent les informations nécessaires pour décoder un ou plusieurs macro-blocs de l'image courante. L'unité de stockage 21 est capable d'extraire des informations à partir du train binaire qui a été généré par l'unité de codage 11du dispositif 4 et de les fournir à l'unité de décodage 22 de la machine client 2. La figure 3b illustre le décodage d'un macro-bloc codé soit en mode Intra, tel qu'indiqué par les étapes 322 à 326, soit en mode Inter ou prédictif comme indiqué par les étapes 327 à 332. L'algorithme de décodage débute par une étape E319 au cours de laquelle on récupère le mode de codage du macro-bloc courant. Au cours de l'étape E320, on procède à un test pour savoir si le macro-bloc a été codé en mode Intra. Dans l'affirmative, l'étape E320 est suivie d'une étape E321 qui prévoit de récupérer, à partir de l'unité de stockage 21, les coefficients statistiques (codes à longueur variable) liés à ce macro-bloc. L'étape E321 est suivie d'une étape E322 qui effectue le décodage de ces coefficients selon la table de coefficients décrite dans le standard Information technology- Generic coding of audio-visual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11N3056, December 2000. Les coefficients ainsi obtenus forment un ensemble de données bidimensionnelles noté QF[u][v]. Au cours de l'étape suivante E323, on effectue une opération de quantification inverse sur les valeurs de l'ensemble de données QF[u][v] pour obtenir le tableau bidimensionnel F"[u][v] selon les tables de quantification décrites dans le standard Information technology- Generic coding of audiovisual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. Au cours de l'étape suivante E324, on applique une méthode de saturation aux valeurs des coefficients du tableau bidimensionnel F"[u][v] selon le standard Information technology- Generic coding of audio-visual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11N3056, December 2000, de manière à obtenir le tableau bidimensionnel F'[u][v] dont les valeurs appartiennent à l'intervalle [-2 bits par pixel +3,2 bits par pixel +3 - 1]. Le nombre de bits par pixels est de préférence égal à 8. Au cours de l'étape suivante E325, on effectue une opération de contrôle des coefficients saturés de manière à obtenir les coefficients DCT F [u][v]. Au cours de l'étape suivante E326, on reconstruit les valeurs des pixels du macro-bloc courant en fonction des coefficients DCT F[u][v] en utilisant la méthode de décodage décrite dans l'article "Fast Algorithms for the Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992. Ces valeurs reconstruites sont stockées dans l'unité de stockage 21 en vue d'être visualisées sur l'unité de visualisation 23. L'algorithme de décodage d'un macro-bloc est donné ci-dessous. Les valeurs des coefficients dc scaler, quantiser scale et de la matrice W[l][u][v] utilisés dans cet algorithme sont des valeurs définies par le standard Information technology- Generic coding of audio-visual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. for (v=0; v F"[u][v] dc~scaler* QF[u][v]; } else { if ( macroblockjntra ) { F"[u][v] = ( QF[u][v] * W[0][u][v] * quantiser~scale ) / 32; } else { F"[u][v] = ( ( ( QF[u][v] * 2 ) + Sign(QF[u][v]) ) * W[1][u][v] * quantiser~scale ) / 32; } } } } sum = 0; for (v=0; v 2bits~per~pixel + 3-1){ F"[u][v] = 2bits~per~pixel + 3-1; } else { if (F"[u][v] F' [u][v] = -2bits~per~pixel + 3 ; } else { F' [u][u] = F"[u][v]; } } sum sum + F'[u][v]; F[u][v] F'[u][v]; } } if ((sum & 1)==0){ if ((F[7][7] & 1)!=0){ F [7][7] = F'[7][7] - 1; } else F [7][7] = F'[7][7] + 1; } } La méthode de transformation en cosinus discret d'un pixel f (x,y) d'un bloc de taille N x N est donnée par l'équation suivante : avec u, v = 0, 1, 2, ... N-1, où x, y sont les coordonnées spatiales, u, v sont les coordonnées dans le domaine transformé, et Chaque pixel est représenté par n bits (pour représenter une des composantes Y, U ou V) et les coefficients transformés sont représentés par (n+4) bits. L'amplitude des coefficients DCT est comprise dans l'intervalle [- 2n+3 :+2n+3-1]. On utilise de préférence une méthode rapide de codage/décodage DCT. Cette méthode, décrite dans l'article "Fast Algorithms for fhe Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992, permet de coder/décoder des macroblocs de taille 2m (ici m=3) selon l'équation suivante : Y = C8*Y où Y est le vecteur des coefficients DCT de dimension 8 etCJa matrice 8*8 de coefficients DCT. Cette matrice peut être factorisée et, après quelques manipulations algébriques, cette matrice est égale à C8 =P8*K8 *B8, où P8 est une matrice de permutation des signes de dimension 8*8, K8 et B8 sont des matrices de coefficients de dimension 8*8 qui ont été définies de manière à obtenir un codeur/décodeur rapide. Consécutivement à l'étape E326, l'étape E333 prévoit un stockage et une visualisation des macro-blocs décodés à partir des unités 21 et 23. L'image courante est reconstruite une fois que tous les macro-blocs de cette image sont décodés et visualisés. De retour à l'étape E320, si le résultat du test est négatif, cela signifie que le macro-bloc a été codé en mode Inter ou prédictif. Au cours de l'étape suivante E327, on récupère alors des informations parmi les données numériques qui ont été transmises par le dispositif 4 et mémorisées dans l'unité de stockage 21 de la machine client 2. Ces informations sont propres au codage du macro-bloc en mode Inter et sont, par exemple, les coefficients statistiques (codes à longueur variable) liés à ce macro-bloc. L'étape E327 est suivie d'une étape E328 qui prévoit de décoder ces coefficients statistiques de manière à obtenir le vecteur de mouvement différentiel. Au cours de l'étape suivante E329, on reconstruit le vecteur de mouvement à partir du vecteur de mouvement différentiel et du vecteur de mouvement (Px,Py) du macro-bloc de l'image précédente disposé à la même position spatiale. L'algorithme utilisé est le suivant : r size = vop~fcode - 1 f = 1 r size high=(32*f)- 1 ; low = ( (-32)*f); range = (64*f); if ( (f == 1 ) p (horizontal~mv~data == 0) ) MVDx = horizontal~mv~data; else { MVDx = ( ( /46s(horizontal~mv~data) - 1 ) * f ) + horizontal mv~residual + 1; if (horizontal~mv~data MVDx = - MVDx; } if ( (f == 1) p (verticaLmv~data == 0) ) MVDy = vertical~mv~data; else MVDy = ( (Abs(vertical~mv~data)-1 ) *f ) + vertical~mv~residual + 1; if (vertical~mv~data MVDy = - MVDy; MVx = Px + MVDx; if ( MVx MVx = MVx + range; if (MVx > high) MVx = MVx - range ; MVy = Py + MVDy; if ( MVy MVy = MVy + range; if (MVy > high) MVy = MVy - range; Les paramètres du train binaire sont tels que les composantes MVDx et MVDy du vecteur de mouvement différentiel, appartiennent à l'intervalle [low; high]. Les valeurs extrêmes de cet intervalle sont choisies lors de l'implémentation du décodeur. Par ailleurs, les composantes du vecteur de mouvement reconstruit, MVx et MVy, appartiennent également à cet intervalle. Les valeurs qui définissent cet intervalle pour les vecteurs de mouvement sont définis par le standard Information technology- Generic coding of audio-visual objects = part2: visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. On notera que r~size, f, MVDx, MVDy, high , low et range sont des variables, tandis que les données horizontal~mv~data, vertical~mv~data, horizontal~mv~residual et vertical~mv~residual sont extraites du train binaire. La variable vop~fcode fait référence au mode de prédiction utilisé qui est extrait du train binaire. Au cours de cette même étape E329, le macro-bloc de l'image précédente est compensé en mouvement, c'est à dire que le macro-bloc est déplacé du vecteur de mouvement qui vient d'être reconstruit. Au cours de l'étape suivante E330, on récupère les informations propres au codage du macro-bloc en mode Intra et, notamment, les coefficients statistiques qui représentent le macro-bloc de différence. Au cours de l'étape suivante E331, on reconstruit le macro-bloc de différence à partir de ces coefficients statistiques selon le procédé de décodage Intra décrit précédemment, lors de l'exécution des étapes E322 à E326. L'étape E331 est suivie d'une étape E332 qui calcule la somme du macro-bloc compensé de l'étape E329 et du macro-bloc de différence obtenu à l'étape E331. L'étape E332 est suivie d'une étape E333 qui organise le stockage des macro-blocs décodés dans l'unité 21. L'image est ensuite visualisée sur l'unité de visualisation 23 une fois que tous les macro-blocs ont été décodés. La figure 4 illustre l'algorithme détaillant les différentes opérations effectuées lors de l'étape E208 de la figure 2. Plus particulièrement, cet algorithme comporte différentes instructions ou portions de code logiciel correspondant à des étapes du procédé de sélection d'une méthode de transcodage de données numériques multimédia selon l'invention. Le programme informatique qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 13 de la figure 1 et exécuté par l'unité 17 sous le contrôle de l'unité de commande. Ce programme fait partie du programme "Progr" précité en référence à la figure 2 et est également stocké dans l'appareil de la figure 7. L'exécution du programme informatique basé sur cet algorithme va mettre en #uvre le procédé permettant d'évaluer la qualité de plusieurs méthodes de transcodage en tenant compte des données à transmettre et de sélectionner rapidement une méthode à partir des différentes valeurs de qualité obtenues. Dans le cas de données vidéo, la méthode de transcodage sélectionnée sera celle qui fournira à la machine client une qualité visuelle optimale. Par ailleurs, ce procédé peut permettre également de sélectionner une méthode de transcodage de manière adaptée à une ou plusieurs caractéristiques de la machine client 2, à savoir sa capacité de calcul, la résolution de l'écran, la mémoire disponible, et/ou aux ressources disponibles sur le réseau de communication 3, à savoir la bande passante. L'algorithme de la figure 4 débute par une étape E400 au cours de laquelle on procède à une récupération du contexte dans lequel les données vont être transmises du dispositif 4 du serveur 1 à la machine client 2 (figure 1). Plus particulièrement, la récupération de ce contexte consiste à obtenir, à partir de l'unité de stockage temporaire 13 : - la capacité de calcul C de la machine client 2, - la résolution de l'écran de cette machine, - la bande passante BP disponible sur le réseau de communication 3 pour transmettre les données vidéo. L'étape E400 est suivie de l'étape E401 qui initialise les valeurs d'un tableau de valeurs de dimension N, où N représente le nombre de méthodes de transcodage définies dans l'ensemble des méthodes de transcodage. Pour chacune des N méthodes de transcodage, les caractéristiques suivantes sont stockées : le format (CIF ou QCIF) induit par la méthode, le pourcentage du débit initial conservé après la mise en #uvre de la méthode de transcodage (90,80 ou 70 %). Par ailleurs, cette étape initialise aussi une variable d'indice de tableau n à la première valeur du tableau égale à 1 (première méthode de transcodage de l'ensemble des méthodes). Les indices suivants sont gradués jusqu'à N par pas de 1. Cette étape initialise à 0, d'une part, une seconde variable Idopt qui récupérera l'identificateur de la méthode de transcodage sélectionnée et, d'autre part, une troisième variable maxPSNR. L'étape E401 est suivie de l'étape E402 qui vérifie si la variable n est inférieure ou égale à N. Dans l'affirmative, on passe à l'étape E403 qui vérifie si la méthode de transcodage en cours d'évaluation générera une séquence dont le format sera compatible avec l'écran de la machine client. Si le format est compatible, l'étape E403 est suivie de l'étape E404 qui évalue la complexité de calcul 0 du processus de décodage de la séquence vidéo transcodée. Pour ce faire, on récupère pour chaque image le nombre de macroblocs codés en mode Intra, NMBmt raorig, et le nombre de macro-blocs codés en mode Inter, NMBint erorig, la constituant. Ces informations préalablement stockées dans l'unité 13 de la figure 1, permettent de déterminer la complexité de décodage de chaque image. La complexité de décodage d'une image est donnée par la formule : O = NMBorig * O + NMBorig * O Image - NMDint ra Ointra + NMDmt er Ointer En parcourant toutes les images de la séquence, on recherchera l'image la plus complexe. Une borne supérieure notée 0 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 complexe que nous noterons Omax. La borne supérieure 0 sera, par exemple, calculée de la manière suivante : où Ft est la fréquence temporelle induite par la méthode de transcodage en cours d'évaluation (ici, par exemple, 30 Im/s), NMBtrans est le nombre de macro-blocs par image dans la séquence transcodée (396 pour une séquence au format CIF, 99 pour une séquence au format QCIF), NMBOn est le nombre de macro-blocs par image dans la séquence originale (par exemple 396). L'estimation de la complexité de décodage d'un macro-bloc varie selon que le macro-bloc est codé en mode Intra ou Inter. Comme décrit ci-après, l'estimation de la complexité de décodage d'un macro-bloc va être détaillée suivant que le codage a lieu en mode Intra ou en mode Inter. 1) Codage en mode Intra (estimation de Centra) Le décodage s'effectuant bloc de données par bloc de données la complexité de décodage d'un macro-bloc est égale à la complexité liée au décodage des quatre blocs qui le composent. * Plus particulièrement, on détermine la complexité de décodage d'un bloc en comptabilisant le nombre d'opérations élémentaires intervenant dans les différents algorithmes mis en #uvre dans le processus de décodage. Les valeurs de la complexité liée au décodage DCT sont fournies par l'article "Fast Algorithms for the Discrète Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992. La table 1 ci-dessous détaille la détermination de la complexité de décodage des différents algorithmes qui interviennent dans le décodage d'un bloc à partir des différentes opérations élémentaires. traitement test Multiplication Addition Affectation VLD 64 Inverse Q 192 256 192 Saturation 128 64 Contrôle 2 64 65 Inverse DCT 94 454 64 Total 322 350 582 385 Table 1 Préférentiellement, toutes ces opérations sont considérées comme élémentaires exceptée la multiplication qui est considérée comme équivalente à deux opérations élémentaires. Ainsi, la complexité totale de décodage d'un macro-bloc (composantes de luminance) codé en mode Intra est de 4*1989=7956 opérations élémentaires. 2) Codage en mode Inter (estimation de O,nter) Dans le cas où le macro-bloc est codé en mode Inter, il faut ajouter à la complexité de décodage en mode Intra, la complexité de décodage liée, d'une part, à la reconstruction du vecteur de mouvement à partir du vecteur de mouvement différentiel qui va être transmis à la machine client 2 de la figure 1 et, d'autre part, à la reconstruction du macro-bloc (reconstruction du macro-bloc de différence et addition de ce macro-bloc avec le macro-bloc prédit). La détermination de la complexité de décodage de ces processus est détaillée dans la table 2 ci-dessous qui fournit, pour chaque processus, le nombre d'opérations élémentaires qui interviennent. Traitement test multiplication Addition affectation VLD 2 Reconstruction vecteur mouvement 7 5 13 11 Reconstruction macro-bloc différence 1288 1400 2328 1540 Construction du macro-bloc prédit 512 256 Reconstruction du macro-bloc 256 256 Total 1295 1405 3109 2065 Table 2 Ainsi, pour le mode Inter ou prédictif, la complexité totale de décodage d'un macro-bloc codé en mode Inter est de 9279 opérations élémentaires. Une fois que la complexité de décodage 0 a été estimée comme proposé ci-dessus, l'étape E404 est suivie d'une étape E405. Au cours de l'étape E405, on teste si la complexité estimée 0 pour décoder la vidéo avec les paramètres de codage courants est inférieure ou égale à la capacité de calcul de la machine client C. Dans l'affirmative, cela signifie que la méthode de transcodage est compatible avec la caractéristique de la machine client. L'étape E405 est alors suivie de l'étape E406 qui teste le type de méthode de transcodage en cours d'analyse. Si c'est une méthode du type réduction de résolution spatiale, l'étape E406 est suivie de l'étape E407 qui procède à une estimation du débit induit par la méthode de transcodage à partir d'un modèle mathématique d'établissement du débit. On verra ultérieurement que ce modèle est adapté à la méthode de transcodage. Cette dernière étape est suivie de l'étape E408 qui vérifie si le débit estimé de la séquence r est inférieur ou égale à la bande passante du réseau de communication BP. Dans l'affirmative, l'étape E408 est suivie de l'étape E411 qui procède à une estimation de la qualité visuelle induite par la méthode de transcodage à partir d'un modèle mathématique et en tenant compte des données à transmettre. Si le résultat du test pratiqué à l'étape E408 est négatif, alors on passe à l'étape E414 qui incrémente la variable n d'une unité, permettant ainsi d'évaluer la méthode de transcodage suivante. Si la méthode de transcodage en cours d'analyse est du type réduction du débit par requantification, l'étape E406 est suivie de l'étape E409. Dans ce cas, le débit r que doit atteindre la méthode de transcodage est connu. L'étape E409 vérifie si le débit r est inférieur ou égal à la bande passante du réseau BP. Dans l'affirmative, l'étape E409 est suivie de l'étape E410 qui estime à partir d'un modèle mathématique de débit le pas de quantification moyen de la séquence après transcodage et stocke cette information dans l'unité 13. On verra ultérieurement que ce modèle est adapté à la méthode de transcodage. Si le résultat du test pratiqué à l'étape E409 est négatif, alors on passe à l'étape E414 déjà décrite. L'étape E410 est suivie de l'étape E411 au cours de laquelle on estime la perte de qualité entre deux séquences vidéo en utilisant, par exemple, la notion de rapport signal sur bruit notée PSNR ("Peak Signal to Noise Ratio") et fournie par la formule suivante : où qi désigne un pixel de l'image décodée, p, un pixel de l'image originale, N le nombre de pixels de l'image et Y la dynamique du signal original, correspondant dans le cas présent à huit bits. Le PSNR fournit une mesure quantitative de la qualité de l'image reconstruite. Elle est déterminée à partir du rapport de l'amplitude maximale du signal sur l'erreur quadratique moyenne notée EQM et qui est égale à 1/N N # (qi-pi)2. i=1 On remarquera que d'autres méthodes d'estimation d'une qualité peuvent bien entendu être envisagées. L'étape E411 est suivie de l'étape E412 qui compare le PSNR calculé à la valeur maxPSNR. Si le PSNR est supérieur à maxPSNR, on passe à l'étape E413. Au cours de cette étape, maxPSNR prend la valeur de PSNR et Idopt prend la valeur de l'identificateur de la méthode de transcodage courante. L'étape E413 est suivie de l'étape E414 qui incrémente la valeur de n d'une unité pour passer à la méthode de transcodage suivante. Si le résultat du test pratiqué à l'étape E412 est négatif, on passe également à l'étape E414. Notons que les étapes E403, E405, E408 et E409 sont suivies par l'étape E414 si, respectivement, le format de la séquence n'est pas compatible avec l'écran de l'utilisateur, 0 est supérieur à C, r est supérieur à BP. Lorsque le résultat du test pratiqué à l'étape E402 est négatif, cela signifie que toutes les méthodes de transcodage ont été testées. L'étape E402 est dans ce cas suivie de l'étape E415 qui vérifie si Idopt est égal à 0. Une valeur 0 dans Idopt signifie qu'aucune méthode de transcodage n'est compatible avec les caractéristiques de la machine client ou du réseau. Dans ce cas l'étape E415 est suivie de l'étape E417 au cours de laquelle le serveur envoie un message d'erreur à la machine client lui indiquant qu'elle ne pourra pas recevoir la vidéo demandée. Ce message sera envoyé par l'intermédiaire de l'unité 18 de la figure 1 et met fin à l'exécution de l'algorithme. Si, au contraire, Idopt est différent de 0, l'étape E415 est suivie de l'étape E416 qui envoie les paramètres de codage à l'unité de codage 11 qui exécute l'étape E209 de la figure 2. Ces nouveaux paramètres sont, par exemple, une contrainte de débit et le format de la séquence transcodée. On notera que, dans l'exemple de réalisation décrit, les paramètres transmis correspondent à la méthode de transcodage compatible avec les caractéristiques de la machine client et du réseau et qui maximise la qualité visuelle. Il convient de noter que les étapes E412 et E413 de l'algorithme permettent de sélectionner la méthode de transcodage dont la qualité (ex : PSNR) est la plus élevée, au fur et à mesure que les différentes méthodes de transcodage du tableau sont évaluées. On va maintenant décrire de façon plus détaillée, d'une part, l'adaptation de modèles mathématiques d'établissement de la distorsion et du débit aux méthodes de transcodage et, d'autre part, l'utilisation de ces modèles adaptés dans les étapes E407, E410 (modèle de débit) et E411 (modèle de distorsion). Pour ce faire, on fait appel à des modèles connus tels que celui décrit dans l'article intitulé "Normalized Rate-distortion Model for H.263- compatible Codecs and its Application to Quantizer selection", de K. H. Yang, A. Jacquin, H.S. Jayant, proc ICIP97 et on les adapte. Ces modèles doivent en effet être adaptés dans la mesure où ils ne peuvent prédire la qualité (distorsion) et le débit de données vidéo dont la résolution spatiale ou dont la fréquence temporelle auraient été modifiées. Dans une première approche, on adapte, par exemple, au standard MPEG-4, le modèle paramétrique qui a été développé, dans l'article précité, dans le contexte de la norme de codage H-263+. Ce modèle approxime pour un macro-bloc les relations distorsion- énergie du signal représenté par les données vidéo avec la fonction paramétrique suivante : où D est la distorsion, S est une mesure d'énergie et a, b, c, d, I, m et n sont les paramètres du modèle de distorsion. On utilisera, par exemple, la variance des macro-blocs comme mesure d'énergie. De manière similaire, les relations débit-énergie sont données pour un macro-bloc par la fonction paramétrique suivante : où R représente le débit et [alpha],ss et [gamma] sont les paramètres du modèle de débit. Les paramètres I, m et n et [alpha],ss et [gamma] sont obtenus en utilisant un ensemble de séquences d'entraînement. Ces séquences sont des séquences de données vidéo de test qui doivent former un ensemble suffisamment hétérogène pour représenter à peu près tous les cas de figures extrêmes rencontrés en pratique. Ainsi, par exemple, on trouve parmi ces séquences d'entraînement, des séquences comportant peu de mouvement et d'autres caractérisées par un mouvement important, des séquences peu texturées et d'autres davantage texturées ... Pour déterminer les paramètres des modèles définis par les formules précitées (2) et (3), on met en #uvre un processus basé sur un algorithme illustré à la figure 6. Cet algorithme sera exécuté à partir d'un ensemble de séquences d'entraînement stockées préalablement au format YUV 4 :2:0, parexemple, dans l'unité de stockage 13 de la figure 1. Chaque séquence, identifiée par un numéro allant de 1 à F, sera codée lors de l'exécution de cet algorithme. L'algorithme débute à l'étape E601 par l'initialisation de la variable f à 1. Cette variable représente le numéro de la séquence en cours d'analyse. Au cours de l'étape E601, on initialise aussi un tableau qui contiendra, pour chaque macro-bloc de chaque séquence (identifié par le numéro de la séquence, le numéro de l'image qui le contient et sa position dans cette image), la variance du macro-bloc et, pour chaque paramètre de quantification possible, le débit et la distorsion du macro-bloc. L'étape E601 est suivie de l'étape E602 au cours de laquelle on mesure et on stocke dans le tableau précité la variance de chaque macro-bloc. L'étape E602 est suivie de l'étape E603 au cours de laquelle on initialise à 1 la variable QP représentant le paramètre de quantification affecté à tous les macro-blocs de la séquence lors du codage. L'étape E603 est suivie de l'étape E604 au cours de laquelle on procède au codage de tous les macro-blocs de la séquence avec le paramètre de quantification QP. L'étape E604 est suivie de l'étape E605 au cours de laquelle on procède au décodage du train binaire généré à l'étape E604. Durant ce décodage, l'unité de décodage mesure le débit et la distorsion de chaque macro-bloc par rapport aux macro-blocs originaux. Ces informations sont stockées dans le tableau précité. L'étape E605 est suivie de l'étape E606 au cours de laquelle on vérifie si le paramètre de quantification QP est inférieur au paramètre de quantification maximal MaxQP. Dans l'affirmative, on passe à l'étape E609 au cours de laquelle on incrémente de 1 le pas de quantification. Si QP=MaxQP, on passe à l'étape E607 au cours de laquelle on vérifie si le numéro de la séquence courante f est inférieur au numéro de séquence maximum F. Dans l'affirmative, on passe à l'étape E610 au cours de laquelle on incrémente d'une unité le numéro de séquence f pour passer à la séquence suivante. Si f=F on passe à l'étape E608 au cours de laquelle on procède à la recherche des paramètres des modèles visés plus haut. Le processus visé à l'étape E608 consiste à générer deux ensembles de nuages de points représentant, pour chaque pas de quantification, d'une part, la distorsion en fonction de la variance et, d'autre part, le débit en fonction de la variance. Il convient de noter que toutes les informations nécessaires à la génération du nuage de points sont celles qui ont été stockées dans le tableau visé plus haut. On recherche ensuite les courbes D (S) R (S) représentent le mieux les nuages de points. Toute méthode permettant de trouver une courbe représentant au mieux un nuage de points peut convenir. Dans la description de l'exemple de réalisation, on utilisera une méthode visuelle. Les coefficients a, b, c et d sont obtenus à l'aide des conditions aux limites suivantes : D(l) =l, D' (/) = 1, D(m) = n,D'(m) = 0 où D'représente la dérivée de D par rapport à S. Il convient de noter que le modèle de distorsion et le modèle de débit peuvent être représentés chacun par une seule courbe en normalisant la distorsion, le débit et la variance par rapport au pas de quantification QP. Pour ce faire, on remplace, dans les formules susvisées (2) et (3), S, R et D par leurs valeurs normalisées respectives S, R et D . La relation entre S et S est donnée par: S = (2Qp)2 et on notera la courbe de distorsion normalisée D(S) . Les relations permettant de retrouver pour chaque QP les valeurs de distorsion et de débit à partir des courbes normalisées sont données par les formules suivantes : D(S, QP) = #(#)*(2QP)2 et R(S,QP) = R(S) Le processus de normalisation pourra s'insérer entre les étapes E607 et E608 de l'algorithme. Ce processus consiste à générer à partir du tableau cité plus haut un second tableau qui contiendra pour chaque macro-bloc, sa variance normalisée, son débit normalisé et sa distorsion normalisée. Deux nuages de points, l'un représentant les débits normalisés en fonction de la variance normalisée, l'autre représentant les distorsions normalisées en fonction de la variance normalisée, seront générés. La recherche des paramètres des modèles se fera alors à partir de ces deux nuages de points. En normalisant la distorsion, le débit et la variance par rapport au pas de quantification, cela permet d'éviter d'avoir recours à un modèle pour chaque pas de quantification et donc de devoir déterminer un jeu de paramètres pour chacun de ces modèles. Il convient de noter que ce modèle ne permet pas de distinguer les macro-blocs suivant leur mode de codage, alors que l'on sait, par exemple, que les macro-blocs codés en mode Intra et Inter ont un comportement très différent notamment en terme de débit. Une amélioration de ces modèles peut alors être obtenue en déterminant un jeu de paramètres spécifique à chaque mode de codage envisagé. Ainsi, dans l'exemple de réalisation décrit, on itèrera deux fois l'algorithme de la figure 6 : une première fois en ne codant les séquences d'entraînement qu'avec des macro-blocs codés en mode Intra (pour déterminer des paramètres spécifiques au mode Intra) et une seconde fois en ne codant les séquences d'entraînement qu'avec des macro-blocs codés en mode Inter (pour déterminer des paramètres spécifiques au mode Inter). Suivant une deuxième approche, on adapte les modèles d'établissement de la distorsion et du débit aux méthodes de transcodage. Cette adaptation peut être effectuée au tout début des étapes E407 et E410 de l'algorithme de la figure 4 ou bien préalablement, en dehors de l'exécution de cet algorithme. Cette dernière solution permet de réduire le temps d'exécution de l'algorithme. Suivant le type de la méthode de transcodage déterminé à l'étape E406 et suivant la méthode qui va être évaluée ensuite lors de l'exécution des étapes suivantes, on procède de deux manières différentes. Lorsque la méthode de transcodage est basée sur une réduction du débit par requantification, on exécute l'algorithme de la figure 6 pour déterminer les paramètres spécifiques des modèles de débit et de distorsion a, b, c, d, I m, n, a, pet y. Toutefois, dans ce cas, l'algorithme de la figure 6 comportera une étape supplémentaire de décodage insérée entre les étapes E601 et E602 et après l'étape E610, car les séquences de données vidéo fournies au début de l'algorithme seront cette fois-ci codées. Lorsque la méthode de transcodage est basée sur une réduction de la résolution spatiale, on détermine les paramètres du modèle de débit de façon identique à ce qui à été précédemment décrit. Le modèle de distorsion nécessite par contre une plus grande adaptation. En effet, dans le cas de la transformation du format CIF vers le format QCIF, la taille des images est divisée par quatre. La génération des nuages de points distorsion-variance à l'aide de séquences d'entraînement pour l'estimation des paramètres du modèle de distorsion, nécessitent la comparaison de la séquence d'entraînement originale et de sa version codée. Ici, les deux séquences à comparer ont des résolutions différentes. Il est donc nécessaire, pour que la comparaison soit possible, de ramener l'une des deux séquences à la résolution de l'autre. Dans l'exemple décrit, on ramène la séquence codée à la résolution de la séquence originale et chaque pixel repéré par 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). Les erreurs quadratiques moyennes sont ensuite calculées entre les macro-blocs de la séquence originale et les macro-blocs de la séquence codée redimensionnée. Il convient de noter que cette procédure permet notamment de simuler la perte de qualité due à la réduction du format. Ce processus d'adaptation permet de générer des nuages de points distorsion-variance spécifiques aux cas de la réduction spatiale. On déterminera les paramètres de la courbe distorsion-variance correspondant à ces nuages de points de façon identique à ce qui a été décrit plus haut. Il convient de remarquer que les processus d'adaptation qui viennent d'être décrits sont généraux dans la mesure où ils ne dépendent pas du mode de codage. Pour appliquer ces processus à un mode de codage, il conviendra de coder tous les macro-blocs des séquences d'entraînement suivant ce mode. On notera que l'on obtient ainsi deux modèles spécifiques, l'un adapté à la réduction de la résolution spatiale, l'autre adapté à la réduction du débit par requantification. Toutefois, selon le taux de réduction appliqué à la résolution spatiale, le modèle variera et il faudra donc déterminer les nouveaux paramètres adaptés à ce modèle. Par contre, comme on l'a vu précédemment, grâce à la normalisation de la distorsion du débit et de la variance par rapport au pas de quantification, un modèle unique adapté aux méthodes de transcodage utilisant une réduction du débit par requantification peut être utilisé. Les paramètres adaptés du modèle ne seront donc pas modifiés. On va maintenant décrire l'utilisation des modèles mathématiques d'établissement de la distorsion et du débit aux différents types de méthodes de transcodage qui est faite lors de l'exécution des étapes E407, E410 et E411de l'algorithme de la figure 4 selon l'invention. Ici, on notera que les modèles adaptés aux méthodes de transcodage vont être appliqués aux données vidéo de la séquence à transmettre ou, à tout le moins, à des informations représentatives de ces données. Ceci va permettre d'évaluer la qualité des méthodes de transcodage testées de façon plus efficace que dans l'art antérieur où la qualité des méthodes de transcodage est évaluée indépendamment des données à transmettre. Quelle que soit la méthode de transcodage analysée, lors de l'exécution des étapes E407, E410 et E411, on commencera par extraire de l'unité de stockage 13 de la figure 1 les informations de variances et le nombre de macro-blocs codés en mode Intra NMBintraoriget Inter NMBinterorig de chaque image stockés dans l'unité 13. Dans le cas d'une méthode de transcodage basée sur une réduction de la résolution spatiale, on calculera pour chaque image une distorsion et un débit. La distorsion de chaque image D, (sous la forme d'une erreur quadratique moyenne ou EQM) sera donnée par le modèle représenté par la formule (2) en y introduisant la variance moyenne et le paramètre de quantification moyen de l'image à transcoder. On rappelle que cette dernière information est extraite de l'unité de stockage 13 de la figure 1 où elle a préalablement été stockée. La distorsion d'un macro-bloc codé en mode Intra est donnée par : 0Ù anMrabUntraClmtra'dnntra'lnntramnmra'nVmtraSOni les paramètres du modèle pour les macro-blocs codés en mode Intra spécifiques à la réduction de la résolution spatiale et s est la version normalisée de s . Pour déterminer la distorsion des macro-blocs codés en mode Inter #inter (#) on remplacera les paramètres spécifiques au mode Intra par les paramètres spécifiques au mode Inter, à savoir atnter' bl lOter' CI lOter' dimter' limter' mimter' nimter . Dans l'exemple de réalisation, le nombre de macro-blocs codés en mode Intra NMBmtra et le nombre de macro-blocs codés en mode Inter NMBmter d'une image de la séquence transcodée sont obtenus par les formules suivantes : Si NMBmtra et NMBint erne sont pas entiers, on remplacera, par exemple, la valeur calculée de NMBmtra par l'entier immédiatement supérieur et la valeur calculée de NMBmter par l'entier immédiatement inférieur. On déduit ensuite la distorsion de chaque image par la formule : On obtiendra le PSNR de l'image en introduisant l'erreur quadratique moyenne EQM DI dans la formule (1). De manière similaire, le débit de l'image RI sera obtenu à l'aide du modèle mathématique fourni par la formule (3) : où [alpha]1m,ss1m et [gamma]1m sont les paramètres du modèle d'établissement de débit spécifiques à la réduction de la résolution spatiale, m pouvant prendre la valeur "intra" ou la valeur "inter". Le débit de l'image s'écrit ainsi : RI = NMBinter * Rinter (#) + NMBintra * Rintra (#) Dans l'exemple de réalisation décrit, la distorsion de la séquence transcodée sera obtenue, par exemple, en faisant la moyenne des distorsions de chaque image. Le débit de la séquence sera obtenu, par exemple, en faisant la moyenne des débits de chaque image puis en multipliant cette moyenne par la fréquence temporelle de la séquence transcodée (ici 30 Im/s) pour obtenir un débit en bits/s. Dans le cas d'une méthode de transcodage basée sur une réduction du débit par requantification on connaît le débit que doit atteindre la méthode de transcodage. A l'étape E410 de l'algorithme de la figure 4, on déduit de cette valeur le débit moyen d'une image #Ien la divisant par la fréquence temporelle. Le débit moyen d'un macro-bloc de la séquence RMB est ensuite obtenu durant cette étape en divisant RI par NMB (qui, ici, est égal à 396). Toujours à l'étape E410, connaissant la variance moyenne 7 d'un macro-bloc de l'image et le débit moyen #MB d'un macro-bloc de chaque image, le pas de quantification moyen de chaque image transcodée # sera déduit en recherchant la courbe R(S,QP) la plus proche des points (#, RMB) dans l'espace débit-variance. Pour déterminer la distorsion de chaque image, il reste alors à introduire dans le modèle de la formule (2) le paramètre de quantification déterminé et la variance moyenne de l'image comme indiqué ci-après : où a2m,b2m,b2m,c2m,d2m,l2m,m2m,n2m sont les paramètres du modèle spécifiques à la réduction du débit par requantification, m pouvant prendre les valeurs "intra" ou "inter". On obtiendra là encore le PSNR de la séquence en introduisant l'erreur quadratique moyenne D, dans la formule (1). Dans l'exemple de réalisation, la distorsion de la séquence transcodée sera obtenue, par exemple, en faisant la moyenne des distorsions de chaque image. Il convient donc de remarquer que l'utilisation de ces modèles débit/distorsion est un moyen rapide de déterminer les informations de PSNR (qualité) et de débit nécessaires à la sélection d'une méthode de transcodage optimale. Selon une variante de réalisation de l'invention représentée à la figure 5, on remplace les modèles de distorsion et de débit adaptés à chaque méthode de transcodage envisagée par un modèle générique adapté à l'ensemble des méthodes de transcodage. L'algorithme de la figure 5 est très similaire à celui de la figure 4 dans la mesure où les étapes E400 à E405, E408, E409 et E412 à E417 sont les mêmes que celles portant les mêmes références sur la figure 4. Dans la description qui va suivre, seules les étapes modifiées porteront des références différentes. Il convient de noter que dans cette variante de l'invention, il n'est plus utile de calculer et de stocker dans l'unité de stockage 13 de la figure 1 la variance de chaque macro-bloc à l'étape E204 de la figure 2 (décodage). Par contre, on utilisera la séquence de données à transmettre et qui est stockée au format YUV dans l'unité 13 pour déterminer, à l'étape E406, des informations différentes suivant la méthode de transcodage évaluée. La distinction des méthodes de transcodage ne se fera donc plus au niveau des modèles utilisés, mais plutôt au niveau du traitement des données issues des images avant leur utilisation par le modèle unique. Ainsi, l'algorithme comporte, après l'étape E405, une étape E420 de traitement des données vidéo à transmettre à la machine client qui est adaptée à la méthode de transcodage dont la qualité est évaluée. Ce traitement peut aussi s'appliquer à des informations représentatives des données numériques. Trois méthodes de transcodage ont été envisagées dans la figure 5 : (a) réduction du format de CIF à QCIF, (b) réduction du débit image de 30 à 10 images/s, (c) requantification pour réduire le débit de 10%. Pour la première méthode de transcodage (a), on sait qu'un bloc de la séquence transcodée représentera un macro-bloc (4 blocs) de la séquence originale. Il est donc nécessaire de simuler la perte de qualité due à la réduction spatiale et, pour ce faire, on utilisera la variance d'un macro-bloc. Toutefois, ce calcul de variance ne se fera pas sur tous les 16*16 pixels du macro-bloc. En effet, la variance sera calculée sur 8*8 pixels en ne prenant qu'un pixel sur deux dans chaque ligne de pixels et un pixel sur deux dans chaque colonne de pixels. Pour la deuxième méthode de transcodage, (b), il faudra prendre en compte la réduction de la fréquence des images. Le résultat de ce transcodage est la conservation, dans la séquence transcodée, d'une image sur trois images de la séquence originale. Dans l'exemple de réalisation de l'invention, si Ni est le nombre d'images dans la séquence originale, on calcule pour chaque image d'ordre t (t variant de 1 à Ni-3), la différence entre cette image et l'image d'ordre t+3. On calcule ensuite, par exemple, la variance de chaque macro-bloc de chacune des Ni-3 images de différence obtenues. Pour la troisième méthode de transcodage (c), le cas est plus simple puisqu'il suffit, dans l'exemple décrit, de calculer la variance de chaque macrobloc de chaque image de la séquence originale. Ces informations de variance obtenues à l'étape E420 sont ensuite stockées dans l'unité de stockage 13 de la figure 1. Quelle que soit la méthode de transcodage utilisée, dans l'exemple de réalisation de l'invention, lors des étapes E421, E422 et E423, on commence par extraire de l'unité 13 les informations de variances et le nombre de macro-blocs codées en mode Intra NMBintraorig et Inter NMBinterorig de chaque image stockés dans l'unité 13. Dans le cas d'une méthode de transcodage basée sur une réduction de la résolution spatiale ou sur une réduction de la fréquence temporelle, on calculera pour chaque image une valeur de distorsion et de débit. La distorsion de chaque image DI sera obtenue par le modèle représenté par la formule (2) en y introduisant la variance moyenne et le paramètre de quantification moyen de l'image à transcoder. La distorsion d'un macro-bloc codé en mode Intra est donnée par le modèle suivant : où alntra >bint ra > Cintra >dntra > lintra > mntra 5 nintra sont les paramètres du modèle pour les macro-blocs codés en mode Intra et s est la version normalisée de s . Pour déterminer la distorsion des macro-blocs codés en mode Inter #int er (#), on remplacera les paramètres spécifiques au mode Intra par les paramètres spécifiques au mode Inter, à savoir "mter ' bnter > Cinter mte ' inter ' mmter' "inter Selon l'exemple de réalisation décrit, le nombre de macro-blocs codés en mode Intra NMBintra et le nombre de macro-blocs codés en mode Inter NMBinter d'une image de la séquence transcodée sont obtenus par les formules suivantes : où K est la rapport entre le format de la séquence originale et le format de la séquence transcodée (K=1 ou 4). Si NMBintra et NMBinterne sont pas entiers, on remplacera, par exemple, la valeur calculée de NMBmtra par l'entier immédiatement supérieur et la valeur calculée de NMBmter par l'entier immédiatement inférieur. On déduit ensuite la distorsion de chaque image par la formule : On obtiendra le PSNR de l'image en introduisant l'erreur quadratique moyenne DI dans la formule (1 ). De manière similaire, le débit de l'image RI sera obtenu à l'aide du modèle mathématique fourni par la formule (3) où [alpha]m,ssm et [gamma]m sont les paramètres du modèle et où m peut prendre la valeur "intra" ou la valeur "inter". Le débit de l'image s'écrit ainsi : RI = NMBinter * Rinter (#) + NMBintra * Rintra (#) Dans l'exemple de réalisation décrit, la distorsion de la séquence transcodée sera obtenue, par exemple, en faisant la moyenne des distorsions de chaque image. Le débit de la séquence sera obtenu, par exemple, en faisant la moyenne des débits de chaque image puis en multipliant cette moyenne par la fréquence temporelle de la séquence transcodée (ici 30 ou 10 Im/s) pour obtenir un débit en bits/s. Dans le cas d'une méthode de transcodage basée sur une réduction du débit par requantification, l'algorithme est identique à celui décrit plus haut en référence à la figure 4. Ici, toutefois, les paramètres am,bm,cm,dm,lm,mm,nm sont les mêmes que ceux utilisés ci-dessus pour la réduction spatiale ou la réduction de fréquence temporelle. En référence à la figure 7, est décrit un exemple d'appareil programmable mettant en #uvre l'invention. Cet appareil est adapté à traiter des données numériques multimédia en vue de les transmettre. Selon le mode de réalisation choisi et représenté à la figure 7, un appareil mettant en #uvre l'invention est par exemple un micro-ordinateur 700 ou une station de travail connecté à différents périphériques, par exemple une caméra numérique 701 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant à l'appareil des données à adapter et à transmettre. L'appareil 700 comporte un bus de communication 702 auquel sont reliés : - une unité centrale de traitement 703 (microprocesseur), qui exerce la fonction de l'unité de commande 19 de la figure 1, - une mémoire morte 704, pouvant comporter le programme "Progr", - une mémoire vive 706, comportant des registres 707 adaptés à enregistrer des variables créées et modifiées au cours de l'exécution du programme précité et notamment les variables r, BP, 0, C, PSNR, MaxPSNR, Idopt, Id, n et N mentionnées en référence aux figures précédentes, - un écran 708 permettant de visualiser les données à traiter et/ou de servir d'interface graphique avec l'utilisateur qui pourra interagir avec le programme selon l'invention, à l'aide d'un clavier 710 ou de tout autre moyen tel qu'un dispositif de pointage non représenté, comme par exemple une souris ou un crayon optique, - un disque dur 712 pouvant comporter le programme "Progr" précité, - un lecteur de disquette 714 adapté à recevoir une disquette 716 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention, - une interface de communication 718 reliée à un réseau de communication 720, par exemple le réseau Internet, l'interface étant apte à transmettre et à recevoir des données. Dans le cas de données audio, l'appareil comprend en outre une carte d'entrée/sortie reliée à un microphone qui sont tous deux non représentés. Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le micro-ordinateur 700 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du micro-ordinateur 700 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 700. Le code exécutable du programme noté "Progr" permettant à l'appareil programmable de mettre en #uvre les procédés de récupération du contexte (figure 2), de codage/décodage (figures 3a et 3b) et de sélection d'une méthode de transcodage (figures 4 et 5) des données selon l'invention, peut être stocké par exemple dans le disque dur 712 ou en mémoire morte 704 comme représenté sur la figure 7. Bien qu'un seul programme soit identifié, il est possible d'avoir plusieurs programmes ou sous programmes pour mettre en #uvre l'invention. Selon une variante, la disquette 716, peut contenir des données compressées et stockées ainsi que le code exécutable du ou des programmes selon l'invention qui, une fois lu par l'appareil 700, sera stocké dans le disque dur 712. En seconde variante, le code exécutable du ou des programmes pourra être reçu par l'intermédiaire du réseau de communication 720, via l'interface 718, pour être stocké de façon identique à celle décrite précédemment. Les disquettes peuvent être remplacées par tout support d'information tel que, par exemple, un disque compact (CD-ROM) ou une carte mémoire. De manière générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non à l'appareil, éventuellement amovible, est adapté à mémoriser un programme dont l'exécution permet la mise en #uvre du procédé selon l'invention. De manière plus générale, le programme pourra être chargé dans un des moyens de stockage de l'appareil 700 avant d'être exécuté. L'unité centrale 703 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 712 ou la mémoire morte 704 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 712 ou la mémoire ROM 704, sont transférés dans la mémoire vive RAM 706 qui contiendra alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables nécessaires à la mise en #uvre de l'invention. Il convient de noter que l'appareil de traitement de données comportant un dispositif selon l'invention peut également être un appareil programmé. Cet appareil contient alors le code du ou des programmes informatiques par exemple figé dans un circuit intégré à application spécifique (ASIC). On notera que l'appareil de la figure 7 qui contient le programme "Progr" précédemment mentionné peut être, dans le cadre d'une architecture de communication du type client-serveur, le dispositif 4 de la figure 1. REVENDICATIONS 1. Procédé de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia, lesdites données étant susceptibles d'être transférées entre au moins deux appareils de communication par l'intermédiaire d'un réseau de communication, caractérisé en ce que le procédé comporte les étapes suivantes : - pour chaque méthode de transcodage, obtention d'une valeur de distorsion à partir d'un modèle mathématique d'établissement de la distorsion en tenant compte de ladite méthode de transcodage, le modèle de distorsion étant appliqué à des informations représentatives des données numériques, - sélection d'une méthode de transcodage en fonction des différentes valeurs de distorsion obtenues pour l'ensemble des méthodes de transcodage. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte les étapes suivantes : - pour chaque méthode de transcodage, obtention d'une valeur de débit à partir d'un modèle mathématique d'établissement du débit en tenant compte de ladite méthode de transcodage, le modèle de débit étant appliqué à des informations représentatives des données numériques, - sélection d'une méthode de transcodage en fonction, d'une part, des différentes valeurs de débit et, d'autre part, des différentes valeurs de distorsion obtenues pour l'ensemble des méthodes de transcodage. 3. Procédé selon la revendication 1 ou 2, caractérisé en qu'il comporte, préalablement à l'étape d'obtention, une étape d'adaptation du modèle à chaque méthode de transcodage. 4. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comporte, préalablement à l'étape d'obtention, une étape de traitement des données numériques de façon adaptée à chaque méthode de transcodage. 5. Procédé selon la revendication 4, caractérisé en ce que le traitement adapté est appliqué aux informations représentatives des données numériques. 6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce qu'il comporte une étape de test de la compatibilité de chaque méthode de transcodage avec au moins une contrainte associée à au moins un des appareils de communication et/ou au réseau. 7. Procédé selon la revendication 6, caractérisé en ce qu'une contrainte correspond au débit autorisé sur le réseau de communication. 8. Procédé selon la revendication 6, caractérisé en ce qu'une contrainte correspond à une ou plusieurs caractéristiques de l'un des appareils de communication qui est destiné à recevoir les données numériques. 9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que le modèle de distorsion établit une relation entre la distorsion et l'énergie du signal représenté par les données numériques. 10. Procédé selon la revendication 9, caractérisé en ce que le modèle de distorsion prend la forme suivante : où D représente la distorsion, S une mesure de l'énergie, a, b, c, d, I, m et n les paramètres du modèle de distorsion qui varient en fonction de la méthode de transcodage. 11. Procédé selon la revendication 2, caractérisé en ce que le modèle de débit établit une relation entre le débit et l'énergie du signal représenté par les données numériques. 12. Procédé selon la revendication 11, caractérisé en ce que le modèle de débit prend la forme suivante : où R représente le débit, S une mesure de l'énergie, a, p, y, 1 les paramètres du modèle de débit qui varient en fonction de la méthode de transcodage. 13. Procédé selon l'une des revendications 1 à 12, caractérisé en ce que les données numériques sont des données vidéo. 14. Procédé selon la revendication 13, caractérisé en ce que l'ensemble de méthodes de transcodage comprend des méthodes de réduction de la résolution spatiale et/ou des méthodes de requantification et/ou des méthodes de réduction de la fréquence temporelle. 15. Dispositif de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia, lesdites données étant susceptibles d'être transférées entre au moins deux appareils de communication par l'intermédiaire d'un réseau de communication, caractérisé en ce que le dispositif comporte : - pour chaque méthode de transcodage, des moyens d'obtention d'une valeur de distorsion à partir d'un modèle mathématique d'établissement de la distorsion en tenant compte de ladite méthode de transcodage, le modèle de distorsion étant appliqué à des informations représentatives des données numériques, - de moyens de sélection d'une méthode de transcodage en fonction des différentes valeurs de distorsion obtenues pour l'ensemble des méthodes de transcodage. 16. Dispositif selon la revendication 15, caractérisé en ce qu'il comporte : pour chaque méthode de transcodage, des moyens d'obtention d'une valeur de débit à partir d'un modèle mathématique d'établissement du débit en tenant compte de ladite méthode de transcodage, le modèle de débit étant appliqué à des informations représentatives des données numériques, - des moyens de sélection d'une méthode de transcodage en fonction, d'une part, des différentes valeurs de débit et, d'autre part, des différentes valeurs de distorsion obtenues pour l'ensemble des méthodes de transcodage. 17. Dispositif selon la revendication 15 ou 16, caractérisé en qu'il comporte des moyens d'adaptation du modèle à chaque méthode de transcodage. 18. Dispositif selon la revendication 15 ou 16, caractérisé en ce qu'il comporte des moyens de traitement des données numériques de façon adaptée à chaque méthode de transcodage. 19. Dispositif selon la revendication 18, caractérisé en ce que le traitement adapté est appliqué aux informations représentatives des données numériques. 20. Dispositif selon l'une des revendications 15 à 19, caractérisé en ce qu'il comporte une étape de test de la compatibilité de chaque méthode de transcodage avec au moins une contrainte associée à au moins un desdits appareils et/ou au réseau. 21. Dispositif selon la revendication 20, caractérisé en ce qu'une contrainte correspond au débit autorisé sur le réseau de communication. 22. Dispositif selon la revendication 20, caractérisé en ce qu'une contrainte correspond à une ou plusieurs caractéristiques de l'un des appareils de communication qui est destiné à recevoir les données numériques. 23. Dispositif selon l'une des revendications 15 à 22, caractérisé en ce que le modèle de distorsion établit une relation entre la distorsion et l'énergie du signal représenté par les données numériques. 24. Dispositif selon la revendication 23, caractérisé en ce que le modèle de distorsion prend la forme suivante : S si S 25. Dispositif selon la revendication 16, caractérisé en ce que le modèle de débit établit une relation entre le débit et l'énergie du signal représenté par les données numériques. 26. Dispositif selon la revendication 25, caractérisé en ce que le modèle de débit prend la forme suivante : où R représente le débit, S une mesure de l'énergie, a, p, y, I les paramètres du modèle de débit qui varient en fonction de la méthode de transcodage. 27. Dispositif selon l'une des revendications 15 à 26, caractérisé en ce que les données numériques sont des données vidéo. 28. Dispositif selon la revendication 27, caractérisé en ce que l'ensemble des méthodes de transcodage comprend des méthodes de réduction de la résolution spatiale et/ou des méthodes de requantification et/ou des méthodes de réduction de la fréquence temporelle. 29. Appareil de communication, caractérisé en ce qu'il comporte un dispositif de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia selon l'une des revendications 15 à 28. 30. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia selon l'une des revendications 1 à 14. 31. Moyen de stockage d'informations amovible, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia selon l'une des revendications 1 à 14. 32. Programme d'ordinateur chargeable dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions ou des portions de code logiciel pour mettre en #uvre les étapes du procédé de sélection d'une méthode parmi un ensemble de méthodes de transcodage de données numériques multimédia selon l'une des revendications 1 à14, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable.