Brevet FR2832582A1 — publié le 20030523

La présente invention concerne un procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage. 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. 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 oeuvre et la gestion du transfert des données via un réseau particulier. Le standard IEEE 802.11 et son homologue européen HYPERLAN sont dédiés aux réseaux locaux sans 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 un groupe de clients, soit encore 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 oeuvre 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 oeuvre de réseaux locaux domestiques, à savoir la mise en place de solutions permettant d'obtenir une qualité de services acceptable. Le serveur étant relié au monde extérieur, les données stockées sont de tailles diverses. Le transport de ces 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"Adapting multimedia Internet content for Universal Access"de R. Mohan, J. Smith, C-S. Li, IEEE Transactions on Multimedia, March 1999, qui prévoit de constituer une base de données répertoriant les différentes catégories d'appareils de communication qui peuvent se connecter à un serveur. Pour chaque catégorie d'appareil, le système prend en compte la taille de l'écran de visualisation de cette catégorie d'appareil et la profondeur de couleurs que l'appareil peut supporter (nombre de bits par composante de couleur). Ensuite, le système élabore à l'avance, pour chaque catégorie d'appareil et pour chacune des caractéristiques susvisées, une version codée pour chacune des vidéos que l'un ou l'autre des appareils pourrait demander au serveur. Ces versions codées sont ensuite stockées par le serveur. Ainsi, lorsque l'un des appareils émet une requête à destination du serveur, le système puise dans la base de données et sélectionne la version précodée des données adaptée à la catégorie de l'appareil et aux caractéristiques précitées. Un tel système présente plusieurs inconvénients. En effet, le système doit effectuer de nombreux calculs pour élaborer les différentes versions codées, nécessitant ainsi une grande puissance de calcul et accaparant l'unité centrale de traitement pendant un temps relativement long. Par ailleurs, la constitution d'une telle base de données requiert l'utilisation de mémoires dotées de capacités de stockage élevées. En outre, le système décrit ci-dessus est figé dans la mesure où il ne peut pas prendre en compte un appareil de communication d'une nouvelle catégorie qui n'est pas répertoriée dans sa base de données. La prise en compte d'une requête émanant d'une nouvelle catégorie d'appareil nécessiterait par exemple de répertorier dans la base de données cet appareil et, pour ce faire, d'élaborer des versions codées des différentes vidéos, de manière adaptée aux caractéristiques visées plus haut (taille de l'écran et profondeur de couleurs). Toutefois, cette prise en compte irait encore dans le sens d'une augmentation de la capacité mémoire du système. La présente invention prévoit de remédier à au moins un des inconvénients précités en proposant un nouveau procédé et un nouveau dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia qui soient tels que le paramètre de codage est déterminé de façon adaptée en fonction d'une capacité mémoire prédéterminée qui fait office de seuil ou de référence. En déterminant un ou plusieurs paramètres de codage de façon appropriée, les données codées avec ce ou ces paramètres nécessitent pour leur décodage une capacité mémoire totale inférieure ou égale à la capacité mémoire prédéterminée. La présente invention a ainsi pour objet un procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit procédé comporte les étapes suivantes : - détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent, - détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée. Corrélativement, l'invention vise un dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit dispositif comporte : - des moyens de détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent, - des moyens de détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - des moyens de décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée. Ainsi, en déterminant la capacité mémoire totale nécessaire au décodage d'une pluralité d'unités élémentaires de données codées, l'invention permet de décider du choix du ou des paramètres de codage adaptés à une capacité mémoire prédéterminée. De ce fait, le ou les paramètres de codage ainsi déterminés permettent de coder les données de manière à ce que ces données codées nécessitent pour leur décodage, par exemple, une capacité mémoire totale inférieure ou égale à la capacité mémoire prédéterminée. Par exemple, le paramètre de codage qui a été utilisé pour le codage des données avant de déterminer la capacité mémoire totale peut se révéler satisfaisant ou non au vu de la capacité mémoire totale déterminée. Si ce paramètre n'est pas satisfaisant, il faudra alors déterminer un paramètre qui sera, cette fois-ci, adapté à la capacité mémoire totale prédéterminée. On notera que si un paramètre de codage est ajusté en fonction de la capacité mémoire totale prédéterminée, c'est parce qu'une modification de ce paramètre là a une influence sur la capacité mémoire totale qui est nécessaire au décodage des données codées avec ledit paramètre. L'invention ne nécessite pas une capacité de stockage élevée comme dans l'art antérieur précité puisqu'on ne mémorise pas, à l'avance, plusieurs versions de données codées en fonction de catégories d'appareil de communication différentes. De plus, l'unité de traitement du dispositif selon l'invention n'est pas accaparée par de long calculs pendant un temps relativement long, comme c'est le cas avec le système de l'art antérieur qui doit constituer une base de données de versions pré-codées. Plus particulièrement, lorsque plusieurs modes de codage sont utilisés pour le codage du nombre donné d'unités élémentaires de données, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en fonction, d'une part, de la capacité mémoire élémentaire déterminée pour le décodage de chaque unité élémentaire de données codée selon un mode de codage différent et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage. Suivant une autre approche, lorsque plusieurs modes de codage sont utilisés pour le codage du nombre donné d'unités élémentaires de données, ledit procédé comporte une étape supplémentaire de sélection de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage. Suivant cette approche, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en fonction, d'une part, de la capacité mémoire élémentaire la plus élevée précédemment sélectionnée et, d'autre part, du nombre donné d'unités élémentaires de données codées. Ainsi, au lieu de prendre en compte, pour chaque unité élémentaire, la capacité mémoire élémentaire correspondante qui a été déterminée en relation avec son mode de codage propre, on se place dans le cas le plus défavorable en adoptant à chaque fois la capacité mémoire élémentaire la plus élevée. Ceci permet, d'une part, de simplifier la détermination de la capacité mémoire totale et, d'autre part, de s'assurer qu'il n'y aura pas de problème de capacité de stockage de données lors des opérations de décodage. Dans le cas où les étapes de détermination de la capacité mémoire élémentaire pour chaque mode de codage, de détermination de la capacité mémoire totale et de décision sont effectuées dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication, l'invention permet de s'adapter facilement et dynamiquement à des appareils de communication non encore reliés au premier appareil, mais qui peuvent y être reliés ultérieurement. Selon une caractéristique, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre la capacité mémoire totale déterminée pour le décodage du nombre donné d'unités élémentaires de données codées et la capacité mémoire disponible dans le second appareil de communication pour le décodage de ces données. La capacité mémoire prédéterminée correspond ainsi à celle du second appareil de communication. Le procédé selon l'invention permet ainsi d'adapter le codage des données effectué dans le premier appareil à la capacité mémoire disponible dans le second appareil. Selon une autre caractéristique, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication de la capacité mémoire disponible dans le second appareil de communication. Ainsi, les informations sur la capacité mémoire disponible dans le second appareil de communication sont transmises au premier appareil avant l'étape de comparaison visée plus haut. Si un ou plusieurs appareils de communication sont reliés ultérieurement au premier appareil, il suffit que les informations sur leurs capacités mémoires respectives soient transmises au premier appareil pour que celui-ci puisse adapter le codage des données de manière appropriée pour chaque appareil. Selon une variante de réalisation, le procédé comporte en outre les étapes suivantes : - détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage. Ainsi, la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction du nombre total d'opérations précédemment déterminé et d'un nombre total d'opérations prédéterminé. Selon une caractéristique, les étapes de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont effectuées dans le premier appareil de communication. Selon une caractéristique, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication. La complexité de décodage prédéterminée correspond ainsi à celle du second appareil de communication. Le procédé selon l'invention permet ainsi d'adapter également le codage des données effectué dans le premier appareil à la capacité de calcul du second appareil en plus de sa capacité mémoire totale. Selon une autre caractéristique, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication pendant l'intervalle de temps prédéterminé. Ainsi, les informations sur la capacité de calcul du second appareil de communication sont transmises au premier appareil avant l'étape de comparaison visée plus haut. Si un ou plusieurs appareils de communication sont reliés ultérieurement au premier appareil, il suffit que les informations sur leurs capacités de calcul respectives soient transmises au premier appareil pour que celui-ci puisse adapter le codage des données de manière appropriée pour chaque appareil. Par ailleurs, on peut en outre prendre la décision quant à la détermination du ou des paramètres de codage en tenant compte de caractéristiques du réseau de communication telles que, par exemple, la bande passante disponible sur ce réseau. Selon une caractéristique, le procédé comporte une étape d'estimation de la qualité d'au moins une unité élémentaire de données en comparant ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée. On est ainsi capable d'élaborer une version de l'unité élémentaire de données adaptée à la capacité mémoire prédéterminée et, éventuellement, à la complexité de décodage prédéterminée et qui permet d'obtenir des données, une fois décodées, de bonne qualité, c'est-à-dire fidèles à l'unité élémentaire de données non codée. On notera que dans le cas d'une transmission de données entre un premier et un deuxième appareil de communication, on peut ainsi fournir au deuxième appareil une version de l'unité élémentaire de données de bonne qualité qui est adaptée à la capacité mémoire disponible dans le deuxième appareil et, éventuellement, à la capacité de calcul de ce deuxième appareil. Selon une autre caractéristique, lorsque plusieurs paramètres de codage ont été déterminés, le procédé comporte les étapes suivantes : - estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage. On peut ainsi sélectionner à l'aide d'un autre critère une combinaison de paramètres de codage parmi plusieurs combinaisons possibles, dans chacune desquelles un ou plusieurs paramètres de codage ont été déterminés de façon adaptée à la capacité mémoire totale prédéterminée et, éventuellement, à la complexité de décodage prédéterminée. Selon encore une autre caractéristique, le procédé comporte les étapes suivantes : - codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - décodage de ladite au moins une unité élémentaire de données codée, - estimation de la qualité de ladite au moins une unité élémentaire de données en comparant cette au moins une unité élémentaire de données non codée avec celle précédemment décodée. Cette méthode d'estimation de la qualité est particulièrement simple à mettre en oeuvre. 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 oeuvre 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 oeuvre ; - 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 4a représente un algorithme de détermination d'au moins un paramètre de codage de données vidéo selon l'invention et qui correspond à l'étape E208 de l'algorithme de la figure 2 ; - la figure 4b représente une variante de réalisation de l'algorithme de la figure 4a ; - la figure 5 est un mode de réalisation d'un appareil programmable mettant en oeuvre 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 IEEE802. 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'adapter, d'une manière générale, le contenu des données demandées par une machine client aux caractéristiques de cette machine et, plus particulièrement, à la capacité mémoire disponible dans celle-ci. La capacité mémoire d'une machine correspond à l'espace mémoire disponible dans cette machine pour le stockage de données. Dans le cadre de l'invention, il s'agit plus particulièrement de l'espace mémoire disponible pour le stockage de données lors des opérations de décodage de ces données. Par ailleurs, on notera que le dispositif selon l'invention permet à titre de variante également d'adapter le contenu des données à la capacité mémoire et à la capacité de calcul de la machine client. On entend par capacité de calcul de la machine client le nombre d'opérations que cette machine peut effectuer dans un intervalle de temps prédéterminé correspondant, par exemple, à 1 seconde. 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 soit sous forme non compressée, par exemple suivant un format YUV, selon un mode préféré de l'invention, soit sous forme compressée, en utilisant le procédé de codage mis en oeuvre dans l'unité de codage 11. 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. 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 la capacité mémoire 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é 17 met en oeuvre le procédé de détermination des paramètres de codage qui sera décrit ultérieurement en référence à la figure 4. L'unité 18 permet quant à elle 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 oeuvre 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 oeuvre le procédé selon l'invention. Ce programme est également stocké dans l'appareil de la figure 5. 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 mémorisées dans l'unité de stockage 5 et faisant l'objet de la requête de la machine client sont disponibles sous forme compressée. Dans l'affirmative, l'étape E202 est suivie d'une étape E203 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. Une fois que le décodage des données vidéo a eu lieu, les données décodées présentes sous le format YUV ainsi que les paramètres de codage précités sont stockés dans l'unité de stockage 13. De retour à l'étape E202, lorsque le test pratiqué au cours de cette étape est négatif, l'étape E204 prévoit de récupérer les valeurs des pixels disponibles dans l'unité de stockage 5 et de les mémoriser dans l'unité de stockage 13. Les étapes E203 et E204 qui viennent d'être décrites sont toutes deux suivies par une étape E205 au cours de laquelle l'unité 14 procède à une récupération des données vidéo. Il s'agit ici d'obtenir des caractéristiques de ces données vidéo, à savoir le ou les paramètres de codage utilisés si ces données vidéo étaient présentes dans l'unité de stockage 5 sous forme compressée. Ainsi, les paramètres de codage peuvent être, par exemple, la résolution spatiale de la vidéo, le nombre d'images par seconde de cette vidéo (résolution temporelle), le nombre d'images codées en mode Intra ou en mode Inter... Dans le cas où les données vidéo n'étaient pas disponibles sous forme compressée dans l'unité de stockage 5, les informations associées aux données vidéo et qui sont récupérées à l'étape E205 sont, par exemple, l'information selon laquelle la vidéo n'était pas compressée et sa résolution. 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é mémoire disponible dans la machine client 2 et la résolution de son unité de visualisation 23 (écran). Toutefois, à titre de variante, ces caractéristiques peuvent également inclure la capacité de calcul de la machine client, à savoir le nombre total d'opérations qu'elle peut effectuer. 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, la 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. Au cours de l'étape suivante E208, on procède à la détermination du ou des paramètres de codage des données vidéo de manière adaptée à la capacité mémoire de la machine client 2. Le détail des opérations effectuées lors de cette étape sera fourni ultérieurement lors de la description faite en référence à la figure 4a. Par ailleurs, à titre de variante, au cours de cette étape E208, on peut également procéder à la détermination du ou des paramètres de codage des données de manière adaptée à la capacité mémoire ainsi qu'à la capacité de calcul de la machine client. Cette variante sera décrite ultérieurement en référence à la figure 4b. 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. La détermination de ce ou ces paramètres de codage peut également être effectuée de manière adaptée aux caractéristiques du réseau de communication 3, en plus de la capacité mémoire de la machine client et éventuellement de sa capacité de calcul. Au cours de l'étape suivante E209, 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 anglo-saxonne 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 oeuvre 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 soit sous forme compressée au format mp4 conforme au standard MPEG-4, soit sous forme non-compressée au format YUV. On utilise par exemple le format YUV de type 4 : 2 : 0, ce 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. Chaque image de la 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. 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 sous forme compressée, le procédé de décodage est appliqué à l'étape E203 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 également appelée vidéo originale. 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 E311 qui 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/LVG11 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. Le mode de codage est choisi en fonction de l'activité présente à l'intérieur d'un macro-bloc. Par exemple, cette activité est mesurée par la variance entre un macro-bloc d'une image courante et le macro-bloc de l'image précédente situé à la même position spatiale. Si la variance est supérieure à un seuil prédéterminé, alors le macrobloc est codé en mode Inter. Ce macro-bloc sera codé en mode Intra dans le cas contraire. 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 oeuvre 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 au vecteur de mouvement du macro-bloc de l'image précédente disposé à la même position spatiale. 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. L'étape E317 est suivie d'une étape E318 au cours de laquelle on code le macro-bloc de différence selon le mode Intra décrit plus haut. 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 oeuvre 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 oeuvre 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 oeuvre 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 11 du 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 VSC 29/WG11 N3056, 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 abjects = part2 : vssual, ISO/IEC JTC 1/SC 29/WG11 A/3056, 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/WG11 N3056, Oecember 2000, de manière à obtenir le tableau bidimensionnel F' [u] [v] dont les valeurs appartiennent à l'intervalle [-2bits par pixel + 3, 2bits 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 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 ] [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. else if ( (u==0) & & (v==0) & & (macroblockjntra)) { F'lu] = dc~scaler* QF [u] [v] ; } else { if (macroblockintra) { F'lu] [v] = QF [u] [v] * MO] [u] [v] * quantiser~scale)/32 ; } else { F'lu] [v] = ( ( (OF [ [] * 2) + Sign (QFMM)) * ] [u] [v] * quantiser~scale)/32 ; } } } } sum = 0 ; for (v=0 ; v 2 bitsper~pixel + 3 F1u ] ; [ ;v ] ; = 2 bits~per~pixe + 3 - 1 ; } e ! se { bits-per * 1+3 if (F] M } } 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 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 the 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 macro- blocs de taille 2m (ici m=3) selon l'équation suivante : où Yest 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 à Cg = *jSg, où/ est une matrice de permutation des signes de dimension 8*8, Kg et Bg 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 rs/ze high (32*f)- 1 ; low = ( (-32) * f) ; range = (64 * f) ; if ( (f == 1) Il (horizontal~mv~data == 0)) MVDx = horizontal~mv~data ; else { MVDx = ( (/4bs (horizontaLmvdata)-1) * f) + horizonta ! mvresidua) + 1 ; if (horizontal~mv~data MVDx =-MVDx ; } if ( (f == 1) Il (vertical~mv~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 (M\/ 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 : Msua/,/SO//FCJ7'C /SC 29AVG M3056, Decem & e/-2000. On notera que r~size, f, MVDx, MVDy, high, low et range sont des variables, tandis que les données horizontatmvdata, verticatmvdata, horizontal~mv~residual et vertica! 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 4a 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 détermination de paramètre de codage de données 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 5. L'exécution du programme informatique basé sur cet algorithme va mettre en oeuvre le procédé permettant d'adapter un ou plusieurs paramètres de codage qui vont être utilisés pour le codage des données transmises à la machine client, en fonction de la capacité mémoire de cette dernière. Par ailleurs, ce procédé peut permettre également d'adapter ce ou ces paramètres de codage à la résolution de l'écran de la machine client 2 ainsi qu'aux ressources disponibles sur le réseau de communication 3, à savoir la bande passante. L'algorithme de la figure 4a 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é mémoire totale M disponible dans 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, et - le ou les paramètres de codage utilisés pour coder les données vidéo mémorisées dans l'unité de stockage 5. Les paramètres de codage utilisés sont par exemple, la taille du fichier contenant les données vidéo, notée BRo, la résolution de l'image ro et le nombre d'images par seconde fro. * Il convient de noter que, lorsque les données vidéo sont mémorisées sous le format YUV, les paramètres de codage tels que la taille du fichier, la résolution de l'image et le nombre d'images par seconde sont nécessairement récupérés lors de cette étape E400. Les autres paramètres de codage utilisés pour coder ces données vidéo sont alors des valeurs qui sont choisies par défaut. Au cours de l'étape suivante E401, on procède à la détermination de la taille du fichier vidéo BR qui va être transmis. Lors de cette étape, deux cas sont envisagés selon que la taille du fichier BRo stocké dans l'unité de stockage 5 de la figure 1 est supérieure ou inférieure à la bande passante disponible sur le réseau de communication 3. Pour ce faire, on tient compte de la valeur du débit maximal BR autorisé dans le réseau de communication 3 et qui est affectée au module de contrôle de débit lors de l'exécution de l'étape E314 de la figure 3a. La taille du fichier vidéo BR qu'il est possible de transmettre est alors fournie par l'équation suivante : BR = min (BRo, BP). Au cours de l'étape suivante E402, on procède à une initialisation des valeurs contenues dans deux tableaux : un premier tableau, de dimension R, dans lequel sont stockées les valeurs de résolution admissibles d'une image, et un second tableau, de dimension FR, dans lequel sont stockées différentes valeurs du nombre d'images par seconde. Plus particulièrement, les valeurs de résolution de l'image qui sont contenues dans le premier tableau sont admissibles dans le sens où ces valeurs de résolution sont inférieures ou égales à la résolution de l'unité de visualisation 23 de la machine client 2 (figure 1) et qui est mémorisée dans l'unité de stockage 21. On choisira par exemple un premier tableau dont la première valeur est égale à la résolution des données vidéo mémorisées dans l'unité de stockage 5 de la figure 1 et constituant la version originale de la vidéo mentionnée plus haut, dans le cas, bien entendu, où cette valeur est considérée comme admissible. Les autres valeurs admissibles figurant dans ce tableau sont sélectionnées au préalable et, dans le cas où la dimension du tableau est trois, les deux dernières valeurs correspondent à une résolution de 352 colonnes et 288 lignes, pour l'une, et 176 colonnes et 144 lignes, pour l'autre. Le second tableau contenant différentes valeurs du nombre d'images par seconde est par exemple, lui aussi, de dimension trois et la première valeur de ce tableau est égale au nombre d'images par seconde de la version originale de la vidéo mémorisée dans l'unité de stockage 5 de la figure 1. Les deux autres valeurs sont respectivement égales à 20 et 10 images par seconde. Plus particulièrement, au cours de cette étape, on procède à l'initialisation de deux variables d'indices, fr et r, correspondant respectivement au second et au premier tableau susvisé. Chaque variable d'indice est initialisée à la première valeur contenue dans le tableau correspondant. Au cours de l'étape suivante E403, on détermine la capacité mémoire totale ME qui est nécessaire aux opérations de décodage d'un nombre donné d'unités élémentaires de données codées, opérations qui sont décrites en référence à la figure 3b. Cette capacité mémoire est notamment celle qui est nécessaire au stockage des macro-blocs de données décodés en vue de leur visualisation, comme exposé ci-dessus en référence à l'étape E333 de la figure 3b. Par exemple, le nombre donné de macro-blocs correspondra au nombre de macro-blocs qui constituent une image. Dans l'exemple de réalisation, les macro-blocs constituant une image sont codés en mode Intra ou en mode Inter. Comme le décodage d'un macro-bloc qui a été codé en mode Inter nécessite le décodage d'un macro-bloc de différence codé en mode Intra, la capacité mémoire dite élémentaire nécessaire pour décoder un macro-bloc codé en mode Inter est plus élevée que celle nécessaire pour décoder un macro-bloc codé en mode Intra. Dans le cas présent, la capacité mémoire totale nécessaire pour décoder une image sera égale à celle nécessaire pour décoder une image codée en mode Inter dans laquelle tous les macro-blocs sont codés en mode Inter, ce qui correspond au cas le plus défavorable. Cette capacité mémoire totale est fournie par l'équation suivante : ME = MB * MElnter, où MB est le nombre de macro-blocs d'une image et MElnter l'estimation de la capacité mémoire élémentaire nécessaire pour décoder le macro-bloc codé en mode Inter. L'estimation de la capacité mémoire élémentaire MEnter d'un macrobloc est effectuée en déterminant la capacité mémoire nécessaire pour construire le macro-bloc compensé et le macro-bloc de différence mentionnés en référence à la figure 3b. Les opérations de décodage du macro-bloc compensé décrites aux étapes E327, E328 de la figure 3b débutent d'abord par le décodage statistique du vecteur de mouvement différentiel. Le décodage statistique VLD (étape E328) nécessite la mise en mémoire de la table définie dans le standard Information technology- Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. De manière à pouvoir construire le macro-bloc compensé lors de l'étape E329, il est nécessaire d'avoir préalablement stocké en mémoire les valeurs du macro-bloc de l'image précédente. Le décodage du macro-bloc de différence (E330) prévoit d'abord de décoder statistiquement les coefficients selon l'étape E321 de la figure 3b (décodage en mode Intra). Le décodage VLD, étape E322 nécessite la mise en mémoire de deux tables définies dans le standard Information technology-Generic coding of audio-visual abjects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. L'une des tables correspond aux coefficients de luminance et l'autre table, aux coefficients de chrominance. La quantification inverse décrite par l'étape E323 fait intervenir, quant à elle, une matrice de pondération W [l] [u] [v]. En outre, le macro-bloc reconstruit nécessite d'être mémorisé jusqu'à ce que tous les macro-blocs de l'image soient décodés. La table ci-dessous indique de façon détaillée la capacité mémoire élémentaire nécessaire pour décoder un macro-bloc qui a été codé selon le mode de codage le plus consommateur de capacité mémoire, à savoir le mode Inter : Traitement mémoire VLD 1112 Macro-bloc image précédente 16*16*8 = 2048 Table VLD luminance 218 Table VLD chrominance 237 Matrice de pondération 16*16*8 = 3072 Macro-bloc sauvegarde 16*16*8 = 2048 Total 8735 Dans l'exemple qui vient d'être décrit, la capacité mémoire totale d'une image a été déterminée en fonction, d'une part, de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage et, d'autre part, du nombre d'unités élémentaires (macro-blocs) constituant l'image. Les calculs permettant d'aboutir à la capacité mémoire totale ME se trouvent ainsi simplifiés. Cependant, on peut également prévoir de déterminer cette capacité mémoire totale ME au plus près en tenant compte, d'une part des différentes capacités mémoires élémentaires qui ont été obtenues respectivement pour les différents modes de codage utilisés et, d'autre part, du nombre d'unités élémentaires de données (macro-blocs) codées selon chacun de ces modes de codage. Il convient de noter que le nombre de modes de codage différents peut être supérieur à deux, voire être unique. De retour à l'algorithme de la figure 4a, dès lors que la capacité mémoire totale ME a été déterminée, l'étape E403 est suivie d'une étape E404. Au cours de cette étape, un test est pratiqué afin de déterminer si la capacité mémoire totale ME ainsi obtenue pour effectuer le décodage d'une image faisant partie d'une vidéo demandée par l'utilisateur et codée avec les paramètres de codage courants est inférieure ou égale à une capacité mémoire prédéterminée (M). On notera que les paramètres de codage courants sont, lors de la première exécution de la boucle de l'algorithme, ceux initialisés à l'étape E402. Par la suite, les valeurs des paramètres sont fournies par les étapes E409 et E411. En particulier, on procède à la comparaison entre la capacité mémoire ME qui vient d'être déterminée et la capacité mémoire M de la machine client 2 afin de s'assurer que la capacité mémoire M de cette machine client sera suffisante pour stocker des données vidéo requises par l'utilisateur et qui doivent être décodées. Dans l'affirmative, l'étape E404 est suivie d'une étape E405 au cours de laquelle on effectue le codage des données vidéo suivant les paramètres de codage récupérés à l'étape E400, ainsi que les valeurs courantes du nombre d'images par seconde (fr) et de la résolution de l'image (r), ces valeurs ayant été initialisées à l'étape E402. Au cours de l'étape suivante E406, on procède à un décodage des données vidéo codées lors de l'exécution de l'étape E405, de manière à obtenir une version de la vidéo au format YUV. Au cours de l'étape suivante E407, on procède à une quantification de la qualité des données vidéo ainsi compressées. Par exemple, la différence de qualité entre deux vidéos sera estimée en utilisant la notion de rapport signal sur bruit notée PSNR ("Peak Signal to Noise Ratio") et fournie par l'équation suivante : où q, 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. On remarquera que d'autres méthodes d'estimation d'une qualité peuvent bien entendu être envisagées. On peut ainsi, par exemple, établir un modèle en déterminant la qualité de différentes vidéos de test pour lesquelles on fait varier le ou les paramètres de codage. Ensuite, pour chaque vidéo à transmettre, on adapte le ou les paramètres de codage selon l'invention et, en fonction du type de la vidéo et du modèle précité, on en déduit la qualité de la vidéo codée avec ce ou ces paramètres. En ce qui concerne le PSNR, il convient de noter que le nombre de pixels de l'image d'origine doit être le même que celui de l'image décodée. Pourtant, ceci n'est pas toujours vrai dans la mesure où le procédé selon l'invention permet de modifier le paramètre de codage qu'est la résolution de l'image. Par conséquent, il sera nécessaire en cas de différence entre le nombre de pixels de l'image d'origine et celui de l'image décodée d'introduire un processus de sous-échantillonnage spatial, afin de ramener la résolution de l'image d'origine à celle de l'image décodée. La valeur du PSNR est déterminée pour chaque image de la vidéo. On aura ainsi une image de bonne qualité en basant le choix de la version des données à envoyer sur la valeur du PSNR. On notera qu'il serait possible de déterminer la valeur du PSNR pour chaque unité élémentaire de données constituant une image et ensuite d'en faire la somme pour déduire la valeur du PSNR de l'image considérée. En calculant la valeur du PSNR sur chaque unité élémentaire de données (macro-bloc), on trouvera des macro-blocs qui seront de bonne qualité et d'autres de moins bonne qualité et il faudra alors effectuer la moyenne des valeurs PSNR des macro-blocs de l'image. Cette méthode occasionne toutefois plus de calculs que celle consistant à calculer la valeur du PSNR pour l'image de façon globale. Etant donné que l'on s'intéresse à la détermination de la qualité sur un segment de vidéo donné, on va calculer une valeur moyenne de PSNR sur ce segment. Par conséquent, on fait intervenir un processus de sous- échantillonnage temporel pour ramener le nombre d'images par seconde de la vidéo originale au nombre d'images par seconde de l'image décodée. Une fois que l'on a estimé la qualité moyenne d'un segment de vidéo donné en comparant les images décodées de ce segment qui ont été préalablement codées avec les paramètres de codage précités par rapport aux images correspondantes non codées, on mémorise, dans l'unité de stockage temporaire 13 de la figure 1, la valeur du PSNR moyen, les données numériques constitutives de la vidéo compressée avec les paramètres de codage. Au cours de l'étape suivante E408, on procède à un test afin de déterminer si la résolution courante de l'image, r, correspond à la dernière valeur figurant dans le premier tableau des résolutions admissibles de l'image. Dans la négative, l'étape E408 est suivie d'une étape E409 au cours de laquelle on incrémente la résolution courante de l'image à la valeur suivante figurant dans le tableau considéré. On notera que lors de l'exécution de la première boucle de l'algorithme de la figure 4a, la valeur r initialisée lors de l'étape E402 correspond à la première valeur du premier tableau et donc cette étape E409 est exécutée. L'étape E403 décrite ci-dessus est alors de nouveau exécutée afin de déterminer la capacité mémoire totale ME nécessaire pour décoder les données vidéo requises par l'utilisateur avec les paramètres de codage déterminés, compte tenu de ce qui précède. Le paramètre de codage qui correspond à la résolution de l'image vient d'être modifié, tandis que l'autre paramètre de codage correspondant au nombre d'images par seconde reste quant à lui inchangé. On comprend ainsi que, lors de l'exécution de cette boucle de l'algorithme, toutes les valeurs de résolution de l'image indiquées dans le premier tableau mentionné ci-dessus sont sélectionnées et conduisent, dans chaque cas, à la détermination d'une capacité mémoire particulière. On notera que dans l'exemple décrit ici, un seul paramètre de codage est modifié à chaque fois bien que l'on puisse également influer sur l'autre paramètre de codage que constitue le nombre d'images par seconde. Pour cette combinaison de paramètres de codage dans laquelle seul un paramètre varie, on estime la qualité de chaque image et, plus généralement, d'un segment de données vidéo donné. Cependant, on pourrait également choisir de modifier simultanément plusieurs paramètres de codage distincts au sein d'une même combinaison de paramètres de codage et, pour chaque combinaison de paramètres de codage ainsi modifiés, on estime la qualité de l'image. On notera que, lors de l'exécution de l'étape E404, si le test pratiqué est négatif, alors l'étape E404 est immédiatement suivie de l'étape E408 décrite ci-dessus. De manière générale, l'algorithme de la figure 4a permet de prendre une décision quant à savoir si un paramètre de codage peut être utilisé pour coder les données vidéo requises par l'utilisateur, compte tenu de : - la capacité mémoire totale déterminée lors de l'étape E403 en fonction de ce paramètre et - la comparaison de cette capacité mémoire avec une capacité mémoire prédéterminée (capacité mémoire totale de la machine client 2), lors de l'étape E404. De retour à l'algorithme de la figure 4a, lorsque le test pratiqué à l'étape E408 est positif, cela signifie que toutes les valeurs de résolutions d'image fournies par le premier tableau précité ont été sélectionnées, alors cette étape est suivie d'une étape E410 au cours de laquelle un autre test est pratiqué. Ce test a pour but de déterminer si la valeur courante du nombre d'images par seconde (fr) correspond à la dernière valeur du second tableau précité dans lequel sont stockées différentes valeurs du nombre d'images par seconde. Dans la négative, cette étape est suivie d'une étape E411 au cours de laquelle on incrémente la valeur courante du nombre d'images par seconde afin de sélectionner une autre valeur du second tableau. L'étape E403 est alors de nouveau exécutée et permet de déterminer, pour ce nouveau paramètre de codage, la capacité mémoire totale nécessaire pour décoder les données vidéo requises par l'utilisateur avec ce paramètre de codage et les autres paramètres de codage courants précités. On notera que dans ce cas, la valeur de la résolution de l'image correspond à la dernière valeur du premier tableau et que les différentes valeurs du nombre d'images par seconde figurant dans le second tableau vont successivement être sélectionnées, tandis que la valeur de la résolution de l'image restera la même. Toutefois, on peut envisager de modifier l'algorithme de la figure 4a afin que différentes autres combinaisons de paramètres de codage puissent être envisagées. Par exemple, les différentes valeurs successives du nombre d'images par seconde figurant dans le second tableau peuvent être combinées avec la première et ensuite la seconde valeur de la résolution de l'image figurant dans le premier tableau. On notera également que la première boucle constituée des étapes E403 à E409 pourrait également prendre en compte le paramètre de codage que constitue le nombre d'images par seconde de la vidéo demandée par l'utilisateur au lieu de prendre en compte la résolution de l'image. De retour à l'étape E41 0, lorsque le test pratiqué est positif, ceci signifie que toutes les valeurs du nombre d'images par seconde figurant dans le second tableau ont été sélectionnées et l'on passe alors à l'étape suivante E412. Au cours de cette étape, on effectue un tri par ordre décroissant des différentes versions de données vidéo compressées suivant leur valeur de PSNR. Par exemple, la version de données vidéo compressée qui sera transmise du dispositif 4 selon l'invention à la machine client 2 de la figure 1 sera celle qui bénéficie du PSNR le plus élevé. L'étape E412 permet de sélectionner la qualité la meilleure parmi toutes celles qui ont été déterminées. Ceci met fin à l'algorithme de la figure 4a. On notera que l'étape E209 de l'algorithme de la figure 2 est alors exécutée pour transmettre les données vidéo requises par l'utilisateur et qui ont été adaptées à la capacité mémoire de la machine client 2. Il convient de noter que l'algorithme de la figure 4a peut également prendre en compte un seul paramètre de codage ou, au contraire, tenir compte d'autres paramètres de codage tels que par exemple le nombre d'images qui ont été codées en mode inter. Ainsi, on adapte un ou plusieurs paramètres de codage pour le codage des données vidéo ou, de manière plus générale de données multimédia requises par l'utilisateur, afin que la machine client 2 soit apte à décoder ces données compressées, compte tenu de la capacité mémoire dont dispose l'utilisateur. Le ou les paramètres de codage sur le (s) quel (s) l'invention intervient doivent bien entendu avoir une influence sur la capacité mémoire nécessaire au décodage des données multimédia demandées par l'utilisateur. Il convient de noter que si deux modes de codage interviennent dans le codage des données, l'invention permet de ne s'intéresser qu'à l'un des paramètres de codage qui exerce une influence sur un seul des modes de codage. La figure 4b illustre une variante de réalisation de l'algorithme de la figure 4a. L'algorithme de la figure 4b diffère de celui de la figure 4a par les étapes E430, E434 et E435 qui seront détaillées ci-après. Les étapes E431, E432, E433 et E436 à E443 correspondant, quant à elles, aux étapes respectives E401, E402, E403 et E405 à E412, elles ne seront pas de nouveau décrites. L'algorithme de la figure 4b comporte différentes instructions ou portions de code logiciel correspondant à des étapes du procédé de détermination d'un paramètre de codage de données 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 19. 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 5. L'exécution du programme informatique basé sur cet algorithme va mettre en oeuvre le procédé permettant d'adapter un ou plusieurs paramètres de codage qui vont être utilisés pour le codage des données transmises à la machine client, en fonction, d'une part, de la capacité mémoire de la machine client et, d'autre part, de la capacité de calcul de cette dernière. Par ailleurs, ce procédé peut permettre également d'adapter ce ou ces paramètres de codage à la résolution de l'écran de la machine client 2, ainsi qu'aux ressources disponibles sur le réseau de communication 3, à savoir la bande passante. Lors de l'exécution de la première étape E430, la 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) comporte, en plus de celle décrite à l'étape E400 de la figure 4a, l'obtention de la capacité de calcul C de la machine client 2. Au cours de l'étape E434, on détermine la complexité de calcul, notée 0, du processus de décodage d'une séquence d'images, également appelée segment d'images et qui correspond à un nombre d'images codées pour un intervalle de temps prédéterminé. Dans l'exemple décrit ici, la résolution temporelle étant un paramètre de codage, on fixe l'intervalle de temps par exemple à 1 s et on compte le nombre d'images codées pendant cet intervalle de temps. Le nombre d'images est par exemple égal à trente. Cette complexité de calcul 0 est également appelée complexité de décodage, et sa détermination correspond à la détermination du nombre total d'opérations qui sont à effectuer pendant un intervalle de temps prédéterminé en vue de décoder une pluralité d'unités élémentaires de données codées. Ces unités élémentaires sont, par exemple, les macro-blocs définis plus haut. Pour déterminer cette complexité de décodage, on va s'intéresser à un segment composé de Nlntra + N, nter images. La complexité d'un tel segment est fournie par l'équation suivante : où : est lue nombre d'images codées en mode Intra pour le segment considéré, le segment correspond à un nombre donné d'images par seconde, - NInter est le nombre d'images codées en mode Inter ou prédictif pour le segment considéré, - MBIntra est le nombre de macro-blocs codés en mode Intra dans une image codée en mode Intra, - OIntra est la complexité de décodage d'un macro-bloc codé en mode Intra, - MBest le nombre de macro-blocs codés en mode Intra dans une image codée en mode Inter, - MB'Inter est le nombre de macro-blocs codés en mode Inter dans une image codée en mode Inter, et - OInter est la complexité de décodage d'un macro-bloc codé en mode Inter. On s'aperçoit ainsi que la détermination de la complexité de décodage du segment d'images défini ci-dessus passe par une étape préalable d'analyse du mode de codage utilisé pour coder chaque unité élémentaire de données (macro-bloc). Ensuite, il s'agit de déterminer, pour chaque unité élémentaire de données qui a été codée selon un mode de codage différent, la complexité de décodage de cette unité élémentaire de données, c'est-à-dire le nombre élémentaire d'opérations qu'il est nécessaire d'effectuer pour procéder à son décodage. La détermination de la complexité de décodage du segment susvisé passe ensuite par une étape au cours de laquelle on identifie le nombre d'unités élémentaires de données codées selon chacun des modes de codage différents et, connaissant la complexité de décodage pour chacun de ces modes de codage, on en déduit le nombre total d'opérations qu'il est nécessaire d'effectuer pendant l'intervalle de temps prédéterminé pour décoder la pluralité d'unités élémentaires de données codées constituant le segment défini plus haut. Dans l'exemple décrit ici, on s'intéresse dans un premier temps au mode de codage d'une image puis, selon que celle-ci est codée en mode Intra ou en mode Inter, on procède de la façon suivante : - Si l'image est codée en mode Intra, alors il suffit de prendre en compte la complexité de décodage d'un macro-bloc et le nombre de macroblocs contenus dans cette image, puis de multiplier le chiffre obtenu correspondant à la complexité de décodage d'une image codée en mode intra par le nombre d'images N1ntra codées suivant ce mode. - Si l'image est codée en mode Inter, il faut alors rechercher à l'intérieur de chaque image le nombre de macro-blocs codés suivant le mode de codage Intra ou Inter, puis obtenir pour chaque image, d'une part, la complexité de décodage pour les macro-blocs codés selon le mode de codage Intra et, d'autre part, la complexité de décodage pour les macro-blocs codés selon le mode de codage Inter. Il faut ensuite faire la somme de ces complexités de décodage afin d'obtenir la complexité de décodage totale d'une image codée en mode Inter. Il reste ensuite à multiplier ce chiffre par le nombre d'images codées en mode Niter. On notera que la détermination de la complexité de décodage d'une unité élémentaire de données telle qu'un macro-bloc varie selon que celui-ci est codé en mode Intra ou en mode Inter. Comme décrit ci-après, la détermination de la complexité de décodage d'une unité élémentaire de données va être détaillée suivant que le codage a lieu en mode Intra ou en mode Inter. 1) Codage en mode Intra 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 oeuvre 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 Discrete 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 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 7 5 13 11 mouvement Reconstruction macro-bloc 1288 1400 2328 1540 différence Construction du macro-bloc 512 256 prédit 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 7874 opérations élémentaires. Une fois que la complexité de décodage d'un segment composé de Nlntra + Nlnter images a été déterminée, l'étape E434 est suivie d'une étape E435. Au cours de cette étape, un test est pratiqué afin de déterminer si, d'une part, la capacité mémoire totale ME obtenue pour effectuer le décodage d'une image codée avec les paramètres de codage courants est inférieure ou égale à une capacité mémoire prédéterminée M et, d'autre part, la complexité de décodage 0 obtenue est inférieure ou égale à une complexité de décodage prédéterminée C. La capacité mémoire prédéterminée et la complexité de décodage prédéterminée correspondent respectivement, dans le cas d'une architecture client-serveur, à la capacité mémoire disponible dans la machine client 2 de la figure 1 et à sa capacité de calcul. En déterminant ainsi un ou plusieurs paramètres de codage de manière adaptée à cette capacité mémoire disponible dans la machine client 2 et à sa capacité de calcul, le dispositif 4 de la figure 1 va pouvoir transmettre à la machine 2 les données requises par l'utilisateur et codées avec ce ou ces paramètres, c'est-à-dire de façon adaptée aux caractéristiques susvisées de la machine 2. Cette adaptation du contenu des données transmises tient davantage compte des spécificités de la machine client 2 que l'adaptation qui est prévue à la figure 4a. En référence à la figure 5, est décrit un exemple d'appareil programmable mettant en oeuvre 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 5, un appareil mettant en oeuvre l'invention est par exemple un micro-ordinateur 500 ou une station de travail connecté à différents périphériques, par exemple une caméra numérique 501 (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 500 comporte un bus de communication 502 auquel sont reliés : - une unité centrale de traitement 503 (microprocesseur), qui exerce la fonction de l'unité de commande 19 de la figure 1, - une mémoire morte 504, pouvant comporter le programme"Progr", - une mémoire vive 506, comportant des registres 507 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, fr, BR, BRo et PSNR mentionnées en référence aux figures précédentes, - un écran 508 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 510 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 512 pouvant comporter le programme"Progr" précité, - un lecteur de disquette 514 adapté à recevoir une disquette 516 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention, - une interface de communication 518 reliée à un réseau de communication 520, par exemple un réseau Internet, ou Ethernet, ou IEEE1394 ou de type sans fil conforme à la norme 802.1, 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 500 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 500 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 500. Le code exécutable du programme noté"Progr"permettant à l'appareil programmable de mettre en oeuvre les procédés de récupération du contexte (figure 2), de codage/décodage (figures 3a et 3b) et d'adaptation (figures 4a et 4b) des données selon l'invention, peut être stocké par exemple dans le disque dur 512 ou en mémoire morte 504 comme représenté sur la figure 5. Bien qu'un seul programme soit identifié, il est possible d'avoir plusieurs programmes ou sous programmes pour mettre en oeuvre l'invention. Selon une variante, la disquette 516, 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 500, sera stocké dans le disque dur 512. En seconde variante, le code exécutable du ou des programmes pourra être reçu par l'intermédiaire du réseau de communication 520, via l'interface 518, 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 oeuvre 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 500 avant d'être exécuté. L'unité centrale 503 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 512 ou la mémoire morte 504 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 512 ou la mémoire ROM 504, sont transférés dans la mémoire vive RAM 506 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 oeuvre 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 5 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 détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit procédé comporte les étapes suivantes : - détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent, - détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée. 2. Procédé selon la revendication 1, caractérisé en ce que, plusieurs modes de codage étant utilisés pour le codage du nombre donné d'unités élémentaires de données, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en fonction, d'une part, de la capacité mémoire élémentaire déterminée pour le décodage de chaque unité élémentaire de données codée selon un mode de codage différent et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage. 3. Procédé selon la revendication 1, caractérisé en ce que, plusieurs modes de codage étant utilisés pour le codage du nombre donné d'unités élémentaires de données, ledit procédé comporte une étape supplémentaire de sélection de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage. 4. Procédé selon la revendication 3, caractérisé en ce que, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en fonction, d'une part, de la capacité mémoire élémentaire la plus élevée précédemment sélectionnée et, d'autre part, du nombre donné d'unités élémentaires de données codées. 5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que les étapes de détermination de la capacité mémoire élémentaire pour chaque mode de codage, de détermination de la capacité mémoire totale et de décision sont effectuées dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication. 6. Procédé selon la revendication 5, caractérisé en ce que, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre la capacité mémoire totale déterminée pour le décodage du nombre donné d'unités élémentaires de données codées et la capacité mémoire disponible dans le second appareil de communication pour le décodage de ces données. 7. Procédé selon la revendication 6, caractérisé en ce que, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication de la capacité mémoire disponible dans le second appareil de communication. 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce qu'il comporte en outre les étapes suivantes : - détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage. 9. Procédé selon la revendication 8, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction du nombre total d'opérations précédemment déterminé et d'un nombre total d'opérations prédéterminé. 10. Procédé selon les revendications 5 et 9, caractérisé en ce que les étapes de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont effectuées dans le premier appareil de communication. 11. Procédé selon la revendication 10, caractérisé en ce que, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication. 12. Procédé selon la revendication 11, caractérisé en ce que, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication. 13. Procédé selon l'une des revendications 5 à 7, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction de caractéristiques du réseau de communication. 14. Procédé selon l'une des revendications 1 à 13, caractérisé en ce qu'il comporte une étape d'estimation de la qualité d'au moins une unité élémentaire de données en comparant ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée. 15. Procédé selon la revendication 14, caractérisé en ce que, lorsque plusieurs paramètres de codage ont été déterminés, le procédé comporte les étapes suivantes : - estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage. 16. Procédé selon la revendication 14 ou 15, caractérisé en ce qu'il comporte les étapes suivantes : - codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - décodage de ladite au moins une unité élémentaire de données codée, - estimation de la qualité de ladite au moins une unité élémentaire de données en comparant cette au moins une unité élémentaire de données non codée avec celle précédemment décodée. 17. Procédé selon l'une des revendications 1 à 16, caractérisé en ce que les données constituent une vidéo et le nombre donné d'unités élémentaires de données correspond à une image de la vidéo. 18. Procédé selon la revendication 17, caractérisé en ce que l'unité élémentaire de données est un macro-bloc de données. 19. Dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit dispositif comporte : - des moyens de détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent, - des moyens de détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - des moyens de décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée. 20. Dispositif selon la revendication 19, caractérisé en ce que, plusieurs modes de codage étant utilisés pour le codage du nombre donné d'unités élémentaires de données, ledit dispositif comporte des moyens de sélection de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage. 21. Dispositif selon la revendication 19 ou 20, caractérisé en ce que les moyens de détermination de la capacité mémoire élémentaire pour chaque mode de codage, de détermination de la capacité mémoire totale et de décision sont intégrés dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication. 22. Dispositif selon la revendication 21, caractérisé en ce qu'il comporte des moyens de comparaison entre la capacité mémoire totale déterminée pour le décodage du nombre donné d'unités élémentaires de données codées et la capacité mémoire disponible dans le second appareil de communication pour le décodage de ces données. 23. Dispositif selon la revendication 22, caractérisé en qu'il comporte des moyens d'obtention par le premier appareil de communication de la capacité mémoire disponible dans le second appareil de communication. 24. Dispositif selon l'une des revendications 19 à 23, caractérisé en ce qu'il comporte en outre : - des moyens de détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - des moyens de détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage. 25. Dispositif selon la revendication 24, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction du nombre total d'opérations précédemment déterminé et d'un nombre total d'opérations prédéterminé. 26. Dispositif selon les revendications 21 et 25, caractérisé en ce que les moyens de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont intégrés dans le premier appareil de communication. 27. Dispositif selon la revendication 26, caractérisé en ce qu'il comporte des moyens de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication. 28. Dispositif selon la revendication 27, caractérisé en ce qu'il comporte des moyens d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication. 29. Dispositif selon l'une des revendications 21 à 23, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction de caractéristiques du réseau de communication. 30. Dispositif selon l'une des revendications 19 à 29, caractérisé en ce qu'il comporte des moyens d'estimation de la qualité d'au moins une unité élémentaire de données qui comparent ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée. 31. Dispositif selon la revendication 30, caractérisé en ce que le dispositif comporte : - des moyens d'estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - des moyens de sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage. 32. Dispositif selon la revendication 30 ou 31, caractérisé en ce qu'il comporte : - des moyens de codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - des moyens de décodage de ladite au moins une unité élémentaire de données codée, - des moyens d'estimation de la qualité de ladite au moins une unité élémentaire de données qui comparent cette au moins une unité élémentaire de données non codée avec celle précédemment décodée. 33. Dispositif selon l'une des revendications 19 à 32, caractérisé en ce que les données constituent une vidéo et le nombre donné d'unités élémentaires de données correspond à une image de la vidéo. 34. Dispositif selon la revendication 33, caractérisé en ce que l'unité élémentaire de données est un macro-bloc de données. 35. Appareil de communication, caractérisé en ce qu'il comporte un dispositif de détermination d'au moins un paramètre de codage de données selon l'une des revendications 19 à 34. 36. 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 détermination d'au moins un paramètre de codage des données selon l'une des revendications 1 à 18. 37. 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 détermination d'au moins un paramètre de codage de données selon l'une des revendications 1 à 18. 38. 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 oeuvre les étapes du procédé de détermination d'au moins un paramètre de codage de données selon l'une des revendications 1 à 18, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable.